Tuesday, May 27, 2008

Why is it so hard to cancel a service?

I sent a Dutch insurance company, Zilveren Kruis Achmea, a note that I would like to cancel my ongoing travel insurance. Here is their response:

Graag ontvang ik van u bericht of u nog ingeschreven staat in een Nederlandse gemeente.

U kunt namelijk de reisverzekering niet behouden wanneer u in het buitenland woont. Volgens onze voorwaarden kunt u deze verzekering alleen afsluiten en behouden als u in Nederland woont.

(Translation: Please reply to tell us whether you are still living in The Netherlands. That's the only way you can keep your travel insurance, you see.) What part about cancelling my travel insurance do they not understand?

As a PhD-student here remarked, it is a little bit like that old joke:
Me: I would like to have a coffee without milk.
Zilveren Kruis Achmea: But we don't have milk...
Me: A coffee without cream then!

Saturday, March 29, 2008

Remaking Old Games

The past couple of months I have been working on a secret project. I don't want to say much yet, but what I can say is that it is a remake of my favorite computer game ever.

Why Remakes?

Working on this project made me think about the process of remaking an old computer game. To remake an old game is a relatively easy way to make a fun game, because you only have to solve what I'd like to call "local problems". With a local problem I mean a problem whose solution does not affect any other problem. That is, local problems can be solved one by one without worrying about the big picture. Designing a whole new game on the other hand, is a global problem, since many decisions you make in the beginning will have a huge influence on what your game will look like in the end. I think a large project has a much bigger chance of completion when it is clear at all times what needs to be done next, especially when working with a team.

Besides this, most of the technical restrictions the original developers struggled with are gone, allowing for easy improvements in many different areas. For example, back in the early eighties developers were very limited as to what kind of music could be played from a home computer, not in the least because of memory restrictions. Yet by restricting to the essence of the songs the composers had in mind, they still managed to create very catchy game music. And this music is just screaming to be accompanied by that deep base line that would never have been heard through those PC-speakers, a call for creativity through restriction. This is similar for graphics and sound effects.

A third great thing about remaking an old game is that your game automatically has an audience. Many people will like to play the game for reasons of nostalgia. And this is what makes it a lot of fun to remake it as well!

In short, it is relatively easy to complete a remake and many people will be interested in playing it.

Recreating Tile Maps

When I was working on my project there was one area in particular that consumed a lot of time: assembling building pieces (tiles) into tile maps. It is not that I really mind doing it, normally I would be laying a large puzzle in the Christmas holiday, and this year I decided that I would instead reassemble forty tile maps. However, when I had completed about two thirds, I discovered losslessly compressed images of these tile maps that were created directly from the game (as it turns out, for most old computer games such map images are floating around on the internet, often created from screen shots by obsessed gamers ;) ). Only then I decided that I would write a tool that would automatically assemble the pieces into a tile map file.

An example of a losslessly compressed tile map image.

I had chosen to make my maps in the Tile Map XML-format, a format that is used in Tiled, a tile editor written by my friend Bjørn Lindeijer and Adam Turk. From this open format, it should be easy to export it to any other tile map file. However, the hardest part would not be to assemble the tiles in a Tile Map XML-file, but to find a way to arrange the unique tiles in a way that a human could work with it. After all, at some point these tiles will need to be redrawn, and then it would be convenient if they are arranged in a coherent way. Together with Bjørn, I created a heuristic that uses how often tiles are found to be adjacent in the image of the tile map.

An example of a unique tile image.

The Python program Image2Map.py uses this heuristic to create an image of the unique tiles. There is a separate program MapWriter.py that uses this image and the original tile map image to create a Tile Map XML-file. The heuristic does a quite decent job for the information that can be extracted from a tile map image. We realized that it would be impossible to come up with an algorithm that would create a unique tile image just like a human does, because we humans recognize the objects in the tile map image, while the computer only recognizes the relationship between the tiles. We therefore split the functionality up into these two command line programs to give the user the opportunity to adjust the unique tile image before creating a Tile Map XML-file.

Example Usage

The above picture was created from the tile map image JansHouse.png by typing python Image2Map 8 8 JansHouse.png. Here the argument 8 8 corresponds to the 8 x 8-tile size. After this, a Tile Map XML-file can be created by typing python MapWriter.py 8 8 JansHouse.png JansHouse-Tileset.png. Of course, you need to have Python installed for this to work at all, and you additionally need the python-networkx package (in Ubuntu/Debian, type sudo apt-get install python-networkx).

If you have Sun Java Webstart installed, the resulting file JansHouse.tmx can then be opened by going to Tiled's Website and clicking on "Start Now!". Alternatively, if you have a Java Virtual Machine installed, downloading Tiled 0.6.1 and running it with java -jar tiled.jar should do the job.

