---
title: "What do you get when you cross a LLaMA with a Gopher?"
publication: "Go Weekly"
issue: 456
published_at: "2023-04-18"
canonical_url: "https://golangweekly.com/issues/456"
---

Plus when TinyGo beats C++, domain driven design in Go, and how Go calls Windows' APIs. |        

#​456 — April 18, 2023 

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

Together with [![JetBrains\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_120/e_make_transparent/co_white,e_outline:7/xjolzz1zmxxyxqd81f9i.png)](https://www.jetbrains.com/go/whatsnew/?utm_source=cooperpress&utm_medium=cpc&utm_campaign=golangweekly_april)  

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xd33flxuhsuljdhojtpr.jpg)](https://preslav.me/2023/04/14/golang-error-handling-is-a-form-of-storytelling/)  

[Go's Error Handling is a Form of Storytelling](https://preslav.me/2023/04/14/golang-error-handling-is-a-form-of-storytelling/) — That’s probably one of the kindest ways I’ve heard Go’s approach to error handling described, but the author makes the argument that good error messages add up and tell a story. 

Preslav Rachev   

Staying on the theme of errors, Dolthub's Max Hoffman also wrote about [where panics have their place](https://www.dolthub.com/blog/2023-04-14-keep-calm-and-panic/), how panicking is faster than raising errors, and the tradeoffs you need to consider between the two.  [![\](https://copm.s3.amazonaws.com/8ca171ba.png)](https://www.jetbrains.com/go/whatsnew/?utm_source=cooperpress&utm_medium=cpc&utm_campaign=golangweekly_april) 

[Try GoLand 2023.1!](https://www.jetbrains.com/go/whatsnew/?utm_source=cooperpress&utm_medium=cpc&utm_campaign=golangweekly_april) — This version introduces the vulnerability checker and better navigation through gRPC code. We’ve also updated the Code Vision feature so that GoLand now shows both the number of implementations for an interface and its method specifications. 

JetBrains sponsor   

[Improving Tailscale via Apple’s Open Source](https://tailscale.dev/blog/darwin-spelunking) — This is only related to Go in as much as Tailscale’s client is written in it, but it’s an interesting tale of how digging through some of Apple’s code has paid dividends in improving Tailscale’s own functionality. 

Mihai Parparita (Tailscale)   

Tailscale's Jordan Whited also [wrote about optimizations made](https://tailscale.com/blog/more-throughput/) to push Tailscale into the '10Gb/s club' and where some loop unwinding in Go helped.  

[The Tao of Go](https://bitfieldconsulting.com/golang/tao-of-go) — _“If we were to approach software development in Go in a sensitive, intelligent way, following the natural contours of the language and the problem rather than trying to bulldoze them out of the way, what would that look like? Let’s try to establish a few general principles.”_ 

John Arundel   

**IN BRIEF:** 

- Brian Candler has begun putting together [a brief guide to laying out different types of Go project.](https://gist.github.com/candlerb/3cb11576b2d73800b58f3b548dc2ba4a)
- GitHub has announced that [code scanning default setup is now available for Go code](https://github.blog/changelog/2023-04-12-code-scanning-default-setup-is-available-for-go/) (with Go joining JavaScript, Python and Ruby in this regard).
- The _Go Time Podcast_ featured a chat with Matthew Boyle [▶️ about domain driven design in Go.](https://changelog.com/gotime/273)
- ⚡️ It's good news for [TinyGo](https://tinygo.org/) in [this paper on embedded language performance on the ESP32 platform](https://www.mdpi.com/2079-9292/12/1/143) where Go even outperformed C/C++ code in some cases, "demonstrated jitter-free execution", and is "more preferable for hard real-time applications." WiFi support remains an issue, however.
- Filippo Valsorda looks at [the background to a `crypto/elliptic` vulnerability](https://words.filippo.io/dispatches/near-miss/) (now fixed in Go 1.20.2.)    

[An Indepth Look at Go's Windows Calls](https://leandrofroes.github.io/posts/An-in-depth-look-at-Golang-Windows-calls/) — After analyzing a variety of Go malware, the author ended up picking up a lot about how Go calls Windows’ APIs under the hood. This is detailed and not for the faint of heart. 

Leandro Froes   

[Six Best Practices for Kubernetes Audit Logging](https://goteleport.com/blog/kubernetes-audit-logging/?utm_campaign=eg&utm_medium=partner&utm_source=golang) — Cohesive auditing policies? Reliable backends? Here’s why you need all that plus RBAC, consistent log formats, and more. 

Teleport | goteleport․com sponsor   

▶[Why Go is Great for Command-Line Tools](https://www.youtube.com/watch?v=vOhLCTwtgiQ) — The latest in a line of short YouTube videos from Google selling the benefits of Go, we assume, to companies and teams considering Go but not yet using it. _(3 minutes)_ 

Go Team   

[How Go Fixed Everything That Was Wrong with Programming](https://medium.com/@jankammerath/how-go-fixed-everything-that-was-wrong-with-programming-1b599a1055a8) — A bold claim, but unsurprisingly this is an opinion piece ;-) 

Jan Kammerath  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/muljpcms2tiktx6dqq35.jpg)](https://github.com/gotzmann/llama.go)  

[llama.go – It's Like llama.cpp in Pure Go](https://github.com/gotzmann/llama.go) — This is exciting, but there’s a lot to unpack if you’re not into modern large language models. If you’ve heard of ChatGPT, it relies on a ‘large language model’ (LLM) and [LLaMA](https://ai.facebook.com/blog/large-language-model-llama-meta-ai/) is Facebook/Meta’s attempt at producing one of their own. [llama.cpp](https://github.com/ggerganov/llama.cpp) is a C++ app to use the LLaMA model efficiently, and now llama.go is a _Go_ attempt. Oh, and you need a _lot_ of memory. Phew. 

Serge Gotsuliak   

[Queue 1.2: Generic, Thread-Safe Queue Implementations](https://github.com/adrianbrad/queue) — Specifically, blocking, priority and circular queues. 

Adrian Brad   

[Domain Names for Go Programmers at Porkbun.com](https://porkbun.com?utm_source=golang&utm_medium=newsletter&utm_campaign=golangapril2023) — Porkbun has the best domain names for Go programmers to show off your work. Get .app, .dev, and more at the best prices. 

Porkbun Domain Registrar sponsor   

[Opengist: A Self-Hosted Pastebin](https://github.com/thomiceli/opengist) — A git-powered [Gist](https://gist.github.com/)-like pastebin app with more features than you might exepct. 

Thomas Miceli   

[go-mask: Library for Masking Sensitive Information](https://github.com/showa-93/go-mask) — Mask sensitive information or data that you don’t want to output by setting tags on structs. 

showa   

[µDiff: A Small Diffing Library](https://github.com/aymanbagabas/go-udiff) — Implements the [📄 Myers’ algorithm](http://www.xmailserver.org/diff2.pdf) for finding differences between strings. 

Ayman Bagabas   

**QUICK RELEASES:** 

- [jwt-go 5.0](https://github.com/golang-jwt/jwt)
 ↳ JSON Web Token implementation.
- [Air 1.43](https://github.com/cosmtrek/air)
 ↳ Live reload for Go apps.
- [Task 3.24](https://github.com/go-task/task)
 ↳ Task runner / `make` alternative in Go.
- [MPB 8.4](https://github.com/vbauerster/mpb)
 ↳ Multi progress bar for CLI apps.
- [Go OpenAI 1.8](https://github.com/sashabaranov/go-openai)
 ↳ OpenAI/ChatGPT API client.
- [fq 0.5](https://github.com/wader/fq)
 ↳ Like `jq` for binary formats.
- [LiteFS 0.4](https://github.com/superfly/litefs)
 ↳ FUSE-based file system for SQLite replication.
- [Kitex 0.5.2](https://github.com/cloudwego/kitex)
 ↳ Go RPC framework for microservices.
- [bitset 1.6](https://github.com/bits-and-blooms/bitset)    

Jobs  

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2%5B%E2%80%A6%5D-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired   

🧑‍💻 Got a job listing to share? _[Here's how](https://booking.cooperpress.com/jobs)_.          

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
