Matheus Saldanha's WebPage

Welcome to my humble abode!

Photo of Myself

Hello, and welcome to my page!

This page was originally supposed to be a playground for me to practice web development, but I hope it also serves for publishing information about myself and my research.

I'm currently a Computer Science undergraduate student, with research interest in low level aspects of a computer, close to the hardware level. In general, however, I like gathering smaller chunks of knowledge on a broad range of areas of Computer Science, so that I can face a large number of problems without feeling completely ignorant.

I'm currently researching about Statistical Learning Theory applied to chaotic time series prediction. Since I've been enjoying to do science, I'm currently arranging things so that I can research for the rest of my life.

lab beaker


lab beaker

Even though I haven't done much research yet, I would like to establish a place to make results of my current and future research publicly available here, in my website.

Each research project has its own webpage, so I'll organize all of them in a "mapping" webpage, which you can access by clicking the links that surround this text.

The link is also available in the navigation bar on the top of the page :).

Academic Info
graduation hat

Institute of Mathematics and Computer Sciences - University of São Paulo
Major Computer Science
Occupation Undergraduate Student
Contact Enable javascript to see.
Statistical Learning Theory
Time Series Forecasting
Applied Statistics & Mathematics
Machine Learning & Deep Learning
High-Performance Computing
Web Development
Lattes CV

(Computer Science)

Elf Projects
circuit board

I've been developing plenty of libraries and programs under the code name Elf (see Why Elf?).
Check out some of them:

Why Elf?
question mark

I've felt the need for having a code name when I was making Elf C Library, where I faced a problem that is relatively common when programming: namespace conflicts. The user of my library will probably include other libraries, and I had to make sure the names of functions or variables in mine didn't conflict with others'. That's why it's not a good idea to define a create_graph() function in my library, because the name "create_graph" makes sense in a lot of contexts, making it easy to imagine that other libraries also use it, which would cause problems. Inspired by how Gnome designs its libraries, and by their programming guidelines, I decided to adopt a namespacing name, that is, instead of defining create_graph(), I'd use NAMESPACE_create_graph(). I ended up choosing "Elf" not only as the namespace, but also as a code name for my projects. In the following, I elaborate on the reason for such selection.

When I was younger, I got sort of addicted to Runescape. Runescape is an adventure medieval MMORPG game in which the player assumes the role of main character of an epic story that advances as the player completes quests. There is a lot to do besides completing quests, such as honing one of your 25+ skills, fighting bosses, playing minigames, etc; however, what kept me playing the game for over 10 years were most likely the breathtaking lore and soundtrack. Hence, I was the type of player - not a common type, in fact - that liked to complete quests paying attention to the story being developed, rather than looking up guides and rushing through them. On the other hand, I've always been bad with combat such as boss fighting and player-vs-player fights. In what follows, I'll talk a bit about the lore, so I'm obliged to give you a spoiler alert: the paragraphs below contain spoilers.

As the player completes quests, they get to know more about the lore and, particularly, about many kinds of creatures that live in Gielinor, the planet where the player lives in, and in other planets too once you get deep into the quests. Dwarfs, gnomes, goblins, trolls, aviansies, they are all among the creatures you get to know more about through quests. By maybe the third year of my Runescape experience, I had advanced enough to begin doing the quests that would allow me to wield crystal weapons, a very powerful class of weapons by that time, so I began my adventure through them.

Image showing entrance to Underground Pass.
Entrance to the Underground Pass, that leads to Tirannwn (click to expand).

Eventually, when I was doing one of the most difficult quests, I finally defeated some powerful mage that was blocking passage within a dungeon that connected the city of Ardougne to the still unknown other side. I reached, then, the other side of the dungeon; suddenly from the darkness I emerged in a beautiful forest, filled with creatures I had never seen before (such as grenwalls), and surrounded by an astounding soundtrack that mesmerized me every time I visited that place. One of the songs, Crystal Castle, has never left my memories even after having stopped playing; well, I showed this song to a precious person at that time, so it's all the more the kind of thing one doesn't easily forget.