Labels: ,

Thursday, December 20, 2007

Parking Space

Some months ago Annett's parents gave us their old car. We don't use it so often, because inside Oslo it is much easier to travel by bike and subway. However, whenever we visit her parents, it saves us over hundred euro in expensive train tickets. Since a couple of weeks we are therefore renting a parking space next to our apartment.

There is a problem that the parking place still lacks a sign that it is ours, and so when we came home tonight from shopping for a Christmas dinner, we found our space blocked by a big car. Not only had this person parked at a place where it was not allowed, she had also managed to cover the two remaining spaces with her bad parking skills. Luckily we have a very small car and we were able to squeeze it between her car and the bushes.

When I went down five minutes later to shop for groceries, a woman was just about to drive away. Now I was annoyed, and could probably have said it much more polite than I did, but I asked her if she was paying for that place, because we were. She answered with "unnskyld?" (I'm sorry?) and I switched to Norwegian.

It was an unbalanced discussion. Not because I wasn't speaking in my native language, but because of the facts we presented to each other:

WOMAN: I heard two years ago from my daughter that these parking places are for guest parking.
ME: We called a couple of days earlier with the responsible organisation and got assigned this parking place. Also there is a sign that says "no parking" at the end of the street.

As you can see she was in dire need to strengthen her argument, and so she did. Repeatedly she pointed out her authority in this matter, explaining that "this is how we do it in Norway." The message was clear, she was not going to let a foreigner tell her what she shouldn't do.

I was shocked. Should I've explained to her that she should feel privileged to have me here? Someone with an education Norway never had to pay for? Of course not. There is no arguing with people like this. Instead I chopped it off by saying that I didn't think we were going to agree. We should buy one of those wheel clamps, although that won't give us our parking space back...

When Solomon said there was a time and a place for everything, he had not encountered the problem of parking his automobile -- Bob Edwards


Saturday, October 27, 2007

Antibiotics, Visitors in Oslo, Presenting SAGE, and the Poincaré Problem

Following a recurring theme on this blog, I would like to start with an excuse for not writing for so long. It has a been a busy time, and a lot of things have happened.

Annett has been ill for the past four, five weeks. She has been bedridden with a sinus infection, that just didn't go away. After her third antibiotics she visited a specialist (Dutch: KNO-arts) who examined her thoroughly for an hour. The result: there was no sinus infection anymore, and he couldn't pin point the reason for the remaining pressure on her head and the headaches. Among the possible causes, he suggested the strong antibiotics itself and the use of pain killers, generating a vicious circle. Next week she will visit a neurologist.

Luckily there were times where she felt a bit better. Joost and Annieka payed us a six-day-visit ending Tuesday last week. They brought some delicious stroopwafels, taai taai and pepernoten. We rented for a long weekend a cabin in Eidfjord, a city on the west coast a five-hour-drive from Olso. The cabin was connected to the sea with a beautiful view out over the fjord ("een doodeenvoudige zeeinham"). From there we planned to take day trips into the mountains. Unfortunately Annett didn't come along for obvious reasons, and I only participated the first day because I fell ill. Nevertheless we had a cozy time. Oude jongens krentenbrood, as we say in Dutch.

Some weeks ago I gave a talk (HTML, PDF, ODP) about SAGE for my algebra group in Oslo, mathematics software that I wrote about earlier on this blog. It is the first presentation that I give in a new style, free from data bloated slides and dull bullet points. Instead, the slides aim to capture the essence of what I talk about, and support me in making an emotional connection with the audience. My journey for improving my presentation style started with the discovery of Garr Reynolds' blog Presentation Zen, which aims to reform the way Power Point presentations are traditionally being given (I'm looking forward to the book!). There I read about the book Beyond Bullet Points by Cliff Atkinson, which helped me to pour my presentation in the form of a traditional story structure.

Other good news is that my PhD research is gaining some momentum. After the holiday my supervisor and I decided to put what we had been doing so far on hold, because I felt stuck. We switched our attention to another related topic that we had been looking at in the beginning of my PhD thesis, called the Poincaré problem. The past few weeks I've been reading recent literature on this topic, and right now I'm reading in detail some articles where there seems to be room for improvement.

The upcoming week is going to be busy. Thursday and Friday there is a national algebra conference organized in Oslo, directly followed by KoMIN, a conference for Norwegian graduate and undergraduate students. There I'll probably give a short presentation on my PhD research.

But I'm looking even more forward to the weekend after that. Annett and I will be in the Netherlands from the 9th until the 14th of November, so that we can be at my father's birthday. Besides looking forward to see my family and friends again, I'm looking forward to eat typically Dutch Chinese food, which is very different from the Chinese food you get in other countries. I haven't eaten this in almost two years. Yum!

