Smoke Signals

[ Please note that this essay uses some rough language.]

Introduction: The First Billion Seconds

In a few days time, it will be exactly thirty-two years – a bit more than a billion seconds – since I learned to code.  I was lucky enough to attend a high school with its own DEC PDP 11/45, and lucky that it chose to offer computer science courses on a few VT-52 video terminals and a DECWriter attached to it.   My first OS was RSTS/E, and my first programming language was – of course – BASIC.

A hundred million seconds before this, a friend dragged me over to a data center his dad managed, sat me down at a DECWriter, typed ‘startrek’ at the prompt, and it was all over.  The damage had been done.  From that day, all I’ve ever wanted to do is play with computers.

I’ve pretty much been able to keep to that.

Oddly, the only time I didn’t play with computers was at MIT.  After MIT, when I began work as a software engineer, I got to play and get paid for it.  I’ve written code for every major microprocessor family (with the exception of the 6502), all the common microcontrollers, and every OS from CP/M to Android.  I’ve even written a batch-executed RPG II program, typed up on punched cards, exectuted on an IBM 370 mainframe.

(Shudder, shudder.)

At Christmas 1990, I sat down and read a novel published a few years before, by an up-and-coming science fiction writer.  That novel – Neuromancer – changed my life.  It gave me a vision that I would pursue for an entire decade: a three-dimensional, immersive, visualized Internet.  Cyberspace.  I dropped everything, moved myself to San Francisco – epicenter of all work in virtual reality – and founded a startup to design and market an inexpensive immersive videogaming console.  It was hard work, frequently painful, and I managed to pour my life savings into the company before it went belly up.  But I can’t say that any of the other VR companies faired any better.  A few of them still exist, shadows of their former selves, selling specialty products into the industrial market.

These companies failed because each of them – my own among them – coveted the whole prize.  With the eyes of a megalomaniac, each firm was going to ‘rule the world’.  Each did lots of inventing, holding onto every scrap of invention with IP agreements and copyrights and all sorts of patents.  I invented a technology very much similar to that seen in the Wiimote, but fourteen years before the Wiimote was introduced.  It’s all patented.  I don’t own it.  After my company collapsed the patent went through a series of other owners, until eventually I found myself in a lawyer’s office, being deposed, because my patent – the one I didn’t actually own – was involved in a dispute over priority, theft of intellectual property, and other violations.

Lovely.

With the VR industry in ruins, I set about creating my own networked VR protocol, using a parser donated by my friend Tony Parisi, building upon work from a coder over in Switzerland, a bloke by the name of Tim Berners-Lee, who’d published reams and reams of (gulp) Objective-C code, preprocessed into ANSI C, implementing his new Hypertext Transport Protocol.  I took his code, folded it into my own, and rapidly created a browser for three-dimensional scenes attached to Berners-Lee’s new-fangled World Wide Web.

This happened seventeen years ago this week.  Half a billion seconds ago.

When I’d gotten my 3D browser up and running, I was faced with a choice: I could try to hold it tight, screaming ‘Mine! Mine! Mine!’ and struggle for attention, or I could promiscuously share my code with the world.  Being the attention-seeking type that I am, the choice was easy.  After Dave Raggett – the father of HTML – had christened my work ‘VRML’, I published the source code.  A community began to form around the project.  With some help from an eighteen year-old sysadmin at WIRED named Brian Behlendorf, I brought Silicon Graphics to the table, got them to open their own code, and we had a real specification to present at the 2nd International Conference on the World Wide Web.  VRML was off and running, precisely because it was open to all, free to all, available to all.

It took about a billion seconds of living before I grokked the value of open source, the penny-drop moment I realized that a resource shared is a resource squared.  I owe everything that came afterward – my careers as educator, author, and yes, panelist on The New Inventors – to that one insight.  Ever since then, I’ve tried to give away nearly all of my work: ideas, articles, blog posts, audio and video recordings of my talks, slide decks, and, of course, lots of source code.  The more I give away, the richer I become – not just or even necessarily financially.  There are more metrics to wealth than cash in your bank account, and more ways than one to be rich.  Just as there is more than one way to be good, and – oh yeah – more than one way to be evil.

Which brings us to my second penny-drop moment, which came after I’d been programming computers for almost a billion seconds…

I: ZOMFG 574LLm4N W45 r19H7!

Sometimes, the evil we do, we do to ourselves.  For about half a billion seconds between the ages of nineteen and thirty nine, I smoked tobacco, until I realized that anyone who smokes past the age of forty is either a fool or very poorly informed.  So I quit.  It took five years and many, many, many boxes of nicotine chewing gum, but I’m clean.

A few years ago, Harvard researcher Dr. Nicholas Christakis published some interesting insights on how the behavior of smoking spreads.  It’s not the advertising – that’s mostly banned, these days – but because we take cues from our peers.  If our friends start smoking, we ourselves are more likely to start smoking.  There’s a communicative relationship, almost an epidemiological relationship at work here.  This behavior is being transmitted by mimesis – imitation.  We’re the imitating primates, so good at imitating one another that we can master language and math and xkcd.  When we see our friends smoking, we want to smoke.  We want to fit in.  We want to be cool.  That’s what it feels like inside our minds, but really, we just want to imitate.  We see something, and we want to do it.  This explains Jackass.

Mimesis is not restricted to smoking.  Christakis also studied obesity, and found that it showed the same ‘network’ effects.  If you are surrounded by the obese people, chances are greater that you will be obese.  If your peers starts slimming, chances are that you will join them in dieting.  The boundaries of mimesis are broad: we can teach soldiers to kill by immersing them in an environment where everyone learns to kill; we can teach children to read by immersing them in an environment where everyone learns to read; we can stuff our faces with Maccas and watch approvingly as our friends do the same.  We have learned to use mimesis to our advantage, but equally it makes us its slaves.

Recent research has shown something disturbing: divorce spreads via mimesis.  If you divorce, its more likely that your friends will also split up.  Conversely, if your friends separate, it’s more likely that your marriage will dissolve.  Again, this makes sense – you’re observing the behavior of your peers and imitating it, but here it touches the heart, the core of our being.

