Rafael Winterhalter's Avatar

Rafael Winterhalter

@rafaelcodes.bsky.social

software consultant who likes static typing, coding at http://github.com/raphw πŸ‡§πŸ‡»πŸ‡©πŸ‡ͺπŸ‡ͺπŸ‡Ί

645 Followers  |  90 Following  |  51 Posts  |  Joined: 15.11.2024  |  1.9918

Latest posts by rafaelcodes.bsky.social on Bluesky

Post image

Wow, TIL that LISTEN/NOTIFY in Postgres requires a global lock when committing transactions issuing a NOTIFY. Consider listening to the WAL via logical replication as an alternative with no impact on the write path.

www.recall.ai/blog/postgre...

11.07.2025 07:09 β€” πŸ‘ 17    πŸ” 5    πŸ’¬ 2    πŸ“Œ 0
Post image

"Towards a JSON API for the JDK"

New proposal on the core-libs-dev list for adding a basic JSON API to #Java. That would be a more than welcome addition, in particular considering the envisioned usage once member patterns will be available. Make it So 🀩!

mail.openjdk.org/pipermail/co...

18.05.2025 14:59 β€” πŸ‘ 42    πŸ” 9    πŸ’¬ 4    πŸ“Œ 0
Post von Peter Schaar: #Microsoft hat auf Anordnung von Donald #Trump seine Dienste fΓΌr den Internationalen Strafgerichtshof gesperrt. Der Staatsanwalt des #ICC hat keinen Zugriff auf seine #email. Quelle: AP

Post von Peter Schaar: #Microsoft hat auf Anordnung von Donald #Trump seine Dienste fΓΌr den Internationalen Strafgerichtshof gesperrt. Der Staatsanwalt des #ICC hat keinen Zugriff auf seine #email. Quelle: AP

Und das, liebe Kinder, ist der Grund, warum man sich bei existenziell wichtigen Werkzeugen am besten mindestens parallel auf lokal gehostete Open Source LΓΆsungen stΓΌtzt. Wenn #Trump anfΓ€ngt, die US-Tech-Konzerne in Waffen zu verwandeln, wird es finster. #KritIs

16.05.2025 10:24 β€” πŸ‘ 1525    πŸ” 723    πŸ’¬ 58    πŸ“Œ 57

Here's something I want but am too lazy to build: Take a picture of a huge pile of Lego, and get me a classification of what brick belongs to which set. The manual equivalent is quite something.

10.05.2025 09:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

We just integrated a performance improvement to Java String that will provide a ~10x performance boost in some applications where Strings are used as keys and where the associated values are constant foldable. This will make JDK 25 faster.

github.com/openjdk/jdk/...

22.04.2025 15:14 β€” πŸ‘ 78    πŸ” 21    πŸ’¬ 2    πŸ“Œ 1
Post image 26.04.2025 21:38 β€” πŸ‘ 38    πŸ” 10    πŸ’¬ 0    πŸ“Œ 0

Fastpass lohnt sich ΓΌbrigens nur wenn du alles fahren willst. Die Sachen fΓΌr die kleinsten haben wenig Schlangen. Und er gilt nur einmal fΓΌr FahrgeschΓ€ft. Nimm ein billiges Disneyhotel, dann darfst du eine Stunde frΓΌher, und in der Stunde kannst du alles fahren ohne warten.

25.04.2025 11:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Viel Glück. Ich bin mit meiner Tochter 2.5 Stunden angestanden, um die Prinzessinnen zu treffen. Keine Übertreibung. Aber sie hat geduldig gewartet. Buch mitnehmen, PlÀne dynamisch nach Wartezeiten in der App anpassen, Ohrstâpsel da überall im Park Disneymusik gespielt wird. Urlaub danach planen!

25.04.2025 11:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Do I understand it correctly that the central-publishing-maven-plugin intends to replace the nexus-staging-maven-plugin? But not necessarily the maven-release-plugin? How would one otherwise handle tagging in Git? I'm confused.

09.04.2025 16:08 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 4    πŸ“Œ 0
Post image Post image Post image

We’d love to see more talk proposals rolling in for #JavaZone2025!

