8 April 2005

  • Post author:
  • Post category:Uncategorized

Tracing Python Programs

I was asked recently whether there was an equivalent of sh -x for Python (ie. print out each statement before it is run), to help with debugging a script. It turns out that there is a module in the Python standard library to do so, but it isn’t listed in the standard library reference for some reason.

To use it, simply run the program like this:

/usr/lib/python2.4/trace.py -t program.py

This’ll print out the filename, line number and contents of that line before executing the code. If you want to skip the output for the standard library (ie. only show statements from your own code), simply pass --ignore-dir=/usr/lib/python2.4 (or similar) as an option.


So the free (no-cost) version of BitKeeper has been discontinued, leaving just the commercial version and the limited open source version (which is essentially limited to checking out the head revision of a particular tree).

It seems a bit weird that one of the stated reasons for discontinuing the free version is a dispute with OSDL, where some employees were using BitKeeper (eg. Linus), while another unrelated employee was reverse engineering it as a personal project. This is a bit surprising, since it seems that a scenario almost the same as this was brought up last year and Larry said his concern was a licensed BitKeeper user helping someone else reverse engineer the code. Of course, there are probably other issues involved here.

This does bring up an interesting issue of what users of the free version are going to do with their repositories. While they can use the open source editing to easily check out the head revision and continue development, it isn’t clear that it can be used to extract all the information stored in a repository. And since BitMover has refused to sell the commercial version to some people, it is conceivable that some projects could find themselves unable to access their revision history with BitKeeper.

I doubt this situation is acceptable to many users (they are using a version control system, so probably want to keep their revision history), so there will probably be some programs written to extract all the information from a BitKeeper repository. Ironically, this could add some value to BitKeeper for BitMover’s commercial customers — insurance for their data in case BitMover disappears or something else makes BitKeeper unusable to them.


If you are coming to Australia for first time, make sure you pack your camel suit and other valuable in your cabin luggage, rather than the checked luggage. It will save you trouble in the long run.

Fedora EULA

roozbeh: the Fedora EULA probably isn’t a GPL violation (I’m sure Red Hat has legal advice that it is okay). Section 1 says “This agreement does not limit User’s rights under, or grant User rights that supersede, the license terms of any particular component”. So the EULA explicitly says that it doesn’t limit any rights you received under the GPL. Section 2 goes on to say that your rights to copy or modify individual components of the distro are covered by the respective license.

What the EULA does cover is the particular compilation of the individual components making up the distribution. This is similar to the way a book publisher can claim copyright on a particular selection/ordering of poems that are in the public domain — while you can copy the individual poems, it would be a violation to copy the anthology as a whole.

The export controls section is just a restatement of the U.S. export regulations for cryptography, so wouldn’t affect the non cryptographic portions. I’m not sure how this section would interact with the first section in the case of GPL’d/LGPL’d cryptography software though.

14 March 2005

Eugenia’s Article

I find it amusing how Eugenia selectively quotes mailing list posts to create an article about how Gnome doesn’t care about what users want, and then in a follow-up asks that people don’t take her article out of context.

New Gettext

While looking at the new version of gettext, I noticed the libgettextpo library. Starting with the new 0.14.2 release, this library now includes a .po file writer as well as a parser. I wonder if this could be useful for tools like intltool.

One of the other things I noticed in the new release was at the end of the NEWS file entry for the release:

* Security fixes.

It gives no indication of what those fixes are though, so I don’t know how serious the problem is …

Tim Tams

There are three new varieties of Tim Tams biscuits that came out recently. The weirdest of the three is chocolate and chilli. It tastes like a normal dark chocolate Tim Tam, but after you’ve finished it leaves a chilli aftertaste.

8 March 2005

  • Post author:
  • Post category:Uncategorized

South Africa

I put up my photos from the trip to Cape Town online. Towards the end there are some photos I took while hiking up Table Mountain.

Building Gnome

It looks like with the Gnome 2.10 release, some packages fail to build from CVS if you are using a version of libtool older than 1.5.12. This is due to the way libtool verifies the version strings — in versions prior to 1.5.12, the check to make sure that the interface version numbers were non negative used a shell pattern that only matched numbers up to 3 digits long.

This might have seemd fine when it was coded, since how many libraries actually end up with more than 999 versions without breaking compatibility? However, many Gnome libraries are using noncontiguous interface version numbers so that releases on the stable branch can be assigned numbers guaranteed to be less than the versions released on HEAD.

So many 2.X libraries use X*100 as a base for the interface version number, which means with 2.10 we reach 1000 and things break. With libtool 1.5.12 and newer, the shell patterns have been modified to handle numbers up to 5 digits long, so it shouldn’t cause a problem til we are ready to release Gnome 2.1000 (which will be due for release in about 250 years if the current schedule is maintained).

Mathematics Input

msevior: have you looked at the OpenOffice equation editor? It provides a fairly similar interface to what you’ve put together, with a few differences:

  • In OpenOffice, the equation entry window is shown as a pane below the document in the main window.
  • The OpenOffice equation entry syntax seems to be “TeX without the backslashes”, which is a little less intimidating for new users (although if you already know TeX, it means that there is more to learn).
  • Editing isn’t completely one way. If you click on the parts of the equation in the top pane, it will move the cursor to the corresponding position in the bottom pane. I don’t know how easy this would be with itex2mml, since I guess the transformation is one-way.

I agree with you that this style of input is a lot more usable than the Microsoft equation editor for people who understand Mathematics and need to enter a lot of it. The MS editor seems to be optimised for transcribing an equation from some other source, where you know exactly what it will look like from the start. In contrast, the text interface makes it as easy to rearrange an equation as it is to rearrange the rest of the text in the document.

South Africa

From the conditions of residence at the place I’m staying:

5. Where appropriate the masculine gender shall include the feminine gender and vice versa and the singular shall include the plural.