< KDE PIM | Meetings This page is about the upcoming Akonadi Meeting in May 2010 Contents 1 Date 2 Location / Travel Information 2.1 Office 2.2 Hotel 2.3 Hotel <-> Office 2.4 Public Transportation 2.4.1 Reginal trains/S-Bahn/U-Bahn/Tram/Bus Tickets 220.127.116.11 Zones 18.104.22.168 Buying Tickets 22.214.171.124 Prices and Price Optimizations 126.96.36.199 Schedule 188.8.131.52 More Information 2.4.2 Taxis 2.4.3 Airports 3 Attendees 4 Topics 5 API Review 6 Schedule 6.1 Thursday 6.2 Friday 6.3 Saturday 6.4 Sunday 7 Meeting Notes 7.1 KOrganizer Refactoring Plan 7.1.1 Incidence Editor 184.108.40.206 Plan 220.127.116.11 New Design 7.1.2 Free/Busy and Timeline view 7.1.3 Incidence Viewer 7.1.4 Views 18.104.22.168 Plan 22.214.171.124 Current State 7.2 MeeGo KCal Extensions 7.3 KCal Refactoring Plan KDE/MeeGo 7.4 Tom's IMAP Server 7.5 Account Wizard 7.6 Conflict Detection and Resolution 7.7 KResource Deprecation 8 Blogs / Press 9 Quotes 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 http://thomasmcguire.wordpress.com/2010/05/14/akonadi-meeting-and-the-kde-sc-4-5-release/ http://www.omat.nl/2010/05/13/akonadi-meeting-here-i-come-mailody-is-dead/ http://www.omat.nl/2010/05/13/accountwizard/ http://www.omat.nl/2010/05/15/akonadi-meeting-day-2-hacking-accountwizard-continued/ http://www.omat.nl/2010/05/16/akonadi-meeting-day-3-productivity-is-amazing/ http://www.kdedevelopers.org/node/4218 http://www.kdenews.org/2010/06/03/kde-pim-stabilization-sprint 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<QString>( 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 "https://community.kde.org/index.php?title=KDE_PIM/Meetings/Akonadi-2010-05&oldid=3278" Categories: AkonadiPIM This page was last edited on 3 June 2010, at 16:09. Content is available under Creative Commons License SA 4.0 unless otherwise noted.