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 »

JUG Munich hosts the JCP Executive Committee meeting to 25th anniversary of JCP

The Java Community Process (JCP) was established in 1998 to formalize the development process of the Java platform, where all interested parties can openly participate in the development of specification standards. For many reasons, the JCP process [1] has decided to organize at least two face-to-face meetings of the Java Executive Committee per year. These meetings not only contain a …

Read More »

Free Foojay.io Tickets for JCON EUROPE, Cologne!

Welcome to JCON EUROPE (May 13 – 16, 2024) – a conference and unique platform to come together with Java developers from all over the world to network, learn from each other and develop your personal skills. At JCON EUROPE, we create room for complex topics to unfold. Literally, hosted in a multiplex movie theater, Java code, concepts and programming …

Read More »

Hello eBPF: Auto Layouting Structs (7)

Welcome back to my series on ebpf. In the last article, we learned how to use ring buffers with libbpf for efficient communication. This week, we’re looking into the memory layout and alignment of structs transferred between the kernel and user-land. Alignment is essential; it specifies how the compiler layouts the structs and variables and where to put the data …

Read More »