Episode 12

Wednesday, July 14, 2010


  • Open Governance Kicks Off
  • Qt Developer Network goes Public Beta
  • QML Components Project making progress
  • Qt 4.7 Beta 2 + Creator 2.1 Snapshots
  • Nokia and Volkswagen show off a Passat w/Nokia Terminal Mode
Mark Hatch and Justin Noel

Intro: Welcome to ICSNetwork's This Week in Qt, the ten minute podcast that keeps you informed of significant events that may impact your engineering projects. If you have not yet heard about ICS, please visit our website at www.ics.com. As an organization, we believe we have the best independent team of Qt engineers in the world. Whether you're starting a new project or need help removing that insurmountable roadblock that every project has, please contact us at sales@ics.com.

Mark: Good morning. This is Mark Hatch. I run the Qt business here at ICS and joining me this morning is Justin Noel one of our senior consulting engineers at ICS and this is This Week in Qt. So Justin, what are we going to talk about today?

Justin: Well there's been a lot going on regarding mailing lists, especially the Qt Open Governance Mailing List. That is the mailing list that is going to flesh out the process in which contributions and the hierarchy of management is going to be produced for Qt going forward: how decisions are going to be made, how patches are going to be implemented and how maintainership is going to be managed in the future. The Qt Developer Network has gone from private beta to public beta. The QML Components project is making progress that's basically like a widget set for Qt Quick. Qt 4.7 beta 2 and Qt Creator 2.1 snapshots are now available. And we'll also talk a little bit about a joint venture between Nokia and Volkswagen.

M: Sounds great. Let's talk about the Open Governance and Qt.

J: The Open Governance Initiative is going to allow the community to take control and management over how Qt is developed in the future. This is going to include the decision making model and its management model, as in who contributes, who is going be maintainers, who is going to be allowed access to the actual commits, and basically is the engineering process behind the community-based Qt.

M: So how is that organized? Have they given any hints yet?

J: Yes, in fact, they've laid out three major topics that are being hashed out on the mailing list. The first is the management hierarchy, the second is the decision-making model, and the third is discussing the lifetime of a patch - meaning, how does it go from myself as a community contributor typing out a patch and submitting it to this process, how does it end up getting into Qt source code.

So the first question is, how is the management hierarchy going to be handled because there are many different models out there both in the commercial and open source space. Nokia has decided that they want to follow the model of the Linux kernel. Basically the Linux kernel has a benevolent dictator in Linus. He decides exactly where Linux is going. He has a group of lieutenants under him for each of the major modules in Linux and if decisions need to be made, if there are conflicts, it is the lieutenants and dictators that decide what happens. They have the final answer in all arguments. They are also the ones who are able to actually submit code and check it in to the source control model. So contributors looking to add code to maybe a driver in Linux would create a patch, discuss it on the mailing list, have it reviewed by one of the lieutenants - somebody actively involved in the project - and then finally, it is usually the lieutenants that get to check it into a branch, it gets tested, and then finally someone as high level as Linus would decide whether it is suitable to be in the mainline code and merges it in.

M: Have they named anybody yet for lieutenants or dictators?

J: No, that is entirely up in the air. I assume it would be Nokia-heavy to begin with because they are the most active contributors to Qt as the moment, being some of the only contributors for new development, but it's entirely up in the air. Right now they are just talking about process and how it's going to work.

M: That's kind of interesting, so I guess it works for Linux where you end up with new features and new functionality being defined by the community and extended. And I can see how it's going to work pretty well for maintenance-type mode for existing features. The new features and the directions there may be more difficult for this Open Governance to work out versus Nokia's own goals.

J: Yes and that's going to be interesting as well, especially when the goals of other corporations comes in because they're actively talking about having both community developers, maybe developers paid for by other companies, developers paid for by Nokia. There are going to be some conflicting interests that are going to become involved, but as Qt becomes more open, these things will become more transparent, and Nokia is probably going to want to exert influence but that influence is going to be very transparent now.

M: Okay, so how are decisions made?

J: Well decisions are made in sort of a meritocracy where those who have contributed more code and have gotten higher in the management hierarchy will basically have more input. Every decision that needs to be made is going to be discussed on mailing lists, and they haven't decided yet the granularity of mailing lists: if there's going to be many lists, one list per module, a master mailing list, but there is going to be discussion on a mailing list. It's going to be encouraged that everybody from top to the bottom, whether you're a dictator of Qt as a whole or you're just a lowly contributor who happens to be working on one sequel driver in the sequel module, is going to be encouraged to give feedback on anything that they can lend expertise to. However, final decisions are going to be made by those higher in the hierarchy. If you're the maintainer of Qt Core, they're going to have final say as to what goes into Qt Core.

M: Okay, understood. So I think the third thing you mentioned was what is the process for submitting a patch and how does that become real?

J: Yes, right now they want to model Nokia's internal process where you create a patch, you pass it to a couple of your peers for review, particularly people who are already familiar with the code that you're changing. There is a back and forth where your comments are made on your patch, you fix it, you send it back. Finally when there are no more comments to be made and everything has been resolved, then that patch gets submitted upstream for the maintainer to actually commit to source control. The biggest question right now is the tools that are going to be used to manage that process. Some people are in favor of the Nokia system where you just simply use email - email your patch around, finally your patch gets signed off by the people you sent it to, and then it goes further up the chain to the maintainers. Other people, of course, want to use more web-based tools where the comments to your patch should have some sort of link-back to the actual line they were commenting on, so you can look back and say, okay how has this patch changed over time. So there's good and bad to everything, of course. Email is easier because it's very much a push technology; it shows up in your inbox; you can access it anywhere. Web-based systems are always clunky, so there is a lot of discussion on tools. There are n number of tools to get these things done and I'm sure that Nokia in this discussion will come up with a couple of tools that they can use, possibly even writing a couple.

