Call for Mentors (and Admins) for Season of KDE 2021

As discussed in the Season of KDE/Google Summer of Code BoF that we had yesterday in Akademy 2020, our plan is to start the next edition of Season of KDE soon. But first we need to start thinking about some project ideas and, most importantly, we need mentors! So if you are a KDE contributor and want to participate as a mentor in the next SoK, please join us and fill the ideas page.

Ideas Page: https://community.kde.org/SoK/Ideas/2021

Another important detail is that we need some Season of KDE admins to help to organize the program. If you want to contribute with that, please let me know.

marK is (still) evolving

Over the last year, I have lost my ability to blog frequently about my code contributions and there has been around 1.5 years since my last post about marK. If you don’t know what marK is, please read the mentioned post here:

In the meantime, a lot of things have happened. Now the project has an official KDE repository and I have been working with Jean Andrade (jyeno) on some improvements, trying to include more interesting features for a release.

I have improved its GUI, so it is completely different from what you have seen in my previous post. Of course, it still needs some fixes and we need to change some parts of the GUI to be compatible with KF5, but now we have an idea of how marK is going to show its files, options, etc.

Now we can train an AI model to detect Konqis on images, haha. 🙂

Jean has worked on marK during Season of KDE and Google Summer of Code. During SoK, he has helped on some code refactoring and has implemented important features related to image annotation such as the XML/JSON import/export process and temporary files.

Example of XML exported file:

<annotation>
  <object>
    <class>konqi</class>
    <Polygon>
      <pt>
        <x>616</x>
        <y>325</y>
      </pt>
      ...
      <pt>
        <x>616</x>
        <y>325</y>
      </pt>
    </Polygon>
  </object>
</annotation>

Example of JSON exported file:

[
  {
    "Class": "konqi",
    "Polygon": [
      {
        "pt": {
          "x": "616",
          "y": "325"
        }
      },
      ...
      {
        "pt": {
          "x": "616",
          "y": "325"
        }
      }
    ]
  }
]

I have worked on improving marK architecture, so now we have a Painter structure to help on dealing with different types of data in the Container widget. During GSoC, Jean has worked on implementing text support, which allow you to annotate textual datasets for natural language processing tasks.

Text annotation support.

We are currently working on some bug fixes to prepare it for a release (I hope so). See you soon!

Sobre desenvolvimento de software e depressão

Olá, espero que você esteja bem, mesmo diante desse período intenso que estamos vivendo em todo o mundo. Esse post não é um tutorial sobre alguma tecnologia ou relatório de atividade, mas sim um simples relato sobre como a depressão tem me afetado ao longo dos últimos tempos e o que estou fazendo para superá-la pouco a pouco.

Venho sofrendo de um grau de depressão desde o início do ano passado. Essa tem sido uma luta muito intensa, com vários altos e baixos. Só quem é mais próximo de mim realmente sabe de tudo o que tem ocorrido. Isso tem mudado minha vida de uma maneira muito incomum e é incrível parar para pensar em como eu estou diferente por conta disso. Essa não é a primeira vez que passo por um período de tristeza, no entanto tem sido a mais cruel para mim. Eu ainda não entendi direito de onde esse sentimento veio ou para onde está indo, mas sei que está presente em mim e que quero me livrar disso logo.

Esse sentimento tem me afastado de várias coisas, pessoas e atividades que gosto. Às vezes até parece que perdi o interesse em algumas coisas, que deixei de gostar de coisas que amava de coração. Uma das coisas pelas quais andei perdendo interesse é no desenvolvimento de software. Eu era um grande apaixonado por programação desde a minha primeira linha de código. Meus olhos sempre brilhavam quando aprendia algo sobre novas tecnologias e programação em geral. Contudo, devo admitir que esse sentimento diminuiu. Todo esse entusiasmo veio se dissipando ao longo do tempo.

Eu não me culpo por isso. É muito comum ver na internet vários casos de burnout na área de software. Pessoas que simplesmente surtaram por conta da demanda, pressão ou rotina corrida. Sei que o comum é essa tensão causada pela área de software começar a influenciar a vida de pessoas que trabalham com isso. No entanto, o meu caso é um pouco diferente. Meu amor por programação está sendo afetado por uma fase delicada da minha vida.

