In the previous article, I explained what data we needed to generate waveforms and showed how to use a BBC Free Open Source Software to generate that data. In this article, I will show how to draw a waveform using Google’s Flutter UI toolkit for mobile, desktop and web. Her...
“Once a language gets complex enough, programming in it is more like carving out a subset from an infinite sea of features, most of which we’ll never learn. Once a language feels infinite, the costs of adding further features to it are no longer apparent". - [Mark Miller...
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...