Archive for February, 2009
PyCon Plans
by john on Feb.28, 2009, under PyCon

For the second year in a row I’ll be attending PyCon. I’m rather looking forward to it. My brother Matt is officially speaking on Saturday. They’ve put him in a time slot going up against a panel with Guido on it, but I assume that people are sick of hearing Guido by now
and those in the know are aware of how excellent Matt’s talks and slides are.
This year I won’t be presenting anything officially, but we plan on bringing the wiiMote stuff and the lasers. I am going to try to schedule an some open-space time (maybe in the evening?) and basically run what would have been my tutorial. I have most of the content done slide wise and just need to look at the code and clean it up a bit. I’ll try to sign up for a lightning talk on Friday in order to advertise it. The lighting talk will be short an sweet, assuming it happens at all.
In any case, if you bring a bluetooth enabled laptop with Linux or Mac OS X we will do our best to get some headtracking running on it and help you on your way to your own strange human-computer interaction experiments. We’ll bring our own wiiMotes and lots of IR LEDs and batteries, but if people want to bring their own wiiMotes that would be nice.
Getting Low Friction Right
by john on Feb.25, 2009, under Uncategorized
In a recent Daring Fireball post regarding Untitled Document Syndrome John Gruber examines the mental effort it takes in many programs to create a file, give it a proper name, and save it in the proper place. Oh, and don’t forget remembering to save it again every time you make some changes. He calls these housekeeping tasks “friction” and argues that many times they are sufficiently annoying that you simply don’t create the file/do the task in order to avoid them.
He then lists some programs that have relatively low friction such as Stickies, iTunes, and iPhoto that for the most part do away with these housekeeping tasks. Managing photos in iPhoto doesn’t involve worries about files, filenames, or directories. The application appears to simply save things as you go.
When this works it is wonderful. For instance I have a mess of stickies and I never worry about them.
But it doesn’t always work that way. For instance, when does iPhoto save its state? I have no idea, but I wish I had a good way to force it to do so. For instance, a year ago I was creating a photo calendar and iPhoto crashed. I figured, “No big deal, I’ll just re-launch it an pick up where I left off.” But when iPhoto came back up the calendar didn’t even exist. Since then I’ve gotten into the awful habit of quitting iPhoto every time I do a unit of work that I don’t want to lose. This is my way of saving my work. Suddenly iPhoto has gone from low-friction to incredibly high-friction. I’d prefer to have the option of manually forcing it to save the current state, but given that the only time that I know it is saving is when I quit, I end up quitting a lot.
This happened again after upgrading to iPhoto 09. I was using the Faces feature and the app crashed as I was approving/disapproving hundreds of faces. My state was gone and I had to do the work over again. At least in this case there was a button that let me save the selections I had made. After two crashes I made sure to save every screenful of faces or so, even though this was less efficient.
In an ideal world apps wouldn’t crash and this wouldn’t be an issue. But designing software as if we live in such a world is a poor solution. Low friction application designers should put a lot of thought into exactly how they are going to take over the housekeeping chores that they’ve hidden from users.
For different applications there might be different ideal soltions. In the iPhoto example Apple should implement an incremental save that is fast and lightweight and could happen after each operation. If all goes well and there are no crashes then the application would save its state normally when it is quit and then discard the incremental information. If there is a crash the incremental information would be used along with the previously saved state to reconstruct the user’s work, and create a clean saved state prior to resuming work.
A very un-Apple like alternative would be to simply allow the user the option of saving state manually without quitting, but this doesn’t seem like something that Apple would do as it would confuse many users.
It seems that the reason that there is so little low-friction software is that it is hard to get right in a world of occasional crashes. Hopefully software designers will continue to put thought into this problem and improve the state of the art.
Keyframe Goodness
by john on Feb.25, 2009, under Uncategorized
I’ve long wondered what sort of effects one could get by purposely glitching a stream of compressed video. Seeing occasional errors on a DVD or DTV transmission had convinced me that this had potential.
Well somebody has done it, in fact there is a name for it: datamoshing. Last week the video for Chairlift’s song “Evident Utensil” made its way around the web. I suggest watching the high resolution version but the YouTube version gets the point across:
What is interesting here is certainly not the music. In fact the raw footage is pretty boring and not even well synched to the music. But the effect is really well used. Objects take on foreign textures and people seem to exist in an alternate universe in which a wave of the hand paints the color of the sky.
To those that think that this is all very simple once you know the trick look at the relatively boring Kanye West video that also uses datamoshing (though not as extensively):
KANYE WEST “Welcome To Heartbreak” Directed by Nabil from nabil elderkin on Vimeo.
Clearly there is some art to doing this and the results can be good or bad. I’m guessing that given that it is relatively easy to do we’ll see lots of very poor implementations and everyone will be sick of this soon. Or I could be wrong. Maybe the fact that it is easy will mean that people will experiment with it and come up some innovative stuff.
Beyond datamoshing there are plenty of things that you could do with a video stream with the potential for interesting results. For example you could have the sound influence the compression settings or even mess with the stream directly in order to get some sort of visualizer type effects influencing the video.