Monthly Archives: June 2007

Fifteen years of MIME

Fifteen years ago this month, Nathaniel Borenstein and Ned Freed published MIME (Multipurpose Internet Mail Extensions): Mechanisms for specifying and describing the format of Internet message bodies, a document also referred to as RFC 1341. An RFC (“Request For Comments”) is the democratic way new Internet standards get proposed, reviewed, and approved.

Fifteen years earlier saw the publication of RFC 733, Standard for the format of ARPA network text messages. (The “ARPA network” was the forerunner of today’s Internet.) This established the rules that allowed computers to exchange e-mail, but the phrase “text messages” in the title of that RFC is telling. According to that standard, e-mail consisted solely of plain text, specifically text arranged in relatively short lines. Furthermore, the text could only be expressed with ASCII characters, that is, the fifty-two upper- and lowercase letters of the English alphabet, the ten digits, and thirty-odd typographical characters, and no others.

In those bad old days, you could not attach a picture or a spreadsheet and mail it to someone; you had to settle for letting your correspondent know from which directory on which FTP server they could download your file. You could not emphasize text with boldface or italics, you had to settle for emphasis that looked *like this*. And if you wanted to say something in Russian or Greek or Hebrew or Chinese or Thai, you had to transliterate it using English letters (“na zdorovia”). You couldn’t even include the accent in “Buenos días.”

By the early 1990’s, the need for these expanded abilities was starting to be felt, in part due to the burgeoning of the Internet, in part due to the ever-increasing storage and display capabilities of the computers attached thereto, and in part due to experiments such as the Andrew project, which I worked on with Nathaniel Borenstein and others. In the Andrew project, users running the appropriate software within a closed community (such as the Carnegie Mellon campus) could exchange rich e-mail with fancy text styles and a wide assortment of attachment types (or “insets” in Andrew parlance), including pictures, sound, and an inline “hyperlink” object (due to my friend Michael McInerny) that prefigured the invention of the World Wide Web.

As I say, users within a closed community could use Andrew and other systems like it, but they could not exchange “rich” mail with the Internet at large. There was no widely accepted standard for the format of such messages. The only widely accepted Internet mail format was RFC 822, which by this time had superseded but not meaningfully expanded upon RFC 733. Like its predecessor, it too insisted on treating e-mail as short lines of plain ASCII text, and across the Internet there was a huge installed base of RFC 822 e-mail systems. There was no possibility of replacing all those e-mail systems with anything that could handle other kinds of content. To complicate matters, the conformance of most e-mail systems to the rules in RFC 822 (and its companion, RFC 821, which dealt with the details of transporting RFC-822 data between computers) was only approximate in many cases. Cobbled together as they were by amateurs and academics, the mail systems of the early Internet often got things wrong.

All of which I mention in order to highlight the genius of Borenstein and Freed. With MIME they invented a collection of mechanisms for expressing and transporting all conceivable kinds of e-mail content, including text using foreign alphabets, that worked entirely within the rules of RFC 821 and RFC 822. By variously encoding, labeling, and encapsulating the many data objects in a rich e-mail message, they were able to make it look like a standards-compliant text message, consisting of short ASCII lines. They even managed to work around the many different ways in which most mail systems failed to obey the standards.

In this way, MIME messages could be exchanged across the Internet without the need for any of the existing mail software even to be aware that the messages were special. Of course, if you happened to have one of the handful of MIME-aware mail systems that existed at first, it would decode the message and display it richly, giving you the full benefit of MIME. But if your mail system was not MIME-aware, that was OK; your mail program would simply show you the un-decoded MIME content, which, thanks to more ingenious MIME mechanisms such as “the preamble,” “quoted-printable,” and “multipart/alternative,” was usually somewhat legible anyway.

Thus did MIME take over the e-mail infrastructure of the Internet in viral fashion. Immediately upon its introduction, it worked at least bearably for everyone, and terrifically for some. Of course everyone wanted it to work terrifically, so bit by bit, users across the Net upgraded their mail systems to be MIME-aware.

