Programming Projects

This section contains various code I've written over the years. The boxes on the right relate to larger and older projects of mine. Shelved projects are things I've worked on fairly recently and, while not working on currently, might get back to at some point. Archived projects are old stuff that I have no plans on touching again unless I'm feeling sentimental.


I've started keeping some stuff at github. Currently most of my github things are small standalone programs or libraries relevant to various work I've been doing at the time and a collection of utility scripts.


Shell Scripts

This is a collection of a few of my shell (and python) scripts that I've shared with others. Many are also in my github repo and I need to take some time to rework this section with that in mind.

  1. mutt_view_html - View html attachment from mutt in firefox (including attached images).
  2. vimhelp - Vim help from command line (with zsh completion tip).
  3. terminal-colors [github | debian] - Displays charts for 256/88/16 terminal color modes, auto-detecting correct mode for terminal. Also supports converting between 256/88 color values.


Fabric config and control fabfile

Used with fabric and typically a VCS to maintain and deploy the configuration and control scripts for a small number of systems (possibly including itself). It's fabric commands are modeled after a simple subset of common distributed VCS commands.

It is organized as a set of directories with this fabfile living at the root. Each system gets a subdirectory that contains all the files for it. The subdirectory is named for the host name of the system which is used in all the remote commands. The files within this directory are laid out like a skeleton of that machine's root filesystem.

More... template system

It is a pretty simple system written in Python consisting of just a few files. It currently uses Tempita for its basic template rendering and a simple hierarchical directory layout for organization. At this point it would be mostly of use to people already familiar with Python or willing to get that way. It is pretty flexible, but requires python for any significant change from its default setup.


Openbox Stuff

A couple scripts for use with the Openbox window manager for X. The first is a nice pipemenu for controlling and getting the status of a running mpd (music player daemon). The other is a set of script for toggling Openbox's keybindings on and off so I can disable them when working with a program that has conflicts (like a few games).