Archive for January, 2004

Synchronicity

by Rev. Bob - Saturday, January 31st, 2004 - 12:46 pm

Compare and contrast: an article on opensector.org: “UN report says open source produces better software“, and the following article:

Microsoft increasing government sales force

The juxtaposition, intentional or not, is wonderful: one side brings ideas and idealism, the other side brings money and power. Now that’s a battle worth watching. Maybe even worth doing a little more then just watching.

Good fences

by Rev. Bob - Saturday, January 31st, 2004 - 5:24 am

Drop down menus are gadgets that help people navigate complex web sites. Old-school sites generally offered these menus to MSIE users and pretty much left users of Opera, Mozilla, and the other browsers out in the cold, often adding insult to injury with a snotty message about how you need to “upgrade” your web browser before we can allow you to spend your money at a website as cool as this one.

Recently some of the heavies who are building the standards-based web have been experimenting with CSS based drop down menus. But to get out of the lab and into the field, these menus have to be usable by anyone, in any browser, even with Java and JavaScript turned off, and still be valid XHTML and CSS.

Now comes the Accessible Website Menu: Ultimate Drop Down Menu by Brothercake, which claims to do it all. I’ve been there, and it seems to work as advertised. Netscape 4.7 shows plain text links which are a little less intuitive than the drop down menu, but still very usable; Mozilla, Opera, and MSIE seem to behave themselves, showing pretty much identical drop down menus.

So how do we use this discovery in our own websites? That’s where I have a problem. Commercial sites must pay a licensing fee to use the UDM. Non-commercial sites can use UDM without paying a fee if they supply a linkback to the UDM site.

To the best of my knowledge, this is the first time anybody’s made an intellectual property claim on a standards-based Web technology. In fact, I’m not even sure whether it is 100% standards-based, since, without entangling myself in their IP claims, I can’t check to see whether UDM includes DHTML that will only work in MSIE, or whether they’re using one of the W3C Document Object Model standards.

This is a breakthrough — a minor breakthrough: many of us have built websites for a long time without using a drop down menu — but by wrapping it in the shroud of intellectual property protection instead of giving it to the community, Brothercake have done just when Richard Stallman said in a remark I quoted yesterday: taken two dollars worth of wealth from all of us to gain one dollar for themselves. They’ve cast a pall over all further work on drop down menus for the time being — do you want to risk a lawsuit if you come up with a new approach to drop down menus? And they’ve taken from the work of the real giants in this field without giving back.

Don’t get me wrong: nothing would put the standards-based web on surer footing than people getting rich from it. Getting rich is good. But when you build a fence around part of the standards-based web in the middle of the night and post a “No Trespassing” sign on it, you’re nothing but a squatter, and you deserve to be treated like one. Brothercake haven’t fenced in this area for themselves as much as they’ve fenced themselves out of the new web community. I think it’s incumbent on all of us to support efforts to show prior art and squash Brothercake’s attempt to grab intellectual property that belongs to all of us.

The wealth of nations

by Rev. Bob - Friday, January 30th, 2004 - 5:18 am

One person gains one
dollar by destroying two
dollars’ worth of wealth.
Richard Stallman

Set as a haiku by Don Marti’s haiku miner, RMS on the costs of intellectual property.

CSS laundry list

by Rev. Bob - Thursday, January 29th, 2004 - 11:43 am

Finds for webheads are really piling up here at the Rectory. Here’s some I like:

  • Shirley Kaiser of Brainstorms and Raves and CK Designs has a terrific meta-list of resources on everything to do with the web on websitetips.com. It’s like about.com done right. Btw, what the heck happened to all the content on about.com? Did they decide people didn’t want that?
  • And here’s a great gag from the Style Master folks in their CSS Cookbook: Buttons without JavaScript, all done in CSS.
  • Have another: Nick Finck’s Web Power Tools. The thing I like best about it is that I’ve only seen a couple of the tools he uses.
  • And don’t neglect the place I found that last link, Rehthree Design’s Design Principles, a potpourri of new-generation web stuff, from nitty gritty CSS links to making your content more semantic, to a warning: never design on spec.
  • For the incurably cheap, an HTML version (text only) of Joe Clark’s highly regarded book, Building Accessible Websites.
  • I sat on this link for a while because of the dreadfully counterintuitive user interface (yellow text in the menu bar means you can click on it; yellow text in the main page means you can admire the pretty colors, but clicking will do you no good). Finally I decided what the heck. graFXfreeware
  • Some great web-based tools in Webmaster Toolkit: ping, domain typo generator, Front Page code cleaner, keyword analysis tool, good list of MIME types, and lots more.
  • And a final CSS metalist at thefixor.com (love the symbology).

