Marc Bouvier Photo

Marc Bouvier

Hi! I am Marc, Software Craftsman. I am always learning to improve my craft and trying new ways to add value to products.

Building indexes for learning

As a generalist developer, I cannot dive deeply in each topic I encounter. But I still want to have it accessible somewhere. Building indexes for learning allows me to “store” look for it when I need it.

Automate building Index for learning

In this article I will show you how I automated writing indexes for learning with Obsidian.

Cover image

Write your own TDD lib in CodeWars and Codingame

You want to practice TDD. Did you know you can write you own testing library inside CodeWars or Codingame? Here's how you can do it.

Publier un site jekyll par merge-request dans Gitlab

Il est parfois utile d'avoir un aperçu d'un site statique lorsqu'on est en train de préparer une mise à jour d'un site statique. Voici une façon de publier temporairement un site statique avec Jekyll à partir d'une merge request dans GitLab.

Loading Json runtime configuration with VueJs 3 Plugin and fetch in TypeScript

Sometimes, it is useful to load data at runtime without building and bundling again an application. This proposition is a way among others do to so.

Cover image

Cohesion with falafel and hummus

Today I wanted to cook something. What about some falafel? I dug a bit more and found a can of hummus. It made me think about cohesion.

Host a static site with Nginx subdomains and SSL

This is the beginning of a new series in which I will incrementally evolve an accessible and green static website. In order to optimize costs, save up energy and memory, we will mutualize hosting of several static sites on the same server. To do so we will configure nginx to host the static sites on different (sub)domains and secure them with SSL.

Cover image

En 2022, focus de Framasoft sur l'usage du numérique dans les associations

En ce début d'année 2022, l'association a publié un article pour expliquer les objectifs de cette année. Et pour 2022, framasoft veut porter un focus tout particulier à l'usage du numérique dans les associations. Le logo est de JosephK sous licence Creative Commons By-SA 4.0

Accessible scoring bars with HTML and CSS

Colorful but accessible scoring (progress) bars with descriptive CSS and Html.

A Kotlin tiny assertion DSL

Sometimes I don't want to import a full testing framework, or I want some assertions in a REPL. Here is a minimalist colorful testing utility in Kotlin.

Cover image

🎦 Turn any keyboard into a Stream Deck on Windows

With a key binder and an extra keyboard or numpad we can create a budget stream deck to command OBS Studio or any application that can accept key bindings.

Cover image

Attenuate keystrokes noise in OBS Studio

Let's see a way to attenuate the keystrokes noise of a mechanical keyboard when streaming with OBS Studio.

Build layered Docker images with Spring Boot 2.3.1

Since Spring Boot 2.3.1, layered application layout is supported.

External rss feed in your Gridsome site

In this article, we will create a list of last posts from an external Rss feed in a gridsome site.

Mapping CSV file with multiline Strings to Java Object with Spring Batch

Parse CSV file that contains multiline strings. Spring Batch allows us to make this task easier.

Building a simple static URL shortener with Gridsome & GitLab

This is the making of u.baldir.fr, a simple static URL shortener made with Gridsome and actionned with Gitlab CI

Heuristics everywhere!

Quit thinking with rules, laws and principles but with heuristics. A list of resources on this topic.

Premier meetup Software Crafters Strasbourg

Prise de notes lors du premier meetup Software Crafters Strasbourg

Install adr-tools on windows with git bash

Guide to install adr-tools command line to automate ADR creation on windows with git bash.

Custom Hamcrest closeTo matcher

A practical hamcrest matcher `closeTo` to know if a date is close to another (of the same type). Supports `java.util.Date`, `java.time.LocalDateTime`, `java.time.ZonedDateTime`, `java.time.OffsetDataTime`. No dependencies other than hamcrest.

Devoxx - Why are we still writing javascript? (French)

Devoxx 2018. Mais alors pourquoi encore coder en JavaScript ? (W. Goedel)

Devoxx - Tout ce que vous avez toujours voulu savoir sur la programmation fonctionnelle (french)

Devoxx France 2018. Tout ce que vous avez toujours voulu savoir sur la programmation fonctionnelle (X. Detant)

