Explore
The Two Reasons I Prefer Passing Struct Pointers Around
Spoiler: I am not talking about CPU performance or memory. This is a long post and...
Topfew Release 0.5
Back in 2021-22, I wrote a series of blog posts about a program called “topfew” (tf...
Golang - custom unmarshall func for explicitly nested type struct
I have a explicitly nested type struct like this: type Communicate struct { Sender struct {...
Making ijq Fast | g.p. anders
April 13, 2024 I recently received an issue report that ijq was performing slowly. The issue...
ETag and HTTP Caching
One neat use case for the HTTP ETag header is client-side HTTP caching for GET requests....
Libgourou: A Free Implementation of Adobe's Adept DRM on ePub/PDF Files
libgourou is a free implementation of Adobe's ADEPT protocol used to add DRM on ePub/PDF files....
Prevent sensitive data from leaking in Go/Golang
By default Go allows you to easily format, log or output values of most types. For...
Fail to connect MatrixOne (from GitHub)
When using the github.com/go-sql-driver/mysql driver to connect to matrixone, connecting with the default user root works...
Go’s Error Handling Is Perfect, Actually
Spend any amount of time in programming circles, and just as the sun rises and falls,...
Mastering Go Channels for Elegant Synchronization
"Mastering Go Channels for Elegant Synchronization" is a comprehensive guide that explores the intricacies of using...
Data Flow Analysis for Go | The GoLand Blog
GoLand 2023.3 comes with support for data flow analysis (DFA). In this post, we’ll introduce the...
Excelize Official Documentation
Excelize: Library for Working with Excel Spreadsheets — Read and write XLAM / XLSM / XLSX...
Zen Mind, Google Intern's Mind
I obviously have things to say about Go’s controversial error handling. As a recap: errors are...
Memory leaks in Go
Memory leaks in Go A useful article to go over commont leaks in Go, method to...