Boggle Boards

In case anyone wants to know, here are the specs for Boggle – both for Original Boggle and for Big Boggle – in a handy machine-readable format. The format is line oriented with each line representing a single die, and the sides of the dice delimited by spaces. Note that there is a [...]

Groovy Gravity Processing

Groovy Gravity Processing

Joshua (a coworker) and I have been talking about gravity simulation for a while, and this week I threw together a very simple model to do exactly that.  This grew out of a game called Flotilla that he came across somewhere and has been working with the developer to add a network multiplayer mode.  Flotilla, [...]

Tulsa CFUG Presentation (CFGroovy)

Yesterday I presented CFGroovy to the Tulsa CFUG via Connect.  The recording is now available on Connect, thanks to Steve.  You can also grab the slidedeck (as a PDF) I skimmed through, and of course, the CFGroovy framework itself (project page, core SVN, demo SVN), including the demo files that I showed.  Note that the [...]

Groovy DataSources for Railo

If you've ever wanted to do raw JDBC stuff in your ColdFusion applications, you probably know that you can get a javax.sql.DataSource via this code:
createObject("java", "coldfusion.server.ServiceFactory")
Unfortunately, this doesn't work on Railo, because the result isn't actually a javax.sql.DataSource, it just looks like one (see RAILO-43).  To put that another way, it's duck typed.
Fortunately, [...]

CFGroovy at the Tulsa CFUG on May 25th

Next Tuesday (May 25th), I will be presenting CFGroovy to the Tulsa CFUG via Connect.  Details are at, but the important bit is that it's at 12:30 central time, not in the evening.  Steve Bryant – who manages the group – graciously extended a general invitation to anyone else who would like to join [...]

Polyglot Programming at cf.objective()

This afternoon I presented on Polyglot Programming at cf.objective() 2010.  Unlike most presentations I give, this one has almost no code, so the slidedeck (as a PDF) is the whole shebang.  The in-deck content is admittedly light; really just an outline to follow along as I talked.  The short version of the verbal part is:
Using [...]

CF9 ORM and CFGroovy

As I've stated at various times and places, CFGroovy 1 (with Hibernate integration) has been superceded by the ORM functionality now available in ColdFusion 9 and soon to be available in Railo 3.  It has never been my intention to compete with the CFML vendors in the Hibernate space – without access to the engine [...]

Sudoku PointingPairStrategy

The next sudoku strategy is called a "pointing pair" which I'm going to start by generalizing into "pointing triple".  The strategy is pretty straightforward: if, for a given number in a given block, all the potential cells are in the same row or column, then that number cannot exist in any other block's cells of [...]

Sudoku HiddenSingleStrategy

The next Sudoku solving strategy I want to dig into is called "hidden single".  Here's the implementation to start with:
class HiddenSingleStrategy implements Strategy {

static getTests() {
new Test(
'0' * 9 + '000200000' + '0' * 9 [...]

Sudoku GameRulesStrategy

A couple days ago I posted about implementing a Sudoku solver in Groovy as a sort of cross-training exercise, and promised to delve into the strategies a bit more.  So here's GameRulesStrategy:
class GameRulesStrategy implements Strategy {

static getTests() {
new Test(