Category Archives: OSS

Galaxy Chart in D3

When I first started working in for the Deputy CIO for Business Process & Systems Review, I was exposed to a data visualization called a “galaxy chart“. The version I saw was developed by Technomics, Inc., who (interestingly) do a lot of work for my former organization, PA&E (now CAPE).

While Technomics seemed to claim (when I met them) that they “invented” the galaxy chart, I think this is probably an overstatement, since there seems to be plenty of prior art.

Anyhow, I built a D3 plugin for a galaxy-chart layout.

Example galaxy chart

Example galaxy chart displaying a view of the United States Federal Budget for Fiscal Year 2011

How to apply an Open Source License to a US Government Work

This article is also posted to my Intelink blog.


Every so often, a government project manager asks me a question like this:

I’m looking to hire some government guys and I’m interested in young folks hacking on [my project].

So, here’s my predicament:  if they work on the code, their work becomes ‘public domain’ and not something that could be restricted by licenses (at least according to some legal advice I’ve been given).  If the work is the in public domain, I have no way of ensuring that someone won’t take the code and sell it back to the government as their own (because they could modify it and put a proprietary seal on it).

Here’s my question: is there some legal structures that can be put in place to restrict modification, use and distribution like typical software licenses for government-created works?

Here’s some ways this has been done before. Continue reading

Hellekson’s Law: How did I do?

This article is also posted to my Intelink blog.


I learned the other day about Hellekson’s Law, which states that more specific policy can be improved for the general case by removing delimiters that narrow the policy scope.

In particular, the thought was originally formulated with respect to government policies regarding Open Source Software: if there is an agency policy about open source software, then it could be improved by removing the words “open source”.  Whatever policy statement applies to open source software, probably applies to software in general.

This makes sense to me… although I suspect that it doesn’t apply in all cases.  Sometimes there may be specific statements that apply uniquely to open source software, specifically because of it’s open-sourciness.  As the original author of the Department of Defense policy statement on open source software, I’m intrigued:  how did I do?

Let’s analyze the policy/guidance section of the DoD memo and see if it articulates policy that should apply to all software, not just OSS:
Continue reading

…the hope that Congress will recognize a “moral obligation”…

This article is also cross-posted to my intelink blog.


Part of the Antideficiency Act (codified at 31 U.S.C. § 1342) reads as follows:

An officer or employee of the United States Government or of the District of Columbia government may not accept voluntary services for either government or employ personal services exceeding that authorized by law except for emergencies involving the safety of human life or the protection of property. . . .

I have heard this admonition at various times in the context of Open Source Software: if the government cannot accept “voluntary services”, then presumably it cannot allow people to volunteer to write open-source software for the government. Maybe it can’t even use open source software, since it was either written by volunteers or at least licensed for use voluntarily…?

These concerns are, of course, completely wrong, as I will endeavor to show:
Continue reading

my reverse-proxy

UPDATE: There is a followup to this post.

Various people have asked me about my reverse proxy server, which I alluded to previously.  I’ve used Apache mod_proxy, and perlbal, but now I do it with a 50-odd SLOC node.js program, which leans heavily on node-http-proxy.  It’s too ad-hoc to be worth posting to GitHub, but its possibly worth describing for any other node.js types out there.
Continue reading

The Dave and Gunnar Show

I had coffee with Gunnar last Friday, and in passing, I congratulated him on his podcast, the Dave and Gunnar Show.  I like his podcast, but in general I noted that my commute is too short to listen to podcasts, and most days I find it’s a little too distracting to listen to a podcast while working.  I have too many childcare responsibilities to listen at home.

Apparently he responded to this by promptly mentioning me and my blog in his podcast, (at the end no less) thus forcing me to listen to the whole thing.   And I note, as fabulous solutions providers, they provided advice on how to listen at 2x speed.

Thanks for the recognition, guys.

Now I’ll have to get the bluetooth adapter for my motorcycle helmet working again.