At The W3C Technical Plenary

Kevin holding his head in his hands.

I’m in chilly Cambridge, MA this week for the annual W3C Technical Plenary. I’ve spent the last two days in the CSS Working Group discussing the future of things, issues, and debating the relative merits of x vs. y. Now that I have a camera built in to my laptop, I decided to take a little photo diary during the day.\
I’ll try to remember to continue the diary today during plenary day and the rest of the week while I’m hanging out covering for Arun in the WebAPI group.

BarCampDC: The Kid Comes Along

Youngest BarCamper
by Kelly Gifford

(that’s Dr. Joe talking to Max)\
Max and I went to BarCampDC this Saturday. BarCamp is an “un-conference” (no set schedule, everyone participates), and they’re held all over the world. This one was organized by Jason Garber, Jackson Wilkinson and Justin Thorp. They did a great job, and were cool with Max coming and participating.\
I spoke on Rails, did the live coding demo I’ve done at other unconferences, and helped out in the portable social networking session.\
Here are some links related to those sessions:

  • Ficlets, Rails and OpenID – I used this presentation during the intro to show off some of what Rails can do (also has some good OpenID info).
  • Tapping the Portable Social Network – Explains some of the concepts behind the prototype I put together, and
  • Portable Social Networks – The blog post that explains the prototype and presents the flow (and has a link to download the app).
  • The International Day of Awesomeness – Because I “sponsored” (on accident, I swear), I got to speak before one of the sessions. Of course, I spoke about The International Day of Awesomeness.\
    Now that’s out of the way, let’s talk about Max! When I originally asked Max if he wanted to go to BarCamp with me, I wasn’t sure he’d want to go. We talked about it a couple times on the way to summer camp and the more he found out about it, the more excited he got. I was excited for him to see me give a presentation and see what it is that I do when I travel. He had a great time. Everyone was really great with him. He was so excited to talk about Scratch and Hackety Hack and to learn from everyone. He was by far the youngest attendee there (I mean, Jason only looks 15). He was insanely well-behaved, and other than him clicking markers together a couple times or tearing paper, he was as well-behaved as any of the adults. He zoned out a little bit in the afternoon, but I think most people did.\
    On the way home, we talked a lot about what he thought of the day. Even after almost twelve hours of non-stop geekdom (we left the house at 7:30AM and this was at about 7PM), he was asking when the next BarCamp was going to be (in the last twenty-four hours, he’s asked me when the next one is about ten times), and asking me if I’d help him do a presentation on animation and using Hackety Hack.\
    Thank you to everyone who sponsored BarCamp, helped organize things, presented, and talked to Max during the day. I can’t tell you how cool it was to watch him talking to people and share his passion. It was great to share that with him, and to see him get out there. He said afterwards that he was a little shy in the morning, but that everyone was really nice. Max is an interesting kid, and I love seeing him learn and discover new things – and I love being able to share the things I’m passionate about with him.

Portable Social Networks at Mashup Camp

I’m doing a presentation today at Mashup University that I’ve titled Tapping the Portable Social Network that’s a code tour of how to create a social network that uses existing social connections and public data to make the sign up process for web sites easier. Of course, this whole idea came from Jeremy Keith.\
It’s a very simple Rails app (that you can download) that only deals with the login/signup process using both OpenID and AOL’s OpenAuth.\
Here are the basics…\
If you log in with OpenID, it:

  1. grabs the identity URL, and looks for some microformats
  2. looks for an hcard and pre-fllls the profile
  3. looks for XFN-encoded links and searches the site for existing users with that homepage and gives you the option to add them as contacts when you sign up.\
    If you log in with OpenAuth, it:
  4. pre-fills your profile with URLs and data we think we know based on your screen name.
  5. grabs your buddy list and looks for folks who logged in with those screennames on the site and gives you the option to add them as contacts.\
    It’s dead simple and poorly documented, but works well so far, and I think the flow makes sense and has possibilities. You’re welcome to take it, the concept, the code, and do whatever you want with it.\
    The next step is to see what other open reliable sources of social data are out there that would make sense to look for during the sign up process.\
    UPDATE: Read the README file! There are several things you need to change in both the configuration, and one line in profile.js. The README documents all of the required changes and where to find them.

My New Standards Role

