Hello eBPF: XDP-based Packet Filter (9)

Welcome back to my series on ebpf. In the last blog post, we learned how annotation processors can generate C code, simplifying writing eBPF applications. This week, we’ll use this work together with new support for XDP to create a simple package blocker for eBPF (GitHub): ./run_bpf.sh XDPPacketFilter twitter.com This blocks all incoming IPv4 packages from twitter.com. We see how …

Read More »

Building a Simple Home Assistant using Langchain4j and Raspberry Pi

Many believe that the future of IoT is AI. Building a Smart Home Assistant is less complex today than ever before. AI has become so accessible that you only need an internet connection and a computer to connect to an API. While training specialized deep learning models or using commercial APIs to harness machine learning for specific deterministic use cases …

Read More »

SQL Query Optimization: How to Identify and Optimize Slow SQL Queries

In this article, we want to share our experience with fellow developers and offer insights using real-life examples on how to identify and optimize slow SQL queries, especially when working with relational database management systems like PostgreSQL, MySQL, MSSQL, Oracle, etc. If you are a developer who doesn’t use database ORMs like Hibernate that much, you are no stranger to …

Read More »

Spring AI: How to Write GenAI Applications with Java

Generative AI (GenAI) is currently a hot topic in the tech world. It’s a subset of artificial intelligence that focuses on creating new content, such as text, images, or music. One popular type of GenAI component is the Large Language Model (LLM), which can generate human-like text based on a prompt. Retrieval-Augmented Generation (RAG) is a technique that enhances the …

Read More »

Duplicate Finder for Documentation

Anyone who worked on technical documentation in a big team is certainly aware of the content duplication issue. Even with the best tools and practices at hand, duplication is fundamentally difficult to overcome. As the project grows in size, duplicated content will start to occur. This is especially true for big projects including many similar products or features. Good: define …

Read More »

Is your Java application ready for the next generation of server CPUs?

If you only know about Arm CPU architecture from working on smartphones or Raspberry Pi devices, it might come as a surprise to you that there are also high-performance, cloud-scale Arm CPUs already on the Java market. The share of cloud and server workloads running on Arm is increasing every year. Back in 2011, Arm released the AArch64 instruction set, …

Read More »

Let’s Replace the synchronized Keyword

Let’s see in this article different ways to replace the synchronized keyword to make our code more virtual threads friendly. Lines of code of the different solutions discussed in this article Synchronized and pinning threads Since Java 21, we can enjoy virtual threads and have more than 1 million threads in Java.But it has a condition, the virtual thread shouldn’t …

Read More »

Why This JCON Europe Talk Is Unmissable (Part 2)

JCON Europe in Cologne is around the corner (and here are your free Foojay JCON tickets), May 13 to 16. Why should you go? Well, one reason is that the talks will be awesome. Here’s the start of a series of reasons why some of them are absolutely unmissable! Jakarta EE 11 – Performance and Developer Productivity – Ivar Grimstad Thursday, …

Read More »

Foojay Podcast #48: JUG Oberpfalz, JCON Conference, and JAVAPRO Magazine

Once a month, in the Foojay Podcast, we discuss the history of a Java User Group and the people behind it. In this episode, we are in Oberpfalz, Germany, for a particular reason; the organizers of the local JUG are the same people responsible for the JCON conference in Cologne in a few weeks. Let’s also learn more about this …

Read More »