A Web Standards Adventure

The amazing Molly posted a tweet yesterday with a photo of a bunch of us at the 2006 W3C Plenary in Mandelieu, France. I hadn’t thought about it in a while, but that plenary was the site of one of my few accomplishments in the web standards world.

A little background, since this is now ancient web history. I was on the CSS Working Group at the W3C, representing AOL, from ~2004 – ~2008. I was just a front-end developer who was passionate about the web and standards-based development. Kimberly Blessing, who was already a member of the group and my co-conspirator at AOL, encouraged me to join, so I did. It was surprisingly easy. I just had to ask my manager, who had no idea what it was, and Roger Martin, AOL’s director of all-things-standards, and I was in. There was no test or interview.

And that’s how a college dropout who didn’t build web browsers and had no idea what he was getting himself into joined the standards body that creates CSS, the members of which are geniuses who invented the language in the first place or actually build the web browsers I used every day. It was intimidating, and I spent my first two years in the WG trying to figure out what the hell I was doing there and how I could contribute. Kimberly and I figured out fairly quickly that we were the voice of the “authors” of the web – all the people who build web pages. So, we advocated for things that would make our lives easier and make it easier to build the complex layouts our bosses were demanding.

If you were involved in this story and I’ve left you out, I’m sorry. It was a long time ago, and my memory is a little foggy. If I’ve gotten any of the facts wrong, please let me know!

Now on to 2006 and the Plenary. This was when the WHATWG and their “guerrilla” HTML5 standard were really starting to gain traction with web developers, to the point that browser vendors were actually starting to implement pieces of it. We were still stuck with IE6, but I think there were rumbles at that point that Microsoft was starting to budge and was going to start working on IE again.

That was a lot of preamble, I’m sorry. Every year at the Plenary, there’s a big cocktail party / reception thing where the nerds can all cut loose and talk about something other than web standards (we still end up talking about web standards). The day of that party, the CSS WG spent what felt like 72 hours in a meeting with the XHTML 2 working group discussing the standard and aaaaaaaaall of the many issues they needed us to address so CSS would work with it.

I left the meeting completely frustrated by what felt like a betrayal of the web’s real innovation: fault-tolerance and ease-of-use. It felt like XHTML 2.0 was reinventing the wheel and leaving out the best parts. It felt like we were wasting our time when HTML5 was right there, which felt like an iteration on the web that exists and added important missing ingredients to it.

So, I get to the cocktail party and I’m in a funk. I start talking to Daniel Glazman, one of my all-time favorite W3C people and a legendary dinner companion, and asked him what probably felt like a million questions about why this and that and the other thing and eventually, “Is anyone even going to use XHTML 2?” He laughed and said, “Why don’t you go ask them?”

And that’s when the lightbulb went off. After two years on the CSS WG collaborating with legendary geniuses, I realized that not only were all the browser vendors represented, but so were the web’s largest publishers of content. Hell, I represented AOL. Yahoo was there. Microsoft, Mozilla, Opera, Apple… all there. So, I made the rounds and asked all the browser vendors and publisher folks I could find, “Are you planning on doing anything with XHTML 2? What about HTML5?”

The answers were unanimous: no one was planning on doing anything with XHTML 2 and everyone was planning on implementing at least some of HTML5 (some had already started).

I think what happened next is that I grabbed Daniel and Arun “World’s Greatest Werewolf Player” Ranganathan (who was AOL’s AC Rep and also way smarter than me, and better looking) and told them what I’d found and that’s where the idea of writing a letter came from. We decided that if we could get the major browser vendors and web publishers to jointly sign a letter throwing our support behind HTML5 and the WhatWG and asking the W3C to bring HTML5 into the W3C that it would be way more effective than us doing it individually.

Arun and I gathered all of our victims… umm… potential co-conspirators and pulled them out in the hallway. I explained the idea, Arun got all diplomatic, and we did it. The letter got written (this part is all fuzzy for me – I don’t remember who wrote it or who ended up signing it), sent, and things happened. The HTML Working Group was reformed, HTML5 became a standard within the W3C, and the web is a whole lot better for it.

I wasn’t qualified to write standards. I couldn’t even write the complex test cases used to test implementations. I gave feedback and tried to advocate for things that would make life easier for web developers and end users.

But, I am a professional troublemaker. I’m really good at it.

So, when you think you’re not qualified, or can’t get anything done, remember that an idiot without a college degree convinced a bunch of geniuses to do something crazy and in a small way helped make the web better. If I can do it, you can too. It takes creativity, perseverence and a willingness to ask the question everyone’s thinking out loud.