Now help me, Muse

by Rev. Bob - Thursday, January 29th, 2004 - 9:10 am

The History of the DeCSS Haiku outs the unknown author of that famous epic Haiku: Seth Schoen himself, the author of this article. And while it’s historically interesting, I’m pointing to it because it adds some observations to the case for considering programming as speech, and because of something Schoen said about 2/3 of the way into the article:

An observer might be shocked to compare the Bernstein and Corley cases. She would perceive that the courts have concluded that it’s wrong to censor software in the name of preventing terrorism, but it’s all right when what’s at stake is the ability to copy movies.

This observer isn’t shocked. If we keep the politicians who are dragging us along in their headlong rush to become the Corporate States of America, I think we’ll see even more rulings like that. It would not surprise me to see conservative judges protecting the right to publish how to blow up a subway, but denying the right to publish how to blow up a bank. Don’t suppose that this is wild-eyed radicalism: conservatives and libertarians have told us over and over again that things owned by the people in common (as most subways are, by cities) are worthless and not worth protecting. It’s not like they’re keeping it a secret.

But even the present case — where freedom of speech trumps public safety, but not corporate profits — shows the huge difference between the human values the Right are pulling out of our society like the weeds they think they are, and the corporate values they’re planting in their place. How long will it be before this country doesn’t stand for anything higher than the values of a fly by night strip mining corporation?

Alien nation, part deux

by Rev. Bob - Wednesday, January 28th, 2004 - 5:38 am

As has happened more than once, Tim’s comment on an earlier article has prompted me to put pen to paper. You may remember that I said how George Bush the elder came out with the damndest thing, something you’d hardly expect a decent man like that to say. And I said it’s amazing how even your friends can shock you like that, but that conservatism does that to people.

So Tim asked, facetiously, if President George H. W. Bush was a personal friend. And I’ll answer him now: no, but that’s because we’ve never had an occasion to meet. Unlike his son, where the consensus is that he’s cold, dull, and kinda creepy, the elder Bush seldom met anyone he didn’t like and who didn’t like him right back. It’s been said that if George H. W. Bush could have met all the voters personally, he’d have won in a landslide.

And Tim asked if I was making any claims about inevitable connections between conservatism and theism. No, but in this article I’m definitely talking about a connection, the connection between conservatism and evil. I’m pointing out that the conservative ideology contains some poisonous ideas, and that it’s dangerous folly to trust someone who’s exposed to those ideas every day — even if that person is you — not to pick some of them up.

I suspect Tim is having a hard time believing such people and such ideas exist. So let me show him (and you) something a neighbor of mine said not quite a month ago on a USENET newsgroup:

If I’ve read once, I’ve read a thousand that liberals bristle when
accused of not being patriotic. They may well have a point because the
justification for such a reaction is that many have died and still are
dying to protect our rights to dissent. But, while I have no problem
with the fact they it is indeed their right as a U.S. citizen, I have
to question their patriotism since is implies a deep devotion and love
for our country.

There it is, the oldest lie in the conservative book: the other side hates America. That’s the kind of poison that’s out there floating through the airwaves that conservatives plug into. And this is not some noxious professional ideologue, this is one of my neighbors.

Here’s another: I wrote an email to a friend who’s either conscientious or enviably connected, because he can find all the funny stuff that’s floating around on the net, and he passes it along to his friends. I wrote him about one of those things he’d sent along that attributed some improbable and scurulous remarks and actions to people in the political mainstream (i.e., “libruls”). I showed him the Snopes reference that showed it was just right-wing propaganda, and he was kind enough to retract it to all the folks he sent it to.

In short, he was a kind, honorable man. He’s as far from a redneck as can be: a retired dentist who lives in a big city in the North and is a fan of jazz. And yet during our correspondence, he said two things, seemingly out of the blue: that I must not have served in the military and that he didn’t hold much with socialism.

