So close, yet so far away

I use Gmail as my email client and it works really well. One thing that I'm really surprised by is how well keyboard shortcuts works given that it is just a web page. Google has been adding shortcuts successively and now you can do almost anything using just the keyboard which I think is nice. Today I say that they added the final touch to this: a help screen showing all of the keyboard shortcuts. To quite from the announcement: "It's easy to remember: just type "?" any time you have a question about a shortcut and need a reminder." That's just perfect! Now I can control Gmail pretty much entirely from the keyboard, and I can always just press "?" when I don't remember a shortcut.

Except for one small detail.

Continuing to quote from the announcement: "Then click anywhere off the shortcut menu in Gmail to dismiss it." Aaarrggghhh! So to dismiss the keyboard shortcut help screen I have to use the mouse?! The reason for having this help screen in the first place is to help me as a user use the keyboard more. Using the mouse shouldn't be necessary here!


I hope the Gmail team have an easy fix for this and can implement it quickly.

EDIT: Sorry for my whining. There is a way to get the screen go away using the keyboard. Press escape.


New Blog

I've mentioned before that I've been thinking of starting a new blog which focuses on what I do for a living, namely computer science. Well, today it happened. The blog is called Computational Thoughts and the inaugural post is Learning Monads in 1996.


Our understanding of the universe

I have a lot to say about our current understanding of the universe. But I won't. I'll just show the following comic which sums it up pretty well:


The Vista Problem

So I've been running Vista for a little while on my new laptop. Not that much I should add though as I almost immediately installed Ubuntu as well. But every once in a while when I want to use iTunes or play one of those games that only run on Windows I tell grub I want to start Vista.

I'm not very impressed with Vista. What's the difference compared to XP? A bit of eye candy and an annoying dialogue that pops up every now and then to ask if I really do want to install a program (or something similar) when I'm trying to install a program (or doing something similar).

I hear Vista isn't selling so well and I'm not surprised. Why would anyone want it when the only thing it does is get in the way? We were promised lots of cool things like a new file system to rule them all. But feature after feature were cut until only DRM was left and I don't know of any computer used who had that on his wish list for new OS features.

John Dvorak's hypothesis about the failure to produce something new in Vista is that Microsoft has gotten sidetracked with all kinds of other projects. He thinks that Microsoft is looking too much at Google and losing sight of it's core business. I doubt that. Microsoft is a big company and it can do several things at once.

My hypothesis is the following: Microsoft is finally paying the price for backwards compatibility. The reason Microsoft can't deliver the new features they promised for Vista is that they're simply too difficult if they have to maintain backwards compatibility at the same time. Their codebase is deteriorating because of all the hacks and special cases they have had to insert just to make sure old programs work. And Microsoft has shown that it can be done, at least to some degree. But the deterioration is bound to catch up with them some time and I think this time has come. I think the only way for Microsoft to stay alive in the OS department is to cut backwards compatibility. Only then will they be able to add some new interesting features. On the other hand, cutting backwards compatibility will mean that it will be just as easy for people to switch to any other OS as to Microsoft's new one and that doesn't sound so good for Microsoft either.

Hmmm. If I'm right Microsoft has painted themselves into a corner. Not that I mind though.


Word day

As I have mentioned earlier I like to learn new peculiar words. And usually these new words show up one at a time which makes it easier to learn them. But today I've come across a whole fountain of exciting words and I'm not quite sure how to deal with it.

It all started out nicely when I was reading a research paper which had some exceptionally well written prose. The research content was good alright but it was equally readable for the language. So, in the middle of the paper I come across the word "chutzpah". Never heard of before but clearly derived from Hebrew. Clearly a useful word.

As a matter of fact I've taken two lessons in Hebrew. I have a friend who is pretty much fluent in Hebrew and he was going to give a course in it. Since he had very little teaching experience he wanted to practice lecturing and for that he needed some students. I happily volunteered. But I can't say I remember much of it now though.

The next word that showed up today was "trifecta". Exotic alright and semi-useful. But two words in a day is one too much if you don't want to spend too much energy on learning them.

But then the real killer came. A link to the site wordsmith.org. A complete treasure trove of cool exotic words. But it might be a bit more than I am ready to handle. We'll see what I do with it. Btw, I got the link from the freakonomics blog which have provided exotic words before.


Bourne Ultimatum

Finally! Finally, finally, finally! I've been waiting sooo long to go see this movie. And tonight we finally saw it. The Bourne Ultimatum.

This post will contain some spoilers so if you haven't seen the movie yet you should go see it right now and then come back.

Ever since I heard that Ultimatum was being made I have been eager to see it. I've seen the two first Bourne movies several times and I still enjoy seeing them. They are not your ordinary type of action movies, they have a smartness which I think is unparalleled in the genre together with some very well portrayed characters. And of course a truckload of sweaty action. All together they are among my favorite films which I come back to and watch over and over again. So you can imagine my expectations on the third movie.

Do Ultimatum deliver? Oh yes. Paul Greengrass, who made Bourne Supremacy, is back to make the final installment as well. He is now my hero. My current feeling is that Ultimatum is the best movie in the trilogy and to achieve that is no small feat. He has managed to step up almost everything. The fights are sweatier than ever, the surveillance scenes are more intense and the car chases... what can I say. I didn't think there was much to add in that area but apparently I was wrong. The only thing which hasn't been ramped up is the character development. But that is only natural as we know several of the characters quite well by know.

The movie contains quite a few references to the two earlier movies, most of which are rather subtle. For example, Bourne comes back to Tangiers. It is mentioned briefly in Supremacy that he was there but the reason for him coming back now has nothing to do with that. Another reference is when Nicky colors her hair make her self less recognizable, it looks very much like when Marie does it in Identity. A more obvious connection with Supremacy, which is also a very nice piece of scripting is how they include the end scene of Supremacy right in the middle of Ultimatum. I totally did not see that coming but I very much enjoyed it. Simply brilliant script writing!

The perhaps most beautiful reference to the older movies is the end when Bourne is shot and fall off a building and into the water. It's exactly how it all started, with Jason Bourne failing his mission and being chased off a boat and shot. We see pictures of him floating in the water motionless cut with a kind of epilogue showing what happens with all the other characters in the end. And finally when we hear on the news that they have found traces of Bourne he wakes up and swims away. Pure beauty in my eyes. I see it as a kind rebirth of David Webb. He is no longer Jason Bourne and in the water he gets his rebirth. It also gives closure to the story, it starts where it ends.

