Posts from 2004

DashboardML

Published 20 years, 4 months past

Now we know more about Dashboard, and according to Dave, the widgets are indeed HTML, not XML.  Fortunately, hastily-applied bandages kept my ruptured vein from killing me.  As for my TiBook, some quick squeegee work saved the display, but now the keys are kind of sticky.  How’s that for an image?

As most people who know me are aware, I’m very much a real-world kind of guy.  That side of me is in favor of what’s being done to make Safari and the Dashboard more useful.  The additions to HTML and the DOM are indeed minimal—so far.  I’m sure the first few proprietary extensions to IE/Win were minimal, too.  After all, it’s just a tag called MARQUEE.  What’s one more element?

I also recognize that HTML is far too limited for anything except simple document structuring.  It doesn’t have interesting controls like sliders, and it certainly doesn’t provide any joy for people who want irregular shapes.  SVG does provide such things, but Dave’s point about it being a huge task to implement is understandable.  If only Quartz had been based on SVG instead of another technology… but there’s no sense crying about spilled milk under the bridge now, I suppose.

Of course, the theorist in me is quivering in outrage.  The browser-wars veteran isn’t too thrilled either.  For years, we heard Microsoft and Netscape say things like “standards are secondary to customer demands” and “standards aren’t as useful as the cool new proprietary features we’re adding”.  These things need not be inimical to standards support.  They should not require a breaking of standards.

As I observed previously, making Dashboard widgets be XML would solve the problem, or at least could fairly easily.  Dave says that won’t happen:

…it was suggested that the widgets be written in XML rather than HTML and that all of the new tags and attributes be namespaced. However, this would have dramatically increased the complexity of crafting Dashboard widgets. People know how to write HTML, but most of those same people have never written an XML file, and namespaces are a point of confusion.

I agree about namespaces being confusing; the only reason I have any comfort level with them is because we had to define multiple namespaces for the XML format we used on DevEdge, and I made enough mistakes using them that I eventually came to understand them.  Sort of.  To an author who’s only ever seen HTML or even XHTML, they would likely be very annoying.  I’d like to point out, though, that I suggested not namespacing everything, but creating a whole new DashboardML that used a whole bunch of elements that looked and acted the same as XHTML, with whatever additions were needed.  Thus the beginning of the document (after the DOCTYPE) might look something like this:

<html xmlns="http://www.apple.com/2004/dashboardml">
<head>
<title>This is an example</title>
</head>

So instead of pointing to the XHTML namespace URI, you point to the DashboardML namespace URI.  The end result is that you can have a document that looks exactly like XHTML, except for the additions (composite and so on).  It seems like it would be fairly simple to do, but again, I can’t say that with any authority.

So let’s assume that, for whatever reason, the above approach isn’t possible within the Tiger timeframe.  There is another way, one I mentioned briefly in my last post.  That would be to create a new DTD for DashboardML, one that’s a direct copy of the HTML 4.01 DTD with the needed additions.  It could look like this:

<!DOCTYPE html SYSTEM "http://www.apple.com/dtd/2004/dashboardml-10.dtd">

That would point to a DTD that defines DashboardML.  DashboardML would be exactly like HTML 4.01 (or whatever version they wanted) in every respect except for the additions of the canvas element and the composite attribute.  The advantage is that they can add more things if needed, and not pollute the HTML space.  Since Apple’s working with the WHAT WG to get these things accepted, then perhaps the WHAT WG should host the DTD.  Then it might look something like:

<!DOCTYPE html SYSTEM "http://www.whatwg.org/dtd/2004/whatml-10.dtd">

The URI could be anything, so long as it pointed to an actual DTD.  I don’t even care where it lives, so long as it lives somewhere.  I should also point out that this would need to be done even if the widgets were XML, as opposed to an HTML-like language.  Either way, they keep Dashboard extensions out of the HTML space.

Why should we even bother?  One word: validation.  By providing a DTD that defines the markup language being used to create the widgets, validation becomes a snap.  That’s important, because with validation, widget authors can keep their markup clean.  It will help them with their development efforts.

