<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Geert Bevin on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/geert-bevin/</link><description>Articles written by Geert Bevin on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 24 Jun 2024 18:23:33 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/geert-bevin/index.xml" rel="self" type="application/rss+xml"/><item><title>Foojay Podcast #54: Music and MIDI with Java and Kotlin</title><link>https://foojayio.github.io/website/today/foojay-podcast-54/</link><pubDate>Mon, 24 Jun 2024 18:23:33 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-54/</guid><description>&lt;p&gt;MIDI is a universal standard for communicating between musical instruments and computers.&lt;/p&gt;
&lt;p&gt;Within OpenJDK, there is a whole Java package dedicated to MIDI communication and data handling. Is it up to date? Are there better approaches now? And what can we do with music, Java, and Kotlin?&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s find out&amp;hellip;&lt;/p&gt;
&lt;h2 id="h2-0-video"&gt;Video&lt;/h2&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
			&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/tHKZA9yqIVM?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;
		&lt;/div&gt;

&lt;h2 id="h2-1-podcast-apps"&gt;Podcast Apps&lt;/h2&gt;
&lt;p&gt;You can listen and subscribe to the Foojay Podcast on:&lt;/p&gt;</description></item><item><title>Introducing Bld: A New Pure Java Build System</title><link>https://foojayio.github.io/website/today/introducing-bld-a-new-pure-java-build-system/</link><pubDate>Mon, 10 Apr 2023 20:12:47 +0000</pubDate><guid>https://foojayio.github.io/website/today/introducing-bld-a-new-pure-java-build-system/</guid><description>&lt;p&gt;&lt;a href="https://rife2.com/bld" target="_blank" rel="noopener noreferrer"&gt;RIFE2&amp;rsquo;s &lt;code&gt;bld&lt;/code&gt;&lt;/a&gt;
 is a new build system that allows you to write your build logic in pure Java.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;bld&lt;/code&gt; was initially created for RIFE2 web applications, but has already moved outside of that narrow focus and is now used for non-web projects also, like the &lt;a href="https://rife2.com" target="_blank" rel="noopener noreferrer"&gt;RIFE2 framework&lt;/a&gt;
 itself and our &lt;a href="https://github.com/gbevin/urlencoder" target="_blank" rel="noopener noreferrer"&gt;URL Encoder for Java library&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;We created &lt;code&gt;bld&lt;/code&gt; because we&amp;rsquo;re not really interested in build tools. We use them because we have to, but we&amp;rsquo;d rather just get on with coding the real stuff.&lt;/p&gt;</description></item><item><title>Web App Startup in 3ms with RIFE2 and GraalVM</title><link>https://foojayio.github.io/website/today/web-app-startup-in-3ms-with-rife2-and-graalvm/</link><pubDate>Tue, 21 Feb 2023 09:12:55 +0000</pubDate><guid>https://foojayio.github.io/website/today/web-app-startup-in-3ms-with-rife2-and-graalvm/</guid><description>&lt;p&gt;&lt;a href="https://rife2.com" target="_blank" rel="noopener noreferrer"&gt;RIFE2&lt;/a&gt;
 applications already launch quickly with a regular JVM thanks merely calling Java methods, lambdas and doing object instantiations at startup. There are no annotations to scan for, nor any declarations or config files to parse and resolve.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://github.com/gbevin/rife2/releases/tag/1.3.0" target="_blank" rel="noopener noreferrer"&gt;RIFE2 v1.3.0 release&lt;/a&gt;
 introduced experimental support for GraalVM Ahead-Of-Time compilation with native-image, reducing the startup time of the bootstrap project from 177ms to an incredible 3ms.&lt;/p&gt;
&lt;h2 id="h2-0-try-it-out-yourself"&gt;Try it out yourself&lt;/h2&gt;
&lt;p&gt;In order to try this out, you can download the latest &lt;a href="https://www.graalvm.org/downloads/" target="_blank" rel="noopener noreferrer"&gt;GraalVM&lt;/a&gt;
 JDK 19 distribution, and follow the steps to install &lt;a href="https://www.graalvm.org/dev/reference-manual/native-image/" target="_blank" rel="noopener noreferrer"&gt;native-image&lt;/a&gt;
 on your machine.&lt;/p&gt;</description></item><item><title>Getting Started with RIFE2 Java Web Framework v1.0.0</title><link>https://foojayio.github.io/website/today/getting-started-with-rife2-java-web-framework-v1-0-0/</link><pubDate>Tue, 07 Feb 2023 07:44:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/getting-started-with-rife2-java-web-framework-v1-0-0/</guid><description>&lt;p&gt;RIFE2 is a very recently released and completely re-imagined version of my RIFE framework from 10 years ago.&lt;/p&gt;
&lt;p&gt;You can find all the details on the &lt;a href="https://rife2.com" title="project website" target="_blank" rel="noopener noreferrer"&gt;project website&lt;/a&gt;
 and on &lt;a href="https://github.com/gbevin/rife2" title="GitHub" target="_blank" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id="h2-0-what-is-rife2"&gt;What is RIFE2?&lt;/h2&gt;
&lt;p&gt;RIFE2 provides an opinionated full stack web framework, without external dependencies, in a 2MB jar. It is designed as a whole to make the creation of dynamic web applications and REST web services very fast while preserving maintainability and leveraging the strengths of the Java platform. You can still pull in other Java libraries and frameworks, of course, however, the layers of RIFE2&amp;rsquo;s full stack have knowledge about each-other, which provides many convenient features and shortcuts.&lt;/p&gt;</description></item></channel></rss>