Introducing the OpenJDK “Coordinated Restore at Checkpoint” Project

Dp you want to dramatically decrease JVM startup time, from hundreds of seconds to tenths of milliseconds? Find out about Java on CRaC. The post Introducing the OpenJDK “Coordinated Restore at Checkpoint” Project appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Java Panama Polyglot (Swift) Part 2

Hello and welcome back to the Java Panama Polyglot series where we will be presenting quick tutorials or recipes on how to access native libraries written in other languages.  In Part 1 you got a chance to learn about how to use ... The post Java Panama Polyglot (Swift) Part 2 ap … | Continue reading


@foojay.io | 2 years ago

Top 10 Java Language Features

Let's explore ten Java programming features used frequently by developers in their day-to-day programming jobs. The post Top 10 Java Language Features appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to Create APIs with the Java 18 jwebserver Ready for Docker 

When simple web content or responses are required, Java 18 reduces the need to search for more complicated solutions like Jetty and Netty. The post How to Create APIs with the Java 18 jwebserver Ready for Docker  appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Logging Best Practices: MDC, Ingestion, and Scale

Where should you add logs in a method? Should you log in this method? If so what should you include in the log? How to phrase the message? The post Logging Best Practices: MDC, Ingestion, and Scale appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Migrating from Java EE to Jakarta EE with IntelliJ IDEA

In this post we're going to migrate some sample code from the `javax` namespace to `jakarta` using IntelliJ IDEA's migration tool. The post Migrating from Java EE to Jakarta EE with IntelliJ IDEA appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Quest to the OS: Java Native Memory

Let’s embark on an epic journey to the wonderland of java native memory to the level of OS while investing in a non-trivial memory issue. The post Quest to the OS: Java Native Memory appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Spring4Shell: Zero-Day RCE in Spring Framework Explained

On March 30, 2022, a critical remote code execution (RCE) vulnerability was found in the Spring Framework. More specifically, it is part of the spring-beans package, a transitive dependency in both spring-webmvc and spring-webflux. This vulnerability is another example of why sec … | Continue reading


@foojay.io | 2 years ago

Java Panama Polyglot (C++) Part 1

Java Panama Polyglot series: quick tutorials or recipes on how to access native libraries written in other languages! The post Java Panama Polyglot (C++) Part 1 appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Examining the Switch Statement and the Factory Pattern in Three JVM Languages

Let's examine a program selection control mechanism, for a value, expression or variable type to influence program flow execution, for Switch. The post Examining the Switch Statement and the Factory Pattern in Three JVM Languages appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Three Mistakes Junior Software Developers Make Preventing Getting Hired On Amazing Projects

From experience, I have seen three big mistakes every junior software developer makes that could easily be solved. The post Three Mistakes Junior Software Developers Make Preventing Getting Hired On Amazing Projects appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

How to Style a Vaadin Application

Learn the basics of styling a Vaadin application using Cascading Style Sheets (CSS). The guide covers the basics of creating a custom theme, how to override Lumo values, and how to selectively style views and components. The post How to Style a Vaadin Application appeared first o … | Continue reading


@foojay.io | 2 years ago

Debugging JAXB Production Issues

Java Architecture for XML Binding (AKA JAXB API) is a popular API for marshalling XML data. It's a framework for mapping between XML documents and Java POJOs (Plain Old Java Objects, AKA regular Java classes) almost seamlessly. The API is ... The post Debugging JAXB Production Is … | Continue reading


@foojay.io | 2 years ago

Handling Null: Optional and Nullable Types

Java is infamous for its NullPointerException: calling a method or accessing an attribute of an object that has not been initialized. The post Handling Null: Optional and Nullable Types appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Hardware Acceleration For Java? TornadoVM Can Do It!

In this article, learn about TornadoVM, hardware acceleration, and get a thorough overview of the TornadoVM software architecture. The post Hardware Acceleration For Java? TornadoVM Can Do It! appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Spring Remote Code Execution Vulnerability

I'd like to start by saying that I'm not a security expert. I also won't link to the exploit. This is a very fresh take on a new vulnerability but there's already confirmation from Sonatype. The current exploit seems to ... The post Spring Remote Code Execution Vulnerability appe … | Continue reading


