Tuesday 30 November 2004

Round Italy on a Vespa

I've had Vroom with a View on my pile of books to read for some time now and I started reading it yesterday. By the end of the first chapter, I was already laughing out loud in the tube, to the dismay of my fellow passengers. The book is about the author, Peter Moore, driving around Italy on a 1961 Vespa motorscooter, trying to live la dolce vita. I just love the way Moore has to describe his travels, with his ability to highlight the good, funny and ridiculous of any weird situation in a way only an Aussie can do. Vroom With A View is one of the best examples of this and is just a joy to read. This book will make you want to travel, will give you the urge to buy a plane ticket to Italy, buy a Vespa and whiz around in the sun. This is what travel books should be about, not a boring story about a scary place far away but an exhilarating tale that makes you want to pack up your bags and go. In this sense, Moore is a master story teller. And when you're done with Vroom, go and read his other books, they are equally entertaining.

Monday 22 November 2004

Google Desktop Search

I am impressed. I installed Google Desktop Search on my work laptop this afternoon, just to try it out. The installation took about 2 minutes. Then it took a few hours to index the whole hard disk but it was doing that in the background without any noticeable effect on the system, apart from the disk activity LED blinking. And then, even with a partial index, it was already returning amazing results and making my job easier. But rather than expect you to believe me at face value, here is what I tested it with:

Code search

While writing code, I needed to use a class that is part of our standard library so I entered the name in the search box. In a fraction of a second (not enough time to blink), I had the list of all Java source files that contained a reference to that class, giving me the original code as well as usage examples; the related Javadoc pages, giving me the documentation for it; all without having to trawl through dozens of directories. Clicking on a Java source file opened it in my preferred editor and clicking on a Javadoc page opened it in the browser. 5 seconds to find more than what I would have found in 5 minutes before: fantastic.

Random search

Just for the sake of it, I entered the name of one of our customers in the search box next. Still less time than you need to blink later, I had my results, about 400 files and 300 emails. Google Desktop Search not only indexes text files and their content but also emails if you use Microsoft Outlook, as well as Microsoft Office files, web pages cached by Internet Explorer and AOL instant messages. The sweet thing with email is that they've obviously re-used some of the code they developed for Gmail because the search engine is able to recognise message threads and will group them as such, providing you with links to navigate from one message to another within the same thread. You can then open each individual message in your browser or in Microsoft Outlook: very, very nice.

That's it, I'm sold. No salesman, no marketing, just a very good piece of code that has been painless to install and has proved useful in less time than a Starbucks barista would need to serve a cappuccino.

Sunday 21 November 2004

Oops!

Just found the pictures of a very unfortunate accident via #!/usr/bin/girl. Note that the registration plate of the bigger truck shows that it was registered in Dublin, Ireland, in 2004. Now, go and explain this to the insurance company! Good thing they have the pictures to prove what really happened.

Accessible Blogger Navbar

As mentioned earlier, I sent a feature idea message to the Blogger team to suggest they consider making their navbar accessible. So far, I got the automatic answer saying they received my suggestion and they were going to have a look at it. Let's wait and see. I'll mention the Blogrolling thing later if the answer is positive.

Second Step, Patch 1

Here we go, just after doing my second template change, I patched it again within minutes to change the style of <code> and <pre> tags. I shamelessly stole the idea from the XStandard web site. So, my thanks to their web designer, I now like the way the content of my <code> and <pre> tags looks like.

Site Re-design, Second Step

The second round of re-design was a short one. This is because I went out last night and didn't see much of the morning today. Nevertheless, I did a couple of changes.

Cosmetic changes

I didn't like my new h4 tags so I removed the italics and modified the other headers so that h3 would stand out from h4 better.

Link and access key to front page

I realised that the fact that the link back to the front page only existed on the archive pages meant that this same link was not available from the permanent pages, where the comments are. It also meant that the presence of this link was dependant on Javascript, which can pose problems, as highlighted in the next section. Therefore, I changed the template to have this link, and its associated access key on all pages. So you can now click the link or press ALT-1 to go back to the front pages, from any page on the site. I'll grant you that this feature is of dubious benefit on the front page itself except that it refreshes it and brings you back to the top.

HTML validation

