Tag Archives: tokamak

The Mobile Concept

Reading this post you were able to watch a video about Plasma Mobile (actually, Plasma on all kind of devices) and see some screenshots. But if you don’t know the ideas and concepts behind that, you are just going to bash it as it’s just the bootstrap of the project and a lot needs to be done.

And if for some reason you are wondering about the future of the netbook project, don’t worry 🙂 Plasma Netbook and Plasma Mobile, besides being oriented for smaller form factors than a regular Desktop / Notebook, have different concepts as they’re serving for different purposes.  Marco (notmart) and all the Plasma team will still keep working on the netbook shell and if you read this post you can see the netbook shell running on Intel’s Jax10 devices. This was done to  give us an idea about how the netbook interface would behave on touchscreen devices and helped Marco to do a lot of bug fixing and improvements.

Back to the mobile shell, this interface presented here was created for the same Jax10 device but the architecture was designed to support different “Views” (as in MVC) for even smaller devices (N900 anyone?) , while still sharing the same concepts though. Even if the interface was not designed for the N900 for example, we were able to run it with great performance and the usability was very good. What means that we’ll just need to slightly tweak the view to make it perfect for the N900. And all of this can be done by designers as the View is 100% done in QML 🙂

So our first step was to brainstorm about launching menus (and how regular grid views seems to be so boring) and how different contexts affects the way you use your mobile. I mean, we are making desktops aware of contexts more and more and it’s silly to think that you don’t use this concept on your other devices.

We thought about having regular activities so the user would be able to have different set of plasmoids for each context that he’s working on. However it still needs to be very easy to do some stuff like:

  • Going to your dialer if it’s a phone;
  • Change between activities (later we can make the shell location aware so it’s possible to auto switch);
  • Launch applications easily and context aware (presenting the applications related to that context);

In order to achieve these goals we came with this idea: having a regular containment and a kind of panel that auto hides itself after some seconds. Important to say that right now this panel is 100% QML and is not like the desktop’s panel (that is a containment in another view). This makes the shell use less memory and be faster as it’s just playing with pixmaps in the end. After hiding, it shows a collapsed representation of the panel at the bottom that the user can either click on it or drag it up to show back the panel. This makes it really easy to change between one activity to another one while keeping the user interface clean enough so the user can play with his applets 😉

First Mockup by Nuno

The panel while in it's collapsed mode

But then you ask me: “I want to launch applications ? How can I do that ?”. One solution is to add an application launcher as one of the main activities and the other one is to enable context aware application launchers. So, looking at the pictures above think that you are at the “Internet Activity” and you want to launch your applications. You can always launch the application related to one plasmoid from it so if you have an RSS Feed plasmoid you are able to launch your feeds reader using this plasmoid.  But if the applications doesn’t have a related applet, in our concept you can just flip horizontally the current activity and you’ll find on it’s backside a context aware launcher that have shortcut icons for your applications and it’s size is proportional to the times that you launched the application and how much related to that activity the application is. This way it’s easy to find the most important applications for that activity.

Activity flipping to show...

...the context aware application launcher that right now is just a gradient 😛

It’s not there right now but the idea is that at the top we will have this small bar (that will be a containment) to show the status related widgets like battery, signals strength and other stuff very plasma, like clocks! It’s not there yet, but it will be!

Regarding the transitions from one activity to another we thought about sliding the activities up and down so there is the idea that we are throwing the current activity somewhere else and bringing the new one.

Throwing away the current activity....

...bringing the new one and fading out the panel....

...and the switch is done!

\Basically this is the concept behind the Plasma Mobile shell and after this it was just a matter of thinking about nice animations that would make sense, tweaking it’s timers and polishing icons 🙂 It’s clear to us that during the development we’ll find flaws in this ideas and we will need to fix them, as well as that the implementation right now is a little bit dirty due to time constraints (Tokamak doesn’t last forever unfortunately). Next steps ? Fix all the ugly code, finish implementing the launch menu, polishing and bug fixing…what means that we just bootstrapped!

