Skip to content


Spectrum Impossible

Yesterday C-Net ran a good and detailed piece called The coming wireless spectrum apocalypse and how it hits you. It covers the current state of the wireless phone industry and how the AT&T/Verizon duopoly are using their muscle to keep everyone else out of the industry.

While the piece does a good job explaining industry fighting to us mere mortals it still gets captured by the industry’s own view of competition. As a result it never asks the the two really interesting questions about the wireless industry, which are:

1) If spectrum is a finite resource you absolutely need to run a wireless network, then why don’t we treat wireless phones like a utility by building one network and requiring that everyone get fair access to it? We have done this with the wired telephone network for more than a generation.

2) How sure are we that selling exclusive access to wireless spectrum, which is a practice designed in the era of vacuum tube radios, is still the best way to use our wireless resources now that our “radios” are smart phones? WiFi devices use completely unregulated spectrum and are simply smart enough to route around each other when there is interference.

The White Spaces Coalition is a group of tech companies testing devices that use the buffer, or white space, between broadcast TV channels to create a super high speed wireless network. If using smart devices on scraps of spectrum gets us long distance WiFi, what could we build with the spectrum we currently lease to cell phone companies? Or to radio and TV broadcasters for that matter.

The people who make decisions about whether wireless networks should be open to access by competing companies and who choose what rules should govern our use of spectrum in this country all work in one place, the FCC. Something to keep in mind whenever people talk about wireless competition.

A moment of culture

We’re living in a very transitional time for media, and some moments make that very clear. I saw a concert last night that brought together a number of assumptions about how communication and performance work that are all changing so rapidly that a few years from now it may be hard to tell exactly when they changed. So, for the benefit of future sociologists, I will document them here.

The particular concert was Joanna Newsom playing at Carnegie Hall. It was the end of her tour and a packed crowd that loved the show.

Carnegie hall, like all of the performance venues I have been to recently, felt the need to send someone out before the show two make two important announcements. First, everyone should turn off their cell phones so that there would be no distracting ringing during the performance. People either complied or we were lucky, because the audience was quiet throughout the show. Second, we were told that all photography, and audio or video recording was prohibited.

This prohibition on recording is always interesting to me because, again like all of the performance venues I have been to recently, Carnegie Hall was not prohibiting any recording of the show, just any recording done by members of the audience. The hall itself is lined with microphones strategically placed to best capture the performance, even when the acoustics of the room requires hanging microphones floating out in the air at very what look like very awkward and precarious angles. Naturally, recording happened anyway.

Beyond the announcement at the beginning, and the ushers who showed us all to our seats, the only other communication from the venue was through the Playbill, printed on paper and used mainly to advertise other programs at the Hall, commercial products, and to list the donors to the Hall for that year. The bit about the actual performance that night was a single sheet inserted into the exact middle of the booklet, where it could be most easily assembled and stapled together. The text of that insert was clearly written by Joanna’s record label, badly. It is attached for your reference. In particular, notice the discussion of how surprising it is that internet distribution didn’t cut into the actual sales of her recent album. they write:

“The briskness of sales was even more surprising given that a prominent music website had unwittingly leaked the album in advance of the date.”

This was particularly amusing to me given that Joanna is currently dating Andy Samberg, one of viral video’s biggest stars. Presumably she has had a first hand look at the positive career impact of the internet.

The final bit I’ll talk about came at the very end of the show. The set was finished, Joanna and the band received a standing ovation, and left the stage. And came back. Of course they came back. Encores are a fixed part of performances today, as are, almost, the standing ovations that precede them. There’s no reason for that. The crowd was enthusiastic but equally mild mannered and not likely to start a riot for want of that last song. It is just how things are done.

These once exceptional events have become part of our everyday expectations. In the future, as all these expectations change, we can look back on the records that we make now and remember how things were different.

Happy holidays everyone.

Freedom Box: Look and Feel

