Stepping into the river with Heraclitus

From the Benjamin Jowett translation of Plato’s Cratylus:

Socrates: Heracleitus is supposed to say that all things are in motion and nothing at rest; he compares them to the stream of a river, and says that you cannot go into the same water twice.

Heraclitus would have loved the web. The ever-changing river of information, flowing around and through us, brings his doctrine of flux vividly to life.

But I don’t think most of us truly embrace the doctrine of flux. We’re more comfortable with stocks than with flows. And that’s one of the key challenges I’m wrestling with at elmcity.cloudapp.net.

The service is not a database, and does not contain stocks of events. It is, instead, a hub that coordinates flows of events. But that model doesn’t make immediate sense to people.

Q: How do I put my events into your database?

A: You don’t. You just arrange for your database to publish a feed. The hub subscribes to your feed and to others, and in turn publishes a merged feed to a network of downstream subscribers. From the hub, or from anywhere in that network, people who find your events then follow links back to the authoritative source: You.

It’s a wonderful model, but a lousy elevator pitch. Given that most people are not computational thinkers, it relies too much on counter-intuitive principles: indirection, pub/sub, loose coupling. And it seems to be all about flux, which is psychologically challenging. Amidst all this dynamic flow, can’t we please have some constant anchor?

Actually we can. At the core of the service is a collection of feeds. The collection changes too, but much more slowly than the streams of events flowing through each feed. Feeds are relatively constant, and so they are manageable. For example, there are far too many events to make individual trust decisions about, but I can easily trust a feed or not.

Of course there are some ways in which we do need to manage individual items in feeds. For example, you can pluck an event from an iCalendar feed and stick it onto your personal calendar. Or you can transfer a single MP3 from an audio feed to your player. This feed/item duality makes the conceptual challenge of feeds even harder.

One new place to experience that duality is SpokenWord.org. My collection there is a mixture of feeds and items. Why items? Feeds are prospective. They look into the future for new items, and make them available to my podcatcher. But when I subscribe to a feed, I may want to make archival items available too. At SpokenWord I do that by “collecting” individual items.

In an interview with Phil Windley, SpokenWord’s founder and developer Doug Kaye says that he was surprised by the extent to which the service is being used to manage feeds rather than items. That’s true inbound, when people submit feed URLs rather than item URLs for inclusion in the catalog. And it’s also true outbound, when they use SpokenWord to consolidate many feeds into a single merged feed that’s more convenient to receive and manage in a podcatcher.

In different ways, the elmcity and SpokenWord projects are both encouraging and enabling people to think in terms of flows, and to manage feeds instead of items.

As we all become more adept at working with flows, I think we’ll need a richer vocabulary of patterns to describe them. At SpokenWord, for example, there’s a big difference between this feed and this one.

The first, based on a script I wrote, points to 45 chapters of Mark Twain’s Connecticut Yankee in King Arthur’s Court. It will never produce a new item. It’s just a way of packaging those chapters so a podcatcher can download them.

The second feed is The Moth Podcast, which is both a historical archive and a way to prospectively grab new items.

Neither pattern corresponds to an iCalendar feed, which is purely prospective. In calendar space I care about today’s events and future events, but almost never about the past.

In rivers of information, feeds provide one kind of anchor. Patterns that describe the nature of feeds, and our ways of using them, are another. These are sources of constancy amidst the flux.

Posted in Uncategorized

8 thoughts on “Stepping into the river with Heraclitus

  1. A couple thoughts:

    There’s a difference between stories split into items, and a stream of items. A stream is best read newest-first (you might never bother reading them all), but a story is best read oldest-first (and without feed truncation). If feeds simply had a flag for that it’d be nice. (It frustrates me when readers have a global setting for newest-or-oldest first, when it should be a sticky feed property.)

    An issue I find… just hard, is the inability to extract the content of a single page. If you get a feed item you can pass it around, make new feeds, etc., but given a page there’s no decent way to get the item. I wish, for instance, that we could get full text out of delicious bookmark feeds. I wish there was a widely used [link rel=”alternate” type=”application/xml+atom; type=entry” href=”atom-representation-of-this-page”] (with angle brackets).

    For the problem of explaining tools that complement other tools, I wish there was better support for workflows (ad hoc would be good enough). I’d like to be able to say “add events” and have that link to an appropriate (preferred) service that generates a feed, and have the process go all the way through signup and then come back and register the feed with the original aggregation service, in a way that makes the user think this isn’t crazy. I played around with the idea of simply using documentation (https://svn.openplans.org/svn/standalone/WebClippy/trunk/ — checkout required to get it to work, and bit rot may have occurred), with documentation that can follow you around to different sites, but I never really followed through with actually documenting cross-site stuff. But a little help from just one complementary service would be better.

  2. > But a little help from just one
    > complementary service would be better.

    That’s an interesting notion. What would it involve to get two services to complement one another in that way, and what would it enable?

  3. Just thinking out loud, but I wonder if a gossip mill might be a useful analogy?

    Imainge a small-town gossip-mill where

    – Joe passes on everything he hears from Mike, Mira and Melissa.
    – Belinda passes on everything she hears from Fred, Francine and Felicia.
    – Rachel passes on everything she hears from Joe and Belinda.

    If you want to know what’s happening you talk to Rachel.

    In the analogy
    – people gossip by publishing a feed
    – people can listen in by subscribing
    – there’s kinda “automatic” passing-on of gossip (Joe, Belinda and Rachel are all doing it)

    hubs like elmcity.cloudapp.net are like the Rachels of calendar even gossip. They pass on gossip. They’re automated super-gossipers.

    anyway, just thoughts… i’m not sure how well this might help communicate the idea

  4. “hubs like elmcity.cloudapp.net are like the Rachels of calendar even gossip. ”

    that was meant to be

    hubs like elmcity.cloudapp.net are like the Rachels of calendar _event_ gossip.

  5. > I wonder if a gossip mill might be a
    > useful analogy?

    It’s familiar, but I’m not sure how useful.

    Missing ingredients:

    – Fidelity. A syndication network can transmit information with perfect fidelity. A gossip network notoriously distorts the message.

    – Authority. In a syndication network you can follow links back to the authoritative source.

    On the one hand, people do need and want real world analogies for cyberspace concepts. But often those analogies mislead. And for some of the key properties of cyberspace, there may simply not be appropriate real world analogies.

  6. Doug Kaye adds (quoted from email with permission):

    “One interesting point: Most prospective (non-archival) RSS feeds have some limit like 20 or 30 items. SpokenWord.org maintains a record of all items we’ve *ever* received from those feeds. In some cases (LibriVox, Audible and few others) we’ve been able to get a one-time archival RSS feed so that we could ingest old stuff not in the current RSS feeds. Unfortunately, some publishers remove the audio or video files from their servers once those items are no longer in the RSS feeds. Lost forever.”

  7. This post stimulates many disparate thoughts, connected to philosophical ancient and modern ideas:
    – the notion of “liquid modernity” by Bauman: post-industrial world is liquid and personal, while industrial world was solid, with strong institutions and organisations.
    – the “maieutic” tecnique of Socrates which aims at reaching the the truth via dialogue (reminding of the importance of blogs as conversations). Socrates refusal to write any essay has some kind of connection with blogs vs academic papers.
    – the “stream of consciousness” of Joyce
    – the increasing attention to the notions of “iteration”, “emergence” and “serendipity” as tools to manage complexity (in software development just as in policy-making)
    Yes, these are very disparate and disconnected ideas as such. But maybe I see an emerging pattern. And blogs are good for detecting this kind of weak signals. Also in ideas, it’s time for flows rather than stocks.

Leave a Reply