These are some of the main ideas I'm/I've been working on:
💫 Main project
VigoBus-TelegramBot: A Telegram Bot to check the buses by stops on my hometown. Split into 3 services (bot backend, bus+stops API, persistence API), could be easily ported to other cities or even other public transport systems that work on a similar manner. Deployed at @vigobusbot (stable) and @vigobustestbot (development).
⚙️ Libraries
- python-wait4it: wait for a TCP port to be reachable, or a function to pass without exceptions.
- ThisPersonDoesNotExistAPI: Python interface to acquire pictures from thispersondoesnotexist.com.
🔀 Node-RED Nodes
- public-ip-address: get the current public IP address.
- duckdns: update DDNS domains on DuckDNS.
🐳 Docker images
- Python-Git-App: image for deploying generic Python apps, that clones a repository and pip installs requirements when the container starts for the first time (from deprecated project).
- SSH-PortForward-Client: dockerized SSH client for SSH Port Forwarding.
- SSH-PortForward-Server: dockerized SSH server for SSH Port Forwarding.
🚉 Services
- ping2mqtt: ping multiple hosts and send ping results to MQTT topics
🧪 Proof of Concepts
- Telegram Bot Updates Receiver Service: microservice-based that receives Telegram Bot updates via Webhook, and publishes them on a queue or message broker.
- autonice: utility for setting nice in running applications based on settings
- pytelegrambotapi + Redis queue: microservice-based Telegram Bot that uses a Redis queue to enqueue client updates, and process them with multiple workers.
- Logging Requests: API that traces log records per-requests, using Loguru + context variables, to store the records grouped by each individual request.
- ZeroHealthCheck: decentralized service that healthchecks other nodes, using ZeroMQ.
- pydantic-etcd: modified Pydantic BaseSettings class that supports loading variables from ETCD.
- InventoryAPI: REST API to store generic items hierarchically or container-based, using ArangoDB and built as an Arango's Foxx service.
🗣 Talks & sample projects
- FastAPI+Pydantic+SQLAlchemy API (Pet Shelter sample): REST API with CRUD operations, built in Python with FastAPI, Pydantic and SQLAlchemy, simulating a fictional Pet Shelter administration system.
- FastAPI+Pydantic+Mongo API (sample): REST API with CRUD operations, built in Python with FastAPI, Pydantic and MongoDB.
- pytest (examples): introduction to pyTest and some of its capabilities, through examples.
- FastAPI (lightning talk): introduction to FastAPI.
- Pydantic BaseSettings (lightning talk): introduction to Pydantic's BaseSettings.
- Loguru+Context (lightning talk): usage of Loguru and context variables for logging.
🚘 GTA5/🐎 RDR2 Scripts
- GTAV-SimpleGangWar: simple battle creator between two teams (allies and enemies) that fight each other on a frontal clash. Intended to have a nice balance between simplicity and high customization.
- RDR2-SimpleGangWar: simple battle creator between two teams (allies and enemies) that fight each other on a frontal clash. Intended to have a nice balance between simplicity and high customization.
- GTAV-LocationalDamage: implementation of a realistic damage system that reduces armor or health based on where the damage is dealt (torso or other parts).
- GTAV-SelectiveFire: implementation of a selective fire mode for automatic guns (semi-auto and burst fire, plus full-auto).
- GTAV-AccuracyFix: override of accuracy levels for all peds, with multiple settings.
🧸 Scripts & others
- Spotify-Collaborative-Public-Playlists-Template: project to manage public Spotify playlists from Github, using Github Actions. The repository is a template that can be used to manage a playlist (one per repo).
- Hurdy Gurdy Rock/Metal playlist: playlist with many rock/metal songs that include a hurdy gurdy
- Sample/Test playlist: playlist used as sample repository, and for testing new features
- MQTT2NotifySend: bash script that shows notifications in Linux desktops using notify-send, from messages received through MQTT
- mkvmerge-zenity-scripts: compilation of GUI scripts to perform simple operations on videos, running mkvmerge, and using zenity/yad for modal windows.