Michael J. Radwin

Tales of a software engineer who keeps kosher and hates the web.

Monthly Archives June 2003

National Do Not Call Registry Opens

dnclogo_small.gif The opening of the National Do Not Call Registry, a free service of the federal government developed to give consumers a choice about getting telemarketing calls at home, was announced this morning by President George W. Bush, Federal Trade Commission (FTC) Chairman Timothy J. Muris, and Federal Communications Commission (FCC) Chairman Michael K. Powell.

Consumers nationwide can register online at DONOTCALL.GOV. Consumers in states west of the Mississippi River (including Louisiana and Minnesota) can register by calling, toll-free, 1-888-382-1222 (TTY 1-866-290-4236). On July 7, phone registration will be open to the entire country.

Working on my OSCON talk

It dawned on me recently that I’ve only got about 2 weeks before my One Year of PHP at Yahoo! talk at the O’Reilly Open Source Convention in Portland.

Here’s the section title slide for one of the parts of my talk:

Scaling PHP slide

I like talks that have lots of graphics, even if they’re a little goofy. I hate it when folks just put slide after slide of text. Those bullet-points communicate a lot of information, but they are really unpleasant to read.

[Update 8 July 2003: Slides for the talk are now available online.]

GIF Patent Expires Tomorrow

no_gif.jpg kuro5hin.org: “On Friday, 20th June 2003, the death knell sounds for US patent number 4,558,302. Having benefitted its owner, the Unisys Corporation for 20 years, the contents of the patent are entered into the Public Domain and may be used absolutely freely by anyone.”

Note however that the patent only expires in the USA tomorrow. The popular GD Graphics Library will not include GIF creation capabilities until the patent expires world-wide on July 7th, 2004.

Shared Libraries on my mind

I just finished writing up 4 pages of documentation on how to correctly build shared libraries for FreeBSD using Yahoo!’s Makefile macros. The fact that Makefiles are such a black art probably explains the popularity of alternative build systems.

I’m sure a bunch of these ideas will be covered in Theodore Ts’o’s Designing and Creating Great Shared Libraries talk in a few weeks, but I wanted to write down a couple of key points before I forget:

  • Using the -soname linker option is good because it guarantess that code built against your library (either an executable or another .so) only gets used with a binary-compatible version of your library. If you make an unversioned library, you’ll probably need to rename it when you add versioning.
  • Passing the -no-undefined flag to the linker can save you lots of trouble. It’s way better to have your make fail because of an undefined symbol than to end up with errors like this on Apache startup:
    Syntax error on line 68 of /usr/local/etc/apache/httpd.conf:
    /usr/local/libexec/apache/mod_yscript.so: Undefined symbol "Bar__3FooiPCc"
  • -fPIC good. TEXTREL bad.
  • objdump -p is a really useful tool.
  • Even after 16 years of development, there are still bugs in gcc.

Now I’ve gotta go hire a tech writer to clean up by doc.

Real Nice Clambake

This was a real nice clambake,

We’re mighty glad we came.

The vittles we et

Were good, you bet,

The company was the same.

Our hearts are warm, our bellies are full,

And we are feeling prime.

This was a real nice clambake,

And we all had a real good time.

(See also Hukilau)

How to consume RSS safely

Excellent reading for web engineers: How to consume RSS safely.

Mark lists 10 HTML elements that must be stripped to safely display HTML from an RSS feed. He mentions stripping style attributes from RSS, but fails to mention an even more imporant set of attributes: the JavaScript event attributes.

Sure, you’ll want to leave <img> tags in the RSS feed, but what about those nasty onmouseover="..." attributes?

Kudos to Dennis the Headhunter

I got this “cold call” email today:

Date: Wed, 11 Jun 2003 12:19:09 -0700

From: Dennis R...

To: Michael Radwin <michael@...>

Subject: Could you/your family be interested in moving to Seattle

area to do Browser and/or algorithm work for AMAZON?

Hello Michael,

I know this is out of the blue.  No, we've never

communicated before, to my knowledge.

Please let me know if you're at all interested.


Dennis R...  -  Principal Account Manager

425-xxx-xxxx   or   800-xxx-xxxx

I told him “Thanks, but no thanks,” since I’m happy with my job right now and we’re going to be in LA for the forseeable future.

He did several things right that recruiters usually get wrong:

  • He was honest and direct, and admitted that he didn’t know me. Aside from jobs (often with companies you’ve never heard of), headhunters don’t have much to offer. The best they can do is show you courtesy and respect.
  • He thought about my family. That’s imprortant; I’m not some 22-year-old kid who can just pack up and move to a new city without affecting other people.
  • He called me Michael, not Mike. Unless you know someone personally (or they say otherwise), I think it’s professional courtesy to address someone by their full name. It’s the closest thing English has to Usted.

So, although I’m not interested in the job, maybe some of my readers are. Drop me a private email and I’ll forward Dennis’ contact info to you.


If you’re a Unix geek, you know about /usr/games/fortune.

If you know much about Yahoo!, you know that we like to name our software things that start with “y”. For example, my Making the Case for PHP at Yahoo! talk mentions our legacy yScript language.

Today, a rather clever co-worker of mine suggested a list of mantras that our engineers should repeat frequently to reach enlightlentment.

“Check in your code.”

“Document your APIs.”

“Have you written unit tests recently?”

“FreeBSD is just as good as Linux (for our needs).”

“Make sure to search devel before asking devel-help.”

“Microsoft sucks. But our users don’t care.”

Heh. Looks like a good start on yfortune.