Posts from 2007

San Francisco Schedule

Published 16 years, 8 months past

Amongst all the travel, there’s been a metric ton of backstage work going on.  This is generally true of me these days, which is why posting has fallen off in 2007.  Unfortunately, it’s meant that I’ve been lax about keeping you folks up to date on what I’m up to—and also to keep you informed about An Event Apart, which is what accounts for most of that backstage work.

For example: last week, we announced publication of the complete schedule for AEA San Francisco, which will be 4-5 October 2007, and I didn’t say a word here.  I should have; honestly, it’s amazing.  I already want to see it.

I know, I say that every time, but it’s always true.  One of the things that makes me proudest about AEA, and that makes me continue to work hard on AEA, is that it fulfills one of the core requirements Jeffrey and I set out: to create the kind of event we’d want to attend.  I’m not satisfied with an AEA show unless I can look at it—and I mean all of it, from the schedule to all the organizational details that aren’t always obvious—and say, “I would pay money out of my own pocket to see this show”.

And so far, I’ve always been satisfied.

So we end the 2007 series with another great lineup and incredible set of talks in San Francisco, and it makes me proud all over again.  I hope you can be there to see it.


Running on :empty

Published 16 years, 8 months past

While kicking around some ideas at the CSS workshop I led in London, I ran into some interesting problems with :empty.  If you’re not up on what that one does, it’s a way of selecting elements that have no children, including text.  To quote the formal definition:

The :empty pseudo-class represents an element that has no children at all. In terms of the DOM, only element nodes and text nodes (including CDATA nodes and entity references) whose data has a non-zero length must be considered as affecting emptiness; comments, PIs, and other nodes must not affect whether an element is considered empty or not.

So kindly consider:

*:empty {
   padding: 0.25em;
   outline: 1px dashed red;
   background: yellow;
}

We (re)discovered something very strange right there in the workshop: given the preceding rule, Firefox applies it to the body element—which is, quite clearly, not empty.  You can check out the fun on my bare *:empty test page.  From there, we realized that if you prepend a body to the selector, yielding body *:empty, the problem vanishes, as you might expect.

As it turns out, this is a known bug in Gecko.  It’s been known for about 18 months, in fact.  So that’s why I was confused by Firefox’s behavior.

The other problem is that :empty in Firefox matches img elements, whether or not they cause an image to successfully load.  You can see this happen on the same test page.  While it’s true that img is an empty element, it’s still bringing in content, so from a common-sense point of view it seems that :empty ought not to match.

In re-reading the description from the specification, though, I can’t justify my common-sense interpretation—an img element has neither element nodes nor text nodes, so far as I’m aware.  The same is true for form inputs, even text inputs that have pre-filled value text; but not for textareas that have pre-filled content text.  But then br elements should also be selected by this rule, and they apparently don’t get matched at all, as the test page shows.  Bwuh?

Well, maybe it’s a bug.  What concerns me here is that the definition of :empty basically requires that things like images and inputs always be selected, which strikes me as kind of useless.  After all, if I wanted to select all images, I’d write img into my selector; ditto input for inputs.

My thinking is that the description should change to state that application of :empty is restricted to non-replaced elements.  Alternatively, it could be redefined to only apply non-replaced elements and to empty replaced elements that don’t either cause something to load or have values associated with them.

Which seems a better solution to you, and why?  Or, if you see a better approach than either of those, what is it?


Come Tuesday

Published 16 years, 8 months past

Some news for folks in London (UK) and Cleveland (US).  If you don’t fit either of those descriptions, well, I don’t know what I can do.

For those of you in or near London, I’ll be at a Geekminidinner the evening of Tuesday, 14 August 2007, which you can read a bit more about over here.  (Apparently, I need to print out an article I wrote a while back and staple it to Ian‘s forehead.)  Come on ’round and join us!

About four and a half hours after that starts, I’ll be missing (in both senses of the word) the Cleveland area Web Standards/Web Design Meetup.  Once left for dead, this group has come roaring back thanks to the tireless efforts of a COBOL dude who is much less scary than his profile photo would seem to indicate.  He does run the Ubuntu Satanic Edition, but I’m sure that’s just a coincidence.  Seriously, he’s a great guy.  I have never once heard him say “SATAN!” in a deep growly voice, no matter how many times I ask.

The point being, 18 people have already said they’ll be at the Meetup, and you should absolutely add yourself to that list.  Assuming you will actually be there, of course.

As for London, I don’t know how many will be there, but probably not as many as the Cleveland gathering.  Hey, it’s okay, folks.  Don’t feel down about it.  Not everyone can be as cool as Cleveland.  We’ll do our best to have a good time regardless.


The Veteran’s Charge

Published 16 years, 8 months past

“This page best viewed in…”

If that phrase doesn’t provoke a shudder of horror and loathing, it should.  It’s the battle cry of the Browser Wars, those terrible and ultimately futile years at the end of the last milennium.  It’s the rallying cry of those who would take the open ubiquity of the web and fragment it into a collection of gated communities, where entrance to each is predicated on running a specific browser.

“Your browser is not compatible and must be upgraded…”

