First Jason Kottke. Then Dave Shea. Then fwammo! — a whole ‘mess of articles on XHTML, semantics, and standards. Note to self: if one had anything to say on this general subject — say, for example, something on the absolute necessity of “bulletproofing” one’s XHTML — now would be an excellent time to write it up and get it posted in a prominent place. Hmmm.

In other news, my baby sister has tripped off to college. I think I’m feeling a small taste of what my parents must be feeling. We’re supposed to be excited for her and all, this is a wonderful opportunity for her, but…

The good news is that baby sis and I finally got to see Ferris Bueller’s Day Off together. When I learned she hadn’t seen it yet, I was horrified — this would have to be rectified immediately. I was a bit worried that the movie wouldn’t translate very well across half a generation, but thank goodness, Ferris Bueller’s Day Off stood the test of time.1 We were both crying with laughter at the “Star Wars” flying-car scene — she seeing it for the first time, me for the sixth or seventh at least. Fabulous stuff. Somehow Ferris manages to be a great teen movie without resorting to endless bodily fluid jokes. (I suppose there was a vomit joke or two in there, but it was electronically-faked vomit, which is forgivable.)

Anyway, because I’m feeling bummed, I thought I’d post something I read a few days ago that cheered me up immensely. The following is from the transcript of last week’s live chat with Carolyn Hax, the Washington Post’s advice columnist. Hax rocks, but her regular readers (the “peanuts”) sometimes rock harder.

The Twilight Zone: My father has cancer and I need to go home to help my mother take care of him. Since my parents are being bankrupted by medical bills, and I’m a non-profit grunt, my father’s (wealthy) mother offered to pay for my plane fare. She sent the check last week and then calls me up last night (she has never called me before in my life) to accuse me of inflating the cost of the tickets to get more money out of her. I’m mortified that she would even ask. So my questions are: I know that your job entails a lot of head-banging and I was wondering what materials you would recommend: walls, wooden posts or metal poles? And when she dies and I get my inheritence, should I blow it all on something frivolous, or donate it all to a Jewish charity (she hates the fact that my father married a Jew and my brother and I are Jewish)?

Carolyn Hax: Answer: Yes, people really are that awful. I’m sorry. Any chance you can afford to send her check back, or pay her back for the ticket? Even if it takes you years of monthly installments, the satisfaction might be worth it.

Hax handles several more questions in the chat, and then…

Re: Twilight Zone: I’m the CFO of a small Jewish charity in Rockville. How soon is Grandma expected to be of blessed memory?

Carolyn Hax: I love my job.

1. With a few exceptions — for example, Sloane’s fringed leather jacket did not stand the test of time.

Nobody Beats Up My Little Brother But Me

Deep within the comments of Dave Shea’s recent post on browser dependencies, Jeff Croft summarizes his design methodology. It’s so excellent that I’m going to go right ahead and reprint the thing:

In practice, I often find myself doing a bit of an “outside-in” thing. Since my University job forces me to make sites look reasonable in Netscape 4.7x, I have a general design process that looks something like this:

  1. Mark up content in XHTML. Test in Lynx to esure proper flow and such.
  2. Link to a basic stylesheet that Netscape 4 will see.
  3. Write styles for basic (NN4) stylesheet. Typically, this is fonts, colors, and not much else.
  4. @import an advanced stylesheet, for modern browsers.
  5. Write styles for advanced stylesheet, taking full advantage of as much CSS as possible, not really caring whether it works in “mid-level” browser such as IE5 or IE6. At this point, I’m just getting it to look perfect in Safari/Mozilla/Other near-perfect browser.
  6. Revert to a mid-level browser (usually IE5 and IE6) and tweak styles to satisfy them.

Right on, Jeff. Methodical and comprehensive.

I can also sympathize with Jeff and the requirements of his University job. After all, for three-and-a-half years, I had to target Netscape 4.7 as my organization’s primary browser. I was waiting for years for the company to switch to Netscape 6… then Netscape 6.2… then Netscape 7… but it never happened. Be with me here, people. Feel my pain.

