<?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, 14 Sep 2026 06:11:42 +0000</lastBuildDate><atom:link href="https://foojay.io/today/author/frankdelporte/index.xml" rel="self" type="application/rss+xml"/><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><item><title>Lottie4J Meets LottieFiles: A Conversation with Naail Abdul Rahman</title><link>https://foojay.io/today/lottie4j-meets-lottiefiles/</link><pubDate>Tue, 09 Jun 2026 07:31:00 +0000</pubDate><guid>https://foojay.io/today/lottie4j-meets-lottiefiles/</guid><description>&lt;p&gt;Lottie animations run on Android, iOS, and the web. Getting them working on the JVM is a different story. &lt;a href="https://lottie4j.com" target="_blank" rel="noopener noreferrer"&gt;Lottie4J&lt;/a&gt; started as a question: can JavaFX render them without a WebView? That question turned into a library with a first release in March 2026! Since then, I received the first pull requests, recently added headless unit testing with JavaFX 26, and now this: a video conversation with Naail from the LottieFiles team.&lt;/p&gt;</description></item><item><title>Foojay Podcast #97: From Scripting Language to AI Powerhouse: How BoxLang Is Redefining JVM Development</title><link>https://foojay.io/today/foojay-podcast-97/</link><pubDate>Mon, 01 Jun 2026 06:57:25 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-97/</guid><description>&lt;p&gt;BoxLang is a modern dynamic JVM language built for rapid application development. It&amp;rsquo;s 100% Java-interoperable, compiles to JVM bytecode, and deployable anywhere from OS to AWS Lambda to Spring Boot. In this episode, we sit down with Luis Majano (CEO of Ortus Solutions and creator of BoxLang) and Cristobal Escobar (BoxLang community manager) to dig into the wave of innovation that has hit the platform over the past few months.&lt;/p&gt;</description></item><item><title>JavaFX Links of May 2026</title><link>https://foojay.io/today/javafx-links-of-may-2026/</link><pubDate>Sun, 31 May 2026 08:19:07 +0000</pubDate><guid>https://foojay.io/today/javafx-links-of-may-2026/</guid><description>&lt;p&gt;Here are the JavaFX LinksOfTheMonth of May 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="applications"&gt;Applications&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/hansolo.eu/post/3mkeusogqbs2h" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Gerrit Grunwald&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;After a nice 14km morning walk, I&amp;rsquo;ve modified the prediction mode in my little &lt;a href="https://github.com/hansolo/glucostatusfx/releases" target="_blank" rel="noopener noreferrer"&gt;JavaFX diabetes app and created a new release&lt;/a&gt;&amp;hellip; and all of that before 8am&amp;hellip; great start into the Sunday.&lt;/em&gt; 😁&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://foojay.social/@jabref/116501474018435951" target="_blank" rel="noopener noreferrer"&gt;Message from JabRef&lt;/a&gt;: &amp;ldquo;&lt;em&gt;We are excited that we are participating in GSOC2026 with 3 projects:&lt;/em&gt; &amp;quot;&#10;&lt;ul&gt;&#10;&lt;li&gt;Improved handling of older documents with OCR and AI-powered tools.&lt;/li&gt;&#10;&lt;li&gt;Improved LibreOffice-JabRef integration with one particular aspect of compatibility with other reference managers.&lt;/li&gt;&#10;&lt;li&gt;Improving startup times for JabKit by leveraging the power of GraalVM&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/davidcalculin.bsky.social/post/3mlbvm4rlg22d" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;David Gutiérrez&lt;/strong&gt; released version 1.8.0 of JMathAnim&lt;/a&gt;, a Java editor to make mathematical animations: &amp;ldquo;&lt;em&gt;featuring JavaFX effects for each individual object, improvements to autocomplete and the editor, code polishing, and numerous bug fixes.&lt;/em&gt; &amp;quot; Sources are &lt;a href="https://codeberg.org/davidgutierrezrubio/jmathanim" target="_blank" rel="noopener noreferrer"&gt;available here&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/p-duke.bsky.social/post/3mlb7htf6xs2c" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Pedro Duke&lt;/strong&gt; shared a video&lt;/a&gt; of &lt;a href="https://www.ikehub.org/home" target="_blank" rel="noopener noreferrer"&gt;IKE&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Demo: users create custom Knowledge Layout windows,then use them to view/edit/create Components tailored to their workflow. Built for healthcare, involving standards and terminologies like HL7, SNOMED CT, LOINC, RxNorm.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1tghhjn/built_a_100_offline_pdf_utility_app_using_java_25/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Ilmetallaro&lt;/strong&gt; built a 100% offline PDF utility app&lt;/a&gt; using Java 25, JavaFX and AtlantaFX (GPLv3): &amp;ldquo;&lt;em&gt;LibrePDF is focused on 100% privacy. It makes zero HTTP calls, everything stays locally on your machine, and it doesn&amp;rsquo;t even support logging. I was sick and tired of uploading my personal data to cloud giants (like iLovePDF, Smallpdf, etc.) or relying on sketchy closed-source freeware.&lt;/em&gt; &amp;quot; &lt;a href="https://github.com/MontesanoDev/LibrePDF" target="_blank" rel="noopener noreferrer"&gt;You can find the code, binaries, and more info here&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/leoxiong.bsky.social/post/3mm7rteyxes2v" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Leo Xiong&lt;/strong&gt; shared a screenshot of work-in-progress&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Hello! I&amp;rsquo;m Lucy, your AI assistant. How can I help you with your database queries today? The AI-native database management tool journey has finally begun.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/brunoborges.bsky.social/post/3mlpen4gq6c2x" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Bruno Borges&lt;/strong&gt; on Bluesky&lt;/a&gt;: &amp;ldquo;&lt;em&gt;And to think that I did port a 2048 game #JavaScript implementation to a Java + JavaFX desktop version, all by hand a long time ago! Copilot just helped enhance further&amp;hellip; &lt;a href="https://brunoborges.github.io/fx2048/" target="_blank" rel="noopener noreferrer"&gt;Available on brunoborges.github.io/fx2048&lt;/a&gt;&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/rladstaetter.bsky.social/post/3mlmbc73w3c25" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Robert Ladstätter&lt;/strong&gt; shared a behind the scenes&lt;/a&gt;: &amp;ldquo;&lt;em&gt;LogoRRR&amp;rsquo;s latest tutorial video was made with JavaFX too. The app, overlays, effects, voice, and recording pipeline all come together in one generated video.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Marcus Hirt&lt;/strong&gt; is looking for people wanting to try out, and maybe even participate in, a little hobby project: &lt;a href="https://github.com/thegreystone/diskspace" target="_blank" rel="noopener noreferrer"&gt;DiskSpace&lt;/a&gt;: &amp;ldquo;&lt;em&gt;A cross-platform disk space visualizer that shows where your space went, with two complementary views: a sunburst (hierarchical radial layout, good for spotting depth-imbalanced subtrees and proportional weight at a glance) and a squarified-treemap heatmap (good for finding the largest individual cells across the whole tree). Press V to toggle.&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;a href="https://www.reddit.com/r/JavaFX/comments/1suhrov/early_contributors_wanted_tailwindfx_utilityfirst/" target="_blank" rel="noopener noreferrer"&gt;A (removed) message by &lt;strong&gt;Street_Humor_7861&lt;/strong&gt; on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Early contributors wanted for TailwindFX. An utility-first UI framework for JavaFX (MIT, 1.0-SNAPSHOT, actively developed). I&amp;rsquo;m building TailwindFX, an open-source framework that brings Tailwind CSS&amp;rsquo;s utility-first paradigm to JavaFX. Instead of writing verbose CSS/FXML or inline -fx-* styles, you compose UIs with familiar utility classes and type-safe Java APIs.&lt;/em&gt; &amp;quot; Check &lt;a href="https://github.com/yasmramos/tailwindfx" target="_blank" rel="noopener noreferrer"&gt;the repository here&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1sz7od8/ceffx_prebuilt_natives_added_no_need_to_compile/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Striking_Creme864&lt;/strong&gt; on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;We recently introduced our &lt;a href="https://github.com/techsenger/ceffx" target="_blank" rel="noopener noreferrer"&gt;CEFFX project&lt;/a&gt; (a library for integrating the Chromium Embedded Framework into JavaFX) and it was well received. Based on that feedback, we decided to simplify its usage by providing prebuilt native libraries. This allows you to use the library without having to compile anything yourself. All native binaries are packaged into the ceffx-natives module using classifier names similar to those in OpenJFX.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3mkpdkbcan22d" target="_blank" rel="noopener noreferrer"&gt;Message by &lt;strong&gt;Dirk Lemmermann&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;GemsFX 4.0.1 is out and has been &amp;lsquo;downgraded&amp;rsquo; back to using Java 11 and JavaFX 17 due to popular demand. I also added a new sampler demo auto-update installer (jdeploy) that &lt;a href="https://www.jdeploy.com/~gemsfxdemo" target="_blank" rel="noopener noreferrer"&gt;you can download here&lt;/a&gt;. The demo uses Java 24 and JavaFX 25.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3ml4e55poms24" target="_blank" rel="noopener noreferrer"&gt;Screenshot shared by &lt;strong&gt;Dirk Lemmermann&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;GemsFX 4.0.4 is out on Maven Central with fixes to the styling of the InfoCenterView. Try it out via the &lt;a href="https://www.jdeploy.com/~gemsfxdemo" target="_blank" rel="noopener noreferrer"&gt;installer&lt;/a&gt;. Browse the available controls at &lt;a href="https://gemsfx.dlsc.com/" target="_blank" rel="noopener noreferrer"&gt;gemsfx.dlsc.com&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/cupofcode.bsky.social/post/3mkz6awptu22i" target="_blank" rel="noopener noreferrer"&gt;Message shared by &lt;strong&gt;Austin Lehman&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;&lt;a href="https://aussom-lang.com/" target="_blank" rel="noopener noreferrer"&gt;Aussom-Lang&lt;/a&gt; now has support for JavaFX, GTK4, a Java native interface with dynamic Jar loading, and native library interface via Panama. Quite a bit that can be done with it now. Aussom is a safe, sandboxed scripting language for the JVM. Embed it in your Java app, run it on the server with Aussom Server, or use it in the browser with Aussom-Script.&lt;/em&gt; &amp;quot; A JavaFX example is &lt;a href="https://aussom-lang.com/docPage?product=aussom&amp;amp;page=written/javafx-example-simple.md&amp;amp;title=JavaFX%20Example" target="_blank" rel="noopener noreferrer"&gt;available in the documentation&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; announced &amp;ldquo;&lt;em&gt;V1.2.3 of Lottie4J, the library for parsing Lottie animations as Java objects and playing them as JavaFX animations. In this release: improved unit tests, data model and player improvements, and more! All info &lt;a href="https://lottie4j.com/releases/index.html" target="_blank" rel="noopener noreferrer"&gt;in the release notes&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/1t9s3a0/javafx_dynamic_jar_based_plugin_system/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Kareem&lt;/strong&gt; shared a video on Reddit of DockTask&lt;/a&gt;: &amp;ldquo;&lt;em&gt;JavaFX dynamic JAR based plugin system. The idea is pretty straightforward: users can upload their own JARs, and the app will load them at runtime thanks to Java&amp;rsquo;s serviceloader. It also connects to a remote repo to browse and display plugin information. It&amp;rsquo;s still a work in progress, but I&amp;rsquo;m really curious about what people think of this system. Any feedback would be appreciated! Check it &lt;a href="https://github.com/KSaifStack/DockTask" target="_blank" rel="noopener noreferrer"&gt;on GitHub&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3mmerndjbqk25" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; shared a screenshot with a lot of AtlantaFX themes&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Release 1.3.0 of the new collection of AtlantaFX themes is out now and published on Maven Central. A total of 25 themes (14 dark, 11 light). Use the plain CSS files or the Java API.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://foojay.io/today/testing-lottie4j-javafx-animations-in-github-actions-with-javafx-26-headless/"&gt;Republished on Foojay&lt;/a&gt; &amp;ldquo;&lt;em&gt;JavaFX 26&amp;rsquo;s new headless mode solves a real problem: testing animations in CI/CD pipelines without a display server. &lt;strong&gt;Frank Delporte&lt;/strong&gt; shows how to use it with Lottie4J in GitHub Actions.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=EW6JzB3jZs0" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Lee Wyatt&lt;/strong&gt; shared a video about JavaFX Tools&lt;/a&gt;: &amp;ldquo;&lt;em&gt;JavaFX Tools now includes four ways to generate or complete JavaFX property code&lt;/em&gt; &amp;ldquo;:&#10;&lt;ul&gt;&#10;&lt;li&gt;Alt+Enter accessor intention&lt;/li&gt;&#10;&lt;li&gt;fxp* completions&lt;/li&gt;&#10;&lt;li&gt;Generate menu: JavaFX Property Accessors&lt;/li&gt;&#10;&lt;li&gt;Generate menu: JavaFX Property&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/1thyw7d/weaverbird_a_real_example_of_plugin_management/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Striking_Creme864&lt;/strong&gt; on Reddit&lt;/a&gt;: &amp;ldquo;&lt;em&gt;Recently, we introduced &lt;a href="https://github.com/techsenger/weaverbird" target="_blank" rel="noopener noreferrer"&gt;Weaverbird&lt;/a&gt; - a framework for working with dynamic plugins. In this post, we want to show a real example of how it can be used. The GUI is build on top of TabShell. The main idea is that a plugin configuration is represented as an XML file. When the application is distributed, it already contains predefined plugin configurations (at the same time, users can add their own plugins). A configuration contains module definitions, repositories used to download them, plugin metadata, and other related information.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;Last week, we included a link to the message by &lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; about AtlantaFX Themes. Now, there is also a &lt;a href="https://dlsc-software-consulting-gmbh.github.io/atlantafx-themes/" target="_blank" rel="noopener noreferrer"&gt;website at&lt;/a&gt; with screenshots of all themes. &amp;ldquo;&lt;em&gt;Each theme overrides the color scale, semantic tokens, and dark / light mode flag without touching the upstream stylesheet.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.reddit.com/r/JavaFX/comments/1tp4jjv/gemsfx_new_controlsfx_atlantafx_companion/" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; announced version 4.1.0 of GemsFX&lt;/a&gt;: &amp;ldquo;&lt;em&gt;now includes an AtlantaFX companion stylesheet for ControlsFX. You can use the method ControlsFXAtlantaFX.apply() to add this new stylesheet to your scene or any parent node. By doing so you will be able to get rid of all those pesky warning / error messages regarding CSS rules using unknown colors. For more on GemsFX see &lt;a href="https://gemsfx.dlsc.com" target="_blank" rel="noopener noreferrer"&gt;gemsfx.dlsc.com&lt;/a&gt;.&lt;/em&gt;&amp;rdquo;&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://www.youtube.com/watch?v=Q8YPQzyeh58" target="_blank" rel="noopener noreferrer"&gt;Video by &lt;strong&gt;BabyDevCode&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;How to Run JavaFX Projects in Visual Studio Code.&amp;rdquo; The original is in Spanish, but also available in auto-dubbed English.&lt;/li&gt;&#10;&lt;li&gt;Recording of the JavaOne &amp;lsquo;26 talk by &lt;strong&gt;Phil Race&lt;/strong&gt; : &lt;a href="https://inside.java/2026/05/03/jdk-client-desktop/" target="_blank" rel="noopener noreferrer"&gt;The JDK Client Desktop : 2026 and Still Swinging&lt;/a&gt;: &amp;ldquo;&lt;em&gt;In this session, we explore how Swing fits into today&amp;rsquo;s Java ecosystem, how it works seamlessly alongside JavaFX, and why it can still outperform web-based approaches for certain desktop applications.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://foojay.io/today/debugging-bentofx-in-melodymatrix-with-matt-coley-scenic-view-and-an-honest-look-at-ai-generated-code/"&gt;Republished on Foojay&lt;/a&gt;: &amp;ldquo;&lt;em&gt;&lt;strong&gt;Frank Delporte&lt;/strong&gt; walks through debugging BentoFX in MelodyMatrix using Scenic View with &lt;strong&gt;Matt Coley&lt;/strong&gt;, plus a realistic look at AI-generated code and its challenges.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=N0KiHP6UPKY" target="_blank" rel="noopener noreferrer"&gt;Video by &lt;strong&gt;Florian Enner&lt;/strong&gt;&lt;/a&gt; showing his JavaFX charts and 3D visualizations in JavaFX from within MATLAB.&lt;/li&gt;&#10;&lt;li&gt;New impressive &lt;a href="https://www.youtube.com/watch?v=TlaJmlVQf98" target="_blank" rel="noopener noreferrer"&gt;video by &lt;strong&gt;Florian Enner&lt;/strong&gt; of the JavaFX HEBI Charts&lt;/a&gt; showing 50 KHz update, 100 subplots, chart with 1000 lines, and more. You can find the &lt;a href="https://github.com/HebiRobotics/hebi-charts-examples" target="_blank" rel="noopener noreferrer"&gt;example repo on GitHub&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://dev.java/learn/javafx/a11y/" target="_blank" rel="noopener noreferrer"&gt;New tutorial by &lt;strong&gt;Ana-Maria Mihalceanu&lt;/strong&gt;: &amp;ldquo;Accessibility in JavaFX&amp;rdquo;&lt;/a&gt;. &amp;ldquo;&lt;em&gt;JavaFX provides accessibility APIs and properties that help you build inclusive user interfaces. A good starting point is to rely on standard controls and ensure that your user interface employs proper semantics. From there, you can customize accessible metadata and fine-tune how components behave for assistive technologies.&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;On June 16th, 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; will take place in Munich, Germany. &amp;ldquo;&lt;em&gt;We will be hosting a JFX Adopters Meeting to exchange information on current projects and future plans. Representatives of the JavaFX &amp;rsquo;ecosystem&amp;rsquo; will also be there to help develop a viable picture of JavaFX. The success of future developments depends on the contribution of adopter companies making our community stronger.&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.linkedin.com/pulse/rest-story-april-edition-jvm-weekly-vol-173-artur-skowro%C5%84ski-ibyyf/" target="_blank" rel="noopener noreferrer"&gt;In the JVM Weekly vol. 173, by &lt;strong&gt;Artur Skowroński&lt;/strong&gt;&lt;/a&gt;: &amp;ldquo;&lt;em&gt;&lt;a href="https://melodymatrix.rocks/" target="_blank" rel="noopener noreferrer"&gt;MelodyMatrix&lt;/a&gt; by &lt;strong&gt;Frank Delporte&lt;/strong&gt; isn&amp;rsquo;t important for what it does (it&amp;rsquo;s a music-related tool) - it&amp;rsquo;s important as a case study for how to ship a JavaFX desktop app in 2026. The &lt;a href="https://foojay.io/today/melodymatrix-v1-0-0-released-shipping-a-javafx-app-with-jdeploy-github-actions-and-auto-update/"&gt;release walkthrough on Foojay covers the full pipeline&lt;/a&gt;: jdeploy for cross-platform native installers, GitHub Actions for the build, auto-update integration, the works.&lt;/em&gt;&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bsky.app/profile/dlemmermann.bsky.social/post/3ml6mkelzhk2g" target="_blank" rel="noopener noreferrer"&gt;&lt;strong&gt;Dirk Lemmermann&lt;/strong&gt; is asking&lt;/a&gt; to get JetBrains to &lt;a href="https://youtrack.jetbrains.com/issue/IDEA-353241/Allow-final-JavaFX-properties-to-generate-the-setter-method." target="_blank" rel="noopener noreferrer"&gt;fix a JavaFX-related issue&lt;/a&gt; in IntelliJ IDEA.&amp;quot;&lt;em&gt;It is so disruptive to my &amp;lsquo;flow&amp;rsquo;.&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;The JavaFX Links Of The Week of April got &lt;a href="https://foojay.io/today/javafx-links-of-april-2026/"&gt;bundled and published on Foojay.io&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Foojay Podcast #96: Local AWS Development Without LocalStack: Meet Floci, the GraalVM-Powered Alternative</title><link>https://foojay.io/today/foojay-podcast-96/</link><pubDate>Mon, 25 May 2026 06:36:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-96/</guid><description>&lt;p&gt;What if you could run 35 AWS services locally in under 25 milliseconds, using just 13 megabytes of memory, with a single Docker command and no cloud bill? That&amp;rsquo;s exactly what Floci does.&lt;/p&gt;&#10;&lt;p&gt;In this episode, Frank Delporte talks with Hector Ventura, the creator of Floci, a free and open-source cloud emulator built with Quarkus and GraalVM native compilation. Hector walks us through why he built it when LocalStack dropped its open-source community edition, how AI tooling helped him accelerate development of new service integrations, the challenges of keeping GraalVM happy with third-party libraries, and the road ahead for Azure and GCP support.&lt;/p&gt;</description></item><item><title>All Azul Zulu Container Images Explained: CA, SA, and Chainguard</title><link>https://foojay.io/today/all-azul-zulu-container-images-explained-ca-sa-and-chainguard/</link><pubDate>Wed, 20 May 2026 09:56:00 +0000</pubDate><guid>https://foojay.io/today/all-azul-zulu-container-images-explained-ca-sa-and-chainguard/</guid><description>&lt;p&gt;&lt;em&gt;Previously in this series:&lt;/em&gt;&lt;/p&gt;&#10;&lt;ul&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;/ul&gt;&#10;&lt;p&gt;The launch of &lt;a href="https://hub.docker.com/_/azul-zulu" target="_blank" rel="noopener noreferrer"&gt;Azul Zulu as Docker Official Images&lt;/a&gt; was a milestone, but it&amp;rsquo;s just one of several ways to get Azul Zulu Builds of OpenJDK in a container. Depending on whether you&amp;rsquo;re evaluating Azul Zulu, running it in production under a support contract, or operating in a high-security environment, the right image source will vary. In this post, I&amp;rsquo;ll show you all the possibilities.&#10;&lt;img src="https://foojay.io/today/all-azul-zulu-container-images-explained-ca-sa-and-chainguard/azul-zulu-ca-sa-chainguard-1024x576.avif" alt="" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>Debugging BentoFX in MelodyMatrix with Matt Coley, Scenic View, and an Honest Look at AI-Generated Code</title><link>https://foojay.io/today/debugging-bentofx-in-melodymatrix-with-matt-coley-scenic-view-and-an-honest-look-at-ai-generated-code/</link><pubDate>Fri, 15 May 2026 10:02:40 +0000</pubDate><guid>https://foojay.io/today/debugging-bentofx-in-melodymatrix-with-matt-coley-scenic-view-and-an-honest-look-at-ai-generated-code/</guid><description>&lt;p&gt;There are bugs you can solve by yourself, and bugs where you just need to sit down with someone who knows the internals. This video is in the second category. &lt;a href="https://melodymatrix.rocks/" target="_blank" rel="noopener noreferrer"&gt;MelodyMatrix&lt;/a&gt; uses &lt;a href="https://github.com/Col-E/BentoFX" target="_blank" rel="noopener noreferrer"&gt;BentoFX&lt;/a&gt; for its dockable panel layout. Branches, leaves, tabs on the side, content panels that open and close. It works well until something fights the layout. But I had some visual problems I could not explain, some code that felt more complicated than it should be, and no good explanation for why.&lt;/p&gt;</description></item><item><title>Testing Lottie4J JavaFX Animations in GitHub Actions Without a Display: JavaFX 26 Headless to the Rescue</title><link>https://foojay.io/today/testing-lottie4j-javafx-animations-in-github-actions-with-javafx-26-headless/</link><pubDate>Wed, 13 May 2026 07:35:26 +0000</pubDate><guid>https://foojay.io/today/testing-lottie4j-javafx-animations-in-github-actions-with-javafx-26-headless/</guid><description>&lt;p&gt;When I released &lt;a href="https://lottie4j.com/releases/#2026-03-10-110" target="_blank" rel="noopener noreferrer"&gt;Lottie4J 1.1.0&lt;/a&gt;, I mentioned something a bit embarrassing in the release notes and &lt;a href="https://webtechie.be/post/2026-03-10-new-release-of-lottie4j/" target="_blank" rel="noopener noreferrer"&gt;this blog post&lt;/a&gt;: there was a new unit test to compare the JavaFX player output against a JavaScript reference player, but it &amp;ldquo;&lt;em&gt;can not run on CI, because it requires a display output&lt;/em&gt;.&amp;rdquo; A TODO. A known limitation. One of those notes you write hoping future-you will figure it out.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://gluonhq.com/javafx-26-is-now-available/" target="_blank" rel="noopener noreferrer"&gt;JavaFX 26 was released on March 17, 2026&lt;/a&gt; and includes a new headless platform, allowing me to get the test running on GitHub Actions without a display.&lt;/p&gt;</description></item><item><title>Foojay Podcast #95: Is Your Java App Actually Secure, Or Does It Just Look That Way?</title><link>https://foojay.io/today/foojay-podcast-95/</link><pubDate>Mon, 11 May 2026 09:57:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-95/</guid><description>&lt;p&gt;Is your Java application actually secure, or does it just look that way? In this episode of the Foojay Podcast, Frank is joined by Steve Poole and David Welch, both from &lt;a href="https://www.herodevs.com/" target="_blank" rel="noopener noreferrer"&gt;HeroDevs&lt;/a&gt;, to dig deep into the state of Java security in 2025 and beyond.&lt;/p&gt;&#10;&lt;p&gt;Steve introduces the concept of zombie dependencies: end-of-life libraries that appear safely dormant but are quietly accumulating vulnerabilities waiting to bite you. David, a co-chair of the CVE Automation Working Group, explains what a CVE actually is, how the identification and disclosure process works in practice, and why AI tools like Mythos are dramatically accelerating the pace at which new vulnerabilities are found — on both sides of the wall.&lt;/p&gt;</description></item><item><title>Using the Azul Zulu Docker Official Images: From Simple Pull to Lean Container</title><link>https://foojay.io/today/using-the-azul-zulu-docker-official-images-from-simple-pull-to-lean-container/</link><pubDate>Fri, 08 May 2026 09:05:22 +0000</pubDate><guid>https://foojay.io/today/using-the-azul-zulu-docker-official-images-from-simple-pull-to-lean-container/</guid><description>&lt;p&gt;&lt;em&gt;Previously in this series:&lt;/em&gt;&lt;/p&gt;&#10;&lt;ul&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;/ul&gt;&#10;&lt;p&gt;&lt;a href="https://hub.docker.com/_/azul-zulu" target="_blank" rel="noopener noreferrer"&gt;Azul Zulu is now a Docker Official Image&lt;/a&gt;, so getting a trusted, secure Java base image is now just a &lt;code&gt;FROM azul-zulu&lt;/code&gt; line in your Dockerfile. But pulling the right image is just the beginning. This post shows you how to use these images in practice, and how a few extra steps can seriously cut the size of what you ship.&#10;&lt;img src="https://foojay.io/today/using-the-azul-zulu-docker-official-images-from-simple-pull-to-lean-container/azul-docker-official-1024x576.avif" alt="" loading="lazy" decoding="async"&gt;&lt;/p&gt;</description></item><item><title>Foojay Podcast #94: More Than a Blog: How Foojay Connects, Sustains, and Evolves the Java Community</title><link>https://foojay.io/today/foojay-podcast-94/</link><pubDate>Mon, 04 May 2026 06:26:00 +0000</pubDate><guid>https://foojay.io/today/foojay-podcast-94/</guid><description>&lt;p&gt;Foojay.io, the website for the Friends Of OpenJDK, is turning six years old. To celebrate, Frank Delporte headed to JCON in Cologne, Germany, and sat down with twelve members of the Java community to talk about what Foojay means to them, what they learn from each other, and how the community is evolving.&lt;/p&gt;&#10;&lt;p&gt;This episode covers a lot of ground. Sharat Chandar reflects on 25 years in the Java community and why the people are what keep the language alive. Markus Westergren and Iryna Dohndorf both focus on a theme that comes up again and again: developer sustainability. Not just green software, but how you stay healthy, grounded, and relevant when AI is changing everything around you. Markus and his wife researched how developers are reacting to AI, from ignoring it completely to transforming everything they do. Iryna talks about building resilience and robustness as skills, not afterthoughts.&lt;/p&gt;</description></item></channel></rss>