After I left Carnegie Mellon I went to work for Z-Code, which made e-mail software called Z-Mail. No sooner did I start there, trying to convey the wonders of the Andrew system to my new coworkers, than the MIME standard appeared, and Z-Code went to work making Z-Mail MIME-aware. Thus by Nathaniel’s efforts was my career not only begun but perpetuated. I write e-mail software professionally to this day.

Nowadays users think nothing of sending e-mail with pictures, spreadsheets, and even movies attached, and being unable to receive and view them properly is now the rare exception and not the rule. But the infrastructure is largely the same as it was in 1992. At bottom, e-mail messages are still arranged as short lines of ASCII text. Only MIME makes possible such wonders as Korean Viagra image spam.

Save Net radio

I had just discovered Pandora Internet radio and had begun creating my own “station” (featuring Splashdown [who has a song called “Pandora,” incidentally], among other artists, and called — what else? — “Gee Bobg Radio“) when Pandora, and many other Internet music sites, went silent for a day to protest a greedy move by the recording industry: dramatically raising royalty fees, and doing it retroactively.

You’re either with the change-averse intellectual property vampires clinging desperately to an obsolete business model from your grandparents’ generation, or you’re against them. And if you don’t take some action, then you’re not against them.

Mind if I used to smoke?

The other day I listened to an NPR segment about washing dirty computer keyboards in the dishwasher. I was at once transported to…

PITTSBURGH, 1989

Back in the day, smokers at work didn’t have to throw on an overcoat and huddle with a few miserable outcasts in frigid temperatures to indulge their vice. They just had to close their office door.

My friends in college were all smokers, and I was a determined non-smoker. I had spent my childhood haranguing my dad (who quit) and my mom (who didn’t) about their smoking habits, and I had spent high school not hanging out with those who were experimenting with tobacco.

But my heroes in those days were James Bond, Simon Templar, Humphrey Bogart, Sherlock Holmes. They all smoked, and to those who say that books and movies don’t influence kids to smoke, I say hogwash. It was inevitable, in hindsight, that my anti-smoking cred would prove false and that it wanted only some socializing with smokers to seduce me to the dark side.

Camels were my brand, thanks to Tom Robbins. (N.b. notJoe Camel” — he appeared shortly after I took up this habit.) We’d chip in for cartons and share them, me and Bruce and Steve and Amy and Drue. A pack cost $1.25. When Steve and I shared an office in the University Computing Center at CMU, we kept the door closed and smoked all day, turning the air into a narcotic miasma. We got few visitors.

During those few years of smoking, I’d tried one time seriously to quit, and one time not so seriously, but failed. Then, toward the end of 1989, I faced my first overnight stay in the hospital for a minor surgical procedure. I was instructed not to smoke for twelve hours preceding the start of the operation. I took this opportunity to quit for good, and this time it worked. I haven’t had a buy cigarette since.

By that time Steve had left that job and I had a private office. Within a few weeks, I began to be able to detect — and be offended by — the stench of tobacco in my office, and I deployed a heavy-duty electric air cleaner, which ran night and day. I cleaned my computer monitor and was amazed to discover a much brighter image lurking behind a thick yellow film. I shampooed my office carpet. After a while my office finally smelled fresh and clean again. The one witness that could still testify to my erstwhile habit was my computer keyboard, grimy beyond belief.

Having an ingrained respect for technology, it never occurred to me to put the keyboard in a dishwasher as in the above-mentioned NPR segment; and in those days, simply throwing it away and buying a new one was not as easy and inexpensive as it is today. Instead, after wrapping up work one afternoon, I took the keyboard to the office kitchen, where I carefully popped off each individual key cap and meticulously scrubbed it under warm running water. The keys gleamed! I let them dry on a towel overnight and reassembled the keyboard the next day.

