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. ๐Ÿค”

  • Url: docker-radicale
  • 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.

  • Url: 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. ๐Ÿ˜œ

โšก 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.

  • Url: 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).

  • Url: 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.

  • Url: lucene-stemmers
  • Created:
  • Updated:
  • Language: TypeScript

q.plugin.zsh

ZSH plugin for the Q debug tool

  • Url: q.plugin.zsh
  • Created:
  • Updated:
  • Language: Shell

auto-configure-typematrix-in-xorg

Configure your Typematrix keyboard automatically in Xorg (simpler that Udev)

better-autocompletes-with-fuzzy-matching

Code sample for the article: Better autocompletes with Fuzzy Matching

bouyguessms

Go binary + library for the unofficial Bouygues Telecom SMS Api (5 SMS/day)

  • Url: bouyguessms
  • Created:
  • Updated:
  • Language: Go

datability

Drop primary keys, foreign keys, not nulls to let you test insert only the data that matters.

  • Url: datability
  • Created:
  • Updated:
  • Language: Java

doc

Doc is a typed, recursive structure. It is a disguised, convenient Map of <String, List>.

  • Url: doc
  • Created:
  • Updated:
  • Language: Java

go-reddit

๐Ÿ“ง Receive an email of the Top posts of configured Redditโ€™โ€™s subs

  • Url: go-reddit
  • Created:
  • Updated:
  • Language: Go

go-playlist-creator

๐ŸŽถ Create a playlist in each folder containing music

gotify

๐Ÿ“ฑ JavaScript client for Gotify, a simple server for sending and receiving messages

  • Url: gotify
  • Created:
  • Updated:
  • Language: TypeScript

intellij-master-presentation

๐Ÿ† Championship on Jetbrains Intellij editor: keyboard shortcuts, editor, settingsโ€ฆ

logback-servlet

Servlet for Logback to configure log levels at runtime

  • Url: logback-servlet
  • Created:
  • Updated:
  • Language: Java

marklogic-docker

Simplest possible Dockerfile for Marklogic

  • Url: marklogic-docker
  • Created:
  • Updated:
  • Language: Shell

marklogic-fluent-client

Fluent Java client for Marklogic

myyoutube

๐Ÿ’ป Extract information about viewed YouTube videos and channels

  • Url: myyoutube
  • Created:
  • Updated:
  • Language: TypeScript

notabene

๐Ÿ“” Your note-taking tool

  • Url: 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

  • Url: nvm-auto-use.zsh
  • Created:
  • Updated:
  • Language: Shell

nvm-init.zsh

Zsh plugin which initiates NVM

  • Url: nvm-init.zsh
  • Created:
  • Updated:
  • Language: Shell

presentation-lombok

Quick intro to Lombok, its usages and its shortcomings.

raise-or-spawn

raise-or-spawn brings the specified window on front, or start a new instance of the program

  • Url: raise-or-spawn
  • Created:
  • Updated:
  • Language: Go

remarkable

โšก Deploy fast to Marklogic

  • Url: remarkable
  • Created:
  • Updated:
  • Language: Java

sinatra-html5boilerplate

Simple Sinatra application using Html5-boilerplate

spring-boot-notifier

๐Ÿ”Š Notification of builds for Spring Boot

workflower

๐ŸŒป A simple Workflow system (pre-prototype)

  • Url: 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. ๐Ÿ˜…

  • Url: 56k
  • Created:
  • Language: Html