aboutsummaryrefslogtreecommitdiff
path: root/content/posts/2005-07-14-power-outages-context-free-span-and-rubygems.html
blob: f89f04c006fb39b016ec85e7bbfe37c935482bc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
---
date: "2005-07-14T02:20:46Z"
title: Power Outages, Context Free, Span, and RubyGems
---

<p>
I finally got a decent <acronym title='Uninterruptable Power Supply'>UPS</acronym> 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 <acronym title='Domain Name Service'>DNS</acronym> and a secondary <acronym title='Mail Exchange'>MX</acronym> for virtually everyone hosted on <code>kylie</code>.  I think <a href='http://linuxbrit.co.uk/'>Tom (giblet)</a> is going to do the same, and <a href='http://richlowe.net/'>Richard (richlowe)</a> was scouting around for more people willing to play the <acronym title='Domain Name Service'>DNS</acronym>/<acronym title='Mail Exchange'>MX</acronym> 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 <acronym title='Domain Name Service'>DNS</acronym> and mail handling, and I'm looking at <a href='http://www.lithodyne.net/docs/dhcp/dhcp-4.html'>secondary <acronym title='Dynamic Host Configuration Protocol'>DHCP</acronym> as well, although it requires upgrading to version 3 of the <a href='http://www.isc.org/sw/dhcp/'>ISC DHCPd</a>.
</p>

<p>
I stumbled across the horribly addictive program <a href='http://www.ozonehouse.com/ContextFree/about.html'>Context Free</a>, via <a href='http://del.icio.us/giblet'>Tom's linkblog</a>.  <a href='http://www.ozonehouse.com/ContextFree/about.html'>Context Free</a> 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 <a href='/files/cfdg/'>designing my own pictures</a>.  Here are a couple of the results:
</p>

<p>
<img src='/files/cfdg/vortex.png' width='500' height='500' border='0' />
<img src='/files/cfdg/octopus.png' width='500' height='500' border='0' />
<img src='/files/cfdg/forest-DWB-500.png' width='500' height='500' border='0' />
</p>

<p>
All of the images I've created so far and their respective grammar files are available <a href='/files/cfdg/'>here</a>.  Speaking of graphics, I've been playing <a href='http://halffull.org/span'>Span</a>, <a href='http://halffull.org/'>Thomas's (redshift)</a> shameless multi-player Connect 4 clone, quite a bit.  It's a console-only game, and it's written in <a href='http://ruby-lang.org/'>Ruby</a>, so I shamelessly tacked on <a href='http://www.libsdl.org/'><acronym title='Simple DirectMedia Layer'>SDL</a>-based graphics, sound effects, and music, creating the following monstrosity:
</p>

<p>
<img src='/screenshots/20050714-sdl-span.png' width='642' height='508' />
</p>

<p>
You can download the tarball <a href='/files/sdl-span3.tar.gz'>here</a>.  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 <a href='http://debian.org/'>Debian</a>; you'll have to <a href='http://www.kmc.gr.jp/~ohai/rubysdl_download.html'>download the latest version (0.9.5)</a> and slog through the busted Ruby/SDL <code>extconf.rb</code> in order to get things up and running.
</p>

<p>
Finally, security pedants rejoice!  My <a href='http://rubygems.rubyforge.org/'>RubyGems</a> package signing patch (described <a href='http://www.pablotron.org/?cid=1423'>here</a>) has been integrated into <a href='http://rubygems.rubyforge.org/'>RubyGems</a>, and should be in the next stable release (version 0.8.11, for those of you counting).  We still need some niceties like <acronym title='Certificate Revocation List'>CRL</acronym> and <acronym title='Online Certificate Status Protocol'>OCSP</acronym> support, and some sort of trust hierarchy, but at least we can get started signing gems. Rubyists, fire up your copy of <a href='http://tinyca.sm-zone.net/'>TinyCA</a>, have a beer, and take a look at my <a href='/files/signing_gems.txt'>overly verbose Gem Signing README</a>.
</p>