Who Put the Flutter in…
March 13th, 2008Remember the Butterfly? Click “Flutter” below.
EDIT: I just tried clicking multiple times. That’s even more fun.
Remember the Butterfly? Click “Flutter” below.
EDIT: I just tried clicking multiple times. That’s even more fun.
I wish I had a picture of this one… There’s a poster on the NYC subway “Litter gets on the tracks and catches FIRE!” and the poster rambles on “and slows down your trip and makes you and others late and it’s really bad and we won’t like you and do you actually shake your mother’s hand with that littering hand of yours?”
For shame. I’m no litter fanatic. I’m a different kind of fanatic. I bring my recycling home from work because they don’t handle it properly at the building. (Reference my lunacy here.) Back to the point — what a whiny effing sign. I’ve seen people littering and so have you. Does the person who you noticed littering strike you as the kind that cares about making other people late for their appointments? I’m not even sure they know how to read. Perhaps the packaging of their delicious candy bar infuriates them with its letters and phrases to the point where it must be immediately jettisoned. Lest they do something rash. Or untoward. To a nearby person.
How would you like it if I came into your house and hung a sign that whined at you not to litter? I reckon you would not very much although you might be able to sell it for a few dollars if I made the sign with gold foil. I am unfortunately better known for my Sharpie based signwork.
The simple fact is, fire is totally awesome. If litter is the bringer of fire, man’s finest gift from the gods — litter must likewise be imbued with liberal quantities of Sweet, or at least a dash of Rad. Personally I don’t think it’s an effective sign. Perhaps you guessed. Hey MTA, I’m not going to litter anyway, but thanks for the funny sign. If you want an effective sign, how about “Litter gets on the tracks and then a swarm of ravenous locusts come and eat your legs unless you don’t have legs in which case think of something that you’d prefer not to lose and the locusts are gonna go after that.” And by the way MTA, if you’re listening, when you make a claim like that you have to enforce it.
EDIT: I had to go snooping for a photo. I’ll try to get one myself (not very hard mind you) but for now here’s a good one. I’ll host it here too in case there’s a mix up on the tubes.

Here’s a mini playlist I made. Also a demo of the playlist software, XSPF.
Ah, it’s a new month! Time for a new Smyles & Fish Derby.
For those who haven’t entered the Derby, I highly recommend it. I had fallen out of the habit, but I intend to start again. If you don’t want to enter, have fun voting!
This is my first submission for the month.

This is supposed to be a photo of me after having grown a mustache. I suspect foul play.
1. If you could have your pick of the contents of an active volcano, what would your pick be?
a) Lava
b) Ash
c) Super-Heated Rock
d) Lava
2. Which president of the United States of America is sometimes credited with creating the word “OK”?
a) Rutherford B. Hayes
b) Millard Fillmore
c) Martin Van Buren
d) Calvin Coolidge
3. How many Internets does it take to screw in a light bulb?
a) Indeterminate
b) 11
c) Internets don’t screw in light bulbs
d) The correct answer
Are you interested in sounding like some kind of programmer? The place to start is the original jargon file.
Learn about AOL!
Idempotence. (Something tells me I’ll return to this one.)
Express your pre-omnipotence.
Find out how to start and how to end. Sometimes you’ll win and sometimes you’ll lose.
Phrases are terms, too. The last thing you want is to die horribly. You may eventually find yourself shaving a yak.
It’s versatile language and it’s quick. Remember, we’re typing and we’re busy. Convey volumes with an eyebrow IRL, convey the same with a single word or phrase on the tubes.

I am a consumptive music listener. When I find something I like I will listen it into the ground. I will repeat the track again and again, reveling in my favorite parts. Of course, this leads eventually to burnout and I’ll lay the tired and panting mp3 or cd to bed, or rather it simply isn’t selected as I am spinning my iWheel. There’s no closure there. Closure is for the weak, but I’ll deal with that later.
That inevitable and looming burnout point forces me to track down new music frequently. Unfortunately, I find myself demoralized by the lack of fresh sounds out there. This isn’t news: Independent rock music (my genre du époque) is frequently monosonorous. That’s a made up word. Don’t bother suing me — I’ll take care of it.
I’ll download and give these impotent audio attempts one, maybe two listens. And I’ll imagine those poor kids up there playing for their bread and water, but they just don’t have that spark. An album is an album is an album. Don’t ask me to do better, I’m an innocent bystander.
What’s the point of this post, anyway? I’m not proposing there is a solution to this, I’m not suggesting there is even a problem to solve. All I’d like to suggest is that musicians listen to their tracks on repeat for a day straight. Gentle minstrel: if you get bored, consider the board.

You’ll perhaps remember the box kicking script from a few days ago. That kick was the result of a series of finite steps. As I chained them together they looked like a relatively smooth move (for an ex-lax). Let’s say I have another action I want boxy to perform. I’d be stuck scripting it up mostly from scratch. Sure, I’d be able to cut and paste, but all of the heavy lifting I did before would be tossed away. So why not make my own life easier?
Which parts of the kick are reusable and which are not? In order to figure this out I break out the work into pieces. In this case there’s all the chaining and the moving boxy around nonsense, and then there’s the description of how it moves. If I’m lucky, next time I want to move boxy I only need tell it where to move, and not how it should go about moving. Enter my base animation class:
Animate = new Class({
options: {
defDur: 200
},
initialize: function(el){
this.target = el;
this.d = [];
this.t = [];
},
run: function(d, t){
var tfx = new Fx.Styles(this.target, {
wait: false,
transition: Fx.Transitions.Quad.easeOut
});
var n = 0;
var dly = 0;
this.t.each(function(tarr) {
if(this.d[n] != null) { dur = this.d[n]; }
else { dur = this.options.defDur }
tfx.options.duration = dur;
tfx.start.delay(dly, tfx, tarr);
dly += dur;
n++;
}.bind(this));
}
});
Animate.implement(new Options, new Events);
I will spare you the details of the Mootools syntax here. This class allows me to specify a list of instructions for boxy. I can then extend the base behavior with different instruction sets, making further actions a snap! The boxes blow are all scripted into subclasses of my Animate class. (Again, sparing details…) The first is the good ol’ kick. The second is a scripted random series of steps. It will always be the same. The third is an unspecified set of 40 randomly generated movements. Go ahead, give em a shot!
For those brave and/or interested souls, here’s the third random extension of the base Animation class, which I’ve called Butterfly. Butterfly took me about a sixth of the time to script that the original Kick did.
Butterfly = Animate.extend({
options:{
min: 20,
max: 300
},
initialize: function(el, steps){
this.parent(el);
for(i = 0; i < steps; i++){
this.t.push({
'top': this.next(),
'left': this.next()
});
}
},
next: function() {
return Math.floor((
this.options.max
-(this.options.min-1))
*Math.random())
+ this.options.min;
}
});