Episode 3

Friday, March 12, 2010


  • Qt 4.7 Tech Preview
  • 3rd Party Qt Port to Palm WebOS
  • Qt for S60 Runtime
  • Qt Board Verification Program
Mark Hatch and Justin Noel

Mark: 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. My name is Mark Hatch and I run the Qt Services Business at Integrated Computer Solutions. With me today, again, is Justin Noel one of our top Qt engineers. So Justin, what's going on today in Qt?

Justin: Well it's actually been an exciting week Mark. Not only did yesterday Qt 4.7 technology preview 1 come out, but there's been a number of topics such as a Palm Pre port, that's Palm's web OS, they're talking about the Qt S60 runtime package out there in the wild. It's currently in Beta. And the Qt Board Verification Program where hardware can be certified by Nokia itself.

M: Okay, so let's go back to that Qt 4.7 tech preview. So this is the first time we've seen a tech preview on 4.7, correct?

J: Yes, in fact it's the first official release of the API. The API is in technology preview, which means the API is not stable. They're still at the point where they reserve the right to change function names, mess with enums, change inheritance if necessary, but the idea is that if you have projects right now that you are currently working in 4.6, you might want to see how they work with 4.7 and report any feedback back to Nokia while they can still change the APIs.

M: Okay, so you can't use this for any commercial applications because it's only released under the LGPL or GPL licenses, right?

J: Yeah, there is no commercial license for the technology previews, the betas, or the release candidates. The basic idea is that they don't want this shipping in the wild because it's not guaranteed to be backward compatible; it's not even guaranteed to work. It's there to make sure that the features that are being released are what the customers are actually going to want, and that any type of bug fixes that they have made have not regressed any other part of Qt.

M: Oh that never happens.

J: Oh no, not at all.

M: So we're going to cover 4.7 next week in next week's podcast in detail, but as a preview, what might you say are the most interesting things in 4.7 that people should take a look at right off?

J: Well of course the most exciting, and we talked about this last week, is Qt Quick - their declarative UI system that Nokia has come out with. It's basically a mash up of cascading style sheets and JavaScript to create very dynamic user interfaces for things in the mobile space. But there have been some surprises as I was just building it last night; they rolled back in a few of the mobility APIs that were in the mobility package that just went Beta. So things like bearer management and the video widget have come back into mainline Qt for this 4.7 release. Also the brand spanking new Qt Mobility APIs have also been released - I mean the Qt Multimedia APIs, which is what the Mobility video widget is actually built on top of.

M: That's really cool. I know that there's a lot of action going on on the net relative to Qt Quick. There's a YouTube video which was pretty impressive release showing some fairly amazing things without a lot of the coding you would expect.

J: Yeah, if you go to Nokia's homepage, there's quite the demo.

M: So let's switch gears and talk Mr. Black there. I guess the infamous Darron Black is at it again, so what is he doing?

J: Yeah you might remember that name from a few weeks ago when Darron Black ported Qt to the Amazon Kindle. The unfortunate part about that port is that Darron actually had to reboot the Kindle between running Kindle software and running Qt software, but it did work which is the amazing part. This week Darron announced that he ported Qt to the Palm Pre, which runs Palm's Web OS. He used the SDL which is Palm's API, well it actually an open source library, but it's Palm's suggested route for writing games for the Palm Pre and the Palm Pixie. So Darron was able to use that API to draw the graphics and then hook into just native Linux subsystems to get the touch screen and things like that working.

M: Well that's pretty cool. So he only focused on the Pre not the Pixie, right?

J: Yeah in fact it doesn't mention the Pixie at all. It kind of makes me wonder, because the Pixie doesn't have a graphics accelerator, if the Pixie has enough horsepower to actually run SDL with the performance necessary to run Qt.

M: Now what's the native language for Web OS? Is that Java, or is that C++, or is it something else?

J: It's actually something else. They have their own toolkit that's basically built around running very lightweight applications that are more like local web pages than anything else, so it's pretty much JavaScript and their SDK. Okay, what use would this port be to somebody that's written something in Qt? Well it's kind of nice to see that Qt running on all these different platforms and architectures, but the actual problem is in Palm's SDK licensing agreement. One of the problems is that to ship an application for the Palm, it must be a single executable, you can't actually distribute libraries which implies static linking.

That creates two problems. One, because it's statically linked, it's going to be extremely difficult to linking it to the LGPL version of Qt - almost impossible. The other problem is that it would make your application rather huge. Say that you statically linked in WebKit, that's a lot of symbols to put into your application and if you were running more than one Qt application at time, you'd be blowing a lot of memory just having multiple symbol tables of Qt in each application.

M: So the answer is that you could use this as a proof of concept if you have an existing application you wanted to show off from the Palm, but in terms of any production, it's probably not ready for prime time.

