[
life
gsoc
dissertation
courses
]
02 Oct 2020
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!
Study
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!
[
kde
gsoc
2020
]
28 Jun 2020
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. :)
[
life
organization
]
27 Jun 2020
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.
[
kde
gsoc
2019
]
17 Nov 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!
[
kde
gsoc
2019
]
15 Nov 2019
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!