---
title: "The Go playground has two awesome new features"
publication: "Go Weekly"
issue: 262
published_at: "2019-05-16"
canonical_url: "https://golangweekly.com/issues/262"
---

The latest Go development news       

#262 — May 16, 2019 

[Read on the Web](https://golangweekly.com/issues/262)   

Golang Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1558013510/fcabqkscamgbiwolwi5g.png)](https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html)   

[A Series on Garbage Collection in Go](https://www.ardanlabs.com/blog/2018/12/garbage-collection-in-go-part1-semantics.html) — Want to understand more about the mechanics behind Go’s garbage collection system? Go trainer extraordinaire William Kennedy dives in with this series. 

William Kennedy   

[The Go Playground Has Just Gotten A Lot Better](https://play.golang.org/p/eqEo7mqdS9l) — The [Go Playground](https://play.golang.org/) has long been a neat online sandbox for playing with Go related ideas and this week it has taken two huge steps forward: 

- [**Third party import support.**](https://play.golang.org/p/eqEo7mqdS9l) Packages get pulled in via [proxy.golang.org](https://proxy.golang.org/).
- [**Multi-file support.**](https://play.golang.org/p/KLZR7NlVZNX) You can now put multiple files into the same playground instance. This is _really cool_. Both of these features will significantly extend the use cases for the playground in showing off Go techniques. (If you have any good ones of your own, let us know.) 

The Go Playground   [![\](https://copm.s3.amazonaws.com/eca6135c.png)](https://circleci.com/blog/how-to-test-software-part-i-mocking-stubbing-and-contract-testing/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=may19&utm_content=go-newsletter) 

[How to Test Software: Mocking, Stubbing, and Contract Testing](https://circleci.com/blog/how-to-test-software-part-i-mocking-stubbing-and-contract-testing/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=may19&utm_content=go-newsletter) — We’ll cover the techniques of mocking and stubbing, and test-driven development to help each testing layer. First, let’s review the test pyramid. This helps illustrate the difference between different kinds of tests and when it’s advantageous to do them. 

CircleCI sponsor   

[Introducing GopenPGP: An OpenPGP-Based Encryption Library for Native Apps and Go](https://protonmail.com/blog/openpgp-golang/) — Developed by ProtonMail and built on a fork of the Go crypto package. [Project homepage.](https://gopenpgp.org/) 

GopenPGP   

[Quicktest: Wrapping `*testing.T` for Fun and Profit](https://rogpeppe.wordpress.com/2019/05/15/quicktest-wrap-testing-t-for-fun-and-profit/) — [Quicktest](https://godoc.org/github.com/frankban/quicktest) is a set of new lightweight Go testing helpers that add extra sugar such as assertions, pretty printing and deferred execution to tests. 

Savoury Morsels   

[A Peek at Better Go Error Handling with `xerrors`](https://medium.com/yakka/better-go-error-handling-with-xerrors-1987650e0c79) — [xerrors](https://godoc.org/golang.org/x/xerrors) implements functions to manipulate errors and is to be largely included in Go 1.13’s `errors` package, so get a taste of the future today. 

Luke Freeman  

💻 Jobs  

[Product-Focused & Driven Frontend Engineers in Stockholm](https://careers.dietdoctor.com/jobs/196340-frontend-engineer?promotion=81764-trackable-share-link-frontendweekly-newsletter) — Join our 30-person team of A-players, solve problems at global scale & help us become the most trustworthy online health company. 

Diet Doctor Sweden AB   

[Find a Go Job on Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77582) — Vettery specializes in tech roles and is completely free for job seekers. 

Vettery  

📘 Articles & Tutorials  

[Notes on Converting a Repository to Use Modules](https://wingedpig.com/2019/05/09/notes-on-converting-a-repository-to-use-go-modules/) — An incremental approach that covers a couple of special cases, like dependencies with local changes and keeping the vendor directory around. 

Mark Fletcher   

[Using Postgres's JSONB Columns with Go](https://www.alexedwards.net/blog/using-postgresql-jsonb) — And if you like Postgres, we have [a Postgres newsletter](https://postgresweekly.com/) too! :-) 

Alex Edwards   

▶[Discussing Go for Beginners](https://changelog.com/gotime/85) — Yes, this is definitely an episode for beginners who want to learn _how_ to learn Go, so pass it on (and get them to subscribe to _Golang Weekly_ too!) 

Go Time Podcast   

[Do You Need Help Building and Migrating in an Application to Go?](https://www.ardanlabs.com/consulting/?utm_source=Cooperpress%20Primary) 

Ardan Labs sponsor   

[Emulating an OpenMP Parallel For-Loop with Goroutines](https://downey.io/notes/dev/openmp-parallel-for-in-golang/) — [OpenMP](https://www.openmp.org/) is a popular API for shared memory multiprocessing (predominantly in C and C++), something goroutines are also suited to enable. 

Tim Downey   

[Encrypting Streams in Go](https://medium.com/blend-engineering/encrypting-streams-in-go-6cff6062a107) — If you have large files that require encryption, the main option is using stream ciphers, which you can do with the standard library. 

Michael Turner   

[Why Bother Writing Tests At All?](https://dave.cheney.net/2019/05/14/why-bother-writing-tests-at-all) — Not super Go specific, but solid advice on why writing tests is critical to successful product development because, after all, _someone_ will be testing your software and it might not be someone with good intentions. 

Dave Cheney  

🔧 Tools & Code 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1558009747/rrhvruu1gbu3etikgsss.png)](https://github.com/maruel/panicparse)  

[panicparse: A Panic Stack Trace Parser and Debugging Tool](https://github.com/maruel/panicparse) — _“Crash your app in style”_(!) This tool has just been updated to using Go modules and gives you more compact and readable output than a standard stack dump. 

M-A   

[kcp-go: A Production-Grade Reliable-UDP Library for Go](https://github.com/xtaci/kcp-go) — It’s UDP, but not as you know it as this library adds resilient, ordered and error-checked delivery on top. Aimed at use cases like gaming and streaming. 

Daniel Fu   

[gqlgen: A `go generate`-Based GraphQL Server Library](https://github.com/99designs/gqlgen) — Check out the [getting started guide](https://gqlgen.com/getting-started/) for a feel for the project. 

99designs   

[Get the Resources Your Go Apps Need Without the Billing Surprises](https://www.digitalocean.com/pricing/?refcode=74a1c5d63dac&utm_medium=display&utm_source=paid_newsletter_cooperpress_goweekly&utm_campaign=DO_Dev_Awareness_Cold_Cooperpress) — Deploy your next Go project on the most developer-friendly cloud platform with flat pricing across all global regions. 

DigitalOcean sponsor   

[Godo: A DigitalOcean Go API Client](https://github.com/digitalocean/godo) — A client library for accessing the DigitalOcean V2 API. 

DigitalOcean   

[uiprogress: Render Progress Bars in Terminal Apps](https://github.com/gosuri/uiprogress) — [progressbar](https://github.com/schollz/progressbar) is a similar library worth considering too. 

Greg Osuri   

[dicom: A High Performance DICOM Medical Image Parser](https://github.com/suyashkumar/dicom) — This is a a very specialized med-tech usage of Go, but if you’ve had an MRI, say, done (I have!) and they gave you a disc with the data on it, this could be of interest. Or if you're building medical software, of course.. 😉 

Suyash Kumar         

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