Image showing the forest seen after crossing Underground Pass.
The forest you see once leaving the Underground Pass (click to expand).

Continuing with that quest and its successors, I got to know the story of elves. By that time, the quests didn't give much detail on elves, it was actually a content yet to be well developed. This was clear because there was a city on the map called Prifddinas, but it wasn't accessible by players as the elf guards wouldn't let you in. That city would only be fully released many years later. Regardless, the little story that was available about the elves at that time was enough to completely change the way I view the game: elves really are an amazing species, and their story is fascinating. They are known for being pacific, very intelligent and masters of using crystals for building weapons and buildings; let me tell you more about their origins.

Section of Prifddinas, the city of Elves.
Prifddinas, the city of Elves (click to expand).

Guthix was a normal creature that ascended to godhood when he acquired an Ancient Artifact. He roamed throughout the universe and stumbled in Gielinor, the player's planet, which he found so beautiful that he stayed there. In his trip around the universe, he also eventually visited Tarddiad, a planet inhabited by elves and their goddess Seren. Guthix felt that Gielinor was so beautiful that peaceful creatures, such as the elves, deserved to get to know it, so he invited Seren to bring elves there. With this, elves gradually migrated to Gielinor, around the beautiful forest I mentioned earlier. However, as years passed by, other gods also found Gielinor and started inhabiting it with their followers, which included creatures and gods that promoted war and chaos. This made Gielinor fall in an enormous war called The God Wars.

Seren, the god worshipped by elves.
Seren, the god worshipped by elves (click to expand).
Baxtorian, an elf.
Baxtorian, an elf (click to expand).

The forest in Gielinor where the elves lived, Tirannwn, was safe at first since nobody attempted an invasion against it. Things eventually changed, though, and the war reached the elves too. The military elven clan defended their land and defeated every invasion attempt, while the construction elven clan fortified the walls of Prifddinas, the city of the elves in Tirannwn, in order to protect the civilians. Eventually, the war reached proportions so big that Guthix, which was in some sort of slumber, woke up to find Gielinor in ruins. He then used all his power to banish the presence of any god within Gielinor, including Seren. Seren, however, could not leave the elves because they had developed some sort of dependence on being near her energy, and being far away for too long would render them ill. She, then, shattered herself in tiny crystals scattered over Tirannwn, so that the elves could continue living in Gielinor, and possibly develop a healthy relation with other creatures.

Guthix banishing gods from Gielinor.
Guthix banishing gods from Gielinor (click to expand).

Well, there is more to the story than what I've said here, which can be found here. Better than reading the story is playing it while surrounded by the beautiful soundtrack of the game. What I can say is that I was deeply moved by such story, by Seren's attitude of placing her followers, the elves, above any other kind of mundane desire, such as war, power or territories. Above that, the elves are really a special creature within the universe of Runescape: they are knowledgeable and treat knowledge as a very valuable artifact, which led them to develop precious technology that could only be handled by themselves; namely, crystal manipulation and their own magic spells. They could possibly defeat any other creatures in a war, obtaining as much land and power as they wanted; but no, they opt to live peacefully with nature, as preached by Seren, and Guthix as well.

The name that has this beautiful and meaningful background story, that's the name I want to develop my research and projects under. Hence, Elf Projects.

Elf Projects Logo.
Elf Projects Logo.

Programming Cradle

Everything started because I really took a liking to a certain online game, Runescape, due to it's intriguing and beautiful inner lore, greatly enriched by a well composed soundtrack. However, to dig deeply in such story, one needs to complete a lot of what are called quests, which in turn require your in-game character to meet certain requirements regarding levels and skills. Levelling up isn't easy, requiring an infinite amount of tedious, mouse-intensive, repetitive activities. This led me to search for an easier way to level up and sate my desire for knowing the lore.

