SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
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 ?

    •   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
DEMO
(I hope its not fscked)   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/
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



                     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/    http://geekz.co.uk/lovesraymond/archive/stallmans-tarball
2008/sep/29/cloud.computing.richard.stallman
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
Summary

Contenu connexe

Tendances

Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and morepanagenda
 
IBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 EditionIBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 Editionpanagenda
 
Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile partsFrancesco Fullone
 
browser presentation
browser presentationbrowser presentation
browser presentationashanrajpar
 
Transform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRT
Transform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRTTransform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRT
Transform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRTIwan Tahari
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.brucelawson
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Polandbrucelawson
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-airbrucelawson
 
WordCamp Atlanta- Shared Hosting and WordPress
WordCamp Atlanta- Shared Hosting and WordPressWordCamp Atlanta- Shared Hosting and WordPress
WordCamp Atlanta- Shared Hosting and WordPressAl Davis
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for DevelopersJohn Coggeshall
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsersjeresig
 
Vagrant - Team Development made easy
Vagrant - Team Development made easyVagrant - Team Development made easy
Vagrant - Team Development made easyMarco Silva
 
Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)Andrea Delfino
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingbrucelawson
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSocketsRoland M
 
The State of the Social Desktop 2009
The State of the Social Desktop 2009The State of the Social Desktop 2009
The State of the Social Desktop 2009Frank Karlitschek
 
Juju, LXC, OpenStack: Fun with Private Clouds
Juju, LXC, OpenStack: Fun with Private CloudsJuju, LXC, OpenStack: Fun with Private Clouds
Juju, LXC, OpenStack: Fun with Private CloudsSameer Verma
 

Tendances (20)

Automate IBM Connections Installations and more
Automate IBM Connections Installations and moreAutomate IBM Connections Installations and more
Automate IBM Connections Installations and more
 
IBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 EditionIBM Connections Adminblast - Soccnx 12 Edition
IBM Connections Adminblast - Soccnx 12 Edition
 
Don't touch the mobile parts
Don't touch the mobile partsDon't touch the mobile parts
Don't touch the mobile parts
 
browser presentation
browser presentationbrowser presentation
browser presentation
 
Transform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRT
Transform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRTTransform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRT
Transform Old Router into Digital Jukebox/Internet Radio with LEDE/openWRT
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
WordCamp Atlanta- Shared Hosting and WordPress
WordCamp Atlanta- Shared Hosting and WordPressWordCamp Atlanta- Shared Hosting and WordPress
WordCamp Atlanta- Shared Hosting and WordPress
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
Vagrant - Team Development made easy
Vagrant - Team Development made easyVagrant - Team Development made easy
Vagrant - Team Development made easy
 
Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)Back-end with SonataAdminBundle (and Symfony2, of course...)
Back-end with SonataAdminBundle (and Symfony2, of course...)
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're going
 
Hosting
HostingHosting
Hosting
 
Making of GameOver
Making of GameOverMaking of GameOver
Making of GameOver
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSockets
 
The State of the Social Desktop 2009
The State of the Social Desktop 2009The State of the Social Desktop 2009
The State of the Social Desktop 2009
 
Juju, LXC, OpenStack: Fun with Private Clouds
Juju, LXC, OpenStack: Fun with Private CloudsJuju, LXC, OpenStack: Fun with Private Clouds
Juju, LXC, OpenStack: Fun with Private Clouds
 

En vedette

MongoDB - The database strikes back
MongoDB - The database strikes back MongoDB - The database strikes back
MongoDB - The database strikes back Steven Cooper
 
NEPHP '12: Create a RESTful API
NEPHP '12: Create a RESTful APINEPHP '12: Create a RESTful API
NEPHP '12: Create a RESTful APIAndrew Curioso
 
OAuth In The Real World : 10 actual implementations you can't guess
OAuth In The Real World : 10 actual implementations you can't guessOAuth In The Real World : 10 actual implementations you can't guess
OAuth In The Real World : 10 actual implementations you can't guessMehdi Medjaoui
 
