Sign in

Cay Horstmann

@horstmann.com
366 followers 268 following 64 posts

Nothing to see here...keep moving! Specifically, to Mastodon: foojay.social/@cayhorstmann

PostsRepliesMedia
Cay Horstmann @horstmann.com · 21/09/2026
On Wednesday 10:20 am I will present "Observing Project Valhalla" at BED-CON in Berlin. The organizers assembled a really interesting program this year: bed-con.org/2026... Hope to see some of you there!
observing-project-valhalla_horstmann_1217017_banner.jpeg
020
Cay Horstmann @horstmann.com · 21/09/2026
On Wednesday 10:20 am I will present "Observing Project Valhalla" at BED-CON in Berlin. The organizers assembled a really interesting program this year: bed-con.org/2026... Hope to see some of you there!
observing-project-valhalla_horstmann_1217017_banner.jpeg
000
Cay Horstmann @horstmann.com · 15/09/2026
On Wednesday October 14 I will present a workshop on using Java for small programming tasks at Basel One (baselone.org/#p.... I invite you bring your own tasks, or learn from some of mine. Hope to see some of you there!
000
Cay Horstmann @horstmann.com · 14/09/2026
Are you using Anki flashcards? Do you ❤️ its open source awesomeness? If so, consider donating through the app right now. Google is apparently making them remove the donation link in the next update. github.com/ankid...
000
Cay Horstmann @horstmann.com · 09/09/2026
One of my posts in this sequence did not succeed on BlueSky: Invalid app.bsky.feed.post record: grapheme too big (maximum 300, got 443). Raisin shitting is not limited to Germany...
000
Cay Horstmann @horstmann.com · 09/09/2026
Why not allow special characters and longish file names in a contact form? Making it difficult to do something easy is a German specialty. We call it the Korinthenkacker (raisin shitters). And apparently the IT outsourcing providers support it as a service when bidding on German jobs.
010
Cay Horstmann @horstmann.com · 09/09/2026
After a day of interacting with German web sites, I am reminded of Hanlon's razor (en.wikipedia.or...: "Never attribute to malice that which is adequately explained by stupidity." Or it's corollary, Grey's law: "Any sufficiently advanced incompetence is indistinguishable from malice."
032
Reposted by Cay Horstmann
GraalVM @graalvm.org · 09/09/2026
Want to see what Native Image does with your code?🤔 Paste a snippet into this browser-based playground, compile it into a native executable, and inspect the generated machine code in ~10–15 seconds! 🚀 Try yourself: godbolt.elide.dev
093
Cay Horstmann @horstmann.com · 04/09/2026
I just got back from the JavaZone conference in Oslo. It was a lot of fun--highly recommended. All videos: vimeo.com/javazone My video: vimeo.com/122338... My slides: horstmann.com/pr...
010
Cay Horstmann @horstmann.com · 26/08/2026
Interesting issue about Java Valhalla performance: mail.openjdk.org... details at this nice blog: johan-sjolen.git...
022
Cay Horstmann @horstmann.com · 25/08/2026
At Basel One, I will present a workshop on Java for small coding tasks on October 14 and a deep dive into Java streams internals on October 15. This is one of my favorite conferences for networking. Hope to see you there! More at baselone.org
000
Cay Horstmann @horstmann.com · 17/08/2026
I don't think that writing requires mutable JSON structures, but I am hoping for an API to express common transformations. It would not be good if every API user wishing to transform JSON had to reimplement a tree copy.
100
Cay Horstmann @horstmann.com · 16/08/2026
My trip report from JCrete: horstmann.com/un...
143
Cay Horstmann @horstmann.com · 08/08/2026
Valhalla has arrived in mainline Java (build 28-ea+10-569): jdk.java.net/28/ but my first sample program breaks the BlueSky 300 grapheme limit. Look here instead: foojay.social/@cayhorstman...
foojay.social
Cay Horstmann (@cayhorstmann@foojay.social)
Valhalla has arrived in mainline Java (build 28-ea+10-569): https://jdk.java.net/28/ $ cat Points.java value record Point(double x, double y) { public Point moveBy(double dx, double dy) { ...
120
Cay Horstmann @horstmann.com · 17/07/2026
Who would have thought—a documentary about Java. Pretty cool. Watch it at www.youtube.com...
094
Cay Horstmann @horstmann.com · 03/05/2026
PSA about white space in modern Java. Character::isWhitespace and String::strip are aligned. But the regex "(?U)\\s" differs in code points 28, 29, 30, 31, (Information separator 4...1) , 133 (Next line), 160 (No-break space ⚠), 8199 (Figure space), 8239 (Narrow no-break space).
010
Cay Horstmann @horstmann.com · 29/04/2026
At JCON, a speaker's slides had a mysterious reference to "danger to the herd". My preferred search engine (Kagi) led me to www.reddit.com/r... I had a good laugh at the "cliché developer with a conference t-shirt". Guilty as charged.
000
Cay Horstmann @horstmann.com · 22/04/2026
I just finished my talk at JCON—When Greed is Good: Understanding Java Stream Performance. The title attracted a good crowd. Slides at horstmann.com/pr...
image.jpg
040
Cay Horstmann @horstmann.com · 11/04/2026
I never thought much about hash codes of Java enumeration constants, but 4comprehension.c... set me straight. Turns out enum hash codes are not stable, so serializing them as map keys will not work. Remedy: EnumMap!
010
Cay Horstmann @horstmann.com · 07/04/2026
I've been paying #Kagi for search since it's worth my time to get results instead of ads and slop. Added benefit: their translate service is fantastic for language learners. Where Google Translate gives the minimum, Kagi goes all out.
Screenshot_2026-04-07_18-42-09.png
000
Cay Horstmann @horstmann.com · 31/03/2026
Is there any AI software that can watch a boring compliance video (emergency procedures, nondiscrimination, hazard communication, etc.) and answer the multiple choice questions that check for comprehension? Asking for a friend...
020
Cay Horstmann @horstmann.com · 26/03/2026
My article "Effective Pattern Matching 2026 Edition" is now live at javapro.io/2026...
011
Cay Horstmann @horstmann.com · 26/03/2026
Github gives you until April 24 to opt out of using your Copilot interactions for model training. The setting is at the bottom of github.com/setti... Allow GitHub to use my data for AI model training.
020
Cay Horstmann @horstmann.com · 03/03/2026
Check out this fun project—Java in your browser in the most inefficient way imaginable, by having Wasm emulate x86_64 instructions running Linux running Java: bmarti44.substac... Jeff Martin and myself will explore better use cases for Java/Wasm at JavaOne.
011
Cay Horstmann @horstmann.com · 01/03/2026
Apparently bsky hates post > 300 graphemes. Mastodon doesn't: foojay.social/@cayhorstman...
foojay.social
Cay Horstmann (@cayhorstmann@foojay.social)
25 years ago, I started using Linux as my primary OS. Because, choice. Today, I had to transcribe a bunch of sound files from Vietnamese (don't ask...), and I hated all the media player UIs. They were...
000
Cay Horstmann @horstmann.com · 26/02/2026
Cool visualization of JDK releases and the JEPs from which they are made: juniverse.szanto...
000
Cay Horstmann @horstmann.com · 16/02/2026
Out with the old, in with the new... Bruno Borges created this site on modern Java usage: javaevolved.gith...
021
Cay Horstmann @horstmann.com · 14/02/2026
Cool article by Grzegorz Piwowarek about writing a gatherer, and then optimizing it: 4comprehension.c...
010
Cay Horstmann @horstmann.com · 13/02/2026
Trying to understand how I got into the Sessionize list of 1124 most active speakers sessionize.com/most-active-... I had 8 talks accepted, at 5 conferences, and many more rejected—apparently enough for the top 3% of 39,000 speakers. A shout-out to all of them for submitting and presenting!
sessionize.com
Most Active Speakers 2025
Sessionize proudly presents the list of the most active speakers in the year 2025!
100
Cay Horstmann @horstmann.com · 07/02/2026
Jeff Martin and myself will speak at Java One (March 17-19, Redwood Shores, CA, USA) on Java and WebAssembly. Here is a $50 discount code if you register by Feb. 9: J12026SSM horstmann.com/pr... Speaker_Cay H.png
010
Cay Horstmann @horstmann.com · 05/02/2026
On Tuesday, February 10, Maurice Naftalin and myself will speak at Voxxed Days CERN on "Streams—Below the Surface". horstmann.com/pr...
000
Cay Horstmann @horstmann.com · 01/02/2026
On the plane to Stockholm where I will give two presentations at JFokus (jfokus.se/speak..., on Project Valhalla and the Java Class File API.
010
Cay Horstmann @horstmann.com · 19/01/2026
This Thursday I will speak at the Dublin JUG and the JChampionsConf, on Java pattern matching + a bonus talk for in-person attendees. In-person signup: ti.to/dublin-java-.... Start time 18:15 UTC To follow online, sign up here: www.eventbrite.com/e/jchampions.... Start time 20:00 UTC
ti.to
261 - Effective Pattern Matching in Java plus Bonus Talk
We're back to get 2026 ignited not with a flame, but an explosion. January sees not one, not two, but three Java Champions visiting Dublin as we again join forces with the JChampions conference to bri...
010
Cay Horstmann @horstmann.com · 05/01/2026
The excellent free JChampions Conference 2026 (jchampionsconf.co) is happening online Thur 1/22/2026, Fri 1/23/2026, Mon 1/26/2026, and Tues 1/27/2026. Get free tickets from Eventbrite: www.eventbrite.c...
011
Cay Horstmann @horstmann.com · 10/12/2025
Here is my "Java Advent" article on nice and naughty cases of pattern matching, with nicer formatting than WordPress can muster, and the ability to leave comments without logging into WordPress: horstmann.com/un...
021
Cay Horstmann @horstmann.com · 08/12/2025
I participate in Advent of Code (adventofcode.co) to learn, and today I learned plenty. My naïve brute force solution for Day 8 required 3 minutes. I re-learned the union-find algorithm (never touched it since grad school, 45 years ago), and am down to < 1 sec. github.com/cayho...
000
Cay Horstmann @horstmann.com · 08/12/2025
My article "Nice and Naughty Cases of Pattern Matching" has been published in the JVM Advent Calendar: www.javaadvent.c...
Feature-Image-Day-8.png
200
Cay Horstmann @horstmann.com · 01/12/2025
This year’s JVM Programming Advent Calendar is open for business at www.javaadvent.c... Every day, a new post awaits. I enjoy this eclectic overview of what is new in the Java ecosystem.
011
Cay Horstmann @horstmann.com · 30/11/2025
There is always more to learn about Unicode. Today I found out about the aptly named WTF encodings: wtf-8.codeberg.page Java strings are actually WTF-16, not UTF-16. For example, the Java string "WTF\uD800" is not valid UTF-16.
000
Cay Horstmann @horstmann.com · 10/11/2025
Help--my LocalDate isn’t flattened! Just before my Valhalla talk at JFall, I found out that the early access build can flatten LocalDate arrays, but the latest version from Github cannot. Why? Serialization, of course. Read the gory details at horstmann.com/un...
067
Cay Horstmann @horstmann.com · 09/11/2025
On Thursday November 13, I will speak in Berlin on "Virtual Threads—A Second Look". www.meetup.com/j...
010
Cay Horstmann @horstmann.com · 02/11/2025
As I am updating my slides, another shoutout to imagetodrawio.com I upload a hand-drawn diagram and get something that I can clean up in draw.io Final result: horstmann.com/pr... That is how AI should be. Human in the loop. Tweakable result without endless prompting.
010
Cay Horstmann @horstmann.com · 02/11/2025
I'll be speaking at JFall on project Valhalla on November 6. jfall.nl
010
Cay Horstmann @horstmann.com · 08/10/2025
Core Java 14th edition, updated for Java 25, is now available in print or ebook at www.informit.com... and www.informit.com...
052
Cay Horstmann @horstmann.com · 30/09/2025
The latest Maven exec plugin can execute "instance main methods": horstmann.com/un...
000
Cay Horstmann @horstmann.com · 28/09/2025
I will give two talks at BED-Con 2025 (bed-con.org/202) on October 7 and 8 in Berlin.
000
Cay Horstmann @horstmann.com · 24/09/2025
After more than a year of trying off and on, I finally managed to fix my Emacs/LSP/Java setup. Now I can happily edit my Java scripts in Emacs instead of VS Code. Details at horstmann.com/un...
030
Cay Horstmann @horstmann.com · 20/09/2025
My take on Java 25: horstmann.com/un...
040
Cay Horstmann @horstmann.com · 17/09/2025
Following a suggestion from Stuart Marks (stuartmarks.wor..., I add JavaDoc as a search engine to my browser. I just updated the search URL to docs.oracle.com...
030
Cay Horstmann @horstmann.com · 17/09/2025
$ java -version openjdk version "25" 2025-09-16 LTS Remarkably, the four numbers are perfect squares: 5², 45², 3², and 4².
030