dive into mark http://diveintomark.org/ A lot of effort went into making this effortless. en-us f8dy@diveintomark.org Copyright 2002 2002-09-29T23:40:06-05:00 hourly 1 2000-01-01T12:00+00:00 Dooce http://diveintomark.org/archives/2002/09/29.html#dooce Reborn. 1856@http://diveintomark.org/ Reborn.

]]>
2002-09-29T23:40:06-05:00
Advanced CSS lists http://diveintomark.org/archives/2002/09/27.html#advanced_css_lists Mark Newhouse: CSS Design: Taming Lists. "I'll demonstrate how to use CSS to bring unwieldy lists under control. It's time for you to tell lists how to behave, instead of letting them run wild on your web page." 1855@http://diveintomark.org/ Mark Newhouse: CSS Design: Taming Lists. I'll demonstrate how to use CSS to bring unwieldy lists under control. It's time for you to tell lists how to behave, instead of letting them run wild on your web page.

]]>
CSS 2002-09-27T23:22:56-05:00
Pingback vs. Trackback http://diveintomark.org/archives/2002/09/27.html#pingback_vs_trackback Ian Hickson: Whitepaper: Pingback vs Trackback. "It seems pingback has caused quite a stir in the Web logging and syndication communities." 1854@http://diveintomark.org/ Ian Hickson: Whitepaper: Pingback vs Trackback. It seems pingback has caused quite a stir in the Web logging and syndication communities! The spec is barely a week old and already I'm seeing pingbacks on sites of people I've never heard of, so implementations are spreading, which is great. It also seems pingback has acted a little like a kick in the backside to the trackback folk, causing them to work on the transparency side of trackback, which is good to see too.

]]>
2002-09-27T23:17:51-05:00
Introduction http://diveintomark.org/archives/2002/09/27.html#introduction Jeffrey Zeldman: "Welcome to zeldman.com, a poorly designed website that hides vital content from its many naive, first-time visitors. 1853@http://diveintomark.org/ Jeffrey Zeldman: Welcome to zeldman.com, a poorly designed website that hides vital content from its many naive, first-time visitors.

]]>
2002-09-27T18:16:54-05:00
It's Google's world, we just live in it http://diveintomark.org/archives/2002/09/27.html#its_googles_world_we_just_live_in_it Results of a Google search for "It's so-and-so's world, we just live in it". 1851@http://diveintomark.org/ A Google search for "world we just live in it" reveals that:

And finally:

]]>
2002-09-27T15:43:02-05:00
Semantic mapping of RSS elements http://diveintomark.org/archives/2002/09/27.html#semantic_mapping_of_rss_elements Sam Ruby has started a discussion of mapping core RSS elements to namespace-based equivalents. 1850@http://diveintomark.org/ Sam Ruby has started a discussion of mapping core RSS elements to namespace-based equivalents. This is useful for developers who want to consume RSS 2.0 feeds and want to know how to handle the new namespace-based elements. Already support language? Be on the lookout for dc:language as well. And so forth. The mapping isn't always that direct (some elements use different formats, like pubDate and dc:date), but it's a good start to an important discussion.

]]>
2002-09-27T13:40:34-05:00
Repair http://diveintomark.org/archives/2002/09/27.html#repair Kevin Guilfoile: The Half-Assed Handyman. 1849@http://diveintomark.org/ Kevin Guilfoile: The Half-Assed Handyman. Once the Half-Assed Handyman decides on a course of repair he must remain committed to it by fixing the broken object the same way over and over, even though the method is clearly ineffective, or even nonsensical.

]]>
Writers 2002-09-27T13:30:01-05:00
Rescued pictures http://diveintomark.org/archives/2002/09/27.html#rescued_pictures 18 rescued pictures, from 1920, 1983, 1990, 2000, and 2001. 1848@http://diveintomark.org/ 18 rescued pictures, from 1920, 1983, 1990, 2000, and 2001.

]]>
Personal 2002-09-27T01:23:29-05:00
Chicks dig that http://diveintomark.org/archives/2002/09/27.html#chicks_dig_that Slashdot: 37 Operating Systems, 1 PC. 1846@http://diveintomark.org/ One PC, Six Hard Drives, 37 OSes! [via Slashdot: 37 Operating Systems, 1 PC]

Q: Were there any OSes you couldn't find?

A: I couldn't find an OS that would tell me how to successfully deal with girls.

