Wednesday, 25 July 2012

When Daddy Was a Little Boy - revisited

It was with much bombast here that I intended to transribe my PDF copy of When Daddy Was A Little Boy.

Sadly, a combination of too many things to do in terms of both work and pleasure meant that such mundane activities kept getting relegated to the back of the queue.

So, here's the next best thing: my copy of the PDF. Read it and enjoy, as I know you will. (Well, really this would be the best thing, and the transcript would be the next best thing, since the actual book has really nice illustrations and looks brilliantly quaint.)

Note that I do not own the copyright to this work of brilliance - anyone who does can let me know, and I will take down the link.

Tuesday, 10 July 2012

How programming lets me know I'm getting older

You're hammering away at a particularly hairy bit of code (or any other problem). You know exactly what you want it to do, but are just struggling to translate it into the right language. After hours of wrangling with convoluted logic and endless cycles of edit-build-debug-rinse-repeat, you throw your hands in the air, give up and walk away.

And then suddenly, while cooking dinner, or watching a movie, or in the shower thinking of what manner of pasta to snarf down for lunch, or simply just on the can focussing on your business -- it hits you. A brilliant solution to the hair-puller-outer, so elegant and so bloody simple you wonder how you never thought of it in the first place.

You scribble a quick note in your head (or Evernote, or a notepad, or whatever) and suddenly nothing else will do except firing up vim and set things straight right away. You do it.

The final turn on the safe -- maybe something audibly goes "click" in your head -- and it's done. You step back and marvel in the beauty of it. You can feel the mystery briefcase glow on your face, a la Pulp Fiction. All is right in the world again. You are the master of all you survey - there is no mystery you cannot solve, no stream you cannot ford.

You are also not me.

Maybe I am slowly gathering up enough work experience, or maybe I'm just getting older and my mind is atrophying, but while the initial frustration and subsequent elation are still very firmly in place, the "eureka!" appears to be happening a lot less these days. Instead, what I find works most of the time is just plugging away at the issue, continuously breaking it down into smaller bits, and gradually piecing the solution together from these little digested chunks.

"Solution epiphanies" strike about two or three times out of ten, down from 6-7 out of ten from back in the day [when we wrote our code with styluses on papyrus and prayed to Ra to compile it into machine code via heliography]. The adrenaline and oxytocin rush is still phenomenal, but I find myself needing them less and less, since I can be more objective about the side effects and just more productive overall.

I still end up getting celebratorily hammered over the next weekend though.

Monday, 2 July 2012

You're doing it right

Dear Maciej Ceglowski: You're doing it right.

It is quite a breath of fresh air to see someone who's built a product, marketed it to the right audience, charged money from the outset (and thus not falling into the "users first, money later" trap).

I signed up for Pinboard (just out of curiosity, and wanting to see if my shiny new credit card did USD payments) pretty much the same day it was launched on Hacker News, and it became the first ever online service I paid money for. A mammoth sum of ~$1.

And since then, for this one-time joining fee, Pinboard has continued to add numerous features -- both asked and un-asked for -- while stamping out bugs nearly as quickly as they were discovered. And because it was making money, there wasn't a need to slather it in advertising or the atrocious amounts of social gunk that seem to crawl across pretty much every "Web 2.0" site now.

The Pinboard blog sees some brilliantly detailed posts and insights on technology (both site- related and otherwise), the site itself offers a spartan, uncomplicated and flexible API, and now -- this is what motivated me to pen this screed down -- the database schema behind the site!

This is how quality products are built - the real secret sauce is the execution; the actual idea and technical implementation detail can be at any point in the simplicity-complexity spectrum. It really is quite awesome to see someone basically give you everything you need to clone their product/service. The level of confidence in your own execution and delivery capabilities underpinning such candour and openness is a refreshing departure from the current clusterfudge that is "intellectual property".

Once again Maciej, you're doing it right, and I thank you.