A Place for My Stuff.

(Apologies to George Carlin.)

Computer Stuff.

The Instant Server Collection.

Coming soon: FTP, DHCP, TFTP servers in Python.

Miscellaneous Miscelaneous miscelaneus....Random Other Stuff.

The Ultimate Hex Dump Utility. I wrote this somewhere around 1995 while doing a heavy amount of SNMP for a former employer. I've used the same hex_dump() function in just about every communications (network, serial, so on and so forth) program I've written since then. It's small, moderately useful, but I'm quite proud of it since it's the one bit of code I've carried with me for the last eight years and have hardly had to modify it.


Here's a sample "screen shot" of an hdump of the hdump executable built on Mac OS X.

        00000000   fe ed fa ce 00 00 00 12 00 00 00 00 00 00 00 02   ................ 
        0x000010   00 00 00 0a 00 00 04 bc 00 00 00 85 00 00 00 01   ................ 
        0x000020   00 00 00 38 5f 5f 50 41 47 45 5a 45 52 4f 00 00   ...8__PAGEZERO.. 
        0x000030   00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00   ................ 
        0x000040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................ 
        0x000050   00 00 00 04 00 00 00 01 00 00 01 48 5f 5f 54 45   ...........H__TE 
        0x000060   58 54 00 00 00 00 00 00 00 00 00 00 00 00 10 00   XT.............. 
        0x000070   00 00 20 00 00 00 00 00 00 00 20 00 00 00 00 07   .. ....... ..... 
        0x000080   00 00 00 05 00 00 00 04 00 00 00 00 5f 5f 74 65   ............__te 
        0x000090   78 74 00 00 00 00 00 00 00 00 00 00 5f 5f 54 45   xt..........__TE 
        0x0000a0   58 54 00 00 00 00 00 00 00 00 00 00 00 00 23 c4   XT............#. 
        0x0000b0   00 00 08 a8 00 00 13 c4 00 00 00 02 00 00 00 00   ................ 
        0x0000c0   00 00 00 00 80 00 04 00 00 00 00 00 00 00 00 00   ................ 
        0x0000d0   5f 5f 70 69 63 73 79 6d 62 6f 6c 5f 73 74 75 62   __picsymbol_stub 
        0x0000e0   5f 5f 54 45 58 54 00 00 00 00 00 00 00 00 00 00   __TEXT.......... 
        0x0000f0   00 00 2c 6c 00 00 02 d0 00 00 1c 6c 00 00 00 02   ..,l.......l.... 
        0x000100   00 00 00 00 00 00 00 00 80 00 00 08 00 00 00 00   ................ 
        [...]
        

Here's the source code. I've compiled and used it on: real mode embedded 8086, 80186, 80286; protected mode embedded 386, 486; 16-bit DOS, Win16, Win32, x86-Linux, x86-FreeBSD, HP-UX, Solaris, Sun-OS, MipsOS, NetWare; Embedded Hitachi H8S; and lately, Mac OS X. When embedding, I just chop off main() and use hex_dump().


My New Yard!

I bought my house in October, 1997. For the last six years, I've been telling myself I would finally get the yard cleaned up, fixed up, and not uglying up my life. Summer 2003, I finally got to a point where I did it.

Old Yard, New Yard!

I still have work to do, especially in that back corner, but as the saying goes, progress before perfection.