#390 — December 3, 2021 |
Go Weekly |
▶ 19 Talks from GopherCon UK 2021 — GopherCon UK 2021 took place in October in person in London, UK, but you can now watch the talks from the comfort of wherever you are. Some options:
GopherCon UK |
Generics in Go: ¡Viva La Revolution! — This starts off slightly oddly, but it’s essentially an enthusiast’s look at generics, constraints, and type sets in the edge version of Go with some examples and benchmarks. Marko Milojevic |
ButterCMS Melts into Your App: ButterCMS sponsor |
GoLand 2021.3 Released — The third major release of the year for the popular, though commercial, Go IDE. Native support for WSL may appeal to Windows users, plus numerous fixes, a new inline refactoring, and GoLand’s HTTP client now supports gRPC requests. You may also be intrigued by JetBrains’ newest project Fleet, a ‘next generation’ IDE focused on collaboration and being able to run in a distributed, cross network manner. Sergey Kozlovskiy (JetBrains) |
IN BRIEF:
|
Auto-Generated C4 Architecture Diagrams in Go — “Automated” means “defined in YAML files” but this is still pretty cool and useful if you struggle with creating (software) architectural diagrams or keeping them current. Krzysztof Reczek (ThreeDot Labs) |
Faster Top Level Domain Name Extraction with Go — Mark had a lot of TLDs to extract (over a billion) and began with Python, moved on to Rust, but now has written in Go. Mark Litwintschik |
Property-Based Testing in Go: Here's How — Describe the properties you’d like to test and the specific cases are generated for you. Even better, it’s part of the Go standard library. Adam Gordon Bell |
A Journey in Dropping the ORM — Depending on your experience, this may be a sensitive subject for you, but Alan goes through their team’s reasoning, how they moved from the ORM camp to the SQL camp, and the benefits it realized. Alan Illing |
Writing an App using Go and Postgres — A walkthrough of productively working with the Postgres database system from Go using the Henrique Vicente |
|
🛠 Code & Tools |
pdfcpu: A PDF Processing and Manipulation Library — You can validate and optimize PDFs, split them, merge PDFs together, extract elements, and more. GitHub repo. (Note: If you want to generate PDFs from scratch, gofpdf is a practical, though not actively maintained, option.) pdfcpu |
Caire 1.4: A Content-Aware Image Resizing Library — Uses seam carving to stretch out unimportant parts of an image when resizing. Endre Simo |
grimd 1.1: A Fast DNS Proxy — The main intention is to quickly use DNS blocklists to prevent ads or malware loading. looter |
The Ultimate Guide to Cardinality for Observability Lightstep sponsor |
geodist: Compute Distances Between Two Geographic Points — Specifically, given two lat/long locations, you can calculate the Haversine or Vincenty distance. John Taylor |
FerretDB: An In-Progress, Go-Powered MongoDB Alternative — If MongoDB’s SSPL license isn’t compatible with your project, FerretDB aims to be a drop-in replacement. Rome wasn’t built in a day, however, and given that this is a proof of concept, there are compromises to make. FerretDB |
iso9660: A Go Library for Reading and Creating ISO9660 Images — The use cases for this will be niche. The author first created it to dynamically generate ISOs to be mounted in VMs. Kamil Domański |
lazygit: A Simple Terminal UI for Git Commands — Written in Go with the gocui library. Jesse Duffield |