Mac OS X, baby. Mac OS X.

]]>
2002-09-27T01:12:29-05:00
RSS 2.0 template http://diveintomark.org/archives/2002/09/26.html#rss_20_template RSS 2.0 template for Movable Type, ready to copy and paste over your existing RSS 0.91 template (index.xml). There are several design decisions at work in this tempate that bear explaining. 1844@http://diveintomark.org/ RSS 2.0 template for Movable Type, ready to copy and paste over your existing RSS 0.91 template (index.xml). No modifications are required, unless your weblog is in a language other than English, in which case you'll need to change the dc:language tag to your language code. (Use the 2-letter language code, unless there isn't one for your language, in which case, use the 3-letter language code. And while you're at it, put the same language code in your HTML tag in your normal page templates. But I digress.)

Here's what the RSS 2.0 output looks like.

There are several design decisions at work in this template that bear explaining. First of all, this template is designed to be backward-compatible with all existing aggregators, news readers, and RSS parsers, ranging from the super-smart XML parser built into .NET to the dumb, minimal, regular-expression-based parser that your downstairs neighbor banged out on a Friday night. If you upgrade your existing index.xml right now, none of these parsers should crash, and none of your subscribers should scream bloody murder. This is a good thing.

Now then, if you look at the template, you'll notice a whole slew of lines at the top like xmlns:dc="...". These are namespaces. Keven Hemenway has written an excellent primer on extending RSS 2.0 with namespaces, so I won't explain them here except to say that we use them, and you should get used to seeing them. Most RSS 2.0 documents you see will use namespaces in some way, because they are the primary way of adding functionality beyond the basic title-link-description combination. If all you want is title-link-description, stick with your existing RSS 0.91 template and stop reading now.

Still here? OK. Now, the RSS 2.0 specification says nothing about how to actually use namespaces in RSS, just that you're allowed to. So where did these particular namespaces come from? Well, I didn't make them up. They have been developed over the past two years by some smart people, most of whom hang out on the RSS-DEV mailing list. The namespaces were originally developed for RSS 1.0, and most of them can be used without modification in RSS 2.0. (There's a lot of stuff I'm skipping over here on purpose. There will be a lot more documentation forthcoming in the next few months on exactly how to use various namespaces in RSS 2.0. Some of it still needs to be worked out, but most of it just needs to be written down. Please be patient.)

So anyway, we use namespaces for a lot of stuff. Most stuff, in fact. In the template, you'll see title-link-description for channel, and title-link-description-guid for item. guid is new in RSS 2.0, and it is used to uniquely identify an item, so even if the title or description changes, aggregators know that it's the same item; the end user can choose whether to re-display changed items, but first programs need to be able to track which items are which. (Radio Userland already supports this.) To create the guid, I've combined MTEntryID with MTBlogURL to generate a unique string for each item, and I've arranged them so there's no confusion about it possibly being a URL. It's not a URL; it's just a unique string. (Other systems have stricter format requirements for guids, but RSS 2.0 does not. A guid is a unique string, and that's all.)

