SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
Implementing KDE-pim support
for google calendar and contacts


Adenilson Cavalcanti da Silva
Bsc. Msc.
Senior Developer
adenilson.silva@indt.org.br
why?
Why google and KDE?

- beautiful!

- documentation

- PoC

- KDE: community
What is community?
Good community: where is easy for
new coders, designers, users
to contribute.
Video: gcontacts + KAddressbook
Video: gcalendar + Kontact
KDE + libgcal
 Akonadi resource




 http://techbase.kde.org/Schedules/KDE4/4.3_Feature_Plan#kdepim

 KDE planet and commits digest!




 http://www.kdedevelopers.org/node/3931
Gcalendar and contacts




 *rip off from EA...
Top 10 bugs: 2009-06-16
Top 10 bugs: 2009-06-16
Top 10 bugs: 2009-06-16
Top 10 bugs: 2009-06-16
Tip: be open to newcomers
How google data protocol works?




- REST + atom (i.e. HTTP + XML)

- Allows: get all, add/edit/delete, query, others

- Sync: tricky!
Authentication

- HTTPS POST to feed (clientlogin)

- You get:
Add
Edit
Delete
Who implements gdata protocol?
libgcal


 - dependencies: libxml, libcurl

 - BSD license

 - features

 - origin: opensync python plugin by Ehabkost
Syncml + libgcal
Libgcal: unit tests
Libgcal: unit tests
Libgcal: unit tests
Look mom! libgcal on google blog!
KDE4 + PIM = akonadi
Akonadi support


                protocol     support
                IMAP         ++
                POP3         +++
                vcard        +++
                ical         +++
                googledata   +++
                Exchange     ++
                Kolab        ++
GSoC: Syncml.
Akonadi (mis)features




      good: D-BUS, LGPL, asynchronous, Qt


      BAD: mysql



 branch/akonadimobile has support for sqlite!
How difficult is akonadi?



Coding:

- Gcontacts: 3 weeks

- gcalendar: 3 days


question? ALT+F2
KDE devel



- distro really up-to-date (e.g. OpenSuse)




- run the trunk! YMMV
Sync considerations
What time is it?
Inclusive query
Added or edited? Cant' tell!
Bugs X Programmers
How to add?
Documentation may be wrong...


Written: If you received the redirect, then send
the same POST request again, with the same
Authorization header and the same content, but
with the gsessionid parameter appended.

Should be: When you receive the redirect, send
the same POST request, with the same
Authorization header, to the location specified in
the response location.
Parsing is the root of evil...




 result = org.xml.sax.SAXParseException: The
 processing instruction
 target matching "[xX][mM][lL]" is not
 allowed.
Parsing is the root of evil...
Sync or Async?
Sync or Async?
Sync or Async?
Rant1: is XML or iCalendar?
Rant2: dichotomy cal x contacts
Rant3: is 2.0 == 2.1?
Rant4: Pessimization
Rant4: Pessimisation
Rant4: Pessimisation
Rant4: Pessimisation
The end?
Special thanks




  - Kevin Krammer, Igor Trindade, Mike Arthur

  - Friends

  - INdT

Contenu connexe

Similaire à Fisl10 adenilson08

Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!mold
 
KubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to ProdKubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to ProdSubhas Dandapani
 
How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)Kaliop-slide
 
Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Wojciech Barczyński
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)anandvaidya
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community力 陈
 
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDBMax Neunhöffer
 
How to put 100k lines of code into the (Google) cloud: storms and rainbows
How to put 100k lines of code into the (Google) cloud: storms and rainbowsHow to put 100k lines of code into the (Google) cloud: storms and rainbows
How to put 100k lines of code into the (Google) cloud: storms and rainbowsPaolo Predonzani
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
 
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os projectLasse Schuirmann
 
GPU cloud with Job scheduler and Container
GPU cloud with Job scheduler and ContainerGPU cloud with Job scheduler and Container
GPU cloud with Job scheduler and ContainerAndrew Yongjoon Kong
 
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes][HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]Wong Hoi Sing Edison
 
Cassandra at Glogster
Cassandra at GlogsterCassandra at Glogster
Cassandra at GlogsterRoman Komkov
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” LogeekNightUkraine
 

Similaire à Fisl10 adenilson08 (20)

Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!Catalyst - refactor large apps with it and have fun!
Catalyst - refactor large apps with it and have fun!
 
KubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to ProdKubeCon 2017: Kubernetes from Dev to Prod
KubeCon 2017: Kubernetes from Dev to Prod
 
How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)How to deploy & optimize eZ Publish (2014)
How to deploy & optimize eZ Publish (2014)
 
Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?
 
Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)Amazing KDE (K Desktop Environment)
Amazing KDE (K Desktop Environment)
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community
 
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot Tech Talk #10 — Practical automation by Kamil Cholewiński
Pilot Tech Talk #10 — Practical automation by Kamil Cholewiński
 
Experience with C++11 in ArangoDB
Experience with C++11 in ArangoDBExperience with C++11 in ArangoDB
Experience with C++11 in ArangoDB
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
Sheep it
Sheep itSheep it
Sheep it
 
How to put 100k lines of code into the (Google) cloud: storms and rainbows
How to put 100k lines of code into the (Google) cloud: storms and rainbowsHow to put 100k lines of code into the (Google) cloud: storms and rainbows
How to put 100k lines of code into the (Google) cloud: storms and rainbows
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
Into The Box 2018 Ortus Keynote
Into The Box 2018 Ortus KeynoteInto The Box 2018 Ortus Keynote
Into The Box 2018 Ortus Keynote
 
Contributing to an os project
Contributing to an os projectContributing to an os project
Contributing to an os project
 
GPU cloud with Job scheduler and Container
GPU cloud with Job scheduler and ContainerGPU cloud with Job scheduler and Container
GPU cloud with Job scheduler and Container
 
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes][HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
 
Cassandra at Glogster
Cassandra at GlogsterCassandra at Glogster
Cassandra at Glogster
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost”
 

Fisl10 adenilson08