If I live I'm going to watch this movie many times. Maybe I'll have something more to say about it then, these are just my initial impressions of the movie.

Oh, and I was right about the end credit music. It was indeed Extreme Ways but it wasn't the same version as in the previous movies. It didn't sound like Moby this time, probably some group who'd made a cover. I would have preferred Moby's version.


Knuth and the Second Law of Thermodynamics

Nobody wants to argue with Knuth – it is the equivalent of arguing against the second law of thermodynamics.

From a nice article about Mature Optimization at Cowboy Programming.


A quote to make up for my lack of blogging

I've been blogging very little lately so I just thought I'd throw in a funny quote that I just read.

Don't anthropomorphize computers. They hate it when you do that.


Stuck In Your Head

I currently have a song very firmly stuck in my head.

I was watching a rerun of Scrubs late last night and after the episode I started humming on a song. After a while I realized that the song I was humming was from a Scrubs episode, but not the one that I'd just watched. It turned out to be the following song:

I've seen this Scrubs episode quite a number of time and I really like it, especially this sequence with Colin Hay singing "Overkill". It's just such a catchy song. I consider this episode a real classic among Scrubs episodes. It's not just that's good, it contains so much that is the essence of Scrubs, with all the relational conflicts and stuff.

Anyway, so how does songs get stuck in your head. It seems research find it mysterious too but this article explain it as some kind of brain-itch. And the cure seems to be to scratch it. The thing is, I seem to be extremely susceptible to getting songs stuck on my head. Once I had "Norwegian Wood" by Beatles in my head for several months. But it should be said that I didn't listen to the song even once during that period and when I finally listened to it a couple of times it went away. So I'll be listening to "Overkill" quite a lot for a few days now, so as to "scratch the itch". But not that I mind, it's a good song.

An Ingredient For A Good TV Show

I had a bit of an epiphany the other day about popular TV shows. As I mentioned in my last post the thing I like about The Simpsons is all the small absurd jokes they throw in all the time. But it's not the only show that uses this.

There's another show that me and my wife watch semi regularly, even the reruns, is Scrubs. Based on it's imdb rating I'd say it's a pretty popular show. That show is good for many reasons but one that I like in particular is the absurdities it throws in, all the weird behaviors and comments from the characters. While the humor is different from The Simpsons the concept is pretty much the same, although applied to a completely different show. And it works just as well in both.

Another example is Ally McBeal. The thing that made it popular and stand out was how it showed small clips of how the characters felt and what was going on in their minds. Not seldom was this rather weird and embarrassing stuff. Although different it is also in line with The Simpsons and Scrubs. Unfortunately the writing in Ally McBeal went downhill after a few seasons and the absurdities wasn't that exciting anymore. In my mind that's one important reason as to why it lost in popularity.

So there you have it. A nice ingredient for making a fun TV show. Have people say, think and do not only fun and weird stuff but push it towards the absurd. Now I only need to think of a set of characters and a cool environment for them and I'll start writing a pilot.


The Simpsons Movie

We went to see The Simpsons Movie earlier tonight. It was good but it wasn't as good as I had hoped. The problem? I think it had too much of a story.

The defining things about The Simpsons for me is all those absurd jokes they throw in constantly which are just out of the blue. Sure, the episodes in the series do have some kind of a plot or story. But I find it secondary, it just sets the scene where they can do all these short absurd jokes.

So the problem I have with the movie is that they've cut down on the short absurd jokes. All jokes are longer and relate much more to the main story than in your typical episode. I think it's for the worse.

But that being said, I still had a lot of fun and I would still recommend the movie. It just that I don't think that it lives up to the standard of the show. If you haven't seen it, it's a good hour and a half.


Who does what in the U.S. legal system

There is no shortage of crime shows on TV. Solving mysterious, perverse and/or obscene murders seems to be a very popular spectator sport. I also watch my share of these shows. Some of the ones I watch include CSI, Jordan, Law & Order, Shark and Numb3rs. But while I enjoy these shows they also greatly confuse me.

Solving cases typically involves evaluating evidences, interrogating suspects and witnesses, checking alibis and trying to fit all of it together. The peculiar thing with the crime shows is that all of these things are done by a single profession in each show, but the profession changes between shows. It ranges from the coroner, crime scene investigators to cops or lawyers, all depending the particular show.

The only show (or rather set of shows) that seems to have a more realistic tack is Law & Order. They have all the professions of the legal system represented and working together. It's actually kind of cool to see how the cases starts out with the detectives to eventually move over to the attorneys who needs to make the final conviction happen.

Sure, I realize that this discrepancy between between series is there to cut down on the number of main characters and make their work seems central and important. But when you compare CSI and Shark it just seems ridiculous. Obviously, they can't both reflect the reality. And even if the truth is somewhere in the middle the gap between them is so big that I think they're both pretty far from how it's really done.

Oh well. I'm glad I got that off my chest.


The IQ of a group

A funny quote:
The IQ of a group is equal to the lowest IQ of a member in that group, divided by the number of people in that group

One of the teams in the ICFP programming contest had this as its group name.



I'm always excited to learn new, almost useful, funnily sounding words. Today I've learned a new one: aptonym. Wiktionary describes it as:
A proper name that aptly describes the occupation of the person, especially by coincidence.

Unfortunately I haven't been able to think about any person who's name is an aptonym. However, the place where I learned about this word, this freakonomics post, called for it's reader to supply some examples. You'll find some really good ones there.


A bit of Wisdom

I don't know about you, but I sometimes feel something lacking in the blogosphere. I read a lot of blogs and sure, it's both fun and educational, I'll give it that. But it's often very shallow. Short pieces of text about some recent event which the writer has probably thought about for maximum a week. What I want is a little more contemplation, ideas which have matured from decades of experience, some deep thoughts. In other words, I want a bit of wisdom.

Now, wisdom is hard to come by, even in the real world. And even when you find it you won't always recognize it as wisdom. It can certainly feel a bit elusive that way.