You can do anything. You are a being of infinite potential constrained only by the sack of meat you use to navigate the world and your brain’s idea of what’s possible. I believe in you.

My Friend Cindy Li

Cindy Li smiling on top of Twin Peaks in San Francisco

I’ve worked with hundreds, if not thousands, of people over the years.  I’ve liked most of them, been friends with a lot of them, and loved many of them.  Cindy was definitely in the last category.

Cindy Li and I became fast friends and co-conspirators while we both worked at AOL.  We were on the CSS Working Group together.  We went to SxSW Interactive many many times (we had different but overlapping “gangs” at SxSW but we always intersected somehow during the conference – sometimes in the green room, where we’d try to distract each other’s panelists).  We went to countless dinners, lunches and dim sum brunches.  We caused trouble.  With our pal Jason, we built ficlets and came up with a t-shirt that became a bit of a sensation.

Matt Harris, Patrick Haney and Jason Garber sporting the Geeks Love * shirt at dim sum.

Cindy died on Monday, 10/15/2018. Cindy was amazing. She was equal parts creative, silly, kind, funny and smart.  She was a perfect co-conspirator.  She could take bad ideas and make them brilliant.  She effortlessly seemed to rally people to join the Cindy Li Vortex of Fun Adventures.

Cindy and Kevin making stupid faces for the camera.
Cindy tormenting Jason, one of her faaaavorite pasttimes.
Cindy, about to chow down on a steak at Austin’s Hoffbrau

Cindy brought people together.  She was the ultimate connector, and even though she’s gone, the connections she made with all of the people she impacted all over the world will remain.  After she was diagnosed, Cindy organized a small group of friends from all over the world into her support system.  We were all around, talking to each other about how best to help her and her family, and the whole while she was sick, she was there being the life of the party, right up until the end.  Even with her illness, she was connecting people and spreading love, kindness and empathy.

She was a vortex of love, and fun, and whimsy, and adventure, and you weren’t just along for the ride, you were an integral part of it. I don’t think anyone who knew Cindy thought they were anything less than 100% included and in on the joke, and that’s a rare and beautiful thing.  She was that way until the day she left, I imagine riding a Hello Kitty cloud on her way to organize an adventure with St. Peter and redecorate the gates of Heaven.

Her friends organized a site for sharing memories of Cindy as a way to share with her how much she means to all of us, and as a way for her sons to understand what she meant to us when they’re older.  You can share your own memory of Cindy by following the instructions there, read her obituary, and help her kids out if you’re able.

Nerdy Songs

Jason posted a tweet about writing songs this afternoon and I must have been in a particularly suggestible post-nap state and instantly came up with several extremely nerdy song titles. I think almost all of these fall into to Nerd Country n’ Western, but whatever. Here they are:

  • I’m Semantic, But Wow, You’re Well-Formed
  • Since You Left, I’ve Been in Plain Old Semantic Hell
  • Why Do Our Tags Have to Branch?
  • If You Won’t Mock My Markup, I Won’t Jeer Your Scripts
  • What’s in a DOCTYPE?
  • I Sold My Soul to the W3C, and All I Got Was a Long-Sleeved Tee
  • Baby, It’s Not Really a Microformat!
  • Let’s Go Home and Append Some Child Nodes to Your DOM
  • If You Leave, All I’ll Have is Twitter\
    I’m sorry. I really am, but you’re welcome to add to the nerdy nonsense in the comments…

The Many Misadventures of One Kevin P. Lawver

I made it home. What a week. I posted before about what I did on the flight to China and that was the last you heard from me. Well, Saturday night, my laptop died. It suffered a complete hard drive failure. Even using Arun system disk, it couldn’t find the hard drive controller. Hopefully, this means the drive itself is OK and I can get the first day of pictures and all the stuff I worked on on the flight there off.\
But, that left me in a tough spot. I had no laptop, spotty access on my blackberry (which is OK for staying semi-connected and consuming small chunks of data, but doesn’t work very well as my primary connection to the “collective”), and I usually charge the blackberry with the laptop. Thankfully, I’d thrown a little USB power thing in my backpack just to see if it would work for charging the DS Lite.\
So, I took notes in a W3C meeting longhand, on paper… yes, I stood out. Yes, my fellow nerds gave me a hard time about it (good-naturedly, of course). Yes, it sucked not to be able to upload photos, browse the web, read feeds and hack.\
But, the worst part of the trip was my asthma. Beijing is extremely polluted, and I was affected by it. A couple times, I took a walk around the neighborhood (the hotel and conference center is right across the highway from most of the major olympic venues), and came back wheezing. The one free day I had, I took a “test” walk in the morning to see how I’d do, but had to cut my walk short and take multiple hits on my inhaler to stop the asthma attack that followed. So, I didn’t really go anywhere or see anything outside of a four or five block radius of the hotel. I didn’t want to get stuck somewhere having an asthma attack where I don’t speak the language and didn’t know where I was or how to get back to the hotel.\
There was a great dinner, with entertainment provided by students from Baihong University, and I love hanging out with W3C folks. We even got a game of werewolf together. Doug Scheppers and I cleaned up the village as werewolves and won handily. It was only slightly unfair as Doug and I are both seasoned werewolves, and we “feasted” on a game full of first-time players.\
Now, I’m home and it’s going to take me a few days to get back on schedule. A twelve hour time difference is crazy, and I don’t think I ever got quite adjusted to it, so maybe it’ll be easier coming back.\
I’m off to bed, hopefully to sleep for many many hours. I’ll hopefully post pictures tomorrow once my laptop situation is taken care of.

