Posts in the Standards Category

Corralled

Published 21 years, 1 month past

I was going to talk about the CSS class I start teaching tonight at Cuyahoga Community College.  That’s been trumped.

Microsoft blogger Ryan Dawson spent a little time talking about XAML last night.  What’s XAML?

The quick and dirty: XAML is a way to create applications in the browser (or out for that matter).  For example, imagine a text editor with the rich UI of Windows, but portable in the browser.  XAML doesn’t even have to be an application; it could be your existing website in a more structured manner.

The quick and dirty (2): It is basically an XML structure with CSS and JavaScript.  The CSS defines the appearance and the JavaScript dictates behavior.

Go read it.  I have some thoughts, many of which have been stewing for a while, so come back if you’re interested.

(…pause to idly wonder if XAML is pronounced “zammel” or “camel”…)

Okay.  This all looks fantastic, although it’s less groundbreaking when you realize Mozilla already did it with XUL (“zool,” in case you were wondering, just like in Ghostbusters).  Think of it: a rich development and Web services environment built entirely out of open technologies like XML, CSS, JavaScript, and so on.  It’s like a dream come true.

Then again, maybe it’s a nightmare.  I said in “Checks and Balances“:

…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.

These thoughts were largely fueled by rumors I’d been hearing over the last few months; those rumors were obviously about XAML.  I also wondered if Dave Winer had been hearing similar rumors when he made his famous “locked in the trunk and going over the cliff” comment about the Web.

Remember, this is a very large corporation we’re talking about here, never mind that it’s Microsoft.  They will develop technology in a way that increases profits.  Their goal is pretty obviously is to build rich capabilities directly into Longhorn, so that Windows users get all kinds of cool stuff for “free.”  Picture it: when you open the “Search” application and type “flights from Cleveland to New York,” it returns airfares for you right there in the search results box.  But from where are those airfares going to come?  Orbitz?  Not bleeding likely.  How about Expedia?  Yeah.  Just maybe.

Now, think about searching for a band like Our Lady Peace.  You get links to fan sites as well as links to buy their albums.  Who’s going to supply those e-commerce links?  If I were a betting man, I’d say a Microsoft partner.  In hotly contested e-commerce sectors, the bidding wars over those partnerships will be outrageous.  Microsoft gets the best of both worlds: a transaction fee for purchases their OS users make in the Longhorn Corral, and whatever money Amazon or Buy.com or whoever pays them just to have the chance to pay them transaction fees on those sales.

Now consider the issue of who will supply news links, which can lead to major ad revenue when users follow the link to a story.  MSN is the obvious venue, of course, and whoever’s partnering with them gets their ads on the Longhorn desktop.  So when it comes to sports scores and headlines, for example, ESPN is pretty set up—as long as they can stay a partner.  How much will that privilege cost them in five years?

And where will AOL be then, now that Netscape is effectively dead and Mozilla‘s been spun off?  As Dave Shea wrote from 2009, “AOL executives surprised to discover ‘foresight’ carelessly crossed out of their dictionaries.”  More recently, Simon Willison said:

On the negative side, this looks set to represent the ultimate browser lock-in – in a few years time when IE 7 comes as standard on new PC s I wouldn’t be surprised to see the corporate software development world moving almost exclusively to this technology – after all, it’s going to be extremely easy both to develop and to distribute and it will have all of the benefits of a web application without the downside of the restricted GUIs offered by HTML.

Exactly so.  Microsoft, having learned what it needed to know from playing in the public Web space, is now positioning itself to pick up all the e-commerce and go home.

Permit me to repeat myself: “When one company owns the medium, everyone else loses.”  Everyone from design firms to tool vendors to browser makers will have to dance to Microsoft’s tune.  We have until about 2007, maybe 2008, to prevent that from happening.  Can it be done?  How?  By whom?  If XAML lives up to its potential, Microsoft won’t need the W3C any more.  Why should they play by the open community’s rules when they can create their own very lucrative and highly controlled gated community?

I want to be wrong.  I want to think that XAML will be open, interoperable, available for anyone to hook into whether or not they’re a partner or Longhorn developer.  I want to believe that Safari and Mozilla will be able to surf the XAML sea just as effectively as Explorer.  I also remember my history, and the past behavior I recall doesn’t bode well for the future.

I’ll admit that a lot of my concern is self-interested.  If XAML locks up the Web, then I’ve got a lot of scrambling to do.  I can very likely stay employed, since CSS is apparently a big part of XAML, and probably do pretty well for myself.  I’m not sure if my heart would be in it, though.  One of the things I love about the Web is its big, sprawling, open nature.  I’ve fought against fragmentation for years; I’ve been fighting the open standards fight for longer than I care to remember—for longer than a lot of you have been working with the Web, in fact.  That all stands in jeopardy now.  I may, at long last, be caught in the crushing, extending embrace.

