<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/</link><description>Foojay is a place for Friends Of OpenJDK, providing free, reference materials and blogs for daily Java usage.</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 20 Sep 2026 05:51:17 +0000</lastBuildDate><atom:link href="https://foojay.io/index.xml" rel="self" type="application/rss+xml"/><item><title>World geography gotchas</title><link>https://foojay.io/today/world-geography-gotchas/</link><pubDate>Sun, 20 Sep 2026 05:51:17 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicolas Frankel</dc:creator><category>Tutorials</category><guid>https://foojay.io/today/world-geography-gotchas/</guid><description>Years ago, a colleague of mine told me about two pockets of foreign land surrounded by Switzerland: Campione d'Italia and Büsingen am Hochrhein,…</description></item><item><title>BoxLang 1.17.0 Released: Module Inception, CLI Checker, Jar Loading and much more!</title><link>https://foojay.io/today/boxlang-1-17-0-released-module-inception-cli-checker-jar-loading-and-much-more/</link><pubDate>Thu, 17 Sep 2026 20:20:32 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cristobal Escobar</dc:creator><category>AI</category><category>BoxLang</category><category>Developer Tools</category><category>GenAI</category><category>Java</category><category>Testing</category><category>Tools</category><guid>https://foojay.io/today/boxlang-1-17-0-released-module-inception-cli-checker-jar-loading-and-much-more/</guid><description>BoxLang has always been an extensible language. As of 1.17.0, it is a hierarchically extensible one. Modules can now contain other modules; aka Module…</description></item><item><title>What's New In The September 2026 Azul Payara Release?</title><link>https://foojay.io/today/whats-new-in-the-september-2026-azul-payara-release/</link><pubDate>Wed, 16 Sep 2026 16:46:54 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dominika Tasarz</dc:creator><category>Jakarta EE</category><category>Payara</category><guid>https://foojay.io/today/whats-new-in-the-september-2026-azul-payara-release/</guid><description>MicroProfile 7.1 lands on the commercial lines, OpenTracing is removed, and Jakarta Agentic AI reaches Payara Micro in the September Azul Payara release.</description></item><item><title>Can You Explain the Diff Your AI Agent Just Wrote?</title><link>https://foojay.io/today/can-you-explain-the-diff-your-ai-agent-just-wrote/</link><pubDate>Tue, 15 Sep 2026 14:12:01 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>IntelliJ IDEA</category><category>Java</category><category>Kotlin</category><category>LLM</category><guid>https://foojay.io/today/can-you-explain-the-diff-your-ai-agent-just-wrote/</guid><description>Every Java developer has been in a code review where the question is simple: What does this method do? The answer used to tell you something.</description></item><item><title>How I Built an AI Assistant for My Career with Java, Spring AI, and MongoDB</title><link>https://foojay.io/today/how-i-built-an-ai-assistant-for-my-career-with-java-spring-ai-and-mongodb/</link><pubDate>Tue, 15 Sep 2026 11:51:17 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ricardo Mello</dc:creator><category>AI</category><category>Databases</category><category>Java</category><category>Mongo</category><guid>https://foojay.io/today/how-i-built-an-ai-assistant-for-my-career-with-java-spring-ai-and-mongodb/</guid><description>How one developer built a personal AI assistant in Java using Spring AI, MongoDB Vector Search, conversation memory, and tool calling with Calendly.</description></item><item><title>Hello Java 27! Have You Been Working Out?</title><link>https://foojay.io/today/hello-java-27-have-you-been-working-out/</link><pubDate>Tue, 15 Sep 2026 08:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hanno Embregts</dc:creator><category>Java</category><category>Java Core</category><category>JEPs</category><guid>https://foojay.io/today/hello-java-27-have-you-been-working-out/</guid><description>Java 27 is like that friend that you haven't seen all summer, and when you finally see them again it's clear that they spent a lot of time in the gym. Bringing numerous improvements to performance and security, this version of Java seems to be in top shape. This post has all the info!</description></item><item><title>Foojay Podcast #101: Java 27 in Practice: Smaller Heaps, Smarter Defaults, and Valhalla on the Horizon</title><link>https://foojay.io/today/foojay-podcast-101/</link><pubDate>Mon, 14 Sep 2026 06:11:42 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Simon Ritter</dc:creator><category>Java</category><category>Java Core</category><category>OpenJDK</category><category>Podcast</category><guid>https://foojay.io/today/foojay-podcast-101/</guid><description>JDK 27 arrives on 15 September 2026, and it is a feature release rather than a Long-Term Support one. That distinction matters less than it sounds: as…</description></item><item><title>Come for Java. Get a Whole Lot More.</title><link>https://foojay.io/today/come-for-java-get-a-whole-lot-more/</link><pubDate>Fri, 11 Sep 2026 09:33:46 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Richard Fichtner</dc:creator><category>Conference</category><category>Events</category><category>Java</category><category>JUGs</category><guid>https://foojay.io/today/come-for-java-get-a-whole-lot-more/</guid><description>JCON USA returns inside IBM TechXchange 2026 with two rooms of deep Java content, a dedicated community home, and direct access to one of the years…</description></item><item><title>Reflection-Free Serialization on the JVM: Four Formats In, Avro Out</title><link>https://foojay.io/today/reflection-free-serialization-on-the-jvm-four-formats-in-avro-out/</link><pubDate>Thu, 10 Sep 2026 06:56:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry Moskalyuk</dc:creator><category>Data Engineering</category><category>Java</category><category>Kotlin</category><guid>https://foojay.io/today/reflection-free-serialization-on-the-jvm-four-formats-in-avro-out/</guid><description>I run a model layer that accepts the same business data in JSON, XML, YAML, and TOML and converts it all to Avro. The project was greenfield, so the…</description></item><item><title>One Base URL, Many Coding Agents: What an OpenAI-Compatible Gateway Looks Like From java.net.http</title><link>https://foojay.io/today/one-base-url-many-coding-agents-what-an-openai-compatible-gateway-looks-like-from-java-net-http/</link><pubDate>Wed, 09 Sep 2026 16:09:53 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>Debugging</category><category>IntelliJ IDEA</category><category>Java</category><category>Java Beginner</category><category>Java Core</category><category>JavaFX</category><category>JavaPro</category><category>Kotlin</category><category>LLM</category><category>Machine Learning</category><category>Release Notes</category><guid>https://foojay.io/today/one-base-url-many-coding-agents-what-an-openai-compatible-gateway-looks-like-from-java-net-http/</guid><description>Somewhere in every coding agent there is an HTTP client. Claude Code, Codex, Cursor, Cline, OpenCode: strip away the terminal UI or the editor pane and…</description></item><item><title>Masking a JVM thread dump without breaking the analysis</title><link>https://foojay.io/today/masking-a-jvm-thread-dump-without-breaking-the-analysis/</link><pubDate>Wed, 09 Sep 2026 07:32:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Felipe Maschio</dc:creator><category>Java</category><category>Java Core</category><category>Security</category><guid>https://foojay.io/today/masking-a-jvm-thread-dump-without-breaking-the-analysis/</guid><description>A few weeks ago I posted on r/java about detecting virtual thread pinning from a plain thread dump. The technical discussion was fine. The comment that…</description></item><item><title>Debugging Is Invariant Discovery: What One Kafka Session Taught Us About AI Agents</title><link>https://foojay.io/today/debugging-is-invariant-discovery-what-one-kafka-session-taught-us-about-ai-agents/</link><pubDate>Tue, 08 Sep 2026 14:14:36 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>Debugging</category><category>GenAI</category><category>Jakarta EE</category><category>Java</category><category>Java Beginner</category><category>Java Core</category><category>JavaFX</category><category>JavaPro</category><category>LLM</category><guid>https://foojay.io/today/debugging-is-invariant-discovery-what-one-kafka-session-taught-us-about-ai-agents/</guid><description>Every Java team has a sentence like this one somewhere: Any operation on a TID must go through the single asynchronous path and must not let TMS and EMV…</description></item><item><title>Community Spotlight: BoxLang Express Brings Node-Style HTTP to the JVM</title><link>https://foojay.io/today/community-spotlight-boxlang-express-brings-node-style-http-to-the-jvm/</link><pubDate>Tue, 08 Sep 2026 11:25:18 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cristobal Escobar</dc:creator><category>BoxLang</category><category>Developer Tools</category><category>Java</category><category>Java Core</category><category>Microservices</category><category>Tools</category><guid>https://foojay.io/today/community-spotlight-boxlang-express-brings-node-style-http-to-the-jvm/</guid><description>If you've spent years in Spring Boot, Micronaut, or Jakarta EE, "web framework" usually means a servlet container, an embedded Tomcat or Netty, a build…</description></item><item><title>“Commit created” — but it isn’t: why the agent’s word needs external verification, and what the mistake costs</title><link>https://foojay.io/today/commit-created-no-no-no-what-the-the-agents-word-needs-external-verification-what-the-mistake-costs/</link><pubDate>Tue, 08 Sep 2026 08:54:03 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>Agile</category><category>AI</category><category>Java</category><category>Java Beginner</category><category>Java Core</category><category>JavaFX</category><category>JavaPro</category><category>Kotlin</category><category>LLM</category><category>Machine Learning</category><guid>https://foojay.io/today/commit-created-no-no-no-what-the-the-agents-word-needs-external-verification-what-the-mistake-costs/</guid><description>A detailed report reads like proof. The agent lists the files it touched, names the branch, quotes a commit hash, adds a test count and closes with…</description></item><item><title>From OpenTelemetry to DuckDB</title><link>https://foojay.io/today/from-opentelemetry-to-duckdb/</link><pubDate>Tue, 08 Sep 2026 08:29:37 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Geertjan Wielenga</dc:creator><category>Developer Tools</category><category>DuckDB</category><category>OpenTelemetry</category><category>Performance</category><guid>https://foojay.io/today/from-opentelemetry-to-duckdb/</guid><description>Observability platforms generally expect you to do your analysis inside them, using their query language and their dashboards. That works for the…</description></item><item><title>Featured Foojay Authors for September 2026: Marit van Dijk and Graeme Robinson</title><link>https://foojay.io/today/featured-foojay-authors-for-september-2026/</link><pubDate>Mon, 07 Sep 2026 08:38:56 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><category>Foojay</category><guid>https://foojay.io/today/featured-foojay-authors-for-september-2026/</guid><description>Our Featured Authors for September are Marit van Dijk and Graeme Robinson. Here is what they write about, and where to start reading.</description></item><item><title>Bringing Raspberry Pico to Quarkus with Firmata</title><link>https://foojay.io/today/bringing-raspberry-pico-to-quarkus-with-firmata/</link><pubDate>Mon, 07 Sep 2026 06:06:42 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Igor De Souza</dc:creator><category>Embedded</category><category>Quarkus</category><guid>https://foojay.io/today/bringing-raspberry-pico-to-quarkus-with-firmata/</guid><description>Java applications are usually associated with APIs, databases, messaging systems, and cloud infrastructure. But Java can also interact with the physical…</description></item><item><title>Build an AI Agent (From Scratch)</title><link>https://foojay.io/today/build-an-ai-agent-from-scratch/</link><pubDate>Mon, 07 Sep 2026 05:52:13 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicolas Frankel</dc:creator><category>AI</category><category>Book Review</category><guid>https://foojay.io/today/build-an-ai-agent-from-scratch/</guid><description>This review is about Build an AI Agent (From Scratch) by Jungjun Hur and Younghee Song from Manning. Facts 10 chapters $29.29 (at the time of this…</description></item><item><title>From Spec-Driven Development to Living Specifications in Java Projects</title><link>https://foojay.io/today/from-spec-driven-development-to-living-specifications-in-java-projects/</link><pubDate>Fri, 04 Sep 2026 05:51:45 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Maximillian Arruda</dc:creator><category>AI</category><category>Developer Tools</category><category>GenAI</category><category>Java</category><guid>https://foojay.io/today/from-spec-driven-development-to-living-specifications-in-java-projects/</guid><description>From Spec-Driven Development to Living Specifications in Java Projects Coding agents have changed the speed at which we can produce software. But…</description></item><item><title>Building an Agentic Warehouse Management System — Part 3: Tools, Decisions, and Actions</title><link>https://foojay.io/today/building-an-agentic-warehouse-management-system-part-3-tools-decisions-and-actions/</link><pubDate>Thu, 03 Sep 2026 16:50:36 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ricardo Mello</dc:creator><category>AI</category><guid>https://foojay.io/today/building-an-agentic-warehouse-management-system-part-3-tools-decisions-and-actions/</guid><description>In this third and final part, we will build on the execution plan created in Part 2 and focus on the remaining stages of the agent workflow. We will see how each task is executed using controlled tools, how operational and business context is gathered, how the replenishment decision is made, and how the agent acts on that decision when necessary.</description></item><item><title>Building an Agentic Warehouse Management System — Part 2: Java and Spring AI</title><link>https://foojay.io/today/building-an-agentic-warehouse-management-system-part-2-java-and-spring-ai/</link><pubDate>Thu, 03 Sep 2026 16:39:59 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ricardo Mello</dc:creator><category>AI</category><guid>https://foojay.io/today/building-an-agentic-warehouse-management-system-part-2-java-and-spring-ai/</guid><description>We will look at how the agent is built with Java and Spring AI, how its capabilities and boundaries are defined, how it is triggered by the WMS, and how the planner turns the agent’s goal into an execution plan.</description></item><item><title>Agentic WMS — Part 1: Where AI Agents Add Value</title><link>https://foojay.io/today/building-an-agentic-warehouse-management-system-part-1-where-ai-agents-add-value/</link><pubDate>Thu, 03 Sep 2026 16:23:14 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ricardo Mello</dc:creator><category>AI</category><category>Java</category><category>Mongo</category><guid>https://foojay.io/today/building-an-agentic-warehouse-management-system-part-1-where-ai-agents-add-value/</guid><description>With this project, I am not trying to build a complete WMS. Instead, I want to use a logistics scenario I know well to explore how an AI agent can become part of a real business workflow and where it can add value. In this first part, we will introduce the WMS scenario and identify where an AI agent can help. In Part 2, we will define and connect the agent using Java and Spring AI. Finally, in Part 3, we will execute the plan, gather context, make the replenishment decision, and act when necessary.</description></item><item><title>Did Your AI Agent Ever Run a Debugger? One JVM Bug, Two Agent Runs</title><link>https://foojay.io/today/did-your-ai-agent-run-the-debugger-one-jvm-bug-two-agent-runs/</link><pubDate>Thu, 03 Sep 2026 13:48:32 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>GenAI</category><category>Java</category><category>Java Core</category><category>JavaFX</category><category>JavaPro</category><category>Kotlin</category><category>LLM</category><guid>https://foojay.io/today/did-your-ai-agent-run-the-debugger-one-jvm-bug-two-agent-runs/</guid><description>Java developers reach for the debugger without thinking about it. Set a breakpoint, run the failing test, look at the variables, then decide what to…</description></item><item><title>No Database Operations Found: What Writing a Spring Boot Analyzer Taught Me About Spring</title><link>https://foojay.io/today/no-database-operations-found-what-writing-a-spring-boot-analyzer-taught-me-about-spring/</link><pubDate>Thu, 03 Sep 2026 06:26:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Braham Shakti</dc:creator><category>Debugging</category><category>Developer Tools</category><category>Java</category><category>Spring</category><guid>https://foojay.io/today/no-database-operations-found-what-writing-a-spring-boot-analyzer-taught-me-about-spring/</guid><description>I spent months building a static analyzer that answers one question about a Spring Boot codebase: if I change this endpoint, what does the change reach?</description></item><item><title>MongoDB Search Server, improved!</title><link>https://foojay.io/today/mongodb-search-server-improved/</link><pubDate>Wed, 02 Sep 2026 10:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Erik Hatcher</dc:creator><category>Mongo</category><guid>https://foojay.io/today/mongodb-search-server-improved/</guid><description>The MongoDB Search Server for Java adds faceting, sorting, highlighting, weighted fields, and negative filters, with BSON pipeline tips and Docker deployment.</description></item><item><title>Aggregation Optimization in MongoDB: Sorting With Indexes (Part 5)</title><link>https://foojay.io/today/aggregation-optimization-in-mongodb-sorting-with-indexes-part-5/</link><pubDate>Tue, 01 Sep 2026 14:07:36 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Graeme Robinson</dc:creator><category>Databases</category><category>Mongo</category><guid>https://foojay.io/today/aggregation-optimization-in-mongodb-sorting-with-indexes-part-5/</guid><description>Part 5 of our aggregation optimization series: swapping an explicit $sort for an index-backed sort cut MongoDB query time from 51ms to 14ms</description></item><item><title>Announcing BX-WORD: Native Microsoft Word Automation for BoxLang</title><link>https://foojay.io/today/announcing-bx-word-native-microsoft-word-automation-for-boxlang/</link><pubDate>Tue, 01 Sep 2026 11:31:16 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cristobal Escobar</dc:creator><category>BoxLang</category><category>Developer Tools</category><category>Java</category><category>Library</category><category>Tools</category><guid>https://foojay.io/today/announcing-bx-word-native-microsoft-word-automation-for-boxlang/</guid><description>Every enterprise runs on Word documents. Contracts. RFPs. Proposals. Board reports. Offer letters. HR handbooks. Compliance policies. Invoices. Statements…</description></item><item><title>Aggregation Optimization in MongoDB: Data Duplication to Improve Read Performance (Part 4)</title><link>https://foojay.io/today/aggregation-optimization-in-mongodb-data-duplication-to-improve-read-performance-part-4/</link><pubDate>Mon, 31 Aug 2026 14:45:04 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Graeme Robinson</dc:creator><category>Mongo</category><guid>https://foojay.io/today/aggregation-optimization-in-mongodb-data-duplication-to-improve-read-performance-part-4/</guid><description>And why MongoDB might be a better relational database than you ever realized. Design reviews are one-on-one meetings where MongoDB experts deliver advice…</description></item><item><title>JavaFX Links of August 2026</title><link>https://foojay.io/today/javafx-links-of-august-2026/</link><pubDate>Mon, 31 Aug 2026 12:58:02 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><category>JavaFX</category><guid>https://foojay.io/today/javafx-links-of-august-2026/</guid><description>Here are the JavaFX LinksOfTheMonth of August 2026. We took a summer break, so there was only one "Links Of The Week" this month, and it covers…</description></item><item><title>AI-assisted genealogy</title><link>https://foojay.io/today/ai-assisted-genealogy/</link><pubDate>Mon, 31 Aug 2026 05:51:48 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicolas Frankel</dc:creator><category>AI</category><guid>https://foojay.io/today/ai-assisted-genealogy/</guid><description>My son recently came to me to brag about using AI to find our ancestors. While the results were correct, I didn't learn anything new, as it stopped at my…</description></item></channel></rss>