Tim Bray on Purple Numbers

I’ve long been a fan of Tim Bray‘s work, and although we had never crossed paths before, I had always assumed it would be instigated by me making some comment about something he had done or written about. (A few months back, I emailed him about ballparks in the Bay Area, because we seem to share a love for the sport, but that doesn’t count.) So I was surprised and pleased to see that Tim had made first contact and had (temporarily, as it turned out) implemented Purple Numbers on his blog. Not surprisingly, this is starting to generate some talk in the blogosphere. In particular, see:    (1G9)

Chris has done an excellent job of quickly addressing many of these issues. I’ll just toss in a few thoughts and references here and will look forward to more feedback.    (1GE)

Stable, Immutable IDs    (1GF)

Several people have pointed out that the IDs need to be stable. In other words, as the paragraphs move around or as new ones are added or deleted, the IDs stick to their original paragraphs. This was a fundamental motivation for Engelbart’s statement identifiers (SIDs), which we have renamed node identifiers (NID).    (1GG)

Both Purple (which needs updating) and PurpleWiki handle this correctly. You’ll notice that the addresses are stable on my blog and on Chris’s, as well as on all of the PurpleWiki installations (e.g. Collab:HomePage, PurpleWiki:HomePage). It’s because we use plugins for our respective blog software that call PurpleWiki‘s parser, which manages NIDs for us.    (1GH)

By using PurpleWiki to handle the purpling, blog content has NIDs unique to both the blog and the Wiki, which allows us to do fun stuff like transclude between the two. We get a similar effect with perplog, the excellent IRC logger written by Paul Visscher and other members of The Canonical Hackers. For example, check out Planetwork:Main Page and the chat logs over there.    (1GI)

Mark Nottingham noted that even if the NIDs are stable in the sense that they are attached to certain paragraphs, the paragraphs themselves are not semantically stable. This is a point on which I’ve ruminated in the past, and we still don’t have a good solution to it.    (1GJ)

History and Other Worthy Projects    (1GK)

I’ve written up my own brief history of Purple Numbers, which fills in some holes in Chris’s account. In it, I mention Murray Altheim‘s plink. Plink is no longer available on the net, because it has been subsumed into his latest project, Ceryle. Everything that I’ve seen about Ceryle so far kicks butt, so if you’d like to see it too, please drop Murray an email and encourage him to hurry up and finish his thesis so that he can make Ceryle available! You can tell him I sent you, and you can forward him the link to this paragraph; he’ll understand.    (1GL)

Matt Schneider is the creator of the PurpleSlurple purple numbering proxy, which will add Purple Numbers to any (well, most) documents on the Web. PurpleSlurple deserves a lot of credit for spreading the meme.    (1GM)

Mike Mell implemented Purple Numbers in ZWiki for last year’s Planetwork Conference (see ZWiki:ZwikiAndPurpleNumbers), which in turn influenced the evolution of Purple Numbers in PurpleWiki. Mike and Matt have both experimented with JavaScript for making the numbers less intrusive.    (1GN)

The latest version of the Compendium Dialogue Mapping tool exports HTML maps with Purple Numbers.    (1GO)

In addition to Murray, Matt, and Mike, several other members of the Blue Oxen Associates Collaboration Collaboratory have contributed to the evolution of Purple Numbers, especially Peter Jones, Jack Park, and Bill Seitz. In addition to his contributions to the technical and philosophical discussions, Peter wrote the hilarious Hymn of the Church Of Purple and excerpts of the Book of the Church Of Purple.    (1GP)

Finally, many good folks in the blogosphere have helped spread the meme in many subtle ways, particularly those noted connectors Seb Paquet and Clay Shirky.    (1GQ)

Evangelism and The Big Picture    (1GR)

Okay, that last section was starting to sound like an award acceptance speech, and although none of us have won any awards, one thing is clear: The contributions of many have vastly improved this simple, but valuable tool. I’m hoping that momentum picks up even more with these recent perturbances. I’m especially heartened to see experiments for improving the look-and-feel.    (1GS)

