Mon, 24 Feb 2003
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 :)
Wed, 19 Feb 2003
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!
Mon, 17 Feb 2003
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.
Sat, 15 Feb 2003
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 :)
Fri, 14 Feb 2003
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.
Thu, 13 Feb 2003
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.
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!
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:
- The URL linked to "goes away" - the provider goes out of business,
decides to no longer support the software, ...
- 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?
Wed, 12 Feb 2003
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 :)
Tue, 11 Feb 2003
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
Mon, 10 Feb 2003
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.
- A description of the
traditionally accepted quoting style in newsgroup postings.
- Mailing and
Posting Etiquette section entitled Post In-line for
Context.
- Netiquette and
practical hints with examples.
- The
advantages of Usenet's quoting conventions.
- 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 :)
Fri, 07 Feb 2003
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.
Thu, 06 Feb 2003
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.
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...
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 :)
Tue, 04 Feb 2003
Babu has created a sourceforge
project for the
python
rss aggregator, spycyroll. Whee! Another project to suck up my
inexhaustible spare time <wink>.
Mon, 03 Feb 2003
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:
- 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.
- 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.
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. :(
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