- Dynamic watermarking on the JVM
-
Displaying images on your website makes for an interesting problem: on one side, you want to make them publicly available; on the other, you want to protect them against undue use. The age-long method to achieve it is watermarking.
The watermark can be visible to act as a deterrent to people stealing the image; alternatively, you can use it to prove its origin after it has been stolen.
- Your Images Are (Probably) Oversized
-
I probably need to implement the advices in this post, but I’ll need to re-read it again.
- Make something awesome with open-source web components
-
Web components were all the rage around ten years ago. I’m not a front-end developer, so that I can only consider two options: either they have been quietly replaced (React?) or they have become mainstream. In any case, it’s a cool library.
- Kafka Fundamentals: Getting Started with Distributed Messaging
-
Good introduction to Kafka.
- Everything Practical and Important in Java 9 to 13
-
This one is list not for its content, but for its format.
I’m a huge fan of Asciidoc to write documentation, and of Asciidoctor to generate it. When I was teaching, I wrote my slides in Asciidoc, and used Asciidoctor reveal.js to generate the end material. However, I always found the output a bit bland.
The link above is exactly what I envisioned my presentations to be!
Have a look at the sources and be in awe! I am.
- Python on the Edge: Fast, sandboxed, and powered by WebAssembly
-
Just in time for my talk on WebAssembly in Kubernetes at GOTO Copenhagen!
- Cloudflare just got faster and more secure, powered by Rust
-
I’m an old Cloudflare user and I love Rust. It looks like a match!
- What is Algebraic about Algebraic Effects?
-
Though I tout myself as a good programmer, whatever it means, I was never good at math. This article is quite adapted to my level of understanding of the latter.
- Google Cloud Observability Adopts OpenTelemetry Protocol for Native Trace Ingestion
-
It’s a very good sign when a major Cloud platform adopts a standard such as OpenTelemetry.
The contrasting approaches of AWS, Azure, and Google Cloud to OpenTelemetry support reveal different strategic philosophies toward observability infrastructure. While Google Cloud has prioritized native OTLP endpoint integration with internal storage system restructuring to maximize protocol benefits, AWS has pursued a hybrid approach through its ADOT distribution combined with native endpoint support across X-Ray and CloudWatch. Azure has taken a more application-centric path, focusing on comprehensive SDK integration and distros before committing to full agent-based OTLP support.
- OpenAPI 3.2.0: Evolving with Modern API Patterns
-
The article provides a good sum up. You can check the release notes for the exhaustive description.
- De l’observabilité technique à l’observabilité métier : quand vos logs racontent enfin une histoire claire
-
For non-French speakers, the article makes the case for business observability vs. mere technical observability. I definitely agree with the sentiment: during my OpenTelemetry talk, I advocate for business metrics in addition to technical ones. You aren’t going to secure an observability budget from the business by providing how much your disk is full.
However, the post is insidious: up to the half of it, it mentions observability, but later on, it only is about logging. What triggers the author is that he doesn’t understand the black box system he’s facing because logs are too low-level. However, tracing, another pillar of observability would have helped a lot in this regard.
- Gatherers4J
-
Since Streams were first introduced in Java 8, there has been a way for us to write our own terminal operations with Collectors. However, there has not been a convenient way to write our own intermediate operations. Also, there are a lot of intermediate operations that seem like they would be good additions ot the JDK, but adding all of them to the Stream API would make it more difficult to learn and maintain.
Enter Gatherers! Finally, we have the ability to plug our own intermediate operations into Java Streams, so we can make life easier for ourselves, or use that sequence operation from another language that we miss in Java.
This library aims to provide a comprehensive and useful set of Gatherers (intermediate operations)
Very cool project if you use Java 8 Streams.