Thank You, Generous Benefactor

I tweeted about this on July 21, but I scored an Apache-licensed accounting package for inclusion in Ancho (or any Python project), and the tale deserves to be told in longer form.

  Photo Credit  via Flickr / Creative Commons

Photo Credit via Flickr / Creative Commons

This story starts out in 2008, when I attended PyCon in Chicago.  One of the vendors who had a booth in the expo hall was FiveDash, an Australian company who was working on a Python-based accounting system.  I expressed some interest and we corresponded briefly after that, mostly about the incredible complexity of implementing sales tax calculations for all the various jurisdictions in the United States.  That conversation died down, and that was that... until 2013.

A few months ago, I realized that in order to implement some of my use cases for Ancho, I was going to need a double-entry general ledger accounting system that I could embed inside my own project, or at least call out to through some reasonable API.  I took a look at what was out there in the open source world.  Generally, what I found was that most open source accounting systems are either:

  • Too tightly integrated with an ERP package, e.g. OpenERP, requiring this huge complicated install to get the tiny amount of functionality that I need; or
  • Too tightly integrated with their view layer, such that the accounting component can't be used via an API on a "headless" basis.

I remembered the FiveDash project, which hadn't come up in any of my searching, so I looked for it explicitly by name.  As it turns out, the company behind the accounting software has been closed.  The new owners of fivedash.com are selling software-defined radios.  The only thing I could find about the accounting package was their Launchpad repository.

The source code is in decent shape, and it had at least some of the functions I needed, even if it was coupled fairly tightly to web2py and PostgreSQL.  The biggest problem was the license... it was released under version 3 of the GNU General Public License, so if I created a derivative work and integrated it into Ancho, I would run the risk of "infecting" Ancho with the GPL.

Please note that I don't have anything against the GPL.  It's good for certain projects.  I've met Richard Stallman -- once when he spoke at Northwestern, and possibly another time on the Tremont side of Boston Common.  (Although that may have been a hobo. It was hard to tell.)   I ate some pizza with Bradley Kuhn at a meeting in Chicago.  They are nice people and deserving of many thanks.  However, my observation has been that software projects which are non-academic, somewhat esoteric, and potentially of commercial use tend to get broader adoption if they use BSD or Apache style licensing.  So that is what I'd planned to use for Ancho.

So with nothing to lose, I emailed the project maintainer, through Launchpad, at his last known address.  Somewhat to my surprise, I got an email back a couple of days later indicating that the project had been abandoned by the copyright holder.  They gave me commit access to the repository and gave me permission to change the licensing to permit usage under either the GPL or the Apache License version 2.0.

So, now there is an Apache-licensed accounting package for Python, just waiting for adaptation for my (or anyone else's) use.  Just because I asked.  Pretty sweet.

The next job is to dig into the source code and see how much work it's going to be to:

  • Separate the underlying accounting system from the user interface layer
  • (Maybe) modify the system so it can be used with SQLite as the data store, to make it a little more lightweight.

If anybody's interested in helping, please contact me via Twitter or email at tbecker@fortpedro.com.