BoFs at Akademy

Birds of a Feather sessions (BoFs) are one of the most important events at Akademy. Just like every year, there were BoFs related to different projects. These BoFs  are a good way to get live feedback from other people in community.

Usability BoF

This  BoF was organized by Björn Balazs and Jos Poortvliet.

– For this BoF developers volunteered for having usability test of their projects.

– Members of  KScreen, plasma-nm, Plasma Media Center and  KStars project participated in it.

– Each application was represented by one of the developers who had two users for testing

– Users  don’t know anything about that project

– Users were given  task (related to the application) one by one  and developers navigate the  user through some steps as mentioned in

– Goal of this test was to get input from user about application like what they expected and what they actually saw, was UI confusing to understand, etc

After doing usability test of Plasma media Center, we got some important feedback in which we already implemented few and will implement rest soon.

Mentoring program (GSoC, Google Code-in, SoK, Outreach Program for Women)

This BoF was organized by Lydia Pintscher and Cornelius Schumacher

– It aims to share experiences, discuss how to improve the mentoring programs, and talk about any questions come up.

–  Participants introduced themselves what they have done in past related to mentoring program.

– Most of the people first participated as student and later became mentor of these mentoring programs.

– We also discussed some of the issues which mentors faced while selecting students in mentoring programs and how to improve mentoring programs.

–  We also did a group photograph in which attendees were wearing different mentoring program T-Shirts

 Plasma Media Center (PMC) BoF

This BoF was organized by me

– Thanks to Marco Martin, Sebastian kugler, Shantanu Tushar, Thomas Pfeiffer and Vishesh Handa for being there and providing their valuable feedback

– Main aim of this BoF was to discuss future plans and implementation details for some of the  features in PMC.

–  One of the most important things were to consider plans for  improvements according to the Usability study done on Monday Usability BoF

– This study had highlighted issues with our UI that need fixing

– Other than fixing UI issues, Vishesh Handa from the Nepomuk  project pointed out that users should be able to add their media  collection to the nepomuk index straight from PMC without needing to go  to System Settings.  

– Compare to last year BoF, this year we got good feedback for improvements we achieved in PMC. Thanks to all PMC contributors for their hard work and love for this project.



Awesome days during Akademy 2013

Awesome days during Akademy 2013

Hi all,

Being a part of KDE Akademy is one of the most awesome experiences ever. This was my second Akademy after the one in 2012 . Akademy 2013 was held in the beautiful city of Bilbao in Spain. Held from 13th July to 19 July, it had 2 days conference followed by 5 days of workshop, Birds of a Feather sessions (BoFs), lots of hacking, and of course lots of fun!

Day 0

I reached Bilbao on 12th July and went for pre-registration where I also met many KDE folks (some of them I already met during last Akademy and some new people). It was great to meet everyone again, we all had a fun time together with greeting each other, drinks and lovely music.

Day 1

The first day of the conference started with a keynote by Eva Galperin . A member of EFF, she talked about the NSA surveillance and how it affects people outside the US.

After keynote, Kevin Krammer gave talk on Declarative widgets where he explained and showed demo on how to create widgets based UI in QML. This approach enables non-C++ programmers to participate in UI development for traditional desktop applications.

Till Adam talked about KDE on Blackberry where he explained about Blackberry 10 architecture which is totally based on Qt with QNX kernel and discussed why KDE should be interested in another mobile platform.

We got a chance to hear the story about the Mer Project and the current status by David Greaves. Mer is used by Jolla for the Sailfish operating system and Plasma Active as the base distribution for creating tablet systems.  He talked about how the Sailfish SDK uses virtual machines for even the SDK (apart from the simulator) as it makes it easier to run the SDK on different platforms.

I always wanted to see a live demo of the Jolla Phone, based on Sailfish OS, and I got lucky! Along with a beautiful demo of the phone, Vesa-Matti Hartikainen  from Jolla talked about the history behind it, how Jolla’s team collaborates with various open source projects such as Qt, Mer, and Nemo Mobile to build the system.

