About Life

It has been some time since my last post. Lately I couldn’t keep up with the post routine, as I was with LOTS of things to do, but today I reserved some time to write what I have been doing, thinking, studying, writing… So, let’s divide this in some sections:

Google Summer of Code 2020

It was a success! Although I still did not merge my student’s code, I will try to do this until the end of next week. He passed trought all evaluations with flying colours, finishing all his listed tasks and writing his progress in his personal blog. His tasks involved the implementation graph drawing algorithms from scratch by researching some related papers. In total, he submitted three graph drawing algorithms for general graphs, trees and DAGs, respectively, together with a suite for testing the quality of the configurations. More information about the final state of his project in the final status report. The only thing that makes me sad this year is the virtual mentor summit, as I was really looking forward to personally knowing more mentors. ):

Master’s Dissertation

Writing my master’s dissertation is proving to be a difficult task. Although I already have most of the results written in personal notebook, the proccess of formalization, creating examples and literature searching is arduous and does not help my sanity (neither my sleep schedule) in the middle of this pandemic. But little by little I am winning over this monumental challenge. Today I talked to my advisor and we decided to plan some papers because I work better with defined deadlines. Recently I got an accepted paper at the SBPO 2020 and sent a poster to the LAWCG 2020. My next challenge is to write a paper for the LAGOS 2021 with the most important results of my master’s (that will become a chapter of my dissertation) and eventually group everything for a journal (that has yet to be decided). So, this month is the month for my dissertation, as I have to finish this paper. So good luck me!


As a way of keeping my sanity and run from my dissertation, I began learning things that have nothing to do with my dissertation. I choose the specialization Mathematics for Machine Learning of the Imperial College of London on Coursera. It is a pricey (for a brazilian) course, but the first two courses of the specialization are worth every penny I spent:

  • Linear Algebra for Machine Learning;
  • Multivariate Calculus for Machine Learning.

Right now I am at the beginning of the third couse, called PCA for Machine Learning and I have high expectations. I recommend heavily this course for anyone that want to learn more about machine learning. After this specialization I want to try the Stanford Machine Learning course, and I hope that both courses complement each other.

And, alhought I said about running from my dissertation, I dusted off my book on Machine Learning on Complex Networks that I won with my best tool award in CBSOFT 2018 and began reading him all over again. So, yeah, I am still trying to connect everything after all. Also, I really recommend this book for an incredible introduction of the intersection between complex networks and machine learning. You can think complex network as similar to graph theory, but the interest lies not in the static properties of the network but on it’s dynamical properties over random walks, tourist walk, epidemic spreading (!), etc.

Personal Projects

I am trying to stop all side projects for now to focus on my dissertation. So, my plants on my automated greenhouse test died (RIP) and I will sow more seeds when my life is more calm. My research project with Mateus over at University of Bergen (the graph isomorphism one) is also stopped, so I will have to check on him later. My hackerspace projects are the same.

Sad Caio is sad. ):

Personal life

I began exercising over 4 months ago by using the app Freeletics. This helped me clear my mind and find more energy to do my everyday tasks. Don’t ever forget how important exercises are. Right now I have some equipments here at home that help my training, but no more than a place to lie on is needed to begin. Also, I now have a girlfriend. Who the fuck begin dating in a pandemic? But, well… It happens (and I love her).

To wrap this post up, I am after some job. It is not easy to be a student without a scholarship, so money and curriculum for the industry is currently needed while I don’t decide my future. The future is uncertain, so I need to be prepared. After I defend my masters I will begin thinking about a PHD, but no sooner.

Thank you for reading!

GSoC 2020 and KDE

Tomorrow (29/06/2020) begins the first evaluation of the Google Summer of Code 2020. Last GSoC, when I was participating as a student, I wrote in my final report a set of future proposals that could be done in the ROCS graph IDE (Section What’s Next?). This year, some students got interested in these ideas but only one could enter the program (we didn’t have enough mentors for more than one project). Here are the list that I proposed:

  • Implementation of a better algorithm to position the nodes and edges on the plane. I can recommend the use of Force-directed graph drawing algorithms, because they are usually fast and are physics-based;
  • Create a better interface workflow for the program. I can recommend something like the Possible New Configuration image. This configuration consider that the user will spend most part of the time programming, so it creates a better writing space, while the view has a more square shape, which is (in my opinion), better for visualization;
  • Remodelation of how each graph is represented in the javascript code. The type system is good to provide a global configuration, but I think it falls apart when dealing with individual edges and dynamic creation of subgraphs and new edges/nodes (which is needed in some algorithms);
  • Rewrite the view to deal with some problems related to the space of the graphs that is really limited, mouse clicks not working correctly and bad navigation;
  • Change how the icons are used by the ROCS, as some icons don’t have cross-compatibility between some systems.

From this list, Dilson decided to tackle the first one listed. Here is his proposal. Most of the best algorithms involves some type of heuristic inspired in physical motions in the graph, being really fast and good in most graph classes (although there is specialized algorithms for some graph classes). You can see more of his work here. He is doing a great job by showing a good understanding of the algorithms and methods while giving a great amount of thought in the test process (as it is not trivial to test random algorithms).

For now, he implemented a layout algorithm that is an adaptation of the Fruchtermani-Reingold algorithm that works only on connected graphs in a special plugin that controls each physical forces inside the model. I will be giving some updates on his work sparsely in this blog. Please check his blog for more details if interested. :)

