fisl10 adenilson08

55
Implementing KDE-pim support for google calendar and contacts Adenilson Cavalcanti da Silva Bsc. Msc. Senior Developer [email protected]

Upload: adenilson-cavalcanti

Post on 26-Jun-2015

175 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fisl10 adenilson08

Implementing KDE-pim support for google calendar and contacts

Adenilson Cavalcanti da Silva Bsc. Msc.Senior [email protected]

Page 2: Fisl10 adenilson08

why?

Page 3: Fisl10 adenilson08

Why google and KDE?

- beautiful!

- documentation

- PoC

- KDE: community

Page 4: Fisl10 adenilson08

What is community?

Page 5: Fisl10 adenilson08
Page 6: Fisl10 adenilson08
Page 7: Fisl10 adenilson08

Good community: where is easy for new coders, designers, usersto contribute.

Page 8: Fisl10 adenilson08

Video: gcontacts + KAddressbook

Page 9: Fisl10 adenilson08

Video: gcalendar + Kontact

Page 10: Fisl10 adenilson08

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

KDE + libgcal

Akonadi resource

KDE planet and commits digest!

http://www.kdedevelopers.org/node/3931

Page 11: Fisl10 adenilson08

Gcalendar and contacts

*rip off from EA...

Page 12: Fisl10 adenilson08

Top 10 bugs: 2009-06-16

Page 13: Fisl10 adenilson08

Top 10 bugs: 2009-06-16

Page 14: Fisl10 adenilson08

Top 10 bugs: 2009-06-16

Page 15: Fisl10 adenilson08

Top 10 bugs: 2009-06-16

Page 16: Fisl10 adenilson08

Tip: be open to newcomers

Page 17: Fisl10 adenilson08
Page 18: Fisl10 adenilson08

How google data protocol works?

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

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

- Sync: tricky!

Page 19: Fisl10 adenilson08

Authentication

- HTTPS POST to feed (clientlogin)

- You get:

Page 20: Fisl10 adenilson08

Add

Page 21: Fisl10 adenilson08

Edit

Page 22: Fisl10 adenilson08

Delete

Page 23: Fisl10 adenilson08

Who implements gdata protocol?

Page 24: Fisl10 adenilson08

libgcal

- dependencies: libxml, libcurl

- BSD license

- features

- origin: opensync python plugin by Ehabkost

Page 25: Fisl10 adenilson08

Syncml + libgcal

Page 26: Fisl10 adenilson08

Libgcal: unit tests

Page 27: Fisl10 adenilson08

Libgcal: unit tests

Page 28: Fisl10 adenilson08

Libgcal: unit tests

Page 29: Fisl10 adenilson08

Look mom! libgcal on google blog!

Page 30: Fisl10 adenilson08

KDE4 + PIM = akonadi

Page 31: Fisl10 adenilson08

Akonadi support

protocol supportIMAP ++POP3 +++vcard +++ical +++googledata +++Exchange ++Kolab ++

GSoC: Syncml.

Page 32: Fisl10 adenilson08

Akonadi (mis)features

good:: D-BUS, LGPL, asynchronous, Qt

BAD: mysql

branch/akonadimobile has support for sqlite!

Page 33: Fisl10 adenilson08

How difficult is akonadi?

Coding:

- Gcontacts: 3 weeks

- gcalendar: 3 days

question? ALT+F2

Page 34: Fisl10 adenilson08

KDE devel

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

- run the trunk! YMMV

Page 35: Fisl10 adenilson08

Sync considerations

Page 36: Fisl10 adenilson08

What time is it?

Page 37: Fisl10 adenilson08

Inclusive query

Page 38: Fisl10 adenilson08

Added or edited? Cant' tell!

Page 39: Fisl10 adenilson08

Bugs X Programmers

Page 40: Fisl10 adenilson08

How to add?

Page 41: Fisl10 adenilson08

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.

Documentation may be wrong...

Page 42: Fisl10 adenilson08

Parsing is the root of evil...

result = org.xml.sax.SAXParseException: The processing instructiontarget matching "[xX][mM][lL]" is not allowed.

Page 43: Fisl10 adenilson08

Parsing is the root of evil...

Page 44: Fisl10 adenilson08

Sync or Async?

Page 45: Fisl10 adenilson08

Sync or Async?

Page 46: Fisl10 adenilson08

Sync or Async?

Page 47: Fisl10 adenilson08

Rant1: is XML or iCalendar?

Page 48: Fisl10 adenilson08

Rant2: dichotomy cal x contacts

Page 49: Fisl10 adenilson08

Rant3: is 2.0 == 2.1?

Page 50: Fisl10 adenilson08

Rant4: Pessimization

Page 51: Fisl10 adenilson08

Rant4: Pessimisation

Page 52: Fisl10 adenilson08

Rant4: Pessimisation

Page 53: Fisl10 adenilson08

Rant4: Pessimisation

Page 54: Fisl10 adenilson08

The end?

Page 55: Fisl10 adenilson08

Special thanks

- Kevin Krammer, Igor Trindade, Mike Arthur

- Friends

- INdT