Tuesday, 25 March 2008

Comic Collector: it seemed like a good idea at the time

Comic Collector main menuIt’s a commonly held – and almost entirely inaccurate – belief that I am somehow a technically apt person. I think this is because I wear glasses. Ever since school, I have often been mistaken for someone who knows about computers. I have even fooled my employers: somehow, I work for a company that builds internet and intranet sites.

Truthfully, however, I am never going to be properly computer literate, mostly because I need to take my socks off whenever I count above ten. I once tried to update Windows 98 on my PC, with the help of a friend. We ended up having to rebuild the computer from scratch. After that, Windows displayed error messages in Czech.

I still have no home internet connection. Even my grandparents have broadband.

A couple of years ago – almost to the day, in fact - I decided that I needed a database to hold information on my rapidly growing array of comics. I trawled the internet for a few weeks, but didn’t have much success: all of the programs I found were ugly or simplistic, or just did something in a fashion I found counterintuitive.

Then I split up with my girlfriend, in part because she didn’t want to be going out with the sort of person who catalogued his comic collection. I went home after the break-up, and while I was there my dad gave me a copy of Microsoft Access.

I learned to use Access at school, during my Computing A-Level. It’s a pointless skill to have, as no one in the entire world uses Access for anything. I built a database that organised magazine articles for my A-Level coursework. It was my dad’s idea; I couldn’t think of anything else to do. While I was home, I dug out my old project and decided to use it as a template for a new, home-grown comic database.

This exercise has taught me that I don’t really build programs so much as grow them, much like I do mould in tea cups – an attitude that is going to get me in trouble at work very soon. My database, which started off as two tables and a simple query, now contains seven tables, nine queries and a user interface that would confuse a submarine operator. Including the inputted data, it stands proud at over 220 megabytes in size. And it’s still growing.

I haven’t even finished inputting all of my comics. It’s been two years.

The problem with my organic approach is that, because I have no plan and because I tend to put the project down and leave it for months at a time, I keep forgetting how it works. For example, there is a nifty feature that displays a random comic cover on the main menu screen. All of the comic covers are scanned in, so when you open the program it will show one of them with the title and issue number. I programmed this feature, and am rightly proud of it. But I have no idea how it works. I checked recently, and my methodology makes no logical sense. For all I know, the database offers a prayer to the fire rabbits of Pluto, who tell it what cover to display.

Yet I still keep dreaming up and adding new features. This weekend, I figured it would be a good idea to be able to assign categories to the comics, so you could search for which ones you have on subscription, or for anything in the Marvel Ultimate Universe, or whatever. It didn’t take too long to add the categories, but I haven’t even started building the relevant searches yet: that’s the work of another weekend. Just adding the categories required me to break and fix the program no less than four times.

It feels like I’ve built the damn thing out of lard. Sooner or later, I’m going to add something slightly too heavy and the whole program will slop into a melted, useless lump. God forbid I try and remove anything. A year ago, in the name of testing, I built a backup table that isn’t connected to anything important. I tried to delete it yesterday, and the whole database crashed. I don’t understand why, and probably never will.

I’m catching up with the data entry; I now have 498 comics logged, out of maybe seven hundred. I have decided that, in order to count this project as ‘complete’, I need to input the rest of the comics, finish the category search and add the functionality to print search results. And then I need to rejig the user interface, simply on a cosmetic level.

This may take some time.

Just one of my queries!
A sample search result

4 comments:

Anonymous said...

you're such a geek.

notwelshman said...

True enough. I'm happy with that assessment.

sparkly said...

I hate people that put 'lol' especially when they didn't actually laugh out loud - however "For all I know, the database offers a prayer to the fire rabbits of Pluto, who tell it what cover to display" did have that very affect.

I love that you're doing this & when you pick it back up probably spend more time reminding yourself of how it works (or try to) than building on it. It made me feel very normal again.

I salute you Mr Timewaster :)

notwelshman said...

I agree with you about the 'lol' thing.

I'm planning a future blog entry about phrases I hate, in which I was going to concentrate on train station announcements. But I think some l33tspk may go in there as well.

Glad you found my phonemic verbilarity to please your physiognomic organisation.