O mais complicado nisso tudo é que a nossa área faz com que todas as pessoas que trabalhem nela comecem a nutrir uma espécie de sentimento de competição. Um sentimento de que você não pode ficar parado em nenhum momento, que você precisa crescer, ter um emprego melhor, ser a pessoa que mais sabe de tudo, ser o melhor em tudo… Isso não é exclusivo da área de programação, eu sei, mas o que parece é que numa área como a nossa esse fator é mais perigoso, já que existem uma série de mudanças, atualizações e inovações tecnológicas que surgem a cada dia.

Sei que isso é um grande clichê, mas também sei que é um clichê necessário… Lembre-se sempre que você é uma pessoa. Você não está em uma corrida ou competição. Eu amo software e não quero fazer isso simplesmente para ganhar mais ou para me vender. Eu quero fazer isso pelo resto da minha vida porque eu *amo* isso. Eu gosto de aprender, de conhecer mais a respeito e de simplesmente digitar código e criar programas. Eu não quero pensar que isso tudo é um show de talentos onde você deve se provar o melhor em tudo. Não, isso é terrível!

Sei que essa cultura competitiva já está enraizada na nossa área e que não é um simples post de blog que vai mudar isso. Contudo, eu quero mudar o meu próprio subconsciente para que, de alguma forma, possa também auxiliar amigos que trabalham com isso. Eu estou mudando meu próprio pensamento aos poucos para tentar me curar dessa doença. Sei que vou conseguir e estou me esforçando para isso. Estou respirando mais, dando tempo ao tempo e não fazendo mil coisas ao mesmo tempo como se perseguisse algum prêmio que criei em minha mente. Estou parando para me divertir mais e não encarando essa diversão como perda de tempo. Isso tudo é necessário.

A programação surgiu para mim como um hobby, como uma tarefa que fazia porque era legal e divertido. Nunca surgiu como um sofrimento. Espero conseguir me entender mais e fazer com que todo aquele sentimento bom retorne mais uma vez.

Akademy 2019 – Late Report

There has been some time since my last blog post. It has happened because of a good cause, since I was focusing on my undergraduate thesis. Now I have finished it and finally have completed my graduation, yay! Soon I will include my thesis on my blog and share it with the world… I have just decided to fix some details in the project before that. Anyway, this post is to comment about my participation in Akademy 2019. I will give a brief report, share my experiences and tell you about how this experience was for me.

IMG_20190908_140658
My badge!

Akademy has happened during September 7th-13th, 2019. It was held at the University of Milano-Bicocca, in the beautiful city of Milan, Italy. It was my first time in Italy and I had a great impression about there, such a nice food and adorable places. My flight has arrived in the night of September 7th, which was exactly after the first day of the event.

IMG_20190910_105357
Duomo di Milano

I couldn’t participate on the Welcome Event and watch the talks from the Day 1,  however, during the Day 2 I could watch some talks and review my presentation, which was going to happen in the same day and was going to be my first presentation in English. In the afternoon, I could present my talk, where I have explained a little about my work on kpmcore and partitionmanager, including some details about KDE Partition Manager 4.0 and our work on Google Summer of Code, Season of KDE and Google Code-in over the last two years. You can watch the full presentation here:

Then, in the following 5 days, we had lots of BoF sessions, workshops and meetings, where KDE contributors could discuss about topics related to the KDE ecossystem and plans for the community. On September 12th, I have decided to host a KDE Students Programs BoF with Aman, Bhushan and Valorie, where we could make some plans for Season of KDE 2020 and the next Google Summer of Code.

On September 11th, we went for a daytrip, which was in the Lake Como. Such a beautiful place! I had the opportunity to walk through some villages and places that are closer to the lake and enjoy a sunny day. Here are some pictures:

Then, in September 13th, I returned to Brazil. This opportunity to participate for the second time in Akademy was really good, since I could get more involved with the community and meet again people that are involved in different KDE projects. Thanks to KDE e.V. for the help and support in this travel and also thanks to all the organizers and supporters for making this amazing conference happen.

Google Code-in 2018 trip report

