Smart notebooks link virtual teams across the net

connecting people
Image by opensource.com
submit to reddit
 
(5 votes)

Do we really need yet another collaboration tool? Miles Fidelman, a networking expert whose experience seems to span time, thinks so. He's worked with Bolt, Beranek, and Newman on military command and control systems, built a small hosting company, and started a community networking non-profit called the Center for Civic Networking. 

Miles recently started an open source software Kickstarter project called Smart Notebooks, based on earlier work he did developing mission planning and coordination systems for the military. He's trying to create tools that reflect the way people naturally work together, particularly large groups struggling with poor network connectivity.

His "smart notebooks" are shared documents that stay synchronized across the net. Each person has their own copy of a document that will communicate with other people's documents using peer-to-peer protocol. First, you edit your copy, then everyone else sees the change on their copy. Unlike email attachments, there's no need to search for the most recent copy of a document. And unlike a Google Doc, everyone has their own copy—allowing you to make private notes and work offline. All of this using standard web browsers, email, and RSS; no more installing new software and configuring accounts for services running in the cloud.

Motivation for creating this system came from observations Miles made in venues as small as a church board of directors and as large as an Air Force operations center. Anytime people come together, they bring with them copies of documents: agendas, minutes, and presentation slides to name a few. As they exchange information, discuss issues, and make decisions, each person receives more documents and makes edits to them. Smart notebooks are designed to mimic this process across the Internet (and avoid a lot of manual copying in the process).

Miles draws models from several sources, including one of his favorite tools that died out—Hypercard (for groups, running in a browser). He also looks to TiddlyWiki (a personal wiki implemented as a single local file, opened and edited in a browser) coupled with a peer-to-peer, replicated messaging model inspired by USENET News' NNTP protocol. Plus, the latest HTML5 standards and the newest generation of web browsers are helping to make it all possible.

The goal for smart notebooks is a system that allows people to collaborate in peer-to-peer fashion with minimal reliance on a central system hosted by a company. Users will simply create a document in their browser (like editing a wiki page), then send copies via email (everyone stores their own copy locally as a file or in their browser's HTML5 Web Storage). Changes are then pushed across the net and notifications show up as an RSS feed. Finally, when a user opens their local copy, it automatically pulls in any changes. 

Miles is particularly looking for a couple of larger sponsors—folks who are organizing an event, a conference, a crowdsourcing project, an issue campaign, or a flash mob—who want a better coordination tool and can serve as a test case.

""
Creative Commons License

8 Comments

Kit Plummer's picture

A couple of thoughts:

While not decentralized, I'm doing pretty much this same thing with a combination of Evernote, DropBox, and GoogleDocs. I do appreciate the P2P objective. It's a hard problem. I think http://diasporaproject.org is working hard on it, from a social (facebook replacement) aspect. Perhaps there's something there to piggyback on.

One of the key things I'm looking for in these kinds of "collab" tools is device independence, meaning I can access the data from anywhere (desktop, browser, and mobile). All the above provide some level of support for each.

One thing I believe is missing is a notification apparatus that is _more_ passive (chat, IM, XMPP, SMS, etc.) that specifically doesn't require me to log in to get any notifications. RSS is done, in the sense that it isn't moving forward. I still use Google Reader to get my finger on the pulse of a few different areas, but it is far from a good notification channel.

mfidelman's picture
Open Minded

Hi Kit,

Funny thing, this is EXACTLY what I'm trying to do with smart notebooks. The goal is that it's the documents that subscribe to and receive update streams - keeping themselves synchronized as connectivity allows. Open a document and it's always relatively up-to-date. Notifications will be available as RSS/Atom streams, but are purely optional.

Cheers,

Miles

debbryant's picture
Open Minded

Hi Miles, I've been following your your project postings for a couple of weeks now and wonder if there isn't another existing project to build on so you're not starting from scratch.
Like Kit, I also use a combination of DropBox and Google docs etc. but lately have started using TeamBox to pull everything together for project collaboration - TeamBox is open source so it can be deployed independent of the hosted service they also provide (for folks like me that don't want to host their own platform) - and handily integrates Drop Box and Google Docs (and GitHub and other accounts).
Also runs in desktop browser and mobile so nails that issue for me too.
Document management esp. version control remains challenging in any collaborative environment.

Deb Bryant

CustomDesigned's picture
Open Minded

There is a big difference between an open central repository like teambox, and a truly decentralized system. A decentralized system has rules, but no rulers. The order emerges from the independent actions of the members - like a flock of birds or a free market economy. This is hard for people to wrap their head around when centralized human government is so popular (vs http://en.wikipedia.org/wiki/Anarcho-capitalism).

It is nice that you could set up your own teambox like server - but even better when there is no server at all.

For another political analogy, I find that many collaborative applications benefit from a minimal central server - that provides only a directory service of some kind. Like a SIP registry - lets you find peers, but all the work is done peer to peer. This would be a minarchy (minimal rulers) - http://en.wikipedia.org/wiki/Minarchy .

In general, fully centralized approaches don't scale and become progressively less efficient with growth (socialism). But consider google. They built a decentralized application (with many, many servers at many locations) under central management. This is like local government with a federal head (the US). http://en.wikipedia.org/wiki/Federalism

mfidelman's picture
Open Minded

Hi Deb, Well there's lots of stuff to build on, and I am (notably protocol software and JavaScript libraries), but I'm really approach a very different problem than DropBox (synchronizes collections of documents), or Google (shared copy of a document). I'm going after:
- everyone has their own copy of a document
- edits apply directly, with a measure of configuration control (like editing a wiki and maintaining synchronized copies)
- no central server required
- n

debbryant's picture
Open Minded

Thanks Miles, appreciate your comments. I'm always looking at new open source projects through two filters; 1) community for long-term sustainability and 2) adoption. The later I have tortured through by adopting collaborative tools, only to see them abandoned as open source, or tossed out because not enough people in the virtual team were actually using the tool, so we'd switch. 95% of the work I do is done virtually, so these kinds of tools are really important to me.
I would love to see an effective way to deal with docs as you've proposed...and will volunteer to come kick the tires when you're ready.

Deb Bryant

CustomDesigned's picture
Open Minded

Miles, one of the functions of a central server is authentication. How does your smart notebook recognize team members, and confine updates to that group? The article mentions email. Does it simply email changes to a list of group members? This won't scale to larger groups (maybe not a problem - since the human interaction doesn't scale to larger groups either).

mfidelman's picture
Open Minded

Current plan is to use a PKI based approach for identification and encryption, plus a separate key per document. We'll probably use LDAP, with replicated servers, for an initial directory server and public key distribution, then move to something like MIT's Touchstone server that supports X.509, OpenID, and Kerberos (and a few others).

A document, and it's document-specific key will initially be distributed, by its author by email - as well as any other channel he/she desires (put it on the web, drop it in a chat session) - it's just a file.

Updates will take the form of Atom elements - which can be distributed in a variety of ways - email, Atom, as files, etc. Initially we're starting to build on eXist (open source XML database that provides AtomPub and Atom interfaces), with replication to avoid a single server. The JavaScript code that creates/distributes an initial document will talk to the server to create a feed and set up a key for it. Down the road we'll provide a distributed-hash-table based distribution mechanism that links documents directly to each other.