The End

Saturday, 07 January 2006

Time to close, my work here is done.

When I write, I want to spend effort on the words that will find themselves exposed on the internet and this process takes a lot of time. I'm not a blogger; I believe in quality over quantity. Electron Drift has been neglected because of the many other demands on my time. I had a myriad of article ideas and some of them were even partially written, but it was clear that this website was not performing a positive function for me.

This site has never had any real focus; it was just things I wrote about relating to software. Articles about project management, web design, financial mathematics and PC building can be found here: who the hell is my audience? There's only one answer to that question - me.

Thus this place isn't somewhere where developers across the globe congregate and it has never generated any feedback (except when I compelled someone forcibly to become a reader and the feedback was violent in nature). On the upside, however, it has been an opportunity to work on a PHP/MySQL website, and some of my software development thoughts have been committed to electron paper.

So, before I take my leave, here are some of the ideas that I never got to put in the Drift.

A Site Evolves

I wanted to discuss what I had learnt about web site building - not by reading books but rather through the personal growing process of maintaining and developing my own home page. You can see at its extremely humble beginnings in the autumn of 2000:

Intersect, Version 1

The most common reaction to this simple style was the question "why is it green?" which I took onboard and very quickly created a brand new web site in sassy black while labouring under a cold in Tokyo.

Intersect, Version 2

This site was a dog to maintain, as all of the pages were crafted by hand leading to a sporadic update schedule common with most home pages (lots and lots of updates in the first week, and then nothing for sixteen years). It was organised like a file system and worked against what every regular visitor to the site wanted: the new stuff. In the summer of 2002, I moved to using CityDesk to publish the pages automatically, bought a photo database program to create web-versions of my photos quickly and overhauled the site structure.

Intersect, Version 3

This incarnation lasted some time; in January 2004 I decided to reinvent it once more. I wanted its design to look less rainbow-inspired, a bit more clear and simple. I also wanted it to be more in keeping with a new purpose - no longer tracking my time in Tokyo, but simply my life as I was due to return to the UK later that year. And, finally, I wanted to make a "proper" web site, adhering to standards and be fairly robust across platforms and browsers. Fortunately, retaining CityDesk in the new version meant I would not lose any content.

Joel Goodwin: Home

To this date, I'm still comfortable with the rebranding as "Home" instead of "Intersect". I was fairly confident, however, that I didn't want to be a web designer after the trauma of this operation...

CSS: Not As Fun As CSI

The last revision of my home page had meant to be XHTML 1.0 standard. To bring this about meant a lot of work with CSS (Cascading Style Sheets). When I had previously dabbled in CSS at the time of the third revision of my home page, broswer support had felt limited. Things had moved since then, but...

Implementing CSS proved to be an incredibly frustrating exercise and I am not the only one who thinks so. I am not against the principle of divorcing content from layout but the universe is not a simple place.

First, some of humanity's greatest achievements are to be found in the marriage of layout and content. However, the concept that the two are permanently separable is one which fits a developer perspective very well, and thus CSS has strong support amongst the professional web community.

Second, using CSS is like trying to write code where the end user owns the compiler. You're not sure which compiler the user will use and each one will have its own flaws and idiosyncracies. It's even worse than targeting the vague "PC platform".

Third, due to the inconsistent behaviour of the browsers, it is not easy to learn through dabbling and playing as many of us do when trying to pick something new up. The learning curve is damaged, so unless you are going to spend your every business hour in the company of web page development, CSS - unlike the simplicity of HTML - will resist being properly understood. Many CSS implementations are also strewn with hacks which work around browser bugs and lack of CSS support.

If you've managed to scope CSS, then it seems like everyone else is dense for not getting with the programme. However, if you find yourself continuously struggling with it, the enlightened on the other side of the fence look like smug gits with sniper rifles atop their ivory tower. The stage is set for fiery debates across the forums of the internet, not all of which have been built in CSS I should point out.

I don't have any answers, and I'm sure CSS is a step towards a future where content and layout are simple to separate, but right now all I can recall is the torture I endured during my CSS war games.

The Design Fattens

I was actually going to do a little series to explain design patterns. In preparation, I had started to read the famous Design Patterns book.

The book is written in desert dry style and you are encouraged to read it like a hypertext web site, jumping back and forth between pages to understand a pattern as it is introduced. For all of the praise heaped upon it, I was not impressed. Another issue I faced is that most of my business work discouraged object-oriented solutions (working in VB and the like) and the patterns just weren't applicable in my sphere. I am sure I'll finish reading the book one of these days.

I am still undecided on the patterns movement. On the one hand, I applaud the idea of encapsulating solution patterns. On the other, we now have a monsterous religion where every fucking piece of code has to be a pattern, whether it is appropriate or not, and solutions are no longer explained in terms of business objects but patterns.

Patterns have become a new language for certain realms of development which means if you don't know the lingo, you're going to need a survival guide to get around. I find it ironic that developers love to bitch about the continuous stream of management jargon and buzzwords.

SQL: Broken Heart

Following my previous rant against SQL, I came across the site DB Debunk. Although this chapel for the converted is highly impenetrable for the casual tourist, I persevered and what I found reinforced some of my earlier opinions on SQL, while others collapsed.

I had never learnt relational theory as a small boy and was taught the essentials of using modern databases on the job. Buying Fabian Pascal's book Practical Issues in Database Management helped bring a lot of things into clear focus: why NULLs don't add value (ho ho), the distinction between the various normal forms, lack of solid support for integrity constraints, and an over-emphasis on performance that strangles the life out of progress towards a better standard.

Just like CSS, relational database theory is another battleground between two factions. There are those that side with purity, arguing that no modern database is a true relational implementation. There are those who side with practicality, arguing that the tools we have are just fine; you will also find amongst this crowd an elite force fighting for object-based database systems.

I'm much closer to the relational theory zealots in this arena, but unfortunately everyone is far busier shooting than doing any negotiating. DBDebunk, instead of being a site where you can find out all about the disparity between relational theory and current database practices, has become a place where the valuable content is priced and the only freebies are empty rheotoric that uses strangers found on the web to be laughed at by the inner circle.

These issues are complex and to start shouting about them in black and white terms is a prerequisite for war.

Closing Theme

Welcome to the end of this particular journey. Electron Drift is being put into cryo stasis and there is no further planned activity for the site. This may not be the final, final, final end; if I feel that I have some interesting things to say about development and the time to turn those things into something worth reading, I may revive Drift one day. And add comments like I always planned...

Anyhow, if you've found yourself here by accident, I hope you can locate something which takes your fancy before you continue your web wanderings elsewhere. Just remember to turn the lights out before you leave.