-->
January 31, 2003
Two years ago, I had a very weird dream that scared the crap outta me. "The figure at the top is clearly humanoid. Arms outstretched. I think I can see garments flapping from its shoulders. Otherwise, it remains still. Why am I suddenly afraid of it?"
January 29, 2003
Jack Balkin:
Mickey and the Oracle. Balkin consults the I Ching to answer
Joyce's question: "Will the media companies seek a further extension of copyright law by 2019?"
Please ignore the following: GNU DTD CSS W3C EFF WaSP (update: relax, people, I'm just testing out ACRONYM tags, not making commentary. Heh.)
January 26, 2003
I think, eventually, the TrackBack notification format should supplant the weblogs.com ping format. Why? Although weblogs.com sports a plain vanilla HTTP POST interface, the implementations in weblog software are overwhelmingly RPC-based. This is not as good as it could be, because it means that endpoints other than weblogs.com need to use XML-RPC libraries to parse incoming pings.
And for what? Two lousy pieces of data. Compare this to the POST-based TrackBack format and the far richer data it contains. But a TrackBack isn't the same as an update notification. TrackBack creates a relationship from one post to another post on another weblog, or posts across categories. To my knowledge, no weblog software emits a non-contextual, TrackBack-compatible update notification.
Of course, one could argue: I don't need all that data, I'll go look at the site myself when I get the ping, kthx.
Which brings us to the question of technologies like mod_pubsub when applied to weblogs. Email notifications and polling for RSS updates every half-hour are good enough for most. So is there any benefit to having those update notifications contain more info, and occur in real time? Not fake real time, like rapid polling, but smart URL-based routing with push for clients that support it. I dunno, you tell me.
January 24, 2003
Shelley Powers has written an excellent piece called the The Mockingbird's Wish. And although she doesn't come right out and say it, it's obvious from the post comments that the piece is an allegory for our rip, mix and burn culture. Mockingbird desires to sing all the songs of all the birds in the world, and is left in the end without a song of its own.
It's a really, really good piece, imaginative and well-written.
Doesn't it feel familiar, somehow?
The Mockingbird's Wish is itself a derivative work, having roots in wishbringer mythology passed down through oral tradition from numerous cultures. The theme is a familiar one: foolish animals go before gods and spirits to ask for wishes, often getting their just desserts in the end. Rudyard Kipling drew heavily on the same themes in his Just So Stories. I've never read Joseph Campbell, but I'll bet he'd have something to say about the character of the wishbringer.
Shelley has, unintentionally or not, done a bit of rip/mix/burn literature.
A few days earlier, I debated with Shelley about derivative works (warning: it's a long post). Under current copyright law, the one who owns the copyright can also control how the work is performed. Witness the protective actions of playwright Samuel Beckett's estate:
In 1994 the English director, Deborah Warner, was banned from directing Beckett's work for life following her London production of Footfalls, in which Fiona Shaw played a part intended for a man.
Beckett was very precise as to the manner in which his work was to be performed.
In 1988 he went to court in Haarlem to attempt to stop an all-female version of Waiting For Godot and that same year he stopped a French production of Endgame which used the wrong colour of lighting.
I find this a bit problematic. Because interpretation is a huge part of our culture, especially when it comes to creative works like literature, art and music.
Should copyright be used to prevent others from reinterpreting a creative work? I wrote in the comments at Shelley's site:
I see and respect your point as a creator. I simply disagree with the notion that any creative works are so important that we must have laws that state they cannot be interpreted in any other way other than how the author intended. Things are interpreted, and reinterpreted. It's the way our culture works. Even our own Constitution is constantly being reinterpreted, sometimes with grave consequences.
Without it, it's questionable whether we'd have things like comedy, parody and ironic juxtaposition. There'd be no Negativland, no Ian McKellen-led "Richard III" set in a 1930's fascist England, and there'd be no "Last Temptation of Christ."
(I'll add that there might not be a Mockingbird's Wish either, if the thematic elements weren't already in the public domain. By the way, that's the last time I'll use "juxtaposition," ever. Nothing screams "English major!" quite like it.)
My argument is that Beckett still gets paid, but we suffer. We don't get to see how good or bad an all-female Godot would be.
It's one thing for an artist to say "you cannot perform my work." It's quite another to say "you cannot interpret my work any other way," which smacks of fundamentalism.
It's the risk you take for participating in culture. You either publish, or your don't. You either let it fly into the air (where it can be snatched away! and sold! and retold! without you knowing it!) or you hide it in a shoebox under the bed. Where's the cultural value in that?
And let's face it: sometimes the derivative is better. Or at least more consumable. Better have your licensing worked out.
January 21, 2003
Mark Pilgrim pointed out how using body IDs allows one to apply CSS rules to specific pages using a single stylesheet, without using server-side includes. It occurs to me you can use this approach for a number of things, including selectively hiding/displaying page elements. For example, on the WaSP site, we used a special server-side include to pull in the navigation links with the appropriate subsection links exposed. If we had used CSS IDs instead, we'd only have to manage one include file of links, hiding the ones we didn't want exposed:
ul.subnav
{
display:none;
}
body#aboutpage #aboutnav ul.subnav
{
display:block;
}
<body id="aboutpage">
<li id="aboutnav">
<a href="/about/">about</a>
<ul class="subnav">
<li><a href="/about/bios/">bios</a></li>
<li><a href="/about/colophon/">colophon</a></li>
<li><a href="/about/contact/">contact</a></li>
<li><a href="/about/history/">history</a></li>
<li><a href="/about/mission/">mission</a></li>
<li><a href="/about/sitemap/">sitemap</a></li>
</ul>
</li>
...
</body>
It's such an obvious and cool trick.
Here's an idea. All of these on-demand and short-run media manufacturers (like Mixonic for CDs, Shutterfly for photos, 4by6 for postcards, and CafePress for everything else) popping up are great. But I often find myself needing to combine a number of these items in a package.
For example, if I wanted to do a mailing of the Sandalwood Sessions to a bunch of indie folk radio stations, I would normally assemble a package containing a CD, a cover sheet introducing myself and the music, a 1/2-page flyer, and a return postcard mailer. I'd order each of these items in bulk, assemble them at home, and mail them out from the Post Office. It's a helluva lot of work, and at the end I'd be stuck with several hundred extra photos, flyers and postcards to somehow get rid of.
Seems to me there's a business opportunity here for someone to offer an online service that offered all of these items in configurable packages. Like Mixonic, each user could have an account to store MP3s and graphics online, but also include space for an 8x10 band photo, a flyer, and some basic "documents" like a cover sheet and band bio. Let the artist pick and choose what items go into a package, then order whatever number is needed. The service then prints the requested materials in-house and ships it at the artist's expense.
Bonus whuffie to the service that also provides an online address book, so that artists can have packages shipped directly to their contacts at radio stations, clubs, and the press.
This would probably be a pretty expensive service, but I bet it'd be a hit with DIYers who'd rather spend $50 for three complete kits they need right now, as opposed to several hundred dollars for a bunch of separate pieces that need to be manually assembled, addressed, stamped and mailed, with the extra boxes of product getting shoved under the bed, ultimately becoming worthless when the band changes its name or breaks up.
January 20, 2003
Cool: CafePress is going to start offering on-demand printing of CDs and books. Not cool: CafePress base pricing. If they already charge $11 for a coffee mug (more like $15 after shipping and a few dollars of profit for the creator), I can't imagine what they'll charge for a full-color CD package. I thought the idea was to sell more items by keeping the pricing reasonable and the inventory low. Competitors to CafePress: none that I can tell.
Still, on-demand is the way to go if you're indie. This week I got another postcard from Disc Makers, offering 1000 CDs in full-color sleeves for $990. Now, what the heck would I do with one thousand CDs? Probably stack them in my closet with the 500 or so unsold CDs of my last band I'm still lugging around.
January 17, 2003
How is that Mena consistently comes up with impressive site designs again and again? And entirely CSS-based, no less. Speaking of cool CSS designs, Mark Pilgrim points us to cinnamon.nl, another valid, XHTML 1.0 Strict work of art. Eric Meyer directs our attention to clagnut. That's it, I quit.
Maggie Berry: "As of this morning New Architect magazine is no more." Bummer. I myself stopped reading NA when it decided to stop including code samples. Before that, NA (then called Web Techniques) reminded me a lot of the mid-80's Compute! magazine, which is what drew me to it.
Brad discloses that he uses Antares Autotune, a DirectX plug-in for audio editing software, to create the Dirty Vegas-sounding "sudden, jarring computery sounding pitch correction" that all the kids are into these days.
Essential: The Bome Mouse Keyboard. Because Virtual Piano doesn't run on Win2K, despite that fact that it comes bundled with Cakewalk HS2K, which does. Also essential: MIDI Yoke, a MIDI virtual patch cable driver.
Chris talks about the Wait, something I haven't experienced in a long time, myself.
January 14, 2003
My thanks to everyone who bought a CD over the past few months. About 50% of every penny goes to recording the next one. The other 50% goes to Laurie, since she wrote half the songs on the record.
Man, that seems like a long time ago. When we recorded those songs, Clinton was president and I wouldn't discover the Web for another year. In fact, I owe Laurie a public debt of gratitude, because it was her suggestion that I look into "this Internet thing." She's not on the Web much, but don't worry Laurie, we got you covered!
January 13, 2003
Dear Mark: why are you
bothering with XHTML 2.0? No one is going to deploy this beast. The
architecture astronauts have done their work, abstracting it to the point of absurdity. So what? As long as it carries "XHTML" in its name, people are going to think 2.0 is where HTML is headed, no matter how many times the W3C says otherwise. For 2.0 to survive, it has to be rethought, renamed, or retired. But please. Standards aren't bullshit. And HTML 4 is a lovely markup language. You'll love it. You don't even have to close your tags! Sometimes!
Speaking of Flash...I've been messing around with Flash MX and its support for persistent, two-way streaming connections via the XMLSocket stuff. Interesting point: you can do arbitrary HTTP requests by shoehorning the text of the request into a malformed XML document:
socket = new XMLSocket();
socket.onData = function (src)
{
trace("\ndata:" + src);
}
if (!socket.connect("my.example.com", 80))
{
trace ("connect: Connection failed!")
}
var req = "POST /mod_pubsub/demo HTTP/1.0\n" +
"User-Agent: FlashMX Client (Win2K)\n" +
"Host: my.example.com\n" +
"Content-Length: 12\n" +
"Content-Type: text/plain\n\n" +
"Hello World!";
var xml = new XML(req);
socket.send(xml);
Through this, I've been able to hook up Flash MX to a KnowNow event router (the same should work for mod_pubsub, but I haven't tested it yet) with varying degrees of success. A small sticking point seems to be that any returned data has to be terminated with a null character (like "%00") or the data handlers won't fire. But it's encouraging to know that you can effectively speak HTTP over XMLSocket without having to speak XML.
January 12, 2003
The story of my life:
"What the -- ? I can't even log in! What the hell did you do?!"
"Umm, I dunno, all I did was upgrade your..."
"You..idiot...you've ruined everything..."
"Here, let me try -"
"Don't touch it! You stay away!" (hissing sounds)
OS X has turned my iBook into the most expensive non-productive productivity tool I own.
I've had over a year and a half to get used to OS X, and I have to be honest: it's disappointed me again, and again, and again, to the point where my next laptop purchase won't be a Mac of any stripe.
Every time I attempt to upgrade, tweak or look crosswise at my iBook, OS X breaks something vital. I've had my Apache install wiped out, iTunes mangled, logins scrambled, and most recently, my Airport card forgotten about. And thanks to less-than-helpful help files, once again I am resigned to the slow, painful trudge through discussion boards and asking for help on email lists. Again.
Once again I am reminded why some people just don't upgrade. "Ugrading" is sometimes the equivalent of "ruining everything." Or in my case, "ruining everything" is equivalent to "installing something as inoccuous as BBEdit or the Flash MX plugin."
You've failed me for the last time, OS X. Out you go.
January 10, 2003
Glish is back, yay! Eric is diving headfirst into Flash and ActionScript, most likely a result of his involvement with Game Neverending. Expect good stuff.
Thanks to everyone who suggested solutions for my PIM needs. Unfortunately, most of the software was either too large in scope, or required changes to my host configuration ("Dear Hosting Provider: can you please recompile PHP with domxml and allow me to make arbitrary changes to your crontab? Thx."). In the end, I bit the bullet and wrote my own contact manager and calendar with PHP/MySQL. It was easier than I expected; I just get weary reinventing the wheel sometimes.
January 9, 2003
Dave Hyatt has been kicking butt at addressing Safari issues raised by Web citizens. Regarding the choice to mimic the Mozilla/Gecko user-agent string:
The reason it is there is that in order to work with real-world DHTML sites you have essentially two options: you can claim to be MSIE or you can claim to be Gecko. We found that any other choice that we tried led to a significant portion of DHTML malfunctioning. You would not believe (well, maybe you would) how much DHTML exists out there that works only with MSIE or Gecko, and that uses proprietary extensions of each to accomplish the DHTML effects.
Being a proponent of DHTML for applications, I can understand this. But problems with CSS are often much more visible than those with DHTML (i.e. CSS usage has climbed while DHTML is slowly retreating into intranets and closed application environments). The KHTML engine apparently has a number of CSS bugs that some web developers protect against by hiding CSS from Konqueror.
So it seems that that the goal was to disguise Safari as Mozilla to give UA sniffers the slip, in hopes that the Safari developers could get the KHTML bugs fixed fast enough so that it wouldn't matter by the final release. This strikes me as more strategic than practical, but whatever. This can turn into a win-win situation, provided that the Safari developers fix the bugs quickly (and according to Hyatt, they are) so that the final release of Safari is worthy of passing the MSIE/Gecko test. Kick these fixes back to KDE, and help Konqueror in the process. If two heavily standards-compliant browsers go to market as a result, I'm willing to forgive the breach.
January 8, 2003
Dave Winer's entreaty to developers to develop decentralized directories with OPML got me thinking about a little-used feature of Movable Type: category pinging via TrackBack.
Most people use TrackBack to notify other webloggers about a response to a particular post. The software that receives the ping has the option to create a hyperlink back to the referring post at the visitor's own weblog.
Category pinging allows a visitor to ping an entire category of weblog posts. For example, I have a category for JavaScript-related posts. The category itself has a TrackBack URL. So if you've written a post about a clever JavaScript trick, you can use TrackBack to ping my JavaScript category. Provided that I have MT set up to do so, I can automagically create a link back to your post.
It gets even more interesting: TrackBack allows you to create post categories that automatically ping other TrackBack-enabled weblogs each time a post is entered into that category. For example, if you have a category dedicated solely to JavaScript topics like I do, you can configure MT to ping my weblog each time you enter a JavaScript-related post.
There's some real potential here for knowledge sharing that goes beyond the post-to-post, follow-the-discussion relationship. A MT template that consolidates all the incoming pings (and creating the appropriate outbound links) for a particular category would essentially generate a directory from distributed sources.
Imagine the type of directories that would be generated if even a handful of experts in any field -- law, CHI, digital media, antique collecting, whatever -- started pinging each other's weblogs this way. My guess is this could start with invitation-only TrackBack-powered directories.
I'm currently searching for some basic, Web-based personal organizer software, something with an address book, calendar and to-do lists. I've dug through some stuff at Freshmeat and SourceForge, but I'd like to get some personal recommendations. I don't mind paying some money to get what I need. I'd prefer it to be Web-based, because I often find myself in a jam where the info I need is on the laptop I left at home. Something PHP/MySQL-based would be ideal.
And yes, I've thought about hand-rolling something, but honestly, the thought of coding yet another SELECT or UPDATE makes my fingers ache. Any good tips?
January 7, 2003
Here's the object class reference for KHTML, which covers its DOM, HTML and CSS support. Dunno how much of this is actually implemented and available in Safari.
It's too bad that Safari identifies itself as Mozilla/Gecko, when in fact its rendering engine is based on that of Konqueror. There's going to be a lot of confused user-agent sniffers out there. A lesson, I suppose, on the perils of trusting the USER_AGENT string, and other spoofable HTTP headers.
Safari developer (and former Mozilla developer) David Hyatt responds to concerns about Safari.
The amazing Chris Wetherell has released BugLess, a very cool browser-based bug-tracking application interface that leverages DOM/CSS. I got to demo BugLess a few months back and was really impressed. Chris is asking for feedback.
Word is trickling in about the new Apple browser called Safari, which was apparently announced at Steve Jobs' keynote at MacWorld SF. The rendering engine is built on something called KHTML, which may be the KDE library of the same name. Apparently built for speed, the Apple page boasts of support for XHTML, DOM, JavaScript and Unicode, but provides no details as to the level of support (according to the docs, KHTML itself only supports DOM Level 1 and CSS 1, so I don't hold out much hope) for these technologies.
Well, it sure looks pretty. I'm looking forward to hearing more about it. (Update: Mark Pilgrim is test-driving Safari and posting his discoveries.)
Matt sez: "If I could run OS X on a $1,000 >1.5Ghz intel/amd laptop PC, I'd never use XP again."