As I say, a good man. Yet he never questioned that everyone on the other side fell into this bizarre stereotype. I wrote back to say that, while I didn’t serve, I’ve been working for the past 15 years and more helping make sure our young people in the services come home safely after accomplishing their mission, and that I too thought socialism was crap. He wrote back to ask my address so he could send me a CD he’d burned, and I managed to get his address and reciprocated, but I’m pretty sure he thought, “jeez, I’m talking to a real human being here.”

The notion that everybody to the left of Willis Carto must be against the military, that there’s no difference between being a Democrat and being a socialist, and that only true blue conservatives really love this country is the stock in trade of the professional hatemongers on the right, and I’m here to tell you they’ve done their job! Their poison has pervaded conservative thought, and you’ll have a hard time finding conservatives who, when pressed, wouldn’t admit they at least allowed that those things were possible. It is a poison that underlies every single conservative thought, and there’s no better word for it than evil.

Nobody ever came to conservatism with the idea that their neighbors were unpatriotic. But dwell a while in the conservative tents, and you’ll tolerate others saying so. Dwell a little longer, and you accept that it might be true. A little longer, and you’ll say it yourself. And travel too far down the path with conservatives and the words “welfare recipient” will paint a picture in your mind that most people (including you) would call disgraceful. To claim this poison comes from anywhere but other conservatives is to say that conservatives gather together because of their bigotry and because they want to believe their neighbors are no better than traitors.

I think it’s misplaced tolerance to fail to give a subculture like that the name it’s earned over and over. There are folks who’d like to pick up this conservative tenet or that one, and who believe they’ll be able to remain morally aloof from the evil that undelies conservatism. I think those people are fooling themselves. Conservatism as it’s practiced in this country, here and now, is a political sickness, it’s contagious, and it’s dangerous.

What kind of person

by Rev. Bob - Tuesday, January 27th, 2004 - 4:48 pm

We all know the bit about corporations being legal persons, even though they’re nothing at all like people. Well, turn that idea on its head. People, after all, might have a greater capacity for perversity than we’re giving them credit for. So, if a corporation were a person, what kind of a person would it be?

Mark Achbar, Jennifer Abbott and Joel Bakan asked that question in a documentary film and forthcoming book, and used the DSM IV as their measuring stick:

Diagnosis: the institutional embodiment of laissez-faire capitalism fully meets the diagnostic criteria of a psychopath

Here’s some of their supporting argument:

Self-interested, amoral, callous and deceitful, a corporation’s operational principles make it anti-social. It breaches social and legal standards to get its way even while it mimics the human qualities of empathy, caring and altruism. It suffers no guilt.

Fits pretty well, doesn’t it? The next time we run into a conservative or a libertarian, let’s ask them why they’re in such an all-fired hurry to unleash a horde of immensely powerful mainacs on us.

Or, more realistically, since corporations can behave any way we, their creators and masters, want them to behave, why do most people on the political Right insist on letting them behave like dangerous maniacs?

If you ask that question, be prepared to be called a rampant socialist, attempting to replace the free marketplace with government planners, a Luddite, a Bolshevik – you name it. The magnitude of their reaction should let you in on their secret: the last thing they want to remind people of is that we can control corporations. In fact it’s our responsibility to control corporations.

In which case, your next question should really piss them off: why would folks on the political Right rather have corporations make laws to govern us than have us make laws to govern corporations?

Mind you, there are some honest right-wingers who don’t want anybody to make any more laws to govern anybody. I give them full marks for integrity. But I give them no marks at all for turning a blind eye toward what corporations are up to right now. Every action, even inaction, has consequences.

Thanks to Kottke for the tip.

HTML 101

by Rev. Bob - Tuesday, January 27th, 2004 - 6:50 am

…for the semantic markup generation: Shirley Kaiser’s Semantics, HTML, XHTML, and Structure at Brainstorms and Raves. The title makes it sound airy and theoretical, but this is as practical a tutorial as you’ll find. Better still, finding a beginners’ HTML tutorial that isn’t heavily contaminated by the “tag soup” philosophy is no easy job, and this one stays on focus with a minimum of evangelism — Kaiser assumes you’ve already read Jeffrey Zeldman and want to know what it means in practical terms and how to do it.

Disabling comment spam: oops

by Rev. Bob - Monday, January 26th, 2004 - 3:50 pm

I’m not entirely sure who invented this, but I believe it was milbertus:

