Thoughts From Eric Archive

Roundup

Published 22 years, 1 week past

Off the road again: I’m back from User Interface 8, where a good time was (once more) had by all.  Especially me.  I don’t know exactly how I ended up with good-looking women in my lap so often, but I don’t think I’ll complain about it too much.  I have a huge collection of pictures that cry out to be shared, and a huge lack of time to assemble a gallery.  I could use iPhoto’s export-to-Web function, except I hate it.  I’ll have to dig up one of those cleaner plug-ins I’ve been hearing about and give it a whirl.

To catch up things that happened while I was away:

  • A List Apart is back.  That in itself is cause for celebration, even if my article “Going To Print” no longer makes sense in the new template.  However, the real news from where I sit is the publication of “Sliding Doors of CSS” by the always brilliant and readable Douglas Bowman.  Check out the presentation, HTML source, and text-zooming robustness of this demonstration page from the article, and then read the article if you’re impressed—as I suspect you will be.  I’m seriously thinking about publishing a followup article to “Rounding Tab Corners” using Doug’s Sliding Doors technique, and comparing it to the techniques presented in the the original article.  Some have said that Doug built on my article, but that’s not true.  He came up with his approach independently, and if anything I’ll be building on his ideas, not the other way around.
  • Russ Weakley published the Floatutorial, which “takes you through the basics of floating elements such as images, drop caps, next and back buttons, image galleries, inline lists and multi-column layouts.”  It does this with a simple yet powerful step-by-step approach that reminds me a bit of Eric Meyer on CSS, except it’s much more concise.  The Floatutorial joins the Listutorial in Russ’ oeuvre.
  • The House of CSS (not to be confused with the House of Style) opened its doors, and the crowd went wild.  I like it.  Sure, it’s a whole lot of structural hacking to achieve a purely visual effect, but so what?  I didn’t think of it, and neither did you.  Or if you did, you didn’t bother to assemble it.  Chris Hester did, and he deserves recognition for the creativity and skills it took to do so.
  • Apparently Microsoft’s recently started admitting that Longhorn will launch in 2006, as I predicted a few weeks ago.  A few people wrote to ask if I’m always so prescient.  The truth is, it didn’t take an oracle, a guru, or a clairvoyant to figure out that Longhorn was likely to be delayed by a year or more.  As I’ve been known to say every so often, the best predictor of future behavior is past behavior.
  • In a possibly related move, Microsoft has apparently decided to save time by releasing their critical-flaw fixes in groups, or what I’m going to start calling “patch batches.”  You know what to do, right?

For no apparent reason, I’ve had the song “Rhinestone Cowboy” stuck in my head all day.  Even a potent cocktail dosage of Ministry, Joe Boyd Vigil, Crystal Method, The Prodigy, and DJ Z-Trip has failed to dislodge it.  I’m starting to think that a power drill is my only hope.


The Incomplete Divorce

Published 22 years, 2 weeks past

Doug Bowman’s observations on the separation of presentation and content are well made, and illuminate an oft-overlooked corner of the whole standards debate.  Even with some semantic correction, we still have room for discussion.

My semantic correction is that we aren’t trying to separate presentation and content, but presentation and structure.  Doug makes this point throughout the latter part of his post, but I think this is the important thing to state right up front.  Without content, it’s very difficult to have any presentation, except maybe a blank browser window (very minimalist, but not necessarily useful).

Even there, however, the divorce is not complete and never can be.  I’ve been saying this in public presentations for a while now, and it bears repetition here: you can have structure without style, but you can’t have style without structure.  As Doug observes, you have to have elements (and, also, classes and IDs and such) in order to apply style.  This is absolutely the case, and it should come as little surprise, really.  If I have a document on the Web containing literally nothing but text, as in no HTML or other markup, just text, then it can’t be styled.  Presented, yes, using the browser’s defaults for showing raw text.  But not styled.

This is also why I’ve argued that the document structure is dependent on your presentational needs.  Document structure is like the support beams for a building.  The final layout and appearance of the building will depend very heavily on the shape those support beams create.  If you ignore that, and assemble the beams with no thought toward the final product (not following the blueprints, as it were), the best you can hope for is an inefficient, almost unusable building.  In the worst case, the building will utterly collapse as soon as you try to add anything useful to the structure.

This has been a minor issue in HTML, but XML throws the issue into sharp relief.  Consider the following fragment of XML:

<city name="Cleveland" state="Ohio">23</city>

Okay… any idea what that number represents?  No, probably not.  What’s worse is that if I hand that element to a user agent, it will display the element’s content: 23.  The user won’t even have the attribute values to give them what little hints you got by looking at the source.  They just see the number 23.

