Tomboy WebSync Explained
       25 Oct 2009 foss.my 2009
       Mohanaraj Gopala Krishnan
         mohangk@gmail.com
We take FOSS
seriously in Malaysia
Questions for you?
•   Use Tomboy or any other application for note taking ?

    •   More then one machine ?

    •   Kee...
Not your grandma’s notepad
•   Actively developed - 5 years , released 1.0 on
    21st of Sept 2009

•   Wiki - links

•  ...
Platform support

•   Mac

•   Windows

•   Linux

•   Android - alpha

•   Maemo
Add-in ecosystem
•   Extensive add-in
    collection

    •   Blogposting

    •   Latex

    •   Bugzilla

    •   Evolut...
Add-in development
•   Built on Mono.Addins
    framework

•   Different type of Add-Ins

    •   Note add-in

    •   App...
Getting Tomboy 1.0
•   Mac, Windows, Src -http://
    projects.gnome.org/tomboy/download.html


•   Ubuntu - https://launc...
Synchronisation of notes


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

•   WebDAV

•   Tomboy WebSync


...
Tomboy WebSync
•   Communicates over
    HTTP to keep the
    server and the Tomboy
    client in sync

•   Browser sends ...
Tomboy WebSync
•   Client server HTTP based protocol
    with JSON representation for data and
    metadata


•   Benefits ...
Ubuntu One

•   Canonicals cloud
    offering

    •   Notes - via Tomboy

    •   Files


•   Free - up to 2GB, 50GB
    ...
Snowy
•   Python - Django based

    •   django-piston, django-
        revision

    •   Multi user

    •   Actively und...
Getting Snowy
•   URL  -  http://
    live.gnome.org/Snowy


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


•   Install de...
DEMO
(I hope its not fscked)   http://icanhascheezburger.com/2007/03/12/is-it-safe/
Sync steps

•   Introspection

•   Authorisation

•   Data
    synchronisation


                      http://www.flickr.co...
Introspection
Allows for the
client to determine
information about
the server




                      http://icanhaschee...
Introspection
http://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



                     ht...
Authorisation - OAuth

•   Uses OAuth

•   Allows secure
    connection
    without needing to
    store usernames
    and...
Synchronisation
•   Subversion - like

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

•   Local copy o...
Handling conflicts
•   Happens when there
    are local changes to a
    note that has also
    been changed on the
    ser...
AGPL - Why bother?
"It's stupidity. It's worse
than stupidity: it's a
marketing hype campaign,"

 "It's just         as ba...
AGPL - Why bother?
• GPL -modify, and
  study,
         freedom to

  redistribute source code
  - only to recipients of
 ...
Summary
Tomboy Web Sync Explained
Upcoming SlideShare
Loading in …5
×

Tomboy Web Sync Explained

13,938 views
13,638 views

Published on

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.

Published in: Technology, Design
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
13,938
On SlideShare
0
From Embeds
0
Number of Embeds
338
Actions
Shares
0
Downloads
39
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Tomboy Web Sync Explained

  1. 1. Tomboy WebSync Explained 25 Oct 2009 foss.my 2009 Mohanaraj Gopala Krishnan mohangk@gmail.com
  2. 2. We take FOSS seriously in Malaysia
  3. 3. 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 ?
  4. 4. 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/
  5. 5. Platform support • Mac • Windows • Linux • Android - alpha • Maemo
  6. 6. Add-in ecosystem • Extensive add-in collection • Blogposting • Latex • Bugzilla • Evolution • Many more - http://live.gnome.org/ Tomboy/PluginList
  7. 7. 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
  8. 8. 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
  9. 9. Synchronisation of notes • Local file sync + external transfer (gvfs, sshfs etc) • WebDAV • Tomboy WebSync http://www.flickr.com/photos/eugene/186980377/
  10. 10. 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
  11. 11. 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
  12. 12. Ubuntu One • Canonicals cloud offering • Notes - via Tomboy • Files • Free - up to 2GB, 50GB USD10 a month • https://one.ubuntu.com/
  13. 13. Snowy • Python - Django based • django-piston, django- revision • Multi user • Actively under development • AGPL
  14. 14. 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
  15. 15. DEMO (I hope its not fscked) http://icanhascheezburger.com/2007/03/12/is-it-safe/
  16. 16. Sync steps • Introspection • Authorisation • Data synchronisation http://www.flickr.com/photos/mar00ned/188634413/
  17. 17. Introspection Allows for the client to determine information about the server http://icanhascheezburger.com/2009/01/04/funny-pictures-is-where-da-rubs-gok/
  18. 18. Introspection http://tomboysync/api/1.0/ http://tomboysync/api/1.0/user
  19. 19. 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/
  20. 20. Authorisation - OAuth • Uses OAuth • Allows secure connection without needing to store usernames and password - stores access token http://forums.vwvortex.com/zerothread?id=4468563
  21. 21. 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)
  22. 22. 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/
  23. 23. 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/ http://geekz.co.uk/lovesraymond/archive/stallmans-tarball 2008/sep/29/cloud.computing.richard.stallman
  24. 24. AGPL - Why bother? • GPL -modify, and study, freedom to redistribute source code - only to recipients of the program • AGPLof these freedoms scope - broadens the to those who use the application over the internet
  25. 25. Summary

×