OK, the week has be epic so far! That's why I didn't blog regularly
as I usually try to do during sprints and conferences. Still we
achieved a LOT of work here... I wouldn't even know where to start
to list all the topics we touched here. Good energy going on still,
although we see more and more cases of "OK, I need a break". :-)
I kept playing the agile coach here, we had our daily standup
meetings, which was great to keep everyone informed of what was
going on, or any identified blockers. So our Kanban really gave the
nice results we were looking for: visbility and pace. But the most
important is that it doesn't seem to have been perceived by the
people here as a constraint but as an enabler, which is good:
people first! That's what KDE is about.

That's one of the last pictures I took where you can see our sticky
notes. We just spent some time to clean up the window of those
sticky notes to fill them in an [iceScrum](http://www.icescrum.org)
instance. The Plasma people are on board trying to experiment with
a new way of keeping up with their engineering practices... Let's
try to control the chaos! We'll see how it goes with that
experiment in the next few weeks.
So, I wasn't online much yesterday, mostly trying to recover from
my traveling in the early morning. I had only four hours of sleep
before jumping in my plane toward Amsterdam, but the trip was
fairly uneventful and I arrived safely in Nijmegen... I admit I
slacked quite a lot after that and caught myself falling asleep
more than once at sebas' place.
Yesterday we had the now traditional state of the union
presentations to know where we are, and what are the goals of the
different participants... Today the work really started, discussion
topics for the week got listed, and I turned out being the agile
coach setting up a small Kanban giving maximum visibility on the
work going on during the sprint.
As we're moving using bikes here (it's netherlands after all), and
since sebas' let us use his front windows for the kanban, let me
present you the current result of the Tokamak 5 bootstrapping,
"Bikes and Sticky Notes":

