Ferret is an evented, objective hobby programming language.

By evented, I mean that all functions are implemented as events, each of which can have any number of responders and return values. By objective, I mean that all values in Ferret are objects. By hobby, I mean that I know it will probably never be used by any project to be taken seriously.

I don't think it's uncommon for a programmer to visualize an idealist language with all of their favorite features from each existing language glued together. But it's probably not that common to take the time to fabricate such a thing. Ferret is my actualization of exactly that.

Both the Ferret compiler and runtime are written in Perl currently, but I'm in the process of porting the runtime to Go. Eventually the Perl compiler will generate bytecode which runs in a Go interpreter.

Yes. It really is an IRC daemon. It's written in Perl.

juno is a seriously modern chat server. It is designed to be ridiculously extensible, painlessly reloadable, and excessively configurable.

Perl is one of my favorite languages, and this is my showcase project gluing together many of my open source libraries written in it. One of the features I am most proud of is the ability to upgrade the entire application without dropping any network connections.

I have been developing juno since late 2009, making it the most mature of my hobby projects still under active development. It started as a fork of pIRCd and was my first project in Perl, but it has since been rewritten from the ground up a couple times.

screenmgr is a tool for monitoring and managing a collection of computer screens. It communicates with devices on a local network via a number of protocols for monitoring uptime/reachability, viewing the screen, and remote control.

Supported protocols include ICMP ping (monitor reachability), WOL (boot via network), SSH (remote commands, shutdown, restart), and VNC (screen streaming). Devices are monitored and controlled via a web user interface.

My diverse collection of old computers was the motivation for this project. It originally was written in node.js and Perl, only supporting Mac OS 8/9/X for my Power Mac collection. But I later rewrote it in Go and added support for Windows and UNIX-like operating systems.

garden.jpg

Gardening

You thought this was only about coding! No, this page is called "hobbies" after all...

I love working outside in my garden. I've spent more time and shed more sweat in there than anywhere else. In practice, I am not the world's most successful gardener. Yet, I am always planning my garden each year long before the last frost. It's worth noting that I am not a health nut; i.e., I do not garden because I am afraid of preservatives or GMOs. Gardening certainly does not save me a significant amount of money either.

I do it because I find it enjoyable, and the food tastes better when grown at home. It also has social value as a means by which to impress my neighbors and whoever else strolls by.