#​377 — September 3, 2021

Unsubscribe  |  Read on the Web

Go Weekly

The Tale of Monkey: A 'Satirical' Package Used Unwittingly..Monkey was a package to experiment with ‘monkey patching’ in Go but its license said no-one had any permission to use it(!) Of course, you can guess what happened next. This post also includes a fun interview with the developer of the package – he recommends gomonkey, if you really need to do this.

Esoteric Codes

A Guide to Interfaces in Go — A fantastic and comprehensive guide that we imagine will be bookmarked by a high number of gophers. Learn how to check if a method exists, how you can not implement all the methods on an interface, and a use case for unexported methods on interfaces.

Martin Kock

Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you.

Ardan Labs sponsor

QUICK BITS:

  • On Twitter, Russ Cox has asked whether Go should bother to add int128 or int256 support? Here's an older proposal for the idea.

Go Multi-Module Workspace Mode, A Feature Coming to Go 1.18 — A go.work file will specify a set of local modules that comprise a ‘workspace.’ When invoked in workspace mode, the go command will then always select said modules and a consistent set of dependencies. Full proposal here.

Chris Siebenmann

A New Way of Blogging About Go? — We mentioned this tool in our JavaScript newsletter a year ago, but now if you blog about Go and want a more interactive experience for your readers, Klipse is here for you too.

Yehonathan Sharvit

How to Release an Ebiten Game for SteamEbiten is a cool 2D game library for Go that we’re always happy to cheerlead for, and it’s great to see you can publicly release a Ebiten-powered game on the popular Steam marketplace if you get that far with your game project.

Hajime Hoshi

Plugins in Go — Eli covers both compile- and run-time plugins, spending more time on the latter and its design principles, drawbacks, and alternatives.

Eli Bendersky

Some Tips For Effective Go Tests
Moshe Beladev

Jobs

Backend Engineer (Go) | Remote Within CET (-2/+2 Hours) | Full-Time — Join us as a Backend Engineer to create the finance solution all businesses love - Tailor made remote policy or relocation package.
Qonto

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

Find Tech Jobs with 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

glog: Leveled Execution Logs for Go“an efficient pure Go implementation of leveled logs in the manner of the open source C++ package glog.”

Google

SeqKit 2.0: A Go Toolkit for FASTA/Q File Manipulation — Perhaps a handful of you will find this useful but it’s neat to see Go being used for working with biochemistry. FASTA/FASTQ are formats for storing “nucleotide and protein sequences”.

Wei Shen

The Fastest API to Set Up Transactional Notifications

Courier sponsor

Centrifugo V3: Scalable Real-Time Messaging Server — Language agnostic, but written in Go itself.

Centrifugal

GoKart 0.2.0: A Static Analysis Tool for Securing Go Code — It traces the source of variables and function arguments to determine whether input sources are safe.

Praetorian

coraza-waf: A ModSecurity Compatible Web Application Firewall — Coraza aims to be the “first enterprise-grade Open Source Web Application Firewall” and is a port of ModSecurity. It’s a shared library, but already has some integrations (Caddy) with more on the way.

Juan Pablo Tosso

go-nfs: A Go-Powered NFSv3 Server — First linked a year ago when it was read-only but it can handle read-write now too, although it’s still a WIP.

Will Scott

WASM-4: Build Retro Games for a 'Fantasy Console' with WebAssembly — It’s not Go specific, but you can use Go to target this. Want to see what the results are like? Try this ‘snake’ game.

Bruno Garcia

countdown: Terminal Countdown Timer — Run countdown 168h to count down to the next newsletter, maybe? :-)

Anton Medvedev

Chezmoi 2.2.0: Manage Your Dotfiles Securely Across Multiple Machines
Tom Payne