Joining the split keyboards club: a Moonlander story

This post will describe my experience with a couple of firsts:

Getting the fingerprint of a certificate in Go

If you need to get the fingerprint for a given certificate, we can use OpenSSL to do it, but we may also want to do the same in Go. We can adapt this StackOverflow answer and this blog post to produce the following: package main import ( "crypto/sha1" "crypto/tls&#...

Getting the OpenID Connect thumbprint for AWS on the command-line with Go

A few weeks back, I set up OpenID Connect authentication between GitLab.com and AWS for deploying my site, and it's been great. But today, I had my first failure due to this: An error occurred (InvalidIdentityToken) when calling the AssumeRoleWithWebIdentity operation: OpenIDConn...

Setting up a Go package structure for a combined library and CLI tool

I've recently been building a Go CLI for Micropub, and as part of it, I've been developing both the command-line interface, and a generic library interface. As I started on the journey to build both sides of this, I needed to work out how to structure the packages, especially as...

Should I commit generated Go code?

I've recently had the conversation about whether go:generate'd code should be committed, to which I steered towards "no". Coming from a Java background, I wouldn't commit generated files, instead let the build tool generate + package up the code into the built artefact....

Blockchain In Go: Part IV: Fraud Detection

Introduction In the first three posts, I explained there were four aspects of a blockchain that this series would explore with a backing implementation provided by the Ardan blockchain project. Digital accounts with electronic signatures and verification Transaction distribution...

Reproducible builds with GoReleaser

GoReleaser can help you, to some extent, to have reproducible builds.

Some things that make shell scripts have performance issues

The temptation of writing shell scripts, illustrated

Automagically setting the project version for Go projects in SonarQube

On one of my recent Go side projects, micropub-go, I've been using the wonderful SonarQube for visibility of code quality issues. As my first real Go project, let alone first with SonarQube, it's been a bit of fun learning how to get it set up correctly with all the Go tools, but...