Book review: “Practical Design Patterns for Java Developers”

Hone your software design skills by implementing popular design patterns in Java. The post Book review: “Practical Design Patterns for Java Developers” appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Validating Java Profiling APIs

AsyncGetCallTrace is the base of many profilers, but how can we test it automatically to make sure it's correct? I'll explore a layered approach. The post Validating Java Profiling APIs appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

The Speed Test: Comparing Map.of() and new HashMap() in Java

Discussion of the use of Map.of() and new HashMap() in Java, the difference between them, and the benefits of using Map.of(). The post The Speed Test: Comparing Map.of() and new HashMap() in Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Efficient Memory Mapping for Terabyte Sparse Files in Java

Mapping large areas of memory avoids having to know in advance how much memory we need or having to resize the memory mappings while in use. The post Efficient Memory Mapping for Terabyte Sparse Files in Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

How Gradle Works: Inside the Daemon

This is the second article of the series "How Gradle Works". In this article, we'll explain what happens inside the Gradle Daemon JVM. The post How Gradle Works: Inside the Daemon appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

From Law Degree to Java Champion: Geertjan Wielenga on the Success of Java and Navigating the Software Industry

In this interview with Geertjan Wielenga, a Java Champion and developer advocate at Azul Systems, we learn about his unconventional journey into the software industry, his involvement with Java and its community, and what has made Java so successful. Wielenga also shares his prou … | Continue reading


@foojay.io | 1 year ago

Getting Started with IntelliJ IDEA

Starting in a new team can be daunting. You have to learn All The Things, one of which is your IDE! So, how can you best learn IntelliJ IDEA? The post Getting Started with IntelliJ IDEA appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

DevOps for Developers: Introduction & Version Control

Improving our DevOps skills can help us become better developers, team mates, and managers. Learn DevOps principles and advanced git! The post DevOps for Developers: Introduction & Version Control appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

9 Outdated Ideas About Java

In this article, we want to look into some false assumptions and outdated ideas about Java based on early versions. The post 9 Outdated Ideas About Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Streaming Real-Time Data on the Hazelcast Viridian Serverless

In this tutorial, you’ll learn how to build real-time streaming applications with the Hazelcast Viridian Serverless using SQL. You’ll also learn how to build a materialized view from streaming data and contextual data in Hazelcast. Streaming data is data that ... The post Streami … | Continue reading


@foojay.io | 1 year ago

How to Best Use Java Records as DTOs in Spring Boot 3

Explore how to best use compact Java Records as Data Transfer Objects (DTOs) for database and API calls in Spring Boot 3 with Hibernate 6 as the persistence provider. The post How to Best Use Java Records as DTOs in Spring Boot 3 appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Authenticate with OpenID Connect and Apache APISIX

Externalizing your authentication process to a third party may be sensible, but you want to avoid binding your infrastructure to its proprietary process. The post Authenticate with OpenID Connect and Apache APISIX appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Exhaustive JUnit5 Testing with Combinations, Permutations and Products

Read this article and learn how to use JUnit5 in conjunction with combinations, permutations, and products. The post Exhaustive JUnit5 Testing with Combinations, Permutations and Products appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Using Bookmarks in IntelliJ IDEA

Learn everything about bookmarks in IntelliJ IDEA for 'saving' interesting locations in the code base, so we can easily go back to them later. The post Using Bookmarks in IntelliJ IDEA appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Making SBOMs, Threats, and Modelling Them a Piece of Cake!

The third article in a series on SBOMs, software supply chains, the government and you, introducing threat modelling and tools to help! The post Making SBOMs, Threats, and Modelling Them a Piece of Cake! appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Java, Friends, and Cold Weather: My Adventure at ConFoo Conference

I attended the ConFoo conference in Montreal for a day, gave two talks on Java, and met with old and new friends, and had a great experience. The post Java, Friends, and Cold Weather: My Adventure at ConFoo Conference appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Foojay Podcast #15: Japan JUG

Last month we were in the US, and this time we travel to the other side of the world as we spoke with the organizers of the Japan JUG! The post Foojay Podcast #15: Japan JUG appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Migrating Applications to TornadoVM v0.15 (Part 2)

In this article, we will spotlight all the TornadoVM configurations/operations that regard the execution on the hardware device. The post Migrating Applications to TornadoVM v0.15 (Part 2) appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Java Serialization Filtering: Prevent 0-day Security Vulnerabilities

Simple configuration that requires no code change can save you from hacks such as Log4Shell, & from vulnerabilities we don't know about yet! The post Java Serialization Filtering: Prevent 0-day Security Vulnerabilities appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Is it Time to go Back to the Monolith?

Modern modular monoliths (and Moduliths) are redefining the monolithic architecture. Pick the best of both worlds with the hybrid approach. The post Is it Time to go Back to the Monolith? appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Event Driven Hello World Program

Let's use an event-driven Hello World (a paradigm where the flow is determined by events) to step through behaviour-driven development, The post Event Driven Hello World Program appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Do You Trust Profilers? I Once Did Too.

Do you trust profilers? I once did too. Here I describe why you should take the results of profilers with a grain of salt. The post Do You Trust Profilers? I Once Did Too. appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

JavaFX Links of February 2023

A lot of game and 3D development, releases, interesting ongoing development, and so much more to read. Enjoy reading and clicking! The post JavaFX Links of February 2023 appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Make Your Security Policy Auditable

Learn how you can leverage OPA and Apache APISIX to move your authentication and authorization logic from the code to the infrastructure. The post Make Your Security Policy Auditable appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

The Right Feature at the Right Place

