Documentation has to Scale

Whenever you create a program and try to not suffer the Not Invented Here syndrom, you have to research all kind of libraries. The biggest obstactle at this point it mostly the lack of good documentation, that let you start quickly. I lay particular emphasis on quickly, because there are a lot of excellent libraries available that have very detailed and precice documentation, but take a lot of time just to find out what it does and how to use it. A nice example is log4j. The first link in the documentation section links to Short introduction to log4j, which contains about 5600 words. That’s not what I call short, and it is certainly too much if you just want to get a quick overview.

Documentation should scale. It has to allow the reader to get to the level of understanding he really needs. This is what I believe what good software documentation should contain.

Continue reading “Documentation has to Scale”

DVD to WAV, DVD to OGG

Converting the audio of a DVD into a WAV is a piece of cake, with the right tools and if one is willing to use the command line:

This is already pretty neat, but I usually want to convert backup the DVD’s audio into an Ogg Vorbis stream. This is possible without an intermediate wav file:

Yet another example of the power of named pipes 😎

Subversion Propset Script

I use a script to set the svn:keywords properties recursively for all files of a given pattern:

Modify the PATTERNS and KEYWORDS variables as you like, and execute it with

to set properties for all the files found by the script. You can do a

to list all files that are modified with this action, and commit via

Secure SSH, CVS, SCP without Password Prompt

For the old version of this homepage I have used CVS to update the websites. I have done this via SSH, which is pretty secure but has the annoying disadvantage of asking for a password for each operation. If you can trust the security of your client computer, there is a way to get rid of the password altogehter, without loosing security:

  1. Suppose the domain name of your server is server, and your login name loginname.
  2. On the client, generate a public and private key.

    When asked for a password, simply press return. The private key is stored in ~/.ssh/id_dsa, and the public key in ~/.ssh/id_dsa.pub. Never give the private key away!

  3. Copy the public file to the server with
  4. Login on the server with

    append the copied file to ~/.ssh/authorized_keys with

  5. If you want to enable this features on other servers, just repeat step 3 on each of the servers.

That’s it! If you have done everything correctly, the next time you login via SSH or use CVS over SSH, you will not need to enter a password yet you have a secure connenction.