/ gilday / blog

Johnathan Gilday

Written by Johnathan Gilday. Red Bank, NJ, USA based software developer.

📧 Fight the Spammers

November 11, 2023

This is my playbook for fighting back against the spammers (probably in vain).

☕️ Reasons to Prefer Java's New I/O for Working With Files

January 16, 2023

When Java introduced the java.nio.file package for working with files (in version 1.7), Java did not deprecate the existing java.io.File type. Is there a reason to prefer one of these seemingly duplicative strategies for working with files? I argue there is.

☕️ Connecting Java's Streaming API for XML (StAX) with Streams

December 15, 2022

On one hand, Java developers love to work with streams of data using the `java.util.stream` package, because it is easy to apply transformations, filtering, and aggregation. On the other hand, the Streaming API for XML (StAX) makes reading XML streamwise easy, but there are no easy ways to filter, transform, and aggregate the data. How can a Java developer connect these two APIs to use the best of both?

🦉 Testing Across JDKs with Maven Toolchains

June 10, 2021

Maven users who want to test their Java projects against different JDKs often do so by re-running their Maven build with each such JDK. Maven's Toolchains plugin offers an alternative strategy for testing across JDKs.

🔒 XML External Entity Pitfalls With JAXB

September 16, 2020

I spent a few weeks in "Java XML Hell", and I learned that securely parsing untrusted XML in Java is more difficult than it seems. Contrast Security published my research to its Security Influencers blog, and OWASP accepted my change request to remove misleading guidance from its XXE Cheat Sheet.

🍎 Installing and Managing Java on macOS

September 07, 2020

Developers on macOS may feel more lost than usual when considering their options for installing Java. In my experience, using Homebrew to install Eclipse Temurin packages is the best general solution for installing Java on macOS.

🎉 Hello World!

August 20, 2020

Let me use my first blog post to explain why I am blogging, why now, and why I am hosting the blog myself.

© 2024, Johnathan Gilday