Making Space

How to go about creating a space that facilitates learning? As we learned from Morningstar and Farmer, there is a danger of over-designing the space and often the users don’t end up using the space in the way the designer intended. So we shouldn’t over-design. But there should probably be some kind of structure, right? Or why create the space at all? – my brain

These are some of the thoughts that were going through my head as I set out to plan my final project. Throughout the semester a common focus of mine has been the lack of a space in my own field (Electrical & Computer Engineering) to facilitate making connections between the work that goes on in the department, both teaching and research, and the outside world.

I also became interested in many of the ideas Ivan Illich presented in chapter 6 of “Descooling Society“. Specifically, how would we go about creating a network to facilitate skill exchange and peer matching? Once we have a peer-to-peer network of learners, what role does an “elder” have, and how does one become an elder?

I began by looking at some exiting peer networks and online communities that I have had either direct or indirect involvement in to see how they addressed the questions of structure, but in the space itself, and any imposed structure between peers that imposes some sort of hierarchy, or the notion of an “elder”.

1 The Linux Kernel

It has been several decades since Linus Torvalds’ original announcement of his new operating system:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
   Newsgroups: comp.os.minix
   Subject: What would you like to see most in minix?
   Summary: small poll for my new operating system
   Date: 25 Aug 91 20:57:08 GMT
   Organization: University of Helsinki

    Hello everybody out there using minix -

    I'm doing a (free) operating system (just a hobby, won't be big and
    professional like gnu) for 386(486) AT clones.  This has been brewing
    since april, and is starting to get ready.  I'd like any feedback on 
    things people like/dislike in minix, as my OS resembles it somewhat
    (same physical layout of the file-system (due to practical reasons)
    among other things). 

since that time the Linux kernel project has grown to be the largest collaborative endeavor in the history of computing. According to one measure, there were 1,316 developers involved with the version 3.2 release, each contributing an average of 10,935 lines of code to the project. The clip found on the linxfoundation’s website summarizes how this tremendous feat is possible:

There is a fairly simple and effective hierarchy in place: individual developers submit patches to senior kernel developer who in turn review and sign off on patches before sending onward to Linus Torvalds for final approval. This is the most dictatorship-like model of any of the networks I looked at, but I think it makes a lot of sense. The stability and usefulness of the Linux kernel depends on all 15 million lines of code working well with one another, a more ad-hoc “allow everyone to contribute, fix errors later” method such as the one embodied by wikipedia probably wouldn’t be effective for this project. It’s worth noting that the rather strict structure doesn’t prevent people from maintaining and contributing to forks of the kernel other than the one maintained by Torvalds. In fact, up until recently, Google maintained its own fork of the kernel for it’s Android operating system.


The versioning control tool git was created by the Linux development community in response to changes in the relationship between the open source community and the company responsible for BitKeeper, the versioning control system used up until 20051. A versioning control system and git in particular, gives developers a powerful tool with which to track changes to software projects and facilitates collaboration by automating to the extent possible, the work-flow required to review changes made by contributors and merge them into one version. But to become a contributor, or find open source projects of interest, you need to know where to look. GitHub provides a hosting service for projects using the git revision control system as well as some social-networking features to help users connect with developers and projects that interest them. Users create profiles, much like they would on other social networking sites, but rather than posts about current gastronomic adventures, GitHub generates feeds of updates and changes made to various software projects.

There isn’t really a notion of a uniform social hierarchy, as everyone is the maintainer of their own project, and may act as contributor to any other project. Individual projects may be “trending” or “featured” depending on activity.


Still on the geek theme, stackoverflow is an invaluable resource to many software developers, novice or advanced. Organized into a question and answer format, anyone can post a question or an answer and the site provides tools to improve the quality of questions and up-vote helpful answers. There is a notion of currency, called “reputation”, that members earn through participating on the site. Gaining reputation can unlock certain privileges that are not available to all users. With enough reputation, individuals can be elevated to moderator status, a role I would associate with Illich’s notion of an “elder”.


Up until this point the sites I’ve surveyed have been what we would generally refer to “virtual” spaces. The communities and interactions exist primarily in cyberspace. Couchsurfing is a bit different. At its core it is a network of travelers who open their homes to other travelers to provide a uniquely personal and rewarding experience not available from hotels or other travel industry offerings. It is focused on helping people explore the world by connecting with other people in a particular geographic area, remote or local, so many of the interactions take place in the “real” world. However, a thriving virtual community is also an integral part of the couchsurfing experience in the form of discussion forums organized into groups of free formed topics ranging from geographic areas, to helping each other learn new languages, to everything in between.

