#377 — September 3, 2021
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 Steam — Ebiten 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."
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