FAAS in Go with WASM, WASI and Rust

This post is best described as a technology demonstration; it melds together web servers, plugins, WebAssembly, Go, Rust and ABIs. Here's what it shows: How to load WASM code with WASI in a Go environment and hook it up to a web server. How to implement web server plugins in …

Announcing GoReleaser v1.18 — the maintainers month release

May is the maintainers month, so I would first like to thank all the maintainers out there for the hard work, you rock!

Quick tip: A time-saving Makefile for your Go projects

Whenever I start a new Go project, one of the first things I do is create a Makefile in the root of my project directory. This Makefile serves two purposes. The first is to automate common admin tasks (like running tests, checking for vulnerabilities, pushing changes to a remo...

Serving the current directory over HTTP with Go

I've recently been updating a few lightweight static websites and have wanted to preview the changes locally. Although I usually reach for python -mhttp.server, it's a bit cumbersome to type, so I wanted something a little shorter. I was thinking of writing a script to make it qu...

Using open, pbcopy and pbpaste over SSH

Having your favorite commands available over SSH can be very convenient. I think I talked about this a couple of times before, but I usually work by SSH-ing from my mac into a Linux machine (a rather chunky one, might I add). While it allows me to work faster when I’m not...

The two types of C programmers (a provocative thesis)

WebAssembly Text code samples

This post talks about writing WebAssembly by hand (using its textual format), and mentions a new GitHub repository I've created with code samples. A bit of nomenclature first. WASM stands for WebAssembly - it has a binary format and a textual format. The textual format, called We...

An interesting mistake I made with a (Go) SSH client API

The Tao of Go

What is the Tao of Go, and how can we work with it, like a surfer going with the waves instead of struggling against them? By being kind, simple, humble, and not striving; here’s how.

Random testing in Go

Choosing good test cases for our Go programs can be a bit hit-and-miss. What if we could automate that process? Let’s talk about randomisation, property-based testing, and Go’s built-in fuzz testing feature.