Upload
mohanaraj-gopala-krishnan
View
12.806
Download
1
Embed Size (px)
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.
Citation preview
Tomboy WebSync Explained25 Oct 2009 foss.my 2009
Mohanaraj Gopala [email protected]
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
Getting Tomboy 1.0
• Mac, Windows, Src -http://projects.gnome.org/tomboy/download.html
• Ubuntu - https://launchpad.net/~tomboy-packagers/+archive/stable
• SUSE (one click)- data:text/x-suse-ymu,http://armstrong-clan.net/dump/tomboy.ymp
• Fedora, Centos, Slackware, etc ? - Build instructions - http://live.gnome.org/Tomboy/Developers
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