UPDATE mt_entry SET entry_allow_comments = 2 WHERE entry_blog_id = 1 AND entry_created_on < DATE_SUB(NOW(), INTERVAL 14 DAY)

It’s SQL (for MySQL) and it disallows commenting on any messages older than 2 weeks. I just discovered a small problem with that. When you rebuild your blog, as I just did to fix my categories so they were a little less orthogonal, Movable Type won’t attach the comments to the older posts.

The workaround is to run this:

UPDATE mt_entry SET entry_allow_comments = 1 WHERE entry_blog_id = 1

then run your update, then run the SQL to turn off comments, like before.

Long weekend

by Rev. Bob - Monday, January 26th, 2004 - 7:26 am

Since I’m stuck at home “enjoying” not being able to breathe and doped up on benadryl, I’ll extend what turned into a mostly CSS weekend with Stu’s Site ~ Cascading Style Sheets ~ Cutting edge techniques. And boy, howdy, is he right. Graphics done in CSS, animated tunnels, and boxes, weird and wonderful menus, all done with valid CSS.

Actually, it’s worth running through Stu’s examples, because buried among the oddities, there are some darn useful gadgets. When I get back downstairs to my computer with Opera 7 on it, I’m going to add it to my custom W3-dev menu.

And for dessert

by Rev. Bob - Sunday, January 25th, 2004 - 9:14 am

I can’t believe I’ve left out the Stylemaster CSS Compatibility Charts – a set of tables that shows which CSS elements are supported in the popular browsers, which are partially supported, which ones don’t work at all in that browser, and which ones run into browser bugs that’ll drive you mad.

Remember the Compendium of HTML Elements before it got too big (back before we’d figured out that it wasn’t the Compendium, but HTML that had got too big)? It’s like that.

Toot toot toot

by Rev. Bob - Sunday, January 25th, 2004 - 9:09 am

I’ve talked about Russ Weakley of Maxdesign before, but I never got around to mentioning his tutorials: Listutorial (everything you ever wanted to know about styling lists) and Floatutorial (getting around in the hitherto murky world of floating elements, and how to write CSS that makes browsers do your bidding).

They’ve now been joined by Selectutorial. CSS selectors are what you cover in the first hour of the first day you look at CSS. So what does Selectutorial have that makes it a candidate to replace w3schools as the place we point beginners? Plenty.

First, especially toward the beginning, you see these supremely valuable words several times: “this is a very common beginner mistake. You probably meant to write it this way.”

Then there’s a painless introduction to just enough of the Document Object Model to do what you need to do with selectors. There’s enough coverage of the different kinds of selector to put them in your hands as tools. There’s a simple discussion of when to use classes and when to use IDs, and they cover inheritance and even the dreaded specificity. But the biggest reason why a CSS newbie should read Selectutorial early in their career is their step-by-step walkthrough of a 3-column web design and how selectors make it happen.

Quibbles? At the end of the DOM discussion it isn’t clear why I just learned this. A sentence tying it in to later content would have helped. And there are a few examples in the early part where they show content that appears in the HTML document and content that appears in the CSS inside the same block. I’d rather have seen some differentiation, because confusing where CSS belongs and where HTML belongs is a common beginner mistake. Then I’d have liked to see an example of where attribute selectors are actually useful. Here’s one: my English teacher said you have to put foreign words in italics. if you have a span and there’s a “lang” attribute, then set the font to italic. Finally, I’d have blown off “~=” and “|=” by saying there’s a way to trigger a rule when one value is found on a list of attribute values, read the spec if you need it.

But much may be forgiven of a tutorial that gets the beginner into a real design — and a meaty design — so early. Bottom line: if you’re beginning CSS or even thinking about learning CSS, this is the place to start.

More Opera customization

by Rev. Bob - Saturday, January 24th, 2004 - 12:45 pm

Nick Bradbury’s got an entry in his blog about adding Feed Demon as a context menu item in Opera. When I installed it, it made my “W3-Dev” menu go away. Oops.

So that inspired me to think a little bit. I looked in C:Program FilesOpera7profileOpera6.ini and discovered the following line:

Menu Configuration=C:\PROGRAM FILES\OPERA7\profile\menu\feeddemon-in-linkcontextmenu.ini

Well, shoot! Looks like Opera will only take one menu.ini file at a time.
So I went to the C:\Program Files\Opera7\profile\menu folder,
and after a little experimenting, I discovered that you can splice menu.ini files together.