I want to quibble with one thing that Chris Dent said in his most recent account. (When we have distributed Purple Numbers, I’ll be able to transclude it, but for now, you’ll just have to live with the cut-and-paste):    (1GT)

When he [Eugene] and I got together to do PurpleWiki, we were primarily shooting for granular addressability. Once we got that working, I started getting all jazzed about somehow, maybe, someday, being able to do Transclusion. Eugene was into the idea but I felt somehow that he didn’t quite get it. Since then we’ve implemented Transclusion and new people have come along with ideas of things to do that I’m sure I don’t quite get, but are probably a next step that will be great.    (1GU)

There are many things I don’t quite get, but Transclusions are not one of them, at least at the level we first implemented them. That’s okay, though. Ted Nelson felt the same way about my understanding of Transclusions as Chris did, although for different reasons. (And, I suspect that Ted would have had the same opinions of Chris.) I mention this here not so much because I want to correct the record, but because it gives me an excuse to tell some anecdotes and to reveal a bit about myself.    (1GV)

Anyone who knows Doug Engelbart knows that he complains a lot. The beauty of being an acknowledged pioneer and visionary is that people pay attention, even if they they don’t think much of those complaints. When I first began working with Doug in early 2000, I would occasionally write up small papers and put them on the Web. Doug would complain that they didn’t have Purple Numbers. At the time, I recognized the value of granular addresses, but didn’t think they were worth the trouble to add them to my documents. I also didn’t think they were the “right” solution. Nevertheless, because Doug was Doug, I decided to throw him a bone. So I spent a few hours writing Purple (most of which was spent learning XSLT), and started posting documents with Purple Numbers.    (1GW)

Then, a funny thing happened. I got used to them. I got so used to them, I wanted them everywhere.    (1GX)

A few people just get Purple Numbers right away. Murray was probably the first of those not originally in the Engelbart crowd to do so; Chris followed soon thereafter, as did Matt. The vast majority of folks get the concept, but don’t really find them important until they start using them. Then, like me, they want them everywhere. Getting people past that first step is crucial.    (1GY)

A few nights ago, I had a late night conversation with Gabe Wachob (chair of the OASIS XRI committee) on IRC. (This eventually led to a conversation between Chris and me, which led to Chris’s blog entry, which led to Tim discovering Purple Numbers, which led to this entry. Think Out Loud is an amazing thing.) Gabe knew what Purple Numbers were, but hadn’t thought twice about them. I had wanted to ask him some questions about using XRI addresses as identifiers, and in order to do so, I gave him a quick demonstration of Transclusions. The light bulb went off; all of a sudden, he really, truly got it.    (1GZ)

Richard Gabriel, one of our advisors, is well known for his Worse Is Better essays (among other things). I think Purple Numbers are an outstanding example of Worse Is Better. They fulfill an immediate need, and they cause us to think more deeply about some of the underlying issues. I’d like to see Purple Numbers all over the place, but I’d also like to see a group of deep thinkers and tinkerers consider and evolve the concept. It’s part of a larger philosophy that I like to call The Blue Oxen Way.    (1H0)

This last point is extremely important. Chris has thankfully been a much more enthusiastic evangelist of Purple Numbers than I have, and in the past he’s called me “ambivalent” about Purple Numbers. That’s not so far from the truth. It’s not that I’m any less enthusiastic about Purple Numbers themselves — I am a card-carrying member of the Church Of Purple, and the current attention and potential for wider usage thrill me. However, I’m cautious about evangelizing Purple Numbers, because I don’t want people to get too caught up in the tool itself and forget about the bigger picture. It’s the reason I didn’t mention Purple Numbers at all in my manifesto.    (1H1)

