Software and hardware I use
Productivity Alfred — better Spotlight Fantastical — calendar Hey — email client Clockify — time tracking Gmail — work email client…
Links to things I do.
Productivity Alfred — better Spotlight Fantastical — calendar Hey — email client Clockify — time tracking Gmail — work email client…
By “Ansible laboratory”, I mean a collection of virtual servers on which you can test your ansible playbooks. Containers are a somewhat good…
Symptoms You are running homebrew MariaDB or MySQL with Homebrew on Apple Silicon. Your MySQL client is throwing “SQLSTATE[HY000] [2002] No…
The problem When a new (s)FTP user is added to a subscription in Plesk, he is given the same UID as the original system user created for…
Brotli is a general-purpose compression algorithm, arguably better than gzip for the web. It is supported on all major evergreen browsers…
Github Tech blog in french Flickr Bluesky Instagram YouTube Hobby blog
There is a bug in PHP that causes the to be reached too early (sometimes instantly) on Apple Silicon. This affects both and on macOS 1…
If (or Podman Desktop) shows your machine “Currently starting” but it never actually starts, this might help you. Find the file (in my…
After an update, my podman machine stopped working and I didn’t manage to fix it without a full reinstall. As far as I know, there is no…
The program displays pathnames accessed by processes in real time. It’s an extremely useful debugging tool. It has options to select for…
I remember the day structural sharing in data structures “clicked” for me. It was illustrated by a drawing of boxes and arrows. An image is…
When my work is interrupted, helps set my work aside safely without having to create an actual commit. Lets say I am on branch and have…
Kent Beck attempts the difficult task of transferring tacit knowledge about software engineering through text. Drawing mostly from his own…
I recently purchased this keyboard to replace my TKL because I sometimes need F* keys. The keyboard itself is pretty well built, but I had…
Français - camilleh@hey.com Languages & Technologies Work experiences Lead the complete rewrite of Arkothèque CMS to successfull completion…
What follows are a few techniques and tools that helped me release software faster in the small team I am a part of (more on this at the end…
English - pdf - camilleh@hey.com Langages & Technologies Expériences professionnelles Mené le projet de refonte Arkothèque CMS jusqu’à sa…
I couldn’t find a command to update a subset of my dependencies to their latest version based on a name pattern, so here’s a one-liner to…
Performance optimization usually focuses on the “hot path”: code that gets executed the most often. I will argue that it’s sometimes worth…
The word ”postmortem” can mean both the process and its artifact: the document in which you describe the incident, its resolution and what…
I’ve been discovering R and Rstudio recently, and I was looking for a dataset to play with. Let’s build a github-like activity mozaic from…
On my codebases, I may want to run: a linter, static analysis, tests. While I can run them manually, I find it easier for everyone involved…
Why are class member variables (aka properties or instance variables) different from temporary variables? Ideally, a property is a…
In OOP, the usual answer to a need of variable behavior within a class are subclasses : you create a subclass and overload the (hopefully…
Let’s say we want to model a file with a class: It must be opened before reading, writing, or doing anything to it. It must be closed…
“Tactical PHP” is a series in which I introduce a small-scale object-oriented programming pattern adapted to PHP, relevant use cases and the…
There is an important difference between truth and utility. I recently finished the 3rd edition of this book, with commentary from Steve…
A regex, regexp or regular expression is a notation used to describe a language : letters and words governed by a set of rules. For instance…
Using ES2017 (and newer) syntax in our codebase is one thing, sending it to our users is another. Chances are, if we have to support IE1…
Updated: 2021-01-27 A (hopefuly up-to-date) compilation of places I go to to keep in touch with the industry. Books Computer Science…
What is a Record? An instance is an object with a defined set of keys and default values. They are instanciated by factories, which are…
When you perform tasks on your application that could result in a broken layout or even errors displayed on the front-end, you want some…
PHP 7.4 was released with support for arrow functions, as defined in this RFC. To paraphrase it, the goal is to provide a concise syntax for…
Elastica is an Elasticsearch client library for PHP. Among other things, it handles transport and provides a class-based abstraction over…
The problem Lazy-loading generally means fetching a resource only if and when it’s needed, in order to improve (at least perceived…
If your application has dependencies that are not covered by Bitbucket Pipelines built-in services, or these dependencies are more complex…
Using utf-8 for your CSV files sounds obvious and works well in most software processing them. Most software except Micrososft’s Excel…
cuisine-ead is a tool for batch editing xml-ead files in-browser. (At the moment, it is available in french only.) The problem EAD is a…
Initiative Rocks! is a simple combat tracker for D&D. As I looked for an excuse to play with tech I didn’t have the chance to work with yet…
This 3-parts series I’ve written on medium describes how I setup a JavaScript development environment based on Rollup. The code explained in…
Using ES modules with dynamic imports can still be a mine field due to somewhat ambiguous semantics. In this medium post, I explain a way…
Being easily confused by basic geometry, I tend to stick to 2D whevener possible. Unfortunately, (in France at least) publicly available…
An animation library for paper.js. examples and API documentation demo repo npm Update: As a result of me not using it professionnally, I…