tomboy web sync explained

Post on 13-Dec-2014

12.805 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

A talk that I gave at foss.my 2009 about the new web based sync available in Tomboy 1.0 and the accompanying sync server component Snowy.

TRANSCRIPT

Tomboy WebSync Explained25 Oct 2009 foss.my 2009

Mohanaraj Gopala Krishnanmohangk@gmail.com

We take FOSS seriously in Malaysia

Questions for you?

• Use Tomboy or any other application for note taking ?

• More then one machine ?

• Keep notes in sync ?

• Built a GUI app that speaks to web service ?

• Does OAuth authentication ?

• Synchronises data into the cloud ?

• Use some for of hosted application ? (webmail, fileshare, notes/todo, pics etc. ?)

• Concern about/Considered your freedoms?

• Data portability ?

Not your grandma’s notepad

• Actively developed - 5 years , released 1.0 on 21st of Sept 2009

• Wiki - links

• Notebooks - group notes

• Search

• Background save

• Formatting

• Add-in system

• Really cool developers - sandy, brad etc

• Active community - IRC, mailing list

• Built on Mono

• Ports : Conboy (https://garage.maemo.org/projects/conboy/), Gnote (http://live.gnome.org/Gnote), Tomdroid (https://launchpad.net/tomdroid)

http://www.flickr.com/photos/sparktography/64946647/

Platform support

• Mac

• Windows

• Linux

• Android - alpha

• Maemo

Add-in ecosystem

• Extensive add-in collection

• Blogposting

• Latex

• Bugzilla

• Evolution

• Many more - http://live.gnome.org/Tomboy/PluginList

Add-in development

• Built on Mono.Addins framework

• Different type of Add-Ins

• Note add-in

• Application add-in

• Sync add-in

http://www.halloweencostumeideas.com/adult-plug-socket-costume.html

Synchronisation of notes

• Local file sync + external transfer (gvfs, sshfs etc)

• WebDAV

• Tomboy WebSync

http://www.flickr.com/photos/eugene/186980377/

Tomboy WebSync• Communicates over

HTTP to keep the server and the Tomboy client in sync

• Browser sends and receives data from websites

• Tomboy sends and receives data from Snowy - JSON

Tomboy WebSync

• Client server HTTP based protocol with JSON representation for data and metadata

• Benefits from HTTP- compression, caching, authentication etc.

• Client implemented as add-in in Tomboy 1.0

• Server implementations

• Snowy

• Midgard CMS

• Ubuntu ONE

Ubuntu One

• Canonicals cloud offering

• Notes - via Tomboy

• Files

• Free - up to 2GB, 50GB USD10 a month

• https://one.ubuntu.com/

Snowy

• Python - Django based

• django-piston, django-revision

• Multi user

• Actively under development

• AGPL

Getting Snowy

• URL - http://live.gnome.org/Snowy

• git clone git://git.gnome.org/snowy

• Install dependencies, python related, django

• Run using django server or install on apache via WSGI - http://live.gnome.org/Snowy/WSGI

(I hope its not fscked)DEMO

http://icanhascheezburger.com/2007/03/12/is-it-safe/

Sync steps

• Introspection

• Authorisation

• Data synchronisation

http://www.flickr.com/photos/mar00ned/188634413/

Introspection

Allows for the client to determine information about the server

http://icanhascheezburger.com/2009/01/04/funny-pictures-is-where-da-rubs-gok/

Introspectionhttp://tomboysync/api/1.0/

http://tomboysync/api/1.0/user

Authorisation

Allows for the server to ensure that the client is authorised to access the data

http://icanhascheezburger.com/2009/10/24/funny-pictures-you-can-trust-me/

Authorisation - OAuth

• Uses OAuth

• Allows secure connection without needing to store usernames and password - stores access token

http://forums.vwvortex.com/zerothread?id=4468563

Synchronisation

• Subversion - like

• There is a running version number for the notes on the server

• Local copy of notes are like working directory

• When sync starts Tomboy requests changes since the latest version in its local repository

• Download changes - apply against local copy (svn up)

• Uploads local changes (svn commit)

Handling conflicts

• Happens when there are local changes to a note that has also been changed on the server or a different client

• Determined client side

• Overwrite or rename http://icanhascheezburger.com/2007/08/21/mow-mow-mow-me-mow-mow/

AGPL - Why bother?"It's stupidity. It's worse than stupidity: it's a marketing hype campaign,"

"It's just as bad as using a proprietary program. .... If you use a proprietary program or somebody else's web server,

you're defenseless..."

RMS - http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman

http://geekz.co.uk/lovesraymond/archive/stallmans-tarball

AGPL - Why bother?

• GPL - freedom to study, modify, and redistribute source code - only to recipients of the program

• AGPL - broadens the scope of these freedoms to those who use the application over the internet

Summary

top related