Published
Categorized as travel, W3C

How to Spend 14 Hours Stuck in a Chair

I’m heading to the airport in a couple hours, with a very long plane ride ahead of me (well, two, but the second is next week). How long? Well, if United is to be believed, it’s thirteen hours and forty-four minutes long. This will be the longest continuous flight I’ve ever been on (Dulles to Bangalore is twenty hours in the air, but there’s a four hour “break” in the middle). Since I almost never sleep on planes, I’ve compiled a list of things to occupy my time:

  • A bunch of DVD’s including the first season of The X-Files, Harry Potter and the Sorcerer’s Stone (so I can finally watch it with Wizard People, Dear Reader) and a bunch of other stuff that I can’t remember at the moment.
  • I downloaded a ton of TED Talks and stuff from iTunesU.
  • Here Comes Everybody by Clay Shirky and The Writing Life by Annie Dillard.
  • The old standby, the DS Lite
  • A bunch of silly programming things to play with:
    • I’m going to try to write my own queueing server, or if that fails, play with Starling
    • Work on the blog re-write
    • Work on another top secret thingie I’ve been meaning to play with.
    • Adobe AIR
  • A bunch of podcasts
  • And then, if I do all of those things, I can always watch whatever movie the airline provides.\
    Hopefully, that’ll be enough to keep my occupied from Dulles to Beijing (for the W3C AC meeting). I’ll let you know how it goes (if I can get to the internet from China… I hear they have some version of it).
Published
Categorized as travel, W3C

Web Standards’ Three Buckets of Pain

