Older blog entries for knipknap (starting at number 96)

GPS Maps - Viewing GPX Files In Google Maps

Today I wrote an app for viewing GPX files in Google Maps. You can try it out here:


(A Facebook account is NOT required to use the app!)

If you do have a Facebook account, you can also attach the GPS tracks to postings on your Facebook wall. Please let me know if something does not work.

Syndicated 2009-07-29 17:07:45 from Debain.org

Exscript 0.9.16 And termconnect 0.2.0 Are Out

I just released Exscript 0.9.16 and termconnect 0.2.0. The release announcement is here.

Syndicated 2009-07-26 20:47:15 from Debain.org

Journey to Milano

I just got back from a bike trip from Stuttgart, Germany via the Alps to Milano. In the last five days I have ridden the bike in hail, storms, snow, the most extreme rain that you have ever seen, summer heat of 40°C in the shadow, and in the freezing cold. I had expected a hard trip, but I simply can not explain the intensity of what has happened. And on the fifth day, I quit, taking the train instead of completing the last two distances.

Day 1 - The Underestimated [map]

I am starting to Tübingen in the pouring rain, but only ten minutes later the sky clears up. I can comfortably make my way via known roads for now, so I yet ignore my navigational device (Oregon 400t). In Tübingen the Navigator does not know a good path towards Switzerland, so I navigate manually. For the first time in my trip, I head into villages that are unknown to me.
It starts off pretty hilly; a lot more so than I expected. I had intentionally planned the first day to be rather lazy to let my body get used to the work, but after a while I realize that this day is actually a hard part of work. There are almost no plains here, and by the time I arrive at my first hostel for the night I am more than glad to have made it.
During the trip I occasionally feel a slight pain in my right achilles tendon; this is well known to me and I know not to try and compensate by using my left foot. I make sure to ride extra carefully.
The hostel in Stein am Rhein is quite good, and I can lock my bike away in a room with only few other people. I take a walk into the city in the evening and after a meal the is rather low in calories, I get a good night of sleep.

Day 2 - The Overestimated [map]

My muscles feel pretty good, and shortly after starting the pain in my achilles is back. It still doesn’t affect my strength, but is significant enough to remind me to be careful. After a rather hilly start I cross the Obersee. I the middle of the dam it feels like the ocean, and it’s a great way to start into the Alps that are now towering in front of me. I had a lot of respect for the Alps - apparently too much, in fact. After climbing the first large mountain I remember thinking that this was *a lot* easier than I expected, and can enjoy a huge and slow decent. I end up at the Lauerzer Sea, which is an incredible sight. For the first time I stop to take a picture. Upon stopping I notice that my arms are burned from the sun, so I take the opportunity to apply some sun blocker as well.
The trail continues with some small climbs, until I end up at the Gotthard. This is an utterly exhausting way to end the day, and I could not have crammed much more into it. Today’s 165 kilometres are enough.
The hostel in Hospental is very friendly and nice, and that the owners are trying to do everything to make it a warm and familiar place. There are three other people my age who are travelling the Swiss to go to a festival in Locarno. We have a nice evening and I am glad to have met them.

Day 3 - Can It Get Any Worse? [map]

My muscles are starting to feel used, but my achilles is now pain free. Today starts sunny, and after climbing the missing 500 vertical meters on the Gotthard I am in for at least 70km of decline. The first 10 or 15 km of this is headstones though, so it is not a fast or very pleasant ride. Still, this was no doubt the easiest part of the trip. I continue in the growing heat, and this is where things start to go ugly.
It is now at least 35°C in the shadow, and on a steep climb of 10% I am starting to get really grumpy. I can’t be in the shadow, so I am riding in at least 45°. The heat is too much to take, the traffic unbearable and the stink of molten asphalt in the air adds more; I see and feel the heat waves coming from the ground. I barely make it up the mountain. At least I get another decline in return, but on the next hill at km 135 I feel like falling off my bike. I take a 15 minute break, and then finally cross the border to Italy to make it to Como. I drop my luggage at the hostel and head on for Milano.
The ride to Milano and back adds another 80km on top of the 145 that I already did, and due to the still increasing heat this is almost more than I can take. I am going at 15km/h now, but in the end I do manage to make it back.
In the evening I go get some food at an excellent Italian restaurant and call it a day.