It’s finally official and I can talk about it… so I am! My pal, Arun, who has served as AOL’s representative on the W3C’s Advisory Committee for the past three years, has been elected to the W3C’s Advisory Board. That’s a huge honor, and very cool, both for Arun and for AOL. That means he’s got his hands full – what with his membership in two working groups and his spot on the Advisory Board (plus his day job). So, I’m going to take his spot on the Advisory Committee! It’s a huge honor to represent AOL at the W3C and I’ve got my work cut out for me. AOL’s participation in the W3C while Arun was AC has blossomed, but there’s more work to do. We need more folks to participate, and participate in a meaningful and consistent manner (something I’ve not been able to do in my time in the CSS Working Group, unfortunately). It’s as much a management problem as it is a technical one, to give people the time to contribute beyond the travel (and a time management problem – we’ve got to be willing to carve out the time).

There’s lots to do, lots of folks to recruit to “the cause”… and I have to find some way to abuse my new power!!

(there’s no real power, just a lot more e-mail, apparently)

For now, I’m going to try to remain a member of the CSS Working Group, but I’ll probably need to drop it and concentrate on my duties on the Advisory Committee. Thankfully, we’ve got Jason and Justin, two super-talented designers, to take my place!

Web 2.0 Expo – Making Lemonade

It’s been a wonderful (italics = sarcasm!) week so far. My second presentation at Web 2.0 Expo got moved to Wednesday at the last minute, and I won’t be here, so I’m not giving it. It’s a long and sad soap opera, and I’d rather not talk about it. But, instead of giving up entirely, I’ve decided to make some lemonade. Instead of doing the presentation (Microformats for Web Services and Portable Content) in a hallway at Web 2.Open, I think I’ll go to the Mashroom and see if I can get some help turning it into a Rails plugin. While I’ve launched a product on Rails, I’m no expert. I’ve been meaning to play with plugins, but haven’t had time (oddly enough, working on this presentation). I’ve zipped up the Rails app if you want to play with it. You’ll need to install the mofo and ruby-openid gems for it to work correctly (and you need a database for the profiles).\
What does it do? The main demo takes OpenID and after you log in, it grabs the OpenID URL looking for an hcard and pre-populates your profile with some selected bits of info. It was pretty painless to throw together, and I’d love to turn it into a plugin to make it even more painless. I think this could be a great alternative to CardSpace and the OpenID 2.0 attribute exchange stuff that’s still in the works. With delegate links, you could have multiple hcard “personas” that all point to the same identity provider but contain different profile information. Wouldn’t that be cool?\
In related news, I’m tired of conferences. I’d rather stay home, work and spend time with my family, who I feel is getting away from me. I’m missing too many of Brian’s little developments, the little things that kids learn on their ride from babies to little boys. He’s already a toddler and well on his way to kid-dom, and I don’t want to miss anything I don’t have to. Max gets smarter every day, and I want to be there to help answer questions.\
Other than Mashup Camps, and XTech (only because I already agreed to do it), I’m done until SxSW next year. It’s a gigantic pain in the ass to travel, and conference organizers don’t make it any easier. You’d think they’d treat speakers better, but they don’t. Yes, it’s a privilege to speak, but it’s also a huge commitment – both in time and money. They move your presentations around (without warning, or checking to see if you’re available), the network never works, and no one will answer e-mails (oops, here I go, I’m dwelling on this conference again). I’m tired and I need a break.\
So, if you’re going to Mashroom on Tuesday, come help.\
Update: I ended up not doing the Mashroom because I wanted to meet John Allsopp and see his microformats presentation (which was fantastic, and mine would have been a great sequel to it). By the end of that, I was tired and didn’t feel like writing code so I went back to the AOL booth to help out.

SxSW Interactive Recap