Image showing Varrock, a city of Runescape.
Varrock, one of the main cities of Runescape (click to expand).
Image showing Prifddinas, a city of Runescape.
Another main city, Prifddinas (click to expand).

Eventually, I got to know some platforms that offered off-the-shelf automation software for many tasks in the game. Within the game's community, players that use such software are commonly called bots, and the activity itself is referred to as botting. Having caught my attention, the botting world dragged me in, and I began automating my in-game activites too. The first botting platform I used, Powerbot, was very powerful, based in Java, and had a huge amount of users and available software. There were 3 problems, though:

  1. Java was a very difficult language to read, and by that time I couldn't understand any code regardless of how much I tried (today I know why);
  2. botting is against the game rules, so the game administrators were actively trying to find and ban botters from the game;
  3. due to this platform's popularity, it received special attention from such bot-watching administrators.

And due to these reasons, I tried looking for another botting platform.

At some point, I found another platform, Villavu, which was very good but for other reasons than those of the previous platform's. For a start, it was based in Pascal, which was a language that I somehow managed to figure out how it worked. Also, although this platform didn't have many available software, the community was really active towards helping everyone make their own programs, which was probably the key in leading me to begin programming.

Then finally, yes, I began programming. This was where it started. Pascal was my first language, and I managed to write many botting programs with it. When I look back in those days, I find it funny that I managed to write programs with just a few Pascal constructs I managed to understand how to use; I never used a pointer, or allocated heap memory, for example. Creating a type structure? Not even once. In spite of having only a few known language tools at hand, I managed to make programs so complex that still make me giggle in perplexity nowadays.

Image showing a snippet of Pascal code I wrote.
Snippet of Pascal code of a bot I once made. I keep all of them for good remembrance.

Then, through programming, I paved my way to being among the top 2000 players in amount of experience, and managed to achieve the completionist cape, which shows you've completed all the main activities of the game. There is a trimmed version of such a cape, but university forced me to stop playing before I could get it. It was an amazing experience, and I had plenty of fun; no matter how against the rules it was, I cannot say anything but "it was absolutely worth it".

Interests (Miscellaneous)

In my free time, I like to either learn other computer things unrelated to my university deeds, study japanese language, listen to music, watch videos on Youtube (mostly gameplays) or watch animes. There are plenty of interesting things to learn about computers that the university won't teach you, such as how an operating system works in-depth, how to write drivers, currently popular frameworks (for general purposes, user interfaces, web development, etc), programming languages of different paradigms, contributing to open source projects etc... That's the kind of thing I sometimes study.

I began studying japanese due to a suggestion of a psychiatrist I used to go to. He himself liked languages and knew plenty of them, so when I failed to follow any of a big list of suggestions I was given, he came up with a "What about learning another language?". Japanese language had already caught my attention due to my watching animes, so I felt like giving it a try, especially considering that the psychiatrist gave me some hints on how to begin studying a language. Then I started learning it, and eventually caught myself having fun studying it, which was when learning japanese stopped being a means by which I could some day understand animes without reading subtitles, to become a precious source of entertainment and mind cleansing. Nowadays, 日本人のように日本語を話せるようになりたい.

The kind of music I like is anime soundtracks (background music, openings and endings), J-Pop and classical music. Most of the time I listen to the former 2, though, since I can't face classical music as an item to consume massively. My favorite composition is Dvořák's 9th Symphony "From the New World", but I only listen to it every few months. I'd also like to mention Liszt's "La Campanella" and "Hungarian Rhapsody No. 2", and Vivaldi's "Four Seasons" suite.

On Youtube, I like watching gameplays from 弟者 (otoja) and おついち (otsuichi). This way, I can watch gameplays while learning informal japanese: 一石二鳥 (two birds with one stone)! Sometimes I also watch MMD videos.