Improvements and Future

This is a special post to mark a new version of this blog. New posts will now have a set of tags associated and these tags have their own page where it is possible to see all related posts. Besides this, I can generate rss feeds for specific tags, like the special KDE rss feed that is linked direct to the KDE Planet site. The old generic feed still works. There also possibility to add comments with disqus , but it will be deactivated for now, as I don’t want to pay for a plan or have ads in my personal blog.

All of this is done to let me write about more than KDE, expanding the subjects of this site to my personal projects and my life. For some time I wanted a place to write freely about what I wanted to do now and in the future, and this is a place for this. So, I am not only trying to improve the blog, but also myself. To become a better programmer, a better researcher and a better human overall.

But, for now, let us talk about the future. I am in the end of my masters degree and the future is uncertain for me. Trying to enter a PhD, writing my dissertation, trying to find a job to add to my curriculum, mentoring a student in the Google Summer of Code 2020, trying to maintain my personal projects and keeping my personal life in check takes a toll on the mind and body (and the pandemic does not really help much).


When the pandemic began, I was having serious problems in keeping up the same amount of work that I was doing before. But, as the weeks went on, I developed some techniques to overcome my limitations: First, I needed to explicitly list what I was going to do everyday with a flexible and simple system of markings that permitted me to postpone some checks and mark a work as half done (I used a very nice handmade notebook that I bought some time ago). Second, I needed to divide my room space into places where I could work, have fun and sleep, based on this video. While I already did some of that before, this time I had to be more strict to myself.

But then, I had to face against my worst enemy: A good sleep time schedule. Keeping bad sleep schedules and working in the worst possible hours always have been my worst problem since as a child. Although I did not yet fully fixed this, I am way better nowadays. I applied some rules to my day-to-day life that helped a lot (I do not remember from where I saw this for the first time):

  • Stick to your plan;
  • Give yourself time for adequate sleep;
  • Maintain a strict and consistent sleep schedule;
  • Don’t vary by more than 60 minutes on the weekends;
  • Limit caffeine after lunch;
  • Create a relaxing night time routine;
  • Avoid electronics, bright lights and stress before bed;
  • keep your bedroom quiet, dark and cool;

I adopted blue light filters to almost all electronics that I own and I am limiting my caffeine intake to just one mug in the morning. The problem is the relapses that occur when I feel that I am more anxious about my future or personal problems. I still don’t know how to properly fix this and maybe I will have to go to see a professional, but for now is good enough, as this last weeks I seem to be maintaining a good morning routine. I am a lover of breakfasts (a good coffee, some bread & butter in a good morning sun and cold breeze), so these last days have been great.

In future posts I will describe better my personal project and goals, but I will list some of my interests and goals for now:

  • Finish my master’s (PRIORITY);
  • Finish this years GSoC with success for me and my student (PRIORITY);
  • Finish some planned papers;
  • Go back to working in the Graph Isomorphism problem;
  • Submit PhD applications;
  • Submit job applications;
  • Focus on my old Automated Greenhouse project (future posts);
  • Focus on the SwarmBot project (future posts);
  • Help the Hackerspace Maringá in some projects and improvements;
  • Finish 2020 still sane and alive (PRIORITY?)

There is many things to be done, but so little time. Thank you for whoever read this post, stay well.

Discipline and clarity of mind for a better tomorrow.

Lakademy 2019

I’m now writing this post in the last hours of the Lakademy 2019 (and my first one). It was really good to be “formally” introduced to the community and it’s people, and to be in this environment of people wanting to collaborate to something as incredible as KDE. Althought I wanted to contribute more to other projects, I did some changes and fixes in the rocs, wrote my Season of KDE project and got some tasks that can help with the future of rocs.


This event showed me the passion that even the most veteran members have for the software, and how, even after years of collaboration, they are still teaching new members and putting everything they got to create better softwares for everyone. On the other side, seeing the new members collaborating for the first time with such desire to share and learn helped me with the energy to help more.


I just have to thanks KDE for everything they provided to me during these months of Google Summer of Code, for the help to come to Salvador to be a part of this community and for the good laughs. It was incredible! To the next Lakademy and (i hope so) Akademy. :)

Special thanks to Tomaz, that introduced me to KDE!

First Day of Lakademy

And Lakademy is finally here! This is not my first direct interaction with a KDE member, but I was sort of nervous to met many members at once, since it has been less than a year that I began contributing to KDE. As I got off the plane I got to know a member of the translation team with a KDE t-shirt and talked to him (he came in the same plane with me), and he introduced me to other members. We got to the hostel and, as we arrived one day earlier, we went out to drink, talk and eat acarajé (which was incredible). It was a nice evening and I got to know better the most veteran and new members.


Next day, we got up early to move to the Universidade Federal da Bahia and began the Lakademy. Some members went to buy groceries and some went directly and prepared the room. After a round of presentations, Lakademy was declared online! I spent most of the time reviewing ROCS code and wrote some fixes for redundant code and a problem with the interface that was introduced in one of the last commits. After that, I listed some tasks that could be done this week. We finished the first day of Lakademy sharing what we did and went back to the hostel to prepare to have dinner and some fun in Salvador. :)


Looking forward for the next days!