My adaptation of the "HTTP Client and Server" project to Go from "Beej's Guide to Network Concepts"

Recently, I started learning Beej’s Guide to Network Concepts but found that the examples were written in Python. However, I’m an engineer who loves Go. So, why not adapt it to Go? In this article, I adapt the chapter “5 Project: HTTP Client and Server” to the Go language. This will be useful for anyone learning network concepts who wants to practice in Go.

Screenshot of the terminal running webserver and webclient
[Read More]

Upgrading Golangci-lint to v2

Golangci-lint v2 was released in March 2025 , bringing major architectural improvements and a cleaner configuration format. Despite being available for over seven months, adoption remains low.

If you are maintaining a Go project, now is the time to upgrade. This article covers why you should make the switch and provides a step-by-step walkthrough using a real-world project.

Screenshot of Golangci-lint v2 website (dark theme)
[Read More]

Found a group of malicious Go projects injected with trojan

I accidentally discovered malicious programs in the Go ecosystem that impersonate legitimate tools such as the linter ldez/usetesting , the HCL editor go.mercari.io/hcledit , the official MailerSend Go SDK mailersend/mailersend-go , and many more. These programs are not very popular but are still used by some developers. By the time I wrote this article, I had reported the malicious repositories to GitHub support, and most of them have been deleted.

VirusTotal scan results for the trojan `f0eee999`
[Read More]

Fix: no Go 1.15 binary for darwin/arm64 on Apple M1

If you use an Apple Silicon (M1) Mac, you will hit an issue when downloading Go 1.15 or earlier via the dl tool.

Here is the solution:

$ GOARCH=amd64; go run golang.org/dl/go1.15@latest download
$ go install golang.org/dl/go1.15@latest
$ go1.15 version
go version go1.15 darwin/amd64
[Read More]
go  arm64  macos 

Streamlining email management in Git using IncludeIf

I work simultaneously on different companies’ projects, open-source projects, and personal projects. I should therefore use the same username but distinct email addresses for each of them. Although we can set git config user.email <email@example.com> for each project repository, this can be a tedious manual task and perhaps unsuitable.

The Git config manual describes the use of configuration files to better manage such a task through “Conditional includes” .

[Read More]
git 

How to export Facebook Notes to Medium with the original publication date

Recently I was getting to know Facebook discontinued its Notes feature for Individuals and Pages. I have a few Facebook notes and need to move them to another live blog platform, e.g. Medium. But there is no way to import from Facebook with the help of Medium’s import functionality . The only possible solution is to manually create a story, copy a note’s content, and set a date to the original publication date.

The trickier step is keeping the original publication date. Below is how I propose to do this.

A Facebook note imported to a Medium story with the preserved publish date
[Read More]