---
title: "Thinking about memory models"
publication: "Go Weekly"
issue: 370
published_at: "2021-07-09"
canonical_url: "https://golangweekly.com/issues/370"
---

Plus surprising benchmarks, a Go HTML sanitizer, and more on fuzzing. |        

#​370 — July 9, 2021 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/hxxepwicevknztnh2z3v.jpg)](https://research.swtch.com/hwmm)   

[Russ Cox on Hardware Memory Models](https://research.swtch.com/hwmm) — When Russ starts a new series of blog posts, we listen (it was [his series on package versioning](https://research.swtch.com/vgo-intro) that largely spurred the Go modules project). Today’s topic is somewhat more technical but is inspired by a desire to discuss changes to Go’s memory model. 

Russ Cox   

▶[Discussing Fuzzing in the Standard Library](https://changelog.com/gotime/187) — We’ve mentioned [Go’s forthcoming fuzzing feature](https://blog.golang.org/fuzz-beta) quite a bit already, but Google’s Katie Hockman and Jay Conrad joined the _Go Time_ team to dig into the details and why and where you’d use it. 

Go Time Podcast podcast   [![\](https://copm.s3.amazonaws.com/00f88baa.jpg)](https://launchdarkly.com/the-definitive-guide-to-feature-management/?utm_source=cooperpress&utm_medium=display&utm_campaign=21q2-cooperpress&utm_content=blog_post) 

[The Definitive Guide to Feature Management](https://launchdarkly.com/the-definitive-guide-to-feature-management/?utm_source=cooperpress&utm_medium=display&utm_campaign=21q2-cooperpress&utm_content=blog_post) — Feature management is a new class of software development tools/techniques powered by feature flags. A feature management platform like LaunchDarkly fills the gaps of conventional feature toggles. Learn the ins & outs of feature management today. 

LaunchDarkly sponsor   

[Write a Time-Series Data Storage Engine from Scratch](https://nakabonne.dev/posts/write-tsdb-from-scratch/) — From the author of [tstorage](https://github.com/nakabonne/tstorage), a Go library for storing time-series data. 

Ryo Nakao   

[Benchmarks in Go Can Be 'Surprising'](https://leveluppp.ghost.io/benchmarks-in-go-can-be-surprising/) — Can the exact same code create vastly different benchmark numbers from the same codebase on the same machine? Yes, but this isn’t just a Go phenomenon. 

LevelUp++   

[Go Training Class Material](https://github.com/ardanlabs/gotraining/tree/master/reading) — This now-5-year-old list has been continuously maintained and has to be one of the premier collections of books, blogs, interviews, etc. for anyone wanting to learn more about Go. 

Ardan Labs   

[There Are Many Ways To Safely Count](https://brunocalza.me/there-are-many-ways-to-safely-count/) — Some different ways to implement a goroutine-safe counter. 

Bruno Calza   

[Several Handy Commands to Run in Go Projects](https://github.com/nikolaydubina/go-recipes) — A few very cool commands you will probably want to use on your current projects. For example, find packages without tests or build a dependency graph. 

Nikolay Dubina     

Jobs  

[Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go) — Like coding in Go? We do too. Stream is hiring in Amsterdam. [Apply now](https://angel.co/company/stream/jobs/241159-backend-software-engineer-go%20). 
Stream   

[Golang Developer at X-Team (Remote)](https://x-team.com/remote-go-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=go) — 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](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  

[certmagic: Automatic HTTPS for Any Go Program](https://github.com/caddyserver/certmagic) — Fully-managed TLS certificate issuance and renewal, as used by Caddy, thanks to Let’s Encrypt (by default, but it can support other ACME-compliant issuers). 

Caddy   

[Bluemonday: A Fast Go HTML Sanitizer](https://github.com/microcosm-cc/bluemonday) — Takes untrusted user generated content as an input and returns HTML sanitized against an allowlist of approved elements and attributes. 

Microcosm   

[Monitor Golang Apps’ Performance End-To-End with Datadog Distributed Tracing](https://www.datadoghq.com/dg/apm/go-application-performance/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-GoWeeklyPerformanceB) 

Datadog sponsor   

[Balerter: Script Based Alert Manager](https://github.com/balerter/balerter) — Define sources and channels in YAML, write scripts in Lua. Alerts can be just about anything: Slack, Telegram, etc. 

Negasus   

[Kratos 2.0: A Go Framework for Microservices](https://github.com/go-kratos/kratos) — A _“microservice-oriented governance framework”_ built around gRPC. 

Kratos   

[calendarheatmap: Generate GitHub Activity-Style Heatmaps in Plain Go](https://github.com/nikolaydubina/calendarheatmap) — You provide the data, it provides the PNG. 

Nikolay Dubina   

[Task 3.5: A Task Runner / `make` Alternative Written in Go](https://taskfile.dev/) 
Andrey Nering   

[di: A Tiny Dependency Injection Framework](https://github.com/go-tk/di) 
Go Toolkit         

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