Booting up into Homo Sapiens Sapiens meant the acquisition of a facility for mimesis as broadly flexible as the one we have for language.  These may even be two views into the same cognitive process.  We can imitate nearly anything, but what we choose to imitate is determined by our network of peers, that set of relationships which we now know as our ‘social graph’.

This is why one needs to choose one’s friends carefully.  They are not just friends, they are epidemiological vectors.  When they sneeze, you will catch a cold.  They are puppet masters, pulling your strings, even if they are blissfully unaware of the power they have over you – or the power that you have over them.

All of this is interesting, but little of it has the shock of the new.  Our mothers told us to exercise caution when selecting our friends.  We all know people who got in with the ‘wrong crowd’, to see their lives ruined as a consequence.  This is common knowledge, and common sense.

But things are different today.  Not because the rules have changed – those seem to be eternal – but because we have extended ourselves so suddenly and so completely.  Our very new digital ‘social networks’ recapitulate the ones between our ears, in one essential aspect – they become channels for communication, channels through which the messages of mimesis can spread.  Viral videos – and ‘viral’ behavior in general – are good examples of this.

Digital social networks are instantaneous, ubiquitous and can be vastly larger than the hundred-and-fifty-or-so limit imposed on our endogenous social networks, the functional bandwidth of the human neocortex.  Just as computers can execute algorithms tens of millions of times faster than we can, digital social networks can inflate to elephantine proportions, connecting us to thousands of others.

Most of us keep our social graphs much smaller; the average number of friends on any given user account on Facebook is around 35.  That’s small enough that it resembles your endogenous social network, so the same qualities of mimesis come into play.  When your connections start talking about a movie or a song or a television series, you’re more to become interested in it.

If this is all happening on Facebook – which it normally is – there is another member of your social graph, there whether you like it or not: Facebook itself.  You choose to build your social graph by connecting to others within Facebook, store your social graph on Facebook’s servers, and communicate within Facebook’s environment.  All of this has been neatly captured, providing an opening for Facebook to do what they will with your social graph.

You have friended Mark Zuckerberg, telling him everything about yourself that you have ever told to any of your friends.  More, actually, because an analysis of your social graph reveals much about you that you might not want to ever reveal to anyone else: your sexual preference and fetishes, your social class, your income level – everything that you might choose to hide is entirely revealed because you need to reveal it in order to make Facebook work.  Because you do not own it.  Because you do not have access to the source code, or the databases.  Because it is closed.

Your social graph is the most important thing you have that can be represented in bits.  With it, I can manipulate you.  I can change your tastes, your attitudes, even your politics.  We now know this is possible – and probably even easy.  But to do this, I need your social graph.  I need you to surrender it to me before I can use it to fuck you over.

We didn’t understand any of this a quarter billion seconds ago, when Friendster went live.  Now we have a very good idea of the potency of the social graph, but we find ourselves almost pathetically addicted to the amplified power of communication provided by Facebook.  We want to quit it, but we just don’t know how.  Just as with tobacco, going cold turkey won’t be easy.

On 28 May 2010, I killed my Facebook profile and signed off once and for all.  There is a cost – I’m missing a lot of the information which exists solely within the walled boundaries of Facebook – but I also breathe a bit easier knowing that I am not quite the puppet I was.  When someone asks why I quit – an explanation which has taken me over a thousand words this morning – they normally just close down the conversation with, “My grandmother is on Facebook.  I have to be there.”

That may be our epitaph.

We are so fucked.  We ended up here because we surrendered our most vital personal details to a closed-source system.  We should have known better.

And that’s only the half of it.

So much has happened in the last eight weeks that we’ve almost forgotten that before all of this disaster and tragedy afflicted Queensland, we were obsessed with another sort of disaster, rolling out in slow-motion, like a car smash from inside the car.  On 29 November 2010, Wikileaks, in conjunction with several well-respected newspapers, began to release the first few of a quarter million cables, written by US State Department officials throughout the world.  The US Government did its best to laugh these off as inconsequential, but one has already led more-or-less directly to a revolution in Tunisia.  We also know that Hilary Clinton has requested credit card numbers and DNA samples for all of the UN ambassadors in New York City, presumably so she can raise up a clone army of diplomats intent on identity theft.  Not a good look.

In early December, as the first cables came to light, and their contents ricocheted through the mediasphere, the US government recognized that it had to act – and act quickly – to staunch the flow of leaks.  The government had some help, because an individual seduced by the United States’ projection of power decided to mount a Distributed Denial of Service attack against the Wikileaks website.  In the name of freedom.  Or liberty.  Or something.

Wikileaks went down, but quickly relocated its servers into Amazon.com’s EC2 cloud.  This lasted until US Senator Joseph Lieberman started making noises.  Wikileaks was quickly turfed out of EC2, with Amazon claiming newly discovered violations of its Terms of Service.  Another ‘discovery’ of a violation followed in fairly short order with Wikileaks’ DNS provider, everyDNS.  For the coup de gras, PayPal had a look at their own terms of service – and, quelle horreur! – found Wikileaks in violation, freezing Wikileaks accounts, which, at that time, must have been fairly overflowing with contributions.

Deprive them of servers, deprive them of name service, deprive them of funds: checkmate.  The Powers That Be must have thought this could dent the forward progress of Wikileaks.  In fact, it only caused the number of copies of the website and associated databases to multiply.  Today, nearly two thousand webservers host mirrors of Wikileaks.  Like striking at a dandelion, attacking it only causes the seed to spread with the winds.

Although Wikileaks successfully resumed its work releasing the cables, the entire incident proved one ugly, mean, nasty point: the Internet is fundamentally not free.  Where we thought we breathed the pure air of free speech and free thought, we instead find ourselves severely caged.  If we do something that upsets our masters too much, they bring the bars down upon us, leaving us no breathing room at all.  That isn’t liberty.  That is slavery.

This isn’t some hypothetical.  This isn’t a paranoid fantasy.  This is what is happening. It will happen again, and again, and again, whenever the State or forces in collusion with the State find themselves threatened.  None of it is secure.  None of it belongs to us.  None of it is free.