M: Okay, well that sounds interesting. There's a long way to go, but at least they've started the process. The Qt Developer Network sometimes in my mind I kind of think of them as being related to the open governance process, although it's kind of a different website but same type of openness.

J: Yes, so topic number two is the Qt Developer Network, which has gone public beta, meaning that up until now, to actually access the content on the site and login you need to have been asked to participate. We've been doing that for a while here at ICS. It has now gone into public beta, so anybody who wants to create an account can do so. The idea is that it's a one stop shop for documentation, downloads, forums, support, and tutorials on Qt. So if you want to know or use Qt as a developer, you can go to developer.qt.nokia.com and find what you need there.

M: So how does this work relative to forums, for example QtCentre which is a very popular set of forums, are they embraced at this point or are they still separate?

J: There's a lot of overlap right now. It's unclear as to how much effect the Qt Developer Network is going to have on other sites. Right now the Qt marketing guys have their own set of blogs at blog.qt.nokia.com, the developers have a set of blogs at labs.trolltech.com, and of course there are the QtCentre Forums. You can see how all three of these things have a massive overlap with the blogging system and forums in the Qt Developer Network. So it's unclear right now if QtCentre is going to decrease in popularity, whether there's going to be an interlinking between the two to share topics and information because Qt Centre is a very popular web forum when it comes to Qt help.

M: Okay, well we'll have to wait and see. They have several months to shake out, I'm sure. So the third topic was related to QML, my favorite topic.

J: Yes, Qt Quick, as we've been talking about for the last few months, is coming along nicely. It's in Qt 4.7, so if you download the beta and Qt Creator 2.1, you can combine those and go ahead and start writing applications in this new language called Qt Quick. And in Creator 2.1 there is actually a visual editor. The idea is that in Qt Quick, you are going to be making these GraphicsView-based interfaces and everything is a very primitive object. You have the concept of rectangles and pixmaps, and that's almost it. In using those, you could make your own buttons, you could make your own sliders and code the logic. However, that's very cumbersome.

The QML Components project is a widget set for Qt Quick that's written entirely in the QML language, so it's based on that JavaScript language and it's based on all those primitive rectangles and images. And what they've done is written the logic code for widgets, such as a slider. When I move the slider pointer it's going to change the value. And they've also given the elements graphical shapes, so that there are images and rectangles combined, so with three rectangles in an image, you can get a slider. You can check out the code out of gitorious - just look under the Qt Components project, and there's also a mailing list at lists.trolltech.com called Qt Components.

M: That sounds like the natural thing. What do you think about the performance? Is there any early feedback on that list as far as whether these components, since they're interpreted based on another interpreted language, are we seeing any concerns about performance?

J: Well that's interesting because there actually has been a lot of traffic about performance and use in the OpenGL rendering engine versus using a native raster engine. They both have their benefits, but it looks like the performance issues are not really related to the logic that's in JavaScript. They're really related to how fast Qt can draw the GraphicsView items, and those items are actually implemented in C++. When you make an image or a rectangle, it's actually underneath making a C++ object called a QGraphicsItem. It's drawing that efficiently which is the hard part.

M: Okay, so the fact that you have an interpreted language with things built in the interpreted language does not, at least at this point, appear to be a performance bottleneck.

J: Yes, the graphics items are built at load time of the QML document, so load times are going to be slower if you've written it in C++, but after that the actual visual items are effectively C++ objects.

M: Okay, interesting. So I guess there was yet another release of Qt this week?

J: Yes, it seems like every two weeks we have some sort of new 4.7 or a new SDK. So this week, it happens to be Qt 4.7 beta 2 and a snapshot release of Qt Creator 2.1. Not a whole lot has changed API-wise in 4.7 beta 2. In fact, on labs.trolltech.com they said basically this beta 2 was created mostly to re-sync with the mobility APIs. Their API did change slightly, so now the 4.7 API in its entirety should be final. The release candidate should be forthcoming, and we'll probably see 4.7 in our hands by fall.

M: So it may even be released before DevDays?

J: It might. It's looking on track to be in our hands, using it before we go to DevDays.

M: But Qt Creator 2.1 is the one that has Qt Quick Editor enabled?

J: Yes, we talked about it a couple weeks ago when Qt Creator 2.0 was released. They had removed the visual editor from Qt Quick for being too immature, so they backed that out and they have now reintroduced it with Qt Creator 2.1. You can create your forms and screens in Qt Quick visually and design their animations in states.

M: Okay I think we can get to the last topic here, something about Nokia and Volkswagen.

J: Yes, I saw a cool, little video this morning. At a trade show, Volkswagen was showing off some neat integration with Nokia products, in particular, plugged into this dashboard of a Passat was this project called Nokia Terminal Mode. What it is is an infotainment system built into the dashboard. It provides radio, heating controls, navigation, the usual things that you would expect of a high-end dashboard system. However, it was all written using Nokia products and even had really nice integration with Nokia phones. Just being in the presence of a Nokia phone, the infotainment system would recognize content and even applications located on the phone and interact with it.

M: So it's kind of like that James Bond movie where he had the flip phone. I think it was a Nokia phone that they use in a BMW.

J: Yes, we are living in the future.

M: Where's my jetpack? So that's it for this week. And Justin, as always thank you for sharing with us the Qt news from this week and I appreciate everybody listening in.

J: I can only hope it's this busy next week. See you all later.