Google Code-in 2018 – My First Experience as a Mentor in KDE

During the last months I had the opportunity to participate in Google Code-in 2018 as a mentor for the KDE Community. I’ve created tasks and assisted pre-university students aged from 13 to 17 in their first contributions to free software projects.

GCI-official-horizontal_1372x448dp-1

My focus was on KDE Partition Manager, because I’m contributing to it as a developer since the last year (by the way, tomorrow I will be completing my first year as a KDE contributor, yay!). So the tasks that I’ve created were focused specially on some parts of KPM that I have a solid knowledge and a good codebase like LVM, RAID and SMART support.

Here is the list of tasks that I’ve submitted for this GCi:

  • Test creation of RAID 0, 1, 4, 5, 6 and 10

  • Test Volume Group creation GUI and suggest some improvement

  • Test SMART status GUI and suggest some improvement

  • Write a simple manual for the creation process of one of the available RAID levels

  • Write unit tests for LvmDevice

  • Improve the layout of SMART status GUI

  • Build kpmcore and partitionmanager from source

  • Write a simple manual for LVM PV creation process

  • Write a simple manual for LVM VG creation process

  • Write unit tests for SoftwareRAID

As you can see, most of them were focused on testing and code documentation. Unfortunately some students abandoned some of the tasks instances, but we had a good number of completed instances which even made some of the students continue to contribute, not only with tests or documentation, but with code! 🙂

As it is my first experience as a mentor, I’m very proud of myself for this result. I liked this experience a lot and I’m waiting for more opportunities to help people during their first steps on FOSS with KDE Community.

Talking about Qt and Computer Vision at QtCon Brasil 2018

I had the opportunity to participate in QtCon Brasil 2018 as a speaker during the last weekend. It happened in São Paulo, which is a city that I haven’t visited for a long time. My talk was about the integration of Qt applications and Computer Vision, specially focused on the mobile environment with QtQuick and QML.

During my presentation, I was focused on introducing some concepts to the people who just have heard or never had contact with Computer Vision. I talked a little bit about OpenCV, including an brief explanation about its modules and how they work, and I presented a little example of object recognition application made with QML (the code is available in the repository).

The event was awesome. A good number of my KDE friends were there, so we talked about the community and shared some ideas. I also had the opportunity to meet people from companies that work with Qt here in Brasil. The talks given in the event were very good, including a vast number of topics related to the application of Qt in several areas such as embedded systems, mobile, cloud computing, games, robotics and airplane simulations :).

After this presentation, I’m very enthusiastic to contribute to a Qt for Vision module. As I’ve seen after this presentation, there are a good number of people interested in it. This will provide a way to make Qt independent of external CV libraries for a group of applications. But before that, I have to finish my final project of my graduation, haha. One more plan for the future!

Here you can see a link to my slide: Computer Vision with QtQuick and OpenCV

And below you can take a look at photos from my presentation:

LaKademy 2018 – Third and Fourth Days (October 13th and 14th)

The third day of LaKademy 2018 was my last day participating on the event.

During October 13th, we started the day with a promo reunion. This reunion was done to discuss about some plans and actions for the Latin American KDE community over the next year. Some decisions were made and topics were discussed involving KDE participation in some events, promotion of our own events in Latin America, including LaKademy 2019 and Kafé com Qt, and some details in general about our community.

45240878072_c28ef37799_k
Promo reunion.

After the promo reunion, I decided to build and take a look at the code of Atcore, which is a library containing the main components for the Atelier, that is an Open Source 3D printing application developed by KDE Community. I noticed that most of the enums used in src/core/atcore where not determined by its scope, which maybe could generate an enum name conflict in the future. So I decided to contribute with this little change, adapting the code to reference enums as C++11 scoped enums, providing assistance to the possible name conflicts.

During the afternoon, I continued my work in KDE Partition Manager, implementing that RAID resize functionality in kpmcore, where I decided to include the operations of growing and shrinking of RAID disks. Then, I fixed some bugs in the creation of RAID 1, 4, 5, 6 and 10, because a check-up was being done by mdadm before mirroring the devices and my previous implementation was ignoring it. This mdadm check was necessary to confirm which device size should be prevailed before mirroring.

photo5051009856995174405
#KDEis22

I had to come back to my city during the morning of October 14th. In this date the anniversary of 22 years of KDE was celebrated. The KDE people that continued in Florianópolis decided to eat a cake to celebrate. I couldn’t participate, but I am very happy to be part of this inspiring community. Happy birthday, KDE! I hope that this great community keeps succeeding over the years to make the world a better place with its great software! #KDEis22 🙂

LaKademy 2018 – Second Day (October 12th)

Every new code follows new bugs.

