A Java Geek weekly 140

Health Check Response Format for HTTP APIs. How I Switched AI Models Without Changing a Single Line of Code. What a good website does. Generics and Monomorphization. Introducing OTel Blueprints and Reference Implementations. Creusot. Endive, a JVM native WebAssembly runtime. I Wasted 6 Months Using Claude Code Wrong. Here Are the 14 Commands That Changed Everything.. DNS4EU. Stop Using Conventional Commits. Are you really expected to run five type-checkers now?.

Health Check Response Format for HTTP APIs

m continuing my journey on getting more familiar with HTTP APIs by reading related RFCs. This time, I read the Health Check Response Format for HTTP APIs on the suggestion of Stefano Fago. In this post, I’d like to summarize my reading.

Note that it’s a draft. Moreover, it has been dormant for nearly two years and, thus, has been automatically expired. However, it’s the closest to a specification on health checks and thus deserves some love.

How I Switched AI Models Without Changing a Single Line of Code
What a good website does

A platform-agnostic specification of the technical features every decent website should have — from <title> to /.well-known/security.txt, from WCAG contrast to llms.txt. Written for humans and agents.

It provides a MCP, it’s mainly for agents.

I got interested a asked Claude Code to use it on https://blog.frankel.ch. Here’s an excerpt of the results:

  • Foundations — All Pass ✅
    Check Status Notes

    HTML doctype

     <!DOCTYPE html> present

    lang on <html>

    lang="en"

    <meta charset>

    utf-8, within first 1024 bytes

    <meta viewport>

    width=device-width, initial-scale=1.0

    <title> element

    Present and non-empty

  • SEO — Pass ✅
    Check Status Notes

    Redirects

    HTTP → HTTPS is a clean 301

    Meta robots

    No explicit tag = default index,follow (correct for a public blog)

    Heading hierarchy

    H1 for post title, H2 for sections — no skipped levels detected

  • Security — Three Missing Headers ❌
    Check Status Notes

    HTTPS / TLS

    HTTPS served, 301 from HTTP, Cloudflare

    HSTS

    Strict-Transport-Security header is absent from all responses

    X-Content-Type-Options

    X-Content-Type-Options: nosniff header is absent

    Clickjacking protection

    No X-Frame-Options and no Content-Security-Policy: frame-ancestors

    Cookie attributes

    ⚠️

    cookieconsent2 is loaded but configured in "inform" mode — no explicit opt-in. If third-party cookies are set (e.g. CDN, fonts), GDPR requires prior consent

Generics and Monomorphization

Thorough explanation of generics in Rust, with an hands-on exercice to follow.

Introducing OTel Blueprints and Reference Implementations

Interesting initiative. On the downside, it’s a sign that adopting OpenTelemetry from scratch is a bigger challenge than expected for most organizations.

At the time of this writing, Reference implementations include Adobe, Mastodon, and Skyscanner. I hope more organizations contribute.

Creusot

Contracts for Rust, formally proved

For a long time, I have been fascinated by the ability to prove that your code was correct. Tests don’t prove the absence of bugs; formal methods do.

The biggest hurdle, IMHO, is the foreign nature of the contract syntax. Most of the times, like here, it’s a completely different one, which you need to learn on top.

Endive, a JVM native WebAssembly runtime
  • Zero Native Dependencies
  • Sandboxed by Default
  • Drop-in Integration
I Wasted 6 Months Using Claude Code Wrong. Here Are the 14 Commands That Changed Everything.

Setup Once:

  • /init: Auto-generate project documentation.
  • /memory: Set global preferences forever.
  • /pr_comments: Load GitHub PR comments into context.

    Daily Use:

  • /btw: Ask side questions without interrupting.
  • /compact: Compress conversation, keep going.
  • ! command -: Run shell without leaving.
  • /cost: Check your token usage.

    Power Moves:

  • /fast: Toggle faster responses.
  • /review: Systematic code review.
  • /model: Switch models mid-session.

    When Things Go Wrong:

  • /clear: Wipe conversation, keep setup.
  • /doctor: Check your setup health.
  • /terminal-setup: Fix terminal integration.
  • /help: See all available commands.

    Indeed, the ! command is a productivity enhancer. Before, I did exactly as the post describes: launch the command, copy-paste the result into Claude Code, then copy-paste the solution from Claude Code to the terminal again.

DNS4EU

The DNS4EU Public Service is a free, secure, and privacy-focused DNS resolver designed to protect citizens across the European Union.

You can choose from five different configurations to match your specific needs. Every option supports both standard IP addresses (IPv4 and IPv6).

  • Protective Resolution (IP: 86.54.11.1)
  • Protective + Child Protection (IP: 86.54.11.12)
  • Protective + Ad blocking (IP: 86.54.11.13)
  • Protective + Child Protection + Ad blocking (IP: 86.54.11.11)
  • Unfiltered Resolution (IP: 86.54.11.100)
Stop Using Conventional Commits

After having read the post, I think I’m convinced. I’m afraid that convincing the organization will be much harder: inertia generally wins against logic.

Are you really expected to run five type-checkers now?

The post upholds Betteridge’s law of headlines, but is still worth a read. It reinforces my feeling that post-design typing is a mess.

Replies to comments on my "LLMs are eroding my career" post

There’s a company called Turing AI that’s hiring engineers to write "good code" across all kinds of domains and languages that’s then used for reinforcement learning at the labs. The "human moat" on that is not going to last forever.

Concerning.