+ All Categories
Home > Technology > Tomboy Web Sync Explained

Tomboy Web Sync Explained

Date post: 13-Dec-2014
Category:
Upload: mohanaraj-gopala-krishnan
View: 12,795 times
Download: 1 times
Share this document with a friend
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.
26
Tomboy WebSync Explained 25 Oct 2009 foss.my 2009 Mohanaraj Gopala Krishnan [email protected]
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


Recommended