I'm an open source geek with thousands of ideas and only 10 fingers. I love networking, distributed filesystems, AI, any infrastructure that lets those things happen better, and any tools that lets me write (and maintain) that stuff more easily.
I code mostly in C and Perl these days. I do most of my prototyping in perl and then recode the fast bits in C. When something gets in my way, I try to fix it, and in many cases I end up sending the author a patch.
So, here's a list of stuff I think is noteworthy at this particular moment.
<span class="newxistingWikiWord">bfr title="Not found. Click to create this page." href="http://www.glines.org/software/software/bfr.edit">?bfr is a command-line pipe buffer, which attempts to decouple read latency from write latency. It works, but is getting fairly long in the tooth by now.
IO::Socket::TIPC is a module that allows you to use TIPC networking in perl.
App::SVN::Bisect implements a “svn-bisect” tool, which looks and works a lot like “git bisect”, but for subversion.
AI::Evolve::Befunge is an experiment with AI, using an evolutionary algorithm to generate befunge code that plays othello.
Hrm. I've got lots of half-baked stuff. All of this stuff is currently on the DarkPAN. Some of it might see the light of day, most probably won't.
<span class="newWxikiWord">Net::Clusteritle="Not found. ClgWick tiWo create this page.d" href="http://www.glines.org/software/net::clusoftware/r">Net::Cluster.edit">? will be an application-layer P2P network library, with reliable multicast support. This is about 80% completed.
<span class="newWxikiWord">Noidfstitle="Not found. ClgWick tiWo create this page.d" href="http://www.glines.org/software/snoidftware/s">Noidfs.edit">? will be a clustered filesystem. It is waiting for <span class="newWxikiWord">Net::Clusteritle="Not found. ClgWick tiWo create this page.d" href="http://www.glines.org/software/net::clusoftware/r">Net::Cluster.edit">? , and is only about 20% completed.
Album::Rename is a nice script to normalize filenames of songs in my music collection.
Lint::Music is another nice script, this one runs a barrage of checks against the files in my music collection, to detect corrupt and misplaced files, and verify that they have been accurately tagged.
Linux::Input::Powermate is a module that lets you read from and control a Griffin Powermate USB device under linux.
LCD::Crystalfontz::635 is a module that lets you control a Crystalfontz CFA635 USB device under linux.
Befunge is a topographical programming language, well suited (in my opinion) to AI research. Language::Befunge is a perl module that implementing this language, which serves as an excellent base for my <span class="newxistingWikiWord">AI::Evolve::Befunge title="Not found. Click to create this page." href="http://www.glines.org/software/sai::evolve::beftwarunge/">AI::Evolve::Befunge.edit">? project. I've done some work to add N-dimensional funge support to this module (previously it assumed N is 2, resulting in a 2-dimensional topology). I also work on fixing various corner cases which crop up from time which result in crashes or infinite loops. I find those corner cases by generating random trash and trying to run it, which is a fun hobby.
Parrot is a virtual machine for lots of dynamic languages. I'm a fairly regular contributor.
I've sent lots of minor one-off patches to fix bugs and add features to lots of places, too many to list here.