Golang Weekly - Errors, errors, and errors again

Plus another success story for profile-guided optimization. |

#​510 — June 11, 2024

Unsub  |  Web Version

Together with  Frontend Masters logo

Go Weekly

An Applied Introduction to eBPF with Go — eBPF is a technology that allows running sandboxed programs within the Linux kernel, enabling a wide range of advanced networking, security, and observability capabilities. This post covers two examples of using eBPF to monitor system calls and incoming IP packets.

Ozan Sazak

Build Go Apps That Scale on AWS — Learn how to build and deploy scalable applications to AWS using Go. This detailed video course will cover AWS Lambda, DynamoDB, API Gateway, JSON Web Tokens, and more.

Frontend Masters sponsor

The Profile-Guided Optimization Experience at Grab — First, Dolt showed us their wins using Go 1.21+’s profile-guided optimization (PGO) feature. Then Cloudflare needed 97 fewer CPU cores thanks to it. Now, folks working on Southeast Asia’s leading ‘superapp’, Grab, show off their wins and learnings, along with the Dockerfile used to make it happen.

Hu and Sharma (Grab)

QUICK BITS:

Go Error Propagation and API ContractsNot another rant about error verbosity in Go, but an example-driven plea to be more intentional with handling errors returned from other functions your code calls. Luckily, you have several options, but any choice should be intentional and apropos.

Matt T. Proud

Error Flows in Go — Sticking to the theme of errors! Last year, Preslav wrote Go’s Error Handling is a Form of Storytelling – here’s the followup, where he stresses the importance of fleshing out the context of what caused an error, since “X failed” is often no help at all.

Preslav Rachev

Sentinel Errors and errors.Is() Slow Your Code Down by.. 500%? — Not exactly, but it seems errors in Go are an endless source of discussion lately. The benchmarks here are interesting but you need to use a critical eye, as always. If you need every bit of performance, though, there could be a spot to squeeze.

Zach Musgrave (DoltHub)

Hookdeck: The AWS API Gateway + Amazon EventBridge Alternative — Receive, authenticate, transform, filter, route, & send events across your EDA with an event gateway for engineering teams.

Hookdeck sponsor

How to Build and Deploy a Telegram Bot with Kamal — The bot is written in Go, but deployed using Kamal, a container based deployment tool fresh from the Ruby world.

Kyrylo Silin

📄 Things You Wish You Didn't Need to Know About S3 Daniel Grzelak

📺 Creating a Distributed File Storage System in Go Anthony GG

🛠 Code & Tools

Gowebly: A CLI to Build Web Apps with Go — Put together the fundamentals of a basic full-stack webapp quickly with this. Supports Go frameworks like Fiber, Gin, and Echo, but also brings things like htmx, Hyperscript, Tailwind CSS, and Alpine.js into play. Live reloading, too! GitHub repo.

Gowebly

Announcing GoReleaser v2 — A tool for releasing Go projects with cross-compilation, releasing to systems like GitHub and GitLab, nightly builds, image creation, etc. v2 removes lots of deprecated features so you need to take care when upgradingGitHub repo.

Carlos Becker

xstrings: String Functions Used in Other Languages But Absent in Go — Lots to enjoy here, such as ‘centering’ strings, changing between different casing systems, partitioning strings, counting words, reversal, etc.

Huan Du

📰 Classifieds

Your fastest path to production. With Render, you can build, deploy, and scale your apps with unparalleled ease – from your first user to your billionth.


🐘 PostgreSQL user? We have a newsletter for that.

Stateless: A Fluent Library for Creating State Machines — It supports almost the same API as a similar project in C#.

Quim Muntal

Tokenizer: Pure Go Implementation of OpenAI's Tokenizer — When you use OpenAI’s GPT, input and output is delivered in ‘tokens’ which are not the same as characters, syllables or words, but somewhere in between.