That’s because attribute values don’t get displayed, while element content does.  Yes, we can use CSS generated content to make the attribute values show up, but how crazy is it that the following would be needed to make the display more useful?

city:before {content: attr(name) " " attr(state) ": ";}

And then, if you wanted to make the bits of data lay out like a table—you can’t.  Oh, sure, you could get the generated content into one layout piece, and the element content into another, but you can’t get the city name and the state name into separate cells.  Even if you could apply display: table-cell to the generated content, you can’t split it into different cells.

We can argue that this illustrates limitations in CSS, and to a degree that’s true, but to do so misses the point entirely.  There will always be some limitation we can’t overcome, something the styling language of the moment can’t make possible.  What I’m talking about is the fact that presentation is inextricably bound to structure, and document authors ignore that connection at their peril.  Let’s return to that XML fragment and restructure it to be more intelligent:

<city region="midwest">
  <name>Cleveland</name>
  <state>Ohio</state>
  <hightemp scale="c">23</hightemp>
</city>

Now, not only do we have more actual content to be displayed by default, but we have more elements to actually style.  So we might turn the above into a table-like structure, complete with some useful cues for the user, like so:

city {display: table-row;}
city > * {display: table-cell; width: 33%;}
hightemp[scale="c"]:after {content: " degrees Celsius";}
hightemp[scale="f"]:after {content: " degrees Fahrenheit";}

Now, thanks to our structure, we can make the display much more useful for the user, and understand it better ourselves.  We can even style the city and state differently now, whereas before that was impossible.  We’ve also been able to use an attribute value to affect presentation.  I included the attributes to show that attributes aren’t at all useless, or even have to stay completely out of the presentation.  They can be quite handy.  However, the region attribute is a good example of data that has to be carefully considered.  If we ever want to display a city’s region next to its name, then it’s probably a good idea to use an element (like <region>...</region>) instead of an attribute.  If we just want that information in the data structure for purposes of transformation, or to style descendant content without actually displaying the region’s name, then an attribute makes far more sense.  For example:

city[region="midwest"] {background: green; color: white;}
city[region="northeast"] {background: purple; color: white;}

If we’re going to do that kind of thing, treat the region almost like it’s a class, then we definitely want it as an attribute.  If it were an element, with the region name as content, we’d have no way to style it (or anything else) based on its content.

What it comes down to is that structure is critical to presentation, with or without the style—although intelligent structure makes styling lots easier.  Contrary to what some may have claimed or implied, you can’t just create an arbitrary structure with no consideration toward its presentation.  If you want something on the screen, it needs to be element content.  That may not be ideal, but it is inescapable.  Structure may be able to break up with style, but style still needs and depends on structure in a big, big way.  Personally, I’m not sure it can ever be otherwise.


Musical Merriment

Published 22 years, 2 weeks past

I often wonder how much effort goes into picking the music played in public spaces.  Do the people who assemble these societal soundtracks just pick their favorites, or a random assortment of whatever they can find, or is there an enormous amount of thought and effort and psychological analysis put into the selection?

And if there is, in fact, a lot of thought put into the process, then who in the name of Bob thought it was a good idea to have the song “Knockin’ on Heaven’s Door” played through the speakers at the Cleveland airport?  And then, half an hour later, “Sunday Bloody Sunday”—on a Sunday?

I thought it was hilarious, but there are those who are already so stressed about flying that they’d probably verge on having a coronary.


Checks and Balances

Published 22 years, 3 weeks past

Today I received my first Complex Spiral paycheck.  Yay!  I’ve done several paying jobs by now, and more are underway, but this is the first check to actually show up for deposit.  Let that be a lesson to those of you who might be thinking about striking out on your own: if you can’t cover all of the expenses you’ll incur between leaving your old job and the point two months after you finish your first project at the new job, you can’t afford it.

Yesterday, the mail brought to me a package from New Zealand.  It contained a copy of the Digital Life episode on Web standards.  That was especially fascinating since this morning an article on standards support (and the limits thereof in Internet Exporer) was published on c|net quoting me, Zeldman, and others.  With Explorer’s development at an apparent end, it’s becoming a heavier and heavier millstone around the necks of designers.  Let’s assume that there are no advances in Microsoft’s Web standards support between now and Longhorn.  That’s close to three more years of the millstone getting heavier.  By then, we’ll all have serious back problems.

(Yes, I can count: Microsoft’s Longhorn launch date of 2005 says to me it’ll actually launch in 2006.  I’m just drawing a historical inference here.)

