A Java Geek weekly 92

Start Rust

Rust is a low-level programming language that can generate native binaries and Web Assembly code. It touts itself as being performant, reliable, and productive. The main idea behind Rust is to avoid as many runtime exceptions as possible, especially those related to memory access. For that reason, it provides an additional "borrow checker" that verifies that memory is used safely and throws errors at compile-time when it’s not: this adds a layer of complexity compared to most other languages. This focus is dedicated to understanding more about Rust in general and data ownership in particular.

Lies we tell ourselves to keep using Golang

Here’s a list of lies we tell ourselves to keep using Golang:

  • Others use it, so it must be good for us too
  • Everyone who has concerns about it is an elitist jerk
  • Its attractive async runtime and GC make up for everything else
  • Every language design flaw is ok in isolation, and ok in aggregate too
  • We can overcome these by "just being careful" or adding more linters/eyeballs
  • Because it’s easy to write, it’s easy to develop production software with
  • Because the language is simple, everything else is, too
  • We can do just a little of it, or just at first, or we can move away from it easily
  • We can always rewrite it later
Programming as Theory Building: Why Senior Developers Are More Valuable Than Ever

I wonder if the proponents of LLM-generated code would argue that it’s not relevant if the LLM also maintain the code.

Who the Hell is Going to Pay For This?

Very. Good. Point.

What is OpenTelemetry?

I especially like the "What is NOT OpenTelemetry?" section:

  • Not a Data Storage or Dashboarding Solution
  • Not a Pre-configured Monitoring Tool
  • Not a Performance Optimiser
OpenTelemetry Autoinstrumentation in Java

Good foundational post. Nitpick: at some point, autoinstrumention was renamed to zero-code instrumentation.

How I Transformed My Flat into a Smart Home with Home Assistant

I found lots of ideas in this post! In particular, I need to check Zigbee.

A list is a monad

I like when people have an oblique viewpoint on things taken for granted.

Structured Concurrency: Hierarchical Cancellation & Error Handling
High-level concurrency in Kotlin Arrow

Coroutines are one of the most interesting features of Kotlin. However, the "coroutines standard library" sometimes falls short, especially when dealing with many suspended computations. Arrow provides those few additional functions that have proven useful in Kotlin code and other programming communities.

Announcing Rust 1.88.0

TIL: "Naked functions"

Git experts should try Jujutsu

I installed it to check myself. I thought it would be compatible with Git repositories; it’s not:

jj log
Error: There is no jj repo in "."
Hint: It looks like this is a git repo. You can create a jj repo backed by it by running this:
jj git init --colocate

I’m curious, so I ran the command:

Done importing changes from the underlying Git repo.
Setting the revset alias `trunk()` to `master@origin`
Hint: The following remote bookmarks aren't associated with the existing local bookmarks:
  feature/newposts@origin
  how-to-batch@origin
  master@origin
Hint: Run the following command to keep local bookmarks updated on future pulls:
  jj bookmark track feature/newposts@origin how-to-batch@origin master@origin
Initialized repo in "."

If I rerun the log command, I get the following:

@  nqxqkuym (no email set) 2025-07-06 10:45:39 a1020043
│  (no description set)
◆  ptnuwtzr [email protected] 2025-07-04 09:07:30 how-to-batch how-to-batch@origin git_head() e604342f
│  content: Do You know how to batch?
~  (elided revisions)
◆  nsuosxkv [email protected] 2025-07-02 21:01:41 master master@origin 310b91c5
│  content: Add newsletter #91 July 2nd, 2025
~  (elided revisions)
│ ○  slnssupx [email protected] 2025-04-22 09:34:04 feature/focus-carousel 019fb53d
│ │  WIP
│ ○  vqkpwlls [email protected] 2025-04-21 18:58:10 66fd88cd
│ │  content: Add newsletter #81 April 23rd, 2025
│ ○  nrqnowno [email protected] 2025-04-21 18:58:10 34035556
│ │  content: Add Getting my feet wet with Crossplane post
│ ○  ywkvxqvk [email protected] 2025-04-21 18:58:10 5e827563
│ │  content: Add LangChain4J musings, continued post
│ ○  nrypzzuk [email protected] 2025-04-21 18:58:10 c430de8d
│ │  content: Add Functions chaining post
│ ○  tonltqov [email protected] 2025-04-21 18:58:10 d8cbe501
│ │  content: Add Writing for Developers post
│ ○  kssomosw [email protected] 2025-04-21 18:58:10 241af04a
│ │  content: Add Pattern-matching across different languages post
│ ○  nmzwkqtz [email protected] 2025-04-21 18:58:10 34efbfc4
│ │  content: Add Runtime-initialized variables in Rust post
│ ○  zxspvwyv [email protected] 2025-04-21 18:58:10 236ef618
│ │  content: Add Git default options post
│ ○  myzmnqwn [email protected] 2025-04-21 18:58:10 2848ca9a
│ │  content: Add Getting the temperature from devices' attributes post
│ ○  omoumopy [email protected] 2025-04-21 18:58:10 78f6af41
│ │  content: Add Ready-to-use virtual clusters post
│ ○  upktzmqn [email protected] 2025-04-21 18:58:10 2b7f3c1a
│ │  content: Add Transactions and ThreadLocal in Spring post
│ ○  zpsruwql [email protected] 2025-04-21 18:58:10 8faf2ba3
│ │  content: Add Cloudflare Tunnel for Home Assistant post
│ ○  vltqnxol [email protected] 2025-04-20 18:09:35 bd97007d
├─╯  Cleanup old posts to speed site building
◆  muwtnuox [email protected] 2025-04-20 18:08:47 485bab2f
│  content: Add The subtle art of waiting post

Jujutsu stores its config in a .jj folder. Removing it will get you back to the original state. I’ll probably come back to Jujutsu later if there’s critical mass in its usage.

Nicolas Fränkel

Nicolas Fränkel

Nicolas Fränkel is a technologist focusing on cloud-native technologies, DevOps, CI/CD pipelines, and system observability. His focus revolves around creating technical content, delivering talks, and engaging with developer communities to promote the adoption of modern software practices. With a strong background in software, he has worked extensively with the JVM, applying his expertise across various industries. In addition to his technical work, he is the author of several books and regularly shares insights through his blog and open-source contributions.

Read More
A Java Geek weekly 92
Share this