4 Weeks, As Many Projects

Summer session ends for me next week, and I have a lot of things that I’ve been sort of working on half-heartedly for a long time. I’m going to take one week each and complete these. Even if I have to cut corners, discard ideas, and remove code, I’m going to have a gem for the project uploaded to RubyForge (or whatever is appropriate) by Friday evening.

Although one of my projects is work-related here in Anchorage (and thus I can’t discuss it here), I’m going to lay out my three other (code-related) projects here.

git-blog

Powering this blog, it was a little hack I threw together quickly on a whim - but it’s quickly grown a bit beyond that, and it’s structure really needs a refactoring. It’s a bundle of Rake tasks at the moment, which really isn’t efficient for the purpose; I want to write something truly object oriented, to make future optimizations/simplifications easier on me.

Also, while I always want git-blog to be ultra-minimalistic, there’s some features that one can’t be without - specifically, an RSS or Atom feed is a must. A switch to OO will facilitate getting feeds working, I think.

Finally, I want to re-work the default design - or rather, make a default design, as the one currently embedded (you can see it on this site right now, as of the time of this posting) doesn’t even really qualify as a design so much as a piece of flaming… messy code. Or something.

purr

I want an IRC bot - because nobody else will talk to me, obviously. No, but really, all the bots out there annoy me. For that matter, all the IRC frameworks (in Ruby, at least, that I’ve seen - and I’ve seen at least NINE THOUSAND) are really annoying, nearly always based on a single central procedural loop that everything else sits in. Horrible design.

Anyway, I got the nickname ‘purr’ on Freenode, and this struck me as the perfect name for a bot.

I mostly just want something that I can make hang out in the channels I frequent a lot, and do my job when I’m not there - annoy and confuse people. I’m thinking lots of feline-ish emotes at random intervals, and maybe some attempts at simple interaction with people. Also, perhaps I’ll have it run Markov chains on the channels’ content, generate random nearly-sensible-but-not-quite text. I think that’s about all I have planned for this one.

melog

Not sure what to call this one - melog’s my original name that I came up with along with the idea, but I decided that’s shit for a name. In any case, this is to track all of my stuff - any content I create on the web, visible in one place (and more importantly, in one feed). I want to be able to add any feed on the web with simple ruby psuedo-DSL filters on the feed’s content, and mux them all into several specific feeds (low, medium, and high volume of updates). Pipe them all from there to feedburner, and then share those links as ‘my feeds’ for everything.

Feature-wise, not much - like I said, some simple block syntax for modifying content of the feeds to my liking before piping it back out (specifically, I will be using it to make every entry start with ‘elliottcable’, and make each one form a full sentence - such as ‘elliottcable just blogged thisthat…’, ‘elliottcable is headed to foobar…’, ‘elliottcable listened to blah…’, and so on). I’m not too big on adding functionality outside what i need to this - I doubt anybody else would be interested in this (I’m far more interested in popularizing git-blog, because it’s a fuckin’ awesome idea imho), so while I’ll probably package it, I won’t be much into maintaining it for others.