But there is one blog that I read occasionally which I think offers a bit of wisdom every know and then. It's the raganwald blog by Reg Braithwaite. Somewhat surprisingly Reg's blog is mostly a software technology blog and I certainly don't expect to find any deeper thoughts there. Once in a while you can find some good advice on such blogs but anything out of the ordinary. But Reg has learned some hard lessons over the years and seems to be a contemplating man so he has some very valuable things to share. Although most of the things he says is phrased in terms of programming, software development or management many things are generally good lessons that have much wider applicability.

I will refrain from throwing out quotes here, instead I'll give a list of some of my favorite posts raganwald: What I've Learned From Sales, Part I: Don't Feed the Trolls, What I've Learned from Sales, Part II: Wanna Bet?, R-E-S-P-E-C-T and Still failing, still learning. I'm sure there are many more, I haven't read all of his posts. Also, many of the more technically oriented posts are very worthwhile reading, in case you're interested in the subject. Maybe I'll talk about that another time.


End Credit Music

Which piece of music is the most important in a movie? Well, I'm a film score buff so I wouldn't start ranking the music but there is one piece of music that gets an awful lot of attention from the studios. It's the end credit music. It's the music that sets the mood when you leave the movie theater and you will carry with you when you've finished seeing the movie. So naturally quite a lot of thought go into getting the right kind of mood into that piece of music.

I usually don't write lists on this blog but today I give you a list of some of my favorite pieces of end credit music.

What's my criteria for good end credit music? The crucial thing is the first twenty or thirty seconds of the piece. It has to suggest the right kind of mood which has to be in accord with the rest of the movie. It doesn't have to be a very good song, for instance, I don't particularly like Wake Up but it's beginning fits very well in Matrix, and that's what's important.


iPod woes

It's supposed to be the best mp3 player on the market. For me it has meant nothing but trouble.

Where I work, at the computer science department at Chalmers, we have a very nice tradition to buy a gift for any person who successfully defends his or her PhD thesis. This spring it was my turn to get a present from my colleagues and to my delight they gave me a fifth generation iPod sporting 30Gb of memory and the capability of showing movies. Awesome. Or so I thought.

It all started when I unpacked my brand new iPod and plugged it into my computer. For once I had actually read the manual and did exactly what I was told to. Yet after a short moment the player became unresponsive and it seemed like there was no way I could get it to do anything with it, even turn it off. This is why one of the first things I learned about my iPod was that it has an equivalent to Ctrl-Alt-Del, a key combination which reboots the player. So after rebooting things went fine for a while.

Unfortunately I've needed the rebooting feature quite a lot. It often happens that when I plug the iPod into my laptop it just freezes. But this is not the only annoying thing it does. Often when I've synchronized it with my laptop it seems like the iPod was totally erased! I can't see a single file, music or otherwise. The first time this happened I was quite alarmed. What had happen to all my music?

Fortunate things work much better when I synchronize with my wife's computer. First of all the iPod doesn't hang or lose all it's music. But what's even better is that it restores all the music that seems to have been lost. I think what happens is that the file system on the iPod becomes corrupted when I sync with my laptop and my wife's computer can somehow repair it.

What am I doing wrong? I'm running both the latest ITunes and firmware on my iPod and I haven't fiddled around with it in way that could potentially be harmful. I'm playing strictly by the book.

It seems there is a short term solution to this and that is to only use my iPod solely with my wife's computer. I find this rather unsatisfying as her computer is painfully slow and it makes me very impatient. I guess I'll have to buy her a new computer :-) But at the end of the day, I'm rather disappointed with the instability of my iPod. I had quite high expectations on the ease of use and robustness and it has failed miserably in this respect.

Steve Jobs, if you read this, please fix the software on your music player so that it doesn't behave like a Windows computer from the 90's.


Super Villain

Your results:
You are Dr. Doom

Dr. Doom
Mr. Freeze
The Joker
Lex Luthor
Poison Ivy
Dark Phoenix
Green Goblin
Blessed with smarts and power but burdened by vanity.

Click here to take the Super Villain Personality Test

Apparently I'm Doctor Doom.

If you want to take the test yourself try it out at the "Which Super Villain are you?" quiz. Found via Andre Pangs blog.


Silly bug in Gmail

Not long ago I wrote about how much I love GMail and about a particular feature that I like. Well, today's post is about a bug in GMail which just feels outright silly.

GMail has this feature that you can use it to handle other email accounts. It goes like this: you set your other email account to forward it to your GMail address. Then you can tell GMail that you want to be able to send emails using that email account. In order not to enable fraud or any wrongful impersonation GMail sends out a confirmation email to the address you want to use and if it comes back properly then you can click on a link which enables you to use the other email address when sending emails from GMail. Pretty straightforward.

The other day I was going to add another email address to my GMail account just as I described above. This is where I bumped into the bug. When GMail sent out a confirmation email it didn't come back. I thought that was odd and sent another one. It too seemed to disappear somewhere on the internet. Since this address wasn't very important to me I just left it alone and went to work on other stuff.

The surprise came when I opened the spam box to weed out the false positives (something which I get at least once a week). Lo and behold, there were the two confirmation emails sent out by GMail before.

Excuse me but this just seems silly? Sure I can see that the email has to go through the spam filter. But there are many good techniques for creating a little back door in the filter such that you can make sure the confirmation emails always goes through. This just shouldn't happen.

Well, I've reported it to the Gmail team. I hope they get around to fixing it soon.


Gravity Waves

The following video is an awesome time lapse showing gravity waves in the clouds.

When I first read that the video showed gravity waves I thought it was those pretty much undetectable waves generated by gravitons. But I can't say I was disappointed to see this magnificent display of rolling clouds. I hadn't heard the name "gravity wave" before but I'll be sure to keep it in mind. Oh, what I wish that I could watch these clouds in real life. Another form of wavy clouds that I really wish to see is Kelvin-Helmholtz wave clouds.


Memorable Defences

So it turns out I survived my PhD defense. It was held on Match 23, a month and a half ago roughly. I must say it went very smoothly, almost too smoothly perhaps. The opponent was Jakob Rehof.