J: Well if Nokia had the help of Palm, then this would be a very trivial problem because Palm could do something similar to what Nokia did with the S60 and provide a Qt runtime package. If applications depended on Qt libraries already being installed on the phone, then they could download and install the Qt runtime for Web OS.

M: Well hopefully some people from Nokia and Palm are listening here and will work together to make this port more of a reality, so that we can actually port Qt applications to the Palm.

J: Yeah, it will be really nice to have portable phone applications across all devices.

M: And speaking of which, there's something going on in the S60 area too.

J: Yeah, a couple weeks ago the Qt S60 runtime went beta. We've been using it here at ICS. Prior to that we had been doing custom installs of Qt onto all the different phones, but the idea is that Qt has a supported package for the S60 that will be integrated eventually with the Ovi store. So if your application depends on Qt, when a user buys or downloads your application from the Ovi store, the Ovi magic will make sure that before installing your application that the Qt S60 runtime is downloaded and already installed and will automatically update. You can kind of think of this as the Java runtime that runs on your desktop or your phone. It's a whole separate application. It updates itself. It's backward compatible, and it just works.

M: This is Qt 4.6 that they've announced here?

J: Yes. The S60 runtime is based entirely on Qt 4.6.

M: So it doesn't have any of the Mobility APIs, location services or anything else built in yet?

J: No. Well it does have some Mobility built in. We have been installing the Mobility APIs separately. The biggest missing thing is that Qt Quick still, even in the 4.7 technology preview has not been released for the S60, which I think is going to be the most useful platform for Qt Quick.

M: Yeah that's one of the main targets there. That and any embedded device. Certainly you would see Qt Quick in places where you might see Flash, like in the automotive industry and places like that.

J: Exactly.

M: Interesting. Well the last topic we have is another embedded application area, and that is the new verification program.

J: Yes Mark. Basically Nokia has developed the Qt Board Verification Program which basically takes reference boards that are distributed by the vendors and will certify that not only does Qt run on it, but it performs well. Now Qt's basic requirements for running on embedded Linux are actually very small. It really just requires the kernel works and it supports a frame buffer. Now all sorts of problems can go wrong because the basic graphics driver for Qt embedded basically draws all of it's graphics in CPU memory and then blitz it into the frame buffer. Depending on what your memory bus is like between the main processor memory and graphics memory, you could see varying levels of performance. Something that we've always done here at ICS is when customers come to us with a new embedded project, we always verify that on their reference platform that Qt runs well and often times we have to write some sort of accelerated graphics driver for Qt embedded. This is going to be a program where you can make sure that when you buy a reference board that your vendor has completely supported Qt in a way that's going to be sensible and fast in graphics performance.

M: So this, for example, I guess the first one that they did here was the Beagle Board - a pretty popular one.

J: Yeah, TI is completely on the Qt bandwagon. They have the Beagle Board, their big platform is OMAP, and they've been very helpful partnering with Nokia to make sure that their boards are supported. I think that the Qt Board Verification program is going to have a very slow ramp up while the vendors come around to the idea that Qt is very powerful and very portable and runs everywhere.

M: So, as you said the first board that was verified for Nokia was the Beagle Board. Who's doing the verification? Is that Nokia or are they doing that through partners?

J: Well they're going through partners and the first partner they've announced is basysKom, which is out of Germany. They're the ones who verified that the Beagle Board ran properly and certified it with Nokia.

M: Did they check it out with the PowerVR drivers?

J: That's actually an interesting question because I didn't notice on the press release or any of the chatter whether there were going to be various levels of certification. You can sort of see some hardware that don't have the PowerVR chips would work just fine for a regular application, nothing too fancy, but then there's an extra tier of boards that have 3-D capabilities and can do things like OpenGL and run extremely fast.

M: What we've been finding in our projects with the Beagle is that if you're pretty much doing only 2-D stuff like putting buttons on the screen and things like that, the basic putting Qt onto the neon side of the house on the Beagle works fine, it's only when you start trying to do very fancy 3-D graphics and stuff that you need.

J: Yeah, it seems our basic problem with the Beagle Board has been if you're not running Open Embedded, and if you want to home brew your own root install, getting those PowerVR drivers to work is kind of like playing Jenga.

M: Yeah well the PowerVR is a proprietary kind of subsystem so those drivers themselves before you can start getting them into Qt, you have to deal with that issue.

Well good. Thank you very much Justin. It's been another interesting week in Qt. Please join us next week when we'll spend more time on 4.7, though I suspect there will be even more things happening which will share the limelight with the 4.7 release. Again, thank you Justin for joining us this week and this is Mark Hatch. We'll talk to you again next week.