At the Planetwork forum two weeks ago, Fen Labalme, Victor Grey, and I gave the first public demo of a working Identity Commons Single Sign-On system. We were tickled pink by the demo, which to everyone else looked just like any other login system. The reason we were so excited was that we knew the system used an underlying infrastructure that would eventually enable much greater things. The demo itself, unfortunately, didn’t convey that to anyone who didn’t already understand this.    (1H2)

I’m probably a bit oversensitive about this sort of thing, and I’m constantly seeking better balance. But it’s always in the back of my mind. When I talk to people about Blue Oxen Associates, I usually spend more time talking about the sociological aspect of collaboration rather than the tools, even though I have plenty to say about the latter. Can Purple Numbers make the world a better place? I truly, honestly, believe that they can. (This is a topic for another day.) But when I see groups that excel in collaboration (or conversely, those that stink at it), Purple Numbers are usually the furthest thing from my mind. Much more important is the need to identify and understand these patterns of collaboration (of which tool usage is an important part).    (1H3)

December GivingSpace Workshop

There were several interesting presentations at Tom Munnecke‘s December 11 GivingSpace workshop, as well as some worthwhile discussion. Some quick thoughts and tidbits:    (NA)

The workshop began with one of Paul Andrews‘s Improbable Pairs videos. This one told the story of Yitzhak Frankenthal, an Israeli whose son was killed by Palestinians, and Jawad Tibi, a Palestinian whose brothers were killed by the Israeli military. Their tales are gutwrenching, but rather than respond with hatred, the two formed a group called the Parents Bereavement Forum, a support group for both Israeli and Palestinian families personally affected by the violence. Paul filmed and edited their stories masterfully. The video was only about ten minutes, but there was not a dry eye in the audience.    (NB)

Heather Wood-Ion gave a marvelous talk on transformation. An analogy she made that stood out for me was that the mythology in nonprofits centers around martyrdom. Words like “sacrifice” and “suffering” are bandied about. The mythology in forprofits centers around heroes. There, people talk about building legacies. These attitudes explain why nonprofits are so poor at collaborating with each other. There is a sense that martyrdom and collaboration are mutually exclusive. People want to share their stories of suffering, not of what went right and why. (There was some followup discussion about this at the Blue Oxen Collaboration Collaboratory.)    (NC)

Megan Smith, one of the founders of Planet Out and currently a Reuters Digital Visions Fellow at Stanford and an employee at Google, explained the 2/3 rule: Two-thirds of every successful community on the Internet consists of conversations. Successful sites, she said, are good at gardening those conversations. Megan also described a giant LCD map of the world at the Google offices. When someone in the world queries Google, a light blinks at that location on the map. What strikes Megan is that there are entire regions of the world that are always dark, a vivid visual reminder of the digital divide. In addition to being a clear thinker and a dynamic storyteller, Megan also demonstrated a diplomat’s touch, when she very skillfully and transparently defused an exchange between participants that had gotten very heated.    (ND)

Jerry Michalski explained his acronym du jour: MADA (Memory, Analysis, Discourse, Action). MADA struck me as an excellent (better?) synthesis for what Doug Engelbart calls CoDIAK (Collective Development, Integration, and Application of Knowledge). Jerry had the line of the workshop, when he pointed to the conversation map that Megan had drawn on the white board, and said, “All that discussion without memory and analysis is like going around in a giant circle jerk.” Jerry also suggested that business are partially to blame for why we don’t have better tools for group memory. Business of culture, he observed, don’t want us to have a memory. They want us to buy what they’re currently telling us we need. (See also my previous notes on group memory.)    (NE)

Richard Gabriel talked about the Hillside Group and Pattern Languages. He said that the Hillside Group “practices an aggressive disregard for novelty.” Jerry, incidentally, called Pattern Languages “deglazed wisdom.” Jerry was on fire that day.    (NF)

We participated in a Conversation Cafe for the latter part of the workshop. The topic was, “What can we do to create self-organizing systems that discover and replicate positive, scalable, small things?” We broke into several small groups, sat at different tables in the “cafe,” and drew on butcher paper as we talked. Here’s an excerpt from a previous blog entry about one of those conversations:    (NG)

