refacto: vide-coding to get a terminal look

This commit is contained in:
Gauvain B
2026-04-21 11:49:33 +02:00
parent 4a98c30f09
commit e088991b5d
10 changed files with 1231 additions and 130 deletions

71
content/projects/ai_ml.md Normal file
View File

@@ -0,0 +1,71 @@
# AI & Machine Learning Projects
Experiments at the boundary of classical algorithms and modern deep learning.
---
## Handwritten Digit Classifier
A convolutional neural network trained on MNIST, built from scratch using **PyTorch** without relying on pretrained weights.
**Architecture:**
```
Input (1×28×28)
→ Conv2d(1, 32, 3) + ReLU + MaxPool
→ Conv2d(32, 64, 3) + ReLU + MaxPool
→ Dropout(0.25)
→ Linear(64×5×5 → 128) + ReLU
→ Dropout(0.5)
→ Linear(128 → 10)
→ LogSoftmax
```
**Results:** 99.2 % test accuracy after 10 epochs on a single CPU.
---
## Sentence Similarity Engine
A small semantic search tool that encodes sentences into embeddings and retrieves the most similar entries from a knowledge base.
**Approach:**
- Sentence embeddings via a fine-tuned BERT variant (`sentence-transformers`)
- FAISS index for approximate nearest-neighbour search at scale
- CLI interface — `search.py "your query"`
**Use case:** powering a private personal knowledge base search over Markdown notes.
---
## Reinforcement Learning: Grid World
A from-scratch implementation of Q-Learning and SARSA applied to a configurable grid-world environment.
**Implemented:**
- Tabular Q-learning with ε-greedy exploration
- SARSA (on-policy variant)
- Policy iteration and value iteration for comparison
- Visualiser showing the learned value function as a heatmap
**Written in pure Python + NumPy** — no RL libraries — for learning purposes.
---
## Anomaly Detection on Time Series
A pipeline for detecting anomalies in server metric data (CPU, memory, latency).
**Methods compared:**
- Z-score baseline
- Isolation Forest
- LSTM autoencoder (reconstruction error threshold)
**Outcome:** LSTM autoencoder outperformed statistical methods by ~18 % precision on labelled incidents from a personal homelab dataset.
---
*Press Q or ESC to return.*

View File

@@ -0,0 +1,69 @@
# Systems Programming Projects
Low-level work: operating systems, compilers, networking, and performance engineering.
---
## Tiny HTTP/1.1 Server (C)
A from-scratch HTTP server written in C that handles concurrent connections using `epoll` on Linux.
**What it does:**
- Serves static files with correct MIME types
- Handles `keep-alive` connections
- Parses request headers manually (no third-party parser)
- ~1,200 lines of C — intentionally minimal
**Interesting problems solved:**
- Non-blocking I/O with an event loop
- Incremental parsing of chunked request bodies
- Safe path traversal (no `../` escapes from the document root)
---
## Shell Implementation (C)
A POSIX-compatible shell (`mysh`) supporting pipelines, redirections, background jobs, and a small built-in set.
**Supported features:**
- Pipelines: `cmd1 | cmd2 | cmd3`
- I/O redirections: `>`, `>>`, `<`, `2>`
- Background jobs: `cmd &`
- Job control: `fg`, `bg`, `jobs`
- Signal handling (SIGINT, SIGTSTP, SIGHUP)
**Focus areas:** `fork/exec` model, `waitpid`, file descriptor management, signal masking.
---
## Memory Allocator
A drop-in `malloc` replacement using `mmap`-backed free lists with coalescing.
**Algorithms implemented:**
- First-fit and best-fit strategies (switchable at compile time)
- Boundary-tag coalescing to reduce fragmentation
- Thread-local caches for small allocations (reduces lock contention)
**Benchmarked** against `glibc malloc` on synthetic workloads — within 2× for mixed-size allocations.
---
## Bytecode Interpreter (Python → C)
A small virtual machine that executes a simple bytecode format, written in C. The front-end compiler is written in Python and produces `.bco` files.
**VM features:**
- Stack-based architecture (inspired by CPython)
- 30 opcodes: arithmetic, comparisons, jumps, function calls, closures
- Mark-and-sweep garbage collector
- Disassembler for debugging (`--disasm` flag)
---
*Press Q or ESC to return.*

View File

@@ -0,0 +1,56 @@
# Web Development Projects
A selection of web projects — from small tools to more complete applications.
---
## Terminal Portfolio *(this site)*
> The page you are currently reading was itself a project.
A fully static portfolio designed to look and behave like a Unix terminal. No framework, no build step — just HTML, CSS, and vanilla JavaScript.
**Key features:**
- CRT aesthetics: scanlines, flicker animation, bloom/glow on text
- Blinking rectangular cursor that follows mouse clicks
- Markdown content tree loaded from a manifest — add `.md` files without touching `index.html`
- Keyboard navigation (arrows, Enter, Escape, Q) + mouse
- Dynamically sized terminal window (responds to viewport changes)
**Stack:** HTML · CSS (animations, custom properties) · JavaScript (ES2020) · marked.js
---
## Personal Finance Tracker
A small single-page application to track income and expenses with monthly breakdowns.
**Highlights:**
- No backend — all data stored in `localStorage` with a clean JSON schema
- CSV import/export for moving data to spreadsheets
- Chart visualisation using the Canvas API (no libraries)
- Fully keyboard-navigable
**Stack:** JavaScript · CSS Grid · Canvas API
---
## REST API Boilerplate
A reusable Node.js/Express skeleton with authentication, request validation, and structured logging built in — designed to be forked and extended.
**Features:**
- JWT-based auth with refresh tokens
- Zod schema validation on all endpoints
- Structured JSON logs (pino)
- Docker Compose stack (app + PostgreSQL)
- OpenAPI spec auto-generated from route definitions
**Stack:** Node.js · Express · PostgreSQL · Docker · Zod
---
*Press Q or ESC to return.*