This is why we are so truly and wholly fucked.  This is why we must stop and rethink everything we are doing.  This is why we must consider ourselves victims of another kind of disaster, another tragedy, and must equally and bravely confront another kind of rebuilding.  Because if we do not create something new, if we do not restore what is broken, we surrender to the forces of control.

I will not surrender.  I will not serve.

II: Life During Wartime (with A Design Guide for Anarchists)

Like it or not, we find ourselves at war.  It’s not a war we asked for.  It’s not a war we wanted.  But war is upon us, the last great gasp of the forces of control as they realize that when they digitized, in pursuit of greater efficiency, profit, or extensions of their own power, whatever they once held onto became so fluid it now drains away completely.

That’s one enemy, the old enemy, the ones whom history has already ruled irrelevant.  But there’s the other enemy, who seeks to exteriorize the interior, to make privacy difficult and therefore irrelevant.  Without privacy there is no liberty.  Without privacy there is no individuality.  Without privacy there is only the mindless, endless buzzing of the hive.    That’s the new enemy.  Although it announces itself with all of the hyperbole of historical inevitability, this is just PR aimed at extending the monopoly power of these forces.

We need weapons.  Lots of weapons.  I’m not talking about the Low Orbit Ion Cannon.  Rather, I’m recommending a layered defensive strategy, one which allows us to carry on with our business, blithely unmolested by the forces which seek to constrain us.

Here, then, is my ‘Design Guide for Anarchists’:

Design Principle One: Distribute Everything

The recording industry used the courts to shut down Napster because they could.  Napster had a single throat they could get their legal arms around, choking the life out of it.  In a display of natural selection that would have brought a tear to Alfred Russel Wallace’s eye, the selection pressure applied by the recording industry only led to the creation of Gnutella, which, through its inherently distributed architecture, became essentially impossible to eradicate.  The Day of the Darknet had begun.

Break everything upBreak it all down.  When you have these components, make them all independentReplicate them widely.  Allow them to talk to one another.  Allow them to search one another, share with one another, so that together they will create a whole greater than a simple sum of parts.  Then you will never be rid of them, because if one part should be cut down, there will be two others to take its place.

This is an extension of the essential UNIX idea of simple programs which can be piped together to do useful things.  ‘Small pieces, loosely joined.’  But these pieces shouldn’t live within a single process, a single processor, a single computer, or a single subnet.  They must live everywhere they can live, in every compatible environment, so that they can survive any of the catastrophes of war.

Design Principle Two: Transport Independence

The inundation of Brisbane and its surrounding suburbs brought a sudden death to all of its networks: mobile, wired, optic.  All of these networks are centralized, and for that reason they can all be turned off – either by a natural disaster, or at the whim of The Powers That Be.  Just as significantly, they require the intervention of those Powers to reboot them: government and telcos had to work hand-in-hand to bring mobile service back to the worst-affected suburbs.  So long as you are in the good graces of the government, it can be remarkably efficient.  But if you find yourself aligned against your government, or your government is afflicted with corruption, as simple a thing as a dial tone can be almost impossible to manifest.

We have created a centralized communications infrastructure.  Lines feed into trunks, which feed into central offices, which feed into backbones.  This seems the natural order of things, but it is entirely an echo of the commercial requirements of these networks.  In order to bill you, your communications must pass through a point where they can be measured, metered and tariffed.

There is another way.  Years before the Internet came along, we used UUCP and FidoNet to spread mail and news posts throughout a far-flung, only occasionally connected global network of users.  It was slower than we’re used to these days, but no less reliable.  Messages would forward from host to host, until they reached their intended destination.  It all worked if you had a phone line, or an Internet connection, or, well, pretty much anything else.  I presume that a few hardy souls printed out a UUCP transmission on paper tape, physically carried it from one host to another, and fed it through.

A hierarchy is efficient, but the price of that efficiency is vulnerability.  A rhizomatic arrangement of nodes within a mesh is slow, but very nearly invulnerable.  It will survive flood, fire, earthquake and revolution.  To abolish these dangerous hierarchies, we must reconsider everything we believe about ‘the right way’ to get bits from point A to point B.  Every transport must be considered – from point-to-point laser beams to wide-area mesh networks using unlicensed spectrum down to semaphore and smoke signals.  Nothing is too slow, only too unreliable.  If we rely on TCP/IP and HTTP exclusively, we risk everything for the sake of some speed and convenience.  But this is life during wartime, and we must shoulder this burden.

Design Principle Three: Secure Everything

Why would any message traverse a public network in plaintext?  The bulk of our communication occurs in the wide open – between Web browsers and Web servers, email servers and clients, sensors and their recorders.  This is insanity. It is not our job to make things easy to read for ASIO or the National Security Agency or Google or Facebook or anyone else who has some need to know what we’re saying and what we’re thinking.

As a baseline, everything we do, everywhere, must be transmitted with strong encryption.  Until someone perfects a quantum computer, that’s our only line of defense.

We need a security approach that is more comprehensive than this.  The migration to cloud computing – driven by its ubiquity and convenience, and baked into Google’s Chrome OS – deprives us of any ability to secure our own information.  When we use Gmail or Flickr or Windows Live or MobileMe or even Dropbox (which is better than most, as it stores everything encrypted), we surrender our security for a little bit of simplicity.  This is a false trade-off.  These systems are insecure because it benefits those who offer these systems to the public.  There is value in all of that data, so everything is exposed, leaving us exposed.

If you do not know where it lives, if you do not hold the keys to lock it or release it, if it affects to be more pretty than useful (because locks are ugly), turn your back on it, and tell the ones you love – who do not know what you know – to do the same.  Then, go and build systems which are secure, which present nothing but a lock to any prying eyes.

Design Principle Four: Open Everything

I don’t need to offer any detailed explanation for this last point: it is the reason we are here.  If you can’t examine the source code, how can you really trust it?  This is an issue beyond maintainability, beyond the right to fork; this is the essential element that will prevent paranoia.  ‘Transparency is the new objectivity’, and unless any particular program is completely transparent, it is inherently suspect.

