Mon, 24 Feb 2003
Resurrect Firefly!

Not that the show has actually aired here ... ehem ... but it really is amazing. Joss Whedon is brilliant. He's created a show that has only one thing in common with Buffy/Angel: it's a show at the pinnacle of storytelling on television. Interesting stories, genuinely new characters, shades of grey, immaculate production, ...

Australian audiences (those without broadband internet) probably will never see the show, and that's a crying shame. I really, really hope that some intelligent TV exec picks Firefly up and resurrects its production. We need more shows like it - instead of the "CSI: Yet Another Spinoff", or "Law & Order: More Of The Same" franchise crap.

A quote from Fox Television Entertainment Chairman Sandy Grushow:

"To put new shows on for two weeks and then take them off for four weeks for baseball is not a particularly effective launch strategy."

sigh...

Favourite episode so far (we're up to #5) is "Out of gas", with "Jaynestown" a close second :)

path: /stuff | permanent link |
Wed, 19 Feb 2003
PyPI lives!

The official home of PyPI is now alive (ready for the 2.3a2 release of Python expected tomorrow some time). The register.py command (download or use the latest python CVS) now points to that address. Big thanks to AMK for supporting the effort during development and testing!

path: /python | permanent link |
Mon, 17 Feb 2003
Our leader speaks out about the Peace Rally

I'm sure I speak for a lot (or quite possibly all) of the other Australians participating in Friday's peaceful Peace Rally when I say I'm outraged at being referred to as part of "the mob".

It says something about how out of touch with the Australian public he is, when he refers to us as a mob. I'm betting he's really disappointed there were no arrests amongst the 150,000 of us rallying in Melbourne. Some day soon, he'll either remember or be reminded (via an election result) that he's a public servant. Then again, he's probably going to retire before the next election, so he probably just doesn't care.

path: /stuff | permanent link |
Sat, 15 Feb 2003
Photos up...

I've put up some of my photos from the rally. I also added a couple of new shots to the random shots of Melbourne page. While poking around, I also stumbled across a couple of unfinished pages.

These photos made it onto the web because I just found out that the closest photo lab to me has a neg scanner, and will scan a film they're processing for only $6 (it costs much more if the film is cut up - $1 per image!). This, as far as I'm concerned, is a bargain, since a decent digital camera or my own neg scanner would cost between $1500 to $2000. Also encouraging is that the owner of the store was happy to chat with me for some time about neg scanning technologies, eBay, digital vs. analog, ... I'm happy :)

path: /stuff | permanent link |
Fri, 14 Feb 2003
Images from the peace rally

Courtesy of The Age.

path: /stuff | permanent link |
Wow, I've never seen that number of people in Melbourne

I've lived in Melbourne all my life. I attended the Swanston St. party where the city paved the street with grass. I've been to more festivals than I can remember.

I've never seen the entire length of Swanston St crammed with people like I did today. They were all there to shout emphatically "No War!".

Early coverage (no photos - I have some in my camera but they're a long way off being digital :) at the ABC, News.com.au and The Age.

An incredibly diverse range of Melbournians were there - school children, their teachers, Muslims, Jews, Kurds, Greeks, Italians, Iraqis, Palestinians, quilters, ... and of course those of us with no particular group affiliation - just a common desire for peace.

It was actually quite funny to watch the organisers try to deal with us having to march down a street that was already filled with people :) They'd anticipited around a crowd of around 75,000 and ended up with easily more than double that.

path: /stuff | permanent link |
Thu, 13 Feb 2003
Testing Python code

I've spent a while over the last few weeks tinkering with the cgi form handling code in Roundup. Early on I wrote unit tests - I knew the code was going to get complex, and I wanted to ensure correctness. More recently, that complexity has arrived and I had a further wish to make sure I was exercising every line of the form handling code, including the error branches. In comes pytrace.

Anthony mentioned Skip's Python Statement Coverage Testing tool, pytrace (or, more accurately, "trace.py"), a while ago.

It took me a while to get going. The biggest reason is that it doesn't work with Python 2.1. Python 2.2 is fine though. Once I had run it, I found that there were in fact some branches of the code I wasn't testing in the unit tests. Now I know, and I can remedy the situation.

path: /python | permanent link |
Sob sob sob

The PyCon schedule has started taking shape. Another year with what looks like an awesome conference and I'm not going to be able to go. I really hope that everyone who does go has an amazing time!

path: /python | permanent link |
... home of the brave

Yeah, right. Drugs used to make inmate sane enough to die.

path: /stuff | permanent link |
Free software's next hurdle: the download URL

Over at techdirt, Mike says:

It ain't easy being free, these days. While it used to be simple to create a piece of software and put it up on any one of a number of download sites for "free software", the world is now changing (and charging). Plenty of download sites are now charging fees to either software developers or to downloaders. This makes it a tougher proposition if you want to give away free software.

He goes on to propose that P2P systems (presumably such as Freenet or the newer The Circle) may provide a solution to this problem.

This is an interesting issue that the the Python "CPAN" effort that I'm involved in (PyPI) has started looking into recently. It's easy enough to add a metadata field to the package index called "download URL", but there's all sorts of problems associated with this:

  1. The URL linked to "goes away" - the provider goes out of business, decides to no longer support the software, ...
  2. There is no single URL - see sourceforge and its web of mirrors (yes, this can be solved with a list of URLs, but then that list must be maintained and is subject to the problems of step 1)

There's probably other issues we haven't thought about yet. Wouldn't it be nice if there was a well-supported (ie. widely adopted) P2P system already out there?

path: /stuff | permanent link |
Wed, 12 Feb 2003
KDE coolness continues

KDE 3.1 comes with a new kioslave called "fish". This implements a file transfer protocol over ssh and scp. Because it's a kioslave, it can be used pretty much anywhere that KDE programs interact with "filesystems".

The most obvious application is Konqueror, where I can type "fish://richard@machine" into the URL bar and I then browse files and directories at the remote machine, all over ssh/scp. The kioslaves are also used in things like the KDE file dialog. When I'm at work, I can choose to load or save files to my home machine by simply entering a fish:// path. I don't need to type that in any more, because of course the KDE file dialog also includes bookmarks.

See also my previous entry about the audiocd kioslave. Note that back then I didn't make the connection about them being useful in all KDE-aware apps. That means that I could, if I was so inclined, compose an email to Rachel and attach an ogg-vorbis music track from a CD I'd just bought - which would rip it then and there - so she could hear it before I got home in the evening. That's pretty goddamn neat :)

path: /stuff | permanent link |
Tue, 11 Feb 2003
The Wimps of War

In the NYT, Paul Krugman looks at Europe's unwillingness to blindly follow the US.

In the days ahead, as the diplomatic confrontation between the Bush administration and the Europeans escalates, remember this: Viewed from the outside, Mr. Bush's America does not look like a regime whose promises you can trust.

I have no idea how Americans can trust the Bush administration (it probably has a lot to do with CNN), but outside of the USA, from first-hand experience, there's almost no trust (which again, probably has a lot to do with the absence of CNN). Almost everything the administration says and does is met with large amounts of scepticism.

story via Chris Petrilli

path: /stuff | permanent link |
Mon, 10 Feb 2003
It's all about discussion

Sheila King just posted an excellent list of references and summary about quoting of text in email messages (when you respond to a posting or email using a "reply" command and include some text from the original message):

Here are several references which explain why the inline quoting is preferable. It really boils down to actual discussions taking place, in which many people may be participating. Without properly nesting the quoted material, it can be extremely difficult for someone reading the post later to figure out the attributions and their source.
  1. A description of the traditionally accepted quoting style in newsgroup postings.
  2. Mailing and Posting Etiquette section entitled Post In-line for Context.
  3. Netiquette and practical hints with examples.
  4. The advantages of Usenet's quoting conventions.
  5. Bottom vs. top posting and quotation style on Usenet.

I've been wanting a list of references like this for a while - I just never got around to compiling it. Thanks Sheila :)

path: /stuff | permanent link |
Fri, 07 Feb 2003
Rally for Peace

A new poll indicates that

Only 6 per cent of Australians are prepared to send Australian troops to war against Iraq without United Nations backing, an exclusive national Age poll has found.
In the AC Nielsen AgePoll - a blow to the Federal Government's stand on the war with the United States - 62 per cent of respondents said Australia should be involved in a conflict only if approved by the UN.
One in three believed war against Iraq was not acceptable under any circumstances.
.
.
"The government obviously doesn't disregard community attitude," he [Defence Minister Robert Hill] said.

That's good, since there's going to be a rally next Friday, as a part of an international weekend of events opposing the US war on Iraq. Thanks to Rachel for reminding me.

path: /stuff | permanent link |
Thu, 06 Feb 2003
Warnings, a final note

I had to wrap the warning suppression code in a test for the existence of FutureWarning because that warning doesn't exist in Python before 2.3. Gah.

path: /python | permanent link |
Turning Python warnings off

Aha! The warnings module provides a method of filtering out the nasty new warnings :)

