Projects
Some public projects I did outside of work, just to keep track.
🔑 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. 🤔
- Github: https://github.com/tomsquest/docker-radicale
- Created:
- Updated:
- 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.
See the demo in action at AI.tomsquest.com.
- Github: https://github.com/tomsquest/deep-learning-recognize-tools
- Web site: https://ai.tomsquest.com/projects/recognize-tools
- Created:
- Updated:
- 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.
- Github: https://github.com/tomsquest/fynodoro
- Created:
- Updated:
- 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. 😜
- Github: https://github.com/tomsquest/mediathequeroubaix.py
- Created:
- Updated:
- 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
.
- Github: https://github.com/tomsquest/q.js
- Created:
- Updated:
- 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).
- Github: https://github.com/tomsquest/dotfiles
- Created:
- Updated:
- 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.
- Github: https://github.com/tomsquest/lucene-stemmers
- Created:
- Updated:
- Language: TypeScript
q.plugin.zsh
ZSH plugin for the Q debug tool
- Github: https://github.com/tomsquest/q.plugin.zsh
- Created:
- Updated:
- Language: Shell
auto-configure-typematrix-in-xorg
Configure your Typematrix keyboard automatically in Xorg (simpler that Udev)
- Github: https://github.com/tomsquest/auto-configure-typematrix-in-xorg
- Created:
- Updated:
- Language: Shell
better-autocompletes-with-fuzzy-matching
Code sample for the article: Better autocompletes with Fuzzy Matching
- Github: https://github.com/tomsquest/better-autocompletes-with-fuzzy-matching
- Created:
- Updated:
- Language: JavaScript
bouyguessms
Go binary + library for the unofficial Bouygues Telecom SMS Api (5 SMS/day)
- Github: https://github.com/tomsquest/bouyguessms
- Created:
- Updated:
- Language: Go
datability
Drop primary keys, foreign keys, not nulls to let you test insert only the data that matters.
- Github: https://github.com/tomsquest/datability
- Created:
- Updated:
- Language: Java
doc
Doc is a typed, recursive structure. It is a disguised, convenient Map of <String, List
- Github: https://github.com/tomsquest/doc
- Created:
- Updated:
- Language: Java
go-reddit
📧 Receive an email of the Top posts of configured Reddit’’s subs
- Github: https://github.com/tomsquest/go-reddit
- Created:
- Updated:
- Language: Go
go-playlist-creator
🎶 Create a playlist in each folder containing music
- Github: https://github.com/tomsquest/goplaylistcreator
- Created:
- Updated:
- Language: Go
gotify
📱 JavaScript client for Gotify, a simple server for sending and receiving messages
- Github: https://github.com/tomsquest/gotify
- Created:
- Updated:
- Language: TypeScript
intellij-master-presentation
🏆 Championship on Jetbrains Intellij editor: keyboard shortcuts, editor, settings…
- Github: https://github.com/tomsquest/intellij-master-presentation
- Created:
- Updated:
- Language: HTML
logback-servlet
Servlet for Logback to configure log levels at runtime
- Github: https://github.com/tomsquest/logback-servlet
- Created:
- Updated:
- Language: Java
marklogic-docker
Simplest possible Dockerfile for Marklogic
- Github: https://github.com/tomsquest/marklogic-docker
- Created:
- Updated:
- Language: Shell
marklogic-fluent-client
Fluent Java client for Marklogic
- Github: https://github.com/tomsquest/marklogic-fluent-client
- Created:
- Updated:
- Language: Java
myyoutube
💻 Extract information about viewed YouTube videos and channels
- Github: https://github.com/tomsquest/myyoutube
- Created:
- Updated:
- Language: TypeScript
notabene
📔 Your note-taking tool
- Github: https://github.com/tomsquest/notabene
- Created:
- Updated:
- 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
- Github: https://github.com/tomsquest/nvm-auto-use.zsh
- Created:
- Updated:
- Language: Shell
nvm-init.zsh
Zsh plugin which initiates NVM
- Github: https://github.com/tomsquest/nvm-init.zsh
- Created:
- Updated:
- Language: Shell
presentation-lombok
Quick intro to Lombok, its usages and its shortcomings.
- Github: https://github.com/tomsquest/presentation-lombok
- Created:
- Updated:
- Language: HTML
raise-or-spawn
raise-or-spawn brings the specified window on front, or start a new instance of the program
- Github: https://github.com/tomsquest/raise-or-spawn
- Created:
- Updated:
- Language: Go
remarkable
⚡ Deploy fast to Marklogic
- Github: https://github.com/tomsquest/remarkable
- Created:
- Updated:
- Language: Java
sinatra-html5boilerplate
Simple Sinatra application using Html5-boilerplate
- Github: https://github.com/tomsquest/sinatra-html5boilerplate
- Created:
- Updated:
- Language: JavaScript
spring-boot-notifier
🔊 Notification of builds for Spring Boot
- Github: https://github.com/tomsquest/spring-boot-notifier
- Created:
- Updated:
- Language: Java
workflower
🌻 A simple Workflow system (pre-prototype)
- Github: https://github.com/tomsquest/workflower
- Created:
- Updated:
- 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. 😅
- Web site: http://56kclan.free.fr
- Created:
- Language: Html