Ah, if you are wondering: the Plasma Netbook project still keeps up to speed and is not sharing this backend (besides sharing a lot from libplasma). The deal is that the Netbook really needs it’s own concept and implementation while Plasma Mobile is really meant to be used on smaller devices than netbooks 😉


Plasma Mobile before deploying


Plasma Mobile on Jax10

I would like to thanks all tokamakers for providing great ideas and also INdT’s designers that gave me great ideas along the last years that I could apply for this concept.

YATP: Yet Another Tokamak Post

So, I just prepared a nice post about the job we have been doing during Tokamak 4 and what happened this days but I really don’t want to spoil cool stuff before we can at least give you some screenshots and videos 😉 Keep reading this blog as the next two posts will explain all of this and give some pretty and nice screenshots and videos!

First of all I would like to thank Will Stephenson, openSUSE and KDE e.V. (and of course everybody who supports the KDE e.V.) for hosting this developer sprint. It was awesome to put together people from three different teams that develop stuff that have a huge overlap area (Plasma + KWin + Oxygen). Really, thank you very much. I’m proud that you’re part of the KDE community!

Weather has been good (compared to Oslo and Finland where I was spending the last weeks) and the office is really good to work on. We have a lot of different devices to hack on (big computers with touchscreens, small devices from Intel and Nokia and the regular notebooks and netbooks) and we were able to expose a little bit more of our work to the local community (as well as see some old pictures of a sprint that happened at this same place in 2002).

From my side I was planning to bump the Pastebin applet with some new ideas and work on Plasmate and shell mobile but it seems that in the end I was able to just stick with one of these three targets. Anyway I hope that I can finish at least one more of then until the release of KDE SC 4.5.

Here is everybody that joined our developer sprint and keep watching this blog because tomorrow I’ll have some cool stuff to show everybody! Again: thanks to our hosts and to the Plasma, KWin and Oxygen teams for being so great!

The Desktop Konquering Germany

Tokamak Group Photo: Plasma, KWin and Oxygen teams

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.

Tokamak 3

I’m at Tokamak 3 in Randa where Mario is hosting us. First of all, thanks to Mario: everything is perfect!

Great landscape surrounding us

Great landscape surrounding us

During the last days we had presentations, meetings and talks. The GSoC projects are being merged in trunk (a lot of great features coming: new widgets explorer, mouse plugins, remote widgets, plasmate), the netbook stuff is going on, Qt stuff being solved, etc..

I talked about QGraphicsAnchorLayout, the new layout engine that will be present on Qt 4.6 and even did a small demo about that. We are nailing down the remaining bits (API, bugs) and hopefully we’ll have an awesome layout engine to create rich UIs when Qt 4.6 comes to “the streets” !

I’m also working with Alexis (darktears) to debug some problems that we’re facing with the raster engine on embedded devices. The thing is that the performance was not so good as it was in 4.5.0 and we’re tracking down where is the regression. Besides that we already tested Qt 4.6 on some hardware that we have here and the performance is much better than 4.5.X (regarding GraphicsView). While we wait Qt cross compiling, I’m also updating the pastebin applet to provide a nice dataengine/service so other plasmoids/applications can take advantage of this.

Until now, it has been a great sprint with lot of work being done on Plasma and on Qt 4.6. It’s awesome how much our speed increases when we are together! 😉

Tokamak II

Last week we went to Porto and had Tokamak II, the plasma’s developers meeting. It was just a wonderful time and it was great to meet some people again and to put faces in some nicks.

I mainly worked on Plasmate, the new “plasma IDE” for writing scripted plasmoids. Specially in the previewer and I used the time to also take a look at some bits of plasma that I didn’t have the chance (time) to look at yet. So now I can say that I can help with plasma even more and that I have a lot of ideas for the upcoming releases.

A lot of good stuff was also showed there like the status of Qt-Kinetic, ideas for the picture frame, improves on extenders, crystal, lion mail, community stuff, etc…

Thanks KDE for this wonderful oportunity and I hope we can keep improving plasma for everybody 😉

Plasma devs