Got something interesting to share? Big or small, wild or practical β€” we want to hear it! πŸ™Œ

2025.javazone.no/en/...

07.04.2025 11:19 β€” πŸ‘ 5    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0
Preview
Dynamically added annotation is not visible to Kotlin reflection I am working with a Java agent that is adding an annotation dynamically to a class file. When this class file is a Kotlin class, and if it is investigated by Kotlin reflection, the annotation does ...

My first question on Stack Overflow in four years. Any ideas why Kotlin reflect cannot observe an annotation if a class's "flag" is 6 and not 7? stackoverflow.com/questions/79...

23.03.2025 21:45 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Dynamicly added annotations are not visible I am trying to add support for kotest for a test intelligence tool. To do so, I need to be able to add the Ignored annotation to classes dynamically using a Java agent, but the annotation seems to not...

What frustrates me most about Kotlin and Scala is their closed world perspective on their own tooling. Java byte code is well-defined and easy to interop. It should not be hard to add an annotation to a class, but with Kotlin it somehow is: discuss.kotlinlang.org/t/dynamicly-...

21.03.2025 19:48 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
First of all, they all confirmed what I thought.
The majority of comics creators travel to the
USA on an ESTA β€” "The short is that almost everyone just goes in on a ESTA. "That's the electronic tourist visa, easy to apply for, valid for two years. Things are slightly different for Canada, they have their own version of an ESTA, and anecdotal reports say that some Canadian shows implicitly include visa requirements in the guest information.
But when you're going in on a tourist visa like the ESTA, the Immigration and Border Control can and will interrogate you about what you're visiting for. And if they have even the slightest idea that you're working whilst you're there, they can and will deny you entry and/or detain
you.
The problem now is that all those previously accepted and overlooked things that can be classed as 'working', such as Becky's chores for board or a hotel room for a comics convention
in return for your appearance, could well see you denied and/or detained.

First of all, they all confirmed what I thought. The majority of comics creators travel to the USA on an ESTA β€” "The short is that almost everyone just goes in on a ESTA. "That's the electronic tourist visa, easy to apply for, valid for two years. Things are slightly different for Canada, they have their own version of an ESTA, and anecdotal reports say that some Canadian shows implicitly include visa requirements in the guest information. But when you're going in on a tourist visa like the ESTA, the Immigration and Border Control can and will interrogate you about what you're visiting for. And if they have even the slightest idea that you're working whilst you're there, they can and will deny you entry and/or detain you. The problem now is that all those previously accepted and overlooked things that can be classed as 'working', such as Becky's chores for board or a hotel room for a comics convention in return for your appearance, could well see you denied and/or detained.

All folks who speak at conferences should read this and think long and hard about whether they want to risk speak in the US in the future.

Also anyone who works while traveling.
comicon.com/2025/03/18/f...

19.03.2025 10:02 β€” πŸ‘ 518    πŸ” 263    πŸ’¬ 15    πŸ“Œ 23

Catch of the day: The Kafka client for Java logs a bunch of things on info level that likely should be debug, which resulted in Splunk logging for millions of crowns of repetitive things nobody needs. I argue that libraries should never log anything on the info level.

19.03.2025 11:42 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@vonderleyen.ec.europa.eu Here’s a potent idea for Europe: allow member states to charge VAT on online ads served within their borders. Why should platforms like Meta earn ad revenue from EU audiences without paying VAT locally?

07.03.2025 20:19 β€” πŸ‘ 10    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

One of my most radical political positions is that online ads should be treated like addictive substances (alcohol) and have something like 100% VAT.

This doesn’t exist because governments can’t technically charge VAT for online ads served in the country.

07.03.2025 17:26 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 2    πŸ“Œ 0
Preview
Add support for including module-info in Mockito. by raphw Β· Pull Request #3597 Β· mockito/mockito Adds module-info.java to describe module descriptor.

Finally found the time to make Mockito a proper named module: github.com/mockito/mock...

jdk.unsupported can still be used, but if Mockito is added as an agent and the package is not imported elsewhere, it still works fully without it on official API in the instrumentation API.

03.03.2025 08:50 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image

