Writing a Profiler in 240 Lines of Pure Java

How to develop a tiny Java profiler, that can output flame graphs, in just 240 lines of pure Java, making it easy for anyone to understand. The post Writing a Profiler in 240 Lines of Pure Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Competing for the Crown: A Friendly Debate on the Future of Java and Kotlin on Foojay.io Today

In this article, we look at a discussion on Foojay's Slack comparing Java and Kotlin, showing why developers should join the platform. The post Competing for the Crown: A Friendly Debate on the Future of Java and Kotlin on Foojay.io Today appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Chronicle Wire: Object Marshalling

About the efficiencies of using Chronicle Wire to encode small Strings into long primitives and how this improves serialisation performance. The post Chronicle Wire: Object Marshalling appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Getting Started with OpenAPI Generators: Tips & Tricks

Tips and tricks on how to get productive with creating OpenAPI generators. How to run and debug, create your own easily and more! The post Getting Started with OpenAPI Generators: Tips & Tricks appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Ingesting Time-Series Events from Kafka into QuestDB

Ingest streaming time-series data from Apache Kafka into QuestDB using ILP with the Kafka Sink Connector The post Ingesting Time-Series Events from Kafka into QuestDB appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Navigating the Challenges of Modern Software Development: An Exclusive Interview with Shai Almog

Discover the insights of Shai Almog, a Java expert and entrepreneur with over 20 years of experience, as he shares his journey. The post Navigating the Challenges of Modern Software Development: An Exclusive Interview with Shai Almog appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Using Bots to Keep Dependencies Updated

Did you know bots can automatically create pull requests to keep dependencies secure and up to date? The post Using Bots to Keep Dependencies Updated appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Foojay Podcast #17: Execute Java Code with TornadoVM on CPUs, GPUs, and FPGAs

TornadoVM is a programming and execution framework for offloading and running JVM applications on multi-core CPUs, GPUs, and FPGAs. The post Foojay Podcast #17: Execute Java Code with TornadoVM on CPUs, GPUs, and FPGAs appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Watch Area and Renderers

Stop digging through variables in the watch to find nuggets of gold, or rerunning the expression evaluation. Use entity renderers instead. The post Watch Area and Renderers appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Control your Arduino with Spring

Learn how to use Firmata4j to control an Arduino board from a Raspberry Pi board or directly from your computer. The post Control your Arduino with Spring appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

How to Build and Deploy a Real-time Cloud-based Logging System

Learn how to treat logs and traces as part of a scalable cloud storage repository that can be analysed with the techniques used for big data. The post How to Build and Deploy a Real-time Cloud-based Logging System appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

How to Create a Failover Client using the Hazelcast Viridian Serverless

Learn to update a Java client to automatically connect to a secondary, failover cluster if it cannot connect to its original, primary cluster. The post How to Create a Failover Client using the Hazelcast Viridian Serverless appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Mitigating Path Traversal Vulnerabilities in Java

Path traversal vulnerabilities are a serious threat to Java web applications, amongst the top security issues Snyk finds in Java code. The post Mitigating Path Traversal Vulnerabilities in Java appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Predicting Secure Java Projects on Maven Central

Next time you’re considering a new Java library, look for the Sonatype Safety Rating on Maven Central to aid in your decision making. The post Predicting Secure Java Projects on Maven Central appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Event-Driven Order Processing Program

Following the Hello World example, this article looks at an Order Processor with a New Order Single in and an Execution Report out. The post Event-Driven Order Processing Program appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

5 Great Reasons to use jOOQ

jOOQ makes SQL a "first-class" language in the JVM ecosystem by embedding it into Java, Kotlin, and Scala in an idiomatic way. The post 5 Great Reasons to use jOOQ appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Vaadin 24: Java 17, Jakarta EE 10, Servlet 6, Spring Boot 3

Vaadin 24 is a step forward with a new technology baseline that includes Java 17, Jakarta EE 10, Servlet 6.0, Spring 6.0, and Spring Boot 3. The post Vaadin 24: Java 17, Jakarta EE 10, Servlet 6, Spring Boot 3 appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Java on Visual Studio Code Update – February 2023

In this article, we will bring you new features related to JUnit 5 parallel testing as well as new filter widget for Spring Boot dashboard. The post Java on Visual Studio Code Update – February 2023 appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

It’s Java 20 Release Day! Here’s What’s New

In this article, we will take you on a tour through all JEPs that come with this release and give you a brief introduction of each one of them. The post It’s Java 20 Release Day! Here’s What’s New appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

From Assembler to Chat-GPT: Steve Poole on the Shifting Landscape of Programming

In this engaging interview with Steve Poole, a seasoned Java developer and DevOps practitioner, we delve into his career journey, valuable insights, and the evolution of technology. Poole shares his experiences, highlighting the importance of critical thinking, adapting to change … | Continue reading


@foojay.io | 1 year ago

Foojay Podcast #16: Welcome to Java 20!

What new features does Java 20 bring? And why should we use it? And what can we expect from the next LTS version, 21, in September? The post Foojay Podcast #16: Welcome to Java 20! appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

Book Review: “API Design Patterns”

This review is about API Design Patterns by JJ Geewax from Manning. Check it out and if you've read it too, what did you think? The post Book Review: “API Design Patterns” appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

How to Create SBOMs in Java with Maven and Gradle

Java is a compiled language, so you should create an SBOM whenever you build a release version of your application. Find out more here! The post How to Create SBOMs in Java with Maven and Gradle appeared first on foojay. | Continue reading


@foojay.io | 1 year ago

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