Foojay Podcast #22: When Profession and Fun Overlap

Let’s talk about programming for fun. Grab your Lego and robots, and let’s talk about STEM and STEAM! As a developer, we all get frustrated occasionally when a bug messes up our schedule, and we have to dive deep into the code to find a solution. But still, many of us keep coding in our free time as we love …

Read More »

A Dissection of Java JDBC to PostgreSQL Connections

Many Java applications use a database, and many use JDBC and PostgreSQL. The latency of database usage is often important, yet, what exactly happens at the database level is unknown. This article explains which options are available, what happens, and why. Most importantly, it includes a small Java class that can be used and modified to execute specific database tasks, …

Read More »

Analyzing Dependencies in IntelliJ IDEA

If you’re working on a real world project, you’re probably using external dependencies. You might need to analyze which dependencies your application uses. For example, you may want to find out how a particular version of a dependency ended up in your application. Let’s take a look at how IntelliJ IDEA can help you to analyze dependencies. Using the Dependency …

Read More »

Code Interoperability Mode for OpenCL Portability Across Various Programming Languages with TornadoVM

TornadoVM is a programming framework for accelerating Java applications on heterogeneous devices, like multi-core CPUs, GPUs and FPGAs. Java developers can use the TornadoVM API to prototype Java methods within their code bases for hardware acceleration. TornadoVM is hardware-agnostic, but the generated code (i.e., kernels) for acceleration can be executed only through the TornadoVM runtime. This blog outlines the key …

Read More »

Tuning Java Applications for Low Latency on Linux

Introduction I have lost count of the number of times I have been told that Java is not a suitable language in which to develop applications where performance is a major consideration. My first response is usually to ask for clarification on what is actually meant by “performance” as two of the most common measures – throughput and latency, sometimes …

Read More »

Unleashing the Power of Lightweight Concurrency: A Comprehensive Guide to Java Virtual Threads (Part 1)

Introduction Java Virtual Threads, also known as lightweight threads, is an exciting new feature introduced in Project Loom. Virtual threads aim to simplify concurrent programming in Java by providing an efficient and easy-to-use concurrency model. In this article, we’ll cover the basics of Java Virtual Threads, how they work, why they are beneficial for developers, and how they overcome the …

Read More »

Interview with Paul Kocian aka @Orango_Mango

Some time ago on Twitter, I discovered @Orango_Mango, who shared his progress in creating a 3D engine with JavaFX. The shared videos started with a Rubik’s cube in January ’23, over a basic tumbling car in February, to a full Minecraft-like world in April. Who is this @OrangoMango? And why did he take up the challenge to create a 3D …

Read More »

Spring Boot Debugging with Aspect-Oriented Programming (AOP)

Aspect-Oriented Programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. In simple terms, it helps you keep your code clean, modular, and easy to maintain. We can leverage AOP to debug Spring Boot applications more effectively and seamlessly. In this post, we will explore how to use AOP to debug a …

Read More »

Using Async-Profiler and Jattach Programmatically with AP-Loader

Using async-profiler and jattach can be quite a hassle. First, you have to download the proper archive from GitHub for your OS and architecture; then, you have to unpack it and place it somewhere. It gets worse if you want to embed it into your library, agent, or application. Library developers cannot just use maven dependency but have to create …

Read More »