Discussion extrapoliating from per-user rate limiting showing how one can implement it in a library and an infrastructure component. The post The Right Feature at the Right Place appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

42 Practical Java Design Patterns: Builder and More

The aim of the article is to introduce my newly published book "Practical Design Pattern for Java Developers". The post 42 Practical Java Design Patterns: Builder and More appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

SBOMs and Software Composition Analysis

Let's learn all about software composition analysis, how they work and why it is important for developers to get started as soon as possible! The post SBOMs and Software Composition Analysis appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Journeys in Java, Level 9: Docker compose all the things

Learn how to successfully create an orchestrated microservices system with Docker Compose! The post Journeys in Java, Level 9: Docker compose all the things appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Porting an Existing JavaFX App to iOS

Sometimes there are JavaFX apps that I would also like to use on my iPhone but I wrote them for the desktop and it's always the question how to do that? The post Porting an Existing JavaFX App to iOS appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Should You Update Java or Upgrade and Which Version Should You Use?

Keeping your Java environment stable requires discerning which updates to install and then installing them appropriately. The post Should You Update Java or Upgrade and Which Version Should You Use? appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

The Evolution of APIs: From RESTful to Event-Driven

Transitioning from synchronous to event-driven APIs modernizes the enterprise and unlocks real-time events and information. The post The Evolution of APIs: From RESTful to Event-Driven appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Is There a Best OS to Develop a Java Application on?

One subject that often evokes a lot of debate is which is the best OS to develop a Java application on. This article gives my view on the issue. The post Is There a Best OS to Develop a Java Application on? appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Web App Startup in 3ms with RIFE2 and GraalVM

RIFE2 v1.3.0 has experimental support for GraalVM Ahead-Of-Time compilation with native-image, reducing the startup time of the bootstrap project from 177ms to an incredible 3ms. The post Web App Startup in 3ms with RIFE2 and GraalVM appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

An Introduction to Scoped Values in Java

The Scoped Values API allows us to store and share immutable data for a bounded lifetime and only the thread that wrote the data can read it. The post An Introduction to Scoped Values in Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Java Sealed Classes in Action: Building Robust and Secure Applications

Java sealed classes are a powerful feature that can help you create more robust and maintainable code by restricting the inheritance hierarchy of your classes and interfaces. The post Java Sealed Classes in Action: Building Robust and Secure Applications appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Foojay Podcast #14: Debugging Tools and Skills for Fun and Profit

Let's talk about debugging and observability. We work with debugging all the time, but how well do we know this common practice? The post Foojay Podcast #14: Debugging Tools and Skills for Fun and Profit appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

What are you Missing by Debugging in VS Code?

16 missing features in the VS code debugger that are available in IntelliJ. Are they worth switching your main IDE? Detailed lists and videos! The post What are you Missing by Debugging in VS Code? appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

A Quick Look At Faces (JSF) 4.0 In Jakarta EE 10

Learn why Jakarta Faces is a great choice especially as a Java developer when you need a UI framework for your application! The post A Quick Look At Faces (JSF) 4.0 In Jakarta EE 10 appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Still Time to Schedule Your Holiday for 2038

A new Y2K-bug seems to be approaching and we still have time to prevent it! Or you can already schedule a long holiday for the year 2038... The post Still Time to Schedule Your Holiday for 2038 appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Migrating Applications to TornadoVM v0.15 (Part 1)

TornadoVM 0.15 introduced changes at the API level with the aim of making the exposed operations more comprehensive to the programmers. The post Migrating Applications to TornadoVM v0.15 (Part 1) appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

How Behaviour Driven Development Works Well with Event Driven Architectures

How to use Behaviour Driven Development to establish the requirements from users, and Event Driven Architecture to automate testing! The post How Behaviour Driven Development Works Well with Event Driven Architectures appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

SBOMs: First Steps in a New Journey for Developers

Software bill of materials, anyone? A year ago, developers had not heard of the 'SBOM' acronym... and now SBOM visualiser called BOM Doctor. The post SBOMs: First Steps in a New Journey for Developers appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Null Safety: Kotlin vs. Java

Following on from FOSDEM discussions, let's expand on the problem of nullability and how it's solved in Kotlin and Java. The post Null Safety: Kotlin vs. Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

How to Get Started with the Hazelcast Viridian Serverless

The Hazelcast Serverless means that Hazelcast manages the cloud infrastructure for you. Each Viridian Serverless cluster is an independent deployment of Hazelcast Platform in a Kubernetes container. This design guarantees resource isolation, prevents resource stealing, and provid … | Continue reading


@foojay.io | 1 year ago

Package Checker: Find & Fix Vulnerabilities with IntelliJ IDEA Ultimate

In this article, we're going to take a look at the Package Checker plugin, that's bundled with IntelliJ IDEA Ultimate! The post Package Checker: Find & Fix Vulnerabilities with IntelliJ IDEA Ultimate appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Securing Admin Access to Apache APISIX

API Gateways are critical components in one's infrastructure. Here we list a couple of ways to secure your Apache APISIX admin access. The post Securing Admin Access to Apache APISIX appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Remote Debugging Dangers and Pitfalls

Debugging over the network using JDWP isn't hard. However, there are risks that aren't immediately intuitive and some subtle solutions! The post Remote Debugging Dangers and Pitfalls appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Journeys in Java, Level 8: Add MongoDB to Spring Cloud Config

Convert an existing MongoDB-connected service to use Spring Cloud Config for accessing database credentials, as with a Neo4j microservice. The post Journeys in Java, Level 8: Add MongoDB to Spring Cloud Config appeared first on foojay. | Continue reading


@foojay.io | 1 year ago