Episode 15

Wednesday, November 10, 2010


  • Qt Developer Days Recap
  • MeeGo Conference Dublin
  • Qt 4.7 with Qt Quick
  • Qt 4.7.1
  • Qt Mobility 1.1
  • Qt Creator 2.1 Beta 2
  • N8; N900
Mark Hatch and Justin Noel


Welcome to the ICS Network's This Week in Qt; the 10 minute podcast that keeps you informed of significant events that may impact your engineering projects. If you've not yet heard of ICS, please visit our website at www.ICS.com. As an organization, we believe that 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 road block that every project has, please contact us at sales@ics.com.

Mark Hatch: Good morning this is Mark Hatch, I run the Qt business here at ICS and today Justin Noel here to talk about this week in Qt. So as some of you may have noticed, it's been a couple of weeks since we have last done a podcast. This is what we call the.. wouldn't call it… its not the Ides of of March but its the Ides of October because with all the different conferences that are coming in during this time period. Both Justin and myself have been flying all over the world between Munich and California and now Dublin coming up to trying to actually meet many of you people in person so hopefully we're going to see some more of you guys at the MeeGo conference in Dublin, next week. Now lets talk about what's been happening. Justin, what do we have to talk about today?

Justin Noel: Oh, we have a lot of things actually, too many things to talk about. As you said, every year in the world of Qt around October is all of the conferences, the releases, all sorts of stuff that's going on. So we're going to talk about things that happened at Dev Days, both in Munich and in San Francisco. Talk a little bit about the upcoming MeeGo conference in Dublin. Then were going to talk about all the releases that have happened including the official release of Qt 4.7 with its Qt Quick. We're going to talk about 4.7.1 that was quickly released. That came out this week; a lot of bug fixes there. Mobility 1.1 and the second beta of the upcoming Qt Creator 2.1. And we will talk a little bit about the N8 and the N900 and some new releases that have come out on those devices.

Mark Hatch: Great, so lets talk about Dev Days; those have been pretty exciting. There were over a 1000 people I think in Munich and almost six or seven hundred in California. Certainly the largest that I've ever been to and I've been to almost all and you've been to all of them I think.

Justin Noel: Yes, I have been to all of the Munich Dev Days and about half of the San Francisco ones. In the last two years at both shows they have doubled their attendance. Even last year in Munich, there must have been 500 hundred people and I was really impressed with that (lunch was elbow to elbow). This year they actually chose a new venue that's much larger and they had a thousand attendees in Munich.

Mark Hatch: Boy if you didn't go to Munich and you're in the Europe area, you really missed something. Make sure you go next year because if it's a thousand this year, it is going to be fifteen hundred next year, its just growing like crazy and you certainly learn a lot. What were some of the things they talked about?

Justin Noel: Well of course the shinny new thing is Qt Quick, so there was actually entire track where you could spend the entire conference in sessions that were talking about Qt Quick, how to use Qt Quick and new things that are going to come out with Qt Quick. So since it's the shinny new thing, it was extremely popular. Everybody wanted to know about it, how to use it, how to leverage it to their advantage. Qt Quick right now is mostly geared toward the embedded space where you have a fixed screen size and not a lot of re-sizing. But everyone I talked to, even people who wrote desktop software, were very interested in their project to give their application that extra pizzazz of animations and making it look like something custom, and something that when you touch it, it's interactive; it makes you feel like you're actually using something.

Mark Hatch: The other part of that, besides just the facility and the infrastructures, they also talked about Qt Quick Components coming in?

Justin Noel: Yeah, in fact that's one of the things that are up-coming for Qt Quick. There's a lot missing right now. One of the things that is missing is an actual widget set. Because right now, you get your choice of items that consist of things like, lists, images, mouse areas and text areas. Using a combination of those items can actually get you pretty far in your application, but there's no such thing as a switch, or slider or a push button. So Qt Components is going to be a sort of widget library that's going to come out that you can use in Qt Quick to actually use things like sliders. When you make an instance of one of these in MeeGo, you will get a MeeGo slider, if you use it on a different platform, the slider will look different.

Mark Hatch: So, given the Qt Quick kind of background, and theme in Munich, so what happened at ICS between Munich and Dev Days in San Francisco? I think you had some insight into that.