Also by that time, I had begun dating, and then moved in with Andrea, who was a smoker like me. She continued smoking after I quit. One day several months later, out of the blue, she asked me one of those questions dreaded by boyfriends everywhere: “Notice anything different?” In a flash I began scanning: hair? nails? shoes? jewelry? colored contacts? new nose? new boobs? I was coming up empty, and after a long pause had to confess to it.

“I haven’t had a cigarette in two weeks,” she said. I was flabbergasted. For me, quitting had been a teeth-gritting ordeal, complete with frantic pacing through the apartment, several half-trips to the corner store to buy a pack, and one complete trip that ended with:

  • me staring at a new pack of cigarettes on my kitchen table for half an hour;
  • opening it;
  • staring at a cigarette for another ten minutes;
  • lighting it, taking one drag, and putting it out in disgust.

Andrea had smoked as much as I had, and had been doing it longer than I had. But without a word or any apparent effort she quit cold-turkey — another of her superpowers. “And today that woman is my wife.”

I still miss smoking. I miss the long quiet hours doing homework or drawing cartoons, just me and my cigarettes. I miss smoking on long drives, which I used to do often between Pittsburgh and New York. Every cup of coffee and every cocktail I drink is diminished for want of a cigarette.

But I like breathing freely. I like not stinking. I like not paying today’s prices for a pack and being banished to forlorn designated smoking zones. I like my kids not seeing me smoke. And I’d be none too fond of emphysema or lung cancer. It’s not like the balance is about to tip any time soon.

But the day I’m diagnosed with an incurable disease, it’s straight back to the Camels. They’ll be my consolation prize.

Mucoshave redux

Hot off the presses.

It’s not just snot
In your bag of tricks
Ahem some phlegm
Into the mix
Mucoshave

Earlier Mucoshave rhymes here and here.

The Swedish fish of brotherly love

I don’t believe in an immortal soul. But…

Recently, Jonah had his “graduation” from preschool. It was a fun ceremony with adorable singing from the graduates, diplomas, and a pot-luck party. Andrea and I attended, as did Jonah’s brother, Archer.

After the diplomas but before the pot-luck there were some games of skill for the graduates only. Archer had to sit it out along with all the other siblings, and he was OK with that.

Jonah won his first game — a mock fishing game, in which he “hooked” a candy Swedish fish. Rather than stuff the candy in his mouth and run to the next game on the “midway,” like all the other kids, he ran over to Archer on the sidelines and said, “Archer! I won a piece of candy!” Without further ado he tore his Swedish fish in half and gave one piece to his brother.

Whereupon I remarked to Andrea, “It’s irresistible at times like this to think that my mom is watching somewhere, and smiling.”

Wonder Woman meets… The Long Tail!

Yay, it’s the Cathy Lee Crosby/Ricardo Montalbán Wonder Woman TV movie from 1974, online for free (courtesy of AOL Video)!

[Updated: inline video player removed due to errors in certain browsers. Click here to view the complete Cathy Lee Crosby Wonder Woman movie.]

[Updated again, 2 Jul 2010: Wonder Woman is no longer available at AOL (hasn’t been for a while), but you can now see it on YouTube.]

Cathy Lee in this movie was my second TV crush, after Nancy, the irrepressible nine-year-old from the original 1972 Zoom. Ah Nancy, the six-year-old in me yubbearns fubbor yubbou stubbill.

Hooray for the long tail, and — though I thought I’d never say this — hooray for AOL!

Now if only someone would put that other terrible TV movie from my childhood online somewhere: Stowaway to the Moon!

West Wing Story

Washington DC, January 2001. George Bush takes the oath of office. Several hundred Republicans converge on the inaugural ball.

Republicans:
When you’re with Bush
You’re with Bush thoroughly
From your first cute nickname
To your last “not guilty”

When you’re with Bush
Let the liberals scream
We’ve got Congress, the White House, and
The Court Supreme

