RSSAmplifier

Blog

Justinas Stankevičius

justinas.orgRSS feed ↗9 posts

Latest posts

The bizarre world of V

V ("The V Programming Language", "vlang") is a programming language that first emerged in 2019. A brainchild of Alexander Medvednikov, it is described as a "[s]imple, fast, safe, compiled language for developing maintainable software" 1 , supposedly drawing inspiration from languages like Go, Rust, Swift, C, among others. The vision …

NixOS in the Cloud, step-by-step: part 2

In the previous article , we deployed a basic cloud server running NixOS on DigitalOcean and set up a declarative deployment definition for it using Morph. In this part, we are taking it a step further. We will utilize both Morph and Terraform to spin-up a network of 3 web servers …

NixOS in the Cloud, step-by-step: part 1

In the last few months, I migrated both my workstation and my servers (a DigitalOcean VPS and a Raspberry Pi 3) to NixOS. To best summarize the benefits, let's just say that it's like having a "dotfiles" repo, but for your entire system (or multiple!), including custom software, service configuration …

Producing a podcast the geeky way: Audio

A few months ago I started my podcast Corded where I talk to people whose jobs or creations I find interesting. Corded is an ongoing learning experience not only in the sense of producing interesting material, but also the technical intricacies that come with producing an audio/video product. This …

My reason to be excited for Go 1.4

More than a week ago, Go 1.4 was released , bringing new features and bug fixes to the programming language. Many people consider the support for building shared libraries for Android the most important addition in this version. Others are excited about the new go generate tool. Some are happy …

Alice – Painless Middleware Chaining for Go

According to a recent thread on Reddit, many people like it simple when doing web development in Go and use net/http with useful addons (like the Gorilla toolkit) instead of a full-fledged framework. Such applications often make use of middleware, but wrapping lots of layers of handlers can become …

Best Practices for Errors in Go

Error handling seems to be one of the more controversial areas of Go. Some are pleased with it, while others hate it with passion. Nevertheless, there is a handful of best practices that will make dealing with errors less painful if you're a sceptic and even better if you like …

Writing HTTP Middleware in Go

In the context of web development, "middleware" usually stands for "a part of an application that wraps the original application, adding additional functionality". It's a concept that usually seems to be somewhat underappreciated, but I think middleware is great. For one, a good middleware has a single responsibility, is pluggable …

Embrace Go's HTTP Tools

Some time ago I released nosurf , a Go middleware for mitigating Cross-Site Request Forgery attacks. Writing a seemingly simple and small package was enough to fall in love with how Go handles HTTP. Yet, it's up to us to either embrace the standard HTTP facilities or fragmentate, sacrificing composability and …