Justin Noel: Yeah, well actually in Munich, I was really impressed with the amount of MeeGo interest. It seemed like everybody, all the vendors, there was a booth of Qt devices, a bunch of them were MeeGo. Everyone was talking about MeeGo, things they're working on. Everyone had devices on their tables. In particular, I was rather impressed with the MeeGo IVI System (In Vehicle Infotainment). I'm sort of fascinated by the idea that the big LCD in the middle of your dash would run Qt. I also really like Qt Quick, in fact we've done a bunch of projects here at ICS using it for customers that are planning to ship their products real soon. Its amazing how far you can get without an actual widget set, I would suggest everyone try it. So I decided to go ahead and write an example program combining both MeeGo IVI and Qt Quick. I decided I would write a computer program that would talk to the fuel injection computer from my car which turned out to be a real easy task because it communicates over serial and I've got the adapters. So in about a week, we came up with a really cool demo that basically supplied information from the ECU (the fuel injection computer from my car), to a display on a dashboard with a list of all the sensors and it was written in QML with all these animations. We presented that demo at Dev Days in San Francisco, we didn't have it in Munich, so we wrote it, pretty much in between. Nokia actually recorded my demo in the ICS booth and posted it to the Qt Studios Channel over at YouTube. So if you follow the links that are provided with this podcast, you can go ahead and check out the ICS fuel injection plus Qt demo from San Francisco.

Mark Hatch: Yeah, Justin's being a little modest here; definitely the demo he put together in a couple of days was probably the thing to see in California. Our booth was five or six deep at almost every break as people came by and looked at how the dashboard was created and how it connected to this fuel injection system. Of course, the piece of eye candy that probably got a lot of people was this big intake manifold sitting on the table there that I guess is eventually going to go on the small block Chevy Camaro right?

Justin Noel: Yeah, I've actually got a fuel injection set up that I'm preparing to put into an old Camaro that I have. We actually brought that as a prop; you will see it in Dublin if anybody is going to that. The coolest thing about the demo, and one of the reasons why we were able to write it so fast (you hear Mark say it only took two days is, which is actually true, we had most of the app written in two days), is that the user interface, the set of gauges and all the decorations were actually done by one of our artists in PhotoShop and exported to QML using a script from Qt Labs which is a PhotoShop to QML converter. That made doing the graphics really trivial and our artist got exactly his vision in the final product because the dashboard was just a collection of images, including the needles being an image; they all get exported as QML items and then myself, as a programmer just need to rotate the needles.

Mark Hatch: Right and we get out of the big debate here because whenever your doing a user interface with some artist who has put together something in Photo Shop, its always like, "well that pixel is too far to the left" or "its not the right shading", you know its really pixel perfect at this point, so if he doesn't like it, its because its his fault, not ours.

Justin Noel: Yeah, our user interface designers and our artists here at ICS always have this adversarial relationship with the developers because they give them these images and these cut up sub-images of what they want and they tell the developers, ‘give me something in C++ that looks exactly like this.' And what they get back is never exactly ‘this' for various reasons. But now with QML they can be reasonably sure that they can get exactly what they want because they can actually produce the original QML.

Mark Hatch: Yeah, this is really a major paradigm shift on this whole embedded system area because the designers always kind of had the edge in terms of trying to tell developers what they wanted to see but now they're part of the team. One of the things we're seeing and doing here at ICS is that were bringing in artists and people who have an eye for user interfaces to become part of our development team so that they end up providing the QML artwork through Adobe PhotoShop that our customers want and then our engineers can implement that and connect it to the real life back end.

Justin Noel: Yeah and once the visual designer is done and mature in Qt Creator, there can actually be an iterative process where the designer can design the user interface and give it to the programmers. The programmers can change the QML and then even later, the artists can go back and make their own changes to update some new ideas they may have had and won't step on what the programmer has already done. That's going to be a an upcoming feature that is going to start in Qt Creator 2.1 but it will probably take a long time before it matures to the point where it can replace PhotoShop in all of the things that it can do.

Mark Hatch: That's pretty cool, it's hard to replace Photo Shop, and yeah, I imagine that a lot of the artists still want to use it, but this is another option here too.

Justin Noel: It's pretty amazing, because I always delivered gauges that had a glare layer on top of it so it looked like glass and apparently that was really easy to do in PhotoShop and that would have been a lot harder for me to do, given a glare image in widgets.

Mark Hatch: Wow! So next week is the MeeGo conference in Dublin so there's over a thousand people pre-registered already for that. ICS will be there with our tables and again with the very famous intake manifold demo of Justin's so stop by. So let's talk about what's new in Qt. We have 4.7, 4.7.1, all sorts of things coming out at us.