So these days I’m of two minds when I hear people ganging up on poor old Netscape 4. On the one hand, Netscape 4 deserves to be bashed. It is truly a lousy piece of software in all respects: standards compliance, rendering speed, user interface, system resources consumed, you name it.1 On the other hand, most of the people doing the bashing don’t really know the horror. Sure, they’ve thrown up their hands in disgust at its CSS bugs.2 Who hasn’t? But have they fought with it for hours? Have they tried to scroll through a styled table with hundreds of cells on an old UltraSparc? Have they had to explain to users that disabling JavaScript also secretly disables style sheets (even though the two options are separate checkboxes that sit right next to each other)? In short, have they bled?

I dunno. I know it’s perverse, but sometimes I feel like I should defend battered, dying old Netscape 4 from the general population. Journeymen! Dilettantes! Feh. If anyone has the right to bash Netscape 4, it ought to be me.

1. The one area where Netscape 4 made signficant strides was stability. Early Netscape 4 was horribly crashy, but as we moved up through Netscape 4.71, 4.72, etc., it actually became fairly stable. Go figure.

2. Incidentally, Netscape 4 sorta kinda understands the float property. So with some tweaking, you can produce primitive tableless sites that display (imperfectly) in Netscape 4. This very site is only one example.

3. Regarding the title of this entry: I don’t actually have a little brother, and I wouldn’t beat him up if I did. It’s just an expression.

Friend Of A Friend

I’d like to take this opportunity to offer a hearty congratulations to Mike McGee. Earlier this month Mike did all his fellow South Bay Areans proud by winning the National Poetry Slam Championship. That’s right — the reigning Poetry Slam champ is from San Jose. Not San Francisco, not Los Angeles, New York, or Chicago, but San Jose. I just can’t believe that I had to read about it in the local free paper as opposed to hearing it from Sam directly.

Not that I can blame Sam for this. It’s not like he didn’t try. “Hey Evan — Mike is performing up in The City tonight — want to come?” “Nah, I’m tired, and The City is way too far.” “Hey Evan — Mike is performing in San Jose tonight.” “Nah, I’m seeing a movie.” Excuse after excuse. Truth is, I’ve never cared much for slam poetry. I had long ago placed slam poetry in a box labelled “Not-Art”, along with Anguished Teenage Poetry and Jonathan Franzen novels. And so I figured that even someone with Mike McGee’s quicksilver brilliance wasn’t worth getting off my duff to go see. It never occurred to me that he might actually be good. As in, really good. What an unsupportive jerk I was. Sigh.

The Road to Digital Nirvana

We have all these Devices. We buy these Devices because we think they’ll make our lives a little better or easier; at the very least, we hope that they won’t make our lives worse. And we expect that at some point, the Devices that we cobble together will just work — they won’t crash, they’ll do what we tell them to do, and they’ll communicate with each other seamlessly.

I’m not sure what Digital Nirvana is, but I’ll know it when I see it.

And although it’s a process of trial-and-error, I think I’m headed in the right direction. For example, not so long ago I had a computer that crashed every two or three days. Now I have a computer that has been running almost continuously for the last year and a half, with only two crashes. This is Progress. Other steps are smaller in scope but still important. DragThing. NetNewsWire. A decent web host. Flexible weblog software. The list goes on and on.

Of course, sometimes I make mistakes. For example, a couple of months ago I bought an old Palm VII for twenty bucks at a local garage sale. The guy was a pretty serious geek, judging from the used books he was selling. We bonded. He threw in two serial cradles, a keyboard, and a classy black leather case. Clapped me on the back. “Go forth, young man.” Well, maybe I added that last part. Anyway, I was stoked. I took my very first PDA home and spent an hour going through all the functions, learning Graffiti, generally having a ball. Then I discovered that the only way to sync the Palm with my desktop would be to get a serial-to-USB converter, and that said converters would cost more than I spent for the PDA in the first place. “Huh,” I said. Since then, the Palm VII has sat in my Big Drawer of Extra Cables and Electronic Detritus, safe and sound in its classy black leather case.