First, I decided that we only need one set of these lines in the file:


[Version]
File Version=2
...
[Info]
Name=...
Description=...
Author=...
Version=1

So I appended the W3-dev .ini file to my Context menu .ini file, less the spare set of “[Version]” lines, etc. I have absolutely no idea whether this was necessary or not, but leaving those duplicate lines would have confused me, never mind Opera. I tried it, and the spliced-together file worked just fine.

Now it was time to have some fun! I added these lines to the end of my combined .ini file:


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; This part of the file adds Bob Crispen's Blog menu to Opera 7+
;
; DANGER, WILL ROBINSON!
; Unless your blog's name is MYBLOGNAME, its URL is http://PATH.TO.MYBLOG/,
; and your account on del.icio.us is MYACCOUNT, chances of this working are
; pretty slim. Don't be a moron: fix the stuff below.
;
[Blog Menu]
Item, "Go to del.icio.us" = Go to page, "http://del.icio.us/"
Item, "My del.icio.us" = Go to page, "http://del.icio.us/MYACCOUNT"
Item, "Post to del.icio.us" = Go to page, "javascript:q=location.href;p=document.title;void(open('http://del.icio.us/MYACCOUNT?noui=yes&jump=close&url='+escape(q)+'&title='+escape(p),'delicious'));"

Painting in 3D

by Rev. Bob - Saturday, January 24th, 2004 - 6:48 am

I’ve recently posted a couple of images that weren’t done the way most people do graphics: the little Marvin the Martian I added to Carol’s picture and the “Crispen Family” logo on our site’s main page. I had some people ask how I did it (two whole people!), so I figured an article about that wouldn’t be any more boring than the rest of the stuff in the blog.

First off, both the images are 3D. It might not be so obvious with Marvin, but wasn’t it a coincidence that the image of Marvin I had on hand was pointing just that direction? Nope. I set him in that direction. Likewise for the tilt of “The Crispen Family”: tilted just enough to keep the block containing the headline from being big and clunky and tilted at just the right angle to show off the metallic highlights.

There’s all kinds of pseudo-3D and semi-3D tools out there, and they aren’t bad. The world would be a slightly poorer place without the good old drop shadow you can find in just about every 2D bitmap graphics program. I’m known as a tightwad around the Rectory, but I gladly parted with the money for Eye Candy and Blade Pro (a couple of Photoshop plugins that do some neat pseudo-3D tricks), and LiveArt (a semi-3D app I talked about before). But those tools only go so far. If you want to go farther, you need to use real 3D.

Commercial 3D programs (e.g., 3D Studio Max, Maya, SoftImage) are way too expensive. You can get perfectly adequate results with a free raytracing program, POVRay. “Adequate” means you can only do most of the things in the latest production from Pixar. Spend a little time browsing through the POVRay site. You’ll see some things that will amaze you.

Now for the bad news: you’re going to have to learn a little something about POVRay. Not much. If you go through a few of the beginner tutorials, that’ll be plenty. But there’s no escaping it: you need to know how to specify a camera position, some colors and surface things, and some lights. No way to avoid it. Fortunately, the tutorials are really clear, and the success you’ll have right from the start will keep you at it until you’ve mastered the fundamentals, and perhaps a little longer.

Now for a brisk run through the rest of the stuff I did, because it gets really boring from here. I got Dave Edwards’ 3DS file of Marvin from 3D Cafe (free); converted it to VRML with AccuTrans 3D (US$20); brought him into Vizx3D (currently free beta, but eventually around US$100) to recolor him, add his eyes, and move some pieces around so he’s pointing the raygun; exported the result as VRML; and used Paul Thiessen’s vrml2pov (free) to turn it into POVRay format, ready for rendering. Btw, the price of AccuTrans 3D isn’t a typo. Twenty bucks.

“The Crispen Family” was even easier. Vizx3D has a wizard that lets you extrude 3D text, so I brought up the font (Schwarzwald) in the Windows font viewer, extruded the text in Vizx3D (48-point, round fillet on the front only), exported to VRML, and zapped it through vrml2pov.

