Connecting to the Docker Host from a Child Container (2 mins read).

How to access ports from the host machine when running in a child container.
Connecting to the Docker Host from a Child Container (2 mins read).

How to access ports from the host machine when running in a child container.
Week Notes 20#32 (4 mins read).
What happened in the week of 2020-08-03?
How to Manually Trigger JSR380 Bean Validation on a Class (2 mins read).

How to perform validation on a class using JSR380, when not using a framework like Spring Boot.
Week Notes 20#31 (3 mins read).
What happened in the week of 2020-07-27?
Configure Gradle to Allow Listing All Subproject Dependencies (1 mins read).

How to set Gradle configuration globally to add a task to list all your dependencies.
Configure Gradle to Configure Tasks Globally with an initscript (1 mins read).

How to use Gradle's initialization scripts to globally configure tasks across all of your projects.
Week Notes 20#30 (3 mins read).
What happened in the week of 2020-07-20?
Week Notes 20#29 (3 mins read).
What happened in the week of 2020-07-13?
Capital One Promotion Celebrations (2 mins read).

Reflecting on the fun of today's promotion announcements session.
Week Notes 20#28 (3 mins read).
What happened in the week of 2020-07-06?
New Job Title, Who Dis? (1 mins read).

Moving into the world of being a Tech Lead.
Week Notes 20#27 (4 mins read).
What happened in the week of 2020-06-22?
Spring Boot: 'junit-vintage' failed to discover tests When Using Only JUnit5 Tests (2 mins read).

How to avoid the error 'junit-vintage' failed to discover tests when using Spring Boot.
Week Notes 20#26 (3 mins read).
What happened in the week of 2020-06-22?
Creating My Own Personal Micropub Client (3 mins read).

Announcing my own personal Micropub client to publish content that is very specific to my workflows.
Generating Random Bytes On the Command Line with OpenSSL (1 mins read).
How to generate random bytes as binary, base64 or hex, using openssl on the command-line.
Using @Mock as a Method Parameter with Mockito (2 mins read).

Using @Mock on method parameters to reduce manual mock setups with Mockito.
Converting a Byte Array to a String in Ruby (1 mins read).

How to convert an array of bytes to a String with Ruby.
Week Notes 20#25 (4 mins read).
What happened in the week of 2020-06-15?
Disabling the logging of Spring Security's Default Security Password (2 mins read).

How to disable Spring Boot logging the generated security password.
Changing my Static Site Search Setup (1 mins read).
Making changes to fix my search setup, and reduce download overhead for visitors.
Generating the Client Assertion JWT for private_key_jwt Authentication with Ruby (1 mins read).

A helper script to generate the client assertion required to authenticate to an Authorization Server that supports private_key_jwt, on the command-line with Ruby.
Verifying Signed JWTs (JWS) with Ruby (2 mins read).

Using the ruby-jwt library to verify a signed JSON Web Token (JWS) on the command-line.
Creating Signed JWTs (JWS) with Ruby (1 mins read).

Using the json-jwt and ruby-jwt libraries to sign a JSON Web Token on the command-line.
Issues with Ordering When Using Vault CLI's -no-print Argument (1 mins read).

A possible solution for no-print not taking effect with the vault CLI when using AWS EC2 auth.
Week Notes 20#24 (2 mins read).
What happened in the week of 2020-06-08?
Keeping Track of Certificate Expiry with a JWKS to iCalendar Converter (4 mins read).
Creating an iCalendar feed for certificate expiry details, given a URI for a JSON Web Key Set.
New CSS, Who Dis? (2 mins read).
Announcing my new site design, based on Hack.css.
Week Notes 20#23 (3 mins read).
What happened in the week of 2020-06-01?
Review: mycookiedough Delivery (2 mins read).

Reviewing our first mycookiedough delivery, and the corresponding sugar rush that came with it.
GitLab CI Shell Executor failing builds with ERROR: Job failed: exit status 1 (1 mins read).

How to work around ERROR: Job failed: exit status 1 errors with GitLab CI's shell executor.
GitLab CI Shell Executor Failing Builds With No Such Directory (1 mins read).

How to work around No Such Directory errors with GitLab CI's shell executor.
Deploying a Branch to Netlify on the Command-Line (1 mins read).

How to use Netlify's Node CLI to deploy a given branch to Netlify.
Generating JWK Thumbprints with Ruby (1 mins read).

How to generate JWK thumbprints with Ruby.
Generating JWK Thumbprints with Node.JS (1 mins read).

How to generate JWK thumbprints with Node.JS.
How are Open Banking Key Ids (kid) Generated? (1 mins read).
Sharing insight into how Open Banking has generated their kids for use with JWTs.
Week Notes 20#22 (4 mins read).
What happened in the week of 2020-05-24?
How to Run Java on the Command-Line to Attach a Debugger (1 mins read).

How to run java on the command-line, and make it possible to attach a debugger.
Extract a Public Cert from a Java Keystore/Truststore (1 mins read).

How to export the public certificate from a Java keystore.
Evicting Spring Cache on a Schedule (1 mins read).

How to evict Spring Cache's @Cacheable data on a schedule.
No default controller available With bluetoothctl (1 mins read).

One possible solution for the No default controller available error message with bluetoothctl.
Migrating to Netlify's Deployments from GitLab CI (3 mins read).

Moving to avoid flaky deployments, and trying to reduce deployment times.
How to avoid HttpMessageNotReadableException when using ContentCachingRequestWrapper with Java Servlet Filters (1 mins read).

How to avoid receiving Required request body is missing errors when using a ContentCachingRequestWrapper.
Reading a Servlet/Spring Request Body Multiple Times (2 mins read).

How to read the request body more than once using Java Servlet Filters.
Week Notes 20#21 (2 mins read).
What happened in the week of 2020-05-17?
Disabling @Valid Annotation in a Spring Integration Test (1 mins read).

How to disable @Valid validation in Spring Integration Tests.
Converting Output from Rest Assured to Curl Requests (3 mins read).

How to convert the log output from Rest Assured to a curl request.
Week Notes 20#20 (2 mins read).
What happened in the week of 2020-05-10?
Navigating through the Vim Changelist with Intellij (2 mins read).

How to use g; and g, using IntelliJ's IdeaVim plugin to cycle through changes in a file.
Running Spotless Automagically with Gradle (2 mins read).

How to set Gradle configuration globally to always run spotlessApply in your projects.