#​390 — December 3, 2021

Unsubscribe  |  Read on the Web

Go Weekly

▶  19 Talks from GopherCon UK 2021GopherCon 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.GetPage("home") — ButterCMS is your content backend. Enable your marketing team to update website + app content without needing you. Try the #1 rated Headless CMS for Go today. Free for 30 days.

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:

  • Go 1.17.4 and 1.16.11 have been released – both small bugfix releases with tweaks to compiler, runtime, and some core packages.

  • Now Go is a whole 12 years old, the Go Time podcast has headed back in time to discuss the first decade with Go and some of what happened in the early days.

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 pgx driver.

Henrique Vicente

Jobs

Senior Golang Engineer (Cloud, Microservices, REST APIs) (Romania Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.
Crowdstrike

Senior Software Engineer (Go) - 100% Remote, UK/EU Only — Solve complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster.
Form3

Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired

🛠 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