Labels: , ,

Friday, August 24, 2007


Wikipedia is one of my long term interests. In January 2002 my brother introduced me to Wikipedia, and I started editing and creating some articles. Back then there were only 20,000 articles in the English version! Later I translated some articles between the Dutch, English and Norwegian Wikipedia's.

Although I have never been a major contributor, I did spend some time following its progress. Especially the first couple of years it was very exciting to follow the explosive growth of Wikipedia. I remember one summer holiday week doing nothing else but reading on Meta-Wiki on ideas that were being realized on each of the Wikimedia chapters. In 2005 I even visited the first Wikimania in Frankfurt together with three fellow enthusiasts. We wrote articles about wiki's, Wikipedia and an interview with co-founder Jimmy Wales later that summer in the Periodiek, the glossy magazine of our student association (I mention this because I'm still very proud of our little magazine).

However, after this my interests shifted to other things. Wikipedia had become so popular that it was just too hard to keep up with all the developments, and after three years I also wasn't all that enthusiastic about the milestones anymore. Nowadays Wikipedia remains a minor interest to me, and I always enjoy it when a Wikipedia related article pops up in my RSS reader. My favorite source for this is Wikizine, an independent newsletter on what is happening at the Wikimedia projects. Since I just can't understand why there are only about 700 readers subscribed, I decided to do some advertising for them. If you're interested in Wikipedia, this is a valuable source to keep you informed.


Saturday, August 04, 2007

Trip to Ålesund

At ten in the morning we were on our way to Ålesund, a seasided village of which the largest part lies on an island. Being known for the Jugendstil, Ålesunds city image is largely dominated by stone houses built in this style.

When In 1904 a fire burned down large parts of the city, Kaiser Wilhelm II, who had been a frequent visitor to the area, had genereously sent several ships with resources for rebuilding the city. This time, though, the houses were to be build out of stone instead of wood and in the contemporary Jugenstil.

(image by Michael Krautwasser available under the GFDL 1.2)

The girls and me discovered that from the top of the local hill Aksla you can get a great view over the city. You can see this for yourself on the pictures above. Although we only spend three hours in Ålesund, this was enough to visit the Jugendstil museum and get a general feel of the atmosphere.


My parents on holiday in Norway

This year my parents did something they haven't done in thirty years: they spent their summer holiday driving through Norway. And so did we. To check where they were going, we decided to meet up with them at the cabin of Annett's parents. Don't get me wrong, it was the only way we could avoid running in to them on our own holiday.

At the cabin Gaute introduced us to his new girlfriend Runi, and we went fishing with the eight of us. We caught a lot of fish, although my mother caught mostly water plants, trees and other leashes.

There is a Norwegian proverb stating that there is no such thing as bad weather, just bad clothes. In the pouring rain, Annett's mother, my father and me the next morning took the boat to fetch a net. Because I borrowed effective rain gear, the rain wasn't bothering me at all. Instead it made the fishing experience somehow more real. The sky and the water both had the same gray color, and the only color was coming from the forest: several shades of green, fading to gray with distance. Pretty, in a mystical sort of way.

Afterwards we prepared the fish outside in the rain. Outside, to keep it clean inside. This time Bastian had to share the fish heads with Inu, but he didn't seem to mind. I guess more than forty fish heads is a lot, even for an everhungry Labrador.

Inu had the time of her life. She was constantly exploring the area around the cabin. We didn't bother anymore to keep an eye on her all the time. She managed to fall into the water, and so she swum for the first time. And she lost her first milk teeth. A couple of times we had to put her in the room, because she wanted to play with Bastian all the time. We think of her as the annoying side kick of Bastian. This is too much for Bastian, with his hundred dog-years he just doesn't manage to play so much anymore.

It means a lot to me that my parents know what my life here is like. By the time I post this on my blog, Maarten and Marian have payed us a visit. In the autumn we plan to go camping in the mountains together with Joost and Annieka. Bjørn will probably start working for Trolltech in Berlin, and might go to its main office in Oslo now and then. I'm glad that our advertising of our sleeping couch is paying off.


Sunday, July 08, 2007

VR Panoramas and Google Earth

When I was enjoying a stunning view from a mountain in Nordfjordeid, I was discussing with Pål how great it would be to embed a layer of Quicktime VR Panoramas in Google Earth (here are some examples of small VR Panoramas). The ability to embed URLs in the panoramas would then make it possible to jump location by clicking inside your panorama, hopping for instance from mountain top to mountain top!

I've been fascinated by these panoramas for some time now, and wrote about them long ago in connection to generalizing point-and-click adventure games. As for now, I don't think there exists an open alternative to these, and I don't think it is possible to create them in GNU/Linux. Hopefully somebody steps up.

Labels: ,