mmcwrite is a shell script for writing images to SD cards. It's nothing special. it just makes sure the target device exists, that all the filesystems on it are un-mounted,asks if you are sure and then TRIMS the SD card with the blkdiscard utility if available, detects the compression method used and uses the right tool to cat it through pv for a progress meter and dd it to the device. it is intended to be run as a normal user with sudo privs. the mount check and blkdiscard step is linux specific but it could be easily modified to work on other *nix systems. I write a LOT of bootable ARM linux images to SD cards so I figured I would share the script here.

It takes the file to be written to the mmc card as the first argument and the device to write to as an optional second argument. by default it uses /dev/mmcblk0.
You can download it here: mmcwrite


mod_tcpwrapper is a lighttpd module that uses the TCP wrapper libwrap library to control access to lighttpd you can download it here: mod_tcpwrapper.tgz


wakeup.c is a utility for Solaris that allows you to power sun4u machines that support auto-wakeup back on at a specified time after you power them off. You will need to install the SUNWcpr and SUNWcprx packages to have the proper device nodes. Further information is available in the source code.

I wrote this code after having a need at amoebasoft to automatically have some development/staging boxes turned off after hours and come back up, without intervention at the start of the business day to conserve energy. It is possible to do this with powerd, but then you have to use the suspend-resume feature which can cause problems and powerd isn't as flexible as just setting the wakeup timer directly, wakeup.c allows you to set the wakeup time further in the future than a 24 hour period which can also be handy.
You can find wakeup.c here: wakeup.c


This is a cross platform Library automation system I wrote when I was a member of a church a while back. It provides an easy to maintain catalog system tailored to small private loan libraries and has a sign out system that doesn't require a library card, it operates on the honor system and tracks the name of the user checking out the book and the date it was checked out to track books. I am publicly releasing the code so that other organizations can benefit from it.
You can download it here: library.tar.gz

Check back here in the future for more Solaris/UNIX utilities.


This is a simple script that allows you to open an vncviewer window that is an XDMCP session to a remote host, it does this by starting up Xvnc in -query -once mode pointing at a remote XDMCP server, and then launching vncviewer to connect to it, giving you the dtlogin or XDM screen on the remote host., you can also provide a VNC based remote desktop login service on any machine that supports XDMCP sessions by adding a line similar to the following in your inetd.conf file.

vnc stream tcp nowait nobody /usr/local/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24

You can find xlogin here


This is a DTrace script and a couple of shell scripts that will enable you to run commands in the global zone each time certain zones boot, as the name implies I use it to update the routing table on the global zone when certain zones boot but you can use it for any purpose you like. you can find it here


I wanted a simple desktop calculator that acted like an old fashioned adding machine with paper tape, something I could rapidly enter in calculations via the numeric keypad and see a running history of whats going on. I couldn't find anything simple for UNIX that did this so I wrote this simple Perl script to accomplish this. New Version 1.7 with added backspace feature.



This is a re-write of a useful C utility(one that I lost) a friend of mine once wrote to insert into shell scripts that burn CDs (or any script that needs to eject the CD and wait for a disc to be inserted.(Thanks Rob!) currently it only runs on Linux and Solaris but as time permits I will add more systems.

Other Stuff

My personal blog

Steuben Technologies My consulting company.
My personal Efika MX projects/experiments
Historic Usenet Source Code
Getting a LaCie FireWire disk running on a SunBlade 2000 using Solaris 10 08/07 Release
TOPS 10 image with most of the layered software already installed
Instructions for tunneling AppleTalk over TCP/IP
Extended Slackware Project you can find PAM for slackware here
Using an alternative malloc implementation under Solaris (troff ps pdf html)
Useful One-Line Scripts for SED (Unix stream editor)
Some pictures of my desk top
Alice's Usenet Flame