Of course, the whole Eolas situation probably doesn’t have the Microsoft folks in a benevolent frame of mind regarding standards.  If they just abandoned the public Web and moved everything into a closed, proprietary sandbox of some kind, they might be able to avoid these sorts of problems altogether.  That’s exactly what I expect them to do in Longhorn, and the expectation worries me.  If the whole world moves into the sandbox—and let’s face it, in an e-commerce sense, IE/Win is the whole world—what reason would there be to pay any more attention to the Web?

We might say hey, fine, let’s get Microsoft and its partners the hell off the Web so we can go back to developing it the right way; let’s take back the neighborhood.  That would make about as much sense as rooting for Flash to be the technology used on every Web site in existence.  When one company owns the medium, everyone else loses.  Thus far, the Web has been a community asset, with no one company calling the shots.  How can we make sure that situation continues past the next few years?


Slash Or Dot?

Published 22 years, 1 month past

I think I’ve been semi-Slashdotted.  Having one’s site mentioned in the comments associated with a post isn’t as good as having a whole post about your book, but it’s probably still driven a lot of traffic this way.  So howdy, Slashdotters!  Hopefully this will also drive a little more traffic to my standards-oriented consulting business,  Complex Spiral Consulting.  Ser Zeldman is right on about the shift in tone over at Slashdot when it comes to standards issues.  It’s a nice change to witness.  This may be one more bit of support to my claim that Microsoft didn’t win the browser wars: standards did.

Mac OS X folks should delay not a moment longer their introduction to xlab, which I found thanks to Jeremy Keith.  xlab is chock full of tips and pointers, and it looks clean and attractive to boot.  And is that a CSS-driven layout I spy?  Why yes, I believe it just might be.

For those who were thinking about asking, I won’t be sharing with you what’s in my Dock.  This is partly because I keep it on the left and so it’s very tall, and I don’t want to waste that much space.  It’s also because I’m getting very close to dumping the Dock in favor of a registered copy of DragThing, which I use on my Classic OS machine and sorely miss in OS X.  The Dock just doesn’t have enough features to be an effective replacement.  If people indicate an interest, I suppose I could talk about OS X tools and widgets I find useful.  Otherwise, I’ll stick to the usual foolishness that passes for witty discourse ’round these parts.


The Well Defended

Published 22 years, 1 month past

So it turns out OCLC might not be acting quite as poorly as first appeared, but instead acting in a ‘rational’ way given the parameters of an irrational system.  In their press release (currently available only on their News and Events page, so no permanent URL here) on the subject of suing the Library Hotel, they state:

…trademark law imposes affirmative obligations on trademark owners to protect their trademarks, or risk losing all rights in those marks through legal abandonment. We felt that abandoning our rights in the Dewey trademarks was an unacceptable result for the OCLC membership. OCLC attempted to avoid litigation by repeatedly requesting attribution of our ownership of the Dewey marks from The Library Hotel. They have refused to do so. Unfortunately, that refusal left us with no other recourse than to file a legal complaint.

It is true that trademark law imposes such obligations.  It’s long been the case that failure to defend a trademark is taken to mean relinquishment of any rights to preserve said trademark.  That’s the irrational part, in my opinion, but I suppose if we somehow fixed that then a lot of copyright lawyers would be out of work, and we can’t have that, now can we?

It may also be the case that a commonly used term can retain legal protection without having to sue everyone just to defend it.  If I’m remembering correctly, LucasFilm helped establish that precedent at some point, when a judge ruled that a protected entity that had sufficiently permeated the mainstream (read: every major Star Wars character) didn’t have to be continually defended in order to preserve its protected status.  Or something along those lines.  I don’t know if the Dewey Decimal system qualifies as having permeated the mainstream, but it probably should.  Then again, I occupied offices in university libraries for most of a decade, so my view might be skewed.

Of course, we don’t know what kind of attribution OCLC requested, and how the Library Hotel refused OCLC’s requests; either one or both of them could have been wholly unreasonable in their communications.  Regardless, it makes no sense to me that OCLC should be compelled (in a legal sense) to file a lawsuit for an enormous amount of money in this situation.  Does the Creative Commons offer a way out of this kind of situation?  Could it, with some enhancements?  It might be worth investigating.

It was also brought to my attention that the phrase “poisoning the community well” may have connotations of which I was previously unaware.  According to Informal Logical Fallacies, I was very close to using the term for a type of logically fallacious argument that is “an attempt to preclude discussion by attacking the credibility of an opponent.”  I merely meant “acting in a way contrary to the community interest.”  No attacks on anyone’s credibility were intended.  I just hope the term isn’t trademarked, because I’d really hate to end up in court over it.


Dynamic Mental Static

