Showing posts with label Field Notes. Show all posts
Showing posts with label Field Notes. Show all posts

Saturday, July 6, 2013

So ... what version are we on?

Trying to do a bit of tidying up, I tagged a previously-untagged recent post "Web 2.0".  I did this because the post was a followup to an older post that was specifically about Web 2.0, but it felt funny.  Web 2.0 is starting to sound like "Information Superhighway" and "Cyberspace".  A quick check of the Google search timeline for the term suggests that usage peaked around 2007 and has been declining steadily since.  Always on the cutting edge, Field Notes uses the tag most heavily in 2008.

Google's timeline isn't foolproof.  Anything before the late 90s is probably an article that mentioned the date (and Web 2.0) with no stronger indication of when the page is from.  On the other hand, the more recent portion is probably more representative, since there's more metadata around these days.  Also, the numbers are larger, which is often good for washing out errors.

But anyway, are we still in Web 2.0?  Are we up to 3.0?  Does it really matter (spoiler: probably not)?

I've argued before that while Web 1.0 was a game-changing event, Web 2.0 is more a collection of incremental improvements.  Enough incremental improvements can produce significant changes as well, but not in such a way as you can draw a clear bright line between "then" and "now".  The Linux kernel famously spent about 15 years on version 2.x, only just recently moving up to 3.0, and Linus says very clearly that 3.0 essentially just another release with a shiny new number.  From a technical standpoint I'd say we've been on Web 2.x for a while and will continue to be for a while, unless we decide to start calling it 3.x instead.

Because, of course, "Web 2.0" is not a technical term.  Never mind who uses it to what ends in what context.  The ".0" gives the game away to begin with.  A real version 2.0, if it ever exists, is very soon supplanted by 2.0.1, or 2.1, or 2.0b or whatever as the inevitable patches get pushed out, which is why I was careful to say "2.x" above.  "2.0" as popularly used doesn't designate a particular version.  It's supposed to indicate a dramatic change from crufty old 1.0 (or 1.x if you prefer).  In the real world of incremental changes, that trope will only get you so far.

Hmm ... in real life versioning usually goes more like
  • 0.1, 0.2 ... 0.13 ... 0.42 ... 0.613 as we sneak in "just one more" minor tweak before officially turning the thing loose
  • 1.0 First official release.  Everyone collapses in a heap.  The bug reports start coming in
  • 1.1 Yeah, that oughta fix it.
  • 1.1.1, 1.1.2 ... 1.1.73 ... the third number emphasizing these are just "small patches" to our mostly-perfect product -- bug fixes, cosmetic changes, behind-the-scenes total rewrites, major new features important customers were demanding, that sort of thing.
  • 2.0.1 OK, now we've got some snazzy new stuff.  Anything coming up for a while is just going to be a "minor update".  Everyone collapses in a heap.  Bug reports keep coming in.
  • 2.0.2, 2.0.3 ... yeah, we've seen this movie before
  • 5.0, because our latest version is so much better than anything you've ever seen, including our own previous versions (Actually, version 3.x ended in tears, 5.x is largely a rewrite by a different team and no one knows what happened to 4.x  -- maybe that's why one of the co-founders was sleeping under his desk and living on pizza for a couple of months?).
  • 5.0.1, 5.0.2 ... you know the drill
  • Artichoke.  Yep.  Artichoke.  Version numbers are so two-thousand-and-late.  We're going with vegetables now.  Already having long meetings on whether it's Brussels Sprout or Broccoli next.
  • Artichoke 1.1, Artichoke 1.2 ...

Sunday, June 2, 2013

Oh right ... I write a blog, don't I?

