The good news is that cabinet -- my mega IRC bot -- is in a release state! It had a couple of runs in #xkcd with mixed success. I have a few ideas for how to do the next one which will abstract it from IRC in particular.
For those who are unaware, this essentially consists of a small routing program with Net::IRC hacked into it. It starts up modules for processing IRC events and communicates with them through FIFOs. Ideally, this bot can avoid ping timeouts by providing constant attention to cpings and the like. Additionally, the modules can be restarted so that the bot can be modified on the fly.
I've started to find myself leaning away from the fast, cheap, and out of control model for it. I find myself creating a single module for most of the interactions instead of splitting them out. Most of the reason is that certain functions are needed by other modules and the interaction model is more of a 1-n interaction than an n-n one with messages going around.
The other thing is that communication through FIFOs presents some difficulties. Both sides of the FIFO must be open in order for a process to proceed beyond the opening, so using one needs to be carefully synchronized, so I don't really want to create a separate FIFO for out of band messaging, but the only other way is to save the state of each interaction.
No decision on that front yet. I'm still thinking it through.
Additional good news is planning on seeing a good couple of friends this weekend in addition to meerkat.
Bad news is. Ummm...
Hold on a second. I'm thinking!
*shuffles papers, looking for something*
Oh! Yes! My laptop is low on battery.
This has been testing4l reporting!
*mental note: add in Monkey Island insults to cabinet's database*