With grownups in charge
We’ll make Bush our Augustus
Our crimes will be large
The bureau now called Justice
Will be called “just us”

Now here comes Bush
Yeah! And he’s gonna say
Some nonsensical stuff
And a mangled cliché
And a botched, mangled, graceless slang
Cliché!

Some months later, Bush is on vacation in Texas.

Bush:
Can’t be
Hell no
Bin Laden’s due any day
So says my CIA
What do they know?

“He may come cannonballin’ down through the sky”
I don’t know why
They’re saying so

Hell no

It’s all in the PDB
Condi just gave to me
But, man alive

That thing is full of seven syllable words!
That’s for the birds!
Now watch this drive

Will it be?
No it won’t
Need I function?
No I don’t
Them are the facts

Nothing’s coming
That’s for sure
So I can
Keep to plan:
Wipe out all tax

Make a speech, sign a bill
Big state dinner in Brazil
This job’s a snap
Nothing’s coming
I don’t care
What they say
Go away
Time for a nap

Bad news that’s offered
While clearing brush in Crawford
Do not deliver to me

There’ll be no hijacked plane
Nor a big hurricane
Not on my watch
Not on my watch
Not on my watch!

Well guess what: terrorists fly planes into the World Trade Center, the Pentagon, and a Pennsylvania field.

Bush:
The most beautiful sound I ever heard
Bin Laden!
Bin Laden! Bin Laden! Bin Laden!

All the beautiful sounds of the world in a pair of words
Bin Laden!
Bin Laden! Bin Laden! Bin Laden!
Bin Laden! Bin Laden!

Bin Laden!
I’ve just been attacked by Bin Laden!
And suddenly that name
Will take all of the blame
From me!

Bin Laden!
I’ll pin everything on Bin Laden!
And suddenly that sound
Will be heard all around
You’ll see

Bin Laden
Say it once and you’re done persuading
Say it three thousand four hundred and sixty-seven times
And Iraq you’re invading
Bin Laden
I’ll never stop blaming Bin Laden

Bin Laden!
Bin Laden!
Bin Laden! Bin Laden!
Bin Laden!
Bin Laden!
Bin Laden!
Bin Laden! Bin Laden!

Say it once and you’re done persuading
Say it three thousand four hundred and sixty-seven times
And Iraq you’re invading
Bin Laden
I’ll never stop blaming Bin Laden

The right loves the way things are going. The left doesn’t.

Neocons:
Check and balance
Peculiar notion
Tends to impede any motion

Always the Congress grandstanding
Always judicial branch demanding
And the factions banding
And the public meeting
And ideas competing

I want enlightened dictator!
Have your democracy later!

I want to reshape America
Let the elite rape America
“Act like a big ape” America
Liberals:
Then will it still be America?

Neocons:
Land of the free and of the brave
Liberals:
Free just as long as you behave!
Neocons:
No man is higher than the law
Liberals:
Except those who feed us that old saw!

Rights disappear in America
Ruling with fear in America
Year after year in America
Neocons:
That’s because we’re in America

Liberals:
I think I’ll vacate the U.S.
Neocons:
No place is in less of a mess!
Liberals:
Maybe in France I can get laid
Neocons:
Maybe in France we will invade!

The administration hustles the world toward war with Afghanistan Iraq to capture Osama Bin Laden Saddam Hussein.

Bush, Cheney, and Rumsfeld:
Last month, last month
The war began last month
We shocked
And then we awed
And we won

Last month, last month
It only took a month
War is hell —
Hell of a
Lot of fun!

Today, the mission is accomplished
Saddam is out of power
These last throes soon are done

We’ve just begun
There’s more wars to begin
And be won
Next month!

But the Iraq war goes into extra innings. Detainees accumulate in Guantánamo Bay.

Detainees:
My dear Attorney Gen’ral
Ya gotta understand
It’s been a hundred hours
You’ve made us have to stand
We’re cold and wet and naked
We keep on getting dunked
Gen’ral, at politeness you have flunked

