This is the blog of Gerd Riesselmann, a freelance software developer from Cologne, Germany. This site contains articles about software development and user interface design in general and object oriented programming in special, covering a set of programming languages from C++ and C# to PHP and Javascript. Additionally, you'll find code snippets and modules for Drupal, the open source content management system powering this site.

Deploying an assembly jar file with sbt

The assembly-sbt plugin for sbt 0.7, the (not so) simple build tool for scala, creates a nifty fat jar containing everything to run an application anywhere. You may want an additional task to automatically copy it to a server. Here's how (Linux only, sorry).

Authentication using Unfiltered for Scala

Since it took me a while to figure this out (though it seems very obvious now), here's how I do HTTP authentication in Unfiltered while preserving the authenticated user for later access:

Using /, ? and & in the path with Apache mod_rewrite and PHP

I came upon a nasty problem the other day: The rel-tag microformat (, poorly designed like so many of them, requires the URL to end on the tag name. Not a cleaned up, ANSI compatible version, no, a 1:1 representation. This on the one hand leads to some woes regarding encoding and non-ansi characters, think umlauts!, and on the other hand poses problems with caracters that usually are not allowed within an URL or have a special meaning. Think for example of a tag called "Q&A".

Unfortunately, as we will see, simple escaping is not enough.

How to install imagick and gmagick on Ubuntu

I had to struggle a while installing the PECL extensions imagick and gmagick on my Ubuntu Hardy machine, here's a simple how-to.

Splitting large Axis generated files into separate classes

I recently had to struggle with a SOAP webservice class generated by Apache Axis2. The class file was more than 13 MB in size, and contained more than 290.000 lines of code - much more than Eclipse, IntelliJ IDEA or NetBeans could handle. After some rather unsuccessful attempts to work around the problem, I finally decided to write a little tool to split the huge file into smaller pieces.

Creating Java Classes from WSDL file using Apache Axis 2

Since I didn't found this on the internet (but some rather outdated or complicated tutorials) here's how to create Java class as wrapper for a given SOAP webservice.

Updating HTC Hero ROM on Windows 7 64 bit

I recently tried to update my HTC Hero to version 2.73.405.5 using a Windows 7 64 bit. Unfortunately this didn't work, since I ran into error 170 - "USB Connection lost" - over and over again, either when starting the RUU executable or after switching the phone into bootloader mode. It seems, that the Rom Upgrade Utility simply doesn't work with Windows 7 64 bit.

However, it is supposed to work with Windows XP, so the solution is to use Windows 7' s build in Windows XP compatability mode. Here's how you do it.

Apache Buildr and Scala 2.8

Quick hack: to use Apache Buildr with the lates Scala 2.8 release candidate (RC3 at the time of writing) open up the file /usr/lib/ruby/gems/1.8/gems/buildr-xxx/lib/buildr/scala/compiler.rb and change the DEFAULT_VERSION to DEFAULT_VERSION = '2.8.0.RC3'

This works for Ubuntu 8.04, with Buildr 1.3.5 installed. You will need root or sudo privileges, though.

Identifrac reloaded

Maybe you know identicons: little unique icons generated out of hash values. But maybe you don't know identifracs, which offer the same functionality based upon fractal functions. Identifrac was created back in 2007 by Jesse Dubay, but his site has gone in the meantime. That's why I took his code, updated it, and now released it to the open domain.

Gyro-PHP application framework release

It has been more than two years since my last post. Two very exiting years for me, though. Not only my daughter was born, but also my PHP application framework is now ready to be open-sourced: Gyro-PHP, a PHP application framework.