There’s so much to say about SxSW this year. It was a huge year for me personally, and I think for AOL as a company. First of all, AOL sponsored the conference, which makes me extremely happy. This was my fifth year coming to Austin for a week of geeking out with my “tribe”, and this year, I brought my work tribe with me. In years past, other folks from AOL have come, but this year was different, because we had an “official” presence at the conference. Also, this is the first year I’ve launched something at the conference and come with swag. And oh boy, did we launch it. We launched last Wednesday, and I left for Austin Thursday. We had some hiccups getting out the door and I was really worried that I wouldn’t be able to say anything because the site didn’t actually work. Well… it works, and people really seem to be digging it. The response I’ve gotten talking to people about the site has been truly inspiring, and almost all the blog posts about the site have been great as well. If you want to follow along, check out the results on Technorati.\
On top of launching ficlets, and talking about it nonstop, I was on two panels, and did 20×2 for the first time this year. The first panel was Mr. McNally’s Ghost in the Machine: Spirituality Online, and I was honored to be a part of it. The folks on the panel with me were far more qualified to talk about the subject at hand that I was, but I had a great time at lunch with them, on the panel and dinner afterwards. I can’t thank James, Rachel, Gordan and Hussein enough. I was so inspired by their spirits, stories and openness. It was a truly great experience… and the panel went swimmingly. The only real “moment” I had was after the panel, a couple very neatly dressed guys came up to the table and introduced themselves, handing me their cards… “LDS Church”. I blanched for a sec, “Oh snap, they sent spies!”, but no, they’re very cool designers who work with Cameron Moll on the Church’s website. They were very nice, and I’m sad I didn’t get to ask them more about what they thought of the panel.\
Our panel the next day was How to Convince Your Company to Embrace Mashup Culture. I wish I could say I thought it went well. I was disappointed in how I did and how I handled the distractions around the panel (and during, but I don’t want to talk about it here). I’ve heard good feedback from folks who said they enjoyed it, but I thought I could have done better. Alla, Arun, Greg and Steve were real troopers for agreeing to do it at the last minute.\
20×2 was Monday night, and as always, Jeff, Kevin and Mike Stephens were fantastic, and I was psyched to be part of the show. Better yet, folks laughed in the right places during the movie Max and I made! It was so cool seeing Max up on the screen, and hearing the applause afterwards.\
After that, I was free. I spent a lot of time in the AOL booth all week, and had a great time meeting folks, talking about ficlets, OpenID, AIM, WIM and all the other stuff that came up during the week. I didn’t attend as many panels this year as I have in the past (the four previous years, I skipped a grand total of one panel – this year, I made it to about 6 total between AOL booth time, preparing for panels or working on ficlets stuff).\
There are embarrassing photos and videos imminent of just how “free” I was. I have a horrible tendency at SxSW to lose all verbal inhibitions, and I just say stuff… sometimes really really horrible stuff. It gets worse when I have a “partner in crime” with me, or a giggling audience. Unfortunately, Monday and Tuesday nights, I had both. Monday night, after 20×2 (so, not only was I free, but I was still buzzed from the reaction to the movie), I inappropriately touched my food. I couldn’t help it, that chocolate shake was asking for it.\
Tuesday morning, I attended the panel Arun moderated: Browser Wars. He moderated a discussion between Brendan Eich from Mozilla, Chris Wilson from the IE team, and Charles McCathieNeville from Opera. It was a fantastic discussion, and he did an amazing job keeping all those egos in check, and asked some really good questions, that I think led to better questions from the audience. I think I’ll make him moderate next year if we do a panel again.\
Tuesday night was oh so much worse. Kevin Smokler had his annual Castle Hill Cafe dinner, and I was at a table with Brad Graham (partner in vulgarity) and the giggling accomplices: the Browns, Mike Tremoulet, Kathryn Wu and Dan Budiac, Nikolai Nolan and Anne. Except for Nikolai, we all had a hard time finishing our dinners and desserts because we couldn’t stop laughing. We were all crying, holding our sides, and had laughter headaches by the end of dinner. Folks were hesitant to take bites of their food, for fear that another round of guffaws would break out. I apologize profusely in advance. I think Nikolai got video, and it’s going to be really really bad. Hysterically funny, but wrong in so many ways. There will be a price to pay for it, and well, I said all that stuff, so I guess I’m stuck with it (damn, but it was funny). There were muppets in compromising positions, twisted takes on Mark Twain stories, Jewish gay porn, and a truly disgusting act with a plate of goat cheese (that one wasn’t me, I swear). I’ll post the pictures after my ribs had recovered.\
All said, it was a great time all week. I started a little slow, had one bad night, but the glee and successes more than made up for one bad day.\
I’ll tell you about the adventure on the trip home later… right now, I need some sleep!\
And here are all the pictures!

Hello, Ficlets

It’s been a very long day, and it’s not over yet, but I couldn’t let the day be done until I posted about this. Today, we took the covers off of the project that I’ve been working on for the past three months: ficlets. It started as this little thing I was going to do all by myself to learn Rails, and ended up what you can see over on the site.

I don’t even know what to say about it, really. Cindy, Jason and I have been dancing around it so long on twitter, calling it Ape Shirt, that talking about it now in the open feels kind of weird. But, here we are. There’s more information about what it all means on the ficlets blog.

Ficlets is very much an experiment (we like to call it “a prototype we just happened to launch”), and this is our very first release (we’re the first product in AOL to roll out on Rails, so we’ve still got stuff to learn about it…). So, things may go weird and wonky from time to time. Just give it a minute, and then reload.

