-
posts
-
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 is t...
-
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 docker-...
-
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...
-
HTTP/2 and Go
UPDATE (2015/10/15): HTTP/2 is now enabled by default for http servers in tip and will
be released as part of Go 1.6. That means that you
will be able to create HTTP/2 servers without even
calling ConfigureServer().
HTTP/2 is a new versio...