I should perhaps say something about they way defenses work here in Sweden. They're always public, anyone can come and listen. There is an opponent who is an expert in the field and who asks most of the questions. Then there is a grading committee, usually consisting of three people, with varying degree of expertise in the field. My committee consisted of Fritz Henglein, Kostis Sagonas and Sibylle Schupp. They also get to ask questions, after the opponent is done. Lastly, anyone in the audience can ask questions to the defendant. After the defense the grading committee will meet and decide whether to pass or fail the candidate. They always pass. Some of you might think that I'm joking here but I'm not, in Sweden they always pass. The reason is that if the PhD candidate might not pass then the opponent should say so before the defense, not after. So once the opponent has agreed to having the defense you know you're going to pass.

Having had my own defense got me thinking about all the defenses I've attended through the years and I thought I'd give a little tour of the ones that I particularly remember.

The First Defense I attended I think was for my cousin Åke Wallin who did his PhD in the area of neuro-psychology. He studied the episodic memory of very old people, in their 80's or 90's. Studying such old people is rather unique, there are very few places in the world were there are large enough groups of old people to make experiments statistically valid. Stockholm is one of those places and is where he conducted his research.

The First Computer Science Defense I attended was that of Urban Boquist. He had written a whole program optimizing compiler for Haskell. I found his thesis a very exciting read, it's really well written and has lots of cool optimization described in a very clear and concrete way. Very appealing. A guy call John Meacham also found this appealing and has taken the ideas from Urban's thesis and put them into a publicly available Haskell compiler called JHC. John has also made sure that you can order Urban's thesis online.

The Best Defense is without a doubt that of Johan Agat. Johan worked in the area of computer security and studies timing leaks. He pioneered the technique of cross-copying to pad programs to eliminate timing leaks. The reason I found is defense so good is two-fold. First, the opponent, Jens Palsberg, gave an exemplary introductory explanation to Johan's work. Everyone understood it. It was as clear an explanation I have ever seen. Normally on these occasions it can be hard, even for other computer scientists who are not experts to follow these explanations. Second, Johan did an amazing job at answering all the questions he had. Even hard, deep question he had very good and well thought through answer to. Very impressive. For these two reasons I find this defense the best I've ever attended.

The Most Pathetic Defense was that of Koen Claessen. If you know about Koen you know that he's an extremely good researcher and his work during his PhD was no different. In fact, it was exemplary. Which is why the opponent and the grading committee really didn't have anything to ask about. It was all just praises from their side, no criticism or hard question. So it wasn't much of a defense, more like an appraisal. Hmmmm.

The Longest Defense goes to Karol Ostrovsky. The poor guy. It seems his opponent and grading committee wasn't properly informed of the standard procedures here in Sweden. Normally a defense take around two hours. Karol's must gone on for like four hours or so. And since it started at 10 am and going well past lunch there weren't many people left in the auditorium the last hours. I didn't stay either, I simply had to get some lunch. But eventually Karol also became a doctor.

The Most Nerve Wracking Defense was obvious that of my own. But as I said, it all went very well in the end.


Quarter Finals

The quarter finals are under way in the snooker world championship in Sheffield. All the players that are left are all good candidates for the trophy. Well, there's at least one match that seems decided, Murphy has a really long way to go if he wants to beat Matthew Stevens. But still, there's a lot of good players in very good shape.

I'm tempted to make some guesses as to how this is going to end. But given that the candidates that I flagged for earlier are both out I probably shouldn't. Although it gives me some comfort that I did a little better that the Swedish commentator on Eurosport: he guessed Marco Fu and Ding Junhui in one of the semifinals, both of which were eliminated in the first round. Sure, I hope for Ronnie O'Sullivan, but Higgins is looking mighty good right now and may just prove to be too difficult. I'm also very impressed by Selby and Stevens. In the end, this is going to be a very tough championship to win.

I've had a bit of an insight about snooker while watching it during the last week. I'm really impressed by the mental strength of the players on the tour. They just never give up. Even when they need several fouls to beat their opponent in a frame they keep going. Likewise many players keep playing very well and fight hard even when their chances to win a match is pretty much zero. You don't see this kind of morale in many other sports.


The Principles of Pool and Billiards

In these days of intense Snooker watching I went looking for some information about the physics behind it. I've been doing some fiddling myself but I wanted to see if there was some more material which fleshed it out in more detail. And I struck gold indeed. The pearl of a web site that I found is this: The Illustrated Principles of Pool and Billiards. The web page is the online resource to a book written by an associate professor in mechanical engineering. But while most online resources to books usually don't contain that much material this one is absolutely packed with stuff. For instance is seems that all the formulas and their derivation from the book can be found on the web page. This includes stuff like Relationship between the amount of throw and cut angle. But the real fun is in the supplementary material not found in the book. Here he goes into explaining things like spin and other fun phenomena. Make sure to check out the "Post-impact cue ball trajectory for any cut angle, speed, and spin" derivation for instance. Now I got some nice reading in the breaks in the snooker matches.

Release Me

Saab has made a commercial which has turned out to be very popular. The thing that really sticks out is the music. It's a song called "Release Me" by a Swedish band called Laura. I hadn't heard of them before but apparently they've had an enormous boost from having their song in the commercial. As it turns out "Release Me" is currently the no. 1 selling song on the Swedish iTunes Music Store.

Like everyone else I also like the commercial but I don't think the song in it's entirety is as good as the special version they made for the commercial. It's still OK though.


Snooker World Championship

Ah. It's that time of the year again. The World Championship in Snooker, which means many ours a day in front of the TV.

Actually it already started yesterday and with one of the favorites being eliminated immediately. Graeme Dott, the defending champion and ranked no. 1 on the provisional world ranking lost against Ian McCulloch. It's clear that the pressure was too much to handle for Dott; McCulloch didn't win because played particularly good, he just had a lot of luck and could benefit from the fact that Dott's nervousness made him unable to pot. And so the curse is still unbroken: no-one has ever defended the world championship title when they won it the first time.

So who's going to win? It's harder than ever to predict winners in snooker tournaments but that makes it even more interesting to try. One player that has stood out this year is Neil Robertson, Australia's young snooker wiz. He's already won two tournaments this year, a feat in itself these days. I think he will make it quite far.

