Category Archives: Maemo

…not so long after all

After all the stuff that happened in my professional and personal life last month we can extract some technical bits πŸ™‚

First of all, during Camp KDE it was awesome to talk to people like Jos, Celeste, Alexandra, Till, Leo and Jeff (and many others). It’s good to share your thoughts with many people that you just don’t have this big bandwith for chat that you have when you’re physically together πŸ™‚

Our awesome dragons :P

Our awesome dragons πŸ˜›

I spent last month studying and working with QML, trying to get the most of it and I think that I (and the team that I work with of course) reached a very good level of knowledge regarding the new Qt’s declarative language. We have some expertise with declarative languages for some time now (started with Edje three years ago) and went through QEdje and now we have a proper Qt solution for this that will probably be released with Qt 4.7.

QML is awesome. Big tip: just try to avoid “leaking” code from your c++ controllers and models and you’ll get any interface that your designers want for free :). We achieved very good results working with this architecture for software and I really recommend it for everybody (I’m not talking about this right now as it can be a whole paper – hmm, maybe a paper for next Akademy ? πŸ˜‰ ).

Alexis showing QML mobile shell on N900

Alexis showing QML mobile shell on N900

Ok, so after studying QML and talking a lot with Alexis and others (like Helio) we had great ideas to try out on mobile devices (read N900 here). Let’s see what we can do during tokamak 4. Good to read Aaron’s post about it and to know that he’s excited with this possibility too. I talked about this during my talk at Latinoware conference and right now we can expand and make “my dreams” come true. We have really good use cases for this and we should really focus on this at first. We need help from designers (Nuno and oxygen team?) and usability experts (Celeste, here I am again – I know you should hate me every time I say your name under this circumstances hehe :P). The design of this kind of product should be the first step after studying technologies.

Talking about KDE: for KDE 4.5 I’m really going to change the pastebin applet. Feature-wise it’s really in good shape but it’s not very healthy code-wise and we can really improve it and it’s data engines to something more user friendly and also that can be easily improved with the use of plugins (anybody thinking about service providers and GHNS ?). First of all, it’s not user friendly to call it “pastebin”. My mom have no clue what pastebin is. For sure she knows what “Share it” means and we can make use of KIPI plugins to allow it to export things to Flickr and other services too. So, for 4.5 expect some big improvements on the developer side of pastebin. From a user’s perspective it should just have a better config dialog, interface and will have support for much more services πŸ™‚ (at least I hope so).

Just upgraded to trunk (KDE SC 4.5) and it already looks awesome: from the KDE theme to the new notification messages that Marco is working on. Amarok (as always) had (good) surprises for me and this “Photo” widget is awesome. It ties together the awesome experience of one of your senses (audition) to another sense (vision) and it’s awesome. Great pictures from my favorite artists and songs. Amarok++.

Amarok and new Photo Widget

Amarok and new Photo Widget

Right now, I want to work on so many cool stuff and I just don’t have the time. Probably work is going to consume most of my time for the next 2 months but I’ll make it work and will help KDE to get even better and to start working on Maemo for example. Konquer the world!

Ah, as a simple tip: if you own an N900 just install the “Angry birds” game, it’s awesome hehe πŸ™‚


A long time ago…

Well, it has been a long time since my last post and a lot of stuff happened during that, specially regarding work and that explains a little bit why I was so “offline” last days (month).

It all started when I received my N900 from Maemo’s developer program that is just awesome as it gives the opportunity for developer to have access to the platform and keep developing for it. Comparing to other options: for some fruit company’s platform you have to pay to develop for a closed platform and for other you receive devices to develop to an open platform.Β  Big kudos to Nokia for everything it’s doing with Maemo.

Regarding Maemo, I used my N900 in the last month on all business trips that I did and the vision of having contacts instead of accounts really made a difference. It was so easy to use Skype or my SIP provider (Inphonex) while I was out of the country that my mobile phone just worked as it should always work: as a personal extension of my home phone. Perfect.

So, the trips began with Camp KDE and I went to Los Angeles one week before the conference itself as I had some days to take as vacations. It was really great, from watching a live record of one of my favourite TV shows (Two and a Half men) to watching all the amazing talks during Camp KDE it was all great. I would like to also send some kudos to Camp KDE organizers. I know how hard it is to actually make an event like that happen.

The gate where the show was recorded

The gate where the show was recorded

After Camp KDE I just had three days at home and then went to Oslo/Tampere for Qt work and it was really great to actually see snow for the second time. First time I’ve ever seen it snowing actually (the first time I needed to go up to a mountain last Tokamak hehe – thanks Marius for the chance!! it was awesome).