I ran the W3C validator and the Bobby accesibility validator against the home page. This made me realise that my DOCTYPE was incorrect so I changed it. I then tried to correct all the errors highlighted by both services and am now left with errors in the Blogger toolbar on top and in the fact that I use Javascript to build the Blogrolling link lists, both of which I have no control over. The use of Javascript poses another problem in the sense that, in a browser that has Javascript disabled or doesn't support it, the lists of links will not appear.

In order for this page to be Bobby approved, valid XHTML 1.0, I would first need to convince the Blogger team to make their top toolbar accessible. I would then need to convince the Blogger and Blogrolling teams to make both systems interact better, in a way that doesn't require Javascript. One solution would be to have the ability in the Blogger template to use server side includes so that you could include fragments of code from another source, directly at the server, rather than rely on client side Javascript to do it; then Blogrolling would need to be able to deliver HTML without it being enclosed in a document.write Javascript call. I'll see what I can do. At the end of the day, it doesn't harm to ask.

Saturday 20 November 2004

Site Re-design, First Step

I did the first step of this site re-design last night. In practice, it doesn't look that much different but as usual the devil is in the details.

General layout

I didn't change the general layout much except that I made the main column wider because the column on the right wasn't using all the horizontal space it had.

Headers

I reorganised the headers. The original Blogger template used h3 headers for the date and h2 headers for the entry titles because the date was in a smaller font than the entry titles. However, entries are grouped by date, which meant that the page's HTML had header in an unexpected order, namely h1, h3, h2. So I swapped h2 and h3 to have sensible header levels. Headers on the right hand side column were all h6 headers. I changed them to h2, which is semantically what they are, but styled them differently from the main column h2 headers. I also added an h4 header for my own use in blog entries.

Colour scheme

The most obvious change is the colour scheme, although I did not do anything drastic. I started with the main column that I wanted in shades of blue. To help in this, I used my trusted Color Cube that I bought from ThinkGeek a few months ago. Then for the right hand column, I wanted shades of green, to complement the blue of the main column. That was easy, I just took the colours I had for the main column and swapped the blue and green values in each code. However, the result looked very cold. The answer came from the Firefox logo I had in that column: I needed shades of Firefox brown. Now, brown is a kind of dark orange, that is a colour between dark red and dark yellow. In RGB trichromy, which is how colour codes are specified in a web page, red is very easy: just have a value for red and nothing for green and blue; yellow is easy as well: have equal parts of red and green, no blue; but orange is more subtle because you need to have a non-zero green value but still less than the red value. Once again, the Color Cube came to the rescue. In fact, if you view the source of this page, you will notice that the colours are slightly more subtle than this because none of them is fully saturated, which makes them a bit softer. Then I re-used the same basic colours for the links.

Blogroll

The links in the right hand side column are managed by Blogrolling so that I can edit them easily. The default HTML produced by Blogrolling is just a series of links separated by line breaks. This did not suit me as it is a very bad way to emulate a list. So I wanted Blogrolling to give me li tags without the br one and without a div or table tag to enclose it. Unfortunately, this is impossible to do with the free version so I ended up subscribing and changing my roll to what I really wanted. Considering subscribing also gives me the ability to have up to 10 rolls rather than just one, I created one for books I've read or am reading. Subscribing also allows you to disable the link back to Blogrolling, which I did, not because I don't want to link back to them but because they don't give you any way to properly style it. So I will probably add it again later, in a different way.

Archive pages

I added an access key on the archive pages so that on any of those pages, you can press ALT-1 to come back to the home page. I'd have liked to add access keys for the previous and next archive pages but the Blogger templates are not flexible enough to allow me to do this.

Miscellaneous bits and pieces

At the code level, all pages now come with a DOCTYPE declaration and the main html tag has a lang attribute to help screen readers and other software that rely on knowing the language of the page.

There are a few more things I'd like to do. In particular, I have to go back through all the entries to make sure that whatever HTML code I use follows the standards I want to comply with. But for the time being, this will do.

Friday 19 November 2004

Standards Compliance and Accessibility

After visiting Dan Cederholm's SimpleBits web site, I bought his book, Web Standards Solutions. I've been reading it over the past two days and have been nicely surprised by its quality. I didn't think you could explain how to build a standards compliant web site in such a concise and clear manner. It is by far the best book on the subject I have seen. It also prompted me to have a look at Dive Into Accessibility, an online book by Mark Pilgrim that explains how and why make your web site accessible to disabled users.

