Category Archives: General

White as Snow

Well, last day of Tokamak. It’s sad that I must say goodbye to all of these people that actually lived with me for one week. It was so intense that I almost didn’t realize that we were together for one week. But let’s talk about what we did during the sprint.

During the first days I talked with everybody I could about anchor layouts, animated layouts and Qt stuff. It was great as it’s hard to explain the stuff and get feedback from a lot of great hackers at once and as fast as we can get when we are in this kind of developer sprints. We had great discussions about Qt, regarding bugs, features, future and everything else we could talk about. I really can see that every time that we put all these great hackers in the same room, we save some months (maybe years?) of development. All of that to make you take less time to code πŸ˜‰

Plasma Developers

Plasma Developers

While everybody else was merging their brand new stuff on trunk, commiting bug fixes and new features I was fighting with cross compiling KDE to the “mysterious device” that Aaron brought to us. What I could achieve ? We have KDE 4.2.X working PERFECTLY on this device, with all the features and beauty that KDE could bring to you. It runs really really fast on this ARM device. We were all impressed!

And then came the second part of the experiment: run trunk on it. While it was ok to compile stuff on scratchbox using Maemo SDK, the lack of a proper SDK for the device gave us some headache: some bug on qmake prevented it to detect correct paths and made me find out each library that was not properly added to cmake’s links.txt file and correctly add it. By the end of kdebase compilation I already had almost all the names and did a script to fix that, but until the time I found out all the libraries it was compiling and stopping all the time (I don’t need to tell that it was really slow to compile and due to this problem, it was even slower).

After some days I finally had kdelibs + plasma-destkop and plasma-netbook compiled. However when we put all this stuff on the hardware we faced a problem with Svg files not being show. So althoughf we have plenty new stuff full of new features running on the device, it looks a little bit “ugly” without the proper background, etc.. we just have white background…white as snow. But come on…we just had a few days with the device…we can do MUCH more with it and imagine if we had a proper SDK ? We can make this hardware AWESOME with our software and I can only hope that we’ll have some more time with it in the next months…(we would need less than 1 month with a proper SDK to make it really really really ROCK!).

Ah, meanwhile it was compiling kdelibs I created the pastebin dataengine/service, migrated the pastebin applet to use that and also fixed some bugs on other applets…

Talking about snow, today was the first day I saw snow in my life πŸ™‚ It was a unique experience for me :). It’s really hard to describe with words how happy I was and how beautiful it was in the top of that mountain. Thanks Mario for this trip…it was one of those moments in our lifes that you never forget.

Tomorrow morning I’m heading to Brazil again. It was an awesome sprint. If someone asks me what comes next from my point of view, I would answer: running plasma-netbook on the “mysterious device” (please, I just need one week with a proper SDK πŸ˜‰ ), finishing and optimizing anchor layout for Qt 4.6 (I really hope this will help people out there to create rich UIs with Qt) and of course: keep all the stuff we have discussed during Tokamak going on!

Randa View

Randa View

Thank you Mario, thank you Plasma developers, thank you Qt/INdT and thank you KDE πŸ™‚ What a wonderful personal and professional experience.

Talking about Qt at local university

It was a really great experience to talk about the basic concepts of Qt and to present new features such as the Animation framework to people that had never used Qt before.

Before lunch we had an overall look at QObjects (signals/slots), QWidgets, canvas based interfaces (QGraphicsView) and other basic stuff. After lunch we had “hands on” activities so people could create small applications. At first we created an address book using regular QWidgets, later we created our own QGraphicsWidget and played with canvas based interfaces and at the end we took a look at QAnimation.

You can take a look at the slides here (it’s in portuguese) and in one week we’ll announce the winners of a challenge: create an application using Qt. The prize for the best two applications will be free entrances for Bossa Conference 2010!

Regarding Bossa Conference, stay tuned for the call of papers that will be announced soon! Now I’m looking forward bringing this kind of training to other universities and doing more advanced trainings at UFPE.

New Pastebin feature and change of names…