Day 4 - It Can Always Get Worse!

I did not sleep well, and I get up at 6:30 in the morning. Today’s distance is one of the shortest, but after having seen the Gotthard going in the other direction yesterday this one scares me the most. For the first time, my muscles already feel tired in the morning. Still, my achilles feels well.
Again, the sun is shining and I swear that if today turns out to be as hot as yesterday I am going to quit. Little did I know.
Only 30 minutes later, all hell breakes loose; clouds are coming, and what seems like a strong storm at the time starts. It is still warm, so I am actually glad to be able to start in the rain. It takes only a minute to soak my clothes, but remembering yesterday’s heat I don’t mind that at all.
After riding in the pouring rain for half an hour, things get worse. The rain is now so strong that all roads turn into rivers; this is difficult with the bike because you can’t see the potholes, of which there are plenty in Italy. Another hour later, I the rain stops for a short while - only to come back even stronger. I feel a sharp pang in my neck; this is the first of many hail balls that are now falling down. I take a short shelter, but after only 2 minutes the hail is gone and only water keeps rushing down all around me. The temperature is still an acceptable 15°C or so.
For the next couple of hours there is so much rain that there are almost no cars on the streets, and there is always 5 - 10cm deep water on the street in front of me. There are just unimaginable amounts of water rushing down. Nonetheless, I am making good progress sneaking closer to the Gotthard, and finally the ascend that scared me so begins.
There is an incredible surreal moment: Before me, there is the street that is now a river, left and right of me are green mountains towering above, and everywhere else are just clouds; there is nothing else. For a moment I feel like there is nothing else in the world. And then I remember feeling like Frodo on his endless journey.
For a few hours I climb up the Gotthard and at the top there is enough snow to build snow men. I remember that my muscles felt well; this was a lot easier than I thought it would be. I am not yet at my hostel, however.
All that’s left for today is letting it roll for 10km - I was looking forward to this, but now I am not so sure - I am completely soaked, and it is still raining, and it is at most 5°C up here. By the time I arrive at the hostel I am freezing so much that I shake all over my body, I can’t move my head because my neck stiffened, and I can barely get out of my clothing the get a warm shower.
After today, everything I own is completely soaked, and the lady at the reception is hanging up my money to dry.
Tonight I meet two brothers who are travelling from Belgium and back in a month; they almost had half of their trip done today.

Day 5 - It’s Over

I got only 2 - 3 hours of sleep at night because it was too cold. Also, my clothes are all still wet. At breakfast we are discussing the weather - it had cooled down even further, and snow has fallen only 100m above of us. It did not melt, too.
My muscles feel better than yesterday, so I decide to give today’s trip a go despite the cold. I get into my wet clothes and start the tour, but after only 2km I am again shaking from the cold - my summer’s clothing is all I got, and that is definitely not enough to make a 40km descend down the Gotthard - even in the valley, the climate is now too cold. So I head for the nearest railway station, and go back to Stuttgart by train.

Syndicated 2009-07-18 20:09:36 from Debain.org

Interior Wall Design

Since I am toying with the idea of buying a new flat, I am currently looking through interior design ideas. I will collect some of what I discover on this blog. I am hoping to find an industrial building that I can turn into a loft, so the obvious place to start is the design of the walls.

I love looking through such pictures.

Syndicated 2009-06-26 22:01:49 from Debain.org

Inform 7

Damn, Inform 7 is a truly impressive piece of software. Knowing how hard it is for software to understand the human language, the explanation in the “syntax error” message boggles my mind.

Syndicated 2009-06-22 15:55:50 from Debain.org

19 Feb 2009 (updated 19 Feb 2009 at 00:44 UTC) »

Introducing Nanny

I have created something new in the last few days - although the application is very young, I have been working on the backing components for a much longer time. It is one of those times where a long period of tedious work finally turns into something useful.