Another player which always plays well is Ken Doherty, Ireland's no.1 sportsman ever. He never has these slumps of bad snooker that some of the other top player has and so you always have to take him into account. Doherty plays a very graceful snooker and it would be good to see him make it far in the tournament. He has won the World Championship once before.

A lot of people has put money on Ding Junhui, the extremely talented Chinese teenager. However, his odds went down dramatically when it was revealed whom he was going to play in the first round: Ronnie O'Sullivan. That match is currently in a break and will finish tomorrow, but so far is seems that O'Sullivan is giving Ding the same treatment as in the Masters Final. Ronnie O'Sullivan currently has a 8 to 1 lead where they play first to 10. So I think we can safely rule out Ding Junhui from this years World Championship. It's actually been kind of sad to see him after the Masters Final. He hasn't been himself and hasn't played very well every since then. It seems he hasn't been able to recover from the total knockout he got from his idol. And things are not going to get better if he gets the same treatment in this tournament. I hope that he can pull himself together over the summer break and come back to the extremely fine snooker that he is able to play in his best moments.

What about Ronnie O'Sullivan then? He should surely be a favorite to win. Yes, he's always a favorite in every tournament but I don't have very big hopes despite his brilliant play against Ding. He has this problem of maintaining his good play throughout a whole tournament. Sometimes it seems as if he just can't motivate himself to play good snooker, especially against players that are not among the top ten. It's like it takes a real challenge for him to even bother. So, while I think that Ronnie O'Sullivan is the best snooker player in the world I'm also aware of his shortcomings. But I'll be happy to be proven wrong.

There are of course a couple of other players that are good contenders. Stephen Hendry, Peter Ebdon, Mark Selby, Shaun Murphy and Matthew Stevens are some of those to look out for. But the names I mentioned above are those that I wanted to comment on. It's going to be an exciting couple of weeks.


One of the things I like about gmail

I've been using Gmail now for longer than I can remember. And I still think that it's the best email solution out there, all things considered. Today I just want to write a few words about one of those little things that took me a long time to notice but which Gmail gets right. Please bare with me here, it's going to take a little while to explain all the background behind this.

Most email clients have a split view. One part of the screen shows a list of messages in the current mail box, typically the inbox. The other part shows the contents of the currently highlighted mail. Gmail does this differently. It starts out by showing only a list of messages (or conversation in Gmail lingo). When you select one of the conversations it changes view to only show that particular conversation.

When I use Gmail I mostly use the keyboard. To facilitate this Gmail has a little cursor which can be moved up and down between the conversations in the list view. When the cursor points at a specific conversation one can for instance open it, to see the actual conversation. When going back from the conversation to the list view the cursor still points at the conversation which we looked at last.

When viewing a conversation one can choose to archive it. If you started out from the inbox then that will mean that the conversation is removed from the inbox and Gmail switches back from the conversation view back the viewing the inbox. Now, here's the thing: since the conversation that we just looked at is removed, which conversation should the cursor now point to? It seems that there is no obvious right answer here. We could choose to point to the conversation above or to the one below, but any of those choices are bound to be wrong half of the time.

The way Gmail seems to do this is that it remembers the last two conversations that I looked at. If the second one I looked at is below the first then it will make the cursor point to the conversation below. Otherwise to the conversation above. For me this scheme works incredibly well! It does the right thing at least 90% of the time. I'm just so amazed at the fact that they've obviously given this very small detail a lot of thought and come up with an incredibly useful solution.

As always, hats off for Google.

Amazon embarrasing itself

I've complained before about Amazon's book recommendations that I get via email. But today's recommendation just totally baffles me.

Yesterday (or the day before, I forget) I pre-ordered "The Children of Hurin", the new Tolkien book from Amazon.co.uk. Today I get an email recommending this book to me and telling me what a great deal I can make if I pre-order it from Amazon. Well, doh!


The Cloud Appreciation Society

I'm happy to announce that I am, as of a couple of days ago, a proud member of the Cloud Appreciation Society. More specifically I'm member no. 7719. I've had a thing for clouds for quite a while and once I leaned about the society I applied for membership right away. Those of you who've read my blog before will not be surprised by this as I have occasionally written about clouds and had some pictures here.

Even if you're not a big cloud fan I can still recommend the web site. The founder, Gavin Pretor-Pinney, is a guy with a lot of humor and he's a very good writer. Furthermore there are a lot of awesome pictures.

How did found out about this club? Sometimes coincidences work together it seems. Not so long ago my wife and I had our honeymoon which we spent in Dublin. As we both have a soft spot for books we went to a couple of book stores. One of the book stores had a popular science shelf which I browsed and found a book that seemed interesting. It was called the The Cloudspotter's Guide by a certain Gavin Pretor-Pinney. I didn't start reading it right away but I noticed that there was a URL in the book to the Cloud Appreciation Society and so I made sure to visit the website. And I was hooked.

As for the book, I've just started reading it. And I must say that it's absolutely delightful. As I wrote above, Mr. Pretor-Pinney is a very skilled writer and with a lot of humor and passion he writes about clouds and his love for them. He describes each kind of cloud in turn, but the book is so much more than a dry catalog of cloud varieties. He mixes the description with colorful stories from other books, actual event relating to clouds and various odd trivia. One example is that he retells the account of the only person who has fallen through a Cumulonimbus (you know, the one with a lot of rain, thunder and lightning) and survived to tell the story. A truly fascinating account.

I have a bunch of other books about clouds but none of them can compare in any way with The Cloudspotter's Guide. The Book of Clouds has a lot of nice pictures but that's essentially it. It's very thin on details and doesn't have the same passion about it. The Invention of Clouds on the other hand is very heavy on details, to the point where I almost lost my interest. And that's a bit worrying given that I'm such a cloud fan. The Cloudspotter's Guide really comes out on top of both these books. The only thing that it isn't so strong on is beautiful pictures. It's not that it doesn't have them, it's that they're not so many. But on the other hand, I don't really need pictures of clouds in a book. The whole point is that I can go outside whenever I want and take a look at the real thing. So the lack of pictures isn't really a problem.

So, finally I would like to do my job as a member of the Cloud Appreciation Society and urge you, my reader, to Look up, marvel at the ephemeral beauty, and live life with your head in the clouds!