Further Will Stephenson talked about LightWeight KDE which try to exploit KDE’s modularity and tweakability by cutting down a full feature desktop to the lightweight desktop size, while retaining the ability to use additional components from the full feature set as needed.

This time we had a new guest at Akademy, the Razor Project. Jerome Leclanche talked about the effort towards a lightweight, modular, Qt-based desktop. He discussed how Razor project collaborates with other desktop environments and various efforts towards compatibility with KDE Frameworks. And if this was not enough, he pointed out that even LXDE is moving to Qt (yay!).

I think this is probably one of the coolest things about the Free Software communities, that even projects that are technically competitors actually collaborate with each other.

Marco Martin talked about Plasma 2 where he talked about changes in the Plasma library from Plasma 1 to Plasma 2, how to use it from any application, and how a single workspace will now be used for all form factors, such as Plasma Desktop, Netbook and Active. We are planning to move Plasma Media Center too from Plasma 1 to Plasma 2 (and hence, to Qt5) once the libraries are stable enough.

Later, Shantanu Tushar gave talk on “Pair Programming”. He shared his experience on benefits of doing pair programming and how did in KDE projects like Calligra and Plasma Media Center with me, Sujith and Akshay.

At the end of the day, Thomas Pfeiffer and  Björn Balazs gave a talk together on Task-Centered UIs in Plasma Active . Plasma Active is one of the best example I know which is a tightly integrated system combining various components into it. UI workflow is in such a way  that optimal user intervention is required while achieving required task.


Jolla phone demo                                Thomas Pfeiffer

Day 2

Similar to last year, there were Lightning Talks by students. It was interesting to see that this year students were from GSoC as well as other mentoring programs like SoK, Google Code-in, OPFW. Students were from different KDE project like Telepathy, KDE connect, Keyboard layout, Digikam, Tomahawk. It was good to see the progress and experience of students while working on KDE projects.

Lydia Pintscher talked about Negotiation Theory for geeks. It was about conflicts which arise in free software projects and techniques to resolve them.

As per tradition of Akademy, we had a group photo 😀

After lunch, Kevin Ottens gave Keynote on KDE Democracy where he looked upon the democratic and meritocratic structure of communities and how KDE has changed over the past few years.

Later, Vishesh Handa and Martin Klapetek gave talk on Metacontacts Library which aims towards a system to aggregate all multiple contact sources into a manageable way. This is done by keeping all information in Nepomuk and providing library to developers called KPeople.

Simon is KDE’s speech recognition system which is maintained by Peter Grasch who gave an interesting talk on FLOSS Speech Recognition. He explained current status of this project and also gave demo on how nicely speech recognition works.

At the end of conference, there were  short presentations by various sponsors of Akademy  like Blue Systems, BlackBerry, Red Hat  etc.

Like every year, we had the awesome Akademy awards given to:

Eike Hein          –   Best Application award for his work on Konversation

Vishesh Handa –   Best Non-application award for work done in  Nepomuk

Timothée Giet   –   Jury’s Award for shaping the future and community of Krita

Kenny Duffus   –   Jury’s Award for for being the memory and soul of Akademy

Dani Gutiérrez  –  Organization Award for organizing wonderful Akademy

I had a great time during Akademy by meeting old friends again, making new friends, learning new stuff and lots of fun 😀 Thanks to my employer, RedHat for sponsoring my travel and KDE eV for taking care of my accommodation.


Schedule  –

Videos      –

Photo       –

Workshop on GCC Internals


Last week, I attended a workshop on GCC Internals  held at IIT Bombay. It was five days workshop  from 29th June to 3rd July.


Me, Amit Shah and Gopal Tiwari went from Red Hat. We booked a cab and left for Mumbai on Friday, 28th June afternoon. The journey from Pune to Mumbai was awesome with nice scenery and rain on the way. We reached IIT Bombay in the evening and were had guest house booked for us. The campus was really big, great and full of natural things like trees, leopard, snakes, oh and even python 😛

We were supposed to do some setup in laptop before attending workshop as mentioned in .

Day 1

I woke up early in  the morning and reached to venue FC Kohli auditorium after having breakfast. With around 40 participants, it started with small introduction to the motivation, objectives, goals, etc behind this workshop by Prof. Uday Khedker. Then we had small introduction with all participants and TAs (Teaching Assistant). It was good to hear from different people. Participants were from different areas like Teachers, students, corporate world.

Now, actual workshop started. All participants were grouped together with two in each group for doing  lab assignments. There were first presentation on particular topic followed by lab session.

It started with An Overview of Compilation and GCC in which  Prof. Khedker discussed about structure of a simple compiler, GNU tool chain, how parse tree and abstract syntax tree is created for a program.

After this we learnt about Gray Box Probing of GCC i.e examining input and output of various components and modules of GCC. We learnt about basic transformations in GCC from one language to another language.
We learnt about how GIMPLE representation is done for  data types, functions, pointers, array, classes, virtual/non-virtual functions, inheritance, etc. Another interesting thing was possible optimization in GIMPLE like constant propagation, Copy propagation, Loop unrolling, Dead code elimination. Various optimizations can be achieved for a program (checkout, gcc -c –help=optimizers)

Here, I came to know that there are total 163 GIMPLE and 89 RTL passes in GCC 4.7.2 among which 215 are unique passes. This is really an amazing thing to know what gcc do internally when I compile my simple “Hello World “ program.

Post lunch there was more presentation on GIMPLE IR. After that, we were doing assignment which was on Gray box probing of GCC and GIMPLE assignment.

Day 2

There was presentation on GCC Control Flow and Plugins. we learnt about

– We can  add, remove and maintain module independently in GCC called Plugin

–  Both static and dynamic plugins are possible in GCC

– How control flow happen in intraprocedural and interprocedural passes

– Link Time Optimization (LTO) which enables interprocedural optimizations across different files (Use -flto option during compilation)

– Type of LTO possible i.e partitioned and nonpartitioned

After this we did lab assignment on Link Time Optimization which contains compiling simple C program using -flto with and without partition mode and analyzing different dump produced by them.

Post lunch there was presentation on GCC configuration and building. Here, we learnt about

– Code organization of GCC

– GCC build dependencies

– Configuring and building gcc

– Machine description

– Building GCC as cross compiler

Day 3

There was presentation on Register Transfer Language (RTL). Here we learnt about

– Why GCC uses RTL like it supports low level optimizations, instruction scheduling, register allocation, etc

–  How to analyze RTL dump generated during RTL passes

– Internal view of RTL i.e types of RTL objects, internal representation of RTL expression

– Manipulating RTL Intermediate Representation

Then there were presentation on Machine Descriptions,  Spim Machine  Description, Retargetability Model of GCC. Here, we learnt about

– Organization of Machine Description (MD)in GCC , essential constructs of MD

– Cross building GCC for SPIM

– SPIM machine description and changes in MD

– How basic instructions are performed in SPIM like move, add, compare, procedure call etc

– How retargetability is achieved in GCC

After presentation, we were doing lab assignment on Spim machine description which included building GCC for Spim, adding machine description for left shift operator and analyzing added assembly instruction for same.

Day 4

There was presentation on Parallelization and Vectorization in GCC by Prof. Amitabha Sanyal. he taught about

– Parallelism i.e executing same operation on multiple operands and vectorization i.e performing N  operation together in different vector register

– Possibility of parallelization and vectorization inside program e.g instructions inside multiple for loops

– Data dependence i.e Anti dependence ( Write after Read), Flow dependence ( Read after Write) , Output dependence ( Write after Write)

– Transformations enhancing vectorization and parallelization like loop interchange, loop distribution, loop fusion etc

Day 5

This was last day of workshop which started with summary  presentation regarding what we learnt in previous 4 days. Further, there was feedback session where few people gave feedback regarding workshop.

According to me overall workshop was very good, everything from start till end was so well. Teaching Assistant had main role along with Prof. Khedkar in success of this workshop. They helped participants with any kind of help needed like problem in doing lab assignments, arranging laptop for participants who didn’t have on, uploading assignment on website on time and other related stuff.

Thanks to Red Hat for sponsoring this workshop and travel. I am happy and confident that I know much more about what GCC does internally than I did earlier.

Here are few pictures I took,