---
title: "A faster alternative to math/rand?"
publication: "Go Weekly"
issue: 434
published_at: "2022-10-28"
canonical_url: "https://golangweekly.com/issues/434"
---

Plus a Go powered vim-a-like, a macOS binary signer, and going back to VHS. |        

#​434 — October 28, 2022 

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

Together with [![Cockroach Labs\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_740,h_100/e_make_transparent/co_white,e_outline:10/d9sktlkk3ipcaszkhybd.png)](https://www.cockroachlabs.com/guides/oreilly-cloud-native-go/?utm_source=cooperpress&utm_medium=sponsor&utm_campaign=tofu-pipe-oreilly-cloud-native-go&utm_content=lp-static-oreilly-cloud-native-go-free-oreilly-excerpt-newsletter-1028&utm_term=prosp-go-newsletter-primary-masthead)  

The _Go Weekly_ Newsletter 

[![Demo of VHS. It only plays once, promise.\](https://res.cloudinary.com/cpress/image/upload/w_640,q_auto/tiovt0a3eoo9l35mvgkw.gif)](https://github.com/charmbracelet/vhs)   

[VHS: A 'Home Video Recorder' for Your CLI](https://github.com/charmbracelet/vhs) — Put away those Blurays, _VHS_ is back - this time, it’s a tool plus scripting language for performing various actions on the terminal which are then recorded into an animated GIF (or an MP4, webm file, or series of PNG frames). Ideal for creating quick demos of your CLI tools you could add to your `README`s, perhaps. 

Charm   

[Incremental Parsing Explained in Go](https://dev-nonsense.com/posts/incremental-parsing-in-go/) — [aretext](https://aretext.org/) is a small text editor [built in Go](https://github.com/aretext/aretext) and its creator explains how it uses functional programming patterns in its parsing of syntax for syntax highlighting purposes. 

Will Daly   [![\](https://copm.s3.amazonaws.com/6d849fe9.jpg)](https://www.cockroachlabs.com/guides/oreilly-cloud-native-go/?utm_source=cooperpress&utm_medium=sponsor&utm_campaign=tofu-pipe-oreilly-cloud-native-go&utm_content=lp-static-oreilly-cloud-native-go-free-oreilly-excerpt-newsletter-1028&utm_term=prosp-go-newsletter-primary) 

[Build Resilient Apps from the Word Go(lang)](https://www.cockroachlabs.com/guides/oreilly-cloud-native-go/?utm_source=cooperpress&utm_medium=sponsor&utm_campaign=tofu-pipe-oreilly-cloud-native-go&utm_content=lp-static-oreilly-cloud-native-go-free-oreilly-excerpt-newsletter-1028&utm_term=prosp-go-newsletter-primary) — Learn to build cloud-native, cost-effective applications in these free chapters from O’Reilly’s Cloud Native Go. 

Cockroach Labs sponsor    

[rand: A Faster Alternative to `math/rand` and `x/exp/rand`](https://github.com/flyingmutant/rand) — I pine for a catchier name, but `rand` boasts significantly more performance, simpler initialization, and remains otherwise API compatible with `math/rand` (except for `Seed()`). Benchmarks included. 

Gregory Petrosyan   

**IN BRIEF** 

- The Go team [has preannounced](https://groups.google.com/g/golang-nuts/c/0D1HwgYge94/m/SO3Tr1zBBwAJ) the release of Go 1.19.3 and 1.18.8 on November 1 (next Tuesday) – they'll include _private_ security fixes to the standard library.
- The folks at Tailscale have, amazingly, [built a Web-based SSH client for Tailscale](https://tailscale.com/blog/ssh-console/) using Go and WebAssembly. Nice work.
- GitHub's [CodeQL](https://codeql.github.com/docs/codeql-overview/about-codeql/) code scanning now supports [customizing build configs for Go code analysis](https://github.blog/changelog/2022-10-25-codeql-code-scanning-now-supports-customizing-build-configurations-for-go-analysis/) (aligning it with the C/C++, C# and Java support).
- 👻 The _Go Time Podcast_ crew came together to [▶️ tell 'spooky stories to scare devs'](https://changelog.com/gotime/253).   

[Some Undocumented Changes in Go 1.18 and 1.19](https://go101.org/blog/2022-08-22-some-undocumented-changes-in-go-1.18-and-1.19.html) — _“This article lists several missing changes in Go 1.18 and 1.19 release notes.”_ Some of these are a bit esoteric, but the GoTV (Toolchain Version, not television, alas) is a nice addition. 

Tapir Liu   

[Scaling WebRTC with a Globally Distributed Mesh Network](https://blog.livekit.io/scaling-webrtc-with-distributed-mesh/) — A technical look at the architecture of _LiveKit Cloud_ and how their team scaled it up to supporting real-time, 100K-user events. On Go, of course. Regular [LiveKit](https://github.com/livekit/livekit) is open source and available to all. 

David Zhao (LiveKit)   

['No Safe Efficient Ways to Do Three-Way String Comparisons'](https://go101.org/blog/2022-10-01-three-way-string-comparison.html) — What was a pretty bite-sized post making an observation about `strings.Compare`, and how Go doesn’t _really_ want you to use it, turned into [quite an extensive discussion](https://news.ycombinator.com/item?id=33316402) on Hacker News. 

Tapir Liu   

▶[Building a Decentralized P2P Card Game](https://www.youtube.com/watch?v=Iw5Y_-vsGac&t=3s) — All this decentralized stuff isn't really our _cup of tea,_ but there aren’t many people putting out long, detailed Go livestreams, so hats off to the author. 

Anthony De Meulemeester  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/kfy13ivha0u7p2hlpsaa.jpg)](https://github.com/golang-module/carbon)   

[Carbon 2.2: Simple, Semantic Datetime Package](https://github.com/golang-module/carbon) — Carbon offers a massive number of functions that make handling date and time creation, parsing, comparison, etc. much easier and more semantic. 

gouguoyin   

[Forget Everything You Know About SSH](https://tailscale.com/tailscale-ssh/?utm_source=golang&utm_medium=email&utm_campaign=2022-10-28&utm_content=brand) — Say goodbye to managing SSH keys. Tailscale SSH works where Tailscale works & is free for personal use up to 20 devices. 

Tailscale sponsor   

[Quill: Sign Mac Binaries from Any Platform](https://github.com/anchore/quill) — Give it a signing private key and certificate from Apple, Quill does the rest to sign and notarize macOS binaries. 

Anchore, Inc.   

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

[aretext: Minimalist Text Editor with Vim-compatible Key Bindings](https://aretext.org/) — We mentioned an article by its author above, but here’s the editor itself. A text editor is a fantastic side project and the [source is here.](https://github.com/aretext/aretext) 

Will Daly   

[Tart: A Gitlab CI Runner Backed by the Firecracker MicroVM](https://github.com/nanmu42/tart/) — Billed as an educational toy, it’s worth a look if you want to tie together such technologies at under 2k LOC. Why ‘tart’? _“I like egg tarts.”_ Quite. 

Li Zhennan   

[FerretDB 0.6: A Go-Powered MongoDB Alternative](https://github.com/FerretDB/FerretDB/releases/tag/v0.6.0) — But it uses Postgres as the storage engine. v0.6 is the first _alpha_ release. 

FerretDB   

[Argo CD as a Managed Service from the Creators of Argo](https://akuity.io/akuity-platform/?utm_source=newsletter&utm_medium=cooperpress-sponsored&utm_campaign=golangweekly) — Akuity's architecture increases security, improves scalability, provides insights, and saves money. Free trial available. 

Akuity sponsor   

- [CCache 3.0](https://github.com/karlseguin/ccache)
 ↳ LRU cache focused on high concurrency use cases.
- [Ginkgo 2.4](https://github.com/onsi/ginkgo)
 ↳ Modern testing framework for Go.
- [Vitess 15.0](https://github.com/vitessio/vitess/releases/tag/v15.0.0)
 ↳ Clustering system for horizontally scaling MySQL.
- [Hertz 0.4](https://github.com/cloudwego/hertz)
 ↳ HTTP framework for building microservices.
- [Micro 3.14](https://github.com/micro/micro) – _Ditto!_
- [Caire 1.4.5](https://github.com/esimov/caire)
 ↳ Content aware image resizing library.
- [SFTPGo 2.4](https://github.com/drakkan/sftpgo)
 ↳ Flexible SFTP server built in Go.     

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