In June, I had the opportunity to be the mentor representing KDE in the Google Code-in (GCi) 2018 trip in San Francisco, California. For those who don’t know what GCi is, it is basically a competition organized by Google for students with ages between 13-17 years old that introduces them into open source contributions with some tasks involving coding, documentation, artwork, etc.

In the end of this program, each participant open source organization selects two winners based on their involvement with the community projects and the number of tasks that they have completed.  I have participated in this program as one of the mentors for the KDE community and this previous post explains about how amazing my experience was.

The selected student winners have the opportunity to travel to the Google HQ with their family to meet Googlers, visit Google offices and have fun in SF. They can also meet some mentors from the GCi program as each open source community can select one mentor to go for this travel. The travel happened during four days (June 24-27, 2019) and there were a lot of interesting activities that I will list below.

June 24

  • On the first day, we had a nice welcome reception where we had some presentations from Google telling about how successful the program was in the last edition. Everyone could receive some gifts, including some nice jackets and an amazing backpack! 🙂
  • There were also a lot of foods and, as the reception have happened in the office closer to the SF-Oakland bridge, we had the opportunity to see this amazing view:

IMG_20190624_181952
SF-Oakland Bridge

June 25

  • On the second day, we have visited the Google offices in Sunnyvale and I had the opportunity to talk with our KDE students winners (Billy and Pranav) and their families about our community, open source and the GCi program.

IMG_20190625_102410
Photo with our KDE students (Pranav at left and Billy at right).

  • I also had the opportunity to meet some mentors and students from other open source communities like Apertium, Fedora, Sugar Labs, OpenWISP, PostgreSQL and others. In these meetings, I could talk to them about KDE and also know more about their projects as well, learning more about open source.
  • We also had enjoyable presentations from Googlers about different topics like Tensorflow, Chrome OS, Google Assistant and other projects from the company.

June 26

  • This day started with a ride in the Segways through the streets of SF.

