Random Software Page

Stuff I Do

I have a resume.

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 love new technology and I love applying old technology to new problems.

I code mostly in C and Perl these days. I tend to 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. The internet is littered with evidence of this.

So, here's a list of software which I think is noteworthy at this particular moment.

Stuff That Works

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.

Stuff That Doesn't Work (or isn't released yet)

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.

Net::Cluster will be an application-layer P2P network library, with reliable multicast support. This is about 80% completed.

Noidfs will be a clustered filesystem. It is waiting for Net::Cluster , 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.

Other People's Stuff

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 AI::Evolve::Befunge 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 direct contributor, I also help indirectly to various degrees by triaging bugs, reviewing/applying patches and mentoring.

I have an ohloh page with some more details of my contributions to third party projects.

My tags:
 
Popular tags:
 
Powered by Catalyst