@foojay.io | 2 years ago

Quick Fire Java: Java After Log4j

Watch a 10 minute discussion on Log4j, security processes and prioritization, and how Payara dealt with the vulnerability. The post Quick Fire Java: Java After Log4j appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Observability for JVM Frameworks with Grafana in Java and Kotlin

Learn about observability configurations and libraries required over a range of frameworks using two JVM languages, namely Java and Kotlin.  The post Observability for JVM Frameworks with Grafana in Java and Kotlin appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Increasing Event Streaming with Kafka and Azul

In this article you will learn how to switch between two different Java runtime environments to run an Apache Kafka instance. The post Increasing Event Streaming with Kafka and Azul appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Debugging Java Equals & Hashcode Performance in Production

Hashcode and equals are at the crux of many hard to nail down Java performance issues. Here's how to track these in production! The post Debugging Java Equals & Hashcode Performance in Production appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

APISIX: An API Gateway the Apache Way

Starting with Apache APISIX as your API Gateway is easy as pie. Use Docker, with the APISIX and etcd images, and off you go. The post APISIX: An API Gateway the Apache Way appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Blink a LED on Raspberry Pi with Vaadin

Thanks to Vaadin, you can get a fully running application with a few clicks. And Adding GPIO-interaction is easy with the Pi4J library. The post Blink a LED on Raspberry Pi with Vaadin appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

5 Things You Probably Didn’t Know About Java Concurrency

Even while threads are helpful, they are dreadful to many developers. Here are five essential threading concepts for Java developers! The post 5 Things You Probably Didn’t Know About Java Concurrency appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Java Security: Log4J, the SecurityManager, and Funding

A demonstration of log4j exploits, which defenses people tried, and which worked. A look at open source funding models, subscriptions, and bug bounty programs to see why it's sometimes hard to donate. The post Java Security: Log4J, the SecurityManager, and Funding appeared first … | Continue reading


@foojay.io | 2 years ago

Debugging Race Conditions in Production

Debugging race conditions is hard, unfortunately production environments are especially problematic for these kinds of problems! The post Debugging Race Conditions in Production appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

What’s New and Exciting in Java 18?

Time runs forward without compromise! The six month release period is over and, similar to people expecting spring and nice weather, the Java community is excited about the next OpenJDK release, this time holding the number 18. Yes, Java 18 ... The post What’s New and Exciting in … | Continue reading


@foojay.io | 2 years ago

Error Handling in Java and Across Different Languages

In this post, I'd like to describe how a couple of popular languages cope with errors. Get started here for an overview of errors everywhere! The post Error Handling in Java and Across Different Languages appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

All about Generics: Part 1

Introduction of Generics Generics are meant to be used to parameterize types. A piece of code can be written generically enough so that we can fit a variety of types in it.  Being a strongly type-safe language, java requires to ... The post All about Generics: Part 1 appeared fir … | Continue reading


@foojay.io | 2 years ago

Reaper 3.0 for Apache Cassandra is available

The K8ssandra team is pleased to announce the release of Reaper 3.1. Let’s dive into the features and improvements that 3.0 recently introduced (along with some notable removals) and how the newest update to 3.1 builds on that. JDK11 support Starting with 3.1.0, ... The post Reap … | Continue reading


@foojay.io | 2 years ago

Security Warning: Your Java Attack Surface Just Got Bigger

Learn about common threats, vulnerabilities, and misconfiguration including the recently disclosed issues in Log4j. The post Security Warning: Your Java Attack Surface Just Got Bigger appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

The Basics Of Breakpoints You Might Not Know

In episodes 4 and 5 of “140 Second Ducklings”, I got deeper into the more advanced underpinnings of breakpoints. There’s still a lot more to learn to move forward, but even at this stage it’s surprising how many things are ... The post The Basics Of Breakpoints You Might Not Know … | Continue reading


@foojay.io | 2 years ago

Interview with Tom Granot – Developer Observability, KoolKits and Reliability