I am truly fortunate to work at a company where I can get away with stuff like this. This started as my own little thing to do on the side. When I realized that it was actually a pretty cool idea and that I didn’t have the time or talent to do it all myself, I presented it at a meeting, and the next thing I know, I’m working on it full time with a small team of amazingly talented people. It was a pirate project in the best sense of the word. We didn’t really do a project plan or start with a big committee. It was four people in a room, working towards something we were all geeked about. From the beginning, we treated it like we were in a startup, very few rules, no defined roles (except that I got two votes, and Kerry got three). It worked so well, and we had too much fun designing and building it.

I never imagined it would look so good, or be so much fun. For that, I have to thank the designers who worked most closely on it: Cindy Li, Ari Kushimoto, Jenna Marino, and Jason Garber, who did 99% of the markup (all the good stuff), the CSS and most of the javascript (I worked on it some, I swear). We make such a great team, and I’m so proud of the work we did. We had lots of other help too, from folks who helped design the stickers, buttons and shirts for SxSW: Shadia Ahmed and Jayna Wallace, to the folks who played around with concepts early on: Elisa Nader, Elsa Kawai, Tom Osborne and Justin Kirk.

There are tons of people to thank, and a lot of people helped out. We had tons of support and “air cover” from Kerry and text and language help from John, Amy, Suzie, Nancie and Erin. My pal Tony was an immense help figuring out how to deliver everything in working order to the Greatest Ops Guy in the World, Dan, and Kelly helped us bend a few rules to get all the other opsy bits in order at the last minute. We had legal help from Holly and Regina. And my bosses let me steal Jason, and go work on it, so big thanks to Alan and Bert too.

This has been so much fun, I think we should do it again. I have big plans for our little story site…

One last thing… if you’re going to be at SxSW Interactive this weeked, come find me. We’ve got some lovely stickers and buttons to hand out (while supplies last). I should be pretty easy to spot. I’ll be the big fat guy with the ficlets shirt on (well, for two days… ).

Now I have to go finish packing!

How to Get to Speak at Web Conferences

Hey you, be diverse!

There has been a lot of discussion around the geek-o-sphere about diversity and the specific makeup of conference speaking panels (Kottke started it, and Eric has a good sampling of reactions). There’s been a lot of back and forth about who’s “fault” it is that the speakers at web conferences aren’t more diverse (meaning fewer white men, and more of everyone else). Seeing as I’m one of those white men, and I’ve been speaking at conferences for the past two years, I thought that instead of diving in with more critique (reasons why X is wrong and Y is right) I’d give some practical suggestions for folks who want to gain some confidence in their own speaking abilities and how I worked up to presenting at conferences. I am by no means an expert. I’m not Eric Meyer, Tantek, Jeremy Kieth, Kathy Sierra or Tara Hunt, any of whom I would gladly pay (and have) to see present. But, I’ve spoken at a bunch of conferences over the past year, and well, this might help someone. Here are my tips:

  1. Blog. You must be findable. Blog, at least a little bit, about the topics you want to speak on so people will find that you’re associated with that topic. This helps you get “known” in the field, and will put you on the radar when people are looking for panelists.
  2. Start with a small, friendly crowd. Do a brown bag at work on a topic you’re an expert (or a passionate amateur) in. Keep it short and informal. If you feel more comfortable, pair up with a friend who can help share the burden of keeping things moving. Kimberly Blessing and I started our guerilla standards group at AOL, and I can tell you that that’s the only reason I gained the confidence to even consider speaking at something like SxSW. I’ve presented to internal crowds now (once high on painkillers after ankle surgery) larger than I have at some conferences, and that’s a huge boost to your confidence.
  3. Find someone to trust as a mentor. I’ve had several at AOL over the years, but find someone who will tell it to you like it is and will help you improve your speaking style and delivery.
  4. Go to Mashup Camp or other unconference. The environment lends itself to anyone leading a discussion and you can propose a session on a topic that you know a lot about.
  5. Oops. Jason’s comment reminded me – your local Refresh (here, it’s Refresh DC) or Web Standards Meetup would be a great place to practice your presentational skills in front of a friendly and supportive audience.
  6. Pitch, pitch, pitch. It’s a pain in the butt, but last year, I pitched panel ideas to at least a dozen different conferences. It was only after I’d spoken at a few and people could see that I showed up on the speakers page at SxSW or Supernova that they gave me the time of day.
  7. Throw a Curveball. Don’t pitch what everyone else is pitching. Throw a curve. The wittier the title, and the more specific your description, the better. “Microformats” is a crap title. But, “A Proposal for an Interoperable Widget Spec Based on Microformats” was accepted at WWW last year.
  8. Get a library of your presentations and put them online. All of mine are, and I’ve been able to point to them as past work for conference organizers to look at. Keep all the presentations you give and use them. Don’t throw any of them away.
  9. Get work to help. It helps a great deal if you can point to membership in some professional organization. Most of the big internet companies (and many of the small) are members of the W3C. If you can point to membership in that organization or some other professional group, that can only help.
  10. Get work to help, part two. Get your company to sponsor a conference. Make it a smaller, more regional conference to start with. Most sponsorships come with speaking opportunities. Take advantage of them.
  11. Always have something to share, and don’t make it about the pitch. I’ve been to too many conferences where people squander their opportunity to speak with a sales pitch about their product or company. You have to give people attending the conference something worthwhile – something real – or you’re wasting your chance.
  12. Be a mentor. If you get to lead a panel, actively seek out new voices. For our panel at SxSW last year, two of the folks on our panel had never spoken at a conference before, and none of us were what I would consider “regulars”. Seek out opportunities to help, share knowledge and provide guidance. That’s a quick way to become known as an expert and have other folks seek you out for speaking engagements.\
    That’s all I can think of right now. I actually need to go to bed so I’m awake for my presentation (to about 200 people) tomorrrow. Hopefully, this was helpful.\
    UpdateMeri Williams has set up a wiki for folks to post advice and volunteer as mentors to help folks improve their speaking skills with the goal of speaking at conferences. Go check out Make Me a Speaker!

