I wind up writing a great number of small scripts and programs for robotics, web tools and even creating this website. This page is my repository for programs I thought might be useful to others. Unless otherwise specified all files here are under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. Documentation can be extracted from most of these programs using doxygen, when time permits I will post the documentation on this page directly. Gzipped files (*.gz) should be extracted with the -N option to restore their original filenames.
Robotics
- AIBO Sensory Graph Planning code
— Code from my senior computer science project in AI planning. The associated paper is also available and I would recommend reading it before attempting to integrate any of this code into your own project. - Cody

— I am currently working on an emotional AI program for my AIBO ERS-220 with additional support for interacting with the robot via email or Jabber. To speed developments, parts of the program are written in Tekkotsu (C++) and run on the robot while parts are written in Python and run on the PC. An event based system is used to send messages back and forth between the components over 802.11b. This project is just in it's beginning but I will post source code for both the PC and robot components incrementally. - py-espeak
— A "boosted" wrapper for the espeak API It allows you to synthesize speach from python much more conveniently than any of the other python wrappers I found on the Internet. Note: requires Boost.Python and the espeaklibrary and you will have to modify the jam files for your local boost setup to get it to compile. - markov.py
— A python library providing generic Markov chain related classes for various AI experiments. The emphasis is on generalizablity and efficient execution. - Multi-Robot Coordination code
— Source code from another senior project involving with AIBO robots. Another short paper is also available. - Optic Flow for AIBO
— Just around the corner. I am currently working on an optic flow implimentation to run under Tekkotsu. - TinyOS Voronoi cells and coverage breach computation module
— Note: This is a work in progress. Each node sends its location to its neighbors and then based on neighbor location information calculates its voronoi cell and sends a breach message if if part of the cell is outside a set radius. At the moment, each node's location is hard coded but any other source could easily be wired into the module. - treesearch.py
— A generic programming fast tree search and A* search implementation in Python.
Web related scripts
These are some of the scripts I've used to generate particularly this website and others I maintain.
- asi.py 2.1
— Author Side Include: For those who don't have access to Apache SSI on their webservers this script is the answer. It processes the #include file=... and #flastmod file=... directives in HTML files. The results are either uploaded via FTP or placed in a local directory. It also keeps track of the last time it was run and only processes files which have been modified since its last exicution. Optionally all files (not just HTML) which have been modified can be uploaded making this a useful synchronization tool.
General
- email-chores.py
— This Python script is intended to be run as a cron job (though it could be run by other means) to send chores to be done periodically. It reads in all the configuration and history data from an XML file, send the email and updates the file. - Matex.py
— A script which accepts a matrix expression specified in MATLAB like syntax and returns LaTeX code suitable to go inside an equation environment. - mp3shrink

— A script for down sampling / converting mp3, ogg vorbis and wave files to put on my old MP3 player. - sshcast.pl

— A little Perl script which is a very simple minded alternative to icecast. This script takes an ssh host and a play list, downloads the files one at a time via scp and plays them using mpg321 or ogg123 as appropriate. I use it for playing music stored on my desktop while working on other *nix machines.
Random and Useless
- Accent.pl for Pidgin
— A
perl plugin for Pidgin. The original goal of this plugin was to create affected or accented speach in all outgoing messages by processing them with regular expressions provided in a configuration file. All incoming messages are filtered aswell. Two example files are included, one for Talkin' like a pirate (regular expressions by Scott Reynen) and one based on Santiago's Jägerizer. Of course you could really do anything involving regular expressions with this. Enjoy and if you come up with any other good configuration files please let me know. - Base Clock — Forget the binary clocks, this clock is far more puzzling to read. The time is expressed by the base in which several arithmetic expressions are written.
More software coming as I write and post it.