Dear Gen’ral Gonzales, we’re very upset
Not habeas nor corpus can our advocates get
Geneva Conventions say what you should do
You should not run this like a zoo
Like a zoo!
Like a zoo, like a zoo
Like a filthy zoo
We’re like animals in some big zoo

My deity is Allah
My skin’s a sandy brown
My uncle is a mullah
In some Mideastern town
I said once Bush was crazy
They came for me that day
Golly gee! They carried me away

Yes, Gen’ral Gonzales, you’re being a jerk
Your experts in the CIA say torture won’t work
It’s simply sadistic and doesn’t make sense
You’re jeopardizing your defense
Your defense!
Your defense, your defense
Your homeland defense
This offense is not the best defense

The trouble is he’s sour
The trouble is he’s smart
The trouble is his power
And that he has no heart
The trouble’s his assistants’
The trouble is his own

Gen’ral, you should leave us all alone!

Gee, Gen’ral Gonzales, we’re hanging by thumbs
And bleeding from our ears because of punctured eardrums
Gee, Gen’ral Gonzales, what are we to do?
Gee, Gen’ral Gonzales,
[waterboarding sounds]!

Everything is going Bush’s way.

Bush:
I feel petty
Oh so petty
I feel petty
And heady
And big
And I’m ready
To imprison every dirty Whig

I feel scary
I feel saucy
And contrary and bossy and smug
It’s amazing
That America is run by thugs

See “commander guy” in that mirror there
Who can that important guy be?
Such a petty face
Such a petty suit
Such a petty smirk
Such a petty me!

I feel spiteful
And vindictive
It is frightful addictive to be
What I am:
Dictatorial, petty me!

Neocons:
Have you met our friend the Decider?
The craziest guy on the earth
Divider and not a uniter
He’s the one who’s your friend if you have some net worth

He thinks he’s in charge
He thinks that he rules
He isn’t in charge
He’s merely a tool

It must be the desk
Or “Hail to the Chief”
Or all the free press
And their false belief

Pay no mind to him
Send for Cheney
He’s the one who is
Really brainy

Simple, unsure
Confused and inbred
Uncouth, immature
And over his head!

At last the Democrats retake control of Congress. They vow a showdown with Bush over funding for the war.

Democrats:
We Democrats won’t have our way tonight!
We Democrats won’t have our say tonight!
Constituents they grumble: go fight
Republicans say “boo” and
They give us a fright

Republicans:
We’re gonna use ad hominems tonight!
We’re gonna make a fool of them tonight!
We’ll make insinuations, then watch
Those saviors of the nation grow wet at the crotch
Tonight!

Democrats and Republicans:
We’re gonna de-bate tonight
But dog-and-pony shows cannot change our course
We’re gonna make clear tonight
Our poor constituents have backed the wrong horse

Republicans:
Well we won’t stop it!

Democrats:
And we can’t stop it!

Democrats and Republicans:
The whole damn country will have buyer’s remorse
Tonight!

The press:
The press is gonna get its kicks tonight!
The press is gonna get last licks tonight!
The Democrats may talk tough. So what?
The status quo’s not threatened. They’re stuck in a rut

The left:
Tonight, tonight
We’ll end this war tonight
Tonight our side at last has its day
Tonight, tonight
They’ll hear us roar tonight
And we’ll make George Bush do what we say
The past six years have seemed forever
Our setbacks have seemed endless
Although our cause is right
Oh pols, hang tight
And into the abyss shine some light
Tonight!

Democrats:
The Democrats will lose the vote tonight!
We do not want to rock the boat tonight!
The press might say we’re causing gridlock
So let’s just help the Bushies to run out the clock

The left:
Tonight, tonight
We’ll end this war tonight

Republicans:
We’ll paint ’em soft on defense!
We’ll make ’em sit on the fence!