πŸŽ“ We are so happy that our great friend Rafael Winterhalter (@rafaelcodes.bsky.social) will be back to Sofia and will give his talk: "Exploring the Java Class File API"!

πŸ—“οΈ 14-15 May, 2025
πŸ“ Sofia, Bulgaria πŸ‡§πŸ‡¬

🎫 Grab your pass: jprime.io/tickets

26.02.2025 12:54 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image

Dette kan du gjΓΈre for Γ₯ stΓΈtte Ukraina: Trykk pΓ₯ Β«republiser-knappenΒ» - slik at flest mulig fΓ₯r vite om den politiske markeringen pΓ₯ mandag.

20.02.2025 15:34 β€” πŸ‘ 197    πŸ” 246    πŸ’¬ 3    πŸ“Œ 2
Post image

πŸ’˜ Roses are red, commits turn green, JavaZone’s stage is callingβ€”be seen! πŸ’˜

Every bug fix, late-night hack, and production horror story deserves an audience.

Your code has a storyβ€”share it at #JavaZone2025!
πŸ’Œ talks.javazone.no/
ℹ️ https://2025.javazone.no/en/speaker

#JavaZone

14.02.2025 11:06 β€” πŸ‘ 10    πŸ” 5    πŸ’¬ 0    πŸ“Œ 1
Preview
GitHub - raphw/asm-jdk-bridge Contribute to raphw/asm-jdk-bridge development by creating an account on GitHub.

github.com/raphw/asm-jd...

22 stars and counting!

07.02.2025 14:56 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It's been around since Java 11. But I do not think the JVM makes use of it yet. Like invokedynamic binds dynamic calls, it binds dynamic fixed values.

03.02.2025 11:09 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

So Apple.tv has no Android app, but if you open it in the browser, it automatically routes to /us. This I have to replace with /no manually, otherwise the page crashes loading a language bundle for a popup. Did someone make this page in Dreamweaver? Severance better be a good show.

30.01.2025 18:12 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Release Byte Buddy 1.17.0 Β· raphw/byte-buddy Assure that implicit choice for class reader and class writer are always symmetric with regard to internal representation. Retrofit MemberSubstitution to also allow for intercepting invokedynamic i...

It took another release to iron out some issues with the Class File API Integration. Also, Byte Buddy now offers improved support for using constantdynamic in instrumentation, with fallback to invokedynamic if not yet available. github.com/raphw/byte-b...

30.01.2025 10:36 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 1    πŸ“Œ 2

I made a mistake in my changed build and 1.16.1 now offers the actual support for this.

19.01.2025 11:09 β€” πŸ‘ 8    πŸ” 4    πŸ’¬ 0    πŸ“Œ 0

I tested a bunch and it's very hard to pin. For most real life applications, the overhead is negligible. But for a minimal example, it's obvious. There's more object allocation, and of course class loading. But class manipulations are not normally on any applications performance critical path.

19.01.2025 11:08 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Release Byte Buddy 1.16.0 Β· raphw/byte-buddy Allow for erasure of types of bootstrapped methods in Advice within instrumented class. Rework Advice post-processing to allow for erasure of bootstrapped methods. Fix missing application of hashCo...

Byte Buddy 1.16.0 now integrates the Java Class File API and is therefore compatible with any future JDK that retains its instruction set, without activating the experimental flag. github.com/raphw/byte-b...

17.01.2025 23:48 β€” πŸ‘ 43    πŸ” 12    πŸ’¬ 1    πŸ“Œ 1

Next step: integration into Byte Buddy.

17.01.2025 21:26 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - raphw/asm-jdk-bridge Contribute to raphw/asm-jdk-bridge development by creating an account on GitHub.

Finally released the first version of my ASM-JDK bridge. It's as close as can be a drop-in replacement for ASM's ClassReader and ClassWriter where the alternative implementations use the JDK class file API in the JDK, and allow for limited forward compatibility. github.com/raphw/asm-jd...

17.01.2025 21:25 β€” πŸ‘ 14    πŸ” 6    πŸ’¬ 2    πŸ“Œ 0

move it to META-INF/versions/9. Works just fine and then shade is too dumb to pick it up.

10.01.2025 07:09 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

@rafaelcodes is following 20 prominent accounts