Programming

“If you’re not slightly embarrassed to sing the lyrics, you’re probably not writing a good song” - Isaac Brock, frontman of Modest Mouse.

I would say the same applies to coding projects. Although the opposite is generally not true…

Open, reproducible science

I am committed to open science research, I think it is the correct way to go. I make code available whenever I can.

Project Keywords Status
Heterogeneous hypergraphs

Spectral centrality of directed hypergraphs

Code used to generate the figures of the paper "Beyond directed hypergraphs: heterogeneous hypergraphs and spectral centralities" arXiv:2403.11825.

Code of the paper "Beyond directed hypergraphs: heterogeneous hypergraphs and spectral centralities" arXiv:2403.11825.

Python, NetworkX, xgi Finished
Cluster synchronization

Cluster Synchronization Errors

Code used to generate the figures of the papers "Endowing networks with desired symmetries and modular behavior" Phys. Rev. E 108, 054309 (2023) and "The transition to synchronization of networked systems" Nat. Comm. 15, 4955 (2024).

Code of the paper "Beyond directed hypergraphs: heterogeneous hypergraphs and spectral centralities" arXiv:2403.11825.

Julia, Python Finished
Non-uniform centrality

Eigenvector-like centrality in non-uniform hypergraphs

Code used to generate the figures of the paper "Uplifting edges in higher order networks: spectral centralities for non-uniform hypergraphs" arXiv:2310.20335.

Code of the paper "Uplifting edges in higher order networks: spectral centralities for non-uniform hypergraphs" arXiv:2310.20335.

Python, NetworkX, xgi Finished
PageRank centrality control

PageRank centrality control

Code used to generate the figures of the paper "Can the PageRank centrality be manipulated to obtain any desired ranking?" Chaos 33, 083152 (2023).

Code of the paper "Can the PageRank centrality be manipulated to obtain any desired ranking?" Chaos 33, 083152 (2023).

Python, NetworkX, igraph Finished

Some projects I have carried out in my free time

Here I will showcase some of my GitHub projects, briefly explaining what I attempted in each of them and why.

Project Keywords Status
MarkovPlaysGuitar

Markovian guitar tab generator

After knowing of the possibility to automatically generate semi-coherent text using pre-trained Markovian chains, I decided to apply the same ideas to music (guitar tablatures in particular), with a very rudimentary tablature generator trained with .gp5 files. Furthermore, I designed a couple of memory-aware versions, to account for higher level musical structures.

Tablature generator from random walks on .gp5-trained Markov chains.

Python, Markov chains, Guitar tabs Improvable
MusicNames

Music name generator

I decided to put into practice what I learnt after some Deep Learning courses, specifically in regards to Recurrent Neural Networks (RNN) and Long Short-Term Memory (LSTM) cells. I trained an RNN with a huge list of musician names in order for it to generate more, letter by letter.

Recurrent Neural Network trained on a database of musician names to generate another one, letter by letter.

Python, Keras, RNN, LSTM Improvable
Cryptocurrencies

Cryptocurrency summary

For a while now I have been interested in the blockchain, and I acquired a bunch of cryptocurrencies (small amounts, I am not rich yet). In order to keep track of them, I created a simple Python script querying a local database to fetch the cryptocoins to then convert them to their euro value.

Simple Python script querying a local database to fetch cryptocurrency values.

MySQL, Python, HTTP requests Improvable
AudioWaves

Audiowaves

Some time ago I planned starting a podcast, and I enjoyed the idea of designing a script for podcasters, which would translate audio waves to different possible images or gifs, each with a unique style, out of the waves themselves or their frequency spectra.

Script translating audio files to images or gifs of the audio waves or their spectra.

Python, spectrum analysis, Matplotlib Stale
Simulations

Physics simulations

I carried out this project long time ago, for many reasons, including learning about differential equations solvers in Python, and for my personal interest and curiosity.

Monte Carlo and differential equation simulators for physical systems.

Python, SciPy, Matplotlib Waiting for inspiration
ThunderbirdToCSV

Thunderbird to CSV

During my first job as a programmer at the UAM's cluster, I was requested to develop a utility which automatically wrote a spreadsheet with information about all servers in the cluster, parsed from the email files received with the Thunderbird email client.

Parser developed when I was at the UAM, to automatically fill in a CSV from Thunderbird emails.

Python, OOP, Thunderbird, CSV Finished
MP3Organizer

MP3 Organizer

This was one of my first GitHub projects, a utility I wrote for myself, in order to automatically organize .mp3 and .flac files in my computer into different subfolders, based on the artist's name.

Utility to automatically move .mp3 and .flac files to their corresponding folder.

Bash, Linux, ShellScript Finished