The left:
Tonight our side at last has its day

Democrats:
Let’s hope this all goes away

The left:
Tonight, tonight
They’ll hear us roar tonight
And we’ll make George Bush do what we say

The press:
We’ll gonna snark it tonight!

The left:
The past six years have seemed forever
Our setbacks have seemed endless

Republicans:
They can’t stop us

Democrats:
We can’t stop them

The left:
Although our cause is right

The press:
We’ll keep our narrative whole tonight

The left:
Oh pols, hang tight
And into the abyss shine some light

Democrats:
We’ll disappoint them tonight

Republicans:
We’ll give no quarter tonight

The press:
Bread and circus tonight

All:
Tonight!

The Democrats fold like a wet taco. The left is deeply dejected.

The left:
There’s a place for us
Online, a place for us
Point your browser and log in on
Dailykos.com

There’s a place where we
Commiserate and we
Try to picture how things should be
Try to take down the GOP

Online
Online
We’ll find a new way of leading
We’ll find a way of succeeding
Online

The left sees one hope remaining.

The left:
Gore, Gore
Albert Gore
Please run, Gore!

Gotta do it
Step up to it
Hear us implore, Gore!

Don’t sit out
‘Cause there’s no doubt
You’d come out ahead

Join the fray
‘Cause that’s the way
The Republicans will fill with dread

Gore, Gore
Albert Gore
Jump in, Gore!

Throw your hat in
Rivals flatten
Do not ignore, Gore!

Run, man, run
So that we can stop the war, Gore!

We’re crying out for
Al Gore

As Bush’s poll numbers sink, the complicit press finds itself on the ropes.

The press:
A man like that who’d wreck the nation
Provides reporters with sensation
We must be spoon-fed
Please keep us spoon-fed

A man like that makes our job easy
And even though you think it’s sleazy
We must be spoon-fed
Please keep us spoon-fed

He tells us what we are to write
He tells us what we are to think
So we can spend
Less time on work
More time on drink!
With a wink and nod, boys!
With a wink!

A man like that wants only one thing:
To leave the rest of you with nothing
“If you can’t beat them, you’d better join”
We could not win
And so we joined him
And so we joined…

The left:
Oh, mainstream media, no
Oh, media, no

That is a craven policy
It’s bad for our democracy
You hear my words
And know they’re true
There’s no excuse
You’re obtuse!
You media are obtuse!

Tell the truth!

You should know better
You went to school, or so you said
You should know better

We have this land and it’s all that we have
That, and laws that we must cleave to

We live here, we vote
We’re all in the same boat
We and you

We have this land and it’s all that we need
That, and laws, but they need us too

They’re only as good
As they are understood
And that’s why we need you

Inform, inform the elect’rate
With real facts
And nuance
And truth!
With the truth!

The press:
The press is
Old news
Now bloggers fill our shoes
The press and the left:
The blogs are our life!

Sgt. Pepper party

It was twenty years ago today my friend Nathaniel had a big “It was twenty years ago today” party in honor of the twentieth anniversary of Sgt. Pepper’s Lonely Hearts Club Band. He had just hired me as a summer intern. He passed around party invitations that amazed me with their creativity and erudition. The party itself was great hippie fun.

To mark the occasion, I just sent him a message that read, in part: “I think it’s awesome that Paul McCartney is sixty-four now that it was twenty years ago today that it was twenty years ago today that it was twenty years ago today that Sergeant Pepper taught the band to play.”

Mother, May, I

Not that long ago, I wrote:

Now if we can just get out of April […] Our May calendar, it need hardly be said, is becoming alarmingly full of things pre-empted by April events. I dread the prospect of our new in-joke being, “In June.”

If I had known what May held in store — the death of my mom, the collapse of the Democrats, and in a little twist of the knife, the sudden closure of Sushi Ya in Palo Alto — I would have wished for April to go on and on and on.

May, don’t let the door hit you on the way out.