Why Go slices throw up surprises

#​534 — December 3, 2024

Unsub  |  Web Version

Go Weekly

The Draft Go 1.24 Release Notes — Last week, we enjoyed Daniel Martí’s slidedeck on what’s coming in Go 1.24 early in 2025 – we’ve now noticed the draft release notes are coming along well and give a thorough bulletpoint-heavy roundup of what we can expect.

Go Team

Weak Pointers in Go: Why They Matter Now — A look at a feature expected to land properly in Go 1.24 (via the weak package). Weak pointers are a low-level primitive that enable the creation of certain memory-efficient structures and Phuong explains the basics of how they work.

Phuong Le

We Put the Go in Google Gemini — Google Gemini 1.5 Flash 8B for Go has a 1M token context window, capable of processing more than 30,000 lines of code via screencast or logfiles in seconds for a fraction of the cost. Build today using the Google API Quickstart in Go.

Google Gemini sponsor

Why Go Slices Still Surprise Me — Slices are a common source of confusion and bugs, and this could be due to the merging of two different use cases into one concept. Sometimes, it’s a 'fat pointer'; sometimes, it’s a dynamic array. Confusing the two is where the pain starts.

James Smith

Go-App: A Package to Build Progressive Web Apps with Go and WebAssembly — An intriguing way to build webapps entirely in Go (including the frontend UI). astextract is a Go-source-to-AST app that demonstrates the concept. GitHub repo.

Maxence Charriere

Diving into eBPF: Building a Process Tracer from Scratch — This is certainly a deep dive down a technical Linux rabbit hole, but this sort of post is gold for when you need to plumb such depths.

The Smidt

IN BRIEF:

Running a Simple Go Web Service on NixOS“I only just started using NixOS modules to manage my personal services, but I’m excited at how well they work for so little investment.”

Michael Lynch

📄 Mastering Go Debugging from Emacs – A lot of detail for fans of the long standing operating system editor. Victor Dorneanu

📄 Lessons Learned Adding OpenTelemetry to a (Cobra) Command-Line Go Tool Jamie Tanna

📄 The Smallest Thing in Go – A quick look at Go’s iota identifier. John Arundel

📄 Good Union Types in Go Would Probably Need Types Without a Zero Value Chris Siebenmann

📄 Building a Distributed Log using S3 (in Under 150 Lines of Go) Avinash Sajjanshetty

🛠 Code & Tools

Vince: Go-Powered, Self Hosted Web Analytics System — Web stats, link tracking, and more, for unlimited sites and in a single binary. It can even act as a drop-in replacement for Plausible and use the same scripts. There’s an example of a live dashboard. GitHub repo.

Geofrey Ernest

🔊 go-taglib: Read/Write Audio Metadata Tags — Read and write metadata tags for audio files (like MP3, FLAC, and OGG) including support for multi-valued tags. Portable with no external runtime dependencies (it embeds a WASM version of the C++-based taglib). (Note: LGPL licensed.)

Senan Kelly

WorkOS: Sell to Enterprises with a Few Lines of Code — The modern identity platform for B2B SaaS, offering flexible, easy-to-use APIs to integrate SSO, SCIM, and FGA in minutes instead of months.

WorkOS sponsor

Rill 0.6: A Composable Concurrency Toolkit for Go — A collection of functions for streaming, parallel processing, and pipeline construction – all aiming to make it “easier to build concurrent programs from simple, reusable parts.”

Viktor Nikolaiev

🪨 Pebble: RocksDB/LevelDB Inspired Key-Value Database in Go — A key-value store focused on performance that uses RockDB’s file format but adds a few extra features that CockroachDB needs. It’s used at scale within CockroachDB and is considered stable and production ready.

CockroachDB

🕸️ Katana: A Web Crawling and Spidering Framework — A flexible Go-powered Web crawling tool (which can also be used as a library from Go) that can work in both headless and non-headless modes and has lots of customizable features.

ProjectDiscovery

shortuuid 4.2: Generate Concise, Unambiguous and URL-Safe Unique IDs — These aren’t standardized UUIDs, but for when you want short, non-sequential user-facing IDs (e.g. KwSysDpxcBU9FNhGkn2dCf).

Peter Lithammer

Quill 0.5: Sign Mac Binaries from Any Platform — Give it a signing private key and certificate from Apple, Quill does the rest to sign and notarize macOS binaries.

Anchore, Inc.

📰 Classifieds

How Authorization fits into the Architecture of Secure AI RAG stacks? Watch AuthZed CEO Jacob Moshenko addressing th

Created 22d | Dec 3, 2024, 5:40:03 PM


Login to add comment