Projects
Antonym
Many people use anonymous pseudonyms to send and receive mail that cannot be traced to them. This program is for people who know what the pseudonyms ("nyms") are, understand how they work, and wish to make their use a little easier.
DBReplicate
Simplify Interbase->PostgreSQL conversions
I wrote a Perl program to help my company migrate from Interbase to PostgreSQL by extracting a database's data and metadata and dumping it as a set of SQL commands (similar to pg_dump or mysqldump).
JailAdmin
This is a project I wrote to manage startup and shutdown of FreeBSD jail environments. Its functionality has largely been incorporated into the built-in /etc/rc.d/jail script, but still offers basic SNMP monitoring and parallelized shutdowns that aren't part of the base system.
I'm not really maintaining it anymore, but in the interest of anyone who still uses it I'm migrating the page from my out-of-date page at SubWiki.
PgDBF
This is the successor to the XBaseToPg project for converting XBase/FoxPro files to PostgreSQL. While XBaseToPg works well, it's comparatively slow and big and complicated. The smallest changes touched lots of files, and the scope of the project is far larger than I actually needed on a daily basis.
Thus, PgDBF. It's a small C project comprising two files with no dependencies other than standard Unix libraries. While the project is relatively tiny and simple, it's also heavily optimized via profiling. I routinely got benchmark results that were many times faster than with XBaseToPg. In fact, even on slower systems, conversions were typically limited by hard drive speed.
Features
PgDBF was designed with a few core principles:
- Simplicity. This code should be understandable by anyone who wants to hack it.
- Robustness. Every syscall is checked for success.
- Speed. I wanted the fastest conversion available anywhere.
- Completeness. It has full support for FoxPro memo files.
XBaseToPg
So, you want to convert some FoxPro tables to PostgreSQL, huh? You're in the right place. Although this project works well for one-time data migrations, it's designed and highly optimized for regularly scheduled jobs.