Be warned though, the module documentation lies (ok, that's possibly a little strong ;) and the "message" and "module" arguments to filterwarnings() aren't actually a "compiled regular expression" as it states, but a compileable string. I ended up inserting this code just before I import portalocker:

import warnings
warnings.filterwarnings("ignore",
    r'hex/oct constants > sys\.maxint .*', FutureWarning,
    'portalocker', 0)

And now my unit tests are quiet, except for the calendar problem...

path: /python | permanent link |
Roundup running under Python 2.3a1

Roundup produces some strange and new output when run under Python 2.3a1. All but one of the unit tests pass. The failure results from a change in the way the calendar module is implemented (it's now mostly implemented by the new datetime module). This means that the following now fails:

>>> calendar.timegm((2003,2,30,0,0,0,0,0,0))
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.3/calendar.py", line 216, in timegm
    days = datetime.date(year, month, day).toordinal() - _EPOCH_ORD
ValueError: day is out of range for month

This is a shame. I'm not sure what will happen - I've posted a message to the python list to ask what the options are.

The second bit of fun was that my code has the literal 0xffff0000 in it (as part of the portalocker). This now generates a FutureWarning, which I've yet to discover how to turn off. I may resort to a silliness such as 0xffff000 << 8 to get around it, I don't know.

Finally, I have a couple of warnings about assigning to None, which is to become a keyword in some future Python version, and thus will be unassignable. The couple of places that I have that assignment were in the Zope Page Templates code (as hackish optimisations). This was an easy fix :)

path: /python | permanent link |
Tue, 04 Feb 2003
The aggregator formerly known as pyblagg: spycyroll

Babu has created a sourceforge project for the python rss aggregator, spycyroll. Whee! Another project to suck up my inexhaustible spare time <wink>.

path: /stuff | permanent link |
Mon, 03 Feb 2003
Python versions of WWW:Mechanize

Simon Willison wants a Python version of Perl's WWW::Mechanize. I believe I've already written it. It appears in the form of two projects I've used to test the eKit website:

  1. The more recent web performance tester called PyWebPerf. PyWebPerf is a performance measuring tool written in Python which simulates a web browser fetching a page (handles cookies, multiple threads, image and css download). Command-line and cgi interfaces are provided. I wrote this as a replacement for apachebench so I could have my testing behave more like a web browser.
  2. The earlier web unit testing framework.

The code (and API) is designed to let your script look like a regular web browser. Recently I used a slightly modified version of PyWebPerf to do the following:

    fetcher = WebFetcher()
    login = fetcher.fetch('https://www.xxxxxxxx.com/')
    response = login.postForm(0, login.POST, {'UserID': 'xxxxxxx',
        'Password': 'xxxxxxxx'})
    r2 = response.fetch('/account/msg_status.asp',
        {'FromDate': '1/Jan/2003', 'ToDate': '3/Feb/2003',
        'MsgStatus': 'Failed', 'NumRec': '20', 'GenerateCSV': 'blah'})
    r3 = r2.fetch('/account/preview/xxxxxxx.csv')
    print r3.body

Note that each successive fetch uses the previous fetch result object - thus carrying over any cookies sent back from the server. The WebFetcher code can be (and indeed has been in the above application) trivially changed to turn off the automatic image/css loading and timing marks.

Aside: yes, this is a real example of code I have to use to automatically get failure reports from one of our service providers. Yecch.

path: /python | permanent link |
No Indie movies on DVD for me...

Sadly I don't live in the U.S.A, so I don't qualify for Film Movement membership. They only ship to the U.S. :(

path: /stuff | permanent link |
Indie movies to the masses via DVD

Film Movement runs a DVD-a-month club that distributes first-run indie movies to its subscribers for US$19.95 (about $34 Aussie). Such films have included "El Bola," a Spanish film about child abuse that won four Goya awards, the highest honors in Spain and "He Died with a Felafel in His Hand," a very cool Australian indie movie that had an incredibly short run even in its home land. Each monthly feature film also comes with a first-run short film.

Maybe the "masses" bit won't really happen, but this sort of effort really will help ward off the MPAA-taking-over-the-world feeling that I sometimes get. In the words of the director of "Marion Bridge," a Canadian film about a dysfunctional family in Nova Scotia:

"They are guaranteeing us a five- to 10-city release, which is really great for a Canadian film about three women," said "Marion Bridge's" director, Wiebke von Carolsfeld. "It's funny and it's sad but it doesn't have explosions."

from cnn.com via Neil Schemenauer's Web Log

path: /stuff | permanent link |