Note to Self
December 22nd, 2005 | Filed under Startup dot comIt’s not about having the idea, it’s about building it.
A web programmer’s notebook.
It’s not about having the idea, it’s about building it.
“The main class is like a three thousand line Perl file. Run as CGI!!! That’s like, fifty times wacko!”
Mark and I did our first bi-coastal pair programming session last week with him in Brooklyn and me here in San Diego. I donned the headset, we called one another on the phone (yay free long distance), and with his Mac as a VNC server (using OS X VNC), I connected to his machine. For the most part he drove while we talked, read docs, coded and tested.
At first it was a little uncomfortable, because Mark felt like he was performing and I felt like a voyeur. I’ve trained myself to look away from people’s screens, so it was strange to watch him type and mouse legitimately. Once we got through the initial weirdness, though, it was one of the most productive co-coding sessions I’ve ever had. It’s amazing what two sets of eyes can do. And your frustration level never goes very high, either, because you have someone else joking about things. (Like when we couldn’t get our first unit test to succeed for the umpteenth time, he simply said, “Mark is angry,” which sent me into a fit of giggles.) Performance for the most part was good, except for switching between windows, which sometimes lagged as my viewer had to redraw things. Mark was also using Vonage to talk to me, so presumably that hogged up a bunch of his bandwidth.
This weekend, I drive and he uses the cell phone. Yay pair programming!
This guide to securing Apache is way handy. I liked the bit about limiting access by IP address.
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Is good way to make sure no one else on the network is hitting your dev server.
The Greasemonkey user script that saves me several minutes of typing every day broke with Firefox 1.5 and Greasemonkey 0.6.4. But thanks to the ever-instructive Mark Pilgrim and his O’Reilly article about safe Greasmonkey scripting, it now works. Specifically the “Pitfall #3: Named Forms and Form Elements” section addressed the bit that was tripping up my old code.
If you too use Movable Type, my user script autofills in the upload directory with a date-based folder name - great for rapid-fire posting with tons of images, like on Lifehacker.
O’Reilly Network: Avoid Common Pitfalls in Greasemonkey [O’Reilly Network]
I’ve been using Nokia’s Lifeblog software on both the PC and my phone to post to my cameraphone blog for months now and having a ball with it. (See my review of Lifeblogging with the Nokia 7610 for more info.)
Right now I’m using TypePad to host the web part of it, but if I ever want to build the capability into Scribblish (and I will) Robert Price has a nice walkthrough on how he did it for his homegrown PERL-based CMS. Also of interest alongside this - an Atom PHP implementation.
Somewhat old news that I found myself looking up tonight: database schemas for tags, ranging from stuffing keywords into a giant field to 2NF to 3NF.
Being the good database girl that I am, I tend toward third normal form (the last example, which involves 3 tables), but enforcing cascading deletes to trash orphaned tags would be a lot of more work for the app. At the other end of the spectrum, the single table solution seems insane (aren’t LIKE’s generally a no-no?), but at one point when Matt suggested this at Kinja and I consequently almost passed out, after some debate I realized there might be times this would fit best. (Note to self: there is never One True Way.) Maybe in media res, and the 2 table solution is best.
Anyway, a good reference for Web 2.0 taggy apps getting built out there.