Another great example of the challenges of SharedLanguage cropped up at the GivingSpace workshop in SanFrancisco last Thursday. Six of us were discussing small, concrete steps that lead to transformation, and HeatherNewbold described how MattGonzalez? for Mayor campaign buttons had galvanized the progressive community in SanFrancisco. Four of us knew exactly what Heather was describing, because we lived in the Bay Area and followed local politics. All she had to do was mention the buttons, and we understood what she meant. The other two people at our table, however, had no idea what we were talking about. One was from SanDiego, and the other simply didn’t follow politics.  T    (NH)

Here are the two products of the conversations at our table, courtesy of Fen Labalme.    (NI)

Every time I participate in one of these workshops, I find myself paying close attention to the facilitation itself, inevitably comparing it to other experiences. Shelley Hamilton’s technique shared some similarities with the MGTaylor process, and at one point, she cited Stuart Kaufman’s work, which also inspired Matt Taylor and Gail Taylor. Overall, Shelley did a good job. I especially liked the Conversation Cafe. The one thing I didn’t like was that there was no Report Out session following the cafe. It would have been nice to have had a group session where we summarized our conversations and sought connections between those summaries.    (NJ)

Hillside Group Annual Meeting

I attended lots of great meetings and talks over the past two weeks. I’m going to start posting some notes and observations in reverse chronological order.    (9I)

Last Thursday and Friday, I attended the Hillside Group‘s annual post-OOPSLA meeting, held at the Anaheim Sheraton in Southern California. Richard Gabriel, president of the Hillside Group and one of our advisory board members, and Dirk Riehle, Hillside Group‘s treasurer, invited me to attend.    (9J)

The Hillside Community    (9K)

My parents recently moved to Irvine, which is about 20 minutes south of Anaheim, so I’m always looking for opportunites to go down south and visit. But that’s not why I wanted to attend this meeting. Regular readers of this blog know that Pattern Languages are central to Blue Oxen Associates‘ strategy for understanding and improving collaboration and communities. This is why I asked Richard Gabriel to join our advisory board in the first place, and is ultimately why I wanted to attend this meeting.    (9L)

Hillside Group was founded a decade ago by a bunch of software engineers (including Gabriel, the Gang of Four, and several other gurus in the field) in order to figure out how to write pattern languages for software design. The group hosts several Pattern Languages of Programs (PLoP) conferences every year, which are loosely modeled on writers’ workshops.    (9M)

When a bunch of engineers model their conferences on writers’ workshops, you know that they’re not your run-of-the-mill geeks. When these same engineers are intimately familiar with the works of architect Christopher Alexander, you know that they’re definitely not your run-of-the-mill geeks.    (9N)

All of this was evident throughout the meeting. Those in attendance (about 40 people) were thoughtful and highly self-reflective. Many of them had written books, and many more are writing books. More than anything, I was delighted to see the quality of meta-thinking within the group and a general inclination for action. These are folks who have recognized that Pattern Languages are a wonderful tool that can be applied to many other things besides software design, and have done exactly that. For example, the Hillside Group has a pattern language for shepherding (mentoring new writers), patterns for Pattern Mining, etc.    (9O)

I was struck by the group’s overall camraderie and openness. The interaction was light, easy-going, and usually accompanied by laughter. Shared Language was strongly evident. When meetings were about to begin, self-described group “den mother” Linda Rising would shout, “Group sneeze!” Everyone would stop in their tracks, shout “Hishi,” “Hashi,” or “Hoshi,” and then there would be silence.    (9P)

Hillside Group felt like a community with QWAN. This was not totally unexpected, given that Hillside Group is one of the few communities that are familiar with the term “QWAN.” In addition to being a valuable repository of knowledge about pattern languages in general, Hillside Group is a community worth studying.    (9Q)

Odds and Ends    (9R)

