When Groove launched somebody asked me to explain why it was an important example of peer-to-peer technology. I said that was the wrong question. What mattered was that Groove empowered people to communicate directly and securely, form ad-hoc networks with trusted family, friends, and associates, and exchange data freely within those networks. P2P, although then much in vogue — there were P2P books, P2P conferences — wasn’t Groove’s calling card, it was a means to an end.

The same holds true for Thali. Yes it’s a P2P system. But no that isn’t the point. Thali puts you in control of communication that happens within networks of trust. That’s what matters. Peer networking is just one of several enablers.

Imagine a different kind of Facebook, one where you are a customer rather than a product. You buy social networking applications, they’re not free. But when you use those apps you are not in an adversarial relationship with a social networking service. You (along with your trusted communication partners) are the service, and the enabling software works for you.

Thali, at its core, is a database that lives on one or more of your devices and is available to one or more apps running on those devices. Because you trust yourself you’ll authorize Thali apps to mesh your devices and sync data across that mesh. The sync happens directly, without traveling through a cloud relay, and is always secured by mutual SSL authentication. You can, of course, also push to the cloud for backup.

Communicating with other people happens the same way. You exchange cryptographic keys with people you trust, you authorize them to see subsets of the data on your mesh of devices, and that data syncs to their device meshes. The default P2P mode means that you don’t depend on a cloud relay that wants access to your data in exchange for the service it provides.

For cloud services that don’t monetize your data, by the way, Thali delivers a huge benefit. Apps like Snapchat and Chess with Friends incur bandwidth costs proportional to their user populations. If users can exchange photos and gameplay directly, those costs vanish. And there’s no penalty for the user. Sending your photos and chess moves directly costs you no more than sending through the cloud.

But the key point is one that Dave Winer made back when P2P was in vogue: the P in P2P is people. With handheld computers (we call them phones) more powerful than the servers of that era we are now ready to find out what a people-to-people web can be.

We’ve lived in New England for 25 years. It’s been a great place to raise a family but that’s done, so we’re moving to northern California. The key attractors are weather and opportunity.

Winter has never been our friend, and if we had needed convincing (we didn’t) the winter of 2013-2014 would have done it. I am half Sicilian, my happy place is 80-degree sunshine, I am not there nearly enough. Luann doesn’t crave the sun the way I do, but she’s ready to say goodbye to icy winters and buggy summers.

The opportunity, for Luann, revolves around her art. Ancient artifacts inspired by the Lascaux cave are not exactly in tune with the New England artistic sensibility. We think she’ll find a more appreciative audience out west.

For me it’s about getting closer to Seattle and San Francisco, the two poles of my professional life. Located between those two poles I’ll still be a remote employee, but I’ll be a lot less remote than I am here. That matters more than, until recently, I was willing to admit.

Earthquakes don’t worry me too much. I was in San Jose for the ’89 Loma Prieta quake. We were at an outdoor poolside meeting, heard it rumble toward us, watched the ground we had thought solid turn to liquid, got soaked by the tidal wave that jumped out of the pool, heard it rumble away. What impressed me most was the resiliency of the built environment. Given what I heard and saw I’d have expected much more to have broken than did.

What does worry me, a bit, is the recent public conversation about ageism in tech. I’m 20 years past the point at which Vinod Khosla would have me fade into the sunset. And I think differently about innovation than Silicon Valley does. I don’t think we lack new ideas. I think we lack creative recombination of proven tech, and the execution and follow-through required to surface its latent value.

Elm City is one example of that. Another is my current project, Thali, Yaron Goland’s bid to create the peer-to-peer web that I’ve long envisioned. Thali is not a new idea. It is a creative recombination of proven tech: Couchbase, mutual SSL authentication, Tor hidden services. To make Thali possible, Yaron is making solid contributions to Thali’s open source foundations. Though younger than me, he is beyond Vinod Khosla’s sell-by date. But he is innovating in a profoundly important way.

Can we draw a clearer distinction between innovation and novelty? That might help us reframe the conversation about ageism in tech.

The Elm City project was my passion and my job for quite some time. It’s still my passion but no longer my job. The model for calendar syndication that I created is working well in a few places, but hasn’t been adopted widely enough to warrant ongoing sponsorship by my employer, Microsoft. And I’ll be the last person to complain about that. A free community information service based on open standards, open source software, and open data? Really? That’s your job? For longer than anyone could reasonably have expected, it was.

So now I’m on to the next project, one that you might think even more unlikely for a Microsoft employee. I’m helping Yaron Goland create something we are both passionate about: the peer-to-peer Web. Yaron’s project is called Thali, and I’ll say more about it later.

But first I want to sum up what I’ve learned from the Elm City effort.