Devoxx 2018 - E-residence estonienne et entreprenariat sans frontières (french)

Devoxx France 2018. Arnaud Castaignet est venu nous parler des services publiques informatisés de l'Estonie et du programme E-Residency.

Devoxx - Devenir meilleur avec le terminal (french)

Devoxx France 2018. Gagner des super pouvoirs avec le terminal (S. Ehret)

Devoxx DDD et RGPD (french)

Les keynotes de Devoxx France 2018 et conférence sur DDD, Event Sourcing et RGPD

Devoxx - Nouveeautés de Spring 5 SpringBoot2, reactor

Cette année, à Devoxx France, j'ai eu la chance d'assister à un "hands on" sur les nouveautés de Spring 5, Spring Boot 2.

Update partially ressource with JSON Path and SpringBoot 2

Implémentation personnalisée partielle de JSON Path pour mise à jour partielle de ressource. En n'autorisant que certains attributs.

Tech digest 26th march 2018

Huge digest (tech and not tech) since i just processed my mailbox to zero inbox.

VueJs now provides a cookbook

VueJS now provides a cookbook to show some ways to build a application.

How to reconnect websocket and subscriptions

When a mobile device goes offline or is sleeping, a websocket connection can be lost and subscriptions can also be lost. This is an attempt to reconnect the websocket in VueJs with VueX

Get code of event listener present on DOM object on webkit browsers

In webkit based browsers, you can get informations about added event listener using getEventListeners(domObject).

Integrate vuejs in existing JSF application

In this post we will see how to integrate some vueJs application using JSF and Spring Rest Controller as backend.

Technology digest march 12th 2018

In this blog post, Shawn McKay first explains some caracteristics of state management in frontend applications and how Redux tries to solve it.

Event Sourcing with Kafka, RabbitMQ and JPA

In this article, the author give us some way to implement Event-Sourcing with Kafka and RabbitMQ.

Hamcrest matcher : LocalDateTime is close to another

An Hamcrest matcher (JUnit) to know if a date is close to another within a parametrable tolerance offset.

Tech digest 2018-03-01

How technology stopped being innovation, The cost of javascript, Power use of Value Objects in DDD.

Front dev digest 2018-02-21

Technical resources that interested me. This week about VueJs anti-patterns

Multiplatform applications with Kotlin 1.2

Kotlin 1.2 introduces kotlin multiplatform to share code for different targets.

Reset and revert with GIT

Some commands that allow to go back in time with git.

Building an application with Nuxt

Nuxt is a wrapper of vueJs that allows to quickly bootstrapping web aplication using convention over configuration.

Mob programming (French)

Une journée en Mob programming

Cover image

Simple chat with VueJS & Rocket.Chat

A minimalistic real time chat made with VueJS and Rocket.Chat API

Use firebase to build scalable app without managing infrasctucture

Quote from google : Firebase gives you functionality like analytics, databases, messaging and crash reporting so you can move quickly and focus on your users.

Undertow.io lightweight blocking and non-blocking IO

Undertow is a lightweight java web server from JBoss. It is supported by Spring Boot 1.5.10. It supports Web SOcket (JSR-356), Servlet 3.1.

Are you a coder or a developer?

This article has very interesting reactions in the comment section. And is worth analysing.

Pimp up your resume

Pimp-up your resume

OpenLiberty fast and flexible JavaEE server

Open liberty is an open source IBM JavaEE server. It promises to allow building Cloud native apps & mirco-services.

Can I use browser feature?

I found a nice site allowing to know if I can use some feature in any browser : caniuse.com

Apache Isis - Domain driven applications

Apache Isis proposes an approach to build applications centered around domain objects.

The rise of WebComponents

More and more companies propose WebComponents based elements.

ClojureScript + VueJs, Is it possible for now?

Resources for learning Lisp and Clojure

Here are some resources to understand and learn Lisp & Clojure.

Building a blog with Jekyll and GitHub Pages

Some resources to help building a blog like this one with Jekyll and GitHub pages.

Cgroup support backported in java 8

TLDR; -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap

Node-red as an IFTTT on Raspberry Pi

Node-REDis a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.