Then there was the time I decided that I was tired of writing journal entries in Moveable Type’s tiny little browser textbox, and it was time to find a more elegant interface. So I downloaded a well-known weblog editing tool for OS X and fired it up. I hadn’t configured my site info yet, but I figured what the hell — let’s see what this bad boy can do! I pressed the Connect button, expecting to see some sort of pop-up (“No default blog available. Please enter your URL, name, and password…”). Instead, the program went into a frenzy of trying to access… nothing, apparently, and froze up. Annoyed, I killed the application process and started over. I entered my blog info like a good little user and tried again. Success! At this point, I was afraid to create a new post, so I pulled up a recent entry instead. To my horror, the entry appeared with the whitespace horribly mangled, along with a number of strange tags after each newline “<Unknown Escape>“. Whoa! I don’t know about you, but I consider conversion of newline characters between Linux and Mac OS X to be a solvable problem. Something I sorta kinda expect my weblog editing software to take care of automatically. Now I was really annoyed, and worried that I might overwrite my old entry with a bunch of invalid crud. So I went to close the window, only to suddenly notice that the standard red “close window” button had been inexplicably disabled. Huh?? Sigh. Command-Q, drag folder to Trash.

My latest project: Entering the Wireless World. I’ll admit, it is a bit ambitious of me to set up a wireless hub. My desktop does fine and dandy while wired, and so really only my laptop would benefit. A wireless network of One is not so impressive. But hey, I like to plan ahead.

Fire In Her Wake

Via Jacques Distler, I ran across this lovely article about gem-quality artificial diamonds. According to the article, the DeBeers cartel is pretty freaked out.

In Antwerp, Van Royen tells me of another threat. There’s a rumor of a new, experimental method for growing gem-quality diamonds. The process – chemical vapor deposition – has been used for more than a decade to cover relatively large surfaces with microscopic diamond crystals. The technique transforms carbon into a plasma, which then precipitates onto a substrate as diamond. The problem with the technology has always been that no one could figure out how to grow a single crystal using the method. At least until now, Van Royen says. Apollo Diamond, a shadowy company in Boston, is rumored to be sitting on a single-crystal breakthrough. If true, it represents a new challenge to the industry, since CVD diamonds could conceivably be grown in large bricks that, when cut and polished, would be indistinguishable from natural diamonds. “But nobody has seen them in Antwerp,” Van Royen says. “So we don’t even know if they are for real.”

I take a transparent 35-millimeter film canister from my pocket and put it on the table. Two small diamonds are cushioned on cotton balls inside. “Believe me,” I say, “they’re for real.”

Longtime readers of this journal1 might recall that I’ve been concerned about diamonds for a while now. I’ve wanted nothing to do with the unscrupulous DeBeers cartel and their nasty “conflict diamonds”. In fact, I had pretty much given up on the idea of engagement rings altogether until M’ris pointed out that you need something to brand your spouse as property. But what, then? M’ris suggested tattoos. I thought that a tattoo might be too subtle, but M’ris replied that the tattoo would simply need to be across the forehead and read, “TAKEN”. Problem solved!

Speaking of M’ris, I now have proof that the officially silly California recall is entirely her fault. When she was in Minnesota, Jesse Ventura was elected governor. Now that she’s in California, we get this recall circus. Coincidence??? I think not, and neither does her old friend Scott. Now, sure — you nitpickers are saying, “Evan, aren’t you coming a little unhinged? That doesn’t exactly constitute proof, old boy.” Well, then, consider this: I’ve done a little2 linguistic research and just as I suspected, in her native Norsk tongue “Marissa Kristine Gritter” translates as “The all-powerful warrior woman who, because of her endurance and inflexible will to win, will go from gubernatorial debacle to gubernatorial debacle leaving fire in her wake.” I dunno, seems awfully suspicious to me.

1. I.e. Marissa, my sister, my brother-in-law, and Mom.

2. Obviously very little.

Cats and Dogs, Living Together

Civilization is coming to an end. No, really. Consider the following: last Tuesday’s post, which was about tedious markup language minutiae, got seventeen comments. The post right before that, which was about the sleazy goings-on at a bachelor party, got a grand total of one comment. Call me crazy, but when esoteric XHTML issues are considered to be more important than girls in short-shorts, something has gone Seriously Wrong.

Not that I’m complaining about my little three-month experiment with comments. So far the level of discourse has been far better than expected. Tuesday’s post was a perfect example: people who I greatly respect were writing in and discussing the issues at hand in a thoughtful and informative manner. It’s like freakin’ NPR over here. Note that at the same time, poor Mark Pilgrim posted about his experience installing Windows XP and received over 200 helpful comments informing him that “your an idiot” or advising him to “get a Mac.” Yeah, Mark — what are you waiting for?

In other news: last weekend was my ten-year high school reunion. Last year Brian had to practically drag me to my five-year college reunion, which turned out to be a lot more fun than I thought. So I was definitely looking forward to the high school reunion, and the reunion did not disappoint.1 My only major mistake was in choosing to host a small post-reunion party, thus giving Nancy the opportunity to snicker at the contents of my bachelor’s fridge.2 I swear that it was full of vegetables just a couple of days before…

Finally, I’ve started a new job with Chordiant Software. It’s not earthshaking news or anything (“FOR IMMEDIATE RELEASE — CHORDIANT SOFTWARE, INC. ACQUIRES WAYWARD TECH WRITER…”), but I’m pretty excited about it nonetheless. New people to meet, new projects to work on, new software to play with — and a supply closet fully stocked with Swingline staplers. Pinch me!

1. Although unlike last year’s college reunion, nobody proposed marriage to Sherry. Seems like an oversight, but what can you do?

2. Three beers, assorted condiments, and some cheese.

Bulletproof XHTML

Is your XHTML bulletproof?

Jacques Distler‘s is. So is Yuan-Chung Cheng‘s. Dave Shea‘s working on it.

The day’s just wasting away, isn’t it?


I keep my RSS subscriptions fixed at a manageable 20; Jeffrey Zeldman‘s got a permanent spot on my list. Zeldman is a superb designer and a hell of a writer. I love Zeldman bunches.

And yet as often as I find his comments on web standards illuminating, occasionally I’m forcibly reminded that deep down Zeldman is a Technology Evangelist. Evangelists are great at efficiently spreading new ideas throughout the community… but the flip side is that they often have trouble departing from certain orthodoxies.

For a prime example of this, see Zeldman’s Web Design World keynote. There’s plenty of good stuff in the keynote overall, but this particular slide needs addressing:

  1. “XHTML is XML that acts like HTML in browsers.”

    Better to replace “acts like” with “is”, given that nearly all “XHTML” websites are actually parsed as HTML by all currently available browsers. (I suppose there are a rarified few sites that actually can be parsed as XML by certain highly advanced browsers, but this hardly counts as statistically significant.)

  2. “It also works as expected in most Internet devices (Palm Pilots, web phones, screen readers).”

    There are some who would dispute that. Apparently many real-world mobile devices happily support old-skool HTML cruft (table-based layouts, the <font> tag) while ignoring the products of our more enlightened era (XHTML Basic, CSS). Weird but true.

  3. “It’s as easy to learn and use as HTML.”

    Except you have to teach people about closing tags, proper nesting, encoding all your ampersands, and so on. Meanwhile, people who feel like writing tag soup HTML can just whip out a text editor and go. (Then again, considering the tremendous popularity of tag-soup XHTML on the web today, maybe this is a distinction without a difference.)

  4. “It’s the current recommended markup standard (replaces HTML 4).”

    The closest the spec comes to saying this is, “The XHTML family is the next step in the evolution of the Internet. By migrating to XHTML today, content developers can enter the XML world with all of its attendant benefits, while still remaining confident in their content’s backward and future compatibility.” That’s a fine marketing blurb, but it’s not an official announcement that HTML 4.01 is deprecated.

  5. “Because it’s XML, it works better with existing XML languages and XML-based tools (SVG, SOAP, RSS, SMIL, XSL, XSLT, databases, etc.).”

    This is pretty hand-wavy. On the server side, you can easily transform your backend data into valid XHTML, but you can also transform it into valid HTML 4.01 Strict just as easily. Heck, some people do both. On the client side, there are a tiny, tiny fraction of super-geeks who embed SVG or MathML directly in their valid and properly MIME-typed XHTML pages. These super-geeks are the only people in the world who have to present outward-facing XHTML; the rest of us are just fooling around.

  6. “It brings consistency to web documents that was missing in HTML.”

    I assume this means “more consistency in coding style.” XHTML theoretically enforces more consistency due to its more rigorous syntax… but since the vast majority of people can’t be bothered to produce valid XHTML code, this benefit is somewhat obviated.

  7. “It’s a bridge to more advanced (future) XML languages and applications and perhaps to more advanced versions of itself (XHTML 2?).”


The presentation then goes on to cite nine websites that are using structured XHTML and CSS, including some big names such as ESPN and Wired. None of the sites serve up their pages as application/xhtml+xml to browsers that accept this MIME-type, which means that each site is being treated as… you guessed it, good old fashioned HTML. And that’s a damn good thing, because four of the sites have invalid home pages, and four others have invalid secondary pages just one click away. The only site diligent enough to pass the “Laziness Test” is the CSS Zen Garden. (To his further credit, the creator of the Zen Garden is considering the MIME-type issues as we speak.)

Anyway. The point is not that cutting edge designs are bad; they’re not. The point is not that “Evan hates XHTML”; I don’t. XHTML allows you to do some amazing things that you can’t do with HTML. Unfortunately, due to the dreadfully primitive state of XML browsers and tools, there’s really nobody using XHTML for anything that you can’t do with HTML.[1]

The real problem is that XHTML is being touted as a replacement for HTML. It’s not. XHTML is a different technology that suits different purposes. There are a lot of influential people who are blurring this distinction, and I’d like to think that they know better.

1. Except for a few oddball physicists, mathematicians, and chemists, but who’s counting them?

Nerd Bachelor Party

Last Saturday, my college friend Russ was in town from Colorado for his bachelor party. It was awfully nice of Russ to select his Bay Area friends to host his bachelor party over his pockets of friends in Colorado, Southern California, and the Pacific Northwest. Take that, Portland! Then again, for all I know he had multiple bachelor parties. Maybe Russ was two-timing us. But why would he bother — how could anyone throw a better bachelor party than a collection of Harvey Mudd alumni? Damn skippy.

I arrived at dinnertime. Russ and the rest of the gang had been paintballing earlier that day, as evidenced by numerous welts. I asked where we were going for dinner. “Ciao Bella,” said Kevin, our ringleader. Ciao Bella? “It’s a restaurant up in Ben Lomond where the waitresses do cute little dances and sing songs and stuff. I’ve ridden up there on my bike before. It’s fun.”

What I thought was, “Hmmm. So we’re going to go to some dingy biker nudie bar in the Santa Cruz Mountains. Greeaat.” Of course I didn’t say that — I covered by saying, “Hmmm. So what kind of food do they serve?” Russ and Kevin gave me a funny look. Ciao Bella. Aha… I’m guessing, like, Italian food or something.

Fortunately, Ciao Bella turned out to not be a dingy biker nudie bar. Ciao Bella is a little hard to describe, actually.

There’s a genre of Restaurants That Have Crap on the Walls: Chili’s, Applebee’s, TGI Friday’s, and so on. Each of these franchises has a contract with the Wall Crap Factory in Schenectady, which churns out vast quantities of wall crap for each franchise: wacky pictures, plastic animal heads, snow globes, beach paraphernalia, and so on. Each restaurant can therefore cover the surface area of its walls with the precise fraction of wall crap that has been scientifically determined to provide a “fun” and “kitsch” atmosphere without going overboard and looking unclean or threatening.

Well, Ciao Bella has no problem with appearing unclean or threatening; the entire restaurant is slathered in wall crap several layers thick. A dusty 60s-era TV facing a 30-year-old bench car seat (with seat belts), a white porcelain sink used as an ashtray, a golden statue of a man wearing fins on his feet… and that’s just in the tiny outside smoking area. A narrow 4′ x 1.5′ slit in the wall connects the smoking area to the kitchen, presumably so that the staff can sneak out for quick smoke breaks. Maybe smoking keeps you skinny after all.

The entirely female wait staff can be described as “perky, athletic Goth.” There was nothing nudie bar about them, other than the fact that each waitress had a cute nickname such as “Tiger” or “Peanut”. Our waitress’s nom du service was “Agent 99”. There were a couple of male busboys that looked more yuppie than the waitresses: conservative haircuts, button down shirts, and no visible jewelry. However, at least one of the busboys had an elaborate sun tattoo peeking above his collar on the back of his neck, so I don’t think they’re fooling anybody.