Here’s another reason to bother: reducing confusion.  “But Eric, a new DOCTYPE will increase confusion!” you might be thinking.  Maybe at first, although overall I doubt it will.  The confusion-reducing aspect is that when widgets get published on the Web—and they will be published on the Web—there will be an obvious indication that the markup is not traditional HTML, but something really close to it.  Browsers can then do what they’ve always done: handle what they understand, and ignore what they don’t.

It’s been argued that Dashboard widgets are intended for a closed environment, and not to sit out on the Web.  True, but that won’t change anything.  Within a week of their appearing in the WWDC build of Tiger, Dashboard widgets appeared on the public Web (they’ve since been pulled offline).  This won’t exactly tail off as more widgets are built.  If anything, we’ll see more and more widgets getting out into the wild—for example, when people find a widget they like and adapt it for use on their public sites.  The calendar is the most obvious example that comes to mind.  In order to keep things straight, widgets need to have their own DOCTYPE.  If nothing else, it will provide a convenient explanation when someone throws a widget onto their site and it breaks in other browsers.  (“Yeah, see, that uses DashboardML and only Safari supports it…”)

Over at the WaSP, Anders Pearson wrote:

Overall, though, it’s not that big a deal. Safari does an excellent (not perfect) job of supporting the various HTML, XHTML, and CSS specs as they’re written and ultimately, that’s what’s most important. If developers don’t want to use the extensions, they don’t have to.

As long as these extensions happen within a new document type, then I agree.  Allowing them to operate within any document bearing a W3C DOCTYPE would be a big, big mistake.


Wrapped in Canvas

Published 20 years, 4 months past

In his most recent post on the underpinnings of the Dashboard, titled Introducing the Canvas, Dave Hyatt said the following:

Another extension we made to HTML is a new element called the canvas. This element is essentially an image element that supports programmatic drawing.

And then, a bit later on:

In addition to the canvas element, we’ve also introduced a new attribute onto the img element. The composite attribute allows you to control how an image gets composited.

Wait a minute.  Did I just get hit over the head and magically transported back to 1994?  New HTML elements and attributes?  What the bleeding hell?!?

[insert sound of forehead banging repeatedly on desktop here]

I hope I’m reading his post incorrectly.  I hope that what Dave is really saying is that Dashboard widgets are actually XML, albeit an XML that looks very much like HTML except they’ve added some nifty stuff to it.  If so, great, fine, no problem.  XML lets you do whatever you want, really.  But if these are widgets that use actual HTML DOCTYPEs, and yet add this stuff, then the throbbing vein in my forehead is going to rupture and spray blood all over my shiny TiBook.  We just left that tag soup party.  I really don’t want to have another steaming, fetid bowl of it plopped down in front of me.  Not even one that exists in a ‘closed’ environment like OS X.

Even if Dashboard widgets are currently built around invalid HTML documents, it seems like there’s still plenty of time to convert them to well-formed XML, thus (largely) solving the problem.  Heck, there’s even time to create a DTD for the widgets, thus permitting the widgets to be both well-formed and valid.  I’m all in favor of that approach.  As a measure of last resort, a new HTML DTD could be written for “Dashboard HTML 1.0” or something like that.

But if it’s all really broken HTML 4.01, not XML, then there’s a serious problem.  From a forward-compatibility perspective, the Dashboard would be no better than Microsoft’s CSS-like extensions, the ones that let authors change the appearance of the browser’s scrollbars and other such wackiness.  In fact, they’d be much worse because there now exists the ability to create the Dashboard within the open framework the W3C has (slowly and painstakingly) created.  To ignore that would be the worst kind of regressive move.


Wanted: CSS Luminary

Published 20 years, 4 months past

Recently, I had a conversation with an editor at a relatively well-known and respected publisher about a CSS book concept they’re pursuing.  I don’t want to give too much away about the book itself, since it’s their idea and not mine, but I will say that the concept more or less requires that the book’s author be a recognized name in the CSS and Web design community.

