Serving web content directly from a ZIP file

The composability of the Go standard library enables some interesting scenarios for serving static assets on the web.

Go fonts for the web

If you like Go fonts and want to have them on your site backed by the go web server, now it's easier than ever.

Concurrency Management Pattern in Go

In 2014 I posted an answer to a StackOverflow question “Always have x number of goroutines running at any time.” Here I refine my solution with a real-world pattern I rely on to control coordinated goroutine concurrency in Go.

Running services on Fargate without giving them public Internet access

This post enumerates some critical points on running containerized services on AWS Fargate with restricted access to the public Internet.

Using monaco editor for HTML form textarea

For one of my personal projects I wanted to have a more convenient way to edit markdown in an HTML form, than the plain text. I ended up with using the Monaco Editor that powers VS Code, as the form editor.

How to record a screencast with an overlay from the web camera on macOS

It is possible to create a screen recording on macOS with your camera feed overlaid somewhere in the corner without using any third party apps or services like https://www.loom.com.

Constructing and Pushing Docker Images without Docker

Once upon a time, I ran into a particular use case: I wanted to build and push a Docker image without using docker binary or any similar tool.

Creating time lapse videos with Raspberry Pi camera

How to Notarize Go binary for macOS

Starting with macOS Catalina (10.15), Apple requires downloaded binaries to be notarized, or the Gatekeeper service does not allow to run them.

How to install WireGuard on Amazon Linux 2

How to install OpenVPN on Amazon Linux 2

How to make a Go program print its own version

Since version 1.12 Go includes runtime/debug.BuildInfo type which represents build information read from the running binary.

How to use s3 select in AWS SDK for Go

Consider that you have some compressed JSON data stored in an s3 bucket, for example, an event log — stream of JSON objects, one per line. You may, at some point, need to select a subset of such records based on their attribute.

Evolution of main.go file

I happen to write a lot of command line tools in Go. Below are few useful strategies I came up over time.

Migrating to ZSH from Bash

Recent news that upcoming macOS 10.15 will use zsh as its default shell nudged me once again to look at it. I thought about giving ZSH a chance few times in the past, but was always intimidated by the prospect of migrating an already convenient bash setup to it, also dominating use of oh-my-zsh across my friends and coworkers gave an impression that zsh is impossible to use without such monstrous extensions.