Wahlmann and Wendt

  • Go Micro 5.0 – Go microservices framework. Notably, it switches from Apache 2.0 licensing to the Business Source License (BSL)..

  • Vale 3.5 – A linter for natural language/prose. Now with support for linting comments in Go, Rust, Python, Ruby, C/C++, JavaScript, TypeScript, YAML, and CSS files.

  • GoCV 0.37 – The Go bindings for OpenCV 4 now support OpenCV 4.10.0.

  • Piko 0.3 – Reverse proxy for local services / open alternative to Ngrok.

  • jqp 0.7 – A Go-powered TUI playground to experiment with jq.

  • pgweb 0.16 – Cross-platform client for Postgres databases.

  • raft 1.7 – Go implementation of the Raft consensus protocol.

  • go-elasticsearch 8.14 – Official Elasticsearch client library.

n

Older messages

Generating Go boilerplate from OpenAPI specs

Tuesday, June 4, 2024

Plus a look at some Go alternatives to using Makefiles. | #​509 — June 4, 2024 Unsub | Web Version 🫣 We took a break last week, but forgot to notify you in advance - sorry! You didn't miss anything

The Go team explains compiler optimizations

Tuesday, May 21, 2024

Plus the latest GoLand EAP begins. | #​508 — May 21, 2024 Unsub | Web Version Together with Flipt Go Weekly ▶ Boosting Performance of Go Apps with Optimizations — Three members of the Go team gave a

Using 97 fewer cores thanks to PGO

Tuesday, May 14, 2024

Plus an HNSW indexed vector store library, a new Go game hits the Steam store, and is 'ok' ok?. | #​507 — May 14, 2024 Unsub | Web Version Together with Stytch logo Go Weekly Reclaiming CPU for

A very random issue

Tuesday, May 7, 2024

Plus a new language that compiles to Go, charts for the terminal, and some Go books from Packt. | #​506 — May 7, 2024 Unsub | Web Version Together with Ardan Labs Go Weekly Evolving the Go Standard

Going supersonic

Tuesday, April 30, 2024

Plus Go remains popular in pull requests, a CP/M emulator, and, sure, Go isn't Java. | #​505 — April 30, 2024 Unsub | Web Version ✍️ It's been a quiet week for big Go related news, but we still

You Might Also Like

This Week's Daily Tip Roundup

Sunday, July 7, 2024

Missed some of this week's tips? No problem. We've compiled all of them here in one convenient place for you to enjoy. Happy learning! iPhoneLife Logo View In Browser Your Tip of the Day is

Laravel v11.14, Auth Screens for Your Laravel Apps, and more! - №520

Sunday, July 7, 2024

Your Laravel week in review ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Apple Goes Small and Super Multimodal

Sunday, July 7, 2024

Plus a lot of new models being released and quite an active week for AI VCs. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Kotlin Weekly #414

Sunday, July 7, 2024

ISSUE #414 7th of July 2024 Articles From Hilt to Koin using Koin Annotations This article explores Hilt and Koin, comparing both frameworks, and going through a detailed process for migrating from

Papers, Please/Will We Ever Get Fusion Power/Magic Color Picker

Sunday, July 7, 2024

Recomendo - issue #418 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Weekend Reading — Gesturing wildly and in every direction

Saturday, July 6, 2024

This week we kick start the Slow Software Movement, CTRL+F the Spice Rack, walk over the kitchen table, slop the book, hide behind a tree, skip leg day, and hide under the weighted blanket. 😎 Labnotes

📳 Why Your Older iPhone Won't Get Apple Intelligence — The Perfect Gaming Controller

Saturday, July 6, 2024

Also: Apple TV+ Is Missing These Essential Features, and More! How-To Geek Logo July 6, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your

Mind The Pregap 💿

Saturday, July 6, 2024

The tale of the pregap, a weird quirk of the compact disc era. Here's a version for your browser. Hunting for the end of the long tail • July 06, 2024 Today in Tedium: Having gotten through a

Daily Coding Problem: Problem #1488 [Hard]

Saturday, July 6, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Airbnb. We're given a hashmap associating each courseId key with a list of courseIds

Ranked | The World's Most Endangered Animals 🦍

Saturday, July 6, 2024

We look at the 10 most endangered animals on the planet, showing estimated numbers left of each species. View Online | Subscribe Voronoi: The App Where Data Tells the Story FEATURED STORY Ranked: The