Now you can just drop an http URL on the pastebin plasmoid and it’ll give you a tiny url πŸ™‚ Nice and small feature…

Also I just committed the change of name from plasma-mid to plasma-netbook to avoid problems, confusions and all questions regarding mid devices that are not the focus right now.

Later I’ll post more news about GCDS and about my presentation/paper.

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:

More news from Plasmaland

Well, it seems to be the season when Plasma developers are blogging again about their progress =)… I go =)

The weeks befora Bossa Conference Sebas started helping me with Pastebin applet as we discussed during Tokamak: it was not as sexy as a plasmoid needs to be. So he just started (re)doing the UI bits and I tried to help him a little bit. We cleaned the code, changed the UI completely and now it’s much better!

New pastebin UI (left default view, right mouse hover view)

Default view (left), Mouse Hovering (right)

Now you can also put it on your panel and have something that looks nice (instead of just a sentence telling you to drop stuff in that region)..We also added tooltips showing the status of the applet.

How it looks on the panel

How it looks at the panel

Today the only thing that was not working was fixed and now notifications are working! So when it finishes posting your stuff, you’ll see a nice kde4 notification telling you that the URL was automatically copied to your clipboard.

pastebin's notification

pastebin's notification

From the functionalities point of view, thanks to Davide we now have a context action (right click menu action) that performs a “paste” if you copied something (CTRL+C) and wants to directly paste into the applet. I also made it more “mouse friendly”: you can also middle click it and what you have in your clipboard will be pasted.

Now I’m really looking forward GSoC proposals and I hope to be a good mentor. There are a lot of proposals and the subjects that most interest me are Plasmate, Kinetic and Plasma-MID. Two weeks ago I gave a talk about GSoC and KDE at a local university. It was really good:

Talk about GSoC (left) and students (right)

Talk about GSoC (left) and students (right)

Now I’m planning to really focus on plasma-mid and plasmate that are the running projects (during my free time). As (almost) everybody knows, during work we’re playing with Animated Layouts inside Kinetic.

Videos from Bossa 09 available!

For those who unfortunately were not able to come to Bossa Conference this year, we are uploading the talk’s videos to our “channel” on

Bossa 09 Logo

There are really interesting talks from Trolls (Qt), python, maemo, e17, kde and lot of other stuff. Check the abstract of the talks here.

Hope you can come next year πŸ˜‰

PS: photos by Sebastian:

Animated Layouts with Qt Kinetic

Last week we finally had the first demo of our current work. We are working on animated layouts with the Qt Software guys. It has been a great great time. We are really happy with this work and the results that will come in the near future.

When we talk about animated layouts, we mean that when you change the layout of your widget you want that to have that change in a fancy and animated way (at least when you talk about Qt Kinetic). So we just finished the basic work to allow that and the next step is to define the API of setting animations between the changes of layout.

Right now we use the concept of states (using QStateMachine), a new way of setting a layout without destroying the old one and also a little hack to use QAnimation (this hack will go away as soon as we define a nice API).

Basically all you have to do is to use our concept of “proxies” and instead of adding your widgets to the layout you add this proxies. Each proxy must be associated with a widget and each proxy is associated with a QAnimation. Each QAnimation makes use of a different QEasingCurve making each widget have a different animation.

What is really nice is the fact that when you put all the concepts together you get a lot of “job done” for free, for example when you insert/remove an item from a layout it does the resizing and moving of the other widgets in an animated way also.

If you want to know more about this solution of Qt Kinetic, join us at #qt-kinetic on Freenode and take a look at my co-worker’s blog also:

Layout Animations

New QEdje version

Today we released a new version of QEdje and QZion (0.4.0).

This release includes a lot of bug fixing and also the change from qmake to cmake :-). We did some code refactor, fixed a LOT of bugs, improved a little bit the python bindings, improved support for mouse events and even created a signal to help the use of QEdje on Plasma wallpapers…

We also changed our repository and now it’s located at We are moving all our open source projects to this host and hopefully we’ll have more projects there in the next weeks ;).