Doug :: Projects


C# program to set processor affinity

This was an interesting project, since Microsoft has not provided the ability to get the parent process id (ppid) to a process in their System.Diagnostics.Process class.
There are two source files and a ready to go executable:
  • PPID.cs : Provides the ppid of the current process (e.g. the pid of the shell in a console program). I've seen this done other ways on the internet, but this version is unique in that it only requires kernel32.dll.
  • BindToProcessor.cs : Assigns processor affinity for up to 4 processors for the current shell. So subsequent commands you run inherit the same affinity. This is a handy tool for testing software or just binding troublesome software to a specific software by means of a batch file.
  • BindToProcessor.exe(save as...) : If you're lazy or you are not a computer programmer :-) you can download and use this. This program requires Microsoft Windows 2000, the .NET runtime to run. If you find this program useful, please let me know; thanks!

Digitizing my record collection

  • listen
  • A bash script that uses sox to record my records automatically as I play them.
  • nextsong
  • Another little utility that helps me name recordings later.
I have a collection of about 200 LP records. After years of fiddling and musing about it, I've finally worked out a system to oggify my music so I don't have to scratchify my records.
My stereo pipes into my Fedora Core 2 server's sound card. 'listen' runs in a simple loop and makes timestamped .wav file recordings whenever I put on a record.
Whenever I feel like it, I ssh to my server and type 'nextsong'. A few seconds of one of my previous recordings plays, and I get to name it. Then it gets converted to Ogg Vorbis format, saving me some disk space.
I don't know how long it's going to take me to play all of my records, but I'll tell you one thing: just playing my records like I always do is a lot easier than fiddling with recording settings!

vpnc -- An open source Cisco VPN client -- ported to MacOS X.

I've gathered together some other fine people's work, and will be distributing an open source package for connecting to Cisco VPNs from OSX.
This has a nifty advantage over the commercial software in that you can specify your own routes, thereby accessing local network resources on unencrypted channels while your VPN connection remains encrypted.
download version 20041107


/usr/bin/which for DOS

Oops... note that there is a WHERE.EXE utility now included with Windows Server 2003. Oh well.
The 'which' command for DOS. Tested on Windows 2003.
which.bat tells you where in your path the specified command is found.
Example output:

			c:\> which java.exe
			c:\j2sdk1.04_01\bin\java.exe

			c:\> which javac
			c:\j2sdk1.04_01\bin\javac.exe <-- note the executable filename completion!


Mail server

I'm now running my own mail server at home, using dynamic DNS, postfix and qpopper. The server is mail.douglasheld.net. If my DSL connection goes down, DynDNS.org provides a backup mailhop.


My mom's roof

I'm going to Sioux City, Iowa to see about my mom's roof. Watch this space for updates... maybe pictures.


Free Wireless Node

I'm hosting a free, public access wireless ethernet (802.11b) node from my flat in Central London.. I'm using Fedora Core 3, iptables, hostap, and a Senao 200 mW cardbus card with an external panel antenna. The box is a no name case housing a micro ITX motherboard with a soldered-on, super cool Cyrix processor. No fan!
One of these days, I'll make a HOWTO.


Remodeling - San Francisco Studio

I bought a run-down studio in the Tenderloin neighborhood of San Francisco and fixed it up, including patching plaster, installing new light fixtures and wiring, a sink for the bath, lots of painting, the best soundproofing money can buy, a layer of concrete on top of the soundproofing, floor tiles and a new kitchen. some sloppy pictures here.


Star Mode Radio Web Proxy

With the demise of Ricochet/Metricom, my and Beth's Ricochet radio devices have become little more than rechargeable paperweights with Hayes modem emulation.

The radio devices, however, can function in "Star Mode", which is a connectionless radio-to-radio datagram protocol.

A group at Stanford University has created the Starmode Radio IP protocol for Linux and a port to the Macintosh for Appletalk.

Nobody has made a Windows port. Since I don't know how to write a device driver, my plan is to create a simple client and server that will trade URL strings for HTML response strings.

Once that is done, I'll test whether the still extant Ricochet network of repeaters will forward my starmode packets.