During this trips I had some ideas regarding mobile platforms and discussed a little bit of it during my talk at Camp KDE and also with Alexis Menard (former Troll). I think that for Tokamak 4 we’re going to have some nice ideas to work on for mobile platforms. It’s important to say that this is all at “pre-pre-pre-pre beginning stage” and that we have a lot of work to be done on the Netbook effort for example that Marco is taking care in an awesome way πŸ™‚

Back to reality I have some work to be done and we are already setting things up for Bossa Conference. So I have Carnival, Tokamak 4 and Bossa Conference in a row. And still job to be done…well, I think I can handle that πŸ˜‰

Bossa Conference

Bossa Conference

So, this is all that happened last month (trust me, a lot happened) and next post will be a little more technical or at least more KDE related and for sure I’ll have some more Maemo related posts in the (very) near future (specially after Tokamak 4).


Qt 4.6: Ow!

So, Qt 4.6.0 is out! It’s really a “big” release: QAnimation Framework, Symbian Release, Qt Creator 1.3, Maemo 5 Tech Preview and Qt Mobility. Ow!

Basically we have been working with the trolls in this release for a year now and it was awesome to see how we got from 4.5 to 4.6. All the work done on the APIs, bug fixing, the release process and also making it more open. The LGPL license, the opening of repositories and bug tracker.

I’ve been advertising about a little piece of this game that is QGraphicsAnchorLayout that is where we spent most of our efforts for this release. We hope that this will help people out there working with rich UI applications and in the need of better layout classes.

Sometime ago I also wrote about some demos for the Maemo and Symbian platforms showing the power of Qt Animation Framework and Qt 4.6 itself as it improved a lot in performance (besides the fact of integration with the platforms as we have the same code for both platforms).

You can take a look at the demos at the video below and try on your mobile phones downloading the sis/deb files from this place. Remember that these are UI demos and some of them are not fully implemented like the Hyper UI not doing real phone calls or not being able to add items to the shopping list (however the Weather and My Budget are probably very, if not 100%, functional).

If you want to take a look at the demo’s code, be my guest and check gitorious for it :). Ah, for those that missed the link above for the download, here it is again: . Summary of Qt 4.6 ? Ow !!!

Take a look at the official Qt 4.6 pages too:

Google Chrome OS. Or, how to miss the shot.

Recently there was a lot of noise regarding the new coolest guy on the street: Google Chrome OS. I was traveling and just today I could read all my feeds, emails and put everything on the right place πŸ™‚

Some people talked about it but I usually don’t pay attention or even read some articles but unluckily I was doing some reviews of Palm Pre, the new Zune and other devices and it’s software and for some reason I landed in the article of Free Software Magazine regarding Google Chrome OS and how KDE and GNOME shot each other on the head. I really don’t pay attention to any flame wars or trolls and usually just ignore these topics as they don’t take us anywhere. But this one got my attention (unluckily, again).

I’m writing about it for a few reasons: first the (lack) of technical background present in the article (I really don’t know the author and I’m not judging his technical skills besides the ones shown in the article), second due the fact of being a “Free Software” magazine (as it points out in the domain name at least) and third due the fact that people just love hype :).

First Act

Let’s talk about technical facts. If I remember correctly the author says that Chrome OS will use a “GNU/Linux” kernel. There is no such thing. The kernel is Linux: period. If it will use a GNU/Linux system is another history. Then there is this talk about Pulseaudio and this is a “hot topic” in the Linux audio system world.

There are people who like it and (from what I hear everyday in mailing lists and IRC channels) more people who doesn’t like it. Personally I don’t use it as I don’t have the need and my distro (slackware) does not ship it by default. The excuse of the author for the fact that Chrome OS was not using GNOME/KDE and/or GNU Linux was that none of them provides what Google wants and because there were too many options and none of them was good enough. If none of them is good enough I’ll let for the reader to decide about it but that is not why Google didn’t use it.

First of all Chrome OS will have the help of Canonical to build it’s stuff so probably behind the Webkit stuff that the user will see as the “workspace” it will just be a regular Linux distribution (probably Ubuntu based) behind the scenes. In the end it is a GNU/Linux based system.

One could argue about Android not using a GNU/Linux based system and people often confuse Android with Chrome OS (even Google doesn’t have an answer for it yet and Googlers says that probably in the future they will converge to the same thing). Android not using GNU/Linux is true and they don’t even use some common systems like HAL to handle hardware making some (ugly?) hacks to do what HAL would solve out of the box for them. But I understand their side and probably they had reasons to do that (dead lines, licenses, etc…).

