Today, Akademy 2014 kicked off hard. As always, there is a lot of excitement. The first Akademy day is always overwhelming. Meeting old friends, making new ones, learning new things and sharing what you know. To keep things simpler, we started this year with a single track in the morning, with two tracks in the afternoon. With all attendees in one room listening to 10 minute fast track presentations, there are plenty of topics to talk about during the breaks.
Sascha Meinrath keynote
The opening keynote from Sascha Meinrath gave some perspectives on how democracy is broken. He showed a graph of the number of acts of Congress declining since the 1950s. This is a fundamental problem because there is massive change in society while legislation is slowing down, not keeping up with societal progress. Companies create products that harm privacy. Yet there are few legal limits to these activities; and they freely integrate their technologies in every product possible. Distribution and federation are the answers. Sascha set up a distributed network in Washington, D.C. which avoids the central mobile grid. Distributed production is also becoming viable: the maker space movement shows it's only 3 to 5 years away that we can produce goods without central manufacturing.
One of Sascha's projects is X-Lab, a future-focused technology policy and innovation effort that is building an alternative infrastructure. The issue they are addressing is not just about wireless access. Sascha asks, "What if we could repurpose unused TV frequencies for broadband? Less than 10% of available bandwidth is used." GNURadio and other projects make it possible for more of this unused capacity to be used. Distributed infrastructure for a variety of technologies is awesome; open hardware allows for participatory technology.
Sascha had a bit of advice for this small, but influential audience: if you are starting up a new government, community or society, look to what was successful before. The key: allow distributed methods. The United States once had free distribution of newspapers which revolutionized news. Today, there is nothing like that. No country has said "Copyright isn't useful for us". Sascha suggests that we need a country that values truth, freedom and creative expression over the oppressive domination of copyrights.
After the keynote, the fast track started. First up was Àlex Fiestas with the question: "Why do we do what we do?" For him, software development started with 'eyeos', a small startup he did with some friends. The project included a 3 hour commute to a cheap office outside of Barcelona, going to the cheapest supermarket and calculating the price per calorie to get enough energy to get through the week. He learned what it was to be dedicated and motivated by doing awesome things!
In KDE, he got hooked when he fixed bluetooth. In no time he was the maintainer of Solid, organized sprints and now works on it full-time! So for him the answer to "why we do what we do" started with "it worked and provided me with what I was looking for". Then it then turned into a place to meet awesome people from all over the world!
Akademy Is On
photo by Jonathan Riddell CC-BY-SA
Bruno Coudoin talked about his baby, GCompris. GCompris has been around for a long time. The project greatly increased its audience when they did a Windows version in 2003. This version, while Free Software, required an activation code: Windows users pay for Windows, so why not for GCompris? The project got distributed in commercial channels and was quite popular - something which provided the motivation to keep going for, now, 14 years!
In January 2014 the project started to port GCompris to Qt. The new version is intended to work on both desktop and mobile devices from a single code base, and the technology they were building on just didn't allow that. They tested other solutions, including HTML5, but they found QtQuick to be a much better solution. It offers a better development platform, better graphics, smoother animations and is simply a easier, more efficient solution than anything else. The port happened very fast and went smoothly; it is a total rewrite that retains the old art and ideas. Since January, 80% of the GCompris modules have been ported, making full use of capabilities of QML such as smooth animations, flexible resolution and support for various form factors. They are happy to be part of the KDE Community. GCompris has always been a community project and they've found a great fit at KDE EDU.
Albert Astals Cid spoke on Quality. Quality is hard to define and hard to measure. Users really only care about (and complain about) their own bugs. We don't have good objective measurements. Where are the main crashes in KDE software just now? Kubuntu has a tool to measure where the most crashes happen, but it is only for Kubuntu. Of course Quality isn't just about crashes and other bugs. People can add to the wish list in bugzilla, but that doesn't get much attention when the emphasis is on fixing bugs. And that is sad: considering the amount of effort it takes to use bugzilla, we ought to take these wishes more seriously. It's also a nagging problem that we have stale review board requests, which is disheartening to people who have submitted patches to help make KDE software better! The lack of response there is really bad. There is a BoF (Birds of a Feather session) on Thursday...we need more tools, we need to chase maintainers, someone has to be able to know there are 7 open review board requests by looking at a global view. Come to the BoF and help change this! [Please add comments below if there are particular questions or suggestions.]
After an intense morning, we had a break: time to discuss the keynote and the why, what and quality of KDE coding. Sponsor tables included openSUSE, Red Hat, Kubuntu and ownCloud with goodies to accompany coffee.
Cornelius Schumacher continued after the break, talking about KDE Frameworks. A third of the third-party Qt libraries are KDE Frameworks 5, so we're a big contributor to the Qt ecosystem! Cornelius has set up a website, inqlude.org that offers a Qt library archive for Qt developers. It has a browse-able, searchable list showing the license and other information. Developers looking for certain functionality can decide if a library is a good fit for the application they are working on. There will be a BoF session on Tuesday to discuss inqlude; anybody interested in contributing is encouraged to email questions or suggestions to inqlude
Cornelius got questions:
Albert got back up on stage to make The Case for Spyware. He admitted the title was mostly to draw people in, but essentially spying IS an important subject here. He started with several questions:
How useful is it to know this? As an example, Firefox no longer has a menu because they learned that nobody uses the menu anymore. We don't know such things. So we should spy on users, too...in a nice way: opt-in or easy opt-out, anonymous, and not per application but with a proper, central framework. Wednesday 10:30 BoF!
Daniel Vrátil talked about a year with Akonadi. There have been many changes, such as the move from Nepomuk to Baloo. It has been quite a lot of work but it has brought new features and abilities. One of the most important new features is that tags are now stored in Akonadi. So if the backend supports some sort of tags, they can be uploaded and synchronized between systems.
Remote search is another new feature. With online IMAP, only headers are downloaded; email bodies can't be searched because they are not indexed by Baloo. Now, Akonadi can use the search capabilities of the backend. IMAP and Google support search. At the same time that Baloo is asked for search results, the resource is asked to get a list of results of the query from the mail server. Not all services support this, of course. At this time, local mail storage is still a bit of an issue.
Daniel also mentioned that there have been a lot of performance optimizations in Akonadi over the past year, especially for large folders and lots of emails. In the future, Akonadi will be moving to Frameworks. One change will be that the only public API will be through the client libraries; the server API won't be open. And of course...KDE PIM BoF on Tuesday! As a bonus: if you come there, they will fix your problems!
KWin maintainer Martin Gräßlin wanted to demo live but hasn't gotten his code to that stage yet. So instead, we got a presentation, starting with architecture as presented at the Desktop Summit in Berlin in 2011. The architecture has been adjusted since then: rendering and input are now handled by Weston. Weston does this stuff real well; there is no reason to duplicate the work. About the state of Weston, Martin says that Wayland clients are not yet implemented, most of the rest works. He showed the KWin Core architecture (pretty pictures...). Next up is the move to Qt5. KWin has had to deal with a lot of corner cases and issues like that, so progress has been slower than Martin would like. But this is understandable because KWin does complicated, low-level things.
There was a question about resource consumption, which is something that Martin can't answer yet. He knows that Weston is MUCH, MUCH more efficient than Xorg. Sebastian Kügler adds that the difference is really big: he has seen around 80% savings generally, including memory and CPU.
KDE in Action! Sune Vuorela talked about what he does in his day job: using KDE Frameworks in a commercial application! Frameworks works well for this; it's modular, featureful and nicely licensed. Commercial apps are often closed source, run on various platforms and ship all components in one product. The application he's working on is called Angelstow, an application to put containers on ships. Considerable math and physics are involved, and the end user needs to be guided extensively to understand what to do. And users have LARGE monitors. Qt was an obvious choice for all this application. Sune showed a screenshot of the application - indeed optimized for a very large screen!
Initially, QtIOCompressor (from qtsolutions) was used for the file format. But QtIOCompressor had issues and the team moved to KArchive (one of the original stand-alone KDE Frameworks released earlier this year), which turned out to be a great solution for this. Other tasty goodies from Frameworks include ThreadWeaver for threaded jobs, KItemModels, KItemViews and Extra-cmake-modules. Sune has already used ThreadWeaver in another project, and extra-cmake-modules is used already as well. He plans to sneak others in at some point too.
As a contribution to the community, Angelstow released a QDataCube library, which offers different views on item models data and can work with an abstract item model, synced with an itemselection model. Sune suggests that people to look at the tier 1 and tier 2 Frameworks if they are building Qt apps.
After the last fasttrack session, we were sent out to forage for food. Unfortunately, many local places are closed on Saturday, so hungry KDE contributors could be found coalescing into a large herd, moving to the city - presumably following their noses to the smell of Czech cuisine. Luckily good food was not that hard to find. Ninety minutes later almost everyone was back at the venue for the GSoC/SOK/OPW student presentations (Google Summer of Code, Season of KDE, Outreach Program for Women).
GSoC student Akshay Ratan gave an enthusiastic talk about his Summer of Code project to improve Plasma Media Center. He was very happy to have patches accepted and to learn about version control systems and real world programming tools. He added subtitle support and a better file manager. Kevin Funk talked about clang integration in kdevelop. KDevelop used to have a custom parser, over 50,000 lines of code, it was hard to maintain and extend to c++11 or 14. CLANG to the rescue: a language frontend for LLVM with an active community. By using it, there is no need to maintain a custom c++ parser, refactoring tools and objectiveC support are included for free. Kevin showed some screenshots of KDevelop with some code that is missing a semicolon with clang giving a suggestion to fix it. Code completion now uses clang.
Bhushan Shah told the story of how he met Konqi. He started with some small patches, then ported the activity bar in Plasma to QML. 34 reviews later it was accepted. In GSOC 2013 he was mentored by Sebas (Sebastian Kügler). In 2014 he took part in Google Summer of Code and ported Plasma Media Center to Qt5.
After the students' talks, it was time for the multiple tracks of workshops and in-depth technical talks. We have not covered these due to a non-functioning reporter cloning capability at the university. We hope to have this problem fixed next year as cloning capabilities will be a mandatory component for any new venue proposal. Slides and speaker contact information are available at the Akademy conference website.
Ivan Čukić gave a workshop about porting to Frameworks 5 in an almost quiz-style, asking questions and showing the good, the bad and the ugly of C++ and porting. There was a bit of CamelCase vs under_score usage discussion in the end but everybody agreed this topic was more suitable for an evening conversation with (lots of) beer.
Sebastian Kügler (sebas) talked about How Plasma 5 Came To Be. The why was that with Qt 4 infrastructure, Plasma had its issues. QGraphicsView was a pain, and there was a lot of code duplication in device shells. Qt5 and Wayland were very appealing. In addition, visual quality in Plasma wasn't great, and the team had a hard time with the number of bugs. So, work started on Plasma 5. Sebas detailed the technical changes, such as the move to openGL(ES), Framework 5, QtQuick UIs, and improvements to the look and feel of the shell. Most of the changes he showed using videos and images, which demonstrate the current state of Plasma 5. Sebas ended by saying that he and the team are proud of having made it this far in such a short time. Feedback from users has been exceptionally good.
photo by Jonathan Riddell CC-BY-SA
There is much more going on at Akademy than just the sessions. Much of the action takes place in the hallway track, where people meet, work on code or just hang out. Yash Shah (known by some as "The Happiest Person in the World") asked people about how their day was and what they liked most. Some responses:
Following what is going on
Please communicate with people at Akademy by asking questions and commenting below.
If you ARE at Akademy, check out the BOF and workshop schedule for the rest of the week! Many rooms are dedicated to a subject, like Room 5 (Monday)/Room 3 (rest of week) for usability and user interface design. See this page for a full overview. Contact the organizer to discover other ways to participate.