3/24/2006

New Slide Transitions

One of the new transitions we have been working on at Slide:





Very busy at work lately. Getting a lot accomplished, and it is challenging, fun work. We're starting to ramp up pretty fast and I have been doing scalability work on the backend, which is surprisingly enjoyable after doing web front end work for so long.



1/28/2006

Introducing NevowPavel


I'm at SuperHappyDevHouse VII tonight. I went to II, and had a good time, but haven't been able to get back until now for various reasons. It was supposed to be last weekend, which falls on my weekend I am scheduled to work in the city, but for some reason it got bumped to this weekend. My goal for tonight is to release some code which was written almost a year ago: NevowPavel. If you have a short attention span, watch the screencast, wherein I explain the basic idea behind the project and give a demonstration of the currently implemented features.



This is the secret LivePage project I wrote about the last time I went to SHDH. It is a multiuser real-time updating wiki similar to and inspired by (the precursor to) Jot Live, the "live" version of Jot that broadcasts real-time updates to everyone that is participating. The difference with the NevowPavel implementation is that it is "spatial". Instead of editing a contiguous page of text, each piece of text is contained in a sticky note which can be moved and resized at will to organize the information as one wishes.



Links are also handled in an interesting way. Links are inserted by dragging out a link instead of a sticky and typing a new page name. Following the link takes you to the new page, where you can create and organize new pieces of information. Each page has a user list, so you can see who is there editing with you. To organize information cross-page, you drag stickies onto links. People who are on other pages see the information appear magically.



The ultimate goal of these template objects which you can spatially place in the page is for them to be pluggable. New types of objects should be able to be created which can provide code which renders content and handles input events for instances placed in the page. Eventually, the code should be through-the-web programmable. Obviously this involves lots of different things, like run-time code modification, restricted code execution, perhaps distributed code (to move code across multiple Pavel servers), and some sort of persistence. I'm also working on a Prototype-based object system with very simple persistence which is coming along well, but isn't integrated with the old project at all yet. This is a multi-year project, so check back again next year :-)



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.