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 »

Automatically Creating Microservices Architecture Diagrams

In application development, microservices is an architectural style where larger applications are structured as a collection of smaller, independent, yet interconnected services. While this allows for highly maintainable and testable applications (as each service can be maintained independent of the larger application), the problem with this method is the inherent complexity of interactions between microservices. It can be difficult for …

Read More »

JUG PH: Java User Group PH Revitalization Report 2023

The Java User Group Philippines (JUG PH) held its revitalized meetup group last April 11 with the support of PinoyJUG by O & B Philippines, the Foojay.io community, and Azul. A three hour lunch and learn session was done with activities and prizes. How did the revitalization start? The revitalization started last January 2023 when Geertjan Wielenga connected the Java …

Read More »