Hi, I'm Lorenzo
๐ Third-year Computer Science student at Sapienza University of Rome
๐ฏ My main interests include:
- Artificial Intelligence & Computer Vision
- Software Engineering
- Systems and low-level programming
| Project | What it is | Stack |
|---|---|---|
| Link-Map | ๐บ๏ธ A personal knowledge base โ a digital garden of interlinked notes, published as an interactive graph with Quartz. | TypeScript SCSS |
| Concrete-Hunters | ๐ Lightweight, dependency-free exploration site โ lazy-loaded articles, photo carousels, and password-protected locations (AES-256-GCM). Pure HTML/CSS/JS. | JavaScript HTML CSS |
| JBlackjack | ๐ Blackjack game in pure Java Swing โ play against AI opponents with accounts, avatars, stats, level progression, looping soundtracks, and a MVC + Observer architecture. | Java |
| Finger-Slicer | ๐๏ธ A webcam Fruit-Ninja alike game where your fingertip is the blade and any photo becomes the fruit | Python |
| Client-Server-Cryptography | ๐ Multithreaded XOR block cipher with a TCP client/server in pure C. Encrypts files block-by-block across threads, sends them over the network, and decrypts them in parallel on the server. | C Makefile |
| C-Precompiler | โ๏ธ A dependency-free C preprocessor in pure C: recursively expands quoted #includes, strips comments, and validates identifiers | C |
Nothing in the generated sections is written by hand. Two scheduled workflows keep them current:
| Workflow | What it does |
|---|---|
| update-readme.yml | Runs update_projects.py, which asks the GitHub API for every public (not forked) repository and rewrites two blocks of this file |
| snake.yml | Draws the contribution-graph animation and publishes it to the snake branch |
The script reads only repository metadata โ never the files inside a repository:
| Column | Comes from |
|---|---|
Project |
the repository name |
What it is |
the repository's About description |
Stack |
the Languages GitHub detected (the same data behind the coloured languages bar) |
So a project is updated by editing its About field on GitHub, never by editing this README.
Badge colours are a SHA-256 of the language name mapped onto a hue, then darkened until white text stays readable. The hash keeps a language's colour identical between runs โ a genuinely random colour would rewrite this file everyday and commit it for nothing.
The two generated blocks live between HTML markers:
<!-- "STACK:START" --> ... <!-- "STACK:END" -->
<!-- "PROJECTS:START" --> ... <!-- "PROJECTS:END" -->
Everything outside them is hand-written and never touched.
It costs nothing to run. Public repositories get unlimited Actions minutes, every service used is a free public one, and there are no API keys or accounts to set up โ the workflows use the GITHUB_TOKEN GitHub creates for each run.
- Clone it and make it yours. On GitHub, create an empty repository named exactly your username โ that name is what puts a README on a profile page. Then:
git clone https://github.com/LM-official/LM-official.git YOUR-USERNAME
cd YOUR-USERNAME
rm -rf .git && git init # drop my history, start yours
git remote add origin https://github.com/YOUR-USERNAME/YOUR-USERNAME.git- Replace
LM-officialwith your username everywhere. One find-and-replace across the repository covers all of it: the stats cards, the snake images andconfig.py. - Rewrite the top of this README โ bio, interests, socials. Leave the four
START/ENDmarkers alone and everything between them will fill itself in. - Allow the bot to commit, before pushing: Settings โ Actions โ General โ Workflow permissions โ Read and write.
- Run it, by pushing. Both workflows also trigger on every push to
main, so the first one starts them:
git add . && git commit -m "My profile"
git push -u origin main- Give each of your repositories an
Aboutdescription, since that is what the table shows.
Nothing inside scripts/ or .github/ needs touching. The workflows read the owner from the repository itself, so the script already knows whose profile it is building. USERNAME in config.py only matters if you run it by hand (not recomended):
python scripts/update_projects.pyEverything adjustable lives in scripts/config.py:
| Setting | Effect |
|---|---|
MAX_DESCRIPTION |
where a long About description gets truncated |
MAX_STACK |
languages shown per project |
MIN_SHARE |
ignore Languages below this share of a repository |
SATURATION, LIGHTNESS |
how vivid and how deep the badges are |
MAX_LUMINANCE |
contrast floor against the white badge text |
COLOR_SALT |
bump it to any other value to redraw the whole palette |
This repository was designed and built by:
Released under the MIT License. See LICENSE.
๐ค The Tech Stack and Projects developed sections are generated automatically from my public repositories โ Names, About descriptions and detected Languages โ by a script that GitHub Actions runs every day.


