Zygo Blaxell's Projects
Here are some open-source projects I have been, am, or will be working
on.
If you have comments--good, bad, or ugly--or if you want to
help, comment, criticize, or complain, my email address is zblaxell@furryterror.org.
Not all of the projects have links because I haven't written web pages for
them. The ones that are more or less defunct probably won't ever get
web pages. Poor, orphaned projects... :-(
Current Projects
- send-irc
- A pair of simple Tcl scripts that send stdin to an IRC channel.
- XChat Festival Plugin
- A project that desparately needs a better name. The XChat Festival
Plugin (XCFP) is a Tcl script that can be loaded into an XChat IRC client
to read out incoming IRC messages as speech. It is designed to replace
the "beep" sound, and provide much more useful audible notifications.
More details on the Wiki page.
- Dupemerge
- A script which locates identical copies of files on a POSIX
filesystem and replaces them with hardlinks to the same file.
There have been several implementations over the years.
- Hermit Crab Debian GNU/Linux
- Scripts to build a bootable Linux CD-ROM. Similar to Knoppix,
but without all the annoying automation. Unfortunately license
restrictions prevent me from distributing the ISO images I use, so this
project page covers only the scripts that generate them.
- Fake-FS
- FakeFS is a highly space-efficient filesystem emulator. It is designed
for use as part of a site-wide backup system, but can also be used for
FTP site mirrors and other highly redundant collections of files.
- SoftWiki
- If you know what a Wiki is, SoftWiki is a Wiki that allows you to edit
significant parts of its own implementation code. If you don't know what
a Wiki is, try the site that put a new word into the jargon file at
WikiWikiWeb.
[Note: Since the above text was written, there has been something called
Wikipedia which has brought the
Wiki concept fairly directly into people's living rooms.]
- The Drunkard
- This is an experiment in daily building and testing of
Wine. It ... uhhh ... makes a lot of
Wine ... and ... uhhh ... tests it. Daily. Quit that snickering!
This project no longer resides here, but lives on (maybe) at:
deb http://gluck.debian.org/~andreas/debian wine main
deb-src http://gluck.debian.org/~andreas/debian wine main
- RandStream
- Want to erase a hard disk fast? Want to confuse your enemies at the
same time? Try RandStream, a low-quality high-speed random number
generator designed for clobbering inconvenient data.
Lazy readers can stop reading at this point. There's nothing more to see
on this page.
Past Projects
I'm still in the process of organizing the software into something
presentable. I'd also like to dig out some of the versions that have
actually been released, not the singed remains on my desktop machine at
home that have survived a fire, the resulting collapse of my source code
control infrastructure, three job changes, three complete computer systems
upgrades, a software-induced disk crash, and a bunch of random bug fixes
and performance or compatibility hacks. I have the released versions on
DDS-2 tapes but I no longer have access to a DDS-2 or better tape drive,
which makes retrieval problematic. A lot of them are scattered on FTP
sites and mailing list archives, so they're out there if you want to do
a little digging.
- filereaper
- A Perl 5 script with platform-specific Linux and Solaris code that
does real-time, secure, on-demand deletion of temporary files. You used
to be able to get this on CPAN, but
apparently not any more...
- nuzer
- A Perl 5 script which downloads binary newsgroups from an NNTP server
and decodes them.
- cddamp3 (for want of a better name)
- A Tcl and C++ program
that reads audio from CD-DA discs (that's the kind you get in a music
store with prerecorded music on them). Although there are dozens of
programs like this out there, this program does two things that other
such programs don't.
Actually cddamp3's two unique features are its data reassembly
algorithm (which is actually broken in the worst case, but has a very
effective, if expensive, typical case) and the ability to distribute
audio to codecs running on several machines in parallel, without having to
store more than a few megabytes of raw audio during the encoding process.
If you have an MMC-capable CD-ROM drive that "Does restart non-streamed
digital audio reads accurately", then the first feature is meaningless.
If you have a modern CPU then you can probably encode audio in most
formats on a single machine much faster than you can play it, and
certainly faster than you can encode audio after transporting it in raw
form over a network. Most people have disk drives that are sufficiently
large to accomodate a "few" hundred megabytes of raw audio data during
the encoding process. Machines that can hold an entire CD in RAM are
common now.
- mj
- A C++ program that uses
'l3enc' and 'splay' (two excellent utilities that
have since disappeared into obscurity) to implement a random play list
of audio files (mj stands for "MP3 Jockey"). There are dozens
of programs like this out there too, and of course mj has a
couple of features of its own. mj was later reimplemented in
pure Tcl, as an experiment in distributed process control.
- digitz, sch, and other OS-9
utilities
- Written for the Tandy Color Computer 3 in Motorola 6809 assembler,
this is the kind of code I was writing in high school (1987-1992, if you
must know). Oh well, at least I lost some of that arrogant attitude
in my documentation over the years. And I learned how to spell words
propelry. :-)
Although my CoCo 3 is long lost in the closet (actually I don't remember
which closet that is), some of the hacks I wrote for it still remain.
In fact, I still have its hard drive in a big box along with a whole lot
of old disks and weird format tapes that I also can't read. If you have
one of my old CoCo programs such as sch or gifstar,
please email me a copy!
Vaporware Projects
Warning: all of these projects are officially vaporware.
- Server That Faxes A Lot
(stfaxalot)
- An integrated package of Samba, Netatalk, ImageMagick, mgetty+sendfax,
GhostScript, Apache, Red Hat Linux, and some Perl code to make a web-based
fax server for a small office or department.
- Aztech Radio Card Driver
- I bought one of these
back in May 1997 (I think), played with it for a week, then put it on
the shelf for a while (I didn't have a slot free in my machine for it). I
used DOSEMU, the DOS emulator for Linux, to monitor the protocol
used by the DOS radio card driver program. By the time I got around
to finishing the driver and trying to figure out where to publish it,
I discovered that there was an Aztech radio card driver in Linux kernel
2.1 written by three Vermont State College students.
- C Multi-Threaded Real-Time Faster
filereaper (cmtrtffr)
- Let's face it. filereaper could be faster. A lot
faster, a lot less memory-intensive, a lot less system-call-intensive,
and a lot less prone to weird bugs in both Perl and the OS it runs on,
if it was written as a multi-threaded C program instead of a Perl script.
The reason why it's in the vaporware section is that I've been planning
to write this for [$CURRENT_YEAR - 1995] solid years now. The current
filereaper works (well, most of the time, anyway) and I'm
not subject to thousands of complaints about its current performance all
day (and before you ask, yes, people did complain about its predecessor
gfreaper).
- Filesystem Compression for Linux (or Unix)
- Somebody else is doing this: the e2compr
project. The other people are doing it with kernel patches in
the e2fs filesystem directly, while I was doing it within a user-mode
NFS server. It might be cool to revisit this as an LD_PRELOAD hack...or
with FUSE.