Generating PostScript and PDF Documents

PS and PDF documents are generated by so-called drivers. The name of the driver is to be specified as an option in the following notes: Figures, Colours, PDF Hyper References. The listed commands are compulsory for the given driver.

Branches in Subversion Repositories

For medium to large projects, it is useful to maintain separate copies of the code to represent different stages of the development. These copies are called branches. A common approach is to have a main branch for unstable development where breakage occurs rather frequently. For each release, a separate branch is created from the main branch which is stabilized before the code is deployed. Sometimes changes need to be transferred between branches if development code needs to be included into a stable branch or if bugfixes need to be included into the development branch. This procedure is called merging.


When trying to run a graphical program under a different user than the X server, this is not permitted on a properly configured system. often xhost is used to allow the local host or a limited number of remote hosts access to the local X server. unfortunately, this mechanism does not differentiate between users and introduces a security risk because all users on such a machine are allowed to use the X server.

Subtract the Content of Two Files

Have you ever wanted to remove the content of one file from the content of another file linewise? I have been in the situation several times.

Pipes Over SSH

Instead of first creating a tarball and then using scp to transfer it to another host, you could simply:

Sorting Lists using Perl

Unfortunately, the default perl sort algorithm was changed to Mergesort (formerly Quicksort) which does not provide in-place sorting as Quicksort does. This fact and some obscure stupidity in the implementation causes the space requirements to be much higher than the size of the original list.

Reverting in Subversion Repositories

It is sometimes useful to revert to the revision of a file that has already been checked in:

Package Cleanup

After several months of excessive usage of my Gentoo desktop, a pile of package is installed some of which I do not need or want anymore. Unfortunately, it is not save to unmerge an arbitrary package because it might damage another package that depends on the first. Therefore, I needed some magic to compile a list of leafs in the dependency tree to decide which packages can be unmerge safely.

Job Control

Bash’s job control facilities:

Bash Substitutions

Bash supports various constructs for substituting contents of variables.