KDE PIM/Meetings/Akonadi-2010-05 - KDE Community Wiki
Jump to content
From KDE Community Wiki
KDE PIM
Meetings
This page is about the upcoming Akonadi Meeting in May 2010
Date
13th to 16th of May 2010.
Location / Travel Information
Office
Attention:
KDAB moved since last time!
KDAB
Tempelhofer Ufer 11
10963 Berlin
Germany
Phone: +49-30-5213254-70
Google Maps
Getting there by public transportation:
subway lines U1 or U6 to "Hallesches Tor"
subway lines U1 or U7 to "Möckernbrücke"
bus line M41 to "Hallesches Tor" (leaves from Berlin Hauptbahnhof)
Getting in:
If the big front door is closed, there is a door bell on the right, labeled 'KDAB'.
After passing the main gate, there are two options:
Take the stairs on the right, go up one floor, take the door on your right and go up one more floor. You'll find a door labeled KDAB in front of your with a door bell on the right (that one might need some more pressure to trigger).
Be lazy and go through the second big door right in front of you, turn right and take the entrance to the elevator on your right. KDAB is on the second floor.
Hotel
Hotel Ibis Berlin City Ost
An der Schillingbrucke 2
10243 Berlin
Germany
Phone: (+49)30/257600
Fax : (+49)30/25760333
Google Maps
Easiest way to reach the hotel is by taking a train to Ostbahnhof (it's just across the street from the station). If your train doesn't stop there, take the S-Bahn from Hauptbahnhof, any east-bound line will do.
From TXL take the bus labeld 'TXL' to Hauptbahnhof or Alexanderplatz and switch to the S-Bahn there, any east-bound train will do.
From SXF take the regional train 'RE7' or 'RB14' towards Berlin to station "Ostbahnhof" (2 stops, about 20 min).
Hotel <-> Office
Two options with public transportation:
via Friedrichstraße
any westbound S-Bahn from Ostbahnhof to Friedrichstraße (4 stops)
U6 southwards (direction Alt-Mariendorf) until Hallesches Tor (4stops)
via Warschauer Straße
any eastbound S-Bahn from Ostbahnhof to Warschauer Straße (1 stop)
U1 westwards (there is only one direction, the station is the terminus for U1) to Hallesches Tor (5 stops)
Or take a taxi, possibly even cheaper when shared with enough people.
Public Transportation
Some general notes on public transportation in Berlin, more relevant this time with hotel and office not in walking distance from each other.
Reginal trains/S-Bahn/U-Bahn/Tram/Bus Tickets
Zones
Everywhere you need to go is covered by the 'AB' zone tickets, with the exception of SXF, for that you need one for the 'ABC' zone.
Buying Tickets
Tickets can be bought at ticket machines which you'll find at every station and the bus stop at TXL. On stations with long-distance connections you might find two types of ticket machines, use the ones labeled 'BVG' in black on a yellow square, not the ones labeled 'DB' or 'Deutsche Bahn'.
Ticket machines always take coins, and sometimes bills and ec cards (no credit cards IIRC).
Prices and Price Optimizations
Single trip costs 2.10€ in 'AB' zone and 2.50€ for 'ABC'. The ticket if valid for a single trip (including changing trains, as long as you go roughly into one direction) for all means of transportation listed above, ie. you don't need two tickets when switching from S-Bahn to U-Bahn for example. Tickets have to be stamped before entering the train once.
There are a number of optimizations though:
You can purchase a batch of four tickets at once ("4 Fahrten Karte"), which costs 8€ for 'AB'.
If you plan to do more than 2 trips a day, purchase the day ticket instead, 6.10€ for 'AB'.
If you do two trips a day with 4 or 5 persons, consider the group day ticket ("Kleingruppenkarte"), which costs 15.90€ for 'AB'.
If you only travel for three stops, there is the short trip ticket which costs 1.30€. This might be interesting in combination with the next option.
If you are traveling together with a local who has a monthly ticket, one additional person can tag along for free after 20:00 on workdays and during the entire day on weekends and public holidays.
Schedule
Schedule can be checked online (see link below), which makes sense when traveling outside of the normal working hours on weekdays (where trains go every 5 minutes). During weekdays service ends at around 1am. On weekends, public holidays and nights leading up to those trains usually go all night but only every 15 or 20 minutes.
More Information
Local transportation in Berlin
Subway and railway map of Berlin
Taxis
Taxi to TXL costs 20-25€, taxi between office and hotel around 10€. So, if you order a big one this might actually be the cheapest and most comfortable way to travel between office and hotel.
Airports
There are currently two active airports in Berlin: Tegel (TXL) and Schönefeld (SXF). Make sure you know which one to go to, picking the wrong one has only happend to locals so far and you don't want to change that :)
TXL is not connected to any train line, but there is a shuttle bus (called 'TXL') leaving in front of the terminal building towards the city center.
SXF has a station for both regional trains (red 'B' on white square) and a S-Bahn line (white 'S' on green circle).
Berlin airport website
(includes airport maps etc.)
Attendees
Please add yourself, your travel details and accommodation needs as well as your preferred date to the following table.
Name
Travel
Arrival
Departure
Accommodation needed
Volker Krause
none
already here
not leaving
no
Tom Albers
Train
12-05-2010 23u30
16-05-2010 16u30
yes, single room.
Bertjan Broeksema
none
already here
not leaving
no
Stephen Kelly
none
already here
not leaving
no
Thomas McGuire
train
12.05, around 3 pm, ICE857
16.05, around 2 pm, ICE556
yes, single room, non smoking
Matthew Leach
Flying from Manchester
Arriving at Berlin Schoenefeld 12 May 17:10
Departing from Berlin Schoenefeld 17 May 17:35
yes, single room, non smoking
Sascha Peilicke
Train from Magdeburg
14.05, around 10:00
14.05, in the evening
Not needed
Tobias Koenig
Train from Dresden
12.05.2010
16.05.2010
yes, sharing room is ok
Kevin Krammer
plane GRZ-VIE-TXL
2010-05-11 19:05
2010-05-17 09:20
yes, single room, non smoking
Sérgio Martins
plane from Lisbon
11-05-2010 (17:55 TXL)
16-05-2010 (19:00 TXL)
yes, single room, non smoking
Kevin Ottens
Plane: TLS->LHR->TXL
11-05-2010 (landing 13:45)
16-05-2010 (takeoff 07:15)
yes, single room, non smoking
Topics
Please collect stuff you want to do/discuss here.
API review
Reviewing new public API, as usual, see table below for the changes that still need to be reviewed
Discuss deprecating the KResource API and porting away or identifing the last users of it in PIM
Review Maemo's KCal patches
KDE PIM 4.5 Release
Evaluate the state of KMail and the Kontact suite and decide on release plan
identify KMail release blockers
identity KOrganizer release blockers
Making KDE PIM ready for 4.5 if in a releasable state, or execute a Plan B
Project Management
Branch strategy during the 4.5 freeze regarding KDE PIM Mobile work
Git migration: Status and timeline discussion
Look at KMail filtering and evaluate the amount of work needed to integrate teh filtering framework from Szymon. Maybe start a first hacking session for that.
IMAP resource
Kevin's refactoring plan
Unit testing the resource
Attachment load on demand
Summer of Code/ Season of KDE projects
Roadmap/plans of the SyncML GSoC and SOK
Mobile specific stuff (can be done during the mobile team pre-meeting)
incidenceeditor refactoring plan
Porting plan for KOrganizer to its extracted view components
Replacement for KDGantt1 based views in KOrganizer
Mail composer: how to share even more code with kmail-mobile
API Review
Library
Changes since 4.4
Status
Akonadi
diff
DONE
GpgME++
diff
Done by trusting Marc
KABC
diff
DONE
KCal
diff
Reviewed, changes pending
KHolidays
diff
Only moved code
KIMAP
diff
DONE
KLDAP
diff
DONE
KMime
diff
Reviewed, changes pending
Kontact Interface
diff
DONE
KPimIdentities
diff
Only comment changes
KPimTextEdit
diff
DONE
KPimUtils
diff
Only comment and style changes
MailTransport
diff
DONE
kdeui/itemviews
diff
Several new classes, mostly refactored out of KSelectionProxyModel, reviewed, changes pending
Schedule
To be filled...
Thursday
8:30 Incidence editor internals refactoring/redesign discussion
9:30 Start, getting set up, get coffee and fill the schedule
10:10 Report on what happened since Osnabrück 8
10:45 First API review session
13:00 Lunch
14:30 Nepomuk tag widget discussion
14:45 Mailtransport API review
15:30 KCal changes from MeeGo team
17:45 KDE 4.5 release discussion
19:00 Hacking
19:45 Leaving for dinner
20:00 Dinner
22:00 Hacking
Friday
8:00 Breakfast
9:45 Discuss KCal/MeeGo invitation API
11:45 Hacking
12:30 Lunch
13:45 Group Photo
14:00 Make IMAP resource work with Tom's server
16:00 Hacking
19:30 Dinner
22:00 Hacking
01:15 Watch Knut Yrvin Videos
Saturday
9:00 Start
10:00 Forced Akademy Sign-Ups
10:30 Second API review session
13:45 Lunch
15:30 KResource deprecation
15:45 Hacking
16:45 Some more KBiHash bashing ;)
17:00 Hacking
19:00 Branch strategy during 4.5 freeze
19:30 Dinner
22:00 Hacking
Sunday
9:00 Start, use the opportunity to build everything since nobody is committing yet
10:00 Arrival of the slackers
10:30 Setup KMail2 for Thomas
11:00 Hacking
12:30 Lunch
14:00 Hacking
Departure
Meeting Notes
Please fill this section.
KOrganizer Refactoring Plan
Make reusable components out of KOrganizer for reuse in the mobile applications, initial draft based on KOrganizer meeting from April 12th. Current status in square brackets.
Incidence Editor
eventually used in: KOrganizer desktop and mobile, invitation BPF plugin, korgac, summary view, plasmoids
Plan
To make it independent from KOrganizer we need at least:
split up preferences [done]
get rid of interfaces/incidencechangerbase [done]
move incidencechanger to kcal_next [done]
For mobile we need:
new fb view, see below [Bertjan volunteered to investigate that]
ui'ify [in progress, Bertjan]
get rid of Qt3Support usage [done excpet for fbview]
Bonus points for:
remove code duplication between eventeditor, todoeditor, journaleditor
New Design
Similar to KCM, consisting of compositable sub-components.
Free/Busy and Timeline view
Write a new freebusy graph widget (libfbview) that can also be used in timelineview
Still unsure which option is best:
use and extend KDGantt2
write a entirely new view, possible reusing some of the rendering and layouting code from month/agenda view
[Bertjan volunteered to investigate that]
Incidence Viewer
eliminate duplication between KOrganizer and akonadi/kcal, necessary since korgac depends on the koeventviewer.
[done]
Views
Plan
Make views independent from KOrganizer
kdepim/libeventviews
move all non-todoview views here
move interfaces/baseview.h here
move view kcms here as well
kdepim/libtodoviews
move todoview here
shouldn't need baseview.h
anything reusable in/for zanshin here?
remove Qt3support
Current State
agenda view extracted
Qt3Support removal complete
Decorations are still disabled
KOrganizer still has its own copy
to be ported after 4.5 branching
Sergio monitors commits and merges them between the two copies if necessary
Porting KOrganizer requires porting the multi agenda view away from Q3ScrollArea as well
month view
Sergio says it's much easier to do
timeline view
see above, requires a rewrite
todo model/view
Sergio says it's easy
MeeGo KCal Extensions
Created ExtendedCalendar and ExtendedStorage classes.
Acceptable, but BIC, evaluate BC way to do this
Adding multicalendar support using one ExtendedCalendar object. Not using many Calendar objects as originally.
Acceptable, but BIC, evaluate BC way to do this
Not needing to load all Incidences into memory, UI can load on demand. New ways of loading from storages.
same as above
New storage classes, Sqlite, tracker, etc.
Acceptable, depends on items above, not build by default
Improved performance in sorting. New sorting algorithms.
Acceptable immediately, obviously :)
Services Plugins. Support for invitations, attachments from different sources.
Acceptable. API draft to be developed tomorrow.
RecurrenceID support in all Incidence types, not just Todo.
Acceptable, but BIC currently. Can be fixed separately from items above. Can be taken into pipeline first.
Some bug fixes.
Acceptable immediately as well.
Allow parallel installation of KDE KCal and MeeGo KCal as long as they are BIC.
Needs different library name (already done)
Rename namespace
KCal Refactoring Plan KDE/MeeGo
The initial agreement to be able to maintain a common code base between MeeGo KCal and KDE's KCal is the following:
Create a new library initially named libkcalcore. This library will contain:
Data Definitions and the code to operate them. (Eg: Incidence and all related subclasses, also alarms).
Recurrence Handling.
TimeZone handling.
Common interface for the Invitation handler plugin (only the interface, the real implementation of the loading and unloading is separated).
Improve the API (eg: Use shared pointers instead plain pointers as it is now).
Integrate the extendedkcal sorting optimizations.
Integrate the extendedkcal bugfixes.
MeeGo will extend the KCalCore with some library that will include all the extensions currently implemented in extendedkcal and the Calendar and Storage classes from the original Kcal.
KDE will only use the kcalcore, because all the other functionality is provided currently by akonadi.
In order to make everything working and iteroperable the Kdecore needs to be available into MeeGo, not like currently in extendedkcal that the classes needed are just copied, and also not like in FreOffice where there is a stripped down version (not compatible with standard KDE apps).
Tom's IMAP Server
Works now!
Problems fixed:
NetworkManager reports wrong network state on Debian (allways offline), worked around by disabling network state tracking for now
LOGIN auth method bug in KIMAP, fixed.
ItemSync terminates too early on local job failures causing the resource to hang, fixed. Needs verification that we caught all cases.
Account Wizard
For email use Mozilla ISPDB, at least for the first step
Keep it as simple as possible, only ask the user for the bare minimum of options (e.g. email and password)
Keep GHNS support for non-email, which is not covered by ISPDB
Add a mimetype association for GHNS wizard packages to the accountwizard to allow single-click setups, e.g. in company intranets
Conflict Detection and Resolution
The above image shows the possible conflicts that can appear inside Akonadi:
The client has changed some data which are transferred via the cache to the resource. If the resource discovers in its ResourceBase::itemChanged() method that the data in the backend has changed, the resource shall download the new version from the backend and present the user a conflict resolution dialog with both items, the one from the user and the one from the backend.
The client has changed some data and stored it in the cache. Before this change can be forwarded to the resource, the resource pushes data from the backend to the cache. This conflict can be discovered, because the dirty flag has been set when the client has changed the data. In this case, the Akonadi server shall return a special LR (LocalRemote) conflict error, which is catched by the ItemModifyJob, that has been triggered by the client, and will bring up a conflict resolution dialog with both items.
One client has loaded an item, changed it and wants to save it back, but in the meantime, another client has changed this item. This conflict can be detected by the revision flag of the Akonadi::Item. In this case the Akonadi server shall return a special LL (LocalLocal) conflict error, which is catched by the ItemModifyJob, that has been triggered by the first client, and will bring up a conflict resolution dialog with both items.
KResource Deprecation
Thomas will add the necessary conditional deprecation macros to KResources, KABC and KCal
Tobias and Kevin will write a techbase page about KABC::StdAddressbook porting
Remaining users in kdepim
Migration tools (have to stay)
Compat resources (have to stay)
Blog resource (status unknown)
Groupwise resource (Will will port it)
Remote resource (only lacks minor feature in Akonadi iCal file resource)
Blogs / Press
Quotes
Almost, but not quite, entirely taken out of context.
Team discusses the (non-)usefulness of POP3
Bertjan: "Some people have a private life."
Volker: "I have a private IMAP server!"
Thomas: "I have lots of STDs."
Matthew hammers angrily on his laptop
Thomas: "Does it work?"
Teams looks with amazement and shaking heads at the following code:
bool readOnly = CollectionUtils::isStructural( collection )
|| ( itemAction && ( !( collection.rights() & Collection::CanCreateItem )
|| collection.contentMimeTypes().toSet().intersect( mimetypes ).isEmpty() ) )
|| ( collectionAction && ( !( collection.rights() & Collection::CanCreateCollection )
|| QSet( mimetypes ).subtract( AgentManager::self()->type( collection.resource() ).mimeTypes().toSet() ).isEmpty()
|| !collection.contentMimeTypes().contains( Collection::mimeType() ) ) );
Thomas: "It should be const bool readOnly!"
Matthew: "I'm thinking about just putting in an arbitrary number here and hope it works for everyone."
Matthew: "Beer?"
Tobias: "Pizza?"
Thomas: "Cocaine?"
Tom: "I didn't see that one coming."
Thomas to Matthew: "How do you like changing column sizes?"
Matthew: "It was one of the most frustrating experiences of my life."
Thomas: "Ok, we can make it worse."
Retrieved from "
Categories
Akonadi
PIM