Published 22 years, 1 month past

An interesting idea: Pixy’s fast no-preload rollovers, which I first heard about in a presentation at Seybold.  It seems to me there’s one potential drawback in this method, which is that it requires that your links be an exact size, or at least never be taller than a certain size.  Since I spend a lot of time thinking about techniques that will work well even if the text is scaled up 300% or more, this “drawback” is probably more of a concern to me than to the rest of you.  I don’t mean to denigrate what Petr has done—it’s a clever technique, and has a great deal to commend it, including reduced server load.

So, Eolas.  Their claims of inventing plug-ins or applets or whatever put me in mind of a similar yet much dorkier situation surrounding the new movie Underworld, summarized rather well by the guys at Penny Arcade, as usual.  Of course, Microsoft itself patented style sheets back in the late Nineties, so it’s not like they’ve never been down that road themselves.  I’ll freely admit that Microsoft never did anything with said patent, and that puts them a step above Eolas in the trudge toward something resembling the faintest shadow of a moral high ground.

One of the reasons I’ve not gotten too worked up about all this is I still have this idiotic faith that reason will, eventually, prevail.  The British Telecom “patent” on hyperlinks came to nothing, so far as I can tell.  Whether this was due to a court throwing out the claim, or the collective will of the Web ignoring it outright, I’m not sure, but that’s sort of the point: it was never a big deal.  I keep thinking whatever process got us there will similarly operate in the Eolas case.  I can’t do much about it either way.  Hey, maybe Eolas did patent the process of whatever it is they claim to have invented years after other people had already done it.  Great.  As soon as I secure a patent for my novel method of representing complex information using only the integers one and zero, I am so going to clean up in the courts.  (Hat tip: Chris Lilley, ca. 1999.)

Of course, we also have ISO and OCLC poisoning the community well in different but still deeply distasteful ways, so maybe I should reconsider my faith in reason winning the day.  Is it time to pull out the term “morons” yet?  How about “scummy bastards?”  Somebody let me know.  Meanwhile, I generally find relief from goofy humor and mind games (of the good sort), so let’s try some of that on for size, shall we?

Davezilla shares a semi-coherent translation on a snack-food packet (for more such goodness, please to enjoy the site of Engrish).  I’m reminded of one of my favorite business cards of all time; it came from a fortune cookie factory in San Francisco’s Chinatown.  This card stated, in bold red capital letters near to bursting with pride, “WE SPECIALIZE TO MAKE ALL OCCASIONAL COOKIES.”  Sadly, this glorious bit of prose no longer graces the new cards they now hand out, which instead inform us that they are happy to offer novelty adult cookies.  I sometimes wonder if that simply means that the fortunes come with the words “in bed” already printed at the end of the phrase.

The page I’m about to point to is best viewed with a fairly wide browser window, because it’s peppered with some very wide images, but “The latest works” is very much worth visiting if you’re fascinated by optical illusions.  I’m always intrigued by examples of the brain percieving motion where there is none, and sometimes wonder if this capacity is in some weird way the neurological basis for conspiracism.  Note that not all the examples may work for you; only about half to two-thirds did for me.  But the ones that did… wow.  I expect it’s the closest I’ll ever come to being a synaesthetic.


Entity Errors

Published 22 years, 1 month past

Okay, XSLT folks, here’s one for you.  I had the following fragment in my journal recipes, with some whitespace to make everything more readable:

<xsl:element name="a" use-attribute-sets="plink">
  <![CDATA[&para;]]>
</xsl:element>

The goal was to get output something like this:

<a ... >&para;</a>

Instead, what I got was this:

<a ... >&amp;para;</a>

So how do I reach my goal?  And please don’t tell me that I should just generate the character directly.  It isn’t the result I want, even though I’m doing it now as a stopgap measure.  All I want to know is how to get what I want, if for no other reason than it will clarify more about XSLT, XML, and how they handle CDATA and entities.  Several Google searches turned up nothing useful, but it may very well be that I wasn’t using the right search terms.

Update: Curtis Pew pointed me to an XML.com article that led to the answer.  It is:

<xsl:element name="a" use-attribute-sets="plink">
  <xsl:text disable-output-escaping="yes">&para;</xsl:text>
</xsl:element>

The article talks about defining a custom entity, which I tried but failed to do even I’ve done it successfully in the past for less ambitious purposes.  xsltproc kept complaining that the namespace prefix xsl wasn’t defined, even though everything else in the recipe didn’t seem to have that problem.  Moving the xsl:text into the recipe itself was the answer.  Thanks to Curtis for the lead!


Browse the Archive

Earlier Entries

Later Entries