Justin Noel: Yeah, pretty much everything that used to be in Beta, is now released. We talked about (weeks ago) about the upcoming 4.7 and in fact now 4.7.1 is out. In 4.7.1 it was mostly bug fixes. If you look at the change log, you can see an enormous amount of things changed in the Symbian platform. I can only assume that is in preparation for an actual 4.7 update on the production N8s. Right now there is a developer version. Us as developers have it installed on our N8s so we can develop applications and test them, but there's been nothing provided to the public where they could have 4.7 on their phones out in the wild.

Mark Hatch: Right, in fact, one of the Fact or Crap questions, which is a traditional contest at these Dev Days, was whether the N8 was shipping with 4.7 or 4.6. It was amazing the number of people who thought it was 4.7 and then heard the buzzer and it turned out that was crap.

Justin Noel: So like Mark mentioned, there is a traditional trivia game at Dev Days called Fact or Crap where at the enormous dinner that they have, they run by table, and each table gets to guess on trivia questions as to whether they are true or false (AKA Fact or Crap).

Mark Hatch: The Trolls are pretty tricky on their questions there.

Justin Noel: Yes, they definitely make it part trivia, part guessing game.

Mark Hatch: You know, if you guys have ever had multiple choices for like psychology tests (those are like the worst), these are almost that level of difficulty. OK so we have 4.7 and they followed it quickly with 4.7.1 and now we have Qt Mobility. What's the 1.1 release? What do we have there?

Justin Noel: So Mobility is advancing extremely quickly. I went to the Mobility Roadmap show in Dev Days Munich and they have 1.1 that was in beta at the time, it is now out. This includes some really cool things, especially visual things such as a mapping widget. On any platform that has a Mobility mapping back end, you can make an instance of Mapping Widget and start using it. There's only one back end right now, and it's for Ovi Maps, but you could theoretically write one for Google Maps if you really wanted to. So the nifty thing is that if your application wants to locate things on a map, you can just make a mapping widget and set its location or even do searches of locations and find things around the user, using their GPS location.

Mark Hatch: Well that's really cool.

Justin Noel: The other really cool thing is document gallery widgets. What this means is that, it's basically views for like looking through music. What that means is automatic cover flow basically. So you get really nifty effects based on the type of document that you have populated your list with. So that's going to save you a lot of time if you want to make music players or things like that.

Mark Hatch: I guess some of the Mobility would actually run on the desktop. Like for example we have customers that want that album flip feel you see in iTunes on their desktop apps.

Justin Noel: I will have to check that one out, but a lot of Mobility does just run on the desktop and there are massive amounts of it that does not, but could. I've almost been tempted myself to sit down and start writing a few back ends for myself for Mobility on Linux just to make sure that on the desktop that you can get access to the location, the multimedia stuff already works, you know some other things, just to round it out. The Mobility folks right now are very focused on the Nokia handsets and I think that with a little verification and a little bit of effort these things could actually run on the desktop as well.

Mark Hatch: Yeah, they're making good progress here, I mean; we've been watching some of them like the camera API and stuff because there are some projects around that and its maturing quickly, it's a pioneer type API still, but its getting much better.

Justin Noel: Yeah, at the roadmap talk, they were talking about having a1.2 technology preview at the beginning of next year. So they're going to be banging these out very quickly; mostly because they need to catch up with some other mobile platforms that do provide all this stuff. So one of the things they have right now is a messaging API that supports MMS and email, in 1.2 they're going to have instant messaging support.

Mark Hatch: It's almost like the old Trolls where they would quickly turn around new features and stuff all piled into the mobility piece. It's kind of a revival of that type of progress.

Justin Noel: Yeah, so these releases… its every three months, there's something new; there's a new preview, there's a new beta, there's a new release. So I think things are going to be maturing very quickly. One thing that showed up in 1.1 is QML bindings, where you can actually either use objects or widgets inside a QML for Mobility and I think in 1.2 you're going to see more of these as well. So right now in QML, you can use the gallery widgets, so you can get cover flow, you can use the location services to find your GPS coordinates, you can use the messaging API to get a list of all the email from your phone. So you could basically right now, sit down and write Qt Quick application that does SMS or emailing. I think you're going to see in 1.2 a lot more of the Mobility's API, such as the mapping widgets available inside of QML.

Mark Hatch: So what about the SDKs? What's going on there?

Justin Noel: So 4.7 was released and a Qt SDK was available for that, which means that you can download Creator and a pre-built Qt in one package. For 4.7.1, there is no SDK. It is suggested that you use the existing SDK and simply import this new version of Qt into the SDK. Every SDK has the ability (and this actually part of Creator) to have multiple versions of Qt registered and then you just pick the one you want to build with.