IMG_20190626_114324.jpg
Riding a Segway through the SF bay.

  • Then, we went for a walk in the famous Golden Gate bridge (which is not actually golden, but #FF4F00 [international orange]).

IMG_20190626_141849.jpg
Nice walk through the Golden Gate bridge.

00000IMG_00000_BURST20190626152929872_COVER.jpg
Yay!

  • And in the end of the day, we sailed on a yacht and went through all the SF bay.

IMG_20190626_180528.jpg
I have never been on a yacht before, haha.

June 27

  • In the last day, we had some presentations from students and mentors about their communities and projects.
  • I also have participated in a video recording from Google, being interviewed and answering questions about the impact of open source in my career and how it has changed my life.

img_20190627_145609.jpg
It was nice to meet you, Stephanie!

And that’s all folks! Thanks KDE for this great opportunity, it was amazing! I also would like to say thanks to Stephanie Taylor, Saranya Sampat, Tony Urso, Radha Jhatakia and all the Google open source team for providing this event and for encouraging our students to become great developers and contributors.

I am going to Akademy 2019!


I'm going to Akademy 2019
This year I will be going to my second Akademy to meet my KDE friends again, discuss about future plans for the community during BoF sessions, participate in workshops, code and learn more about free software, KDE projects and Qt! One more interesting thing is that this time I am going to present a talk about our new features in kpmcore library because of the release of KDE Partition Manager 4.0.

The conference will be happening in Milan, Italy between September 7th and 13th. If you are around this city during this period and want to know about our community, please feel free to join us. Make your registration here.

Living in Canada – My experience as an exchange student

There has been some months since my last post here. It has happened because I was in Canada since the beginning of this year, being very busy and having a lot of assignments to do. I was selected to be a exchange student, receiving a scholarship that was given by the government of Canada in the Emerging Leaders in the Americas Program (ELAP). I have traveled to the city of Cranbrook, British Columbia, to study in the College of the Rockies. It has been an amazing experience for me and I will explain why.

Before the beginning of the exchange program, I was waiting for my approval in ELAP since February 2018, as I have received the news that I could be selected. Then, only in December they have confirmed my approval and I was very happy for that. However, I had to arrive at Canada until January 2019, so I had less than a month to prepare all the things related to my visa and tickets. It was a crazy rush, as we were closer to December holidays and there were some delays during this process. I have received my visa only after the beginning of January and then I could buy my airplane tickets and plan the travel. For those who are reading this and are living in a similar experience, one good advice is that you need to try to relax and look at the things in a good way as there is nothing to do except hoping that your visa will be approved and that everything is going to be ok.

After this process, I could arrive in Canada. Because of the visa delay, I have arrived after two weeks of classes in the College. I was very busy trying to complete the assignments that I have lost during this period and studying the contents of the courses. My program was focused on a Statistics course and two other courses focused on Academic Writing/Reading and English Conversation. These first moments were kind of complicated for me as I was getting myself adapted to this new culture and this different type of education. I have noticed that the education in Canada is a little different from Brazil, as most of the Brazilian universities and colleges give more autonomy for the students’ learning process, and in Canada there were a lot of homeworks and assignments that were evaluated later, being part of the final grade and you had to complete them to achieve a good mark. It happened in all the courses that I have taken, so I suppose that this is a normal thing.

In terms of culture, since the first days living in Canada, I was always very impressed with the way that people build relationships in Canada and how they respect the personal space of each person. Most of the people are very polite and respectful, and everything works fine. It is very different from Brazil, where everything is kind of chaotic. Canada looks more organized than Brazil in terms of how the things work and I have liked that a lot.

Another point is that I have arrived in Canada during the winter, so it was very cold. I have never seen snow in my entire life, so it was amazing for me to see that. I got used to the cold weather as I am not a summer person and I prefer to stay at home rather than going to the beach, haha. In Brazil, I live in a city where the common temperature is around +28ºC, while in Cranbrook, the common was -15~20ºC during that winter. Even though my hands were freezing at some times, I was very excited to experience this weather for the first time in my life, hahaha.

Essentially, this was an experience that will change me forever as a person, professional and student. This change happened because there I could learn a new way of thinking and behaving, being a more organized and polite person. In terms of education, I could improve myself and focus on getting the things done. I will miss all the friends that I have met there and I hope that someday I can go back to that country for a visit or even to study again or to work there.

marK – Starting the Development of a General Purpose Tool for Data Annotation

In the end of October, I have decided to make a simple tool to help me with some annotation procedures in two projects that I am involved into. These projects are related to Computer Vision and Artificial Intelligence applications. So I decided to evolve this idea, aiming to make this simple tool become a more complex application. It is called marK and will help people in the process of data annotation, specially with large datasets and multiple types of data such as images and texts.

Well, for those who don’t know nothing about AI, specially when the topic is Machine Learning, there are two main different learning processes: supervised learning and unsupervised learning. The first one is a task where your algorithm learns a function by mapping an input to some output based on some examples of correct input-output pairs. The second is just the opposite of it, where your algorithm will learn by itself as it identifies some common parameters in all the received input.

The idea behind marK is to help people with the process of supervised learning. In this learning process, you need to collect a group of examples to make your algorithm learn some task. These examples are united in a dataset and they normally have a collection of raw input data and the expected outputs, which are identified by labels or some other patterns. Data annotation tools are responsible for helping people to create these labels or outputs.

We can work with different types of data as this learning technique can be applied to different contexts and situations. Not only for the Computer Vision area, but as well for the Natural Language Processing and Pattern Recognition areas. Actually most of the data annotation tools offer support to only a specific data type and have a lot of issues that complicates the life of those who are willing to construct a dataset for their algorithms and studies. Most of them are proprietary, by the way.

I have already started the development of marK. It is being developed in Qt and actually offers support to the annotation of images with different types of output such as JSON, XML and pixel maps. You can annotate a single image or a group of images from a directory. More classes can be added as you annotate your entities with the possibility of choosing highlight colors. It is kind of sketchy right now because I need to improve some issues with some widgets and the GUI. You can see it working in the GIF below:

ezgif.com-video-to-gif
Ignore the QAnnotator name (I was think about calling it like this before decided to call it as marK) and the bad annotation around the Will Smith face. xD

This will be an important tool for those who are interested in this area, specially because it will be a free software to solve the problems that I have mentioned before. I hope to release this project as soon as I can get more time to work on it. Feel free to build the code and try to test it. You can also contribute to the issues that I have included on its current repository on Github and implement some new features.

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: