Sunday, 10 June 2007
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.
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.
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.