Well, I’ll not talk about Google’s work right now. They are doing their job in the sense that they are presenting the world a new way of looking at the desktop. But some arguments like: “there are too many ‘desktops’ libraries” and this is due the fact GNU/Linux has two different desktop environments are just…how can I say…ah! these are arguments that comes from people with no technical background. I don’t write about economic stuff, do you know why ? Because I surely have an opinion, but I don’t have the technical background to write about it and I’ll probably just create more noise and confuse people instead of helping them understand something.

I’ll not extend myself more on this section as it can get too long: but arguments saying that applications have dependencies of .so and this is harmful to the user and proposing solutions that are already out there in ANY Linux distribution (bundle of libraries are packages and it’s dependencies if anybody has questions regarding this), etc.. just make noise and have no technical background.

Sometimes journalists/bloggers are the ones that write about everything without knowing anything and this leads to at least confusion.

Second act

I’m not sure if everybody knows that but Google is just arriving at Free Software world (as much other companies, like Nokia for example). The first approach of Google was being open source friend but not free software. And there is a huge difference.

Thanks to many people Google is changing this and becoming closer and closer to free software with initiatives such as Google Summer of Code, when they fund students to work on free software projects and much other initiatives.

But the point is that a “Free Software” magazine has an article attacking the free software community (I say attacking because there is no constructive feedback or review inside an article without technical background). Ok, you may be thinking that I’m beating too much in the “technical background” key, but even from the user’s point of view there are almost no valid arguments there besides the fact that we need to improve sound on Linux (big news here ;)).

So, we have a free software magazine, pushing a non free software initiative and talking about non sense stuff. Google has a great product on it’s hands and no doubt about it. But come on: if you want to compare KDE, GNOME and Chrome Workspace do it the proper way.

Third Act

Hype. It’s all about hype. Google Wave was the brand new silver bullet in the world. Everybody that is not a fan boy and seriously tried to used it know what I’m talking about. But the hype was so big because it was a Google’s product (and usually Google has great products) that everybody started creating use cases, theories and etc.. just due to that. No real use case, no real innovation. Just hype.

Again, Google has great products: GMail, Google Docs, Google Analytics, Google AdSense/AdWords, etc… But sometimes people start talking and expecting things just because of the hype. Trolls and fan boys are species that walks together in the world.

The same is happening with Chrome OS here. It’s not ready yet but people are already saying that it will be the best thing ever. Or even that very solid COMMUNITIES and the software around them are dead just because in one year somebody will bring a new product.

Examples from the past ? ‘Virtual reality’ (being used on browsers with VRML and videogames with those horrible goggles), ‘Java Applets’ (who don’t remember it being the final solution for dynamic web pages ???) or even ‘Director’ who was the killer application for multimedia stuff and would kill Flash ?

Final Act: Summary

Let’s just calm down and learn with each other. Gnome and KDE learned a lot of things with each other and with it’s own communities, Linux and the GNU/Linux distributions too.

Google has great products and can really create expectations on it’s users. Google search, maps, Android…all great products but all of them (as any other software) have problems and bugs (anyone using GMail’s imap?).

So please, for the next ones writing about the brand new thing that will kill all the others out there, calm down, write your opinion but just don’t start saying that projects are going to die if you don’t have any clue about it and don’t start guessing stuff. Want to write a user review ? Write it as a user review and about what is bad (maybe what is good too). But writing guessing articles tending to be a user review but pretending to be a technical article is not good for anybody.

Avoid shooting yourself in the foot.

How is the weather in Qt 4.6 ?

Hmm…it looks sunny πŸ™‚ Take a look at this video. This is a demo we did using Qt 4.6 for S60 and the N900. You can find the source code in the same place where you can get Qt’s source code.

This is a “making of” video from the designers perspective, that shows from where they started and where they are right now in terms of design and of course, the implementation of the demo by the end of the video :). It also shows a little bit the work flow of INdT’s designers when designing new products.

Nice weather application. We didn’t have time to improve KDE’sΒ  one but for KDE 4.5 we’ll abuse so much of Qt 4.6! Performance improvements and features added. Who can imagine what’s coming in Qt 4.7 and 4.8 ???? (ok ok, maybe we know that and Thiago for sure knows that….but come on…you too can take a look at the repos and know what’s coming ;). Enjoy the video!

Changing the weather from Ian Moreira on Vimeo.

User Experience with Different Devices

