Contributing to the Symbian platform As this is one of the first outside contributions, I was asked to talk about that a little as well, so the second half will go int that and povide some info about faced issues and hopefully some tips to get going faster or easier
Sun Micrrosystems, Sillicon Valley which is actually ext to Foster City, where the new Symbian US headquarter is Working on document review, everything related to comments and annotations
Describes not just calendar synchronization such as SyncML, but a calendar access protocol on a remote server This includes - searching - freebusy lookup -> looking into when is my colleague actually is availables before creating a meeting - scheduling, sending out, invitations, cancelling them etc. - server – to – server interoperability
Events does not only mean a meeting, but also allday-event, todos, journal notes etc Important to note is that this is just about accessing and creating the data. No assumptions or declaration how to present or store the data, free to implementation. Could be a device with a local, offline store, could be a picture frame just showing your next meeting etc. Althought only just two years passed, there is already a wide range of open sourc and commercial caldav servers and clients available
Mozilla Thunderbird with Lightning Extension as well as Sunbird And several other linux groupware clients for gnome and KDE
Perfect match, open platform should support available open standards if it fits into the platform's direction Users don't want to be locked into proprietary calendar databases, access applications or access/sync protocols Access your own data, whereever you want no matter what client you use Wide range of different use case...and not exclusivly, but all at the same time
The next Smybian release, which will be Symbian^3, will have support for multiple calendars. This means you can add and delete as many calendars as you want. You can have your own personal or family calendar with google, you are using a Sun or other Calender Server at work and your church or charity club is running some open-source caldav server -> you can access and sync to all these calendars out of the box with your caldav enabled device
Not making this up, Android bug entry applies to Symbian the exact same way
At this point, a big thank you Sharad -> raise your hand We had lots of very fruitful discussions and he is being a very open and supporting package owner, thanks again Plan is to have this integrated in Symbian^3, the next version of Symbian. Some missing stuff is currently being developed by Nokia and myself and then we can hopefully merge it end of November into the main codeline.
# CalDAV: This is the standard itself. # GroupDav: Similar to CalDAV, but easier to implement on the server side, e.g. a plain Apache + mod_dav is enough. # CTag: An extension to CalDAV to check quickly whether a calendar collection has changed. # Collection Synchronization for WebDAV: To receive only changed events from a server, thus significantly speeding up synchronization. If there is no internet connectiona available, it will be noticed and tried again during next synchronization run
the code is not only tested against our own Caldav Calendar Server , but tested extensively against a wide range of other CalDAV implementations as well. writing data: be as strict as possible - reading data: be as loose as possible What do I mean by that? One quick example: when deleting a calendar, returned error code according to standdard should be 204 NO CONTENT, but many servers return 200 OK Client has to deal with these things to make sure it works with all of them!
One part of the contribution automated testsuite, Creating and deleting events Creating and deleting todos Regular get, multiget Capabilites Synctokens – are changes available Around 10 different servers Iron out bugs at Calconnect in this month CalConnect, The Calendaring and Scheduling Consortium. The Consortium is focused on the interoperable exchange of calendaring and scheduling information between dissimilar programs, platforms, and technologies.
Freebusy lookup and scheldung -> Server will send out invitations using iSchedule Server-to-server scheduling
- Links to the the bugzilla bug entry and source code - contact info: if you want to contribute or get in touch for anything else.... - testing: list of different servers it was tested with If you want to see the plugin in action or have more detailed questions, just talk to me afterwards or tomorrow.....
Caldav plugin being one of the first larger contributions to the opened up platform, I was asked to comments one some thoughts as well as tipps and tricks Interacting with the foundation and the package owner in general was a very pleasant experience and a lot of stuff is really well documented on the wiki, so I do not have miracles to tell, but some general thoughts and tips for hopefully many, many new contributors in the future.
Symbian is open source now This means many new opportunities and chance to be part of it, from a software point of view, but hardware as well. You are able to actively shape the platform. This does not mean of course that every vendor should integrate their propriatary niche protocol or product into the platform, this is exactly what 3 rd party applications are for. Now your company does not have to wait for something to happen, they can make it happen: It must fit into the platform -> e..g new open standard , extension to an existing one Or completely unrelated contributions, such as better simluator, new languages and so on
# Fix: where you want to contribute source-code to fix a platform defect # Enhance: where you want to contribute source code that makes a minor enhancement to existing functionality # Extend: where you want to contribute source code that represents a major change to existing functionality or an extension to the platform # Invent: where you Add IMAP extension If you would like more information about that and want to know where your contribution could fit it,, have a look at the wiki page or talk to the responsible package owner
This is probably an obvious point, but easy to forget, especially if you were not involved in open source before Communicate: Before you start something, talk to the package owner and commiters of the individual package and discuss your idea, the overall picture and design will be much better at the end. Will also tell you if it fits into the platform and if it actually makes sense Same way, once you start, announce it: forum, mailing list -> create a wiki page, bugzilla entry Don't just slap it on package owner, but develop in the open, commit early to an FCL line. Integration and working together will be much easier! Fix bugs afterwards, submit testing code as well Contributions: correctly sized, ready to merge, high quality, product and vendor independent, and supported by appropriate test code and documentation. Resources inside resource files, not in the code Respect the role of the package owner.....other way around as well of course,...
There also some potential new issues due to the history of symbian. This is the same case for any other open source project, so hopefully some lessons can be learned there As all package owners are currently from Nokia, this can lead to difficulties and potential resentments I'm not saying there is an issue, and as I mentioned earlier, my exoeriecne so long has been the complete opposite, but these are potential issues which need to be watched closely. Hopefully many external contributions, committers, so this situation can be changed Practice not just open source but also open decision making and open governance
But there are also some well known issues which everyone will face during development, in fact, the same ones as someone might have experienced during 3 rd party development So they have nothing to do with the opening of the platform, but make it harder to get new people for contributions So what issues did I have? Emulator: unstable and slow, takes forever to boot Build system: not really reliable, especially related, seems not fixed with raptor Windows perl, python, gcc, java etc Many, many people, especially developers use linux and macs Internet connect
So what is missing for contributors or what would defintily lower the lower the adotpion barrier for any external contributor besides better emulator and build system In my opinion, asking the community for this will not really work. The basic stuff needs to be there and ready to use, and then porting, innovation and so on can take place. Symbian should focus on the core tools. Tools that are just a must to develop for the platform. Editing/Compile/Build/Debug get rid of winscw ->simulator QEMU, hopefully faster, no moe recompiling etc. this means the Windows dependeny is gone!! Try on hardware: There was no reference platofrm for symbian^2, but there is one for Symbian^3 zoom2 as well as beagleboard, low cost great Not only run a textshell, but full GUI Internet connection, possible on zoom2, how about beagleboard? Now that raptor is out, switch to make or something different is proabbly out in the near future, but still highly desirable Gcc Automated buildbots and tinderboxes compile source for different target but run all tests on different targets and publish results
Now that I have all these tools and full access to the source code: Will I ever managed to do that, never find my way around, fixing a bug completely out of the picture actually rather easy. If you are an exiting Symbian C++ developer. not a lot of things change actually. everything you learned before is not going away and are used throughout the platform: Active object, descriptors, resources etc. You can debug any platform application just like you debugged your own 3 rd party applications inside carbide Platform is open source now and it is the same: huge repository of example code!! USE OPENGROK
Feature Code Line FCL I'm frustrated and want to speak to a real person Sometimes things just don't go your way and you need a helping hand. If you've exhausted the forums, mailing lists, package owners and wiki and still can't find the help you need or need further help: IRC you can contact the following people: Symbian Foundation Technology Managers
Symbian Foundation's infrastructure is based on widely, available, open source tools Don't reinvent the wheel, use the available resources Carbide based on eclipse - You want an uml plugin to work with your symbian classes - documentation - task planning - management whatever e..g Google search: look for Eclipse, not carbide!
Never really habe to leave eclipse to do your work... Integration really helps... Everyone has to decide on your own...