Angular meteor for angular devs
Angular meteor for angular devsAngular meteor for angular devs
Angular meteor for angular devsArc & Codementor
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business ToolkitVan Staub, MBA
 
IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationVan Staub, MBA
 
The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016Restlet
 
VMUG - Using PowerShell to call RESTful APIs
VMUG - Using PowerShell to call RESTful APIsVMUG - Using PowerShell to call RESTful APIs
VMUG - Using PowerShell to call RESTful APIsChris Wahl
 
The Present Future of OAuth
The Present Future of OAuthThe Present Future of OAuth
The Present Future of OAuthMichael Bleigh
 
Joker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDBJoker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDBAlexey Zinoviev
 
VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...
VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...
VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...Chris Wahl
 
MongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-SetMongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-SetVivek Parihar
 
Implementing OAuth
Implementing OAuthImplementing OAuth
Implementing OAuthleahculver
 
The end of polling : why and how to transform a REST API into a Data Streamin...
The end of polling : why and how to transform a REST API into a Data Streamin...The end of polling : why and how to transform a REST API into a Data Streamin...
The end of polling : why and how to transform a REST API into a Data Streamin...Audrey Neveu
 
CQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHPCQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHPDavide Bellettini
 
IBM Watson Work Services Development
IBM Watson Work Services DevelopmentIBM Watson Work Services Development
IBM Watson Work Services DevelopmentVan Staub, MBA
 
OAuth - Open API Authentication
OAuth - Open API AuthenticationOAuth - Open API Authentication
OAuth - Open API Authenticationleahculver
 
Active Directory Single Sign-On with IBM
Active Directory Single Sign-On with IBMActive Directory Single Sign-On with IBM
Active Directory Single Sign-On with IBMVan Staub, MBA
 
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectJonathan LeBlanc
 

En vedette (20)

MongoDB - The database strikes back
MongoDB - The database strikes back MongoDB - The database strikes back
MongoDB - The database strikes back
 
NEPHP '12: Create a RESTful API
NEPHP '12: Create a RESTful APINEPHP '12: Create a RESTful API
NEPHP '12: Create a RESTful API
 
OAuth In The Real World : 10 actual implementations you can't guess
OAuth In The Real World : 10 actual implementations you can't guessOAuth In The Real World : 10 actual implementations you can't guess
OAuth In The Real World : 10 actual implementations you can't guess
 
Angular meteor for angular devs
Angular meteor for angular devsAngular meteor for angular devs
Angular meteor for angular devs
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business Toolkit
 
IBM Digital Experience Theme Customization
IBM Digital Experience Theme CustomizationIBM Digital Experience Theme Customization
IBM Digital Experience Theme Customization
 
The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016
 
VMUG - Using PowerShell to call RESTful APIs
VMUG - Using PowerShell to call RESTful APIsVMUG - Using PowerShell to call RESTful APIs
VMUG - Using PowerShell to call RESTful APIs
 
The Present Future of OAuth
The Present Future of OAuthThe Present Future of OAuth
The Present Future of OAuth
 
Joker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDBJoker'15 Java straitjackets for MongoDB
Joker'15 Java straitjackets for MongoDB
 
MongoDB Workshop
MongoDB WorkshopMongoDB Workshop
MongoDB Workshop
 
VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...
VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...
VMUG - Picking Up New Skills - Tips and Tricks to Build Your Technical Tool C...
 
MongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-SetMongoDb scalability and high availability with Replica-Set
MongoDb scalability and high availability with Replica-Set
 
Implementing OAuth
Implementing OAuthImplementing OAuth
Implementing OAuth
 
The end of polling : why and how to transform a REST API into a Data Streamin...
The end of polling : why and how to transform a REST API into a Data Streamin...The end of polling : why and how to transform a REST API into a Data Streamin...
The end of polling : why and how to transform a REST API into a Data Streamin...
 
CQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHPCQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHP
 
