Symbian Blog: Articles by Lars Kurth

Visit Lars Kurth at »

Lars is the committer community manager at the Symbian Foundation. Lars has built strong open source experience and a relationship with the Eclipse community through his previous role as tools architect and owner of the training strategy at Symbian. Lars has 15 years of industry experience in the tools and mobile sector, ranging from embedded and mobile tools to parallel computing tools. Lars has worked in various roles in ARM, Symbian and Nokia: from product manager, chief architect, engineering manager and software developer.

Your Community Calendar

Retweet Share on Facebook

At the beginning of this year we created a calendar for community events on our wiki. Since then, the calendar has been populated with some of the key events in the industry and events that our community is organising.

The fundamental idea of the calendar is to enable you – our community – to find out about events that may be of interest to you. And more importantly for you to add to the calendar. That is why it has been implemented using Wiki technology.

Read more »

Getting to know the packages: the Homescreen framework

Retweet Share on Facebook

The Homescreen framework is a collection of two packages: Homescreen and Homescreensrv. This framework provides two applications, the Homescreen and the Menu through which the user manages widgets and launches other applications.

We have recently spoken to Jaakko Haukipuro, the Homescreen package owner, who has done an amazing job of providing us with up-to-date information on the ongoing development work that has been carried out on these packages for both Symbian^2 and Symbian^3.  And yes, the development for Symbian^4 has already started as you can see from the package backlog.

Read more »

Package Owners, Committers, Contributors

Retweet Share on Facebook

Now that the Symbian platform is open for everyone to see and use, I thought I would write a bit about how the community that owns and develops the Symbian code base is structured and explain how anybody who wants to can get involved. Of course none of this is new, but it is easy not to see the wood for the trees.

Every open source community tends to have roles that are occupied by community members. This is also true for Symbian: in fact the roles in the Symbian community are pretty much the same as in other open source communities. However I want to explain a little more about the slight variations in Symbian and what people stand to gain by joining and contributing to such a young project. Read more »

Update: Symbian council meetings Tokyo (Part 3)

Retweet Share on Facebook

Continuing our update on the Symbian Council meetings in Tokyo, January 14th, Mark Skrebels on the Release Council meeting:

The fifth face-to-face Release Council meeting was held in Tokyo at the kind invitation Fujitsu extended to all councils. The meetings were held at the impressive Academy Hills in the Roppongi Hills Mori Tower and boy what a view we had from the 49th floor!

So firstly what is the Release Council (RC) all about? Our job is to ensure the reliable delivery of robust platform releases – that’s what our Charter says! What that means in practice is that it’s all about steering the planning, execution and delivery of the Symbian releases and providing transparent and open communication to the community on how we are doing. You could say we are responsible for turning the Roadmap into reality. Read more »

Update: Symbian council meetings Tokyo (Part 2)

Retweet Share on Facebook

Continuing our update on the Symbian Council meetings in Tokyo, January 14th, Ian Hutton on the Feature and Roadmap Council:

The Feature and Roadmap Council (“FRC” for short) had a very successful set of meetings in Tokyo.

We regularly talk to contributors about their plans, and in Tokyo were lucky enough to have a local company briefing us in person – Naoki Kanetani and Masao Sekine of Kanrikogaku Kenkyusho Ltd (“K3″ for short) presented their proposal for a revamp of the printing subsystem. This kicked off some interesting discussion which is continuing in the forums.

More generally the FRC tries regularly to  review the strategy across all parts of the platform, giving feedback and guidance to the Technology Managers who work with the community day-to-day to drive the platform forwards.

Another highlight of Tokyo for me were the topics that came up in these technology discussions: for example the need to find innovative ways to keep battery life long whilst allowing the user to make best use of their always-on data connection, plans to update the platform for LTE (“4G”) and other ultra high speed networks and driving scalability to ensure that the Symbian platform can continue to address the needs of both the most powerful smartphones and of lower cost mass market devices. Any of those could make a great blog post in themselves.

In the following video, shot at the Japan Forum, Ian introduced the FRC to the audience

We would like to thank NTT DOCOMO and Fujitsu who hosted council meetings at the prestigous Mori Tower in Roppongi Hills.

Update: Symbian council meetings in Tokyo (Part 1)

Retweet Share on Facebook

Symbian’s last council meetings were held the day before  the Symbian Japan Forum, on 15th January.  I asked each council chair to share their  impressions and the highlights of the council meetings. Here is the response for the Architecture council. I’ll be back with the Feature and Roadmap council report soon.

Daniel Rubio on the Architecture Council meeting:

