---
title: "Are single letter variables that bad?"
publication: "Go Weekly"
issue: 499
published_at: "2024-03-12"
canonical_url: "https://golangweekly.com/issues/499"
---

Plus we talk gRPC, logical replication, high speed packet sending, and even un peu de Français... |        

#​499 — March 12, 2024 

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

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/consulting/?utm_source=cooperpress)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sltmrgyefepscrneeqlh.jpg)](https://toonk.io/sending-network-packets-in-go/)  

[High-Speed Packet Transmission in Go: From `net.Dial` to`AF_XDP`](https://toonk.io/sending-network-packets-in-go/) — How can you send as many packets per second as possible from a Linux machine using Go? Andree wanted to find out. As he says, _“it should be a fun read if you like networking, Go, and benchmarking”_, but you can go [straight to the code](https://github.com/atoonk/go-pktgen), if you prefer. 

Andree Toonk   

📉 [The One Billion Row Challenge in Go: From 1m45s to 3.4s in Nine Solutions](https://benhoyt.com/writings/go-1brc/) — We linked to the _One Billion Row Challenge_ [in issue 497](https://golangweekly.com/issues/497), but here Ben gets much closer to the fastest Java solution and walks through each optimization clearly. 

Ben Hoyt   [![\](https://copm.s3.amazonaws.com/bcc68a3c.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go! Experts at Your Service](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital. 

Ardan Labs Consulting sponsor   

[Go 1.22.1 and Go 1.21.8 Released](https://groups.google.com/g/golang-announce/c/5pwGVUPoMbg) — As we suggested last week, these Go releases indeed landed soon after we published, but they’re still worth being on your radar as they include security fixes for issues in `crypto/x509`, `net/http`, `net/http/cookiejar` and `html/template`. 

Michael and Carlos for the Go Team   

[The Missing Type in the Go Standard Library: Date?](https://engineering.hardfin.com/2024/02/date-the-missing-type/) — The standard library offers [a single type](https://pkg.go.dev/time#Time) for both dates and times which can cause issues when timezones or certain types of interactions get involved. Hardfin has created a package, [go-date](https://pkg.go.dev/github.com/hardfinhq/go-date), to take date representations a little further. 

Danny Hermes (Hardfin)   

_QUICK BITS:_ 

- 📺 _GopherCon 2023_ took place last September and now [▶️ many of the talks are on YouTube](https://www.youtube.com/playlist?list=PL2ntRZ1ySWBep6rEAtp9jI6GXGZdlJmWN#gophercon2023) – we're watching through and will link to our favorites in future issues. [GopherCon 2024](https://www.gophercon.com/) is taking place this July in Chicago.
- 😱 On Twitter/X, the ever-provactive [ThePrimeagen suggests](https://twitter.com/ThePrimeagen/status/1767224963755340236) that Go's _"greatest mistake is normalization of single letter variables."_ Join the thread, if you dare.. 😅
- 🎤 The _go podcast()_ features [▶️ an interview with Cloudflare's Chris Shepherd](https://gopodcast.dev/episodes/030-grpc-in-go-with-chris-shepherd) about what gRPC is, what it can do, and where it does (and doesn't) fit.
- 🇫🇷 Ardan Labs' [Ultimate Go Tour](https://tour.ardanlabs.com/tour/eng/list) (English) is now [disponible en Français, aussi!](https://tour.ardanlabs.com/tour/fre/list) _Bravo!_   

[Creating a Postgres Logical Replication System in Go](https://www.dolthub.com/blog/2024-03-08-postgres-logical-replication/) — The folks behind the (Go-powered) [Dolt database](https://github.com/dolthub/dolt) are working on a feature to replicate data from Postgres and share what they’ve learnt so far in this detailed post. 

Zach Musgrave (Dolthub)   

[The _Dys_functional Options Pattern](https://rednafi.com/go/dysfunctional_options_pattern/) — How to set optional configs without 'cooking up lasagna layers of functional indirections,' by way of a more builder-like approach. 

Redowan Delowar   

[Tuple 'Makes Pair Programming with Co-Workers and Friends Fun Again'](https://tuple.app?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=Q1_2024&utm_content=Go+Newsletter_Sponsored+Link) — Try Tuple for free and find out why staff engineers at Figma can't stop talking about Tuple. 

Tuple sponsor   

[A Few Modern `git` Commands and Features You Should Be Using](https://martinheinz.dev/blog/109) 
Martin Heinz   

▶[Why I Switched from Python to Go for AI Deployment](https://www.youtube.com/watch?v=WEVO_KJtZys) 
Code in a Jiffy  

🛠 Code & Tools  

[goqite: A Persistent Message Queue Library atop SQLite](https://www.goqite.com/) — Inspired by Amazon’s Simple Queue Service (SQS), goqite is a SQLite-backed persistent message queue for Go apps that lets you bring your own SQLite driver. 

Maragu ApS   

[FormStream: A Streaming Parser for `multipart/form-data`](https://github.com/mazrean/formstream) — A streamer for multipart form data as commonly used on the Web to send file uploads. Offers wrappers for use with net/http, Echo, and Gin. 

Shunsuke Wakamatsu   

[Yaegi 0.16.0: Yet Another Elegant Go Interpreter](https://github.com/traefik/yaegi) — A Go interpreter to enable Go to be used for scripting _within_ other apps, interactive shells, or for quick prototyping. It boasts complete support of the Go spec too. 

Traefik   

🧬 [SeqKit 2.8: A Go Toolkit for FASTA/Q File Manipulation](https://github.com/shenwei356/seqkit) — Perhaps only a handful of readers will find this _useful_ but it’s neat to see Go being used in biochemistry. FASTA/Q are formats for storing nucleotide sequences, as used in DNA/RNA analysis._GATTACA!_ 

Wei Shen      

📰 Classifieds   

🪝[Hookdeck](https://hookdeck.com?ref=goweekly-499): A managed reliability & observability layer for webhooks & async messaging. [Receive, transform, route, & deliver events at scale](https://hookdeck.com?ref=goweekly-499). 

--- 

🐘 Postgres user? Check out our sister newsletter, [Postgres Weekly.](https://postgresweekly.com/)      

🏏 [CricLang: A Programming Language for Cricket Enthusiasts](https://github.com/manthanguptaa/CricLang) — Cricket, the ball game, not the insect. It’s an experimental DSL of sorts for modelling cricket related scenarios – a bit of fun! 

Manthan Gupta   

- 🛠 [Fx 32.0](https://github.com/antonmedv/fx/releases/tag/32.0.0) – A powerful JSON viewer and processor for the terminal, that now supports YAML too! There's also a Docker image-based version now available.
- [Go-MySQL-Driver 1.8](https://github.com/go-sql-driver/mysql/releases/tag/v1.8.0) – MySQL driver for `database/sql`.
- 👄[Charm Lip Gloss 0.10](https://github.com/charmbracelet/lipgloss/releases/tag/v0.10.0) – Style definitions for nice terminal layouts.
- [Vitess 19.0](https://planetscale.com/blog/announcing-vitess-19) – Clustering system for horizontal scaling of MySQL.
- [Chroma 2.13](https://github.com/alecthomas/chroma) – Pygments-inspired syntax highlighter.
- [Vale 3.3](https://github.com/errata-ai/vale) – A linter for natural language/prose.
- [Nuke 1.3](https://github.com/ortuman/nuke/releases/tag/v1.3.0) – Memory arena implementation.
- [TinyGo 0.31.2](https://github.com/tinygo-org/tinygo/releases/tag/v0.31.2)         

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
