12/17/2005

Slide Show of Photos from Paradise

I have been working at Slide for a few months now. We are working on making photo sharing and real-time media communication easy to use. We've made a lot of progress on the web site recently, and one of the things we are working on is making embedding a Slide Show in an external web page easier. Here is one of my Slide Shows, pictures of my trip to Michigan this summer immediately before I began working at Slide.






Get the latest version of Flash to view Slide Show, above. Visit Slide.com to create your own Slide Show



11/18/2005

Virt

Something weird happened to me recently. I had my first screaming-crying-girl-throwing-her-panties fanboy moment for some guy I discovered on teh intarnets. He's virt (http://virt.vgmix.com) and I felt so ecstatic from sleep depravation and listening to his music that I wrote him the following email:


I have no idea how I came across your site. Probably after reading the wikipedia Chiptunes page and searching around a bit (since you don't seem to be linked on there... go add yourself!). I had the contents of your Chiptunes page on my ipod for a while before I really listened to it a lot. The first song I downloaded and listened to a lot was the thriller cover, which I thought was just so cheesy to be brilliant. I used it to test a Mac audio editing application I was working on this summer, SoundFarmer. Check it out:


http://donovanpreston.slide.com/c/SoundFarmer



Specifically:



http://item.slide.com/y/uid=5eilEp2bBu3zp7fdnfWThvdchdJNe1P50VhphDVUTV35s_UPnkCLsZB6WKutK_7Y/SoundFarmerAugust05.png



I didn't really listen to much of the other stuff from the chiptunes page or thriller for a while. Then, I was at the gym yesterday on the treadmill, sorta in the zone, just closing my eyes and concentrating fully on what I was hearing. I think it was in the middle of "blastoff", right about 1:08, where the progression slams right through the fucking roof and the chorus kicks in and breaks it down and then the next section starts slicing microthin shavings through your brain with the distorted guitar and then here we go up and up and up and arpeggio and staccato and tension hold and release and OH FUCK YEAH bring it back around to the chorus again!!! I was almost in tears. I actually had chills. Goosebumps. (All while sweating my ass off at the gym!) I am not shitting you.



Anyway, I went and downloaded every other single mp3 I could find on your site earlier this morning (say hi to your server logs for me ;-) and was digging the gameboy choons but it wasn't until I got to MC Nachbar that I realized that you are a fucking GENIUS. GEE-NEE-USSSSSS. A fucking polymath. So I wanted to mail you and let you know. You made my year.



Nostalgia and speculation on the nature of human creativity follows:



When I was in highschool, I found a copy of SoundTrecker (a Mac mod tracker) and a few mods somewhere. Pretty soon I was downloading mods from boards as fast as I could. At one point I had an entire syquest 44 cart filled up with em. Pretty amazing over a 9600 baud modem! I remember when I eventually had a 28.8 and I could download mods faster than I could listen to them... that was quite an epiphany (I had the same epiphany when I discovered mp3 ftp servers a few years later when I worked at the state of michigan, which had a T3. I have not yet had that epiphany with movie torrents yet, but I have a feeling we're close. I also don't really like video as a media). Then when I was in college I found my favorite song ever... FOOP.MOD, a brilliant breakbeat choon that I still love to this day. I was also buying CDs at the time from various random techno acts of the day, but with the exception of Aphex Twin, Luke Vibert, and Mike Paradinas, I was continually disappointed. There was just something about the raw emotion and uncut feel of mods that compelled me much more than some random crappy-ass major label release.



There is a psychic difference between the product that one creates for love versus money. When someone really, truly loves something and does their absolute best, it bleeds out between the lines, oozes all over your hands and sticks to you and won't wash off. I work at slide because I love programming, and the fact that I get paid is a pleasurable side effect. It is this raw hot plasma passion that fuels the internet, the blogs-versus-journalists and mp3-versus-record-mafia battles. The 9 to 5 work week and the boss-employee fiction is a recent creation in human evolution. The creative drive of which I speak is not. It may not happen tomorrow, but the politcal and social fads of the day will fade. They will be replaced with new social customs and norms. Each step of the way humanity will delude itself into thinking this custom is "natural" and has somehow always existed. But the only thing that has always existed is the creative big bang. God. The Universe. Order from chaos, strange attractors in the cellular automata. Find it, feel it, follow it, hold on.



So yeah. Thank you for who you are and for letting me see it through the magic of the internet.




If I don't post to my blog more often it is going to become a barren wasteland, so perhaps I shall begin posting on a wider range of topics like this one.


10/05/2005

JavaScript sucks ass, part one million

In the spirit of Bob Ippolito's JavaScript Sucks posts, here is one of my own. Sit down and let me tell you a tale about the little language that is so close to being good, yet so far...



Recently, I changed jobs. I joined a company called slide, which is building a hybrid photo sharing application using a combination of fat client and rich web technologies. In my drive to create responsive web applications I have been exploring techniques which make heavier and heavier use of client-side JavaScript. I now find myself doing less and less Python and more and more JavaScript rendering code.



I don't really mind this too much. I think JavaScript is a reasonable language, with reasonable anonymous function syntax, real closures with mutable parent scopes, and prototype inheritance (with the most bizarre implementation that unfortunately renders it almost unusable). However, every once in a while I hit some issue which drives me absolutely insane trying to debug.



Here is what I ran in to. The following:



{'foo': 1}


Is not valid syntax. However, the following:



foo = {'foo': 1}


Works fine. I ran in to this issue while trying to eval constructed strings of javascript. Even though eval returns a result, giving it a single JavaScript object literal results in an exception. Tacking on an assignment at the beginning fixes the issue. Ugly.



7/28/2005

From San Francisco to Detroit for MacHack 20

I have always wanted to go to MacHack, but I never actually have. Ironically, I even lived in Ann Arbor—just miles away from the Dearborn location—for a few years in the 90s. This year, since I was laid off from work and could afford to take the time, I decided to go. So far it has been an amazing experience, and thus I relate a story of the journey as told in pictures.



Before boarding a plane for Detroit, I spent a night at a hotel in San Francisco. They apparently had internet access from out of the 19th century.



The view from my hotel in San Francisco was stunning...



...while the view from my hotel in Detroit is less so...



...and apparently in a low-rent neighborhood.



The snacks at MacHack are sponsored by Google this year and are therefore of very high quality...



...especially the candied fried eggs, which are delicious.




7/11/2005

LivePage rules

At SuperHappyDevHouse last weekend, I finally got the time to update the Chatola example to the latest livepage APIs, which I was developing in a series of branches named livepage-completion-notification. Since all the examples are now updated and the new API is relatively robust and stable, I merged this long-standing branch into trunk today.



These API changes were the major thing I wanted to get done before releasing Nevow 0.5. Unfortunately, after the 0.4.1 release the other major change occurred: Depending on zope.interface. formless.annotate.TypedInterface did some things with Interface that zope.interface doesn't like at all. So I'll have to decide how to deal with this; right now I'm leaning towards hacking them out using any means necessary. It won't be pretty.



With livepage solidifying, formless next up to be put through the refactoring ringer, and a planned context refactoring in the future, Nevow is really starting to move towards a stable 1.0 target.



One last thing... I have a secret LivePage project that I have been working on which I am very eager to show the world. Some of you know about it; don't tell anybody what it is yet, I want it to be a surprise :-)