In preparation for the upcoming Developer Observability Masterclass we’re hosting at Lightrun with Thoughtworks and RedMonk, I sat down for a brief interview with Tom Granot - the Director of Developer Relations at Lightrun. Tom will MC the event as ... The post Interview with To … | Continue reading


@foojay.io | 2 years ago

Visualization of the Message Flow between Business Functions with Vaadin and Neo4j

Analyzing and visualizing message flows between business functions was the goal of my current project. Learn about where Vaadin and Neo4J fit in! The post Visualization of the Message Flow between Business Functions with Vaadin and Neo4j appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

7 Reasons Why, After 26 Years, Java Still Makes Sense!

After many discussions with Java developers, combined with my personal experiences with the Java community and platform, here are the key reasons why Java developers love Java after all these years! The post 7 Reasons Why, After 26 Years, Java Still Makes Sense! appeared first on … | Continue reading


@foojay.io | 2 years ago

Lessons learned from previous projects

An exciting part of software development is what was unanimously considered good practice at one point in time can be more ambiguous years later. Or even plain wrong. However, you generally need to do it multiple times over time to ... The post Lessons learned from previous proje … | Continue reading


@foojay.io | 2 years ago

JDKMon 17.0.23 Released

JDKMon is a little tool written in JavaFX that tries to detect all OpenJDK distros installed while keeping track of updates for them. The post JDKMon 17.0.23 Released appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Have you upgraded to Cassandra 4.0?

If you’re a current Cassandra user, upgrading to the latest releases can be fairly simple and requires no downtime. The post Have you upgraded to Cassandra 4.0? appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Detecting, Investigating and Verifying Fixes for Security Incidents and Zero Day Issues Using Lightrun

Learn about major milestones in app security: finding the issue, evaluating a breach, proving it, and validating the fix! The post Detecting, Investigating and Verifying Fixes for Security Incidents and Zero Day Issues Using Lightrun appeared first on foojay. | Continue reading


@foojay.io | 2 years ago

Vaadin and jOOQ: Match Made in Heaven

Quickly learn how easy it is to create data-centric web applications with the combination of Vaadin and jOOQ! | Continue reading


@foojay.io | 2 years ago

Hilla 1.0: A new Frontend Framework for SpringBoot

Hilla enables type-safe communication between SpringBoot backends and TS frontend. Integrated tooling and components help you build apps fast! | Continue reading


@foojay.io | 2 years ago

Java Bytecode Simplified: Journey to the Wonderland (Part 1)

Today I will make an attempt to appreciate how unique the JVM is. So, let’s begin the journey to how Java works! | Continue reading


@foojay.io | 2 years ago

Alternatives to DTO

I used to believe (and still do) that DTOs should be a thing of the past. Yet, it seems their usage is still widespread. | Continue reading


@foojay.io | 2 years ago

Journeys in Java, Level 3: Building an Empire of Microservices

Let’s continue our journey to learn microservice. Today we will learn to use a full-fledged MongoDB database running in a Docker container. | Continue reading


@foojay.io | 2 years ago

The Serverless Database You Really Want

This article argues how Apache Cassandra is the Serverless database that is open and free as in freedom in the modern cloud era. | Continue reading


@foojay.io | 2 years ago

Why Pulsar Beats Kafka for a Scalable, Distributed Data Architecture

This article argues why Apache Pulser is better than Apache Kafka when it comes to using cloud and microservices and how it fits the open-source mindset. | Continue reading


@foojay.io | 2 years ago

Debugging Tutorial: Java Return Value, IntelliJ Jump to Line and more

Posted two new videos in the "140 Second Duckling" series. They cover some basic and some little-known features of debuggers. Such as Marking | Continue reading


@foojay.io | 2 years ago

Java Thread Programming (Part 14)

What happens if the child-task creates more tasks and the parent-task waits for the child-tasks to finish in TheadPool in java. | Continue reading


@foojay.io | 2 years ago

Kover : Code Coverage plugin for Kotlin

Kover is a code coverage tool for Kotlin. It's still in incubator phase but I took it for a spin and it is already very useful as part of local or CI workflows! In this article I go through the setup and some of my favourite goodies of the tool. | Continue reading


@foojay.io | 2 years ago