A Java Geek weekly 132

Yet another Rust ownership tutorial. Dynamic Languages Faster and Cheaper in 13-Language Claude Code Benchmark. The pinnacle of enshittification, or Large Language Models. JPlag - Detecting Source Code Plagiarism. ARIA Labels Are Probably Making Your Site Less Accessible. Here’s When to Use Them. Sécurix: Base OS sécurisé pour poste d’administration. Eight years of wanting, three months of building with AI. The Complete Guide to LLM Observability with OpenTelemetry. Span links.

Yet another Rust ownership tutorial

One of the most important concepts to master in Rust is ownership and borrowing. Tons and tons of articles are solely dedicated to this narrow subject. This one tries to explain the concept with examples. I hope it helps you.

Dynamic Languages Faster and Cheaper in 13-Language Claude Code Benchmark

Obviously, it takes more effort to generate code for static languages. The research should also evaluate how fast it would be to maintain a static language codebase vs. a dynamic one. My gut feeling is that static ones are faster.

Lisette

A little language inspired by Rust that compiles to Go

import "go:fmt"
import "go:io"
import "go:os"

fn load_config(path: string) -> Result<Cfg, error> {
  let file = os.Open(path)?
  defer file.Close()
  let data = io.ReadAll(file)?
  parse_yaml(data)
}

fn main() {
  match load_config("app.yaml") {
    Ok(config) => start(config),
    Err(e) => fmt.Println("error:", e),
  }
}
The pinnacle of enshittification, or Large Language Models

The post is very negative. It’s a nice counterpoint to all positive ones I read all day long.

JPlag - Detecting Source Code Plagiarism

To all my teacher friends!

JPlag finds pairwise similarities among a set of multiple programs. It can reliably detect software plagiarism and collusion in software development, even when obfuscated. All similarities are calculated locally; no source code or plagiarism results are ever uploaded online. JPlag supports a large number of languages.

ARIA Labels Are Probably Making Your Site Less Accessible. Here’s When to Use Them
  1. Does a native HTML element already express this semantics? If yes, use that element and delete the ARIA.
  2. Does the element have visible text that already serves as its accessible name? If yes, don’t add aria-label.
  3. Is this a pattern that simply can’t be expressed in HTML alone? Custom comboboxes, tree views, tab panels, live regions — these are real ARIA use cases.
Sécurix: Base OS sécurisé pour poste d’administration

Sécurix is a NixOS-based secure operating system tailored for small to medium-sized teams. It provides a minimal, hardened environment with strong isolation, reproducibility, and policy-driven configurations to ensure operational security and compliance.

The French government wants to replace Windows with a sovereign solution. Nix-OS based, in alpha, MIT License.

Eight years of wanting, three months of building with AI

But here’s the flip side: the same speed that makes AI great at obvious code also makes it great at refactoring. If you’re using AI to generate code at industrial scale, you have to refactor constantly and continuously20. If you don’t, things immediately get out of hand. This was the central lesson of the vibe-coding month: I didn’t refactor enough, the codebase became something I couldn’t reason about, and I had to throw it all away. In the rewrite, refactoring became the core of my workflow.

My experience with assistants is that it makes refactoring too easy. Sometimes, I’ll get to refactor on a whim, only because it’s so easy, and for no real benefit.

The Complete Guide to LLM Observability with OpenTelemetry
  1. Initialise OTel first
  2. Build a span lifecycle helper
  3. Use decorators for pipeline stages
  4. Define semantic conventions early
  5. Track LLM-specific metrics
  6. Correlate logs with trace IDs
  7. Span links, not parent-child, for cross-request correlation
  8. Test your instrumentation in CI

    Most of it is unrelated to LLM, but the post describes a good sample.

Commands vs MCP vs Skills
Span links

It’s funny. I’m interested in OpenTelemetry for some time already, but I never heard about span links before. And it seems it’s not a new concept.

Digital hygiene
  • Password manager
  • Hardware security key
  • Biometrics
  • Security questions
  • Disk encryption
  • Internet of Shit
  • Messaging
  • Browser
  • Search engine
  • Credit cards
  • Address
  • Email
  • VPN
  • DNS-based blocker
  • Network monitor
  • Work-life separation
Open source security at Astral
  • CI/CD security
  • Repository and organizational security
  • Automations
  • Release security
  • Dependency security

    A good checklist for anybody who takes security seriously.

The Git Commands I Run Before Reading Any Code
  • What Changes the Most:
    git log --format=format: --name-only --since="1 year ago" | sort | uniq -c | sort -nr | head -20
  • Who Built This:
    git shortlog -sn --no-merges
  • Where Do Bugs Cluster:
    git log -i -E --grep="fix|bug|broken" --name-only --format='' | sort | uniq -c | sort -nr | head -20
  • Is This Project Accelerating or Dying
    git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c
  • How Often Is the Team Firefighting
    git log --oneline --since="1 year ago" | grep -iE 'revert|hotfix|emergency|rollback'