During the second day of LaKademy I was more focused on resolution of bugs in the code that I implemented during the first day for KDE Partition Manager. During the afternoon, I decided to start RAID resizing and discussed with Andrius Stikonas on calamares IRC channel about some RAID functionalities related to resizing disks and about bugs on both LVM and RAID. I also talked with some KDE coders here in LaKademy about Qt and C++, learning more about it.

OLYMPUS DIGITAL CAMERA
Image 1: Concentrated while coding.

Also we took some group photos. It was very nice to participate.

44365101645_07eb28a1c2_o
Image 2: LaKademy 2018 group photo.

And here is a more precise list of what I have done on coding and some things that I am planning to complete during the third day:

  • Solved that bug commented in this post, where the device mapper identifies an old partition table from a deleted RAID device that contains the same physical volumes as a newer one. Actually I don’t know if udev has some method to clear it when removing a logical device, but I decided to erase the partition table from the deleted device just before deleting it.
  • Fixed some segfaults when rescanning LVM and RAID. This bug was my fault (shame!), I forgot to check if a logical device contains a partition table when updating the partition nodes information.
  • Started the implementation of RAID resizing. I focused on adapting the LVM GUI, using VolumeManagerDevice references instead of LVM directly, to provide adaptation for all the possible logical volumes resizing in the future. I will continue working on this resizing implementation during the third day.

The third day of LaKademy 2018 will be my last day here in Florianópolis. I will be traveling back to Salvador (my city) in the morning of October 14th, because I need to do another travel on October 15th to an event related to the university. I will continue enjoying LaKademy during this last day, it is being great! 🙂

 

LaKademy 2018 – First Day (October 11th)

LaKademy 2018 has started!

It is happening in the city of Florianópolis in Brazil. It is being a nice opportunity for me to meet some other KDE contributors from Latin America. We are discussing ideas for KDE in Latin America and everybody is working on something related to the community. The event will continue until October 14th. Below you can see some photos:

photo5042111741319817248
Aracele and Filipe talking about the event.
photo5044202183507159112
Coding and sharing ideas with Dórian and Pedro.
photo5044291982683383814
Enjoying some arab food.

I am enjoying this time to discuss with some older contributors and to share ideas with newer contributors. I am also submitting some patches to KDE Partition Manager. Here is a brief list of what I have done to KDE Partition Manager in this first day of LaKademy:

  • Corrections for SoftwareRAID, including the process of loading physical volumes instances for the device object.
  • Support to RAID activation through GUI. Before you could only activate RAID through the process of disk rescanning. Maybe I can also implement this functionality for LVM as well in the future.
  • Support to remove a RAID device from mdadm.conf file, allowing the user to remove inactive RAID devices. There is a particular bug in this process, because after creating a new RAID device with the same physical volumes contained in a deleted device, the device mapper is identifying the old partition table. I must look if only erasing each physical volume superblock solves it or if I need to erase the RAID partition table before erasing the device.

Well, this is it for now. We started the second day and tomorrow I will be posting more about what I have been working. 🙂

Akademy 2018 was great!

So Akademy 2018 has finished and it was a very impressive event. It happened in Vienna, Austria and it was my first opportunity to join in a KDE event, to travel to another country and to meet people from the community!

I couldn’t participate during the first day of the event (August 11th) because my flight delayed a little bit and I only arrived in Vienna by night. So in the first day I only had the opportunity to join the people for a drink and prove some Wiener schnitzel and food from Austria.

38028954_859909140871006_1021053802322591744_n
Yummy!

In the second day I could watch some talks and presentations, meet some people from KDE, including Adriaan de Groot, that was one of my GSoC 2018 mentors. This was the first time that I’ve talked with him personally and he is a very nice person. We discussed about my GSoC project and some future implementations for Calamares. It was nice to meet you, Ade!

DkkViHLWsAcqx7U.jpg:large
The brazilian RGB (Filipe, Eliakin and I).

There were some Birds of Feather (where the Akademy attendees group together based on a shared interest and carry out discussions), workshops and meetings on the remaining days of the event. I got the opportunity to participate in some of them and even suggested and helped in coordinating one BoF about Google Summer of Code and Season of KDE programs. It was pretty nice to meet the GSoC/SoK admins and the other students, and to know a little bit about how they went through their projects during this year.

DSC01882
KDE Brasil.

I also hacked kpmcore/partitionmanager/Calamares a little bit and submitted some patches. Now partitionmanager can create RAID! I could work on this improvement and fixed some minor issues related to the RAID array visualization. Also helped in solving some bugs related to the KAuth patch in kpmcore, which where happening during kpmcore backend change through KDE Partition Manager.

Vienna is a very beautiful city with an amazing food (which is very different from the brazilian, by the way). I learned some basic german words, visited some places and learned about the city’s history. Kahlenberg has one of the most beautiful views that I could ever contemplate.

IMG_20180815_200724_091
Daytrip in Kahlenberg.

This is it! Hope to see you soon, people from KDE around the world! I will miss you all and the city of Vienna a lot. 🙂