Although the food was Spaghetti Factory-ish, the table wine was good. As it turned out, I should have ordered more wine, as Kevin generously picked up the tab. And the entertainment and atmosphere was top notch. As Kevin had advertised, every once in a while a waitress would spontaneously start singing — something in Italian, a song from a musical, a pop song. They had very nice voices that carried well through the restaurant. We were also treated to an energetic dance routine involving all the waitresses and Tad, the owner. We didn’t bring any cameras, but fortunately the SAGA North Ski and Snowboard club did take a couple of pictures last year, so you can get the general idea. On our particular evening, Tad was wearing shiny blue metallic shorts with some sort of garter belt contraption. And, as we discovered, red metallic thong underwear.

As the evening came to a close, Agent 99 offered to sign our wine cork for us, but we insisted that she sign our bachelor instead. “Agent 99 was here.” She gamely tried, but the thing about guys is… well, guys are hairy. Throughout our teens and twenties we grow progressively hairier — as teenagers, we think this is a good thing, but soon enough we start hoping that we hit a certain acceptable level of hairyness and then stop. Unfortunately, Russ shot past this level at about the age of fourteen. Agent 99 was therefore unable to sign Russ, not even with a Sharpie. She complained that her pen was inadequate to the task, but I think it’s a poor artist who blames her tools. We suggested that she try signing Russ’s (slightly less hairy) forehead, but spoilsport Russ mentioned something about an upcoming wedding and photographs and stuff. What-ever.

We then bid arrivederci to Ciao Bella and headed back down the mountain to San Jose. I have to admit that this made me sad — I had a bit of a crush on Agent 99, but she’s an alternative Santa Cruz Mountains type and I’m a straightlaced Silicon Valley nerd type, so there you have it. Now — I’m willing to grant that A) God exists and B) He has a wicked sense of humor. In fact, I’m convinced of both. However, God’s wicked sense of humor does not extend to Wacky Romantic Comedy, and for that reason Agent 99 and I would never work out.

The next stop was Sugars in San Jose, which is kind of like Hooters, but with coffee. I was of two minds about this. On the one hand, as most of my friends know, I’m a bonafide lefty feminist. On the other hand, I also like underdogs. Apparently the neighbors and the city hate Sugars and are trying to put it out of business through the usual methods: abusive code inspections, overly-conscientious OSHA reviews, and so on. If a man has a dream, and that dream involves having scantily-clad women serving coffee, who am I to stand in the way?

Sugars turned out to be a hole with techno music blaring, filled with assorted beady-eyed San Jose scuzzoids and creepos. Gang tattoos abounded on both the patrons and wait staff. The waitresses were friendly enough, but their outfits (red tanktops and black short-short-shorts) were extremely unflattering even in dim light. The four dollar coffee was mediocre but served in small portions. Our waitress gave us a pack of unpleasantly sticky cards, and so the six of us huddled around our table, drank our one coffee, and played a Russian card game. I actually didn’t do too badly at this new card game — maybe because I was focusing intently on the cards. Or maybe it was because I’m part Russian. At midnight, my fellow San Jose scuzzoids and I slunk out of Sugars in search of new entertainment.

We eventually found ourselves at South First Billiards. I’ve been there a couple of times, and I’m always surprised at how clean and well-lit and airy and spacious it is. Most of the tables were occupied, but the architecture of the place is such that it didn’t look that way. Hmmm. I just dunno how I feel about a pool hall where the air is clean, where the waitress brings you beer promptly and with a smile, and where you’re not constantly bumping the people at the next table with your cue.

After a few games of pool, it was about that time where the SJPD starts marshalling in force to clear out the downtown area. So it was home again, home again, jiggety-jig for us. Overall, I had a good time. But of course I don’t get out much. In any case, here’s hoping Russ had a good time too — and I wish him and his bride-to-be Holly all my best. Next time you’re in town, Russ, we’ll get you some better coffee. And maybe we’ll find a waitress with one of them NASA pens.