Open source has the additional benefit that it can be reused and repurposed; the parts for one defensive weapon can rapidly be adapted to another one, so open source accelerates the responses to new threats, allowing us to stay one step ahead of the forces who are attempting to close all of this down.  There’s a certain irony here: in order to compete effectively with us, those who oppose us will be forced to open their own source, to accelerate their own responses to our responses.  On this point we must win, simply because open source improves selection fitness.

When all four of these design principles are embodied in a work, another design principle emerges: resilienceSomething that is distributed, transport independent, secure and open is very, very difficult to subvert, shut down, or block. It will survive all sorts of disasters.  Including warfare.  It will adapt at lightning speed.  It makes the most of every possible selection advantage.  But nothing is perfect.  Systems engineered to these design principles will be slower than those built purely for efficiency.  The more immediacy you need, the less resilience you get.  Sometimes immediacy will overrule other design principles.  Such trade-offs must be carefully thought through.

Is all of this more work?  Yes.  But then, building an automobile that won’t kill its occupants at speed is a lot more work than slapping four wheels and a gear train on a paper mache box.  We do that work because we don’t want our loved ones hurtling toward their deaths every time they climb behind the wheel.  Freedom ain’t free, and ‘extremism in the defense of liberty is no vice.’

Let me take a few minutes to walk you through the design of my own open-source project, so you can see how these design principles have influenced my own work.

III:  Plexus

When I announced I would quit Facebook, many of my contacts held what can only be described as an ‘electronic wake’ for me, in the middle of my Facebook comment stream.  As if I were about to pass away, and they’d never see me again.  I kept pointing them to my Posterous blog, but they simply ignored the links, telling me how much I’d be missed once I departed.  ‘But why can’t you just come visit me on Posterous?’ I asked.  One contact answered for the lot when he said, ‘That’s too hard, Mark.  With Facebook I can check on everyone at once.  I don’t need to go over there for you, and over here for someone else, and so on and so on.  Facebook makes it easy.’

That’s another epitaph.  Yet it precipitated a penny-drop moment.  The reason Facebook has such lock-in with its users is because of a network effect: as more people join Facebook, its utility value as a human switchboard increases.  It is this access to the social graph which is Facebook’s ‘flypaper’, the reason it is so sticky, and surpassing Google as the most visited site on the Internet.

That social graph is the key thing; it’s what the address book, the rolodex and the contacts database have morphed into, and it forms the foundation for a project that I have named Plexus.  Plexus is a protocol for the social web, ‘plumbing’ that allows all social web components to communicate: from each, according to their ability, to each, according to their need.  Some components of the social web – Facebook comes to mind – are very poor communicators.  Others, like Twitter, have provided every conceivable service to make them easy to talk to.

Plexus provides a ‘meta-API’, based on RFC2822 messaging, so that each service can feed into or be fed by an individual’s social graph.  This social graph, the heart of Plexus, is what we might call the ‘Web2.0 address book’.  It’s not simply a static set of names, addresses, telephone numbers and emails, but, rather, an active set of connections between services, which you can choose to listen to, or to share with.  This is the switchboard, where the real magic takes place, allowing you listen to or be listened to, allowing you to share, or be shared with.

Plexus is agnostic; it can talk to any service, and any service can talk to it.  It is designed to ‘wire everything together’, so that we never have to worry about going hither and yon to manage our social graph, but neither need we be chained in one place.  Plexus gives us as much flexibility as we require.  That’s the vision.

Just after New Year, I had an insight.  I had originally envisioned Plexus as a monolithic set of Python modules.  It became clear that message-passing between the components – using an RFC2822 protocol – would allow me to separate the components, creating a distributed Plexus, parts of which could run anywhere: on a separate process, on a separate subnet, or, really, anywhere.  Furthermore, these messages could easily be encrypted and signed using RSA encryption, creating a strong layer of security.  Finally, these messages could be transmitted by any means necessary: TCP/IP, UUCP, even smoke signals.  And of course, all of it is entirely open.  Because it’s a protocol, the pieces of Plexus can be coded in any language anyone wants to use: Python, Node.js, PHP, Perl, Haskell, Ruby, Java, even shell.  Plexus is an agreement to speak the same language about the things we want to share.

I could go into mind-numbing detail about the internals of Plexus, but I trust those of you who find Plexus intriguing will find me after I leave the stage this morning.  I’m most interested in what you know that could help move this project forward: what pieces already exist that I can rework and adapt for Plexus?  I need your vast knowledge, your insights and your critiques.  Plexus is still coming to life, but a hundred things must go right for it to be a success.  With your aid, that can happen.

When it does – well, let me share one of my favorite quotes, from one of my favorite novels, Illuminatus!, by Robert Shea and Robert Anton Wilson:

The Chinese Taoist laughs at civilization and goes elsewhere.
The Babylonian Chaoist sets termites to the foundations.

Plexus is a white ant set to the imposing foundations of Facebook and every other service which chooses to take the easy path, walling its users in, the better to control them.  There is another way.  When the network outside the walls has a utility value greater than the network within, the forces of natural selection come into play, and those walls quickly tumble.  We saw it with AOL.  We saw it with MSN.  We’ll see it again with Facebook.  We will build the small and loosely-coupled components that individually do very little but altogether add up to something far more useful than anything on offer from any monopolist.

We need to see this happen.  This is not just a game.

Conclusion: The Next Billion Seconds

A billion seconds ago, Linux did not exist.  The personal computer was an expensive toy.  The Internet – well, one of my friends is the sysadmin who got HP onto UUCP – this was before the Internet became pervasive – and he remembers updating his /etc/hosts file weekly – by hand.  Every machine on the Internet could be found within a single file, that could be printed out on two sheets of greenbar.  A billion seconds later, and we’re a few days away from IPocalypse, the total allocation of the IPv4 number space.

Something is going on.

