foojay

JavaFX Links of April 2023

JavaFX Core Gluon announced JavaFX update releases: 20.0.1 (latest release), 17.0.7 (latest LTS), and for Gluon LTS customers 11.0.19. In this video with Kevin Rushforth he talks about JavaFX 20 and beyond. Dirk Lemmermann tweeted some of the highlights like RichTextArea, ideas for future releases,… The Notebook demo is looking really nice to learn JavaFX in an easy way. Conferences …

Read More »

The Basis of Virtual Threads: Continuations

Virtual threads are lightweight implementations of java.lang.Thread and they promise to write highly scalable concurrent applications. This article turns the spotlight on the Continuations that are the basis of Virtual threads. Project Loom has been the focus of attention in the Java community since the day it was announced. Java developers were excited by Loom’s promise that, with virtual threads, …

Read More »

Java Developer vs. ChatGPT Part I: Writing a Spring Boot Microservice

We pit a seasoned Java developer against the all-knowing generative AI to find out once and for all: Can an AI generate a Java microservice end-to-end? There’s a lot of buzz around Generative AI tools for code generation. It’s no secret that the future of developer productivity goes alongside tools such as GitHub Copilot and OpenAI’s ChatGPT to enable us, developers, to produce code …

Read More »

Creating Scalable OpenAI GPT Applications in Java

One of the more notable aspects of ChatGPT is its engine, which not only powers the web-based chatbot but can also be integrated into your Java applications. Whether you prefer reading or watching, let’s review how to start using the OpenAI GPT engine in your Java projects in a scalable way, by sending prompts to the engine only when necessary: …

Read More »

Comparing Approaches to Durability in Low Latency Messaging Queues

A significant feature of Chronicle Queue Enterprise is support for TCP replication across multiple servers to ensure high availability of application infrastructure. I have generally held the view that replicating data to a secondary system is faster than sync-ing to disk, assuming the round trip network delay wasn’t high due to quality networks and co-located redundant servers. This is the …

Read More »

FEPCOS-J (1) – Description, Impressions of Usage, Current State

Abstract: FEPCOS-J has arisen in the context of my work in the field of robot sensor networks. It implements a Java-language extension that frees a Java developer from network programming and supports cross-system concurrency. This post gives you an impression of using FEPCOS-J based on a simple example. So far, FEPCOS-J is a prototype with 1629 lines of Java-code. I …

Read More »

Couldn’t We Just Use AsyncGetCallTrace In A Separate Thread?

I’m keenly interested in everything related to profiling on the JVM, especially if it is related to AsyncGetCallTrace, this tiny unofficial API that powers most profilers out there, heck, I’m even in the process of adding an improved version to the OpenJDK, AsyncGetStackTrace. During the discussions on the related JDK enhancement proposal and PRs fixing AsyncGetCallTrace bugs, one thing often …

Read More »

Relearning Java Thread Primitives

I’ve coded in Java since the first beta, even back then threads were at the top of my list of favorite features. Java was the first language to introduce thread support in the language itself, it was a controversial decision back then. In the past decade, every language raced to include async/await and even Java had some third-party support for …

Read More »

Foojay Podcast #20: Functional Programming, “The Good, the Bad, and the Ugly”

Functional programming… it seems you either love it or you hate it. But, like everything in software engineering, it is a trade-off. So for today, let’s focus on the good, the bad, and the ugly parts of functional programming! Guests Alejandro Serrano, Software Engineer at 47 Degrees, author of “Practical Haskell”, “The Book of Monads”, and “FP Ideas for the …

Read More »

Fearless Distroless

With the rise of Docker came a new focus for engineers: optimizing the build to reach the smallest image size possible. A couple of options are available. Multi-stage builds. A Dockerfile can consist of multiple steps, each having a different Docker base image. Each step can copy files from any of the previous build steps. Only the last one will …

Read More »