#494 — February 6, 2024 |
|
Go Weekly |
Testing Out Profile-Guided Optimization on Dolt's SQL Benchmarks — Profile-guided optimization 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 — 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 |
❤️ Postgres — 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' — 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 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). David Cassel (The New Stack) |
💡 There's more detail in Rob's own writeup of his talk, which we featured a few issues ago. |
QUICK BITS:
|
A Brief History of Dependency Management in 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 — 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 — 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 Chris Siebenmann |
Using Gemini Models in Go with LangChainGo — In this context, Gemini refers to Google’s multimodal AI model which you can use via Google Cloud. Eli Bendersky |
Type Assertion vs Type Switches — A little aide memoire.
|
🛠 Code & Tools |
Golte: Render Svelte Components in Go HTTP Handlers — 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 — Pure Go, easy to extend, and CommonMark compliant (which GitHub-Flavored Markdown is based upon). There’s a WebAssembly-powered Goldmark playground you can play with, too. Yusuke Inuzuka |
|
Gofeed: A Parser for RSS, Atom, and JSON Feeds — A mature, heavily relied upon, and robust option for parsing RSS, Atom and JSON feeds. mmcdole |
IntegreSQL: Manages Isolated Postgres Databases for Testing — 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 — 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. James Hillyerd |
|
🀄️ Pattern recognition.. |
TileEx: A Tile Pattern Extractor — 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 |