Urs-Jakob Rüetschi

Software Tools

Here you find some software tools I've written.
Feel free to use whatever you think is useful.


Unix

Unix quickly became my favourite operating system. There are many reasons, but the most important is the simplicity and elegance with which Unix abstracts from the quirky details of the underlying hardware and the clean application programming interface it provides. Another reason is the simplicity with which you may write tools that can be used as building blocks for larger projects using one of the many scripting languages available.

The Unix spirit is probably best conveyed by Kernighan and Pike's book The UNIX Programming Environment (Prentice Hall, 1984). Despite the title, it is useful even if you are not a programmer. It provides an excellent introduction to using Unix. And it conveys the concept of "rapid prototyping" and the "Unix Philosophy" like no other text.

I've quick summaries of some aspects of Unix. There's a very nice and overwhelmingly complete diagram of Unix history on the Net.

The black Volvo was spotted in Toronto in October 2005.

 

Dissecting Shapefiles: shpdump

Convert ESRI shapfiles (with extension .shp) to a plain text representation that is easy to read for both humans and machines. Optionally, you may also convert to Arc GENERATE format.

 

Printing with Page-Counting: netprint

Printing jobs on networked printers is simple. Doing accounting on a per-page basis, however, is a delicate matter. Netprint is a tool to help with counting the number of pages that were actually printed as opposed to those that are in the job. Netprint is out of my pracc project and not actively maintained.

 

Verify the ISBN checksum: isbnck

Identification numbers such as social security numbers, student registration numbers, and the International Standard Book Numbers (ISBN) usually include a check digit intended to catch common typing errors. Read about the check equation for ISBN and try isbnck to test if this equation holds for a given number.

 

Verify and compute the IBM check / die Leginummer: legick

Another check sum is used by the Swiss Matrikelnummer (registry numbers) for students. In case you're interested, here's how it works and legick is a small tool verify the check equation and to compute the check digit.

 

Test & make lock files: mklock

This is a tool for Unix shell scripting: atomically check for the existence of a file and create it if it does not exist, otherwise complain. Amazingly, I couldn't find such a tool, so I had to write one myself.

 

Generate initial random passwords: mkpwd

When system administrators create new users, they have to invent initial passwords for them, which is best done by a little program like mkpwd, which generates one or many passwords according to some specification.

 

Crypting with XOR: xorit

One of the simplest ways to protect a file against praying eyes is to xor it against a short string of bytes, typically just one. Applying the same procedure again decrypts the file. Here is xorit, a tool to play with.

 

IP address calculator: ipcalc and ipmask

Internet Protocol (IPv4) address calculations became significantly harder with the advent of subnetting and CIDR. So you might want to read about IP addresses and use a tool like ipcalc to do your address calculations and a tool like ipmask to convert between various address masks.

 

Convert End-of-Line conventions: eol

Different operating systems have different ideas about how to represent the end of a line in a plain text file. There are three traditions: Unix, Macintosh, and DOS. Some editors let you choose the end-of-line convention to be used, otherwise, a tool like this one can be handy.


Macintosh

Note that all the stuff below is for Mac OS Classic. It will not work under Mac OS X.

Creator and type

Double click on a document's icon in the Finder and it will be opened with the appropriate program. How does the Mac OS know the appropriate program? What if your idea of "appropriate" differs? Then you may want a tool to comfortably change every file's creator and type.

Zapping the Resource Fork

The ZapRes utility makes it easy to delete the resource fork of Macintosh files. In the Finder, simply drag and drop the files you want to zap onto the ZapRes icon.

For hackers only: Supervisor Mode

Have you ever wanted to execute your PowerPC code in supervisor mode on your Macintosh? There are at least two backdoors in Mac OS Classic, one of which is exploited in the BootX boot loader for Linux.

CD-ROM drives: an annoying story

You bought a non-Apple CD-ROM drive and notice that Apple's driver doesn't recognise it? The manufacturer fails to provide Macintosh drivers? In fact, this happened to me but here's my happy end.


IBM PC

Long ago I owned an IBM PC running Microsoft's Disk Operating System.

Quarta: the minimalistic boot manager

An IBM PC's hard disk is partitioned in up to four parts, each may contain an operating system. To determine at boot time from which partition to start, a boot manager is needed. Quarta is probably the simplest such tool and fits completely into the master boot record, along with the partition table. Enjoy, but do so at your own risk.


This page is best viewed with any browser and was created with vim by ujr/2003-02-10