For various reasons, I’m not able to take on the project myself, so we were bouncing around various names of other people who might be a good fit.  I shared some of my ideas, but I felt like I was struggling, and after we hung up I felt like I hadn’t really been a big help.  That bothered me, so I’m going to put this to you, dear readers: tell me who would automatically make you take a CSS book seriously and consider buying it just on the strength of the name alone.  (Remember, I’m not able to take this project, so don’t say, “Why, yours, Eric!” unless you want to be derided as a pointless suck-up.)  You should probably list a couple of names, just in case you all pick one person as your primary and he or she isn’t available to do the book, either.  After a week or so I’ll pass the results on to the publisher.  Even if someone else has already named your top choice(s), list them again.  The most commonly-listed names will be the ones who are at the top of the list.

So the floor is open.  Let’s hear some names!


Exploring Other Alternatives

Published 20 years, 4 months past

A lot of people have been saying it for years.  Within the last day or so, Scott Andrew said it.  Then Meryl said it.  Now I hear that the Department of Homeland Security says it, or so it would seem (I couldn’t find corroborating information on the DHS site).

Security is becoming more and more important, especially given the rise in organized attacks that exploit holes in IE and Windows, not to mention Outlook Express (known around the Meyer house as Virus Express).  It’s definitely worth looking into switching to another browser, if you haven’t already done so, and to strongly recommend the same to people you know.  Firefox is most often mentioned as a suitable replacement, and it will even import bookmarks, cookies, and settings from IE.

Of course, you may get pushback that Explorer is required for this site or that one.  Just point out that they can do 99% of their browsing in Firefox, and only launch Explorer for those few sites that need it.  After all, it isn’t like IE will be unavailable—they couldn’t get rid of it even if they wanted to do so.

Update: not only has CNN run a story along these same lines, but they mentioned Porter by name.  Way to go, dude!  Now when do I get namechecked by the news media?  <pout type="smirking" />


Polishing iChat

Published 20 years, 4 months past

In between fighting with paperwork and other annoyances, I took the same promotional iChat image I used in yesterday’s post (and which I originally pulled from the Tiger iChat page) and faked a series of textured tabletops beneath the video chat windows.  They’re rough approximations of what I think could be done, put together with some texture images I had lying around and off-the-cuff fiddling in Photoshop.  In case you’re wondering, the four textures are “stone” (an indeterminate speckled gray), wood, marble, and what I call “sea foam”.  I didn’t do a water distortion version mostly because I was spending less than an hour on the attempt, and I didn’t feel like trying to recreate the whole scene in a 3D modeling environment just to get the right reflections.

So now you can see it just the way it looked to me when I imagined it.  Well, not precisely, but really close.

As for the idea of having documents show up in that workspace, they could be in-perspective sheets of paper lying on the surface, with a thumbnail preview of the contents visible on the sheet, or they could be little icons floating in space above the tabletop (or else sitting on it).  Either one would work fine for me.  The “sheet of paper” idea extends the visual metaphor Apple’s clearly pursued, but it could also quickly chew up the space available to either side of the little “me” preview window.  Little floating icons (or boxes, whatever) would be more compact, while still participating in the metaphorical space.

Now, if the application let you warp or otherwise texturize the chat windows themselves, then we’d be off to the races.  Imagine putting Etch-A-Sketch frames around the windows—and imagine running a filter that made each frame look like it had been drawn on the Etch-A-Sketch!  Killer.  For that matter, you could turn each chat window into a Gameboy Advance, and run a pixelizing filter on the streams.

Like I said before, if you’re going to have gratuitous eye candy, you may as well go for the gusto.


Tiger Watching

Published 20 years, 4 months past

Over at Daring Fireball, John Gruber pointed out that Tiger‘s Dashboard isn’t quite as much of a Konfabulator rip-off as it first appeared.  His primary point was that the principles in Dashboard and Konfabulator aren’t anything new, and haven’t been for a couple of decades.  However, it was his highlight of a comment by Dave Hyatt that really caught my eye.  Dave said:

I wanted to blog briefly to clear up what the widgets actually are written in.  They are Web pages, plain and simple (with extra features thrown in for added measure).  Apple’s own web site says “build your own widgets using the JavaScript language”, but that’s sort of misleading.  The widgets are HTML+CSS+JS.  They are not some JS-only thing.