A Crazy Period of my Life

I haven't been bloggin for over a month now. So I just want to write a couple of words about why that is. The reason is simple, it's been maybe the most hectic and also exciting month of my life.

To begin with I had a deadline two weeks ago. I had to send my thesis in to print. Which meant I had some pretty crazy weeks finishing it. It was really intense but I managed to send it in on time and it was a great relief. I spent a couple of days after that just staying at home watching snooker.

But I couldn't rest for too long. Coming up was out wedding. Even though we had everything planned in good time before there was a crazy amount of work to do the days just before. All the practical work has to be done like decorating the church and the place where the party was held. But it all went well and we had a wonderful wedding last Saturday.

Back to work on Monday, the day before yesterday. The thesis had been printed and I had to distribute it to all the relevant parties. It's not very complicated work but it takes time, especially since the printer had forgot to print the announcement leaflet which has to be distributed with every thesis. A funny detail about the whole distribution thing is that the first person to receive a copy was actually Simon Peyton Jones. He happens to be visiting our department and I just happened to walk by a room where he and Koen Claessen where working. Koen wanted me to come in to congratulate me for the wedding and the thesis and Simon demanded he got a copy of my thesis which I was happy to give to him.

Today, we're off to our honeymoon. It's really exciting. The destination is still secret but it's a place we're I've never been before and I'm really looking forward to going there. And of course spend time with my new wife.

So, it's been some crazy couple of weeks in my life. I will do some more blogging once I get back and life is a little more normal.


The Reason for Blogging

I regularly hang out at programming.reddit.com. It's a news site for programmers where visitors can vote up and down the news articles. I like it because it is geared towards programming language discussion rather than only focusing on how to use the most mainstream languages.

Mark my surprise when I found one of my own blog posts featured on the first page. It was the post from a couple of weeks back on Programming Productivity and Programming Languages. I was very flattered that people had found it interesting enough to post it on reddit in the first place and furthermore that it got enough positive votes to make it into the front page.

Of course I was eager to see the comments so I immediately open the comments page. What I found there was comments like the following:

These sorts of articles aren't very useful. Lots of vague, unsubstantiated claims, especially when claims like

All those features such as purity, closures, powerful type system, laziness and STM which makes programming in the large easier come together very nicely in Haskell.

are made.

I agree. It's ideological rubbish. Maybe the author should argue with guys like this


instead of deducing the productivity of a PL from its feature matrix.

I agree with these comments. The claims I made in my post were very much unsubstantiated and they were all ideologically motivated. Why then did I write the way I did? Clearly this kind of writing isn't very helpful for anyone reading it and so why take up any readers time with such obvious rubbish?

There is a bit of a problem with news sites such as reddit and digg and how they relate to the blogosphere. People can submit any blog post (or web site) that they see fit to these sites. It can be blog posts by anyone anywhere on the internet, written under any circumstances and in an unknown context. But when a blog post appears on these sites some people tend to read them as news articles written for general consumption. But that is in many cases not at all how they should be read. People write for many reasons and to please news hungry surfers is only one reason.

The reason I blog is not for someone to read what I've written. I started blogging to improve my writing skills. I've continued blogging because I like to write down things that come to my mind and it is a good help for structuring my thoughts. I blog for my own amusement.

But then, why do I blog, as opposed to just writing on a piece of paper? The reason for me is that the possibility that someone might read what I write helps me write. Blogging means that I have an (at least potential) audience which I can target my writing towards. This (perhaps imaginary) audience is very important for me, I wouldn't be able to write without it. I simply can't motivate myself to write only for my own sake.

So I was by no means put off by the comments my blog post received on reddit. My posts wasn't written for these people. But I am glad that there were a couple of people who actually liked the article and gave it positive votes.

I blog for my own amusement. That has and always will be the main purpose of this blog. But I've been thinking a lot lately about starting another blog where I will write about technical stuff, programming and programming languages. Why another blog? Because in my head the random ramblings that appear on this blog is very separate from my technical thoughts. The two blogs would also have very different intended audience. While this blog only has an imaginary audience the new tech blog would be directed towards programming and research peers. I think it's earnest towards both audiences to keep the blogs apart. Anyhow, if I decide to launch a new tech blog I'll be announcing it here so watch this space if you're interested.


Masters Final in Snooker

I've just finished watching the final of the Masters tournament featuring the rising star Ding Junhui from China and my favorite snooker player Ronnie "The Rocket" O'Sullivan. And what a match it was.

Ding Junhui is only 19 years old but is already ranked as number 5 in the Provisional World Ranking and has already won 3 titles (being the youngest player, together with John Higgins, to have won so many titles). In the semifinal he beat Steven Hendry with a brilliant and offensive play. After that match Hendry, who seldom gives any praise to other players, applauded Ding and said that there are only two or three players in the world from whom you can't expect a second chance in a frame. He said Ding was one of them (the other two being John Higgins and Ronnie O'Sullivan. Hendry also belongs to that list but naturally he didn't count himself.) Ding seemed to be in a very good shape before the final, he even said he hoped to improve his game from the semifinal where he beat Hendry. Earlier in the week he also made a 147 frame, the highest possible score in snooker (not counting fouls) and became the youngest player ever to have achieved that on live TV. The previous record holder was Ronnie O'Sullivan.

Ronnie, as I said, is my favorite snooker player. He has his ups and downs but when he plays his best snooker there is simply no one that can match him. It's like he ceases to be a snooker player and becomes a magician, using the cue as wand to cast spells on the white ball, demanding it to go where he wants. It's absolute magic and looks so effortlessly that it must be embarrassing for the other players. On top of that he is also more or less double handed. He can play as good with his left hand as with his right hand.

Given that Ronnie O'Sullivan is so good, why doesn't he win everything? I think the problem for Ronnie is that he is himself his biggest opponent. He's having trouble with motivation and his mental stability seems to be lacking. Last month he simply walked out from a game against Steven Hendry and that is a very unusual thing to do in snooker where every player is expected to behave like a gentleman. He also seems to have a problem with longer tournaments and to keep up his concentration during a whole week or so of play.

