---
title: "Let(')s Go play ping pong."
publication: "Go Weekly"
issue: 422
published_at: "2022-07-29"
canonical_url: "https://golangweekly.com/issues/422"
---

Plus Google's newest programming language, HugoConf talks, and Chris Pratt drops in. |        

#​422 — July 29, 2022 

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

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/byvu0cziqi0j8kvd8ahy.jpg)](https://github.com/charmbracelet/gum)  

[Charm Gum: A Tool for 'Glamorous' Shell Scripts](https://github.com/charmbracelet/gum) — Much like actual gum, this is something you’ll either love or hate! It lets you create a CLI-based wizard just by providing a few arguments. The README is fantastic and packed with examples and animations. And if you’d rather brew your own in your own Go code, [Bubble Tea](https://github.com/charmbracelet/bubbletea) and [Lip Gloss](https://github.com/charmbracelet/lipgloss), upon which Gum depends, are waiting for you too. 

Charm   

[Building a Terminal-Based Pong Game in Go](https://earthly.dev/blog/pongo/) — Certainly an interesting learning experience, and this is a fun and engaging walkthrough that’ll be of particular interest if you want to pick up [tcell](https://github.com/gdamore/tcell) for creating elaborate terminal experiences, visualizations, and the like. 

Josh Alletto   [![\](https://copm.s3.amazonaws.com/9f05e61a.png)](https://www.courier.com/blog/series-b-make-notifications-delightful/?utm_campaign=demand-gen&utm_source=email&utm_medium=go-newsletter-7-29&utm_content=fundraise-blog) 

[GV (Google Ventures) Invests $35M Into Golang Notification Infrastructure](https://www.courier.com/blog/series-b-make-notifications-delightful/?utm_campaign=demand-gen&utm_source=email&utm_medium=go-newsletter-7-29&utm_content=fundraise-blog) — Too many engineering resources are wasted on notification template building and routing rules. This scalable and reliable no-code UI has parity with a robust API that lets you deliver to your users their preferred experience. 

Courier.com sponsor   

[Go 1.19's Revised Memory Model](https://tip.golang.org/ref/mem) — First mooted in [a post by Russ Cox](https://research.swtch.com/gomm) last year, Go 1.19 is seeing some revisions to Go’s memory model that aligns it more with other languages (C, C++, and Rust, for example), as well as [some new types](https://tip.golang.org/doc/go1.19#atomic_types) in the `sync/atomic` package. Note, though, _“If you must read the rest of this document to understand the behavior of your program, you are being too clever.”_ 

The Go Team   

[GoLand 2022.2 Released](https://blog.jetbrains.com/go/2022/07/28/goland-2022-2-is-here/) — The latest version of JetBrains’ popular (commercial) Go IDE is here with new features supporting generics and Go workspaces as well as fuzz testing. _“In addition, GoLand now supports WebSocket connections and can send GraphQL queries over HTTP and WebSocket protocols.”_ 

JetBrains   

**QUICK BITS:** 

- Developers at Google are working on [Carbon](https://github.com/carbon-language/carbon-lang#carbon-language--an-experimental-successor-to-c), an 'experimental successor to C++'. Preslav Rachev asks [will Carbon kill Go's momentum?](https://preslav.me/2022/07/28/029384234-will-carbon-kill-golang-momentum/) No more than Rust has, he concludes.
- HugoConf, an online event dedicated to the popular Go-powered static site generator, took place a month ago and you can now [▶️ watch all of the talks.](https://hugoconf.io/)
- 7 years ago, the developers of CockroachDB explained why [Go was the right choice for them.](https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/) They've updated the post explaining why things remain the same in 2022.   

[Building an Ephemeral Note Sharing Service in Go](https://dusted.codes/building-a-secure-note-sharing-service-in-go) — A fun tutorial that creates a self-destructing notes service from scratch using minimal dependencies (but a little Redis.) 

Dustin Gorski   

[Exploring Function Parameter Types with Go Tooling](https://eli.thegreenplace.net/2022/exploring-function-parameter-types-with-go-tooling/) — The example uses the `x/tools/go/packages` package which provides an AST for each file, allowing you to iterate and dive into packages, modules, and functions. 

Eli Bendersky   

[Ten Gotchas While Building a Universal Currency Candlestick Iterator in Go](https://marianogappa.github.io/software/2022/07/27/10-gotchas-for-building-a-universal-crypto-candlestick-iterator-in-go/) 
Mariano Gappa  

🛠 Code & Tools  

[LiteFS: FUSE-Based File System for Replicating SQLite Databases Across a Cluster](https://github.com/superfly/litefs) — This comes from the creator of BoltDB and [Litestream](https://litestream.io/) fame, so the provenance is second to none and it’s fascinating to see SQLite continue to be taken to exciting new places. 

Ben Johnson   

[Speedbump: A TCP Proxy for Simulating Variable Network Latency](https://github.com/kffl/speedbump) — The code is very straightforward and easy to read, I found. [ToxiProxy](https://github.com/Shopify/toxiproxy) is a bigger option in this space too, if you need even more chaos. 

Paweł Kuffel   

[Unlock Completely Free Access to Stream's Chat and Activity Feed APIs](https://getstream.io/maker-account/?utm_source=GolangWeekly&utm_medium=Newsletter_Content_Ad&utm_content=Developer&utm_campaign=GoLangWeek_July2022_MakerAccount_klmh22) 

Stream sponsor   

[HLive: Server-Side WebSocket-based Dynamic Template-less View Layer](https://github.com/SamHennessy/hlive) — Think ‘single page JS app’ feel but with server-side Go goodness powered by a server-side virtual DOM. 

Sam Hennessy   [![\](https://res.cloudinary.com/cpress/image/upload/w_140,e_sharpen:60/yd3jkwh220skugntkqem.jpg)](https://github.com/woojiahao/chris) 

[Chris: A Pratt Parser Implementation](https://github.com/woojiahao/chris) — This parser is focused on parsing mathematical expressions, and sadly has nothing to do with actor Chris Pratt. 

Woo Jia Hao   

[gin-rate-limit: A Rate Limiter for the Gin Framework](https://github.com/JGLTechnologies/GinRateLimit) 
JGL Technologies   

**⚡️ LIBRARY RELEASES:** 

[modernc/sqlite 1.18.0](https://pkg.go.dev/modernc.org/sqlite@v1.18.0) – Now supports `fs.FS`-based SQLite virtual filesystems (so you can embed SQLite databases into your binary).
 [Go Micro 4.8](https://github.com/asim/go-micro) – Microservices framework.
 [Sonic 1.3.4](https://github.com/bytedance/sonic) – Super fast JSON (de)serializing library.
 [Sarama 1.35](https://github.com/Shopify/sarama) – Go library for Apache Kafka from Shopify.
 [Bud 0.2.3](https://github.com/livebud/bud) – A full stack framework for Go.
 [chromedp 0.8.3](https://github.com/chromedp/chromedp) – Drive browsers with the Chrome DevTools Protocol.
 [aws-lambda-go 1.34](https://github.com/aws/aws-lambda-go) – Libraries, samples & tools for AWS Lambda work.
 [Milvus 2.1](https://github.com/milvus-io/milvus) – Vector database for scalable similarity search. 

**🔧 RELEASES OF TOOLS WRITTEN _IN_ GO:** 

[Buf 1.7](https://github.com/bufbuild/buf) – CLI tool for working with Protocol Buffers.
 ⭐️ [fq 0.0.8](https://github.com/wader/fq) – Imagine `jq` but for binary formats.
 [imgproxy 3.7](https://github.com/imgproxy/imgproxy) – Standalone server for resizing & converting remote images.
 [Chaos Mesh 2.3](https://github.com/chaos-mesh/chaos-mesh) – A chaos engineering platform for Kubernetes.
 [gobackup 1.1](https://github.com/huacnlee/gobackup) – Backup databases using FTP/scp/S3, etc.     

Jobs  

[Golang Engineers — 100% Remote (North/South America & Europe)](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects. 
Ardan Labs   

[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           

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

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

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