SQL on Rails

01 Apr 2006

SQL on Rails

Jamie, Dave and I managed to get our stupid little idea onto /. today. We were first on the page from about 1pm to 2pm eastern, slowly sliding down throughout the day. A big thanks goes to Dan/mcgreen for submitting the story that finally did it. We were also spotted on digg (twice thrice), reddit, waxy (his conclusion? We were one of two that made him laugh) and others.

So I figured I would take a moment to share about how this all came to be. Back in December I was talking with the programmers at the office. Making fun of various web frameworks and other suitably dorky things. Apparently a few minutes before December 7, 2005 12:38:56 PST I made a joke similar to “Well, if ruby is better on rails why not any language? Like SQL.” and we all proceeded to laugh. Then I went back to my desk and paid a whole $8 to register the domain. Hey, it’s pretty funny, right? We all thought it would be great fun to set it up for an April Fool’s joke or something.

Insert here 4 months worth of nothing happening except an occasional mention. In March it may have escalated to “Hey, we should do that soon.”

Then finally on the 29th Jamie decides to kick into gear. We formulate a plan. I redirect the DNS to Jamie’s dedicated servers and we become a mirror of the Ruby on Rails site. Jamie does some quick changes, including the logo and mast, and a few other little things. Everyone works (the for pay kind). We agree that the next evening we’ll all get together at Jamie’s place and, after celebrating Dave’s birthday, produce a screencast and finish the site.

The 30th was crazy at work. We leave and finally get started sometime close to 10. I’m on my MacBook Pro, Dave is on his iBook and Jamie on his G5. Macs are in these days. Jamie is working on the site, primarily doing the photoshop work. Dave and I are working together on the screencast – he’s doing the pages, I’m doing the backend side like sore_init, sor_import and setting up textmate. I turn on the built in apache and give dave SSH + admin, so he can log in over SSH from his computer and make the magic happen. Our approach is to record the video while narrating for practice. Then we will record a voice over separately.

At 2:21 AM and about eight attempts later this proved successful. We had a 6.4GB uncompressed .mov (and 16MB compressed one) with only one big mistake – garage band crashed in the middle. Luckily nothing was happening on screen so we decide to fix it in post. Dave proceeds to take a nap while I play with the video. The MBP’s hard drive isn’t quite fast enough to play the massive uncompressed video, so I transfer it to Jamie’s G5. Our approach here is simple – the video will play on the screen and dave and I will provide commentary to be recorded in Logic. It goes well and we do pretty good on the first (and only) take. With a little editing magic jamie makes us sound practically good. Audio is then (4:45AM by now) exported to a wav file and copied to my MBP. We then sleep.

Next day, things are crazy at work for me but very quiet for the programmers. The other nerds in the company love it. Jamie and Dave make some improvements to the site though out the day. I formulate a plan to get a usable version of the screencast (remember audio and video still aren’t in one file, and there are still two mistakes). We can hopefully make a perfect version on my iBook, but if there are issues I want to at least get something. There’s an apple store one block from the office. I’m quite handy with final cut pro. The files are very small. Add these together and you get some shacking (thanks to Mike for shopping + hacking = shacking).

The three of us traipse in there with a USB drive containing all the files we need and go up to a dual G5 towards the end. I quickly copy the files into the home directory, set up a new profile in FCP and import the files. We then have to render the video, a 10 minute process. Jamie stays at the computer surfing the web, while Dave and I go over and look at the iPods. After rendering, I come back to sync up the audio and video (difficult with only a very quiet left channel), loop some video on the front and end, and chop out the garage band crash (it happens after we jump to line 54321, just before we do the sor_page snippet). I then quickly export and walk away for the 3 minutes that takes. We copy the files to the USB drive, plug it into another computer to test, and leave.

I work on work stuff while Jamie and Dave intersperse a little more website tweaking, including the remaining example projects. Jamie has about 2 hours more work on the site to do, Dave needs to create the tarball for people to download, and I plan on redoing the editing on the screencast.

At home my trusty iBook (yay for PPC) launches FCP HD just fine and, running off a respectable external drive, isn’t even that slow. I redo what we did at the apple store but a little cleaner (and using the uncompressed original file, not the compressed version). Then I add the title and end slates with the background fade. Then I start to get fancy. You see the one major problem we had with the screencast was the 404 page. It says Apache on it, ruining the whole illusion. I put white matte covering the two sections where it appears, then carefully overlaid a text with a proper “SQL/Development” identifier. Declaring it complete I exported a two versions of differing quality, at about 22MB and 48MB each. These get sent to Jamie, and I relax.

After returning from a Warriors game at sometime close to midnight Jamie puts in a heroic effort getting the screencast and download pages working, as well as the little Ajaxy pop ups for the links and a few other configuration things. Dave and I are already in bed. I’ve contacted a bunch of east coasters and asked them to promote the site in the morning, and Dave is planning on getting up at 7.

I slept in on Saturday. I hadn’t gotten a good nights sleep in 5 days, so I didn’t really wake up until 10AM. My cell phone was ringing. I didn’t answer, but saw it was Dave. I got a glass of water and called him back. “Have you seen slashdot?” “Uh, no.” I answer. I pretend I’m not thinking what I’m actually thinking, “Holy crap we made the front page.” My MBP slowly comes back from “deep sleep” and I load up slashdot. There, in bright pink letters:

It turns out a guy who goes to my high school (and does many of the same activities I do, as well as a friend of my brother back in middle school) posted, and cowboy neal posted it. Amazing. At that point it had just hit after a couple of Dave’s rejected posts, with only a few comments. You can see that traffic, shall we say, spiked. Within a few hours we had over 20 THOUSAND visitors. The site was still up, although the hosting facility was a bit bogged down, so pages loads were slow.

We continued to try to pimp the page throughout the day. I sent an email to DHH, the creator of Ruby on Rails, and he responded that it was, “Very funny. Great April’s 1st joke!” Most of the comments were entirely positive, except a few generally insulting all April 1st jokes. Some of my favorites are the Ruby on Rail’s list and the /. comments that noticed a bunch of our details (especially Jamie’s hacked server response. That’s dedication.). Anyone know if Guido found it? Below is a list of references I found, including a bunch in Korean. Ok…. If you find any more shoot an email.

Referrers and other found links.