So… with the skills I already possess, I can create my own Dashboard gadgets, as can thousands of similarly skilled designers?  How cool is that?  I’m already itching to get my hands on the Dashboard developer information, so I can find out what these things can do and how I can bend them to my will.  As a trivial example, if I can get information via SOAP, and I can’t imagine why I wouldn’t, then I can use the weather data service I recently linkblogged to grab the current and next-seven-days’ forecast for any location in the United States, not to mention present the resulting information in a really beautiful way via the Dashboard.  Since the service returns results for latitude/longitude coordinates, it would be best crossed with a dataset correlating city names to lat/lon coordinates.  That shouldn’t be terribly difficult.

In fact, Web services in general could get a huge boost from the Dashboard.  Search gadgets for Amazon, Google, and any of a thousand other sources would be a snap.  Infoaggregators, pulling in data from various sources into one place, would become very simple.  Creating point-and-click editors for OS and application preferences should be trivial.  You’d also have the ability to grab information about the machine itself (memory usage, disk usage, CPU activity, top listings, etc.) and present it in truly useful and beautiful ways.  The possibilities are nearly endless, and my few fairly pedestrian ideas likely don’t even begin to touch on what can be done by a really creative programmer.

That’s especially true if, extrapolating from Ian Hickson‘s recent comments, the Web Core contains XFormsWebForms 2.0 support, thus making advanced controls available in Dashboard gadgets.

Then there’s iChat AV.  I’d like to see it permit audio chatting with AIM users, as opposed just video chats, but then I think that should have been possible already.  What really got me stoked was (of course) the gratuitious eye candy.  A picture of the iChat AV interface for OS X 10.4.  As Apple says:

iChat for Tiger introduces a new kind of interface for video conferencing. In its three-dimensional view, your buddies seem more like they’re in the room with you, making it easier to follow the conversation. Their images are even reflected in front of them, just as if they were sitting around a conference-room table.

Well, that’s true if you often hold meetings around conference-room tables made entirely of smoked glass.  What Apple really needs to add to iChat is the ability to pick different surfaces for the “tabletop” beneath the video windows.  They could include a highly polished, dark mahogany surface, for example, to really convey that upscale conference room feeling.  Or a reflective granite surface, for a feeling of solidity.  Hell, how about having the video portals hang above rippling water, with the video images reflected in the waves?  It seems like Core Image has all the pieces necessary to make any of those things happen, and then some.

For that matter, making it simple to drag an image file onto that tabletop and have it mapped on seems a snap.  You should be able to put your company logo there, embossed or glazed or otherwise applied to the tabletop, whatever its base surface effect.  Basically, you should be able to make the tabletop look even more killer than it already does.  Why not?  If you’re going to include major eye candy, then no sense holding back.

Addendum: in the comments, Jason Lustig pointed out something I failed to mention, which is that the tabletop is good for much more than just awesome visual effects.  It also makes a great shared workspace, a place where one participant could drop a file for everyone else to pick up.  As he put it, “just like if you were passing out sheets at a real meeting!”.  Exactly—and, of course, the document could even resemble a real document by generating a thumbnail of the document’s actual appearance, and mapping that onto the virtual sheet on the tabletop.  Whee, more eye candy!  I hope the Apple programmers add that ability to iChat before Tiger is released.

Add things like Automator, and this definitely looks like an OS upgrade well worth buying.  I really hope that “the first half of 2005” means “in January, but we wanted to hedge our bets”.


Patterns of Interest

Published 20 years, 4 months past