A couple of housekeeping items, before I attempt to get back to real blogging:
  • No, I haven't fallen off the face of the Earth, been trapped under a large object or wandered off to Nepal to contemplate the mysteries of the universe.  Just busy, and decided to devote what little blogging bandwidth I've had lately to contemplating the nature of awareness on the other blog.  Hmm ... maybe Nepal wasn't so far off.

  • A couple of logins ago, AdSense advised me that I appeared to have a "popular blog" and I should consider advertising on it.  I'm always glad to know that people are reading Field Notes, but I suspect that AdSense and I have somewhat different notions of "popular".  As much as I would like to bump my employer's revenue stream up by another 0.0000000000000001% or so, I have no plans to do that at the moment or any time soon.  I'm not against running ads per se, but I don't see the point of cluttering up the layout for what I doubt would be any significant gain.  If you ever do start seeing ads here, it will be because there has been a dramatic surge in demand for occasionally-posted web.musings, in which case why not?

  • Prompted by a couple of recent comments, including a couple of completely appropriate ones,  I've settled on a definition of spam comments:  If it's completely independent of the post it's supposedly commenting on, it's spam and will be summarily removed. Mentioning your favorite business as part of a thoughtful response to a post on customer service is just fine.  Mentioning your website, commercial or otherwise, with nothing more than a generic "Hey, great blog!" comment is spam.

  • Mind, I reserve the right to delete any comment for any reason or no reason (hey, it's my blog).  But as a practical matter I'd only expect to do so in cases of spam or incivility, should it occur.  As part of recusing myself from matters Google (and yet still trying to write about the web), I would also remove any speculation about what Google might be up to, be it public information or not, accurate or otherwise.  I don't expect that to be a problem, but thought I'd mention it.

And ... we're back!

Monday, May 13, 2013

Xanadu vs. the web: Part II - Xanadu the architecture

OK, so what is this Xanadu project?  First, if you want to explore for yourself, the project is at http://xanadu.net/.  Many of the ideas behind the project are expressed its founder Ted Nelson's Computer Lib, of which I have only read small excerpts.  My source for the history of the project is Gary Wolf's Wired article The Curse of Xanadu.  As the title suggests, the article does not paint a rosy picture, and Nelson has objected strenuously to it in the letters column of Wired itself.

Over its lifetime Xanadu has been a lot of things to a lot of people, but I'll focus on two aspects here:  Xanadu as an architecture (in this post) and Xanadu as a business model (in the next), before going on to try to make some sort of overall sense of everything.  Along the way I'll also touch on Xanadu as a software engineering project (or not).


So ... those first two paragraphs don't really belong in this post.  They belong in the previous one.  Now, I could go back and quietly edit Part I to include them.  I explicitly asserted the right to make quiet editorial changes quite a while back when trying to deal with a mistake I'd made.  But the upshot of that experience was that it's generally better to leave anything more than minor mistakes uncorrected and supply further material on the subject if needed (this theme will recur in a moment).  The principle I settled on was: a blog is not a wiki.  In particular, it has no visible edit history, so the blog itself must fill that role.

That's actually not a digression.  Any hypertext system has to deal with exactly the questions my little editorial decision raises, particularly: How do you handle a dynamically changing interlinked set of documents?  If I edit something that someone has a link to, what should they see?

In a blog (or at least in Blogger blogs), a link to a post is a link to the latest revision.  Exactly what you see may depend on when you chase the link.  With a wiki you also have the option of linking to a particular version of an article, which will never change, however many later edits may come along.  The W3C standards for HTTP and company recommend that links be to immutable data, but they do not require it.  The basic machinery of the web works the same either way.  Having results change over time is tolerated.

Xanadu takes a different approach to this and other issues.  In Xanadu, every object has a unique, secure identity.  This doesn't preclude keeping multiple copies for the usual reasons of performance and reliability, but these physical copies share the same identity and so represent a single logical object.  Objects in Xanadu are immutable.  If I revise a post, the revised post is a separate object from the original, which still remains.

Objects are addressable via lists of numbers called tumblers.  Tumblers are ordered, and given a tumbler it is always possible to find a tumbler after it but before any other existing tumbler.  This makes it easy to add new revisions.  Since tumblers are hierarchic by nature, it is possible to address parts within objects -- to address, say, the third paragraph of an article or a sentence in that paragraph, or a word in that sentence.

Links between objects are two-way, and they are visible objects in their own right.  Links are non-intrusive, meaning that you can add a new link to or from an object without changing that object.  The endpoints of a link are just tumblers [if I've got it right].  Since tumblers can address arbitrary parts of an object, you can define, say, a link from the word "Xanadu" in some article to the Wikipedia article on Xanadu without changing either the source article or the Wikipedia article.

Since the system retains every version of every object, and links are addresses pointing to (or into) existing objects, links are never broken (the referent is no longer there) or dangling (the referent was never created at all).

Xanadu takes this one step further by positing that all edits point back to an immutable record of the unedited original.  For example, if I boldface a word in a text, the boldfacing is separate from the original text.  Documents become collections of editing commands, which may reference other such collections, and so forth.

Finally (for the purposes of this discussion at least), Xanadu includes a notion of transclusion.  Nelson defines transclusion as "the same content knowably in more than one place".  Transclusion isn't the same as quoting.  I just quoted Nelson, but there's no way to navigate from that quote to its source.  Even if I make the quote a link, as "the same content knowably in more than one place", that's still not transclusion, first because the link points to the whole document, not the quote, but more importantly because there's no way to navigate back, or to other uses of that quote.  [From illustrations of transclusion, it's easy to interpret it as "showing quoted text inline", but that's a matter of presentation.  Whether the front end chooses to show a link or the full quoted text is its business.  It's the navigability that matters from an architectural point of view, because that two-way navigability requires cooperation with the outside world.]

This ability to slide back and forth between (or among) different uses of the same text is fundamental to Xanadu.  Other features, such as immutability and tumbler addressing, exist to enable it.

This architecture has several key differences from The Web as We Know It:
  • Links in Xanadu are never broken.  Web links are routinely broken.
  • Both endpoints of a link are fixed.  If I edit a post, I've constructed a new collection of edits pointing into the original post.  Your link points to the original, unchanged post.  In the web, there is only one object, which has changed out from under a link.
  • Links in Xanadu are bidirectional.  If you link to my post, I (or you, or anyone else) can follow that link back to whatever you linked from.  I can easily and automatically navigate from a post to the comments on the post.  If you've commented on a particular sentence, I can see that because my end of the link refers to the sentence specifically.
  • Links in Xanadu never go away, because nothing ever goes away.
  • Markup lives outside a document.  If I want to boldface every example of the word "orange" in a document and you want to boldface every example of the word "banana", we can do this independently and without editing the original.
  • Xanadu doesn't exist.  The web does.
That last may come across as snide, but unfortunately it's true.  Xanadu as a concept has been around in one form or another since the 1960s -- coming up on half a century.  In all that time, there has not been one commercial implementation of anything more than superficially like it.  Not from Nelson, not from the dozens of programmers who have worked with Nelson, not from anyone inspired by Nelson to make it a reality, not by someone working in isolation and coming up with the same approach independently.  This wants explanation.


From a technical point of view, it's tempting to look for scalability issues and other architectural weaknesses.  For example
  • If I decide, say, to link every word of every Field Notes post to its dictionary definition (applying some hack for words already occurring in links), that's my business.  In Xanadu, the dictionary, at least, has to know about thousands of new links [More precisely, if not the dictionary, then whatever's keeping track of the links, and anything accessing the dictionary needs access to them.]
  • Since Xanadu is meant to use redundant copies for performance and fault-tolerance, the keepers of every copy will have to know (or be able to find out about) all those links as well.
  • And it all has to be kept in sync as changes come along.  Cache coherence is one of the hard problems, though it certainly helps that objects are immutable and the set of objects only grows.  Web protocols allow for caching, but stale cache entries can and do happen.  This is just a fact of web.life, and web.life goes on.
  • Suppose I really did want to link to the latest revision of something, whatever that may be at the moment.  If you edit that something, then the link needs to be updated as well.  My document doesn't need to be, since the link lives outside it, but anything referencing that link, or more likely the combination of that link and my document, also needs to be updated, assuming it also wants the latest version of everything.  Updating means creating a new copy and ensuring that whatever wants to be pointing at the latest is pointing to it.  The resulting pile of corner cases and gotchas is probably resolvable, but the upshot is that the simple act of editing may have arbitrarily wide-ranging consequences.  On the web, no one but you has to know you edited a page.  That can cut both ways, but from experience it appears to be the right default.
  • Keeping every version of everything may be expensive in some cases, though in the case of, say, this blog it wouldn't be.
These are all valid concerns, and I'm sure there are more.  The various developers must have run across them, and it would be interesting to read over the resulting discussions, if they're still out there.  However, I think there are two more fundamental issues.

First, is Xanadu trying to solve the right problem?  It's very clear that transclusion would solve problems that Nelson finds pressing, but it's far from clear there's any general demand for it, and by now that's not because no one in the field has heard of it, or even that no one in the general populace has.  Nelson explains transclusion clearly enough in the site I linked to, and "the same content knowably in more than one place" is fairly clear all by itself.  But no one seems to be asking for it.  Nelson himself says that people rarely grasp the power and importance of transclusion.  Fair enough, but such cases generally present a barrier to widespread adoption (not always -- some things you just have to try for a while before you decide they're actually cool, and some of those catch on anyway).

But more than that, Xanadu is fundamentally a closed system.  Yes, it's possible to pull in, say, a web page and treat it as Xanadu content -- pull out a quote here, reformat there and create a Xanadu-style mash-up.  But that's not transclusion.  There is no way for the owner of the web page to know that its content is also elsewhere.  To do that, the web page itself would have to be part of Xanadu.

The converse is only slightly better.  Xanadu could present a web face allowing people to view it on a web browser and create documents with links to it.  The Xanadu server could track referring sites in URLs and track who's visiting it via what page.  But that doesn't provide any assurance that any particular quote appears on any particular page, even in the absence of spoofing.  I might later delete a link, or I might simply cut and paste text in without making a link.  There may well be additional difficulties with, say, a Xanadu object pointing to a web page that links back to something else in Xanadu.  I can't be bothered to think that through at the moment.

In short, to actually realize the idea of transclusion, everyone has to cooperate.  That could work for a purely local application that never accesses the net, or for a collection of servers that all run Xanadu and speak whatever protocol it would use to maintain links coherently.  At this point, though, there is a lot of non-Xanadu information out there, and you'd have to persuade a huge number of existing systems to switch over or at least adopt Xanadu as an add-on.  Any new source of information would also have to be Xanadu-aware.  Not gonna happen.  The web, for its part, also requires computers to cooperate in using protocols, principally HTTP, but this is a much, much lower bar to clear.


The web, with its organically grown patchwork of standards and near-standards, its tolerance for missing pieces and other imperfections, and its lack of overarching authority necessarily lacks the coherence and uniformity of something like Xanadu.  But these traits are exactly what allows it to thrive.

There's a moral to be drawn there, for those who wish information to be universally accessible to all.

Thursday, March 14, 2013

In which a theorist discovers something unsettling, exhilarating or both


There seems to be a natural human compulsion to keep checking the soup to see if it's boiling, to check the weather, to check the latest sports scores and stock prices, to check for messages, and so on and so forth.  One of the less savory properties of the web is that it provides the means to indulge this compulsion to the nth degree.

I personally try to steer clear of this, which is the main reason I'm not on Facebook or Twitter (and not particularly active on Google+), but I'm certainly not immune. Are there any comments on Field Notes?  Has anyone read the latest brilliant post (there are at least three ways to check, each giving its own opinion)?  Anything new on the few sites I do follow?

Since I'm not on Facebook, I don't play Facebook games, but evidently a lot of people do.  Zynga's Farmville, for example, has over 80 million subscribers, still a small minority of the gazillion on Facebook, but a big number in most normal contexts.  This has irked traditional computer game creators, sucked up untold hours of human life, and intrigued computer gaming analyst/critic Ian Bogost.

Bogost noted that games like Farmville involve relatively little actual gameplay.  Rather, it's the social aspect that seems to dominate.  This is nothing new in gaming, but again the natural "I need to check what's going on" factor of the web in general and Facebook in particular acts to intensify this.  Bogost coined the term "Cow Clicker" to describe games like Farmville where the action seems to consist mainly in, for example, clicking on depictions of animals when various timers run out.

Unable to leave it at that, Bogost took the next logical step and created a Facebook game called Cow Clicker designed to distill the social gaming experience to its purest elements.  It goes like this:
  • You have a picture of a cow on your page.
  • You click on it.
  • It does nearly nothing -- I think maybe it moos or otherwise makes a sound?
  • You can't click again for six hours.
Yep.  That's my story and I'm sticking to it.

If you don't want to wait six hours, you could spend "mooney" -- Cow Clicker's own virtual currency -- to get the right to click sooner.  You could earn mooney by clicking on your cow, by having your friends click on feed stories about you clicking on your cow, or by paying a small amount of actual money.

People played this.  Not 80 million, but somewhere around 50,000, not too bad for a joke of a game with no marketing behind it.

Clearly the actual cow clicking is a MacGuffin.  No one cares much about it.  What people care about is whether their friends are also playing and clicking on their feed stories, thereby generating not just more mooney, but, crucially, another thing to check in on.

Bogost had mixed feelings about this.  Among other things, he found himself, despite his intentions, checking in on whether people were playing the game and what they wanted from it.

Naturally, people wanted upgrades.  They wanted their choice in cows.  Cowthulhu was a popular request.  Eventually Bogost put up an "app store" with a selection of cows, and (I gather) added another feature or two.  If you were really hardcore, you could pay $100 (or the equivalent in mooney from whatever source) for Bling Cow.  Why on earth would anyone do this?  Well, your friends would all know that you had splashed out for the Bling, and wouldn't they be envious?  Again, people actually did this.

Eventually, Bogost was unable to shake the feeling he'd created a monster, and so he brought about the Cowpocalypse.  At a preset time -- which players would hasten by actually playing the game but could defer by, yep, paying mooney -- the cattle would all be "raptured", leaving only the empty spaces on which they had once stood.  And so the Cowpocalypse eventually came to pass.

At this point, it may not come as a shock that people kept playing.  To recap: people were now paying (small amounts of) money for the privilege of clicking on an empty space and letting their friends know about it.

You couldn't ask for a better illustration that when economists talk about "rational consumers", they only mean people that behave as though there's some sort of "utility function", be it ever so screwy, that they're bent on maximizing.  "Rational" in the usual sense has got nothing to do with it.


If people were actually rational in the usual sense, Cow Clicker would never have happened, but of course they aren't.  We are, at a very basic level, social animals.  We want to know what other people are doing.  What in particular they're actually doing is often much less important to us than whom they're doing it with and the fact that we know this.  If the entirety of Facebook were pushing a button from time to time saying "I'm here", selecting people to notify of that and having the system tell people you're notifying know whom else you're notifying, it would not be outlandish to think people would still use it.

The cynic would say that that really is the essence of Facebook and "social networking" in general, but I wouldn't go quite that far.  I said above that what people are doing is often much less important than knowing it and knowing who knows, but that doesn't mean it's always more important.  Content can matter -- of course -- but it's worth noting that it doesn't always.

Monday, January 14, 2013

75 years of Tanglewood online

This has actually been going on for a while, but in keeping with the usual Field Notes standard of cutting-edge reportage I only just now noticed that the Boston Symphony Orchestra, as part of its celebration of the 75th anniversary of its Tanglewood concert series, is bringing out 75 concerts from its vaults throughout the summer.  Many of the concerts had not been previously available and as I understand it some are of programs that were only performed at Tanglewood.

The BSO is making one new concert available each day as a free stream.  After the first day the concert is available for sale, whole or in parts.  You can also subscribe to the whole series at a substantial discount off the cost of buying the concerts individually.

Imagine what a promotion like this would have looked like before the web.  The symphony would have worked out a deal with one or more radio stations to get a regular block of time for broadcasting the day's selection.  Assuming it could swing the deal, you the listener would have to set aside that same block of time to listen to the concert, or at least record it off the air for later listening.

The symphony could make the entire series available for mail order as a set of CDs (or vinyl, if we want to go back in time).  If you didn't want the full set, you might be able to order individual CDs, but you wouldn't get to pick what was on them.  If you liked one piece from each of five concerts, you could end up buying five CDs to get them all.  And then you'd wait for them to show up in the mail.  If you lived outside the listening area of the radio stations involved, you'd have to buy the concerts on spec without a chance to listen, and you'd be more likely not to have heard about them at all.

Put together all the conveniences of the web, I wouldn't quite say you've got a revolution.  The dedicated classical music fan has had access to top-quality performances for quite some time.  Nonetheless, it's enough to make a difference.  Whether it's also enough to keep the symphonies in business in this age of digital entertainment remains to be seen, but it certainly seems like a good approach to try.