---
title: "Do not use the monkey package"
publication: "Go Weekly"
issue: 377
published_at: "2021-09-03"
canonical_url: "https://golangweekly.com/issues/377"
---

Plus a guide to interfaces, how to distribute a Go game on Steam, and do we need int128? |        

#​377 — September 3, 2021 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/377)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/dtoavvvopf85n8jimuvs.jpg)](https://esoteric.codes/blog/bouk-monkey-satirical-code-used-by-people-who-dont-get-the-joke)   

[The Tale of _Monkey_: A 'Satirical' Package Used Unwittingly..](https://esoteric.codes/blog/bouk-monkey-satirical-code-used-by-people-who-dont-get-the-joke) — [Monkey](https://github.com/bouk/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](https://github.com/dapr/dapr/issues/3563). This post also includes a fun interview with the developer of the package – he recommends [gomonkey](https://github.com/agiledragon/gomonkey), if you _really_ need to do this. 

Esoteric Codes   

[A Guide to Interfaces in Go](http://fast4ward.online/posts/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   [![\](https://copm.s3.amazonaws.com/d66ea58f.png)](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html/?utm_source=Cooperpress%20PrimaryV4) 

[Gophers - Opportunity is Knocking](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html/?utm_source=Cooperpress%20PrimaryV4) — 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](https://twitter.com/_rsc/status/1433128358683029506) 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](https://utcc.utoronto.ca/~cks/space/blog/programming/GoWorkspacesComing) — 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](https://go.googlesource.com/proposal/+/master/design/45713-workspace.md). 

Chris Siebenmann   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/nemazr09apnpnkk0rg8l.jpg)](https://blog.klipse.tech/golang/2021/08/29/blog-go.html)   

[A New Way of Blogging About Go?](https://blog.klipse.tech/golang/2021/08/29/blog-go.html) — We mentioned this tool in [our JavaScript newsletter](https://javascriptweekly.com/) 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](https://ebiten.org/blog/steam.html) — [Ebiten](https://ebiten.org/) 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](https://eli.thegreenplace.net/2021/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](https://moshe-beladev-mb.medium.com/tips-for-effective-go-tests-6b9f1e242f02) 
Moshe Beladev     

Jobs  

[Backend Engineer (Go) | Remote Within CET (-2/+2 Hours) | Full-Time](https://jobs.lever.co/qonto/284b8162-5293-4ad7-a9e6-4ad26ce0c516?lever-origin=applied&lever-source%5B%5D=Cooperpress) — 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](https://www.form3.tech/careers/job-application?gh_jid=4003519002) — Solving complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster. 
Form3   

[Find Tech Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — 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](https://github.com/golang/glog) — _“an efficient pure Go implementation of leveled logs in the manner of the open source C++ package[glog](https://github.com/google/glog).”_ 

Google   

[SeqKit 2.0: A Go Toolkit for FASTA/Q File Manipulation](https://github.com/shenwei356/seqkit) — Perhaps a handful of you will find this _useful_ but it’s neat to see Go being used for working with biochemistry. [FASTA/FASTQ](https://en.wikipedia.org/wiki/FASTA_format) are formats for storing “nucleotide and protein sequences”. 

Wei Shen   

[The Fastest API to Set Up Transactional Notifications](https://www.courier.com?utm_campaign=newsletters&utm_source=go-newsletter&utm_medium=demo-request) 

Courier sponsor   

[Centrifugo V3: Scalable Real-Time Messaging Server](https://centrifugal.dev/blog/2021/08/31/hello-centrifugo-v3) — Language agnostic, but written in Go itself. 

Centrifugal   

[GoKart 0.2.0: A Static Analysis Tool for Securing Go Code](https://github.com/praetorian-inc/gokart) — 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](https://github.com/jptosso/coraza-waf) — 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](https://github.com/willscott/go-nfs/) — 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](https://wasm4.org/) — 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](https://wasm4.org/play/snake). 

Bruno Garcia   

[countdown: Terminal Countdown Timer](https://github.com/antonmedv/countdown) — Run `countdown 168h` to count down to the next newsletter, maybe? :-) 

Anton Medvedev   

[Chezmoi 2.2.0: Manage Your Dotfiles Securely Across Multiple Machines](https://github.com/twpayne/chezmoi) 
Tom Payne         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
