Subversion
Have been looking at the Subversion 1.1 release candidate, and it looks pretty good. This could be the point where more people start to seriously look at using Subversion as a CVS replacement.
This would be largely due to the new fsfs repository backend. This new backend doesn't use berkeley db, and shouldn't ever wedge like the BDB backend does occasionally. Furthermore, you don't need write access to the repository to perform read only operations. This should make it a lot easier to set up systems where you have multiple ways of accessing the repository (eg. svnserve/ssh for write access, DAV and viewcvs for read access).
20 May 2004
Mail Viruses
The barrage of mail viruses and their side effects is getting quite annoying. In the past week, I've had a gnome.org mailing list subscriptions disabled twice. After looking at the mailing list archive, it was pretty obvious why.
The mail server that serves my account is set up to reject windows executables a few other viruses at SMTP delivery time (so it isn't responsible for generating bounces). Unfortunately, a number of viruses got through to the mailing lists and were subsequently rejected before reaching my account. After a certain number of bounces of this type, mailman helpfully disables delivery.
nxml-mode
Started playing with nxml-mode, which makes editing XML much nicer in emacs (psgml-1.3 does an okay job, but the indenter and tag closer sometimes get confused by empty elements). There is a nice article about nxml-mode on xmlhack which gives an introduction to the mode.
The first thing that struck me about nxml in comparison to psgml was the
lack of syntax highlighting. It turned out that the reason for this was
that colours were only specified for the light background case, and I
was using a dark background. After setting the colours appropriately
(customise faces matching the regexp ^nxml-
), I could see that the
highlighting was a lot better than what psgml did.
Greg Egan on Asylum Seekers
An interesting essay on asylum seekers by Greg Egan (a local Science Fiction author). If you are interested in the subject, Dark Victory is also worth reading.
ViewCVS
Made a few more changes to the Gnome viewcvs. Pretty much all of the original ugly colour scheme is gone now, and I got it to pretty print some more files with gnome specific file extensions.
We are maintaining the modifications in CVS using the standard vendor
branch/main branch setup. Since the cvs import
command is one that
people screw up the most, I wrote some scripts to help with exporting
viewcvs from upstream CVS and then importing it into our CVS.
14 April 2004
After the breakin at the gnome.org web server, the CVS server were moved over to the new server HP donated. However, the LXR and Bonsai tools weren't considered as high a priority, so have not been restored yet.
Since it was easier to set up than either LXR or Bonsai, I set up ViewCVS (with jdub's help), so we now have online repository browsing again. It doesn't provide all the features found in the other packages, so it'll be good to get them set up again too though.
jhbuild
Made some changes to the way "jhbuild bootstrap
" works. Whereas
previously bootstrap
would check to see if each required build tool
was installed by the distro and only build the tools that were missing,
it now builds all the tools.
If you wish to use the build tools supplied by your distro, it is now
recommended that you don't run bootstrap
. To perform the "check
that required tools are installed" job that bootstrap
used to do, you
can instead run the "jhbuild sanitycheck
" command, which will do
these checks and report any errors. The sanitycheck
command also
checks for other configuration problems as well, such as whether the all
the different automake versions will be able to find the libtool macros.
IPP
Did a little more hacking on my IPP client library, and wrote a small PyGTK program that lets you do simple management tasks (view all print queues/classes, view queued and completed jobs for printers, stop and start print queues, etc).
If you want to try it out, grab ipplib.py and
printerlist.py. Put them in the same directory and
run "python printerlist.py
". Seems to work pretty well for less
than a thousand lines of code.
IPP
Out of curiosity, I decided to write a little IPP client library in Python. An in-progress version can be found here.
In less than 500 lines of Python, I have an IPP message encoder/decoder, and some higher level classes to perform a few operations on printers and jobs. I've been able to successfully talk to the following IPP servers:
- CUPS (I've also got a little code to perform some of the CUPS proprietary operations).
- an HP LaserJet 5100 and a 2300 -- both with JetDirect 615n (J6057A) cards.
- a Lexmark Optra C710.
The following didn't want to talk to me:
23 February 2004
louie: doesn't the fact that the introduction of a third credible candidate causes problems is in fact a problem in itself?
There are vote counting schemes in use that don't penalise similar candidates, such as the single transferable vote system used in Australia to elect MPs. Rather than splitting the vote, the votes for the least popular candidate's votes get transferred to their second preference. This process gets repeated til there is a candidate with a clear majority. There is something fundamentally wrong with a system where a minor candidate does more harm for their cause than good.
17 February 2004
Weather
It has been really hot and humid here for the past few days. While it is not uncommon to have hot weather in Perth, high humidity is quite unusual. It seems to be due to the floods up in the north of the state (they had a report on the news about an 18 person town that had been without a pub for 3 days).
There was a big thunder storm last night, so hopefully things will get back to normal. Unfortunately, it is still quite hot (9:20am at the moment, and its 33°C with 62% relative humidity) and there has been an order preventing people from using air conditioners due to supply problems at the power company.
12 February 2004
jhbuild
Had a pretty good response to the jhbuild changes. There was a number of problems I didn't catch during my testing (more that I would have liked). However, I think I caught the last few ones with pychecker.
I suppose the next thing to do is to help the fd.org guys set things up so they can manage their module sets from their own CVS tree. That will make it easier to recommend as a build tool.
jhbuild
Checked in a fairly big set of modifications to jhbuild, designed to
make it a bit more modular and the code less messy. I had been working
on these changes for a while now, and had been keeping track of them on
the jhbuild-ng
branch.
Here are a few of the main changes:
- Code reorganised into a package
-
The code has been reorganised into a Python package. Unfortunately this means that the old shell script used to start jhbuild won't work. Rerunning "make install" will fix this though. This will make it easier to extend things in the future.
17 December 2003
Callum: the slowness of modular DocBook XSLT stylesheets is in the chunking code, as I found out a while ago. You will find that if you turn off chunking (ie. produce one huge output file rather than many smaller files), the processing time will be cut in half. Interestingly, the older DSSSL stylesheets showed the opposite behaviour.
One thing that might be interesting would be to try porting gtk-doc over to using Shaun McCance's new XSLT stylesheets (there are more details on his website). If these are suitable, they could give a significant boost to building API and user docs.
5 November 2003
Mark: the support for building the freedesktop.org X server hasn't been there for a while. It was just added yesterday by Johan Dahlin.
If anyone else is interested in building some of the stuff in freedesktop.org CVS using jhbuild, I wrote some instructions and put them in the wiki.
Atom
Have been playing round with Atom, which looks like a nicer form of RSS. Assuming your content is already in XHTML, it looks a lot easier to generate an Atom file compared to an RSS file, because the content can be embedded directly, rather than needing to be escaped as character data. Similarly, an Atom file is easier to process using standard XML tools compared to RSS because the document only needs to be parsed once to get at the content (which is probably what you were after anyway).
22 October 2003
Laptop
I started running out of space on my laptop, so decided it would be easier to buy a new hard disk rather than clean things up (after all, I could get a 40GB drive for about AU$200, which would give me more than 3 times as much storage, and had almost identical power requirements). If only things were that easy ...
After backing everything up, the first problem was taking the old hard
disk out of the machine. The
m300
is quite a nice machine, as you only need to undo one screw to remove
the hard drive mounting. Getting the hard drive out of the mounting was
a bit more of a problem as there were two torx screws holding the drive
in. Moreover, I didn't have access to a small enough torx driver :(
.
Luckily the screw heads were raised enough that it was possible to undo
them using some pliers without damaging anything.
Python
Been reading over Ulrich Drepper's paper on how to write shared
libraries, and it struck
me that use of the PyArg_ParseTupleAndKeywords()
function will result
in a lot of relocations that can't be avoided.
I did a few tests using some dummy extension modules that contained a number of functions. I tried varying the number of functions, number of arguments for each function, and whether keyword arguments were supported.
I found that in the PyArg_ParseTuple()
case, the number of relocations
was proportional to the number of functions (as expected -- a few
relocations for each entry in the PyMethodDef
array. For the
PyArg_ParseTupleAndKeywords()
case, there was also one relocation for
each argument listed in the keyword list array, which dominated as the
number of arguments went up.
1 October 2003
They accepted my abstract submission for LCA in January! The lineup is
of invited speakers looks really good, so everyone should register.
Hopefully they can outdo the conference we put on in Perth :)
.
.au Politics
A number of changes to the federal government cabinet this week, because Richard Alston (aka World's Biggest Luddite) is resigning as Minister for Communications, Information Technology and the Arts. He is getting replaced by the current Attorney-General Daryl Williams, so it will be interesting to see how that plays out.
Cairo
Did some more hacking on my Python bindings for Cairo. They are now in the new freedesktop.org CVS server.
I added a cairo.gtk.set_target_drawable()
function that sets a Cairo
context to draw on an arbitrary GdkDrawable, taking into account the
temporary pixmaps used by GTK for its double buffering and the expanded
virtual 32-bit coordinate space (based on some of Carl's code in
grrobots).
I ported a few of the Cairo demos to Python/GTK for testing purposes, and they all seem to be working fairly well. The exception is the knockout demo, which doesn't seem to be redrawing properly (a bad interaction between Cairo and GTK's double buffering, I guess).
15 September 2003
PyCairo
Been discussing the bindings on the Cairo mailing list. I'll probably be merging my bindings with Maarten's ones.
I also brought up a few changes that would make it easier to write robust language bindings. Since the API is fairly new, the changes will probably go in.
PyGTK
LWN covered the pygtk 2.0.0 release. 2.0.0 is also in RawHide too, so it looks like it should be a usable baseline in the near future.
10 September 2003
Cairo
Started on some Cairo bindings for Python. At the moment, they are fairly immature, but shouldn't require too much more work before I can test them.
Differing a bit from the C API, I've made the cairo_matrix_t
type
immutable from Python. That is, all the operations that modify a
cairo_matrix_t have been wrapped in such a way that they return a new
matrix rather than modifying the old one.
I also set things up so that cairo_status()
calls are made
automatically after operations, and an exception rasied if appropriate.
8 September 2003
There was a really weird interview on Lateline last friday. They now have the transcript. Christopher Pyne really reminded me of Dexter Pinion from Backberner.
Looks like the government put up a website for one of the weirdest community service announcement I've seen in a while. I wonder if they intended to make it as funny as it seemed?
5 September 2003
PyGTK
A story was posted on FootNotes about the 2.0 release. A number of nice comments. The 2.0.0 package has hit Mandrake cooker, and a Fink package is apparently in the works.
I've started work on adding support for the GTK 2.2 APIs, which
shouldn't take very long at all. I've updated the .defs
files, which
covers most of the APIs. There are some others that will require a
little more work.