s
Projects
Circumnavigating the RealAudio

My parents are good jews. My mother and father both read torah and haftorah on a regular basis during Shabbat services at their conservative synagogue. That's why they love visiting their favorite site "Navigating the Bible" at bible.ort.org to get the weekly torah portion already color coded and even pre-recorded by a cantor. And while they make the material available online for free, the audio files are in an outdated Real Audio format. At the time I write this, the real media plugin only has 23% penetration on the web, and is a proprietary format that is not backward compatible. My parents were not able to figure out how to play the audio files. So after giving a try myself, I saw that the only thing that would play those .ra files on their mac was VLC and ffmpeg. First I tried writing my parents a 7-step email explaining how to use VLC to transcode the .ra files into .mp3 files. Then at some point, I decided to sit down and write them a [password protected] proxy through which they could visit bible.ort.org. It would allow them to click on the audio links and have them appear as mp3s in their browser. I did this in PHP by using the simplehtmldom library to parse the tags and by installing ffmpeg on the server. I found the html dom parser to be a lot of fun, and I was really happy that installing ffmpeg on my server was as easy as apt-get. This only worked because that particular site used basic HTML. It inspires me about the possibility of using a web proxy as a kind of commentary. This idea parallels biblical commentaries, like the commentaries of Rashi which even have their own rashi-script. Maybe if people like the idea of solving the real audio epidemic this way, we should set up a dedicated media cleaner proxy site so people can visit any url they want and have the media magically converted for them this way (and call the service Rashi).

Sparkle Labs Web Development

I developed two versions of this company website for my friends from ITP. They would email me still mockups showing me their designs and I would distill that into a real site. The first site in 2006 was a lot of flash, php, and xml. The second site in 2009 is more php and html layouts. Because the original web host did not have mysql, I built a custom CMS which rewrites an xml file to disk and constructs its interface based on the xml structures it finds. It turned out to be great for designing custom data structures.

Disappeared In America Interactive Timeline

Interactive Flash-based visualization of news items pulled from a mysql database for an art-activism group. I developed this in preparation for a show at FACT, Liverpool having just made friends with project leader Naeem Mohaiemen. The project was supposed to be open source, but I can't figure out where I left the source.

Map for the Sefton Park Walk

A map of Liverpool's Sefton Park for the Sefton Walk Park project, the sound player will follow the trail and even catch its place when the user jumps around in the playback controller. I'm also particularly proud of the black and white version of the map. The map had to be drawn from several references since neither Google, nor conceptual maps have needed to show such a detailed level of trails in the area.

www.hci-fun.org.uk

I redid the website for the human computer interaction organisation in Liverpool England that was commissioning me to do a couple pieces at FACT. I used an open source flavour of flash - mtasc and swfmill with a lot of xml and a makefile. The source was made available on the site. We used the blog engine, b2evolution, to manage the content, and the flash file just pulled the content from the mysql database and presented it this multi-windowed way. Now that I look back on it, Drupal would probably have been more appropriate. The user interface was a bunch of UIComponent windows that popped up inside the browser. Small green indicators and trails were used to point out where the user had clicked and dragged the mouse in an artistic overlay. I subclassed the window component to add a resize control at the bottom right corner.