In practice, I will have to use this newly acquired knowledge at work to clean up the HTML produced by our software, as well as make it compliant with accessibility guidelines. But before I do that, I thought I needed a bit of practice so I will use this weblog as a test bench. As a result, this site may sometimes look a bit weird over the next few days but hopefully it should look good and be accessible once I'm done with it. So, watch this space!

Friday 12 November 2004

Search wars - which is the best?

Microsoft just released the beta version of their new MSN Search engine, in an attempt to compete with the likes of Google, Yahoo or Ask Jeeves. As a result, the BBC decided to do a comparative test. The Register did a test run as well. What comes out of both is no big surprise: Microsoft has innovative features in terms of user interface to set advanced search parameters but falls short on actual execution of the query by returning results that are less relevant than its competitors. The interesting aspect of this is that the funky UI provided by MSN is just that: a fancy UI that makes it easy to add special keywords to the search box to create complex searches easily. In practice, it should be quite easy for Google to learn from this and improve their advanced search feature to make it more user friendly. But the best piece of advice is given by Tom Geoghegan in his BBC's article: "All three [search engines] could take a leaf out of the butler's book. Ask Jeeves gave a great classification of raleigh into its different definitions." At the end of the day, people now expect a search engine to return lots of hits on fairly generic subject and what most people want is to be able to refine this original search easily.

Another interesting point, made by The Register, is that most search engines, when given a search string like "John Leyden"+"blaster worm", will return a lot of information about John Leyden but very few articles written by him, which is probably what the user is interested in. This is probably due to the fact that web pages are written using HTML, which is a pure page layout language. An HTML page does not give any information as to what the content means. It represents a lot of characters and presentation elements that when read by a human being mean something (or not as the case may be) but it holds no information as to whether this collection of characters and presentation elements resolves into an article about John Leyden or an article written by John Leyden. In practice, the article about probably contains the name John Leyden several times whereas the article written by contains his name at most once or twice. As a result, the article about will be considered more relevant by a search engine but less so by a human being who understands the content of the pages he/she reads. The only way this could ever change would be if web sites start separating content from presentation explicitly, through the use of technologies like XML and XSLT, and search engine take advantage of it. If we were able to reliably perform XSLT rendering in the browser, you could build web sites that, for a given page, provide you with meaningful XML content and a link to a rendering stylesheet. A browser would apply the stylesheet to render the page on screen, while a search engine would discard the stylesheet and only take into account the XML content, thus being able to (at least partially) understand the content and present more relevant results to the user. Maybe in the future, we'll actually be able to find what we're looking for on the Internet?

Thursday 11 November 2004

How to lose a customer

I have been in Glasgow since Tuesday, to help a customer solve a problem. Originally, I was supposed to stay until Friday but it looks like we found what was wrong and there is nothing more I can do to help so I will be going back to London tonight. I flew up to Glasgow with British Airways so my first reaction was to change my return flight. Because I am a BA frequent flyer, I can access my bookings online so I did just that and discovered that the ability to change flights online was planned but not implemented yet. My only option was to phone the helpdesk. So, I dialed the number, listened to the recorded message, pressed 1 on my phone to get to the bookings and... waited... while being told about how easy it was to do things from the BA website; that they valued my custom and would answer my call shortly; that they really had cheap prices; that Club World (aka Business class) is cheaper than you think and has real beds; and kept waiting... In the meantime, as I suspected my ticket was not flexible and couldn't be changed and as I had my web browser open, I connected to bmi and checked availability and prices for one-way flights back home. When I eventually got through to a British Airways agent, I was told that, as expected, my ticket was non changeable, non refundable and that I had to book a new one-way flight. I thanked him, checked prices on BA, just to make sure they were not cheaper than bmi, and finished my bmi booking. Lesson learnt: make it difficult or too expensive for your customers to change their minds and they might decide to take their business elsewhere.

Wednesday 10 November 2004

Toys

I was randomly looking on the net for toys to attach to my Palm Tungsten T3. In particular, I was looking for a camera. Why a camera? True, I already have a 35mm SLR camera and a compact digital one. But the SLR is bulky, the digital one is not the best designed I've ever seen and it sounded cool to be able to take pictures with my palm and take advantage of the large LCD screen. In the process, I found out there was a new Palm Tungsten T5, I also found a very good blog with interesting articles on Palm and iPod toys but only came accross two cameras that could work with my T3, one from Spectec and one from Pretec. Veo looked promising for a minute and then appeared to be only for Pocket PC. All in all, the choice is quite limited. You would have thought that, considering the number of camera phones on the market nowadays, more than one or two manufacturers would have thought of integrating a camera with a PDA. Obviously not.

