Archive for the ‘Open Source’ Category
Steve Yegge is an idiot July 28, 2010 | 06:42 pm

And to think, I used to have respect for the man. Then he goes and posts this pile of fetid dingo kidneys.

I’m going to explain in detail why ditching private (and, by extension, public) is bad. Obviously this needs to be spelled out, because a lot of programmers- including Steve Yegge – don’t get it.

Read the rest of this entry

DZone Videos of Me and What I’ve Been Up To June 23, 2010 | 02:34 pm

In case you fear I’ve fallen off the face of the planet completely, here’s some evidence to the contrary. DZone put up two video interviews of me: one on Gradle and open source and one on Grails plugins and domain objects.

Aside from my summer field education placement at a church in Yanceyville, NC, I’ve been working on and The Indie3 Project. I’ve also been doing some open source work on figuring out the EPA’s MOVES model (GPL FTW!) and my programming language, Ashlar. Also researching perpetration induced traumatic stress (PITS), as well as dogs. With all that, my blogging has dropped to pretty much zero.

Formally Done with Grails Plugins and Mailing Lists May 8, 2010 | 08:03 pm

I’m formally tapping out of Grails plugins and mailing lists at this point. It’s nothing personal to anyone involved or a particular judgement on Grails—I just don’t care anymore.

Read the rest of this entry

New Wiki, and SBL LaTeX Papers Revisited May 5, 2010 | 03:08 pm

I’ve just created a wiki for EnfranchisedMind at It’s going to get the PeriodicalUpdater stuff shortly, but its inaugural article is “Using LaTeX for Society of Biblical Literature Style Papers”. People thought I was nuts to use LaTeX for SBL papers, and then they spent reading week griping about how hard it is to format their papers. There’s a better way, folks, and I’ve done up a tutorial here.

Heartbeat: Check April 27, 2010 | 08:48 am

Aside: Graphic Karma, who developed the theme for this blog, just overhauled their website. Check it out!

Just dropping a line to let people know that I am alive, despite all appearances to the contrary. Here’s what I’ve been up to.

Biggest thing in school, where I’ve been doing a lot of work on the book of Joel and Creation Theology, along with memorizing book/chapter of the New Testament. Did a fun exegesis paper on creation themes in Deutero-Isaiah and now I’m working on another interesting paper on how our relationship with dogs can inform Christian theology. Also, I discovered that Gregory of Nyssa wouldn’t be keen on me reading Song of Songs and that Hebrew students make the best home brew.

Over the summer, I will be doing my student pastor placement at a local Methodist church. That’s going to be weird. I’m chalking it up under the heading of “Growth Experience”. When I preach (and I will have to preach), I’ll put the sermon up here (like “That’s Great. Now What?” (The seven minute sermon)).

In the meantime, I’ve been working at the Climate Change Policy Partnership at Duke, which has eaten what little time my M.Div left behind. I decided not to apply for the Ruby Summer of Code, because my mandatory summer internship placement as a student pastor has killed my free time this summer: the weekly commute alone is a part-time job.

As for open source, all I’ve been working on is the [latex]LaTeX[/latex] SBL classes and packages, which allow you to use [latex]LaTeX[/latex] for Society of Biblical Literature papers and provide other nifty Bible language and citing support. (Many thanks to David Purton for letting me merge in the work I’ve done and provide an American accent to the SBL Latex project.)

Oh, and there was some work on Smokejumper-Commons which was relevant for the CCPP job—a bit of Java snuck in after all by way of EPA’s MOVES.

Work on Autobase and any of my other Grails plugins has pretty much bottomed out. The Ashlar programming language is on hold, as is work on Duby and BiteScript. Since jQuery PeriodicalUpdater is pretty easy, I’ll probably do a few tweaks, although I’m really looking for a JavaScript guru to help me figure out the nicest way to expose a stop() call to callback methods.

The book isn’t happening anymore. Long, kinda anticlimactic story behind that. The only good news in that realm is that it changed the way I thought about the Ashlar programming language. (Of course, Ashlar being put on hold means that it really has come to naught. But such is life.) I’ve also decided that if I do publish anything technical again, I’m almost certainly going to self-publish. I may end up self-publishing a few interesting bits from school, too. Remember, kids: Wil says, “Get Excited and Make Things!”, so I’m probably going to be reworking some of my academic work and throwing off some interesting little Pendle Hill-esque booklets instead of letting the work from all these cool papers drift off into the mist.

