Publications


Posts

Cover for the article

Following the good advice from my friend Antoine Caron, I took some time this week to optimize my site.

The site you’re reading is a static site built with Hugo.

I had already done some work on compressing the various resources, mainly images, but I stopped there. In this article, I detail how I optimized the build of this site to minimize loading times, and how I improved its security by following the best practices promoted by MDN.

Cover for the article

I’ve been using the Pop!_OS Linux distribution for almost five years. I’ve always liked their approach to auto-tiling, which is a feature that is missing from GNOME (although plugins exist).

After a few months spent on Manjaro Linux, and a few struggles related to hazardous version upgrades that broke my system several times, and with the recent release of Pop!_OS 24.04, it was time for me to return to this distribution to get an opinion on the highly expected desktop environment: COSMIC.

Spring Boot 4 Upgrade with OpenRewrite

- Mis Γ  jour le - 6 mins read - πŸ‘€ 46
Cover for the article

One of the projects I actively maintain is GitLab Classrooms.

The code for this project is written in Spring Boot 3 and Java 25. With the recent release of Spring Boot 4, I wanted to upgrade this project quickly.

To do that, I have two possibilities: either I do the upgrade manually, or I use a tool to do it automatically.

I took the opportunity to test OpenRewrite.

Anatomy of an HTTP request

- Mis Γ  jour le - 5 mins read - πŸ‘€ 19
Cover for the article

HTTP, for Hypertext Transfer Protocol, is the main protocol for Internet exchanges. It’s used by the browser you’re using to read this article, as well as by other applications. It’s based on an exchange of requests and responses, between a client and a server, in text format. The advantage of text format is that it’s easy to implement in any programming language. The HTTP protocol is specified in RFC 2616, the very first version of which dates back to 1990.

xdotool cheatsheet

- Mis Γ  jour le - 1 min read - πŸ‘€ 83

I played a lot these days with xdotool, to try to automate some stuff for my Elgato Streamdeck.

These are the things I try to do:

  • Select a window, and send a Keyboard sequence (such as CTRL+B to mute/unmute a Teams call)
  • Type emojis to the active window πŸ˜…
  • More a window around, or resize it

Here are some links that I found about xdotool:

Below are the commands I found useful during my research.

Schedule a linux command to run later with `at`

- Mis Γ  jour le - 2 mins read - πŸ‘€ 4

As I prepare and run a lot of scripts, sometimes I need to run a script at a precise time of the day.

When a script must be only run once, cron is not a viable solution. So I discovered the at scheduler

You need to install it first, using apt as usual.

$ sudo apt install at

Schedule a command to run

  1. use the command at with a time / date
  2. input the commands to run in the prompt
  3. type CTRL+D to exit (^D)
$ at 9AM       
warning: commands will be executed using /bin/sh
at> cd workspaces/github/dotfiles
at> git pull
at> <EOT>
job 1 at Sat Apr 16 09:00:00 2022

This example will pull a repository contents at 9 AM tomorrow!

Configure a Global Gitignore πŸ™ˆ

- Mis Γ  jour le - 1 min read - πŸ‘€ 25

This short articles shows how to setup a global .gitignore file, to exclude files or directories for all your git repositories.

This is very useful for editor files or .env file, and prevents accidental commits. I also added common directories for Java and NodeJS related developments (target/ and node_modules), and IntelliJ IDEA files (*.iml and .idea/)

Thus said, you should also always setup a .gitignore file in your projets, as the global file only work for you, and will not be shared with the code of your project.