In-house Open Source

Surely one of the most common reasons for creating a piece of open source software is … ’cause you need it at work.

I’ve never been very comfortable with that — when I’ve had to fix/patch OpenSource software for work, I’ve tended to just sort of do it and hand it back.

But what is the relationship between an employer-user and an employee-vendor when the software is Open Source. The company is paying you to write software which is copyright by the company.

I’m thinking about using DBA within BE. I’ll have to do some work before it’s properly ready for that. But that’s OK. Gives me a goal.

PlayNet have OKed that, but I’d like to go into Jim’s office with a piece of paper bearing my scrawl that says “Hey, I’m not going to embrace & destroy; I’m not going to put bits of BE into my project and then post them on the intratubes; and I’m not going to see a chance to make money out of it and change the licensing on you…”

Any of you ever used any kind of boiler-plate “I’d like to share this bit of code so that from time to time someone else can fix my shit?” – erm – I mean open-source-under-employ-contract license?

“dba” 0.3.0


Found a problem with the way I was testing logical statements (rs[0] != NULL) which lead to finding that some of the tests weren’t being, well, tested. After fixing that, I found the SQLite interface was reading one too many rows.

Also turned on -Wall and -Werror for the non-MSVC builds, to catch any errors I was missing – I found a few minor casting problems which I also fixed. This version is the first “healthy” version. It also seems to compile and work quite happily under MSVC.

– Oliver

“dba” 0.2.1

Nothing special, added “install” targets to the CMake-generated Makefiles.


HTMLized source

Well, harumph, I figured one of you would have taken a look at my code and poked glaring holes in it – or the concept :) For those of you who don’t like bz2 files, I also put a zip up and I also put the source up along with htlmified versions of each source file (http://www.kfs.org/~oliver/dba/source/).

Not going to get chance to do anything else with it this week, somewhere between 1.30 and here one of the hosts in 1.31 has gotten badly out of shape, so I’m going to have to look at memory organization and instruction ordering in some rather ancient code. *Sigh*. I did just find 100Mb of memory that was being allocated for defunct legacy reasons…

“dba” v0.2


Version 0.2  2010/03/01 [ Status:: MySQL: working; SQLite: working ]
  1. Completed a number of incomplete functions.
  2. Brought the SQLite interface up to working status.
  3. Some convenience functions (variadic constructors).
  4. Fixed numerous bugs.
  5. Significantly bolstered “main.cpp”

“DBA” v0.1

Work-in-progress version of my Database Abstraction project.