As usual now our goal is to move as many of those sticky notes from
the left to the right, we'll see how much of those will appear and
travel on that window during the week!
While people are brainstorming on kde-core-devel about some very
fuzzy (so far) "merging of kdelibs and Qt", which funnily got
picked up at some places on the interwebs like strong plans
(ahem!), I keep doing my streamlining work of the platform in my
dark corner of the world. I'm just posting this small blog entry to
keep you people informed on what got dropped in the platform the
last few days.
First, everywhere it was possible, the internal dependencies of
kdelibs became conditionnal. For instance, you can now build a
libplasma without any dependency on libkio, libsolid, libknewstuff
or libkdewebkit. Other libraries have seen a similar work, it's not
that many dependency cuts (as for instance, right now, it's very
hard to not depend on kdecore or kdeui as higlighted by the
brainstorming mentionned above).
Second, I just committed last night and this morning a whole bunch
of changes to allow building kdelibs without any deprecated
symbols. It reduces a lot the symbols exported by our libraries,
and to some extend the size of the libraries. As it's obviously
binary incompatible, it is an option that you can activate using
the experimental Mobile profile.
And that's where I need your help, I can port a couple of modules
out of using such deprecated APIs (I did it for kdepimlibs and
kdebase so far), but I can't and won't do it all by myself! So this
blog post is also a call to arms: developers, try to build kdelibs
with the Mobile profile and check that you application still build
and run against it! I'll help me because more porting will be done,
and it'll help you as it's always good for applications to avoid
relying on deprecated APIs. Also, in the hypothetic event a KDE5
would arise, not depending on deprecated API today will make your
porting effort easier tomorrow.
**Help Me! Help You! Build the KDE Platform with the Mobile Profile!**
How to do that? It's easy, just use
"-DKDE\_PLATFORM\_PROFILE=Mobile" when invoking cmake.
Interestingly, all the ported apps I tested so far seem to work
just as usual (there's a couple of integration features lost, but
it's hardly noticeable really), so for instance I can run
plasma-desktop or dolphin just fine using the Mobile profile.
As part of the KDE/Maemo effort (that should get a more generic
name really...), we've already seen emerging some SDKs to help us
target the relevant platforms, some Plasma mobile shell, etc.
Still, one of the challenges is also to widen the scope of our KDE
Platform. For that, a draft plan was made during Tokamak4, and
since then we've been progressing carefully on the matter. We tried
to get as much feedback as possible on the plan, not rushing things
to make sure we weren't stepping on anyone toes.
Today, I'm happy to announce that the very first corner stone of
this plan got delivered. We added support for "profiles" in our
platform. The CMake scripts for it got committed this morning,
along with some changes to libplasma which effectively becomes our
first library supporting those profiles.
By selecting a profile at build time, you get a default setup for
our libraries which will enable or disable some extra features and
dependencies. For instance, if you choose the "Mobile" profile the
feature set coming from kdelibs will be reduced but on the other
hand there will be much less internal dependencies in kdelibs, this
way an application will only need a reduced subset to be able to
run.
This more modular kdelibs depending on the profile chosen is of
course only a first ongoing projects, but we have other topics to
tackle like the runtime dependencies (namely klauncher and kded) of
our platform. On this area we still lack reliable data as it is
much harder to track. Still reducing dependencies during build time
will be a big leap forward. And I'm truely excited because we're
slowly (but steadily!) getting to a slimer KDE Platform.
This week-end I attended the Tokamak Mark II, so the second Plasma
developers sprint. I was a really packed week-end, but that's
really enjoyable to have every body at hands. It's of course a
pleasure to team up again with very good friends like Aaron,
Alexis, Rich and the humongous Sebas.
It's also nice to have everybody on the deck ready for action. And
action we had, lots of different topics got covered: from the
framework itself, to the appearance of the shell, it's interaction
with the other major part of the desktop (namely kwin), the
integration of the features from Qt kinetic, etc.
Personally I tried to focus as much as possible on our service
framework, so for that I'm writing a library which will help
delegating all the service work to
[Jolie](http://www.jolie-lang.org). It's not there yet, but we're
definitely seeing progresses. I can currently write a program which
loads Jolie's metaservice, fires up a service description and talks
to it. It "just" needs to be wrapped into a nice API now.
[Jolie](http://www.jolie-lang.org) is really a pleasant piece of
software to work with.
Also on the first day, I talked about my new pet project: Zanshin.
A new todo/action management software, I'm using it daily for a
couple of weeks already without major issues. Of course it's still
a bit rough, and I have great plans for it in order to help people
to integrate it in there workflow. I want something simple and
flexible. I'll probably blog more about that in the coming weeks.
I'll end this post with a quote I used in my talk about Zanshin:
> If your mind is empty, it is always ready for anything; it is open
> to everything. -- Shunryu Suzuki
I expect a 10 page essay about this quote on my desk next week.
;-)
Sorry to all the males out there, but I won't be posting pictures
of [Angelina Jolie](http://en.wikipedia.org/wiki/Angelina_Jolie)...
I'll be talking software here.
So [JOLIE](http://jolie.sourceforge.net) is an interpreter for a
high level language to interact with services. Services as in
service oriented architecture, and yes that includes web services
but also much more. And, as you might have noticed, we discussed
with the guys working on JOLIE during the
[Tokamak Mark I](http://ervin.ipsquad.net/2008/04/16/survived-to-a-tokamak-mark-i/)
and as Danny hinted,
[I wrote a Qt implementation of SODEP](http://commit-digest.org/issues/2008-05-11/)
(the protocol used to interact with running instances of JOLIE).
Now you might wonder, what's the point of all that? Well, it'll
enable KDE, to be a first class citizen in the service oriented
world (and seeing the amount of web services out there or the
growth of D-Bus usage, that's an important goal). By "first class
citizen", here I mean making it trivial to interact with those
services, today we can interact with them but that still require
quite some hand made code, something JOLIE and the facilities we're
planning to add in Plasma will hopefully make obsolete.
That's mostly post-4.1 material... Except that Fabrizio Montesi one
of the humongous JOLIE developers couldn't wait and wrote some
proof of concept code. So I'll post a few screenshots he made
because they're pretty cool in my opinion. So what he made is a
small service named Echoes and driving an amarok instance, and GWT
based application providing a gui client to this service. Then
users can fight over your playlist. :-)

We tested it, it's pretty nice all instances are synchronized.
Also, if something is changed directly in Amarok you notice it in
Echoes GUI. Now, it becomes really cool because you can embed such
service clients in your cellphone:

Or even as a Plasma Widget:

Of course, it's still all a bit experimental and ad hoc at the
moment. Our goal post-4.1 is to make this kind of service client
GUIs trivial to write and better integrated in KDE. Services are
widespread now, let's make use of them!
I'm back from Milano. The first Plasma sprint has been a pretty
good event. My only regret is the low productivity on the first day
since we spent quite some time hunting for food. But once we found
the right balance, the productivity just got through the roof and
we got an humongous amount of things done (as the current activity
in the repository proves).
I'd like to thank everyone involved in this sprint, we really
formed a great bunch, that's nice to be able to get things done and
make new friends at the same time. A special thanks for Richard
Moore, without him I'm not sure we would have seen the end of the
API review. Also I'm really looking forward to collaborating with
the [JOLIE](http://jolie.sourceforge.net) developers, it'll
probably cover all our current Web Services needs.
Also congratulations to Alexis who led the effort to make WoC
finally happen in Plasma, and to Sebas who did a humongous job in
this area too. Yet another important piece of the Plasma project
finally done.
And now preparing for departure again, I'm going to
[FISL 9.0](http://fisl.softwarelivre.org/9.0/www/) where I'll give
a tutorial about developing applications with Qt and KDE. I
probably still have to rework a bit my slides to fit the target
audience and the time slot. I still have to pack too...
While discussing some Plasma related stuff with Aaron, I raised
some concerns about the name "plasmoid" used for Plasma applets:
[00:04:54]
well that's just another name for "plasma
applets" ;)
[00:05:05] 'plasmets' :D
[00:05:09] plaslets?
[00:05:10] ahaha
[00:05:23] GET OUT OF MY HEAD! ;)
[00:05:25] stop reading my mind :p
[00:05:30] rofl
[00:05:32] d'oh! :D
So now, I have a proof! Aaron has a mind reading device (possibly a
plasmoid)! Or we simply have a kind of mental connection... scary!
Well, that reminds me that I have a "teleporter plasmoid" on my
TODO...