Archive for June, 2013

Should Governments Specify Licence Conditions?

I have been made aware of a meme passing around Government purchasing circles to the effect that Government ought not to be dictating licence terms in the course of procurement.  This has two variants, a strong variant that Government ought not be specifying, for example, a class of licence that ought to apply to the procurement and a less strong variant to the effect that Government ought not be specifying particular licence terms. Of course, the underlying aim of this meme is that if a Government can’t dictate licence terms then it can’t require open source.

To argue these positions requires a complete lack of understanding of the role that a licence plays in an acquisition.  I will take software as an example, but any procurement involving a licence would serve as well.   When anyone “acquires” a piece of software they, primarily, acquire two things.  The first, is a copy of the software being acquired.  The second is a licence in relation to that software.  Neither is useful without the other.  A copy, even legitimately acquired, can’t be used* without a licence and a licence can’t be exercised without a copy.   However, of these two components – the licence and the copy, the licence is by far the more important because it demarcates the whole of the uses to which the copy can be put.  If your licence is good enough, you can dispense with the provision of a copy because you can acquire the copy from elsewhere.   The acquisition of the licence, and the terms of the licence are the greater part of the substance of the procurement.

To take a practical example, if I were to buy a copy of Office from Microsoft I can choose from Office Home and Student 2013 or Office Home and Business 2013.   Microsoft provides a comparison chart which discloses that the main difference between these two packages is that the first can only be used for “Home Use” while the second can be used for “Home or Business Use”.  Now, the purpose for which I might use Microsoft Office is not a function of the copy of the software I acquire.  It is wholly derived from the licence terms which apply to that copy.  To argue that the Government is not able to specify the characteristics of a licence is to literally prohibit Government from discriminating between a licence which permits only home use (which would be useless to the Government) and one which permits use in the course of business.

For a public servant to even entertain the possibility of a broad based limitation on specifying licence characteristics would be to demonstrate a total failure to understand the subject matter.  The licence is the substance of any software acquisition.  To not be able to specify licence characteristics is equivalent to not being able to include technical specifications in any other sort of acquisition.  It is a nonsense.

The only time where specifying a licence ought to be prohibited is where the licence terms effect an exclusionary dealing.  So, if the licence terms permitted use only by persons who had signed up for some form of online service being offered by a third party, that would be anticompetitive because it would require bidder’s  customers to be funneled through to the a third party.  Open source licences do not have these dependencies.

* technically, some uses may be permitted if they do not involve an infringement.  However, the scope of things which count as an infringement these days is so broad that in any practical scenario the use of software will involve performing an activity which would, in the absence of a licence, infringe copyright.

Backing up SMS on HTC Desire (Android)

My HTC Desire is getting sluggish under the weight of all those smses I’ve sent and received. I’d like to back them up and delete them from the phone.

The easiest thing (and, actually, the thing I most want to do) is just take a copy of the sms database.  However:

* you can’t just copy the database which holds these things because … well for some reason they’ve decided to lock owners out of their own phone (if the phone is rooted then this can be done);

* all of the SMS back up utilities I’ve looked at have something wrong with them  – they seem mainly to be designed to backup and restore to a given device, not store an archive of the smses;

* the Desire itself comes with a backup utility … which apparently encrypts the backup file so you can’t read it, but even still it’s no good to me because apparently Telstra removed it before selling me the phone.  FFS

It seems like I need to write my own backup utility to replicate the sms data.

<sigh> (@15:53)

edit (16:15): Apparently reading all sms with scripting layer for Android takes about 6 lines of code.   Now I just need to find a way to query  the contacts to match up the names to the numbers.

edit (16:40): basic code is this (after another 30 mins or so, including updating to sl4a etc):

import android
import cPickle as pickle

droid = android.Android()

print “Getting messages”
messages = droid.smsGetMessages(False,’inbox’).result

my_uri= ‘content://’
print “Trying droid.queryContent”
contacts = droid.queryContent(my_uri,None,None,None,None).result

fn =”contacts.pickle”
f = open(fn,’w’)

fn = “msgs.pickle”
f = open(fn,’w’)

But there’s apparently a bug in my version which returns integers rather than actual email addresses etc

All up, including time refamiliarising myself with adb, installing sl4a and python for android this took about 90 minutes.  I would have spent at least this amount of time trawling through useless apps on (the, now, particularly awful) Google Play. Once I marry up these data sets and verify them a little I will delete my SMSs and get on with things.

Of course, after all that I find (by serendipity) that someone has already done it.

Google is increasingly becoming useless as a search engine

Update (next day)

HTC Desire seems unable to delete an entire thread or at least one with thousands of SMSs.  I suspect that it is something to do with the suspend timing.  Since its not finishing the whole deletion, none of the SMSs get deleted.

Anyway, I am doing that manually as well – it is quite slow – deleting 100 took 300ish seconds – 3 seconds each!  Java would presumably be faster? The rate per delete goes down with the number of messages in the database (to about 1 second per delete).  Presumably this release of Android does something dumb like compacts the database after each delete?

So, 24 hours later and I am 5000 ish SMSs lighter.

Blueant T1 +1

Found my Blueant T1 bluetooth headset in the dryer after having been through the washing machine.  Let it sit for a day to dry out, seems to be working ok.

+1 Blueant!

Blog Stats

  • 224,042 hits

OSWALD Newsletter

If you would like to receive OSWALD, a weekly open source news digest please send an email to oswald (with the subject "subscribe") at