I’m not as teleological as Kevin Kelly.  I do not believe that there is evidence to support a seventh class of life – the technium – which is striving to come into its own.  I don’t consider technology as something in any way separate from us.  Other animals may use tools, but we have gone further, becoming synonymous with them.  Our social instinct for imitation, our language instinct for communication, and our technological instinct for tool using all seem to be reaching new heights.  Each instinct reinforces the others, creating a series of rising feedbacks that has only one possible end: the whole system overloads, overflows all its buffers, and – as you might expect – knocks the supervisor out of the box.

Call this a Singularity, if you like.  I simply refer to it as the next billion seconds.

The epicenter of this transition, where all three streams collide, sits in the palm of our hands, nearly all the time.  The mobile is the most pervasive technology in human history.  People who do not have electricity or indoor plumbing or literacy or agriculture have mobiles.  Perhaps five and a half billion of the planet’s seven billion souls possesses one; that’s everyone who earns more than one dollars a day.  Countless studies shows that individuals with mobiles improve their economic fitness:  they earn more money.  Anything that improves selection fitness – and economic fitness is a big part of that – spreads rapidly, as humans imitate, as humans communicate, as humans take the tool and further it, increasing its utility, amplifying its ability to amplify economic fitness.  The mobile becomes even more useful, more essential, more indispensable.  A billion seconds ago, no one owned a mobile.  Today, nearly everyone does.

Hundreds of billions of dollars are being invested to make the mobile more useful, more pervasive, and more effective.  The engines of capital are reorganizing themselves around it, just as they did, three billion seconds ago, for the automobile, and a billion seconds ago for the integrated circuit.  But unlike the automobile or the IC, the mobile is quintessentially a social technology, a connective fabric for humanity.  The next billion seconds will see this fabric become more tangible and more tightly woven, as it becomes increasingly inconceivable to separate ourselves from those we choose to share our lives with.

Call this a Hive Mind, if you like.  I simply refer to it as the next billion seconds.

This is starting to push beneath our skins the way it has already colonized our attention.  I don’t know that we will literally ‘Borg’ ourselves.  But the strict boundaries between ourselves, our machines, and other humans are becoming blurred to the point of meaninglessness.  Organisms are defined by their boundaries, by what they admit and what they refuse.  In this billion seconds, we are rewriting the definition of homo sapiens sapiens, irrevocably becoming something else.

Do we own that code? Are parts of that new definition closed off from us, fenced in by the ramparts of privilege or power or capital or law?  Will we end up with something foreign inside each of us, a potency unnamed, unobserved, and unavoidable?  Will we be invaded, infected, and controlled?   This is the choice that confronts us in the next billion seconds, a choice made even in its abrogation.  Freedom is not just an ideal.  Liberty is not some utopian dream.  These must form the baseline human experience in our next billion seconds, or all is lost.  We ourselves will be lost.

We have reached the decision point.  Our actions today – here, in this room – define the future we will inhabit, the transhumanity we are emerging into.  We’ve had our playtime, and it’s been good.  We’ve learned a lot, but mostly we’ve learned how to discern right from wrong.  We know what to do: what to build up, and what to tear down.  This transition is painful and bloody and carries with it the danger of complete loss.  But we have no choice.  We are too far down within it to change our ways now.  ‘The way down is the way up.’

Call it a birth, if you like.  It awaits us within the next billion seconds.

The slides for this talk (in OpenOffice.org Impress format) are available here.  They contain strong images.

How Not To Be Seen

I: The Comfy Chair

Back in 1978 – when I was just fifteen – I begged my parents to let me enroll in a course at the local community college (the equivalent of TAFE) so that I could take ‘Data Processing with RPG II’.  I wrote my first computer program in RPG II.  I typed that program onto a series of punched cards, one statement per punched card.  Once I’d completed typing the deck of cards which comprised my program, I dropped them off at the college’s data processing center, where they went into the batch queue.  You returned in 24 hours and were returned your deck of punched cards, along with a long string of ‘green-bar’ paper, which printed the results (or errors) in your program.  If you’d made a mistake on one of the cards – a spelling error, or a syntactical no-no, you’d be forced to repeat the process, as needed, until you got it right.

Woohoo.  Sign me up.

From around 1980 – when I went off to MIT to study computer science – computers have been my constant companions.  I’ve owned cheap ones (Commodore’s VIC-20), expensive ones (one of the first Macintosh IIs to roll off the assembly line), tiny ones (iPhone), and big ones (SparcStation 3).  I have never owned a computer that I have not written code for.  In my mind, the computer and the act of programming are inseparable.

Programming languages are something one acquires, like computers; but you don’t put those languages in the bin – mostly.  In preparation for this talk, I made up a list of all the programming languages I’ve learned over the years, beginning with RPG II – which I’ve since forgotten.  BASIC came next, and I thought it a wonderful, useful, incredible language, my true starting point.

I spent many years programming in assembly language on a variety of systems – CP/M, MS-DOS, embedded microcontrollers.  I bought a cheap C compiler in 1982, a copy of Kernighan & Ritchie, learned pointer arithmetic, and crashed my computer repeatedly in the process.  Now that was fun.

I did take up C++ when it was still new, when Stroustrup was still implementing features of the language.  (Oh, wait, he’s still doing that, isn’t he?)  Buried myself in class designs and object hierarchies and delegation models.  I can probably still program in C++.  If someone were to threaten me with a taser.

In the 1990s along came the Web and LINUX, the open computing platform.  Suddenly a language was more useful for its ability to communicate with other entities than for its raw processing power.

I sat down at the 3rd International World Wide Web conference with a few folks from SUN Microsystems, who were touting this new, portable programming language they’d invented, which they called ‘Oak‘.  I wonder whatever became of that?

Each new language is supposed to conquer the world.  Each new language is meant to subdue all before it.  And I have to admit that I had my share of fun with PERL – the bastard child of BASIC and C – and, later PHP.  I’ve written a lot of JavaScript, because that’s the programming language of choice that brings VRML to life.  Oh, and that’s right: along the way I invented a language, a portable language for interactive 3D computer graphics, a language that now, with WebGL about to become part of HTML5, looks less a damp squib than fifteen years ahead of its time.

Oh well.

Just a few years ago I decided that I needed to learn Python.  I don’t remember the reason.  I don’t even know that there was a reason.  Python was there, and that was enough.

