It's been awhile since my last smoke signals here in Planet KDE. I'd been quiet, a bit outdated on KDE things, focusing some efforts and calming down my heart for being so long away from this amazing community. What I've been doing, you ask ? Well, after six long tiring years, I've finished my Ph.D. in Computer Science last week. The defense was quite smooth and it's rewarding to know that you did your best and left the game glad about the work you've done.
Doing a Ph.D. is experienced differently by different people. I've learned to exercise my patience, to be more pragmatic about my goals, to cope with my anxiety ... I've survived and got away several times from The Valley of Shit :), met some deplorable Ph.D's and another inspiring ones.
Although I'd been using Qt and KDE since 1999-2000, it was only in 2008 when I became more seriously involved in KDE. I was already in academia and that gives you the chance to meet some insane ;) students like Tomaz Canabrava.
Since then, we had a lot of things to be proud of: we made nice friends around the world, we strengthened local KDE communities in Brazil, we've been representing KDE for seven years in a row in major FLOSS Brazilian conferences. There were countless talks, short courses, hunting for new contributors, the first Akademy-BR and two LaKademies. That makes me happy but I'm, above all, a programmer. I've been missing the commits I haven't done, the features I haven't implemented and the bugs I haven't fixed. I joined KDE already chased by that voice: "you have a Ph.D. to complete ..." and it's quite easy to let your passions dominate the priorities of your tasks :) I'm not saying that I hated my Ph.D. research topic. Not at all. But KDE took me like a burst of passion :) I'm glad I did not give up of my academic carrier and this "major release" makes me free to experience being part of KDE in a different way. So, the bottom line is: you can count on me for KDE in 2015 :) I just need some couple weeks for getting some rest.
For those of you who are wondering about what I've done in my research, it's mostly related to automating the design of architectures for a sort of software-intensive systems named self-adaptive systems (those which regulate themselves in response to changes in the operational environment and in the software itself). We focused on a particular class of self-adaptive systems that adopts control theory as its underlying self-managing mechanism. We proposed a generic meta-modeling language (named DuSE) for systematically capturing the prominent design dimension in such a domain and applied techniques from multi-objective optimization field to reveal those candidate architectures that minimize/maximize some quality attributes of interest. We've been using our approach to generate effective self-managing architectures for self-adaptive web servers and elastic cluster platforms for MapReduce applications. Further information may be found here and here.
Two development outcomes of my research are directly related to Qt and KDE: the QtModeling and QtOptimization Qt5 modules and the DuSE-MT tool. QtModeling provides the basic features for handling software models and serializing them by using the XMI format. It also implements the metamodels of MOF, UML, and DuSE modeling languages. QtOptimization is an application framework for solving multi-objective optimization problems. So far, only the NSGA-II evolutionary algorithm is available, along with a bunch of common operators for selection, crossover, and mutation. DuSE-MT is a tool that integrates the features provided by QtModeling and QtOptimization in order to evaluate the approach I proposed in my Ph.D. thesis. Its architecture, however, was conceived to support the seamless integration of new features. Now, the plan is make the last polishments to have a first release of such modules. After that, maybe you can expect some model-related new features in Qt Creator and KDevelop :) or an even more shining Umbrello :).
Well, that's all for now, but just for a while ;)