sygn networking system

Introduction: A Case Study

I’ve started a new project, but it was an accident. I swear. I was having a conversation with a friend and, well. Here’s the back story:

I was talking how I was frustrated that network service providers (like twitter and disqus,) were too interested in developing large customer bases and getting size-able deployments, that they didn’t dare propose a subscription service. At the same time, a subscription service that provided real benefit (particularly in the case of disqus) would represent real value, and I think the more services that attempt to provide valuable services there are, the less start-ups will see holding your data-hostage as their only viable business play, and that this would be better for the project of proliferating software freedom on the network.

And then he said, that he thought people were largely unwilling to pay for free software, and talked about how people complained about how desktop apps didn’t compare to their proprietary equivalents. Particularly for “creative software” like Inkscape, GIMP, Audacity, Cinelerra, in respect to software like Illustrator, Photoshop, ProTools, and FinalCut. And that this software was expected to both be “free-as-in-cost” and better than the proprietary offerings, and that the economics didn’t work out. Except that those “professional tools” sell for at least a thousand dollars a pop. And this doesn’t count axillary expenses like training and additional plug-ins that people often pay for tools like this.

And I said, well it seems, that the problem isn’t that the money doesn’t exist, or that people are unwilling to pay for that software. I bet, if you gathered photoshop license fees from two or three people you’d be able to pay the salary of at least one GIMP developer for a month. Or you’d be able to use that money for some hands-on training, or whatever it is you needed to make the switch. And the great thing about spending the 12 hundred dollars on the free software project is that it never expires, the software is always free to use, your knowledge will always be useful. The problem then is getting the people who need the support in touch with the people who are able to provide the support.

I didn’t (and don’t) think that the problem we’re trying to address–connecting people capable of providing services with people who need them–was the kind of thing that a RedHat style company was really capable of providing. RedHat’s model doesn’t scale down particularly well, and big support companies are generally primarily suited to serve other larger companies. So that kind of model was out.

Furthermore, I don’t think the Internet or Free Software would be well served by yet another niche-social networking site, designed to connect the people who needed connecting. Social networking is useful, but the entire concept of social networking as we know it today, is facilitate communication between people who already know each other. We need to connect people who don’t really know each other.

We talked about this for a while and, I then I started seeing flow charts. The rest is, or may soon be, history….

The Components of the Sygn System

What came to me was the basic layout for a federated system. Basically:

  • people publish a structured data file. We’ll call this a profile. These profiles are human and machine readable (in a plain text data serialization format called “YAML”).

  • People then cryptographically sign the profile. This ensures (to some extent) the authenticity of the profile and integrity of the profile.

  • Profile publishers upload this profile to their domains, or to public websites and have a public ally accessible profile.

  • Profile publishers then notify aggregating servers that they’ve published a new profile, and provide these servers with a location of their publicly accessible profiles.

  • Aggregating servers, process the data. In addition to the data contained in the profiles, they can also leverage information contained on public key servers, to use the ”web of trust” information to gather information about authenticity of profiles and relationships between profiles.

  • The administrators of these servers can filter all the received profiles as they see fit. Some servers might decide to only publish profiles relevant to the project or topic they address. Some servers might decide to publish profiles that have a certain level of trust. Some servers may choose to use the aggregation as a means of allowing only a few select people to update pages remotely, and “handpick” the profiles to provide to their audience.

  • Aggregating servers can present the profiles in whatever format they choose. I can imagine, CSV files that might be imported into Address book applications, or websites that look like facebook, and everything in between and beyond.

Final Thoughts

It struck me somewhat after the fact that while the solution I propose solves the problem I set out to address, Sygn is–potentially–so much more. Nevertheless, I’ve been trying to avoid the “it could change the world,” rhetoric, as I think the concrete example will help focus initial energy and attention.

Also, the name comes from Samuel R. Delany’s Stars in my Pocket like Grains of Sand, and is a perfectly fitting title for this project.

Further Reading

For more information, see the wiki page where all of the work and specification is happening, the post I made to the cyborg institute blog on the subject, and the post that Carlos made on the subject. I’ll be posting more details about this in the coming weeks, but I’d like to get feedback, of course. Also, feel free to edit/work on the wiki page if you want.

I look forward to working with you.

tycho garen 10 August 2009