Pretty much everything beyond title-link-description (and guid) uses namespaces. This template makes use of all 3 of the standard RSS 1.0 namespaces, but there are many other proposed namespaces that have a lot of good design behind them. We use one (admin), which is already widely used; the rest may be useful to you, depending on your niche. (If you think you need to design your own namespace, look through that list and make sure you're not re-inventing the wheel.)

Back to the template. Other than guid, the most important thing to note about this template is that the title, link, and description are all plain text. (description is an excerpt; if you do not enter an excerpt manually for a post, Movable Type will auto-generate one. You can control how long this auto-generated excerpt is by going to Blog Config, then Preferences, then Number of words in excerpt.) title was always supposed to be plain text, but sticking to plain text in the description tag is an intentional compromise, to support parsers that can not handle HTML, or handle it improperly. Never fear, the full HTML text of your post is still included; it's stored in the content:encoded element. (Aggie already supports this.) This allows more robust news readers -- that can handle either text or HTML -- to offer the end user the choice of whether to see excerpts or full posts. Some people use news aggregators to find things to read, others like reading everything directly in their aggregator. RSS 0.9x made you (the author) choose one or the other; RSS 2.0 allows you to offer both, and pass the choice along to the end user. This is a good thing.

There's more good stuff in there, but the explanations will have to wait for another day. If you're interested in learning how to extend RSS to suit your needs, your best bet is to read through the documentation of the existing RSS 1.0 namespaces. If you have questions, your best bet is the RSS-DEV mailing list, where Kevin is currently discussing his namespace primer. Archives are public and free, so no subscription is required, and lurking is encouraged.

And watch this space.

]]>
Weblogging 2002-09-26T01:28:52-05:00
FOAF explorer http://diveintomark.org/archives/2002/09/25.html#foaf_explorer Morten Frederiksen has taken a first stab at a real-time social network explorer based on FOAF files. It's heavy on tech details, but you can easily see the potential here. 1843@http://diveintomark.org/ Morten Frederiksen has taken a first stab at a real-time social network explorer based on FOAF files. You could start on my profile and explore from there, or enter the URL of your own FOAF file (at the bottom of the page). It's heavy on tech details, but you can easily see the potential here. (It's also a great way to debug your FOAF file, if you added anything manually.) Now we need somebody to build a spider that follows foaf:knows links and draws pretty social network diagrams, so we can see the forest for the trees.

]]>
2002-09-25T18:18:53-05:00
Maps http://diveintomark.org/archives/2002/09/25.html#maps Mark Tosczak @ Wired: A New Way to Read, Not See, Maps. 1842@http://diveintomark.org/ Mark Tosczak: A New Way to Read, Not See, Maps. The map-navigation software, dubbed Blind Audio Tactile Mapping System ... takes digital map information and provides nonvisual feedback as a user moves a cursor across the map.

]]>
Accessibility 2002-09-25T10:45:15-05:00
Plan http://diveintomark.org/archives/2002/09/25.html#plan Paul Ford: Falling Off a Truck. "In the last 4 days I fell off a truck and was dragged for 30 feet, and was interviewed by an NPR show. Those two facts are not related except that they both happened to me and made me queasy. I also wrote a short plan outlining the rest of my life." 1841@http://diveintomark.org/ Paul Ford: Falling Off a Truck. In the last 4 days I fell off a truck and was dragged for 30 feet, and was interviewed by an NPR show. Those two facts are not related except that they both happened to me and made me queasy. I also wrote a short plan outlining the rest of my life.

]]>
Writers 2002-09-25T10:43:06-05:00
RSS revolt http://diveintomark.org/archives/2002/09/25.html#rss_revolt People appear to be sick of the syndication format wars. Some are protesting, some are creating new formats with new names, others are simply boycotting. 1840@http://diveintomark.org/ Anil Dash: XML version 1.0. Why isn't there a way to syndicate my words without butchering the way they look? Several people protested last week by changing their weblog templates to something like this. Jason Levine has more links to those involved. I spoke with one of the people who implemented it, and she claims it wasn't a protest as such, more of an inside joke. Point taken: the entire point of an aggregator (and syndication in general) is to make everyone's words look the same. Counterpoint: the default in most weblog systems is to only publish excerpts in RSS feeds; nobody's forcing you to publish full posts. This would probably be a good place to insert a Zen quote about attachment, but my mind is too fuzzy to find it.

Timothy Appnel: More FFKAR, RDF, and FOAF. FFKAR is the format formerly known as RSS. Sam has already implemented it.

Nicholas Avenell: ESF. Are you also fed up with the continuing war between RSS 0.9* and 1.0 and 2.0 and whatever else they invent today? Me too. So today I invented the Epistula Syndication Format. ESF. It isn't XML. It isn't RDF. It's just data. Sam would love it, then. But Movable Type doesn't support outputting dates in Unix timestamp format, which could be an impediment to mainstream acceptance.

Shelley Powers: Consumer Rights and RSS. I'm not buying into RSS 0.9x. I'm not buying into RSS 2.0. I'm not buying into RSS 1.0. I changed my RSS 0.91 and RSS 1.0 templates to read the following:

RSS not supported here

This weblog does not support RSS 0.9x, RSS 2.0, or RSS 1.0. If you wish to view entries, may I suggest that you visit the weblog, and save your fast skimming for the New York Times and Wall Street Journal.

I'm sure this is some sort of DMCA violation or something, but here goes:

import urllib, re; print "<rss><channel>\n <title>Burningbird</title>\n <link>http://weblog.burningbird.net/</link>\n <language>en-us</language>\n </channel>\n" + "\n".join(["<item><title>%s</title><link>%s</link></item>" % t for t in re.compile(r'dc:title="(.*?)"\s*dc:identifier="(.*?)"', re.DOTALL).findall(urllib.urlopen('http://weblog.burningbird.net/').read())]) + "</rss>"

]]>
2002-09-25T00:38:31-05:00
Stark raving sane http://diveintomark.org/archives/2002/09/24.html#stark_raving_sane Sam Ruby is stark raving mad. 1839@http://diveintomark.org/ Sam Ruby: Stark raving mad.

This post was entered in Radio, extracted using a batch file via some UserTalk, parsed using Perl, cleaned up by tidy and a C program of my own design, transferred to intertwingly using scp, and then ssh triggers unpacking on the destination site, where a shell script takes over: invokes indexing using Jakarta's Lucene, and then a python script pings weblogs.com and blo.gs.

Tom Stoppard (Rosencrantz and Guildenstern are Dead):

Guildenstern: A man talking sense to himself is no madder than a man talking nonsense not to himself.
Rosencrantz: Or just as mad.
Guildenstern: Or just as mad.
Rosencrantz: And he does both.
Guildenstern: So there you are.
Rosencrantz: Stark raving sane.

]]>
2002-09-24T22:05:32-05:00