Posts from 2011

The Survey, 2011

Published 12 years, 6 months past

Back on Tuesday, A List Apart opened the 2011 edition of The Survey for People Who Make Web Sites, the fifth annual effort to learn more about the people who work in the web industry.  If you haven’t taken it yet, please do so!  It should take about ten minutes

I’m proud to have been a part of this effort since its inaugural launch back in 2007.  It’s a major undertaking, mostly in analyzing the data and turning that into a detailed report, but it’s more than worth the time and effort.  Before the Survey, we really didn’t know very much about who we were as a field of practice, and without it we wouldn’t have as clear a picture of who we are today.

There have been growing pains, of course, chief among them UCCASS, the survey software we’ve been using since the outset.  Its limitations and lack of updates finally pushed us to find another platform, and we chose to move over to Polldaddy.  Many thanks to the Polldaddy team for giving the survey a home and helping me figure out the best strategies for recreating the survey.  (And also for putting up with my occasionally testy feature and support requests.  Sorry, gang.)

Due to differences between UCCASS and Polldaddy, we ended up restructuring the survey into two distinct paths.  I think this change actually speeds the process of taking the survey.  I’m pretty sure just about anyone could get through it in under ten minutes.

Unsurprisingly, participation in the survey has dropped over the years; last year’s survey had a bit more than half as many respondents as the first-ever survey back in 2007.  Tellingly, the actual results have been pretty consistent over the years.  I’d really like to see how those results stand up to an increase of respondents, so please:

  • If you haven’t taken the survey yet, kindly set aside ten minutes and do so.
  • If you have taken the survey, thank you.  Now, spread the word!  If you could post a quick link to any mailing lists, web forums, newsgroups, or other professional communities in which you participate, it will be an enormous help.  The more practitioners we have answer, the better the results.

As always, the survey will close a month after it opened; and as always, a detailed report will be published — feel free to peruse the reports from 2007 (PDF), 2008, 2009, and 2010 — along with anonymized data sets for independent analysis.  Together, they form a picture, but one that is still being drawn.  Please help us to add the most essential detail — you!

Searching For Mark Pilgrim

Published 12 years, 7 months past

[[ MARK IS FINE and his work is not lost.  Please see the update and addendum later in the post.  — E. ]]

Just yesterday, I took a screenshot of the title page of Dive Into HTML5 to include in a presentation as a highly recommended resource.  Now it’s gone.  That site, along with all the other “Dive Into…” sites (Accessibility, Python, Greasemonkey, etc.) and, is returning an HTTP “410 Gone” message.  Mark’s Github, Google+, Reddit, and Twitter accounts have all been deleted.  And attempts to email him have been bounced back.

This is very reminiscent of Why the Lucky Stiff’s infosuicide, and it’s honestly shocking.  If anyone is in direct contact with Mark, please let me know that he’s okay via comment here or by direct e-mail, even if his internet presence has been erased.  As much as I hate for the world to lose all of the incredible information he’s created and shared, that would be as nothing compared to losing the man himself.

