Audio visualization is a fascinating topic. We often take it for granted, but sound isn’t visible and only exists over time. In the case of a video stream, you can pick a frame/image and you have a snapshot of the video at this specific time. But you can’t do that wit...
Quick tip to improve the docker build speed using go modules.
Normally, I would do something like this:
FROM golang as builder
ENV GO111MODULE=on
WORKDIR /code
ADD . .
RUN go build -o /app main.go
FROM gcr.io/distroless/base
EXPOSE 8080
WORKDIR /
COPY --from=builder /app /usr/b...
I wanted to set up a high available nats-streaming-server cluster,
but couldn’t find a “quick” guide on how to do it.
In this post I’ll try to write something that would have helped me earlier.
First things first, we have 2 kinds of HA setups for nats-str...
PostgreSQL provides two JSON-related data types that you can use — JSON and JSONB. The principal differences are:
JSON stores an exact copy of the JSON input.
JSONB stores a binary representation of the JSON input. This makes it slower to insert but faster to query. It...
This post is a text version of packagemain #6: Building Desktop App in Go using Wails video.
As we all know, Go is mostly used to build APIs, web backends, CLI tools. But what’s interesting is that Go can be used in places we were not expecting to see it.
Introduction
In my first post on Goroutine Leaks, I mentioned that concurrency is a useful tool but it comes with certain traps that don’t exist in synchronous programs. To continue with this theme, I will introduce a new trap called incomplete work. Incomplete work occurs...
Occasionally I get asked “why do you like using Go?” And one of the things I often mention is the thoughtful tooling that exists alongside the language as part of the go command. There are some tools that I use everyday — like go fmt and go build — and ot...
Or: How adding goroutines can keep your CPU busy shuffling things around.
Often I need to “do X only if files on some folder changed” or whatever. I
always need to Google that or find it on old scripts…
This is a quick post for me to find on Google when I need it again and think
“oh its me!”.
Anyway, let’s get into...