Nonogram Game

“A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.”
The Tao of Programming

Eat your own dog food.
Popular wisdom

Recently, I worked on a simple game using Rubygame: an implementation of nonograms (also known as Picross), a logic game where you use number clues to reveal a simple drawing.

The game itself is in a pretty simple state, but I’m quite pleased with the code behind it. In addition to giving me a chance to use Rubygame, it also gave me a chance to practice writing unit tests / behavior specifications, something that Rubygame itself is rather lacking.

I have no idea when I’ll release the first version of it, but here is a nice screenshot of a puzzle in the process of being solved:

Culling Projects

I have a personal tendency to accumulate projects. Lots of projects. So many projects that I could never find the time work on them all. So, older projects get put on the shelf as new, sexier projects grab my attention (and then those new projects become shelved when the next one comes along). The sheer psychological pressure of this massive backlog of projects is intimidating, so I end up avoiding them all.

And so it was with Rubygame. It was fun and cool for a while, back in summer 2004. Then it started to get old, and I often felt discouraged by the lack of feedback. (Of course, that was due in large part to the fact that I did not promote it or make any announcements on mailing lists; something I still have not done.)

I trodded along out of “duty” (guilt?). Occasionally I would receive some little scrap of feedback; an email, maybe even a patch, which would keep me going for a while. But, my interest in Rubygame has been stop-and-go since 2005, and mostly stop, at that. School work and dealing with my own ongoing personal issues definitely contributed to that.

2007 has been different. There has been considerably more interest in Rubygame than in past years. A new developer, apeiros, brought in fresh ideas that excited me. Rubygame was even featured in a talk by Andrea O. K. Wright that was presented at Ruby Hoedown, Ruby East, and RubyConf.

But Rubygame has been buried among the detritus of other projects that didn’t make it, and I haven’t been able to pick it up and dust it off, because I’ve kept my hands full with yet more new projects.

I’ve had enough of the juggling act, though. I’m culling tiny dead projects that I won’t finish, and gathering up my concentration for more important things. Rubygame is important enough that it won’t be culled; but, there might be some changes.

Here’s hoping that another project doesn’t come along before I finish the project of culling old ones.