When it came to the rendering in POVRay, I handled Marvin a little differently than I handled the letters. I colored Marvin in Vizx3D because he’s a cartoon character and subtlety wouldn’t just be wasted, it’d be wrong. But “The Crispen Family” would definitely repay the effort to make it look nice. I’d spent an evening a while back coming up with a metallic surface and lighting setup I liked, so I pasted that surface on “The Crispen Family” and slipped it in under those lights, using the same color I used on the webpage as a background. In a few seconds it rendered, I reduced it a bit, touched up the brightness, contrast, and sharpness, set a drop shadow under it, and I was done. From start to finish (leaving off the time to develop the color and lighting that I reused), less than an hour. I’m no great speed demon with graphics programs. There just isn’t that much to it.

Marvin was also easy. I rotated him a little, set him up under the same lights, but this time I used a transparent background, and I rendered it to a transparent PNG, so all I had to do in Paint Shop Pro was copy that image and paste it as a new layer on top of Carol’s photo, move it where I wanted it, and save it through the JPEG exporter. Total time from starting to search for a model of Marvin to posting the picture on the web: maybe 3 hours.

With all the stuff you need so handy and so cheap and so easy to use, there’s no reason why you can’t make some real 3D for your website.

To repay your patience, here’s that metallic color and a reasonably useful lighting setup:

   #declare My_Texture=texture {
      pigment { rgb<0.7,0.56,0.37> }
      finish {
         ambient    0.3
         diffuse    1.00
         brilliance 15.0
         specular   0.3
         roughness  0.02
   }

   light_source { <-60,-10,-100> color White }
   light_source { <60,-10,-100> color White }
   light_source { <-20,50,100> color rgb<0.5,0.5,0.5> }
   light_source { <20,50,100> color rgb<0.5,0.5,0.5> }
}

Here’s a .ini file setting if you’ve got a simple scene like the ones I’ve been talking about:

   [800x600, AA 0.1]
   Width=800
   Height=600
   Antialias=On
   Antialias_Depth=4
   Antialias_Threshold=0.1
   Jitter_Amount=0.5
   Jitter=On
   Sampling_Method=2
   Output_File_Type=N
   Bits_Per_Color=8
   Quality=11
   Output_Alpha=On

Y uno mas tambien

by Rev. Bob - Friday, January 23rd, 2004 - 5:56 pm

Textbased.com – minimalist web site list. That completes our sandwich: a tutorial/process description nestled between two soft, fluffy lists of examples. Actually, the lists are huge, which would make them like whole loaves of bread, and the first two are for blogs, while this one is generally applicable, so this loaf would be pumpernic…

WEIGHT LIMIT VIOLATION IN METAPHOR ENGINE.
REPLACE WRITER AND EXAMINE CLUTCH FOR DAMAGE.

More on good blog design

by Rev. Bob - Friday, January 23rd, 2004 - 11:50 am

That last post was kinda short. Here’s another, same subject: AndrewBlog: Making a Good Blog for Dummies.

Blog design showcase

by Rev. Bob - Friday, January 23rd, 2004 - 11:47 am

Gentlefolk, start your grabbing machines: cre8d journal: Blog Design Showcase Archives. Huge pile of good looking blog designs.

Carol’s pictures

by Rev. Bob - Thursday, January 22nd, 2004 - 4:19 pm

Dear friend Carol Watson has got some stunning pictures in her photo blog. One of them inspired me:

[Red Planet]

Compromise

by Rev. Bob - Thursday, January 22nd, 2004 - 7:38 am

Cory Doctorow, who will be speaking at the North Bay Multimedia Association, makes some remarks about IP and technology in the preview of his talk that are worth sharing and repeating:

What is a wonder is that any number of otherwise bright and well-meaning lawmakers, geeks and businesspeople are behaving as though the proper response to a collision between copyright and technology is limits on technology — imagine if recorded music had been “limited” to ensure that it didn’t disrupt the sheet-music business! (It almost was — and recorded music was only rescued through a Hail Mary act of Congress that legitimized piano rolls in 1908)

Today, the notion that technology should “compromise” with rights-holders is a tremendous threat to the open Web.

If I find an URL for the whole talk, I’ll post it in the comments.

State of the Union

by Rev. Bob - Wednesday, January 21st, 2004 - 4:57 pm

Thanks to Boing Boing for Cory Doctrow’s favorite moment from the State of the Union speech:

GW Bush: “Key provisions of the Patriot Act are set to expire next year.”
Audience: [Applause]
GW: [Frowny face]

See for yourself (DIVX AVI – 1.2MB)