One of the first questions asked by couch surfing skeptics is “is it safe”? There seems to be a common fear among those who do not couchsurf that most strangers are creeps who would sooner steal your wallet than let you stay for free on their couch. While most of those who join couchsurfing do so because they naturally have a more optimistic view of humanity, safety is a high priority and a clear set of community guidelines are published to help ensure everyone has a safe, enjoyable experience.

Most importantly though, is the system of references in place that enable members to rate the experience they had with other members. References themselves do not directly lead to any increased privileges in the community: members are free to use the information as they see fit. Some opt to only host or otherwise connect with people who have received a lot of positive references while others will accept hosts or guests with few or no references. I have never come across a profile with negative references. I suspect that this is not because there are no negative experiences (in fact I have heard of a couple from witnesses), but that people with negative references don’t last long in the community. While there are many people who would help those new members who do not have any references yet, I think few would choose to welcome someone who has violated the spirit of couchsurfing in some way.

Separate but related to the reference system is the vouching system. This is a more formalized approach to building trust networks and is a more integral part of the structure of the site in that being vouched for can grant certain privileges, namely, the ability to vouch for others. Unlike references, vouching is intended to ONLY apply to people who have met face-to-face, though the enforcement of that rule is left to the community itself.


The greatest challenge I have faced in the creation of a space for learning has been to identify which aspects of the previously mentioned successful virtual communities should be integrated, and how. At its core, the inspiration came from my understanding of the role english coffee houses played in the 17th and 18th century. While the idea of gathering around a particular beverage was not unknown at the time, the precursor to coffee was ale and along with the switch from a depressant to a stimulant also came a marked change in the intellectual culture surrounding these popular gather spots. People from all walks of life were able to mingle and share ideas and the space became an intellectual breeding ground separate, but connected with the universities of the time. I can only imagine that without any set curriculum the topics of discussion varied greatly with the interest of the participants and the local events of the time.

It goes without saying then (and yet, here I am, saying it), that topics must be defined and controlled by the members. But I don’t want to create yet another forum site.

Of the four networks defined by Illich to enable his vision of a deschooled society:

  • Reference Services to Educational Objects
  • Skill Exchanges
  • Peer-Matching
  • Reference Services to Educators-at-Large

I was most interested in building a Skill Exchange and Peer-Matching network. I feel that if I can create a space that is successful in that goal, the two “Reference Services” networks should follow organically, as it seems the primary challenge there is collecting the information, there are already well defined implementations of “reference services”.

On the face of it, implementing a skill exchange and peer-matching network is just a matter of defining a data structure that can associate a set of skills with a particular individual and then an algorithm that will match people who have mutual skill-learning interests. That’s the easy part. The challenge, which was brought up during the final presentation day, is that most people are probably not going to want to spend any amount of time entering individual skills and interests they have and those they want to learn. Ideally all a user would need to provide are links to existing blogging and micro-blogging feeds, in which case we would need an algorithm that would parse content that is already being created by each user to determine skill sets and interests. This is the challenge, and a complete lexicographic analysis is well beyond my current knowledge of algorithm design. What would be relatively straight forward is grabbing tags from existing structured feeds that provide that information. It would still depend on self-reporting, but ideally self-reporting that is already being done anyway.

The real challenge has been to figure out what more to do. What I have mentioned so far would be useful, but not particularly unique. In fact, couchsurfing already has a notion of “Learn, Teach, Share” built into the profiles, though the system doesn’t really facilitate searching for people based on that information. The more I have talked with Illich enthusiasts, the more it becomes clear that the real potential lies in creating more of a platform for exploring ideas, rather than just a repository of information. The last brainstorming session I had quickly turned from the details of setting up a skill exchange network to the much more difficult questions of

  • how is a unit of information stored?
  • who decides what a unit of information is?
  • how are individual units of information connected with one another?
  • how does a user effectively navigate a space of interconnected units of information?
  • how does a user track their personal path through a network of information nodes?
  • how does a user share their path through a network of information nodes?
  • who writes the information nodes?
  • should nodes have structural support for quizzes/practice exercises to help learners decide if they have mastered a particular topic well enough to move on to another?

And then implementation details involved with all of those are of course somewhat overwhelming at this point.

I plan to have another brainstorming session tonight, with a different group of hackers and see were these ideas lead. In the mean time, I will continue to get a working implementation of a basic skill-matching network up at, just as soon as I’m finished posting final grades.