It has been some time that I had some ideas regarding different devices. My first try was with the so famous “Mysterious Device” that we had during Tokamak 3 and later I played a little bit with my N85 and QtS60.

Qt Everywhere: yes, this means a lot of things. For Nokia it means that the same framework will be available for different platforms, for users that they will have more software being developed and for us, developers, that we can bring our software for all the devices that Qt is ported to.

Let’s also talk a little bit about platforms: Nokia has been playing with Maemo for some time now and the platform itself is pretty mature. Of course it will have problems but it’s pretty mature and compared to a lot of others out there it’s much better. But Maemo was “confined” to internet tablets…a device that was not good enough to be a netbook and not small enough to be a phone. It was “just” a pocket computer.

However the scenario changed and now we have a mobile phone running Maemo out there (N900) and Nokia learned the lesson about how to attract open source developers (just think that while Apple charge developers to get the full SDK and deploy their software, Nokia gives big discounts on new devices for developers).

I was pretty sad that I couldn’t go to Maemo Summit and show my ideas to everybody out there and it became worse when I saw that everybody there had their N900 and would be able to create awesome stuff for the device. This is one of the downsides of living in Brazil: it’s almost impossible to get/buy new hardwares without paying huge taxes and the developers program always helped on this matter. Too sad =/. BUT it seems that today was my lucky day! I (and some others) received a mail saying that we would receive a discount on an N900! Awesome! So now it will be possible to do all the stuff I was planning to do!

Plasma Netbook is one of my main objectives for the short/mid term (take a look here for the last news). It has a lot of potential and a lot of great ideas around it. We already received good reviews even in “less than alpha” state and we’re looking for companies that want to sell their stuff with something that will provide a unique user experience. If you are interested, contact us…we can explain our ideas and provide details about it. Also know we have Marco working full time on this, while I’m working full time on Qt and others are keeping plasma up to shape.

And probably you’re asking yourself why you should be interested in what I said above. The reason is just below. Take a look at the pictures and at the videos.

Shared Plasmoid on N900

Shared Plasmoid on N900

I didn’t use Plasma netbook for this demo because I needed to recompile some stuff and it’s much better in a real netbook. This demo I’ll do during my talk on Latinoware. But for those that can’t go, I’ll talk a little bit: user experience is more than what the user does in front of his computer. It’s all about tasks. Recently, Rob integrated into KDE 4.4 his wonderful SoC called Remote Widgets. This enables two machines to share Plasma content in a very nice and easy way (I don’t even need to say that developers using libplasma get this feature for free, do I ?).

Original Plasmoid on Desktop

Original Plasmoid on Desktop (written using Javascript)

For me it was a pretty clear path to go. I want to share my widgets (that helps me during my day-to-day tasks) between different devices, so I can “take” them with me even if I leave my computer. This can be applied to many plasmoids and this is just a demo. I get a plasmoid that is in my desktop and share it with my mobile phone (in this case an N900 that a friend that went to Maemo Summit led me for this weekend). Pretty simple and easy to achieve (ok, it was hard to record the movie, talk and do all the stuff at the same time hehe). For security reasons it asks for pin codes between the two devices (just like bluetooth pairing – and you can have trusted devices too) and you can even save your passwords using KWallet :).

