#​391 — December 10, 2021

Unsubscribe  |  Read on the Web

Go Weekly

A Tale of Hacking the Go Compiler to Add a New Keyword — Inspired by Eli Bendersky’s 'Adding an new statement to Go' post (that we linked in issue 270), a developer decided to try and add vah as a Go keyword, yet learnt the compiler won’t let him? A fun, yet brief, look under Go's covers.

Avinash

▶  Go Code Roast — The narrator solicited Gophers to submit code for him to “roast” which means he goes through the code, says what he likes, doesn’t like, and whether or not he would hire them based only on the code. More of this please!

The Tiny DevOps Guy

Meet GoLand 2021.3 — This version brings native support for Go projects in WSL, the Inline Function and Inline Method refactorings, our new remote development solution (Beta), and more. Also, gofmt on save is now enabled by default.

JetBrains sponsor

IN BRIEF:

  • In an echo of last week, Go 1.17.5 and 1.16.12 have been released, with two security fixes included around an unbounded memory growth issue with HTTP/2, and a file descriptor exhaustion related issue.

  • GopherCon is taking place right now, and while we haven't had time to go through the talks given so far yet, you can catch up with day 1's stream here or day 2 here. Day 3 starts in the coming hours and will be streamed here.

Ebiten, and Developing Games in Go, in 2021 — Ebiten is an open source game library for the Go programming language that we mention from time to time. “It’s been 8 years since I started to develop Ebiten. This article is a retrospective of Ebiten in 2021.” Lots of useful links here if this is an area of Go you want to explore.

Hajime Hoshi

How I Wrote My Go Book — Kevin has written a book on AWS Lambda and Go and this post covers the tools and process he used to do just that.

Kevin W. McConnell

▶  Coding Go in the Blind — An hour long chat with Dominic St-Pierre, a Go developer with limited vision who uses a screen reader and other assistive technologies to be productive.

Go Time Podcast podcast

What I Learned Contributing My First Feature to Ent's GRPC Plugin — Jeremy discovers ORMs and Ent (an entity framework) and immediately sees a missing method to add, starting his first journey to open-source contributor.

Jeremy Vesperman

Jobs

Senior Golang Backend Engineer — We’re looking for a senior golang engineer to help us build a high performance, high accuracy online fraud prevention service.
FingerprintJS

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team

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

Zinc: A Lightweight Elasticsearch Alternative in Go — It’s alpha for now, but Zinc’s ambitions are bold: provide full text indexing and querying a la Elasticsearch, but in a simple and lightweight Go-powered way.

Prabhat Sharma

Gotenberg: Docker-Powered Stateless API for Creating PDF Files — A Go-powered system that offers a developer-friendly API for converting numerous document formats into PDF files. Their logo is just.. wow.

Gotenberg Inc.

Developer-First Infrastructure Using Go and Pulumi - Try it Today

Pulumi sponsor

Plow: A High-Perf HTTP Benchmarking Tool with Real-Time Web UI and Terminal Display — Plow has a load of options and offers autocompletion. Uses fasthttp under the hood.

ddc

Go Bindings for the Telegram Bot API v5.5.0 — A simple wrapper about the bot API for the popular Telegram chat service. GitHub repo.

Syfaro

gnet 1.6: A High-Performance, Non-Blocking, Event-Loop Networking Library“It makes direct epoll and kqueue syscalls rather than using the standard Go net package, and works in a similar manner as libuv.”

Andy Pan

Oto 2: Low-Level Library to Play Sound on Multiple Platforms — Windows, macOS, Android, iOS, and even through WebAssembly.

Hajime Hoshi

id3v2: ID3 Decoding and Encoding Library — ID3 is a metadata format most commonly associated with MP3s for storing stuff like song name, artist, etc.

Albert Nigmatzianov

Plumber 1.0: A 'Swiss Army Knife' CLI Tool for Kafka, RabbitMQ and Other Messaging Systems
Batch.sh

FLAC: Access FLAC (Free Lossless Audio Codec) Data from Go
mewkiz

🕰 ICYMI (Some older stuff that's worth checking out...)

  • Henry Huang shares seven Go 'code patterns' that they "can't live without". You're bound to find at least one of these worthwhile.
  • Storybook (a tool to present and explore frontend UI components) is usually used with frontend frameworks like React, but it does have a server-side rendered component capability, so you can use it with Go frontends too — as demonstrated here.
  • Marcio Macias shares an introduction to Go Kubernetes' Informers — they allow you to index and retrieve a mapping of your k8s resources via the REST API.