Article
Content Negotiation with ControllerAdvice
and ExceptionHandler
s in Spring (Boot) (5 mins read).
How to perform content-negotiation in a Spring ExceptionHandler
, to serve the correct representation of error to a consumer, based on the Accept
header.
Tue, 18 Jan 2022 09:03 by Jamie Tanna
.
#blogumentation
#java
#spring-boot
#spring
#content-negotiation .
Article
Error Handling in (Spring) Servlet Filters (2 mins read).
How to return HTTP errors when a Java Servlet fails with Spring (Boot).
Mon, 17 Jan 2022 17:14 by Jamie Tanna
.
#blogumentation
#java
#spring-boot
#spring .
Article
Validating UUIDs with Regular Expressions in Java (1 mins read).
How to validate UUIDs and UUIDv4s in Java with a regex.
Fri, 14 Jan 2022 11:54 by Jamie Tanna
.
#blogumentation
#java
#uuid
#regex .
Article
Auditing with Spring Boot Actuator (9 mins read).
How to use Spring Boot Actuator for your audit and business event logging needs.
Thu, 13 Jan 2022 13:49 by Jamie Tanna
.
#blogumentation
#java
#spring-boot
#spring-security
#logs .
Article
Returning a Value, or a Default, From a Java Optional
(1 mins read).
How to replace imperative code with a functional style, when returning a default value for a Java Optional
.
Thu, 13 Jan 2022 09:53 by Jamie Tanna
.
#blogumentation
#java .
Article
Adding both an ObjectMapper
and a YAMLMapper
to Spring Boot (2 mins read).
How to have an ObjectMapper
and a YAMLMapper
coexisting in a Spring Boot project's bean dependencies.
Mon, 10 Jan 2022 17:35 by Jamie Tanna
.
#blogumentation
#java
#jackson
#spring-boot .
Article
Testing Data Serialisation/Deserialization in Java (with Gson) (3 mins read).
How to validate your JSON types correctly serialise/deserialise when using the Gson library.
Fri, 07 Jan 2022 09:21 by Jamie Tanna
.
#java
#testing
#gson
#blogumentation .
Article
Improving Life-Work Balance on GitHub using per-Organisation Notification Settings (2 mins read).
How to set up per-organisation notification settings so your personal email doesn't get work-related notifications.
Thu, 06 Jan 2022 16:32 by Jamie Tanna
.
#blogumentation
#github
#life-work-balance .
Article
Publishing to Maven Repositories with GitLab CI, with Signed Artefacts (4 mins read).
How to publish signed artefacts from a Gradle build to Maven repositories (such as Maven Central) when using GitLab CI.
Tue, 04 Jan 2022 13:21 by Jamie Tanna
.
#blogumentation
#gradle
#java
#gitlab-ci
#gpg .
Article
Suppressing No pinentry
warnings with GPG (in Automated Builds) (1 mins read).
How to get avoid No pinentry
warnings when running GPG in automated build environments like CI/CD.
Tue, 04 Jan 2022 12:49 by Jamie Tanna
.
#blogumentation
#gpg .
Article
Gotcha: PicoContainer requires Zero-Argument Constructors (2 mins read).
A little gotcha around using PicoContainer (with Cucumber) where it may not be usable unless you have zero-arg constructors.
Thu, 30 Dec 2021 21:01 by Jamie Tanna
.
#blogumentation
#java
#cucumber
#picocontainer .
Article
Using Dagger for Dependency Injection with Cucumber Tests (4 mins read).
How and why to add Dagger for your Cucumber tests' dependency injection.
Thu, 30 Dec 2021 21:01 by Jamie Tanna
.
#blogumentation
#java
#cucumber
#dagger .
Article
Publishing a NPM Package to npmjs.com from GitLab CI (1 mins read).
How to publish an NPM package to the public NPM registry, using GitLab CI.
Thu, 23 Dec 2021 11:01 by Jamie Tanna
.
#blogumentation
#nodejs
#gitlab-ci .
Article
Test Driven Development for Your Spectral Rules, using Jest (7 mins read).
How to write unit tests for Spectral API linting, in a test-driven development fashion.
Wed, 22 Dec 2021 18:38 by Jamie Tanna
.
#blogumentation
#spectral-test-harness
#spectral
#api
#unit-testing
#testing
#javascript
#nodejs
#tdd .
Article
Autowiring your controllers automagically when using MockMVC and Spring Cloud Contract (2 mins read).
How to automagically set up your Spring controllers when using MockMVC with Spring Cloud Contract.
Tue, 21 Dec 2021 12:48 by Jamie Tanna
.
#blogumentation
#spring
#spring-boot
#spring-cloud-contract .
Article
Decompiling Java Class Files On the Command-Line (2 mins read).
How to use the Fernflower decompiler on the command-line to decompile compiled Java classes.
Mon, 20 Dec 2021 20:49 by Jamie Tanna
.
#blogumentation
#java .
Article
Validating a Spring (Boot) Response Matches JSON Schema with MockMVC (3 mins read).
How to perform JSON Schema validation for a Spring (Boot) service's response when testing using MockMVC.
Mon, 20 Dec 2021 14:43 by Jamie Tanna
.
#blogumentation
#spring
#spring-boot
#java
#json-schema .
Article
Retrieving All Dependencies Required by a JAR at Runtime (3 mins read).
How to handily retrieve the full runtime classpath required for a JAR file, using Gradle.
Thu, 16 Dec 2021 15:14 by Jamie Tanna
.
#blogumentation
#gradle
#java .
Article
Getting the Date from a Week Number in Java (1 mins read).
How to get the date from a week number and year in Java.
Mon, 13 Dec 2021 20:33 by Jamie Tanna
.
#blogumentation
#java .
Article
Debugging Chef Variables With Logs (3 mins read).
How you can use different means of logging to make operations with Chef cookbook a little easier.
Mon, 13 Dec 2021 20:01 by Jamie Tanna
.
#blogumentation
#chef .
Article
Getting the Battery Status of a Bluetooth Device on Linux (1 mins read).
How to use dbus-send
to retrieve the percentage of battery left on a Bluetooth device on Linux.
Fri, 10 Dec 2021 21:58 by Jamie Tanna
.
#blogumentation
#command-line
#bluetooth
#linux .
Article
Converting a Kitchen YAML to Chef Attributes (2 mins read).
How to convert attributes being set for your Chef Test Kitchen integration tests to an attributes.rb
format.
Wed, 08 Dec 2021 21:40 by Jamie Tanna
.
#blogumentation
#chef
#test-kitchen .
Article
Using systemd-tmpfiles to manage temporary files and directories (2 mins read).
How I'm using systemd-tmpfiles to manage a temporary working directory and automagically clean it out.
Wed, 08 Dec 2021 18:15 by Jamie Tanna
.
#blogumentation
#systemd
#linux .
Article
Extracting the Default Private / Secret Keys from OpenAM/Forgerock AM (2 mins read).
How to retrieve the contents of the private or secret keys from an OpenAM/Forgerock AM installation.
Tue, 07 Dec 2021 17:48 by Jamie Tanna
.
#blogumentation
#openam .
Article
Converting an Image to a Base64 data
URL with Node.JS (1 mins read).
How to convert an image to a data
URL using Node.JS on the command-line.
Mon, 06 Dec 2021 18:41 by Jamie Tanna
.
#blogumentation
#nodejs
#command-line .
Article
Appending Values to a Querystring with Ruby (1 mins read).
How to append a query parameter to a URL's querystring in Ruby.
Fri, 03 Dec 2021 14:15 by Jamie Tanna
.
#blogumentation
#ruby .
Article
Making Zoom Notifications/Windows Float on BSPWM (1 mins read).
How to get BSPWM to handle Zoom notification windows as floating windows, instead of tiles.
Thu, 02 Dec 2021 18:33 by Jamie Tanna
.
#blogumentation
#bspwm
#zoom .
Article
Automagically Assuming AWS Roles for EC2/ECS (1 mins read).
How to set up your AWS infrastructure to automagically assume IAM roles.
Thu, 02 Dec 2021 17:20 by Jamie Tanna
.
#blogumentation
#aws .
Article
Reducing Risk of Supply Chain Attacks with Reproducible Builds in Gradle (1 mins read).
How to enable Gradle's reproducible builds functionality to allow others to verify your released libraries don't contain uncommitted, malicious code.
Thu, 02 Dec 2021 17:05 by Jamie Tanna
.
#blogumentation
#java
#gradle
#security .
Article
Packaging Wiremock Stubs into a Standalone JAR (2 mins read).
How to use Gradle to package a standalone JAR for Wiremock, including any stubs needed.
Thu, 02 Dec 2021 11:11 by Jamie Tanna
.
#blogumentation
#java
#gradle
#wiremock .
Article
Testing Data Serialisation/Deserialization in Java (with Moshi) (3 mins read).
How to validate your JSON types correctly serialise/deserialise when using the Moshi library.
Wed, 01 Dec 2021 09:42 by Jamie Tanna
.
#java
#testing
#moshi
#blogumentation .
Article
Generate Plain Old Java Objects (POJOs) from JSON Schema Definitions with Gradle (3 mins read).
How to generate POJOs really quickly and easily, with no manual work, using the Gradle jsonschema2pojo Plugin.
Mon, 29 Nov 2021 09:23 by Jamie Tanna
.
#blogumentation
#gradle
#java
#json-schema .
Article
Generate Plain Old Java Objects (POJOs) from XML Schema Definitions with Gradle (1 mins read).
How to generate POJOs really quickly and easily, with no manual work, using the Gradle XJC Plugin.
Mon, 22 Nov 2021 17:35 by Jamie Tanna
.
#blogumentation
#gradle
#java
#xml .
Article
Determining the Version Of Libraries Packaged into the Java AWS Lambda Runtime (3 mins read).
How to determine what libraries, and their respective versions, are packaged into AWS Lambda.
Wed, 17 Nov 2021 17:21 by Jamie Tanna
.
#blogumentation
#java
#aws
#aws-lambda
#serverless .
Article
Generating Dynamic Identifiers with Thymeleaf (1 mins read).
How to generate a dynamic id
s for elements in Thymeleaf.
Tue, 16 Nov 2021 21:54 by Jamie Tanna
.
#blogumentation
#java
#thymeleaf .
Article
Controlling the Linux Backlight via the Command-Line (1 mins read).
How to manage your screen backlight on the command-line, without installing any tools.
Wed, 10 Nov 2021 19:15 by Jamie Tanna
.
#blogumentation
#command-line
#linux .
Article
Make Your RSS Feed Discoverable (1 mins read).
Why and how you should make it possible to automagically discover your feed(s).
Wed, 10 Nov 2021 19:06 by Jamie Tanna
.
#blogumentation
#rss
#feed .
Article
Running a Java WAR File on the Command-Line (2 mins read).
How to run a WAR file locally, using Jetty, without installing anything.
Mon, 08 Nov 2021 21:17 by Jamie Tanna
.
#blogumentation
#java
#war .
Article
Querying and Interacting with CSV Files More Easily with SQLite (1 mins read).
How to use sqlite3
to parse and query comma-separated value files.
Mon, 08 Nov 2021 10:29 by Jamie Tanna
.
#blogumentation
#csv
#sqlite .
Article
Creating More Descriptive and Fluent Assertion Helpers (4 mins read).
How to improve test readability, and developer experience, using assertion helpers.
Thu, 04 Nov 2021 19:26 by Jamie Tanna
.
#blogumentation
#testing
#java
#ruby
#rspec
#assertj .
Article
Using Middleman Redirects with a Custom, Non-HTML Content Type (2 mins read).
How to get Middleman's redirect
to work with files that are not HTML.
Thu, 28 Oct 2021 11:34 by Jamie Tanna
.
#blogumentation
#middleman .
Article
Using JitPack to Install Gradle Plugins from Git Sources (2 mins read).
How to use JitPack to use an unreleased Gradle plugin from a Git repo in your Gradle projects.
Wed, 27 Oct 2021 11:37 by Jamie Tanna
.
#blogumentation
#gradle
#java
#jitpack .
Article
Listing Which GitHub Pull Requests are in a Project (2 mins read).
How to list the PRs inside a Project on Github, for example, via a Ruby client.
Tue, 26 Oct 2021 09:20 by Jamie Tanna
.
#blogumentation
#github
#github-projects
#ruby .
Article
Updating a Secret in Kubernetes with the Java Client (3 mins read).
How to use the Kubernetes Java SDK to patch a secret through Kubernetes' secrets API.
Sat, 23 Oct 2021 19:23 by Jamie Tanna
.
#blogumentation
#kubernetes
#java .
Article
How to Undo a git push --force
(5 mins read).
How to recover from a force push with Git.
Sat, 23 Oct 2021 10:26 by Jamie Tanna
.
#blogumentation
#git .
Article
Debugging Middleman Code With Middleman's Logger (1 mins read).
How to diagnose issues in Middleman, using logging output.
Fri, 22 Oct 2021 08:55 by Jamie Tanna
.
#blogumentation
#middleman .
Article
Lightweight and Powerful Dependency Injection for JVM-based Applications with Dagger (7 mins read).
How and why you should be using Dagger for your dependency injection.
Tue, 19 Oct 2021 09:35 by Jamie Tanna
.
#blogumentation
#java
#aws-lambda
#dagger .
Article
Testing Data Serialisation/Deserialization in Java (with Jackson) (4 mins read).
How to validate your JSON types correctly serialise/deserialise.
Sat, 02 Oct 2021 22:00 by Jamie Tanna
.
#java
#testing
#jackson
#blogumentation .
Article
Setting up fluentd to Parse Nested JSON from Docker (2 mins read).
How to configure fluentd to parse the inner JSON from a log message as JSON, for use with structured logging.
Wed, 29 Sep 2021 18:29 by Jamie Tanna
.
#blogumentation
#fluentd
#logs
#docker
#kubernetes
#logz.io .
Article
Tips for Reducing Dependency Upgrade Toil with Renovate (5 mins read).
Some tips I've picked up while working with Renovate to keep my projects up-to-date.
Sun, 26 Sep 2021 18:21 by Jamie Tanna
.
#blogumentation
#renovate
#open-source
#security .