Mark Hatch: So that's Qt SDK and that's for the desktop focus SDK…

Justin Noel: Yeah, and I don't think were going to see another one of those until Qt Creator 2.1 comes out, because that's going to be a large piece of functionality in the SDK; that you cant insert your own Creator into the SDK, you can insert your own Qt though.

Mark Hatch: OK, how about the Nokia SDK (which is the handset version)?

Justin Noel: So the Nokia SDK is distributed by Forum Nokia, it's a whole other beast and it's probably perpetually going to lag behind regular Qt. This is because they have a lot more to worry about. They need to get all the simulators working, they to need make sure that their phones work with the new Qt and they're going to have on-device debugging things to worry about. So we haven't seen a Nokia Qt SDK in a while and I don't think we will see one until 4.7 goes live on the N8s. 4.7 has gone live on the N900 with PR 1.3 but I think they're still going to wait. They've said roughly the end of the year, might slip to the beginning of next year, that we will see an official release on Symbian 3.

Mark Hatch: So what's going on in the phone area of Nokia?

Justin Noel: So the N8s have shipped. If you pre-ordered your phone, you should have it in your hand now. I'm not sure if they have fulfilled everybody's order yet, so that you could order one and get one the next day from the Nokia store. I've gotten mine and it does work and it does have Qt 4.6 on it. If you're adventurous, you can install the developer package for 4.7. The public release software 1.3 for the N900 came out, a slew of fixes there. The most notable for us as Qt developers is Qt 4.7 which means that you can run Qt Quick applications on the N900.

Mark Hatch: So if you're starting to develop on the N8 or thinking about developing on the N8, there are two things that you ought to be aware of in the Americas anyway, there may be similar programs happening elsewhere, but in the Americas, Forum Nokia is hosting a program called "Calling All Innovators" which means you can write an application and submit it and it can get accepted into the Ovi store. They're giving away literally millions of dollars in either marketing or prize money to people who have submitted applications. So looking at forum.nokia.com and looking at more information on that, would certainly be worth it.

Justin Noel: Yeah, if you're thinking of writing an app for the Ovi store, this is a great contest to enter. Everyone loves seeing the headlines that say they're giving millions of dollars away, which is true, but the prize money is pretty fine grained and very categorized. So, you can write your application for a specific category and have a fairly decent chance at actually winning something.

Mark Hatch: We have a lot of our engineers here at ICS who are participating in this contest as individuals or as teams of individuals trying to put together some apps during off-hours, it's pretty exciting. The other piece here too is that as you're thinking of doing this, visit the ICS website, there is a Qt hands-on training road show going on right now with the N8. If you hit the ICS website lower right hand corner, there is a link to it. ICS is doing this in cooperation with Forum Nokia. The goal here is to train people how to use Qt on the N8. This week we had more than 120 people in Mountain View and there is another 70 registered in Vancouver next week and the cities keep rolling out beyond here, so its been a very exciting road show.

Justin Noel: Yeah, it's really interesting, Forum Nokia is doing this worldwide tour, ICS is doing the North American part and you can actually sign up and go to this training. It's free and you can actually use an N8 in the class to develop an application for the N8 and see it run on an N8.

Mark Hatch: Exactly right! And these road shows happening in North America are being hosted and trained by our Forum Nokia champion, Gregg Lebovitz. He is doing the training and the seem to be giving away N8s here and there, so if you're thinking about going, then you ought to go and see if you can pick up an N8 too.

Justin Noel: Yeah, and I think the coolest part about it is that it's not the type of road show where you sit and watch somebody talk all day about how cool this new product is, you get to actually use it and make an application for said product.

Mark Hatch: It's hands-on.

Justin Noel: Yeah, I thought it was really cool when I went to go see it.

Mark Hatch: So if you go, make sure you go up to Gregg and say, "hey, I heard about this on the Podcast of Justin and Mark" and you wanted to say hi and he will probably looked puzzled at you. But that's OK. So it sounds like it's been an exciting few weeks here and looks like it's going to continue through the end of the year. More and more stuff as we've talked about in other podcasts. You definitely get the feeling that Nokia is trying to hit the accelerator here, especially in the Mobility area. Well thank you again Justin.

Justin Noel: Thanks everybody, and we will try to get these back on schedule, so we will see you next week on the same time, same channel.

Mark Hatch: Take care.