---
title: "'I don't scoff at 2% improvements'"
publication: "Go Weekly"
issue: 494
published_at: "2024-02-06"
canonical_url: "https://golangweekly.com/issues/494"
---

Plus a brief history of dependency management in Go, and the Go survey is still open. |        

#​494 — February 6, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/494)  

Together with [![Crunchydata\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_430,h_100/e_make_transparent/co_white,e_outline:7/xyflkz7n00elwtgja9ne.png)](https://www.crunchydata.com/products/crunchy-bridge?utm_source=cpgo-prim-0206)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/n0h8x9mkafk85pkagqlj.jpg)](https://www.dolthub.com/blog/2024-02-02-profile-guided-optimization/)  

[Testing Out Profile-Guided Optimization on Dolt's SQL Benchmarks](https://www.dolthub.com/blog/2024-02-02-profile-guided-optimization/) — [Profile-guided optimization](https://go.dev/doc/pgo) was introduced in Go 1.20. The Dolters(?) created a benchmark and saw small (though not _trivial_) improvements to both read and write latency without changing any code. It’s almost certainly worth trying if your apps would benefit from some marginal performance improvements in return for a little experimentation time. 

Zach Musgrave (DoltHub)   

[Getting the Best from Profile Guided Optimization](https://andrewwphillips.github.io/blog/pgo.html) — Related to the above item, PGO was a nifty addition to Go 1.21 (first previewed in 1.20) but there are some things worth appreciating if you want to get the most out of it. 

Andrew Phillips   [![\](https://copm.s3.amazonaws.com/ccc372d1.png)](https://www.crunchydata.com/products/crunchy-bridge?utm_source=cpgo-prim-0206) 

[❤️ Postgres](https://www.crunchydata.com/products/crunchy-bridge?utm_source=cpgo-prim-0206) — You need a database provider that loves Postgres as much as you do. We'll take care of all the hassle - monitoring, backups, HA, disaster recovery so you don't have to. Want amazing support? We'll be there when you have questions. 

Crunchy Bridge sponsor   

[Go Co-Creator Rob Pike: 'What Go Got Right and Wrong'](https://thenewstack.io/golang-co-creator-rob-pike-what-go-got-right-and-wrong/) — A high level, journalistic look at Rob’s talk from GopherCon AU late last year – well worth a read if you don’t want to [▶️ watch the talk](https://www.youtube.com/watch?v=yE5Tpp2BSGw) itself. He covered the bits of Go he felt got things right, what got left out, and some qualms over how Go’s mascot is used (the original was created by Rob’s wife, [Renée French](https://en.wikipedia.org/wiki/Ren%C3%A9e_French)). 

David Cassel (The New Stack)   

💡 There's more detail in [Rob's own writeup of his talk](https://commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html), which we featured a few issues ago.  

_QUICK BITS:_ 

- 🚨 The latest [official Go developer survey](https://google.qualtrics.com/jfe/form/SV_083SVAUCji98YeO?s=b) is open for just five more days – take it now to have your say.
- 📅 The [GopherCon 2024 CFP](https://sessionize.com/gophercon-2024/) is open until February 26.
- 🔐 Filippo Valsorda, cryptography expert and former Go team member, shares [the details behind creating a post-quantum cryptography library for Go](https://words.filippo.io/dispatches/mlkem768/) called`mlkem768`.
- 🎧 Dominic St-Pierre's [go podcast()](https://gopodcast.dev/) has been _Go-_ing for a year now, and he's decided to extend its short, personal format by bringing guests on, as in this week's episode: [▶️ Debugging in Go with Matt Boyle.](https://gopodcast.dev/episodes/027-debugging-in-go-with-matt-boyle)
- Elsewhere in Go podcast land, Neil S Primmer and Benji Vesterby went on _Go Time_ to [▶️ talk about last year's GopherCon 'Capture the Flag' event](https://changelog.com/gotime/301), with host Angelica Hill.   

[A Brief History of Dependency Management in Go](https://www.bytesizego.com/blog/history-of-dependency-management-go) — A quick dash through six eras of dependency management from, well, _nothing_ to Go modules. If you weren’t around in the early days, you may not remember all this. 

Matt Boyle   

[Context Control in Go](https://zenhorace.dev/blog/context-control-go/) — A look at a few easy violated rules for handling contexts in Go. The fixes demonstrated will help you identify violations in your own code and, as a bonus, remind you that _clever_ is rarely _better._ 

Horace   

[Saga Pattern Made Easy](https://pages.temporal.io/download-saga-pattern-made-easy-co) — Sagas are a common development blueprint, but they can be difficult to build, test, and maintain–learn how we can help. 

Temporal Technologies sponsor   

['I'm Going to Avoid using `any` as an Actual Type'](https://utcc.utoronto.ca/~cks/space/blog/programming/GoAvoidingAnyAsAType) — Generics introduced the `any` type, which, conceptually, is similar to `interface{},` but using `any` as a type outside generics in place of `interface{}` means something different. 

Chris Siebenmann   

[Using Gemini Models in Go with LangChainGo](https://eli.thegreenplace.net/2024/using-gemini-models-in-go-with-langchaingo/) — In this context, [_Gemini_](https://deepmind.google/technologies/gemini/#introduction) refers to Google’s multimodal AI model which you can use via Google Cloud. 

Eli Bendersky   

[Type Assertion vs Type Switches](https://rednafi.com/go/type_assertion_vs_type_switches/) — A little _aide memoire._ 
Redowan Delowar  

🛠 Code & Tools  

[Golte: Render Svelte Components in Go HTTP Handlers](https://github.com/nichady/golte) — A library that works with your router of choice, where layouts can be treated like middleware, and pages can be treated like handlers. 

Nicholas Thai   

[Goldmark 1.7: A Markdown Parser Written in Go](https://github.com/yuin/goldmark) — Pure Go, easy to extend, and [CommonMark](https://commonmark.org/) compliant (which GitHub-Flavored Markdown is based upon). There’s a WebAssembly-powered [Goldmark playground](https://yuin.github.io/goldmark/playground/) you can play with, too. 

Yusuke Inuzuka      

📰 Classifieds   

🪐 [Build application permissions with Zanzibar-inspired SpiceDB:](https://authzed.com/spicedb?utm_source=sponsored_newsletter&utm_medium=display&utm_campaign=golang_newsletter) tunable consistency, dynamic policy evaluation, robust observability, and[more](https://authzed.com/spicedb?utm_source=sponsored_newsletter&utm_medium=display&utm_campaign=golang_newsletter). 

--- 

📢 100% PostgreSQL distributed across 3 regions with multi-master, latency-based DNS routing available in a fully managed cloud - [free sign up](https://www.pgedge.com/get-started/cloud).      

[Gofeed: A Parser for RSS, Atom, and JSON Feeds](https://github.com/mmcdole/gofeed) — A mature, heavily relied upon, and robust option for parsing RSS, Atom _and_ JSON feeds. 

mmcdole   

[IntegreSQL: Manages Isolated Postgres Databases for Testing](https://github.com/allaboutapps/integresql) — Provides a RESTful JSON API for managing Postgres templates and spinning up (and managing the pool of) databases for integration testing purposes. 

all about apps GmbH   

[Inbucket: Disposable Webmail Server with SMTP and POP3](https://inbucket.org/) — A self hostable service for testing email – it accepts messages for any address and makes them available over Web, REST and POP3 interfaces. [GitHub repo.](https://github.com/inbucket/inbucket) 

James Hillyerd   

- 🧊 [Tetra3D 0.15.0](https://github.com/SolarLune/tetra3d) – 3D renderer for games built atop[Ebitengine.](https://ebitengine.org/)
- 📧 [Listmonk 3.0](https://github.com/knadh/listmonk/releases/tag/v3.0.0) – Self hosted email newsletter system ([homepage](https://listmonk.app/)).
- [go-i18n 2.4](https://github.com/nicksnyder/go-i18n) – Translate programs into multiple (natural) languages.
- [Wish 1.3](https://github.com/charmbracelet/wish) – Charm's tooling to make Go-powered SSH apps.
- [GoReleaser 1.24](https://github.com/goreleaser/goreleaser) – Build/release binaries for multiple platforms.
- [FrankenPHP 1.1](https://github.com/dunglas/frankenphp) – Modern Go-powered PHP app server.
- [Bubbles 0.18](https://github.com/charmbracelet/bubbles/releases/tag/v0.18.0) – TUI components for [Bubble Tea.](https://github.com/charmbracelet/bubbletea)
- [Carbon 2.3.8](https://github.com/golang-module/carbon) – Friendly time manipulation library.
- [Pet 0.6](https://github.com/knqyf263/pet) – Simple CLI-based snippet manager.  

🀄️ Pattern recognition.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vwqw1owlyc9qr3e3a0sa.jpg)](https://github.com/cel7t/TileEx)  

[TileEx: A Tile Pattern Extractor](https://github.com/cel7t/TileEx) — A fun little Go project that can take in an image that contains a pattern and then extract the actual repeating tile element from it. Surprisingly little code, too. 

Sarthak Shah         

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

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

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