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.
2007-02-28
2007-01-22
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:
and
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.
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.
and
I agree. It's ideological rubbish. Maybe the author should argue with guys like this
http://wagerlabs.com/2006/01/01/haskell-vs-erlang-reloaded
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.
2007-01-21
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.
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.
2007-01-19
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.
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.
2007-01-10
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 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".
"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".
2007-01-09
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.
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.
2007-01-04
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.
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.
2006-11-21
Peter Jackson will not make The Hobbit
Crap! It seems that because some petty little dispute over some accounting issues Peter Jackson will not go on to make The Hobbit. It's really sad to hear. Especially since PJ seemed like he would have enjoyed making the movie. I'm not sure I'm looking forward to this movie anymore. With a new production team the end result can be pretty much anything.
Searching Haskell Code
Whoho! Google Code Search now supports Haskell code!
I've had some fun with Google Code Search since it was launched in early October. Among other things I've used to motivate changes to the standard libraries in Haskell based on how people write code. But not having proper support for Haskell has been a little awkward. One has to fiddle with file extensions to make it search in Haskell files. And it's always this suspicion that the search doesn't cover all that many Haskell files since the crawler presumably doesn't look for them. But all that is gone now, and I'm much happier. I've already put the new feature to good use.
I've had some fun with Google Code Search since it was launched in early October. Among other things I've used to motivate changes to the standard libraries in Haskell based on how people write code. But not having proper support for Haskell has been a little awkward. One has to fiddle with file extensions to make it search in Haskell files. And it's always this suspicion that the search doesn't cover all that many Haskell files since the crawler presumably doesn't look for them. But all that is gone now, and I'm much happier. I've already put the new feature to good use.
2006-11-17
Football technicalities
There is something that I've been wondering about for many years. It concerns football (or soccer if you prefer). It's the following question:
What is the purpose of the goal area?
Do you know? I'd be surprised if you did. Do you even know what the goal area is? In case you don't: it's the little rectangle inside the penalty area and just in front of the goal. I think even most hard core football fans don't know what purpose it has.
Today I decided to look it up. And wikipedia is helpful here as usual. It turns out that "Indirect free kicks awarded to the attacking team within the goal area must be taken from the point on the line parallel to the goal line nearest where an incident occurred; they can not be taken further within the goal-area. Similarly drop-balls that would otherwise occur in the goal area are taken on this line." Indirect free kicks are awarded for technical fouls such as offside and usually happens far away from a teams own goal. Indirect free kicks within the penalty area are extremely rare. I've only seen it once. The reason the judge awarded the foul was that he thought the goal keeper took too many steps with the ball in his hands. This particular rule has now been dropped in favor for a six second time limit.
I should add though that I'm not that crazy about football as this post might suggest. I do like to watch a game every now and then. But I almost never watch more than one game per week and often it is much more seldom than that. I like to watch when Sweden's team is playing an international match. Every now and then I also watch one of the major clubs in the Spanish league play, as they play very good football.
What is the purpose of the goal area?
Do you know? I'd be surprised if you did. Do you even know what the goal area is? In case you don't: it's the little rectangle inside the penalty area and just in front of the goal. I think even most hard core football fans don't know what purpose it has.
Today I decided to look it up. And wikipedia is helpful here as usual. It turns out that "Indirect free kicks awarded to the attacking team within the goal area must be taken from the point on the line parallel to the goal line nearest where an incident occurred; they can not be taken further within the goal-area. Similarly drop-balls that would otherwise occur in the goal area are taken on this line." Indirect free kicks are awarded for technical fouls such as offside and usually happens far away from a teams own goal. Indirect free kicks within the penalty area are extremely rare. I've only seen it once. The reason the judge awarded the foul was that he thought the goal keeper took too many steps with the ball in his hands. This particular rule has now been dropped in favor for a six second time limit.
I should add though that I'm not that crazy about football as this post might suggest. I do like to watch a game every now and then. But I almost never watch more than one game per week and often it is much more seldom than that. I like to watch when Sweden's team is playing an international match. Every now and then I also watch one of the major clubs in the Spanish league play, as they play very good football.
2006-11-16
An Open Mind
Today, for no apparent reason, I ran 'fortune' and got the following quote:
The man behind the quote is William Orton an American politician from way back.
I featured a similar quote here on this blog about a year and a half ago.
If you keep an open mind people will throw a lot of garbage in it.
The man behind the quote is William Orton an American politician from way back.
I featured a similar quote here on this blog about a year and a half ago.
2006-11-03
The "C is Efficient" Language Fallacy
Maybe a week or so ago I stumbled upon an article via reddit called "Programmer's rant: what should and should not be added to C/C++". It was a terrible article. The author had some pretty bad misconceptions on how to produce fast code, which was what the article was most about. I just couldn't let that stand unchallenged so I wrote a comment which you can find if you scroll down on the page of the article. I will not repeat is here. If you're interested go to the page instead.
I was rather frustrated by the fact that this story had made it to the front page of reddit. Therefor I was pretty happy to see that a few days later there was another story on the front page debating the above article: The "C is Efficient" Language Fallacy. He makes pretty much the same argument as I did but he writes a lot better and have some good concrete examples.
The bottom line in both my comment and the other article is that functional languages are catching up pretty quickly when it comes to speed.
I was rather frustrated by the fact that this story had made it to the front page of reddit. Therefor I was pretty happy to see that a few days later there was another story on the front page debating the above article: The "C is Efficient" Language Fallacy. He makes pretty much the same argument as I did but he writes a lot better and have some good concrete examples.
The bottom line in both my comment and the other article is that functional languages are catching up pretty quickly when it comes to speed.
2006-10-22
Scrybe
So, it seems we're getting another web-based calender/information manager. The new one is called Scrybe. And as a matter of fact it looks pretty interesting. Most of its old competitors are all variations on the same theme. So what does Scrybe has that makes it stand out from the rest?
Those are the main features that will be useful for me. There are many more cool features in Scrybe, all explained in the video on their homepage. It's going to be interesting to see the launch of Scrybe and what will happened with the company in the future.
- It has support for working offline. This is perhaps going to be the killer, the feature which makes Scrybe take over the market. Having offline support is just
- Very well crafted user interface based on the focus+context principle. It simply looks and feels very intuitive.
- Synconization with paper. I've *so* wanted this from other applications I've used. The possibility to print out the schedule and todo list and carry it around in your pocket for those occasions you don't want to bring your computer.
Those are the main features that will be useful for me. There are many more cool features in Scrybe, all explained in the video on their homepage. It's going to be interesting to see the launch of Scrybe and what will happened with the company in the future.
2006-10-20
Amazon's accurate recommendation
I got an email today from Amazon with a book recommendation. And they really nailed it this time!
They recommend a book on flowers because I own a book on functional data structures?! Well, the reason is pretty obvious. They're mixing up authors with the same name. There is a professor at Oxford by the name of Richard Bird which does a lot of functional programming. If he wrote a new book I'd be very happy if Amazon sent me an email telling me about it. He has already written the standard text Introduction to Functional Programming, a nice introduction to Haskell. But he does not write books on flowers.
And yes, I know for a fact that the Oxford professor doesn't write books about gardening on his spare time. The two different Richard Bird authors have different middle names.
Well, Amazon. You gave me a laugh today but if you keep it up I'm going to get bored in the future. Make sure to fix this.
We've noticed that customers who have expressed interest in books by Chris Okasaki have also ordered 300 Flowering Plants by Richard Bird. For this reason, you might like to know that this book will be released on 27 October 2006. You can pre-order your copy for just £7.99 by following the link below.
They recommend a book on flowers because I own a book on functional data structures?! Well, the reason is pretty obvious. They're mixing up authors with the same name. There is a professor at Oxford by the name of Richard Bird which does a lot of functional programming. If he wrote a new book I'd be very happy if Amazon sent me an email telling me about it. He has already written the standard text Introduction to Functional Programming, a nice introduction to Haskell. But he does not write books on flowers.
And yes, I know for a fact that the Oxford professor doesn't write books about gardening on his spare time. The two different Richard Bird authors have different middle names.
Well, Amazon. You gave me a laugh today but if you keep it up I'm going to get bored in the future. Make sure to fix this.
2006-10-15
2006-09-26
Haskell @ Google
The other day Google showed a list of various prizes Googlers had achieved recently. One competition which is of special interest for me since I've participated in it (although not this year) is the ICFP programming contest. I was impressed to see that two different teams from Google had taken both first and third place. And moreover, the winning team had actually used Haskell! So Haskell has a foot in the door at Google! That's great news!
2006-09-20
Some Science
I just want to mention two articles I read today.
The first one is from Scientific American and talks about what it is that makes a genius. Or, rather a grand master in chess. Most of the article talks about how the mind works for the best chess players and then generalize about the theories to other disciplines. So, how does experts think, and what makes their brain work this way? The answer is both rather surprising and liberating. It seems that to acquire the mental model of an expert all that is needed is practice. Experts learn to see patterns and these pattern evolve in the brain through practice, practice and practice. So, what about wonder kids? They just start early and work hard. And working hard is an important ingredient. You have to keep challenging yourself with problems that are slightly more difficult that what you can handle, thereby constantly pushing yourself. So, anyone can be an expert, it just takes passion and perseverance.
The other article really surprised me. It's a list of bogus science that nevertheless have had an impact on what we believe. Take a look at item no. 4. It discusses an observation about moths changing colors. This has been used as an example of evolution happening right in front of us. And I've taken it as proof that evolution really happens today. But it seems that it was all totally bogus. So have anyone observed evolution happening without relying on old fossils and various dating methods? It would be interesting to know.
[EDIT: It seems I shouldn't have been so quick to believe that web page. Here are some links that goes in to a bit of discussion around the peppered moth experiments.]
The first one is from Scientific American and talks about what it is that makes a genius. Or, rather a grand master in chess. Most of the article talks about how the mind works for the best chess players and then generalize about the theories to other disciplines. So, how does experts think, and what makes their brain work this way? The answer is both rather surprising and liberating. It seems that to acquire the mental model of an expert all that is needed is practice. Experts learn to see patterns and these pattern evolve in the brain through practice, practice and practice. So, what about wonder kids? They just start early and work hard. And working hard is an important ingredient. You have to keep challenging yourself with problems that are slightly more difficult that what you can handle, thereby constantly pushing yourself. So, anyone can be an expert, it just takes passion and perseverance.
The other article really surprised me. It's a list of bogus science that nevertheless have had an impact on what we believe. Take a look at item no. 4. It discusses an observation about moths changing colors. This has been used as an example of evolution happening right in front of us. And I've taken it as proof that evolution really happens today. But it seems that it was all totally bogus. So have anyone observed evolution happening without relying on old fossils and various dating methods? It would be interesting to know.
[EDIT: It seems I shouldn't have been so quick to believe that web page. Here are some links that goes in to a bit of discussion around the peppered moth experiments.]
2006-09-14
Six = Infinity?
Gee, this piece of news really made me dissillusioned. You've probably heard of the theory that all people in the world are connected in at most six steps. This urban myth sprung out of an experiment made by a guy called Stanley Milgram. He performed an experiment to see if he could get letter to a specific person far away from himself by only using a chain of friends. The result? On average it took six people to get to the final destination.
So what the problem? The problem is that in 97% of all the letters sent didn't reach its target at all! So drawing any conclusions on the 3% that's left is just totally bogus.
You can read a more detailed article over at BBC in the article Connecting with people in six steps.
So what the problem? The problem is that in 97% of all the letters sent didn't reach its target at all! So drawing any conclusions on the 3% that's left is just totally bogus.
You can read a more detailed article over at BBC in the article Connecting with people in six steps.
2006-09-13
Good film news
The other day tripped over some really pleasant film news. First and foremost: The Hobbit is going to happen! But it still remains to be seen whether it will be Peter Jackson who makes the movie. If he's going to make it it's not going to be anytime soon as he's signing up for quite a lot of projects right now. I would love for Peter Jackson to do The Hobbit though. Considering how Lord of the Rings turned out I don't think there is a single Tolkien fan who doesn't agree with me.
So they're going to make a Terminator 4. Which makes me skeptic. With no Linda Hamilton and no Arnold Schwarzenegger they really have to reinvent the whole concept to make a good movie out of it. I just wonder: Why? The first two Terminator movies are true classics. They don't need to undo film history as the Wachowski brothers did with the Matrix trilogy.
If I may digress a bit I'd like to take the moment to say a few words about Terminator 3 which I saw a few months ago. It wasn't as good as the first two but it wasn't that bad either. The movie didn't quite have that creepy feeling of the first two, the feeling of constantly being hunted by an unstoppable terminator. And the dystopic vision of the future wasn't quite there either. Also the choice of actors wasn't a very good one, especially the actor playing John Connor wasn't a very good choice. What really saved the movie was the ending.
The Thomas Crown Affair is getting a sequel which I think is exciting news. I like the movie a lot and the final heist in the movie is quite enjoyable.
Finally, not mentioned on the webpage I linked to above, it seems they're making a National Treasure 2. This is good news to me. National Treasure is one of those movies that I can watch over and over again and still enjoy it. I guess a lot of American history teachers are using it as it contains many highlights from American history. And I suppose there are enough interesting historical people and events in the US to make a second film. I'm looking forward to it.
So they're going to make a Terminator 4. Which makes me skeptic. With no Linda Hamilton and no Arnold Schwarzenegger they really have to reinvent the whole concept to make a good movie out of it. I just wonder: Why? The first two Terminator movies are true classics. They don't need to undo film history as the Wachowski brothers did with the Matrix trilogy.
If I may digress a bit I'd like to take the moment to say a few words about Terminator 3 which I saw a few months ago. It wasn't as good as the first two but it wasn't that bad either. The movie didn't quite have that creepy feeling of the first two, the feeling of constantly being hunted by an unstoppable terminator. And the dystopic vision of the future wasn't quite there either. Also the choice of actors wasn't a very good one, especially the actor playing John Connor wasn't a very good choice. What really saved the movie was the ending.
The Thomas Crown Affair is getting a sequel which I think is exciting news. I like the movie a lot and the final heist in the movie is quite enjoyable.
Finally, not mentioned on the webpage I linked to above, it seems they're making a National Treasure 2. This is good news to me. National Treasure is one of those movies that I can watch over and over again and still enjoy it. I guess a lot of American history teachers are using it as it contains many highlights from American history. And I suppose there are enough interesting historical people and events in the US to make a second film. I'm looking forward to it.
et al.
Do you know what the acronym "et al." stands for? It's the kind of expression you see every day and roughly know what it means but never quite know what it comes from and what it stands for. At least, that's the case for me. So, today I decided to look it up. And Answers.com gave the following definition:
So, it's Latin. No surprise there. And it's short for et alii. Which really baffles me. Why on earth don't we write out the whole et alii? Replacing the last to i:s with a dot only saves one character. It seems totally silly to me. In fact I'm thinking of using the full form, et alii, from now on. It's simply not that difficult to write out the whole thing.
A last thought. Why do we use Latin at all? "and others" is not that difficult to write. "and so on" is in many situations preferable to "et cetera" or "etc." I guess it is an old relic from the time when English children had to study Greek and Latin. Spicing your language with a bit of Latin was perhaps a way to show off and as time passed some phrases became standard. Personally I don't mind these Latin abbreviations but I can't help feeling that the language would be simpler without them.
et al.
Latin
et alii (and others)
So, it's Latin. No surprise there. And it's short for et alii. Which really baffles me. Why on earth don't we write out the whole et alii? Replacing the last to i:s with a dot only saves one character. It seems totally silly to me. In fact I'm thinking of using the full form, et alii, from now on. It's simply not that difficult to write out the whole thing.
A last thought. Why do we use Latin at all? "and others" is not that difficult to write. "and so on" is in many situations preferable to "et cetera" or "etc." I guess it is an old relic from the time when English children had to study Greek and Latin. Spicing your language with a bit of Latin was perhaps a way to show off and as time passed some phrases became standard. Personally I don't mind these Latin abbreviations but I can't help feeling that the language would be simpler without them.
Modern life leads to more depression among children
I've blogged before about the mental illness of children and teenagers. Yesterday 110 teachers, psychologists, children's authors and other experts sent an open letter to the brittish paper Telegraph with the title Modern life leads to more depression among children. The letter is short and doesn't get into any details. The main purpose is to start a public debate about these questions.
Together with the public letter the Telegraph also had a short article around these issues "Junk culture 'is poisoning our children'".
This letter cause a bit of a stir in the blogosphere. Slashdot had some surprisingly good comments about this. And via Planet Haskell (yes, believe it or not) I stubled upon an interesting post about parenting.
I'll refrain from commenting about all this as I'm not a parent myself. But make sure to read the articles I've linked to. It's both interesting and thought provocative.
Together with the public letter the Telegraph also had a short article around these issues "Junk culture 'is poisoning our children'".
This letter cause a bit of a stir in the blogosphere. Slashdot had some surprisingly good comments about this. And via Planet Haskell (yes, believe it or not) I stubled upon an interesting post about parenting.
I'll refrain from commenting about all this as I'm not a parent myself. But make sure to read the articles I've linked to. It's both interesting and thought provocative.
2006-09-08
Lunar Eclipse

So, we've just had a very small partial eclipse. Did you see it? Well, I managed to capture it with my camera so you can see how it looked on the picture to the right. Not too exciting, but still.
Lunar eclipses are nice in the way that they can be seen from many more places than a solar eclipse. Basically half of the world can watch it at the same time. But I guess that solar eclipses are cooler because they're so hard to catch.
If you want to know more about lunar eclipses Wikipedia is helpful as always.
2006-09-05
Programming Quotations
It's quote time again! This time a whole heap of Programming Quotations. There's lots of classics in there but most of them I haven't heard before. And some of them aren't specific to programming.
Some of my favourites:
Some of my favourites:
It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants. It has also been said that the software industry is an example of midgets standing on the toes of other midgets. -- Alan Cooper
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. -- Laurence J. Peter
A notation is important for what it leaves out. -- Joseph Stoy
I've finally learned what "upward compatible" means. It means we get to keep all our old mistakes. -- Dennie van Tassel
2006-09-01
The Scientific Refereeing Process
Via shapr's blog I came across an article by what seems to be a very bitter mathematician yelling about the way scientific journals and conferences work.
In my experience the situation is not as bad as he describes it but there is a point to what he is saying nevertheless.
One reaction againts crappy researchers who organize conferences with no refereeing might be to fire them. The problem is, the universities that hire them might not be too keen on firing them. Why? Well, every university need to have its quota of scientists, right? It would look really bad for a university to not have any scientists. And since the number of research positions in universities is a log bigger than there are good researchers then universtities will fill their positions with lesser researchers.
Sigh. What to do about this whole mess? Well, I find comfort in that there is a lot of good research going on too. And I just try to do my part in increasing our knowledge, which is what science is all about.
In my experience the situation is not as bad as he describes it but there is a point to what he is saying nevertheless.
One reaction againts crappy researchers who organize conferences with no refereeing might be to fire them. The problem is, the universities that hire them might not be too keen on firing them. Why? Well, every university need to have its quota of scientists, right? It would look really bad for a university to not have any scientists. And since the number of research positions in universities is a log bigger than there are good researchers then universtities will fill their positions with lesser researchers.
Sigh. What to do about this whole mess? Well, I find comfort in that there is a lot of good research going on too. And I just try to do my part in increasing our knowledge, which is what science is all about.
Why People Don't Use Mass Transit
I bought a car a year and a half ago. For quite some time I didn't use it to drive to work but lately I've abandoned the tram in favour for the car. But I keep thinking about switching back.
Since I'm thinking quite a bit about these questions I was delighted to find a page explaining Why People Don't Use Mass Transit. The author of this piece takes a purely economical view of the problem. And his main point is that if you put a price tag on time then it's really hard to beat using the car. How do one put a price tag on time? Well, what do you earn for 40 hours of work? Divide that amount by 40 hours and you have a price per hour. Using the salary to measure the cost of the time taken to travel may not be exactly what people use when deciding whether to take the car or not. But it is clear that people do value time since they take the car to such a large extent, and using the salary is in my opinion a pretty good instrument here.
So, have I decided to use the car since I read the article? No. I'm leaning towards switching back to the tram. But I keep postponing the switch. The car's just to convenient.
Since I'm thinking quite a bit about these questions I was delighted to find a page explaining Why People Don't Use Mass Transit. The author of this piece takes a purely economical view of the problem. And his main point is that if you put a price tag on time then it's really hard to beat using the car. How do one put a price tag on time? Well, what do you earn for 40 hours of work? Divide that amount by 40 hours and you have a price per hour. Using the salary to measure the cost of the time taken to travel may not be exactly what people use when deciding whether to take the car or not. But it is clear that people do value time since they take the car to such a large extent, and using the salary is in my opinion a pretty good instrument here.
So, have I decided to use the car since I read the article? No. I'm leaning towards switching back to the tram. But I keep postponing the switch. The car's just to convenient.
2006-08-30
Electric Mini
OK, here's a bit of bit of prejudice for you. I believe most guys have a particular car which they long for to have. I know I do anyway, despite my rather low interest in things-with-motors. And it's the Mini (note the cool url).
I just read an article about a modified Mini, called the
Treehugger: Electric Mini. The novel thing with this car is that it has the engines in its weels and is driven mostly by electricity. Though strictly speaking it's a hybrid car. The advantages with this approach are interesting: it's both more environment friendly and it gives the car more power. Though I bet it costs alot more.
Before the Electric Mini there were only four custom made Mini's that were electric. Those for were made for the 2003 remake of the movie The Italian Job. The thing was, they wanted to drive the cars around in the subway, but weren't allowed to bring any combustion vehicle down there. So they called BMW and had four cars custom made with electric engines only.
I just read an article about a modified Mini, called the
Treehugger: Electric Mini. The novel thing with this car is that it has the engines in its weels and is driven mostly by electricity. Though strictly speaking it's a hybrid car. The advantages with this approach are interesting: it's both more environment friendly and it gives the car more power. Though I bet it costs alot more.
Before the Electric Mini there were only four custom made Mini's that were electric. Those for were made for the 2003 remake of the movie The Italian Job. The thing was, they wanted to drive the cars around in the subway, but weren't allowed to bring any combustion vehicle down there. So they called BMW and had four cars custom made with electric engines only.
2006-08-24
The Gettysburg Powerpoint Presentation
I just happened to trip upon what is "one of the sharpest pieces of satire to appear on the web". It is The Gettysburg Powerpoint Presentation by Peter Norvig(head of Google research). The reason he made it was to show just how bad PowerPoint presentation get the message across. His initial intent was to spend a lot of time finding bad colors and fonts but he found that the Autocontent Wizard did all that work for him. Hilarious.
2006-08-16
Trivia
Today I discovered a rather unexpected piece of trivia about two actors. I was watching the end of the movie Addams Family Values and I noticed to my delight that Peter MacNicol was in the movie. He seems to be a very funny guy, all the characters I've seen him portray have been very special.
When the movie was over and the end titles flashed by I thought I recognized one name. The name was David Krumholtz. And no wonder I recognized him. He's the leading actor in Numb3rs playing the young mathematics professor who helps FBI solve crimes. But when he did Adams Family Values he was only 15 years old. So I don't blame myself for not recognizing him in the movie.
And now for the fun part. Both Peter MacNicol and David Krumholtz had roles in the Adams Family Values. As it turns out they would reunite 12 years later in Numb3rs. Peter MacNicol plays the somewhat eccentric physicist who is the best fried of the mathematics professor portrayed by Krumholtz.
You don't think it's funny? I know it's kind of random. But it's just that I like Numb3rs and discovering that MacNicol and Krumholtz was in the same movie way back was a bit like being struck by lightning. Or something like that.
When the movie was over and the end titles flashed by I thought I recognized one name. The name was David Krumholtz. And no wonder I recognized him. He's the leading actor in Numb3rs playing the young mathematics professor who helps FBI solve crimes. But when he did Adams Family Values he was only 15 years old. So I don't blame myself for not recognizing him in the movie.
And now for the fun part. Both Peter MacNicol and David Krumholtz had roles in the Adams Family Values. As it turns out they would reunite 12 years later in Numb3rs. Peter MacNicol plays the somewhat eccentric physicist who is the best fried of the mathematics professor portrayed by Krumholtz.
You don't think it's funny? I know it's kind of random. But it's just that I like Numb3rs and discovering that MacNicol and Krumholtz was in the same movie way back was a bit like being struck by lightning. Or something like that.
2006-08-07
IntroComp 2006
I spent a couple of hours last week playing text adventure games. Text based games are a relic from the 70's and 80's but they still enjoy a small and devoted community. And people are writing a lot of new games still.
The games I played were all submissions to the contest IntroComp 2006. This contest has a rather interesting setup. Each participant is invited to submit a game which isn't finished. Only the introduction in the game needs to be done. The submissions are rated based on how much the voters want to see the whole game finished. There are some real money involved when winning but there is a caveat. You only get the money after you've finished your game. And the higher your ranking, the more money you get when you finish your game. It's a pretty nice setup to increase the incentive for writers to actually finish their games. Of course, games which are just slapped together to get the money will not receive any.
So I had some fun playing the games in this competition and I participated as a voter. This was the very first time I participated in any way in such a contest and I'm quite likely to do it again. One of the most amusing things with this contest was the announcement of the results. This happen in the IfMUD. A MUD, in case you don't know, is like an online text adventure game. The interface is completely text based and you can walk around in the world and meet other people a solve puzzles. The IfMUD works more like a chat than an ordinary MUD though. The announcements of the IntroComp contest was made in a particular room inside the MUD. I really liked the experience, there was a lot of funny people there and the general atmosphere was very inviting. I'll probably spend some time in the IfMUD in days to come.
Lastly, here are some reviews of the games in the competition.
The games I played were all submissions to the contest IntroComp 2006. This contest has a rather interesting setup. Each participant is invited to submit a game which isn't finished. Only the introduction in the game needs to be done. The submissions are rated based on how much the voters want to see the whole game finished. There are some real money involved when winning but there is a caveat. You only get the money after you've finished your game. And the higher your ranking, the more money you get when you finish your game. It's a pretty nice setup to increase the incentive for writers to actually finish their games. Of course, games which are just slapped together to get the money will not receive any.
So I had some fun playing the games in this competition and I participated as a voter. This was the very first time I participated in any way in such a contest and I'm quite likely to do it again. One of the most amusing things with this contest was the announcement of the results. This happen in the IfMUD. A MUD, in case you don't know, is like an online text adventure game. The interface is completely text based and you can walk around in the world and meet other people a solve puzzles. The IfMUD works more like a chat than an ordinary MUD though. The announcements of the IntroComp contest was made in a particular room inside the MUD. I really liked the experience, there was a lot of funny people there and the general atmosphere was very inviting. I'll probably spend some time in the IfMUD in days to come.
Lastly, here are some reviews of the games in the competition.
2006-08-05
Three Sins of Authors in Computer Science and Math
I stumbled upon some nice piece of advice for writing articles today. It's called Three Sins of Authors in Computer Science and Math. And I know I'm guilty on all three accounts. But I just got a paper accepted which needs to be finished pretty soon so I'll have a good opportunity to use the advice right away.
2006-08-01
Brought up to mental illness
One thing that's been on my mind a lot lately is the mental health of youngsters in our country. A recent article in our local newspaper reports that 1/4 of all 16-year-olds have hurt themselves in one way or another. This is a really scary figure. A lot of young people are feeling bad today and even has to go to such lengths as hurting themselves to get some relief from their mental suffering.
I've always assumed that the fundamental reason for this is that parents doesn't care enough about their children. Sweden has a very self centered culture and that can make children be less important that the parent itself. So my suggestion to solve the problem has been to spend more time with and care for the children.
But today I read a very interesting article in Psychology Today called "A Nation of Wimps". This article suggest rather the opposite of my assumption. The problem is that parents micromanage their children, keep them away from anything that might hurt them or make them sad and they do just about anything to make sure that their children get high grades so that they can attend prestigious colleges.
It this way children have no chance to develop the right cognitive tools to make it through life.
True, the article from Psychology Today concerns the US. But it might be relevant to Sweden as well. The International Herald Tribune has a very nice article about Swedes as 'safety junkies' and 'curling parents', a swedish expression for overprotecting parents. It might be that swedish parents are just as bad when it come to overprotecting their children.
It seems that we have somehow forgotten what good parenting is. And commercial interests have invaded the whole parenting area and profits from anxious parents.
The political party Kristdemokraterna (roughly Christian Democrats) is the party which profile itself towards families. Their suggestions for the upcoming election is to put the parents in charge of their children's upbringing and kindergarten and give parents more time with their children. I've always thought that this sounds like a really good idea and a good way towards making young adults feel better. But the above articles suggest that this line, while not bad, won't help this particular problem.
So what can we do about it? I don't know. Parenting courses? But who's to give them? But clearly we need a solution soon. There's a lot of young people who are not feeling well right now.
I've always assumed that the fundamental reason for this is that parents doesn't care enough about their children. Sweden has a very self centered culture and that can make children be less important that the parent itself. So my suggestion to solve the problem has been to spend more time with and care for the children.
But today I read a very interesting article in Psychology Today called "A Nation of Wimps". This article suggest rather the opposite of my assumption. The problem is that parents micromanage their children, keep them away from anything that might hurt them or make them sad and they do just about anything to make sure that their children get high grades so that they can attend prestigious colleges.
It this way children have no chance to develop the right cognitive tools to make it through life.
True, the article from Psychology Today concerns the US. But it might be relevant to Sweden as well. The International Herald Tribune has a very nice article about Swedes as 'safety junkies' and 'curling parents', a swedish expression for overprotecting parents. It might be that swedish parents are just as bad when it come to overprotecting their children.
It seems that we have somehow forgotten what good parenting is. And commercial interests have invaded the whole parenting area and profits from anxious parents.
The political party Kristdemokraterna (roughly Christian Democrats) is the party which profile itself towards families. Their suggestions for the upcoming election is to put the parents in charge of their children's upbringing and kindergarten and give parents more time with their children. I've always thought that this sounds like a really good idea and a good way towards making young adults feel better. But the above articles suggest that this line, while not bad, won't help this particular problem.
So what can we do about it? I don't know. Parenting courses? But who's to give them? But clearly we need a solution soon. There's a lot of young people who are not feeling well right now.
The Weakest Link in Security
A while ago I attended a workshop drawing together most of Sweden's PhD students working in one way or the other with security. As you might expect the program was pretty diverse ranging from very hard core technical stuff to very fluffy stuff bordering on politics and human computer interaction.
There was one talk that I'd like to comment on. It was titled "Are Humans The Weakest Link In Security?" or something like that. The speakers intention with the title was to be a bit provocative. Many of my fellow PhD students which lean more to the technical side smiled at this title: "Of course humans are the weakest link!" They seemed to think that the question was rather silly.
I have a different opinion. My answer to the question is rather "Humans SHOULD be the weakest link". Otherwise technology has failed. Technology is here to help us. Sure, some of us like technology just for the fun of it. But the adoption of technology can only be motivated if it helps us in some way. This is especially true when it comes to security. If technology is a weaker link than its users what good is it then.
I don't think the question posed by the speaker was silly. I think it is good to ask such questions and ponder upon the answer. It might not be as straightforward as you might think.
There was one talk that I'd like to comment on. It was titled "Are Humans The Weakest Link In Security?" or something like that. The speakers intention with the title was to be a bit provocative. Many of my fellow PhD students which lean more to the technical side smiled at this title: "Of course humans are the weakest link!" They seemed to think that the question was rather silly.
I have a different opinion. My answer to the question is rather "Humans SHOULD be the weakest link". Otherwise technology has failed. Technology is here to help us. Sure, some of us like technology just for the fun of it. But the adoption of technology can only be motivated if it helps us in some way. This is especially true when it comes to security. If technology is a weaker link than its users what good is it then.
I don't think the question posed by the speaker was silly. I think it is good to ask such questions and ponder upon the answer. It might not be as straightforward as you might think.
Learning Haskell
John Meacham has his own way of explaining how it is to learn Haskell:
From the Haskell-Cafe mailling list.
It is best to think of haskell primitives as something completely new, they reuse some naming conventions from OO programming, but that doesn't mean they suffer from the same limitations. It took me a few trys to wrap my brain around it. I liken learning haskell to tipping over a vending machine. you can't just push it, you gotta rock it back and forth a few times building up momentum until bam! suddenly the flash of insight hits and it all makes sense.
From the Haskell-Cafe mailling list.
2006-07-31
Scientists Say Erie Mirage Could Be Real
I've had a very nice and relaxing holiday for the past couple of weeks. That's why there's been so little blogging. But since I started work today I thought I should do some blogging. So I'll start with a link to a story found via Reddit about an mysterious whether fenomenon acting as a lens. abc News has the story:
Scientists Say Erie Mirage Could Be Real
Scientists Say Erie Mirage Could Be Real
2006-07-10
Dynamism
I hang out at Lambda The Ultimate, a site for discussing programming language design and implementation. Contrary to most such discussions this site usually has very well informed arguments and is almost free of flame wars.
One of the best posters at Lambda The Ultimate is Frank Atanassow. He is very knowledgeable, very brainy, is very good on theory and above all, very funny. I'd say he wins the humor contest hands down. And today I read a post by him which cements his position as the no. 1 humorist on Lambda The Ultimate. You can find the original post here, although I quote it in its entirety below. Enjoy:
One of the best posters at Lambda The Ultimate is Frank Atanassow. He is very knowledgeable, very brainy, is very good on theory and above all, very funny. I'd say he wins the humor contest hands down. And today I read a post by him which cements his position as the no. 1 humorist on Lambda The Ultimate. You can find the original post here, although I quote it in its entirety below. Enjoy:
"Dynamic" is technical jargon used by programmers, meaning "good". It derives from the Latin dyno mite, meaning "I am extremely pleased", and is first recorded in the historical work Bona Aetas of noted Roman sage and pundit J.J. Walker. Its meaning evolved in the 4th century after monks copying an obscure manuscript on programming linguistics in their ignorance tried to deduce its meaning from context.
In this (occidental) manuscript, the Lingua Lambda, the author described how he had stumbled across Miranda, an early ancestor of Haskell, a typed language that had found its way to the West from the Orient, and which, though crude in some ways, supported many fine features and was, in fact, lauded as the language for discriminating hackers. The author wrote an essay about this language, describing its features, and noted (Miranda dyno mite!) how pleased he was with it.
These monks had lived in monasteries for most of their lives, programming only in C; most of them had never heard of languages like ML or Miranda, and, if they had, would have dismissed them as Oriental nonsense. But this century was, for these monks, also a time of change; the last barbarian invasion had been repelled, but the fleeing barbarians had left behind their legacy, the untyped programming languages. Many of these were adopted by such monks — and thus we now call them "scripting languages" — who were dazzled by features such as "blocks" and "duck typing". (One can still detect in these phrases the vulgarity of their barbarian progenitors. Naturally, the West promptly plunged into a dark age...)
In the Orient, though, typed languages had long supported features such as higher-order functions, structural typing, automatic garbage collection, REPL-style interactive interpretation and user-definable syntax. But for the monks laboring in darkness, these were thoroughly new ideas, and they reasoned that they must be uniquely characteristic of untyped languages.
So it was that they translated Miranda dyno mite as Miranda is untyped, and now we must live with that confusion. Given the meaning of the words in our everyday language, it is, when you pause to think about it, strange that when a programmer asks you how you are, the proper response is "Dynamic, thanks!" if you are feeling well and "Kinda static today..." if you are ill, but the history of language is full of twists and turns, and, after all, far from rational...
2006-07-05
The Shallow Roots of the Human Family Tree
Yahoo News has a very interesting article called Roots of human family tree are shallow. It's essence is this: Not too long ago, say 2000 to 5000 years, there lived a person which is an ancestor to all now living people. And a little longer while back, between 5000 and 7000 years ago, every person living then either an ancestor to all people living today or their line died out.
It's pretty amazing and sounds ridiculous until you read the article. The math needed to get an intuition for this is dead simple. I won't spoil the fun here, I recommend instead that you read the article. It's a lot of fun!
It's pretty amazing and sounds ridiculous until you read the article. The math needed to get an intuition for this is dead simple. I won't spoil the fun here, I recommend instead that you read the article. It's a lot of fun!
2006-07-03
Time out of mind
In today's very science oriented society we learn that time is something very exact. To illustrate time we draw a straight line and place the time units on equal distance between each others. Each second arrive at a constant rate and disappears just as quickly.
Yet our subjective notion of time is quite different. When we sleep we have little notion of time, for instance. Just as when we're having a lot of fun. Then time seems to go very fast. On the other hand when we are in a car accident time seems to slow down. We seem to be able to perceive things and react much more quickly.
One interesting question is how the physical and our mental notion of time relates. The other day I read about a truly clever experiment which tries to test whether our brain actually works faster when we are in a stressful situation. The setup goes like this: a man is set to do a backwards free-fall of 33 meters. With him he will have a small wristwatch-like device which will switch blindingly fast between two different images. One of the pictures will be a number. Under normal circumstances a person cannot make out the number since the device flickers so fast. But if time actually slowed down for him he might be able to see the number on the screen. It's a pretty clever setup.
How did it go? When the test person landed he said he had seen the number "98". The actual number shown was "96". Close enough for me. Further experiments yielded similar results. So it seems that our brains actually works faster in some situations! Very intriguing.
You can read about the experiment in the bbc article Time out of mind. It has some further goodies on time as well.
Yet our subjective notion of time is quite different. When we sleep we have little notion of time, for instance. Just as when we're having a lot of fun. Then time seems to go very fast. On the other hand when we are in a car accident time seems to slow down. We seem to be able to perceive things and react much more quickly.
One interesting question is how the physical and our mental notion of time relates. The other day I read about a truly clever experiment which tries to test whether our brain actually works faster when we are in a stressful situation. The setup goes like this: a man is set to do a backwards free-fall of 33 meters. With him he will have a small wristwatch-like device which will switch blindingly fast between two different images. One of the pictures will be a number. Under normal circumstances a person cannot make out the number since the device flickers so fast. But if time actually slowed down for him he might be able to see the number on the screen. It's a pretty clever setup.
How did it go? When the test person landed he said he had seen the number "98". The actual number shown was "96". Close enough for me. Further experiments yielded similar results. So it seems that our brains actually works faster in some situations! Very intriguing.
You can read about the experiment in the bbc article Time out of mind. It has some further goodies on time as well.
2006-07-02
More Mammatus
More mammatus clouds! This time it's a link to WEATHER WARS, via reddit. Make sure to scroll down a bit to get to the nice pictures. The clouds shown there look very odd, they don't have the usual bubble shape. More like waves, like an upside down ocean. Anyway, totally sweet.
2006-06-25
String Theory: Not Even Wrong.
Via /. I found the following intriguing article:Northwest Florida Daily News: Has string theory tied up better ideas in physics? It argues that String Theory really hampers the advancement of our knowledge in particle physics. The theory (which isn't really a theory at all) has failed to produce any kind of predictions, be them testable or not. The author further argues that it is just the latest fad, scientists has to pursue it or say goodbye to an academic career. But if many of these new scientists would have tried to make advancements through other means than String Theory, perhaps we would have gotten further?
I, for one, was rather surprised by this article, as I've read a lot of positive things about String Theory. But I think that the author has a valid point. And I hope that this and similar articles will result in a diversification of the field of particle physics. Perhaps we can finally make some progress after 30 years of stand still in the field.
I, for one, was rather surprised by this article, as I've read a lot of positive things about String Theory. But I think that the author has a valid point. And I hope that this and similar articles will result in a diversification of the field of particle physics. Perhaps we can finally make some progress after 30 years of stand still in the field.
2006-06-20
Characterizing people as non-linear, first-order components in software development
I just read a very interesting paper on software methodology. What makes a software project succeed? That's the basic question the author tries to answer.
I tend to think in terms of tools when I think about software success. Program in a better language and you're much better off! Use a better IDE! Automate test generation using QuickCheck! All these suggestions are good. But according to the author of this paper called "
Characterizing people as non-linear, first-order components in software development" tools are a second order effect. The single most important thing for software projects is the people in the projects. The programmers. It feels obvious when I write it like this. But think of all the methodologies developed to improve programmer productivity. What we should be focusing on are the people. Who they are, how they behave, what habits they have. We need to embrace that people are different, prone to errors, reluctant to change their habits and tend to communicate best face to face.
Reading this paper was a liberating experience. Having a human centric view is just right. We need to have this perspective even in other parts of society. A swedish politician once said that those political systems that fail are those that are based upon a false or too narrow view of what people are. Such as communism for instance. We need to understand ourselves and accept each other as we are. Only then can we be truly happy and truly productive.
Btw, I found the article via Shae Erisson's blog.
I tend to think in terms of tools when I think about software success. Program in a better language and you're much better off! Use a better IDE! Automate test generation using QuickCheck! All these suggestions are good. But according to the author of this paper called "
Characterizing people as non-linear, first-order components in software development" tools are a second order effect. The single most important thing for software projects is the people in the projects. The programmers. It feels obvious when I write it like this. But think of all the methodologies developed to improve programmer productivity. What we should be focusing on are the people. Who they are, how they behave, what habits they have. We need to embrace that people are different, prone to errors, reluctant to change their habits and tend to communicate best face to face.
Reading this paper was a liberating experience. Having a human centric view is just right. We need to have this perspective even in other parts of society. A swedish politician once said that those political systems that fail are those that are based upon a false or too narrow view of what people are. Such as communism for instance. We need to understand ourselves and accept each other as we are. Only then can we be truly happy and truly productive.
Btw, I found the article via Shae Erisson's blog.
2006-05-20
Adventure
An adventure is only an inconvenience rightly considered. An inconvenience is an adventure wrongly considered.
- G. K. Chesterton
The Death of the Save Icon
I noticed something strange the other day. In my text editor the icon for saving the document looks like floppy disc. A floppy disc?! I can't remember the last time I used a floppy disc. That's so last millennium. Do people still use them? As far as I know computers don't even ship with floppy drives anymore. Just out of curiosity I had to check some other programs to see what icon the use for saving. All the programs I checked, including MSOffice, OpenOffice, Adobe Reader (although their icon looks more like a zip disc), Google Skethup and GIMP, had a floppy disc as their save icon. The only exception I found was jEdit which used a pencil.
Since we don't use floppy discs anymore we need to come up with a better icon for saving. The floppy disc used to be a good symbol but in a few years it will just be confusing as people will have forgotten what it is. The question is then what icon to use. I certainly don't know. And perhaps it's not even the right question to ask. Maybe we shouldn't be saving things anymore at all. At least not manually. What if the text editor automatically synchronized the copy of the text document in memory with that on the disc? This is already happening to some extent with automatic saves but I think it could (and should) be taken much further.
But is it possible to completely eliminate manual saving? Probably no. I often download PDF documents which end up in the browser cache when I view them for the first time. But sometimes I want to save a copy of the document in some specific place on my hard drive. Then I really want to save manually. Or perhaps copying is a better word for it. Anyhow it will need an icon and the floppy disc icon is outdated. So, all graphics designers out there, I'm waiting for a better save icon!
Since we don't use floppy discs anymore we need to come up with a better icon for saving. The floppy disc used to be a good symbol but in a few years it will just be confusing as people will have forgotten what it is. The question is then what icon to use. I certainly don't know. And perhaps it's not even the right question to ask. Maybe we shouldn't be saving things anymore at all. At least not manually. What if the text editor automatically synchronized the copy of the text document in memory with that on the disc? This is already happening to some extent with automatic saves but I think it could (and should) be taken much further.
But is it possible to completely eliminate manual saving? Probably no. I often download PDF documents which end up in the browser cache when I view them for the first time. But sometimes I want to save a copy of the document in some specific place on my hard drive. Then I really want to save manually. Or perhaps copying is a better word for it. Anyhow it will need an icon and the floppy disc icon is outdated. So, all graphics designers out there, I'm waiting for a better save icon!
2006-05-15
The only acronym I know of which takes longer time to pronounce than the words it stands for
Try for your self: WWW vs. World Wide Web.
2006-05-11
Cars in the next lane really do go faster
Since I bought myself a car about a year and a half ago I've spent an increasing amount of time in traffic jams. Sitting in a traffic jam is the perfect place for pondering the mysteries of the world. Such as why the other lane seems to move faster on average than the lane I'm in. This might seem like a logical fallacy but it is not. The time a driver spend in the slower lane is longer than that of a driver in the faster lane. This is simply because the slower lane is, well, slower.
So, this is roughly how my thoughts have been going every time I've been in a traffic jam. And I was very much delighted today when I read an article called Cars in the next lane really do go faster which confirms my theory albeit with a slightly different explanation. It turns out that this result belongs to the field of observation selection effects and which has all kinds of interesting applications. I'll be sure to learn more about this in the future.
So, this is roughly how my thoughts have been going every time I've been in a traffic jam. And I was very much delighted today when I read an article called Cars in the next lane really do go faster which confirms my theory albeit with a slightly different explanation. It turns out that this result belongs to the field of observation selection effects and which has all kinds of interesting applications. I'll be sure to learn more about this in the future.
2006-05-04
Playing with Google Sketchup
About a week ago Google released the program Sketchup for free. Or rather, they release a trimmed down version of Sketchup where you can only save stuff to Google Earth. The idea is quite nice, letting people modeling stuff for their own amusement in Google Earth and thus making Google Earth richer.
Of course I had to try this. So I downloaded Sketchup and went through the tutorial. I must say that I'm really impressed with the tutorial. After having finished it I felt like: Wow, this is SO simple! I can do marvelous 3D modeling without tears! So I had to try my own little project. I decided to create a model of the house I'm living in. Which turned out to be not quite as easy as the tutorial had been. At times it became really frustrating. One problem, or rather mixed blessing, is that Sketchup is trying hard to guess what it is that you want to do. For example it helps you making lines perpendicular or aligning various point. While this can be good I found it to be a real frustration and I didn't find any way to turn it off. But in the end I managed to come up with something that at least remotely resembles the place I live. This is how it looks when imported into Google Earth.

Note the incredibly bad resolution Google Earth has of Göteborg. Shame on you Google! You ought to buy the same maps as eniro has.
I've create a .kmz file for you to download and see Rubingatan for your self in Google Earth.
Of course I had to try this. So I downloaded Sketchup and went through the tutorial. I must say that I'm really impressed with the tutorial. After having finished it I felt like: Wow, this is SO simple! I can do marvelous 3D modeling without tears! So I had to try my own little project. I decided to create a model of the house I'm living in. Which turned out to be not quite as easy as the tutorial had been. At times it became really frustrating. One problem, or rather mixed blessing, is that Sketchup is trying hard to guess what it is that you want to do. For example it helps you making lines perpendicular or aligning various point. While this can be good I found it to be a real frustration and I didn't find any way to turn it off. But in the end I managed to come up with something that at least remotely resembles the place I live. This is how it looks when imported into Google Earth.

Note the incredibly bad resolution Google Earth has of Göteborg. Shame on you Google! You ought to buy the same maps as eniro has.
I've create a .kmz file for you to download and see Rubingatan for your self in Google Earth.
2006-04-26
Switching back from Foxit to Adobe
For about a week I've been using Foxit Reader to read my PDF files. I open a handful of PDF files a day and I've been very happy with the snappiness of Foxit. It's just so much quicker that Adobe Reader to startup and consumes much less memory and CPU while running. All in all, I was very happy with it.
Until today. In the middle of reading a document I started to feel motion sick. Or something like that. I felt it difficult to read the text and it felt like the text was bouncing around on the screen. And once I became aware of this feeling it wasn't difficult to find the source of the problem. The letters was almost literally dancing on the screen. This is what it looked like:

Notice how the baseline of the letters goes up and down? The letters 'l', 'i' and 'v' is placed higher than the other letters. This is what made me feel motion sick.
First I thought that there was something wrong with the document. To verify this I opened it in Adobe Reader with the following result:

No more motion sickness.
So the Foxit story was just too good to be true. Although fast, it is a crappy renderer. As I spend a lot of time reading PDFs with lots of text this simply isn't an alternative for me. I've now switched back to Adobe Reader. And deleted Foxit Reader.
Until today. In the middle of reading a document I started to feel motion sick. Or something like that. I felt it difficult to read the text and it felt like the text was bouncing around on the screen. And once I became aware of this feeling it wasn't difficult to find the source of the problem. The letters was almost literally dancing on the screen. This is what it looked like:

Notice how the baseline of the letters goes up and down? The letters 'l', 'i' and 'v' is placed higher than the other letters. This is what made me feel motion sick.
First I thought that there was something wrong with the document. To verify this I opened it in Adobe Reader with the following result:

No more motion sickness.
So the Foxit story was just too good to be true. Although fast, it is a crappy renderer. As I spend a lot of time reading PDFs with lots of text this simply isn't an alternative for me. I've now switched back to Adobe Reader. And deleted Foxit Reader.
2006-04-25
2006-04-21
Rainbow pictures
Just spotted this on digg. Some simply amazing
pictures of rainbows. I just had to blog it! And don't miss the last picture on the page. It doesn't have a rainbow but is still sunningly beautiful.
pictures of rainbows. I just had to blog it! And don't miss the last picture on the page. It doesn't have a rainbow but is still sunningly beautiful.
2006-04-18
Laterna Magica
It was several years since I had a reading experience like this. Only a handful of times before have I been captured by a book like this. The book is 'Laterna Magica'; the autobiography of Ingemar Bergman.
I haven't read much of late. Due to my hard work and the sick leave that followed I haven't read a single book in a year. I simply haven't had the strength. When I have picked up a book it has felt like a long and heavy project and I've simply had to put it away. Which has been very frustrating since I used to read quite a lot. During my years as an undergraduate at Chalmers I typically read an hour or so every day. I've come to understand that that's very uncommon.
Laterna Magica is an ancient kind of projector in english known as the magic lantern. It mostly resembles a slide projector but used painted on pieces of glass instead of slides. Ingemar Bergman got a Laterna Magica on his tenth birthday.
Friday last week, Good Friday, my fiance and I went to her parents to spend the weekend. As it turned out we were shown to a new room to sleep in, not the usual one that we normally use. The new room used to belong to my fiance's little sister. On one of her shelves I found a copy of Laterna Magica and curiously started leafing through it. It didn't take long before I realized that I had actually started reading the book. And I just couldn't stop.
This isn't the kind of book I plan to read. First of all it's a biography which is usually enough to scare me away. But secondly, and more important is that it feels extremely pretentious to read an autobiography of one of the greatest filmmakers ever to have lived. It's like reading the book of nobel prize winners. It's like I should read it just so that I can brag about having read it despite what I may think about it. I just don't plan to read books like this. But I'm happy now that I did read it.
I haven't read much of late. Due to my hard work and the sick leave that followed I haven't read a single book in a year. I simply haven't had the strength. When I have picked up a book it has felt like a long and heavy project and I've simply had to put it away. Which has been very frustrating since I used to read quite a lot. During my years as an undergraduate at Chalmers I typically read an hour or so every day. I've come to understand that that's very uncommon.
Laterna Magica is an ancient kind of projector in english known as the magic lantern. It mostly resembles a slide projector but used painted on pieces of glass instead of slides. Ingemar Bergman got a Laterna Magica on his tenth birthday.
Friday last week, Good Friday, my fiance and I went to her parents to spend the weekend. As it turned out we were shown to a new room to sleep in, not the usual one that we normally use. The new room used to belong to my fiance's little sister. On one of her shelves I found a copy of Laterna Magica and curiously started leafing through it. It didn't take long before I realized that I had actually started reading the book. And I just couldn't stop.
This isn't the kind of book I plan to read. First of all it's a biography which is usually enough to scare me away. But secondly, and more important is that it feels extremely pretentious to read an autobiography of one of the greatest filmmakers ever to have lived. It's like reading the book of nobel prize winners. It's like I should read it just so that I can brag about having read it despite what I may think about it. I just don't plan to read books like this. But I'm happy now that I did read it.
2006-04-10
Mammatus Clouds
Digg had a very nice link today to mammatus clouds. These clouds simly look amazing! As I've mentioned before I'm just nuts about clouds. When I saw the pictures of the mammatus clouds I took out my copy of the nice "The Book of Clouds" by Dr. John "Cloud Man" Day. Unfortunately the book didn't have very much to say about mammatus and neither has wikipedia. But the mammatus article at University of Illinois is OK. Gee, I wish I get a chance to see this kind of clouds for real some time.
Geek wear
There's some really nice apparels over at cafepress. I'm thinking specifically about geek wear. Like the classic about understanding binary. There is a similar one about time. Since I'm a Haskell programmer there is ofcourse the Haskell shop. I've bought the mouse pad with that Haskell logo. Today, on #haskell, some guy linked to some new cool Haskell related clothes. The first link is simply a nice logo. The other was sime very cute toddler wear, both for boys and girls. But my personal faviourite is a variant on the "What part of ... don't you understand?". Go check it out for yourself.
2006-04-04
On Semantic Nuances
Today I had a rather interesting discussion with some of my colleagues. Andreas Abel is visiting Chalmers this week. Since he was working here for some time he is quite good at swedish and so we spoke swedish with him. But he wasn't quite sure of the swedish word for 'scientist' and tried 'vetenskapare' which makes kind of sense consider the general way that one can construct words in swedish but the actual term is 'vetenskapsman'. Which made us realize that the term 'vetenskapsman' isn't used about scientists today in swedish. Although 'vetenskapsman' corresponds to 'scientist' in english it has a different connotation. Instead the word 'forskare' is used which corresponds to 'researcher'.
So what do swedes really mean when they say 'vetenskapsman'? Ulf Norell suggested that it meant a scientist from say 16th or 19th century i.e. way back in history. Similarly, I suggested a scientist which has contributed to what is considered established scientific truths. But we couldn't really decide how precise these definitions were. Michael Hedberg then joined the discussion and said that the word 'vetenskapsman' made him think of Frankenstein or mad scientists in general. I'm not sure that does the job either but it is clear that the term has some very strange connotations which makes it unsuitable for today's scientists.
While it can be very interesting to try to think about what people mean with certain words I must also offer a word of caution. All too many argument are really about the definition of words. Never engage in such arguments. They are completely pointless and lead to nothing. Instead try to understand what people mean when they say something and when it seems strange to you ask them to be more precise. If their definition of a word doesn't correspond to yours then simply accept their definition as a hypothetical viewpoint and move on. There are more important things to argue about.
So what do swedes really mean when they say 'vetenskapsman'? Ulf Norell suggested that it meant a scientist from say 16th or 19th century i.e. way back in history. Similarly, I suggested a scientist which has contributed to what is considered established scientific truths. But we couldn't really decide how precise these definitions were. Michael Hedberg then joined the discussion and said that the word 'vetenskapsman' made him think of Frankenstein or mad scientists in general. I'm not sure that does the job either but it is clear that the term has some very strange connotations which makes it unsuitable for today's scientists.
While it can be very interesting to try to think about what people mean with certain words I must also offer a word of caution. All too many argument are really about the definition of words. Never engage in such arguments. They are completely pointless and lead to nothing. Instead try to understand what people mean when they say something and when it seems strange to you ask them to be more precise. If their definition of a word doesn't correspond to yours then simply accept their definition as a hypothetical viewpoint and move on. There are more important things to argue about.
How to pour Ketchup.
You just got to love it! Here's an article which delves into the mysteries of getting ketchup out of a bottle:How to pour Ketchup (Catsup). Full technical explanation. The thing is, the standard techniques, such as hitting the bottom of the bottle doesn't work very well.
The irony is that this article is mostly useless. People buy squeeze bottles nowadays.
The irony is that this article is mostly useless. People buy squeeze bottles nowadays.
2006-04-01
Applications of Randomness in System Performance Measurement
Here is a link to a PhD thesis entitled Applications of Randomness in System Performance Measurement. I haven't actually read the dissertation but the abstract is quite informative in itself. Here's a quote from the second paragraph:
When I read this several papers came to my mind which I suddenly realize doesn't hold water. Just as the above text says these papers report improvements which might just as well be noise.
The abstract then goes on to explain the contributions of the thesis:
Next time I'm about to measure the efficiency of a computer program I'm going to read this dissertation carefully. Today's computer system with all their complex ways to trying to speed up things has made measurements much more difficult. It seems that a little bit of randomness at the right place is the key which can alleviate these problems.
For TCP/IP, changes of a few percent in link propagation delays and other parameters caused order of magnitude shifts in bandwidth allocation between competing connections. For memory systems, changes in the essentially arbitrary order in which functions were arranged in memory caused changes in runtime of tens of percent for single benchmarks, and of a few percent when averaged across a suite of benchmarks. In both applications the measured variability is larger than performance increases often reported for new improved designs, suggesting that many published measurements of the benefits of new schemes may be erroneous or at least irreproducible.
When I read this several papers came to my mind which I suddenly realize doesn't hold water. Just as the above text says these papers report improvements which might just as well be noise.
The abstract then goes on to explain the contributions of the thesis:
To make TCP/IP and memory systems measurable enough to make benchmark results meaningful and convincing, randomness must be added. [...] We show how to choose reasonable amounts of randomness based on measuring configuration sensitivity, and propose specific recipies for randomizing TCP/IP and memory systems. Substantial reductions in the configuration sensitivity are demonstrated, making measurements much more robust and meaningful. The accuracy of the results increases with the number of runs and thus is limited only by the available computing resources.
Next time I'm about to measure the efficiency of a computer program I'm going to read this dissertation carefully. Today's computer system with all their complex ways to trying to speed up things has made measurements much more difficult. It seems that a little bit of randomness at the right place is the key which can alleviate these problems.
Hektor
I just have to write about this beautiful little thing called Hektor: which was featured on digg. It is a little machine consisting of two motors, a holder for a spray can, a bit of circuitry and wiring and when it is plugged into a computer sprays beautiful pictures. The design is so simple and elegant that the machine in itself is a piece of art. Make sure to watch the videos of Hector at work, they are fascinating to look at. I only wish I could have done this myself.
2006-03-31
The Seven Warning Signs of Bogus Science
I just read a great article on how to maintain healthy skepticism towards what is said to be incredible scientific breakthroughs called The Seven Warning Signs of Bogus Science. There's a lot of people out there who simply doesn't understand the way scientific research is done or simply wants to call themselves scientists so that they can get more credibility. The advises from this article can work nicely as a guide to when you should have a closer look at what you hear about or even dismiss it.
2006-03-28
Planet Haskell
Planet Haskell was launched a couple of days ago and now it is is hosted at planet.haskell.org. It aggregates a couple of Haskell related feeds into one blog. I think this is a very nice idea. It also makes me think that I should start blogging more about programming. This blog I use for all kinds of nonsense so maybe I should start my own programming related blog. When I'm thinking about it I do have quite a lot of things to write about that is programming related.
2006-03-27
Fancy Pants Adventure
Via digg.com I found this marvelous flash based platform game called Fancy Pants Adventure. Not only has it really cool graphics, hilarious animations and sweet music, it is also very playable with well designed levels. The game play borrows heavily from Sonic the Hedgehog. The general style of the game when it comes to graphics, sound and humor reminds me of Neverhood, another awesome game although not a platform game.
The only disappointment with this game is that it only features one world with three levels. I played through this pretty quickly including finding all the secrets ("collecting trophies" in FancyPants lingo). When finishing the last level it says that it will be continued. I sure hope that will be the case.
The only disappointment with this game is that it only features one world with three levels. I played through this pretty quickly including finding all the secrets ("collecting trophies" in FancyPants lingo). When finishing the last level it says that it will be continued. I sure hope that will be the case.
2006-03-25
The markings of a geek
OK. I admit it. I am a geek. A true geek.
This weekend me and my girlfriend visited her parents. While browsing their bookshelves my eyes were almost magnetically drawn to one title: Firefox. I felt an immediate urge to read the book despite the fact that I didn't know anything about it. The only reason I had was that I use the browser Firefox for my daily surfing. Now, how geeky is that on a scale between 1 and 10? Well, I don't know but I would rank it pretty high.
Since I'm in the mood for confessing my geekiness I might as well confess another little episode I've had. This one is about perfume, which in itself lowers my geek score but only marginally. Once I was reading the paper and my eyes fell on an ad for perfume for men. Now, these ads don't normally draw my attention but this one did big time because of a single fact: The name of the perfume was π. I was actually quite embarrassed by my immediate urge to buy this perfume, I wasn't wearing that much perfume at all at the time (and I still don't, although this perfume did boost my perfume usage quite a bit for a while). So I resisted the urge for at least two years. But whenever I saw the ad or the actual perfume in some store I felt I simply had to buy it. Eventually I couldn't resist it, returning home with a much too expensive perfume whose name was a transcendental number. I was a fragrant, happy geek.
This weekend me and my girlfriend visited her parents. While browsing their bookshelves my eyes were almost magnetically drawn to one title: Firefox. I felt an immediate urge to read the book despite the fact that I didn't know anything about it. The only reason I had was that I use the browser Firefox for my daily surfing. Now, how geeky is that on a scale between 1 and 10? Well, I don't know but I would rank it pretty high.
Since I'm in the mood for confessing my geekiness I might as well confess another little episode I've had. This one is about perfume, which in itself lowers my geek score but only marginally. Once I was reading the paper and my eyes fell on an ad for perfume for men. Now, these ads don't normally draw my attention but this one did big time because of a single fact: The name of the perfume was π. I was actually quite embarrassed by my immediate urge to buy this perfume, I wasn't wearing that much perfume at all at the time (and I still don't, although this perfume did boost my perfume usage quite a bit for a while). So I resisted the urge for at least two years. But whenever I saw the ad or the actual perfume in some store I felt I simply had to buy it. Eventually I couldn't resist it, returning home with a much too expensive perfume whose name was a transcendental number. I was a fragrant, happy geek.
2006-03-17
Piled Higher and Deeper
Since before my previous post I've had a very long blogging slump where I haven't written anything here. So once I got back to this blog I went through a couple of my old posts just to refresh my memory on what I had been writing about before. When I came to the Calvin & Hobbes post I realized it was not right. Apart from Calvin & Hobbes and Zits there is actually one other comic strip that read on a regular basis and enjoy. It is Piled Higher and Deeper. The strip is about a couple of PhD students at Stanford University. Of course the humor is very much concentrated around the life of a PhD student with low salary, long working ours, ignorance from the supervisor and the inability to graduate on time. I don't think it is very well known for people other than PhD students. But as far as I know it is pretty popular among PhD students, at least in the States. So if you're a PhD student I can warmly recommend it. A key element in humor is self recognition and I think you will find a lot of that in this strip.
Completely unrelated: this is my 100th post on this blog. Yay!
Completely unrelated: this is my 100th post on this blog. Yay!
2006-03-16
Curse of the Were-Rabbit
Yesssssss. Finally! It arrived today. My copy of Wallace & Gromit - Curse of the Were-Rabbit on DVD. I've been waiting for this for several weeks now, almost counting the days.
Now I'm going to watch this movie till the DVD player breaks down. I just love this movie. I gave it 10 on imdb.com. And I was very happy to see that it got the Oscar it so well deserved.
Now, if you'll excuse me, I'm going to lock myself in and spend the rest of my life watching this movie.
Now I'm going to watch this movie till the DVD player breaks down. I just love this movie. I gave it 10 on imdb.com. And I was very happy to see that it got the Oscar it so well deserved.
Now, if you'll excuse me, I'm going to lock myself in and spend the rest of my life watching this movie.
2006-02-04
Switching torrent client
I don't know about you but once I've found a way to do something I tend to stick with it. If it works OK why should I change it? It's probably because I'm lazy. Or that I don't want to be bothered. I have so much to think about anyway that my brain is totally overloaded. I don't want to spend time and brain power on learning something new when I have something that already works.
But recently I've tried to be a little more open to new solutions and to learn new ways of doing things. I think it started sometime during 2003. For some reason I told my supervisor that I was using Pine as my email program (it's a text based program, dating back from the 80's). I thought it pretty hard-core to use it. But my supervisor wasn't impressed at all. He told me that technology has improved, that better alternatives exists and that it can be very productive to switch. Which I did. And I haven't missed Pine since.
After that I've been trying to learn the lesson from my supervisor. I shouldn't be afraid of learning to do new things as they can help me a lot. Usually new tools help to boost productivity. One such switch I made about a year ago it from CVS and Subversion to darcs. Maintaining my code is now a joy compared to before.
So where am I heading with this rambling? I'm heading for the day before yesterday. I made another switch. A switch that I am particularly happy about. I switched torrent client.
I've been using Azureus for some time and I have been quite happy with it. It is a feature packed client that also sports plugins which means endless of functionality. Nice of course. But then I read about a torrent client at digg.com which a lot of people there seemed to like. It was called uTorrent. Since so many people seemed to like it I decided to check it out. From what I read it seemed to be a very small client with very modest resource consumption. So I downloaded and installed it. Once I had installed it and tried uTorrent it took me less that a minute to decide to uninstall Azureus. While Azureus has a lot of nice features it is also rather bloated and resource hungry. It takes the computer for quite an exercise. Not so with uTorrent. It's binary is only 130kB! Can you believe that?! It takes up very little memory and is blazingly fast. You won't notice that you're running it in the background. And despite having such a small footprint it is packed with features. It has everything I ever needed when downloading or seeding torrents. The switch to uTorrent was not only easy, it was liberating.
Discovering uTorrent also gave me some hope about current and future software. A lot of programs nowadays are rather bloated and resource hungry. Why is that? When I was programming in assembler on my c64 we could squeeze in a lot of functionality in just a couple of kB. Now, I don't claim that we should always program with resource efficiency in mind. Correctness and programmer productivity are more important. But I often find that making a program small makes it easier to make it correct and can often boost my productivity. There need not be a tension here. I think many programmers and companies have things to learn here. There's a blogpost at zdnet about this which uses uTorrent as an example.
Finally, the switch to uTorrent wasn't made any more difficult by the fact that Ludvig Strigeus, the author of uTorrent, is an old student of mine. :-)
But recently I've tried to be a little more open to new solutions and to learn new ways of doing things. I think it started sometime during 2003. For some reason I told my supervisor that I was using Pine as my email program (it's a text based program, dating back from the 80's). I thought it pretty hard-core to use it. But my supervisor wasn't impressed at all. He told me that technology has improved, that better alternatives exists and that it can be very productive to switch. Which I did. And I haven't missed Pine since.
After that I've been trying to learn the lesson from my supervisor. I shouldn't be afraid of learning to do new things as they can help me a lot. Usually new tools help to boost productivity. One such switch I made about a year ago it from CVS and Subversion to darcs. Maintaining my code is now a joy compared to before.
So where am I heading with this rambling? I'm heading for the day before yesterday. I made another switch. A switch that I am particularly happy about. I switched torrent client.
I've been using Azureus for some time and I have been quite happy with it. It is a feature packed client that also sports plugins which means endless of functionality. Nice of course. But then I read about a torrent client at digg.com which a lot of people there seemed to like. It was called uTorrent. Since so many people seemed to like it I decided to check it out. From what I read it seemed to be a very small client with very modest resource consumption. So I downloaded and installed it. Once I had installed it and tried uTorrent it took me less that a minute to decide to uninstall Azureus. While Azureus has a lot of nice features it is also rather bloated and resource hungry. It takes the computer for quite an exercise. Not so with uTorrent. It's binary is only 130kB! Can you believe that?! It takes up very little memory and is blazingly fast. You won't notice that you're running it in the background. And despite having such a small footprint it is packed with features. It has everything I ever needed when downloading or seeding torrents. The switch to uTorrent was not only easy, it was liberating.
Discovering uTorrent also gave me some hope about current and future software. A lot of programs nowadays are rather bloated and resource hungry. Why is that? When I was programming in assembler on my c64 we could squeeze in a lot of functionality in just a couple of kB. Now, I don't claim that we should always program with resource efficiency in mind. Correctness and programmer productivity are more important. But I often find that making a program small makes it easier to make it correct and can often boost my productivity. There need not be a tension here. I think many programmers and companies have things to learn here. There's a blogpost at zdnet about this which uses uTorrent as an example.
Finally, the switch to uTorrent wasn't made any more difficult by the fact that Ludvig Strigeus, the author of uTorrent, is an old student of mine. :-)
2006-02-02
MythBusters on Star Wars
There's a great article about the MythBusters over at Star Wars Community called Putting Star Wars to the MythBusters Test. It gives some nice background info about the MythBusters and their involvement in the Star Wars prequels. They also talk about various things in the Star Wars movies they would like to try on the show.
2006-01-31
"And the nominees are ..."
It's that time of the year again. Time to guess who's going to win an Oscar. Today the Academy announced the nominees for the 78th Annual Academy Award. Here is a list of the nominees from imdb.com.
Many of the nominated films I haven't seen but I'll comment on some of the nominations and non-nominations.
First of all I was very sad not to see Gwyneth Paltrow nominated for her role in Proof. I really liked her performance in that movie. But I guess the movie producers didn't hire enough lobbyists to get a nomination.
The movie which got the most technical nominations is King Kong. I guess the Academy is tired of handing out those Oscars to Star Wars movies. Revenge of the Sith only got one nomination. And that's for makeup! A bit of a disgrace for Mr. Lucas.
The one Oscar I'm really crossing my fingers for this year is Best Animated Feature Film of the Year. It just has to go to Wallace and Gromit! That film is absolutely spectacular! I've preordered it on DVD to make sure I get it quickly.
Apart from that I'm rather ignorant about the other nominations. Which really means it's going to be a pretty boring event for me. I suppose I could go and watch some of the nominated movies. But I really don't feel like seeing any of them. Oh, well. I'll guess I just have to wait till next year.
Many of the nominated films I haven't seen but I'll comment on some of the nominations and non-nominations.
First of all I was very sad not to see Gwyneth Paltrow nominated for her role in Proof. I really liked her performance in that movie. But I guess the movie producers didn't hire enough lobbyists to get a nomination.
The movie which got the most technical nominations is King Kong. I guess the Academy is tired of handing out those Oscars to Star Wars movies. Revenge of the Sith only got one nomination. And that's for makeup! A bit of a disgrace for Mr. Lucas.
The one Oscar I'm really crossing my fingers for this year is Best Animated Feature Film of the Year. It just has to go to Wallace and Gromit! That film is absolutely spectacular! I've preordered it on DVD to make sure I get it quickly.
Apart from that I'm rather ignorant about the other nominations. Which really means it's going to be a pretty boring event for me. I suppose I could go and watch some of the nominated movies. But I really don't feel like seeing any of them. Oh, well. I'll guess I just have to wait till next year.
2006-01-30
A load of Quotes
Since I simply can't resist a good quote or two I was just ecstatic to see the page Quotations for CS1. It has a ton of computer science related quotes. I would have picked some favorites told you about them but there are simply too many quotes in this page to digest in just a day or two. I'll make sure to come back to this page from time to time when I feel a quote urge.
2006-01-24
Install fonts easily on Windows XP
There is one task that I occasionally do with my Windows computer which I think is horribly complicated: installing a font. The official way to do it is so long and tedious that I refuse to spell it out here but if you're interested click this link. All that it needed to install a font is to just copy it to the right directory. I could of course copy the fonts manually but that is only a little more efficient than the official way and then I need to remember which directory the fonts should go into.
So, instead of just complaining about the problem here is a tweak for Windows XP which makes it painless to install fonts. When implemented, this tweak enables you to install a font simply by right-clicking on it and select 'install'. Couldn't be easer. Here's how it's done:
And you're done!
Now you can easily install your fonts from explorer by simply right-clicking on them and select 'Install'. If you want to try it out here are some web sites with free fonts that I can recommend:
So, instead of just complaining about the problem here is a tweak for Windows XP which makes it painless to install fonts. When implemented, this tweak enables you to install a font simply by right-clicking on it and select 'install'. Couldn't be easer. Here's how it's done:
- Open Explorer. Open the 'Tools' menu and choose 'Folder Options'.
- Click the tab 'File Types'.
- Locate the file type 'OpenType Fonts' in the list and select it. It has extension 'OTF'.
- Click 'Advanced'.
- Click 'New'.
- In the first field write 'Install'.
- In the second field write 'C:\WINDOWS\system32\xcopy.exe "%1" C:\WINDOWS\Fonts'
- Click 'OK' and then 'OK' again.
- Now, locate the file type 'TrueType Fonts' and select it. It has extension 'TTF'.
- Repeat steps 4 through 8.
- Click 'OK'.
And you're done!
Now you can easily install your fonts from explorer by simply right-clicking on them and select 'Install'. If you want to try it out here are some web sites with free fonts that I can recommend:
- FreeFonts is a huge resource of free fonts.
- TypeNow.net has some nice movie and music fonts.
- Divide by zero fonts has some really weird but cool fonts.
2006-01-23
Beautiful pictures
I'm a new and happy user of the photo site Flickr. Flickr lets you easily upload and share your photos over the internet. Organize then, label them, search others photos and so forth. It's a nice site.
Today I found a spectacular set of photos. The thing is, I very much like clouds. Mostly Cumulus. But clouds in general. And the photo set I found has the most amazing pictures of clouds above green fields. I could sit and watch these pictures hours on end. They're absolutely beautiful.
Today I found a spectacular set of photos. The thing is, I very much like clouds. Mostly Cumulus. But clouds in general. And the photo set I found has the most amazing pictures of clouds above green fields. I could sit and watch these pictures hours on end. They're absolutely beautiful.
Subscribe to:
Posts (Atom)