tomboy web sync explained

26
Tomboy WebSync Explained 25 Oct 2009 foss.my 2009 Mohanaraj Gopala Krishnan [email protected]

Upload: mohanaraj-gopala-krishnan

Post on 13-Dec-2014

12.805 views

Category:

Technology


1 download

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

Page 1: Tomboy Web Sync Explained

Tomboy WebSync Explained25 Oct 2009 foss.my 2009

Mohanaraj Gopala [email protected]

Page 2: Tomboy Web Sync Explained

We take FOSS seriously in Malaysia

Page 3: Tomboy Web Sync Explained

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 ?

Page 4: Tomboy Web Sync Explained

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/

Page 5: Tomboy Web Sync Explained

Platform support

• Mac

• Windows

• Linux

• Android - alpha

• Maemo

Page 6: Tomboy Web Sync Explained
Page 7: Tomboy Web Sync Explained

Add-in ecosystem

• Extensive add-in collection

• Blogposting

• Latex

• Bugzilla

• Evolution

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

Page 8: Tomboy Web Sync Explained

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

Page 10: Tomboy Web Sync Explained

Synchronisation of notes

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

• WebDAV

• Tomboy WebSync

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

Page 11: Tomboy Web Sync Explained

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

Page 12: Tomboy Web Sync Explained

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

Page 13: Tomboy Web Sync Explained

Ubuntu One

• Canonicals cloud offering

• Notes - via Tomboy

• Files

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

• https://one.ubuntu.com/

Page 14: Tomboy Web Sync Explained

Snowy

• Python - Django based

• django-piston, django-revision

• Multi user

• Actively under development

• AGPL

Page 15: Tomboy Web Sync Explained

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

Page 16: Tomboy Web Sync Explained

(I hope its not fscked)DEMO

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

Page 17: Tomboy Web Sync Explained

Sync steps

• Introspection

• Authorisation

• Data synchronisation

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

Page 18: Tomboy Web Sync Explained

Introspection

Allows for the client to determine information about the server

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

Page 19: Tomboy Web Sync Explained

Introspectionhttp://tomboysync/api/1.0/

http://tomboysync/api/1.0/user

Page 20: Tomboy Web Sync Explained

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/

Page 21: Tomboy Web Sync Explained

Authorisation - OAuth

• Uses OAuth

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

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

Page 22: Tomboy Web Sync Explained

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)

Page 23: Tomboy Web Sync Explained

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/

Page 24: Tomboy Web Sync Explained

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

Page 25: Tomboy Web Sync Explained

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

Page 26: Tomboy Web Sync Explained

Summary