I spent this week at the W3C’s annual technical plenary, which is a week of “discussing” the future of the foundations and future of the web. I spent the first part of the week in the CSS Working Group discussing CSS3 features and CSS2.1 issues. Tuesday evening and Wednesday were spent in the AC meeting and Technical Plenary day (everyone gets together in a big room for panel discussions and lightning talks about standards-related issues – my favorite day of the week). The latter part of the week I spent in the new HTML Working Group talking about a lot of issues I’m not up to speed on because I just joined the working group (but, of course, that didn’t stop me from jumping in).\
Molly led a panel during Plenary Day called From the Outside, In: Real World Perspectives on the W3C with a handful of designers and developers who aren’t currently involved in the W3C (Aaron, Matthew, Patrick and Stephanie). The panel helped solidify a few things for me and I want to try to explore them in this post. The panel wasn’t bad by any stretch. I think it was brave for them to come into the “lion’s den” and give the W3C their perspectives. But, I felt that the way the panel was presented left people in the audience confused about the overall message, and exposes a huge gap between the W3C’s understanding of “web standards” and the web development world’s definition.\
Before I get any further, I need to explain where I stand here. I have a foot planted firmly in both worlds. I’ve been building web applications for almost a decade and have been a fan of standards-based development since late 2001 when my blog validated as XHTML 1.0 Transitional. I’ve been a member of the CSS Working Group for about four years as well.\
The complaints about web standards are varied and many, and the panel made it feel like they all fell squarely at the feet of the W3C. But, that’s just not the case. I think a lot of the problem comes from our (being the web development world) definition of “web standards” being almost completely different from the definition understood inside the W3C. To web developers the world over, “web standards” means: “What I have to do to get my page to look right in all the modern browsers.” The W3C’s definition is “the underlying specifications that implementors (in our case, web browsers) use”. See, the standards aren’t written for, or by, web developers. In the case of HTML and CSS, they’re written for and by the people who create web browsers – which is why they’re so hard for the rest of us to understand. The vocabulary is different. The requirements are different. There is a whole world of pain in store for the brave soul who wants to write a web browser – and it’s a uniquely different world of pain from someone (you and me) who wants to apply those standards to build a web page that will render in one of those web browsers.\
For the rest of this blog post, anyone building a web browser is implementing the standards, and anyone trying to build a web application is applying the standards. People building web browsers have to implement parsers, renderers, conformance checks, error handling and all sorts of other nasty things to get a browser to function. People building web applications have to take the standards and apply them through an implementation (in our case, a browser). We’re not writing the parser, we’re writing the thing that gets parsed.\
And there are our three buckets of pain:

  1. The Specifications
  2. The Implementations
  3. The Applications\
    h4. The Problems With The Specifications\
    The major problems I hear about the W3C and its processes are:
  4. It takes too long.
  5. I don’t know what’s going on or when we’re going to see the standards come out.
  6. Spec X is missing this, this and this!
  7. Developers and designers have no voice in the standards at all!\
    One, two and four are, or were, true. Number three is only half true most of the time. Every time I ask developers or designers I know about what’s missing from CSS, I always hear “I want multiple backgrounds and a real layout model. Oh, and border images!” Two of those are already implemented in Safari, and I’ll bet you Firefox will have them done shortly. They’re all in CSS3 somewhere.\
    Web developers and designers have more of a voice on the CSS Working Group than ever. There are currently three designers in the working group (two from AOL and one invited expert). The group is also working with the new CSS11 group, and is actively gathering feedback. The new HTML Working Group has several members who are web developers and over four hundred invited experts (who can’t all be building browsers).\
    The W3C is working very hard at opening up. It’s not there, and they’ll stumble, but the attempt is being made.\
    h4. The Problems With Implementations
  8. Microsoft took a vacation. IE6 has been out (and broken) for a very long time. We got complacent in our hacks and nonsense to work around its “quirks” and now those bad habits and hacks are getting stale.
  9. They don’t move fast enough! See number one. We’re tired of waiting, but laying the blame on the CSS Working Group instead of Microsoft. If Microsoft had been actively engaged in the Working Group this whole time, we’d be a lot farther along. It’s very hard to get to interoperability when the market leader is working on other things.
  10. They have bugs. Every piece of software ever written has bugs. Thankfully, bugs get fixed in the other browsers fairly quickly. Unfortunately, IE is now on a 15-20 month release cycle, which means we have a while to wait until we see things we need like display: table and probably 30-45 months until we can hope to see advanced layout or the grid implemented.\
    h4. The Problems With Applications\
    (this is going to be painful… just hold on – it’ll be over soon)\
    Our biggest problem as web developers and designers is the misunderstanding I pointed out at the beginning. We need to understand the three buckets of pain and what we can expect out of each one. There’s no reason to rush standards out if no one’s going to implement them. There’s no reason for us to try to use them until they’ve been implemented.\
    We have to admit that we made a fundamental mistake in how we advocated building things with “web standards”. As someone who’s done training for the last five years, this is as much my fault as anyone’s. We taught to the implementations. We never taught the distinctions between the specification and the implementation. We never taught that we were teaching an application of the standard and not the standard itself.\
    The hacks became the standard and not the exception. We taught without understanding the long term implications of teaching hack management instead of teaching the specification and the application of it separately.\
    h4. How do we move forward?\
    We need more developers and designers plugged into both worlds. To work on the specifications themselves, or even read and give feedback on them, you have to abandon any hope that this will be useful to you in your development world for three to five years. Once you do that (it took me two years to get that through my head), you’ll be much less frustrated, and might actually be helpful. To a degree, you also have to abandon your notions of how you do things today. When thinking about layout, you have to give up thinking that “float” is the best way to do it (because, please, it’s just not).\
    We need to reboot our perceptions of web development and start thinking towards the future. It’s a new world, and getting newer every day. Our best practices have to evolve – our disciplines have to evolve. We need to think about a world without IE6. It’s going to happen. We need to come up with better ways of building web applications. We need to come up with better ways of teaching the value of web standards. We need to do a better job of educating designers and developers about the consequences of building web applications. We told them all the good things that would happen when they did it our way, but did we tell them that hacks go away? Did we tell them that browsers evolve and that hack they spent all that time on to get things to line up in IE6 will go away some day?\
    I don’t think I covered everything I wanted to say. There are a lot of things swirling around in my head right now. I had my mind blown last week by this realization and it will probably take more thinking about it before it really crystalizes and I can really explain what I’m feeling. But, right now, this is it, and that’s as good as I’ve got: It feels like I’ve spent the last 7 years living a lie, but the truth is so much more interesting and complex than the lie ever was. It feels like a stronger foundation, but wider and darker in the corners, than the one I’ve been standing on.