Camille Hodoul

I'm a JavaScript and PHP developer living in Grenoble, France.
Twitter, Github, Flickr, resume

git stash

May 22, 2023

Setting changes aside without committing

Reading "Extreme Programming Explained" by Kent Beck, 2nd edition, 2005

September 06, 2022

Comments and highlights

Cooler Master MK730 keyboard setup on macOS

September 06, 2022

Using a windows AZERTY keyboard on macOS

Software and hardware I use

September 05, 2022

Productivity, Software development, Note-taking...

Code-unrelated advice for development efficiency

October 25, 2021

Things I now do that I wish I did earlier

Update to the latest version of many npm dependencies at once

May 17, 2021

Shell + awk snippet

Optimize the outliers first, the hot path later

March 18, 2021

Using distribution to guide performance optimization

Incident Postmortem

January 22, 2021

My advice for running an incident postmortem

Visualizing my Bitbucket data in Rstudio

December 16, 2020

Building a Github-like mosaic from pull-requests data

Pre-commit, pre-push or pre-merge ?

November 14, 2020

When to run tests, linters, static analysis...

Tactical PHP : Collecting Parameter

July 05, 2020

Avoid using a property as a temporary variable

Tactical PHP : Pluggable Behavior

June 01, 2020

Variable behavior without inheritance

Tactical PHP : Execute around method

May 24, 2020

Ensure actions are performed together

Tactical PHP

May 24, 2020

Bits of old-school Object-Oriented Programming, applied to PHP

Reading "Data & Reality" by William Kent

April 19, 2020

Notes and highlights

Regular Expressions - Theory and Tools

April 18, 2020

A practical introduction, some advice, ressources and tools, and a bit of history for the curious.

Ship modern JavaScript with Rollup

April 07, 2020

preset-modules, module/nomodule pattern and other techniques to ship modern syntax to evergreen browsers while supporting IE11 with a legacy build.

Learning Resources

March 09, 2020

Curated list of multimedia resources on Computer Science and tech in general

Flow types for Immutable.js Records

March 08, 2020

Type safety for Immutable.js data structures

Symfony Maintenance Mode

January 03, 2020

Safely toggle maintenance mode independently from dependency injection or autoload

Using PHP arrow functions

December 07, 2019

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…

Compose Elastica queries in PHP

December 07, 2019

Embrace the multi-paradigm

Inline svg to prevent reflow when lazy-loading images

August 09, 2019

Prevent unwanted reflows when lazy-loading images by inlining svgs of the same ratio.

Bitbucket pipeline for PHP, MySQL & Elasticsearch

July 21, 2019

Use docker-compose in Bitbucket Pipelines for a PHP + Elasticsearch + MySQL project

UTF-8 csv fix for Excel

July 16, 2019

Using utf-8 for your CSV files sounds obvious and works well in most software processing them. Most software except Micrososft’s Excel…


June 14, 2019

Tool for batch editing xml-ead files in browser.

Initiative Rocks!

April 30, 2019

Combat tracker for D&D. Also "front-end kata".

Rollup-based development environment

March 22, 2019

How to setup Rollup, code-splitting, dynamic imports, and Service Workers.

Using ES modules w/ dynamic imports, with a fallback

July 19, 2018

Dynamically import ES modules where possible, use SystemJS elsewhere.

Convert KML Placemarks to SVG Polygons

April 11, 2017

Being easily confused by basic geometry, I tend to stick to 2D whevener possible. Unfortunately, (in France at least) publicly available…


March 23, 2015

An animation library for paper.js

Nothing will ever please me, no matter how excellent or beneficial, if I must retain the knowledge of it to myself.

And if wisdom were given me under the express condition that it must be kept hidden and not uttered, I should refuse it.

No good thing is pleasant to possess, without friends to share it.

Letters From a Stoic, Lucius Annaeus Seneca