Inheriting the Environment Variables from the Jenkins Host in Docker (2 mins read).
How to pass environment variables from your Jenkins host to your Docker containers.
Inheriting the Environment Variables from the Jenkins Host in Docker (2 mins read).
How to pass environment variables from your Jenkins host to your Docker containers.
Tomcat May Log Cookies Out-of-the-Box (3 mins read).
Warning you about cookies being logged out-of-the-box, and how to resolve it.
Providing Custom Serialization for Map
Keys in Jackson (1 mins read).
How to configure Jackson to use a custom method to serialise keys for a Map
.
Toggling Your Bluetooth Connection using bluetoothctl
on the Command-Line (1 mins read).
How to script bluetoothctl
to toggle your connection to a Bluetooth device.
Extract a Private Key from a Java Keystore (1 mins read).
How to export an asymmetric PrivateKeyEntry
entry from a Java keystore.
Splitting an X509 PEM-Encoded Certificate Bundle into Multiple Files (1 mins read).
Splitting a certificate bundle into separate files using split
or awk
.
How to Use curl
to Send Requests to Domains Without Editing Your /etc/hosts
File (1 mins read).
Using curl
's --resolve
flag to perform custom lookup for hosts.
How to unzip/decompress a Java JAR file (1 mins read).
How we can use the unzip
command to decompress JAR files.
Triggering an AWS Lambda from the Command-Line (1 mins read).
How to invoke an AWS Lambda function from the Command-Line.
Skip Builds On Branch Indexing with Jenkins Multibranch Pipelines (2 mins read).
How to stop Jenkins unnecessarily kicking off builds on Multibranch pipelines when indexing the branches.
Generating HMAC Signatures on the Command Line with OpenSSL (1 mins read).
How to generate HMAC signatures for a given string, using openssl
.
Creating Signed JWTs (JWS) with Node.JS (1 mins read).
How to use the jsonwebtoken library to create a Signed JSON Web Token (JWS) with Node.JS.
Setting up Multiple redirect_uri
s on the Meetup.com API (2 mins read).
How to allow multiple redirect_uri
s on your Meetup.com (OAuth2) API consumer.
How to Extract a Twitter Profile URL (But Not Status URL) with a Regex (1 mins read).
A regular expression to match Twitter Profile URLs, but not Status URLs.
Converting a Ruby Hash to a String (1 mins read).
The ways that we can convert a Hash to a String with Ruby.
Generate Plain Old Java Objects (POJOs) from XML Schema Definitions with xjc
(4 mins read).
How to generate POJOs really quickly and easily, with no manual work, using the xjc
command.
Converting an x5c
from a JSON Web Key to a PEM with Ruby (1 mins read).
How to convert a JWK's x5c
to a PEM-formatted certificate with Ruby.
Technically my reply to this tweet is the latest thing on my blog (see the link at the end) but https://www.jvt.me/posts/2020/01/14/ruby-parse-unix-epoch/ is the last, super short #blogumentation blog post
One of my own #blogumentation articles saved me today from tearing my hair out, determining why some requests kept being rejected https://www.jvt.me/posts/2019/02/25/verify-signed-jwt-nodejs/ - that's why I do it!
Parsing a Unix Epoch With Bash/Ruby on the Command-Line (1 mins read).
How to convert a Unix Epoch to a human-readable date format.
Performing Mutual TLS Authentication with Rest Assured (via Apache HTTP Client) (3 mins read).
How to configure Rest Assured to perform Mutual TLS authentication against an API.
Gotcha: Running both JUnit4 and JUnit5 Together with Gradle (1 mins read).
How to make sure your JUnit4 and JUnit5 Gradle tests work within the same project.
Gotcha: Running both JUnit4 and JUnit5 Together with Maven (1 mins read).
How to make sure your JUnit4 and JUnit5 Maven tests work within the same project.
Pretty Printing XML on the Command-Line (1 mins read).
How to use xmllint
to pretty-print XML/HTML files.
Backporting/Replaying Changes using git format-patch
and git apply
/ git-am
(2 mins read).
Using git format-patch
and git apply
/git am
to apply a patch, if git cherry-pick
isn't available.
List What Files Changed in a Git Commit (1 mins read).
How to list what files changed in a given commit.
Using Chef to Delete Files that aren't in a List (2 mins read).
How to delete files in a directory that don't match a list.
Converting a JSON Web Key to a X.509 .pem
file (in Node.JS) (2 mins read).
Converting a JSON Web Key (JWK) to an X.509 PEM file, using the node-jose
library.
Configuring a Jenkins Multibranch Pipeline to Use an External Script with Job DSL (2 mins read).
How to set up a Multibranch Pipeline to use an external Git repo for running your Jenkins script.
ChefSpec Gotcha: Using render_file
When Deleting Files (2 mins read).
How to use render_file
with ChefSpec when you're deleting the file.
Setting up a directory for OpenSSL's SSL_CERT_DIR
(2 mins read).
How to configure a directory of trusted certificates for OpenSSL to trust.
Locking Your Machine Before Suspending Using systemd (2 mins read).
How to get systemd to automagically lock your machine before it suspends.
Parsing URL Querystrings with Node.JS (1 mins read).
How to easily parse a URL querystring with Node.JS.
Using the OpenSSL Command-Line to Verify an SSL/TLS Connection (2 mins read).
How to use the openssl
command-line to verify whether certs are valid.
Viewing Jenkins Jobs' Configuration as XML (1 mins read).
How to view the XML configuration for a given Jenkins job.
Trusting Self-Signed Certificates from Ruby (1 mins read).
How to configure Ruby to trust self-signed certificates.
Pretty Printing YAML with the Ruby Command-Line (1 mins read).
Using Ruby's YAML
library to pretty-print YAML files from the command-line.
Piping Data When Not Running a Command with sudo
(1 mins read).
How to (more) safely pipe stdin
to an elevated command with sudo tee
.
Minifying JSON with Python (1 mins read).
How to take a pretty-printed JSON string and replace it with a minifed JSON string using Python.
Minifying JSON with Ruby (1 mins read).
How to take a pretty-printed JSON string and replace it with a minifed JSON string using Ruby.
Only Adding Changes for Tracked Files With Git (1 mins read).
How to only add files that have changed with git add -u
.
Creating a Global .gitignore
(1 mins read).
How to have Git have a list of files to globally ignore, without configuring anything in your ~/.gitconfig
.
Gotcha: Netlify Makes All Your Filenames Case-Insensitive (1 mins read).
Beware if you have a requirement for case-sensitive URLs for Netlify.
Making Hugo Generate Case Sensitive URLs (2 mins read).
How to make your Hugo URLs case sensitive.
Viewing the Contents of a Certificate Signing Request (CSR) with OpenSSL (1 mins read).
How to look at the contents of a Certificate Signing Request (CSR) with the openssl
command-line tool.
Setting Your Maven Project Versions (1 mins read).
How to set the versions of all Maven pom.xml
s within a Maven project.
Listing the Contents of a Java Truststore (3 mins read).
How to extract a list of trusted certificates from a Java Trust store.
Getting git diff
Outputs Without a Prefix (1 mins read).
How to remove a/
and b/
from git diff
outputs.
Auto-linking URLs with Hugo (2 mins read).
How to get URLs automagically converted to links in Hugo, using Regular Expressions.
Pushing your Git Branches to a Matching Remote Branch (1 mins read).
How to save yourself from typing git push --set-upstream origin ${branch}
and have Git determine the branch you're pushing to.