Ronnie O'Sullivan's way to final was very good example of his mood swings. He started out very strongly beating Ali Carter with 6-1. Then he just barely beat Ken Doherty currently ranked no. 1 but wasn't showing his best game. In the semifinal he was up against Stephen Maguire and that was the worst game of snooker I have ever seen. Even I could have beaten Maguire as he played in that game. It was obvious that he was just pumped with adrenalin for this match and he didn't manage to cool down, missing just about every ball. It's a miracle that he actually won a couple of frames. O'Sullivan also played really poorly and didn't really deserve to win either.

Given the two players previous performance during the tournament I held Ding as a favorite in the final. But just barely, as I'm well aware of O'Sullivan's qualities. And it turned out to be quite a drama. Ding won the two first frames showing some superb snooker, much like in the semifinal. That seemed to wake up O'Sullivan who after that took four frames in a row including two centuries. Ding then responded, making the score 4-3. After that it was all O'Sullivan. It just seemed impossible for him to miss. Ding didn't play badly, on the contrary. But no matter what he did O'Sullivan would still find balls to play with and once he started there was no looking back.

In the tenth frame though, it seemed like Ding might have a chance to get into the match again. He had scored 65 points when he finally missed a ball, leaving only 67 points possible on the table for O'Sullivan. "The Rocket" stole the frame with 66 points against Ding's 65. I think that frame was the nail in the coffin for the Chinese.

The pressure seemed to take it's toll on Ding Junhui. During the latter half of the game it seemed like he was almost weeping, sitting in his chair and watching O'Sullivan beating him. It didn't help that the audience was very much in favor of Ronnie O'Sullivan and could be quite loud and disturbing at times. Ronnie even asked that one particularly loud spectator be thrown out of the arena, and indeed, he got so see the end of the game on a TV.

After the twelfth frame, making the score 9-3, it seemed that Ding wanted to concede the game. He went to shake O'Sullivan's hand but Ronnie wouldn't accept it. Instead he put his arm around Ding to try and comfort him and led him out of the arena. It was very warming to see such a friendly gesture from O'Sullivan when his younger opponent was so obviously upset. Later Ding Junhui said that he thought that the game was over, being best of 17 frames. That might be true but I'm somewhat skeptical to that explanation. It seemed that Ding was almost crying and he had essentially given up the frame before with a very poor, and not even half-hearted defensive shot. So having Ronnie O'Sullivan as an opponent turned out to be a mixed blessing. On the one hand Ding got a very tough lesson in snooker and in how bad the pressure can be in a final. On the other hand O'Sullivan turned out to be a very supportive friend who wanted to help him when he was almost caving in for the pressure. After the match, O'Sullivan made sure Ding Junhui didn't have to give an interview, which is otherwise customary. He could leave right after he received his second prize.

So it was a very good match to watch. Both a bit of drama and some of the best snooker I've ever seen, especially from Ronnie O'Sullivan. I hope he can pull himself together for some more stunning snooker later this spring. As for Ding I'm sure he will win many more titles and become one of the great names in snooker.

PS. For the record, the final ended 10-3 for O'Sullivan.


The Last Functional Programmer

One of the things our computer science department is famous for is its history in functional programming. People who have been working here include John Hughes, Lennart Augustsson, Thomas Johnsson, Niklas Röjemo, Jan Sparud, Urban Boquist, Magnus Carlsson, Thomas Hallgren, Koen Claessen and some people like Philip Wadler, Amr Sabry and Andrew Gordon have made longer visits here. All these people have made important contributions to the field of functional programming and Haskell in particular.

Given this dire history it was not without pride that I yesterday was given the title "The Last Functional Programmer" of the department.

The history behind this title is that a lot of the people do not work at our department any longer. The only two people left are John Hughes and Koen Claessen. John has switched over to Erlang and Koen mostly does hardware verification these days. So, when one guy from the proglog group needed a subreviewer for a paper relating to functional programming he was directed to me, being the last functional programming outpost at our department.

Although I was proud to be given this title it's also sad. Functional programming is really fun and I wish there were more people doing it at our department. There are people here who use functional programming and we can exchange some ideas but there's really no exciting research going on. I guess I'll have to move to a better place when I've finished my PhD. Or maybe I need to love some other field.


Yak Shaving

Yesterday I stumbled upon one of the coolest and useful expressions I've heard in a while: Yak Shaving. What does it mean? Here's a quote from the link:
"I was working on my thesis and realized I needed a reference. I'd seen a post on comp.arch recently that cited a paper, so I fired up gnus. While I was searching the for the post, I came across another post whose MIME encoding screwed up my ancient version of gnus, so I stopped and downloaded the latest version of gnus.

"Unfortunately, the new version of gnus didn't work with emacs 18, so I downloaded and built emacs 20. Of course, then I had to install updated versions of a half-dozen other packages to keep other users from hurting me. When I finally tried to use the new gnus, it kept crapping out on my old configuration. And that's why I'm deep in the gnus info pages and my .emacs file -- and yet it's all part of working on my thesis."

And that, my friends, is yak shaving.

I recognize this situation so well. Sometimes I feel like I don't do anything but Yak Shaving. That can be really frustrating and drain your energy pretty fast. Which means it has to stop.

Now at least I have a name for it so I can say to myself: "I'm Yak Shaving. Stop doing that and go do some important stuff instead".


Programming Productivity and Programming Languages

Recently I've read two blog posts about programming productivity and how it can be improved by better programming languages. I'd like to expand a bit on them.

The first post focuses on code reuse. The thesis is that the central thing that increases programming productivity is code reuse. As soon as you can reuse some bits of code you save effort. How does this relate to programming languages? One way is that programming languages can supply code in the runtime system, such as garbage collection. Thus, the programmer gets a well tuned bit of code which is most certainly correct and which he doesn't need to think about to use. Another example mentioned in the article is objects. It is indeed possible to program with objects in C but this programming pattern is captured by a language construct in object oriented languages and we can therefore reuse it.

The latter half of the post makes a case for standards. Having to choose from several libraries that does the same thing or programming constructs that can achieve the same thing are bound to make a mess. According to Murphy's Law, when you want to use libraries A and B, library A will use feature 1 and library B will use feature 2 and that will render them incompatible. So standards are good, be it libraries or programming idioms. They help making programs more composable.

