Dan Born code

Projects

Blocking queue template

blocking_queue.h

C++ template for a blocking queue. "front" operations block if the queue is empty, and "push" blocks if a maximum size is specified.

Resume Transformer

Java program to generate various resume output formats from XML. Read more.

netlogger

netlogger.tar.gz

This is a system for logging network traffic to a relational database.

It uses the ability of the Linux kernel to have logging rules in iptables. I log all packets that get dropped by my firewall. klogd reads the log information from the kernel, I configured klogd to write to a named pipe on the filesystem, and the netlogger program I wrote reads from that pipe. netlogger parses the kernel log output and adds entries to a postgresql database. I wrote a CGI frontend to the database.

The tar file has the netlogger Perl script, an init start/stop shell script, another Perl script for deleting old data from the database, and some SQL scripts for setting up the database schema.

I also wrote Perl code to generate some graphs from the database.

dsh

dsh.tar.gz

The Dan shell

This is a small Unix command line shell. It supports the following features similar to what you'd get from bash:

I was curious about how a shell might implement certain features using the Unix APIs, so I decided to write one to see how it's done. I had to design a grammar for the shell, write a parser, and then write the execution module for running shell commands.

Written using C.