Friday 5 November 2004

American Election

I have no idea whether those numbers are real or just complete fantasy but this table might explain the result of the latest American Presidential Election.

Tuesday 2 November 2004

Why Don't They Like America?

I just found this excellent article, thanks to Coofer Cat about resentment against America. Written by an American for Americans, it clearly explains the source of anti-American feelings that can be witnessed frequently around the globe. Read it and think about what it says. Then I have two anecdotes to add to it.

Last year, I went to Guatemala and Mexico. On the way out, I had to transit via Houston and on the way back via Newark. None of those two airports have a transit facility which meant that, even though I was only spending a few hours in American territory each time (2 hours one way, 4 the other way), I had to go through the whole immigration procedure, as if I was stopping in the US, which meant filling the green visa waiver card and going through passport control. As it happens, I have travelled to the Middle East for work quite often and my passport has a few visas and stamps from the UAE, Saudi Arabia and Egypt. As a result, custom officers on both occasions did ask why I had "so many stamps from the Middle East." In my case, it just meant that I spent 5 minutes more going through passport control but I suspect having a passport issued by a European country and just being in transit did help.

Last week, I was in Argentina and was having a mate and a chat about everything and nothing with a few Argentines. The subject of the discussion eventually got to the current Argentinean economic crisis, as it does quite often when you chat to people over there. Argentines see the IMF as the source of their problems for being so intransigent about their external debt, while they are very lenient when it comes to the USA's debt which is even larger. Their conclusion is that the IMF is an instrument of the USA and the step from blaming the IMF to blaming America for their problems is a small one to take. Of course, the whole problem is more complicated than this but the resentment is very real, to the point where it surpasses the resentment against the UK over the Falkland War. To explain what it means, I'll just point out that the first man made object I saw in Argentina, when crossing the overland border from Brazil, was a big board saying "Las Malvinas son Argentinas", "The Falklands are Argentinean".

Whatdya mean, free software?

The Register has a short and objective article on the cost of open source and other free software. Their message is that the main cost at the end of the day is support.

Advocates of open source emphasise that, because the source code is freely available, everyone can extend or debug open source software to meet their needs. The reality of things is that few potential users of any type of software have the knowledge, the time or the desire to delve into the code of the software they are using to debug or extend it. Most people want their software to work out of the box and have someone to turn to when it doesn't. A traditional software company that sells a license will sell a support contract with it so you know what to do when things go wrong. The support provided might not always be as good as you'd expect but at least the mechanism exists. With open source software, you don't have this possibility. When things go wrong, you have to turn to newsgroups, FAQs and other sources that are usually written by developers for other techies. If you are not a techie or lack knowledge in the particular field of the software you are using, it can be very difficult and frustrating.

Another aspect where proprietary software can be more cost effective than open source software is training. Companies that produce and sell complex software will also sell training courses to enable their customers to make the most out of it. When I was working for Reuters, ages ago, I went on courses at Sun and Sybase. Those courses probably saved us a lot of money in the long run because they enabled us to understand the products of those companies better and to make better use of them. Also, through the interaction with the trainer and the other students, we were often able to relate the courses to real life scenarios that we had faced. With open source, you are usually limited to online resources or books such as the excellent O'Reilly offering. The problem with this approach is that such didactic material usually answers only part of your problem. You can't just ask a real person "how would I solve this particular real-life situation?"

The solution to both problems with open source software is to have a support contract with a company like Red Hat and this is what makes the cost of open source.

Election Day

American election Day is upon us and it looks like the race is a close one. Now, considering the impact the US have on the rest of the planet, especially through their foreign policy, the result will be very important for the rest of us. Maybe the whole world should be allowed to vote in the American presidential elections? Then again, I'm not sure it would make the whole thing more sensible. Let's wait and see. Maybe it will be as fun as last time and we'll have another recount.

Back Home

The sabbatical is finished, I'm back home and back to work. It's nice to be home but I could have stayed in Argentina longer. The fact that the weather is getting colder and wetter in London might be a factor. Ah well, I just have to have faith in our sales force at work to find potential customers in warm sunny countries so that I can escape the winter blues.