It didn’t take long to learn – Python isn’t a difficult language – but for just that little bit of learning I got so much power, well – I don’t have to explain it to you.  You understand.  It’s a bit like crack, Python is.  Once you’ve had that first hit, you’re never quite the same again.

I put Python on everything: on my Macs, on my servers, on my mobile – everything I owned got a Python install.  I didn’t know exactly what I’d do with all this Python, but somehow that seemed unimportant.  Just get it everywhere.  You’ll figure something out.

In some ways discovering Python was very frustrating.  By my early 40s I’d basically stopped programming; not because I hated coding, but because my life had turned in other directions.  I teach, I research, I lecture, I write, I do a little TV on the side.  None of that has anything to do with coding.  I had the best tool for a grand bit of hackery, and no time to do anything with it, nor any real reason to drive me to make time.

My biggest Python project (before last week) was a simple script to create a video used in the opening of my 2008 WebDirections South keynote.  I wanted to show the ‘cloud’ of Twitter followers I had started to accumulate – around 1500.  Not just a ‘wall’ of different faces, but a film, an animation, where each person I followed on Twitter had their moment in the sun.  The script retrieved the list of people I follow, then iterated through this list, getting profile information for each individual, extracting from that the URL for the user’s avatar, which it then retrieved, Using Python Imaging Library, it then embossed the user’s handle onto the image.  After that it was a basic drag-and-drop operation into Adobe Premiere.  Presto! – I had a movie.  Thank you, Python.

For half a decade I’ve been thinking about social networks.  This little film project allowed me to tie my research together with my desire to have a pleasant excuse to hack. When I sat back and watched the film I’d algorithmically pieced together, I began to get a deeper sense of the value of my ‘social graph’.  That’s a new phrase, and it means the set of human relationships we each carry with us.  Until just a few years ago, these relationships lived wholly between our ears; we might augment our memories with an address book or a Rolodex, but these paper trails were only ever a reflection of our embodied relationships.  Ever since Friendster, these relationships have exteriorized, leaped out of our heads (like Athena from Zeus) and crawled into our computers.

This makes them both intimately familiar and eerily pluripotent.  We are wired from birth to connect with one another: to share what we know, to listen to what others say.  This is what we do, a knowledge so essential, so foundational, it never needs to be taught.  When this essential feature of being human gets accelerated by the speed of the computer, then amplified by a global network that now connects about five billion people (counting both  mobile or Internet), all sorts of unexpected things begin to happen.  The entire landscape of human knowledge – how we come to know something, how we come to share what we know – has been utterly transformed over the last decade.  Were we to find a convenient TARDIS and take ourselves back to the world of 1999, it would be almost unrecognizable.  The media landscape was as it always had been, though the print component had hesitatingly migrated onto the Web.  To learn about the world around us, we all looked up – to the ABC, to the New York Times, to the BBC World Service.

Then the world exploded.

We don’t look up anymore. We look around – we look to one another – to learn what’s going on.  Sometimes we share what we hear on the ABC or the Times or the World Service.  But what’s important is that we share it.  There is no up, there is no centre.  There is only a vast sea of hyperconnected human nodes.

The most alluring and seductive of all of the hyperconnecting services is unquestionably Facebook.  In three years it has grown from just fifteen million to nearly half a billion users.  It might be the most visited website in the world, just now surpassing Google.  Facebook has become the nexus, the connecting point for one person in every fourteen on Earth.  Facebook is the place where the social graph has come to life, where the potency of sharing and listening can be explored in depth.  But it is a life lived out in public.  Facebook is not really geared toward privacy, toward the intimacies that we expect as a necessary quality of our embodied relationships.  Facebook founder Mark Zuckerberg is on the record talking about ‘the end of privacy’, and how he sees it that a side-effect of Facebook’s mission ‘to give people the power to share, and make the world more open and connected’.

A world more open could be a good thing, but only if the openness is wholly multilateral.  We don’t want to end up in a world where our secrets as individuals have been revealed, while those who have the concentrations of capital and power, and their supporting organizations and networks, manage to continue to remain obscure and occult.  This kind of ‘privacy asymmetry’ will only work against the individuals who have surrendered their privacy.

This is precisely where we seem to be headed.  Facebook wants us to connect and share and reveal, but – particularly around privacy, user confidentiality, and the way they put that vast amount of user-generated data to work for themselves and their advertisers – Facebook’s business practices are entirely opaque.  Openness must be met with openness, sharing with sharing.  Anything else creates a situation where one side is – quite literally – holding all the cards.

I have been pondering the power of social networks for six years, so I am peculiarly conscious of the price you pay for participation in someone else’s network.  I’ve come to realized your social graph is your most important possession.  In a very real way, your social graph is who you are.  Until a few years ago we never gave this much thought because we carried our graphs with us everywhere, inside our heads.  But now that these graph live elsewhere – under the control of someone else – we’re confronted with a dilemma :we want to turbocharge our social graphs, but we don’t want anyone else having any access to something so fundamental and intimate.  If the CIA and NSA use social graphs to find and combat terrorists, if smoking, obesity and divorce spread through social graphs, why would we hand something so personal and so potent to anyone else?  What kind of value would we receive for surrendering our crown jewels?

By the end of last month it was clear that Facebook had become dangerous.  Something had to be done.  People had to be warned.  In a Melbourne hotel room, I drafted a manifesto.  Here’s how I closed it:

There is only one solution.  We must take the thing which is inalienable from us – our presence – and remove it from those who would use that presence for their own gain.  We must move, migrate, become digital refugees, fleeing a regime which seeks only its own best interests, to the detriment of our own… We may be the first, but we will not be the last.  We must map the harbors, clear the woods, and make virgin lands inviting enough that it will be an easy decision for those who will come to join us in this new country, where freedom goes hand-in-hand with presence, where privacy is not a dirty word, and where the future knows no bounds.

