There's 15 miles of snarled traffic near San Francisco Airport thanks to "President" Bush's fly-in fundraiser. Roads closed, traffic breaks, total mess. Estimated take for the Bush campaign: $2 million at $2000 a head.

Just yesterday, the Federal Energy Regulatory Commission refused to let California out of the predatory energy contracts it signed after being 0wnz0red by energy companies in 2000 and 2001. Yes, the same FERC who said those companies illegally manipulated the market.

FERC is executive branch. Bush's friends run the energy companies. They continue to profiteer off their market manipulation. And 101, the major corridor through the Bay Area, is snarled so Bush can sell even more access to his administration.

  2003-06-27 17:28 Z
Finally, some good news from the Supreme Court: Lawrence v Texas was decided in favour of overturning Texas' anti-gay sodomy law. The majority opinion is based on a right to privacy; I didn't think that argument would fly federally. "The state cannot demean their existence or control their destiny by making their private sexual conduct a crime".

Scalia's minority report shows he's still hateful:

"The court has largely signed on to the so-called homosexual agenda," Scalia wrote for the three. He took the unusual step of reading his dissent from the bench.

"The court has taken sides in the culture war," Scalia said, adding that he has "nothing against homosexuals."

I don't care if he likes me so long as I have equal protection.
  2003-06-26 15:19 Z
My quandry about hiring a plumber was solved on the Internet afterall. Did a search on the Internet and found a plumber with a nice website. I like a plumber who has do-it-yourself tips.

Service was fast and well executed, the price was fair, and now I have a new hot water heater and no cold showers.

Blogging about domestic plumbing problems is awfully dull, but I'm amazed at how much trouble stuff like this is.

  2003-06-24 14:16 Z
My hot water heater broke this weekend. An expense, sure, but the big bummer is the nuisance of getting it repaired. It's way too difficult to find someone to do work like this. How can I trust that they'll do a good job? How do I know they won't rip me off?

I have the same problem hiring landscapers, architects, etc. The sewer guys I hired to fix a problem a few months ago charged me way more than they said they would and did a sloppy job. They didn't even haul off the old pipe!

This problem seems unique to modern society. The Internet makes it easy to comparison shop and buy goods but finding quality services requires local community. Alas, craigslist doesn't help, either.

  2003-06-23 17:19 Z
Happy Juneteenth!
Juneteenth is the oldest known celebration of the ending of slavery. Dating back to 1865, it was on June 19th that the Union soldiers, led by Major General Gordon Granger, landed at Galveston, Texas with news that the war had ended and that all slaves were now free. Note that this was two and a half years after President Lincoln's Emancipation Proclamation - which had become official January 1, 1863. The Emancipation Proclamation had little impact on the Texans due to the minimal number of Union troops to enforce the new Executive order.
  2003-06-19 16:52 Z
My new home loan finally closed, saving me hundreds of dollars a month. This simple paper transaction is full of inefficiencies. Cost is $4000 to me, another $6000 to the lender to pay off my mortgage broker. Poof!

Of my $4000, $1400 is for a new title insurance policy just in case, you know, somehow the title went bad in the last year. Another $700 is to pay the escrow agent who never returned my calls and delayed funding a week because they gave the lender the wrong routing number. For 3 days I pay interest to both lenders - in the 21st century it takes 72 hours to move money around the US. Another $1900 in random fees - appraisal, "document fees", etc, total junk.

Why don't banks just let their lenders adjust rates downward, saving everyone the trouble of refinancing and keeping the customer? I tried calling my original lender; they never even answered the phone.

Crazy thing is with this inefficiency I still come out ahead.

  2003-06-19 15:46 Z
The Roy Orbison in Clingfilm site has been making the rounds of the net for awhile now. But there's a gem hidden there - one of the stories set to music. Great phrasing.
Soon Roy Orbison stands before me, completely wrapped in cling-film. The pleasure is unexampled.
'You are completely wrapped in cling-film,' I say.
'You win the bet,' says Roy, muffled. 'Now unwrap me.'
  2003-06-19 02:03 Z
My latest computer game is Rise of Nations, a real time strategy game headed up by Brian Reynolds, designer of Alpha Centauri. The best review/summary of what makes RoN great is this fan post.

RoN sets itself apart from other RTS with a feature borrowed from Alpha Centauri - territory. You can't just waltz your superarmy in, you have to fight for control of land. It gives the game a lot of strategic depth. Otherwise it borrows very effectively from the RTS genre.

I'm looking for people to play online with - if you're interested, drop me an email at

  2003-06-18 02:38 Z