A topic that came up throughout the meeting was how to better leverage asynchronous tools for collaboration. The consensus was that the face-to-face meetings were extremely important and valuable, but that they could be made more efficient with the right tools. One of the key problems raised was that face-to-face meetings often generated a great amount of energy that promptly dissipated once the meetings adjourned and people went back to their busy lives. I think about this problem constantly. I’ve touched on it briefly in a previous blog entry, and hope to discuss it more soon.    (9S)

A tool idea that came out of this discussion was “Cyber Shepherd.” Inspired by Cyber Chair, a tool for managing the conference submissions and review process, Cyber Shepherd would be a tool for managing the pattern language submission and shepherding process.    (9T)

Husband and wife team Tracy Bialik and Russ Rufer introduced the Silicon Valley Patterns Group, which meets twice (!) a week to discuss software patterns. The group has been going on strong for five (!) years. I plan on attending one of their meetings when I return to the Bay Area, but it already seems to be a very good candidate for studying sustainable grassroots communities.    (9U)

Hanyuda Eiiti, a leading Japanese advocate of software patterns, entertained the group with his “Pattern Dance,” a live enactment of the MVC pattern.    (9V)

I got a chance to chat for a bit with Ralph Johnson, one of the Gang of Four, who explained how the Design Patterns book came about, and how Christopher Alexander‘s ideas began seeping into this community. I’ll post tidbits of that story here when the opportunity arises, and I hope to write a full-length article about this at some point.    (9W)

PurpleWiki v0.9 Released

PurpleWiki v0.9 is now available. Chris Dent‘s announcement covers the basics. A few words on how we got here, and where we’re going.    (83)

The Wiki Experiment    (84)

When we launched Blue Oxen Associates last December, we made Wikis a core part of our infrastructure. We had two reasons for choosing Wikis. The first was practical. We needed a system for sharing documents and collaborative authoring, and Wikis fit the bill quite nicely.    (85)

The second reason was more philosophical. We wanted a knowledge management system like Doug Engelbart‘s Open Hyperdocument System (OHS), and felt that Wikis already resembled the OHS in many ways. It was immediately usable and useful, while also offering the perfect platform for coevolution.    (86)

PurpleWiki fulfills the following OHS requirements:    (87)

  • Backlinks. This is a core feature of all Wikis, but also one of its most underutilized. In a future version of PurpleWiki, we will create an open API to its Backlink engine, so that other applications (such as blogs) may use it.    (88)
  • Granular Addressability. PurpleWiki‘s site-wide, automatic Purple Number management had the additional benefit of enabling us to quickly experiment and evolve the feature. Node IDs are now document-independent, which has improved usability and enabled features like Transclusions.    (89)
  • Link Types. We’ve added a syntax for specifying link types, and have implemented our first new link type: Transclusions.    (8A)
  • View Control. We can easily add new or customize existing output formats, thanks to PurpleWiki‘s modular architecture. More importantly, we can implement dynamic views, such as a collapsible outline view, of any document on PurpleWiki.    (8B)

PurpleWiki‘s most visible feature is Purple Numbers, but its most important feature is its data architecture. In general, Wikis view the world as a graph of linked documents. PurpleWiki views the world as a graph of linked documents with a unified data model. The data model is sufficiently general and simple to apply to any kind of document. When you use this data model in other applications, you automatically inherit PurpleWiki‘s features. Integrating PurpleWiki with blogs was a piece of cake as a result, and we’ve only begun to explore the ramifications.    (8C)

Next Steps    (8D)

Our roadmap lists several enterprise features we plan on implementing: templates, pluggable database back-ends, mod_perl controller, etc. I consider these important, but relatively mundane. Blue Oxen Associates isn’t in the business of software development; we’re implementing these features because we need them.    (8E)