So I quit.  But I didn’t do it suddenly or rashly.  I’d been using Facebook to share media – links and articles and videos – so I set up a Posterous account, where I could do exactly the same kind of sharing.  Over the course of two weeks, I posted a series of Facebook updates, telling everyone in my social graph that I’d be quitting Facebook – beginning by posting that manifesto – and giving them the link to my Posterous account.  I did this on five separate occasions in the week leading up to my account deletion.

The responses were interesting.  Most of the folks in my social graph who bothered to respond were in various stages of mourning.  My own aunt – whom I’ve been corresponding with via email for twenty years – wrote how much she’d miss me.  Another individual expressed regret at my leave-taking, given that we’d only just reconnected after many years.  “But,” I responded, “I’ve shown you how we can stay in touch.  Just follow the link.”  “That’s too hard,” he replied, “I like that Facebook gives me everyone in one place.  I don’t have to remember to check here for you, or over there for someone else.  This is just easy.”

I can’t fault his logic: Facebook is just like the comfy chair.  It’s a pleasant place to be – even when surrounded by Inquisitors.  Facebook users are simply so grateful that such an amazing service is on offer – seemingly for free – that they haven’t thought through the price of their participation.  And unless something else comes along that’s as powerful and easy as Facebook, things will go on just as are.  Unless a disruptive innovation upends all the apple carts.

This is when I had a brainwave.

II:  And Now For Something Completely Different

What is the social graph?  At its essence, it is a set of connections, connections which define certain flows of information.  These connections are both figurative and literal.  If I say that I am connected to someone, I mean that we have some sort of relationship.  But I also means that we have established protocols for communication, channels that can be used to send messages back and forth.  For the last three hundred years this has been embodied in the ‘visiting card’, presented at all occasions when there is an invitation to connect.  The ‘visiting card’ evolved into the ‘business card’ we share freely and promiscuously when there’s money to be made, or a connection to be had.  The business card of 2010 must provide four significant pieces of information: a) the name of the caller; b) the address of the caller; c) the telephone number(s) of the caller; and d) the email address of the caller.  Other information can be provided on the card – and often is – but if a card is missing any of these four essentials, it is incomplete.  Each item represents a separate sphere of connectivity: the name is the necessary prerequisite for social connectivity; the address for postal connectivity; the telephone number and email addresses are self-explanatory.  Each entry has a one-to-one correspondence with some form of connectivity.  When we exchange business cards, we are providing the information necessary to establish connectivity.

We now have digital versions of the business card; we hand out vCards, or provide QR Codes that can be scanned and translated into a pointer to a vCard.  Yet what we do with these  digital versions of the business card not has changed: we stuff them into ‘address books’, or into the contact lists on our mobiles.  If we have the right tools, we can upload them to Plaxo or LinkedIn.  There they sit, static and essentially useless.  A database with no applications.

That’s kind of weird, isn’t it?  I mean, here we are, each of us walking around with a few hundred contacts on our mobiles, and essentially doing nothing with them unless we need to make a phone call or send an email.  It doesn’t make sense.  Somehow we’ve lost sight of the  fact that the digital item is active in a way the physical object is not.   Facebook understands this.  Facebook takes your ‘calling card’ – the profile that you loaded up with your personal information – and makes it the foundation of your social graph.  Everyone connects to your profile (which is you), and these connections become the cornerstone of fully bilateral sharing relationships.  Anyone connected to you can send you a message, or initiate a chat, or look at the photos you uploaded of your holiday in the fleshpots of Bangkok.   That one connection becomes the cornerstone for a whole range of opportunities to share media – text, images, video, links, music, events, etc. – and equally an opportunity to listen to what others are sharing.  That’s what Facebook is, really, a giant, centralized switchboard which connects its members to one another.  That’s all any social network is.

It’s easy – really easy – to connect together.  We have so many ways to do so, through so many mechanisms, that really we’re drowning in choice, rather than a poverty of options.  Instead of a monolithic solution, the Internet, like nature, tends to favor diversity and heterogeneity.  Diversity creates the space for play and exploration; a tolerance for heterogeneity allows that there is no right answer, no one way to play the game.  Is it possible to design an architecture for human connectivity which favors diversity and heterogeneity.

For the past few weeks those of you following me on Twitter have seen me tweet about ‘Project Thunderware’, which was the silliest code-name I could think up for a project that is actually entirely serious.  The real name is Plexus.  Plexus is design for a second-generation social network.  It is personal – everyone runs their own Plexus.  It is portable – written entirely in Python so you can drop it onto a USB key (if you want), and take it with you anywhere you can get Python running.  It is private – no one else has access to your Plexus, unless you want them to.  It’s completely open and completely modular.  Plexus is designed to take the passive social graph we’ve all got tucked away in our various devices, translating it into something active, vital, and essential.

There are three components within Plexus.  First and most important is the social graph, a database of connections known as the ‘Plex’.  Each of these connections, like a business card, comes with a list of connection points.  These connection points can be outgoing – ‘this is how I will speak to you’, or incoming – ‘this is how I will listen to you’.  They can be unilateral or bilateral.  They can be based on standard protocols – such as SMTP or XMPP, or the APIs of the rapidly-multiplying set of social services already available in the wilds of the Internet, or they can be something entirely home-grown and home-brewed.  They can be wide open, or encrypted with GPG.  Everything is negotiable.  That’s the point: something’s in the Plex because there’s an active connection and relationship between two parties.

The Plex is only a database.  To bring that database to life, two other components are required.  The first of these is the ‘Sharer’.  The Sharer, as the name implies, makes sure that something to be shared – be it a string of text, or a link, or a video, or a blog post, or whatever – ends up going out over the negotiated channels.  The Sharer is built out of a set of Python modules, with each particular sharing service handled by its own module.  This means that there is no limit or artificial constraint on what kinds of services Plexus can share with.

Conversely, the third component, the Listener, monitors all of the negotiated channels for any activity by any of the connections in the Plex.  When the Listener hears something, it sends that to the user – to be displayed or saved or ignored according to the needs of the moment.  Like the Sharer, the Listener is also a set of Python modules, with each monitored service handled by its own module.  The Listener should be able to listen to anything that has a clearly defined interface.