During my recent trip to San Francisco, I was asked over edamame and sake what interests me right now.  Taken literally, that isn’t something I could possibly answer in a single evening: far too many things interest me.  Like clouds, for example.  However, since the question was actually about the Web and information technology, I was able to answer in only a few minutes.

  1. Ground-up semantics—the area of interest that is actually about the Web itself.  XFN was the first step down what could be a very long, complex, and richly rewarding road.  By leveraging features of HTML, XMDP opens the door to letting people add the kind of information they find useful, and to do so in a way that just about anyone can grasp, which was one of the keys to HTML’s success, you may recall.  The idea is to allow for a distributed creation of semantic information, grown according to people’s interests and needs.  As more bits of semanticism get attached, the possibilities scale up exponentially.  Basically, it’s a self-organizing ad-hoc semantic network.

  2. The intersection of mobile devices and global positioning systems.  One of the most common examples is the ability to leave information “hanging in the air.”  The idea is that if you’re using an M/GPS system, you can call up reviews of all the restaurants within a hundred feet of you, as an example.  These reviews would be data left by other people using the same system.  Another example is the ability to leave a note at a meeting spot for anyone who shows up late and doesn’t know where everyone else went.  I can also envision a variant on geocaching, where “hidden” messages are left in remote spots for others to find.  Walking tours could be highly annotated.  With the right system, you could set up a maze with no visible walls.

    Actually, I have an interest in more intelligent applications of global positioning technology.  In-dash mapping devices for automobiles represent a useful first step, but the devices I’ve seen are kind of crudely limited even compared to what could already be done, let alone what near-future advances might make possible.  But taking those ideas to the limit and crossing them with personal mobile devices just seems far, far too cool.  I wish I had more of an engineering bent, mostly so I could work on designing such devices.

  3. Self-organizing ad-hoc sensor networks, otherwise known as “smart dust.”  There have been articles in recent copies of Scientific American and The Economist, but the general idea is that you create a bunch of tiny, rugged sensors and scatter them around an area.  They take readings and pass them back to a hub using routing that’s determined on the fly.  One example I read about was affixing a hundred or so sensors to a redwood tree in order to better understand the fine details of the tree’s microclimate.  The possibilities are endless, as are of course the privacy concerns.  Nonetheless, these kinds of systems have too many uses to just go away.  Conservation activities could benefit hugely from this kind of technology.  So could installation defense, for that matter.  Again, it looks as though an engineering inclination would really be useful here.

I guess the common theme that runs through all three is pretty obvious: I’m fascinated by systems that use simple (or at least simple-to-understand) parts to enable deep complexity, and those that use self-organizing principles.  Whether those principles are expressed through software algorithms or based on leveraging human behavior doesn’t actually matter to me.  The appeal lies in trying to figure out simple rules that allow for emergent behavior, especially the kind that wasn’t in any way planned ahead of time, and most especially the kind that seems totally chaotic and random until the patterns suddenly become clear.

Yes, I am one of those people who will stare at clouds for long stretches, trying to pick out patterns and understand the fine details of what’s happning within the clouds themselves.  I’m even more intense about it when I’m in the air myself and can see them up close, see them from unaccustomed angles.  It’s a bit of an obsession, to be honest, and one that makes me a bit pouty when I don’t get a window seat.  Even when there are no clouds to be seen, I can satisfy the same impulse by scrutinizing the world below, tracing humanity’s engineering of the landscape and reading what patterns I can find.

So yes, there is a lot that interests me.  Since I was recently asked, I thought I’d share just a bit of it, if for no other reason than to help highlight a few of the patterns in what can sometimes appear to be a very chaotic mind.


Feeling Distracted

Published 20 years, 4 months past

For no apparent reason other than I can, I’ve redone the sidebar to include a linkblog titled “Distractions.”  I did this by grabbing Markku Seguerra‘s wp-recent-links plugin and then hacking the holy bejeezus out of it.  I needed to add a “via” function, for example, and wanted to make the administrative interface a bit nicer.  That involved finding out how MySQL statements work (mostly by finding all the ways they don’t).  So, hack hack hack.  It was an interesting distraction.  I’ll make the files available in due course.

To make room, I took out the “Socialization” section because it seemed largely worthless; two of the services listed I hardly even look at any more, and the other one was mostly about me puffing up my ego in public, which nobody really needs to see.  I’m also thinking about taking out the Platelets because I don’t get to update it often enough, even though I have really soft spot for it in my heart.  We’ll see what happens.

Keen-eyed observers will notice that I backfilled a few entries from the past few days.  I needed test data, you know?


Browse the Archive

Earlier Entries

Later Entries