Blue Oxen Associates is in the business of research and improvement, and of facilitating coevolution. PurpleWiki is an amazing platform for this. One of Chris’s pet projects is to create universal ID space for nodes, possibly based on handles. Think of this as persistent URIs for nodes. Among other things, this will enable us to support Transclusions of content from other sites, not just the site on which PurpleWiki is installed.    (8F)

My long-term interests lie in three areas: the aforementioned open Backlink engine, Wiki page types, and Wiki namespaces. I’ll discuss the latter a bit here.    (8G)

One of the reasons I dislike TWiki is its notion of “webs.” You can partition your Wiki into multiple webs, and each web is contained in its own namespace. The problem with this is that it encourages people to balkanize their Wiki content. That, in my opinion, runs counter to the spirit of Wikis. Early balkanization prevents evolution.    (8H)

Several months ago, Richard Gabriel passed along some insight he had learned from Ward Cunningham: In computer science, you want to keep namespaces separate. With Wikis, you want namespaces to clash. Ward’s idea for SisterSites is one way to create namespace clash. This idea could be taken a step further by allowing site administrators to establish a system of namespace resolution. For example, if a certain page doesn’t exist on a local namespace, the Wiki would search another namespace for that page. If it existed there, the Wiki would simply take the user to that page.    (8I)

Language and Adolescence

Penelope Eckert, Professor of Linguistics at Stanford, gave a talk entitled, “Language and Adolescence,” this afternoon at the PARC Forum. Eckert explained the role that adolescent language played in developing peer social order, and dispelled complaints that teenagers were hurting language by using it irresponsibly. Her theories are based on extensive ethnographic studies of junior high school students in Detroit and the Bay Area.    (7E)

I went to this talk for two reasons. First, I couldn’t pass up the opportunity to hear an academic lecture on “jocks” and “burnouts.” Eckert clearly enjoyed emulating various teenage and adult speech patterns, and garnered many giggles throughout her talk. Second, I’d like to eventually recruit a sociolinguist to Blue Oxen Associates, and wanted to get a sense of what such research entails. What do language patterns reflect about communities? What do we already know, and what remains to be studied?    (7F)

Eckert claimed that adolescents are leaders in linguistic innovation, which reflects their efforts to find their place within a structured social marketplace. She found a high correlation between various roles (e.g. “drama queens,” “onlookers,”) and certain speech patterns. According to Eckert, over 50 percent of the kids she studied were either “jocks” or “burnouts.” The latter group exhibited unique speech patterns. For example, burnouts were far more likely to use Negative Concords (e.g. “That don’t mean nothing”) than jocks, an act of rebellion against socially imposed institutions.    (7G)

Eckert has written several books about her research, including Jocks and Burnouts and Linguistic Variation as Social Practice.    (7H)

Sociolinguistic Analysis    (7I)

Identifying who plays what role in a community, or whether or not a person is a member of a community, is a difficult problem. I posted some ideas on this in January, where I argued that individuals mostly categorize themselves. I asked Eckert what criteria she used to categorize people as jocks or burnouts. She said that the students categorized themselves. She had some socioeconomic data that she could use to challenge the self-categorization, but found that she never needed to do so.    (7J)

Eckert’s talk reiterated my awareness of the sensory richness of face-to-face communication. Speech nuances alone carry a tremendous amount of information. Sadly, these nuances don’t exist in online communities. What affect does this loss of sensory richness have on online communities? Do online interactions have their own kinds of richness that face-to-face interactions do not share?    (7K)

Applying sociolinguistic research towards online communities would require analyzing patterns in writing. I believe we could learn a tremendous amount about communities through this kind of analysis. If anyone knows of such research, please let me know.    (7L)

Blue Oxen Trivia    (7M)

There are a number of good public talks held at PARC’s George Pake Auditorium in Palo Alto. In fact, I met half of the Blue Oxen Associates advisory board there. I first heard Doug Engelbart speak at the BayCHI meeting on December 10, 1996. I first heard Richard Gabriel speak at the Software Development Forum meeting on January 23, 2003.    (7N)