Power Outages, Context Free, Span, and RubyGems

July 14, 2005

I finally got a decent UPS for the server rack, so I should be able to weather these wacky northern Virginia summer showers (no pun intended). I also set up a secondary DNS and a secondary MX for virtually everyone hosted on kylie. I think Tom (giblet) is going to do the same, and Richard (richlowe) was scouting around for more people willing to play the DNS/MX swap game, so eventually we might have triple or even quadruple redundancy on those services. Coupled with the nightly off-site backups and the hopefully pending weekly hard backups, I'm starting to feel reasonably comfortable about any unexpected disasters. At home, I set up redundant internal DNS and mail handling, and I'm looking at secondary DHCP as well, although it requires upgrading to version 3 of the ISC DHCPd.

I stumbled across the horribly addictive program Context Free, via Tom's linkblog. Context Free is, in the authors' terse words, a small language for "design grammars", or sets of non-deterministic rules to produce images. I got hooked and spent several hours designing my own pictures. Here are a couple of the results:

All of the images I've created so far and their respective grammar files are available here. Speaking of graphics, I've been playing Span, Thomas's (redshift) shameless multi-player Connect 4 clone, quite a bit. It's a console-only game, and it's written in Ruby, so I shamelessly tacked on SDL-based graphics, sound effects, and music, creating the following monstrosity:

You can download the tarball here. At the moment it's a total hack; Ncurses calls haphazardly replaced by SDL calls, music and sound effects grafted on, cats and dogs sleeping together, apocalypse, that sort of thing. It also won't work with the version of Ruby/SDL in Debian; you'll have to download the latest version (0.9.5) and slog through the busted Ruby/SDL extconf.rb in order to get things up and running.

Finally, security pedants rejoice! My RubyGems package signing patch (described here) has been integrated into RubyGems, and should be in the next stable release (version 0.8.11, for those of you counting). We still need some niceties like CRL and OCSP support, and some sort of trust hierarchy, but at least we can get started signing gems. Rubyists, fire up your copy of TinyCA, have a beer, and take a look at my overly verbose Gem Signing README.