Which leads me to the second post which talks about Composability and Productivity. This post starts out repeating a lot of the previous post but focuses on composability. But it goes further down the composability track talking about the problem with state. When composing two stateful pieces of software it might be important when the state changes happens and sometimes that leads to composability problems.

But there are even more interesting issues in composability and reuse that neither article mentions. One is concurrent programs. These are extremely hard to compose if they use ordinary locks and sometimes it is out right impossible to compose them. One promising line of work here is software transactional memory which can bring composability to concurrent programs. If think this sounds interesting you should check out the papers by Simon Peyton Jones on software transactional memory (or STM for short). STM has transactions, bits of code which either are run to completion or aren't run at all (perhaps due to a state change which happened while the transaction was running and which invalidates it's view of the world). The salient feature of STM is that it enables the programmer to compose transaction. Hence it increases composability.

The interesting thing is that this STM fits particularly nicely with Haskell. Why is that interesting? Because Haskell has some other very special features which makes Haskell programs more reusable and easier to compose.

One of the obvious benefits of Haskell when it comes to reuse is its strong type system. Writing reusable code is a lot easier if you don't have a very narrow minded type system which gets in your way all the time. To avoid that you can either ditch the static type system and go with dynamic types, which is what Lisp, Scheme, Ruby and Python does. The other option is to use a more fancy type system which lets give types even to the most abstract pieces of software. That way they can more easily be reused. This also improves composability.

One last feature of Haskell that I want to mention is laziness. Anyone who has ever heard of Haskell knows that this is the one feature which sets it apart from other languages (modulo Clean). Laziness makes evaluation order difficult to predict and therefore it is a bad idea to have state in a lazy language. Therefore Haskell is pure, allowing no mutable variables or IO except in a confined imperative sublanguage. As the first post I linked to above have already pointed out state is bad for composability. That should make Haskell programs more composable and reusable. While I think this is true it's not why I mention laziness. Lazy evaluation, used correctly, can enable a new kind of modularity which takes great effort to achieve by other means.

The standard example of modularity from laziness comes from John Hughes' classic article "Why functional programming matters" but I don't think it has gotten enough attention so I will repeat it here. Suppose you are writing an AI for some board game such as tick tack toe or chess. Writing good ones can be really tricky if the board game if moderately complex. In Haskell you would start out by generating a tree which models all possible moves from the current positions on the board. This tree can infinite. One can then write small functions which operates on this tree, such as pruning it or reorder branches to make things faster. Lastly one can compose these functions to construct the final evaluation function. The crucial thing here is that the small functions operating on the tree are highly reusable. It is very easy to cherry pick them and reorder them as you see fit. Therefore it is very easy to try out several different algorithms with very little effort. All this spells: Programmer Productivity. Lazy evaluation is crucial here in making sure that only parts of the tree that are actually needed are computed.

For those of you who think that this sounds horribly inefficient I have two answers. First, if you find a really good search algorithm this way then the constant factors due to lazy evaluation and many function calls doesn't really matter. Secondly, there are techniques to automatically remove the game tree which can make the program almost as fast as a hand tuned one.

One good example of where they've explored the modularity of laziness is the paper "Modular Lazy Search for Constraint Satisfaction Problems". It's one of my favorite papers and it's well worth a read. I have more to say about this paper but I'll save it for another post.

OK, so this post turned out to be a sales pitch for Haskell in the end. No one who knows me would be really surprised by that. But I really do think that Haskell has a lot of features that takes code reuse and program composition to a new level. All those features such as purity, closures, powerful type system, laziness and STM which makes programming in the large easier come together very nicely in Haskell. So it's no surprise that the latest revisions of C#, Java and VB all borrow heavily from Haskell and it's language kins.

I completely agree with the posts I linked to above: Reuse and composability are very good for programming productivity. And there's a whole lot of things that can and should be done at the language level to improve these issues.


IMDB Top 250

I'm a huge fan of IMDB. I use it all the time to look up facts about various movies and actors that I've seen or am going to see. The site is just packed with information which makes it a gold mine for any film lover.

One page that I particularly like and visit every now and then is the Top 250 list. The site allows any visitor to vote on the movies and based on these votes this list shows the 250 most popular ones. It's a very good list if you're looking for a good film to watch.

Every now and then I check the Top 250 list to see which movies from the list I have seen and which I should consider seeing. And today I was happy to cross off one more movie on the list: Casablanca, current ranked as number 6 on the list.

Seeing a classic such as Casablanca can be difficult. When a movie have such a high rating it's hard not to have very high expectations. And in my experience older movies often have a much slower tempo which can make them difficult or even unbearable to see unless you're in the right mood. Because of these problems I often postpone watching classics indefinitely. I'm constantly waiting for the right moment to present itself, to get into the right mood for watching the movie. But somehow that moment never seem to come. We taped Casablanca many years ago but have never watched it.

It's better to do what we (me and my fiancee) did today, watch the movie when it runs on TV. Don't record it, don't rent it, just take the time to watch it when it actually runs.

It's not difficult to see why Casablanca has become such a classic. Despite being recorded in 1942 the movie feels very modern. The dialog is absolutely fantastic and the movie is fast paced, not boring for a single moment. It is also filled with quotes that have gotten a life of their own: "Play it again, Sam", "We'll always have Paris", "Of all the gin joints, in all the towns, in all the world, she had to walk into mine." etc. (More quotes here.) All I can say is, if you haven't seen it yet I can heartily recommend it. It's worth every bit of it's status as a classic.

Despite being a big fan of movies I am a little embarrassed to admit that I haven't seen the top three movies on the list: "The Godfather", "The Shawshank Redemption" and "The Godfather: Part II". Watching the Godfather trilogy is one of those projects that I suspect will never happen. The pressure of finding the exact right moment and mood to watch these movies is so big that I'm afraid it will never happen. As for "The Shawshank Redemption", I've bought the DVD so I hope it will lower the threshold for me to get around and watch it.

To make it a little easier to see what movies I have seen on the Top 250 list and what I thought of them I wrote a little greasemonkey script which adds an extra column to the list. This column shows for each movie what vote I have given to it. I've made the the script publicly available in case you would like to try it out yourself. Of course if you install the script it will show your votes, not mine.