Projects
Some public projects I did outside of work, just to keep track.
BARRED: describe a task, get an annotated dataset
BARRED is an unofficial Python implementation of the BARRED paper (Mazza & Levi, Plurai.ai): generate a synthetic, labeled dataset from just a task description and a few unlabeled examples.
What I learned:
- LLM Tribunal rather than LLM Judge: answers are debated until consensus, which makes them far more reliable than a single LLM’s verdict (useful for evaluating anything and exactly what I am doing at work right now!)
- Not all papers share their code: to reproduce the work, I had to make many assumptions
- A lot about library design: exposing events to consumers, documentation, publishing, “public” api
Infos:
- Github: https://github.com/tomsquest/barred
- Created:
- Language: Python
🔑 Radicale-Docker, Docker image for Radicale calendar and contact server + security 🔐 + addons 🚀
docker-radicale is a Docker image for Radicale, a simple Calendar and Contacts server, featuring:
- a non-root user,
- a read-only filesystem,
- reduced privileges,
- multi-architecture support,
- and some convenience features after all!
Initially, I started self-hosting services on a virtual server (running OpenBSD, yay!).
Then I switched to my own hardware, and I wanted to run Radicale in a Docker container, with security in mind.
This project taught me a lot about OpenSource and “the cost of contribution”.
Contributions are welcome, but they also push the project to support features I don’t use, which makes me question the maintenance months later. 🤔
Infos:
- Github: https://github.com/tomsquest/docker-radicale
- Created:
- Language: Python
👓 Recognize tools with Deep Learning
The goal of this project is to recognize tools in images using Deep Learning.
The dataset contains images of tools like hammers, screwdrivers, and pliers.
The model is trained using a Convolutional Neural Network (CNN) with FastAI.
The project was created for the Fast.AI “Practical Deep Learning For Coders” course.
Infos:
- Github: https://github.com/tomsquest/deep-learning-recognize-tools
- Web site: https://ai.tomsquest.com/projects/recognize-tools
- Created:
- Language: Python
🍅 Fynodoro, the Pomodoro Widget
Fynodoro is a timer widget designed to stay on your screen all the time.
It takes up a tiny bit of screen space and can be set to nearly transparent.
When you need to focus, you can start a Pomodoro timer with a single click. A notification will remind you when the time is up.
I use it daily to get in the flow, to monitor dedicated time, and during pair-programming sessions to switch the keyboard.
Tips: place it on the side of your screen, nearly transparent, without window decoration, and always on top.
Infos:
- Github: https://github.com/tomsquest/fynodoro
- Created:
- Language: Go
📚 MediathequeRoubaix.py: functional programming with Modern Python
Applying functional programming principles, while sharpening my Python skills, I set out to develop a simple yet useful CLI tool.
However, typing can get tricky when MyPy and functional programming clash! 😅
And it becomes even more fun when everything turns into an IO of Task of Either of Option. 😜
Infos:
- Github: https://github.com/tomsquest/mediathequeroubaix.py
- Created:
- Language: Python
⚡ Q.js: Quick-and-dirty debugging for tired JS programmers
Ever wanted to replace console.log but not in your already cluttered output? Q.js is there.
Throw a bunch of q(var1, var2), and the output can be displayed in a dedicated terminal with tail -f /tmp/q.
Infos:
- Github: https://github.com/tomsquest/q.js
- Created:
- Language: TypeScript
⌨️ My dotfiles
Config files for zsh, vim and many more. Heavily commented.
I invested a lot of time to find, pick, and tweak Zsh and Vim.
Nowadays, I don’t use Vim much, but my Zsh config is still my daily driver.
Still love my prompt (it has a handy separator line, minimal info).
Infos:
- Github: https://github.com/tomsquest/dotfiles
- Created:
- Language: Shell
🔤 Lucene stemmers in Javascript
Stem words like in Lucene in JavaScript.
This is a port of some Lucene stemmers to quickly prototype outside of Elasticsearch.
It was amusing to see that the stemmers, like the French one, have some issues, but they solve 90% of the cases with just a few lines of code.
Infos:
- Github: https://github.com/tomsquest/lucene-stemmers
- Created:
- Language: TypeScript
q.plugin.zsh
ZSH plugin for the Q debug tool
Infos:
- Github: https://github.com/tomsquest/q.plugin.zsh
- Created:
- Language: Shell
auto-configure-typematrix-in-xorg
Configure your Typematrix keyboard automatically in Xorg (simpler that Udev)
Infos:
- Github: https://github.com/tomsquest/auto-configure-typematrix-in-xorg
- Created:
- Language: Shell
better-autocompletes-with-fuzzy-matching
Code sample for the article: Better autocompletes with Fuzzy Matching
Infos:
- Github: https://github.com/tomsquest/better-autocompletes-with-fuzzy-matching
- Created:
- Language: JavaScript
bouyguessms
Go binary + library for the unofficial Bouygues Telecom SMS Api (5 SMS/day)
Infos:
- Github: https://github.com/tomsquest/bouyguessms
- Created:
- Language: Go
datability
Drop primary keys, foreign keys, not nulls to let you test insert only the data that matters.
Infos:
- Github: https://github.com/tomsquest/datability
- Created:
- Language: Java
doc
Doc is a typed, recursive structure. It is a disguised, convenient Map of <String, List
Infos:
- Github: https://github.com/tomsquest/doc
- Created:
- Language: Java
go-reddit
📧 Receive an email of the Top posts of configured Reddit’’s subs
Infos:
- Github: https://github.com/tomsquest/go-reddit
- Created:
- Language: Go
go-playlist-creator
🎶 Create a playlist in each folder containing music
Infos:
- Github: https://github.com/tomsquest/goplaylistcreator
- Created:
- Language: Go
gotify
📱 JavaScript client for Gotify, a simple server for sending and receiving messages
Infos:
- Github: https://github.com/tomsquest/gotify
- Created:
- Language: TypeScript
intellij-master-presentation
🏆 Championship on Jetbrains Intellij editor: keyboard shortcuts, editor, settings…
Infos:
- Github: https://github.com/tomsquest/intellij-master-presentation
- Created:
- Language: HTML
logback-servlet
Servlet for Logback to configure log levels at runtime
Infos:
- Github: https://github.com/tomsquest/logback-servlet
- Created:
- Language: Java
marklogic-docker
Simplest possible Dockerfile for Marklogic
Infos:
- Github: https://github.com/tomsquest/marklogic-docker
- Created:
- Language: Shell
marklogic-fluent-client
Fluent Java client for Marklogic
Infos:
- Github: https://github.com/tomsquest/marklogic-fluent-client
- Created:
- Language: Java
myyoutube
💻 Extract information about viewed YouTube videos and channels
Infos:
- Github: https://github.com/tomsquest/myyoutube
- Created:
- Language: TypeScript
notabene
📔 Your note-taking tool
Infos:
- Github: https://github.com/tomsquest/notabene
- Created:
- Language: TypeScript
nvm-auto-use.zsh
ZSH plugin to call nvm use automatically whenever you enter a directory that contains an .nvmrc file with a string telling nvm which node to use
Infos:
- Github: https://github.com/tomsquest/nvm-auto-use.zsh
- Created:
- Language: Shell
nvm-init.zsh
Zsh plugin which initiates NVM
Infos:
- Github: https://github.com/tomsquest/nvm-init.zsh
- Created:
- Language: Shell
presentation-lombok
Quick intro to Lombok, its usages and its shortcomings.
Infos:
- Github: https://github.com/tomsquest/presentation-lombok
- Created:
- Language: HTML
raise-or-spawn
raise-or-spawn brings the specified window on front, or start a new instance of the program
Infos:
- Github: https://github.com/tomsquest/raise-or-spawn
- Created:
- Language: Go
remarkable
⚡ Deploy fast to Marklogic
Infos:
- Github: https://github.com/tomsquest/remarkable
- Created:
- Language: Java
sinatra-html5boilerplate
Simple Sinatra application using Html5-boilerplate
Infos:
- Github: https://github.com/tomsquest/sinatra-html5boilerplate
- Created:
- Language: JavaScript
spring-boot-notifier
🔊 Notification of builds for Spring Boot
Infos:
- Github: https://github.com/tomsquest/spring-boot-notifier
- Created:
- Language: Java
workflower
🌻 A simple Workflow system (pre-prototype)
Infos:
- Github: https://github.com/tomsquest/workflower
- Created:
- Language: Java
🎮 56K Counter-strike clan
56K was our Counter-Strike clan. We were playing on 56K modems, and we were proud of it! Bad pings, dropped packets, and we still managed to win some games.
The website contained a very popular list of hiding places, ballistics of all weapons and their rank per accuracy/power, but also my keybindings and config for the game.
I made the website in pure HTML using <table> for layout! Yes, I didn’t know div existed. 😅
Infos:
- Web site: http://56kclan.free.fr
- Created:
- Language: Html