Ludum Dare 14

The idea of competing to write a complete game in a very short time has always appealed to me for some reason. I think mostly because it means I'll actually be forced to finish a game. So I'll be entering Ludum Dare 14, it starts around 9PM tonight and ends 48 hours later. Ruby isn't my favorite language for game development but it can't be beat for rapid prototyping, so that's what I'm using.
I'll be liveblogging as the contest is in progress, if you're bored this weekend you can check my posts here:
http://www.ludumdare.com/compo/author/codekitchen/
I'll also be doing a short presentation on the experience and on prototyping video games in Ruby at this month's Salt Lake City URUG meeting.
I wrote this bit of code while working on a D project this morning:
void trace(R ...)(char[] a, lazy R r) {
if (tracing_enabled)
do_trace(a, r);
}
trace("Playing {} on {} ({})", _sound, _channel, _device);
That, friends, is a variadic lazy function template conditionally at run-time calling a type-safe variadic function, only evaluating its arguments if the call is made.

Redmine Invoicing Plugin
I've made my Redmine Invoicing plugin public on projects.codekitchen.net. It's a simple but flexible system for creating invoices out of logged hours and other line items, all right inside your Redmine projects. I just started the project Tuesday night, so consider it a very early beta release, but it's in a usable state now and I am now using it for my clients instead of my old system.
Any feedback/bug reports would be great.
Simple git-daemon launchd script
Here is a simple launchd script to run git-daemon under launchd on Leopard. Edit the XML to tweak any options, it's self-explanatory.
You'll need to change at least the UserName and --base-path options to match your configuration. Don't forget to touch git-daemon-export-ok in each repository you want to export. See git-daemon(1) for more info.
> sudo mv cz.or.git.git-daemon.plist /Library/LaunchDaemons/
> sudo chown root:wheel /Library/LaunchDaemons/cz.or.git.git-daemon.plist
> sudo launchctl load /Library/LaunchDaemons/cz.or.git.git-daemon.plist
Neo4j, a database storage engine that operates on nodes and "relationships" (edges). Designed for fast traversals of the network.
Mozy Deathmatch II
We're putting on another coding deathmatch this month, April 14th. We've got $20,000 in prizes to give away this time and all it takes is a few hours on a Saturday to participate, so if you live in Utah give it a shot!
Comments? Feedback? Drop me a line.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.