fisl10 adenilson08
TRANSCRIPT
![Page 1: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/1.jpg)
Implementing KDE-pim support for google calendar and contacts
Adenilson Cavalcanti da Silva Bsc. Msc.Senior [email protected]
![Page 2: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/2.jpg)
why?
![Page 3: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/3.jpg)
Why google and KDE?
- beautiful!
- documentation
- PoC
- KDE: community
![Page 4: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/4.jpg)
What is community?
![Page 5: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/5.jpg)
![Page 6: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/6.jpg)
![Page 7: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/7.jpg)
Good community: where is easy for new coders, designers, usersto contribute.
![Page 8: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/8.jpg)
Video: gcontacts + KAddressbook
![Page 9: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/9.jpg)
Video: gcalendar + Kontact
![Page 10: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/11.jpg)
Gcalendar and contacts
*rip off from EA...
![Page 12: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/12.jpg)
Top 10 bugs: 2009-06-16
![Page 13: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/13.jpg)
Top 10 bugs: 2009-06-16
![Page 14: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/14.jpg)
Top 10 bugs: 2009-06-16
![Page 15: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/15.jpg)
Top 10 bugs: 2009-06-16
![Page 16: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/16.jpg)
Tip: be open to newcomers
![Page 17: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/17.jpg)
![Page 18: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/19.jpg)
Authentication
- HTTPS POST to feed (clientlogin)
- You get:
![Page 20: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/20.jpg)
Add
![Page 21: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/21.jpg)
Edit
![Page 22: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/22.jpg)
Delete
![Page 23: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/23.jpg)
Who implements gdata protocol?
![Page 24: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/24.jpg)
libgcal
- dependencies: libxml, libcurl
- BSD license
- features
- origin: opensync python plugin by Ehabkost
![Page 25: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/25.jpg)
Syncml + libgcal
![Page 26: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/26.jpg)
Libgcal: unit tests
![Page 27: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/27.jpg)
Libgcal: unit tests
![Page 28: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/28.jpg)
Libgcal: unit tests
![Page 29: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/29.jpg)
Look mom! libgcal on google blog!
![Page 30: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/30.jpg)
KDE4 + PIM = akonadi
![Page 31: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/31.jpg)
Akonadi support
protocol supportIMAP ++POP3 +++vcard +++ical +++googledata +++Exchange ++Kolab ++
GSoC: Syncml.
![Page 32: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/32.jpg)
Akonadi (mis)features
good:: D-BUS, LGPL, asynchronous, Qt
BAD: mysql
branch/akonadimobile has support for sqlite!
![Page 33: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/33.jpg)
How difficult is akonadi?
Coding:
- Gcontacts: 3 weeks
- gcalendar: 3 days
question? ALT+F2
![Page 34: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/34.jpg)
KDE devel
- distro really up-to-date (e.g. OpenSuse)
- run the trunk! YMMV
![Page 35: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/35.jpg)
Sync considerations
![Page 36: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/36.jpg)
What time is it?
![Page 37: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/37.jpg)
Inclusive query
![Page 38: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/38.jpg)
Added or edited? Cant' tell!
![Page 39: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/39.jpg)
Bugs X Programmers
![Page 40: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/40.jpg)
How to add?
![Page 41: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/43.jpg)
Parsing is the root of evil...
![Page 44: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/44.jpg)
Sync or Async?
![Page 45: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/45.jpg)
Sync or Async?
![Page 46: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/46.jpg)
Sync or Async?
![Page 47: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/47.jpg)
Rant1: is XML or iCalendar?
![Page 48: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/48.jpg)
Rant2: dichotomy cal x contacts
![Page 49: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/49.jpg)
Rant3: is 2.0 == 2.1?
![Page 50: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/50.jpg)
Rant4: Pessimization
![Page 51: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/51.jpg)
Rant4: Pessimisation
![Page 52: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/52.jpg)
Rant4: Pessimisation
![Page 53: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/53.jpg)
Rant4: Pessimisation
![Page 54: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/54.jpg)
The end?
![Page 55: Fisl10 adenilson08](https://reader033.vdocuments.mx/reader033/viewer/2022060119/558cb792d8b42a095d8b459f/html5/thumbnails/55.jpg)
Special thanks
- Kevin Krammer, Igor Trindade, Mike Arthur
- Friends
- INdT