Google Street Maps [www.clasohm.com]
Greasemonkey Script for Bloglines [www.bloglines.com]
Bloglines has been offering hotkeys for some time, but I still like to click in the left frame to select a feed, and use the Space key in the right frame to scroll through the article list. Problem is that clicking in the left frame leaves the keyboard focus there. This script automatically moves the keyboard focus to the right frame when new content is loaded, getting rid of one annoying mouse click.
Google Sitemaps [www.google.com]
Recently, Google published the Google Sitemaps protocol that allows Web sites to inform Google about new content, like this blog entry.
I have done an implementation for OpenACS, which allows modules like lars-blogger to generate Google Sitemaps.
The infrastructure package can be found at
The code that generates the sitemap for lars-blogger is in
For this to work, you will also need the directory "google-sitemaps" in the server root, which must be writable by the Web server.
The generated sitemaps can be downloaded at [ad_url]/google-sitemaps.xml. See
for an example.
If you want to retrieve a copy of the code, you can do so with Subversion and the URL http://www.clasohm.com/svn/clasohm.com/trunk/
Wikimania 2005 [wikimania2005.wikimedia.org]
I spent the last weekend at the Wikimania 2005 in Frankfurt, the first international Wikipedia conference.
One hot topic at Wikipedia is geographic information and creation of digital maps. After attending Arnulf Christi's presentation on Open Geo Data Projects, my Google Maps enthusiasm has cooled off a bit. Google decided to create their own API instead of following an existing standard. On the other hand, Google Maps just works too well to not use it for my hiking maps.
The second geo-related workshop I attended was done by Tobias Dahinden, and covered the graphical design of maps. From what I learned, map design is hard, and science has not made much progress in automatic map drawing in the last 30 years. And things get worse when it comes to displaying maps on a computer screen. The most devastating examples were side-by-side pictures of MapQuest and manually drawn maps. Another topic of this workshop was how to get the geographic coordinates for drawing maps. Unfortunately, only the USA makes data freely available when it has been created with tax money. Over here in Germany, geographic information is sold by the states, and may not be redistributed.
Google Maps Source [www.google.com]
The two most interesting aspects of my implementation are the UI for creating a location, and the way the map is displayed.
When I designed the application, I first had to find a way for getting the geographic coordinates for all those locations. Manually copying the coordinates from a desktop mapping application would have been too tedious, and Wikipedia does not have an entry for all the points I want to display.
Fortunately, the Google Maps API provides the means for a clever solution. Just embed a map in the form page, and use the click event to store the geographical coordinates of a mouse click in run-of-the-mill form text fields.
Now that it is easy to enter a long list of locations, the next exercise is to include them in the map. You cannot display them all at once, because you do not want to clutter the map when it is zoomed out.
Solving this has become easy when Google added GMarkerManager to the Maps API.
At the same time I switched to GMarkerManager, I started to use the Google Earth icons.
Google Maps [www.google.com]
I still go mountain climbing and photo shooting without GPS, but the Google Maps API looked too interesting to be ignored. The API allows a site to control, interact with, and extend Google Maps. After a little programming, you can now track my hikes via satellite.
As an example, take the Schinder. The map link on the trail page will take you to a satellite map centered on the mountain. All interesting locations in the area are marked, and clicking the markers will give you information about each location. You can also view a list of all locations.
This cannot replace a hiking map. But it gives a nice spatial view of the trails database, which previously could only be navigated by browsing discrete, and sometimes arbitrary regions.
Greasemonkey Script for IT Conversation Shows [greasemonkey.mozdev.org]
Here's my first Greasemonkey script which improves a Web site's usability.itconversations-download.user.js modifies the details page for shows on IT Conversations so that you can download the MP3 with one click.
Greasemonkey Script for golem.de Articles [greasemonkey.mozdev.org]
Greasemonkey Script for Sueddeutsche.de Articles [greasemonkey.mozdev.org]
Greasemonkey Script for Computerwoche.de Articles [greasemonkey.mozdev.org]
While the Computerwoche news site has a nice RSS feed, the article pages are too cluttered with navigation elements, which you do not need when opening articles directly from an RSS reader. So I wrote a little script for the Greasemonkey Firefox extension, which removes the banner at the top and clears the left and right navigation columns. If you have Greasemonkey installed, right click on computerwoche-de-cleanup.user.js and select "Install User Script" from the menu.
Another Greasemonkey script useful for Computerwoche readers is DumbTxt, which removes the annoying Intellitxt popups. When installing it, just add "http://www.computerwoche.de/*" to the list of included pages.
Update 2005-11-06: I have uploaded a new version of the Greasemonkey script that works with the recent layout changes on www.computerwoche.de. Because the page URLs have changed, too, it is easiest if you uninstall the old script and reinstall using the above link.
DeutschlandRadio Audio on Demand [www.dradio.de]
Because they are funded by the public and already offer their content as streaming audio on the Web, I have been wondering why Germany's non-commercial radio stations have not jumped onto the podcasting band waggon yet.
Well, two radio stations are already on their way: DeutschlandRadio and Deutschlandfunk, whose programs not only consist of the usual news, but also of diverse topics ranging from a study on birds killed by wind mills, to the Danish press coverage of the recent election in Germany's northern-most state.
Each of these 3-20 minute contributions is available as an MP3 file, with two different user interfaces:
HTML, simple and easy to use, good for downloading the files and listing to them later, but no RSS feed.
Flash, also nice, and best for immediate listening.
All this content is in German. The international broadcasting station Deutsche Welle has English Audio on Demand, but you need Real Player and judging from the list, it's only a collection of complete programs, without any information about the contents. Pretty disappointing compared to DeutschlandRadio, or the BBC, which offers RSS feeds and content summaries for two of their programs.
Update 2005-03-07: There's still no RSS feed, but Deutschlandradio Kultur had a nice piece about podcasting today. Unfortunately, the MP3 is no longer available as of 2005-09-15.
Rails on Fedora Core 3 [wiki.rubyonrails.org]
Installing the Web application framework Rails on Fedora Core 3 is not as straightforward as the instructions suggest. FC3 comes with the required Ruby 1.8.1 RPM, but if you try to install Rails with Ruby Gems, it crashes with the error /usr/lib/ruby/1.8/yaml.rb:39: [BUG] Segmentation fault.
So, deinstall the ruby and ruby-libs RPMs, and install Ruby and Gem from the source:
Download Ruby 1.8.2+. Install it with ./configure && make && make install
Download rubygems 0.8.1+. Install it with ruby install.rb
Update 29 Jan 2005: The new Ruby 1.8.2 RPM in the FC3 update channel can be used to install Rails. Just be sure to also install irb and ruby-devel. The latter is needed for installing the Ruby PostgreSQL driver, and probably other database drivers.
To prevent spam bots from automatically creating accounts and posting content, people have come up with these distorted images of numbers and letters, which only a human can decipher and type into a text field. Since our corporate blog became the target of spammers recently, I read a bit about captcha images, and found out that spammers have devised a clever way to decode them. Optical character recognition would be too easy to block. What you need is a human to decode the image for you. So the spam bot takes the image from the site it wants to access, puts it onto the entry page of a free porn site run by the spammer, and waits for a human to decode it for him, without knowing that the captcha is recycled from somewhere else.
New Ideas Through Your Headphones [www.itconversations.com]
With the server move done, I had some to time to check out what could be the next big thing on the Web, or the Pointcast of 2005: Podcasting. The first thing I listened to was an interview with Adam Curry, a good introduction to podcasting itself and the rationale behind it. Not to mention Adam's stories about mtv.com and his former business partners, who either turned out to be on Scotland Yard's wanted list, or who ran off to Columbia.
Even more entertaining was Steve Wozniak's Gnomedex presentation, where he talks about his high school pranks, Captain Crunch and the founding of Apple.
Paul Graham's OSCON presentation was not much more than a reading of his (excellent) essays, but the interview
is worth the download. One thing he says is that programming languages
which people wrote to use themselves, like C, are superior to
Frankenstein languages designed in a lab, like Java. I'm not sure if
this is true for languages, but it certainly is for application
frameworks. David Hansson mentions it in his two-hour video about Ruby on Rails, when he compares the current J2EE frameworks with Rails. And I learned it the hard way when we ported Siemens ShareNet to OpenACS
in 2001. Since then, OpenACS has matured, but people still stick to
four-year old lab-designed stuff which we gladly threw overboard while making