(if you can’t see the video above, try going here:

Thanks to Mek and Darktears for sharing Qt/KDE compile problems in scratchbox, Vudentz for the device and Aaron and work mates for calming me down when I was compiling all the stuff πŸ™‚ Any questions are welcome and remember that we can extend this a lot! (preempting one question: yes, it’s possible to share the “now playing” plasmoid and control your Amarok from the device πŸ˜‰ ).


Qt Labs Americas is ready!


During my presentation on GCDS/aKademy, I talked about the Qt Labs America and that it would be released soon. Some of you may have heard about it on the dot too.

But, what is this Qt Labs Americas thing ? Well, taken from the “about” page:

Qt Labs Americas is an openBossa initiative aiming the growth of local Qt and KDE communities all over America, starting in Brazil.

So right now we are launching the website and people are welcomed to send us links to their feeds so we can aggregate them on our planet and we’ll always try to have content in three languages: portuguese, spanish and english.

There you can find projects that we give some kind of support and also partners in this initiative. We are also on and twitter.

So, check it out and if you can be part of it in some way or you represent a university in Brazil please contact us! The website is: .


Netbook: Search and Launch

The last week I started playing with SAL: the “Search and Launch” containment for the netbook project. It was really nice as I played with Runners and could finally understand some bits that were still inside a black box for me. It’s sooo easy to use Runners on your applications!

So, the main idea behind this containment is that instead of using a regular menu like Kickoff you would be able to just search for what you’re looking for. The regular desktop already uses this feature inside KRunner but just advanced users and a few beginners know about it and how to use it properly (besides the fact that it’s trivial to use) – it’s hidden and is only triggered by a shortcut or by the menu entry “Run Command” that is not so visible.

Right now, as you can see in the screenshot below (sorry, no videos as I need to recompile some stuff to make recordMyDesktop work again) I put an edit line widget to type the queries but later this will be inside the panel. The user just types whatever he wants to do: it can be the name of an application, category (web browser), contact, calculation, unit conversion, etc.. (we’re thinking of a way to teach the user everything he is able to query – but suggestions are welcome).

Search and Launch Containment

Search and Launch Containment

There is also the “Favourites Strip”. When you mouse hover one of the results you’re able to add it to the Favourite Strip clicking on the “star icon”. Add as much favourites as you want and you can scroll between them in a “carousel” like widget. Maybe in the future we can make it more beautiful with Kinetic and add some bling πŸ™‚ Right now I want something that really works and we can add blings later (using Kinetic – and yes we may use animated layouts too \o/ hehe). Ah, and I really wished that we already had anchor layouts while developing SAL. It would be so easy and I would not have a lot of problems that I had to layout the widgets =/.

Now I need to make it persistent (so we are able to restore the favourites) and also remove the edit line widget and put in the panel as it was planed first.


Vacations, netbooks and…anchors ?

Vacations are great (and probably nobody will disagree on that, right ? πŸ˜› ). It’s a time when you can relax, think about your life, check your health (doctor, dentist, etc..), set new work goals, evaluate the old ones and also visit your family: I’m spending all the time at my girlfriend’s house and that’s awesome!

However this vacation is special because I can also work on KDE a little bit more than usual, giving GSoC students a little bit more of attention, bug fixing here and there, triaging bugs and working on our new baby project “Plasma for Netbooks”. Aaron already talked a little bit about this and we have been discussing this a lot through mailing list and IRC. Right now we have a pretty solid plan and some code in playground. Marco did a great job with one of the containments and already has a screenshot for that (come on Marco! I’ll let you have the pleasure on this one hehe).

Basically we’ll have a new desktop shell that is lighter than current’s plasma-desktop and we’ll provide two basic containments: newspaper layout and SAL (Search and Launch – I keep writing search and locate for some reason all the time =P). These two containments reflects the ideas that we have to solve some problems and to bring innovation. As soon as we have more code for that I’ll post details about this ideas (maybe Marco or Aaron will do that also :P). In the end I think we’ll end up with a very nice solution that will make users happierΒ  and also more productive while using their notebooks (besides the fact of being much more beautiful thanks to our artwork team hehe).

The last three days I spent time working on my paper for Akademy and I’ll post it as a serie of posts in this blog after it’s reviewed by some native english speakers :). This paper talks mainly about the research I did regarding “desktop-shell” solutions out there for netbooks. However no more spoiler here =P. Anyway if the paper get approved you can read it at Akademy and you can also check my talk about this subject and even see some real live demos. I hope vendors see all the potential around this and don’t make silly moves like this one. With all the features and bug fixing around 4.3 and 4.4 I really see a possibility of KDE coming to a larger audience in the next years…

Before Akademy I’ll attend FISL (unfortunately my paper was not approved) and meet old good friends there. Brazilian KDE community will be there with the Live Blue guys and the other brazilian guys that always have posts in planet KDE πŸ˜› .

News from work (yes, I still read my e-mail while on vacations hehe): as Qt is in the public repository now we are able to release the code we have been working the last months: animated layouts and also anchor layouts! Animated layouts needs some fixing toΒ  reflect some new API on Qt but it’ll come just after anchors. Some co-workers should post about anchor layouts and as soon as they post I’ll tell you ;)…Qt is going to rock even more with all this new layout stuff! Please, don’t forget to check this presentation during Akademy to learn more !

I'm going!

I'm going!

Demo showing the use of animated layouts…

This example shows an implementation of a custom QGraphicsLayout that tries to keep the layout as much “squared” as possible.

But the main thing being shown here is that the layout deals with a QGraphicsLayoutProxy, making it transparent for someone who is just adding or removing items from the layout, so all items are automatically animated when they change a position inside the layout or we change the size of the layout.

Jeez has more explanations here, but if you want to just watch the demo, take a look at Openbossa channel or just watch it below: