Raimund Steger’s Business Tools







This is someday going to be an unsorted collection of tools I have been writing over time. Perhaps some find them useful. Version number is 0.0.1 unless otherwise noted.

  • Tabtype – a simple notebook-like JDBC client.

    This code is on Github under the above link.
    License: Revised BSD.

  • MergeTool – SVN cherry-picker.

    This tool can load tasks from MantisBT or a CSV file and then searches for Mylyn-style task numbers in SVN commit messages. Refer to the above link for more information.
    License: Beerware.

  • WindowFocusHook – Selective Auto-Raise for Windows.

    This tool can selectively apply auto-raise behavior to individual windows, identified by a regular expression pattern that matches their window class name. Refer to the above link for more information.
    License: Beerware.

  • NXLogin – A C# tool that aims to be a simple client for nxagent.

    This now has its own SourceForge project, where you can find downloads and version information. Refer to the above link for more information.
    License: Beerware.

  • socketpid – Uses DTrace to find the PID of the process accepting connections on a TCP listening socket.

    This uses a probe on accept in conjunction with connect, so should be quite a bit faster than working one's way through /proc. Also, in contrast to many other tools available on the net, it does not need the fbt provider, thus should be more future-proof. Tested on Solaris 10.
    License: Revised BSD.

  • AndroidRFBTouchpad (0.0.3) – Controls (only) another computer's mouse & keyboard from an Android handset with VNC.

    This is based on a fork of android-vnc-viewer but drops everything not related to a "TV remote" use case, which is: (1) all input modes except the touchpad mode; (2) all screen updates – that's right, this client never asks for a framebuffer update, which saves a considerable amount of CPU cycles compared to the original implementation. It also does not use android-vnc-viewer's persistency framework, which means in this experimental version it's not possible to save keyboard macros. Some other changes:

    • the Back button works as right mouse button
    • double-tap works as doubleclick
    • handset's display brightness is dimmed while connected

    I hacked this together in 2010 and while it's still kind of unfinished, it already has been working quite well all this time on my E10i. A warning, don't use this code as starting point for further development, use android-vnc-viewer's code instead.
    License: GPLv2.

  • dvd_region – A small program to set the region code of a DVD drive on Linux or Solaris.

    This is based on code from libdvdcss – in particular, a modified version of dvd_region.c (originally by Jens Axboe) combined with Solaris USCSI support from ioctl.c. Remember to have a disc in the drive when using the program, otherwise it might not work. Tested on Debian 5.0 and Solaris 10.

    Example how to set the first drive to region 1 – Solaris:
    dvd_region -d /vol/dev/aliases/cdrom0 -s -r 1
    dvd_region -d /dev/scd0 -s -r 1

    Disclaimer: This may nuke your drive, in which case I'm not responsible.
    License: GPLv2.

  • ttyinitp.c – A shell-local TTY forwarder.

    This sounds pretty pointless, but this program allows sending fake TTY input to the child to initialize it. Like this, it can be useful to run "su -" sessions:

    ttyinitp -j 'export DISPLAY=my_host:0' su - admin_user

    This code is somewhat Solaris-specific at the moment, so for a cross-platform environment Expect is probably the better solution. Like the cotty tool that served as inspiration, ttyinitp is available under either the GPLv2 or the 'bugroff' license (whatever that means).

  • SetBG – A small C# program to set a desktop wallpaper from the command line, while converting it to BMP and resizing it to the primary display.

    Useful in such environments where the control panel item is unavailable, or scriptability is desired. Tested with Windows 2000 and Windows XP, but may work for later versions. Contains source and binary. This code is in the public domain.

  • VirtualBox-3.1.8_OSE-iconify.patch – A very minor patch to the VirtualBox 3.1.8 OSE that enables the combination hostkey+Z in VBoxSDL to directly iconify the window.

    This is handy if you want to switch between your VMs/your host while retaining the fullscreen mode. Tested on Solaris 10 x86_64 with FVWM-2.5.28 and fullscreen resolution set to native display resolution. License (for what it's worth): GPLv2 – or whatever the VirtualBox guys can live with.

  • JRPdfTextMeasurer (0.0.4) – A prototype text measurer that tries to correct measuring errors that the default Jasper Reports text measurer makes when measuring multi-line text in report cells for PDF export.

    The error stems from a mismatch of JR's Java2D-based measuring, and iText's measuring, which is particularly disturbing for stretching boxes because they sometimes are not stretched enough. I have observed this on a number of environments outside the Win32 realm, most notably Solaris 10 with JDK 1.5/1.6. This is developed to work with Jasper Reports 3.0 (but don't worry, the later JR versions that I have tried did also not correct those text measuring errors on Solaris! Source adjustments for later versions might be necessary though). This is a slightly updated version which should improve usability for non-stretching boxes, which was not supported before. License: LGPL.

    The primary attempt included in the archive is JRiTextMeasurer.java, which does not rely on Jasper Reports' default measurer at all, but solely uses the ColumnText.go method of iText. Page breaks are determined through a binary search using that method alone.

    (In another unfinished attempt I overrode certain iText methods to provide a better interface for determining text extent, but that proved too fragile.)

  • tSMTPClient (0.1) – A variant of Ralf Engelschall's smtpclient program that can scan the mail header for recipients.

    This can be used to send mails in limited environments over an SMTP relay, and in addition to the original smtpclient has a -t switch similar to sendmail, so it can be used for PHP as sendmail replacement in php.ini running on a box where sendmail doesn't work. This version requires Autotools to build. Here is an experimental, updated version that aims to fix a number of buffer overflow issues and provide support for IPv6. License: GPL

  • Portfw.jar (0.2) – A simple Java TCP port forwarder.

    It has a typical-Java, multithreaded design and is thus not suitable for high-performance demands. I know there is plenty of this stuff on the net. However in some cases it may just be what you need in your USB stick toolbox.

    java -cp Portfw.jar de.steg0.netapps.portfw.Main <src_port>:<dst_host>:<dst_port>

    Source code is included. License: Revised BSD.

  • k8056 – A small C program to control the Velleman K8056 relay board through RS232.

    This package contains just the source code. It compiles under Linux and FreeBSD (tried with 7.0 and 8.0). When running under the latter, please remember to specify the proper device nodes /dev/cuad* or /dev/cuau*. Invoke plain k8056 for usage information. License: Revised BSD.



Last Update 2021-02-20 Raimund Steger