Blog Layout

Java: Functional Programming f(x) – Part1

Mathematics serves as the driving force behind significant advancements in computer science from my perspective. We deeply root the fundamental principles that we utilize in our daily programming tasks and application development in mathematical concepts. I am constantly intrigued by the opportunity to incorporate mathematical ideas into the programming languages I work with as a student of Mathematics. Many other …

Read More »

The High Availability Features of Microservices using Chronicle Services

In low-latency microservices, ensuring system resilience without compromising performance is vital. This article explores how Chronicle Services, a Java-based framework optimised for low-latency microservices, meets these critical requirements by integrating HA, performance, and data persistence. Stateful and Stateless Services A Chronicle Service application consists of a number of processing units known as Services, which interact with each other using events …

Read More »

Hello eBPF: Generating C Code (8)

Welcome back to my series on ebpf. In the last article, we learned how to auto-layout struct members and auto-generate BPFStructTypes for annotated Java records. We’re going to extend this work today. This is a rather short article, but the implementation and fixing all the bugs took far more time then expected. Generating Struct Definitions We saw in the last …

Read More »

Using my new Raspberry Pi to run an existing GitHub Action

Recently, I mentioned how I refactored the script that kept my GitHub profile up-to-date. Since Geecon Prague, I’m also a happy owner of a Raspberry Pi: Though the current setup works flawlessly – and is free, I wanted to experiment with self-hosted runners. Here are my findings. Context GitHub offers a large free usage of GitHub Actions: GitHub Actions usage …

Read More »

Debug Without Breakpoints

In a typical debugging scenario, you would set breakpoints to tell the debugger when to suspend your program. A breakpoint usually corresponds to the moment that marks the starting point of the further investigation. However, in some situations you aren’t certain about where to set a breakpoint. Other times, you might prefer to suspend the program at a particular time …

Read More »

Debugging Using JMX Revisited

The Need for Advanced Management Tools in Development Introduction to JMX (Java Management Extensions) Understanding MBeans Spring and Management Beans Tooling for JMX Management Getting Started with JMXTerm Leveraging JMX in Debugging and Management Exposing MBeans in Spring Boot Understanding Spring Boot JMX Support Expose an MBean in Spring Boot Example: Exposing a Simple Configuration MBean Final Word Debugging effectively …

Read More »

Smarter Logging in Spring Boot with AOP

Hey AOP fan, after explaining the basics of AOP in Part 1, we will dive deeper and demonstrate hands-on how to implement smart logging in Spring Boot using AOP. The complete example can be found on GitHub. The Problem with Logging Everywhere As software developers, we know the importance of logging . But scattering log statements everywhere comes with drawbacks: …

Read More »

Getting Started with bld

bld is an up-and-coming build tool for the Java ecosystem. This article guides you through getting set up to use it in your own projects. What is bld? bld is a build tool for the Java ecosystem. Why use bld? bld is a very simple build tool. Unlike its contemporaries Maven and Gradle, which concern themselves with abstract models of …

Read More »

Foojay Podcast #47: Artificial Intelligence and Machine Learning with Java

About one and a half years ago, ChatGPT was launched. The way we search for information and develop software has changed a lot since then as the use of Artificial Intelligence suddenly became a lot easier. What can we expect in the near future, and how can we program AI ourselves with Java? Let’s find out… Video Podcast (audio only) …

Read More »