The elevator pitch for Elm City is short and sweet. It’s RSS for calendars. That implies a pub/sub network based on a standard exchange format, in this case iCalendar. And an ecosystem of interoperable software components. And layered on top of that, an ecosystem of cooperating stakeholders.

On the interop front iCalendar doesn’t fare as well as you’d expect, given that it’s been around since 1999 and is baked into calendar software from Google, Microsoft, and Apple (among many others) that’s used every day by hundreds of millions of people. Why is interop still a problem? Because while in theory people and organizations can form iCalendar-based pub/sub networks, in practice few ever try. So iCalendar feeds don’t interoperate nearly as well as you’d expect.

One of the legacies of Elm City is the iCalendar Validator, inspired by the RSS/Atom feed validator and implemented by Doug Day. It has helped developers iron out some of the interop wrinkles. But the truth is that iCalendar itself isn’t the problem. It’s implemented well enough, in a wide variety of calendar app and services, to enable much more and much better synchronization of public calendars than we currently enjoy. The iCalendar ecosystem has issues but that’s not why the robust calendar networks I envision don’t exist in every city and town.

It’s the stakeholder ecosystem that never came together. Here are the dramatis personae:

  • Local groups and organizations
  • Media (especially newspapers)
  • State and local governments
  • Non-profits and foundations
  • Vendors of content management systems

I’ve worked with each of them separately. But no one kind of stakeholder can push the Elm City model over the top. That will require collaboration, in cities and towns, among stakeholders. Which, as I’m hardly the first to learn, is a tough sell. I hope somebody smarter than me can figure that out. Maybe that will even be a smarter future version of myself. But meanwhile, I’ll be supporting Yaron Goland’s mission to enable a web of people and devices that communicate directly and securely.

Back when progress bars were linear, not circular, there was an idea that browser-based apps could be written in more than one programming language. One implementation of that idea was called ActiveX Scripting, which was supported by Internet Explorer (and other Windows apps). Of course the ActiveX moniker turned out to be inauspicious on the Web. But let’s recall, for a moment, what the essential idea was. The browser was equipped with an interface that enabled it to work with any scripting engine. I remember playing with a demo browser app that fetched and displayed data three different ways: using JavaScript, VBScript, and Perl. That was in, I think, 1997.

Today you can write a browser-based app in any language you choose, so long as you choose JavaScript. Which, like any programming language, is capable of amazing things. My current favorite example is Adrian Holovaty’s new Soundslice player. Here’s my 2012 writeup on Soundslice. It began as a fabulous tablature-based tool used to annotate and study music for string instruments. Now, with support for standard music notation, it’s becoming a general tool that will (I hope) revolutionize music education.

When he announced the new player, Adrian said:

HTML5 FTW! Screw native apps and their walled gardens.

It’s ironic that this liberation has been achieved by creating another kind of walled garden. Adrian is, after all, the creator of Django, a popular framework for server-based Web apps. Django is written in Python, a language with which Adrian has deep expertise, none of which could be leveraged in the creation of Soundslice.

But progress is circular. Maybe we’ll come back around to the idea that JavaScript need not be the only game in town.

If you’re a public information officer, what do you do? According to Wikipedia:

Public Information Officers (PIOs) are the communications coordinators or spokespersons of certain governmental organizations (i.e. city, county, school district, state government and police/fire departments). They differ from public relations departments of private organizations in that marketing plays a more limited role. The primary responsibility of a PIO is to provide information to the media and public as required by law and according to the standards of their profession. Many PIOs are former journalists, bringing unique and relevant experience to the position. During crises and emergencies, PIOs are often identified by wearing helmets or vests with the letters “PIO” on them.

I have a different idea about what the job (in larger cities and states) or role (in smaller cities and towns) should be. Not only, or even mainly, a spokesperson. Rather, a mentor and coach, helping people, groups, and organizations become better online communicators. And not only, or mainly, those in government. In a city that thinks like the web every public-facing information resource will be bound to its creator’s online identity and linkable into other contexts.

The PIO’s measure of success won’t be the number of documents posted to the city website, or the number of pageviews they draw. It will be the degree to which public-facing entities — government of course, but also schools, hospitals, newspapers, churches, downtown merchants, sports leagues, environmental groups, and many others — properly manage and interconnect their own online spaces. Why? Because a shared understanding of how (and why) to do that will make the city a better place to live and a more attractive place to visit or migrate to.

The problem isn’t information overload, Clay Shirky famously said, it’s filter failure. Lately, though, I’m more worried about filter success. Increasingly my filters are being defined for me by systems that watch my behavior and suggest More Like This. More things to read, people to follow, songs to hear. These filters do a great job of hiding things that are dissimilar and surprising. But that’s the very definition of information! Formally it’s the one thing that’s not like the others, the one that surprises you.