Nanny is currently a terminal with a powerful integrated desktop wiki. However, Nanny is also a starting point for creating a powerful workflow application for the GNOME desktop. Let me walk you through some screenshots. At first glance, the main window looks like a terminal:


However, after selecting a workflow…

Selecting a workflow

…something is different. Yay, a wiki-style workflow appeared!

Main window showing a workflow

You may edit this workflow in a very simple editor with all the features of a wiki, but none of the pain of wiki markup language. Here is the editor:

Editing a workflow

Linking to other workflows is easy, and of course you also get to view older revisions. I am particularly proud of the annotation feature, because implementing that properly with all the load/restore magic was a serious pain in the ass.

The future

While Nanny is currently clearly terminal-centric, this is just the beginning. I am planning to gradually make the terminal optional, replacing it by workflows that may kick start other scripts. I will also add more “active” features where you have a workflow with an actual state, and where different wiki pages are combined into one higher-level workflow. In short, this application should evolve into a general purpose workflow application.

Syndicated 2009-02-18 23:37:21 from Debain.org

Using Federico’s plot-timeline Script With PHP

I am currently trying to profile a PHP application, so I tried to find a way to create a call graph. Since I didn’t want to strace() the entire Apache process (which probably wouldn’t have worked anyway) I remembered a posting that showed how to do it with Mono. So this still depended on strace, but since I liked the plot-timeline.py script from Federico’s performance-tools, I decided to simply fake some strace output.

If you need to do the same, try the following:

  • Add this file to your PHP application.
  • Add some code similar to this:
    $tracer = new CallTracer('/tmp/trace.log');
    function trace($_comment = '') {
      global $tracer;
  • Sprincle trace() calls accross your source code.
  • Pass the resulting file to plot-timeline like this:
    python plot-timeline.py -o graph.png /tmp/trace.log
  • The result looks something like this:

    Syndicated 2009-02-07 23:02:49 from Debain.org

    Announcing: Freech now has a homepage!

    Seeing the freshmeat beta page inspired me to do some web design, and after a few hours of hacking the Freech homepage is born!

    (click on the image to go to the homepage)

    Syndicated 2009-01-24 13:37:15 from Debain.org

    Announce: Freech 0.9.18

    The last release of Freech is only two weeks ago, but there have been such a huge number of improvements that already here is the followup. Some of the new features include:

    Multi-forum support and a completely new front page (that may optionally be skipped if you are using only one single forum):

    The new front page

    The design of the forum has been simplified and optimized for smaller screen resolutions. A lot of detail has been put into making the looks of different forum pages more consistent, leaving a much cleaner overall impression. In addition, all pages are now XHTML1.0 (strict) compliant.
    Many other details were polished: Line wrapping in postings works even better, “breadcrumbs” (the path pointing to the current page) are shown on every page, video links are optionally embedded into posting, and a lot more.

    The simplified design of the forum

    A lot of work went into improving the administration features. Activities of moderators are logged on a dedicated page, and moderators may now lock/unlock other users. Spam handling and detection was greatly improved.

    The forum renders a lot faster by allowing the browser to cache more pages. As usual, a large number of bug fixes is also included in the release.

    Special thanks to Mario Deck for doing a lot of the work to make the forum XHTML1.0 strict compliant.

    Project page
    Full changelog

    Syndicated 2009-01-23 15:01:16 from Debain.org

    Release: SpiffWarehouse 0.2.0

    SpiffWarehouse is a Python module for storing objects in a filesystem in a revisioned manner. While I do not recommend using it currently because the API is plain evil, it is a required dependency of some of my other projects, so here is the release nonetheless.

    Project page: http://code.google.com/p/spiff-warehouse/
    Download: http://dl.debain.org/spiff_warehouse/
    API documentation: http://docs.debain.org/spiff_warehouse/index.html
    Handbook (PDF): http://docs.debain.org/spiff_warehouse/en/spiff_warehouse.en.pdf

    Syndicated 2009-01-11 21:40:17 from Debain.org

    87 older entries...

    New Advogato Features

    New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

    Keep up with the latest Advogato features by reading the Advogato status blog.

    If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!