Two rotated ellipses crossing at four numbered points, with the coordinates of each point listed beside them

Intersection of Two Rotated Ellipses

Move two rotated ellipses and see where they cross, then the exact solution: from the ellipse equation to a quartic, solved with Ferrari’s method.

en anglais
The top of the forecast report: a day ahead, the temperature forecast misses by 1.3 °C on average

Montréal Forecast Reliability

Thirty days of Montréal forecasts graded against the station next door. Temperature is 1.3 °C off a day ahead; seven in ten rain calls were false alarms.

en anglais
Montréal outage statistics from the Hydro-Québec reliability report

Hydro-Québec Outage Analysis

Two months of Hydro-Québec’s public outage feed, graded: regional reliability, Montréal boroughs, ETA accuracy and causes. Interactive charts and map.

en anglais
DOMIA architecture: the agent loop, its tools, and the drivers for web, mobile and desktop

6 min

Building an AI Agent for End-to-End Testing

Chat, function calling and the agent loop in Python, then DOMIA, the testing agent I built on Google ADK and Gemini, in three recorded runs.

en anglais
Code-barres en mode sombre

Pourquoi une carte d’embarquement en mode sombre ne se scanne pas

Pourquoi un lecteur de codes-barres a besoin d’un réglage de couleur de premier plan, et ce qui se passe à une porte d’embarquement quand il ne l’a pas.

A circular saw blade with the arbor hole at its centre

4 min

Counting Saw Blade Teeth with Edge Measurement

Why scanning a circle around the arbor hole works on real images where thresholding doesn’t, and how the tooth spacing checks the count.

en anglais
Illustration: pool schedules turned into a search index that feeds a chatbot’s cited answer

5 min

Building a Chatbot That Answers From Your Own Documents

A RAG chatbot over Montréal’s indoor pool schedules: one text file per pool, embeddings with LlamaIndex, a ChainLit chat and a link to the source.

en anglais
Scatter plot of the failing case, with input data points and cluster centres marked

3 min

Finding an Infinite Loop in Scikit-Learn’s K-Means

An input that makes scikit-learn’s K-means loop forever: the bug in its empty-cluster handling, the report I filed, and the fix.

en anglais
VMMap snapshot showing memory states as columns and memory types as rows

10 min

Windows Memory Management: Private Data, Stack, Heap and Mapped Files

Each memory state and type in a VMMap snapshot of a Windows process, with VirtualAlloc, file-mapping and std::vector examples.

en anglais
Diagram of virtual memory mapped onto physical memory and the page file

4 min

Windows Memory Management: Virtual vs Physical

How the Windows Memory Manager separates virtual from physical memory, and a C++ tool that records where a process’s virtual memory goes over time.

en anglais