The Tenth Blogiversary!

While my Pipeline column has been running continuously for over 15 years straight now (never missed a week), the history of this blog is a little shakier in recent years. Still, we’ve reached a milestone…

Parte the First

A decade ago today, this blog started its life.

The story of how this blog came to be goes back a little further than that, though, when I first registered the domain name. I bought it on February 4, 2000, with the intention of creating my own blog with it. That word wasn’t popularized yet, though I’m pretty sure it was in use already. The model for what I wanted to do was, the Reddit/Digg of its time. It was a reverse chronological series of stories and links to other stories around the web. It was even written in Perl.

I was a relatively new college graduate (May 1998) who wanted to play more with the Perl programming language. I set out to write my own blog engine, where Slashdot was the model. (I’m not sure if Slashdot had open-sourced its own blog engine code yet by then. It probably had, but I was looking for a learning thing, not just a quick solution.) I had drawn up bits of the look of the thing, and might have even started sketching out some programming pieces. Back then, I didn’t really know what I was doing, though, and I didn’t get very far. I was good with Perl as a scripting language to move some files around and parse their contents, but building a website with it? I likely wouldn’t have admitted it at the time, but I was clueless. And so I didn’t do it.

Fast forward to August 30, 2002, when I decided I was going to start a blog anyway, even if it wasn’t on my own engine. I chose LiveJournal as a host. There weren’t that many choices. But LiveJournal was written in Perl, I knew, so there was a kindred spirit there.

And then my boss and web hosting provider, Jonah Weiland, told me to stop it. Own my own work. Host my own damned site. And he provided the server. And here we’ve been ever since. debuted, self-hosted, on September 17, 2002. A decade ago. I started in the shadow of good company, at least: just celebrated its tenth anniversary this summer, too. Of course, DF had a focus, built an audience, and is now a tech blog success story. (Sponsorships bring in a half million a year for DF’s John Gruber.) I’m just a loudmouth with a lot of things on his mind that feels the need to randomly blurt them out. Sometimes, they form a coherent theme. Usually, they don’t.

I think the traffic highs for this blog were in the early days of American Idol coverage. There weren’t fifty thousand AI blogs back then, and I ranked highly on Google for a brief time for some specific AI searches. But, truth be told, the traffic here never got higher than a couple of three hundred people a day. The Google Ads have netted me a total of a single $100 check a few years back. And my repeated offers to be a complete sell-out for just a million dollars have gone unanswered by a San Francisco tech community that refuses to believe that I have as much upside as an Instagram or Dodgeball or even a Sparrow. (Remember, folks: Instagram sold for a billion despite having no profits. I’ve made $100 in a decade. Surely, I’m worth $100 billion, at least?)

Part Deux

Five years ago, as my last job was winding down, I wanted to learn something new. I chose the popular web framework, Ruby on Rails, for my mission. I spent months reading books, playing with code, trying to get good at it. I even owned, which I planned to make into an instructional blog. The domain name has since lapsed, but I still have the blog entries I wrote for it. Don’t know why I still do, but I do. Writers are notorious pack rats for such things. If VandS turns into a tech blog, I’ll recycle them.

Then I got a new job that still meant Perl, and I put Ruby aside to dedicate my time and energies to learning the new system. I liked Ruby, but I wasn’t getting paid to program in it, and I didn’t have a solid project to use it for. It fell by the wayside.

Fast forward to today. I’m not sure why it is, but the back end of this blog has slowed down to a crawl. Editing and updating anything on the site is a chore. I guess part of it is that there’s a huge database now with thousands of articles that power it. For whatever reason, updating the WordPress software (with its famous “one click install”) takes more than a click and is a miserable process for me. I want something new. I want this blog to be busier. I want to remove the pain point that is a standard CMS. I need to do it on my own.

So I’ve decided to leap into the new world of static blogging. Drop the database all together. Keep the entire site as a series of static HTML pages. Everything is processed off-line and then uploaded. There are some off-the-shelf solutions for this (Jekyll, Octopress), but I’m using this instead as a project I can use to inspire myself to finally sit down and learn Ruby by using it seriously. I’ve come full circle, using this domain name to learn something new and to create a blog. And since static blogs haves less security concerns to worry about, I feel free to go crazy.

Ruby is very Perl-like, so it feels natural. And since this isn’t being done on work servers for my day job, I don’t need to cut through red tape anytime I want to install something new. Or update a public-facing page. Or ask permission for anything. It’s liberating and it’s fun. I may still program during the day, but I have fun programming at night.

The Hat Trick – Programming the Platform

Moving to a new blogging platform only gets more complicated the further you dig into it. Thankfully, I’ve been able to copy my entire WordPress database off the server and to my local machine, making it easier to use. I’ve written a program to read it in. I’m working now on the part where I write those posts out as separate pages. That’s the (relatively) easy part, though.

Think about what goes into a blog. Forget the design for a moment, something I aspire to but am sadly deficient at. You need a home page with the most recent x posts on it. You need an archives page. Maybe you need an archives page per category. You need an RSS feed. You need a way to automate the posting of new blog entries. I’m looking at moving thousands of files around every time I update the blog. Or maybe I can just run an rsync and move only the pages that have changed. Can I integrate Dropbox into this somehow so I can update the blog even when I’m away from my computer?

If there’s one thing I recognize about myself, it’s that I can stifle myself by planning for all of this. It’s overwhelming. Instead, I’m taking it one task at a time. Finish one thing, start the next. Go into it blindly. Solve problems as they come up. Refactor code after it works. Reuse what you can. Writing a script to generate an RSS feed, for example, should be easy. There are plug-ins for that. (Ruby calls them gems.) So don’t worry about it. I’ve already worked out the gem I needed to format the blog posts for HTML. I’m using Markdown for formatting my plain text files.

But then there are a lot of changes that have to be made server-side to make the final transition seamless. (I don’t want to lose what little Google Juice I may have built up over the years.) Single blog entries will end in .html now instead of a single backslash. I need to redirect that traffic. That’s the scariest part. At some point, when I’m done testing this and want to switch over to it completely, there might be a little downtime while I sort through that mess.

What about generating a site-map for Google? I know there’s a Python script for that. Will I need to learn another language just for that script’s purposes? I’m not averse to it, but at some point I’ll run out of time.

What about all the other little things I’ve forgotten completely about? I’ll see them as I push on, I guess.

In any case, it’s exciting for me, even if it means you see very few changes on the front end. My hope is that the biggest change you’ll see is more posting. It might not be five days a week, but it’ll be more than once a month. Some of that may be uber-geeky stuff while I program my way through this blog engine writing process. You’ve been warned. But, first, I need to write the engine. So I’m off to do that. Ten years later.

Thanks for reading over the years. Thanks for indulging me today. Now get back to work. All of us!