h1. Random Software Page
h2. Stuff I Do
I have a "resume(click)":https://quack.glines.org/Mark_Glines_resume.html.
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(google search)":http://www.google.com/search?hl=en&q=mark+glines+patch&btnG=Search of this.
So, here's a list of stuff I think is noteworthy at this particular moment.
So, here's a list of software which I think is noteworthy at this particular moment.
h2. 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(on cpan)":http://search.cpan.org/dist/IO-Socket-TIPC is a module that allows you to use TIPC networking in perl.
"App::SVN::Bisect(on cpan)":http://search.cpan.org/dist/App-SVN-Bisect implements a "svn-bisect" tool, which looks and works a lot like "git bisect", but for subversion.
[[/software/AI::Evolve::Befunge]] is an experiment with AI, using an evolutionary algorithm to generate befunge code that plays othello.
h2. 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":http://www.modernperlbooks.com/mt/2009/02/the-darkpan-dependency-management-and-support-problem.html. Some of it might see the light of day, most probably won't.
[[/software/Net::Cluster]] will be an application-layer P2P network library, with reliable multicast support. This is about 80% completed.
[[/software/Noidfs]] will be a clustered filesystem. It is waiting for [[/software/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":http://www.griffintechnology.com/products/powermate under linux.
LCD::Crystalfontz::635 is a module that lets you control a "Crystalfontz CFA635 USB device":http://www.crystalfontz.com/products/635/index.html under linux.
h2. Other People's Stuff
"Befunge(funge98 spec)":http://quadium.net/funge/spec98.html is a topographical programming language, well suited (in my opinion) to AI research. "Language::Befunge(on cpan)":http://search.cpan.org/dist/Language-Befunge is a perl module that implementing this language, which serves as an excellent base for my [[/software/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":http://www.parrot.org/ 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(at ohloh.net)":http://www.ohloh.net/accounts/Infinoid with some more details of my contributions to third party projects.