Projects
The following are some projects I've created/worked on that I feel proud of.
This is the
Emulsion board game written in javascript (front-end) and prolog (back-end). A CLI version written in prolog can be found
here.
A skill for the
mycroft A.I. assistant. It allows the user to search for an youtube video, download it and then add it to the play queue (among other functions). It was designed to be a free alternative to the spotify and pandora mycroft skills.
Pacman hook to save both Pacman native and AUR packages in
github gists, and utility to sync packages between machines.
My public dotfiles and scripts. A detailed description of these scripts can be found on the
repository.
A 2D shooter game based on the classic Snake. It has both a singleplayer and a multiplayer mode.
It was developed in low-level C: coding the interaction with RTC, mouse, keyboard, VGA and serial port by reading/writing registers, and using interrupt routines.
This introduction to
Python 3 was created and lectured by me and two of my friends (details and names in repository) in association with the
University of Porto IEEE student branch. It contains coding exercises, a wiki, and presentation slides.
Program that allows you to have an animated background on Linux (X11).
Convert an input PNG image file to a an output PNG image file where every pixel is a different color from all the others.
Webpage themed around "Collaborative Q&A": allows users to ask and answer each others' questions, with bounty and achievement features. Uses Bootstrap, Docker, Laravel, and PostgreSQL.
Given a building plan, decide where to put routers and how to connect them to the fiber backbone to maximize coverage and minimize cost (HashCode 2017 final task). Solved as an optimization problem using various algorithms: hill-climbing, simulated-annealing, and genetic algorithm.
Unsupervised learning problem about classifying beans from a dataset according to 16 attributes. Beans can be from 1 of 7 different classes.
Backup files with a given replication degree in a network using multicast communication. The files can be restored and disk space can be reclaimed by each peer.
Backup files with a given replication degree in a chord network using encrypted TCP connections. The files can be restored and disk space can be reclaimed by each peer.
A compiler written in Java and JavaCC. It compiles Java-- (Jmm for short), a subset of the Java programming language, to Bytecode (by first compiling to Jasmin). The compiler does syntactic and semantic analysis, and optimizes the generated code.
Program that, given a list of worker location and buses (with limited capacities), trace the fastest/shortest routes that allow picking up all workers (from bus stops). Implements various path selection algorithms in a map of
Porto, Portugal taken from
OpenStreetMap.
A website for arranging animal adoptions. Users can post pictures and information about animal so other users can propose themselves as the new owners. Written in HTML, CSS, Javascript, and PHP without the usage of external libraries, frameworks, or other resources like that. Inspired the amazing project
Be My Friend.
Low-level implementation of a file transfer protocol through the serial port. The app allows the configuration of the baud-rate and packet sizes, and is error resilient.
Flutter app to order food and beverages in conferences and have them delivered by drones. This is only a proof of concept, so there aren't real payment options or drones.
A game where you control a giant snake that must kill to grow and survive. Dodge and retaliate against the human armies, and destroy everything in your path. Don't forget to hide yourself underground, where you'll be safe for as long as you can hold your breath.
Read
Os Lusíadas by Luís Vaz de Camões from your terminal.
This is a command line tool to read the original epic by Luís de Camões in your terminal. The format and original implementation were taken from
bontibon/kjv.