Mon, 30 Sep 2002
Errorwear

Embrace your computer problems ... would normally be snorted at with derision, except they have an excellent range of retro errors. You even get to see the shirts on Jim.

ta Rachel, and now you know what to get me :)

path: /stuff | permanent link |
Life is terribly complicated sometimes...
This is too scary/funny not to dupe, thanks again gimbo ;)
path: /stuff | permanent link |
Neat optical illusion

"As with many so-called illusions, this effect really demonstrates the success rather than the failure of the visual system." via gimbo.

path: /stuff | permanent link |
Sat, 28 Sep 2002
This is football ...
... we don't do that kind of thing. (via obscure)
path: /stuff | permanent link |
Free Mickey, the primer

SF Gate has an excellent overview of the "Free Mickey" case that's set to begin next month in the US.

What's really happened, they [Eldred and Lessig] say, is that corporations that outlive artists and creators have won legal protections that are hurting everyone else.

I highly recommend you view/read/listen to Free Culture, Lessig's final keynote in his speaking campaign to turn attention to the Eldred v. Ashcroft case. to get the reasoning behind the case.

path: /stuff | permanent link |
Fri, 27 Sep 2002
whee! new underworld
rox :)
path: /stuff | permanent link |
The Skeptic's Dictionary
A Collection of Strange Beliefs, Amusing Deceptions, and Dangerous Delusions. (ta toby)
path: /stuff | permanent link |
Thu, 26 Sep 2002
Thought for the day, courtesy python-list .sig
Keeping medicines from the bloodstreams of the sick; food from the bellies
of the hungry; books from the hands of the uneducated; technology from the
underdeveloped; and putting advocates of freedom in prisons.  Intellectual
property is to the 21st century what the slave trade was to the 16th.
-- Lulu of the Lotus-Eaters (aka David Mertz)
path: /stuff | permanent link |
SQLite 1000 results are in

I haven't bothered running the benchmark on the dbms with 1000 users and issues, given their performance with 100 ;)

Test name       fetch  journl jprops lookup filter filtml TOTAL
 sqlite: 1000   3.99   59.25  5.08   1.15   3.95   222.80 296.23

A bit concerned by the filtml number. That's about double what I was expecting (even 111s is too high). I think I'm going to have to poke around pysqlite and see what it's up to ...

path: /python | permanent link |
Gah, XML in Python

Some people take XML too far... /F proposes that the following be valid Python:

fragment1 = <element>some content</element>

fragment2 = <element>
    <!-- a comment -->
    some content
    <child attribute='value'>
      spam & egg
    </child>
  </element>

What I don't see on that page is a justification for the proposal...

path: /python | permanent link |
Melbourne Fringe Festival, 2002

"We should celebrate Fringe. It makes it possible for us to think we have a culture." -- Arpad Mihaly (festival director) via theage)

See what's on.

Oh, and there's no Fringe Parade this year due to the spiraling costs (even though there hasn't been a single public liability claim in the Fringe's 20 years) ... but ...ehem ... that won't necessarily stop people from converging on Brunswick St on Sunday. Not that the organisers are encouraging people to take over the street. Actively.

See you there :)

path: /stuff | permanent link |
Wed, 25 Sep 2002
Buffy season seven starts up in the U.S.

From Rachel:

"Buffy Season Seven has started in the US, so I suggest ceasing communications with the Northern Hemisphere until next March. I've already been *spoiled*. Grr."

So, don't visit the Buffy website, don't read any articles on the web with "Buffy" in the title, and don't even browse the Salon site - they're famous for spoiling one of the biggest events in the last season in a f*king headline.

path: /stuff | permanent link |
So we'll be invading Israel now?
Apparently we're going to invade Iraq because of it ignoring UN Security Council resolutions. OK, so finally a resolution came through that the US didn't veto out-of-hand, and Israel's ignoring it. So we'll be invading them now, yes?
path: /stuff | permanent link |
Tue, 24 Sep 2002
Heh, Roundup's pretty neat ;)

I'm giving a presentation on October the 8th to SAGE Victoria. I was a little stuck as to what I'd actually talk about so I asked some people. They told me to just say what Roundup was, what can be done with it, where it's going, how it compares. You know, the usual stuff.

So I've thrown together some slides, complete with screenshots. And in the process, I've convinced myself that Roundup's really cool :)

Mind you, I'm avoiding talking about comparisons - I'm far too biased, and people should make up their own minds based on the information I give them. I can also point them at the NTK writeup :) (mind you, the scalability issues have been addressed in the 0.5 release, big time)

path: /python | permanent link |
Truth lost in noise

Via gimbo, here's an old article talking about "a mathematical model of the stock market, which shows that chaotic ups and downs happen because of the actions of the traders, not because of any real change in the underlying value of the stocks".

path: /stuff | permanent link |
Oooh...
I do love a pretty video game :)
path: /games | permanent link |
Star Destroyer LEGO, biggest ever sold
And at US$295, quite a bargain. Go see it.
path: /stuff | permanent link |
Google aggregates news, big time

Wow... and wow, Australian style...

Hahaha... news on "Alien Invaders" gets hits, but they're kinda boring today :)

via The Reg

path: /stuff | permanent link |
Mon, 23 Sep 2002
Whee... "python -O" cheap optimisation win

I was avoiding this until I could do some decent profiling and figure hotspots and so forth, but the current profiling tool produces... difficult to use results. Maybe some day I'll write an interface to it ;) I also fixed a bug in the LRU caching for the SQL backends (I'm a doofus ;)

Anyway, the new numbers on the Sun box are:

Test name       fetch  journl jprops lookup filter filtml TOTAL
 anydbm: 10     0.02   0.10   0.02   0.04   3.03   2.82   6.03
  bsddb: 10     0.02   0.08   0.02   0.03   2.77   2.83   5.74
 bsddb3: 10     0.02   0.09   0.02   0.03   2.83   2.79   5.78
 sqlite: 10     0.09   0.35   0.09   0.02   0.38   0.54   1.46
 anydbm: 20     0.03   0.25   0.03   0.09   5.28   5.35   11.04
  bsddb: 20     0.03   0.17   0.03   0.06   5.28   5.26   10.83
 bsddb3: 20     0.03   0.18   0.04   0.07   5.94   5.40   11.65
 sqlite: 20     0.17   0.73   0.17   0.03   0.53   0.98   2.61
 anydbm: 100    0.15   0.94   0.17   0.77   57.30  57.10  116.43
  bsddb: 100    0.14   0.85   0.17   0.62   64.23  62.95  128.97
 bsddb3: 100    0.31   1.74   0.38   2.06   68.36  57.70  130.56
 sqlite: 100    0.92   4.31   0.94   0.20   1.92   11.38  19.68

Neat, huh? I'm a bit concerned by the change in the sqlite time, since there really shouldn't be much going on in python-land...

path: /python | permanent link |
Profiling thoughts...

Why has no-one written a tool to analyse python profiling data? Something as simple as the Zope call profiler I wrote would be nice. I noticed an article which at first glance has a solution: turn the profiling data into an XML call tree, and XSLT the result. Only problem is, the module supplied is obscurely written (the article doesn't really help) and doesn't have even the most basic command-line interface.

Time to go see what I can produce I suppose...

path: /python | permanent link |
Roundup speeds on the sun box

Well, the numbers are in for the sun box:

Test name       fetch  journl jprops lookup filter filtml TOTAL
 anydbm: 10     0.04   0.18   0.05   0.09   6.79   9.65   16.81
  bsddb: 10     0.04   0.21   0.05   0.09   5.01   4.94   10.34
 bsddb3: 10     0.04   0.16   0.05   0.08   4.88   4.89   10.11
 sqlite: 10     0.11   0.43   0.33   0.02   0.54   0.70   2.13
 anydbm: 20     0.08   0.35   0.11   0.22   9.96   9.75   20.47
  bsddb: 20     0.08   0.32   0.11   0.18   9.64   9.88   20.19
 bsddb3: 20     0.20   0.64   0.27   0.28   11.03  16.23  28.65
 sqlite: 20     0.23   0.94   0.96   0.05   0.66   1.33   4.17
 anydbm: 100    0.89   3.33   0.97   5.88   122.97 119.40 253.44
  bsddb: 100    0.39   1.63   0.53   2.92   121.49 103.47 230.42
 bsddb3: 100    0.41   1.67   0.54   3.04   103.09 110.23 218.99
 sqlite: 100    1.21   5.24   3.83   0.28   1.98   21.06  33.60

... ouch. The time for the join in the filtml select really comes out in the sqlite 100 test...

path: /python | permanent link |
Video games - the bar is raised

Or rather, it was raised, late last year ;)

I've decided that Grand Theft Auto 3 is a most amazing piece of work, regardless of what everyone else says :)

The amount of freedom that the game's developers have given the player is truly astounding. The bar is definitely raised.

The game has a distinct moral imbalance, and the developers have documented "issues with women". Both of these could be reasonably addressed through:

  1. Greater freedom to choose a career with the Good Guys (beyond vigilante justice, putting out car fires and saving people with the ambulance). Most of the missions that appear in the game could be played from the perspective of a Good Guy, and with a lighter emphasis on the violence. Just for an alternative... and
  2. Having women in the game that aren't hookers, bag ladies or sex-fantasy-lesbians.

path: /games | permanent link |
David Brin comes to the rescue of Star Wars
Well, first he analyses the hole that Lucas has dug himself, but then proposes a way out of it. (ta Cam via Rachel)
path: /stuff | permanent link |
More roundup speed work

I've made a few more optimisation changes to Roundup, but the index page of our dev tracker (about 600 entries) takes a good 8 seconds to render on our sparc. The last set of benchmark results I posted were run on the laptop.

Laptop
This machine benchmarks at 14285.7 pystones/second
Sun box
This machine benchmarks at 3021.15 pystones/second

Bit of a difference there - I've got to keep remembering that my development environment is blindingly fast ;)

Just running the benchmark on the target system now, will be interesting to see the difference...

path: /python | permanent link |
Fri, 20 Sep 2002
Roundup 0.5 benchmarking...
So I've started looking seriously into the performance of the various backends. I wrote a simple little benchmark tool that runs a series of tests on N users and issues: Preliminary results (not including gadfly because it's really not a serious performance contender):
Test name       fetch  journl jprops lookup filter filtml TOTAL
 anydbm: 10     0.03   0.23   0.01   0.03   1.09   1.09   2.48
 bsddb3: 10     0.01   0.04   0.01   0.02   1.01   1.02   2.11
 sqlite: 10     0.03   0.15   0.07   0.01   0.10   0.14   0.49
 anydbm: 20     0.05   0.40   0.02   0.06   2.08   2.15   4.76
 bsddb3: 20     0.02   0.08   0.02   0.05   2.09   2.25   4.51
 sqlite: 20     0.07   0.22   0.15   0.01   0.14   0.24   0.83
 anydbm: 100    0.10   1.15   0.11   0.65   21.00  21.34  44.35
 bsddb3: 100    0.09   0.39   0.12   0.66   21.49  21.17  43.92
 sqlite: 100    0.27   1.27   0.99   0.06   0.47   2.63   5.69
So sqlite is doing pretty well :)
path: /python | permanent link |
testing... testing...
Hee hee... this is my through-the-web editor of stuff. Some tweaks would be nice, but otherwise it's there...
path: /stuff | permanent link |