When Plexus starts up, it reads through the Plex, instancing the appropriate Sharer and Listener objects on a connection-by-connection basis.  Everything after initialization is event-driven: the Plexus user shares something, or the Listener hears something and offers that to the Plexus user.

That’s it.  That’s the whole of the design.  As always, the devil is in the details, but the essential architecture will probably remain unchanged.  Plexus creates your own, self-managed social network, both entirely self-contained, and also acts as a connected node within a broader network.  Because Plexus functions as plumbing – wiring together social services that haven’t been designed to talk to one another – it performs a service that is badly needed, filling a growing void.  Plexus is your own plumbing, under your own control.

Let’s talk through a use case.  I give a lot of lectures, and I make sure to put my contact details – email, blog and Twitter – on my slides.  I meet two people at a lecture – we’ll call one of them Nick, and the other one Anthony.  (Those names just came to me.)  Nick is an affable person, he just wants to be able to follow all of my output, as I put it out.  He needs are a list of the dozen-or-so public contact points where I present myself.  That’d be my name, the six or seven blogs I write, my Twitter feed, my Posterous, my YouTube account, and Viddler account, and so forth.  He gets that nugget of data off of markpesce.com/markpesce.plx – it’s basically a nice little bit of JSON (I don’t care for XML, but you can microformat to your heart’s content) that he can drop directly into Plexus, where it will go into the Plex.  As the Plex digests it, this nugget instances the necessary Listeners.  Now, whenever I say anything – anywhere – Nick knows about it.  Which makes Nick happy.

Anthony is a different story.  He’s a l33t user, and doesn’t want to be forced to rub shoulders with the hoi polloi at any of the normal social web services.  Instead, Anthony wants to get a personally-addressed email from me every time I have something to share.  Apparently he’s developed some excellent email filtering and management tools, so that even if I get quite chatty, it won’t clog up his inbox.  So, he negotiates with me – Plexus-to-Plexus – and goes into my Plex as a contact, so that when I instance my Sharers, one is specifically set up to send him anything I share via SMTP.  He doesn’t have to do anything to his Plexus, because he’s not using his Plexus to listen to me.

Use cases are all the more meaningful when they’re backed up by working code.  Hence, I went back to the code mines last weekend – with a spring in my step and a song in my heart – and created a very, very embryonic version of Plexus.  In just a little over two days, I created Sharer modules for Twitter, Posterous, Tumblr and SMTP, and Listener modules for Twitter and RSS.  I reckoned that would be sufficient for the purposes of a demonstration – though if I’d had more time I could easily have wired in a few hundred other web social services.

[ To see the demo, go here. ]

There you go.  That’s Plexus.  The project is open source – after all, why would you trust a social network when you can’t inspect the code?

III:  How Not To Be Seen

Plexus is grass-roots, bottom-up, and radically decentralized.  That means the big boys will probably try to ignore it.  Social media isn’t about the people, after all.  It’s about humungous accumulations of capital going hand-in-hand with impossibly large collections of data, and, somewhere in the background, all the spooks, reading the paper trail.  Social media is an instrument of control, the latest and the greatest.  Sit still, read your feed, and comply.

But what if we refuse to comply?  Is that even an option?  Is it possible to be disconnected and influential?  That’s the Faustian bargain being offered to us: join with the collective and you will be heard.  And managed.  And herded.  Or suit yourself, and weep and gnash your teeth in the outer darkness.  But in that Interzone, outside the smooth functioning of power, what happens when we connect there?

Reflect back on March of 2000.  Napster, the centralized filesharing network, had recently be shut down by court order.  A different crew created a decentralized filesharing tool, known as Gnutella, releasing both the tool and the source code to the world on March 14th.  When AOL/TimeWarner – parent company of the folks who wrote Gnutella – found out about and put a stop to the source code release, it was too late.  It couldn’t be recalled.  The bomb couldn’t be un-invented.  The music industry is more authentic than it was a decade ago, more open to innovation, to outsiders, to diversity and heterogenetity.  All because a few hackers decided to change the way people share their music.

History never repeats, but it does rhyme.  We share everything now; we worry that we overshare.  Now it’s time to take our sharing to the next level.  We need a social2.0, something that reflects what we’ve learned in the past half-dozen years.  That’s not just a slew of new services.  That’s an attitude change.  Consider: the wiki was invented in 1995.  It’s Precambrian web tech.  But we didn’t start using wikis until after 2001, when Wikipedia began to take off.  Why?  It took us a while – and a lot of interactions – to understand how to use the tools on offer.  Social technology is uniquely potent – so much so that we’ll be learning its strengths and weakness for a decade or more.  The time has come to step out, seize the means of communication, and make them our own.

I reckon you can now understand why Python was such an obvious choice for Plexus.  In no other language, with no other community, is the idea of sharing so much at the core.  There is a Python module or code sample to do nearly every task under the sun, precisely because sharing is a core ethic of the Python community.  Python is the language of the Web because it lends itself to the same sharing that the Web fosters.  Python is the language of Plexus because Plexus needs to inherit all of Python’s best qualities, needs to be straightforward and open and flexible and extensible and easily shared.  I need to be able to drop a Plexus module into an email and know, at the other end, that it will just work.  ‘Take this,’ I’ll say, ‘and feed it to your Plexus.’  You’ll do that, and suddenly you’ll find that we have a secure, obscure and nearly invisible means of sharing – a darknet, how not to be seen – that can be as private and personal or open and public as we agree it should be.  And you can turn around, think up something else, and mail that to me, or to someone else, or to the world.

The social web must be a social project, an opportunity to embody exactly what we’re trying to create as we are creating it.  It’s the ultimate dogfooding.  Success requires a willing surrender that rejoices in cooperation.

So here it is.  This is the best I can do.  It may be the best that I will ever do.  I place it before you this morning, a humble offering, written in a language that I barely know, but which I’ve used to express my highest aspirations.  Plexus is naked, newborn, and needs help.  It will only benefit from your input, comments, recommendations, pointers and critiques.  It is an idea that can only grow and mature as it is shared.  That’s what this is all about.  It always has been.

The slides for this presentation can be found here.