During the conference part of this year's Akademy, I tried myself for the first time at live sketchnoting of all the sessions I attended. I didn't do it only for a handful of them mainly because I was chairing and you can't really sketchnote at the same time.
I think the one I did best was during the first keynote:
The KDE e.V. Board Report and the Incubating Projects into KDE talk were also properly executed I think:
The second keynote wasn't too bad either:
One of the most challenging part was the lightning talk session! I had to produce 7 sketchnotes in around an hour! Of course that was very fast paced and managed only because of some preparation. Obviously that was exhausting and the quality of what I produced varies greatly there. That was worth a try in any case.
Anyway, the full list of available sketchnotes are in the Akademy 2018 gallery.
I hope you like them and will find them useful. They should complete the publication of the slides and videos, that's another take on parts of the conference content.
If you are interested in community data analytics, you will have several opportunities to discuss them during Akademy.
Firstly, there will be my talk titled Bringing Community Data Analysis Back to KDE (why the hell did I use "Analysis" there... I only used "Analytics" everywhere so far, odd). It will happen on Saturday at 15:30 in room IE7. The slot is a bit small for the topic, but I'll try my best to create interest. Indeed you can catch me around talks to chat about it, and...
Secondly, there will be a BoF "Discussing Community Data Analytics" on Monday at 10:30 in room 127. We hope to see people coming up with interesting questions to explore or willing to lend a hand in those explorations. See you there!
And of course it also means I'm on my way to Vienna, see you all during Akademy 2018!
In my previous post I played with the team size and activity metrics on several communities and see what would come out of it. Interestingly, to me this wasn't necessarily the most interesting of what I posted (it's rather basic in what it presents) but somehow it's the one which triggered the most comments, especially in the KDE community. Looks like I struck a nerve. :-)
Anyway, it got quite a lot of good comments, so I thought it deserved a follow-up post with a different tone. For the record, I generally try to avoid putting too much of my own personal opinion in posts where I present metrics. I think it's sane to try to shield facts on the data from my biased position. It's obviously super hard, if not impossible. Indeed, at a minimum I'm forced to mention potential events in the time frame considered (if I know them)... it's risky, but still I do it because otherwise things would be just very dry and super annoying to read! And I think that's why the previous post struck a nerve, but more on that below.
In the rest of this post, I'll pick extract of the comments I got, in no particular order, followed by my own opinion. So contrary to my usual "data posts", the cursor between factual presentation and opinion piece will very much point toward "opinion piece". Be warned! ;-)
More Information About the Rust Community
I got a very nice comment from Florian Gilcher, I won't address it all, but I'll add my reactions to some of the extracts.
This doesn't mean that we have an explanation for everything. But I can certainly say that the slowdown in 2015 is a couple of people going on holidays and taking some time off for once. There was a lot of exhaustion and also tension in the community at that time.
Thanks a lot for the confirmation! When looking at the history of the project from the outside it seemed the most logical conclusion, glad to see I wasn't far off for once. ;-)
While I agree that we will probably not hold this growth forever, we are doing a lot of intentional work to make that happen. One of them is constantly reorganising the project and actively pulling people in.
That's what I got from attending a couple of RustFest. I was very much impressed by the efforts going on into growing the community. It's very proactive and welcoming while KDE has a more passive stance even though it's a very welcoming community as well.
We take a very clear stance that we want to recognise all work that people have done for the project and invest time in that, for example with projects like https://thanks.rust-lang.org/.
Wow, didn't know about that page! It's a great idea. I wonder if KDE has something similar, it's probably worth producing. Each application has an about box with some people, but there's nothing structured for the frameworks, also I like the breakdown per version used by Rust. Probably something I could script, I'll look into it I think.
We try to keep all processes as lean as possible and especially don't try to impose a huge process on first-time or small contributors. Contribution effort should scale with the size of it.
This is an interesting concern. Instead of going for a one size fit all contribution model. To be kept in mind for sure.
Also, I don't want to say that we do everything right - the contrary. But we have gotten our project used to reflection and change.
Right, I think it's important to maintain a culture which allows both to pass the wisdom of older contributors while also being open to change.
Debating the Impact of Tooling
From Florian Gilcher still, we got a point about tooling:
Talking a little about your readings here: In contrast to other comments, I don't find it unreasonable to attribute the bump in KDE to the change of tooling. [...] Free contribution also means that leaving is easy. And some people don't want to pay the mental tax of learning new tooling.
Of course I agree with that, and I think that's why KDE lost some of the old guard and quite a bit of the drive by contributions (Git was really painful at the time). Also, on top of the mental tax of learning the new tooling there's Conway's law to take into account, a switch means organizational changes which in turns mean quite some communication generated by it, updating our wiki pages for on boarding, team building and so on.
And we got a similar stance from Anton Latukha as well:
I strongly agree on "documented process of 100 steps or to follow" for contribution versus "documented process of 5 steps". It is so much, that I wanted, but really never bothered to contribute. It is just too much rules and info to fit-in myself for me to make drive-by commits.
I strongly agree with that point of course! It's not related to the "was the dip caused by the switch to git" debate, since most of the reasons why it's hard to contribute to KDE predates that switch anyway. But it's a very important thing to keep in mind if we want to improve. We don't get as many drive-by contributions as we could and it's unfortunate. People expectations are that it should be much easier than it is. That's why at last year Akademy we gave the talk Looking at the Application Developer Story with David Faure.
Of course there's also another position on that debate which consider the tooling as irrelevant in the contribution history of KDE.
First from Luke Parry:
In short, the excitement has gone. KDE has just become a utility that works pretty well for a DE. Yet, It is not pushing any boundaries of how we interact and work with a desktop.
It's indeed another factor to take into account and I agree with that. For some parts, KDE is just a commodity people are glad it's around and since it's not exciting enough anymore they don't feel compelled to contribute. Note this is worrying though because it means the community (not the software) has fallen in a kind of Tragedy of the Commons trap. That's why I think it's important to hear the comments from Florian above, they show a path forward: the KDE Community should be consciously groomed like a proper common (aka we're doing great on the software side, not so much on the people side).
Then we got comments from Martin Flöser who are very much on the "switch to git is irrelevant" side:
Personally I don't believe in the git theory for the kde community. It just doesn't fit. KDE is a highly technical community, our code has partially a superb quality. Why should the community metrics change just because the introduction of git?
I would say: just see Florian's and Anton's comments above. There's a cognitive cost to such changes, especially when git was really a pain to use.
Instead I would rephrase the question: what resulted in the 2010 peak? For this I see two main events in the KDE community: KDE 4 and Nokia buying Qt.
I agree about KDE 4 resulting in more activity, but not all the way to 2010. As for Nokia, well... I really don't think it brought much more to KDE than extra sponsorship. One particular project saw extra contributions due to Nokia, but it wouldn't account for a big increase in activity by a long shot.
After the release of KDE 4 new developers were brought in.
That's the thing, we always had a strong contributor influx. Except during KDE 4 preparation (it was very hard for people to join because everything moved all the time as the increased activity indicates) and after 2010... which is where we're debating the reasons still. :-)
If I remember correctly you still were a student at that time (or did you already do your phd?)
I already had my PhD at that time. Besides, I don't know if it goes like this for all PhDs everywhere, but it was really a full time job in my case. I was definitely not working like a student anymore through my PhD. Anyway, very specific and not very relevant so I won't dwell on this more. ;-)
So what did happen around 2010 that we did not get the new students in? My answer to that is Bologna and Android. From talking with Bachelor students around that time I got the impression that they don't have the time anymore to do things as open source development next to their studies. The second thing I mention is Android. I think for students we were no longer the interesting and attractive community to join. Why hack on the old thing if you could do Android apps?
I think that's where we touch the crux of the issue in this debate. I very much agree with the KDE 4 impact and the commodification of the KDE products. Now, I tend to ignore them because we can't act on them, and that's why I talk much more about the tooling: I know we can act on that part!
And that's where you disagree, you think that the tooling change had no impact on the existing community. Well, I'm pretty sure at least part of the "previous developers" were driven away both because of the personal reasons and the change of tooling. The two collided, learning new half done annoying to use tooling while having less spare time? No way they'd do that. Remember git back then it's was really very difficult to learn with all its quirks.
Second reason why the tooling matters: the students changed. It's not only about the time available and making Android apps being more hip. Post-PhD you might remember I was involved in an University program setting up student projects. They had the time, they had cool things to pick from, so only stuff they were motivated to work on. Still, over the years I could see it was less and less natural for them to contribute to KDE. There has been a strong cultural shift I witnessed over the course of a few years.
It became much easier for them to use git, but the paradox for me is that it became much harder for them to use the rest of our tools. Somehow as various generations of students became more skilled in Git, they also became more influenced (or brainwashed, pick your position) by the GitHub contribution model. And nowadays it's for them the only true way of contributing. Our current processes for contributing are thus looking very alien and preposterous to your average student. I don't like that, but that's what I witnessed.
Also Dominik points out git is a standard:
But git is the de-facto standard, it's not to blame for the decrease - well, at least not in the last 5 years.
Yes definitely. I was thinking of "git back then", which is in part why we lost a fair share of the old guard as mentioned above. Nowadays git is fine, but as I mentioned above the other tools seem to get in the way for new contributors.
About Comparing Projects
We got a couple of interesting points from Boudewijn as well revolving around comparing projects:
I think you should superimpose the rust graph on KDE's graph --- put the current 2018 location on KDE's 2010 location. Everything has a hype curve, skyrockets, drops then settles.
Yes, I definitely agree there and I mentioned that at the end of my previous post: the Rust curves currently look similar to KDE early days. That being said even if we do what you propose with the curves, there's still a difference between KDE and Rust in my opinion. Their team size and their commit count variations are much more strongly correlated than for KDE. The only time KDE had it in a similar fashion is roughly for its first five years as far as I can tell after quickly checking. They kept that almost twice as long now. This is interesting in itself I think.
It would also be interesting, but controversial, to make this graph for larger kde projects -- libs/frameworks, plasma, krita/calligra (that doesn't matter much, krita was always the larger part of koffice/calligra development), kdenlive, digikam, pim.
I don't think this would be controversial. And that's actually one of the gazillion things I'd like to do... so many angles to look at those things, I can keep myself busy for the next ten or twenty years I think. I kind of touched it a bit for PIM in my previous posts by the way.
On the Definition of Activity
Sho opened the debate on the commit count metric itself:
I think our commit count going down has a lot to do with how we do code review - which we didn't do before.
This could be a factor for the 2010 drop, I somehow doubt it is a strong one because I seem to recall we were already doing reviews in 2009. Now I agree that we likely increased the amount of reviews at some point, but it didn't take 6 years to do that. That'd account for some of the decreasing trend but not all.
This makes it difficult to assess activity by comment count alone without looking at diff sizes too.
Yes, this is something I'd like to explore better. Currently I use commit count for the activity, but I know it's a poor proxy for it: not all commits are born equal and also reviews is work and collaboration. The reviews I can likely get a partial history through the Phabricator API, but that will never go back many years. For the "value" of a commit, I still didn't find an approach I liked from what I drafted... still looking for one.
About the Choice of Phabricator
Finally, I got an unexpected comment from Anton Latukha regarding Phabricator:
Phabricator community/development is already virtually dead: https://www.openhub.net/p/phabricator
Obviously a very important point... It's really a shame because I personally like Phabricator quite a bit despite the fact it looks foreign to a fair share of our contributor base. Of course it makes things concerning since it became a very central piece of KDE's infrastructure.
Really it pains me (did I say I like Phabricator?) but between Phabricator's declining contributor base and what I've seen with students who consider it confusing, I wonder if we should reconsider it. I hate gratuitous tooling changes (see my points on their price above) but it looks like the price of staying with that particular choice might sooner or later increase by a lot... and it's already high (see my points above about it looking alien to nowadays students). :-/
If you remember my previous installment I raised a couple more questions which I pointed out as tougher to address and I'd keep on the side for a while. Well, I decided to look at something simpler in the meantime... which unexpectedly took more time than expected.
First I thought I'd try to reproduce the cohesion graph from Paul's Akademy 2014 talk... but it looks like we have a reproducibility issue on that one. However hard I try I don't manage to reproduce it. What I get is very different, so either there's a bug in my tentative script or there was a bug in Paul's script or somehow the input data is different. So one more mysteries to explore, I'm at a loss about what's going on with that one so far.
Then I realized that already more than a month passed fiddling with that particular issue so I looked for something else. I still wanted something simple. That's why I went for weekly activity and team size for the whole history of some repository. Sure everyone does that, but I looked at how we could make this kind of things more readable to have a better idea of trends. Indeed most of the graphs I look at tend to be noisy. For instance if we look at Thiago's graphs about the Qt community, there's clearly valuable information but the ones covering the history "since the beginning" don't convey much idea about the trends. That's what I'll try to improve in the current installment. Similar data, just a different way to look at it.
The Transparent KDE Community
Let's start with the community closest to home: KDE.
First a note on the production of the graph itself. This is done by looking at all the available history of all the git repositories I could clone from KDE (I'm using kdesrc-build for that). The small dots are the absolute data points sampled per week. Since they (obviously) exhibit quite some noise, I then apply to them a low-pass filter which gives us the final line plots on top of the data points. They give us less accurate absolute value but better clues on the actual trends. Also note that the two curves are on different scales (one on the left the other on the right) so don't get confused about that. Again it's not about comparing absolute values between the curves but trends.
Before really focusing on the data in graph above, a note on the team size. Here we consider the size of the "team" producing commits for a given week. It's not telling us the whole size of the community, it's not even telling us the whole size of the developers community. It just tells us how many developers from the community have been active that particular week. So obviously the community size is larger than that. We have a simple model here, evaluating the community size would require something much more complex about heuristics on when someone can be considered not participating anymore or not. I'll sound like a broken record but this simple model is still relevant for showing trends in the activity level of a community so I'll stick with it for now.
With all of that in mind, it's interesting to see that active part of the community has been steadily growing until around 2010. This is clearly the tipping point and so after 2010 the community started to be less active. My gut feeling is that it's been also shrinking but the graph is no proof of that. At its peak there were around 200 people active each week, now it seems to be around 100 on average (yes I'm rounding aggressively here). The good thing is that from the plots, it seems it stabilized since 2016, but only time will tell if it stays stable or somehow grows again.
Also interesting to note is that the peak and beginning of the shrink is around the same period than the drop in cohesion pointed out by Paul in his Akademy 2014 talk.
So why the shrink? What happened around 2010? The only thing which comes to mind is our change of tooling... it's in fact the only thing which can explain both a reduction in cohesion and in size. Clearly we lost something with the switch to git, existing contributors were perhaps less motivated and newcomers were perhaps not joining as much.
It might sound surprising now that git is a big deal and extremely popular... but at the time it wasn't really a walk in the park. KDE has been an early adopter of git and for people with limited spare time it was yet another thing to learn. Now git is fashionable and learned by most but contributors are not coming back to us, so something is still amiss. Maybe our tooling is still too fragmented? Indeed people are used to very uniform platforms like GitHub or GitLab nowadays with a very organized view on the code and having to deal almost exclusively with git commands and a bit of web interface, we're nowhere near that. Maybe building our projects is still too complicated? Indeed people are used to grabbing the code, running a single build command and have the thing built and ready to run and hack on... we're nowhere near that.
That's why it's important that the onboarding of new contributors is now one of KDE's goals. Hopefully it will make sure that we don't just stabilize as we did now but start to grow again. I'm slightly concerned that it seems to focus mainly on documenting the status quo without necessarily improving the tooling. Don't take me wrong, documenting how to join us is super important! It's just that it needs to be made simpler as well. It's not the same impact on people interested to join to follow a documented process of 100 steps or to follow a documented process of 5 steps.
Now that I rambled about KDE... what about other communities?
The Dual-Licensed Qt
Let's check out on our friends from the Qt project! It's more of an industry type of community, plenty of people paid to contribute, the project is backed by a commercial owner. For that community I looked only at "Qt itself" which is not as easy to define than you would think. I basically went for the two main products: the qt repository (containing the Qt4 history), the qt5 repository and all its sub-modules and the qt-creator repository. That covers fairly well what you get if you install a SDK with only the Free Software components. Note that the history isn't as complete as in the KDE case so it's not going back to before the governance of Qt became open. This means we won't see all the way to Qt creation and it's likely that the beginning of the curves won't be reliable since they won't follow the right commit patterns and show instead big bulks of code in a limited number of commits by a limited number of people.
What a surprise! We can see it is very slowly getting less and less activity over time. Both the number of commits and the number of people active a given week has been stagnating or going down since 2010. Again before 2010 the numbers can't be trusted, but the graph reads as a decrease in activity as soon as the governance got opened. And there's no way to know if that was the trend already before opening the governance, we can't even gauge the correlation there.
Another surprise is the surge on the team size plot around 2012. It created a small surge in commits too but didn't change the overall trend on the commit count. This period would require an investigation of its own to get a clearer picture on its cause. My current theory after checking the "per employer activity" graph done by Thiago is that it seems to correlate both with KDAB getting much more involved in the development and KDE's effort toward KDE Frameworks creation.
As for the overall trend toward less activity, should we start to worry about Qt's health? Well, it depends what you are considering. Qt as a product, I wouldn't worry yet. If we look at absolute number it still clocks around 200 commits with around 50 contributors each weeks. For such a product it doesn't strike me as very low maintenance level. Qt as a community on the other hand... if the numbers are indeed correct (remember how I defined the corpus leading to the history we're looking at: it might have a blind side), I see no way to spin it positively. It is clearly a shrinking community (much like KDE as we've seen above).
Still, there's the Qt Company around they're in business and they seem to try to hire currently. So it's likely that there is a slow shift from the main repositories to other repositories (potentially non public). Not necessarily bad news for the product since it'll likely mean new features getting in down the line, etc. But even though it's not ideal community wise since it's harder to contribute.
The Crazy Multimedia People From VLC
And now what about VLC? It is after all one of the most successful Free Software out there. It's very specialized on its domain though (multimedia) and so as such maybe not showing the same activity profile than others? That's what we're going to look into.
Note that here I'm focusing only on vlc itself, but the VideoLAN Organization do more than just VLC. So please don't compare the plots below to KDE, it's slightly unfair comparison to both. It'd be as if I was plotting only one product from KDE.
Still I was curious about VLC itself since it's the least arcane of the projects from VideoLAN. Also I didn't find the time to produce an extensive and definitive list of the VideoLAN repositories. Something I'd like to do later though to have a more complete picture.
At a glance we can see a very different profile compared to the previous too and as such it was worth producing those plots. It seems to have a very stable community. The trends are clear, since 2003 we got a fairly stable team size and mostly stable commit count. That being said there are two points worth noticing.
First, we can see a five years period between 2007 and 2012 where the commit count is much more of a bumpy ride. Similarly on that period we see more of the community active at the same time then dropping again. It seems to match with a period of new ports of VLC on more platforms and the work leading up toward VLC 2.0. Surprisingly we don't see a similar pattern toward the preparation of VLC 3.0.
Second, despite a mostly stable team size since 2012, we can see a constant increase in commits over time. So it looks like the patch leading up to VLC 3.0 had a different pattern than the one leading up to VLC 2.0. The activity increased but mostly in commits under the roughly the same number of people each weak. That means the turn around of commits per person was higher during that period than before. This is a clear change of pattern since VLC 2.0. My current theory would be that it could be caused by the creation of Videolabs which is a company created in 2012 and employing mostly VLC developers. This company provides services around VLC and multimedia. It is the only event that I know of which would explain that plot. That being said and as mentioned above I have only a partial view of the VideoLAN history here, so take that theory with caution.
The Very Successful Rust
And last but not least, I wanted to take a very quick peak at Rust. It's very different from our previous cases, no application or frameworks in the traditional sense but a language. It seems very popular toward developers using it, I'm personally interested in it hence why it is in that post.
Due to its nature it's even harder to choose a corpus of repositories to define it... Should I take just the compiler? Other tooling? Documentation? Should I try to reach toward the whole ecosystem since it's a language? I decided to go for compiler, tooling and documentation (that is mostly code coming from rust-lang and rust-lang-nursery). It made sense to go for those because they really are an integral part of the "Rust experience" if you look at it as a coherent product. Just the compiler would be clearly too small, and the whole ecosystem would drown us in data which would just tell us how popular Rust is to its users which is not what we're after here.
First word which comes to mind: wow! Indeed, it's very successful and clearly skyrocketing currently. There's just a slowdown in 2015 for which I have no good explanation, maybe people were tired after releasing 1.0? If someone who knows intimately the Rust community has another theory I'm very eager to hear it.
Anyway, apart from 2015, both the team size and the commit count are still correlated and they just go up, and up and up. Clearly they are doing something right and are very successful at attracting contributors to Rust itself. I'd say it's not just a fad with people playing with it and making libraries or apps with it. It looks like they manage to convert users into contributors very successfully. Well done!
Now of course it's a much younger project, so time will only tell when it will plateau and if it starts shrinking again. For now, it's clearly looking similar to the first years of KDE. Maybe the KDE community should look more at Rust and find ideas on how to be so popular again.
At the end of my previous post we concluded with yet another question. Indeed, on the 2017 KDEPIM contributor network we found out that Christian Mollekopf while being a very consistent committer didn't appear as centrality as we would expect. Yet from the topology he seemed to act as a bridge between the core contributors and contributors with a very low centrality. This time we'll try to look into this and figure out what might be going on.
My first attempt at this was to try to look into the contributor network on a different time period and see how it goes. If we take two snapshots of the network for the two semesters of 2017, how would it look? Well, easy to do with my current scripts so let's see!
Alright, it still looks similar to the picture we got for the full 2017... Christian is still on the outter rings of our network and bridging toward low centrality nodes. Only difference is that he has a slightly higher centrality value than during the whole year. Needless to say just that semester doesn't learn us much. Time to look at the second semester then.
Ah-Ah! Now we see something new, Christian is now mostly disconnected from the network! He is part of a clique containing him and Michael Bohlender. Looking further at their activity they are indeed focusing almost exclusively on Kube. Michael was in fact one of those low centrality nodes Christian was bridging to previously.
So what are we looking at? It seems to be the birth of an insular sub-team in the KDEPIM community. It's technically not a fork since they're working on a specific software but this clique configuration indicates they moved their focus there, they didn't attract the rest of the KDEPIM community to contribute (yet?) and they stopped contributing completely to the wider KDEPIM effort (at least for the time frame we've been looking at). The community got split there.
Now we could leave it at that and consider it like a detail... or... if you're like me and want not only to produce those graphs and metrics but wonder if some of those things could be turned into useful tools for community stewardship in general and the Community Working Group in particular, you won't stop there.
From the two networks above and the one I produced the last time it's clear that we need to deal with time... From a single network we freeze the time and get a configuration for a given period. If we ever want to see that something like the clique we saw appearing here can be detected we need a less static view.
For the time being, we will look at individual centrality of a contributor over time. For that we will get their monthly centrality value in the network over a three months sliding window (previous month, current month and next month). Since it's also interesting to have an idea of the activity of the contributor over the time period, we'll also plot the normalized monthly activity of the contributor. Finally, since centrality is dependent on the team size, we'll plot the normalized team size on the period.
Regarding that last plot, a few more words because it's a fairly important one that Volker Krause helped me realize during the KDEPIM sprint because of his own plots and discussing them with him, unfortunately it's also what makes the centrality tricky to read. The centrality value of a node is a value between 0 and 1, if a node is not connected at all it gets a 0 if a node is connected to all other nodes it gets a 1. So obviously, if the team is large you need way more connections to get a high centrality than in a small team.
Corollary of the point above is that centrality values variation are meaningful only during a stable team size. If we're a period of decreasing or increasing team size variations on a centrality can occur for a node even though it would have maintained the exact same connections! And that's why we have the third plot on the team size in the graphs below to get an idea on how much trust we can put in the variation of the centrality plot.
Alright, with that out of the way (although it'll keep haunting us while reading those plots), now it's time to explore those plots. We won't look only at one, I think it's a good idea to look at more than one contribution pattern before coming back to Christian. To get there and keep those plots somewhat comparable I'll drastically expand the time period we'll look at, instead of looking at 2017 only, we'll go all the way back to 2007! This way we can see more of KDEPIM's history and get patterns also from old timers. Let's start!
So first thing first, we see the evolution of the team size in KDEPIM on the last ten years. Interestingly we see the decrease that Paul Adams was pointing out in his last Akademy talk... but it's not reaching the ground and it looks like it stabilized at least since 2014. Is it the case for the whole of KDE? Does the commit activity look the same globally? Clearly questions I'll have to investigate as well, it never ends! :-)
In any case this variation on team size seems to indicate that we can look at the centrality variations from 2007 to end of 2009 or from 2014 to the end of 2017 somewhat safely. Of course the team size keeps varying but it's more noise than a real trend so it should be fine overall.
With that in mind, what we can see from Till is a former core contributor who slowly stopped to contribute. This is crystal clear just from his activity plot and the centrality plot as expected follows the same pattern. It's indeed less correlated with his activity in the 2010 to 2012 period but that's to be expected with the downward trend in team size.
This second graph is now about Volker Krause. We can see the top activity he had during 2009 and because the team size was large at the time it required such a high activity for him to have his centrality spike as well. The mystery spike of September 2016 is what prompted the display of the team size plot. He had only a very tiny activity that month which generated a surge in centrality... well it turns out that even though he did only a hand full of commits some of them were on build system files which tend to be touched by others and because of the smaller team size than in 2009 the variation get amplified.
So now that we're done with our two "example" core contributors... let's get back in the territory of the very active contributors of the past year...
Let's look at Laurent in this third graph, clearly he has been contributing to KDEPIM for a long time but overall not on a very high volume. It really started to increase around 2012 so I guess that's when he slowly took over maintainership of KMail. As expected that's when we see his centrality raising as well as he was getting involved with more and more components of KDEPIM. Of course it's slightly amplified by the decrease of team size over the 2012 - 2014 period but he kept getting more central even after that.
And finally, this fourth graph gets us back to Christian. Clearly he joined KDEPIM at the end of 2010, from that point on he looks like any other future contributor with increased activity correlating with increased centrality (watch out for the decrease of team size until 2014 which amplifies a bit the effect on that period). Then during 2014 we have a somewhat stable centrality and activity. Some noise but nothing out of the ordinary over a year. It gets interesting after that though. During 2015 we see his activity increasing again but at the same time his centrality starts dropping a first time. It then stays somewhat stable while his activity spikes. And toward the end of 2017 centrality completely drops. This is a very different pattern from all the other contributors we looked at.
In my opinion, the interesting observation is that by looking at the contributor network, we see the clique only appearing at the second semester of 2017, but, on the centrality graph we see this pattern of increasing activity with decreasing centrality starting in 2015! Two years before the community split is visible.
Now the question I have, and I think it'll be a tough one so I might leave it unanswered for a little while. Could we detect this kind of pattern early? Could we detect without too much false positive (even though there always will be some of them)?
I think it's important to think about that because in that particular case, assuming we'd have such a tool, the Community Working Group would have been warned of a team split to come and maybe step in to see if they could save the situation. Currently our Community Working Group is mostly working in reactive mode since they talk to people when a conflict emerges, with such a tool they could also try to be proactive and check on a team if the "increasing activity with decreasing centrality" pattern emerges. I think it would be nice if they could do this and talk to people before too many feelings were hurt.
It'll take time to get there, if at all. But I think it's worth looking into.
If you remember at the end of my previous post, I raised a set of questions. Two were related to the use of colors in the graphs I showed:
- Are the four levels of colors for the activity visualization enough?
- Should we have some color coding on the nodes and use different layouts?
Since I had limited time lately to push on the other questions I thought I would do something about the colors at least. :-)
So let's revisit our "whole year 2017 for all of KDEPIM" (that is the parts in KDE Applications, in Extragear and in Playground) with more colors!
Firstly, this gives us the weekly activity using the "Magma" palette and a linear interpolation of the colors between the minimum and maximum commit counts:
Like before we see Laurent Montel and Christian Mollekopf as most consistent committers throughout the year 2017. That being said the new palette also allows us to see more things. First, it's not only that Laurent Montel is engaged every week it is also that he has more commits than anyone else almost each week! We can also now more clearly see unusual spikes of activities from Volker Krause and from Daniel Vrátil both on week 37.
I think that next I'll try to investigate why Laurent's commit count is so high and what happened on week 37 last year. But that will be for a next installment, stay tuned!
Secondly, this also gives us a new contributor network graph. I adjusted it in several ways: removed all visual clues on where the (0;0) point is, it's highly irrelevant but people seem to cling to it and try to interpret it; I also switched back to "Kamada & Kawai" for the force-directed layout since it's the one which helps the most to perceive the graph topology; finally I color coded the nodes depending on their centrality. For that last part I used the "Magma" palette again linearized on the full scale of centrality values of the graph. And since there are more than one definition of centrality I used the Degree Centrality. This is the simplest one and is a defined for a given node as "the fraction of nodes it is connected to". Since we's still in the mind set of finding out the contributors who collaborate with the most people through the files they commit too it's very suitable.
This time we don't even need to zoom in to spot the code KDEPIM contributors in 2017. With the color coding, we see right away again that Laurent Montel, Daniel Vratil and Volker Krause are the core contributors. It's much less guess work than the last time, we're backed by the color coded centrality metric now. We can also better see that Allen Winter, Sandro Knauß and David Faure are very central too, something that we missed the last time.
Now what about Christian Mollekopf who is our other consistent committer? In the activity graph, with a better view of the topology like we have thanks to "Kamada & Kawai" we manage to find him on one of the outter rings (he's the pale orange node on the top left of the graph). He's indeed not very central considering the "degree centrality" but we can see that he seems to act as a bridge between the core contributors and contributors with a very low centrality.
This is an interesting new finding probably worth chasing further.
As you can see I'm not done exploring this data set! More questions are showing up before I can move to another area of KDE I think.
As you might remember our dear Paul Adams decided to retire, this is a loss because of the person... But he was also providing a very nice service in the form of community data visualization. He was famously known among us for his "green blobs (turned blue blobs) and contributor network graphs".
Note that he just took the "green blobs" idea from Adriaan de Groot and later on turned them blue... He might have made them popular in the process but it's unclear if that's due to the color change or his prose. ;-)
Anyway, he was doing that for other communities than KDE, but he almost stopped now. For instance, he did it only once for Habitat in all of 2017. Luckily he published the scripts he was using in his git-viz repository so not all the knowledge was lost.
Earlier this year, I decided to take the torch and try to get into community data analytics myself. I got in touch with Paul to talk a bit about my plans. My first step was to try to modernize his scripts while staying true to his original visualization.
It turned out in an almost complete rewrite which I didn't quite expect. At the same time I wanted this modernization to be a good base for other visualization and also general data analytics. The most prominent part remaining is his git log parsing code although I extended it to work properly across repositories and not just on a single one. But next to that I'm now using pandas, networkx and bokeh for all the data processing and visualization descriptions. This turned out in nice, concise and maintainable code.
So you might wonder... What's possible now? Well, fairly similar visualizations than before but now they can span on more than one repository and they are fully interactive! No more fixed resolution pictures we generate fully dynamic HTML code.
To validate the scripts I used them on the whole year 2017 for all of KDEPIM (that is the parts in KDE Applications, in Extragear and in Playground).
Firstly, this gives us the infamous blue blobs diagram to show contributor weekly activity in all those repositories in 2017:
Clearly we can spot Christian Mollekopf and Laurent Montel as the most consistent committers throughout the year 2017. It should come as unsurprising since they are almost single handedly maintaining Kube/Sink and the rest of KDEPIM respectively. Daniel Vratil, maintainer of Akonadi is also very active and noticeable.
Secondly, this also gives us back the contributor network graphs. Here I did a small exception and used "Fruchterman & Reingold" for the force-directed layout instead of the "Kamada & Kawai" one. This is simply due to a personal preference. I find that in practice "Fruchterman & Reingold" is a bit more agressive at conserving the center for the cluster of most connected (core) contributors (although it sacrifices a bit in readability). So for all the KDEPIM repositories in 2017, we obtain the following network:
Surprisingly we can spot two disconnected nodes. Those two contributors touched files no one else touched in 2017. Nothing out of the ordinary, after investigating those two they were very self-contained punctual contributions for default SPAM settings and for improved wording in the GUI. Valuable but indeed don't necessarily require very deep integration in the core contributors network.
Then if we zoom in, we can easily spot the core KDEPIM contributors in 2017: Laurent Montel, Daniel Vratil and Volker Krause. They are the ones who connected most to other contributors via their commits last year. Of course this is a bit of a visual check and as such not very scientific.
Which leads me to the "what's next?" question.
Now I plan to build up on that work and add more tools and analysis. Paul's scripts and graphs were an excellent start hence why I did my best to stick to them. But now it's time to add more! Their are various questions which can be pursued:
- Are the four levels of colors for the activity visualization enough? Could we get better insights with a different palette? Should we get closer to a heat map?
- Could we get some more insights from using different frequency for the activity graph than weekly? Can we learn from daily activity on shorter lengths? Or from monthly on longer scale?
- Should we really look at the contributor network as is? Could we plot it over time and see it evolve dynamically is there insights there or would it just look pretty? Should we have some color coding on the nodes and use different layouts?
- Should we have a higher level view on the contributor network? Maybe we would get more information from finding cliques and plotting their relationships?
- Or should we ditch the contributor network representation altogether? Should we instead plot metrics on the graph structure itself over time (like the density or connectivities)?
- Of course we can come up with even more visualizations and analysis departing further from activity and contributor network (for instance, I suspect we could ease a bit copyright attribution from files to make it easier to contact contributors in case of license changes... I had to do it once for a couple of files and it's fairly manual and error prone process for now).
- And can we process more than the git commits? What about collaborations on reviews? What about interactions on public mailing lists? For sure there are extra insights hiding in there which would also open up non development activities, at some point I'd like to get an idea of the promo people and designers activities too!
Of course, there are other people doing such community analysis work out there, like GrimoireLab, Gitential and more... They are more providing off-the-shelf solutions than what I'm after. But probably some inspiration can be taken from them too!
The scripts I've been using for the visualizations above are available in my ComDaAn repository. Of course I hope to get them to evolve and to have new ones appear due to the questions listed in this post.
As you can see, it opens up a very large field and I'd like to explore more of those questions in the future and also try to apply them on other communities for which I likely have less preconceived knowledge and biases than KDE.
At the end of 2012, I started a series of post explaining the genesis of the KDE Manifesto. In that series, I pointed out that it took our community six years to go from the pains generated by our growth to creating the needed tool to solve them: namely the KDE Manifesto.
It took us an awfully long time... but it looks like we're getting better at dealing with this kind of community changes. Indeed, this time it took us only three years between Akademy 2014 where Paul Adams delivered his wake up call about our loss in cohesion and Akademy 2017 where a group of old timers (including yours truly) proposed a way to federate our community behind common goal again. It's too bad Paul decided to retire before he could witness that change!
It took a bit of time to put things in motion, but the community finally chose three goals for itself. This nicely concludes the Evolving KDE initiative pushed by Lydia.
I'm excited to see how those goals will progress in 2018 and beyond and how they will impact our community. Will they indeed bring more cohesion again? Will it be measurable?
Those are interesting questions that I'd like to explore... Paul retired, so maybe it's time I try myself at the community metrics work he was doing.
As the year 2017 is ending and the year 2018 is almost upon us, I'm looking forward to another year of work by all the busy bees forming the KDE Community.
We need some help to get there though, if like me you like the direction set in the KDE goals, consider participating in the End of 2017 Fundraiser. Don't wait, only four days left! You can power KDE too!
Long time no see, huh? Yes, I neglected my blog and as such didn't post anything since Akademy 2014... Interestingly this is the last one where my dear Paul Adams held a famous talk. Talk he is referring to in his latest piece. Since his blog aggregation to Planet KDE is broken, I thought it would be a good idea to relay it on my own blog to give it more exposure. It is reproduced below, if you want to read it in its original form, click through the title.
Paul, the mic is yours now!
Many of you reading this are probably already aware, long-time maintainer of glibc Roland McGrath has recently retired from maintaining that project. Inspired by his words, I wanted to say a few things about why I no longer contribute to KDE; a project I “retired” from some time ago now.
Recently two very good friends of mine, both long-term KDE contributors, inquired if I was going to be attending this year’s Akademy (the annual KDE conference). Neither were particularly surprised when I said I wasn’t.
I was surprised that they asked.
Getting Into KDE
My first experiences of KDE were many moons ago; sometime in the very early 00s I guess. I had installed Linux on an old machine and was not particularly enjoying the desktop experience.
There wasn’t a desktop.
I cannot remember which distro this was. It had come off some magazine’s cover CD. There was X. And the tiling window manager which allowed me to fill my screen with x-term. This, for a long time, was just how I got stuff done. Emacs, Mutt, Lynx and some weird terminal-based MP3 player were my jam.
Some time later I was reading another magazine (Linux Format?) and it had a review of a recent beta of KDE 2. The sources were included on the cover CD. KDE looked kinda nice. Less boxy and purple than the only other *nix desktop I had seen, CDE. Until I finished my undergraduate degree KDE was my go-to desktop.
For a while I had reverted to using a tiling window manager and a screenful of x-term. This was just a convenient way for me to get through my PhD and my day job.
During my PhD I was studying Free Software community productivity metrics. I was also working on research into software quality funded by the European Commission. KDE eV (the governance body1 for KDE) was also taking part in that project. At this time KDE was almost ready to release KDE 4. It was an exciting time to get involved.
So I installed whatever the Debian stable KDE desktop (3.1021933933923932) of the time and really enjoyed the experience. Having rediscovered my love for KDE and having met some of the active community, I dived in deeper.
KDE became high on my list of projects to study during my PhD. The community was going through major changes: not only was KDE 4 on its way in, but KDE SVN was on its way out.
Gitting Ready For Change
Around 2006 I discovered Ade de Groot’s tool for visualising contributions to SVN; it was part of the English Breakfast Network3. His version of this tool utilised Python’s SVN bindings to read the repo data. Git instinct told me this tool would work faster if it parsed SVN logs rather than read the repo data through a library. I turned out to be right and this was a formative moment in my career.
I created a generic SVN log parser for use by this visualisation tool and used the same parser for other purposes; mostly other visualisations and data plotting. The ultimate aim was to expose to the KDE community what we could learn about social interactions within the community from, arguably, its most important communication tool: the version control system.
KDE SVN was4 truly enormous. It was pretty much the largest SVN repo in the wild. One very large central repo which represented the entire body of KDE code/artefacts. Around this time the strains of using such a repo with such a huge (and growing) community were prompting discussion about distributed VCS.
These were remarkably mature and structured discussions. Git was, by no means, a foregone conclusion. Other distributed VCS were given headroom and this was the first (and, basically, last) time I played with Mercurial and Bazaar. The discussions were, for the most part, very technical. I raised my voice to talk about the potential social impacts of switching from SVN to distributed VCS. Any distributed VCS.
Joining KDE eV
I spoke at Akademy and other KDE events (including the KDE 4 launch at the Googleplex) about the research I was doing; either my PhD or the EC-funded stuff. I blogged. I dented5. My work was positively received and gearheads would actively reach out to me for more-detailed analysis of their corner of KDE.
I was encouraged to join KDE eV and I did. Given that I had made precisely 0 code contributions6 to KDE this, to me, felt like an achievement.
Since day one of my involvement, KDE eV had somewhat of an identity crisis. It was really not 100% clear what it did… but anyone who had been involved with KDE for more than 6 months was highly encouraged to join. Before long it had become bloated; lots of members contributing almost nothing and the few people wanting to do something not getting enough support to do it.
KDE has switched to Git and the social changes were a-happenin’. The KDE project was starting to lose its social cohesion. Post KDE 4.0-release blues, the switch to GIT and a lack of care from KDE eV all contributed here. Other things, too. No one thing started the KDE community’s cohesion degradation. But we felt it. We even went though a rebranding… KDE was not a desktop project, it had become a suite of projects and the desktop was just one of them.
KDE had evolved and I had not.
One of the metrics I worked on during my PhD was a simple use of graph theory to measure how well-connected a community is. The contribution I made here was intriguing: as project get bigger they become less cohesive, but through careful community management, luck and clever structure, KDE avoided this.
The last time I properly attended Akademy (the KDE community conference) was back in 2014. I’d been frustrated for some time with my inability to drive home the message that the switch to GIT had o be managed properly. I’d been frustrated that nobody seemed to have noticed that my warnings were coming true.
So I gave a talk that year.
Deep down, I knew this was my last public outing on behalf of KDE. It was. After my talk a lot of people came up to discuss the mic I had just dropped. But as the days and weeks passed after the event, the message disappeared. And so did I.
So Why Are You Telling Us This Now?
This year’s KDE conference starts tomorrow. Two of my all-time best buddy KDE community members reached out to see if I was turning up.
They knew I wasn’t.
While we briefly reminisced by email, one of them pointed out that my talk from 2014 had recently come up in conversation on a KDE mailing list. That, 3 years later, the talk was being used as part of a great discussion about change in the project.
I’m really not sure what my emotion about that was. But, I did not feel compelled to join the discussion. I did not feel a need to remind people about what I was trying to achieve all that time ago. Nope. Instead, I went and pushed some changes to a core plan I had been working on for Habitat, the new home for my free time.
To all my friends in KDE:
Enjoy Akademy. Enjoy the opportunity to do some navel gazing. Enjoy the food, the drinks, the sun. Hack. Break shit and put it back together again. Remind yourselves of why KDE is special. Remind yourselves of why it is important. Very important.
I thank you all for the time we spent together.
We were all part of the solution.
Countdown to flamewar… 3… 2… 1… I know many will object to me calling KDE eV a “governance body” but, no matter how you cut it, that is what it is. At least it should be, imo. ↩
There were approximately this number of KDE 3 releases. ↩
Is the EBN still a thing? ↩
Is identi.ca still a thing? ↩
This makes me a true C++ h4xX0r, right? ↩
- otherwise throw away no feature branches needed when:
- focused team
- effort predictability
experiments and collaboration implies quantum effect branches
in any case lifetime upper bound
I am back from Akademy and this edition was particularly interesting in my opinion. Somehow it looks like there was a common theme hidden in this conference... let's go through what I consider the most noticeable events of Akademy 2014.
Even before the official start of the conference, during the KDE e.V. general assembly we had something interesting happening. We had elections for three out of five positions in the board. During the questions to the candidates (thanks all for stepping up!), it was clear that the membership was looking for people aiming at a higher efficiency and then improved KDE e.V. organization. We will see if our new board will live up to those expectations. It sounds like a new cycle of radical improvements will start after a (needed) period of consolidation and stabilization.
Then, the first keynote by Sascha Meinrath was an excellent reminder that we should be more proactive on the political landscape. If we stay in reactive mode just producing software, we won't be able to prevent centralized infrastructure, opaque Internet of Things and the panoptic surveillance system. Only by aiming at a higher political involvement can we avoid the raise of a digital feudalism age.
After this keynote, during the three days of talks and workshops, a surprising amount of sessions were focused on quality in a form or another. I was obviously guilty there with my craftsmanship cycle but Albert too. Add to those the talks from the VDG, the workshop on profiling by Milian and the one on unit tests by Shantanu to easily figure out that there's quite a few people wishing to see our contributors aiming at higher quality.
Last but not least, Paul's talk on community metrics was likely the most important one to attend this year. If you didn't attend it: go and watch the video now! I'll wait... This talk is really a wake up call in my opinion. We lost something and we need to get it back. He pointed out a silent crisis going on in the community. We still have time to get back on the right track, but we got to find the root causes and act as soon as possible. What Paul proposes is to aim at a higher cohesion in the community again. That will require a better shared technical vision, a stronger focus on our mission toward our users and a stronger focus on getting better in our contributions.
By now it is clear that the common theme of Akademy 2014 was that we ought to generally aim higher. Overall, we are in a good position today. Unfortunately, that is also a very fragile one as the community metrics and the quality related talks highlighted.
We're likely at the crossroads now. The decisions we'll take in the coming weeks and months will lead us either to regress or to strive. In my opinion, we can only strive by improving in the areas mentioned above. In some way, that is very good news! We are mostly in control of those areas to improve. It means that success is reachable if we have enough collective willpower to do what's required to seize it.
I meant to write a post about the upcoming Akademy for a while now. Since I submitted quite a few sessions (obviously requiring preparation) and I had to prepare for the KDE Frameworks BoF, I never quite found the time... until now! I'm all done! Actually I just have to pack my bags and hit the road at that point. It's probably the first Akademy where I'm ready four days before the first flight of my journey.
Day 0: KDE e.V. General Assembly
The day before the fun begins for the community at large, the KDE e.V. membership gathers for its annual general assembly. It can be perceived as a day long boring meeting (I know some do), but it's clearly not like that. It is a very crucial event as KDE e.V. has important responsibilities in order to help the community. For instance such a body is necessary for Akademy itself to exist! It is also represented in the KDE-FreeQt foundation...
Clearly an organization not to be underestimated. This year assembly will be especially exciting as several positions are opening in the Board of Directors, which means elections... and candidates. We have quite a few this year which is a good sign of liveliness.
Day 1: Digital Feudalism, Tech and Community
Obviously I can't miss Sascha Meinrath's keynote. I had the opportunity to meet Sascha during FISL 15 earlier this year. He is probably one of the most interesting persons I met during the last couple of years! I discussed with him some of the points he'll likely touch in his keynote about Digital Feudalism. Definitely something people should attend as it is crucial for the years to come in the Free Software movement.
Then I will obviously attend the fast track session. To me we got a few which clearly stand out like GCompris transition to QtQuick, Everything Qt, A year with Akonadi and Using KF5 in commercial applications. This fast track will conclude my first morning.
The afternoon is then packed with quite a few interesting talks. Since I can't duplicate myself I won't be able to attend everything I'd like to... I urge application developers to attend Porting to KDE Frameworks 5 and Porting to QML.
That said... in the tradition of "do as I say not as I do", I'll attend something else instead... told you I had to make tough calls! I will run in the room 2 and stay there the whole afternoon.
I'll first attend War of Idioms by Ivan. The man knows his C++ standards and is definitely enthusiastic about some of the recent changes. So am I! I had the opportunity to use new idioms while working in projects with C++11 support, so I'm looking forward to learn new ones thanks to Ivan.
Then I'll attend A tale of ELFs and DWARFs by Volker. From the abstract it could sound as something very low level, maybe it is somewhat low level... but that is impacting everything we do when developing native code. Since that's what we mostly do in our community it's good for your toolbox to know linking and loading to be able to get out of troubles when needed. Definitely healthy, like eating your veggies at every meal.
After that I'll switch in community mode, looking forward to the Board of KDE e.V. session. Curious about the KDE e.V.? You know, the organization I mentioned above as crucial. Yes, that's what I thought: you should attend this session too!
Still in community mode I'll make sure to pay attention in the KDE in Asia session. I have some kind of fascination for what's going on there. We got people in those countries doing amazing things and organizing great events. We ought to learn and seek inspiration from them. That talk has quite a few lessons for us doing promo work in Europe I'm sure.
Day 2: Craftsmanship, Usability and Design
This one will be my big day... so obviously I can't attend everything I'd like again.
At least I will be listening to Cornelius' keynote. I'm curious about his take on the personal growth experience working in a community like KDE might bring. Like him, I joined for technology but stayed for the community. I also know we have different point of views on the finer details so that will be interesting to have a broader view in a different frame of reference like that.
Then I will be on stage during the fast track session to deliver my KDE Craftsmen talk. As I said, like Cornelius I see personal growth opportunities in the community, but I think we don't seize them as much as we could. I'll make the case of why that is and where we could look for inspiration.
Of my fellow fast trackers, I'm especially looking forward to A quick guide how you can save the world or why it is impossible to do usability (what a long title for a short talk!) by Björn Balazs. Another of those skilled people which inspired me in the past, looking forward to what he's up to.
After lunch, just like on day 1, I will stay in the same room the whole afternoon. Only this time it will be room 1...
First I'll pay a visit to Andrew Lake's Community Design and the KDE Visual Design Group. Being stuck in the lower stack so far I didn't get many opportunities to interact with the people in the Visual Design Group. They did a massive job so far so I'm eager to know more on how they got there!
Next, I'll stay for The Designer and its habits by Jens Reuterberg and Thomas Pfeiffer. Looks like I couldn't get enough with only one designer related talk, so let's go for two! More seriously, I'm convinced that we could do better with truly multidisciplinary teams, and that talk might just show a path to creating those.
After that I would have loved to attend Jonathan Riddell's talk titled Do you need to be brain damaged to care about desktop Linux?. Unfortunately I'll have to pass since it will clash with my own talks...
I will give my two sessions almost back to back apparently and that's perfectly logical. You might not guess it from the title but one is the continuation of the other. In Agile to the Rescue, I'll explore the reasons why we probably need to take inspiration of what's going on in the agile community and what we should borrow immediately. In Rebooting Zanshin, I will present the type of results you can obtain by applying the principles devised in the other talk. I will show some code and metrics gathered on the project.
Probably tired of my three talks, I'll gently end the day by attending David Faure Breaks The Law!? by Paul Adams. I expect this talk to be fun in the great Humongous tradition of the term... don't be fooled though! The form might be funny, but the man is also among the most knowledgeable people on community dynamics and management I know of. I'm curious about his findings. I also expect him to show ways in which we can improve dramatically.
Day 3: Workshops
I'll start the morning with my own workshop From QtWidgets Legacy to QtQuick and beyond. It will be two hours long and it will be all about live coding with participants input. Hopefully it should be interesting to many, if we're convinced about using tests we all have the same problem: but I already got a pile of untested code?? What can I do with that? We'll see an approach for exactly tackling that problem.
Then I will likely attend Profiling 101. I ended up profiling applications both for KDE projects and for customer projects. Still, Milian is really knowledgeable on the matter, so I'll see if I can learn some new tricks or improve old ones.
For the last workshop, I'm torn... but I think I will attend Put your code to the test! by Shantanu Tushar. This is so nice to feel less alone at banging the test drums! Also I expect to learn and share on the use of mocks and stubs as my thinking is still evolving on those.
And that's it?
Of course not! The great value of Akademy is outside the official sessions. Like any good conference, a lot is happening in the hallway and during social events. This unofficial track is where great ideas appear.
Also the rest of the week we will have BoF sessions. I plan to limit myself to only three this year: Frameworks, PIM and French Promo. This way it should free me enough time to make good progress on Zanshin. Lately Akademy has been more meetings than coding for me... This year I want my share of coding!
It's been 7 years since I was last in Brazil, and it was for FISL as well. This year, I was very privileged to be an invited speaker. Since the conference was only two months away from our KDE Frameworks 5.0 release (I should blog about that too...), it looked like a perfect topic for the audience.
I won't cover in great length the talk itself. As you might have noticed I'm not comfortable bragging... So again I'll put the spotlight on the event and the people.
What I love about FISL is the energy you get from it. It puts you in a mood to push Free Software even further. If you ever end up in doubts regarding the progresses made by the Free Software community, I highly recommend you to go there, you'll come back home motivated again.
This high level of motivation and enthusiasm shows in the people attending, in the behavior of the organizers and of course in the talks. I didn't go for many of the talks as most were in portuguese (obviously). That said, if you look at the program the non technical tracks are mostly long streams of success stories in South America!
It is in particular just amazing to see how much the civil society is involved in the Free Software successes on that continent. One such stories celebrated during the conference was the sanction of the Marco Civil. It is a perfect example of very democratic actions. Those countries are not perfect of course (none are anyway), but as far as Free Software activism is concerned, we can learn a lot, we ought to look there for inspiration.
It is then no surprise to see activists like Jérémie Zimmermann or Sascha Meinrath at this event. They were both speakers, so I had the pleasure to spend time with both of them. I also could spend time with the organizers, Roberto Troian in particular who I probably annoyed a bit with my lost luggage (sorry!).
For me those moments immersed with such brillant and interesting people were the high point of the conference. Different cultures, different customs to the one I experience usually through Qt or KDE related events. It is always a good thing to be open to those. Also, a lot of singing was involved... definitely something we need more around KDE. :-)
Of course, I also got to spend some time with our local KDE team. They have interesting things to say too! For me the proofs were in the discussions over lunch and at least one of the talks from them that I attended. I hope to see more of the KDE Brazil crew at Akademy this year!
I'm on my way toward FISL 15 in Porto Alegre... That sounds about the right time to write about my trip in India. Who said I was posting late and out of order? :-)
Anyway, this year feels a bit special to me... in 2007 I was in India for FOSS.in and Pradeepto's wedding, I was also in Brazil for FISL. Now we're in 2014, and I'm invited in both India and Brazil again, looks like they go together. I just hope it won't take seven more years for me to go back there, but I digress...
This year I was privileged enough to be an invited speaker for conf.kde.in 2014. It allowed me to see a tiny bit of Gandhinagar. Unlike my first time in India, I couldn't stay long, only a handful of days (managed two weeks in 2007). That's why I didn't see much, but I really don't mind, I like to travel for the people more than for watching stones. And regarding people, this trip was about perfect!
I really love going to India because of its people in general, and because there are a few persons I care about a lot coming from that country. Pradeepto is obviously on top of my list, spending time chatting with him is just lovely as usual. It was also perfect to see how he became the wise man in KDE India. He provides advises all around, we're so lucky to have someone like him in KDE.
It was also nice to discover more of the people I quickly saw during Akademy but didn't really spend time to discuss with. I won't list names, I'm too afraid to forget someone... There was so much interesting people, KDE India is really an impressive group. I wish KDE France was that vibrant, we have quite a few lessons to learn!
And since we were sleeping in the same hotel, it was also a nice opportunity to spend time to know more Jos Poortvliet and Peter Grasch. I don't usually hang out with them (for no good reason), it was about time to fix that. We discussed KDE, life and trivial topics (guys, I hope you found those movies! I'll ask you about them you can be sure).
I think the biggest change since my last time in India was the behavior of the students. The last time I could feel they wanted to learn more, but I didn't get any question, they were somehow too scared. This time on the other hand, they were much less shy overall. Clearly something is changing in the younger generations. We know there are brilliant people among them, now if on top of that they're less shy and feel confident enough to ask questions... the amount of successful Indian students in the community will skyrocket for sure! I'm really looking forward to that.
Oh you might think I'm just rambling, and that this is trivial because I don't mention any talks? You might be right in some way, I am kind of rambling. If you find that trivial on the other hand, you are very mistaken! KDE is people, conf.kde.in is even more about people: the KDE India crew, the other foreign speakers trying to learn of the Indian culture and failing, the students hungry for knowledge.
Just thinking about this mix of people to write this piece put a smile on my face. Yes, it is that good and inspiring.
I wish you to get such experiences, they are worth living!
This week we gathered around ten of the KDE Frameworks contributors for a sprint focusing on preparing the release. As usual I went the let's have a board with sticky notes route. We dumped information from the wiki there and been working on tasks since then. By the look of that board this morning I would say we did a nice job. At the time of writing, almost everything is gone:
- we still have 4 rather small release blockers to be addressed;
- we have three nice to have tasks to be addressed;
- we have 5 release blockers in progress;
- we covered 4 discussion topics;
- we finished 42 tasks (I kid you not!).
This time, to manage the board I used a different technique. I didn't limit the WIP. Instead, I have been regularly adding smaller orange sticky notes to the tasks in the WIP lane (roughly every three hours). That was a nice way to spot tasks which were causing pain for people as they were banging their head on them. You can see the effect on the picture below which I took earlier during the sprint:
I think that for a short lived board it is a good approach. Developer sprints like we practice are probably too short and hectic to benefit from WIP limitations or more complex metrics as we'll never reach the point of having moved enough items for statistics to be relevant. On the other hand, with this very simple technique, you can quickly see some kind of flower blooming on the difficult tasks.
From the discussions going on there, the biggest outcome has been about the release cycle. We got several times the question already, so it was time to take a decision. I purposefuly delayed that decision to make sure we could discuss it properly during the sprint.
We juggled with several options, and came up with something ambitious. We are going to proceed with a one month release cycle. With the other policies we had in place for a while now, it should help reaching the stability goals we want for the frameworks while respecting the current team dynamic. As a consequence some of the work which happened at the sprint was about perfecting some of the tooling around release management.
The expected outcome should be:
- more dog fooding from framework developers;
- more contributions from application developers;
- more automated tests and peer reviews;
- and last but not least, finer grained feature delivery.
All together it should pave the way to continuous quality improvements.
I'll leave in a couple of hours. It has been really nice to witness and be part of the progress made during the last few days. We're really near from release now. Except if we hit a major issue in the coming weeks, we should be well positioned to release KDE Frameworks 5.0 in early June as planned.
Also I'd like to thank Blue Systems for hosting us in their Barcelona office. In particular, a big thank you goes to Aleix for his patience and dealing with our not so spanish daily schedule. :-)
PS: As I was writing this blog, two of the remaining release blockers got solved. By the time I get home I wonder if there will be stuff left to do. ;-)
I've been back home for a week now. Another Akademy has passed and as usual it was a blast. I will keep fond memories of that edition for sure. Here is the list of the moments which touched me the most.
First, I'll remember Eva Galperin's keynote of course. It's likely among my short list of the most important keynote we ever had, and for me, it sits right next to Glyn Moody's keynote in 2009. They are definitely closely related in message. If you didn't yet go watch them! Eva's conclusion was especially poignant as the EFF spends so much energy trying to influence policies, she said:
“Help us Free Software, you are our last and only hope... Go for it, use strong encryption, build new products, save us”.
Clearly a call to action we have to listen too in those dark times. We're part of the people and through our actions we can claim the democracy back.
Second, I'll remember my own keynote. Don't worry it's not about narcissism at all... It's clearly not the best keynote ever anyway. But I'll remember it for different reasons. It was a first for me to be pushed in the spotlight like that, and so it'll take a lot of time before I properly let the feelings sink in. Also, it was a very humbling experience, being in front of such a brilliant crowd trying to deliver a political message and propose a direction for our community.
Third, I'll remember witnessing the “Church of the Canoe” birth. Jonathan Riddell loves to canoe. He canoes everywhere. I think that when he visited me a few years back in Toulouse, almost the first thing he asked me after getting out of the train station was “can I canoe on the Garonne?” So that's definitely a serious business, and he looks up a spot at each Akademy.
This year something interesting happened though. He called to gather more people wanting to try it, and got positive replies (of course, we're talking about KDE people here). That's why this year we had a group of “canoe pilgrims” congregating to Jonathan's spot. I followed along to get proof of that phenomenon in pictures.
It was all good fun, they all did well for a first try (except Jonathan they were all first timers as far as I know), and nobody disappeared. It was a nice, peaceful, relaxing experience for me standing on the deck and watching.
And last but not least, I'll remember the sleepy heads in the bus during the day trip. This day trip was really nice, but we spent quite some time in a bus. And what happens to people who've been attending talks, hacking at night, discussing, making compromises, etc. for several days in a row when you put them in a bus?
Well, the exhaustion kicks in and they fell asleep of course! I used the opportunity to take a few pictures of the ones I had around. I call them the “sleeping froggies”. Don't worry they did more than just sleep during the day trip, despite resting their eyes in the bus (yeah right...), they happily walked, swam and feasted at the appropriate times of the day trip. :-)
In the end, there is nothing technical in that list you might say. That's true. It's not that I didn't take part in the usual hacking or technical talks... it's just that they make poor memories in themselves (despite bringing nice results). The persons I interact with and how they change my life matter more.
This post is part of a series about the KDE Manifesto
In the previous posts of this series, we looked at the history of our community and the reasons which pushed us toward answering "What is a KDE Project?". We also discussed which process we followed which ultimately gave birth to more than a definition in the form of the KDE Manifesto.
I'm just done delivering the Akademy 2013 Community Keynote (and yes, the slides of my keynote are already online), and this last part of my KDE Manifesto series will follow a very similar message than my keynote (even if approaching it from a different angle and likely with more words).
The KDE Manifesto is almost one year old now... That prompts the obvious question of "Did it have any effect?" And good news, yes it did, so all that work wasn't for nothing! More seriously the most obvious effect is the fact that we got some new projects joining our community; projects that already existed outside of KDE. We're not talking about dozens of them, more likely three or four, which over a year is not too bad. It also had a less obvious effect toward projects which were already part of the community or perceived as such, it prompted them to get closer to the rest of the community. In both cases, it gives me great hopes. Indeed, those people joining or getting closer are the living proof that our community and its values are attractive.
Now of course, we risk becoming lazy and stopping here. Maybe just adjust the manifesto a bit here and there, roll out updates to it and done... I think that would be sad, and for the past year I've been taking a step back from the manifesto trying to connect the dots and see where past events could lead us. I think that now I've a theory worth sharing.
The obvious (in my opinion) conclusion of the events I related in my previous posts (the Akademy 2006 discussions, the KDE Rebranding and the KDE Manifesto) is that our software products are not what matter the most. The community is what truly matters. It might seem obvious to you as well oh my dear reader... but it was clearly not a given 10 years ago. Ultimately, we could completely stop producing a workspace (worry not though, we still plan to do so, it's a pure thought experiment) as long as the community survives and lives up to its values.
Then we must ask ourselves if the community has the necessary means for such a long term survival. Since the manifesto it has the seeds to create such means, but they still need to be created. And to figure out which tools to create, I think we need to realize which type of structure we're evolving into and keep pushing in that direction. And even though it can be a fuzzy concept, I think we're evolving to be a democracy. We have no land (apart from some presence on the internet) but even without physical borders it's what we strived to be and that's clear from the manifesto in my opinion: more than half of the values listed there are democratic traits. As a corollary it means that the manifesto would be our constitution (I don't know about you but I find that extremely exciting).
If we take the "KDE Democracy" for granted, it gives us a guide to know which tools we should build. Indeed, we need to complete our democracy to make sure its culture keeps striving. It will be tackled thanks to three main aspects. I'll examine those now (in no particular order).
First, we need to find out patterns and document our governance. That should be done at two levels I think. At the community level, we need to figure out how the overall direction emerges, where are the power structures and if we want to adjust some things (I'm thinking for instance at the links between KDE e.V. and the community, but there's more). Also at the projects level, we need to find which type of governances we use and where are the shared patterns. Overall, we're relying a lot on auto-organization (which is good in my opinion), but that works only within a regulation framework... remove the regulation and you'll get a chaotic system instead.
That's why we have to find and preserve our regulation framework. I often refer to the "Respect The Elders" unwritten rule. I might get to that in a separate post one day as I don't quite like the name (it could be mistaken for the seeds of a gerontocracy which is not the case) and it raised some controversy during the keynote (for the reason above)... After explanations, something like "Respect the Up to Date Experience" might be a more correct wording (although less catchy). In any case, it is likely our regulation framework has more unwritten rules. Obviously, that has to be tackled at both levels (community and projects) in parallel, it wouldn't be surprising that the governance at the macro level emerged from the regulation framework at the micro level.
Second, we need to internalize the fact that we are part of or in interaction with greater ecosystems: the Free Software community at large, the software producers, the software consumers, the hardware vendors, etc. Just like a country being in interaction with other countries, we're in interaction with other such entities. As such we should be constantly aware of our surroundings otherwise we rick to not realize that the world changed without us and our culture didn't evolve to cope up with that.
That's why we really need to properly tackle our alliance management for instance. Probably by creating some kind of "foreign office" were people interested in this matters or responsible of a particular alliance can meet and share. Otherwise we're at the mercy of ad hoc links, and when the person leaves we loose the alliance with it.
Third (and last), we need to make sure we pass the culture properly to projects which join the community. It's very important to protect the culture itself so that it evolves at a proper pace avoiding deadly disruptions. But, it's even more important for the joining team! Indeed, it's not easy and can be very intimidating to join a community like KDE. You could quickly become isolated and so you got no reason to stay any longer. In the end it would completely destroy our ability to provide both cohesion and diversity in our community.
That's why we need to create an incubator responsible for welcoming new projects joining the existing community. It will have to make sure that the joining team has everything it needs to be able to work and is properly introduced to the culture and the rest of the community (or at least the parts they have potential to share with). I think it's a very interesting topic on a human level and because through it I'll have to keep thinking about the overall culture of our community. I'm currently working toward setting up such a KDE Incubator with Paul Adams and Wade Olson. We're looking for input and feedback on that particular topic, so please feel free to join the corresponding BoF on Tuesday 4pm, room B2.
And that concludes this series about the manifesto genesis and its implications, I hope you liked the read as much as I enjoyed the writing. As you can see during the big evolutions of our community we go there and back again. This evolution seems to have cycles. Indeed we went on a journey to reach the creation of the KDE Manifesto, and now we're back home looking at what are the consequences of it on our community. We're also better prepared to create more tools to sustain the growth of our community, like the ones I mentioned above. Let's put our passion to the service of the community and let's work together toward those goals!
If you looked at the (awesome) Akademy 2013 program, you'll notice there's no talk about the current state of KDE Frameworks. There's talks related to teams showing plans to use KDE Frameworks, or talking about building blocks present in KDE Frameworks... still... nothing about the big picture. No worries! There will be plenty of activity around KDE Frameworks!
In particular, every morning from monday 15th to thursday 18th in room B4, we will have KDE Frameworks office hours where the current team will churn out patches faster than ever, and help others to get started with KDE Frameworks.
Also, on thursday 18th afternoon in room B4, we'll have the big discussion about moving KDE Frameworks into release mode for a first release. The path to get there should be much clearer now, once we sorted out the last details, it will just be about having all available hands on keyboards and making it happen.
So, if you're interested in KDE Frameworks, we're easy to find, come to the room B4 and join the fun!
And now, it is less than 48 hours before my departure for Bilbao and Akademy 2013... I'm really looking forward to meeting the rest of KDE again!
This post is part of a series about the KDE Manifesto
As mentionned in my previous post, I have been on a very needed hiatus from public communication. It also means that I delayed indefinitely my series about the KDE Manifesto. If you don't remember the first part, I advise you to read it again first. Now... Let's resume the story telling.
We've previously seen why we needed a tool to answer this question of "What is a KDE project?", in this part we'll see how we tackled the task which led to the KDE Manifesto.
Because of all the events and the questions without answers related in the previous part, some people finally noticed some actions were needed and that we couldn't ignore the symptoms any longer. At one point the discussion started in the KDE e.V. about trying to provide a definition of what is a "KDE project". Then in the KDE e.V. was created a small team which had the mandate to create that definition. I had the honor to be part of that team, and the other members were Cornelius Schumacher, Eike Hein, Ivan Čukić, and Sebastian Sauer. We should really be grateful to the work they put in that task (I know I am).
We started with the right first step in my opinion: collecting feedback from the community and from different projects to see how they perceive themselves and the community. But doing it this way had a downside, we ended up with way too much data, and got completely overwhelmed. That was clearly not easy, and everyone being busy as usual at some point the data got ignored, collecting dust in a dark corner of our hard drives. The team became completely dormant and no communication was going on anymore.
Until... one night... I don't really know why, I picked up everything and tried to map it on paper. I extracted criterias and definitions out of the pieces of text we received. After all, I used to do Knowledge Engineering, that couldn't be an impossible task! That's when I noticed why we felt overwhelmed and silently gave up on the task at hand. If you took all the criterias and considered them equals (which was our mindset all along), you could end up only with a tautological situation: "A KDE project is a project considering itself part of KDE or started by a known KDE contributor". Not a terribly useful outcome, but at least I then knew how to move forward.
I asked the membership of the KDE e.V. to change our mandate in order to move away from trying to define what a KDE Project is and instead determine which characteristics we want KDE Projects to share. It sounds similar but makes a huge difference, you're not working on a closed check list anymore. It made for a much more open space, and not all feedback could be treated equal anymore, there definitely was noise in there.
Once that change of scope got accepted, I summoned the original team again to set up a meeting at Akademy 2012 to work together on the data again. With the given mandate, it was likely not possible to nail it down in finite time remotely. Since not everyone could make it to Akademy, we had to reshuffle the team a bit to make the meeting happen.
And so the meeting finally happened at Akademy, after the KDE e.V. general assembly in presence of Alex Fiestas, Albert Astals Cid, Carl Symons, Cornelius Schumacher, Mirko Boehm, Pradeepto Bhattacharya and myself. We were looking at a very long and intense brainstorming session to go through all the notes which were collected the past months and try to make sense out of them... We all know how this kind of brainstorming sessions can quickly go out of control and be in the end fruitless. That's why I came with an experiment to propose.
Instead of debating the outcome, I proposed a very light process, in the form of a tuned "Prune the Product Tree" game. This game is part of a set named "Innovation Games" which are good for market studies, or emergence of answers to very broad questions like the one we were tackling.
The basic idea is that we went through all the feedback we got, and for each piece of information found, we tried to determine where on the tree it would fit:
- On the floor if that was irrelevant, or mentionned as something we should avoid as a criterion in the future;
- On the roots if that was something supporting the community, something the community couldn't function without;
- On the trunk if that was something central to the community definition;
- On the canope for anything less central, and derived from the rest, further away from the trunk as it was more refined by-product, in other words consequences from what was on the roots and the trunk.
And so, while playing that game (it's a serious game, but a game nonetheless so it has to be played!) we obtained the following tree:
That's when it struck me... We're not really creating a definition, we're creating a manifesto. On the roots and the trunk it was clearly on the values level, while on the canope you could see practical consequences of those values. I suggested the rest of the team to work on a document which would follow this form: the real manifesto talking only about the high level values, and then extra parts for the practical consequences of those values. This proposition was accepted by the whole team.
Before parting, we also decided to sanity check our result and get an idea of its impact on existing projects. We took a few sample projects and examined them through the tree we produced. Obviously sample projects which were already KDE projects would have to fit, and for sample projects which were not KDE projects we would need to easily identify the blockers for them to join. Reassured by this last check, we parted ways and the editing work started.
I ended up carrying that editing work. I took inspiration in the Agile Manifesto and the Software Craftsmanship Manifesto which went through this kind of exercise before us ("stand on the shoulders of giants" they say). While creating the different drafts, I proposed them to more and more different people, collecting feedback and amending as I go. That led us to the release of the KDE Manifesto in its current form. It is definitely not a document set in stone, I keep collecting feedback and I plan to push updates to the manifesto in the future. I expect the main page to be rather stable, but we'll probably see the rest of it change with time. It seems I turned into the de facto curator for the KDE Manifesto, it's something I try to approach humbly as to not betray the spirit of KDE.
And that concludes this genesis of the KDE Manifesto... it is definitely not the end of the process I mentionned in my previous post. We're really on the doorstep, this document is more or less our late constitution, it's up to the community to choose the path from here. I'm pretty sure it will be full of adventures for the years to come... That's why, even though I generally avoid to do that, in the last part I will try a small exercise in forecasting and see which changes it might bring to the community.
I didn't make noise about KDE Frameworks for a while now, and to the outside it could look like it wasn't making progress. Let me assure you: this is not the truth. Admittedly, I decided to take a risk a few months ago... I stopped communicating or reaching toward people to get more contributors.
Why would I take such a risk? Well, we hit a major road block in the form of KDEUI. The complexity was so high there, that as soon as someone was trying to split something out they were daunted by the task. That's why I stopped trying to bring more people in... what's the use if they then walk away in disgust? I'd rather have them do stuff they take pride in.
And so I took the risk, went into a sort of retreat to focus all my energy on trying to find a way to slay the beast. I can tell you it has been months of work to remove the difficult parts of KDEUI in order to make it more inviting to people. It's not all solved of course, but we're at a point where the beast is about to die... we have to collectively strike it once more to put it to rest before moving to other fun areas.
That's why, today, I am glad to announce that the battle plan to split KDEUI is finally published. I am able to concentrate on other people again, and so expect more communication and help from me (it even picked up a bit already).
All people wanting to push KDE Frameworks forward are invited to pick tasks either to split KDEUI or push our contributions to Qt forward. Both are surely needed and most of the tasks there should have a similar size.
If you are interested, please contact us by email on kde-frameworks-devel, or on IRC at #kde-devel. If you are not sure what to pick we can help you get started and select something matching your skills. If you have issues with your task and are unsure what to do we can help you.
We also plan to hold regular meetings to share efforts and progress. They will happen on #kde-devel every Tuesday at 4pm (UTC+2).
Hoping to see you there! Let's bring KDEUI down.
This post is part of a series about the KDE Manifesto
So the cat is finally out of the bag... The KDE Manifesto has been officially announced. It probably came as a surprise to some of you, and since I got a unique perspective in its birth I thought it'd would be a good idea to blog about it to give some background information.
So why this unexpected party and the sudden release of this document? Well, like most unexpected events, it is the realization of an unnoticed process set in motion a long while ago. I think I would have a hard time to pin point exactly when the need to have such a document appeared in the subconscious of the community... My opinion is that it should probably have been done a few of years ago. I'm sure of one thing though, it became necessary because our community evolved in a way that its creators didn't expect.
Now, let's jump back to October 14th 1996, a student named Matthias Ettrich sent an email announcing a new project. If we examine this announcement today, what is immediately obvious? Let's see... It was an energic call to arms. It was very developer centric. It laid down some of the main technical choices. It was limited in scope by providing a list of the components a desktop needs. Also, at the same time it pointed out that more than what was listed might be needed, claiming it's a very open project.
After this announcement, people started to join and to happily work on KDE. They clearly delivered, release after release, KDE was getting bigger and better. Nobody really thought about the community which formed, it was all about the technical artifacts (which is totally fine, I'm not judging). This trend continued for years, pushing KDE (the desktop) toward its popular success, while the community making KDE was growing.
It's time to fast track to the year 2006! The community behind KDE is busier than ever (the first KDE 4.0 alpha will be released the following year), and all this activity shows how big and complex this community became. Teams formed, not every team progressed at the same speed or had the exact same vision of the whole. Clearly something happened in our community which changed it.
That same year we had Akademy in Dublin, probably one of my favorite Akademies. And remembering that particular edition two things struck me:
The first one is Aaron Seigo's keynote which was subtitled "The Quest for Project Identity and Definition"... Interesting, in retrospect, isn't it? But lots of people probably attended it, I won't spend more time on it, you probably got the idea from the title.
The second one got probably unnoticed to most. It is one of those tiny details which are really precious because the event passes quickly... and somehow I remember it vividly, it touched something in me and stayed in my memory. During that Akademy, Matthias Welwarsky was chairing the community track of the conference. During one of the introductions, and probably in reaction of the keynote mentionned above, he said that to him "KDE is not a project anymore, because a project has an end, it has become an on-going process".
And here it is... I think that in one sentence, Matthias Welwarsky has put the biggest change which happened to KDE in plain sight. The event which was unforseen by the creators of our community, at some point between 1996 and 2006, KDE became an "on-going process". And that's right, if you look at the original announcement of KDE, all of the goals set there were reached in 2006...
KDE was still operating, but in the unknown, what is this "on-going process" trying to solve? Nobody could provide an answer to that question anymore. Somehow we created something self-sustaining which was delivering more and more software.
It took a few more years before someone really tried to visit what was going on and to characterize what KDE meant... At that point it was clear it wasn't simply about KDE the desktop anymore, the community was doing much more than that. That's why in 2009, our marketing team took the lead and announced the repositioning of the KDE brand. KDE wasn't a product brand anymore, so not a single KDE the desktop anymore, but it was a vendor brand. It meant that from now on KDE the community was producing (among other things) a desktop. The new word on the street was "KDE released KDE Platform 4.5", "KDE released Kontact 4.7" and so on... Quite a change of perspective!
I know some people didn't really like the marketing team taking the lead on that... I don't have a strong opinion about the exact content of the repositioning, but it clearly was the tip of the iceberg of the mutation of KDE. It had the merit of making it explicit at last!
At the same time, despite such a brand repositioning being welcome, it was not enough to address the changes in our community. It emerged because we kept going after reaching the goals set in 1996. It emerged because we were creating more and more diverse products: development platforms, workspaces, desktop applications, mobile applications, even server applications (Kolab was born in our ranks, ownCloud would appear in 2010). But, it didn't allow to answer "what is a KDE project?".
And that's pretty much the situation we were at in early 2012. "KDE" is the name of the community, and this community makes products. So we're in a situation where "a project is a KDE project because it has been created by people in the KDE community". It's not exactly satisfying though... What if someone from the community creates a database system? is it a KDE project? (hint: the answer depends on who you ask) What if someone outside the community creates a mobile application? can it join the KDE community? under which conditions?
I'm not making this up. Those are real questions which arose over the years... and we never had a tool to help us devise a proper answer. We dealt with that in an ad hoc manner, and it was a growing pain. I'll go as far as saying it had potential to hurt the cohesion of the community.
That's what we're trying to fix, and we'll see how in the next post of this series. :-)
Interesting week, I think that's the first time I attend a sprint where I don't write a single line of code. Wait! What? Me? Not writing code!? Yes... I guess it was doomed to happen since I've been doing more and more sprint organization lately.
This one was a bit special though, I'm not really a very active contributor of our workspaces. I care about them of course, but I just provide a patch here and there from time to time. Lately, there's been new blood getting involved in the workspaces, which is great of course, but that's also challenging. When you get such a community growth, it is often difficult to keep everyone on the same page.
I've been doing organization work, I care about our workspaces, and I'm a rather neutral/free agent in that area so I decided to attend. Indeed, it seemed that I had a proper profile to facilitate the meeting, and help integrate people, so I tackled that task. It was probably risky in retrospect, but no one got hurt, that's a good sign. ;-)
Of course, since I'm working on KDE Frameworks as well, I could from time to time bring the "people from the basement" perspective. :-)
So, what did we achieve during that week? Maybe not a lot code wise (yet), but definitely a lot on the bonding and community front. That's fine as it was the main goal!
I planned several sessions throughout the week to prepare the proper mindset. Of course it all started with hugs and massages (I've been told it relieves tensions, so it was a proper first step I think). Then we had a first meeting where Marco and Sebas presented the terminology and the concepts used around Plasma. It of course raised some controversy, but we quickly moved on for the time being as it was more about sharing the current state of affair, not more.
We then took on a long tour of group activities.
First Björn helped the people to build a set of personas to help thinking with the user point of view when dealing with our software. We came up with Carla and Raj who helped quite a bit during the sprint. Hopefully, they'll help us more generally when designing to keep a user centric approach.
Then we had two innovation games named Speed Boat and Prune the Product Tree. They were respectively meant to figure out the pain points around the workspaces, and to find out the product core features and its dynamics. We did a terrific job on those games along the course of two days... They were exhausting for me though! Keeping your attention focused to facilitate the process, get the people to share, make sure everyone can talk, etc. Pfew! That wasn't even the end of it all... I still had to process all the generated data!
Luckily, those games completely met my expectations so it was worth the effort. They indeed confirmed some of the assumptions we had about our products, but they also helped to discover some unsuspected dynamics. Of course I pushed all the data and results on our wiki.
We concluded this process with two meetings. The first one to revisit the terms and concepts extracted on the first day. Those terms and concepts got adjusted a bit, which is a very good thing, allowing everyone to appropriate them. The second one was more technical, and the people extracted together tasks to move the products forward. It helped fill up a Kanban that they're supposed to use over the week-end now (I can only assume, I unfortunately won't be there to live the experience, I had to get back home).
Of course, throughout the sprint, there was quite some slack in the schedule for the mandatory cooking activities (led by our own personal Dario The Cook), table tennis games, naps and messing around with the swimming pool. That helped keep a playful atmosphere which was definitely welcome.
Anyway, during this week it was fascinating to see less and less controversies appearing during discussions. They got replaced by more and more group thinking, consensus creation, etc. Definitely more pleasant for everyone. I dare believe the activities we proposed through the week helped pave the way of this shift of mindset.
As you can see on that group photo, very nice atmosphere in the group this morning! I hope it'll stick... only time will tell.
PS: For more pictures with sexy hackers or the usual sticky notes, I already uploaded them in the Sprint gallery
You want to help us make progresses on KDE Frameworks 5... But you missed the volunteer day? No problem! It wasn't a one time event, and we're having the second edition this week-end!
We're of course a bit sorry for the late notice, we'll try to announce the next one more in advance.
Come and join us! Saturday March 24 on Freenode #kde-devel channel!
This day will be mentored by Sune Vuorela (svuorela), Dario Freddi (drf) and David Faure (dfaure) from 10am to 6pm CET. Feel free to ping them on the channel.
They will be around to guide you and answer all the questions you could have on KDE Frameworks 5.
Pre-requisites: Qt 4.8, a build of kdelibs frameworks branch (note the you will need cmake 2.8.7 for it or the cmake git version and a clone of extra-cmake-modules). You can also read the Frameworks Community wiki pages in order to learn more about Frameworks internals.
Remember Saturday, 10am to 6pm CET, #kde-devel on Freenode, be there, help our community!
You want to help us make progresses on KDE Frameworks 5... But you're not sure you're up to the job? You don't know what to look at or where to start? You're not sure what it takes to be a KDE Framework maintainer?
Fear not! We're thinking about you, and we will have the first KDE Frameworks 5 volunteer day next saturday.
Come and join us! Saturday February 18 on Freenode #kde-devel channel!
This day will be driven by Aaron Seigo (aseigo) and myself (ervin) from 10am to 6pm CET. Feel free to ping us on the channel.
We will be around to guide you answer all the questions you didn't dare asking to get yourself started on helping us with KDE Frameworks 5.
We're preparing tasks to allocate to volunteers, and they will range from the small self-contained code adjustment, to splitting your own KDE Framework out of kdelibs and becoming its maintainer. Eternal glory will be provided with any task package you pick, so don't hesitate anymore, it's your chance right now!
Remember Saturday, 10am to 6pm CET, #kde-devel on Freenode, be there, help our community!
Just a quicky on "what I did this week-end".
And yet another week-end which went away like a blast... of course it was again the fault of KDE! I went all the way to Osnabrück to attend the traditional KDE PIM sprint. This one was a first for me despite the fact that it was its tenth edition.
My plan before flying in was simple and easy to remember: "Sit with David Faure and fix all his IMAP bugs". It turned out not that easy to apply in practice. Of course, there's always something unexpected... sometimes pleasant, sometimes not.
For the unpleasant part, we had a tough luck on Friday: David's travel wasn't smooth at all so he arrived only during the night, while I had a terrible headache during the afternoon and the evening which made me only able to triage bugs (and at a very slow pace even...).
The pleasantly unexpected event which turned me away from my initial simple plan was the presence of Christian Mollekopf and Björn Balazs. I work with Christian on Zanshin, and I already interacted with Björn quite a bit during the Forge 2011 for usability work... one plus one being equal to lots, we ended up having meetings to discuss the interaction schemes for Zanshin 0.3. I have to say I'm pleased with the results so far. There's still a few gray areas but I think we'll decide on those when we turn the ideas into code.
And for the IMAP support? Well let's say that despite the disturbances which turned me away from my plan, the bug count went drastically down. On arrival, there was a bit more than forty bug reports against the IMAP resource, and between the triaging and the bugfixes we worked on with David I'm now leaving the sprint with only twenty known bugs (also a couple will likely get closed shortly since patches are in the work).
And again, a fairly nice and productive sprint, courtesy of KDE. I looove this community!
Didn't blog in a while... Indeed the end of 2011 was hectic lots happening (both at work and in the community) so almost no time to write about it. Despite Christmas and the New Year I didn't take vacations in December, I admit I'm now a bit tired.
Anyway, the last few months were awesome, as I said: lots happening. So let's
take a look in this post at the latest endeavours I participated in be it
technical or community work.
Akademy-fr / Capitole du Libre
This event was grouped inside the Capitole du Libre with an Ubuntu Party, a DrupalCamp and two tracks of conferences on Free Culture. As usual, the whole Toulibre LUG was a great support to organize such activities.
The first day, we managed to fit two tracks of talks in Akademy-fr itself, one oriented toward contributors, the other meant for users. It was a nice success overall even though we maybe suffered a bit from the user track of the Capitole du Libre for our own track. That's understandable and something to fix for later. We also had a booth where we demoed the different productions of KDE. Using one of the Exo-PC with Plasma Active on it was just great to attract people, it is also great to show such a device next to a Plasma Desktop powered computer as it helps illustrating how coherent thoses workspaces are together (activites being pervasive concepts, same widgets to operate the devices, etc.).
The second (and last) day of Akademy-fr and Capitole du Libre was dedicated to workshops and labs. I think it was a really nice idea and we should keep it for the next edition. There was a bit less attendance, such workshops are more involving and requires to engage more with the community so it's understandable they can be a bit more frightening. Still, it was just great to get people trained on how to make a proper bug report, how to make their own Calligra plugins and such.
Of course, the real plus of this event is that most of the french KDE contributors showed up, we also got "pure-Qt" french contributors around. Funnily, all of KDAB France showed up in the end. Anyway, it was really nice to gang with already known faces again, but also to finally meet some people we only heard of so far.
Thanks to the sponsors who made this event possible. Also, thanks to everyone who helped, held a talk, or simply attended: you made the event a success! Finally, I'd like to give a special thanks to Aleix Pol who traveled from Spain to talk about Akademy-es and KDE España (which are both nice inspiration for us).
PS: I finally uploaded the handful of pictures I took during Akademy-fr 2011
Lot's happened around Zanshin which led to its first proper release. Most notably it got its own website now, and we fixed bugs like crazies leading to the release of 0.2.0 the day before Akademy-fr (although the public announcement was done only the week after).
It's also interesting to see it picked up by packagers, and now it is available on most of the major Linux distributions and on Windows. Hopefully it will sooner or later reach Mac OS as well, it has been reported to build and run by a couple of users but there's no official packaging for it yet.
The community around Zanshin also grew a bit, with a couple of contributors gettings in. I'm looking forward to see their influence inside the project. Nice ideas floating around at the moment. We'll have to implement those ideas incrementally of course otherwise the next release will be one of those long cycles again but I'd love to see shorter cycles for Zanshin now.
After a period of some slow down, the KDE Frameworks is picking up again. I volunteered to help with the stewardship of that effort which led to some discussions and the creation of a wiki to track KDE Frameworks state.
It's obviously still on-going so the wiki needs to be improved, but it helped quite a bit already in decision making and figuring out where we are headed and where we want to be.
On the people side, we're getting contributions in but more importantly as we make kdelibs more modular we're finding volunteers to maintain the newly created library. It think that beyond the technical side of KDE Frameworks this trend is a very important one to nurture.
Indeed, the number of maintainers in kdelibs has been only a few for a very long time, and even though we have people interested in it they don't necessarily commit to be maintainers. With the modularization it is apparently less scary to step up to take care of one of the modules created, they're well identified, have a given scope and so on. Less unknowns then leads to less fear.
I find interesting how the motivation for KDE Frameworks was mainly technical, but is apparently changing the structure of the community. My take is that it will lead to a somewhat similar organization to the Qt Project. Only time will tell anyway, but it's fascinating to be a direct witness of the on-going evolution.
KDE Toulouse & Monthly Hacking Sessions
The KDE Monthly Hacking Sessions are just running as usual, we keep having this monthly get together on saturdays people carrying on their work, but also having a talk or a workshop in the morning. Thanks to Benjamin Port and Jean-Nicolas Artaud strong involvement, this activity is more secure than ever not being completely dependent on me being available and relaxing constraints on my own schedule. Thanks for that guys! It helps the whole group having enough energy to undertake other activities (like the Akademy-fr above). Say no to burn-out, distribute work! :-)
We had less people attending the sessions at the end of 2011, probably in part because of Akademy-fr being around the corner by then. There was also some other factors but we have plan to fix that. January's session, held yesterday was the proof of the continuing interest in those monthly events, we had another of those high attendance rate of the good old days. It was even further improved thanks to Akademy-fr. Indeed, we met Romain Perier who attended the conference in November and we were delighted to have him motivated enough to volunteer for holding the workshop part yesterday, travelling just for the day to do it! Thanks a lot Romain! It was really nice to have you around, hope to see you soon again.
Toulouse University Involvement
Bad news there... this activity came to a halt. We saw it coming for a while, but last year was the last time our projects and teaching to run with the IUP ISI (the course of study whose director, Henri Massié, trusted us to do a good job there). Indeed, after a few years of political games (mostly driven from the ministry as far as I can tell), all the "IUP" type of courses of studies disappeared. The IUP ISI was one of the last to carry the torch...
I thought I'd just carry on with another course of study this year. But I have to admit this abrupt ending and the way it happened (nasty details I'll spare you) just hit my motivation more than I expected. So somehow I still have to recover from it, but I have some leads and potential contacts to maybe setup something again for 2012-2013. Let's see if I manage to revive that activity. Apparently, after seven years of efforts to nurture that collaboration, I'm back to square one. Challenge accepted!
On the brighter side though, I got invited to a whole day seminar in Paris early February to discuss and share with people on the topic of University/Free Software Communities collaboration for student projects and teaching. Nice opportunity to meet with people having similar aims and share on alternative setups to the one we had in Toulouse. Really looking forward to this event.
What's coming next?
Well, I don't plan much ahead and I'm not the type of guy taking "good resolutions" in january every year (I just try to improve as I go). Still... from the waves around me, my own motivation at the moment and some other factors I think I can forecast a bit of what's coming.
Obviously I expect new Zanshin releases, at least two. Zanshin 0.2.1 should appear soonish as mentionned earlier. And then we'll roll toward Zanshin 0.3 which will be the release where Zanshin gets more of the missing basic features making it really useful.
I also expect the first KDE Frameworks release. Quite some work needed still, but I have a target date in mind that I think we can reach... No, I won't share it yet. :-)
Maybe I'll also get through the necessary mourning and administrative steps to setup a new University/KDE collaboration in Toulouse.
And last but not least I expect our monthly sessions to go on as usual. It's just great to have a small team of people helping with the local promotion, I'd like to see it grow more to spread even more love. Despite the current team size it's very likely we'll pull another Akademy-fr, but this time truely focused on the contributors needs, while the end-user aspects would be completely provided by talks and workshops of the upcoming Capitole du Libre 2012.
And so that concludes my last look back at 2011. Time to look forward again, lots to tackle still. :-)
From September 29th to October 2nd, we had the yearly developer gathering of the Solid team in Madrid named Forge 2011. It's the perfect opportunity for metalworkers to meet and make plans for the year to come.
This year was especially interesting because we had an usability expert on board which is a good thing for us metalworkers. We spend most of the time stuck in the middleware, but we also end up integration and presenting our work in the workspace where it should be easy and pleasant to use. I'll cover that aspect in more details in a another post.
We also took some time to record a few videos, mainly a demo of a new feature and a couple of interviews with key people. Took me some time to put everything together, but it's now in a state where I can share them!
Dario on Power Management and Multi-Screen
In this video Dario shows a nice new feature implemented thanks to the collaboration between power management and the multi-screen support. This way we can put in place refined policies on when to suspend or not.
(if you cannot see the embed, direct link to video for you)
Björn about Usability
In this video, Björn Balazs our resident usability person for the sprint talks about his job and what he worked on during the sprint.
(if you cannot see the embed, direct link to video for you)
Lamarque about Network Management
In this video, Lamarque Souza covers the work started during the sprint to revamp the network management support in the workspace. We also learn a bit more from his early KDE involvement.
(if you cannot see the embed, direct link to video for you)
Dario on Power Management
In this video, Dario explains the history of power management support in our workspaces. He covers quickly the past and gives us more clues about what is about to land in the next release. He also talks about his take on the interesting innovations in the community.
PS: And yes, Dario is very tired in this video. We had to charge the battery of the camera, it went empty during the first take. So yeah, he actually meant "4.10" there's no plan for a "5.0" workspace yet. ;-)
(if you cannot see the embed, direct link to video for you)
Alex on being the New Solid Maintainer
In this last interview, featuring Alex host of the sprint and new Solid maintainer, I had to step up and be in front of the camera to conduct the interview... It was the last one, probably around 3 or 4 in the morning...
(if you cannot see the embed, direct link to video for you)
B-Side! What Happened Behind the Scene...
And last but not least, I kept quite a lot of the rushes and failed attempts. So I also put together a "B-Side" for the videos so that you can also witness the nice atmosphere we had during the sprint!
(if you cannot see the embed, direct link to video for you)
PS: I think there's a bit of the video which might not be clear, so I'll give a few words of explanation. When the red circle and arrow appear, look very closely in the circle. I'm actually crawling behind the couch to retrieve the remote control of the TV... I'm totally in stealth mode! Except that you can briefly see my hand which totally killed Alex's concentration. Apparently it looked like the Thing in the Addams Family. If you couldn't see it watch again, veeery closely, it's furtive! :-)
A few weeks ago we released Zanshin 0.2 beta2, and I'm glad to announce the immediate availability of Zanshin 0.2 RC1. Except if any showstopper bug is reported, it will be the last stop before 0.2 final.
I'd also like to use the opportunity to report a few changes regarding contributions and adoption. We've seen tremendous activity on the packaging front since the previous release:
- It is available for openSUSE and Gentoo as previously announced;
- It is now available for Fedora thanks to Christoph Wickert of Kolab Systems, you can grab it from Christoph's repository and it'll hopefully get into Fedora itself soon;
- I got pointed out that it was already available in Arch User Repository;
- Kartik Mistry volunteered to package it for Debian, so we'll have some good news there soon hopefully;
- Patrick Spendrin confirmed to me that it got added to the KDE-Windows port, and so it was officially released with the KDE-Windows 4.7.0 release;
- On Mac? I got users building it for themselves reporting it to work, but no official packaging yet.
I'm glad to see so many people stepping up like that, bringing some GTD goodness wrapped in Free Software to more and more potential users.
And since some people pointed it out on my previous post, yes we need a website, screenshots and so on. We've been aware of it for a while, but we've been too busy working on the software itself. The feedback on Zanshin 0.2 beta2 didn't bring many issues, so we used the extra time to work on a website. It's not ready for prime time yet, but we hope to go live with 0.2 final.
If you want to get Zanshin from sources, the tarballs are available, at the same place than usual on files.kde.org.
And of course, you can still git clone kde:zanshin if you want the bleeding edge or if you wish to contribute to the code.
Now we're waiting a bit for your feedback. We have exactly one minor bug left in our list and the future website need some extra polish. Hopefully at this pace we won't need a 0.2 RC2.
So, I'm sitting right now in the KDAB's Berlin offices for what's probably the last dozen minutes of the KDE PIM Pain Points Sprint (at least for me, the other guys still have a couple of hours in front of them). We have been silent so far about what was going on there, and so I will take the microphone for a couple of minutes. At least we didn't steal the thunder of the Woshibon guys (looks like they did a great job BTW looking forward for that to hit my desktop!).
If you follow my blog, you probably noticed that lately when I attend developer sprints I carry with me shoelaces, sticky notes and other materials to setup weird boards. When I arrived on thursday night, a surprise was waiting for me...
Yes, that neat whiteboard was waiting there to be conquered. I'm actually glad to see that it's slowly turning into an habit to have this kind of things in our sprints. The culture is getting there and that makes me happy. We're apparently ready to experiment with other techniques like the Innovation Games for instance (which we played for Platform11), etc. We'll see what I can find to keep that fresh for everyone. ;-)
Anyway, as you probably can figure out from the picture above, it wasn't taken on the first day but this morning. It started small, but as we were fixing issues we added more and more sticky notes, in a true flow base fashion... Since the pace was good enough we could tackle more than originally envisioned, of course we were also finding sub-issues or corner cases which required specific care.
In any case the amount of work done is impressive, I won't get into the details there, but if everything goes well (pending some backporting) the next 4.7 patch release should have a few nice nuggets around performance, migration and even a bit of usability (I found a fix for a performance issue which turns out to be also responsible for the message list loosing its selection from time to time... I know everyone serious at email hate that one).
From the picture above, you can also see that the "Done" lane turned out to be too small to fit everything (looks like we were pessimistic on the amount of work which could be done), and someone expanded it partly into the "In Progress" lane giving it this weird shape... It looks fat isn't it?
Well, fat... it's unlikely we'll turn up like that. There was so much focus on the work that we had to remind ourselves of stopping for food, hence a specific sticky note was inserted just for it. It's an important task after all! ;-)
And if you wonder what focus looks like, I'll leave you with a picture of our own Lord Volker of Akonadi slaying bugs.
Impressive isn't it? If you want to see a few more pictures, you can find them in the KDEPIM Pain Points Sprint Gallery available online. I didn't take many this time, but you'll see a few more people.
Now I should move back to the airport to catch my plane, see you later!
Zanshin, the TODO application which helps keeping your mind uncluttered is back! After one month of waiting, we are delighted to announce the immediate availability of Zanshin 0.2 beta2!
The focus has been mainly on bugfixing, but we also did a couple of usability adjustments here and there. Also, thanks to the awesome Nuno Pinheiro, we have an application icon (previously we were just hijacking KOrganizer icon). This new icon is lovely, thanks Nuno!
The source tarballs are available, at the same place than the last time on files.kde.org. If you want to use it on openSUSE my repository has a package for Zanshin, but it's now also available on the KDE:Unstable:Playground repository. Last but not least! Zanshin is also now packaged for Gentoo. Thank you to Matija Suklje for working on it.
And of course, you can still git clone kde:zanshin if you want the bleeding edge or if you wish to contribute to the code.
You can also contribute by helping us reaching more users:
- packaging Zanshin for your distro, we still miss big ones like Arch, Fedora or Debian/Ubuntu;
- making sure Zanshin runs on MS Windows, apparently Patrick from the KDE-Windows team was toying with that during DS but I'm not sure how it went;
- or making sure it runs on Mac OS (we're not aware of any effort on that platform yet).
Now we're relaxing a bit, and waiting for feedback to see what needs fixing for the next release. Depending on the defect rate next one could be 0.2 rc1. Looks like we're getting closer and closer from 0.2 final!
Only a few days left before the Desktop Summit 2011, I'm really looking forward to wander around in Berlin again. I'm excited and almost counting hours before my flight out on friday morning! Yes, I'll be there:
And I'm not just attending, I'm also giving a talk on monday during the afternoon (3:20pm to 3:50pm). It's titled "We're a family" and it's a look back at the efforts I put into a Community/University collaboration in Toulouse for the past few years. I had talks around that topic already for an Akademy, but this one is going to be special for two reasons.
First, it'll be much less about the organizational challenges such a collaboration carries than the human impacts it can generate. Here it'll really be about showing the bonds it created among the people participating in this collaboration, and the opportunities it created for the students in the community projects. It will also cover the local and global influences those students had on the community.
Second, the course of study where this collaboration was taking place is closing... Right now it's not yet clear if the students projects we had in the past will still be possible. So this talk is really a wrap up about what happened in Toulouse for the past few years, and probably a "goodbye". Even if we manage to create a new collaboration somehow, this talk marks the end of an era. That's why we tried and managed to line up several generation of students related to this adventure. We'll have a lot to share, but maybe not enough time for all the most juicy secrets. ;-)
So, if you're looking for some laugh, tears, and insights on such a Community/University collaboration, hopefully it'll be the right talk to attend. Don't miss it!
On my side I'm putting the finishing touch to the talk, and of course it'll be ready on time.
We released Zanshin 0.2 alpha2 in May, it was about time we got our acts together to prepare another release. So today I'm happy to announce the immediate availability of Zanshin 0.2 beta1!
It is the result of further bugfixing and testing work. We got some feedback from early users of 0.2 alpha2 and it's been reflected in our bug hunting efforts.
Since the previous one was an alpha we still had the freedom to add a couple more features. The features introduced for that beta were rather non-intrusive though, the main ones are:
- the ability to set categories on projects, todos inside such projects automatically inherit from those categories (greatly reduces the tagging needs);
- the ability to synchronize collections directly from Zanshin;
- and last but not least a Kontact plugin, now Zanshin can work embedded in Kontact (this one was actually a feature request, I didn't even think about it). :-)
Now that we're entering the beta cycle, we're also publishing source tarballs. Of course, I still produce packages to openSUSE, although for the time being they're only built against KDE:Unstable:SC, I'm waiting for kdepim 4.7 to hit other repos before supporting more. Those packages are available in my home:ervin repository.
And of course, you can still git clone kde:zanshin if you want the bleeding edge or if you wish to contribute.
We plan to release Zanshin 0.2 beta2 somewhat soon after the Desktop Summit. We're only in bugfixing and stabilization mode now, no new feature will be introduced until we release 0.2.
The developer sprints in Randa are officially over. I spent my first full day at home today, and it feels almost odd to be in my quiet office after all the energized atmosphere we got there during a full week.
Anyway, remember the Platform11 Kanban we setup on the first day? Well, here is how it looked on the last night:
I think we made "some" progress. And that's not counting the technical tasks which got handled in a separate Kanban. If we had another day I wonder where we would have put the done tasks. As you might notice on the picture above we simply reached the floor in the "Done" column. :-)
So, is everything said and done now? Well, not really, what we did really was putting into motion the on-going effort which will lead us to the first iteration of the KDE Frameworks. We tried to create the tracks in Randa, and I'm looking forward to get on the train for this exciting journey!
It almost feel like forever since I blogged last. Turns out that I'm on the road again for a KDE event and so it's the right time to open my blog and take a few minutes to write something.
I'm sitting in a large house in Randa as I took some time to attend the Platform 11 sprint. It seems to become a small tradition in the sprints I attend to setup a Kanban to keep track of what we're doing. Since this sprint is about giving some love and direction to our frameworks offering, I also used the opportunity to experiment with a couple of Innovation Games.
The aim of those games was to facilitate the brainstorming groups we had on the first day. We broke out the output of those groups into discussion topics that we track in our Kanban, I think the result is really telling:
What you can probably imagine from that wall is that we have a lot of ground to cover. So far it's going on at a nice pace, I'll probably make another picture at the end of the sprint. We also have some smaller somewhat individual technical tasks that we're tracking in a smaller specific Kanban, I might take a picture of that one as well later on.
We obviously had some very important discussions already, so we have interesting preliminary results... But I won't talk about that today, the paint is still fresh on them and we probably need to consolidate all of that at the light of discussions yet to come.
If you like our frameworks already, or if you were too shy to really use them: stay tuned for more awesomeness and love coming to them!
After quite some work on stabilizing, testing the core, and adding some extra features, I'm happy to announce that I just tagged Zanshin 0.2 alpha2!
The big highlight of this alpha is the availability of a new krunner plugin, so that you can easily collect todos even when Zanshin isn't running. Bring up krunner, type in "todo: buy apples", and the newly created todo will be waiting for you in your inbox the next time you look at your Zanshin window. Collect from anywhere on your desktop now!
We also added an extra dialog to configure Akonadi resources which is displayed on first run, and better defaults for the columns and window sizes, which should provide a smoother experience for new users. And of course it comes with more automated tests, and bugfixes.
If everything goes well, it should be our last alpha, and we should proceed with 0.2 beta1 next. For those interested, it is available for openSUSE in my home:ervin repository. For the people wanting to build from sources, it is still a git clone kde:zanshin away.
I'd like to thanks Mario Bensi and Benjamin Port who have been fearless bug hunters for that release. Way to go guys!
PS: As mentionned, I package it for openSUSE myself as it is my distro of choice, but we're obviously looking for packagers targetting other distributions. If you're already working on such packages, or are willing to work on them, please get in touch with me for improving synchronization toward the 0.2 release.
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 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!
Disclaimer: An exceptional post in french, likely the last one for a while though... Et voilà... C'est déjà passé, la keynote du vendredi soir s'est bien déroulée, j'ai plutôt eu de bon retours à son sujet. Le cocktail qui a suivi était très réussi grâce aux volontaires sur place. Le samedi après-midi nous avons simplement été pris d'assaut. Les salles étaient pleines, et la piste contributeurs a eu plus de succès que prévu! Nous avons même dû permuter les salles pour pouvoir caser tout le monde. Nous avons eu d'excellents retours des orateurs qui sont visiblement content de l'accueil. Je gage que le repas de cloture le samedi soir a aidé pour cette opinion: Quoi qu'ils en soit, c'est très encourageant et motivant pour recommencer. Maintenant nous allons faire notre possible pour essayer de mettre les vidéos des conférences en ligne le plus vite possible... stay tuned. Et bien sûr, je tiens encore une fois à remercier nos sponsors (Capgemini, KDAB et Qt) ainsi que les bénévoles de l'association Toulibre sans qui cet événement n'aurait pas vu le jour.
Disclaimer: Yet another of those somewhat exceptionnal post in french. :-) Et voilà, le grand jour est enfin là... La journée va doucement (en fait plutôt "rapidement", elle est bien remplie) vers la conférence d'ouverture de ce soir. Pour ceux qui n'auraient pas suivi: Centre Culturel Bellegarde, Toulouse, 20h. Soyez là! Plus que quelques flyers à récupérer, les petit four pour le cocktail, transporter le merchandising et le matériel de démo voilà ce qui va occuper une partie de ma journée. Les autres tâches sont sous la responsabilité de bénévoles de l'association Toulibre qui font un boulot formidable. L'autre partie de ma journée, je vais la passer à l'Université, il se trouve qu'aujourd'hui tombe aussi la dernière réunion projet avec mes étudiants. Ils vont défendre le travail réalisé, qui je dois le dire a été de bonne qualité cette année. Mais je ne pourrai pas m'attarder cette année, je devrai repartir au plus vite vers Bellegarde pour notre conférence. Les autres orateurs sont en chemin, et demain samedi ils prennent le relai pour une après-midi de conférences. J'ai hâte de voir ce que cela va donner! Pour plus d'informations sur l'événement: http://www.toulibre.org/kde46 Et pour le programme complet du samedi:http://www.toulibre.org/kde46programme_19mars_2011
Disclaimer: Again, an exceptional post in french and again, my apologies to non-francophone Planet KDE readers. ;-) Nous y sommes, plus moyen de revenir en arrière (et franchement qui le voudrait??), tout est en place pour demain. La KDE Release Party 4.6 à Toulouse démarre dans environ 28 heures (au moment où j'écris ces lignes). Les premiers orateurs vont arriver demain après-midi (pour ceux qui ne vivent pas sur Toulouse), il me reste quelque détails à régler pour ma keynote, et j'ai reçu quelques petites choses par transporteurs que nous nous ferons un plaisir de distribuer demain soir juste avant de passer au cocktail. ;-) Pour plus d'informations sur l'événement: http://www.toulibre.org/kde46 Et pour le programme complet du samedi: http://www.toulibre.org/kde46programme_19mars_2011 Et bien sûr, je tiens encore une fois à remercier nos sponsors (Capgemini, KDAB et Qt) ainsi que les bénévoles de l'association Toulibre sans qui cet événement n'aurait pas vu le jour.
Disclaimer: As an exception this post will be in french since it's mostly relevant to people understanding french. Still, it's pretty much relevant to the KDE community. Expect a couple more such posts before friday, my apologies in advance to non-francophone Planet KDE readers. ;-) Nous sommes donc à seulement quelques jours de la KDE Release Party 4.6 à Toulouse! Les préparatifs vont bon train, et à part quelques détails mineurs tout est prêt pour tenir deux jours de conférences. J'ai vraiment hâte d'y être, je vais tenir la keynote le vendredi soir, et le samedi nous aurons des conférences pendant l'après-midi... Nous avons la chance d'avoir la crème des contributeurs français présents le samedi, avec un excellent programme, il y en aura pour tous les goûts aussi bien pour les contributeurs que pour les utilisateurs. De plus, toutes les conférences seront filmées, et nous espérons les mettre en ligne assez vite après la fin de l'évènement. Enfin, en marge des conférences il sera possible de rencontrer et de discuter avec les contributeurs français de la communauté. Nous aurons la chance d'avoir des piliers toulousains de la communauté comme Jean-Nicolas Artaud (Calligra) et Anne-Marie Mahfouf (KDE Edu) qui ont déjà annoncés leur présence. Pour plus d'informations sur l'événement: http://www.toulibre.org/kde46 Et pour le programme complet du samedi: http://www.toulibre.org/kde46programme_19mars_2011 Et bien sûr, je tiens à remercier nos sponsors (Capgemini, KDAB et Qt) ainsi que les bénévoles de l'association Toulibre sans qui cet événement n'aurait pas vu le jour.
Some people might remember that I was rambling a while back about a TODO management application named Zanshin. It even has a few users... they have probably been wondering why it got stuck at this mysterious non advertised 0.1 version.
Don't fear anymore dear users, Zanshin is not dead, it is pretty much alive, and we just tagged 0.2 alpha1 today!
It took us a while, we had to rewrite quite some bits in order to benefit from the new additions of the Akonadi ecosystem we would have missed otherwise. So we're back, and we plan at least one more alpha, before going in the beta cycle. It is your chance to give us feedback early on to get a solid 0.2 release.
Of course it is an alpha, so it might not suit you for production use... Personally I switched to it in production and it didn't burn my home yet. It will soon be available for openSUSE in my home:ervin repository, once it gets out of the build farm (already the case for factory, not yet for 11.3). If you're building from sources, it's only a "git clone kde:zanshin.git" away (we're actually among the first projects to migrate there).
I'd like to give a big kudo to Mario Bensi, who is working with me on Zanshin. He did a tremendous job on that alpha. For the last month I've been mostly giving architecture directions and reviewing patches... still I had difficulties to keep up with the patch stream he was sending my way. Great job Mario!
PS: As mentionned, I package it for openSUSE myself as it is my distro of choice, but we're obviously looking for fearless packagers targetting other distributions.
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.
This post is the second one out of two covering my thoughts about the Solid Developers Sprint 2010 which happened this week-end. My outbound flight being delayed, I've plenty of time for introspection in the Madrid airport. :-)
Disclaimer: This blog post evolved as a short essay on "Agility in a Free Software Developers Sprint Context". It is then a somewhat long read (I don't blog often but when I do...). If you are NOT interested in at least one of the following topics:
- How the Free Software community works;
- The practices used in the agile project management community;
- How both community driven development and agile management can influence each other;
Then, you can safely skip this post... But if at least one of those topics raised your curiosity, then brace yourself and keep reading. :-)
We have a strong tendency in the KDE community (and even the Free Software community at large) to organize so called Developers Sprints. We use them to gather contributors (despite their name they're actually not developer only events) sharing a common project. A Developer Sprint is going on a short period of time (generally not more than a week, very often less than four days).
Now, one has to be careful not to confuse our Developers Sprints with the Sprints used by the Scrum practitioners community. They might look similar, in both cases people are trying to get as much work done as humanly possible on a time-boxed period of time. But they have a major difference: Developers Sprints are irregular events, while the Scrum Sprints are cyclic. In the latter they form the backbone of the iterative development advocated by the agile community.
As I happen to teach both how to work in Free Software communities (through the KDE student projects) and how to work with agile project management (in particular in an eXtreme Programming context), it made me wonder if the way Scrum Sprints are managed could be a source of inspiration for the way we manage Developers Sprints. And as some of you might have noticed, in the past few days I had a perfect environment for experiment... The Solid team of the KDE community had a Developers Sprint where I ended up managing the work to be done there.
The three cardinal sins of Developers Sprints regarding agility
As I pointed out in the introduction, our Developers Sprints are irregular events, but also you don't have the same participants from one sprint to another. Because of that, the ability to refine the velocity (estimation of the amount of work that can be achieved by the participants during a sprint) is severely reduced if not completely void.
In turn, without the possibility to estimate the velocity, it becomes dubious that estimating the work to be done is of any interest. Indeed, what would be the point of estimating the work to do, if you have no idea how much you can handle?
Even worse, most of the time there's nothing looking like a product backlog (a list of fine grained user stories which is "consumed" from one sprint to another) as advocated by the Scrum practitioners. At best we have before the sprint starts a list of very broad and general goals, or discussion topics (a.k.a pain points)... And, of course, we also have the closest thing to a product backlog: our bug-tracker. Which is borderline useless in such a context, it's generally a white noise generated by the support function, where we mix what we'd like to do, what user reports (with plenty of duplicates) and so on. Of course, it has value but in my opinion not to drive a project.
Because of all that, the situation sounds pretty bad to practice agile project management during a Developers Sprint. We don't know how much we can do, in turn there's no point in knowing how much time is needed by some piece of work, and finally when the sprint starts we have a very partial view on what needs to be done.
Luckily, as we will see in the last parts of this essay, agile practitioners now provide us tools that we can reuse by bending the rules while retaining the spirit and values of the original rule set (Shuhari). The tools I'm proposing to reuse and combine are the Kanban (even though in an incomplete version for now), the Exploration Phase (in the XP meaning of the term) and Pair Programming.
The perfect experiment: Solid Developers Sprint 2010
So, how did we proceed for this sprint? Let's stop the suspense now. :-)
Exploration through Discussions and Goals
Obviously, it all started before the official start date with something we're used to for our sprints: provide an agenda. Well, we did it in a specific way: very lightweight (a few bullet points with no much discussion between the participants), split into "discussion topics" and "goals". The reasons for it to be a lightweight process we'll see below, I'll first examine the splitting in two lists.
The reason for the goals list is kind of obvious: we go to a sprint to get stuff done, so we have goals. Stating them before the beginning is actually a good way for people to engage into the sprint and collectively give it a direction. The discussion topics list is here to uncover all the things we don't want to look at. In this sense, it is the complete opposite of the goals list. When someone states a goal, he generally already have a plan in mind, is motivated by it and feels it can be done, we're in the comfort zone. If something still requires discussion, it means we're uncertain about it, so putting it on the table when everyone is here is the best (if not the only) way to push the issue forward and transform it into a goal later on.
We then waited for the sprint to start (remember, collecting those two lists is a very lightweight process). When everyone arrived at the sprint we then started an Exploration Phase. To do so, we got through the two lists we built. Each of the goals stated on the corresponding list got split into tasks (this is the straightforward part of the exploration). And each of the discussion topics got (surprise!) discussed... this one was less straightforward, so let's see how we managed those discussions.
We generally find those discussion topics in our sprints, they tend to be broader though and to be mixed with "presentation topics" to give an update to the other participants about the current state... The problem is that it can quickly degenerate into a slide fest, lots of presentations and so on. So we just set a few rules:
- the person who brought up the topic had to detail it in front of everyone;
- it was achieved by giving a small status update on the topic followed by the actual problems which were in need to be solved;
- people could then discuss the topic, provide input, disagree and so on (a moderator might be needed there, we didn't need one though);
- discussion stops after 20 minutes (it's a soft limit of course, if something interesting is coming out of the discussion wait a bit before stopping it);
- if everyone was feeling the topic still needed more discussions, it was allocated an extra slot after all other topics got discussed (so you could iterate a couple of times before emptying the topics list);
- no laptop allowed policy (except for the one typing the minutes), and this one is a strict rule.
By using such constraints we managed to keep everyone focused on the discussion. They couldn't derail in a bike-shed because of the time running, etc. In the background I was monitoring the discussions to identify actual tasks to be done during the sprint (and added them to the tasks coming from the refining of the goals list).
Thanks to this very lean process, we managed to go through the exploration phase in roughly two hours! That's really not much when you think about it. I think it comes mostly from the way people ended up being very focused some of the pictures taken that day clearly show that. Look at the people faces for some of those pictures, you can clearly feel how concentrated they are.
Once the Exploration Phase was over, we were sitting on a large pile of tasks... That's obviously solving one of the cardinal sins I pointed out earlier. Thanks to the exploration, we have a clear picture of what needs to be done at the very beginning of the sprint. Now, we still need to process those tasks in a meaningful way, and remember we basically can't estimate.
Introducing the Kanban
Since we can't estimate (remember the other cardinal sins above), and that we're in the unknown regarding the amount of work the team can do during the Developers Sprint, we're then in the situation where we want to maximize the throughput of the team. No matter how much they achieve in the end, what matters is that they were running at full speed (in other words: sprinting). That's why we introduced a Kanban, it's the best tool I know for such a situation. It comes from the Lean approach, and Scrum practitioners tend to give it a close look these days, some are even talking about "Scrum-ban", some hybrid between a Kanban and the usual Scrum task board.
Anyway, our implementation of the Kanban was very low tech: a whiteboard, plenty of sticky note, a couple of pens, a marker. No need for anything fancy or expensive. We used the colors of the sticky notes to give us a nice visual feedback on the type of tasks: yellow for the regular ones, pink for the urgent ones, green for the non technical ones (like writing a blog, documentation, etc.). We regularly took pictures of its state for reference purpose and blog, you can see the final state of our Kanban online.
The Kanban itself was divided in three areas: Waiting, In Progress, Done.
- In the Waiting area one could find all the tasks known for the sprint. When someone was done with a task, he would turn to the Waiting area to pick a new one;
- tasks picked from the Waiting area would end up in the In Progress area you could see at a glance all the task which were worked on by the other members of team, good way to take the pulse of the project;
- when a task was done, it was moved to the Done area.
There was two ways to complete a task in order to move it to the Done area. Either it was fine grained enough and then you just had to implement/write what was required (roughly an hour of work maximum) in order to consider it done. Or, it was too big and abstract, in which case completing it meant: analyze it, do some preparatory work to actually split it into smaller tasks added to the Waiting area. In such a case it could be a good idea (even though not mandatory) to add a small note to the original task explaining that it got split further.
As you can clearly see from the description already, using this system gave a lot of transparency about what was going on during the sprint. Everyone could all the time check what was worked on, how much was left, what was already achieved, etc. It also came in very handy during the regular wrap up sessions we had. One could just go through the Done area to remember all the tasks he worked on, and then provide details about the outcomes, the problems to implement the task, etc.
Raising the bus number through Pair Programming
Instead of implementing the complete Kanban model (which would, for instance, limit the number of items in the In Progress area), we tried to regulate the flow by another mean: Pair Programming. By asking people to work in pairs, we were trying to indirectly limit the amount of tasks which could be in the In Progress area.
The reason of this trick was that in the case of the Solid Sprint, we try to blend more and more what used to be scattered teams. Pair Programming is a good way to give the feeling of a single team and to improve the knowledge sharing inside of this team. This way you can effectively raise the so called bus number of the team. That's definitely critical in a community based environment building on the work of volunteers who sometimes drop unexpectedly.
Where we could improve the model (Kaizen)
In short: re-introduce more of the Kanban features. For this first experiment, I think we slightly oversimplified the model, removing some of the constraints of the Kanban. We tried to hide the slightly more rigid structure of the Kanban through an external constraint of the type: "work in pairs as much as possible". Sounded like a good idea, except that this kind of discipline is just extremely hard to acquire alone or by being told. On the other hand, modifying the rules of the game can gently push you in the right direction.
And indeed, the Kanban provides us with the necessary rules: you're supposed to cap the maximum number of tasks in the In Progress area for instance. Make that number slightly below the number of participants, and you should see people pairing more often. It honestly sounds a bit harsh put this way, but that's likely a good temporary measure to give a taste of Pair Programming in a team.
Another potential improvement we could have used during the Solid developers sprint was to split the Waiting area into Waiting and Selected. Again, the number of tasks in the Selected area needs to be caped (generally at a somewhat low number). Then someone would have to be responsible into making sure that the Selected area is always full. By doing so we'd achieve two things:
- the developers would have to pick tasks which are not directly in their core domain (stimulates even more collaboration among the team and then cross-pollination... it basically puts the Pair Programming on steroids);
- the person in charge of the Selected area could influence the priorities of what is achieved during the sprint (of course, that puts quite some constraints on the person, in our context that has to be someone with a good overview of the project, and enough empathy to actually make sure people keep having fun during the sprint).
Last but not least, the task splitting during the Exploration Phase could have been a bit better. I was basically monitoring the discussions and adding new task on the board each time I caught something which looked like an action item. I had to proceed this way because at that time I didn't introduce the Kanban to the team yet (not to scare them away to early ;-)), but as a downside I probably missed a few tasks in the process or introduced some tasks which still needed to be refined. Next time, we should make sure it is the person bringing the discussion who adds the tasks to the board. By doing it this way the discussion will naturally flow toward this task splitting.
I think this Solid Developers Sprint 2010 was quite different from some of the other Developers Sprints we (KDE) had in the past. It really gave a pace to the whole team, and improved the transparency within the team. As a consequence, it improved the cohesion as everyone could easily know what was going on and exercise their curiosity.
Of course, it was not perfect either, and I highlighted in this essay what we could do better. I'll very likely experiment those improvements the next time I have an opportunity. In particular I'm looking forward to stimulating even more team cohesion, we're sitting on a tremendous potential here, let's turn it into an asset!
PS: If you read until this point: thank you and congratulation! I hope you found this (somewhat) short essay at least a bit interesting. Feedback, questions and comments are welcome.
This post is the first one out of two covering my thoughts about the Solid Developers Sprint 2010 which happened this week-end. My outbound flight being delayed, I've plenty of time for introspection in the Madrid airport. :-)
Some of the fearless developers working on the Solid project in the KDE community (calling themselves Metalworkers) gathered the past week-end for a developers sprint. Surprisingly, it's the first time that we had a sprint centered on the Solid effort.
The emergence of the need for such a sprint is actually a very healthy sign. We moved away from Solid being mostly a one man show with a couple of satellite components (again each time managed by a single person), to Solid being really a sub-community of the larger KDE community. Now, you can clearly feel several teams collaborating and slowly blending into a coherent whole. This movement started probably around the end of 2009, and is having now enough momentum to produce results and impact the structure of the community.
This sprint then became a possibility to boost this process and tighten the bonds between the Metalworkers (the fact that we now have a name we find fun and are proud to use tells a thing or two). I think it was a success in this regard, a lot got achieved, everyone sharing a common flame and motivation to push further to get results. Talking about results we had a lot of them:
- a refactored KDE Power Management daemon (completely componentized);
- preliminary version of an asynchronous API for device listing (leaning toward dynamic lists);
- our network stack integrates with the bluetooth stack;
- improved compatibility with more device in our bluetooth stack;
- a brand new connection wizard;
- the new set of backends for libsolid reaching feature completion for daily use (it's now realistic to see them become default for 4.6);
- libsolidcontrol deprecation progressed quite a lot;
- and of course a lot of general bugfixing, polishing, etc. I just highlighted in this list the (IMHO) biggest achievement.
It was hectic, to the point that the main day of the event basically seemed to never end... for most of us it lasted 19 hours straight! We only stopped in the evening to have a break for a team dinner, but apart from that we hacked furiously.
Of course, when you spend 19 hours at the same place than a bunch of other hackers, you'd better be in good company. And luckily Metalworkers are kind and nice people. I'll never get enough of them (in no particular order): Sebas, Alex, Lamarque, Rafael, Dario and Will. We even had extra guests. Agustin, Albert and Javier that maybe we can turn up in regular Metalworkers. But also Will's wife and daughter. The baby girl even showed how proud she was of her father. She's too young for now, but she made a statement: she's almost ready to follow Will's involvement. Obvious absents were Lukas, Mario, Michael and Paulo who are among the latest to join our team. Unfortunately, they couldn't attend this time for various reasons. Hopefully next time!
Last but not least, I'd like to thank Interdominios and UFO Coders who hosted and organized this developers sprint. They did a great job at keeping us comfortable, and provided a top notch work environment (being able to use almost any surface as whiteboards was really amazing, war room at its best). It's definitely on my Top 3 list for sprint venues. Also a big "thank you" to the KDE e.V. and our sponsors (organizations and individuals) without which those kind of events would be much more difficult to fund and organize!
PS: We definitively need a catchy name for the Solid Developers Sprints, after all our beloved Plasmoids have Tokamaks. I wonder how we could name the corresponding events for us, Metalworkers. ;-)
OK, once again I didn't quite manage to write a blog each day... It always starts well and then the hackathon kicks in. :-)
The last three days, I had more meetings again. We made quite some progresses on our plans for Solid. I even got some more people to write on backends for libsolid, really neat. Looking forward to share the load in this way.
Of course hacking in between, and in particular today where I made quite some progresses on the new version of Zanshin which I neglected completely for the past year. Also notable was yesterday day trip, we spent the afternoon next to a nice lake. Kind of reminded the day trip in Glasgow, except that we had great weather this time, and hungry mosquitoes.
People started to leave already, I'm part of the last group of fearless hackers here. Tomorrow it'll be my turn to move back home, not really looking forward to the trip itself, but having some rest at home will be welcome after such a hectic and awesome week!
Unlike planned today, I actually hacked until early in the morning... But managed to get enough sleep to be lively today which was basically a long stream of meetings for me. Two highlights of the day:
- KDE Mobile BoF, where actually quite a few people attended, many more than I expected. We made nice progresses there, discussing the ecosystem how to integrate there, how to push forward the modularization of our platform. Very nice group we had there, although it was somewhat large it was also very well disciplined. I'll have to update our wiki accordingly now;
- KDE PIM BoF, discussing post 4.5 plans and so on. That's where I'm sitting right now. :-)
Nice day overall, looking forward to tomorrow where I'll put my metalworker hat on with a couple of Solid BoFs.
We made it! Yes! We made it!
"Made what?" you might ask... Well, today was our "day long" general assembly meeting of the KDE e.V. We call it "day long" because it's usually the time needed to get through it. Last year we made it in half a day though, and we set a new record of efficiency, only three hours! New world record!
We're definitely getting good at it, and it's not that we're less careful, I think we just grown up as an organization and we're getting better at this kind of exercise.
Obviously, we then had some unforeseen time for hacking and meetings. I didn't get much hacking done though, I started preparing for the next round of university projects in Toulouse, collecting ideas, checking with people if that's actually feasible and so on.
Enjoyed tonight a relaxing indian dinner with Claudia, Paul and Pradeepto. After that we were all thirsty (for some reason the indian place was damn hot inside), so just stopped at a pub next to TOAS and spent a couple hours attracting gearheads in the bar for a drink... And at some point I headed out with David for a late hacking at the TOAS itself.
Tomorrow my tour of BoFs starts... maybe I shouldn't hack until too late, or well, early in the morning.
A few nice talks today, I found Lubos talk on performance quite interesting, definitely give some ideas on what and what not to do when trying to improve your application performances. Also interesting was Sebastian talk about the project Silk which nicely shapes up, I hope to see more of his ideas deliver in the coming months/years.
Obvious highlight of the day: Aaron Seigo's keynote "Reaching for Greatness". Once again it was a very good moment of introspection on what's going on in the community, and giving directions to satisfy our urge for excellence. I very much liked how he tied that to the concept of Elegance (yes, using an upper case E even). I won't give more details as I far prefer people to actually watch the recorded version once it'll be available.
I have to confess that I didn't attend many talks today. I spent quite some time discussing architecture of our platform with people in the hallway.
Tomorrow, probably no blog from me as we'll have the full day KDE e.V. general assembly. Looking forward to the hacking marathon starting on tuesday. We actually kind of started as I'm sitting in a room full of hackers in the TOAS Student House right now. :-)
Sooo... People recovering from last night party hangover as I'm typing, attending the first talk of the day. And suddenly, an idea crossed my mind: in order to satisfy Aaron Seigo megalomania, we should start an "Aaron Seigo's facts" website. Here is my first contribution to it:
"Aaron doesn't have a God complex, it is God who has an Aaron complex".
Today we had the first day of conference of Akademy. Plenty of nice talks (surprise!). Quite a few mobile related (surprise!). I was really looking forward to the development track which had only interesting topics, but unfortunately for me it wasn't conveniently placed regarding my own talk and the talk of my students. So I could only attend the first one from Thomas McGuire, which was really good. Oh well, I guess I'll virtually attend the other ones thanks to the recorded videos when they'll be online.
Other highlights of the day were basically PIM on Mobile by Till, and Plasma Mobile by Alexis and Artur. Very nice talks as well!
My own talk about the KDE Platform Mobile happened at the end of the mobile track which was inconvenient for the aformentioned reason, but also because it was competing with the end of some random soccer game. ;-)
Last but not least, we had the talk done by my students about the projects in the Toulouse University. And they did a really decent job although that was really a first for them to hold such a talk in an international context. Definitely not an easy exercise which can be frightening at first. Well done guys!
And now that my talk is behind me I can feel free to hack late at night again... unfortunately not tonight as I'm nursing a terrible headache (which is why I left the party early unfortunately).
I arrived in Tampere yesterday around 10pm. The trip was uneventful (nice!), but somehow long. Anyway managed to meet a few people already. Heard a few horror stories about lost luggage already, luckly I was not affected... and apparently their luggage appeared this morning. Now plotting for a group lunch before the Akademy welcome opens.
Glad to be here. Stay tuned!
Just like the fellow gearheads who already published this kind of blog, I'd like to claim that, yes!
This year I will be spread on several fronts (like every years in fact), but you will for sure meet me during the following events:
- My talk about KDE Mobile, which will happen on saturday afternoon;
- The KDE Mobile BoF which I will be moderating, people willing to discuss the future of the KDE Platform and how to contribute more to the the Maemo / MeeGo ecosystem;
- The Solid BoFs where I'll meet my fellow metalworkers, strengthening our plans for 4.6; note the plural there, there will be two of such meetings (because some people will attend remotely, and then because of timezone constraints).
Apart from those three events, I'll run around as usual, probably trying to poke a bit the Plasma people as well or furiously hacking somewhere.
Looking forward to meeting you all!
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.
Since even before the start of Tokamak4, it has been pitched as a "three in one" sprint. But that was without counting on the Solid people. In the great tradition of hardware awareness in KDE, we're doing our job correctly only if Solid gets unnoticed by the user... and nobody noticed that almost all the core "metalworkers" were attending Tokamak4.
So we used the opportunity to have a Solid meeting to summarize the current situation of our infrastructure, and to make plans for 2010. That includes quite a few of clean ups on our stack, but also more ambitious and cool stuff like reporting devices reachable via the network. If you're interested in details, I sent a mail summarizing the Solid meeting at Tokamak4, and you should probably subscribe to kde-hardware-devel if you're not there yet.
There's some movement on the KDE/Maemo front. Lately we've seen more public announcements coming mainly thanks to the office viewer. But there's also work under the hood cooking up. Most notably communication channels to provide feedback for the Qt 4.6/Maemo variant are open, hopefully we'll soon see a few patches flying in. And also Jos posted some (large) patches to streamline kdelibs which are on the table for discussion and hopefully going toward a KDE wide solution.
Today though, I just wanted to let everybody know that I've been working on a virtual machine to help KDE developers easily get a Maemo SDK. I added some documentation so now we have a Qt/Maemo SDK VM page on techbase (download URL and installation procedure are there).
It should be relatively easy for anyone to have it working: download, boot, login, run a script, done you can know use Qt 4.6 in a fully setup Maemo SDK. Hopefully that will lower the bar to contributing for quite some people.
That's it for now, don't hesitate to drop me a mail if you have issues with it.
With Fremantle and the N900 almost out the door, it is time that we start a more coordinated effort within the KDE community to support Maemo as an official target system. In the past we had some scattered and not coordinated efforts, results got linked on techbase.
I attended the Maemo Summit 2009 in Amsterdam. Of course a few other KDE people were there. We sat down together, talking about how we could get the KDE platform working well on those devices. And we decided that if we want to see KDE succeed on such devices, we'd have to get more serious and coordinated about it.
That's why shortly after coming back from the meeting, I asked for the creation of the kde-maemo mailing list, where we'll be able to address Maemo as one of the official KDE target systems (like FreeBSD, Solaris, Windows and Mac OS X are). It is time for us to make Maemo a first class citizen in our community.
Of course it is not wishful thinking we're talking about here. The efforts already started, for instance Alexis has been working on a Plasma based shell for the N900. It is still rough, and a first experiment, but it at least shows that our platform is viable on this system. Parallel to that, there's also efforts on how to make the deployment of a Maemo toolchain more convenient, or how to modularize our platform for such embedded systems.
It is just the beginning of the journey, let's see where it leads us!
I previously blogged about the new IMAP resource in Akonadi. We were aiminag at getting this resource from the start, but here is the not so secret story: this effort gave birth to another component, namely libkimap.
The journey started because we really wanted for KDE to have a strong and efficient IMAP support. Since we're not really into reinventing the wheel if we can avoid that the journey started by looking at existing IMAP solutions we could reuse. The natural first contender of course was to reuse our old IMAP ioslave which we currently use in KMail and build the resource on it. But really it is showing its age now, and the interface such ioslaves expose are too limited for our needs (for those in the known of KIO internals: it would require an extensive use of the special() method, or command encoding in urls...). So we have been evaluating a few other contenders coming from various mail clients, but unfortunately most of them are either exposing synchronous API (not convenient for something event driven like an Akonadi resource), or very tied to a MIME implementation (which was a no-no as we needed to use the resource with kdepim's MIME implementation).
Indeed this journey didn't start quite well... We had to produce a new IMAP implementation. So a new quest started, one for an adequate API design. At that point we knew we wanted something: fast, memory efficient, asynchronous and easy to extend (as the IMAP RFC has plenty of extensions).
First, let's examinate the "fast and memory efficient" constraints. Around the same time I got started on libkimap, Andras Mantia (fellow KDABian and hacker extraordinaire) was working on making the Akonadi server protocol handling faster and more memory efficient... And as a bonus, the Akonadi protocol for the lowest level parts, have quite some similarities with IMAP as it was modelled after it. So far so good, I could reuse Andras work on the new IMAP stream parser. It has been a two way collaboration as I also found bugs in there which got fixed. This parser is now the core of libkimap, although it is hidden from the public API, it is for a great part responsible of the good performances of the library.
Then, let's solve the "asynchronous and easy to extend" constraints, those had a direct impact on the API. For that we rely on the good old "job based" API. You just need to create a Session object which holds a connection to an IMAP server and queue Jobs on it. Jobs are then executed sequentially. We have jobs for a lot of things: mailbox listing, fetching messages or headers, retrieving annotations, quota information, ACLs, etc. And that's where the job based API gets interesting, we need to extend it? Just add a job, binary compatibility will be kept and so on, it makes it much easier to manage it over time.
Oh! And of course, since we still care about performances, each job is equipped to be able to pipeline several IMAP commands to the server, which dramatically reduces latency. So you guessed it, jobs don't map 1:1 to IMAP commands, this way we can provide some convenience to developers because they get pre-shipped micro behavior (for instance, listing mailboxes and taking care about the namespace extension results always in the same list of commands, so we wired it in jobs which pipeline commands). So we indeed solved our initial problem, we made an asynchronous IMAP library which is fast, efficient and easy to extend. It also tries to be clever when that actually makes it more convenient for developers (see the pipelining example above), but not too much, allowing to have a fine control on the higher level logic and strategies you'd need to implement in your application. And thanks to this strong basement, we could tackle the task of building the Akonadi IMAP resource on top of it.
As a post scriptum: is our library tied to a MIME implementation? Well, like others we're tied to one: libkmime, available in kdepimlibs as well. You can't really get around that in the end. Indeed, for fetch operations if you try to be independent of any MIME implementation, you end up implementing your own subset of MIME. That said we tried hard, and managed to keep that coupling as minimal as possible, and in fact only the FetchJob really depends on libkmime, everything else is independent of it. So, it wouldn't be a big cost to implement your own FetchJob variant using another MIME implementation.
And finally, as a post post scriptum, if people out there wants to grab it and play with it, it is in our kdepimlibs module on trunk. You can browse it online here: http://websvn.kde.org/trunk/KDE/kdepimlibs/kimap/.
In my previous post, I've been discussing our progresses on some protocols support, and that Akonadi could now be fed with quite some mails. That's neat to us developers who can make application harvesting data in there... But for the user it's not really useful if he can't see the data. Well, recently I've also been working on showing up collection statistics we can get from Akonadi, and also I ported KMail message list view to Akonadi (also making it a separate library). In the meantime, the fearless Andras has been porting KMail mail reader view to Akonadi (also making it a separate library). In fact, it is the current thread in the huge task which is the porting of KMail to Akonadi. We're ripping KMail apart, each important set of features are factored out in a library and ported to Akonadi. In the end we'll have a KMail completely based on Akonadi. But also, it will be much more modular, reusable for other mail clients, but also news readers, etc. Which means that the new architecture will be better suited at supporting a wide range of devices and a good base for future works. Anyway, both Andras and me had a small test application for each of our new frameworks... So I took some time to merge the features of both into a single application: the Akonadi Mail Reader. This new baby is mainly a prototype to toy with ideas and try out the components we're making out of the monolithic KMail. Still, it weights just under 400 lines of C++ code, and you can completely browse all the mailboxes you configured in Akonadi thanks to it. Of course, here is the obligatory screenshot: It looks so much like a miniature version of KMail that it is almost scary. But don't fool yourself, there's a lot to do to have a full fledged KMail which will be only based on Akonadi. We're not there yet, still it is nice to see the whole thing taking shape, in particular to reach the point where you can actually read your mail over IMAP using this small prototype and feel almost at home with it thanks to this familiar touch. :-) From my point of view, the KDE culture of working a lot with components really pays off. KMail was first created at a time where this KDE culture didn't reach it's full potential yet, hence why we need to refactor it now. But, following this culture it is really nice to see that we'll end up with small packages of mail client functionalities, and, that thanks to them and to Akonadi, it will be easy to integrate them in any application. We made a relatively complete mail reader in under 400 lines of code, so simply displaying mail content in your application or a message list becomes a trivial task.
Of course, we had parties during the Gran Canaria Desktop Summit. Quite a few of them... And obviously we had some casualities. Most notably Alexis couldn't handle it all: So Alexis, is that what you're doing while you pretend working? ;-)
Bad, bad ervin! I didn't blog during this year Akademy while I usually do it. So this year I'll try to post a few "after the facts" blogs, and I'll call this short serie "Memories of Akademy 2009". OK, I didn't blog, but this year I took pictures, and I uploaded them to my brand new gallery. Go get them!
As usual, long time without blogging from me. A lot happened since the last time, but I'm too tired (and probably lazy) to write about it now. Some of it will be covered in my talks for Akademy 2009.
Of course, Air being almost out of the door we deserve a new updated LaTeX beamer template. Since I wrote the Oxygen template, I decided to produce a new one based on the great work from Nuno. As usual I'm providing a tarball with the template, and you can take a look at an example presentation
And tomorrow morning, very early, I'll meet some more gearheads from Toulouse, and we'll take the plane for Gran Canaria. Looking forward to it! See you all in Las Palmas.
OK, that was really short, I'll try to blog more during the conference. I swear!
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. 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 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. ;-)
This year Akademy was a real blast. For the first time I didn't feel like blogging during the event though, we had a pretty good coverage on PlanetKDE and the Dot anyway. I really wanted to enjoy the people while there.
That's why, I'm just blogging a list of my thoughts about Akademy 2008 (in no particular order):
- It was the best Akademy so far, no less. The program was pretty good, the organization team did an amazing job... Congrats everyone!
- The network was unfortunately sloppy at times, more than last year I think.
- I got the best conference swag ever: a tea cup. It's been made by our Korean team, it's gorgeous, it's hand made. Definitely the best present for a conference. You guys rock!
- I didn't get much done hacking wise (my last hardcore geek Akademy was in Dublin), but I socialized a lot more and attended quite a lot of BoF.
- I'm really looking forward to see some of the discussions which happened during the conference to come to fruition. In particular regarding the release management, good stuff to come.
- Once again we had a few students from Toulouse. One from last year even came back by himself. I think the efforts in my University are slowly creating a nest of KDE hackers. :-)
- The team humongous has been humongous (as expected). I hope I'll get the same room mates next year, it was really great.
- Ade is a very good story teller... Now I really miss my bedtime stories involving dinosaurs, minority operating systems and flying warfare.
Of course, as a proud member of the team humongous I have to use this banner:
Now I'm experiencing the post-Akademy blues as usual. I miss you all already! See you next year!
PS: I have lots of pictures... The problem being that with a higher resolution camera I'm now stuck on how to host them online. Maybe I should upgrade to a FlickR Pro account. I'm not sure if it's worth the money...
Sorry to all the males out there, but I won't be posting pictures of Angelina Jolie... I'll be talking software here.
So JOLIE 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 and as Danny hinted, I wrote a Qt implementation of SODEP (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!
As you might remember, I offered a drink to some of the people submitting talks for Akademy 2008.
I know the schedule is not online yet, but to help you wait a bit I'm going to announce the Winners of the Akademy 2008 Drink Awards!
So the following people met the criteria of submission order and quality for their proposals, which give them the privilege to be on my final list. Please applaude this year winners:
- Paul Adams
- Harald Fernengel
- Celeste Lyn Paul
- Patrick Spendrin
- Thomas Baumgart
- Sebastian Kügler and Dirk Mueller (they submitted a joint talk, but I'll be nice and let them have a full drink each... could have been fun seeing them with only one glass to share though) :-)
Feel free to poke me during Akademy for your offered drink. It'll be my pleasure to get something nice and refreshing for you.
Of course, the mandatory banner:
PS: Now, I'm sure I would make a crappy host for the Oscars...
If anyone out there wonder why Aaron Seigo's blog is down, the reason is pretty simple... Its author got burnt out because of some of the poisonous people in our project. The story started several weeks ago (probably even months ago) with constant bashing of some of the decisions taken in the Plasma project (which is not a one person project by the way). It culminated last week with very rude and useless mail threads on kde-devel, and yesterday on the dot with personal attacks.
That's why Aaron decided to retire from the public and do what he truely loves: code. No more blogs, minimal involvement on lists and IRC to ensure coordination with the other developers. That's what we obtained after those weeks of angry poisonous mobs. You might think: "well you can ignore them". Really? Could you? Such people can bring a lot of stop energy. Really a lot of it, and that worries me. It seems that the project I love is not a nice place to live in anymore.
When we are able to turn down one of our public face, someone very active and energetic, we really crossed a line. Of course, we could shake head, and think "tsss, those poisonous people, they've no idea what they're doing". That's even probably what we did during those weeks of bashing... and still we let it happen. I think that's the most frightening side of the issue: nobody stepped up, and no actions are taken to make KDE a better place again. Oh, and don't worry, I have my share of guilt in this story... I didn't step up either.
Worse than the stop energy carried by poisonous people, there's the apathy of your peers. I don't want that anymore! We have to end it!
Of course, I'd like to propose a way out, but I've not much to propose. Here are my attempts at bringing some improvements proposing some actions which could be taken (in no particular order):
- Recruit more editors for the dot, as far as I know they're overbooked and can hardly moderate it;
- To help the dot editors, we have to improve it's engine with a real moderation system (how come most news site I know have one but not the dot?);
- Write a code of conduct (probably something for the e.V. membership), and publish it as soon as possible;
- Enforce it, especially on mailing lists and on bugzilla, mediating as necessary, and banning people in the most extreme cases.
That's definitely not much, but that's a start... More ideas are welcome, but most of all: acts are needed. We must stop this kind of behavior.
PS: I'm not linking any thread, bugreport or mails on purpose. I don't want to point finger. Aaron's reaction is a symptom of something broken in our community (in the broad sense, all contributors and users included) it's just an example (and not the first case). If you want specifics, do your homework and dig our archives it's all public anyway.
In case you forgot, the deadline for Akademy 2008 CfP is in two days... yes, May 1st is coming quickly now! If you haven't submitted your abstract yet please don't wait for the last minute. Moreover, every year, after the CfP is over, I find people who should have submitted but didn't because they think what they do is boring. It's just plain wrong.
That's why, I'd like to remind everyone: Yes, what you're doing is interesting. No kidding.
Since people need incentives to submit their interesting abstracts, here is the deal: The first two talks to be accepted this year will get a drink from me. After that, each of the 2^n-th talks which get accepted (so no need to rush crappy proposals) will also get a drink from me (that is the 4th, 8th, 16th and 32th since we generally accept no more than 50 talks).
Submit now, you might get a free drink.
This week I've been participating to the FISL conference in Porto Alegre. I held a 3 hours long tutorial here to introduce students to Qt and KDE development frameworks. The feedbak I got was pretty good, the questions were interesting and I even managed to cover what I was planning during this session. It's been really enjoyable.
Apart from that, I've been mostly hanging at the Trolltech/KDE booth, or the speaker's room. Lot of interesting people here. I've been very impressed by the INDT people, they're a very nice and smart bunch of people.
Today is my last day in Brazil, since it's sunday I'm going to relax a bit with Andreas and Thiago. It's been great being here. I'm really looking forward to being back home, that said spending 14 hours in plain will probably be a pain. That's all for now, I'll probably blog again about Akademy 2008 CFP when I get back home.
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 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 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...
Once again I didn't blog in a while... In particular I didn't blog about this year project students even if they got covered once in the commit digest. Now we're two weeks away from the official end of those projects, so I thought it might be a good idea to show some of their accomplishment.
This year we experimented with a project starting from scratch, and apparently we had some demand for a copy of an old famous game... hence why now we have Kapman! It's kicking and alive, it's in a pretty good shape already so maybe it'll be able to enter kdegames in 4.1. Of course it's all SVG based so you can freely resize it (artists wanted!).
We also poked the good old Kscd... Our team made quite a lot of improvements in there. In particular it's now fully themable using SVG (artists wanted!), and uses MusicBrainz to identify discs. Of course it also got the expected KDE4 refactoring: it got ported to Phonon and Solid.
Ksirk is one of those games we have in playground for quite some time. One of our team has been working on it to improve its quality and make it releasable... It's definitely getting there. They mainly worked on improving its usability and that shows in my opinion. At least now I feel like I could play with it for hours. :-)
Last but not least, this year we got a team working on Kopete. They did an awesome job, it's harder to demo or to make a screenshot for it, but they mainly focused on integrating support for UPnP and for the new live messenger protocol. On the UI front it looks less impressive, but I'm very proud of this team, they definitely had the hardest project to work on and learned a lot. Since I had no screenshot to offer, here is a picture of today's "Kopete Gang of Four" who attended the hacking session:
A few words on the hacking sessions...
Of course, after last year projects we kept the good habit of having KDE Hacking Sessions in Toulouse, we even have now a few people who are coming regularly... the community is definitely growing here. And during the student projects we have an unusual amount of my students showing up. ;-)
Missing on the picture: Thibault Normand who arrived later, and Alexis Menard who is unfortunately sick today.
Last week-end we had the release event in Toulouse, it has been the only french event and that's why I decided not to go to Mountain View. On friday evening we had a long user oriented talk with some bits of Aaron's keynote, followed by a cocktail and a merchandising booth. It's been a real success, I expected not more than 20 or 30 people... but it turned out that the room was full, some people had to stay outside. Also I was the one giving the talk, and I think I didn't screw up from the questions I had after the talk and people reactions. Of course, I played our first KDE Commercial, especially since it's been secretly done by a couple of people in Toulouse. They really did a great job in my opinion.
On saturday, we had technical conferences for the whole day. We had a really nice bunch of speakers. Aurélien Gâteau, David Faure and Lauren Montel travelled in Toulouse just for this event and give talks. We also had our local gems: Anne-Marie Mahfouf and Alexis Ménard. I also gave a couple of talks. The atmosphere was quite nice, people had interesting questions and David even implemented a feature request almost in realtime (after screwing up his desktop).
We (the speakers) ended up the saturday evening in a restaurant, Aux Fils de l'Aligot, were we had an excellent regional food. Laurent and David didn't knnow what aligot is so we had to help them discover it. Too bad Aurélien had to leave in the afternoon... next time Aurélien you'll have your share of food too. ;-)
Finally, I'd like to thanks all the people who made this two days event possible:
- our sponsors, C&S and KDAB;
- all the speakers who made this event possible;
- all the people from Toulibre who were really supportive;
- Michel Saliba who spent hours coordinating the necessary work to subtitle Aaron's keynote;
- and a special thanks to Alexis who really did a great job organizing this, he was so active I didn't have much left to do. :-)
It's really nice to see how the Toulouse community pulled such an event almost from nothing... I think it was a good test run for us, maybe next time we can try something bigger. Akademy 2009 or 2010 anyone? :-p
Congratulations to all the people involved. Even if you just committed a couple of lines, made a bug report, showed support, etc. anything to push the project forward, you helped in making this release happen. You helped ensuring the future will be brighter. Be proud of you!
Daily report from FOSS.in (at least I try). It was the day were we had the KDE project day, so I was of course hanging in the KDE room all day. Unfortunately it was a quite remote room, which didn't make it easy to find us, but we had our share of people, and at least we were sure they were motivated to find us. ;-)
Overall we had nice talks, and of course nice questions. I'm not that happy with my talks too, I think I somehow missed the target audience, but I learnt from this and will do better next time.
In the evening we had a nice party in a karaoke bar. The food was great, the people too. At the end of the party one of the organizer was drunk, she had to count us ten times to know how many taxis to get. In the end we had our taxi and went back to the hotel.
For those wondering: no, I won't give the name of the drunk organizer for her own sake... I've been told it'd be disclosed by other bloggers anyway. :-)
We (Alexis, David, Florian, Thibault and me) left the hostel early to avoid troubles at the airport. Since we've been told the security was raised there it looked wise to be on the safe side. It turned out that we arrived there too early and couldn't even check in. So we had to wait...
After the check in, everything went well: short time at the security check point, plane (almost) on time, run for the connection in Amsterdam, wait 20 minutes... We reached Toulouse airport in time: 10:15pm. Good, it was much more pleasant than our previous experience. No baggage was lost or hurt in the operation.
Finally at home! Great!
And this morning, back in the lab at 7:20am as usual...
Today was the last official day of the conference. But apparently, the security guards decided differently. We had a hard time getting into the building for hacking. We had to wait until 9:30am. The almighty Kenny Duffus helped solve the issue and that's how we got access.
We basically spent the day hacking as more people left. And soon the labs were looking more and more empty. After lunch, I got outside with David for some shopping. And then got back to the labs as soon as possible for more hacking.
Since we were supposed to leave the labs early today, we left at 5:30pm and went to the hostel for more hacking there. Finally, we went in an italian restaurant for dinner. The food was fine, maybe a bit too salty for my taste.
And we're again in the hostel enjoying the unreliable wifi connection as I'm typing this. Tomorrow will basically be devoted to going to the airport and waiting for our flight. We'll probably cross our fingers hoping everything will be ok this time.
Thursday morning, we had the first session of lightning talks. Most of them where interesting, half of them were longer than expected and easily spent more than the allocated five minutes. Thibault talked about what he did on the EBN and the plans about the running our unit tests there. In my opinion he did very well. I had time to work a bit more on my animations.
In the afternoon, we had the Bonny Banks Trip. We went to the Loch Lomond for a barbeque. The place was really nice and beautiful... only one problem: the rain. Well, we're in Scotland, we should have expected that somehow. Food was good but we basically got flooded. I enjoyed walking around though, I climbed a hill with a few others, namely Aaron, Adriaan and Troy.
When we got back to the hostel, some of the french people teamed up for hacking in the lounge of the hostel. Thanks to the wifi offered we've even been able to check out mail and discuss with other developers on IRC. It lasted until 1am.
On friday morning, we had the second lightning talks session which was good too. I talked in less than three minutes of my brand new animations, advocating that thanks to QTimeLine it's very easy to do this. Then Alexis talked about what he did in Plasma, basically implementing a new kind of animation. We also had Will talking about future plans in Kopete, and Florian talking about what he wants to do there.
Friday afternoon slowly started to feel the end... The first people were leaving. That's always a bit sad to see friends leaving. But that's part of the deal, we're all going to the same place and at one point to go back home.
This night we went to a very nice Southern Indian Restaurant. Very good food, I really enjoyed it and was completely full. It seems that it was a bit too spicy for Laurent though. And now, we're back in the hostel, using the wifi and hacking a bit. I'll probably head to bed very soon now. See you!
Yesterday, we officialy kicked the hacking marathon and the BoF sessions. So far, I've mostly been stuck into the BoF sessions though. The Tutorial Day was long but just great. Jesper did a lot in it, he was just tired at the end of the day, but that was worth it. For instance, the Interview crashcourse he did with Till was probably the best one out there. Very original, interactive, using an antropomorphic point of view to help people understand... just perfect! After all that, I attended the Google Summer of Code BoF which was very productive. Thiago managed it, it allowed mentors and students to discuss how they perceived the program, and we got some ideas to ensure we can do better next year.
In parallel, we had the Edu and School day going which I couldn't attend unfortunately. That was the reason for Bruno, the GCompris author to be there. Apparently this day went very well, and the attendance appreciated it. I'm happy that it worked well, this is the kind of important topic focused day we can do.
In the evening, I went to an indian restaurant with Alexis, Harald, Simon, Thiago and Zack. A bit expensive, but the food was just great. After that we moved to their place for hacking offline. I took this opportunity to ask Zack to help me with some of the changes I had in mind for the KFilePlacesView, introducing animations to make it more organic. After the first tests, we noticed big performances issues, and spotted that it was in KIconLoader which tended to reparse SVG files too often. As I'm writing this, Zack already introduced some caching to fix this, but more is needed because of the current overlay handling which is suboptimal to say the least. I'm confident it'll be sorted out before the end of the week.
This morning, I was attending the non-planned EBN BoF with the other people from the "quality cabal". Good stuff is coming with the EBN and the SQO-OSS project. Thibault attended too, and got some tasks allocated, I'm particularly looking forward to his work since it'll be one step toward improving our use of automated tests.
In the afternoon, I've been BoFing again. This time for the SQO-OSS one which gave an overview on what we could expect from it, and to be able to provide input about what we'd like to see available in the upcoming system. Then I attended the Plasma BoF which gave an overview of the current state of the desktop. As I was sitting next to Zack I was mostly admiring him hacking on the first GL based plasmoid... really cool and impressive stuff.
After that, I had a discussion with Aaron and Alexis on our plans for the integration of Solid in the desktop. We now have what looks like a definitive plan to handle this. And now I'm sitting in the GHNS BoF, not listening a lot to be honest... mostly profiling again to test Zack's fix in KIconLoader. The performances are better now, but not optimal yet, we'll work on this later... now it's time to dinner and to move to a vegetarian/veggan restaurant Aaron found yesterday.
As promised, a short blog post today since I spent most of my day in the KDE e.V. general assembly. It consumed the whole day until 6pm.
It started with the Lord Provost reception in the town hall building. The building itself is very cosy and beautiful... but I couldn't care less, there was plenty of free food available. FREE FOOOOOOD! Thanks goes to Trolltech for sponsoring this.
Then I teamed up with Aaron and Zack wandering around in the city. We ended up in a bar playing lot of good music (read: industrial, hard rock, etc.). We of course had drinks there, chatted for a long time, watching at japanese and chinese movies on their TVs. And, since there was a pinball there, we played with it something like one hour and a half. Was a nice way to celebrate Zack's birthday!
Then, we crossed the street to another bar and listened to the last song of a blues man there. Very cool music again, and plenty of drunk people... Some of them just got interested in us and that was the beginning of a new journey. No idea where they wanted to go, but the girls just wanted us to follow, of course the boyfriends were really not impressed. As we walked with them we got relabeled "canadian", "polish" and "frenchie" in no particular order.
At one point we got ride of them, and tried to find another place to stay... Problem being that at midnight all the bars are closed here. So, asking some people in the street we tried to find a place called "the Garage", with a truck in front that we couldn't miss. Looked like a good plan since it was supposed to be the busiest place in town. Then we walked, and walked... and walked through a no man's land. Found a few uninteresting clubs, but no Garage or truck. Aaron and Zack were feeling hungry at 1am and almost ran into a noodle bar, when I noticed a trunk next to it... We finally found the Garage. After their very late dinner, or very early breakfast, we were all feeling tired, so we walked back home without even stepping up in the Garage.
We reached the hostel around 2:30am if I recall correctly. That was a very nice night with the right mix of drinks, music, drunk people and noodles. :-)
Second and last day of the conference. In the morning I basically attended the whole quality track, and even participated in it since I had my first talk there. Overall it was a good track I think. I particularly appreciated the SQO-OSS one. It was a very good talk by Paul Adams, very clever, lot of humour... and very interesting approach on the how to deal with quality metrics, and how to build them. I'll definitely attend the follow-up BoF. These kind of tools are a good way to improve the overall quality of the project and strengthen our release process without to go through the bureaucracy hassle. I'm looking forward to use more the EBN and the results coming out of SQO-OSS in this regard.
The Qtopia for Developers talk by Harald Fernengel was really good too... the only "downside" is that after the talk you definitely want to get a Greenphone to experiment quite a lot of stuffs with it.
It was followed by the group photo and lunch. I had interesting discussions with Aaron, Lars, Marius and Zack during this lunch.
During the afternoon I particularly appreciated the community talks. First, Claire talk about how we could get more involved in research projects. Actually, I think she has a very good overview of the situation, even if I consider her a bit too optimistic on the amount of projects we could handle short term. That said, I'm really willing to invest some time to make that happen... The only unknown being how much time I'll have available overall after my PhD.
The last talk I attended was the one by Anne which was about how to build consensus. Very, very interesting topic for community like us. We sometimes try to build consensus with no clear rules and it makes it harder. We sometimes also rely on votes, which matches our "real life" habits, but generate bureaucracy. I'm glad to see people working on such issues.
Then it was my turn again, I had a talk about the students projects I setup at the IUP ISI. I think it got well received, and I hope to see the ideas in it grow outside of Toulouse.
Finally we had the aKademy Award Ceremony. This year the committee awarded Sebastian Trueg for K3B, Matthias Kretz for Phonon and Danny Allen for the commit digest. Congrats to all of them!
That was the last day of conference, monday is about the KDE e.V. general assembly so I'll probably won't blog much, and then the Hacking Marathon is coming with lot of nice BoFs, extra talks and coding fury!
Saturday, is the first official day of the conference. I was tired of the trip, and disappointed about missing the pre-aKademy meeting in the local pub. But at least, it was nice to see friendly faces for breakfast in the morning. Anne-Marie and Alexis showed up, proving the taxi plan worked... even if they apparently had to complain to get it.
This year, the opening was a talk by Lars Knoll, and a very good one in my opinion. I think it was important for the community that Lars gave us more insight on how the things are working inside Trolltech, and to call for more cooperation in both way. It's so nice to see the Qt developers so committed to the KDE platform.
The talk about Sonnet was interesting, but I was a bit frustrated about the lack of in depth information. That said it's completely understandable, Zack being back on business on this library only recently.
The second keynote by Mark Shuttleworth was interesting, but obviously raised some controversy about release processes. Apparently he'd like to see all free software projects release in sync every six months. That looks very optimistic to think it could be even done. And even if we suppose for a second we could apply this to the whole community (good luck!), I'm not impressed at all. Doing this to such a scale looks like the best way to kill innovation in my humble opinion.
The talk about Akonadi was pretty informative, and that's nice to see code running. In particular, demoing a plasmoid giving the state of your mailbox in real time was a very good example. If you add to that the fact that'll be an unified and semantic rich way to get all your PIM information... nice features are coming.
Then I attended Zack talk on graphics, and his new framework named Quasar... well, it was a talk made by Zack, enough said. It rocked, and it even gave me some motivation to do crazy graphics stuff.
The KDEGames panel was a very very good idea. It gave a pretty good overview of the kdegames maintainer team, on the state of the module, where it's going on, etc. I'd love to see more of such panels, for other modules too.
Lars Knoll had another talk, but this time about Webkit and KDE. I think he gave a pretty good picture of the current situation and of the advantages to use Webkit now. And the best of it, is that it's not science-fiction, we already have a kpart for konqueror which use Webkit (it's in playground right now, and completely working).
Then we got the "beautiful features" talk by our renowned serial-hugger: Aaron Seigo. As usual, great talk, he's speaking really well... a real born speaker. He gave quite some clues on the direction we should follow to make our UIs more appealing.
And last but not least I attended Inge talk about large installation and thin client settings. That's nice to see KDE works quite well overall in such setups, but I have to admit I share his concerns about Kiosktool. It could become one of our best asset, but right now it's really suboptimal and probably needs rethinking.
On the evening we got our first social event. We went to a bar, got nice food and drinks. The place was really nice, and I've been able to chat with many people. Very good stuff... except for the music. It was overall too loud for my taste, in particular when one of the DJ played us some experimental music^Hnoise. It was extremely loud, and unfortunately it made quite some people leave. That's really unfortunate, the place was very well choosen otherwise, but you can't control everything.
I was still at home, that the trip was looking bad already. Around one hour before leaving I felt sick and had stomach ache... Just perfect, a plane is a so lovely place to feel bad. But well, I wasn't bad enough to skip this!
As planned, I met up with Anne-Marie, Alexis, Florian and Thibault to take our flight. Check-in went smoothly, we embarked... and waited... and waited... until the pilot told us we had a small problem with one engine. So, we waited even more... until they asked us to disembark. Fine, so we're back in the airport, it looked like will miss our connection.
After one more hour waiting to know if the flight would be cancelled or not (which would mean we'd still be in Toulouse as I'm writing this), they managed to repair the problem (the right engine was leaking fuel). So we embarked again, and waited for a new window to take off... fine you get used to waiting I guess. And finally we took off, twenty minutes before the time we're supposed to embark in our connection at Amsterdam. So now, for sure we're going to miss it.
Eventually we arrive in Amsterdam, which probably prove the leak was really repaired. We rush to the transfer desk... and... wait, of course! When it's our turn, we get the following deal: three of us (Florian, Thibault and me) are booked on the next flight to Glasgow at 9pm (our was supposed to take off at 3:30pm), two of us (Anne-Marie and Alexis) are booked on the next Edimburg flight at 10pm then the airline will pay for a taxi to Glasgow. Ok, fair enough... at least will be in our beds in Glasgow.
So we waited our new flights... 8:15pm came we're going to embark for the Glasgow flight at last! We're even feeling a bit more lucky as we met Thiago, sharing the flight with him looked like good omen. Unfortunately, we still have surprises coming... at the last minute, Florian wasn't allowed to embark, we got overbooked and he got sacrified on the austel of low prices. He's told to try his luck with the Edimburg flight.
Thiago, Thibault and me got in the plane. Thibault got executive class, nice. We waited... and waited... until the pilot announced that there's a problem with the plane. Yes, again! Another plane, another issue. The good thing is that we were able to call Florian to check how it's going for him. Unfortunately, no Edimburg plane for him, it was full too. So he's staying in Amsterdam for the night.
And of course he needed his baggage, and I noticed that I lost his baggage number... So we'd no idea if he'd be able to get it back. I was really feeling bad about this... Luckily when we arrived in Glasgow, Thiago had a voicemail on his cellphone from Florian. Apparently they found a solution for his bagage.
So all in all we got to Glasgow, in three separate planes and a taxi, one have travelled for 24h... and the minimum delay was for Thibault and me, we had "only" a 6 hours delay. But, yeah we were all lucky, despite the convoluted trip, no bagage got lost.
Tomorrow is the official opening of the aKademy conference in Glasgow. Once again I'll be there, and I'm really looking forward to meet the community as usual. I know a few people I appreciate won't be there this year, I'll miss them of course.
But this year is a bit special: for the first time I won't travel alone from Toulouse. Of course, Cyrille left yesterday, but this time I'm travelling with our favorite annma and three of my former students who worked on the KDE projects I organized in my University. It's a great opportunity for them to meet the community for the first time, and maybe get more involved in the project for a longer period. Some of them already worked on a couple of things apart for the official University projects, and the other ones have already a few ideas they probably want to share.
I'm packed, hopefully I forgot nothing. I've already a few items on my TODO... And now I'm waiting to get my plane. Looking forward to see you there!
My recent life is so unusual to the pattern it had in the last few years: work, hack, sleep, work, hack, sleep, hack, work, sleep... ad nauseam. 2007 has obviously something special, I didn't envision my life changing so much when I turn 27, but it happened. I'm traveling much more than usual, and it shows on the way I'm looking at the world. It seems smaller than I thought. I guess the trip to Hawaii had something to do with it, it was really different than the places I got before, it's such a mix of cultures. Really, I think I enjoyed it more for the interesting cultures and the wild nature, than for the stereotyped beaches most people have in mind when you talk about Hawaii.
So after being back at home, I had no time for working on KDE and no time for procrastination either. You probably wonder why I focus that much on procrastination... That's simply because it's an important part of the PhD student life (well, at least that's what most people say). And, I got a nice gift from my friends here, some of them being also PhD students. I got probably the best resource about procrastination and the academic world. For those who don't know Piled Higher & Deeper it's the best webcomic about grad students life. When you're preparing a PhD you have to read it, it makes you laugh a lot... and cry a lot because it pictures really well your current life.
So, what was the reason for not procrastinating, and not working on the changes I planned for yesterday? Basically, because I had only two weeks to prepare the second draft of my PhD thesis, and that consumed most of my time. Why two weeks? why so much time pressure? Well, you probably got it already, I'm travelling again. Tomorrow, I'm leaving for Calgary and visit Aaron... Furious hacking, hiking and working on the final draft of my PhD thesis are on the schedule for this trip.
2007 has obviously something special, I didn't envision my life changing so much when I turn 27, but I learned something earthshaking (which will justify the title of this post): Travelling has a direct influence on procrastination. If you travel more, procrastination is inhibited.
Unfortunately, it seems it also has a direct impact on your Free Software contributions... But I'm looking forward to the coming trip to confirm or not this point. I hope to prove it wrong.
Tuesday and wednesday were basically spent doing API review and refactoring the public API to address the issues found. It's great to get input from people experts in the field... After all their work on Qt proves they have a lot of expertise in making APIs which rock.
That's why Solid is getting get a big facelift during this week. I'm cleaning it up at a lot of places, and had to refactor the internal API a bit. Hopefully now the most intrusive changes for the hardware discovery part are done. It's kind of frustrating because I'd basically like to see this week last for a month. I opened the eyes in quite some shortcomings, and we probably won't have the time to make a second round of API reviews.
So... Let's get the most of this week! Back on furious hacking!
As usual started with a very early flight. I had to woke up at 4:30 this morning to get it... No need to say I'm pretty tired while writing this. Of course I'm also pretty excited, which explains that despite being exhausted I'm hacking at... the Trolltech offices in Oslo. Today being the first day of a 5 days long sprint about Phonon and Solid.
It's always nice to meet old friends and new faces. The Trolltech guys form a very friendly group.
Today, we basically travelled, setup our small network for the sprint and had discussions about investigations and work for this week. It already looks like it can become a highly productive week. After this nice kick-off we gathered in a very nice restaurant in Oslo with a few trolls. The food was just wonderful, and it was very cheap (in particular compared to Oslo standards).
This night we finished the work on factoring XMLGUI out of KMainWindow with Simon. It's now in trunk, so now we can concentrate on the main purpose of this sprint...
Thanks a lot to the Trolltech people to allow this sprint to take place.
Damn, another late blog entry... I've nothing worth blogging for months and when I finally have something I let it sleep for two weeks. *sigh*
Friday the 23rd of March was the official ending of the KDE/ISI student projects we announced in December. Of course, it was an important event for all the students involved. Particularly since each group had to showcase their products and defend their work in front of the professors. The two KDE groups did well in my opinion, and the professors particularly liked the result.
It has been a great pleasure to work with such dedicated students, now we'll see how many caught the KDE-virus. :-)
I posted only two pictures (one for each KDE group), but I have more! The pictures taken during the past two Hacking Sessions with the KDE teams and the students defences (including the J2EE groups) are available on my FlickR gallery.
Ok, I'm a bit late on blogging this one, let's not delay it further. :-)
So the Hacking Session of March happened on saturday again. It was quite a success in my opinion. Working in group is always a pleasure, and I generally end the day in very good mood. Note that this session was a particular one for the students working on KPlato and Umbrello, it's the last one before the official end of they university project. They'll have to exhibit what they've done for their respective projects on Friday, I wish them good luck.
Unfortunately Philippe and Anne-Marie couldn't make it this time... But all the other people who attended in February attended this month too. Even more students joined us which raised the number to 13 persons.
February group (from left to right): Florian Longueteau, Thibault Normand, Nicolas Micas, Hassan Kouch, Frédéric Lambert, Mohamed-Amine Bouchikhi, Alexis Ménard, Florian Piquemal, Stanislas Krzywda, Caroline Bourdeu d'Aguerre, Pierre-Benoit Besse, Florence Mattler.
Of course we had quite a lot of wires, it was a bit messy but worked. And we got plenty of food with a particular focus on pizzas for lunch (yay!).
I attended FOSDEM 2007 this week-end. It was my first time there, it's really a great event. It looks a bit like a system at the edge of chaos... but it self-organizes correctly. There's always something happening because of an insane amount of talks. It's even a bit frustrating at times because you definitely can attend only a few talks. Which means you have to choose very carefully... I admit I was disappointed by two really bad talks but no big deal.
Particularly interesting was the OpenMoko talk. I'd say it's nothing ground breaking on the technical side, but it looks great from a business model perspective... Definitely looks like a tempting cell phone for hackers. :-)
Also amazing was the attendance during the KDE 4 talk. The room was just full, it was difficult to find a seat. Jos Poortvliet did a very good job at summarizing the current state of the matter. Keep up the good work Jos!
Apart from the talks, FOSDEM has proven to be just great for socializing. It's great to meet known friends again, to put faces on people you only know from IRC or mail, and new people. That's probably the best advantage of FOSDEM, a lot of different projects are present there, so it's really easy to discuss with them. The cross-desktop and education sessions just showed it.
Since a few months, we try to setup a hacking session per month with my friends from the IPSquad. Of course, we have no problem having "outsiders" (I don't really like the term since we're not a closed group) participating, and that's how Philippe joined us a couple of times.
For this month I had an idea: What about proposing the students working on KPlato and Umbrello to join us? It's definitely better to work in groups like this. You can do more in less time and feel part of the family. Monthly hacking sessions like this are a perfect way to share the fun. So we did it yesterday. Not all of the students involved in the projects joined, but a few of them showed a real interest and were able to attend. Since it was a bigger group than usual I had to find a place. Luckily, we've been able to use a room of the University which was just the perfect location (most of the students living nearby). We had also the nice surprise to have annma join us. To all the people involved: Thank you a lot for your presence!
February group (from left to right): Florian Longueteau, Philippe David, Anne-Marie Mahfouf, Caroline Bourdeu d'Aguerre, Hassan Kouch, Florence Mattler, Frédéric Lambert, Florian Piquemal, Thibault Normand.
Of course, no hacking session is perfect without food and a compile cluster. We had plenty of food, but for the cluster we had to install icecream on most of the computers (it was already setup only on three of them). But once everybody got it running we obtained a really nice ten nodes cluster:
Fellow hackers, food, and a compile cluster... It was just a perfect saturday!
aKademy 2007 is slowly coming. stop.
It will be in the nice city of Glasgow. stop.
A Call for Participation has been published more than a month ago. stop.
You can Submit Talks until 14th February 2007. stop.
You surely have something interesting to say so Just Do It Now! stop.
Of course you have something interesting to say! stop.
Yup, it somehow looks like a famous Green Day song...
Akademy has come and passed
Ten days has gone so fast
Wake me up when october ends
Back in office again
Falling from the stars
Drenched in my work again
Becoming who we are
As my memory rests
But never forgets what I lost
Wake me up when october ends
Akademy has come and passed
Ten days has gone so fast
Wake me up when october ends
Wake me up when october ends
Wake me up when october ends
This lame attempt at borrowing a song lyrics for my own blog comes from the fact that october is exhausting here... I've basically been unable to do anything useful in the free software land since the end of aKademy. Too much work both on the research and teaching front. But it seems I survived once again. :-)
Hopefully starting this week-end my schedule will slowly come back to it's normal state, so I'll have some spare time to spend. I already sent a bunch of patches for HAL and committed some code into Solid. It feels good to be able to work on this again!
I'm now back home for a few hours already. This week was great, but it always feel good to be at home. Moreover I had a very nice woman waiting for me at the airport, great motivation to come back. ;-)
This year aKademy was really great, I really enjoyed being there. I'd like to thanks (in no particular order):
- Marcus Furlong, for being insane enough to organize aKademy;
- Tink Bastian, who put a lot of work to make this event a success;
- The sponsors, for helping to make it happen;
- Peter Simonsson, for being such a nice guy;
- Aaron Seigo, for his craziness;
- Sebastian Klüger, for his ability to kick asses; ;-)
- Adriaan de Groot, for the room sharing;
- David Faure, for his wisdom;
- Pradeepto Bhattacharya, for his sympathy and compassion;
- Will Stephenson, because he rocks; ;-)
- Kenneth Wimer, for being Kenneth Wimer (it's always a pleasure to meet you);
- Michaël Larouche, for wearing Iron Maiden T-Shirts (damn, I should have taken mines :-p);
- Jonathan Riddell, for being the best minutes writer in the world;
- The attendance and the speakers, because they're the ones who make aKademy such a precious event;
- The whole community, I'm really proud to have the privilege to work with so brilliant people.
I'm looking forward to meet all of you again!
Today is officially the last day of aKademy 2006. As usual I'm staying until the last minute, which means that my plane is tomorrow morning at 7am. That also means that I'll have to get up very early! Maybe I should change my plan and try to avoid sleeping this night. ;-)
It's always a bit sad to see people leaving... But that's to be able to meet and have fun again next year.
The biggest event for me today is that I switched to zsh after being a bash user for years. I doubt I'll go back to bash one day. Zsh is really awesome, I'll probably find a few more things to tune but it's already quite interesting. Thanks a lot to Sebas for providing me an initial set of configuration files, it helped the transition.
I also shamelessly rebuilt my whole KDE trunk installation (and abused the icecream cluster) to have an organization similar to the one proposed by David in his talk about KDE 4 Development Setup. It makes a lot of thing more convenient and less time consuming. A lot of great tips in there, I strongly advise everyone to take a look at his how-to as soon as it'll be made available.
That's all for today, I'll probably go back to the hostel soon now in order to enjoy the presence of the remaining people.
Today we finally made the Solid libraries enter kdelibs! That means that a most of the milestones of the roadmap are done. Now it's mostly about polishing, writing more backends, and making use of it in applications. It couldn't have been achieved without the help of Will Stephenson who mastered most of the network management classes all by himself. I'd like also to thank Laurent Montel who gaves a few advices related to the build system during the merge, and Dirk Mueller who already made a few pedantic cleanups on the code base. ;-)
After this achievement, I finally took some time to walk downtown with Peter. Dublin is really a nice city, I really enjoyed what I saw. We passed by the Saint Andrew's Church which has an interesting architecture. This church somehow summarize this town quite well. It's very old, and that's what you notice first, but if you come closer you'll see that on the inside it's been renovated in a really modern way. Dublin is like this, it looks both old and modern.
We stopped by the Saint Stephen's Green Park, walked a bit and sat on a bench. It's a really nice a peaceful place. That's actually interesting to look at people in this kind of place. Parents and children playing together, couples walking, people simply chatting... that's really refreshing. We're really lucky to have the opportunity to appreciate moments like this. Interestingly, a couple of elder people stopped by a bench next to the one we were sitting and started to sing together. It sounded like a very old and melancholic song. Precious moments...
After the successive refactorings of the next few days, it's time to get ready for merging in kdelibs. So today I spent almost all my time finishing the refactorings, documenting and reviewing the API. In the meantime Will was working on the fake backend for network management. I also gave a hand at it.
I took a break since API documenting can quickly become boring. And I attended Sebas' BoF on marketing. Quite a few interesting ideas...
Tomorrow we'll concentrate on unit tests. Once they are ready, we'll finally be able to move Solid in kdelibs!
Mental note: I should really try to find some time to visit the city center. I'll surely go with Ken and Peter tomorrow afternoon.
Already the second day of the coding marathon. I didn't attend many BoF and talks this time. I concentrated much more on preparing Solid to enter kdelibs. Not yet done, but we're coming closer.
Apart from this code work I took some time to attend the Qt tutorial done by Mirko Böhm to Trinity students. Since I'm doing something similar in my university I was trying to see if I could find a few ideas to improve my own course material. ;-)
I also attended Mirko's BoF on multithreading and performances. It raises a few interesting questions. Done right it could give a boost to our application startup time and responsiveness. We probably can find patterns to make implementing those concepts more easily, it'll probably require some time to get it but that's for the better.
A new day is now starting, see you later. Greetings from Dublin!
Today was the OpenDocument Day at aKademy. Very nice idea, it allowed a quite some people to get in contact about this important topic.
I attended the lighting talks and breakout sessions. Lot of interesting topics, but I won't enter in more details here, there would be too much to write, and I'm a bit tired. ;-)
I made a break to attend the Strigi BoF. The design looks sane, its main developer cares about resources. It seems that we have a winner here. There's only a few things that I dislike about the daemon part, in particular how the D-Bus support is implemented, it seems to be too much effort for the tools we currently have. But well that's nothing critical, really.
This break was in fact during lunch time... So I get back directly to the lighting talks session of the OpenDocument Day. Luckily Peter kept me some food, so I was able to have a lunch after all. =)
During the breakout sessions I found some time to work on Solid to prepare its merge in kdelibs, that led me to some cleanup and refactoring. I'm waiting for the network related parts to be ready and then the merge will occur.
The OpenDocument Day ended with a sponsored dinner for all the attending people. Fine food and lot of talks... Once again a nice way to end the day. ;-)
As expected, the KDE e.V. General Assembly took the whole day. The minutes are supposed to be available on the KDE e.V. website at one point so I won't cover it's content here, it would be too long anyway. :-)
Surprisingly we finished in time to be at the Google party for 6pm as expected. Quite nice, lot of free food a few people from Google to talk with (both from engineering and marketing departments) and of course a lot of KDE hackers.. They even made a small lottery with cool prizes... They definitely know how to receive and make you comfortable. Thanks a lot to Google for this nice evening.
After the party a few of us got to a bar nearby the university. Luckily I can reach our wifi network from here, so I'm blogging this from a cosy armchair with friends drinking beers around me. Nice way to end the day.
It was another great day here! I love this city, and this event. I took a real breakfast for a change, actually the free breakfast in the hostel is not really interesting, but there's a restaurant next to it.
David's talk was interesting because it provided plenty of nice tricks that make your life easier on day to day hacking. I heard you David, I'll probably switch to zsh really soon now.
Anne Østergaard's talk was also interesting, it put in light quite some interesting information about the men/women relationship in free software communities. She had a few not so easy questions in my opinion, and answered in a very clear way. I'm glad that she made this talk. Thank you Anne!
After the coffee break I attended Adriaan de Groot's talk about the English Breakfast Network. Very interesting and useful stuff if you ask me. I also attended Julien Seward's talk about Valgrind. This is really an awesome tool, and using it for a full KDE session is a kind of crazy idea. But that gave me another idea, this approach could be used in EBN. Since EBN is already doing some GUI automated testing, during this testing it could also be collecting valgrind data at the same time.
After lunch I attended Pau Garcia i Quiles' talk. Interesting stuff, that's surely the biggest Qt/Ruby application around.
Holger Freyther talk about KDE and Consumer Electronics was interesting. We can still improve in this department. I tend to disagree about his very technical view about the problem though, most improvements required are more cultural than technical in my opinion. Granted it's not really something easy to fix, but we can work on it. ;-)
I also attended Richard Dale's and Richard Moore's talks. Also very interesting topics that will bring quite some interesting features for KDE4 if we embrace them. And we clearly have to embrace them.
I attended Coolo's talk about Kickoff which showed quite some interesting usability studies result and a great prototype.
We ended the day with the aKademy awards. Congrats to all the winners you really deserve it! The awards were followed by a nice dinner concluding those two days of conference. I'd like to take the opportunity to thank all the people who made this event possible. In particular Marcus Furlong who drived the effort so nicely. I also have a special thought for Tink who put an awesome amount of work into it, even if she knew she wouldn't be able to come. THANK YOU!
Now onto the day long e.V. membership meeting and the upcoming coding marathon! Conference is over, but not the whole event, more very good stuff is coming...
Today was the first official day of aKademy 2006. It started with Aaron's keynote which was just awesome. I must say "as usual", he is such a great speaker, very inspiring. His photos slideshow was just a great idea, it really showed how much common background the community shares.
I then attended the talks about QtDBus and Plasma which led us to the coffee break. It was time for the joint Phonon and Solid. I think that our duo with Matthias definitely worked, and it seems that our talk and approache was received quite well.
We formed small groups to hunt for lunch. We stopped in a small restaurant with David, Coolo, Thiago and a few other people. The food wasn't bad and strangely both waiters were french.
Despite the bad weather here, we managed to get back for the second keynote in time and dry. After this keynote I was pleased to attend J5's talk, the content was really interesting. And in particular his motto should be remembered: "Competition and Cooperation are NOT Mutually Exclusive". Thanks a lot John for coming and participating in the conference part with this talk!
I missed a few talks, I was talking with Sebastian Trüg about future plans for KDE 4. It'll probably lead to interesting reuse of some K3B code. Too bad I didn't see the Asian Track, I was particularly looking forward Pradeepto's talk.
I finally attended all the remaining talks of the KDE4 track. George's talk about KHTML state was particularly interesting in my opinion.
I'm now writing this from the "pav" where we had a perfect geek dinner thanks to Nokia who sponsored a ton of pizzas and drinks for us. Thanks a lot for this support! The "pav" is an interesting place, cosy and warm... really nice, I'm so glad to be here!
I was ready on time to travel to Dublin... but not my plane. Departure got delayed around 40 minutes. Not a nice way to start the day. I was supposed to meet Volker Krause on arrival, and luckily he was kind enough to wait for me. In the airport we met a few other KDE hackers: Antonio, Inge and Lubos.
Reaching the hostel from the airport was really easy, we were just a bus and 5 minutes walk away. We had to wait a bit to be able to reach our rooms so we used this opportunity to have lunch together with John Tapsell and his wife.
Went to the PC huts to finish polishing the talk we have with Matthias. I'm looking forward to giving this presentation with him.
In the evening I met Cormac Lawler of WikiMedia fame and his girlfriend. We chatted in the Kennedy's Bar for almost three hours! He's really a great guy and it was a real pleasure to meet him in person. We discussed some interesting collaborations and I truely hope we'll see the discussion we had opening to a broader audience and give birth to nice cross-projects.
That's all for this friday, I'm finishing typing this as I'm attending Aaron's keynote.
See you later!
This post will keep the current trend on Planet KDE going: Dublin, I'm coming!!! :-)
I finished packing. Now I just need to have some sleep, and wait for my friend E. who will drive me to the airport. Thanks in advance for this!
- Stuff packed: done.
- Maps, and info to find my way, printed: done.
- Ogg Vorbis player filled with good music: done.
- Books to read in the plane: done.
- Slides for the Phonons in Solids talk: done.
I even found some time to work on Solid so hopefully it'll be merged in kdelibs this week-end.
After seeing Sebas' slide templates, I somehow became jealous since I'm more a LaTeX Beamer user. So I decided that we, LaTeX users, shouldn't feel ashamed in front of those beaufitul slides and that we deserved one template! It took some time to work on it and *dang*
It's now available from the kdeslides page:
Thanks a lot to our Oxygen team, they've done the artwork which makes this template possible. You rock guys!
Now we know who will have the best looking and well structured slides, the LaTeX users or course! ;-)
Booked my flight today, and added myself to the arrival page. Now my travel is fully planned. I'll be there for the full conference, I don't want to miss a day. ;-)
Now I'll have to work on the "Phonons in Solids" talk submitted with Vir since it got accepted.
I'm looking forward to meet the community again!
Yesterday night and today, I got back on porting and bugfixing mode. We've still some work to do to have everything ported to D-Bus so everybody is participating to this on going effort. I finally spotted a bug in kpersonalizer that made your session turn black... so now you can actually see the content of your windows. ;-)
Today, we started to see a few boxes having KDE 4 sessions running decently: kicker, kdesktop, konsole, kwrite... are running. Konqueror can be started by hand, but it still requires some work to make it launchable from the menu and kicker again. Of course it's still rough on the edges, but that's really nice to see all this running again after so many changes and refactoring. We've still so much to do, but the improvements made in the last few days are really motivating.
Just like yesterday, we had a truely nice lunch. It was prepared with love by Will, great coder, awesome cook. Thanks a lot Will!
This evening, we're all hacking as usual. But it seems that today we have quite a concentration of "hackers on a couch".
After all it's a really nice place to hack, why not using it. ;-)
Today, I finally committed the last part of my job refactoring in KDE. We'll finally have jobs usable accross KDE application without being tied to KIO. Moreover thanks to the UI delegate I introduced, the dependency on GUI is now optional. It can even be used to have several representations possible for a set of job. A UI Delegate for the command line, one for classical dialogs, one to publish job progresses in a Plasma message area.
Today meals were truely nice. For lunch, Will took the initiative to make pastas for everybody. Thanks a lot Will! For dinner the catering service provided us tons of food again. Almost no meat which is a nice thing for the vegetarians here... we don't want them to starve. ;-)
This evening a big part of the Trysil team is watching the World Cup:
As you might have noticed, there's one person really concentrated in front of the TV. Ok, let's zoom in, see how Laurent is highly motivated by the french team:
Ok, skipped one day... time to blog again. ;-)
Yesterday, everybody worked hard. I spent quite some time working on splitting useful GUI related code outside of KIO. This way it'll be reusable for other frameworks like Akonadi or Solid. It's a big chunk of work, so it was far from finished but I decide to go to bed early.
Hence why today morning I managed to wake up earlier... And caught up Harald when he was trying to wake up:
Cute, isn't it? =)
During the whole day, I continued my work with jobs and kio, the first phase of the changes is almost ready to commit. I've been stopped mostly by only two events: a group meeting (will probably end up as a proposal on k-c-d), and lunch. Hmmmm, Lunch! We had a BBQ, it was just perfect! Thanks to Marius for managing this so well.
George and Celeste arrived this afternoon, it's nice to see them around again. We're almost all there, only Till is missing, but he's supposed to arrive later tonight.
This evening the german team is playing in the world cup. That's why we're facing a strange phenomenon, it started with coolo, but people here are infected by a german fever:
Gooood evening Planet KDEEEE!
Woke up a bit late today, well that's understandable since I got to sleep at almost 4am. On the other hand, when I left kdelibs was able to compile so it was worth it. ;-)
Today I basically worked on the kdelibs and kdebase stabilization. Now that we're moving them to Qt 4.2 we have a few things to fix. We're slowling getting there, hopefully tomorrow the situation will be ok there.
During the afternoon, we made a break to have a walk around the area. It's really a beautiful place, we stopped at a swampy field where we made a group photo:
Actually, what you're seeing above is the second try... For the first take I had Aaron in all his glory:
See you later, I'm going back to kdebase porting.
Hello from Trysil, Norway!
I finally arrived in Norway. No real event disturbed the trip, which is always good even if a bit boring. I met for the first time Alexander Neundorf and Tobias Koenig in Oslo airport. Nice to meet you guys.
We found our way to the bus. While we were waiting for it Allan Sandfeld arrived too... he was supposed to take the next bus, but since it would have required him to wait for two hours he took the same than us. Our bus was really full of people and we had the nice surprise to find Zack Rusin and Marius Monsen in it.
After a three hours trip by bus, we reached the cabin... It's... well... GREAT(tm). A picture says it all, here is the view we have outside:
And inside it's cosy. Since we have a TV, a few hackers here watched a soccer world cup match:
I'm really glad to be here, the next coming week will surely be terrific. All the conditions are met to make us very productive!
Wednesday and thursday went nicely. We continued our work during BoF, some outcome will surely be interesting. In particular Adept usability will surely be improved, and the plan for powermanagement in edgy has been consolidated. This release will surely be quite interesting regarding both points. I'm confident that it'll have some other improvements though. ;-)
Thursday afternoon, David Faure arrived and it was really nice to meet him again. It was a small surprise since we didn't expect him that early.
We got contacted by Philippe Fremy that offered to meet in Paris center for dinner. All the KDE and Kubuntu attendance went in the center. We had some troubles to get there by train... apparently the police found a suspect baggage. We finally arrived but at least one hour later than expected. The italian restaurant was quite nice, we had a long table at the first floor and were almost alone during the dinner. It was an opportunity to strengthen even more the relationship between the KDE and Kubuntu communities. Thanks a lot Philippe for this good idea and the great evening.
Finally friday came after a very short night since we got back to the hotel early in the morning. After a few hours sleep we were ready to work again! A few more BoF took place... until some of us left one by one. It's always sad to see people that you like are leaving: Ellen, David, Peter, Sebastian, Tonio, etc. This time I'll also have a thought for Myriam Schweingruber, she's a very kind person from the Free Software Foundation Europe. We had interesting discussions together and that was a great pleasure to have her around. I'll miss you Myriam!
For this evening, I plan to stay away from the exciting stuff, which means that I won't go to the "Au revoir Dinner" organized by Canonical in Paris center. I just don't feel like going to sleep late and being in a hurry tomorrow to pack my stuff and go to the airport. So I'll have dinner in a small restaurant nearby and I'll surely be back early.
It marks the end of my report from the Kubuntu Developers Summit, see you later folks!
The Ubuntu Developers Summit is taking place near Paris since yesterday. I arrived in the hotel on sunday with two Canonical employees who work on Malone (afaik). They were quite friendly and we chatted a bit during sunday afternoon.
People came one by one, and we started to team up. I was glad to meet Jonathan Riddell once again, we shared some fun in a bumper car as one of his photos prove it. It was really nice to go into one of those after so many years, I was like a child for a moment. Thank you for this Jonathan! ;-)
During dinner we had the opportunity to wish Aaron a happy birthday, I hope it was a nice evening for him even if he was away from his home for this important day.
On monday, we had an introduction session. And then the BoF themselves... almost no kubuntu BoF were scheduled, so I attended other topics of interest, some of the discussions were really great. The idea of using TeamSpeak to allow people to virtually attend the submit is nice in theory, but proven to be difficult in practice (it tends to work badly on some computers, some people are missing headset, etc.). We'd surely need something to replace it.
Today, started a bit similarly to monday... A short introduction, and not many Kubuntu or KDE related BoF scheduled. It's a bit unfortunate, but the KDE and Kubuntu people there decided to start to work on some of our topics today trying to fit in each others schedule. It was definitely the way to go, we've been really productive. At the moment sebas is even working on a prototype addressing the power management spec. "Strangely" we didn't see Aaron much today... too much beer yesterday night? ;-)
It's really a nice start for this summit, I'm looking forward to the next few days. We still have quite a few topics to address, but if we keep the productivity as high as today, I'm confident that we'll finish in time.
Last but not least, I'd like to thanks again the Canonical crew and Mark Shuttleworth for the nice organization and the invitation, that's really appreciated.
This week has also been interesting on the Solid front. The API is slowly improving (because of my limited spare time). And the day when we'll have all the necessary classes and methods to port kio_media on Solid will surely come soon.
I'm currently implementing capabilities support, my primary targets are of course the ones necessary to manage media. Hence why storage and volume capabilities are half done. Even mount, unmount and eject support are there.
As expected, I'm focusing on the HAL backend, which had an interesting side-effect. This backend make an extensive use of our upcoming DBUS binding and then strengthen it by providing uses cases. For sure, it's for the better and Thiago is really helpful in this area, I'm glad he maintains those bindings.
And before I forget, I'd like to point something new under the Solid umbrella : solidshell. This new tool will allow to the most important features of the framework from the command line. It already allows to list devices and to display their properties. Mount, unmount and eject are also provided.
During the following days/weeks I'll focus on polishing what is currently there. After this (hopefully short) phase I'll introduce more features again.
Past week I've done some KDE promotion. It was interesting because I did this using two radically different methods.
On monday and tuesday, I gave two talks in my university about Qt and KDE as a development platform. I gave Kubuntu CDs to the students and since they are in computer engineering they'll hopefully install it. It seems that they enjoyed the topic. They started to wonder why they had to suffer with other non-free toolkits when I showcased Qt and QtDesigner. Then they were impressed about the niceties provided by kdecore, kdeui, and DCOP. After that, I explained them how to use the KParts and their jaw dropped when I showcased the small browser George Staikos wrote for OSDW. And finally having network transparency in their applications using KIO finished to convince them. I also took some time to present what will hopefully be in KDE4
The result? Several amazed students, that will surely want to experiment with Qt and KDE in the future. It even looks like some of them are really hooked and I had the opportunity to discuss more with them on friday answering some late questions.
On saturday, I participated in an event organized by Toulibre. I showcased a laptop running Kubuntu, there was also some boxes running Ubuntu. A talk took place, but I didn't attend since I was involved in the booth with the rest of the team. People were really interested in the topic and we even had a journalist from the local press that came and asked questions for a paper. I think we were all impressed by the age diversity of the attendees (the youngest was under 10 and the oldest surely over 70). I find nice to be able to propose KDE to people that could be your grandparents for their daily use.
Really a nice week, I'd love to have more occasions to do this kind of things... I'll surely try to invest more of my spare time for promotion.
As the design and the code is slowly shaping up in KDE's repository, I'm in the mood to make some noise. Yes, KDE 4 will have yet another brand new framework: Solid. After Plasma and Oxygen that will deal with fluidity on the desktop, we're focusing on another state of matter because in the end we have real devices to interact with.
Solid will be a way to finally make the hardware and desktop applications work better together. First, it'll be a middleware KDE applications will be able to use in order to discover devices or networks available to the system. Second, it'll deliver a Plasma engine, to easier desktop applets creation. Third, it'll provide a knowledge base to add and consult devices behavior reports. I think this last point will be interesting in the long run, it'll be another way for the users to be involved by updating it.
What will this all mean to the average user? A desktop that is more robust and does more with the devices available. It'll also mean an easier access to hardware features. Most of those changes will be under the hood, but we expect some pretty neat new applications and applets using them.
And, what will this all mean to the developer? It means that the features provided by different platform will be streamlined while portability is kept by implementing Solid backends (currently only two backends are provided a HAL one, and a fake one allowing unit tests). It also means that all the building blocks to deal with the hardware will be at hand, they just need to be used.
A new website is around for this framework, it looks similar to the Plasma website and that's perfectly intended since I consider both to be complementary. They are the pieces of a same puzzle, and I'll do my best to see them fit together perfectly.
Speaking of Plasma, it leads me to beauty. In this area pinheiro strikes again since he designed the Solid logo. Moreover, the Oxygen crew provided us two brand new (and not seen before!) icons used on our website. Thanks a lot to our artists! They do a marvelous job!
And Happy New Year Everybody!
For the last day in Boston, I managed to walk a bit around before going to the airport, it was pleasant. Moreover I managed to buy postcard... but not stamps. The only place I've found stamps I needed to use a machine and I didn't figure out how to use it. So I'll deliver my postcards by hand it seems. :-)
In the airport I noticed that the booked Paris/Toulouse flight was planned for Paris Orly, while I was supposed to arrive in Paris CDG... hmm changing airport, lot of trouble ahead. Luckily the Air France crew in the Boston airport was kind enough to modify my ticket in order to get my connection in CDG, which doesn't mean "no trouble" either since CDG is really messy. Here what happened. My plane landed in the terminal 2F but we didn't have the right to go in 2F ourselves, so we had to take a bus to go in 2C (still following?). But (and that's where it starts to be ridiculous), when I arrived in 2C I had to take yet another bus since I was supposed to check-in my Paris/Toulouse flight in 2F... that's sick. In particular when you have only 30 minutes between the two flights. But, I don't care anymore I'm finally home!
Now it's time to relax a bit, before going back to work tomorrow. I'm also happy to see that some of my feelings about the discussions I had during the Gnome Summit are shared. It was definitely worth it, thanks again to all the people involved!
Today is my last day in Boston. I'll take my flight back to France in a few hours. I'm taking my time, relaxing a bit before I take my plane. I'll surely go to the airport early and try to buy postcards from there... I didn't manage to find an open postoffice, since it's the Thanksgiving week-end, lot of shops are closed.
This week-end was really nice, attending this summit was really a great opportunity. I've been well accepted there, we had fruitful discussions, and I hope it'll be the beginning of a better collaboration between KDE and Gnome in some important areas. We can definitely do a lot of interesting things and push the UNIX desktop at another level. It could become the only platform I know proposing two different desktops (in philosophy, etc.) while keeping consistency when it makes sense with shared frameworks under the hood. Of course, it'll be a permanent trade-off to also keep diversity, and we'll have to make compromises in order to make everybody happy... interesting times.
Finally, the funny thing is that I more or less discovered two cultures this week-end, the american culture and the Gnome hacker culture. Yes, they have a different culture in their own community, and that's perfectly fine: diversity. I like to go in another country and discover some different habits, way of thinking, etc. I had this exact same feeling with the fellow Gnome hackers. Of course, I'm also happy to go back home, both in my country and in the KDE community. ;-)
Now, it's time for me to move on, I'll take a breakfast/lunch in one or two hours, and then try to find my way to the airport. I'll surely won't blog before I get home. See you later all!
This morning I woke up early, even if I get back to the hotel a bit late yesterday. We had dinner in the Cambridge Brewing Company yesterday night... It's really an interesting concept, this bar/restaurant does its own beer! It's really a nice restaurant... and of course a loooot of beer has been drunk at my table. Since most of the people I had dinner with arrived a bit late today, I suppose it was a bit hard for them to wake up. :-)
Finally, this morning we basically waited for people to arrive. Once again I was the first one in the Stata Center, changing timezone has some advantages after all, so I used some of my time putting together slides about my views on the current status of FreeDesktop.org and how we could improve some things. Of course, I know some of my positions might not be shared, but I consider that it's a nice way to try to present the "fd.o perception from the random KDE guy" now that I met some Gnome hackers.
I attended the DBUS BoF, it was interesting. It was the last BoF before lunch, so I jumped out of the room and fought again for pizza, another round of free food!
After lunch, we took some time with David Zeuthen and John Palmieri to discuss about HAL, NetworkManager, DBUS, etc. It opened some interesting opportunities for collaborating. I'm confident it'll give some interesting results, some things are already in the pipe. I gave to David my slides about FreeDesktop, it could be the start of a broader thinking about FreeDesktop to go toward improvements.
It looks like we'll sooner or later prove that we can get really good relationships between Gnome and KDE and share when it makes sense.
Woke up early this morning, so I started looking at my mails. And then prepared to go out. I decided to not take my breakfast in the hotel (don't ask me why... I was just tempted by taking a "pedestrian breakfast". I walked down the street in the general direction for the subway station. Explored a bit the streets around, and found a place to buy a breakfast, took a "small" hot chocolate (and they're not joking since I burnt my mouth) and a muffin... The chocolate was far enough for me (and they call this "small"!), the muffin was big. Everything is larger here, cars are larger, street are largers, train are larger... I'm not a tall guy, and I feel even smaller here. =)
Took my breakfast under the rain, next to a tree (in order to protect myself) in a park near my hotel. And then took the subway, it went almost smoothly (had some difficulties finding the right track in the station) and reached the MIT Stata Center easily... but, very early! I was there at 8am (but the event starts at 9am). I helped some people around to prepare stuff for the attendance, and people where slowly coming.
I chatted a bit with people around they generally look amazed when I tell them that I'm a KDE developer ("what the hell is he doing here?") but that's well accepted of course, they are friendly. I feel like a diplomat, I've already some possibilities for cooperation between both projects through books ideas someone raised to me. I have to admit that it's really tempting... some topics we could cover would be interesting.
My diplomat role became even more "official" during the presentation session, during this session everybody had to introduce themselves. I then stated that I was basically here to improve collaboration and sharing in my own area (hardware discovery and interaction) but that if some Gnome developers wanted to point some other area where we could do better, they just have to ask me and then I'll take the time to push the information to the right persons in the KDE community. Ok, we have the FreeDesktop but most Gnome people don't know KDE people working in the same topics (and vice versa).
For lunch, we had loooot of pizza sponsored by IBM. Very good idea, free geek food!
I contacted David Zeuthen already, he's really friendly and passionated about his work. I'm sure it'll be really a pleasure to work more with him in the future. Because of the small discussions we had with him and some other people working on DBUS or HAL, we'll surely have a BOF about FreeDesktop tomorrow.
This evening I'll surely go to dinner with other people that expressed an interest in improving the collaboration between both projects. It'll surely be interesting. Overall, I'm really happy to be here, doing all that. :-)
Today started with a call from Air France informing me that my flight from Toulouse to Paris CDG had been cancelled. Grrreat! Initially they only proposed me to take another flight going to Paris Orly (which means troubles to get to Paris CDG) or to reschedule for tomorrow (which is plain stupid when you have just two days). I told them I need some time to think about it (and take a shower and shave...). They finally called me back again proposing another flight going to CDG directly... but I had only 45 minutes to reach the airport and check-in. Which meant no breakfast... and possibly troubles for going from home to the airport. But thanks to E. (a fellow PhD student) who kindly proposed to take me to the airport I was in time!
And that was the start of a looooong day... since I got to CDG earlier than expected I waited more hours before taking my flight to Boston. I was wondering if the situation was about to get worse to the point where I would actually live in CDG (something similar to Tom Hanks situation in The Terminal). :-)
The flight went well, lot of time... reading, watching movies, "eating" in the plane, and finally we landed! Some formality with the border... which looks impressive to me. I mean they took my fingerprints, and a picture of me. As if the passport wasn't enough... weird.
The last step was to reach the hotel, I took a courtesy bus and surprise the driver was speaking french almost fluently. :-)
So now, I'm writing this from the hotel, using the free wifi network. It's really terrific, this is the best hotel I have ever seen! I had almost the feeling that I landed in another planet when I entered it. It looks a bit retro, that's really a nice touch. I definitely like it.
Ok, time to sleep now... otherwise it'll be difficult to be productive.
Yes, I'll obviously attend this year Gnome Summit. I expect this to be very interesting, I'm planning to meet at least a part of the HAL crew... I'll surely learn a lot of things which is always a good thing. I'm looking forward to meet clee again, I just hope I'll interact more with him this time (we didn't succeed during Malaga, shame).
I'll take my flight tomorrow around noon. I hope I won't be too tired when I'll land there. I just need to finish to pack my stuff, I'm almost done.
That's really a great opportunity, I'm really feeling a lot of gratitude for Waldo and the persons at Intel involved in this trip. It would have been impossible to make it without this Intel sponsoring.
Don't worry guys... That's exactly on my TODO, my productivity dropped recently due to personal constraints which don't mix well with working on this in my spare time, but the new Hardware Discovery Layer I'm working on (planned to be available with KDE 4) will cover this issue, dealing with specialized daemons like HAL or NetworkManager when appropriate.
While discussing some Plasma related stuff with Aaron, I raised some concerns about the name "plasmoid" used for Plasma applets:
[00:04:54] <ervin> well that's just another name for "plasma
[00:05:05] <ervin> 'plasmets' :D
[00:05:09] <aseigo> plaslets?
[00:05:10] <aseigo> ahaha
[00:05:23] <aseigo> GET OUT OF MY HEAD! ;)
[00:05:25] <ervin> stop reading my mind :p
[00:05:30] <aseigo> rofl
[00:05:32] <ervin> 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...
This time it's really finished. I'm back home. This year aKademy was great.
Today, I've not done much apart from travelling. I didn't loose my luggage. Everything went well until I arrived Paris. My flight has been delayed for more than a hour, and the weather was so bad in Toulouse that the plane couldn't land at the first try! But well, the pilot managed to keep us safe. =)
A lovely woman was waiting for me at the arrival (almost two hours late), that's really nice to be back.
Yesterday night we had a beach party with a kind of barbecue (something typical in the area). The only problem from me is that they cooked only sardines this way, but there was more food so it wasn't a real issue.
During the event, people quickly started to walk around. The place was really nice. We've seen KDE hackers swimming in the sea by night while a few others were playing freesbee on the beach (by night!?). Around midnight a show made by a school of Flamenco started. It was really a great moment, this dance is really a beautiful one in my opinion. I really enjoyed this show.
And finally, we waited for the bus to arrive and bring us back home. We were near a small restaurant, and of course, a few KDE hackers (no I won't disclose the names :-p) were trying to hit on two or three women that were there. They obviously faced a conflict of resources, because well... women attract geeks, and they were quickly surrounded by ten, or twelve persons. =)
Today, I plan to keep hacking a bit... I don't know how much time I'll be able to access the net, we'll see. Anyway I'll surely do only small things, I'll still be able to commit from home if needed.
I'm becoming really impatient to come back home. I feel the need to see my girlfriend. This feeling was present when I left home, and grew quickly during the conference. I'll see her tomorrow in Toulouse airport when I arrive. I need to speak with her, take her hand, etc. I'm addicted to her.
Enough for today, next time I'll blog from my home.
Yesterday night I discussed with David a lot, the scope was large and we even ended up discussing about time travelling. Was interesting, but we decided that 1:30am wasn't the right time to discuss such thing and we should better go to sleep.
I woke up a bit late because of this, but I managed to be in time for the KOffice meeting. It was insightful about the current state of the project. There's not many contributors, so if you're searching for a project where you could contribute : WE NEED YOU FOR KOFFICE!
Some people left today, there's obviously less people in the computer labs already. But, it doesn't stop us to work on KDE! Today was very productive (attending no meeting helps).
I finished a thin layer around HAL which will be the backend for a new hardware discovery layer in KDE. It's works nicely already. Using this small wrapper you can already list hardware with a very few lines of code. I'll now build a full featured API on top of this to be able to do more complex manipulations in applications.
Since I needed a break on this kind of work I started to work again on my (almost) secret project... It's something GUI based for a change, and I plan to make it as reusable as possible, I don't know if I'll be able to have something interesting before the end of aKademy. But I'll continue to work on it after aKademy, I'll blog again as soon as I have something demoable.
I'll soon go back to the residence to have some food, and maybe some sleep (except if I continue hacking from there).
This morning was really nice, we had a touristic visit of the old city center. First, we visited the Cathedral of Malaga which is really huuuge, and has nice pictures and organs. Then, we have a look at the "Teatro romano". And finally, we visited the Alcazaba which is a very old fortress, it was really a nice and beautiful place. The guide was interesting, giving a lot of insightful details and speaking a fluent english.
For this afternoon the plan is basically to hack as much as possible, no meeting. And this evening I'll surely team up with some people to by food in a supermarket nearby the residence, I just have to not forget to prepare everything I need to hack from the residence, since we have no Internet access from there.
Not much more today, see you tomorrow!
Yesterday (D+5) was the meeting day for me. Or at least I tried since the first BoF about Plasma has been cancelled... Aaron didn't show up.
In the afternoon, Zack made his talk and showed a demo... it was really cool eye candy, now we have to make a wise use of this, to improve the beauty of our desktop while having usability in mind. After this talk, I attended the build system meeting. The choice has been made to switch to scons+bksys, we're aiming for a smooth transition of course. And people involvement will be an important factor for the success of this transition.
After the end of the meetings, we ended up in a restaurant in the city center... I was quite nice actually but a bit costly in my opinion. When we got back I turned on the computer to finish some experiments I hacked during the day (between the meetings obviously) since something wasn't working... I ended up debugging the code in one of the library I use and found the bug! Now I have a fix I have to push upstream, but it basically works. Once again, more on this later. ;-)
Ok, we were heading for dinner with a small gang, when someone proposed to go in near the beach in "the best tapas restaurant of Malaga", which sounded like a very good idea after yesterday dinner. So, we took a Taxi... well in fact the group growed suddenly so much that we took three cabs to reach the restaurant.
After searching a bit we finally found the restaurant... which was in fact... a fish restaurant. Unfortunately I hate fish but well there was also some meat available so I managed to eat something. In order to get the things worse, the place was overpriced. And finally, since it was near the beach (which is well known to attract tourists), we had the pleasure to see several people coming in trying to sell random things (including awful flowers) or singing. I admit there was a nice Jazz band though.
Since a subgroup of the restaurant was tiread, or upset by all this tourists stuff, we decided to go back to the residence... So this time I go to sleep, one hour earlier, which is clearly a record since the start of the week!
Ok, here we go again... I woke up early to attend talks, but didn't manage to go to sleep early. =)
I ended up in a local restaurant with a gang of fellow hackers, including coolo, David, and Peter. The food was quite nice... except maybe one dish, it seems I was the only one able to eat it, but since I didn't like it I ended up quickly. We got back to the computer labs and stayed here until the aKademy team asked us to go back to the residence because well... they wanted to go back home and have some sleep. ;-)
Marketing For Geeks
The first t^Hshow was about marketing as the text implies. The speakers were Waldo Bastian, and Aaron "ola!" Seigo. It covered some simple things we can do at our level and with the available tools. It was really an awesome talk! I hope that it'll make some of us think more about our own behavior when we communicate with people. That's really a shame that we make such great software, but that nobody knows about it. Yes, you've read it : nobody. Mostly, only geeks know about it, that's a fact, we're really a tiny percentage of the desktop market. But if we think about it, talk about what we do to people, it'll spread!
The State of KDE Bindings
I had a nice insight about the KDE Bindings thanks to Richard Dale. It was really interesting and exposed some misconceptions we could have about binding development. There's still some points where you have to be careful like instance ownership (in order to get memory management right) or the differences on features between the source and target languages. He gave some examples based on Ruby... it's really temptin for me to learn this language.
Collaborative content for the masses
This one was about Wikipedia, it was really interesting to know how the project has been created, how it is evolving, which are their future challenges, etc. Nice talk, I'm really looking forward for widespread Wikipedia use in KDE.
Novell Desktop Migration Study
I found this talk far more interesting than the previous one on the topic. We had a real explanation about the methodology used to evaluate the product. It gave some hints on how to build your own portable lab to make such studies. We would really need small local teams with portable labs like this one to collect usability data about our software. That's would be really interesting.
Too bad that this study is a bit old now, it was using a now outdated Suse distro with only KDE 3.2 on it, but well we've made some important changes concerning usability since then.
That's the last talk I attended, and it's the last talk of the Developers Conference. It really looks like a great icon project it has a really refreshing and professional look, without looking boring! But well, I'd prefer to not explain this with too many details since it's surely better to be sure that it'll still be fresh when it'll be released (hopefully with KDE 4).
After all those talks I attended the kdelibs/kdebase structure BoF. As Danimo already explained, we'll surely have a new foundation stack, which basically means that we'll have an even better framework. One of the goals being to make it easier for people to grasp the API for contributing or ISV developments. Of course a transition strategy has also been discussed in order to make all of this work as smooth as possible.
Of course... I'm still planning to go to sleep early today, but I still need to go for dinner! That's all folks.
Today is the first day of the developers conference, I had hard time to wake up at 7am since I stayed awake discussing with a bunch of hacker until 1:30am... Aaron was there, which is good news, I was wondering if he was trying to join the ocean swimming with migrating turtles or some other weirdness. Well, anyway I managed to wake up and attend lot of talks...
Just like last year the speaker was Eirik Chambe-Eng. He covered what happened within Trolltech since last year, and in particular the fact that Qt4 is out, and GPL on Windows. I'm still thinking that he's a quite good speaker! It's informative, but he has really good ideas to make his talks entertaining which is a very good thing. Thanks to him, we've seen some great photos of Matthias Ettrich. :-)
Multimedia API for KDE 4
Nice talk about the new KDEMM, which needs a new name obviously. I liked this talk, it was well structured, and has really good ideas, in particular the fact to have several backends available (aRTs, gstreamer, NMM, etc.). It's clearly not targetting pro-audio, which surely requires a tight coupling to a particular framework for performances anyway. Here it's more about having a nice API, easy to use for multimedia applications (jukebox, video players, etc.). Moreover it's really planned to hide the tedious work to the user, and autodetect or auto-configure for him as much as possible. Finally, it seems that the NMM backend will have a separate GUI application to allow using it's more advanced feature (since it's a fully network enabled multimedia framework, I've been really impressed last year by the NMM guys talk!).
Asynchronous Programming with Qt - Pitfalls and Techniques
This talk was very interesting, and obviously very technical. It gives some insight on how to design asynchronous API, and which points are proven to be difficult while building this kind of API. Liked it, Till and David really master their subject.
Multithreading in Desktop Applications
It was nice, to have this one grouped with the asynchronous programming one. It gives another aspect on how responsiveness can be achieved, but through the use of thread. Mirko even introduced the ThreadWeaver API, which looks like something very convenient to use.
Beauty and magic for KDE developers (to be continued)
We can't go to eat to the cafeteria anymore it seems, so we have to walk outside the University to find a restaurant... walking under the sun. I teamed up with Kalle, Till, David and Peter for lunch. We basically followed Kalle who knows the general direction to find restaurants... and we found one. It was nice, not very costly but we waited a looooot before being able to eat. Then, I was a bit in a hurry to go back to the university to attend the talk. We arrived very late, but unfortunately (or fortunately, depends on the point of view) this talk didn't happen because Zack had some issues with his laptop, which really sucks. But on the bright side it has been reschedule, so hopefully it'll take place! I'm prepared to attend!
Aaron's School of Designer
It was basically a tutorial about Qt Designer 4. It was nice to have some insight about some of the changes. Looks like it improved a lot, I'm looking forward to using it... which might not happen soon since I'm currently not heading at GUI development. =)
M.2, a generic management / deployment / monitoring framework
I admit that I've been a bit disappointed by this one. But, to be fair, I guess that the timing was bad, the project is really too young. The presentation by itself surely lacked a state of the art part, since it wasn't referring to any other similar framework. I was hoping for some demo of the communication layer... too bad.
Since it was extremely short, I ran to another talk that was taking place in parallel...
Not much to say about this one, since I missed the beginning, but this looks like a nice and flexible API to handle text. As David pointed out it might miss some features for style handling though...
That's all for today, I'll surely try to go to sleep "early" today, since I don't want to be sleepy at tomorrow talks. I have to hunt for food first though! ;-)
Today I attended some interesting talks, but they were obviously less user or sysadmin oriented.
TaskJuggler : A KDE Project Management Software
This one was very interesting. I'm really looking forward to this project, looks like a very mature solution for project management. It has some very neat features like the ability to manage several related projects at the same time keeping track of subprojects for synchronization, etc. It can of course generate reports, and it has even the ability to generate iCal calendars for publishing (which is neat to distribute tasks to people).
The model used is really clean in my opinion. I'm wondering if it would benefit on some more higher level concepts as what we can find in process engineering (maybe it's already doable, I don't know) if not it could be very interesting to have TaskJuggler as a APES target. I'll have to discuss a bit about this with Chris Schläger I guess.
Next speaker was Eva... who obviously had a hard time recovering from yesterday party. =)
Even if the talk was a bit slow it was really interesting and well structured. They're basically working on a framework for computer telephony. I'm really looking forward to it.
Firefox port to KDE
Not much news there in my opinion. Basically, Konqueror can embed Gecko thanks to a KPart, there's a Firefox port using KDE technologies that is in progress. To be fair, even if the talk wasn't very informative, the project looks interesting, and it nicely illustrate that KDE is flexible enough to act as a truely integrative desktop.
The present and future of PIM synchronisation on the KDE desktop
Not much to say here since the talk was cancelled! Maybe the speaker couldn't recover from the party... :-)
Cute, Embedded, Linux
Matthias Welwarsky from Archos SA gave us some insights from the PMA400 which is basically a music and video player, a webpad, a video recorder, a photo wallet and a PDA in only one device! It really looks nifty but as far as I know it's costly. The content of the talk was really interesting, explaining some design choices.
Before the last talk I attended, the merchandising booth opened for the first time since the beginning of the conference! There was some pressure because it was well known that there's not many konqis this year. On my side, I had the goal to buy two of them, since my father was jealous from the one I got last year, and one of my friends requested one. Unfortunately, Helio "The flying hacker" Castro managed to be faster than me and bought two of them! But luckily I bought the last one! Obviously this one will go to my father. I also took a T-shirt from the conference for me.
And finally, I attended the key signing party. It was an entertaining moment just like last year. And it's finally a good way to meet some people I missed. This year I managed to get some more KDE core developers signatures to my collection, I now have Stephan Kulow himself in my keyring. :-)
Finally I didn't go to the sponsored party this night. I wasn't really motivated by clubbing. David wasn't either, hence why we got back to the residence together. While walking we discussed some AI technical points and we ended up sitting at the residence discussing KIO future. Some of the ideas are very interesting in my humble opinion... I'm looking forward to have them implemented. Maybe more on this later, it's lunch time!
First of all, for people complaining about the content... In the first two day it's the Users and Administrators Conference. So well, it's not that shocking if it's not really hacker oriented. Now, here are my impressions :
Keeping in mind that it's targetted for users interested in KDE (at least I hope so) it's indeed strange to see someone coming and explaining they use no KDE application for the major tasks (mail, browsing, etc.) except Kopete...
Kolab - Groupware the KDE way
Nice talk about Kolab, this one was clearly for sysadmins, so we had some technical insights about how it works. Till seems to be a very good speaker, liked his style.
I admit that I didn't followed this one very closely (shame), since I was chatting a bit with David Faure about some KIO related stuffs.
Deploying KDE Using The Kiosk Framework
Another one targeted to sysadmins in my opinion. Very good talk, raising the right points, answering the right question. Presenting the context of a successful deployment using Kiosk. Well done Aaron!
Ubuntu and Kubuntu
Clearly a misleading title... It was more about cooperation across opensource projects, and even more specifically between upstream and distro makers. Oh, and well Mark Shuttleworth is the first space tourist in case you was still not aware of this...
Linux migration success stories with KDE and NX
Another talk with misleading content, but with a very interesting content. Instead of real success stories (I was expecting enterprise deployments or something similar), we had a talk about NX itself, it's current state and how to test it. Too bad the talk by itself was lacking some polishing in my humble opinion.
Anyway, I'm really glad to see that NX is making its way. Maybe it's a bit slow since most of what has been presented was already reality last year, but it's really taking shape now with more features. As Kurt hinted we still badly miss a free (as in speech) client. Too bad that it's used a lot now so changing would be difficult, but I still think that the name of this is not fortunate. "NX" is quite cryptic to most users, they surely don't even care that it's related to X... that lacks sexiness.
After this one, I didn't attend anything because of a headache... Too bad, I wanted to at least attend the Scripts with KDE feel talk. I'm looking forward to tomorrow talk... But well it seems that we have a party sponsored by Novell this night (thanks a lot for this) so I guess it'll be hard to wake up. =)
For the second time in my life have been interviewed... It's part of the People Behind KDE serie. Thanks a lot to fab for his patience, since well I'm not that cooperative with interviews. ;-)
So now you can read my People Behind KDE interview to know how lovely or mad (it's your choice) I am.
Ok, this time it's official I arrived Malaga. My plane was on time, and I've been able to take the shuttle as expected... but... alone. In fact it was not that clear that other people had to wait 11:20 before the shuttle arrive. In fact, it was even sligthly late I was afraid to have missed it. But no! It appeared! And I had a whole van to put my stuff in!
On the flight itself it was a nice experience. That's the first time I'm in a plane flying that high... well ok, I don't travel that often so it explains it was my first time. :-p
As usual I looked at the earth while the plane was taking off, it was as usual, the same good old colors I always see when I take a plane. I see those in France, but also last year when I travelled to the Stuttgart airport. I've been a bit bored after some time so I started to read a bit some stuff I found in the plane. After around an hour I looked again and was amazed! No more the usual colors! It was really really different mostly ochre, brown, sand. Even the rivers edges didn't look similar. Pretty impressive from the sky in my opinion.
And of course after all this goodness, I've been pleased to finally reach the residence, and start talking with fellow hackers!
Well, that's all for today. ;-) Tomorrow we'll have talks, so I'll surely blog more.
Ok, it seems that I'm ready for aKademy now. All my stuff is packed, the laptop I borrowed from the lab is ready for development. If everything goes well, I'll just have to reconfigure the wifi connection to be able to work. Immediately productive!
My flight is early tomorrow morning so it's my last minute online at home. When I'll be able to reconnect I'll be on site! I'm very excited...
The really nice thing is the shuttle service on arrival, that's a great idea! And I'll be able to finally meet İsmail Dönmez (cartman) in real life, he'll surely be one of the first persons I'll meet since we'll share the same shuttle. ;-)
See you all at Málaga!!!
Since I am the maintainer of some of them (system:/, media:/, home:/ and remote:/) and participated a bit in trash:/ development (which is maintained by David Faure), I think that I should explain some more what it is all about.
I disagree on the fact that people "don't get hierarchies". That's not that simple, they can deal with hierarchies if they don't become too complicated. If it's really deep that becomes a problem. That's just like lists, if the list is too long you easily get lost. On the other hand, I fully agree with the fact that "people doesn't understand other's people way of organizing things". But don't forget that those statements are particularly right for managing documents, in particular because a document can be placed in several categories.
For managing documents, it becomes clear that a system based only on hierarchies is not the best solution. That can be addressed using more complex systems based on search and concept tagging. Some of the most refined systems are still "research toys" (I'm even working on one of those "toys" for my PhD). But there's still hope, and we already have technology to improve things today, that's the Tenor path.
So why creating system:/?
Because the current UNIX hierarchy is not well suited for desktop users. Lot of its content is really cryptic and exists because it's necessary to make the system work. Finally that's just a low level concept from the user point of view. Then system:/ is here to hide this implementation detail.
Because, we had some ioslaves for a while partly helping with desktop tasks in a network enabled context : access the trash, access a medium (usb flash disk, camera, dvd, etc.) and access a remote share. All this is covered by ioslaves recently created, or existing for a while (audiocd:/, media:/, trash:/, remote:/, fish:/, ftp:/, etc.). Those ioslaves are great from a developer point of view because they lead to specialized components addressing one particular task. But they are not so great from the user point of view, because he has to know they exist in the first place, and he has to deal with URLs. Then system:/ is here to hide this implementation detail.
We don't want people to deal with complicated hierarchy, or to type URLs. So I introduced a new concept in the ioslave land : forwarding. This way we keep the technical advantage of those tiny specialized components, but in the end we can have the user dealing with only one ioslave allowing to work on desktop tasks. Other ioslaves like media:/, home:/, trash:/ are now helpers for the system:/ ioslave, users don't even need to know they exist.
In this case it becomes easy to avoid dealing with URLs, you just need a link to system:/ (and it's already available). We just have to make sure the system:/ hierarchy doesn't become too complicated. That's exactly why the entry list at the root of this hierarchy has been simplified for 3.5.
Now the user has system:/ which is a hierarchy suited for desktop tasks. One day, we'll surely go beyond hierarchies but that's not a reason to let current users with half-baked tools, that's exactly what I'm trying to change.
This time it's really over... I'm writing this from home. I'm a bit sad I'll miss you all! It was really great. My trip home was uneventful which is good news! My luggage has not been lost... pfew!
Just for fun I have used the qwertz mapping during aKademy... and now I need to re-learn the azerty keymap it seems. It's my typos day! =)
I'd like to thank the whole aKademy organization team! You've made a really great job for all of us. I'm sure it's really appreciated.
Ok, my "reportage" from aKademy is now over. My blogging rate will surely drop from now.
Ok, we already feel it's the end of aKademy here... less and less people hacking in the computer rooms. It's a bit sad, but it has to end anyway.
I unfortunately won't have time to hack today since I have to return the laptop I'm currently using. Moreover, I need to go back to the youth hostel this I won't be in the same room tonight. I'll find some more time for hacking when I'll get home.
On another note, Peter Rockai and myself have been interviewed this morning mainly to discuss our work on the Kalyxo project. It should be published on the dot later today. It's a bit strange for me to be interviewed... it's the first time I have to do this.
We're near the end of the aKademy... Tomorrow will be the last day. But today was quite interesting.
I woke up early because I had to be present for a talk... The talk I gave with Peter Rockai about the Kalyxo project. For my first talk in english it was not that bad. I was understandable. Maybe our talk was a bit too technical for a user conference... but since the project is still quite small we don't have final products to showcase yet. Anyway, some people expressed interest after we gave our talk, it's a nice feeling.
Then I attended some other talks. The first one about Kommander was interesting, it really seems to be a nice glue technology and I'll look more closely at it for prototyping tasks. Then, Jonathan Riddell's talk about Umbrello was interesting too... maybe a bit too UML centric, but it's nice to see someone working on this. From what I've seen it made huge progress.
I'm working with David Faure on the trash:/ ioslave. It's very interesting and I try to learn some of the KIO black magic he knows. This is an interesting piece of code to work on. Moreover David is really friendly and patient... I appreciate to work with him a lot.
Argh! I still have to sort out some of the design thoughts I have for the new devices:/ ioslave... I need to find some time to have this on paper and discuss it with the relevant persons.
Today, I managed to arrive at 11:00 to the aKademy... I slept enough for this night at least. I'd like to do the same this night, but... since I have a talk at 10:30, so it's not advised to arrive at 11:00
So the working day was short... I discussed with David Faure a lot in fact. Mostly of hacking kioslaves for the purpose of the devices:/ ioslave. At one point we became slightly off-topic since we share some cultural background.
I started to help David on the future trash:/ ioslave (a least I try). It's a good thing to address this, because the current trashcan implementation is not that fortunate. I'm pretty confident that this ioslave will improve things a lot for the user.
This blog entry is quite short today... But there's not much more to say this time. ;-)
Today I was not able to find time to hack on anything... Too many Bird of Feather sessions I had to attend.
Started with the KDE 3.4 vs 4.0 meeting... It was quite interesting in my opinion to see the developers not speaking only about coding but also about processes management. Some people I know should really see this because they still believe that free software hackers are basically people spending there coding like monkeys (should I had they are not part of my friends?). Nothing is official yet, so I won't tell what the result is (or if there's a result)... but anyway I'm pretty excited to see a new release cycle starting, and lot of great stuffs will happen.
After lunch, I attended the NX BoF... The topic was really interesting. I really appreciated Aaron Seigo plans for this technology, and Matthias Ettrich point of view about it. They are really clever... and I have a strange shy feeling in their presence. I know it's stupid, and they don't act as if I had to be inferior or something like this. Strange...
Finally, the KDE Debian Integration BoF started. I was co-chairman with Peter Rockai. I have to admit that I'm a bit disappointed. We surely could do better and we maybe managed to be boring actually. But, we had some interesting input from some of the attendees... so it's not that bad.
Because of yesterday coding marathon I only woke up at 11:00 today... So it's now official, I went to aKademy very interested by the usability talks and discussions and managed to miss everything except Aaron's talk. It's really a pity. Anyway I hope that those discussions will lead us to a well organized cooperation with real usability expert. We need to find our own process to handle usability aspects in open source software.
Apart from this major failure, I attended the KDE Quality Team BoF. I'm not really a PR skilled person, but the discussions were interesting. An idea was even given by mornfall to allow user to propose "What's This" texts when they are missing. He started to implement it this evening, and it's shaping really well.
On the hacking front, I finished the first stage of my work on the devices:/ ioslave. You can now give more convenient name to your devices. But the whole code is a bit old and difficult to extend, so we'll discuss the new architecture until the end of the week. The new implementation will be done after aKademy.
Now, I'm going to find something else to hack, like helping mornfall on his current work, code for Kivio or maybe help David Faure a bit on the upcoming trash:/ ioslave.
So, yesterday was the first day for the coding marathon. I have not many things to add... I was so tired when I finished that I didn't want to blog at all.
One particular event, except from the coding, was the PGP Key Signing party... really a game for geeks. You make a little dance around a room, showing you ID card and your key fingerprint. Of course most of the people laugh at your photo ID.
Of course, because of yesterday, I managed to get up too late to attend the first talk of the day about usability. But I was here to listen to Aaron Seigo's talk... very interesting!
Today, some coding again. I'm working on the devices:/ kioslave. At this rate I hope to implement the planned features before the end of this week.
Another "got up early" day... even harder than the previous one since I slept less! But again a lot of very good talks! It begun with three talks about different pros and cons : MAS, GStreamer and NMM.
Firstly, MAS is interesting but is really specialized to audio... It's fun to see it in action controlling audio playback on another computer. It seems well adapted to the LTSP project for example.
Then we had a talk about GStreamer with Scott Wheeler (without the technical problems of the first day... which was quite fortunate for him) and Christian Schiller. What is really neat about this project is that it's able to run on embedded systems. More over they try to promote free multimedia formats which is always a good thing. The only concern I see is about binary compatibility... it is widely used in Gnome, and if it's adopted for KDE4 they'll surely have trouble to cope up with the release cycles of both projects. In particular, KDE4 would require at least a 2 year period of binary compatibility. I'm very confident that they're motivated to achieve this and the framework itself is already used in JuK and amaroK.
The last talk before lunch was about NMM. It's a research project trying to become and OpenSource project... it's in my opinion a very difficult task. But, from what I've seen I wish they'll succeed. It's truly amazing! They made some demos... the first ones were simple, playing some audio and video files. Then they showcased the NMM backend they're working on for amaroK... which can play video files out of the box (this feature is not currently supported by the official amaroK backends). And finally, they showed us how they can start playing a DVD on a laptop, then grab an old PDA and ask it to hand over the laptop to play the DVD too. Everything went smoothly, the video was automagically downscaled for the PDA and you could control the playback from the PDA or the laptop. Really amazing!
This last framework is really my preferred one. It's maybe a little more complex than GStreamer or MAS but so much more powerful and versatile. Some people would surely advocate that's overkill for a desktop computer... and they're right of course, but somewhat miss the point in my humble opinion. You must look at the whole picture and it's not simply desktop computing... we have more and more devices able to play media files. This framework can really break the frontiers and is a little step toward pervasive computing (also called ubiquitous computing).
After lunch, I attended the the Lars Knoll's talk about Unicode in Qt4. It was quite interesting, especially because it showed some problem you can have as soon as you deal with several kind of languages.
I attended to Brad Hards talk. I was a bit sad to see him disappointed after this talk. He said in his blog entry that his skills for talk are not good... I believe that he is wrong on this point. The problem actually was an unfortunate scheduling. This talk was clearly made for people starting to work on KDE development... it was not the case of the audience. This talk would really have its place during the userconf... and I'd really like to see it rescheduled there.
So Brad, if you read this, please don't be disappointed! It was really a hard task and as I said it was primarily a schedule issue. Maybe add some more fancy stuff in your slides and see if you can be rescheduled during the userconf, I'm pretty sure it would work much better!
The conference day ended with two very Qt centric talks. The first about the Model/View framework in Qt4 which seems to be quite nice and flexible. And fortunately, they didn't fall in what I'd call the "swing trap" to use the MVC pattern for every widget under the sun. They applied this to the widgets only needing it list views, tree views and table views. The second one presented some trick and trips to go even further with Qt. It was interesting to see for example how powerful event filtering can be when mastered correctly.
In order to prepare the imminent hackfest, I finally managed to have root access on the laptop! So I had the great pleasure to recompile kdelibs and kdebase using icecream... it's really fun and fast. I guess I'm now ready, but I really need to sleep first, I'm tired... and planning to get up late tomorrow.
I woke up early today... very tired... I admit that I didn't sleep well last night. The Kaesespaetzle was quite good, but managed to make me feel sick during the night.
That's why I was very very slow... I met Aaron Seigo upstairs and I bet that he wondered who was this guy not even able to understand a simple english sentence (I finally understood on the second or third try). The breakfast was quite nice and in the same fashion : slow and lazy.
Then it was time to walk to aKademy for the first talk by Eirik Chambe-Eng one of the two Trolltech founders. It was really nice and informative. Last but not least there was a lot of humour in his talk which is always a very good thing.
The second talk I attended was about the areas of KDE which would need the use of meta-data and research centric UI. The talker was Scott Wheeler who unfortunately experienced a lot of technical issues while presenting. But, he was good enough to keep the talk very informative...
Then I attended to a talk by Gustavo Boiko and Helio Chissini de Castro. They propose a way to share some code snippets inside the project to avoid duplication even more. It sounds like a good idea indeed... but it quite difficult to do it right in my opinion. This idea surely needs to be a little more refined but can turn into something really nice.
I unfortunately missed the Harri Porten's talk I planned to attend... I was a bit late lunching and chasing for a lent laptop to be able to work since I don't have one.
I've then made a hard choice and attended to Matthias Ettrich's talk... but I'd like to attend Kurt Pfeifle's talk about NX.
Matthias Ettrich's talk about APIs designing was really good! This guy is really clever and master his subject... There was so many things to say that he was not able to present everything. He's planning to write an article on the subject, and I'm really impatient to be able to read this!
Then I missed Tom Chance's talk about the Quality Teams because I was gently discussing with Eva Bruscheifer, Peter Rockai, and two person working on the Skolelinux project : Bart Cornelis and Kurt Gramlich. We'll see them again during the coding marathon for the KDE Debian Integration meeting.
The last talk for today was about freedesktop.org, Daniel Stone inherited this task... which resulted in some harsh considerations. I have to admit that I'm sometimes worried when I see how the things evolves, but the goal they support is quite valuable and more KDE participation would a good way to improve things. It's just like any other project after all... its global behavior is determined by the people working on it.
And good surprise (almost since it was mentionned on the schedule), we had a "social event" with free food and free drinks (free as in free beer, not free as in freedom :p). It was really good food, and I discussed with some people.
Finally, I managed to make the laptop work correctly for my use... it still needs some tweaking but I guess it'll be okay. The only problem is that I have to fight with this weird qwertz keyboard! It's really unusual for me.
This time I'm really far far away from home... I've never been so far from Toulouse in fact.
I woke up early to take my plane... I waited for the flight to Stuttgart in Paris. And then encountered the "german way to make airports". It's amazing! It's the first time I see an airport so well organized. You have nice indications everywhere, and the bagage claims are not the mess we have in France.
And then... I met my first KDE developer in real life! Peter Simonsson (psn)! He's quite friendly and was easy to find in the airport being the tallest person there. Our adventure begun with the schnellbahn (subway)... but we managed to arrive Ludwigsburg in one piece. From there the aKademy was really easy to find. We got there to directly find Peter Rockai (mornfall) with is camera (I bet he sleeps with it :p).
Mornfall guided us to the youth hostel where we were finally able to let our luggage. We met there Joseph Wenninger and Joachim Eibl who accompanied our walking to go back at aKademy... Everything went smooth except when I managed to loose everybody... but wait it was a good thing we've seen a really pretty place (please ask mornfall for pictures ;p). But from what I've seen from Ludwigsburg I'd say it's a really pretty city.
During the afternoon we idled trying to socialize a little except for the "lucky" people carrying laptops who were already able to hack... Please note that I was very glad to meet Kurt Pfeifle for the first time!
Finally I took some time for dinner... I tried a "typical" dishe called Kaesespaetzle, it's really not bad...
Wow, all of this happened in one day... and the conference have not even started yet. The next days promise to be really interesting!
Ok, I guess I'm ready to take my plane tomorrow morning. I've already reviewed two times my checklist, I've taken a little more than expected. It should do.
Since I'll have lot of time to wait in Paris airport and in the plane itself, I've taken four novels with me. I wanted to buy some books that Anne-Marie advised me but I failed to find even one. I'll have to try a book shop we have here called "the book shop" (nice name isn't it? :D). They sell only books in english... hence the name.
I'm thrilled to go to aKademy tomorrow... it'll be the first time I meet the KDE developers I already know thanks to IRC. Of course, I'll surely meet other developers currently unknown to me and that's great!
Moreover, I'm excited because it's the first time I'll travel out of France... I admit Germany is not that far from France, but it's a foreign country with it's own people, language and culture to discover!
It's time to sleep now... My plane will take off early! Next time I'll connect, it'll be from Ludwigsburg!
Yesterday, I played a little with audio conference tools with mornfall and other Kalyxo guys. It's the first time I use this kind of tool since I have my ADSL connection.
We tried GnomeMeeting and Skype...
GnomeMeeting is based on OpenH323 which I already met in an old research and development project during a training period. So it wasn't a lot of news except that I had a GUI this time and that the Speex codec was available! ;) And Speex is really a nice codec... worked very well for us.
Skype is unfortunately not Free (as in speech) but is quite interesting too. I don't know which codec they use but it has a high sound quality in optimal conditions but it can degrade quickly. In the worst case, you hear only some unintelligible robotic noises.
We tried Skype conferencing mode with five people connected... it was lot of fun... full of non-sense! :) And since Skype seems to be intensive we finally switched back to GnomeMeeting using only point to point communications.
It was really fun, and I was glad to hear mornfall's voice. We stayed connected a few hours... Maybe having this kind of exercises will help improve my english a bit, but at least it helped us during the proof reading of our Kalyxo aKademy talk abstract.
Ok, this is the first post in my new blog... I still don't fully understand why blogging is so hype recently. Maybe by trying I'll understand.
Lot of people don't know me, that's why I'm going to elaborate a bit on myself. *gasp* I hate this part. So I'm a student in computer science. I try to contribute more and more to KDE but recently I didn't have the time to work on it a lot. Recently I used most of my free time working on the Kalyxo project. I'm really confident that it'll take off sooner or later and the recent news mentioning us recently are another proof that it has a lot of potential.
From the title of this entry... you should expect some good news. Ok, it's very good news for me. The doctoral school of my university had just decided to give me a PhD funding. I've gained the right to work in a lab for three years. I'll be underpaid, etc. Ah! The great life of a french PhD student!
Ok, I'm sarcastic but it's really really really good news for me! I'll have an interesting job, the opportunity to teach my passion to students, etc.