Another joy of Perl:
if ("foo" == "bar") {
  print "xyzzy\n";
This prints xyzzy. Why? in Perl == means numeric equality. And "foo" and "bar" both evaluate to 0. If you want string equality, you have to use eq. Of course I know this but do I remember it always? No.

The principle of least surprise is important in scripting languages. Perl fails this principle.

  2003-06-15 21:59 Z
Fixed width text is the designer's nightmare. Todd decries the abomination that is Courier and offers alternatives.

The biggest problem with Courier is that it has serifs. Serifs have no place on screen fonts - 100dpi is not enough to do them right at normal text sizes. That's why I override fonts in my CSS to be Helvetica and Lucida Console.

  2003-06-15 21:29 Z
My friend Adam went to Peru; he told me about amazing Inca stonework for monumental architecture. Earthquakes aren't friendly to large stone buildings; the Inca solution was to build with irregularly shaped stones precisely fit together so there were no simple shear planes. All cut without iron or steel. Read more in this fine article.
More pictures:
  2003-06-15 20:37 Z
Giant Robot turned me on to Kubrick, cute little Japanese figurines of pop culture. I must have the wireframe Tron, or failing that the Planet of the Apes figures. The Edward Scissorhands are cool too.

The Internet is grand - lots of shops selling Kubrick. Froogle is helpful for finding things. JList, JTL, Kid Robot, The Outer Reaches, and Giant Robot. Prices are all over the map.

I found my wireframe Tron at a Japanese store, but I don't read Japanese and the shopping cart interface has defeated me. I see something about ¥14,200 too, ouch.

  2003-06-15 19:56 Z
Aaron Swartz's xmltramp is good software. It's the simplest way I know to handle XML content. Sort of like DOM but without all the obnoxious function calls.

rssFeed = urllib.urlopen("http://.../index.rss")
rss = xmltramp.parse(

for i in
  if i._name == 'item':
    print i.title

  2003-06-14 18:26 Z
  2003-06-13 02:04 Z
Joel Spolsky has some insightful things to say about venture capital, caveats to entrepreneurs. It's easy to read the article as just saying "VC is evil" but I think it is more subtle. Good information for naive technologists. Be sure to read the response from a VC blog, too.

One thing that was frustrating when I started my company was how little information there was about the VC industry. I had a few friends, colleagues, and angels who gave good advice. But there was a shortage of open conversation. Maybe blogs will open that up; Venture Blog, from some of the folks at August Capital, is remarkably frank.

As seen on Venture Blog
  2003-06-12 02:28 Z
E*Trade is making news with a new product, a portable mortgage. Usually if you sell the house the loan is paid off. With portable mortgages you can take the loan with you, including the incredibly low 5.875% interest rate.

I bought my first house last year after calculating just how good a deal a home loan is. Now 16 months later I'm already refinancing, saving hundreds of dollars a month just by signing some papers. It's crazy.

The bad news is if we have a long deflationary period I'm going to feel real dumb holding all this debt. Or if we have a major earthquake, or if the insane San Francisco housing market finally collapses, or.. I've never felt so much like an adult as when I signed the loan papers.

  2003-06-10 14:42 Z
From time to time people ask me why I foreshorten my RSS feed rather than providing the full text of the story. It's simple — I'm uncomfortable with syndication.

Call me vain, but I work hard on presentation. I want people to see my brilliant words here, with my own visual design. RSS is great to let you know when something's new but it doesn't let the author have any control over visual layout. You can't even easily include HTML tags in RSS. And fancy stuff like my carefully crafted mouseover images doesn't translate well to RSS, particularly if javascript is involved.

That's why I don't put the full entry in my RSS feed; I want you to come here in a real browser. I'm not totally happy with this restriction but I like it better than the alternative.

  2003-06-08 22:16 Z

An ad seen today on

  2003-06-08 00:53 Z
You can have even more fun with Citrus Moon's tiles by taking the tiles and modifying them to suit. It's easy to recolour tiles; the magic is multiplying in colour.

Here are step by step instructions for taking the groovy ultrawave tile and turning it Blogger orange.

  1. Open the image
  2. Set mode to RGB: [Image/Mode/RGB]
  3. Turn the image grey: [Image/Colors/Desaturate]
  4. Set the foreground colour (I used 0xff6600)
  5. Create a new layer of that foreground colour
  6. Set the mode of the new layer to multiply/burn
  7. Flatten the image: [Layers/Flatten Image]
  8. Adjust colour to suit: [Images/Color/Hue-Saturation]
    I bumped Lightness up +26
  9. Downsample colormap: [Image/Mode/Indexed 16]
    Why? Looks the same, saves space (19k to 6k)
  10. Save the image

This technique only works for creating single colour images; it'll ruin fancy tiles with many colours. And show care for your reader's eyes: this tile is actually pretty awful.

  2003-06-08 00:19 Z
The Animatrix DVD is a fine collection of contemporary animation. Beautiful work by some of the top artists working today, and an interesting enough backstory to carry the shorts beyond the usual anime silliness. $23 on Amazon.

My favourite is still The Second Renaissance; you can watch it online. Of the ones not on the net my favourite is Kid's Story for its chilling story of an angst boy finding salvation in The Matrix. Peter Chung of Aeon Flux fame also has fun with Matriculated.

The animation has so much detail it looks better to me on computer screen than TV. And shame on the DVD programmer for making such a hostile DVD.

  2003-06-07 21:27 Z
Like many Americans with a taste for fine food, I love visiting the French countryside. It's easy for us to romanticize life there - fine food, great wine, relaxed vacation.

Michael Sanders' book From Here You Can't See Paris: Seasons of a French Village and its Restauarant does the American reader a favour by stripping away the romantic picture of quaint French villages to explore what life really is like. And it's not all vacation: the hard rural work, limitations of relative isolation, and the slow death of French agrarian life. But life in the Lot is good, too. Strong community, excellent local food and wine, and a small breath of life in the destination restaurant that is the center of the book.

I'm thankful to the author for so effectively conveying a lifestyle that is very close to my desire yet very far away.

  2003-06-07 18:48 Z
  2003-06-06 15:51 Z
Perl just keeps getting better and better. Consider the following simple code:
#!/usr/bin/perl -w
$foo = "fooSTRIP";
$foo =~ s/STRIP//e;
print $foo
In Perl 5.6 this prints foo as expected. In Perl 5.8 (Debian 5.8.0-17) this prints foofooSTRIP.

Huh? My friends who like Perl claim that what's going on is that Perl is evaluating the right part of the s/STRIP//e, which is empty, as a Perl expression. And apparently in Perl 5.8 this empty expression doesn't evaluate to, say, an empty string. No, it evaluates to some previous expression's value.

The lack of a warning may be a bug. My fear is some Perlmonger decided that the empty expression evaluating to something non-empty is a feature.

PS - yes, I know the /e is unnecessary here and removing it fixes my problem.

  2003-06-03 02:51 Z