If that’s so, I suppose I’ll have plenty of company.


Roundup

Published 21 years, 1 month 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 21 years, 1 month 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.


Slash Or Dot?

Published 21 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.


Entity Errors

Published 21 years, 2 months 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!


Signs and Importants

Published 21 years, 2 months past

Spotted in and around Cedar Falls, Iowa:

  • The license plate 007 JFK.  Because Iowa plates are formatted as three numbers followed by three letters, this is likely a random occurence instead of a vanity plate; typically vanity plates aren’t allowed to be in the same format as the random plate series, for fear of platespace collisions.  Maybe that was a poor choice of words.
  • Two minutes later, a license plate reading 152 EGO.
  • A sign attached to a traffic light stating “OBEY ONLY YOUR SIGNAL.”  The one the CIA transmits via my fillings, or just the one I get on the car radio?  (The same signs were later spotted in the Chicago area.)
  • A gas station called “Kum ‘n’ Go.”  Seriously.  It has great big signs at each station reading “PAY AT PUMP.”
  • A whole bunch of people (as in a few dozen) standing around the downtown Cedar Falls area with nametags on their chests and clipboards in hand, looking at the buildings and putting pencil to paper.  It turns out they were design students studying the downtown, which is award-winning, but it was still just a tad creepy.  I couldn’t help wondering if they were collecting information for TIPS or not.

Spotted in the Minneapolis International Airport:

  • Restaurants called “Miami Subs” and “Malibu Al’s” adjacent to each other.  Doubtless they were related, probably had the same owner, but it was still strange to see in Minnesota—particularly since elsewhere in the airport I passed a “Maui Tacos.”
  • Pay-to-surf WiFi.  I thought about ponying up the money just so I could use Airport in the airport, but my cheapitude got the better of me.

I also noticed a lot of attention being paid to Jeff Veen’s article on the business benefits of standards, coincidentally published on the same day I delivered a talk on that very subject at the University of Northern Iowa.  Jeff’s piece is a great overview of why using standards can save you money, so if you haven’t read it, you should; this is an important and often overlooked aspect of the whole standards movement, even though it’s the thing that is most likely to drive more standards adoption.  Tristan Nitot published an article with a very similar title on DevEdge back in February, and it might be worth revisiting.  Of course, I believe so strongly in this that I founded a consultancy with a core goal of helping organizations figure out how to save money by better using standards in their Web sites, both internal and external.


Released

Published 21 years, 2 months past

Right in the middle of the Iron Chef of Web Design presentations on Wednesday, a calm female voice announced over the public-address system, with quite a bit of volume, that due to a security situation the Moscone Center was to be evacuated.  As it turns out, the entire complex was being evacuated, not just the Moscone West building.  That’s a lot of people to dump on to the sidewalks of San Francisco all at once.  Fortunately, the hotel here has a WiFi network in the lobby, so I could check e-mail after all.

Dreamweaver MX 2004, and the rest of Studio MX 2004, has shipped and is available for download.  If you use Dreamweaver and you’re interested in CSS or stadndards-oriented design, it’s very likely worth the upgrade.  There’s a free 30-day trial, so you can always check it out if you aren’t sure.  You’ll get a chance to work with the templates I contributed and a design firm prettied up.  I spent some time talking with Macromedia folks while in San Francisco and was impressed anew by their interest in doing the right thing when it comes to standards.  These are folks who think about not just today’s Web, but the Web to come, and how they can best help authors get from here to there.  That’s a highly commendable perspective in a tool vendor.


Multiple Launches

Published 21 years, 3 months past

It’s up, running, and official: Complex Spiral Consulting finally has a Web site.  So far I have up recent news and upcoming events, information about the services I’m offering, ways to contact me, and a publications area that contains a new article: Containing Floats.  If you’re having trouble getting elements to stretch around floats, this article is for you.  Anticipate more such articles in the future, as well as the addition of information on just what I’ve been doing in the past month, and for whom.

Also today, Macromedia announced the impending release of Studio MX 2004, including a major new version of Dreamweaver MX.  I’m happy to say that the CSS support in this new Dreamweaver is pretty darned good, and it comes with a number of CSS-driven templates already installed.  I provided the layout skeletons to Macromedia, and then helped make sure the markup and layout were acceptable once a design firm made the layouts look pretty.  And hey, who are those mugs being quoted in the Dreamweaver MX press release?

There’s also a new layout for the Macromedia Web site, and it uses some relatively sophisticated CSS to create the layout.  I did some CSS optimization and upgrade work for the site, running in parallel with the Dreamweaver MX input I was providing.


Browse the Archive

Earlier Entries

Later Entries