# The Coffee Workshop

Recent content on Brice Dutheil

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Who am I ?

DevFeed: [Who am I ?](<https://devfeed.tech/articles/who-am-i-26092.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/whoami/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2026-09-15T04:32:32.192351Z

Content type: article

Language: fr

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [backends](<https://devfeed.tech/topics/backends.md>)

Tags: [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [open-source](<https://devfeed.tech/tags/open-source.md>)

### AI overview

The author describes himself as primarily a Java and JVM developer, with experience using Kubernetes and contributing to open-source projects. He previously worked on Mockito, has spent ten years working on backends across various sectors, and currently works for BlaBlaCar.

### Source excerpt

English 🇬🇧/🇺🇸 I'm mostly a Java / JVM guy. Now I'm also a Kubernetes user in surface, so I now a few system tricks.

## 10 or more reasons to not use JDK's HttpClient

DevFeed: [10 or more reasons to not use JDK's HttpClient](<https://devfeed.tech/articles/10-or-more-reasons-to-not-use-jdk-s-httpclient-26086.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2026/02/08/ten-reasons-to-not-use-jdk-httpclient/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2026-02-08T16:53:00Z

Content type: opinion

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java HttpClient](<https://devfeed.tech/topics/java-httpclient.md>), [Java](<https://devfeed.tech/topics/java.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [client](<https://devfeed.tech/topics/client.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [http](<https://devfeed.tech/tags/http.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [tls](<https://devfeed.tech/tags/tls.md>)

### AI overview

This opinion article argues that JDK's HttpClient, introduced with Java 11, may not be the best choice for most use cases. It discusses limitations involving Unix domain sockets, API customization, timeout behavior, SSL/TLS configuration, and certificate pinning, while noting that the JDK team has continued improving the client.

### Source excerpt

This article explains 10+ reasons why after 14 JDK releases the JDK's HttpClient introduced with Java 11 is unlikely to be the best option in your app.

## Switching from Disqus to Giscus (GitHub Discussions)

DevFeed: [Switching from Disqus to Giscus (GitHub Discussions)](<https://devfeed.tech/articles/switching-from-disqus-to-giscus-github-discussions-26085.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2022/10/16/moving-from-disqus-to-giscus/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2022-10-16T15:08:53Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Giscus](<https://devfeed.tech/topics/giscus.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [WordPress](<https://devfeed.tech/topics/wordpress.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [interface](<https://devfeed.tech/tags/interface.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [switching](<https://devfeed.tech/tags/switching.md>)

### AI overview

This tutorial describes migrating a blog's comments from Disqus to GitHub Discussions using Giscus. It explains the motivations for the migration, the basic Giscus setup, repository requirements, and discussion category configuration.

### Source excerpt

In the story of this blog I used WordPress, and using the WordPress comments then moved to Discus as it was better at handling spam. Then I switched this blog to GitHub with first Jekyll with markdown then finally to Hugo, this worked well enough. Then lately I've been a bit more displeased by the Disqus editing capability (no markdown (or asciidoc) support, no preview). More people tend to have a GitHub account than a Disqus account (for tech blogs). Also, GitHub introduced GitHub Discussions which was appealing to use with blogs.

## Using Linux's memfd\_secret syscall from the JVM with JEP-419 JEP-454

DevFeed: [Using Linux's memfd\_secret syscall from the JVM with JEP-419 JEP-454](<https://devfeed.tech/articles/using-linux-s-memfd-secret-syscall-from-the-jvm-with-jep-419-jep-454-26084.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2022/05/16/linux_memfd_secret_with_jep-419/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2022-05-15T22:32:09Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [API](<https://devfeed.tech/topics/api.md>), [Security](<https://devfeed.tech/topics/security.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

A tutorial explains how to use Linux's memfd_secret system call from the JVM through the Foreign Function & Memory API associated with JEP-454. It introduces the system call's role in protecting memory segments from kernel access and explains the system-call and processor-protection concepts needed to understand the example.

### Source excerpt

Linux 5.14 brought a new system call memfd_secret in order to mitigate speculative attack by preventing the kernel from being able to peek at these memory segments. Let's use this syscall from the JVM with the ~JEP-419~ JEP-454 API.

## A practical look at JEP-412 in JDK17 with libsodium

DevFeed: [A practical look at JEP-412 in JDK17 with libsodium](<https://devfeed.tech/articles/a-practical-look-at-jep-412-in-jdk17-with-libsodium-26083.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2021/09/04/a-practical-look-at-jep-412-in-jdk17-with-libsodium/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2021-09-04T15:38:06Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [homebrew](<https://devfeed.tech/tags/homebrew.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [modules](<https://devfeed.tech/tags/modules.md>)

### AI overview

A practical tutorial on using JEP-412's incubating Foreign Linker API in JDK 17 to call the native libsodium library from Java. It covers experimentation in jshell, module and native-access options, symbol lookup, and Gradle configuration.

### Source excerpt

JDK 17 is coming and with the incubating JEP-412, let's have a practical look at this API that should supersede JNI.

## A practical look at JEP-389 in JDK16 with libsodium

DevFeed: [A practical look at JEP-389 in JDK16 with libsodium](<https://devfeed.tech/articles/a-practical-look-at-jep-389-in-jdk16-with-libsodium-26082.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2021/02/20/a-practical-look-at-jep-389-in-jdk16-with-libsodium/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2021-02-20T15:01:06Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [API](<https://devfeed.tech/topics/api.md>), [C](<https://devfeed.tech/topics/c.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Code](<https://devfeed.tech/topics/code.md>), [modules](<https://devfeed.tech/topics/modules.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [build](<https://devfeed.tech/tags/build.md>), [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [java](<https://devfeed.tech/tags/java.md>), [module](<https://devfeed.tech/tags/module.md>), [native](<https://devfeed.tech/tags/native.md>)

### AI overview

This practical tutorial examines the incubating Foreign Linker API from JEP-389 in JDK 16 by connecting Java code to the native libsodium library. It demonstrates experimentation in jshell, project configuration with Gradle, module and runtime options, and mapping C types and native memory layouts to Java types.

### Source excerpt

JDK 16 is coming and with the incubating JEP-389, let's have a practical look at this API that should supersede JNI.

## Anonymous CompletableFuture threads with burstable pods

DevFeed: [Anonymous CompletableFuture threads with burstable pods](<https://devfeed.tech/articles/anonymous-completablefuture-threads-with-burstable-pods-26081.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/12/11/completablefuture-with-burstable-pods/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-12-11T13:05:00Z

Content type: article

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [container](<https://devfeed.tech/tags/container.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

This article investigates why CompletableFuture can create many short-lived anonymous threads when running in a container with limited processor visibility. It traces the behavior to the default ForkJoinPool and discusses configuring an executor or overriding the pool parallelism.

### Source excerpt

It all started when opening a JFR recording, I noticed a very large and growing number of very short lived threads.

## Investigating Off-Heap Memory and RSS Growth in Java Applications

DevFeed: [Investigating Off-Heap Memory and RSS Growth in Java Applications](<https://devfeed.tech/articles/off-heap-memory-reconnaissance-26080.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/11/30/off-heap-reconnaissance/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-11-30T17:13:59Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [OSINT](<https://devfeed.tech/topics/osint.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>)

Tags: [containers](<https://devfeed.tech/tags/containers.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [process](<https://devfeed.tech/tags/process.md>)

### AI overview

This tutorial explains how to investigate native, off-heap memory use in Java applications running in containers. It focuses on RSS growth, JVM memory components, Kubernetes memory limits, OOM kills, and JVM diagnostic commands.

### Source excerpt

Understand the RSS of a JVM leveraging the horsepower underneath ps with the help of one or two JVM diagnostic command.

## Tweakable JVM setting per helm release

DevFeed: [Tweakable JVM setting per helm release](<https://devfeed.tech/articles/tweakable-jvm-setting-per-helm-release-26090.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/tomb/tweakable-jvm-setting-per-helm-release/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-11-06T22:40:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [helm](<https://devfeed.tech/tags/helm.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>)

### AI overview

A practical article about using Helm to adjust JVM settings per release instead of hard-coding them in Dockerfiles. It discusses adapting memory settings to traffic and deployment environments, including non-production Kubernetes clusters, to make iteration easier and potentially reduce cloud costs.

### Source excerpt

Circa 2019 I had the chance to run many Java server applications, I wrote down out our best practices in order to iterate faster to find the right values for the JVM, but instead how to leverage Helm to try JVM settings.

## -XX:MaxRAMPercentage is not what I wished for

DevFeed: [-XX:MaxRAMPercentage is not what I wished for](<https://devfeed.tech/articles/xx-maxrampercentage-is-not-what-i-wished-for-26079.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/10/27/maxrampercentage-is-not-what-i-wished-for/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-10-26T23:02:29Z

Content type: opinion

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Java 9](<https://devfeed.tech/topics/java-9.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [docker](<https://devfeed.tech/tags/docker.md>), [gke](<https://devfeed.tech/tags/gke.md>), [java](<https://devfeed.tech/tags/java.md>), [java-8](<https://devfeed.tech/tags/java-8.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [production](<https://devfeed.tech/tags/production.md>)

### AI overview

The author reflects on Java container memory support and argues that -XX:MaxRAMPercentage did not behave as expected for an application running in Docker containers on Kubernetes. The account links the issue to Java heap sizing, native memory, and production experiences that culminated in out-of-memory kills.

### Source excerpt

This entry has been marinating for most of the year 2020. I should have published this opinion way earlier maybe end of 2019, but it took me time to realise I should split a bigger piece in smaller articles that hopefully made sense on their own.

## Reads network addresses in /proc

DevFeed: [Reads network addresses in /proc](<https://devfeed.tech/articles/reads-network-addresses-in-proc-26078.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/10/23/read-network-addresses-in-procfs/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-10-23T21:25:32Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>), [container](<https://devfeed.tech/topics/container.md>), [Process](<https://devfeed.tech/topics/process.md>), [Script](<https://devfeed.tech/topics/script.md>)

Tags: [container](<https://devfeed.tech/tags/container.md>), [network](<https://devfeed.tech/tags/network.md>), [process](<https://devfeed.tech/tags/process.md>), [script](<https://devfeed.tech/tags/script.md>)

### AI overview

This tutorial explains how to read network addresses and related connection information from procfs when common network utilities are unavailable in a read-only container. It demonstrates using shell tools such as awk and sed to filter ports, convert hexadecimal addresses, remove duplicates, and inspect connection states.

### Source excerpt

If you happen to be on a read-only container that doesn't have the usual network utilities, like netstat, ss (socket stat), lsof, etc. then your only option is to leverage procfs, however, procfs displays some data in hexadecimal.

## Embracing JVM unified logging (JEP-158 / JEP-271)

DevFeed: [Embracing JVM unified logging (JEP-158 / JEP-271)](<https://devfeed.tech/articles/embracing-jvm-unified-logging-jep-158-jep-271-26077.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/07/28/embracing-jvm-unified-logging-jep-158-jep-271/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-07-27T23:54:58Z

Content type: article

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Logging](<https://devfeed.tech/topics/logging.md>), [log management](<https://devfeed.tech/topics/log-management.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Java](<https://devfeed.tech/topics/java.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [commands](<https://devfeed.tech/tags/commands.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [news](<https://devfeed.tech/tags/news.md>)

### AI overview

This article examines JVM unified logging introduced in JDK 9 and available in JDK 11 LTS. It discusses its configuration, command-line and runtime controls, and the difficulty of selecting the needed logs, including GC logging.

### Source excerpt

Unified logging was introduced in JDK 9, and is available for us all, in the JDK 11 LTS. Like other great serviceability feature (jcmd or JFR) this was inspired by JRockit.

## Using JDK FlightRecorder and JDK Mission Control

DevFeed: [Using JDK FlightRecorder and JDK Mission Control](<https://devfeed.tech/articles/using-jdk-flightrecorder-and-jdk-mission-control-26076.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/06/28/using-jdk-flight-recorder-and-jdk-mission-control/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-06-28T21:54:58Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [JDK Flight Recorder](<https://devfeed.tech/topics/jdk-flight-recorder.md>), [Java](<https://devfeed.tech/topics/java.md>), [SIEM, Security, Observability](<https://devfeed.tech/topics/siem-security-observability.md>)

Tags: [guides](<https://devfeed.tech/tags/guides.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [jdk-flight-recorder](<https://devfeed.tech/tags/jdk-flight-recorder.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [logging](<https://devfeed.tech/tags/logging.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [tool](<https://devfeed.tech/tags/tool.md>), [traces](<https://devfeed.tech/tags/traces.md>)

### AI overview

This tutorial introduces JDK Flight Recorder as a production-capable JVM profiler and explains how it records JVM events. It also discusses JDK Mission Control for analyzing those events, runtime recordings, JFR commands, recording limits, and XML-based configurations.

### Source excerpt

JDK Flight Recorder, the profiler you can use in production, continuously. Flight Recorder has been available before in the JDK, e.g. it shipped as part of the JDK 8, but to use it, it demanded a to set specific commercial VM flags to unlock FlightRecorder, this is not anymore necessary with Java 11.

## Tackling Hugo Integration of Asciidoctor

DevFeed: [Tackling Hugo Integration of Asciidoctor](<https://devfeed.tech/articles/tackling-hugo-integration-of-asciidoctor-26075.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/04/23/tackling-hugo-integration-of-asciidoctor/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-04-23T21:59:50Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Hugo](<https://devfeed.tech/topics/hugo.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Sass](<https://devfeed.tech/topics/sass.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [sass](<https://devfeed.tech/tags/sass.md>), [script](<https://devfeed.tech/tags/script.md>)

### AI overview

This tutorial describes integrating Asciidoctor with Hugo and addressing rendering, syntax highlighting, CSS conflicts, Sass or SCSS overrides, and Font Awesome compatibility issues.

### Source excerpt

Integrate Asciidoctor as everyone should expect While Hugo comes with Asciidoctor support, they are in reality several issues to account for at this time: While basic rendering of asciidoc files works, we soon encounter problems ; the very first

## Migrating From Jekyll to Hugo, deploying with Github Pages

DevFeed: [Migrating From Jekyll to Hugo, deploying with Github Pages](<https://devfeed.tech/articles/migrating-from-jekyll-to-hugo-deploying-with-github-pages-26074.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/04/20/migrating-from-jekyll-to-hugo-deploying-with-github-pages/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-04-20T21:42:10Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Jekyll](<https://devfeed.tech/topics/jekyll.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [migration](<https://devfeed.tech/topics/migration.md>), [GitHub Pages](<https://devfeed.tech/topics/github-pages.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [WordPress](<https://devfeed.tech/topics/wordpress.md>)

Tags: [github-pages](<https://devfeed.tech/tags/github-pages.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [jekyll](<https://devfeed.tech/tags/jekyll.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [migration](<https://devfeed.tech/tags/migration.md>), [wordpress](<https://devfeed.tech/tags/wordpress.md>)

### AI overview

This tutorial describes migrating a blog from Jekyll to Hugo and deploying it with GitHub Pages. It discusses challenges including preserving article links and comments, adapting templates and themes, local generation, and importing existing Jekyll content.

### Source excerpt

Moving away form Jekyll. Import is easy, but tackling important details (conserve links to article, conserve comments, migrate some jekyll liquid template, theme tweaking deployment) has been challenging sometime. Motivation When started this blog in 2010 I went like a lot other to Wordpress as this was the one of the most common and easy way to write and publish something, then I got pissed at Wordpress as it was a pain to maintain and to write code, not to mention the speed, it was bad, then Github announced Github Pages, this was a revelation : articles written in pure Markdown, no database or server to maintain, fast writing, fast page thanks to static files. There were quite a few things that were icky like theme modifications, and some Wordpress plugins that were simply not there, but once done it was a robust machine.

## Gestion des dotfiles et des secrets avec chezmoi

DevFeed: [Gestion des dotfiles et des secrets avec chezmoi](<https://devfeed.tech/articles/gestion-des-dotfiles-et-des-secrets-avec-chezmoi-26072.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/04/01/manage_dotfiles_with_chezmoi.fr/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-04-01T00:00:00Z

Content type: tutorial

Language: fr

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [chezmoi](<https://devfeed.tech/topics/chezmoi.md>), [dotfiles](<https://devfeed.tech/topics/dotfiles.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [git](<https://devfeed.tech/tags/git.md>), [repo](<https://devfeed.tech/tags/repo.md>), [secrets](<https://devfeed.tech/tags/secrets.md>)

### AI overview

This French tutorial explains how to manage dotfiles and secrets with chezmoi when configuring a new machine. It covers initializing the chezmoi repository, adding files, synchronizing the repository with a remote Git repository, reviewing differences, and applying changes between source and target files.

### Source excerpt

Régulièrement il nous arrive d'avoir à re-configurer une nouvelle machine, avec notamment la re-configuration des fichiers du $HOME. Il y a plusieurs approches et outils, faire une simple archive, utiliser git pour le répertoire $HOME, utiliser des outils comme GNU stow, etc.

## Managing dotfiles and secret with chezmoi

DevFeed: [Managing dotfiles and secret with chezmoi](<https://devfeed.tech/articles/managing-dotfiles-and-secret-with-chezmoi-26073.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2020/04/01/manage_dotfiles_with_chezmoi/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2020-04-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [chezmoi](<https://devfeed.tech/topics/chezmoi.md>), [dotfiles](<https://devfeed.tech/topics/dotfiles.md>), [Git](<https://devfeed.tech/topics/git.md>), [passwords](<https://devfeed.tech/topics/passwords.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [commands](<https://devfeed.tech/tags/commands.md>), [files](<https://devfeed.tech/tags/files.md>), [git](<https://devfeed.tech/tags/git.md>), [machine](<https://devfeed.tech/tags/machine.md>), [password](<https://devfeed.tech/tags/password.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

A tutorial on using chezmoi to manage dotfiles across machines, synchronize them through Git, compare and apply changes, and handle secret-containing files with templating and 1Password.

### Source excerpt

Every once in a while, you may need to bootstrap a new machine, and along with it to reconfigure home directory's dot files. Various approaches already exist, using simple archive, git the home directory, gnu stow (symlinks), etc.

## When Java's WatchService is not the right tool in a container

DevFeed: [When Java's WatchService is not the right tool in a container](<https://devfeed.tech/articles/when-java-s-watchservice-is-not-the-right-tool-in-a-container-26071.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2019/09/13/watchservice-and-bind-mount/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2019-09-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [container](<https://devfeed.tech/topics/container.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [container](<https://devfeed.tech/tags/container.md>), [development](<https://devfeed.tech/tags/development.md>), [java](<https://devfeed.tech/tags/java.md>), [linux](<https://devfeed.tech/tags/linux.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial examines why Java's WatchService can behave differently inside a Linux container than on a physical machine. It explains platform-specific filesystem event implementations and investigates the container-related cause using Linux filesystem monitoring tools.

### Source excerpt

Boring code that should be written once and run everywhere Suppose the application you're working on needs to monitor changes to a file and rely on Java's WatchService introduced in Java 7. Development and test on the local machine works ; the unit tests rely on a TemporaryFolder Junit rule as you want to control the content of the file, running the code on the actual machine just works as expected. Everything is green to go live.

## Immutable jackson pojo with Lombok

DevFeed: [Immutable jackson pojo with Lombok](<https://devfeed.tech/articles/immutable-jackson-pojo-with-lombok-26089.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/tomb/immutable-jackson-pojo-with-lombok/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2019-02-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Jackson, Java Dates, Exception, LocalDate](<https://devfeed.tech/topics/jackson-java-dates-exception-localdate.md>), [Code](<https://devfeed.tech/topics/code.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [generation](<https://devfeed.tech/tags/generation.md>), [jackson](<https://devfeed.tech/tags/jackson.md>), [java](<https://devfeed.tech/tags/java.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [project](<https://devfeed.tech/tags/project.md>), [reduce](<https://devfeed.tech/tags/reduce.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

This article discusses keeping Java objects immutable when using code-generation tools such as Lombok and serialization tooling such as Jackson. It focuses on reducing repetitive accessors and constructor code while considering maintenance costs.

### Source excerpt

The quest to immutable objects It's sometime hard to keep following good principles in object oriented paradigm especially if we'd like to enjoy modern tooling that those that generates code for us.

## Minikube with hyperkit

DevFeed: [Minikube with hyperkit](<https://devfeed.tech/articles/minikube-with-hyperkit-26070.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2018/06/18/minikube-with-hyperkit/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2018-06-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Oracle-VM-VirtualBox](<https://devfeed.tech/topics/vm-box.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [edge](<https://devfeed.tech/tags/edge.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logs](<https://devfeed.tech/tags/logs.md>), [scale](<https://devfeed.tech/tags/scale.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>), [virtualbox](<https://devfeed.tech/tags/virtualbox.md>)

### AI overview

A tutorial explains how to run Minikube on macOS with the HyperKit driver instead of VirtualBox, inspect the setup logs, interact with the resulting Kubernetes cluster, use its dashboard, and stop or restart the cluster.

### Source excerpt

While Docker for mac in the edge channel offers a Kubernetes integration, I wanted to have the same tool as my pals on linux, who're most likely using minikube. Minikube on OSX requires a virtual machine which is by default VirtualBox, since minikube is using the docker a the container runtime it bootstrap the VM environment with boot2docker.

## Opinion, should we prefix JAX-RS Path value with a slash ?

DevFeed: [Opinion, should we prefix JAX-RS Path value with a slash ?](<https://devfeed.tech/articles/opinion-should-we-prefix-jax-rs-path-value-with-a-slash-26091.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/tomb/uri_paths_with_trailing_or_leading_slashes/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2018-02-20T00:00:00Z

Content type: opinion

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [client](<https://devfeed.tech/topics/client.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [http](<https://devfeed.tech/tags/http.md>), [linux](<https://devfeed.tech/tags/linux.md>), [okhttp](<https://devfeed.tech/tags/okhttp.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [retrofit](<https://devfeed.tech/tags/retrofit.md>), [server](<https://devfeed.tech/tags/server.md>), [standards](<https://devfeed.tech/tags/standards.md>)

### AI overview

This opinion examines whether JAX-RS path annotations should use a leading slash. It explains that JAX-RS treats paths with and without leading or trailing slashes similarly, while Retrofit and OkHttp resolve a leading slash as an absolute URL path, making slash placement semantically significant on the client side.

### Source excerpt

In the past months I have been using extensively the infamous HTTP client OkHTTP, I have been impressed by the will power of committers to respect HTTP standards. My co-workers which have various degrees of knowledge and experience in different language ecosystem work on a server-side application with some JAX-RS endpoints, and this question arose:

## API Versioning with JAX-RS

DevFeed: [API Versioning with JAX-RS](<https://devfeed.tech/articles/the-quest-to-api-versioning-with-jax-rs-26088.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/tomb/api-versioning-with-jax-rs/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2017-11-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Java](<https://devfeed.tech/topics/java.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [http](<https://devfeed.tech/tags/http.md>), [java](<https://devfeed.tech/tags/java.md>), [server](<https://devfeed.tech/tags/server.md>), [versioning](<https://devfeed.tech/tags/versioning.md>)

### AI overview

This article examines API versioning approaches with JAX-RS, including separate backends, URL paths, query parameters, custom request headers, and media types through the Accept header. It focuses on avoiding breaking changes and discusses practical limitations in JAX-RS implementations such as Jersey and RestEasy.

### Source excerpt

The Quest to API versioning with JAX-RS In another post Nottingham adds that we shouldn't use a custom header for versioning and touches on versioning through the Accept header but there is a fundamental thread here: try as hard as possible to not introduce breaking changes so that versioning isn't a big issue.

## HTTPS in Java with a self-signed certificate

DevFeed: [HTTPS in Java with a self-signed certificate](<https://devfeed.tech/articles/https-in-java-with-a-self-signed-certificate-26069.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2017/10/19/self-signed-certificates-in-java.en/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2017-10-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [SSL](<https://devfeed.tech/topics/ssl.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [certificates](<https://devfeed.tech/topics/certificates.md>), [Security](<https://devfeed.tech/topics/security.md>), [test](<https://devfeed.tech/topics/test.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [certificates](<https://devfeed.tech/tags/certificates.md>), [exception](<https://devfeed.tech/tags/exception.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [https](<https://devfeed.tech/tags/https.md>), [java](<https://devfeed.tech/tags/java.md>), [security](<https://devfeed.tech/tags/security.md>), [ssl](<https://devfeed.tech/tags/ssl.md>), [tls](<https://devfeed.tech/tags/tls.md>)

### AI overview

This tutorial explains why a Java HTTPS client rejects a WireMock server using a self-signed certificate. It introduces the SSL/TLS and PKIX trust-chain concepts involved and discusses generating and controlling certificates in test environments.

### Source excerpt

Your application should connect to an HTTPS server, usually that's a no brainer, however as good software craft-man, you may think how do I test this code to make nothing has been forgotten.

## JAX-RS 2.0 pagination with Link header

DevFeed: [JAX-RS 2.0 pagination with Link header](<https://devfeed.tech/articles/jax-rs-2-0-pagination-with-link-header-26068.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2017/10/02/pagination_hateoas_link.en/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2017-10-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [REST API](<https://devfeed.tech/topics/rest-api.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [github](<https://devfeed.tech/tags/github.md>), [http](<https://devfeed.tech/tags/http.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>)

### AI overview

This tutorial explains how to implement pagination in a REST API using HTTP Link headers. It compares body-based pagination metadata with header-based metadata, discusses GitHub's approach, and outlines a JAX-RS 2.0 implementation.

### Source excerpt

Your REST API is looking good, everything is ready, but here comes a paginated resource. There could be various reasons to do it, be it search, listing, etc. In this matter several choices to implement that appear :

[Next page](<https://devfeed.tech/sources/the-coffee-workshop.md?cursor=WyIyMDE3LTEwLTAyVDAwOjAwOjAwKzAwOjAwIiwgIjkxM2M4OGRhLWQ5OWYtNDNjNS04OTlhLWQ0NDM1OTFmNjlkNiJd>)