Since the beginning of this Freedom Box series back in March, I’ve talked a lot about infrastructure and very little about what the interface is actually going to look like. I saved this portion for last because Interfaces can be very complicated and hard to get right but also because this is one of the easiest parts of the problem to solve, if we build it right.

All existing social network tools use interfaces built from the same collection of elements. It is well-worn territory and so we have a good list of what elements our interface will need. Even better for us, all of the existing interfaces are built using web tools (html and css) that allow users to choose their own arrangements for those elements. We don’t have to build the perfect interface, we just need to let users build their own.

Building Blocks of a F2F interface

Most of the functionality we expect from “Social network” tools is provided by a series of older communication bundled together. These older tools are still visible in the social network’s interface, as an Instant messenger-like contact list on one side, an email-like message window in the middle, or an RSS-like activity feed. I’ve highlighted a couple of the relevant sections from a twitter and facebook screenshot below.

Highlighted functional components of Twitter UI

Highlighted functional elements of Facebook's UI

For giant “social network” services like facebook, the design process is simple, just select the traditional communication elements you want to build your service around and arrange them on the page. Our job is slightly more complicated because we are building a system where individuals have much more control over their tools than in the case of centralized commercial services.

Some people are going to run email, IM, and photo sharing services and have an interface that looks a lot like Facebook or Google Buzz, Others might only want activity streams and an interface more like Twitter’s, with any number of combinations in between and some new kinds of services that we haven’t even thought of yet, let alone come up with interfaces for. Thankfully, html and css are well suited to this task.

For an example of what this might look like, check out the NatSkin style browser and play around with the options. All of the major elements of the page can be displayed or hidden, their position can be placed around the screen, and all of the decorative elements can be re-styled on the fly, and it is all done with css.

This is something we can build if we just keep in mind that we’re not design a single interface, or a single social network, we’re designing a flexible framework with some sensible defaults. Now, let’s see what we can make.

    Posts in this series

    Part 1 – The Idea: Freedom Box

    Part 2 – Finding each other: Dynamic DNS Facebook

    Part 3 – Talking amongst ourselves: Friend-to-Friend Network

    Part 4 – Putting the pieces together: Freedom Box schematic

    Part 5 – Making it easy: Look and Feel

Guruplug Server

My new Guruplug, the second generation of that plug computer Eben and I keep talking about, just made it to me.

Here are the two of them side by side. The guru plug is the smaller black one.

The Guruplug is an upgrade from the original Sheevaplug development kit in pretty much all respects. It has a more powerful processor, a much expanded array of ports, making it more capable, and is smaller in all dimensions.

The only thing that new Guruplug owners might miss from the older model is the full size SD card slot on the side. Given that this has been replaced by: 1) a microsd slot, 2) an additional USB port, which could easily take a SD card inside of a SB adapter, and 3) an eSATA (Gb/s) cable for connecting external hard drives at their native speeds, I don’t think many people will actually miss the old SD slot.

Now Martin just needs to get his so he can teach the Debian installer about the new hardware, and we’ll be able to put it through some paces.

I’ll be spending the meantime reading up on how to shape local network traffic so I can replace my router with my new Guruplug.

Freedom Box Schematic

I had planned to spend this post performing an impossible task; I was going to tell you how to put together the freedom box out of existing parts. As recent discussions have shown, there are as many ways of building these tools as there are people who want to build them. Instead of trying to find the one magic combination of parts and listing them out, I’m going to talk a little more abstractly about the very basic features for a social networking tool and how we might build a system that embraces the multiplicity of different social communication tools people are building.

Connections in Context

Social networks, whether online or off, are made up of person-to-person connections. We each belong to many of these networks, and every one has it’s own shared history and set of expectations about what information is appropriate to communicate and with whom. As social animals we navigate these social contexts in all of our offline communications. We select which facts about a romantic date we should share with family members, or drinking buddies, or work colleagues, with a practiced familiarity born from years of inter-personal interaction.

