#​481 — October 24, 2023

Unsub  |  Web Version

Together with  Bosch

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

🛠 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