---
title: "There's no nil to panic"
publication: "Go Weekly"
issue: 485
published_at: "2023-11-21"
canonical_url: "https://golangweekly.com/issues/485"
---

Plus a dozen Go tricks and treats. |        

#​485 — November 21, 2023 

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

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/training/individual-on-demand/?utm_source=cooperpress)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uddrl5pkdig9rvlgwmqy.jpg)](https://brandur.org/river)  

[River: A Fast, Robust Job Queue for Go + Postgres](https://brandur.org/river) — A new beta, open-source job queue “_for building fast, airtight applications_” that’s written in Go and takes advantage of generics. It also uses [pgx](https://github.com/jackc/pgx) to interface with Postgres. This post does a great job of selling River's benefits. 

Brandur Leach   

[NilAway: Practical Nil Panic Detection](https://www.uber.com/en-NL/blog/nilaway-practical-nil-panic-detection-for-go/) — Nil panics are a common and hard-to-detect issue in Go, but Uber has created a static analysis tool (based on a similar tool in the Java world) that’s easy to setup and integrate with build tools, so there are.. `nil` reasons why you shouldn’t try it immediately 😅 _(Folks report that the tool can return false positives, so be alert.)_ 

Uber   [![\](https://copm.s3.amazonaws.com/3a0c3e13.png)](https://www.ardanlabs.com/training/individual-on-demand/?utm_source=cooperpress) 

[35% Off Ardan Labs Online Training](https://www.ardanlabs.com/training/individual-on-demand/?utm_source=cooperpress) — Get your skills to the next level by saving 35% off any of our Go, Rust, Docker and Kubernetes online high performance training. Learn what the seasoned engineering pros know now! Use promo code `BLACKFRIDAY2023` at checkout before the sale ends.... 

Ardan Labs Training sponsor   

[Google's Go Style Guide for Readable Code](https://google.github.io/styleguide/go/index) — What goes for Google doesn’t necessarily go for everyone else, but it remains interesting to see their take on writing idiomatic Go. This comprehensive resource isn’t meant to be _absolute_ but aims toward a ‘Go code style’ to help new and current Go developers at Google avoid common pitfalls and maintain consistency in codebases. 

Google   

[12 Personal Go Tricks That Transformed My Productivity](https://blog.devtrovert.com/p/12-personal-go-tricks-that-transformed) — A fun grab bag of ideas, though if you’re working with others, 6 and 9 might not go down so well and are best avoided – we'll leave it as a reader exercise to figure out why. 

Phuong Le   

_QUICK BITS:_ 

- GitHub looks at [what's new in the latest Git release: Git 2.43.](https://github.blog/2023-11-20-highlights-from-git-2-43/)
- A quick tale of [fixing a slow running Go app](https://cloud.google.com/blog/products/serverless/troubleshooting-performance-of-a-cloud-run-go-app) on _Google Cloud Run._
- If you have a ChatGPT Plus subscription, check out [Moss, the Go expert](https://chat.openai.com/g/g-PAHVE3a64-moss-the-go-expert) – a so-called custom 'GPT' prompted to, allegedly, answer all your Go questions. _(We're unsure where this came from and your mileage may vary!)_   

[Retrieval Augmented Generation in Go](https://eli.thegreenplace.net/2023/retrieval-augmented-generation-in-go/) — Training your own LLMs (large language models) has challenges around the staleness of data and cost, but what if you could push the LLM toward more real-time answers without retraining by fetching in external data on demand? That’s what so-called ‘RAG’ does. [Simon Vellei also shows off how to do this with Redis.](https://simonevellei.com/blog/posts/leveraging-go-and-redis-for-efficient-retrieval-augmented-generation/) 

Eli Bendersky   

[Crafting a Lightweight Markdown Editor](https://www.ersin.nz/articles/markdown-editor-with-wails-react-tailwind) — [Wails](https://github.com/wailsapp/wails) brings an Electron-esque cross-platform desktop app building approach to Go and so if you don’t like Electron (or other desktop frameworks) and _do_ like Go, Wails may be the way to.. Go 😅 

Ersin Buckley       

📰 Classifieds   

🕐NEW! Learn how [Temporal Schedules](https://t.mp/47CrMsI) are reliable, scalable, and more flexible than Cron jobs in our upcoming [webinar on Nov. 30th](https://t.mp/3G4doh5). 

--- 

💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. [Create a free profile now](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).     

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/drtnxtdyr9kmcxhmnbpq.jpg)](https://github.com/panjf2000/ants)  

[Ants 2.9: A High-Perf Fixed Capacity Goroutine Pool](https://github.com/panjf2000/ants) — If your program is designed to generate a large number of goroutines, Ants can automatically manage and recycle them within limits. 

Andy Pan   

[Telebot 3.2: A Telegram Bot Framework](https://github.com/tucnak/telebot) — Promises a ‘best of its kind’ API for working with bot command routing, inline query requests, callbacks, and more. The docs have plenty of simple examples. [v3.2 includes updates](https://github.com/tucnak/telebot/releases/tag/v3.2.0) for new Telegram bot features in Bot API 6.3-6.5. 

Various Contributors   

[Ergo 2.12: A Modern IRC Server/`ircd`](https://github.com/ergochat/ergo) — Formerly known as Oragono (and first linked by us 7 years ago!) this is a Go-powered IRCv3-compatible chat server and still getting updates to keep up with the IRCv3 specification process. 

Lingamneni, Oaks, Huber, Latt, et al.   

- [pREST 1.4](https://github.com/prest/prest) – Imagine [PostgREST](https://postgrest.org/en/stable/) but in Go.
- [Prisma Client Go 0.29.0](https://github.com/steebchen/prisma-client-go) – Typesafe database access for Go. Part of the [Prisma](https://www.prisma.io/)ecosystem.
- [goconst 1.7](https://github.com/jgautheron/goconst) – Find repeated strings that could be constants.
- [Orchestra 0.1](https://github.com/stephenafamo/orchestra) – Manage long running Go processes.
- [go-sse 0.7](https://github.com/tmaxmax/go-sse) – Server Sent Events (SSE) library.
- [goqu 9.19.0](https://github.com/doug-martin/goqu) – SQL builder and query library.
- [bearclaw 2.2](https://github.com/donuts-are-good/bearclaw) – Tiny static site generator.         

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
