Mountain View: Day One Recap

Yes, I am in Mountain View, and I really wish I had more time to see all my friends out here (I’m especially bummed about not having time to hang out with my brother, his wife, and Sam. It’s just a two day trip, and it’s chock full of meetings, all about this. We did a big presentation yesterday about it, what’s coming (shhhh, it’ll be cool), and how the world can join in. It was extremely gratifying to see geeks get really jazzed about it. It proves that even though I can’t explain it worth a damn, we’re headed in the right direction.\
I’m having a really good dinner last night at Nola’s in Palo Alto, and laughed our fool heads off. We rehashed the “good old days”, talked about geek energy and how to harness it, and what it feels like to be working on something we can truly be proud of.\
I was talking to Joe afterwards about stuff we’d worked on before, the old projects that still hold a special place in our hearts, and I thought about this silly fulfillment system I wrote when I first came out to Virginia to finally become a “real developer”. It was a maintenance system. People submitted tickets, filled in a bunch of detail about the affected system, the problem, the request, etc. Then, someone got the ticket, did whatever was in the request and then closed it. It ran reports, was extremely flexible in setting up types of requests, etc. I wrote it almost 6 years ago, and thought it was dead. I hadn’t touched it in about five years and figured people stopped using it and forgot about it long ago. Then, I got an e-mail about a month ago (and an IM yesterday) about it, asking who owned it, and if someone could add a feature to it. I was stunned. This thing that I thought was dead and buried has been used every day for five years by a couple different teams. No one’s touched the code, cleaned out the database or anything in five years and it’s still running like a champ, taking requests, running reports, etc. I thought the thing I was most proud of was what I did on AOL Search, but I think I may have a new winner. Almost everything I’ve ever written has a fairly short shelf life between versions. This tool is ancient and still going strong, which not only scares me, but makes my geek pride swell.\
Today? We’re talkin’ modules, modules, modules and javascript. Oh, and between all the module talk, I have to figure out how to create CSS blocks on the fly in Javascript. I’m really close, but man, does that spec need some work.

Announcing I Am Alpha

I can finally reveal what I’ve been working on for the past couple months that’s making me write all this javascript. It’s I Am Alpha, something kind of new and interesting for AOL. Why? AOL doesn’t do public development. We’re usually very close-lipped about what’s going on with a product. We just launch stuff on an unsuspecting public. We also don’t often foster any sort of interaction with the outside developer community. There are things like AOLserver that’s open source, and the new AIM plugin stuff is open to the public, but I can’t really think of much else we’ve done in the area. That’s changing, as of today, with this thing.\
What is it? Well I Am Alpha is just a prototype to give folks some idea of what’s coming, and to introduce our microformat for transporting modular content and the idea of creating modules for this new product.\
I think this is really cool. No one’s paying me to say it’s cool, either. I think getting more people to create microformatted content is great, and I think our microformat is pretty cool (don’t know what a microformat is?). I think some of the stuff we don’t have a live prototype for, like server-side modules is super-cool.\
It’s going to be a little rocky. We don’t have a lot of experience with the whole public development thing, and a lot of things won’t be public (old dog, new tricks), but we’re trying. We’re really really trying. We’re going to be using Dojo for our internal framework and for modules. We’ve released the microformat under an extremely liberal license, and with this alpha, are actively seeking feedback.\
It’s great to be involved in a product at AOL that feels so open, and with forward-thinking standards at its core. It didn’t take hours and hours of red-faced pleading to get us to create a microformat for modules instead of YATXS. It didn’t take kicking, punching and hiding bodies to get us to agree to create (as much as we can) valid, accessible pages. Of course, we don’t control what goes into modules, but we’ve set up the pages that will be saved (the current ones aren’t perfect or what’s going to be final, to be sure) will be valid XHTML, and we’re requiring that all modules are valid too.\
Oh yeah, and it’s the first public facing thing I’ve done at AOL where I was the designer and wrote almost all of the content. So, if it sucks, it’s my fault. I didn’t build the prototype, but I helped design the microformat, the server-side module process, and wrote 95% of the documentation. Hooray for flying under the radar!\
I’ll try to keep the posting about it here to a minimum. Mostly, I’ll be yakking about it over on the unofficial official blog. Come join in the fun!

5 In The Morning and Can’t Sleep? Time To Mess Up Your Blog!

I got about two hours of sleep. It’s really hard to sleep with a foot that’s on fire.\
You may notice a couple different things if you read the main page of the site. I’ve added a couple links, and moved some stuff around. What’s cool, is it took very little markup changes to do what I wanted. With the new three column layout, things were feeling a little cramped. So, on the main page, the stuff that used to be on the right is now at the bottom under the entries. It should clear out some room for the content and make it easier to read.\
The best part is that the different formatting of the menu on the home page is almost entirely CSS. I had to move the markup down there on the homepage (it’s just an include), and I needed to fix a couple url-encoding bugs to get the page to validate again, but to get the pics, links and feeds to line up the way I wanted just meant some descendant selectors from #body. Mmmm, I love CSS.\
I think it’s time for more pain pills…

Writing About Myself Is Hard

You’d think that having a blog would have prepared me for this moment. For SxSW, I have to write a short and long bio… about me. You would think that someone who talks as much as I do would be able to come up with a paragraph describing myself. But, every time I start, I get self-conscious about writing about myself in the third person and it goes all Bob Goulet on me. Here’s what I’ve got so far:

Kevin Lawver is a passionate lover of web standards (which his wife oddly doesn’t mind). He french kisses his CSS and makes sure all his tags are closed so the neighbors don’t gossip. Kevin (that’s me) loves writing valid semantic markup by candlelight, and desperately wishes that Barry White had written a love song about CSS3 Selectors. But, Kevin realizes that it’ll probably be country music that brings us our first song about CSS – and it will unfortunately probably be about adjacent siblings. Kevin longs for the day when all browsers hold hands in harmony and web developers, management and designers all understand and love standards and understand their benefits. Kevin would also really like a cookie.

What do you think? Too much?

My Standards Story

Molly’s post about search engines and standards has inspired me to tell my standards evolution story, because it’s really all about AOL Search.\
I worked on AOL Search for five years, from 1999 – 2004. In that time, it went from being “AOL Netfind”, powered by Excite and in a horrible frameset where we had very little control over anything to something built completely in-house powered by the ODP, to what you see today (powered by a bunch of in-house technology and incorporating results from all over the web, most noticably from Google).\
I was the only person to touch the frontend code for that five years. I wrote the first in-house version of AOL Search in AOLPress, a WYSIWYG HTML Editor that started life as NaviPress. It was a glorious example of old school HTML. It was all uppercase tags, unquoted attributes, tables all over the place and non-breaking spaces. But, it was one of the first successful web products at AOL, and was a whole lot better than NetFind was.\
I started noticing the web standards movement in, I think, 2000. Back then, I couldn’t do anything about it because we had to support Netscape 4.7 and all the other old school browsers. But, in 2000, I removed all the font tags from AOL Search and we started using CSS for text (which was all it was good for back then). Life continued… I started blogging in July of 2000, and in November of 2001, my blog went all CSS-y (Zeldman even wrote about it).\
In 2002, it was time to break out of tables, and we did. I dropped all the tables, and put in a browser sniff to give Netscape 4 users a stinky old tabled header and footer. I didn’t have a DOCTYPE (because I was young and stupid), but we were table-less. This is when our business decided that speed was all-important. They really wanted us to get our load time under six seconds. I don’t remember why six seconds was the magic number, but it was. We still had several large banner ads on the site, and six seconds seemed like an impossible dream.\
I went crazy in 2003. I was on a mission. I was the six second man. I was going to get us there, because dammit, I love a challenge. We started 2003 at about 14 seconds (measured by an internal tool, over a modem, using the AOL client, not perfect, but it was consistent). I dove into the standards, and pored over weblogs, forums and A List Apart, looking for anything that would help me get there. This is when I discovered semantic markup. I started trimming. In the spring, we hit 10 seconds. Then, I put in a standards-mode DOCTYPE, and, without changing anything else, we went from 10 to 8. We were close, and I smelled blood. So, I devised a test where I made a version of the product that didn’t have any ads on it at all. We tested it and it loaded in less than four seconds, according to the tool. Now I had my villain and the lobbying started. I won’t go into everything I had to go through to get those big ads taken off, and I never actually got them all removed, but I got the “bad” ones taken off, and we replaced them with sponsored links, first from Overture and then from Google.\
In late 2003, we hit 6 seconds. I did a little dance and took a vacation. When I got back, I decided that I could hit four without too much more effort. I started trimming. Everything on the results page was meaningful. All the results were list items. We had headers for result sections. There was a place for everything, and everything in its place. I got better with CSS, wrote better selectors, and shed more meaningless markup and lots of bad CSS. We hit 4 seconds (and broke it for a little while… 3.78 seconds). In the spring of 2004, by our measurements, we were one second faster than Yahoo (and much faster than everyone else) and one second slower than Google. AOL Search, at that moment, was everything I wanted it to be. It was fast. It was standards-compliant (except for those stupid ampersands). It was accessible (at one point, we did all these tests with an internal tool, and we were more accessible than any other major search engine, and scored better than Accessify).\
That’s when I moved on to other stuff. I couldn’t work on it after that. I’d done everything I could with it. In my mind, it was perfect. Changing anything would have broken my heart. I wrote another search app, built on the philosophy of the CSS Zen Garden that allowed products within AOL to create search products without writing any code – just configure, create your own CSS file, and go.\
Now, I’m doing training and mentoring stuff. I tell other folks how to do this stuff. What did I learn from my five years on AOL Search Everything. I learned everything. It was challenging, stressful and really scary at times, but I learned more than I would have if I had jumped around from project to project, never seeing the consequences of my choices. With AOL Search, I had a this huge high-profile product where every little change made a difference in the company’s bottom line. I had a platform for experimentation, and since I was the only one who touched that one part of it, I had almost complete control over how it was built. I got the blame when I messed up (and I did), and the credit when it worked (and it did, mostly). I got to see how making it faster made people use it more. When we got to six seconds, usage went through the roof.\
Why tell the story? I don’t know. It’s important to me. It’s part of what’s driving me to push standards to the rest of AOL. It’s important because it makes for better products. It’s important because our users benefit. They don’t wait around for pages to download and can actually get on with using the product. We get consistency, and maintainability. It’s important to me because the process is repeatable. It’s possible to go from old school, inaccessible and slow to standards-based, accessible and fast. Today, it shouldn’t take you five years to do it. I was hamstrung by the browser environment at the time. You have no excuse. It’s never been a better time to work on the web, and it’s only going to get better. Get to it.

Categorized as AOL, CSS, search

Instiki Stylesheet Tweaks

As you all know, I love Instiki. I saw a page on the site this morning for Stylesheet Tweaks and just had to share mine. I don’t like how narrow Instiki is by default, and I didn’t really like the font. So, I changed it. I’ve hacked a lot of the templates (to make the textarea larger, for example), but my stylesheet is still mostly default with some significant changes.\
Your mileage may vary, especially on the edit page (where I did a good deal of hacking).\
Go get it.

Categorized as CSS, wiki

The Danger Of A Better IE?

Roger Johannson is asking questions about the danger of a better IE, and it’s an interesting question. I’ve got no love for Microsoft. I long ago gave up Windows as my platform of choice, and I’m no fan of IE 6 (in fact, I’ve never used it as my default browser – went right from Netscape 4.7 to Mozilla).\
But, I’m a pragmatist. Today, IE 6 is holding me back. I can’t use all the cool CSS stuff I’d like to, because I work for a really big mainstream consumer service. I have to use hacks, kluges and sometimes (heaven forbid) extra markup to execute the designs I’m given to build.\
Do I like it? No. I positively hate it. Since I’ve been a member of the CSS Working Group, I’ve grown even more impatient. I want everything now, even stuff we’ve just talked about and not actually put down in a spec. I want to be able to use 24-bit PNGs and multiple backgrounds for more than Dashboard widgets (I built my first one last week, you should see it soon). I want to be able to stop using huge nests of descendant selectors to style navigation lists. I want to be able to use child, sibling, CSS3 attribute selectors, and all the other cool stuff we’ve been waiting years for, and can play with in newer browsers like Firefox and Safari, but can’t use in “real” products because IE is where most of the users are.\
In the end though, I’m a pragmatist. I have to support IE and Windows, and I hope that IE 7 is everything we hope it will be (and that everyone upgrades right away). I’m willing to give Redmond the benefit of the doubt, and even help them. I want IE 7 to fix all of their problems and add all of the things from CSS2, and the CR’ed CSS3 modules so the web can move on. Will it happen? I don’t know. Even if they just finish their CSS 2.1 support and fix the box model issues, I’ll be satisfied (but not thrilled… no clapping from me).\
If they fix their issues (security, standards support, stability, etc), good for them. I’ll clap louder than anyone. But, I’ll still use Safari and Firefox. I’ll still preach standards. I’ll still build for every browser that I can (within reason).\
No one should delude themselves: we’re stuck with IE 6 for a while (my guess is three to three and a half years). It’s going to take a long time for people to upgrade to IE 7, even if it’s the best browser ever to grace the Windows world. It took at least four years for IE 5.5 to go (mostly) away. It took longer than that for Netscape 4.x to go away. There’s a large percentage of the computing universe that either doesn’t know how, or refuses, to upgrade anything: their computers, their OS or their software. If Microsoft doesn’t change their minds about only releasing IE 7 for XP SP2, I could be wrong, and it will be 5-6 years before we can stop worrying about IE 6.\
Let’s put our prejudices aside for a minute and hope (selfishly so for those of us who build web stuff) that IE 7 is great. Let’s hope that it supports all of the stuff we want, and beats back the spyware/virus/adware scourge. Let’s hope they get it right, because the alternative is much, much, much worse than a better IE.

My Foot Is Busterated

I love waiting when I know what the outcome’s going to be. I have to have surgery to repair the navicular bone (near the ankle). Well, not really “repair”, more like “remove”. Then they’ll reinforce the tendon. It’s “serious”, according to my doctor. He told me, “You’re about to do something very difficult.” Yeah, that’s exactly what I want to hear from a doctor.\
Now, I’m waiting around for my insurance company to approve an MRI so we can find out how “difficult” this is going to be. After the MRI, I get to wait a week, then I see the doctor, then I get cut on. Oh, then the fun begins. I’ll be short a bone in my foot, in a cast for a while, then in physical therapy for who knows how long.\
And herein lies the silence. It’s hard to walk in the boot. It’s hard to drive. It’s hard to sit at a computer. It’s hard to sleep. And it’s only going to get harder.\
So, I write my presentations, I help my people, I talk to folks and I take a lot of ibuprofen. Oh, and redesign this site, read up on Ruby and thinking of building something worth trying Rails for. Oh, and I’m working on my very own microformat.\
And tomorrow, it’s time to compile all the comments on the big CSS Question, sort them and start coming up with some concrete proposals.

Help The CSS Working Group With Backgrounds and Borders

At our last CSS Working Group meeting, I volunteered to ask the design community what y’all want as far as backgrounds and borders go. We spent some time talking about the CSS3 Backgrounds & Borders module and we need some feedback (because none of us are designers).\
If you’re a designer, is this what you want? Is there anything missing from the module that should be there? Is there anything there that shouldn’t be?\
Some ideas to get you going:

  • Gradients: They’re really popular. Would it be a good thing to have simple gradients as a part of the spec even though you can do them today with graphics, SVG, or proprietary CSS filters?
  • Multiple Backgrounds: Everyone I know is clamoring for these, and a lot of people add extra markup, or “appropriate” other elements to do this now. What would you like to see from multiple backgrounds? Is what’s in the spec now sufficient, too much, too little, etc?
  • background-origin and background-clip: Are these useful?
  • More atomic background positioning: I could see a use for a background position for both the image and within the element. For example, if I had an image sprite, I might want to get to position “-50px 0” of the image, position it “left bottom” within the element.
  • border-radius by corner: Do you want to be able to specify border-top-left-radius instead of just border-radius?
  • Anything else…\
    So, bring it on. I’ll collate all the comments and send them to the group. If you don’t have javascript turned on (thank you, comment spammers!), and you still want to send comments, please send them to lawver at Trackbacks are on, but not displayed (thanks again, spammers).\
    If you know web designers who could help us out, please share the link.
Categorized as CSS