All too often, because developers are too fearful or prideful or just plain lazy, they put up unnecessary barriers to entrance.  They prevent people from using their sites based on choice of browser.  Of course there are situations where the experience will be different—nobody expects Netscape 4 users to be able to see all 2007’s pretty CSS effects, just like table-based sites look beyond bizarre in Mosaic.  That’s no excuse for sites that intentionally lock users out just because their choice of browser doesn’t line up with the developer’s expectations.  It’s regressive, short-sighted, and just plain unprofessional.

“This site is for iPhone users only.”

STOP IT.  Stop it right now.

The fact that optimizing pages for an iPhone makes the development of such specialized pages attractive in no way excuses lockout of other users.  I might be willing to entertain the argument if the iPhone’s browser were some specialized non-web contraption.  It’s not.  It’s a full-fledged XHTML+CSS+DOM browser that happens to lag a bit in some implementation areas and won’t run some plugins.

Besides, if you’ve developed a version of your site (or application or whatever) that works well on the iPhone, then why in the name of Tim Berners-Lee would you deny other people that optimized experience?  You might find that they prefer to interact with the site that way no matter what platform they’re using.  You might find that you don’t need a separate iPhone version after all.  The iPhoned version might be the only version you need.

Designers will argue that pages optimized for the iPhone screen will look bad on a desktop browser.  Maybe, and maybe not, but stop preventing your users from making that decision for themselves.  Nobody says you have to convert your whole site to be iPhoney.  But your lockout of non-iPhone users is worse than rude.  It’s stupid.

We finally learned, after much sweat and a fair number of tears, that “best viewed in” is a fool’s errand.  Are we so eager to rush back into that morass and fight the war all over again?

Please.  Just stop.


Creativity Jam Session: Images and Words

Published 16 years, 9 months past

With a bow toward Molly, who’s been posting her own Jam Session ideas, I humbly present two of my own.

Consider the following picture (which is linked to the original’s Flickr page if you want to see it in more detail).

Ashore

Now: come up with the title, author, and synopsis of a book that would evoke this image.  Alternatively, come up with the title, director, and synopsis of a movie that would contain the image.  Part of the challenge is to write the synopsis so that it’s obvious why this image is important.

And since we’re on the subject of using photos to inspire creativity, here’s one based on the excellent webcomic Found Comics.  Go to Flickr and search for a common-word tag—say, “pie” or “funky” or “computer”.  Take the first few images in the results, and then construct a short narrative that ties them together.  And be sure to credit Found Comics for the idea if you publish whatever you come up with!


Individuals and Communities

Published 16 years, 9 months past

I was quickly skimming through David Brin’s rantblog (because frankly I don’t have the six hours it would take to read through all his very lengthy posts) when I came across a quote that resonated so strongly, I had to reproduce it here.

The community stagnates without the impulse of the individual.  The impulse dies away without the sympathy of the community.

— William James

This almost perfectly captures how I’ve tried to shape css-discuss and other communities in which, over the years, I’ve been deeply involved or had a hand in founding.  It is a very good starting point to understanding my views of society, politics, and more.  I’m literally considering putting up a framed copy on my wall, right next to my print of “Jump Station“.

But that’s me.  What do you think is the best relationship between individual and community?  How should they balance, or not?  What’s the best way to inspire and maximize both?


London Workshop

Published 16 years, 9 months past

So while I was off indulging in the extravagance of an extended vacation/family reunion/road trip, seats went on sale for a two-day CSS workshop in London, starring yours truly and run by the fine folks at Carson Workshops, which will run 13-14 August.  The seats are something like half-sold already, so if you want in, don’t wait.  Sorry I didn’t say anything sooner, but, you know.  Family time!

To those who do decide to attend, I make this pledge: I will not wear the blue-shirt-with-tan-slacks combo again.  This I swear.


Better Know

Published 16 years, 9 months past

I don’t know about you, but I keep a “staging” file for my posts here.  It’s a text file on my hard drive where I can write posts offline, and can also keep a list of things I want to write about.  Right now, that list is longer than a typical short entry.  I suppose two weeks’ vacation (photos from which are slowly going up on Flickr) will do that to a schedule, especially with all the driving that was involved.  (And may I express my deep and unbounded loathing of the usually ambiguous and often misleading road signage in the New York City/New Jersey area?  Yes?  Thank you.  I needed that.)

So, to begin the jamcracking: AEA Chicago‘s early bird deadline is fast approaching; it’s just nine days away as I post this.  As we start gearing up for the show, we’ve re-started (and rebooted) an AEA feature called “Better Know A Speaker”.  Originally, these were testimonials from Jeffrey and me, but that turned out to be more than our schedules can accommodate.  So we’ve redone them as short interviews with speakers, which I think is far more interesting anyway.  The first of these new BKAS pieces, with Dan Cederholm, went up last week.  This week we’ve got Jeremy Keith.  In the weeks to come, we’ll cover the rest of our Chicago speakers.  The AEA news feed is of course the best way to keep up with these tidbits and other AEA info, but I’ll probably either blog or linkblog them here as well.


Browse the Archive

Earlier Entries

Later Entries