Mashup Camp Three Recap

Mashup Camp 3 wrapped up a couple hours ago, and as far as I’m concerned, it was a gigantic success. I’ve had more fun at this “unconference” than at any conference since SxSW. Everyone was really into what they were doing, and there was a minimum of people there purely hawking their own stuff and not participating (which was my main problem with the last one in Mountain View). There were great sessions, and I was so geeked about everything, I ended up spending all of Tuesday building a mashup so I could share it at Speed Geeking. I ended up building a mashup of a feed reader and your buddy list that I unfortunately called Buddy Stalker, even though there’s very little “stalking” involved. It’s just a way to get a feed reader filled with things you’re likely to care about (the content your buddies create) without the initial setup cost of finding feeds, adding them, pruning them, etc. I ended up in the bunch of third place winners, which was great, when I consider that I did it in one day and that it was the first thing I’ve ever launched using Ruby on Rails.\
I met some great people, and had some great discussions. Here are just some of my favorite people from this week: John Gerken from IBM, David Janes, the Herrens, Nate Ritter and Chris Radcliff from Eventful, Kaliya, Raj Bala, Frank (if you’re out there, I never got your last name… we’ll find you a Ruby Users Group in Little Rock, I promise) and Shimmy from Angelwish, just to name a few.\
I think I ended up overdoing it a little… I ended up proposing and/or running four sessions, doing one presentation at Mashup University, and speed geeking for two days. My poor throat is shot – between talking too much and the cold dry air, it’s a raw mess. But, it was totally worth it. I got to talk about microformats, standards, the semantic web (both lower and uppercase), and in the last session, ruby on rails. It’s been a full week to say the least.\
There are pictures to go look at, and lots and lots of stuff to think about and work on going forward. There are several more posts in me to discuss all the stuff we talked about this week, but they’ll have to wait. I need to pack and get some sleep.

Hellooo, Mashers!

I gave my Microformats + DOM / AJAX = Mashup Nirvana today at Mashup University. I thought it went pretty well, but if you were there, I’d love to hear your feedback. You can either post your comment on this entry, or e-mail me at kevin at It’s been a few months since I’ve given a presentaton, and I feel like I’m out of practice, but I’d love to hear what you thought of the presentation.\
If I do this one again, I’ll try to film it and put it up somewhere. Of the presentations I’ve given at conferences, this is one of my favorites (of couse, my all time favorite is How to Convince Your Company to Embrace Web Standards from SxSW last year). It’s fun for me because I get to talk about microformats, and I get to talk about what I think is useful and important – and where I think they’re headed.\
I’m here the rest of the week, and will probable spend a good part of tomorrow working on a WIM mashup for Speed Geeking on Wednesday. I started it last night… and I got it started, but I got stuck at about 11:30 (go figure), and gave up. Today’s been eaten up with speaking, so I have tomorrow. If I get it working, I’ll put it up somewhere here so you can check it out.