That same easy information management is what we need for our digital communication tools. Existing tools do this poorly, if at all, because they tack information management on after the fact. We need to realize that social contexts are what make a "social network" different from any other computer network and start building an awareness of context into our communication tools from the ground up.

These then are your minimum requirements for a social network: 1) the ability to make person-to-person connections and 2) the ability to manage what information you communicate based on the social context of the personal connection.

Building for Flexibility

Once people can connect with each other and manage what information they communicate, they’re going to need some actual communication tools. Social networks are not communication tools, they enable communication in much the same way that roads enable travel by car but don’t actually do the driving for you.

Online, communication tools can take many forms. IM, Email, Wave, bittorrent, photo sharing, wikis, blogs, rss, these are all possible ways that people will want to communicate with their friends and family. Ideally our social networking tools will be flexible enough to allow any of these kinds of communications, or whatever new ones we come up with down the road.

If I could get one message out to the various groups making distributed social networking systems it would be this: remember that the communication tools you are building around will change. If your communication tools and your social network are too closely intertwined, you run the risk of losing both when people decide to switch to a cooler communications tool or when they want to join their friend’s social network rather than get their friends to switch to your tools.

One way to get network flexibility, as I mentioned in my last post, is to separate your social networking layer and your communication tools entirely. Make social network connections more like an ssh connection or a VPN with built in information management and let people run whatever they want over the network. Maybe instead you want to build a central communication tool with a flexible plug-in architecture. Perhaps you want to build a protocol for different communication tools to talk to each other and let the everyone else build to your specifications.

It is easy to think, when building a whole system for social networking, that your tools are the only tools people will use. It is important to remember that there are lots of people building these systems, using lots of architectures and writing in lots of languages. The more flexible your system, the better able it will be to benefit from the work going into these other tools by incorporating or cooperating with those tools rather than competing with them for a fragmented user base.

Network Effects

Fragmented user bases are a particular problem for social networks because social networks only work when you and your friends are in the same one. Currently ~0% of users are on a distributed social network. 100% should be, but getting from here to that Kantian paradise will be difficult. If you are going to try, you need a plan.

I met with the Disapora developers last week, before they had quite hit their summer fund raising goal, and their plan sounds very sensible. The idea is that your distributed social network system starts our for most people as a client for their existing social communication tools, whether those are social networks like Facebook or photo sharing sites like flickr. You manage everything as if your friends were on Diaspora with you but you can also continue communicating with your contacts who are using the old tools, sending status updates through Facebook and posting new pictures through flickr. You never have to choose whether to abandon your existing social connections in order to change your communication tools.

Once some of your friends do start using the new system, things change. When your two machines notice that they are both able to run a distributed social network, they stop sending your communications through the old centralized services and start communicating over direct encrypted connections. As more of your friends switch over, more of your communications become private.

It is a nice gradualist strategy that neatly inverts the network effect problem. We could all start running our own network and still talk to people on Facebook freely, but every person who moves to our network hides more communication from Facebook by joining. Facebook has no place in our network of trusted friends because they are neither trustworthy nor our friends. When we have tools for direct private communication, Facebook drop out of the picture.

However you feel about this particular plan, as I have loosely paraphrased it, every distributed network builder should have something like it at the core of their system design. We’ve had the capability for private darknets for a long time now and people have not flocked to them. We need tools that people will actually move to if this is going to work, and that requires a plan.

Help Your Friends

Facebook grew at the expense of it’s users privacy. If we build our system wisely, we can build a tool that not just salvages, but actively promotes the privacy of its users. We should do this for our own sake, but we should also do this for our friends. That’s the difference between our tools and theirs: we’re building for people we care about, not people we need to exploit in order to make a profit. That difference should be clear in every part of our system.

    Posts in this series

    Part 1 – The Idea: Freedom Box

    Part 2 – Finding each other: Dynamic DNS Facebook

    Part 3 – Talking amongst ourselves: Friend-to-Friend Network

    Part 4 – Putting the pieces together: Freedom Box schematic

    Part 5 – Making it easy: Look and Feel