#481 — October 24, 2023
Go Weekly
! 'Bang'-ing Errors in Go? — Criticisms of the verbosity of error handling in Go are common, but proposed solutions? Much less so. Ted suggests a syntax initially using exclamation marks ('bangs'), then carets (^), which can be expanded into the typical if err != nil approach by a (highly experimental) tool called bango.
Ted Unangst
🗣 Even by Hacker News standards, this article led to a busy discussion where opinions spanned, predictably, from 'I like how Go does it' to 'use Rust instead', along with more edifying points on tradeoffs Go makes to remain simple.
They're Called Slices Because They Have Sharp Edges – Even More Go Pitfalls — Nick has been blogging about various Go ‘pitfalls' recently. This third outing tackles some misconceptions about slices in particular.
Nick Tobey (Dolthub)
Feel the Power of More Than 420,000 Teammates and Work #LikeABosch — At Bosch, we shape the future with high-quality technologies and services to inspire people and improve their lives. And it’s our people who make us remarkable. Our success is your success. Let’s celebrate together. Learn more.
Bosch sponsor
Unmasking a Go HTML Bug with Differential Fuzzing — Grab a lantern (or just a coffee) and enter the murky world of finding a bug in the standard library using differential fuzzing (where two implementations of something are compared against each other.) Maciej explains how the bug was reported and the back and forth involved in its (partial) resolution.
Maciej Mionskowski
-
❓ Someone on Reddit asked what's the best IDE for Go? Unlike in many open source communities, a commercial option (JetBrains GoLand) picked up most of the love.
-
🤔 Does it matter if you find Go 'boring'? Dev-tuber ThePrimeagen ▶️ had some things to say about Go, praising its simplicity and pragmatism but saying he somehow doesn't 'love' the language.
-
📗 Matt Boyle, author of x days of Go, was briefly ▶️ interviewed by Leanpub about the book.
-
🕸 The State of WebAssembly 2023 results are in, with some relevance to Go (coming in as the 4th most popular language for WASM projects.)
-
📻 RadioGoGo is a new Go and BubbleTea-based TUI Internet radio app.
🛠 Code & Tools
Viddy: A Modern Alternative to watch — The idea here is viddy can execute commands on a periodic basis but you get niceties like ‘time travel’, attractive output, and paging.
Takumasa Sakao
elem-go: A Type-Safe Way to Create and Manipulate HTML Elements — "Similar to JSX, but for Go," says the author, who has also just published Building a Counter App with htmx, Go Fiber, and elem-go, a tutorial showing off a use case for it.
Chase Fleming
Securing a Golang App with OAuth — This tutorial will show you how to use OAuth to authenticate users in a golang application.
FusionAuth sponsor
Carbon: Simple, Semantic Datetime Package — A large number of functions to make date and time creation, parsing, and comparison easier and more fluent.
gouguoyin
go-echarts 2.3: An 'Adorable' Charts Library — Want to put together a bar chart, candlestick chart, pie chart, line charts, heatmaps or... more? It uses Apache ECharts so it’s more for webapp use rather than rendering to an image.
go-echarts
go-quartz 0.8: Simple, Zero-Dependency Scheduling Library — Inspired by the eponymously named Quartz scheduler for Java.
Eugene R.
📰 Classifieds
💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.
🐘 If you use Postgres at all, check out our sister newsletter, Postgres Weekly – the next issue goes out tomorrow.
Circumflex / clx: A Terminal Based Hacker News Client — A Bubble Tea-based terminal client for the popular tech news aggregator.
Ben Sadeh
FSRouter: A Simple File System Router Library — Inspired by Next.js's new app routing approach.
Antonio De Lucreziis
Bloom 3.6: A Package for Implementing Bloom Filters — Bloom filters are memory efficient data structures for determining set membership with a defined potential rate of false positives.
Will Fitzgerald
oasdiff: Detect Breaking Changes in OpenAPI Specs — Both a command-line tool and Go package to compare and detect breaking changes in OpenAPI specs. Useful in CI/CD, perhaps, to ensure modifications are reviewed and tested before deployment.
Tufin
-
SCS 2.6 – HTTP session management for webapps.
-
fsnotify 1.7 – Cross-platform file system notifications in Go.
-
lakeFS 1.0 – Data version control (or 'git') for your data lake.
-
golangci-lint 1.55 – A faster way to run Go linters.
-
Air 1.49 – Live reload for Go apps.
🕹 And one for fun..
Gopher2600: An Atari 2600 Emulator — A mostly feature-complete emulator that includes controller support, gameplay recording, and even CRT display effects. We linked to this years ago but it continues to get updates which is refreshing and noteworthy for such a project.
Stephen Illingworth