<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Frank Delporte on foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/today/author/frankdelporte/</link><description>Articles written by Frank Delporte on foojay.io - Friends Of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 19 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://foojay.io/today/author/frankdelporte/index.xml" rel="self" type="application/rss+xml"/><item><title>Foojay Podcast #103: Killing Reflection at Build Time with Dmitry Moskalyuk and Shai Almog</title><link>https://foojay.io/today/foojay-podcast-103/</link><pubDate>Mon, 19 Oct 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-103/</guid><description>&lt;p&gt;Runtime reflection is one of those quiet taxes on the JVM: it is flexible, it is everywhere, and it is easy to stop noticing it until you go looking for where your CPU is actually going. In this episode, two teams from completely different corners of the ecosystem explain how they went looking and ended up at the same answer: push the work to build time.&lt;/p&gt;&#10;&lt;p&gt;Dmitry Moskalyuk is a new author on Foojay. His article &amp;ldquo;&lt;a href="https://foojay.io/today/reflection-free-serialization-on-the-jvm-four-formats-in-avro-out/"&gt;Reflection-Free Serialization on the JVM: Four Formats In, Avro Out&lt;/a&gt;&amp;rdquo; describes a model layer that ingests JSON, XML, YAML and TOML and converts everything to Avro, and the choice between Jackson and kotlinx.serialization that came down to where the reflection cost hides, and where it does not. Shai Almog has been &lt;a href="https://foojay.io/today/author/shai-almog/"&gt;writing on Foojay since 2021&lt;/a&gt; and works on a build-time code generation pipeline for Codename One, with the goal of &amp;ldquo;no reflection, no service loader, no Class.forName&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Lottie4J 1.2.7: A Performance Release</title><link>https://foojay.io/today/lottie4j-1-2-7-a-performance-release/</link><pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/lottie4j-1-2-7-a-performance-release/</guid><description>&lt;div class="paragraph"&gt;&#10;&lt;p&gt;A new version of &lt;a href="https://lottie4j.com/"&gt;Lottie4J&lt;/a&gt;, the Java and JavaFX library to render Lottie animations, is available. &lt;a href="https://lottie4j.com/status/2026/20261014-release-1.2.7/"&gt;Release 1.2.7&lt;/a&gt; doesn’t bring new features, but focuses fully on performance.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div class="admonitionblock important"&gt;&#10;&lt;table&gt;&#10;&lt;tbody&gt;&lt;tr&gt;&#10;&lt;td class="icon"&gt;&#10;&lt;div class="title"&gt;Important&lt;/div&gt;&#10;&lt;/td&gt;&#10;&lt;td class="content"&gt;&#10;&lt;div class="paragraph"&gt;&#10;&lt;p&gt;&lt;strong&gt;USE 1.2.8&lt;/strong&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div class="paragraph"&gt;&#10;&lt;p&gt;The reuse of snapshot images in the matte renderer introduced a regression: animations with track mattes of different sizes could show horizontal streaks during playback (&lt;a href="https://github.com/lottie4j/lottie4j/issues/12"&gt;issue #12&lt;/a&gt;). This is fixed in &lt;a href="https://lottie4j.com/releases/#2026-10-15-128"&gt;Lottie4J 1.2.8&lt;/a&gt;, so please use that version instead of 1.2.7.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&lt;/table&gt;&#10;&lt;/div&gt;</description></item><item><title>Pi4J V5.0.0: Work in Progress</title><link>https://foojay.io/today/pi4j-v5-work-in-progress/</link><pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/pi4j-v5-work-in-progress/</guid><description>&lt;h2 id="what-is-pi4j"&gt;What is Pi4J?&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://www.pi4j.com/" target="_blank" rel="noopener noreferrer"&gt;Pi4J&lt;/a&gt; is an open-source Java library that gives your Java application access to the hardware pins of a Raspberry Pi and other single-board computers. With it, you can blink an LED, read a button, or talk to sensors, displays, and motor controllers over GPIO, PWM, I2C, SPI, and serial, all from plain Java code and without writing any C. The project started more than ten years ago, is now part of the &lt;a href="https://www.pi4j.com/blog/2026/20260227-pi4j-commonhaus/" target="_blank" rel="noopener noreferrer"&gt;Commonhaus Foundation&lt;/a&gt;, and is maintained by a small team of volunteers.&lt;/p&gt;</description></item><item><title>Media Partner for OCX27 and jChampions Conference 2027</title><link>https://foojay.io/today/media-partner-for-ocx27-and-jchampions-conference/</link><pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/media-partner-for-ocx27-and-jchampions-conference/</guid><description>&lt;p&gt;Foojay is proud to be a media partner for two very different, but equally&#10;great, events coming up: &lt;strong&gt;OCX 2027&lt;/strong&gt; in Brussels and the fully online&#10;&lt;strong&gt;jChampions Conference 2027&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="ocx-2027"&gt;OCX 2027&lt;/h2&gt;&#10;&lt;p&gt;We&amp;rsquo;re excited to be a media partner of &lt;a href="https://ocxconf.org/" target="_blank" rel="noopener noreferrer"&gt;Open Community Experience&#10;(OCX) 2027&lt;/a&gt;. From &lt;strong&gt;13–15 April 2027&lt;/strong&gt;, developers,&#10;maintainers, researchers, engineering leaders, and open source communities&#10;from around the world will meet at &lt;strong&gt;Tour &amp;amp; Taxis&lt;/strong&gt; in Brussels, Belgium.&lt;/p&gt;</description></item><item><title>Featured Foojay Authors for October 2026: Bazlur Rahman and Nicolas Fränkel</title><link>https://foojay.io/today/featured-foojay-authors-for-october-2026/</link><pubDate>Tue, 06 Oct 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/featured-foojay-authors-for-october-2026/</guid><description>&lt;p&gt;Foojay wouldn&amp;rsquo;t exist without the many contributions from its community, whether it&amp;rsquo;s a single post or an ongoing stream of knowledge sharing. That&amp;rsquo;s why we highlight two of them each month as &lt;strong&gt;&lt;a href="https://foojay.io/today/author/"&gt;Featured Authors&lt;/a&gt;&lt;/strong&gt;. After &lt;a href="https://foojay.io/today/author/marit-van-dijk/"&gt;Marit&lt;/a&gt; and &lt;a href="https://foojay.io/today/author/graeme-robinson/"&gt;Graeme&lt;/a&gt; in September, October belongs to &lt;strong&gt;&lt;a href="https://foojay.io/today/author/bazlur-rahman/"&gt;Bazlur Rahman&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://foojay.io/today/author/nicolas-frankel/"&gt;Nicolas Fränkel&lt;/a&gt;&lt;/strong&gt;. Want to read more from either of them? Click their name to visit their Foojay author page, where you&amp;rsquo;ll find their full list of posts.&lt;/p&gt;</description></item><item><title>Foojay Podcast #102: Why Foojay Walked Away From WordPress for Static Sites</title><link>https://foojay.io/today/foojay-podcast-102/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-102/</guid><description>&lt;p&gt;Foojay.io quietly moved off WordPress and onto Hugo, a static site generator. No more CMS login, no database, no admin panel — just Markdown and AsciiDoc files, built and deployed straight from GitHub. In this episode we dig into why that move happened, and into the bigger question behind it: is a traditional CMS still the right way to run a content site in 2026, or has static tooling caught up? Along the way we go through the real security numbers behind WordPress&amp;rsquo;s plugin ecosystem — more than 10,000 vulnerabilities found in WordPress plugins since 2025 alone — and put very different static site generators head to head: Hugo and Jekyll, the veterans, versus Roq, the Java-and-Quarkus-based newcomer.&lt;/p&gt;</description></item><item><title>JavaFX Links of September 2026</title><link>https://foojay.io/today/javafx-links-of-september-2026/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/javafx-links-of-september-2026/</guid><description>&lt;p&gt;Here are the JavaFX LinksOfTheMonth of September 2026. This was a big month with the release of JavaFX 27!&lt;/p&gt;&#10;&lt;p&gt;You can find the weekly lists on &lt;a href="https://www.jfx-central.com/links" target="_blank" rel="noopener noreferrer"&gt;jfx-central.com&lt;/a&gt;. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via &lt;a href="mailto:links@jfx-central.com"&gt;links@jfx-central.com&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="core"&gt;Core&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;From the OpenJFX mailing list:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Alexander Zuev&lt;/strong&gt; integrated &lt;a href="https://marc.info/?l=openjdk-openjfx-dev&amp;amp;m=178836230081558&amp;amp;w=2" target="_blank" rel="noopener noreferrer"&gt;8384483: Create implementation of NSAccessibilityTable protocol&lt;/a&gt;, a 585-line addition across 11 files that gives macOS proper accessibility support for tables and lists: &amp;ldquo;&lt;em&gt;To preserve functionality the separate native peers for tables and lists are created; the list peer for now reports its role as a table for backward compatibility, that can be changed later; fixed the long existed bug where table reported incorrectly currently selected rows.&lt;/em&gt;&amp;rdquo; Reviewed by &lt;strong&gt;Andy Goryachev&lt;/strong&gt; and &lt;strong&gt;Ambarish Rapte&lt;/strong&gt;. &lt;a href="https://git.openjdk.org/jfx/pull/2217" target="_blank" rel="noopener noreferrer"&gt;PR #2217&lt;/a&gt; — &lt;a href="https://git.openjdk.org/jfx/commit/67853fbf55117f92d0fabcc02798a1115837e2e5" target="_blank" rel="noopener noreferrer"&gt;changeset 67853fbf&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1w4o4t0/what_is_the_future_of_javafx_looking_like/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Gufran Thakur&lt;/strong&gt; asks on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;What is the future of JavaFX looking like?&lt;/em&gt;&amp;rdquo; A lot of interesting answers already. Want to add yours? And, thank you &lt;strong&gt;Marius Hanl&lt;/strong&gt;, for mentioning &lt;strong&gt;JFX Central&lt;/strong&gt; in your answer, we appreciate it! :-)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://www.mail-archive.com/openjfx-dev@openjdk.org/msg29287.html" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Jose Pereda&lt;/strong&gt; integrated 8391779: JVM crashes after copy key event on focused WebView that has no selection&lt;/a&gt;: &amp;ldquo;&lt;em&gt;This PR adds a guard to WebKit/EditorJava.cpp, to prevent passing an empty selection to the pasteboard, that would cause an immediate JVM termination, when firing a copy key event over a focused WebView that has no selection.&lt;/em&gt;&amp;rdquo; Reviewed and integrated on 8 September. (&lt;a href="https://git.openjdk.org/jfx/pull/2241" target="_blank" rel="noopener noreferrer"&gt;PR on GitHub&lt;/a&gt;)&lt;/li&gt;&#10;&lt;li&gt;Release cycle note: the cutoff for backports into &lt;strong&gt;JavaFX 27.0.1&lt;/strong&gt; was 7 September, and &lt;a href="http://www.mail-archive.com/openjfx-dev@openjdk.org/msg28928.html" target="_blank" rel="noopener noreferrer"&gt;jfx27u is now open for 27.0.2 fixes&lt;/a&gt; — announced by &lt;strong&gt;Kevin Rushforth&lt;/strong&gt;, version bump &lt;a href="http://www.mail-archive.com/openjfx-dev@openjdk.org/msg29269.html" target="_blank" rel="noopener noreferrer"&gt;integrated by &lt;strong&gt;Ambarish Rapte&lt;/strong&gt;&lt;/a&gt; on 8 September.&lt;/li&gt;&#10;&lt;li&gt;The &lt;a href="https://github.com/openjdk/jfx/blob/master/doc-files/release-notes-27.md" target="_blank" rel="noopener noreferrer"&gt;Release Notes for JavaFX 27&lt;/a&gt; are available in the OpenJFX repository and list everything that went into this release: 7 new features, 20 other enhancements, 77 bug fixes and 6 security fixes.&lt;/li&gt;&#10;&lt;li&gt;The &lt;strong&gt;Gluon Team&lt;/strong&gt; published &lt;a href="https://gluonhq.com/news/2026-09-15-javafx-27-is-now-available/" target="_blank" rel="noopener noreferrer"&gt;JavaFX 27 is Now Available&lt;/a&gt; with an overview of the release: the Metal rendering pipeline as the new default on macOS, conditional stylesheets and media queries in CSS, JavaFX controls in the window title bar, the RichTextArea additions, and over 70 bug fixes and control performance improvements. Two things to check before upgrading: JavaFX 27 is compiled with &lt;code&gt;--release 25&lt;/code&gt;, so an older JDK fails at startup, and on macOS you can fall back to the previous pipeline with the &lt;code&gt;-Dprism.order=es2&lt;/code&gt; launch parameter.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://openjfx.io/highlights/27/" target="_blank" rel="noopener noreferrer"&gt;JavaFX 27 Highlights&lt;/a&gt; lists what is new: RichTextArea tab stop attributes plus embedded image, text background and wavy underline attributes; conditional stylesheet imports; &lt;code&gt;ConditionalFeature&lt;/code&gt; and platform media queries; JavaFX controls in the title bar; animations that now respect the reduced motion preference; improved macOS accessibility including navigable static text and hyperlinks; better Flatpak integration through &lt;code&gt;GtkFileChooserNative&lt;/code&gt;; and iOS improvements including &lt;code&gt;UIWindowScene&lt;/code&gt; support. The community fixed more than 60 bugs, and dependencies moved to WebKit 623.1, GStreamer 1.28.3, libxml2 2.15.3 and libxslt 1.1.45. The highlights page credits &lt;a href="https://gluonhq.com" target="_blank" rel="noopener noreferrer"&gt;Gluon&lt;/a&gt; for the bulk of the work on this release.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Andy Goryachev&lt;/strong&gt; integrated &lt;a href="https://mail-archive.com/openjfx-dev@openjdk.org/msg29554.html" target="_blank" rel="noopener noreferrer"&gt;8390913: RichTextArea: Down arrow stuck on paragraph if space above and below are set&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Fixes broken navigation introduced in JDK-8370902 with non-zero paragraph spacing (above, below, line spacing).&lt;/em&gt;&amp;rdquo; The Rich Editor Demo was also updated to allow setting paragraph line spacing in addition to space above/below (right click → Paragraph). A sizeable change at 539 lines across 11 files, reviewed by &lt;strong&gt;Jose Pereda&lt;/strong&gt; and &lt;strong&gt;Lukasz Kostyra&lt;/strong&gt;, integrated on 15 September. (&lt;a href="https://github.com/openjdk/jfx/pull/2280" target="_blank" rel="noopener noreferrer"&gt;PR on GitHub&lt;/a&gt;, &lt;a href="https://github.com/openjdk/jfx/commit/23c3580cc2d25b13dbf4cb8142afb51691c2cf5f" target="_blank" rel="noopener noreferrer"&gt;changeset&lt;/a&gt;)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Marius Hanl&lt;/strong&gt; integrated &lt;a href="https://mail-archive.com/openjfx-dev@openjdk.org/msg29563.html" target="_blank" rel="noopener noreferrer"&gt;8392149: Mark deprecated snap methods for removal in SkinBase&lt;/a&gt;, a heads-up for anyone writing custom skins: &amp;ldquo;&lt;em&gt;Since we will remove the snapping methods in &lt;code&gt;Region&lt;/code&gt; at one point, we should also do that in &lt;code&gt;SkinBase&lt;/code&gt;.&lt;/em&gt;&amp;rdquo; A continuation of JDK-8390773, reviewed by &lt;strong&gt;Kevin Rushforth&lt;/strong&gt; and &lt;strong&gt;Andy Goryachev&lt;/strong&gt;, integrated on 15 September. (&lt;a href="https://github.com/openjdk/jfx/pull/2311" target="_blank" rel="noopener noreferrer"&gt;PR on GitHub&lt;/a&gt;, &lt;a href="https://github.com/openjdk/jfx/commit/bb1789c15faadc866656a5ee2520e1ee4cabd95a" target="_blank" rel="noopener noreferrer"&gt;changeset&lt;/a&gt;)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.infoq.com/news/2026/09/java27-released/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Michael Redlich&lt;/strong&gt; wrote up the Java 27 release for InfoQ, with a section on JavaFX 27&lt;/a&gt;: JavaFX 27 joins Helidon 27 and Jipher 20 as new additions to the Oracle &lt;a href="https://www.oracle.com/java/technologies/downloads/jvp/" target="_blank" rel="noopener noreferrer"&gt;Java Verified Portfolio&lt;/a&gt;, delivering a &amp;ldquo;&lt;em&gt;metal rendering pipeline on macOS for smoother performance on modern Apple hardware&lt;/em&gt;&amp;rdquo;, enhanced text editing controls, and continued accessibility improvements.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Alexander Matveev&lt;/strong&gt; integrated &lt;a href="https://marc.info/?l=openjdk-openjfx-dev&amp;amp;m=179004515064455&amp;amp;w=2" target="_blank" rel="noopener noreferrer"&gt;8331458: Replace qtdemux with MP4 demux based on Media Foundation&lt;/a&gt; in OpenJFX: &amp;ldquo;&lt;em&gt;Replaced &lt;code&gt;qtdemux&lt;/code&gt; with a Media Foundation-based MP4 demuxer on Windows. H.264 video from MP4 and fMP4 (HLS) is now decoded using Media Foundation instead of DirectShow. This change avoids several DirectShow issues encountered with the new MP4 demuxer and reduces implementation complexity.&lt;/em&gt;&amp;rdquo; The changeset also fixes 8305842 (video sometimes does not start when reinitializing on Windows 11). See &lt;a href="https://git.openjdk.org/jfx/pull/2206" target="_blank" rel="noopener noreferrer"&gt;PR #2206&lt;/a&gt; and &lt;a href="https://git.openjdk.org/jfx/commit/67f70684baa3f6168c9c0183e588c6d294d9f65d" target="_blank" rel="noopener noreferrer"&gt;commit 67f70684&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://mail-archive.com/openjfx-dev@openjdk.org/msg29755.html" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Michael Strauß&lt;/strong&gt; integrated a fix for rows disappearing in a TableView with a horizontal scrollbar&lt;/a&gt;: &amp;ldquo;&lt;em&gt;&lt;code&gt;VirtualFlow&lt;/code&gt; stores the scroll location in two values &amp;hellip; These two values can become inconsistent &amp;hellip; The patch is quite easy: it sets &lt;code&gt;absoluteOffset&lt;/code&gt; to zero when all cells fit.&lt;/em&gt;&amp;rdquo; See &lt;a href="https://git.openjdk.org/jfx/pull/2317" target="_blank" rel="noopener noreferrer"&gt;PR #2317&lt;/a&gt; and the &lt;a href="https://git.openjdk.org/jfx/commit/7f321a7015e001a2822b5b10e27701503acf0828" target="_blank" rel="noopener noreferrer"&gt;commit&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;Public Service Announcement (PSA) from &lt;strong&gt;milchshakee&lt;/strong&gt; &lt;a href="https://www.reddit.com/r/JavaFX/comments/1wmmdmb/psa_starting_with_jdk27_you_do_no_longer_need_to/" target="_blank" rel="noopener noreferrer"&gt;on Reddit&lt;/a&gt;: starting with JDK 27, you no longer need a separate &lt;code&gt;Main&lt;/code&gt; class to launch a JavaFX application from the classpath, per &lt;a href="https://bugs.openjdk.org/browse/JDK-8248122" target="_blank" rel="noopener noreferrer"&gt;JDK-8248122&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="applications"&gt;Applications&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1w0rmqc/i_made_a_local_music_player/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Former_Weather_1174&lt;/strong&gt; made a local music player&lt;/a&gt;. &amp;ldquo;&lt;em&gt;I&amp;rsquo;ve made a local music player based on JavaFX. Although it&amp;rsquo;s still quite rudimentary, it already has all the necessary functions. I think some people might be interested in it. Here is the link to the &lt;a href="https://github.com/Muimi272/Kimusic" target="_blank" rel="noopener noreferrer"&gt;GitHub repository: Kimusic&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/helal-anwar-94571016b_java-javafx-opencv-ugcPost-7502853372006432768-VXi5/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Helal Anwar&lt;/strong&gt; shared a video of Passport Studio FX&lt;/a&gt;, a desktop application to simplify passport and ID photo preparation for local photo studios and print shops. It provides AI-powered background removal with MODNet and ONNX Runtime, manual cropping with passport-size aspect ratios, custom background colors, zoom controls, standard photo size presets, and A4 print-sheet generation with cutting borders. The tech stack is Java, JavaFX, FXML, OpenCV, ONNX Runtime, MODNet, Apache PDFBox, Maven, and jpackage for the Windows build. All images are processed locally, so nothing gets uploaded to the cloud.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1wal3zv/4_years_developing_im_proud_to_announce_numehub/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;LooseCartographer989&lt;/strong&gt; announced NumeHub on Reddit&lt;/a&gt;, claiming it is &lt;em&gt;&amp;ldquo;the largest JavaFX application ever built&amp;rdquo;&lt;/em&gt;: &amp;ldquo;&lt;em&gt;Four years ago I opened a JavaFX project to see how far the platform would go before it broke. It never broke. So I kept going.&lt;/em&gt;&amp;rdquo; NumeHub is a single desktop app that bundles projects, CRM, a point-of-sale system, WhatsApp and email campaigns, a file explorer, a browser and system monitoring, with an AI agent (built on MCP tools) on top that answers questions by voice or text. &amp;ldquo;&lt;em&gt;Millions of nodes. Under half a gig of RAM. A new release every week.&lt;/em&gt;&amp;rdquo; Runs on Windows and macOS (Apple Silicon and Intel) in English, Portuguese, Chinese and German; Linux is planned if there is demand. It&amp;rsquo;s not open source and &lt;a href="https://nume.solutions/download" target="_blank" rel="noopener noreferrer"&gt;downloads are here&lt;/a&gt;. The thread turned into a fun &amp;ldquo;who has the biggest JavaFX app&amp;rdquo; contest, with &lt;strong&gt;PartOfTheBotnet&lt;/strong&gt; (9 years, 5,440 commits), &lt;strong&gt;_DystopianSnowman&lt;/strong&gt; (13 years, ~90k LOC) and &lt;strong&gt;Siedlerchr&lt;/strong&gt; weighing in for JabRef.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1wi4552/sharing_my_tiny_project_please_check_it_out/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Thunder_ZEK&lt;/strong&gt; shared his tiny project on Reddit&lt;/a&gt;, Memento: &amp;ldquo;&lt;em&gt;It&amp;rsquo;s an application where you are asked 100 questions&amp;hellip; about your life, and answers to these 100 questions are basically in depth information about you and your life. So after answering you can download a PDF and share this to anybody.&lt;/em&gt;&amp;rdquo; Built with JDK 17, JavaFX 17, SQLite and OpenPDF, with all data staying on your device unless you export it. The &lt;a href="https://github.com/Savirar0/Memento" target="_blank" rel="noopener noreferrer"&gt;sources are on GitHub&lt;/a&gt;. He learned JavaFX from YouTube tutorials and built this over a few months to show he had picked it up - a Windows installer is included, but &amp;ldquo;&lt;em&gt;it&amp;rsquo;s only working on my laptop lol.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;The &lt;strong&gt;JabRef Team&lt;/strong&gt; released &lt;a href="https://github.com/JabRef/jabref/releases/tag/v6.0-beta.1" target="_blank" rel="noopener noreferrer"&gt;JabRef 6.0-beta.1&lt;/a&gt;, the first beta of the next major version of the JavaFX-based BibTeX/BibLaTeX reference manager. Highlights: almost everything is now navigable by keyboard with visual indicators, a fetcher for Software Heritage identifiers (SWHID), the community themes from &lt;a href="https://themes.jabref.org/" target="_blank" rel="noopener noreferrer"&gt;themes.jabref.org&lt;/a&gt; (Everforest, Nord, Papers, Chocolate Honey and more) selectable from the preferences with preview images, per-tab icons, and automatic reconnection to shared databases. &lt;a href="https://github.com/JabRef/jabref" target="_blank" rel="noopener noreferrer"&gt;Project on GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;NURI&lt;/strong&gt; demoed &lt;a href="https://www.youtube.com/watch?v=Cpjn4AeTFa0" target="_blank" rel="noopener noreferrer"&gt;StarLore, a gamified astronomy RPG desktop application&lt;/a&gt;: &amp;ldquo;&lt;em&gt;StarLore is a JavaFX-based desktop application that combines astronomy, mythology, exploration, and interactive gaming.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="components-libraries-tools"&gt;Components, Libraries, Tools&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Erik Costlow&lt;/strong&gt; wrote a post on InfoQ about &lt;a href="https://www.infoq.com/news/2026/08/flexgantfx/" target="_blank" rel="noopener noreferrer"&gt;FlexGanttFX going Open Source&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Dirk Lemmerman has open sourced FlexGanttFX, a resource-scheduling framework for generating Gantt charts. Lemmerman open sourced the library after 15 years as a way of increasing availability of the code for use while using the AGPL license as a way to address project maintenance.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1wjc3zr/luvml_21_is_on_maven_central_a_typesafe_java_dsl/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Guilty_Village_958&lt;/strong&gt; announced on Reddit&lt;/a&gt; that luvml 2.1 is on Maven Central, &amp;ldquo;&lt;em&gt;a type-safe Java DSL that treats your HTML, CSS, and Vue templates as one typed authoring language instead of three.&lt;/em&gt;&amp;rdquo; The one to watch for JavaFX developers is the sibling project &lt;a href="https://github.com/luvml/luvjfx" target="_blank" rel="noopener noreferrer"&gt;luvjfx&lt;/a&gt;, &amp;ldquo;&lt;em&gt;a terse, type-safe construction DSL for JavaFX&lt;/em&gt;&amp;rdquo;: nested calls instead of imperative setup, with the property methods machine-generated from JavaFX itself by reflection (367 capabilities across 51 node types), built-in one-way and two-way binding, and an escape hatch to the raw JavaFX API. No releases yet, so no Maven coordinates for luvjfx for now.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/chadpreisler.bsky.social/post/3mvpxdc3m622z" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Chad Preisler&lt;/strong&gt; needed a sorted list that stays usable at scale&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I needed a sorted list in #JavaFX that could show millions of records in a TableView and still be usable.&lt;/em&gt;&amp;rdquo; The &lt;a href="https://github.com/jfxmodules/mods" target="_blank" rel="noopener noreferrer"&gt;mods&lt;/a&gt; project - &amp;ldquo;&lt;em&gt;New components for JavaFX or enhancements to existing JavaFX functionality&lt;/em&gt;&amp;rdquo; - was created several years ago, but recently got some threading fixes, improved string sorting and usage information in the readme.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Florian Enner&lt;/strong&gt; published the article behind the video we linked &lt;a href="https://www.jfx-central.com/links/2026-09-18" target="_blank" rel="noopener noreferrer"&gt;last week&lt;/a&gt;: &lt;a href="https://ennerf.github.io/2026/09/18/JavaFX-27-Native-Image-on-a-Raspberry-Pi-5.html" target="_blank" rel="noopener noreferrer"&gt;JavaFX 27 as a GraalVM Native Image on a Raspberry Pi 5&lt;/a&gt;. It compares Gluon Substrate (still on GraalVM 23 CE and JavaFX 21), BellSoft&amp;rsquo;s Liberica NIK, and his own &lt;a href="https://github.com/HebiRobotics/jfx-static-feature" target="_blank" rel="noopener noreferrer"&gt;StaticFX&lt;/a&gt;, which &amp;ldquo;&lt;em&gt;runs as a regular GraalVM Feature on the stock toolchain&lt;/em&gt;&amp;rdquo; and keeps all JavaFX modules working, including Media and Web. For the AtlantaFX Sampler on a Raspberry Pi 5, the time to the first window drops from 3.6s with jlink to 0.5s, and memory use after visiting all pages from 1,424 MB to 634 MB, in a binary of about 33 MB. The missing reachability metadata remains the biggest hurdle, &amp;ldquo;&lt;em&gt;but IMO the payoff is worth pushing through the initial barrier.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; released &lt;a href="https://github.com/dlsc-software-consulting-gmbh/GemsFX/releases/tag/v4.5.0" target="_blank" rel="noopener noreferrer"&gt;GemsFX 4.5.0&lt;/a&gt;: &lt;code&gt;DialogPane&lt;/code&gt; gains a cancellable dialog feature so dialogs can be closed with the ESC key or a dedicated cancel button, the busy button was removed from &lt;code&gt;PowerPaneApp&lt;/code&gt; to streamline the dialog options, and &lt;code&gt;SVGUtil&lt;/code&gt; now uses a default loader context with jsvg updated to 2.2.0. &lt;a href="https://github.com/dlsc-software-consulting-gmbh/GemsFX" target="_blank" rel="noopener noreferrer"&gt;Project on GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;mkpaz&lt;/strong&gt; released &lt;a href="https://github.com/mkpaz/atlantafx/releases/tag/v3.0.0" target="_blank" rel="noopener noreferrer"&gt;AtlantaFX 3.0.0&lt;/a&gt;, a major update to the JavaFX theme collection: adds window decorations, a Scene Builder plugin, a theme manager, and a new Sidebar component. See the &lt;a href="https://github.com/mkpaz/atlantafx/releases/tag/v3.0.0" target="_blank" rel="noopener noreferrer"&gt;release and changelog&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;The &lt;strong&gt;Techsenger&lt;/strong&gt; team introduced &lt;a href="https://github.com/techsenger/patternfx" target="_blank" rel="noopener noreferrer"&gt;PatternFX&lt;/a&gt; on &lt;a href="https://www.reddit.com/r/JavaFX/comments/1wkqrsf/patternfx_mvc_mvp_mvvm_templates_for_javafx/" target="_blank" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt;: a framework providing MVC, MVP, and MVVM templates sharing a common architectural foundation. It models a window as a tree of dynamically composable components, each built with one of the three templates, and organizes inter-component communication through type-safe &amp;ldquo;ports&amp;rdquo; instead of a bus. Other features include component lifecycle support, component inheritance, history preservation, component-level logging, and an FXML-free design, with a demo implementing the same example in all three templates. Their &lt;a href="https://github.com/techsenger/shellfx" target="_blank" rel="noopener noreferrer"&gt;ShellFX&lt;/a&gt; platform is built on top of it.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="podcasts-videos-books"&gt;Podcasts, Videos, Books&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/starbuxman.joshlong.com/post/3muyzvqkb6r23" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Josh Long&lt;/strong&gt; published two videos&lt;/a&gt; on combining Spring Boot, JavaFX, GraalVM native images and Spring Security to build desktop applications: &amp;ldquo;&lt;em&gt;native, lightning-fast, dynamic, efficient, reusable desktop applications that run well on Mac, Windows, and Linux, and look amazing, while taking small fractions of the RAM of a similar Electron-based application&lt;/em&gt;&amp;rdquo;. Also mentioned in &lt;a href="https://spring.io/blog/2026/09/08/this-week-in-spring-september-8th-2026" target="_blank" rel="noopener noreferrer"&gt;This Week in Spring, September 8th, 2026&lt;/a&gt;.&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://youtu.be/Od2NDwHED58" target="_blank" rel="noopener noreferrer"&gt;The Ultimate Desktop Client Stack: Building High-Performance Apps with Spring Boot &amp;amp; JavaFX&lt;/a&gt; shows how to use Spring Boot and JavaFX together, &amp;ldquo;&lt;em&gt;so that you get the component model, event dispatch subsystem, internationalization, lifecycle management, and, of course, the entire and very rich ecosystem of Spring components and can use them to manage JavaFX components, too&lt;/em&gt;&amp;rdquo;, and ends with native image compilation.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://youtu.be/gB7FIbxMEos" target="_blank" rel="noopener noreferrer"&gt;Build Secure Desktop Apps with JavaFX, Spring Boot &amp;amp; PKCE OAuth 2.0&lt;/a&gt; looks at using Spring Security&amp;rsquo;s OAuth client in the context of a desktop application, &amp;ldquo;&lt;em&gt;which can not, by definition, hold a client secret&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Florian Enner&lt;/strong&gt; published a short video, &lt;a href="https://www.youtube.com/watch?v=GA_iAnxznO8" target="_blank" rel="noopener noreferrer"&gt;JavaFX 27 Native Image running AtlantaFX Sampler on Raspberry Pi 5&lt;/a&gt;, showing the AtlantaFX Sampler - which uses all controls and nearly all features JavaFX offers - as an ahead-of-time (AOT) compiled JavaFX 27 Native Image created with the latest Oracle GraalVM 25.3: &amp;ldquo;&lt;em&gt;Everything works, including javafx.media, javafx.web, as well as the desktop integration to open files.&lt;/em&gt;&amp;rdquo; The native image is built with his &lt;a href="https://github.com/HebiRobotics/jfx-static-feature" target="_blank" rel="noopener noreferrer"&gt;jfx-static-feature&lt;/a&gt;, a GraalVM Feature that statically links the JavaFX native code into a standalone executable, with support for rich text, WebView and media on Windows, Linux and macOS, on both Intel and ARM.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://youtu.be/76pWS0WFu_U" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Artistic_Solution117&lt;/strong&gt; shared a video&lt;/a&gt; of a &amp;ldquo;&lt;em&gt;Second test of Java-EARTH-GLOBE-1. Pure JavaFX Google Earth / Nasa Worldwind like viewer in a single shot. On-the-fly on the JVM were the agent runs. Built with gemini 3.8 flash with 24-core raytracing and local disk caching&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/chadpreisler.bsky.social/post/3mvpvd2towc2z" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Chad Preisler&lt;/strong&gt; shared a demo video of a pure JavaFX Kafka client&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Check out my Pure #JavaFX Kafka Client application. This project has come a long way since I first showed it. I find it incredibly useful. I hope you like it.&lt;/em&gt;&amp;rdquo; The &lt;a href="https://youtu.be/lsiJBYTlxVs" target="_blank" rel="noopener noreferrer"&gt;Visual Kafka (VK) Demo&lt;/a&gt; walks through the result on the &lt;strong&gt;Chad Preisler&lt;/strong&gt; YouTube channel. We linked a very early version of this, then still &amp;ldquo;a very basic Kafka topic viewer&amp;rdquo;, back in &lt;a href="https://www.jfx-central.com/links/2023-02-24" target="_blank" rel="noopener noreferrer"&gt;February 2023&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="tutorials"&gt;Tutorials&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://rottenwifi.com/creating-a-simple-3d-platformer-game-using-javafx/" target="_blank" rel="noopener noreferrer"&gt;Creating a Simple 3D Platformer Game Using JavaFX&lt;/a&gt; is a step-by-step guide by the &lt;strong&gt;RottenWiFi Team&lt;/strong&gt; that builds a playable 3D platformer prototype with a player character, multiple platforms, gravity, WASD movement and jumping, axis-aligned bounding-box collision detection, respawning after a fall, and a goal platform. It starts from a Maven setup and camera configuration and works through frame-rate-independent movement and per-axis collision resolution. The focus is on the fundamentals — scene graphs, coordinate systems and physics — rather than on production tooling, as &amp;ldquo;&lt;em&gt;JavaFX is a framework for desktop applications with 3D graphics features, not a complete commercial game engine&lt;/em&gt;&amp;rdquo;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="miscellaneous"&gt;Miscellaneous&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/javahelp/comments/1wckpbm/building_a_javafx_hibernate_talent_acquisition/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Nirvex1&lt;/strong&gt; is looking for advice on Reddit&lt;/a&gt; while building a desktop Talent Acquisition System with Java 11, JavaFX, Maven, Hibernate and MariaDB: &amp;ldquo;&lt;em&gt;One of the more challenging parts so far has been managing around 17 different FXML views and connecting all of them properly with their controllers. I also had to spend quite a bit of time understanding &lt;code&gt;module-info.java&lt;/code&gt;, resource paths, and how everything fits together in a modular JavaFX application. Thankfully, that part is finally stable.&lt;/em&gt;&amp;rdquo; The questions are about Hibernate session management and &lt;code&gt;LazyInitializationException&lt;/code&gt;, how to run database queries without freezing the UI, and which threading patterns and architectural choices keep a large multi-view JavaFX application maintainable. The first answers mostly argue for putting a backend service between the desktop client and the database instead of connecting to it directly.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1wjhtou/how_can_javafx_attract_more_developers/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;enthalpyzx&lt;/strong&gt; started a discussion on Reddit&lt;/a&gt;, &amp;ldquo;How can JavaFX attract more developers?&amp;rdquo;, from the perspective of someone who hasn&amp;rsquo;t written a JavaFX application yet but likes what they see: &amp;ldquo;&lt;em&gt;I&amp;rsquo;ve noticed that JavaFX is very capable of doing incredible things that I had never imagined.&lt;/em&gt;&amp;rdquo; The open questions are how multiplatform JavaFX really is, whether applications can look native on every desktop (with &lt;a href="https://www.jfx-central.com/libraries/atlantafx" target="_blank" rel="noopener noreferrer"&gt;AtlantaFX&lt;/a&gt; mentioned as the likely answer, next to wrappers like Java-GI and QtJambi), why things like tray icons and notifications still need AWT, and above all the lack of a single recommended way of working: &amp;ldquo;&lt;em&gt;I would like Gluon or Oracle to stand up and say: look, this is how things work now, this is how you work for desktop apps, this is how you work for mobile apps, this is the library you have to use.&lt;/em&gt;&amp;rdquo; Also asked: are &lt;a href="https://www.jfx-central.com/books/definitiveguide2modernjavaclients" target="_blank" rel="noopener noreferrer"&gt;The Definitive Guide to Modern Java Clients with JavaFX&lt;/a&gt; and &lt;a href="https://www.jfx-central.com/books/learnjfx17" target="_blank" rel="noopener noreferrer"&gt;Learn JavaFX 17&lt;/a&gt; a good starting point?&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1wp4u70/javafx_in_the_browser/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;indyjoe&lt;/strong&gt; asked on Reddit&lt;/a&gt; for good options to run JavaFX in the browser with minimal rewriting, still allowing a desktop version, supporting a large per-client data model, and scaling to hundreds of concurrent users. The discussion weighs WebFX (promising but limited control support and mostly a one-person project), CheerpJ (good for AWT/Swing, no timeline for JavaFX), Gluon (an old prototype not being updated without funded support), JPro (server-side rendering, a concern for apps with large per-user data), and whether a GraalVM-to-WASM path is even possible.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="jfx-central"&gt;JFX Central&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;The JavaFX Links Of The Week of August got &lt;a href="https://foojay.io/today/javafx-links-of-august-2026/"&gt;bundled and published on Foojay.io&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;New content on JFX Central:&#10;&lt;ul&gt;&#10;&lt;li&gt;People: &lt;a href="https://www.jfx-central.com/people/j.long" target="_blank" rel="noopener noreferrer"&gt;Josh Long&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Videos by Josh:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.jfx-central.com/videos/Od2NDwHED58" target="_blank" rel="noopener noreferrer"&gt;The Ultimate Desktop Client Stack: Building High-Performance Apps with Spring Boot &amp;amp; JavaFX&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.jfx-central.com/videos/gB7FIbxMEos" target="_blank" rel="noopener noreferrer"&gt;Build Secure Desktop Apps with JavaFX, Spring Boot &amp;amp; PKCE OAuth 2.0&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Tutorials based on these videos:&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.jfx-central.com/learn-javafx/spring-boot" target="_blank" rel="noopener noreferrer"&gt;JavaFX and Spring Boot&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.jfx-central.com/learn-javafx/spring-boot-oauth" target="_blank" rel="noopener noreferrer"&gt;Securing a JavaFX desktop application with Spring Security and OAuth 2.0&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Diagrams as Code: Mermaid Support on the new Foojay</title><link>https://foojay.io/today/diagrams-as-code-mermaid-support-on-foojay/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/diagrams-as-code-mermaid-support-on-foojay/</guid><description>&lt;p&gt;Some things are much easier to show than to describe. A request travelling&#10;through three services, a class hierarchy, the states a connection moves&#10;through: a paragraph explaining it takes real effort to write and still leaves&#10;the reader assembling the picture themselves.&lt;/p&gt;&#10;&lt;p&gt;The usual answer is to open a drawing tool, export a PNG, and drop it in the&#10;article folder. That works, and it is what most Foojay articles have done so&#10;far. It also means the diagram is now a binary file that nobody can review,&#10;nobody can correct a typo in, and nobody can update without finding the original&#10;file again, assuming they still have it.&lt;/p&gt;</description></item><item><title>AsciiDoc Support on the new Foojay</title><link>https://foojay.io/today/asciidoc-support-on-foojay/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/asciidoc-support-on-foojay/</guid><description>&lt;div class="paragraph"&gt;&#10;&lt;p&gt;Markdown is a good default. It is easy to write, everybody already knows it, and for most articles it is exactly enough.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div class="paragraph"&gt;&#10;&lt;p&gt;For some articles it is not. If you have ever wanted to put a caption on a code block, number the interesting lines and explain them underneath, or set a warning apart from the paragraph before it, you have found the limits of Markdown.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;div class="paragraph"&gt;&#10;&lt;p&gt;Large parts of the Java ecosystem document in&#10;&lt;a href="https://asciidoc.org/"&gt;AsciiDoc&lt;/a&gt; for exactly this reason. So posts here on the new Hugo-driven Foojay, can now be written in it too.&#10;Thanks to &lt;a href="https://foojay.io/today/author/brice-dutheil/"&gt;Brice Dutheil&lt;/a&gt; for requesting&#10;this feature, and for naming exactly which parts of it he uses. And of course, &lt;a href="https://github.com/foojayio/website/blob/main/content/posts/2026/09/23/asciidoc-support-on-foojay/index.adoc"&gt;this post is written in AsciiDoc&lt;/a&gt; to show it off!&lt;/p&gt;&#10;&lt;/div&gt;</description></item><item><title>Announcing The New Foojay</title><link>https://foojay.io/today/announcing-the-new-foojay/</link><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><guid>https://foojay.io/today/announcing-the-new-foojay/</guid><description>&lt;p&gt;Foojay has moved, but the address stays exactly where it was, just like every URL you have bookmarked, linked or cited. Everything behind that address is&#10;new. Foojay is now a static site, its entire content lives in a public Git&#10;repository, and publishing an article is a pull request.&lt;/p&gt;&#10;&lt;p&gt;If you only read one paragraph: &lt;strong&gt;nothing you have written has moved, and&#10;nothing you need to do has changed, except if you want to &lt;a href="https://foojay.io/today/how-to-submit-your-next-article-on-foojay-io/"&gt;contribute content&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;</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><guid>https://foojay.io/today/foojay-podcast-101/</guid><description>&lt;p&gt;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 Simon Ritter points out, all OpenJDK releases are delivered the same way, and &amp;ldquo;long-term support&amp;rdquo; is a property of the binary distributions you install, not of the platform itself. What JDK 27 does have is two changes that switch on by default and cost you nothing but the upgrade. Compact object headers shrink the per-object header from 64 bits to 32, which the JEP measures at a 22% reduction in heap and 8% in CPU on SPECjbb2015 — and because it is internal to the JVM, a JAR you built years ago benefits without a single line changing. Alongside it, G1 becomes the default garbage collector everywhere, including the small, single-core machines that used to fall back to the serial collector.&lt;/p&gt;</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><guid>https://foojay.io/today/featured-foojay-authors-for-september-2026/</guid><description>&lt;p&gt;Foojay wouldn&amp;rsquo;t exist without the many contributions from its community, whether it&amp;rsquo;s a single post or an ongoing stream of knowledge sharing. That&amp;rsquo;s why we highlight two of them each month as &lt;strong&gt;&lt;a href="https://foojay.io/today/author/"&gt;Featured Authors&lt;/a&gt;&lt;/strong&gt;. After &lt;a href="https://foojay.io/today/author/igor-de-souza/"&gt;Igor&lt;/a&gt; and &lt;a href="https://foojay.io/today/author/steve-poole/"&gt;Steve&lt;/a&gt; in July, and &lt;a href="https://foojay.io/today/author/cristobal-escobar/"&gt;Cristobal&lt;/a&gt; and &lt;a href="https://foojay.io/today/author/shai-almog/"&gt;Shai&lt;/a&gt; in August, September belongs to &lt;strong&gt;&lt;a href="https://foojay.io/today/author/marit-van-dijk/"&gt;Marit van Dijk&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://foojay.io/today/author/graeme-robinson/"&gt;Graeme Robinson&lt;/a&gt;&lt;/strong&gt;. Want to read more from either of them? Click their name to visit their Foojay author page, where you&amp;rsquo;ll find their full list of posts.&lt;/p&gt;</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><guid>https://foojay.io/today/javafx-links-of-august-2026/</guid><description>&lt;p&gt;Here are the JavaFX LinksOfTheMonth of August 2026. We took a summer break, so there was only one &amp;ldquo;Links Of The Week&amp;rdquo; this month, and it covers all of August. We hope you had a great summer and are ready for more JavaFX news in the coming weeks!&lt;/p&gt;&#10;&lt;p&gt;You can find the weekly lists on &lt;a href="https://www.jfx-central.com/links" target="_blank" rel="noopener noreferrer"&gt;jfx-central.com&lt;/a&gt;. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via &lt;a href="mailto:links@jfx-central.com"&gt;links@jfx-central.com&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Azul August 2026 Release: Java's First Monthly CSPU</title><link>https://foojay.io/today/azul-august-2026-release-javas-first-monthly-cspu/</link><pubDate>Fri, 21 Aug 2026 07:48:46 +0000</pubDate><guid>https://foojay.io/today/azul-august-2026-release-javas-first-monthly-cspu/</guid><description>&lt;p&gt;If someone discloses a 0-day CVE the day after a quarterly update, you could wait up to three months for a patched build. That gap is closed now. The August 2026 release is the first monthly &lt;strong&gt;Critical Security Patch Update (CSPU)&lt;/strong&gt; in Java&amp;rsquo;s history, and Azul shipped it on schedule across both its product lines.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Core (Zulu Builds of OpenJDK):&lt;/strong&gt; CSPU builds for Java 26, 25, 21, 17, 11, and 8, with backports to Java 7 and 6. See the &lt;a href="https://docs.azul.com/core/release-notes" target="_blank" rel="noopener noreferrer"&gt;Core release notes&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Prime (Zing Builds of OpenJDK):&lt;/strong&gt; Azul Zing JVM 26.02.310.0 for Java 25, 21, 17, 11, and 8. See the &lt;a href="https://docs.azul.com/prime/release-notes#prime_stable_26_02_310_0" target="_blank" rel="noopener noreferrer"&gt;Prime release notes&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This post explains what a CSPU is and what changes about how you plan patches.&lt;/p&gt;</description></item><item><title>Sheetmusic4J 0.0.3: ABC Notation, Guitar Pro, Engraving Improvements</title><link>https://foojay.io/today/sheetmusic4j-0-0-3-abc-notation-guitar-pro-engraving-improvements/</link><pubDate>Thu, 06 Aug 2026 08:26:00 +0000</pubDate><guid>https://foojay.io/today/sheetmusic4j-0-0-3-abc-notation-guitar-pro-engraving-improvements/</guid><description>&lt;p&gt;Last week I &lt;a href="https://foojay.io/today/introducing-sheetmusic4j-a-javafx-library-to-render-and-interact-with-sheet-music/"&gt;introduced Sheetmusic4J&lt;/a&gt;, a Java(FX) library to render and interact with sheet music. That first &lt;strong&gt;0.0.1&lt;/strong&gt; release was really a question more than a product: is there any interest in a native Java(FX) sheet music library before I invest more time in it? So I shared it on social media and waited to see what would come back.&lt;/p&gt;&#10;&lt;p&gt;The answers arrived faster than I expected. And they gave me more homework&amp;hellip;&lt;/p&gt;</description></item><item><title>JavaFX Links of July 2026</title><link>https://foojay.io/today/javafx-links-of-july-2026/</link><pubDate>Fri, 31 Jul 2026 16:18:46 +0000</pubDate><guid>https://foojay.io/today/javafx-links-of-july-2026/</guid><description>&lt;p&gt;Here are the JavaFX LinksOfTheMonth of July 2026. You can find the weekly lists on &lt;a href="https://www.jfx-central.com/links" target="_blank" rel="noopener noreferrer"&gt;jfx-central.com&lt;/a&gt;. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via &lt;a href="mailto:links@jfx-central.com"&gt;links@jfx-central.com&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="core"&gt;Core&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;From the OpenJFX mailing list: &lt;a href="https://mail-archive.com/openjfx-dev@openjdk.org/msg27455.html" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Marius Hanl&lt;/strong&gt; was appointed as a new OpenJFX Reviewer&lt;/a&gt;, as announced by &lt;strong&gt;Michael Strauß&lt;/strong&gt; on July 4, 2026. Marius has been an active contributor to the OpenJFX project, most recently submitting the &lt;a href="https://github.com/openjdk/jfx/pull/2191" target="_blank" rel="noopener noreferrer"&gt;Stylesheet/StyleClass lazy initialization PR&lt;/a&gt; and leading tests improvements.&lt;/li&gt;&#10;&lt;li&gt;From the OpenJFX mailing list: &lt;strong&gt;Kevin Rushforth&lt;/strong&gt; &lt;a href="https://mail-archive.com/openjfx-dev@openjdk.org/msg27475.html" target="_blank" rel="noopener noreferrer"&gt;opened the review for the JavaFX 26.0.2 release notes&lt;/a&gt; for the upcoming update release (planned July 21, 2026).&lt;/li&gt;&#10;&lt;li&gt;From the OpenJFX mailing list: &lt;a href="https://mail.openjdk.org/archives/list/openjfx-dev@openjdk.org/thread/AOVTJA6A2RICNI26PIN4SL65IB3EYOYR/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Kevin Rushforth&lt;/strong&gt; announced that JavaFX 27 is now in Rampdown Phase One (RDP1)&lt;/a&gt;: &amp;ldquo;&lt;em&gt;We have forked a new jfx27 branch for stabilizing the JavaFX 27 release. The master branch of the jfx repo is now open for jfx28, and the jfx27 branch is open for integrating fixes that meet the RDP1 criteria.&lt;/em&gt; &amp;quot; New stabilization branch: &lt;a href="https://github.com/openjdk/jfx/tree/jfx27" target="_blank" rel="noopener noreferrer"&gt;github.com/openjdk/jfx/tree/jfx27&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;Early-Access Builds of JavaFX 27 (to be released in September) are available on &lt;a href="https://jdk.java.net/javafx27/" target="_blank" rel="noopener noreferrer"&gt;jdk.java.net/javafx27&lt;/a&gt; and from the &lt;a href="https://gluonhq.com/products/javafx/#downloads" target="_blank" rel="noopener noreferrer"&gt;Gluon website&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;Both JavaFX 26 and 27 need at least JDK 24 to run.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://mastodon.social/@johanvos/116959466935866723" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Johan Vos&lt;/strong&gt; announced&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Gluon&amp;rsquo;s JavaFX CPU builds for JavaFX 17/21/25/26 are available now.&lt;/em&gt; &amp;quot; All details and download links are available in the post &lt;a href="https://gluonhq.com/news/2026-07-21-july-2026-critical-patch-update/" target="_blank" rel="noopener noreferrer"&gt;July 2026 Critical Patch Update: Essential Security and Stability Fixes for OpenJFX&lt;/a&gt;.&#10;&lt;ul&gt;&#10;&lt;li&gt;With a &lt;a href="https://mastodon.social/@johanvos/116963618524653211" target="_blank" rel="noopener noreferrer"&gt;follow-up message&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Important: we (Gluon) provide all those builds (with CPU patches) for free. We love JavaFX and the community, but it&amp;rsquo;s a fair amount of work to do this. If you benefit from these builds, you may consider supporting us by bying LTS subscriptions (even if you can download them for free), contacting us for T&amp;amp;M work, and/or spreading this news. Thanks for keeping JavaFX a community effort.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;New builds of JavaFX are also available from &lt;a href="https://jdk.java.net/javafx26/" target="_blank" rel="noopener noreferrer"&gt;jdk.java.net/javafx26&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;Fixes and more info are also available in the &lt;a href="https://docs.azul.com/core/release-notes#openjfx-fixes-enhancements" target="_blank" rel="noopener noreferrer"&gt;Azul Core quarterly update release notes&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="applications"&gt;Applications&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://mastodon.online/@cryptomator/116834045668158756" target="_blank" rel="noopener noreferrer"&gt;Cryptomator Desktop 1.19.3 is available&lt;/a&gt; and includes JavaFX 25.0.3 for improved graphics handling and simplifies Windows file signing. &amp;ldquo;&lt;em&gt;&lt;a href="https://cryptomator.org/" target="_blank" rel="noopener noreferrer"&gt;Cryptomator&lt;/a&gt; secures and encrypts your sensitive data in your favorite cloud service. So you can rest assured that only you can access your data.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/rgiskard7.bsky.social/post/3mpeoz2ahns2u" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Eduardo Díaz Sánchez&lt;/strong&gt; announced Jylos 2.2.0&lt;/a&gt;: &amp;ldquo;&lt;em&gt;The biggest addition is a full Obsidian-compatible Canvas editor. &lt;a href="https://github.com/RGiskard7/jylos/releases/tag/v2.2.0" target="_blank" rel="noopener noreferrer"&gt;This release&lt;/a&gt; also adds note transclusion, rich links, CSS snippets and a redesigned private notes system.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/did:plc:jx7h5s74cqipmtc7zrb5224m/post/3mq6xaeph7c2p" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; announced a new release of MelodyMatrix&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Looking at MIDI music is now possible in multiple languages with release 1.1.0 of MelodyMatrix. And the &lt;a href="https://melodymatrix.rocks/" target="_blank" rel="noopener noreferrer"&gt;website got totally reworked&lt;/a&gt;, is more flashy now, and also available in multiple languages. More updates coming soon&amp;hellip;&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/a-new-website-for-melodymatrix-and-whats-new-in-release-1.1.0/" target="_blank" rel="noopener noreferrer"&gt;Blog post by &lt;strong&gt;Frank Delporte&lt;/strong&gt; related to the release of MelodyMatrix 1.1.0&lt;/a&gt; last week: &amp;ldquo;&lt;em&gt;Last week was busy for MelodyMatrix . The website got rebuilt from the ground up, and the app itself got a solid release with a handful of new features.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/rgiskard7.bsky.social/post/3mqrooiiask2k" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;RGiskard7&lt;/strong&gt; announced Jylos 2.4.6&lt;/a&gt;, the local-first knowledge management app with Markdown notes: &amp;ldquo;&lt;em&gt;The app is much more polished: better Canvas support, cleaner themes, improved PDFs, vault switching without restart, GitHub update checks and smoother Markdown workflows.&lt;/em&gt; &amp;quot; Check the &lt;a href="https://github.com/RGiskard7/jylos/releases/tag/v2.4.6" target="_blank" rel="noopener noreferrer"&gt;release notes on GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/java/comments/1va4vsm/jextractgui_a_javafx_gui_wrapper_for_the_jextract/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;nlisker&lt;/strong&gt; shared on Reddit&lt;/a&gt;: jextractGUI - A JavaFX GUI wrapper for the jextract tool. &amp;ldquo;&lt;em&gt;It&amp;rsquo;s written in JavaFX and embeds jextract (and its libclang) within it. Since jextract is in early-access, newer versions broke it and I needed to do some rewrites since I first conjured it a couple of years ago. It&amp;rsquo;s now aligned with the current latest build - 25-jextract+2-4 (2025/11/25).&lt;/em&gt; &amp;quot; Project is &lt;a href="https://github.com/nlisker/jextractGUI" target="_blank" rel="noopener noreferrer"&gt;available on GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="games"&gt;Games&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://dev.to/nice_application1_812753/daybreak-protocol-june-solstice-game-jam-submission-11fl" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Nice Application 1 (Udit)&lt;/strong&gt; submitted Daybreak Protocol to the DEV June Solstice Game Jam&lt;/a&gt;: &amp;ldquo;&lt;em&gt;A short, replayable JavaFX code-breaking game where daylight is both the player&amp;rsquo;s timer and reward. Repair six symbolic Bombe relays by solving puzzles based on Caesar shifts, XOR logic, run-length encoding, parity bits, contradiction elimination, and binary search. Every wrong answer visibly pushes the sun toward the horizon. The game celebrates Alan Turing&amp;rsquo;s legacy by presenting algorithms as creative tools.&lt;/em&gt; &amp;quot; Source code on &lt;a href="https://github.com/Nice-AU/Daybreak-Protocol" target="_blank" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="components-libraries-tools"&gt;Components, Libraries, Tools&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/closing-the-visual-gap-between-the-official-lottie-webplayer-and-lottie4j/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; blogged about a big rendering upgrade for Lottie4J&lt;/a&gt;: &amp;ldquo;&lt;em&gt;My goal was to make the JavaFX output match the official LottieFiles web player as closely as possible, pixel for pixel. &amp;hellip; After the improvements, most of the animations used in the test now hit 99.5%+ similarity with the reference!&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://foojay.social/@lottie4j/116890414437899888" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; released Lottie4J v1.2.5&lt;/a&gt; with many rendering accuracy fixes: &amp;ldquo;&lt;em&gt;The JavaFX animations are now more closely aligned with the official LottieFiles web player. Most test files reach the 99,5% similarity goal.&lt;/em&gt; &amp;quot; All info &lt;a href="https://lottie4j.com/status/2026/20260709-release-1.2.5/" target="_blank" rel="noopener noreferrer"&gt;on the website&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3mqofheob222s" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; is reworking/improving his libraries&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I fixed a major bug in HiddenSidesPane that prevented proper layout passes for children nodes. To get the fix start using the implementation found in GemsFX, do not use the one in ControlsFX. (btw: I moved several of my ControlsFX contributions to GemsFX in order to speed up development.)&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1upfocl/groovefx_dynamic_fxml_for_javafx_declarative/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;rrangelox&lt;/strong&gt; published GrooveFX&lt;/a&gt;: Dynamic FXML for JavaFX, declarative iteration, conditionals and branching. &amp;ldquo;&lt;em&gt;I&amp;rsquo;m releasing GrooveFX, a small library that extends JavaFX FXML with declarative control structures: iteration, conditional rendering, and multi‑case branching directly inside FXML. The idea is simple: FXML is powerful but static — GrooveFX adds flow without replacing it and without introducing a DSL.&lt;/em&gt; &amp;quot; Check the &lt;a href="https://codeberg.org/rrangelo/groovefx" target="_blank" rel="noopener noreferrer"&gt;Codeberg repository&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; announced a new JavaFX library: Sheetmusic4J, an open-source Java library that parses MusicXML into Java objects and renders them as native JavaFX music sheet views. No WebView, no browser engine, no JavaScript bridge.&#10;&lt;ul&gt;&#10;&lt;li&gt;Website: &lt;a href="https://sheetmusic4j.com" target="_blank" rel="noopener noreferrer"&gt;sheetmusic4j.com&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Source code: &lt;a href="https://github.com/sheetmusic4j/sheetmusic4j" target="_blank" rel="noopener noreferrer"&gt;github.com/sheetmusic4j/sheetmusic4j&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Blog post and video with more info about the project &lt;a href="https://webtechie.be/post/introducing-sheetmusic4j-a-javafx-library-to-render-and-interact-with-sheet-music/" target="_blank" rel="noopener noreferrer"&gt;on webtechie.be&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/sheetmusic4j-0.0.3-when-linkedin-comments-becomes-features/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; blogged about Sheetmusic4J 0.0.3&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I released 0.0.1 as an open question: does anyone want a native Java(FX) sheet music library? Multiple LinkedIn comments, and some are answered now with support for ABC notation and Guitar Pro. Plus a big round of engraving improvements.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Eliezer Assunção De Paulo&lt;/strong&gt; &lt;a href="https://www.reddit.com/r/JavaFX/comments/1v8j29r/megalodonte_a_small_reactive_ui_framework_on_top/" target="_blank" rel="noopener noreferrer"&gt;announced Megalodonte&lt;/a&gt;, a small reactive UI framework on top of JavaFX. &amp;ldquo;&lt;em&gt;I&amp;rsquo;ve been building JavaFX desktop apps for a while and got tired of the usual boilerplate (manual listeners, imperative styling, no real component model), so I built Megalodonte: a thin reactive layer on top of JavaFX — React-ish component composition, State /ComputedState for reactivity, and a Props/Theme system so styling isn&amp;rsquo;t scattered setStyle() calls everywhere.&lt;/em&gt; &amp;quot; The project is &lt;a href="https://github.com/eliezer-dev-software-enginner/megalodonte-libs" target="_blank" rel="noopener noreferrer"&gt;available on GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3mrmm435rt22t" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; shared&lt;/a&gt;: &amp;ldquo;&lt;em&gt;GemsFX 4.3.2 is out now with fixes for the PopOver control, with i18n resource bundles, and accessibility support. I was always too lazy for the last two things but with AI that has become a no-brainer &amp;hellip; literally &amp;hellip;. &amp;ldquo;no brain required&amp;rdquo;.&lt;/em&gt; &amp;quot; Check the project &lt;a href="https://github.com/dlsc-software-consulting-gmbh/GemsFX" target="_blank" rel="noopener noreferrer"&gt;on GitHub&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="podcasts-videos-books"&gt;Podcasts, Videos, Books&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Helal Anwar&lt;/strong&gt; published a new &lt;a href="https://www.youtube.com/watch?v=XiHcp-WseBE" target="_blank" rel="noopener noreferrer"&gt;video with the progress he made in his student management app&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/cupofcode.bsky.social/post/3mqadlpurrc2y" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Austin Lehman&lt;/strong&gt; announced&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Aussom CLI 1.2.0 is now available for download along the first free &lt;a href="https://aussom-lang.com/books" target="_blank" rel="noopener noreferrer"&gt;PDF book &amp;lsquo;Building Desktop Applications in Aussom with JavaFX&amp;rsquo;&lt;/a&gt;!&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/rabauer.dev/post/3mqyzcln42w24" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Johannes Rabauer&lt;/strong&gt; shared a video&lt;/a&gt;: &amp;ldquo;&lt;em&gt;If you are interested in playing around with midi devices and files, check out melodymatrix.rocks. It&amp;rsquo;s free and quite fun 🙂 &lt;strong&gt;Frank Delporte&lt;/strong&gt; built this with his son, which is such a great idea on it&amp;rsquo;s own! #JavaFX #MIDI #Piano&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="miscellaneous"&gt;Miscellaneous&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/scala/comments/1usp835/kyojfx_hello_world_template/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;markehammons&lt;/strong&gt; shared &amp;ldquo;Kyo-JFX Hello World template&amp;rdquo; on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I was asked in another thread if I could provide an example of this, so &lt;a href="https://codeberg.org/markhammons/kyo-jfx-hello-world" target="_blank" rel="noopener noreferrer"&gt;here it is&lt;/a&gt;. This template is a hello world app using JavaFx + Kyo + Scala 3. It uses Gluon substrate as well as a Gluon fork of GraalVM to create native image builds that can run on Linux and Android.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;Keep an eye on the messages by &lt;a href="https://bsky.app/profile/cupofcode.bsky.social" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Austin Lehman&lt;/strong&gt; on Bluesky&lt;/a&gt; as he is sharing more info about the Aussom Programming Language, new releases, his book about Aussom, and scripts he is using to create documentation.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="jfx-central"&gt;JFX Central&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;New content on JFX Central:&#10;&lt;ul&gt;&#10;&lt;li&gt;Library: &lt;a href="https://www.jfx-central.com/libraries/sheetmusic4j" target="_blank" rel="noopener noreferrer"&gt;Sheetmusic4J&lt;/a&gt;, a Java library to parse MusicXML and render sheet music natively in JavaFX.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;The JavaFX Links Of The Week of June got &lt;a href="https://foojay.io/today/javafx-links-of-june-2026/"&gt;bundled and published on Foojay.io&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Introducing Sheetmusic4J, a Java(FX) Library to Render and Interact with Sheet Music</title><link>https://foojay.io/today/introducing-sheetmusic4j-a-javafx-library-to-render-and-interact-with-sheet-music/</link><pubDate>Thu, 30 Jul 2026 07:28:00 +0000</pubDate><guid>https://foojay.io/today/introducing-sheetmusic4j-a-javafx-library-to-render-and-interact-with-sheet-music/</guid><description>&lt;p&gt;I&amp;rsquo;m building &lt;a href="https://melodymatrix.rocks/" target="_blank" rel="noopener noreferrer"&gt;MelodyMatrix&lt;/a&gt; with my son, an application to look at and play along with music. The app already shows a song in different views: falling blocks, chords, guitar views, and many more. Now we want a Learn section, a view that helps someone practice piano by following the actual sheet music while it plays.&#10;&lt;img src="https://foojay.io/today/introducing-sheetmusic4j-a-javafx-library-to-render-and-interact-with-sheet-music/screenshot-melodymatrix-1024x641.jpg" alt="" width="1024" height="641" loading="lazy" decoding="async"&gt;&lt;/p&gt;&#10;&lt;p&gt;A static PDF of the sheet doesn&amp;rsquo;t work for that. Great PDF viewer components exist for JavaFX, but a PDF has no connection to what&amp;rsquo;s playing. Nothing highlights the current note, nothing marks the current position in the song. I looked for a JavaFX library that renders sheet music and lets code interact with it: jump to a position, highlight a note, follow playback. I couldn&amp;rsquo;t find one, so I built it.&lt;/p&gt;</description></item><item><title>Featured Foojay Authors for July and August 2026</title><link>https://foojay.io/today/featured-authors-july-and-august-2026/</link><pubDate>Tue, 28 Jul 2026 09:05:30 +0000</pubDate><guid>https://foojay.io/today/featured-authors-july-and-august-2026/</guid><description>&lt;p&gt;Foojay wouldn&amp;rsquo;t exist without the many contributions from its community, whether it&amp;rsquo;s a single post or an ongoing stream of knowledge sharing. That&amp;rsquo;s why we&amp;rsquo;ve started highlighting two of them each month as &lt;strong&gt;&lt;a href="https://foojay.io/today/author/"&gt;Featured Authors&lt;/a&gt;&lt;/strong&gt;. We kicked this off in July with Igor and Steve, and this post covers both our July and August (Cristobal and Shai) featured authors. Want to read more from any of them? Just click their name to visit their Foojay author page, where you&amp;rsquo;ll find their full list of posts. We&amp;rsquo;ll be back with the next update at the beginning of September.&lt;/p&gt;</description></item><item><title>New Between-Quarters Security Updates for Java: What CSPUs Mean for Your Release Pipeline</title><link>https://foojay.io/today/new-between-quarters-security-updates-for-java-what-cspus-mean-for-your-release-pipeline/</link><pubDate>Mon, 27 Jul 2026 07:31:11 +0000</pubDate><guid>https://foojay.io/today/new-between-quarters-security-updates-for-java-what-cspus-mean-for-your-release-pipeline/</guid><description>&lt;p&gt;In an announcement on the &lt;a href="https://mail.openjdk.org/archives/list/jdk-updates-dev@openjdk.org/thread/SVHDNJDY62MX6YBEA4FSMW4U72H77F6S/" target="_blank" rel="noopener noreferrer"&gt;OpenJDK Updates Mailinglist&lt;/a&gt; on July 20, 2026, Rob McKenna explained a change in the Oracle security release cycle for JDK builds. They plan to deliver security updates for the Oracle JDK as part of &lt;strong&gt;(some) monthly Critical Security Patch Updates (CSPUs)&lt;/strong&gt; .&lt;/p&gt;&#10;&lt;p&gt;This brings more exact info, after an earlier message on April 26, 2026, in which &lt;a href="https://blogs.oracle.com/security/accelerating-vulnerability-detection-and-response-at-oracle" target="_blank" rel="noopener noreferrer"&gt;Oracle announced the acceleration of Vulnerability Detection and Response&lt;/a&gt;. In that article they introduced the idea of monthly Critical Security Patch Updates (CSPU) across all their products. At that moment, it was not clear if this also applied to the Java releases, and how this would impact the normal quarterly cycle of Critical Patch Updates (CPUs).&lt;/p&gt;</description></item><item><title>Azul Zulu July 2026 Quarterly Update Released</title><link>https://foojay.io/today/azul-zulu-july-2026-quarterly-update-released/</link><pubDate>Thu, 23 Jul 2026 12:35:26 +0000</pubDate><guid>https://foojay.io/today/azul-zulu-july-2026-quarterly-update-released/</guid><description>&lt;p&gt;Every three months your production JDKs fall further behind on security patches. Azul closes that gap today with the July 2026 quarterly update for Azul Zulu Builds of OpenJDK, covering Java 26, 25, 21, 17, 11, 8, 7, and 6.&lt;/p&gt;&#10;&lt;h2 id="the-quarterly-update-cycle"&gt;The Quarterly Update Cycle&lt;/h2&gt;&#10;&lt;p&gt;Every three months, in January, April, July, and October, the OpenJDK project ships security patches, bug fixes, and improvements for all supported Java versions. This predictable schedule lets teams plan Java updates and keep production environments secure.&lt;/p&gt;</description></item><item><title>First Test of Java on Banana Pi (ARM and RISC-V), Plus a Blinking LED with Pi4J</title><link>https://foojay.io/today/first-test-of-java-on-banana-pi-arm-and-risc-v-plus-a-blinking-led-with-pi4j/</link><pubDate>Mon, 20 Jul 2026 06:03:00 +0000</pubDate><guid>https://foojay.io/today/first-test-of-java-on-banana-pi-arm-and-risc-v-plus-a-blinking-led-with-pi4j/</guid><description>&lt;p&gt;As part of my 2026 learning goals around Java on RISC-V (see &lt;a href="https://webtechie.be/post/2026-01-07-x86-arm-riscv/" target="_blank" rel="noopener noreferrer"&gt;this post about x86 versus ARM versus RISC-V&lt;/a&gt;), I&amp;rsquo;ve asked various suppliers to send me evaluation boards. I already published these:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/first-experiments-with-java-on-the-lattepanda-iota-an-alternative-to-raspberry-pi/" target="_blank" rel="noopener noreferrer"&gt;LattePanda IOTA (x86)&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/first-test-of-java-on-the-orange-pi-arm-and-risc-v/" target="_blank" rel="noopener noreferrer"&gt;OrangePi 5 Ultra (ARM) and OrangePi RV2 (RISC-V)&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/first-test-of-java-on-the-starfive-visionfive-2-lite-risc-v/" target="_blank" rel="noopener noreferrer"&gt;VisionFive 2 Lite (RISC-V)&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/first-test-of-java-on-beagleboards-arm-and-risc-v/" target="_blank" rel="noopener noreferrer"&gt;BeagleBoards (ARM and RISC-V)&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/i-got-java-25-running-on-the-risc-v-beagleboard-beaglev-fire/" target="_blank" rel="noopener noreferrer"&gt;Java 25 on BeagleV-First&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;In this post: Banana Pi&amp;rsquo;s&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I got all these boards for free, but what I write here and show in the video is not controlled by the suppliers.&lt;/p&gt;</description></item><item><title>Foojay Podcast #100: Java Podcasters on Why They Started, What Broke, and What They Learned</title><link>https://foojay.io/today/foojay-podcast-100/</link><pubDate>Mon, 13 Jul 2026 07:05:59 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-100/</guid><description>&lt;p&gt;Foojay Podcast hits episode 100. No plan, no roadmap. It just happened. To mark the occasion, Frank turned the microphone around and invited other podcasters: Adam Bien (airhacks.fm), Jennifer Reif (Breaktime Tech Talks), Kadi McKean and Steve Pool (10xInsights), and Oumaima Zerouali (JCast). Same three questions for each: why did you start, what broke, and what did you learn?&lt;/p&gt;&#10;&lt;h2 id="youtube"&gt;YouTube&lt;/h2&gt;&#10;&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/PID--srP0_U?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;h2 id="podcast-apps"&gt;Podcast Apps&lt;/h2&gt;&#10;&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>Closing the Visual Gap Between the Official Lottie Webplayer and Lottie4J</title><link>https://foojay.io/today/closing-the-visual-gap-between-the-official-lottie-webplayer-and-lottie4j/</link><pubDate>Tue, 07 Jul 2026 08:25:55 +0000</pubDate><guid>https://foojay.io/today/closing-the-visual-gap-between-the-official-lottie-webplayer-and-lottie4j/</guid><description>&lt;p&gt;A Lottie library is only as good as its output looks. If an animation renders differently in &lt;a href="https://lottie4j.com/" target="_blank" rel="noopener noreferrer"&gt;Lottie4J&lt;/a&gt; than it does in the official web player, that&amp;rsquo;s a bug, even when no exception is thrown and the code looks correct.&lt;/p&gt;&#10;&lt;p&gt;Within the &lt;code&gt;fxfileviewer&lt;/code&gt;, there is an app to visually compare the result of the JavaFX player and a webview using the official JavaScript player. Problem is that I was using the JavaFX Web component for this and this doesn&amp;rsquo;t fully support the latest/best version of this player. Based on this app for manual checks, I also created a unit test which is able to loop over a set of files and compare the differences to make sure changes in the code don&amp;rsquo;t break the existing renderer. But I kept struggling with the same test file &lt;a href="https://github.com/lottie4j/lottie4j/tree/main/fxfileviewer/src/test/resources/json/interactive_mood_selector_ui.json" target="_blank" rel="noopener noreferrer"&gt;interactive_mood_selector_ui.json&lt;/a&gt; which didn&amp;rsquo;t render correctly, both in the JavaFX view and my web-based view to compare it with.&lt;/p&gt;</description></item><item><title>A Week of Housekeeping: What Changed on Foojay.io</title><link>https://foojay.io/today/a-week-of-housekeeping-what-changed-on-foojay-io/</link><pubDate>Mon, 06 Jul 2026 10:04:00 +0000</pubDate><guid>https://foojay.io/today/a-week-of-housekeeping-what-changed-on-foojay-io/</guid><description>&lt;p&gt;Running a community website is a bit like maintaining a codebase: the content that matters most is never completely done. And if you don&amp;rsquo;t schedule regular housekeeping, things can get outdated&amp;hellip; Last week, we did some cleanup, restructuring, and updating. Here&amp;rsquo;s an overview of what changed.&lt;/p&gt;&#10;&lt;h2 id="navigation-reorganised"&gt;Navigation Reorganised&lt;/h2&gt;&#10;&lt;p&gt;The top menu needed some restructuring&amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;The &lt;strong&gt;News&lt;/strong&gt; menu now focuses purely on what it says: &lt;a href="https://foojay.io/today/"&gt;Daily News&lt;/a&gt;, the &lt;a href="https://foojay.io/today/category/podcast/"&gt;Foojay Podcast&lt;/a&gt;, the &lt;a href="https://foojay.io/today/category/jc-ai-newsletter/"&gt;JC-AI Newsletter&lt;/a&gt; by &lt;a href="https://foojay.io/today/author/miro-wengner/"&gt;Miro Wengner&lt;/a&gt;, the new &lt;a href="https://foojay.io/ai/"&gt;Foojay.io AI Portal&lt;/a&gt;, and the &lt;a href="https://foojay.io/calendar"&gt;Event Calendar&lt;/a&gt;. The AI Portal is a recent addition we hadn&amp;rsquo;t properly surfaced before. It collects AI-related resources and tooling for Java developers, so it deserves its own slot in the navigation.&lt;/p&gt;</description></item><item><title>JavaFX Links of June 2026</title><link>https://foojay.io/today/javafx-links-of-june-2026/</link><pubDate>Tue, 30 Jun 2026 07:23:31 +0000</pubDate><guid>https://foojay.io/today/javafx-links-of-june-2026/</guid><description>&lt;p&gt;Here are the JavaFX LinksOfTheMonth of June 2026. You can find the weekly lists on &lt;a href="https://www.jfx-central.com/links" target="_blank" rel="noopener noreferrer"&gt;jfx-central.com&lt;/a&gt;. Did we miss anything? Is there anything you want to have included in one of the next overviews? Let us know via &lt;a href="mailto:links@jfx-central.com"&gt;links@jfx-central.com&lt;/a&gt;.&lt;/p&gt;&#10;&lt;h2 id="core"&gt;Core&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/johanvos.bsky.social/post/3mnans5s67c2u" target="_blank" rel="noopener noreferrer"&gt;Message by &lt;strong&gt;Johan Vos&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I&amp;rsquo;ve spent most of today (and the past few days) on JavaFX 17/21/25 LTS. It&amp;rsquo;s a lot of work, but almost a pleasure because the tools/procedures are so clear. Skara is extremely helpful with backports. And it&amp;rsquo;s deterministic. JavaFX is very well maintained.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;From the dev mailinglist: &lt;a href="https://github.com/openjdk/jfx/commit/738be0f10f8dbbbe182aa3d06ee86313fa181bb1" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Michael Strauß&lt;/strong&gt; integrated JDK-8385459&lt;/a&gt; in &lt;a href="https://github.com/openjdk/jfx/pull/2177" target="_blank" rel="noopener noreferrer"&gt;PR #2177&lt;/a&gt;: Animations should respect reducedMotion preference: &amp;ldquo;&lt;em&gt;Several JavaFX controls use animations to convey state changes, but none respected the reducedMotion accessibility preference. This change makes TableRowSkinBase, TitledPaneSkin, TabPaneSkin, PaginationSkin, and Charts honor Scene.Preferences.reducedMotion.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;Apparently, the JFX Adopters Meeting 2026 led to a pull request by &lt;strong&gt;Marius Hanl&lt;/strong&gt; in the OpenJFX repository: &lt;a href="https://github.com/openjdk/jfx/pull/2191" target="_blank" rel="noopener noreferrer"&gt;8386663: Stylesheet/StyleClass list should be lazily initialized&lt;/a&gt;. Thanks, &lt;a href="https://mastodon.acm.org/@koppor/116810873255149882" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Oliver Kopp&lt;/strong&gt; for sharing this info&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="applications"&gt;Applications&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Video by &lt;a href="https://bsky.app/profile/ingstudios.dev/post/3mncdhcnbds2f" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Ethan Lee&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I Built My Own Agentic AI Browser &lt;a href="https://turtlebrowse.ingstudios.dev/" target="_blank" rel="noopener noreferrer"&gt;Turtlebrowse&lt;/a&gt; now with Java CEF, Swing, and embedded JavaFX components. &lt;a href="https://www.youtube.com/watch?v=WzU8Cnl3kE0" target="_blank" rel="noopener noreferrer"&gt;Go watch it on YouTube&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/ingstudios.dev/post/3mondjccunc2o" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Ethan Lee&lt;/strong&gt; released Turtlebrowse v1.1.1&lt;/a&gt;, the open-source browser built to be agentic: &amp;ldquo;&lt;em&gt;This brings features like a multi-process architecture and custom profiles. It also brings patches for internal API errors. It uses Gemma4 under the hood, perfect for everyday tasks. Get it at &lt;a href="https://turtlebrowse.ingstudios.dev/" target="_blank" rel="noopener noreferrer"&gt;turtlebrowse.ingstudios.dev&lt;/a&gt;!&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/java/comments/1u10ble/created_a_simple_minimal_canvas_application_in/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Gufran Thakur&lt;/strong&gt; created a simple, minimal Canvas Application in JavaFX&lt;/a&gt;: &amp;ldquo;&lt;em&gt;After like a year finally getting back to JavaFX, decided to make an excalidraw inspired app for fun. It&amp;rsquo;s a very minimal canvas app with basic features. &lt;a href="https://github.com/gufranthakur/ExplainFX" target="_blank" rel="noopener noreferrer"&gt;Source code is on ExplainFX&lt;/a&gt;. Features: Drawing, Create Squares and Circles, Text, Vary stroke size/font size,&amp;hellip; Please let me know if you have any questions!&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Max Xiong&lt;/strong&gt; continuous his &amp;ldquo;Building In Public&amp;rdquo; journey for his DataCollie application. &lt;a href="https://bsky.app/profile/maxiong.bsky.social/post/3mnulx7aomc2u" target="_blank" rel="noopener noreferrer"&gt;Follow him on Bluesky for regular updates and screenshots&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Tonight I implemented the custom UI styling for Project context menu items.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1u9hfn1/dropping_a_small_pdf_viewer_for_you_guys_javafx/" target="_blank" rel="noopener noreferrer"&gt;Found on Reddit, by &lt;strong&gt;xdsswar&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Dropping a small PDF viewer for you guys (JavaFX + native PDFium). It&amp;rsquo;s done on native PDFium via Java&amp;rsquo;s FFM API (no PDFBox, no AWT). Has zoom, text selection, search, thumbnails, the usual, would love some feedback. &lt;a href="https://github.com/xdsswar/ultimate-pdf-viewer" target="_blank" rel="noopener noreferrer"&gt;Repo link&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1u5zjpo/i_built_jylos_a_localfirst_opensource_knowledge/" target="_blank" rel="noopener noreferrer"&gt;By &lt;strong&gt;RGiskard7&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I built Jylos, a local-first open-source knowledge management app using Java and JavaFX. It started as a personal project to explore desktop application architecture, JavaFX, Markdown processing and software design. Over time it evolved into a complete application with: Markdown notes with live preview, Wiki-links and backlinks, Interactive knowledge graph,&amp;hellip; Everything is stored locally. No accounts, no cloud backend and no telemetry. The &lt;a href="https://github.com/RGiskard7/jylos" target="_blank" rel="noopener noreferrer"&gt;project is open source&lt;/a&gt; under the MIT license and binaries are available for Windows, Linux and macOS. I&amp;rsquo;d really appreciate any feedback, especially from JavaFX developers.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1ua30k4/my_first_javafx_application/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Mechanical-pasta&lt;/strong&gt; shared his &amp;ldquo;First JavaFx Application&amp;rdquo; on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;I tried JavaFx, and, as a support project to learn the language, I&amp;rsquo;ve decided to build my own MineSweeper but with some differences. You can find it &lt;a href="https://github.com/TargolLagadec/MineSweeperTribute" target="_blank" rel="noopener noreferrer"&gt;here if you&amp;rsquo;re interested&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;In the &lt;a href="https://www.jfx-central.com/links/2026-05-29" target="_blank" rel="noopener noreferrer"&gt;Links Of The Week of 2026-05-29&lt;/a&gt;, we shared &amp;ldquo;DiskSpace&amp;rdquo;, a cross-platform disk space visualizer by &lt;strong&gt;Marcus Hirt&lt;/strong&gt; . In the blog post &lt;a href="https://hirt.se/blog/?p=1606" target="_blank" rel="noopener noreferrer"&gt;Using GraalVM, JavaFX and a Clanker to Build a Cross Platform Desktop App&lt;/a&gt;, he shares a lot of background information about the project, the architecture, and the build process.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="components-libraries-tools"&gt;Components, Libraries, Tools&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1tul6x8/live_property_editing_for_javafx_nodes_in_devtools/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Striking_Creme864&lt;/strong&gt; shared a video on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Live property editing for JavaFX nodes in DevTools. When building JavaFX applications, we often need not only to inspect a node&amp;rsquo;s properties, but also tweak them to see how they behave. Restarting the app every time to test small changes quickly becomes a major time sink. So we added live property editing directly to the DevTools in our platform (TabShell). The property editor supports three simple forms: basic values, enums, and Insets, but this made UI debugging and iteration much faster.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3mncofbca722s" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; shared screenshots&lt;/a&gt; of the new &lt;code&gt;StageStyle.EXTENDED&lt;/code&gt;: &amp;ldquo;&lt;em&gt;I recently updated the FlexGanttFX showcase application to use the new HeaderBar component and StageStyle.EXTENDED type. This results in a very clean and professional looking UI.&lt;/em&gt; &amp;quot;&#10;&lt;ul&gt;&#10;&lt;li&gt;You can also try it online at &lt;a href="https://demos.jpro.one/flexganttfx-showcase.html" target="_blank" rel="noopener noreferrer"&gt;demos.jpro.one/flexganttfx-showcase.html&lt;/a&gt; or install locally &lt;a href="https://www.jdeploy.com/~flexganttfxshowcase" target="_blank" rel="noopener noreferrer"&gt;via jdeploy&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; released &lt;a href="https://lottie4j.com/releases/index.html" target="_blank" rel="noopener noreferrer"&gt;Lottie4J 1.2.4&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Fixed Lottie arc rendering: constrained the easing solver to prevent bezier curve divergence. Added bisection fallback for flat-point curves. Fixed full-circle trim path flickering caused by floating-point precision loss in offset wrapping. Fixed border rendering error. Added Pi4J test file.&lt;/em&gt; &amp;quot; Available on &lt;a href="https://central.sonatype.com/search?q=g:com.lottie4j" target="_blank" rel="noopener noreferrer"&gt;Maven Central&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://plugins.jetbrains.com/plugin/32337-fxml-2-for-javafx" target="_blank" rel="noopener noreferrer"&gt;FXML/2 for JavaFX&lt;/a&gt;: IntelliJ IDE plugin for the &lt;a href="https://jfxcore.github.io/fxml-compiler/" target="_blank" rel="noopener noreferrer"&gt;FXML/2 markup format&lt;/a&gt;, supporting syntax highlighting, folding, formatting, EditorConfig-aware indentation, tag and attribute resolution, code completion, and navigation to JavaFX classes. Presented as &amp;ldquo;FXML 2.0: Write Markup, Ship Bytecode&amp;rdquo; by &lt;strong&gt;Michael Strauß&lt;/strong&gt; at the &lt;a href="https://www.zeiss.com/meditec/en/news-events/events/jfx-adopters-meeting-2026.html" target="_blank" rel="noopener noreferrer"&gt;JFX Adopters Meeting&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Jonathan S. Fisher&lt;/strong&gt; is working on &lt;a href="https://github.com/exabrial/difx" target="_blank" rel="noopener noreferrer"&gt;DiFX, a CDI / Dependency Injection For JavaFX&lt;/a&gt;: &amp;ldquo;&lt;em&gt;The goal is to have CDI backed beans and events inside JavaFx Desktop Applications. I could use a few eyes/ideas before I cut an initial release and stabilize the API.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/techsenger/shellfx" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;techsenger&lt;/strong&gt; published ShellFX on GitHub&lt;/a&gt;: a platform for building JavaFX applications using an extended MVP pattern. Part of the growing Techsenger JavaFX library ecosystem (alongside CEFFX, TabPanePro, PatternFX, StagePro, etc.).&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/int4-org/FX/releases/tag/0.6.1" target="_blank" rel="noopener noreferrer"&gt;FX Flow 0.6.1&lt;/a&gt; got released: declarative, fluent UI library for JavaFX. Adds validation support for atomic multi-value updates. More info by &lt;strong&gt;john16384&lt;/strong&gt; on &lt;a href="https://www.reddit.com/r/JavaFX/comments/1uf8l0h/fx_flow_061_released_declarative_ui_building_for/" target="_blank" rel="noopener noreferrer"&gt;Reddit/r/JavaFX&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="podcasts-videos-books"&gt;Podcasts, Videos, Books&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://webtechie.be/post/2026-06-04-interview-with-naail-from-lottiefiles/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; published a blog and video&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Lottie4J started as a single question: can JavaFX render Lottie animations without a WebView? That question turned into a library. The library attracted pull requests. And now I had a 50-minute conversation with &lt;strong&gt;Naail Abdul Rahman&lt;/strong&gt;, R&amp;amp;D engineer at LottieFiles, to talk about where the format is heading and what that means for a Java implementation.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/pedro-duque-vieira-2644038_healthcare-healthtech-healthcareit-ugcPost-7467911189063245824-igkN/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Pedro Duque Vieira&lt;/strong&gt; shared a video on LinkedIn&lt;/a&gt;: &amp;ldquo;&lt;em&gt;New capability added to the IKE Knowledge Layout Editor: display semantics can now be viewed in a table format. This provides a more structured way to inspect semantic information, which can be especially useful when working with large numbers of semantics.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;A live session of 2,5 hours with &lt;strong&gt;Johannes Rabauer&lt;/strong&gt; and &lt;strong&gt;Anton Arhipov&lt;/strong&gt; : &lt;a href="https://www.youtube.com/live/LekXCf-FJ00" target="_blank" rel="noopener noreferrer"&gt;Building a MIDI Visualizer with Junie, IntelliJ and JavaFX&lt;/a&gt;: &amp;ldquo;&lt;em&gt;AI assisted development is becoming a core part of modern software engineering. But what does that actually look like in a real Java project? In this live coding session, we explore AI powered development inside IntelliJ IDEA while building a JavaFX application that visualizes MIDI music through animated waveform based visualizations. Rather than treating AI as a code generator, we will use Junie and other IntelliJ AI capabilities as development partners throughout the process. Together, we&amp;rsquo;ll explore how AI can help with architecture, implementation, refactoring, testing, and day to day development decisions.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; interviewed &lt;strong&gt;David Gutierrez&lt;/strong&gt; in a new video: &lt;a href="https://webtechie.be/post/javafx-in-action-%2327-with-david-gutierrez-about-jmathanim-to-create-mathematical-animations/" target="_blank" rel="noopener noreferrer"&gt;JavaFX In Action #27 with David Gutierrez about JMathAnim to Create Mathematical Animations&lt;/a&gt;: &amp;ldquo;&lt;em&gt;JMathAnim is a Java library and UI built on JavaFX that lets you create animated mathematical visualizations. The goal is simple: make it easy to build videos that explain mathematical concepts through animation. It&amp;rsquo;s inspired by the kind of content you see on YouTube channels like 3Blue1Brown.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="conferences-presentations"&gt;Conferences, Presentations&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ZEISS Meditec hosted the &lt;a href="https://www.zeiss.com/meditec/en/news-events/events/jfx-adopters-meeting-2026.html" target="_blank" rel="noopener noreferrer"&gt;JFX Adopters Meeting 2026&lt;/a&gt; on June 16 in Munich. The full-day agenda included: &amp;ldquo;Low-Latency JavaFX: Robotics and Native Bindings&amp;rdquo; (&lt;strong&gt;Florian Enner&lt;/strong&gt; ), &amp;ldquo;JavaFX – Status and Beyond&amp;rdquo; (&lt;strong&gt;Wolfgang Weigend&lt;/strong&gt; ), &amp;ldquo;JPRO – the Future of Unified JavaFX Application Development across Desktop and Web&amp;rdquo; (&lt;strong&gt;Florian Kirmaier&lt;/strong&gt; ), &amp;ldquo;FXML 2.0: Write Markup, Ship Bytecode&amp;rdquo; (&lt;strong&gt;Michael Strauß&lt;/strong&gt; ), &amp;ldquo;Beyond MVC: A Practical Guide to MVVM in JavaFX&amp;rdquo; (&lt;strong&gt;Tibor Malanik&lt;/strong&gt; ), &amp;ldquo;Diagnosis in the Context of eBike Systems with JavaFX&amp;rdquo; (&lt;strong&gt;Frido Fechner&lt;/strong&gt; ), &amp;ldquo;JavaFX for Electronics Control&amp;rdquo; (&lt;strong&gt;Thorsten Stüker&lt;/strong&gt; ), &amp;ldquo;Lets Contribute Together&amp;rdquo; (&lt;strong&gt;Marius Hanl&lt;/strong&gt; ), and &amp;ldquo;Spreadsheet Calculation and Document Processing in JavaFX: Lessons from SCell and bk.text&amp;rdquo; (&lt;strong&gt;Vasily Smeltsov&lt;/strong&gt; ). Pictures shared by &lt;strong&gt;Wolfgang Weigend&lt;/strong&gt; :&#10;&lt;ul&gt;&#10;&lt;li&gt;&amp;ldquo;&lt;em&gt;The &lt;a href="https://bsky.app/profile/wolfgangweigend.bsky.social/post/3mofuegyfvc2n" target="_blank" rel="noopener noreferrer"&gt;official opening of the JFX Adopters Meeting 2026&lt;/a&gt; by &lt;strong&gt;Christian Heilmann&lt;/strong&gt; and &lt;strong&gt;Lisa&lt;/strong&gt;, both work with JavaFX at Zeiss Meditec AG.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&amp;ldquo;&lt;em&gt;The &lt;a href="https://bsky.app/profile/wolfgangweigend.bsky.social/post/3mofusejv5k2l" target="_blank" rel="noopener noreferrer"&gt;robotics session&lt;/a&gt; &amp;lsquo;Low-Latency JavaFX: Robotics and Native Bindings&amp;rsquo; by Florian Enner.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&amp;ldquo;&lt;em&gt;&lt;a href="https://bsky.app/profile/wolfgangweigend.bsky.social/post/3mofuzfnzes2l" target="_blank" rel="noopener noreferrer"&gt;Great welcome in the morning&lt;/a&gt; with &lt;strong&gt;Tom Schindl&lt;/strong&gt; , &lt;strong&gt;Stefano Negri&lt;/strong&gt; and &lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; — all about JavaFX applications&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/wolfgangweigend.bsky.social/post/3mocwnoogjc2n" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Wolfgang Weigend&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Please find the session &amp;lsquo;&lt;a href="https://jugf.github.io/posts/javafx-ui-technologie-als-zentraler-baustein-im-java-okosystem-24-06-2026/" target="_blank" rel="noopener noreferrer"&gt;JavaFX UI technology as a central component of the Java ecosystem&lt;/a&gt;&amp;rsquo; on Wednesday 24th of June 2026 at the Java User Group Frankfurt am Main in the National Library.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="jfx-central"&gt;JFX Central&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;New content on JFX Central:&#10;&lt;ul&gt;&#10;&lt;li&gt;Library: &lt;a href="https://www.jfx-central.com/libraries/svgnode" target="_blank" rel="noopener noreferrer"&gt;SvgNode&lt;/a&gt;, a lightweight JavaFX node for rendering SVG paths at any size. Fully supports FXML, property binding, and CSS styling.&lt;/li&gt;&#10;&lt;li&gt;Video: &lt;a href="https://www.jfx-central.com/videos/pb54youm6AM" target="_blank" rel="noopener noreferrer"&gt;JavaFX In Action with David Gutierrez about JMathAnim&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;The JavaFX Links Of The Week of May got &lt;a href="https://foojay.io/today/javafx-links-of-may-2026/"&gt;bundled and published on Foojay.io&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>AI-Assisted Unused &amp; Dead Code Removal</title><link>https://foojay.io/today/ai-assisted-unused-dead-code-removal/</link><pubDate>Sun, 28 Jun 2026 07:19:42 +0000</pubDate><guid>https://foojay.io/today/ai-assisted-unused-dead-code-removal/</guid><description>&lt;h2 id="why-your-codebase-is-forcing-ai-to-underperform-and-what-to-do-about-it"&gt;Why Your Codebase Is Forcing AI to Underperform, and What to Do About It&lt;/h2&gt;&#10;&lt;figure class="alignleft size-large is-resized"&gt;&#10; &lt;img src="https://foojay.io/today/ai-assisted-unused-dead-code-removal/ai-assisted-dead-code-removal-1024x576.avif" alt="" width="1024" height="576" style="width:250px" loading="lazy" class="is-zoomable"&gt;&lt;/figure&gt;&#10;&#10;&lt;p&gt;Your AI coding assistant is only as good as the codebase it works on. If your Java application carries years of dead &amp;amp; unused code, and most do, the AI spends its reasoning budget on code that nobody runs. The result is more hallucinations, worse suggestions, and higher token costs. Here&amp;rsquo;s what to do about it.&lt;/p&gt;</description></item><item><title>Systematic AI Coding: My Takeaways from the Eclipse Foundation Workshop in Brussels</title><link>https://foojay.io/today/systematic-ai-coding-my-takeaways-from-the-eclipse-foundation-workshop-in-brussels/</link><pubDate>Tue, 23 Jun 2026 19:48:42 +0000</pubDate><guid>https://foojay.io/today/systematic-ai-coding-my-takeaways-from-the-eclipse-foundation-workshop-in-brussels/</guid><description>&lt;p&gt;Most developers using AI tools are still guessing. The Eclipse Foundation&amp;rsquo;s first &lt;a href="https://aieclipse.org/ai-workshop/" target="_blank" rel="noopener noreferrer"&gt;AI Coding Workshop&lt;/a&gt; in Brussels was built to change that. It&amp;rsquo;s a brand new format they launched in Brussels, which makes sense: most of the Eclipse event team is based there. They plan to bring it to more cities from here, so keep an eye out if you want to attend such a workshop in the future. They offered 10 free tickets to share with the BeJUG and Foojay community. And in all honesty, I used one for myself. &lt;a href="https://www.linkedin.com/in/jonas-helming-76303b28/" target="_blank" rel="noopener noreferrer"&gt;Jonas Helming&lt;/a&gt; from &lt;a href="https://eclipsesource.com/" target="_blank" rel="noopener noreferrer"&gt;EclipseSource&lt;/a&gt; led the workshop, with a fun quiz hosted by &lt;a href="https://www.linkedin.com/in/tfroment/" target="_blank" rel="noopener noreferrer"&gt;Thomas Froment&lt;/a&gt; in the afternoon. Here&amp;rsquo;s what I took away.&lt;/p&gt;</description></item><item><title>Foojay Podcast #99: Testing the Untestable: LLM Security for Java Developers with Tiberius</title><link>https://foojay.io/today/foojay-podcast-99/</link><pubDate>Mon, 22 Jun 2026 06:54:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-99/</guid><description>&lt;p&gt;Your AI-powered Java application is live in production. But have you actually tested whether it can be jailbroken or manipulated into leaking data it should never reveal? In this episode, Iryna Dohndorf walks us through Tiberius, an open-source security testing library for LLM applications in Java, and explains why everything you know about unit testing needs a rethink when non-determinism is part of the design.&lt;/p&gt;&#10;&lt;h2 id="youtube"&gt;YouTube&lt;/h2&gt;&#10;&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;&#10;&#9;&#9;&#9;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/7bBcTzeevEo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;&#10;&#9;&#9;&lt;/div&gt;&#10;&#10;&lt;h2 id="podcast-apps"&gt;Podcast Apps&lt;/h2&gt;&#10;&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>Building Java Containers Without a Dockerfile: Azul Zulu and Paketo Buildpacks</title><link>https://foojay.io/today/building-java-containers-without-a-dockerfile-azul-zulu-and-paketo-buildpacks/</link><pubDate>Thu, 18 Jun 2026 08:15:45 +0000</pubDate><guid>https://foojay.io/today/building-java-containers-without-a-dockerfile-azul-zulu-and-paketo-buildpacks/</guid><description>&lt;p&gt;&lt;em&gt;This is the 5th post in the Azul Zulu Docker Official Images series:&lt;/em&gt;&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;em&gt;&lt;a href="https://www.azul.com/blog/trusted-java-containers-azul-zulu-openjdk-joins-dockers-official-images/" target="_blank" rel="noopener noreferrer"&gt;Trusted Java Containers: Azul Zulu OpenJDK Joins Docker&amp;rsquo;s Official Images&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;&lt;a href="https://www.azul.com/blog/the-road-to-docker-official-images-for-java-the-azul-zulu-story/" target="_blank" rel="noopener noreferrer"&gt;The Road to Docker Official Images for Java: The Azul Zulu Story&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;&lt;a href="https://www.azul.com/blog/using-the-azul-zulu-docker-official-images-from-simple-pull-to-lean-container/" target="_blank" rel="noopener noreferrer"&gt;Using the Azul Zulu Docker Official Images: From Simple Pull to Lean Container&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;em&gt;&lt;a href="https://www.azul.com/blog/all-azul-zulu-container-images-explained-ca-sa-and-chainguard/" target="_blank" rel="noopener noreferrer"&gt;All Azul Zulu Container Images Explained: CA, SA, and Chainguard&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Every post in this series so far has shown you a Dockerfile. You pick a base image, copy a JAR, set an entrypoint, and ship. That works well. But Spring Boot developers often skip the Dockerfile entirely and still get a production-ready container with Azul Zulu as the JVM thanks to Paketo Buildpacks. Here is how that works, and how to configure it.&lt;/p&gt;</description></item><item><title>Foojay Podcast #98: The End of JNI Pain: How WebAssembly Is Quietly Replacing Native Libraries in Java</title><link>https://foojay.io/today/foojay-podcast-98/</link><pubDate>Mon, 15 Jun 2026 08:13:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-98/</guid><description>&lt;p&gt;WebAssembly is already running inside Java applications, most developers just don&amp;rsquo;t know it yet. In this episode, Andrea Peruffo walks us through how WebAssembly is becoming the modern, safe alternative to JNI: letting you run Rust, C, and other native libraries directly on the JVM, without the crash risks, the per-platform distribution headaches, or the observability blackhole that JNI creates. From JRuby&amp;rsquo;s Prism parser to SQLite and Postgres running as pure Java bytecode, the use cases are real and the project Endive, under the Bytecode Alliance, is ready to explore.&lt;/p&gt;</description></item></channel></rss>