“Embracing HTTP error code 410 means embracing the impermanence of all things.”

 — Mark Pilgrim, March 27, 2003 (

Update 5 Oct 11: Jason Scott just tweeted the following:

Mark Pilgrim is alive/annoyed we called the police. Please stand down and give the man privacy and space, and thanks everyone for caring.

The communication was specifically verified, it was him, and that’s that. That was the single hardest decision I’ve had to make this year.

So there you have it.  I’m sorry to have helped annoy Mark, am very glad he’s well, and sincerely hope that we can all give him the privacy he desires.  And with that, I’m going to sleep now.  Thank you, everyone.

Addendum 5 Oct 11: Several people have asked me if I know why Mark took this step.  I don’t.  I have three comments in the moderation queue all claiming to be from Mark, only one of which even approaches sounding credible, and none of which have any sort of verification.  Unless Mark contacts me directly, or changes his server to return an explanatory note instead of or along with a 410, or something similar, I’m as much in the dark as anyone else.  If he’d like to talk with me about it, he’s certainly more than welcome to do so, but he’s under no obligation to explain himself to me or anyone else.

Mirrors of Mark’s work have started appearing (see the comments for some of them) and so his legacy, if not his presence, will not be lost.  I am assuming that he has simply withdrawn from digital life, his reasons are his own, and that if he feels interested in explaining those reasons he will find a way to do so.  Regardless, his path is his own and we should leave him to walk it as he chooses.

CSS Modules Throughout History

Published 12 years, 7 months past

For very little reason other than I was curious to see what resulted, I’ve compiled a list of various CSS modules’ version histories, and then used CSS to turn it into a set of timelines.  It’s kind of a low-cost way to visualize the life cycle of and energy going into various CSS modules.

I’ll warn you up front that as of this writing the user interaction is not ideal, and in some places the presentation suffers from too much content overlap.  This happens in timelines where lots of drafts were released in a short period of time.  (In one case, two related drafts were released on the same day!)  I intend to clean up the presentation, but for the moment I’m still fiddling with ideas.  The obvious one is to rotate every other spec name by -45 degrees, but that looked kind of awful.  I suspect I’ll end up doing some sort of timestamp comparison and if they’re too close together, toss on a class that invokes a -45deg rotation.  Or maybe I’ll get fancier!

The interaction is a little tougher to improve, given what’s being done here, but I have a few ideas for making things, if not perfect, at least less twitchy.

I should also note that not every module is listed as I write this:  I intentionally left off modules whose last update was 2006 or earlier.  I may add them at the end, or put them into a separate set of timelines.  The historian in me definitely wants to see them included, but the shadow of a UX person who dwells somewhere in the furthest corners of my head wanted to avoid as much clutter as possible.  We’ll see which one wins.

Anyway, somewhat like the browser release timeline, which is probably going to freeze in the face of the rapid-versioning schemes that are all the rage these days, I had fun combining my love of the web and my love of history.  I should do it more often, really.  The irony is that I don’t really have the time.

Un-fixing Fixed Elements with CSS Transforms

Published 12 years, 8 months past

In the course of experimenting with some new artistic scripts to follow up “Spinning the Web“, I ran across an interesting interaction between positioning and transforms.

Put simply: as per the Introduction of the latest CSS 2D Transforms draft, a transformed element creates a containing block for all its positioned descendants.  This occurs in the absence of any explicit positioning of the transformed element.

Let’s walk through that.  Say you have a document whose body contains nothing except a position: static (normal-flow) div that contains some absolutely-positioned descendants.  The containing block for those positioned elements will be the root element.  Nothing unusual or unexpected there.

But then you decide to declare div {transform: rotate(10deg);}.  (Or even 0deg, which will have the same result.)  Now the div is the containing block for the absolutely-positioned elements that descend from it.  It’s as though transforming an element force-adds position: relative.  The positioned elements will rotate with their ancestor and be placed according to its containing block — not that of the root element.

Okay, so that’s a little unusual but perhaps not unexpected.  I could make arguments both ways, and some of the arguments could get pretty complex.  To pick one example, if the transformed element didn’t generate a containing block, how would translate transforms be handled?

Either way, here’s where things got really troublesome for me:  a transformed element creates a containing block even for descendants that have been set to position: fixed.  In other words, the containing block for a fixed-position descendant of a transformed element is the transformed element, not the viewport.  Furthermore, if the transformed element is in the normal flow, it will scroll with the document and the fixed-position descendants will scroll with it. You can see my test case, where the red and blue boxes would overlap each other and stay fixed in place, except the second green div has been rotated.

Obviously this makes the fixed-position elements something less than fixed-position.  In effect, not only does the transformed element act as if it’s been force-assigned position: relative, the fixed descendants behave as if they’ve been force-changed to position: absolute.

I find this not only unusual and unexpected, but also a wee bit unsettling.  Personally, I think it goes too far.  Fixed-position elements should be fixed to the viewport, regardless of the transformation of their ancestors.  Of course, if you agree with my thinking there, realize that opens a whole new debate about how, or even whether, transforms of ancestors should be carried to fixed-position descendants.

I have my own intuitions about that, but this is definitely territory where intuitions are to be treated with caution.  There are a lot of interacting behaviors no matter what you do, and no matter what you do someone’s going to find the results baffling in some way or other.

But since I do have intuitions, here’s what they are:  transformed elements in the normal flow or floated do not establish containing blocks for absolutely- and fixed-position descendants.  This means that any transforms you apply to the transformed element are not applied to the positioned descendants, because transforms don’t inherit.

What if you want a normal-flow transformed element to be a containing block?  Use position: relative, same as you would if there were no transform.  And if you want the transforms to be passed on to the descendants even though no containing block is established?  The inherit value would work in some cases, though not all.  That’s where my approach runs aground, and I’m not yet sure how to get it back to sea.

Okay, so that’s what I think.  What do you think?

Adoption Day

Published 12 years, 8 months past

Yesterday morning, in a small office on the second floor of the Cuyahoga County Courthouse in downtown Cleveland, Ohio, Kat and Carolyn and Rebecca and I finalized our adoption of Joshua. There were a few witnesses to this: the social worker who has handled our case from the outset, as she did Carolyn’s; the lawyer who made sure all of our paperwork was correct; my sister and father and stepmother; our friends Gini and Ferrett and Jim; and the magistrate who conducted the proceedings.

As with Carolyn and Rebecca, I haven’t talked about Joshua being adopted — not that it was any big secret, given our having adopted our other children.  Nevertheless, I did this for the same old reasons: for the past seven months, we’ve been borrowing him from his legal guardians, the adoption agency.  The usual monthly checkups from our social worker still occurred, and there was still the theoretical possibility of Joshua’s placement being revoked for any reason whatsoever.  Or even for no reason at all.  I had no way to know if a blog post might somehow make things more difficult, so I left it alone.

All this was always a basically theoretical possibility — there was no real fear of it actually happening — but now, even the theory is undone.  Joshua is now legally our son and the girls’ brother just as completely as he has long been both in our hearts.  He is now ours — but even more than that, and far more importantly, we are now his.

Over a celebratory lunch, Kat held our sleeping son in her arms and I cradled his head with my hand as we whispered our love for him, for our girls, and for each other.

Results of The Web Design Survey, 2010

Published 12 years, 10 months past

Now available: the results from the A List Apart Survey for People Who Make Web Sites, 2010.  This is the fourth industry snapshot we’ve compiled, and the story that’s emerged over that time is proving to be pretty consistent.  You can get a high-level view from the Introduction, and then dive deeper into the results in the following chapters.  And, as is traditional, the Addendum contains links to the full (anonymized) data set in three formats for your own analytical investigations.  We’d love to see what you come up with!

Something that surprised me quite a bit was that in 2010 we got about half the number of respondents we’ve gotten in past years — not quite seventeen thousand participated in 2010 instead of just over thirty thousand as we saw in previous years.  I’m not quite sure what to make of that.  Is the industry shrinking?  Did we not get the word out as effectively?  Was it a bad time of year to run a survey?  Are people getting tired of taking the survey?  There’s no real way to know.

At least there weren’t any wild swings in the results, which might have indicated we’d lost some subgroups in disproportionate numbers.  Whatever caused the drop in participation, it appears to have done so in an evenly-distributed fashion.

Regardless, I’d like to see higher participation next year, so if anyone has good suggestions regarding how to make that happen, please do let me know in the comments.

We plan to run the 2011 survey in the next couple of months (and I’ll post a bit more about that soon) but for now, I hope you find the 2010 results an interesting and useful look at who we are.

Spinning the Web

Published 12 years, 11 months past

Can CSS create art?  That’s a question I set out to explore recently, and I like to think that the answer is yes.  You can judge for yourself: Spinning the Web, a gallery on Flickr.


To be clear, when I say “Can CSS create art?” I don’t mean that in the sense of wondering if art, or artful designs, can be accomplished with CSS.  I think we all know the answer there, and have known at least since the Zen Garden got rolling.  What I’m doing here is using some basic CSS to generate art, using web sites as the medium.  For the series I linked, I spun all of the elements on a page using transform: rotate() to see what resulted.  Any time I saw something I liked, I took a screenshot.  After I was done, I winnowed the shots down to the best ones.

As some of you old-schoolers will probably have recognized, I’m absolutely following in the footsteps of Joshua Davis here, and in fact my working title for this effort was “Once Upon a Browser”.  I saw Josh speak years ago, and clearly remember his description of how he generated a lot of his art.  My process is almost identical, albeit with a bit less automation and computational complexity.

Because this is me, I built a little commentary joke into the first images in the series.  It’s not terribly subtle, but with luck one or two of you will get the same chuckle I did.

I’m already thinking about variants on this theme, so there may be more series to come.  In the meantime, as I surf around I’ll stop every now and again to spin what I see.  I’ll definitely mention any new additions via Twitter, and new series both there and here.  And of course if you follow me on Flickr, you’ll see new pieces as they go up.

I hope you enjoy them half as much as I enjoyed creating them.  And if anyone wants to use the originals as desktop wallpapers, as Tim proposed, feel free!

Letter Sweep

Published 13 years, 1 month past

I thought it was unreasonably fun when Tim Bray did his Letter Sweep a while back, so I finally decided to fire up Camino and add my distinctiveness to his own.

  • [A]n Event Apart.  Not surprising, I co-founded it.

  • [B]ruce Lawson’s personal site.  I’ve been there most recently thanks to his “HTML5 gurus on Twitter” post.  I still feel like a little bit of a poser for being listed, but I appreciate the regard.  Bruce is good folks.

  • [C]NN.  I think half the reason I go any more is to see what manner of goofiness they have in their featured boxes.

  • [D]aring Fireball: BBColors.  I went there so I could back up my current color scheme and try out rcarmo’s port of Solarized Light, which I’m using now in modified form (I hated the default selected-text highlight).

  • [E] Democracy in America.  I have fun there, as time permits; there’s a surprisingly strong commenter community that keeps drawing me back.  I truly wish the Clausewitz blog had been a contender here, but it seems to be having a lot of trouble getting started.  I suppose it’s suffering the friction of warblogging.

  • [F]  I like to see who’s favorited and retweeted my stuff for the obvious ego reasons, but more importantly because people who like my CSS and other technical stuff are often people I might like to follow.  Similar interests, and all that.  The very close runner-up in this category is obviously [F]lickr, and it would probably take top billing some days.

  • [G]oogle.  Of course.

  • [H]iderefer.  I hacked WordPress (via a plugin) so links on my Dashboard are routed through Hiderefer.  This avoids giving away the location of my WordPress install to malicious sites that manage to get comments into the approval queue.  In doing this Letter Sweep, I discovered that I need to update the plugin to use Nullrefer instead, so I just did.

  • [I]MDB.  I don’t get to watch a lot of movies these days, nor do I actually think I would do so even if the opportunity arose, but somehow I still love them.

  • [J]oe Wein’s blog.  Specifically, the post “Domain registration scam in China“, which I was reading after getting some suspicious e-mail.  The post confirmed my suspicions.  Thanks, Joe!

  • [K]  The only guess the browser had for K was the post “Unicode, all of it“.

  • [l]ists.css-discuss-org.  Not surprising, I co-founded it.

  • [M]eyerweb.  Not surprising, I administrate it.

  • [N]etflix.  I’ve been working my way through “Avatar: The Last Airbender” to see if it would be appropriate for the young’uns.

  • [O]pera.  Specifically the fantastic “Opera version history“, which I wish every browser vendor emulated in detail.

  • [P]enny ArcadeYo when I hit it I hit L-shift-O to the quote and then dollar…

  • [Q]uora.  Another one-entry guess list, this time for the question “Given our current technology and with the proper training, would it be possible for someone to become Batman?“.  I think that’s one of three times I’ve ever been on Quora, whose popularity I still find a little mystifying.  But then I remember and was a fan of, so who am I to judge what’s interesting?

  • [R]etreats 4 Geeks.  Thanks to which I just recently had a ridiculously good time hanging out with twelve awesome people in the mountains above Gatlinburg, TN.  Runner-up: the fabulous [R]atfist.

  • [S]kynet.  That’s my version of localhost, which means clicking the link will do you no good at all unless you did the same thing.  (Skynet is also the SSID of my home wifi cloud, which makes a bit more sense.)

  • [T]witter.  Of course.

  • [U]S Bank.  My bank.

  • [v]‘s post “CSS Married Porn AND had a Baby! OR Eric Meyer: ‘Dirty Thought-CSS’ Diary!“.  Yeah, I don’t know either.

  • [W]orld Wide Web Consortium (W3C).  Of course.

  • [X] had literally not a single guess.  No, I don’t follow XKCD; I figure the really good ones will get tweeted and copied to hell and gone anyway, so I just rely on the collective to pre-filter for me.  Apparently I haven’t been there recently.  Make of that what you will.

  • [Y]ouTube.  Because where else am I going to find Bert and Ernie singing old-school M.O.P.?

  • [Z]azzle.  Specifically the page for the “CSS IS AWESOME” mug, which I was considering buying because it’s not often you find an unalloyed song of praise to a CSS capability that no other Web technology has yet managed to duplicate.  But then I remembered I don’t really drink mug-based liquids, so I passed.  (And the T-shirts don’t make the content nearly big enough, so I passed again.)

So what’s your browser guess for you?

Browse the Archive

Earlier Entries