If I didn’t know better I would imagine the Architecture council as a long table of white bearded wise men sitting behind an oil canvas representation of System Model… quite the contrary, the AC is a very dynamic, young, energetic team made up from eleven companies from the Symbian ecosystem, from Operators to OEMs, to IP Vendors and Silicon vendors, covering a very wide variety of different backgrounds and interests.

As a team, we look into the requests raised by the community; package creations, removals, compatibility breaks, public API lists, etc, etc… but the most gratifying request to date has been that of transferring package ownership or accepting new package owners. That is the case for Ixonos and Accenture, who will be taking ownership of Image/Video Editors and QEMU packages, respectively. This, in words expressed by all AC members, proves that

  • the Symbian Foundation is fully operational,
  • Symbian is alive,
  • and that the genetic variations introduced by other companies sharing the direction of the platform ensures a sound evolution path.

That was one of the highlights of the meetings in Japan… well, that, and the other nine resolutions that got approved alongside, such as the Qt package creation. Read more »

Landing pages revisited

Retweet Share on Facebook

If you have used the source section of developer.symbian.org in the past, you may have come across landing pages for symbian and tools packages. Landing pages are like the project home pages for other open source projects: they provide information that gets you to the code, the bug tracker, the wiki, the mailing lists and forums for a package. If you want to know about a package, you want to contribute or engage with the team behind a package THEN the landing page is for you.

Based on community feedback we have improved the landing pages. The main aim was to make them more usable and to provide useful live data in the landing pages. Of course this is only the beginning: let us know what you think by replying to this post or ideally by posting an idea to improve the pages further. Read more »

Package Owner Workshops: London, Bangalore, Espoo, Tampere and Oulu

Retweet Share on Facebook

Over the last few months, we have run a number of workshops for package owners and committers. The sites we covered so far were London, Bangalore, Espoo, Tampere and Oulu. The workshops were either one day or half-day sessions and open to package owners and committers focussing on topics such as

  • How to build communities
  • How to contribute with Hg aka Mercurial
  • Information on the Contribution Process
  • How to use documentation to build communities
  • How the foundation should evolve its infrastructure

If you are interested what was discussed and presented, check out the workshop pages on the wiki. The sessions were very interactive: lots of discussion took place, problems were raised and some subsequently resolved. Much of the discussion recently covered topics related to preparing for the EPL, something the foundation and it’s members are commited to complete. We made some progress on this with the kernel earlier this year. Earlier workshops covered how to get the most out of SEE.

Each package owner got a pledge card, to set herself goals for how to move forward. These were very popular: let me tell you most package owners have a few of the cards. I hope it will translate into package owners evangelizing there technologies more.

A big thanks to Nokia who hosted the workshops and Teleca, who hosted a big dinner after the Bangalore workshop. Also a big thanks to package owners.


Not Your Grandfather’s OO: Data Context Interaction

Retweet Share on Facebook

Last week I was at Øredev 2009 giving a talk about what we, at the Symbian Foundation, have learned in the last 8 months. Øredev was a very interesting conference: lots of different topics were covered ranging from Agile, Architecture, …, Mobile 2, …, Test, to Web Development.

One topic which stuck out for me was a series of talks about a new programming model called Data Context Interaction, given by Trygve Reenskaug, who created the Model-View-Controller programming pattern, James O. Coplien and Rickard Öberg.

Crossing the Chasm between End User and Programmer

The fundamental premise of Trygve Reenskaug’s talk to introduce the topic was that in many cases OO as it’s implemented today falls short of its original intention of unifying the mental models of the end user and the programmer. The mental model of the user is expressed during run-time: in use-cases and interaction of the user with objects, and objects with objects. The mental model of the programmer is in classes, attributes and methods. The problem is a disconnect between both models that Trygve calls ‘the chasm’. Unfortunately, that disconnect is formalized in today’s OO languages, which Trygve calls Class Oriented Languages and James calls Your Grandfather’s OO.

The disconnect between code on source files and the run-time behavior of objects causes a number of problems. Let’s look at a few – but note this is by no means a comprehensive list:

  • Class Juggernauts: When programming in your Grandfather’s OO, classes tend to accumulate code describing interactions between objects. Object A sends a message to object B and code specific to the interaction ends up in the classes of both objects. In real-life applications, with large number of interactions, classes grow bigger and bigger.
  • Noodle Soup: Code that is part of a use-case tends to be distributed across many classes and many files. The consequence of this is that it is almost impossible to follow the logical flow of the use-case. Everybody who has debugged a Java or C++ app knows that the control flow jumps from class to class.
  • Peer Review – Nearly Impossible: This makes peer review very difficult. Humans can only understand problems if presented in chunks of a certain size. Your Grandfather’s OO counteracts this as algorithms are dispersed across many different source files.
  • Code Correctness can only be explored by tests. In OO often you fix one thing and break another. The only way to avoid this is to have comprehensive test suites.

