Projects
Blocking queue template
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
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
The Dan shell
This is a small Unix command line shell. It supports the following features similar to what you'd get from bash:
- Pipes and I/O redirection.
- Logical operators && and || for comparing exit status.
- Backgrounding.
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.