RIP the un-named blog engine

by acha11 5. May 2009 04:05

I finally cracked it with the hassle of maintaining my own blog engine. The ten minutes a year I spent thinking about the five minutes a year I spent actually fixing critical bugs were really starting to bring me down. So, today, I ported some of the less embarrassing posts across to the shiny new installation of BlogEngine.NET you see before you. (That's right, the posts you see below are the ones I'm not embarrased by).

This post isn't about BlogEngine.NET, however; it's a little eulogy/rhapsody/elegy to the tiny blog engine that sputtered along, half-built, for well over five years like a Pinocchio wot ain't got no arms or sumfink because its Gepetto has way too many other commitments on the go at the moment, sorry.

I started hacking my blog engine together in early 2003, on version 1.1 of the .NET Framework. I wrote it as a way of learning ASP.NET. And .NET. And C# and ADO.NET. The codebase started out horrible, and got worse over time.

On day one, my pages hit the data layer by preparing literal SQL strings to be executed against a Jet back-end database. When I was a boy, etc. etc. After six years of experimentation, quick ten-liner experiments to prove a concept for a real day-job project, and random walk technique drift, I ended up with a selection of six different data access strategies, ranging all the way up to use of NHibernate on some pages. NHibernate 1.2. They're up to 2.0.1GA now! Fancy that, when I was a boy, etc. etc.

The security model was built around ASP.NET Membership, which lets you lock down folders or files by applying group membership requirements in your web.config files. My web.config files still bear the scars (in the form of oddly and very-precisely ordered elements) of an old ASP.NET security vulnerability - certain valid sets of permission demands would be misinterpreted by ASP.NET, meaning that unauthorised users would be granted access to content when they shouldn't. The workaround was to re-arrange your web.config so the dodgy ASP.NET code path would not be exercised.

It's nice how much of an app's history you can reconstruct just looking at the final shape of its source code. 

The UI design was originally retro (by which I mean ugly). The underlying HTML and CSS was originally very pragmatic and just a little verbose (by which I mean apallingly ugly). Things did not improve in either respect. I'm perversely proud that after six years and three substantial UI redesigns which all stuck to the black, white and gray theme, I've now managed to move to a new blog engine which itself is almost completely monochromatic. 

When I think back on this little chunk of source code, I think my dominant emotion will contine to be shame. Normally, I find something to be proud of in even the most pedestrian application I'm involved in building. That's how I choose to get through dark, pedestrian days - by finding a place to hide a nicely-fashioned little something for the next guy or girl to enjoy.

And yet there's nothing remarkable about this software except the way I managed not to do anything, anywhere in it that I am actually genuinely proud of. There's nothing to build an excited "new technique" blog post around. I didn't even open source it as a cautionary tale so people could learn by seeing the errors of my ways. I could at least have sent send in any of the several Daily WTF-worthy code snippets that resulted from the left and right halves of a single line of code being written in snatched moments on either side of a batch of F1 GP pitstops.

You may have noticed that I've been writing this entry in the tone of a column in the Daily Mail by a Top Gear compere wherein he craps on in a negative way about some car for six paragraphs and then summarises with the line "but actually, i quite like it". Well, sure, I have been writing in that style, but it was all masterful misdirection because I'm feeling dark today.

Goodbye, un-named blog engine #9492341. You didn't deserve to exist for as long as you did, and it's all my fault.

Tags:

Comments

Comments are closed

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen

RecentComments

Comment RSS