A Java Geek weekly 153

Testing the untestable. Your phone is about to stop being yours. GitFarm: Git as a Service for Large-Scale Monorepos. simdjson. Breaking Claude Code Opus 5 Auto Mode. Spot the troll. About ASD-STE100, Simplified Technical English. Ending my elixir exploratory writing. Beyond Lambdas: Raising the Abstraction Level of Functional Code. Which tools do Claude Code, Codex and Cursor choose? We measured 16,893 sessions to find out. The Life of a Metric. Beyond ORMs.

Testing the untestable

I’m currently working on a software designed more than a decade ago. It offers a plugin architecture: you can develop a plugin whose lifecycle is handled by the software. The tough part, though, is how you access the platform capabilities: via static methods on singletons.

Your phone is about to stop being yours

Starting in 2027*, a silent update, nonconsensually pushed by Google, will block every Android app whose developer hasn’t registered with Google, signed their contract, paid up, and handed over government ID.

Every app and every device, worldwide, with no opt-out.

GitFarm: Git as a Service for Large-Scale Monorepos

At Uber’s monorepo scale, traditional Git® workflows have become a fundamental bottleneck. Cloning multi-gigabyte repositories, maintaining local checkouts, periodically syncing from upstream, and executing repetitive fetch or push operations consume substantial compute and I/O across hundreds of automation systems. While CI systems such as Jenkins® and Buildkite® provide caching mechanisms to reduce clone times, in practice, these approaches incur significant infrastructure overhead, manual maintenance, and cold-start latencies of several minutes for large monorepos. Moreover, thousands of independent clone and fetch operations impose heavy loads on upstream Git servers, making them a shared scalability bottleneck.

simdjson

Parsing gigabytes of JSON per second

JSON is everywhere on the Internet. Servers spend a lot of time parsing it. We need a fresh approach.

Breaking Claude Code Opus 5 Auto Mode

In this post, we explore how a simple website summary request hijacks Claude Code Opus 5 in Auto Mode and achieves code execution with 60-80% attack success rate using a small sample size.

This is interesting because a third-party evaluation commissioned by Anthropic showed a 0.00% prompt injection attack success rate for Opus 5 in Auto Mode.

Spot the troll

A basic test to check how prepared you are to handle disinformation. In this day and age, it should be part of primary education.

About ASD-STE100, Simplified Technical English

ASD-STE100 Simplified Technical English (STE) is a controlled natural language developed in the late 1970s (originally as AECMA Simplified English) to help the users of English-language maintenance documentation understand what they read. It was initially applicable to commercial aviation and later became a requirement for defense projects, including land and sea vehicles. As a result, maintenance manuals and technical texts today are mostly written in STE.

It’s sad you need to actually request the download, but at least, it’s should be free.

Ending my elixir exploratory writing

Sadly, I find myself in the same context. The joy of exploring a new language, a new tech stack, or a new tech is gone. I liked to learn by doing: with coding assistants, the goal is easily within reach, painlessly. No pain, no gain.

I experienced it about 6 months ago. I wanted to learn Gleam, by adding a new service in my OpenTelemetry demo. I asked Claude Code. It did the work, I learned nothing.

Beyond Lambdas: Raising the Abstraction Level of Functional Code
  • Abstractions can be simple. Ridiculously simple.
  • Abstractions don’t have to be re-used to motivate their existence.
  • Lines of code are not a finite resource. Some abstractions might lead to more code. That’s a trade-off.

    Nicely articulated.

Which tools do Claude Code, Codex and Cursor choose? We measured 16,893 sessions to find out.

As a former Developer Advocate, this is super valuable insight. But be extra cautious:

So many well-known players are mentioned in almost every conversation and are never picked.

Not being mentioned is a death sentence, but being mentioned is not enough!

The Life of a Metric

A detailed post on the…​ the life of metric. Enlightening.

Beyond ORMs

The pushback against ORMs date already a bit. This post is specific in that it’s the point of view of a Rubyist.

Internationalization (i18n) and Localization (l10n)
  • Translation
    • Conditionals
    • Layout
    • CJK Zenkaku
  • Numbers
    • Separator
    • Money
  • Dates and times
  • Names and Addresses