Some people say that this is all a consequence of complexity: the talks made the case that this is the consequence of an insufficient theoretical foundation for object oriented programming.

So what is DCI? Think The Matrix !

The Data Context Interaction architecture creates the theoretical framework for mapping use-cases directly onto programming constructs. It does this by introducing a number of concepts that enable a programmer to map use-cases onto programming artefacts:

  • Data Objects are dump objects that encapsulate data. They encapsulate what objects are: they do not contain any behavior. Let’s look at the use-case of transferring money from one account to another. What would a bank account object look like? In the DCI world the account object would only be able to increase, decrease, show the balance and the history log.
  • Roles = Interaction: Roles capture behaviors that are about what objects do. They encapsulate algorithm and abilities to interact with other objects. Going pack to the banking example, we have two types of roles: the role of a source account and the role of a destination account. Now one could think that this example is trivial: however, in a real-life banking situation lots of steps may actually be needed for both roles. The source account role may require checking that there is enough balance, may need to flag that the source is suddenly gone into overdraft, may trigger the sending of a fine, etc. The destination role may trigger a further interaction, such as a transfer of money to a savings account if a certain balance has been achieved. One person in the audience came up with The Matrix analogy: Objects are people, roles are capabilities that the humans can load into their brains that they need for a mission, such as Kung Fu. Maybe it is more Dollhouse than The Matrix.

  • Context = Use-Cases: The context is a use-case. It is all about selecting objects that are part of the use-case and injecting the roles that these objects need to play. The context is also about explicitly connecting these objects through interactions. In the case of the money transfer use-case, the context object would store the amount transferred, find the source and destination account objects by their IDs and inject the source and destination roles into the objects.

This means that it is suddenly much easier to translate the mental model of the user into code: there is a clear mapping between both worlds. This makes it easier to test whether the code is correct.

A number of other good things happen too – really by design: Use-cases have a direct representration in code. If you got your use-case right, your code will be right.  The same is true for interactions, which are pure algorithm presented in small pieces of code that the human mind can understand and review. So altogether it will be easier to review and test the the code.

Of course there are problems …

However, all is not well. Not all OO languages have the capabilites to implement the DCI pattern well. You need to be able to inject code into existing classes: try doing this in Java. In C++ it is possible using templates, but only in a static manner. The devil is really in the detail.

Not all questions around DCI are resolved. For example: How does DCI work in a multi-threaded world? How can you introduce it into a non-DCI code-base? Does it really work in large scale applications? DCI is fairly new, so new that there is no Wikipedia article yet. On the other hand, this means there is scope to shape this movement and get involved. Check out the DCI site fore more detail and forum for some interesting discussions.

Nevertheless it was an interesting series of talks and attracted a big and excited crowd. Trygve introduced the problem and topic, James explained the detail and Rickard showed an example using an extension to Java. Given that we have a large C++ code base, I thought there is merit in sharing these ideas and kicking off a discussion.

BoFs @ SEE: Thank you!

Retweet Share on Facebook

I wanted to thank everybody who has hosted and attended the Birds of a Feather session at SEE 2009. I was positively surprised how busy and productive most sessions were and found some footage.

Sorry for overlaying the footage with bird song. The background noise in the main hall was too high: something we will need to fix next time. On that note, I would really like to hear what we can do better next year and what worked well.

A few of the BoF hosts started posting their notes on our web-site: why not add to the pages or add a comment if you participated or have a view.

After the BoFs I chatted to some BoF hosts and attendees, and thought I’d share some quotes.

  • Remek Zajak, package owner, was very positively surprised about the feedback and engagement he got for his BoF
  • Salvatore Rinaldo: “It was my first BoF … I prepared some slides as a back up to keep the conversation going, but after the first 10 mins people started to discuss more and more … It was a good experience for me.”
  • Chris Dudding, package owner, had an interesting story about an attendee from the Gendarmerie Nationale who was interested in the ability of police forces to recover data from a mobile devices.
  • Hamish Willee: “Got to say, I was surprised by the degree of  success we had with the BOFs – but they were really very valuable for my team. Great job – and thanks for the opportunity!

Do add your own by commenting to this post.