about standards, webdesign, usability and open source

I’m back

I have been neglecting my weblog for a while. It’s not that I haven’t had any ideas or events to write about. On the contrary, life has been extremely busy lately. On April 27th I got married – which took a lot of preparation but was definitely worth it. I also moved out of my old apartment and my wife and I are now living in a brand new house of our own. Things are finally settling down and I hope to get a bit more time to work on some of the ideas I had over the last couple of months.

I also met Scott Switzer, the leader of the Openads project, last April. He flew in from London and he explained how the project was doing in my absence. Openads is a continuation of phpAdsNew for which I was the project administrator and lead programmer back in 2001 up to 2003. We talked about a lot of interesting subjects and it still amazes me that this little project that I was involved in grew into something this big.

We also talked a bit about the current user interface of Openads – which hasn’t changed at all over the last couple of years. Scott told me that most of the users that are also familiar with competing products favour the interface of Openads, simply because it is easy to use and still very powerful. Unfortunately it has also become technologically dated. When I was involved, we used to mix the PHP code with the HTML. Fortunately a lot of work has been done on separating the code from the user interface. But still, if you look at the HTML code, I can’t help but feel a bit of shame.

Layout tables, spacer images, in-line Javascript event handlers– after looking at the code it definitely feels like I have been transported back to a time when standards were still an utopian idea and Internet Explorer was still the reigning champion of the World Wide Web. Unfortunately these problems are not only visible to the developers.

A regular user does not care what technology is behind the interface that he uses. He does not care that the HTML does not validate. Sometimes he may not even know what HTML is. He only cares about the end-result and in the case of an user-interface, the usability. What determines the usability? Well, one thing is the layout – and that is still pretty good for Openads – but also the speed of the application. A regular user certainly cares about the ‘snappiness’ of the interface. If an interface feels slow it interrupts your workflow and stops your train of thought.

By moving over to a CSS based layout you can easily strip off half of the HTML, perhaps even more. All of those spacer images are also not necessary any more. And by using CSS we can also eliminate most of the images we are currently using for the graphical design. Next we can drop all of the in-line Javascript and event handlers from our HTML code and move them to lightweight external files that automatically attach the right event handlers to the correct DOM nodes. Finally we can do away with all of those different image files by creating one large file that contains all of our icons and use the CSS sprites technique for showing an icon. All techniques that are quite common today, but were still largely unknown (to me) when I created the original interface.

My estimate is that we can reduce the data that is transmitted for every screen in our interface by at least three-quarters. Now imagine what we can do for certain screens if we also started using AJAX for loading datasets.

Our main navigation is currently using a table that is essentially a collapsed tree that can be expanded. If you want to find a banner you expand the advertiser that owns the banner and then find the correct advertising campaign and expand that to reveal the actual banners. Every time you expand or collapse an item a whole new HTML page is retrieved from the server. This is certainly not necessary any more. We can could easily use AJAX for loading only the information that needs to be inserted into the table when we expand an item. For collapsing an item we could simply temporarily hide it, and if we need to expand it later on, we can make the hidden data visible again, without having to load the exact same data twice.

When I talked to Scott, we also spoke about getting involved with Openads again. I haven’t made a decision yet, but I do kind of look forward to the prospect of working again on the interface. It’s something I spend a lot of time on previously and it is still something I am proud of – even though I have some mixed feelings about the technical implementation. Even if it turns out that for some reason I will not get back involved, Scott certainly left me with the feeling that I left the project in very good and capable hands.

4 Responses to “I’m back”

  1. Philip Withnall wrote on June 10th, 2007 at 4:55 am

    Congratulations on your marriage!

  2. admun wrote on June 13th, 2007 at 11:41 am

    congret! welcome back.

  3. Jonathan wrote on June 19th, 2007 at 9:26 am

    Congratulations and welcome back :)

  4. Matteo wrote on June 29th, 2007 at 3:29 pm

    Congrats Niels!

    I understand that you didn’t make a decision yet, but I can’t help looking forward to see you involved again :)