-
posts
-
Bash is the best tool for the job
Bash is the black sheep of programming languages and yet every backend or DevOps
engineer needs to deal with it throughout their career. It is hard to avoid.
It’s always available on Linux servers and it’s often the best tool for the job.
Like Ba...
-
Do we need AI IDEs?
AI integrated development environments (IDEs) are all the rage.
Cursor was one of the first AI-focused IDEs and emerged
as a fork of VSCode. Kiro, another VSCode fork, was just
released by AWS. Windsurf, yet another VSCode fork, recently had their...
-
Zero Copy Readers in Go
The io.Reader interface is a small interface that defines a single Read
method. Callers to a Reader implementation pass a byte slice which is then
filled with bytes from the underlying source. This source could be a file, a
network socket, etc.
t...
-
Building APIs with Static Files
APIs are really useful for pulling in data from different sources for analysis in tools like Datasette or spreadsheets. However, APIs are often hard to build and often require writing specialized servers which then need to be deployed and maintain...
-
Rust First Impressions: Error Handling
For the 2024 edition of Advent of Code I decided to finally give Rust a try and
implement the puzzle solutions in the language. Rust has been pretty stable for
more than a decade so I suppose learning it was far past due.
I want to write some o...
-
Python Servers in the Year of the Snake: 2025
This year is the year of the snake in the Chinese
Zodiac. Every 12th year is a
bit of a special year for the Python community in Asia. For example in 2013, in
the last year of the Snake, the theme for the PyCon JP conference was “The
Year of Pyt...
-
Four Tips for Writing Better Go APIs
Go is a really powerful programming language that allows you to write concurrent code that is still easy to understand. But designing APIs can be hard, even for seasoned Go programmers. When designing APIs for libraries and applications in Go it’s...
-
Building Go Applications with Google Container Builder
Gopher image Creative Commons Attribution 3.0 Unported (ja) by tenntenn
Recently I wrote on Twitter about how doing CI right requires you to properly separate your build and run steps for your container images.
The reason for this issue i...
-
Creating Smaller Docker Images Part #4: Static Binaries
This is the fourth post in a series on making smaller Docker images: static binaries. In the
first post I talked about how to create
smaller images by writing better Dockerfiles. In the second
post I talked about how to squash
layers using dock...
-
A Quick Look at the Kubernetes Python Client
For those of you that don’t know there is a new Python API client in the kubernetes-incubator project: client-python. There has been some high quality Python clients like pykube, but client-python can serve as the official Python client.
The Stru...