The Smokejumper IT site is probably going to be overhauled soon to focus on my open source projects instead of my consulting offerings, since my consulting offerings have become rather limited at this point. I do need a place to consolidate documentation, repositories, and comments at this point. I’ve thought about using a family of pages here for that, too: can’t really decide which web property is better to host that content.

That’s pretty much everything. See you eventually!

log.debug { “$toStringMe only if necessary!” } March 19, 2010 | 01:02 pm

I’ve just updated the @WithLog AST transform for Groovy. In case you don’t know, that’s my project over at GitHub which allows you to turn:

import org.apache.log4j.Logger
class Foo { 
  static log = Logger.getLogger(Foo)
  /* ... */


class Foo {
  /* ... */

Three big changes in the new release. First, I switched to using Gradle for the build system, because Gradle is awesome. Second, I OSGi-ified the archive and released it to the Maven repo at, so I’m now Java infrastructure compliant (thank you, Gradle, for making that a no-brainer). Third, I provided the ability to use an enhanced Logger implementation (unoriginally called WithLogLogger) — see the README for full details, but basically it means you can save the toString() evaluation on your logging messages if you wrap the logging GString in a Closure. If you use this, though, you’ll have to schlep around the Groovy-WithLog-0.2.jar file with your runtime code. If you’re using Maven/Ivy/Gradle/whatever, see the end of the README for repo information.

The @WithLog code is still released under the WTFPL.

Open Source Update: jQuery PeriodicalUpdater, TestingLabs, GPars, etc. March 12, 2010 | 01:28 pm

I’ve done a fair bit of fairly small open source updates recently.

  • jQuery PeriodicalUpdater: The main function now returns a handle that can be used to call stop(), thereby ignoring any updates that may come back and preventing future updates from being sent.
  • TestingLabs: I released TestingLabs 0.4 to work with Grails 1.2.0. Had a bug with versioning under Grails: More info on JIRA.
  • Presentations: I’m now storing the slides for my presentations on GitHub. They’re under a Creative Commons License.
  • ClosureBridge: This is a tiny library (up on the Maven repo) that provides a link between Groovy’s Closures and Callable/Runnable/Java code.
  • Fun with GPars: A small library where I was experimenting with GPars
  • GPars: Submitted a fix and generally been discussing things with the GPars community (and by that, I mean Vacalv Pech)

See my GitHub page for more info.

DynamicDomainProperties and the AGPL February 20, 2010 | 07:24 pm

Click here to lend your support to: Un-AGPL DynamicDomainProperties 1.0 and make a donation at !

I just released the DynamicDomainProperties plugin for Grails, which allows domain classes to have dynamic properties. It’s pretty nifty, if I do say so myself.

Based on my frustration with the Grails plugin culture because of differing cultural assumptions about open source works, and based on my lack of appreciation for the promises of indirect compensation offered to me as an open source developer, I’ve decided to release it under the GNU-Affero GPL 3.0, which is like the GPL but (among other things) requires the source to be available to the users of a web app that use this plugin.

I’m open to the idea of releasing it under the more “biz-friendly” BSD, but then I’m going to want a different form of compensation. So I’m putting up a bounty via Pledgie: if I was building this plugin as a consultant, it would have cost a client about $2500. So, if the commercial community contributes $2500, I’ll do a BSD release. Anyone who donates $250 or more gets a single-domain usage license right away.

For more information on the plugin, see the plugin page on (I’ve had enough difficulty with GitHub’s wiki freaking out on me and would rather avoid that.)

I Don’t Get It February 5, 2010 | 03:29 pm

When encountering a bug in an open source project, most Java people seem unwilling to either fix it themselves or pay the maintainer to fix it—they’d rather abandon the project or kludge their software painfully and repetitively. WTF?

Gradle-Plugins 0.5.1 released January 5, 2010 | 10:35 am

Thanks to Jeppe Nejsum Madsen, the Gradle-Plugins just released version 0.5.1. It’s a minor bugfix release: if you didn’t have a GEMS_HOME kicking around anywhere on your system, we threw a NPE. The solution was to make project.tryRelativePath handle null input more nicely.