So I’m always on the lookout for ways to defeat the filters and see things through lenses other than my own. On Facebook, for example, I stay connected to people with whom I profoundly disagree. As a tourist of other people’s echo chambers I gain perspective on my native echo chamber. Facebook doesn’t discourage this tourism, but it doesn’t actively encourage it either.

The other day an acquaintance posted a link to an article about a hot topic on which we disagree. Knowing my view, Facebook injected a link to an article that confirms it. There are two related problems here. First, in this context I don’t want Facebook to show me what it thinks is related to my view. I want to know more about the evidence that supports the opposing view, and the way in which my acquaintance’s thinking is informed by that evidence. That’s why I maintain the connection! I want to empathize with and understand The Other.

When I polled participants in the thread, I learned that nobody else saw the link that was suggested to me. That’s the second problem. If I hadn’t checked I might have assumed that Facebook was brokering a connection among echo chambers. That would have been cool but it’s not what actually happened.

As I think back on the evolution of social media I recall a few moments when my filters did “fail” in ways that delivered the kinds of surprises I value. Napster was the first. When you found a tune on Napster you could also explore the library of the person who shared that tune. That person had no idea who I was or what I’d like. By way of a tune we randomly shared in common I found many delightful surprises. I don’t have that experience on Pandora today.

Likewise the early blogosophere. I built my echo chamber there by following people whose lenses on the world complemented mine. For us the common thread was Net tech. But anything could and did appear in the feeds we shared directly with one another. Again there were many delightful surprises.

Remember when people warned us about the tyranny of The Daily Me? They were right, it’s happening big time. Of course it’s easy to escape The Daily Me. Try this, for example. Dump all your regular news sources and view the world through a different lens for a week. If you’re part of the US news nexus, for example, try Al Jazeera. It’s just a click away.

But that click isn’t on the path of least resistance. Our filters have become so successful that we fail to notice:

- We don’t control them

- They have agendas

- They distort our connections to people and ideas

I want my filters to fail, and I want dials that control the degrees and kinds of failures.

In Turing’s Cathedral: The Origins of the Digital Universe, George Dyson says of the engineers and mathematicians who birthed computing:

By breaking the distinction between numbers that mean things and numbers that do things, they unleashed the powers of coded sequences, and the world would never be the same.

Consider the number 30 stored in a computer. It can mean something: how many dollars in a bank account, how many minutes a meeting will last. But it can also do something, by representing part of a sequence of instructions that updates the amount in the bank account, or that notifies you when it’s time to go to the meeting. Depending on context, the same number, in the same memory location, can mean something or it can do something.

Deep inside the computer there are only numbers. Out here on the Net we humans prefer to operate in terms of names. Happily it turns out that names can exhibit the same magical duality. That’s particularly true for the special class of names we call Uniform Resource Locators (URLs).

In a 1997 keynote talk Andrew Schulman put up a slide that contained just a URL:


“Think about what this means,” he said. “Every UPS package has its own home page on the web!”

Also, potentially, every bank transaction, every calendar appointment, every book (or paragraph within every book), every song (or passage or track within every song), every appliance (or component within every appliance). If we needed to, we could create URLs for grains of sand, each as compact and easy to exchange as Andrew Schulman’s Fedex URL. The supply of web names is inexhaustible, and the universe of their meaning is unbounded.

But these names don’t only mean things. They also do things. The URL of a Fedex package does more than merely refer to the package with a unique identifier (though that’s miraculous enough). It also engages with the business process surrounding that package, drawing together status information from a network of cooperating systems and enabling you to interact with those systems.

It takes a while for the implications of all this to sink in. It’s seventeen years since Andrew’s epiphany, you’d think I would have adjusted to it by now, but I’m still constantly surprised and delighted by unanticipated consequences.

Consider this tweet from Etsy’s CTO Kellan Elliot-McCrea:

My new favorite pick me up, searching Twitter for “congrats”, scoped to folks I follow https://twitter.com/search?q=congrats&f=follows 1

What does Kellan’s URL mean? The set of tweets, from the (currently) 1099 people that Kellan follows on Twitter, that include the word “congrats” — information that brings happiness to Kellan.

What does Kellan’s URL do? It activates a computation, inside Twitter’s network of systems, that assembles and displays that information.

Both the meaning and the doing are context-specific in several ways. In the temporal domain, each invocation of the URL yields newer results. In the social domain, Kellan’s invocation queries the 1099 people he follows, mine queries the 1046 I follow, yours will query the population you follow.

Two factors conspire to bring us an ongoing stream of these delightful discoveries. First, systems (like Twitter) that think like the web. In these case that means, among other things, enabling people to invent powerful names. Second, people (like Kellan) who do the inventing.

1I have simplified Kellan’s URL slightly. His original tweet includes the parameter &src=typd. Its purpose seems to be unexplained, and omitting it doesn’t change the result.


Get every new post delivered to your Inbox.

Join 6,093 other followers