Python Programming, news on the Voidspace Python Projects and all things techie.

Woes with Chandler

emoticon:Lithium It's not my week for open source software. Rolling Eyes

I never quite know whether to be excited about Chandler or not. It's a PIM written in Python. It could be a killer application, it's just that I find it hard to get excited about a Personal Information Manager. Neutral

Anyway, I thought I'd try installing the shiny new 0.6 release as it might be useful for work. It would certainly be nice to use something Python based at work.

Chandler Failing to Run

(If you're interested in the error click on the image to see a more readable one).

It spectacularly failed to work (install... run chandler.exe as many different ways I can think of). When I have time I'll try and find out who I ought to report this to and ask for help. In the meantime if any of you know, drop me an email.

There is some good news...

It's not all bad news. It looks like Ryan Kelly has fixed PyEnchant so that it should work with Movable Python.

It turned out to be a bug in MySpell, which Enchant uses. Smile

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-13 09:48:43 | |

Categories: , ,

Waiting for OpenOffice

emoticon:beaker I'd like to help with the SPE manual. As I mentioned previously, there is a nice developer community growing around SPE.

The manual is currently maintained as an OpenOffice document. The new version of OpenOffice is very slick and makes for easy export to PDF. Unfortunately the HTML output is of dubious quality [1]. Sad

Personally I can't stand PDF unless it's for printing. Still you can't have everything.

My real problem, is that when I open the document for editing at home OpenOffice will hang for twenty minutes. Yep, I'm serious.

A bit of investigation (and some help from the SPE Documentation Mailing List) I've discovered that the manual references some pictures on the internet.

My home PC is on an intranet without an internet connection. OpenOffice waits for a timeout for each request - probably several times. I even set it to use a proxy server I have reserved these occasions. It sends a 404 for every request to avoid these kind of hangs. The proxy didn't seem to help (it took twenty minutes to open the document and I could see the requests going to the proxy, each one several seconds apart). I could find no way of telling OpenOffice not to access the internet. sigh

(Of course it's possible there is a way - and I didn't find it.)

[1]More to the point, the individual pages don't have links between them; so it's hard to navigate the manual.

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-13 09:38:39 | |


Mending Broken Links

emoticon:judge I spent a happy half hour last night fixing broken links in Voidspace (internal links).

I fixed over twenty, mainly typos in my blog and pages that I've moved. This should improve the user experience a bit - as if it could get any better. Wink

I also removed some dead (old) links from the sitemap. I didn't have time to update it with all the new pages. I'd like to get it built automagically by rest2web. It's on the list. Smile

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-13 09:38:20 | |


Movable Python Moving

emoticon:movpy Two people have bought pre-release versions of Movable Python. This is a nice start.

One of them has an interesting use case. He is at college and uses ArcView. This installs Python 2.1 as the scripting language !

He can now use Python 2.4.2 from Movable Python, without interfering with his standard installation.

It looks like the next release of ArcView (9.2) in a couple of months, will come with Python 2.4 though.

Stop Press!

There is a very flattering mention of Movable Python on the Dr Dobbs Python-URL.

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-11 09:34:50 | |

Categories: , ,

Keeping Up with the Changes

emoticon:python It's been a good couple of days for new releases, so good I can't keep up. Laughing

Stop Press!

There is also a new release of Wax 0.3.24 the GUI toolkit.

Unfortunately, PyEnchant still doesn't work with Movable Python. Sad

This is a real drag, it's possibly due to my weird XP install which has some other minor (and bizarre) problems. Ryan Kelly (the maintainer of PyEnchant) and myself are working on it. This may not be ready in time for the first release of Movable Python though.

We're still a few days of the next release of the SPE IDE, and Movable is waiting for that. There are some nice new features being added, so it's worth the wait. There is a good developer/user community growing round SPE now, which is very encouraging.

Final word on this post, the latest docutils release doesn't have much that is new for me. They've chosen to embed the stylesheet in pages by default now, which I think is weird - but it's easy to change it in your config file.

They have added a generic container directive. This allows you to group several body elements in a single container with a class. In HTML this means a div. This is very good news for rest2web as I can now style several paragraphs directly in the ReST source, without having to do raw:: html hacks. Hurrah...

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-11 08:58:21 | |

Categories: ,

Protected Page Part II

emoticon:music Ok, so Protected Page ran out of the box for me, but it might not have done for you. Razz

I forgot the executable first line :

#! /usr/bin/python -u

To get the slightly updated package, go to :

  • Download Protected Page (109k)

  • Online Example

    Example user: Username guest and password pass1.

    Example administrator: Username admin and password pass1.

    You can't edit the account details of the guest user. You'll have to create a new login if you want to play with that.

The zip contains logintools, templates and all the pythonutils modules - so it ought to (now) run out of the box.

The user I wrote this for is confused about how you link to pages protected by Protected Page. He said :

I can see the mapping :

# None is the default page
pages = {
        None: 'templates/default.html',
        'page1': 'templates/page1.html',
        'page2': 'templates/page2.html',

But none of the links seem to point to these pages. Confused

I wrote him this response, which might also be helpful to newcomers to CGI who want to extend Protected Page. It also discusses a potential security hole.

The main script is accessed by a URL like :

If the user is logged in, they haven't specified a page - so pp sends them the default page. This is the page referenced by :

None: 'templates/default.html'

So pp reads the file "templates/default.html" and sends them that. If you want them to access page1 then you specify it using "page=page1" as an argument to

The user doesn't access the pages directly, but through the CGI. To access page2 the link is :

To add extra pages, you need to add them to the mapping :

# None is the default page
pages = {
   None: 'templates/default.html',
   'page1': 'templates/page1.html',
   'page2': 'templates/page2.html',
   'page3': 'templates/page3.html'


In your pages you need to include links that look like :

<a href="/cgi-bin/>Page 3</a>

You can add as many pages as you like to that mapping. "" is just a framework - we could get it to do more processing if we wanted to. At the moment it just serves the static html pages stored in the "templates/" folder.

There is still a potential security risk. Currently users can possibly access pages directly (if they know what is going on) by accessing URLs like :


There are several ways round it.

  • Rename the templates folder or the html filenames so they can't guess them
  • Add encryption to "" so the files aren't stored as plain text
  • Set the html files in templates to executable (permissions 755). This means that if they attempt to access them directly they will get an error message

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-11 08:50:04 | |

Categories: ,


emoticon:firedrop2 I've created a new email group for Firedrop2 the Python blog client. The URL is :

This is for user support and development, but is expected to remain low traffic.

I've also nearly completed new docs, with a tutorial on installing and configuring Firedrop2. That will go online in the next couple of days, with a slightly updated release.

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-09 09:21:14 | |

Categories: , ,

Another Python Web Framework

emoticon:film I'm seriously tempted to switch my web application work to This smallish web 'framework' is much more like a library than other ones, and has already gained notoriety as the framework used to port from Lisp to Python.

The main advantage I would get is that I could (apparently) seamlessly migrate my apps. from CGI to FastCGI, mod_python, or WSGI.

My eventual goal is to use Twisted, because it is asynchronous rather than threaded. It looks like the focus of WSGI is for threaded applications. (Although I did hear rumours of the Twisted folk supporting it). I don't yet have an application in mind (one recent opportunity slipped through my fingers), so I don't have to make a decision any time now...

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-09 09:20:03 | |

Categories: ,

Picking the Losing Technology

emoticon:pen_book I come from a long line of geeks [1] adept at picking the losing technology. Rolling Eyes

One of my earlies computing memories is my Dad showing me the new printer he'd bought. This was back in the eighties for our BBC B computer (4mhz, 32k ram and played a mean game of Elite). It was a thermal printer, that my Dad assured me was the next big thing. Remember fax printers where the paper curls uncontrollably and the print fades ? Same thing...

I soon graduated to the Amiga, which was a beautiful machine. My souped up Amiga 1200, with a 68020 processor running at 20mhz kicked the butts of my friends' thousand pound [2] DX2 66mhz PCs which were the latest thing.

The Amiga had pre-emptive multitasking (back in the dawning moments of the nineties when Windows 3 was all the rage) and I had my first experience of making operating system calls from a version of Basic ! (I also did some assembly language programming on the Amiga.) It was a joy to use and to program. But where is it now ? Sad

About two or three years ago my Dad - poor old Dad, luckily he never reads this Wink - bought me a handheld computer to read books on. He chose me a Handspring Visor Prism running the nearly defunct [3] Palm operating system. I now happily use a PocketPC based XDA and (for all it's minor failings) would never return.

We never had a video player early enough, but if we had, I'm sure my Dad would have done his research and bought a Betamax.

And what of the present ? Well, my programming language of choice is Python. I find it highly expressive, powerful, with a great object model. It allows me to easily express my thoughts without having to reach for the manual too often. It can be used to program web applications, simple scripts, and full-blown desktop applications.

It is however a minority language. The user-base is dwarfed by the number of people programming in PHP, asp, and Java. Is Python just another beautiful technology doomed to fossilisation ?

Thankfully Python isn't tied to a single platform or hardware system. Ports exist for all the major programming platforms (including Windows CE). Did I mention that Python is highly cross-platform ? It also has a good number of large-but-not-quite-killer-applications. These factors mean that Python isn't about to fade away.

'Big' Python applications include :

It's also used extensively by google, and the package management (e.g. Yum) of several popular Linux distributions are written in Python.

In the last year there have been some good signs. Guido Van Rossum reported (at the 2005 PyCon) that hits to the Python website had increased by 30% over the last twelve months [4]. He has also just joined google who will pay him partly to work on Python.

Microsoft has sponsored the creation of IronPython, which might put Python in places it could never have gone before. They have recently done a beta release.

On top of this, the buzz around Ruby-On-Rails just shows that we were right all along. The excitement about creating serious web applications with dynamic languages can only be good for Python in the long run.

However there were also some not so good indicators. Ruby books are outselling Python books, whilst Python has dropped one place in the TIOBE Programming community index.

So what does the future hold ? This is ever the question of course, and no-one but no-one knows.

I'm now looking for work as a programmer, and it's unlikely that I'll find local work using Python. After a ten year break it was a fantastic re-introduction to programming, and I guess will always be my language of choice. Here's hoping that Python breaks new ground in the next decade and beyond. For once, may be the best technology win. Smile

[1]Well, me and my Dad anyway.
[2]Interesting that in ten years or more, the cost of a high-spec PC has dropped. Added to which you couldn't give away a DX2 66 these days.
[3]Pauses and waits for flames...
[4]I wonder how that compares with the overall increase of internet use over the last twelve months ?

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-07 09:58:03 | |

Categories: , , ,


Crying or Very sad Steve Holden is trying Firedrop the Blog Client. That ought to be good news, because he's a very capable guy.

Unfortunately his 'new user' experience was uniquely bad. This was mainly to do with problems installing Wax.

However, anyone else (likely to be less technically minded than Steve) is going to run into similar problems.

I'm going to re-organise the documentation, and build it with rest2web so that it can be distributed with Firedrop. This will happen soon (honestly).

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-07 09:53:21 | |

Categories: ,

Updated CV

emoticon:target I've updated my CV and provided an RTF Version for Download.

Many thanks to my Sister in Law for her substantial help in making it presentable. Smile

It was the start of December when I firmly decided to look for work as a programmer, so it hasn't taken too long. Laughing

Now begins the long (?) haul of sending my CV around, applying for jobs, attending interviews...

Like this post? Digg it or it.

Posted by Fuzzyman on 2006-01-07 09:43:22 | |

Categories: , ,

Hosted by Webfaction