Blog Layout

lntelliJ IDEA: Selectively Commit Changes to a File

Sometimes you’re making multiple changes to a file that you don’t want to commit together. For example, if you’re working on a new feature, but notice some other small things you want to fix. If these changes are in separate files, we can commit each file separately. But what if they’re in the same file? In IntelliJ IDEA (as of …

Read More »

Writing C Code in Java

The Foreign Function & Memory API (also called Project Panama) has come a long way since it started. You can find the latest version implemented in JDK 21 as a preview feature (use –enable-preview to enable it) which is specified by the JEP 454: By efficiently invoking foreign functions (i.e., code outside the JVM), and by safely accessing foreign memory …

Read More »

Benchmark JDBC connectors and Java 21 virtual threads

Why should Java and database developers care about Virtual Threads? Developers can write faster and more resource efficient applications without having to refactor synchronous code a.k.a. “imperative”) JDBC code into asynchronous (a.k.a “reactive”) code that is hard to create, debug and maintain. Writing scalable network code is always difficult. Synchronous APIs can’t be scaled beyond a certain point because they …

Read More »

Canary Releases with Apache APISIX

In a few words, the idea of canary releases is to deliver a new software version to only a fraction of the users, analyze the results, and decide whether to proceed further or not. If results are not aligned with expectations, roll back; if they are, increase the number of users exposed until all users benefit from the new version. …

Read More »

Foojay Podcast #37: J-Fall Report, Part 4 (final)

Check the previous Foojay Podcasts for the first three parts of our J-Fall report (part 1, part 2, and part 3). That one-day conference in the Netherlands in November was packed with amazing sessions. In this episode, you’ll get the remaining interviews we made that day! And as they say, last but not least, again, we have some fascinating insights …

Read More »

Book Review: The Software Engineer’s Guidebook

Gergely Orosz’s book, “The Software Engineer’s Guidebook,” takes readers on an enthralling exploration of the realm of software development, working in various companies, and startups. A software engineer in a startup or Big Tech company traces the journey in this book, starting from a beginner developer to a principal engineer. This book serves as a comprehensive guide, especially beneficial for …

Read More »

Integrate executable Java code in your blog posts, part 2: How to use dependencies

In a previous post, we explained how you can add executable Java code to your posts here on Foojay, by using JDoodle. In this post, you will learn how you can extend this with one ore more libraries. Define Dependencies To integrate Java code in your post or page that needs dependencies, you need to specify them in the initial …

Read More »

Profiling Maven Projects with my IntelliJ Profiler Plugin

Or: I just released version 0.0.11 with a cool new feature that I can’t wait to tell you about… According to the recent JetBrains survey, most people use Maven as their build system and build Spring Boot applications with Java. Yet my profiling plugin for IntelliJ only supports profiling pure Java run configurations. Configurations where the JVM gets passed the …

Read More »

FEPCOS-J (3) – Build native executables of Java-coded networked systems

FEPCOS-J prototypically enables Java developers to realize networked systems without low-level network programming and to automatically build native executables by means of GraalVM. This post introduces the concept and gives you an example by rebuilding the source code explained in my previous posts. Please help me to make FEPCOS-J a Free/Libre and Open-Source Software (FLOSS). Introduction FEPCOS-J [1] enables a …

Read More »

[Unit] Testing Supabase in Kotlin using Test Containers – PART 2

TL;DR : You can run a full Supabase instance inside Test Containers quite easily. See this repository. In my last article, I was listing a few attempts I had done at running tests against my Kotlin Supabase application. The way the Supabase-Kt library is built makes it hard to mock, and I ended up building a minimal Docker Compose setup …

Read More »