<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java Beginner on foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/today/category/java-beginner/</link><description>Recent content in Java Beginner on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 10 Sep 2026 15:07:25 +0000</lastBuildDate><atom:link href="https://foojay.io/today/category/java-beginner/index.xml" rel="self" type="application/rss+xml"/><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><guid>https://foojay.io/today/one-base-url-many-coding-agents-what-an-openai-compatible-gateway-looks-like-from-java-net-http/</guid><description>&lt;p&gt;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 each of them serializes a conversation into JSON, POSTs it to a base URL with an API key in a header, and streams the answer back. The client owns the prompt assembly, the tool loop and the rendering; the model sits on the far side of that socket.&lt;/p&gt;</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><guid>https://foojay.io/today/debugging-is-invariant-discovery-what-one-kafka-session-taught-us-about-ai-agents/</guid><description>&lt;p&gt;Every Java team has a sentence like this one somewhere:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Any operation on a TID must go through the single asynchronous path and must not let TMS and EMV drift apart.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;It is the kind of rule that is obvious once said and invisible until then. A terminal ID (TID) in a payments system, an asynchronous pipeline that updates two downstream systems, and the requirement that the two never disagree. Nothing in the type system enforces a rule like that, and no single class owns it. Rules of this kind live between consumers, services and stores.&lt;/p&gt;</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><guid>https://foojay.io/today/commit-created-no-no-no-what-the-the-agents-word-needs-external-verification-what-the-mistake-costs/</guid><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;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 &amp;ldquo;done&amp;rdquo;. The work has a shape. The shape looks right. You have six more tickets.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;The report is model output. The commit, if it exists, lives in .git. The file, if it exists, lives on disk. The build result lives in a process exit code and a run log. The chat window is none of those places, and it can only vouch for itself.&lt;/p&gt;</description></item><item><title>Keeping Java Hot This Summer</title><link>https://foojay.io/today/keeping-java-hot-this-summer-august-2026/</link><pubDate>Fri, 31 Jul 2026 09:50:18 +0000</pubDate><guid>https://foojay.io/today/keeping-java-hot-this-summer-august-2026/</guid><description>&lt;p&gt;Summer conference season goes quiet. Most major Java events wrap by June, CFPs go dark while we&amp;rsquo;re waiting for the results and a lot of us - if we decide to carry on with the work - use August to either catch up on backlog, or training ( and I mean mental exercise here, although I&amp;rsquo;m sure some of you hit the gym more often too 😉 ).&lt;/p&gt;&#10;&lt;p&gt;If you&amp;rsquo;re in the northeastern US or eastern Canada and are around next month with some extra time to spare, this may be a good excuse to join your local community to watch and learn from a technical session on a problem most of us have hit in production, delivered by &lt;a href="https://gsjug.org/profiles/simon-ritter.html" target="_blank" rel="noopener noreferrer"&gt;Simon Ritter,&lt;/a&gt; a Java Champion who&amp;rsquo;s spent years in the JVM internals.&lt;/p&gt;</description></item><item><title>Using the Raspberry Pi Sense HAT with Pi4J Drivers</title><link>https://foojay.io/today/using-the-raspberry-pi-sense-hat-with-pi4j-drivers/</link><pubDate>Wed, 01 Jul 2026 08:38:00 +0000</pubDate><guid>https://foojay.io/today/using-the-raspberry-pi-sense-hat-with-pi4j-drivers/</guid><description>&lt;figure class="alignleft is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/using-the-raspberry-pi-sense-hat-with-pi4j-drivers/duke_sensehat-819x1024.jpg" alt="" style="width:250px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;One of the biggest advantages of the Pi4J Drivers project is the ability to interact with complex hardware through simple and intuitive Java APIs. A great example of this is the Raspberry Pi Sense HAT, one of the most popular Raspberry Pi add-on boards and the hardware platform used in the Astro Pi program aboard the International Space Station.&lt;/p&gt;&#10;&lt;p&gt;Instead of manually implementing communication with multiple sensors and devices, Pi4J Drivers provides a ready-to-use driver that makes accessing the Sense HAT straightforward and enjoyable.&lt;/p&gt;</description></item><item><title>Pi4J Drivers: Simplifying Sensor and Hardware Integration in Java</title><link>https://foojay.io/today/pi4j-drivers-simplifying-sensor-and-hardware-integration-in-java/</link><pubDate>Thu, 25 Jun 2026 07:07:08 +0000</pubDate><guid>https://foojay.io/today/pi4j-drivers-simplifying-sensor-and-hardware-integration-in-java/</guid><description>&lt;figure class="alignleft is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/pi4j-drivers-simplifying-sensor-and-hardware-integration-in-java/duke_driver01-819x1024.jpg" alt="" style="width:300px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;When developing Java applications for Raspberry Pi, &lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt; is one of the most popular libraries for accessing GPIO, I2C, SPI, PWM, and other hardware interfaces. However, interacting directly with these protocols often requires a significant amount of code and a deep understanding of the underlying hardware.&lt;/p&gt;&#10;&lt;p&gt;This is where the &lt;strong&gt;Pi4J Drivers library&lt;/strong&gt; become extremely valuable.&lt;/p&gt;&#10;&lt;h3 id="what-is-pi4j-drivers"&gt;What is Pi4J Drivers?&lt;/h3&gt;&#10;&lt;p&gt;Pi4J Drivers is a companion project to Pi4J that provides ready-to-use drivers for a wide range of electronic components, including sensors, displays, I/O expanders, and actuators. Instead of implementing low-level communication from scratch, developers can leverage tested and reusable APIs to interact with hardware devices.&lt;/p&gt;</description></item><item><title>Quarkus Unpacked: Insights from the Foojay Podcast</title><link>https://foojay.io/today/quarkus-unpacked-insights-from-the-foojay-podcast/</link><pubDate>Tue, 23 Jun 2026 12:36:54 +0000</pubDate><guid>https://foojay.io/today/quarkus-unpacked-insights-from-the-foojay-podcast/</guid><description>&lt;figure class="alignleft is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/quarkus-unpacked-insights-from-the-foojay-podcast/3-Quarkus-Unpacked-2-2.jpeg" alt="Quarkus: A Runtime and Framework for Cloud-Native Java" style="width:300px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;I recently had the pleasure of joining the &lt;a href="https://www.youtube.com/watch?v=_nJCTTrnZkE" target="_blank" rel="noopener noreferrer"&gt;Foojay podcast&lt;/a&gt; to talk about Quarkus in depth. The conversation covered a lot of ground, from what makes Quarkus different to the practical trade-offs between JVM and native mode. This post captures the key questions and answers from that discussion, lightly edited for readability.&lt;/p&gt;&#10;&lt;p&gt;If you have been following this blog series, note that the third installment on building your own stack with Quarkus is coming next. Consider this a bonus entry that distills the podcast conversation into a format you can read, reference, and share.&lt;/p&gt;</description></item><item><title>Bringing Raspberry Pi Development to Quarkus with the Quarkus Pi4J Extension</title><link>https://foojay.io/today/bringing-raspberry-pi-development-to-quarkus-with-the-quarkus-pi4j-extension/</link><pubDate>Tue, 23 Jun 2026 07:30:00 +0000</pubDate><guid>https://foojay.io/today/bringing-raspberry-pi-development-to-quarkus-with-the-quarkus-pi4j-extension/</guid><description>&lt;p&gt;Java developers building applications for Raspberry Pi often face a common challenge: combining hardware access with modern application frameworks.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt; has become the standard way to access GPIO, I2C, SPI, UART, and other Raspberry Pi interfaces from Java applications. On the other hand, Quarkus has established itself as one of the most innovative Java frameworks, offering fast startup times, low memory consumption, and a developer-friendly experience.&lt;/p&gt;&#10;&lt;p&gt;The Quarkus Pi4J Extension brings these two worlds together, making it easier than ever to build hardware-enabled applications using the Quarkus ecosystem.&#10;&lt;img src="https://foojay.io/today/bringing-raspberry-pi-development-to-quarkus-with-the-quarkus-pi4j-extension/quarkus_pi4j01-1024x819.jpg" alt="" width="1024" height="819" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>Java is Not the Dark Side: Why Learning Java is Easier Than You Think</title><link>https://foojay.io/today/java-is-not-the-dark-side-why-learning-java-is-easier-than-you-think/</link><pubDate>Thu, 07 May 2026 08:44:23 +0000</pubDate><guid>https://foojay.io/today/java-is-not-the-dark-side-why-learning-java-is-easier-than-you-think/</guid><description>&lt;p&gt;&lt;img src="https://foojay.io/today/java-is-not-the-dark-side-why-learning-java-is-easier-than-you-think/duke_sw_01-1024x687.jpg" alt="" width="1024" height="687" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;p&gt;Every year on May 4th, fans around the world celebrate Star Wars Day with the iconic phrase &amp;ldquo;May the 4th be with you.&amp;rdquo; The following day, May 5th, is often recognized as &amp;ldquo;Revenge of the Fifth&amp;rdquo;, a playful nod to Revenge of the Sith, where many embrace the darker side of the Force and celebrate iconic Sith Lords and villains.&lt;/p&gt;&#10;&lt;p&gt;So, this week is ideal for talking about one of the most misunderstood technologies in programming: &lt;strong&gt;Java&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Foojay Podcast #94: More Than a Blog: How Foojay Connects, Sustains, and Evolves the Java Community</title><link>https://foojay.io/today/foojay-podcast-94/</link><pubDate>Mon, 04 May 2026 06:26:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-94/</guid><description>&lt;p&gt;Foojay.io, the website for the Friends Of OpenJDK, is turning six years old. To celebrate, Frank Delporte headed to JCON in Cologne, Germany, and sat down with twelve members of the Java community to talk about what Foojay means to them, what they learn from each other, and how the community is evolving.&lt;/p&gt;&#10;&lt;p&gt;This episode covers a lot of ground. Sharat Chandar reflects on 25 years in the Java community and why the people are what keep the language alive. Markus Westergren and Iryna Dohndorf both focus on a theme that comes up again and again: developer sustainability. Not just green software, but how you stay healthy, grounded, and relevant when AI is changing everything around you. Markus and his wife researched how developers are reacting to AI, from ignoring it completely to transforming everything they do. Iryna talks about building resilience and robustness as skills, not afterthoughts.&lt;/p&gt;</description></item><item><title>Dockerizing a Java 26 Project with Docker Init</title><link>https://foojay.io/today/dockerizing-a-java-26-project-with-docker-init/</link><pubDate>Mon, 27 Apr 2026 09:55:12 +0000</pubDate><guid>https://foojay.io/today/dockerizing-a-java-26-project-with-docker-init/</guid><description>&lt;p&gt;Docker Init was introduced in Docker Desktop 4.27, before LLMs became the default answer to everything. It&amp;rsquo;s a &amp;ldquo;smart&amp;rdquo; interactive wizard that analyzes your project and generates:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;A &lt;code&gt;Dockerfile&lt;/code&gt; (multi-stage, production-ready)&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;A &lt;code&gt;compose.yaml&lt;/code&gt; file&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;A &lt;code&gt;.dockerignore&lt;/code&gt; file&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;A &lt;code&gt;README.Docker.md&lt;/code&gt; with build and run instructions&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;What makes it valuable is that it&amp;rsquo;s deterministic—not a probabilistic guess. It produces the same correct output every time, following Docker&amp;rsquo;s own best practices.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://foojay.io/today/dockerizing-a-java-26-project-with-docker-init/asgard-init-57a9971e.jpg" alt="Docker Commandos setting up the command center" width="1600" height="1195" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>The Java in Education Catalog Now Has a Beautiful Home</title><link>https://foojay.io/today/the-java-in-education-catalog-now-has-a-beautiful-home/</link><pubDate>Fri, 27 Mar 2026 13:17:41 +0000</pubDate><guid>https://foojay.io/today/the-java-in-education-catalog-now-has-a-beautiful-home/</guid><description>&lt;p&gt;A few weeks ago, Igor De Souza shared &lt;a href="https://foojay.io/today/bringing-java-closer-to-education-a-community-driven-initiative/"&gt;Bringing Java Closer to Education: A Community-Driven Initiative&lt;/a&gt; here on Foojay. It&amp;rsquo;s something we started together to gather Java educational resources in one place, making it easier for mentors, educators, and learners to discover what&amp;rsquo;s out there.&lt;/p&gt;&#10;&lt;p&gt;But let&amp;rsquo;s be honest: a GitHub README, while perfectly functional, is not exactly the most inviting front door for educators who aren&amp;rsquo;t already deep in the coding ecosystem. That&amp;rsquo;s now fixed&amp;hellip;&#10;&lt;img src="https://foojay.io/today/the-java-in-education-catalog-now-has-a-beautiful-home/java-in-education-site-1024x745.jpg" alt="" width="1024" height="745" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>Azul Zulu OpenJDK Docker Images Now Available on Docker Hub</title><link>https://foojay.io/today/official-azul-zulu-openjdk-images-now-available-on-docker-hub/</link><pubDate>Mon, 23 Mar 2026 07:53:56 +0000</pubDate><guid>https://foojay.io/today/official-azul-zulu-openjdk-images-now-available-on-docker-hub/</guid><description>&lt;p&gt;&lt;a href="https://www.azul.com/blog/trusted-java-containers-azul-zulu-openjdk-joins-dockers-official-images/" title="Azul recently announced that" target="_blank" rel="noopener noreferrer"&gt;Azul recently announced that&lt;/a&gt; Azul Zulu Builds of OpenJDK are now available as Docker Official images on Docker Hub. That means you can pull TCK‑verified, fully compliant OpenJDK builds directly from the same Official Images library you already trust for your base OS and databases.&lt;/p&gt;&#10;&lt;p&gt;You can browse and pull the images here:&lt;br&gt;&#10;&lt;a href="https://hub.docker.com/_/azul-zulu" target="_blank" rel="noopener noreferrer"&gt;https://hub.docker.com/_/azul-zulu&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="why-should-you-care-about-official-images"&gt;Why should you care about official images?&lt;/h2&gt;&#10;&lt;p&gt;With the official Docker images you get:&lt;/p&gt;</description></item><item><title>Gotta Code 'Em All: How Java Evolved Beyond Verbosity – Celebrating 30 Years of Pokémon</title><link>https://foojay.io/today/gotta-code-em-all-how-java-evolved-beyond-verbosity-celebrating-30-years-of-pokemon/</link><pubDate>Fri, 27 Feb 2026 09:57:35 +0000</pubDate><guid>https://foojay.io/today/gotta-code-em-all-how-java-evolved-beyond-verbosity-celebrating-30-years-of-pokemon/</guid><description>&lt;p&gt;&lt;img src="https://foojay.io/today/gotta-code-em-all-how-java-evolved-beyond-verbosity-celebrating-30-years-of-pokemon/pokemon01-1024x640.jpg" alt="" width="1024" height="640" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;p&gt;Happy 30th Anniversary to &lt;strong&gt;Pokémon&lt;/strong&gt;! 🎉&lt;/p&gt;&#10;&lt;p&gt;February 27, 2026 marks exactly 30 years since the original Pokémon Red and Green launched in Japan on February 27, 1996. From catching your first Pokémon in Pallet Town to becoming Champion in the Indigo League, the franchise has spent three decades teaching millions of players about strategy, friendship, exploration, and constant improvement, evolving creatures, teams, and even entire generations of games.&lt;/p&gt;&#10;&lt;p&gt;Pokémon is literally all about evolution and that same spirit of evolution perfectly matches what&amp;rsquo;s happening in Java right now.&lt;/p&gt;</description></item><item><title>Personal Branding Tips for Java Developers</title><link>https://foojay.io/today/watch-the-recording-diy-technical-marketing-for-java-developers/</link><pubDate>Thu, 26 Feb 2026 10:28:58 +0000</pubDate><guid>https://foojay.io/today/watch-the-recording-diy-technical-marketing-for-java-developers/</guid><description>&lt;p&gt;The software development industry is more competitive than ever. Being a strong technical expert is essential, but on its own it is often not enough to grow your career or open new opportunities.&lt;/p&gt;&#10;&lt;p&gt;In this short, practical talk&lt;em&gt;DIY Technical Marketing, Real World Tips For Building A Successful Developer Brand&lt;/em&gt; , delivered at &lt;a href="https://www.jfokus.se/" title="Jfokus 2026 conference" target="_blank" rel="noopener noreferrer"&gt;Jfokus 2026 conference&lt;/a&gt;, Payara Community Manager Dominika Tasarz-Sochacka explores why personal branding matters for developers and how even small, intentional actions can make a real difference over time.&lt;/p&gt;</description></item><item><title>Bringing Java Closer to Education: A Community-Driven Initiative</title><link>https://foojay.io/today/bringing-java-closer-to-education-a-community-driven-initiative/</link><pubDate>Mon, 02 Feb 2026 18:02:20 +0000</pubDate><guid>https://foojay.io/today/bringing-java-closer-to-education-a-community-driven-initiative/</guid><description>&lt;p&gt;Over the past decades, Java has proven itself to be one of the most reliable, versatile, and widely used programming languages in the world. From enterprise systems to mobile applications and embedded devices, Java continues to evolve and adapt. Yet, one important area still holds enormous untapped potential: education.&lt;/p&gt;&#10;&lt;p&gt;This initiative was born from a simple but powerful idea: to aggregate Java-related educational content in a way that helps newcomers get started, supports educators, and encourages new Java initiatives focused on learning. By making Java more accessible and visible in educational environments, we strengthen not only the language itself, but the entire ecosystem around it.&lt;/p&gt;</description></item><item><title>Jakarta Data Makes Persistence a Breeze</title><link>https://foojay.io/today/jakarta-data-makes-persistence-a-breeze/</link><pubDate>Fri, 12 Dec 2025 11:55:58 +0000</pubDate><guid>https://foojay.io/today/jakarta-data-makes-persistence-a-breeze/</guid><description>&lt;p&gt;Working with enterprise Java databases can sometimes feel like swimming upstream. Jakarta EE 11&amp;rsquo;s Jakarta Data helps developers glide through data operations effortlessly, cutting complexity and keeping projects flowing smoothly.&lt;/p&gt;&#10;&lt;p&gt;In this blog post, we look at what Jakarta Data brings to the table and how it can transform everyday Java development tasks.&lt;/p&gt;&#10;&lt;p&gt;Jakarta EE is evolving, and one of the most talked-about additions in the latest release (&lt;a href="https://payara.fish/blog/jakarta-ee-11-is-here-and-its-ready-for-the-cloud/" title="Jakarta EE 11" target="_blank" rel="noopener noreferrer"&gt;Jakarta EE 11&lt;/a&gt;) is &lt;a href="https://projects.eclipse.org/projects/ee4j.data" title="Jakarta Data" target="_blank" rel="noopener noreferrer"&gt;Jakarta Data&lt;/a&gt;, a framework designed to simplify how developers interact with databases. By reducing boilerplate and offering a more intuitive approach, Jakarta Data promises to make enterprise Java development cleaner, faster and more maintainable.&lt;/p&gt;</description></item><item><title>First Experiments with Java on the LattePanda IOTA: An Alternative to Raspberry Pi?</title><link>https://foojay.io/today/first-experiments-with-java-on-the-lattepanda-iota/</link><pubDate>Thu, 11 Dec 2025 09:13:14 +0000</pubDate><guid>https://foojay.io/today/first-experiments-with-java-on-the-lattepanda-iota/</guid><description>&lt;p&gt;After years of experimenting with Raspberry Pi boards, Java, JavaFX, and &lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt; to control electronics, I wanted to explore whether my knowledge and experience could be applied to similar boards from other providers. There are many alternatives available these days, based on ARM, Intel processors, and RISC-V architectures.&lt;/p&gt;&#10;&lt;p&gt;I reached out to several suppliers to see if I could get evaluation copies, and I&amp;rsquo;m happy to share that I received my first box from DFRobot containing the &lt;a href="https://www.dfrobot.com/product-2989.html" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;LattePanda IOTA&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Foojay Podcast #85: Code, Community, and Opportunity: Making Tech Accessible for Everyone</title><link>https://foojay.io/today/foojay-podcast-85/</link><pubDate>Mon, 08 Dec 2025 06:07:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-85/</guid><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;What if the future of Java depends on who we invite to learn it today?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;In this Foojay Podcast, we&amp;rsquo;re diving into something that affects all of us in the Java community: How can we inspire the next generation of developers, and how do we make the developer world more inclusive?&lt;/p&gt;&#10;&lt;p&gt;In this episode, you&amp;rsquo;ll hear four incredible guests who are actively working to make tech more accessible and inclusive. First, Daniel De Luca talks about Devoxx for Kids and how they support underprivileged students in IT education. Then Kenny Schwegler shares his insights on how we can actively promote diversity and inclusion in tech. Cassandra Chin, the youngest Java Champion and author, talks about inspiring young coders through hands-on projects and making technology fun. And finally, Igor De Souza discusses his mission to bring Java into Raspberry Pi education and bring more Java into coding clubs worldwide.&lt;/p&gt;</description></item><item><title>From Spring Boot To Jakarta EE 11</title><link>https://foojay.io/today/from-spring-boot-to-jakarta-ee-11-how-payara-starter-eases-the-transition/</link><pubDate>Fri, 28 Nov 2025 08:11:53 +0000</pubDate><guid>https://foojay.io/today/from-spring-boot-to-jakarta-ee-11-how-payara-starter-eases-the-transition/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been living in the Spring ecosystem, you&amp;rsquo;re used to fast project setup. Spring Initializr gives you a sleek interface, some starter dependencies and a running project within minutes. Now you&amp;rsquo;re moving to Jakarta EE, where do you begin?&lt;/p&gt;&#10;&lt;p&gt;In this blog, you&amp;rsquo;ll see how Spring developers &lt;strong&gt;can create Jakarta EE applications with the same ease they&amp;rsquo;re used to from Spring Initializr.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s be honest: Spring Boot abstracts away so much of the setup pain that you forget it&amp;rsquo;s even there. You don&amp;rsquo;t worry about the underlying servlet container, dependency versions or deployment descriptors, as Spring Boot handles it all.&lt;/p&gt;</description></item><item><title>Payara Server Maven Plugin + AI Agent</title><link>https://foojay.io/today/boost-developer-productivity-with-payara-server-maven-plugin-ai-agent/</link><pubDate>Tue, 30 Sep 2025 08:43:20 +0000</pubDate><guid>https://foojay.io/today/boost-developer-productivity-with-payara-server-maven-plugin-ai-agent/</guid><description>&lt;h2 id="managing-payara-server-just-got-smarter"&gt;Managing Payara Server Just Got Smarter&lt;/h2&gt;&#10;&lt;p&gt;Imagine managing your Jakarta EE applications not just with Maven goals, but by asking natural questions.&lt;/p&gt;&#10;&lt;p&gt;With the &lt;a href="http:/https://docs.payara.fish/community/docs/6.2025.5/Technical%20Documentation/Ecosystem/Project%20Management%20Tools/Maven%20Plugin/Payara%20Server%20Maven%20Plugin.html#ai-agent/" title="experimental AI Agent"&gt;experimental AI Agent&lt;/a&gt; built into the Payara Server Community&amp;rsquo;s Maven Plugin, you can now query server internals and perform admin tasks using plain English — directly from the same terminal where you build and deploy your applications.&lt;/p&gt;&#10;&lt;p&gt;Thanks to this integration, developers can inspect, query and even execute server commands using natural language. It&amp;rsquo;s a powerful and intuitive way to interact with Payara Server — no need to remember long command syntax or dig through documentation.&lt;/p&gt;</description></item><item><title>Design Patterns Update to JDK25</title><link>https://foojay.io/today/design-patterns-update-to-jdk25/</link><pubDate>Wed, 24 Sep 2025 11:29:34 +0000</pubDate><guid>https://foojay.io/today/design-patterns-update-to-jdk25/</guid><description>&lt;p&gt;&lt;strong&gt;T&lt;/strong&gt; he information technology landscape is changing rapidly. This is not only due to the utilization of AI and &lt;a href="https://foojay.io/today/stochastic-ai-agility-breaking-cycles-of-debt/" title="new methodologies"&gt;new methodologies [8]&lt;/a&gt;, or business requirements trying to keep up, but also because of the incremental complexity of expected solutions.&lt;/p&gt;&#10;&lt;p&gt;Statistics and probability are slowly beginning to play a very important role in this evolution. The Java ecosystem has proven its maturity many times by delivering essential features that businesses require, although many may argue that these have been inspired by other existing solutions.&lt;/p&gt;</description></item><item><title>How to Kickstart Your Jakarta EE 11 Projects with Payara Starter</title><link>https://foojay.io/today/how-to-kickstart-your-jakarta-ee-11-projects-with-payara-starter/</link><pubDate>Tue, 23 Sep 2025 10:26:53 +0000</pubDate><guid>https://foojay.io/today/how-to-kickstart-your-jakarta-ee-11-projects-with-payara-starter/</guid><description>&lt;p&gt;&lt;strong&gt;Jakarta EE 11 is here, bringing powerful new capabilities for enterprise Java developers. But getting started quickly can be a challenge - that&amp;rsquo;s where the latest Payara Starter comes in. With full Jakarta EE 11 support, an updated ERD-based code generator, and a new Jakarta Faces project generator, it gives you everything you need to launch your next application with ease.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;With Jakarta EE 11 now &lt;a href="https://blog.payara.fish/jakarta-ee-11-is-here-and-its-ready-for-the-cloud" title="officially released" target="_blank" rel="noopener noreferrer"&gt;officially released&lt;/a&gt;, you are likely eager to explore its new capabilities but setting up your first application may take longer than you want. That&amp;rsquo;s where the latest version of Payara Starter steps in, giving you a fast, hassle-free way to get a fully functional Jakarta EE 11 project up and running. Read more to learn how!&lt;/p&gt;</description></item><item><title>Taking Java Arrays to Another Dimension</title><link>https://foojay.io/today/taking-java-arrays-to-another-dimension/</link><pubDate>Fri, 29 Aug 2025 12:53:09 +0000</pubDate><guid>https://foojay.io/today/taking-java-arrays-to-another-dimension/</guid><description>&lt;p&gt;&lt;em&gt;Explore the intricacies of Java&amp;rsquo;s multidimensional arrays with this in-depth guide. Learn how to declare, initialize, and utilize arrays of Java arrays to manage complex data structures effectively. In this blog post, Azul Deputy CTO Simon Ritter explains how to leverage multidimensional arrays as a tool to do even more.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Java, along with many other programming languages, includes the concept of arrays. An array is an object that contains a number of variables. Since an array is itself an object, the variables in an array can also be arrays, which leads us to the idea of multidimensional arrays.&lt;/p&gt;</description></item><item><title>Why Java is Still Worth Learning in 2025: A Developer's 25-Year Journey</title><link>https://foojay.io/today/why-java-is-still-worth-learning-in-2025-a-developers-25-year-journey/</link><pubDate>Mon, 04 Aug 2025 06:32:05 +0000</pubDate><guid>https://foojay.io/today/why-java-is-still-worth-learning-in-2025-a-developers-25-year-journey/</guid><description>&lt;h3 id="ill-be-honest---my-first-encounter-with-java-in-1999-wasnt-love-at-first-sight-it-was-during-a-university-distributed-systems-course-and-coming-from-a-background-in-assembler-and-c-java-felt-bloated-slow-and-frankly-untrustworthy-that-automatic-memory-handling-seemed-like-dangerous-magic-i-couldnt-control-after-years-of-meticulously-tracking-every-allocated-memory-block-the-idea-that-the-runtime-would-handle-memory-management-felt-like-giving-up-control-to-forces-i-didnt-understand"&gt;I&amp;rsquo;ll be honest - my first encounter with Java in 1999 wasn&amp;rsquo;t love at first sight. It was during a university distributed systems course, and coming from a background in assembler and C, Java felt bloated, slow, and frankly untrustworthy. That &amp;ldquo;automatic memory handling&amp;rdquo; seemed like dangerous magic I couldn&amp;rsquo;t control. After years of meticulously tracking every allocated memory block, the idea that the runtime would handle memory management felt like giving up control to forces I didn&amp;rsquo;t understand.&lt;/h3&gt;&#10;&lt;p&gt;For the first eight years of my career, I stubbornly stuck with C, convinced that Java was just a passing trend for developers who couldn&amp;rsquo;t handle &amp;ldquo;real&amp;rdquo; programming.&lt;/p&gt;</description></item><item><title>Understanding MCP Through Raw STDIO Communication</title><link>https://foojay.io/today/understanding-mcp-through-raw-stdio-communication/</link><pubDate>Thu, 17 Jul 2025 15:57:05 +0000</pubDate><guid>https://foojay.io/today/understanding-mcp-through-raw-stdio-communication/</guid><description>&lt;h2 id="deep-dive-into-the-model-context-protocol"&gt;Deep Dive into the Model Context Protocol&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Ever wondered how AI assistants like Claude actually communicate with external tools and services? While most tutorials focus on using pre-built SDKs and frameworks, this article takes a different approach—we&amp;rsquo;ll dissect a production MCP server built from scratch using only Java&amp;rsquo;s standard libraries and raw STDIO communication.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;&lt;strong&gt;By stripping away all the abstractions and implementing the Model Context Protocol directly, we&amp;rsquo;ll uncover the surprisingly elegant mechanics that enable AI systems to discover, understand, and execute tools.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Foojay Podcast #75: JCON Report, Part 4 - Tips and Tricks for Java Devs</title><link>https://foojay.io/today/foojay-podcast-75/</link><pubDate>Mon, 14 Jul 2025 06:47:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-75/</guid><description>&lt;p&gt;&lt;strong&gt;This is the final part of the JCON 2025 interviews with a lot of tips and tricks!&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;In the three previous podcasts, we featured interviews from the JCON conference on &amp;ldquo;&lt;a href="https://foojay.io/today/foojay-podcast-72/"&gt;Being a better Java developer&lt;/a&gt;,&amp;rdquo; &amp;ldquo;&lt;a href="https://foojay.io/today/foojay-podcast-72/"&gt;Evolutions in Java&lt;/a&gt;,&amp;rdquo; and &amp;ldquo;&lt;a href="https://foojay.io/today/foojay-podcast-73/"&gt;How to use AI with Java&lt;/a&gt;.&amp;rdquo; However, we talked to many more people during the conference, so this podcast focuses on tips and tricks. Let&amp;rsquo;s learn from the many other experienced visitors of JCON.&lt;/p&gt;</description></item><item><title>GenAI blood, sweat, and tears: Loading data to Pinecone</title><link>https://foojay.io/today/genai-blood-sweat-and-tears-loading-data-to-pinecone/</link><pubDate>Wed, 07 May 2025 22:10:37 +0000</pubDate><guid>https://foojay.io/today/genai-blood-sweat-and-tears-loading-data-to-pinecone/</guid><description>&lt;p&gt;As someone who is pretty familiar with relational and graph databases, I wanted to dig a little deeper into vector databases and understand the strengths and quirks they bring to the database table. I put together a conference abstract on vector RAG versus GraphRAG which got picked up, so I went to work building a demo and learning all I could.&lt;/p&gt;&#10;&lt;p&gt;I pivoted a few times along the way, but ended up with a Spring AI application that connects to both Pinecone (vector database) and Neo4j (graph database). There were a few surprises throughout, which I&amp;rsquo;ll be sure to mention. Let&amp;rsquo;s get started!&lt;/p&gt;</description></item><item><title>Optimizing the Garbage Collector when Migrating Cloud Workloads</title><link>https://foojay.io/today/optimizing-the-garbage-collector-when-migrating-cloud-workloads/</link><pubDate>Wed, 16 Apr 2025 10:27:49 +0000</pubDate><guid>https://foojay.io/today/optimizing-the-garbage-collector-when-migrating-cloud-workloads/</guid><description>&lt;h2 id="introduction-to-java-on-arm"&gt;Introduction to Java on Arm&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;You might associate Arm primarily with smartphones and the Java-based Android runtime. However, OpenJDK has supported AArch64 on Linux since 2014— before Arm-based cloud instances were widely available.&lt;/strong&gt; &lt;strong&gt;Fast forward a decade and major cloud providers have their own Arm-based instances like AWS Graviton, Microsoft Azure Cobalt, and others, prompting many organizations to migrate Java workloads from x86 to multi-architecture environments.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;A multi-architecture deployment shift allows an organization to be adaptable and choose the architecture with the ideal price to performance ratio. Large independent software vendors, such as Uber, are &lt;a href="https://www.uber.com/en-GB/blog/adopting-arm-at-scale-bootstrapping-infrastructure/" target="_blank" rel="noopener noreferrer"&gt;already making this transition&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Sliding Window Log Rate Limiter (Redis &amp; Java)</title><link>https://foojay.io/today/sliding-window-log-rate-limiter-redis-java/</link><pubDate>Tue, 04 Feb 2025 12:21:56 +0000</pubDate><guid>https://foojay.io/today/sliding-window-log-rate-limiter-redis-java/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;&lt;a href="https://youtu.be/bCYzRg0oQjY" target="_blank" rel="noopener noreferrer"&gt;This article is also available on YouTube. Check it out!&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;The Sliding Window Log is a &lt;em&gt;more precise&lt;/em&gt; way to handle rate limiting. Instead of splitting time into fixed intervals like the &lt;a href="https://foojay.io/today/fixed-window-counter-rate-limiter-redis-java/"&gt;Fixed Window Counter&lt;/a&gt; , it keeps a log of timestamps for each request. This allows it to track requests over a rolling time period, like the last second or minute, without abrupt resets at the end of an interval.&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>