IBM Watson Work Services Development
IBM Watson Work Services DevelopmentIBM Watson Work Services Development
IBM Watson Work Services Development
 
OAuth - Open API Authentication
OAuth - Open API AuthenticationOAuth - Open API Authentication
OAuth - Open API Authentication
 
Active Directory Single Sign-On with IBM
Active Directory Single Sign-On with IBMActive Directory Single Sign-On with IBM
Active Directory Single Sign-On with IBM
 
Securing RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID ConnectSecuring RESTful APIs using OAuth 2 and OpenID Connect
Securing RESTful APIs using OAuth 2 and OpenID Connect
 

Similaire à Tomboy WebSync Explained: Keep Notes in Sync Across Devices

Sutol How To Be A Lion Tamer
Sutol How To Be A Lion TamerSutol How To Be A Lion Tamer
Sutol How To Be A Lion TamerSharon James
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamerWannes Rams
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamerSharon James
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Dockerjchase50
 
Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)ClubHack
 
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to HelpTowards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to HelpStephen Donner
 
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensionsZoltan Balazs
 
TriplePlay-WebAppPenTestingTools
TriplePlay-WebAppPenTestingToolsTriplePlay-WebAppPenTestingTools
TriplePlay-WebAppPenTestingToolsYury Chemerkin
 
A 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersA 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersMark Leusink
 
Laug Mootools And Common Js
Laug   Mootools And Common JsLaug   Mootools And Common Js
Laug Mootools And Common JsSkills Matter
 
Web dev tools review
Web dev tools reviewWeb dev tools review
Web dev tools reviewChanghyun Lee
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for DockerChristian Beedgen
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundryYohei Sasaki
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundryYohei Sasaki
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2Vincent Mercier
 
Cross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseCross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseESUG
 
Chrome OS axel mérida
Chrome OS axel méridaChrome OS axel mérida
Chrome OS axel méridaAxel Mérida
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsCameron Dutro
 
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...YaJUG
 
HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09mihaiionescu
 

Similaire à Tomboy WebSync Explained: Keep Notes in Sync Across Devices (20)

Sutol How To Be A Lion Tamer
Sutol How To Be A Lion TamerSutol How To Be A Lion Tamer
Sutol How To Be A Lion Tamer
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamer
 
How to be a lion tamer
How to be a lion tamerHow to be a lion tamer
How to be a lion tamer
 
Vagrant vs Docker
Vagrant vs DockerVagrant vs Docker
Vagrant vs Docker
 
Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)
 
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to HelpTowards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
Towards a More Secure, Reliable, and Performant Web: Tools / Approaches to Help
 
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
[ENG] Hacker halted 2012 - Zombie browsers, spiced with rootkit extensions
 
TriplePlay-WebAppPenTestingTools
TriplePlay-WebAppPenTestingToolsTriplePlay-WebAppPenTestingTools
TriplePlay-WebAppPenTestingTools
 
A 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developersA 20 minute introduction to AngularJS for XPage developers
A 20 minute introduction to AngularJS for XPage developers
 
Laug Mootools And Common Js
Laug   Mootools And Common JsLaug   Mootools And Common Js
Laug Mootools And Common Js
 
Web dev tools review
Web dev tools reviewWeb dev tools review
Web dev tools review
 
Comprehensive Monitoring for Docker
Comprehensive Monitoring for DockerComprehensive Monitoring for Docker
Comprehensive Monitoring for Docker
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundry
 
MongoDB on CloudFoundry
MongoDB on CloudFoundryMongoDB on CloudFoundry
MongoDB on CloudFoundry
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2
 
Cross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseCross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher case
 
Chrome OS axel mérida
Chrome OS axel méridaChrome OS axel mérida
Chrome OS axel mérida
 
Kuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails AppsKuby, ActiveDeployment for Rails Apps
Kuby, ActiveDeployment for Rails Apps
 
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
VoxxedDays Luxembourg - Abuse web browsers for fun & profits - Dominique Righ...
 
HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09HTML5 and Google Chrome - DevFest09
HTML5 and Google Chrome - DevFest09
 

Plus de Mohan Krishnan

How I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deployHow I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deployMohan Krishnan
 
Startup Engineering culture - "What matters & what does not"
Startup Engineering culture - "What matters & what does not"Startup Engineering culture - "What matters & what does not"
Startup Engineering culture - "What matters & what does not"Mohan Krishnan
 
Introduction To Open Web Protocols
Introduction To Open Web ProtocolsIntroduction To Open Web Protocols
Introduction To Open Web ProtocolsMohan Krishnan
 
Securing your Web API with OAuth
Securing your Web API with OAuthSecuring your Web API with OAuth
Securing your Web API with OAuthMohan Krishnan
 
Open Data, Visualization & Usability for Online News Delivery
Open Data,  Visualization &  Usability for  Online News DeliveryOpen Data,  Visualization &  Usability for  Online News Delivery
Open Data, Visualization & Usability for Online News DeliveryMohan Krishnan
 

Plus de Mohan Krishnan (7)

Real world dev ops
Real world dev opsReal world dev ops
Real world dev ops
 
How I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deployHow I learned to stop worrying and love to deploy
How I learned to stop worrying and love to deploy
 
Startup Engineering culture - "What matters & what does not"
Startup Engineering culture - "What matters & what does not"Startup Engineering culture - "What matters & what does not"
Startup Engineering culture - "What matters & what does not"
 
Introduction To Open Web Protocols
Introduction To Open Web ProtocolsIntroduction To Open Web Protocols
Introduction To Open Web Protocols
 
Securing your Web API with OAuth
Securing your Web API with OAuthSecuring your Web API with OAuth
Securing your Web API with OAuth
 
AtomPub, beyond blogs
AtomPub, beyond blogsAtomPub, beyond blogs
AtomPub, beyond blogs
 
Open Data, Visualization & Usability for Online News Delivery
Open Data,  Visualization &  Usability for  Online News DeliveryOpen Data,  Visualization &  Usability for  Online News Delivery
Open Data, Visualization & Usability for Online News Delivery
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

Tomboy WebSync Explained: Keep Notes in Sync Across Devices

  • 1. Tomboy WebSync Explained 25 Oct 2009 foss.my 2009 Mohanaraj Gopala Krishnan mohangk@gmail.com
  • 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. 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. Platform support • Mac • Windows • Linux • Android - alpha • Maemo
  • 6.
  • 7. Add-in ecosystem • Extensive add-in collection • Blogposting • Latex • Bugzilla • Evolution • Many more - http://live.gnome.org/ Tomboy/PluginList
  • 8. 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
  • 9. 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
  • 10. Synchronisation of notes • Local file sync + external transfer (gvfs, sshfs etc) • WebDAV • Tomboy WebSync http://www.flickr.com/photos/eugene/186980377/
  • 11. 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
  • 12. 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
  • 13. Ubuntu One • Canonicals cloud offering • Notes - via Tomboy • Files • Free - up to 2GB, 50GB USD10 a month • https://one.ubuntu.com/
  • 14. Snowy • Python - Django based • django-piston, django- revision • Multi user • Actively under development • AGPL
  • 15. 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
  • 16. DEMO (I hope its not fscked) http://icanhascheezburger.com/2007/03/12/is-it-safe/
  • 17. Sync steps • Introspection • Authorisation • Data synchronisation http://www.flickr.com/photos/mar00ned/188634413/
  • 18. Introspection Allows for the client to determine information about the server http://icanhascheezburger.com/2009/01/04/funny-pictures-is-where-da-rubs-gok/
  • 20. 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/
  • 21. Authorisation - OAuth • Uses OAuth • Allows secure connection without needing to store usernames and password - stores access token http://forums.vwvortex.com/zerothread?id=4468563
  • 22. 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)
  • 23. 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/
  • 24. 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
  • 25. 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