Using Go to build a WASM-powered 'static' site

Plus Ebitengine turns ten, an alternative to stack traces, and it's Advent of Code time again. |

#​487 — December 5, 2023

Unsub  |  Web Version

Together with  Fusion Auth

Go Weekly

errtrace: An Alternative to Stack Traces for Your Errors — Inspired by Zig, errtrace is an experimental package to trace an error’s return path through a Go program, i.e. the code path that the error took to get to the user, which may well be different to the code path that led to an error. Luckily, the repo has a comparison, if you’re confused.

Braces

▶  Russ Cox on Open Source Supply Chain Security at Google — Last week, Go’s Russ Cox gave a remote keynote to ACM’s software supply chain conference. It’s not exclusively about Go but it naturally forms the basis for many of Russ’s examples. (45 minutes.)

Russ Cox

Add Fully-Featured Auth to Your Go App with Two Lines of Code — Easy, secure, and affordable: pick three. FusionAuth is auth built for devs, by devs.

FusionAuth sponsor

Optimizing Go String Operations with Practical Examples — It’s Advent of Code time again, so string wrangling becomes of utmost importance: “I’m going to show you how I took a very simple program and made it run almost 5 times faster, with very minimal adjustments.”

Alex Bledea

Turning a Go App into a 'Static' WASM-Powered Site — The author built a tool in Go to convert CRDs (custom resources in Kubernetes) into YAML and wanted to offer the tool online. Compiling it all into a WebAssembly powered app that can be hosted in a static fashion, while offering dynamic features (that aren't reliant upon a server), wasn’t easy, but it works.

Gergely Brautigam

QUICK BITS:

Ebitengine's 2023 Retrospective — Ebitengine (formerly Ebiten) is a popular 2D game engine for Go that lets you build experiences across numerous platforms, including mobile and the Nintendo Switch. This post celebrates the project’s tenth anniversary with a month by month roundup of what happened with the project this year, as well as shares videos of some of the Ebitengine-powered games that were released.

Hajime Hoshi

Why Are Go Heaps So Complicated — Why an experienced Gopher finds the standard lib (container/heap) heap confusing and how the community came up with various, more straightforward heap implementations (one, of course, based on generics.) Note: There’s also a long standing proposal to add a slice-backed heap to container/heap.

Max Hoffman (DoltHub)

▶  Replace Kafka, RabbitMQ, Redis and More with NATS JetStream? — A straightforward introduction to NATS JetStream (a subsystem of the NATS distributed app messaging system) and how to create a publisher and consumer application in Go with its new client API.

Jeremy Saenz

Enhanced Workflow Control and Observability with Temporal Schedules — Now available: Temporal Schedules provide a more reliable and scalable solution where traditional Cron jobs fall short.

Temporal Technologies sponsor

Visualizing Map Data with Go and Leaflet — A way to parse and plot a GPX file (a format used and exported by apps like Strava) onto a Web-based map.

Miki Tebeka (Ardan Labs)

🛠 Code & Tools

Sloc, Cloc and Code (scc) 3.2: A Fast, Accurate 'Code Counter' — For multiple languages, it can count lines of code and estimate code complexity.

Ben Boyter

golang-set: Simple, Well-Tested and Generic Set Type — A generic set collection for Go: “Until Go has sets built-in…use this.”

Ralph Caraveo

Gabs: Parse, Create and Edit 'Unknown' or Dynamic JSON in Go — A wrapper for navigating hierarchies of map[string]interface{} objects provided by encoding/json.

Ashley Jeffs

📰 Classifieds

💻 Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.


💻 At Bosch, you always keep growing. Upskill yourself into countless new roles, positions and opportunities. Learn more.

Goiabada: An Authentication and Authorization Server — A new user management system that implements the OAuth2 and OpenID Connect protocols.

Leonardo D'Ippolito

Gorse: A Universal Open Source Recommender System — Gorse uses ML to provide a RESTful API of recommendations based on the data you feed it. It includes a dashboard and API docs.

zhenghaoz

n

Older messages

🥶 Like me, Go 1.22 is now frozen

Tuesday, November 28, 2023

Plus a possible symbiosis of Go and Python, and generating fake data from here to devternity. | #​486 — November 28, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly GoFakeIt 6.25.0: A

There's no nil to panic

Tuesday, November 21, 2023

Plus a dozen Go tricks and treats. | #​485 — November 21, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly River: A Fast, Robust Job Queue for Go + Postgres — A new beta, open-source job

Happy birthday to Go

Tuesday, November 14, 2023

Plus backgammon, guitar effect pedals, and identifying CPUs. | #​484 — November 14, 2023 Unsub | Web Version Together with Speakeasy logo Go Weekly Fourteen Years of Go — Russ recaps a productive year

A Charm-ed life for Go CLI tooling

Tuesday, November 7, 2023

Plus oapi-codegen v2, detecting goroutine leaks, and using Go instead of Rust to build a desktop app. | #​483 — November 7, 2023 Unsub | Web Version Together with Dragonfly Go Weekly Charm Raises $6M

Some Go tricks and treats

Tuesday, October 31, 2023

Plus how pointers are the 'broccoli' of Go. | #​482 — October 31, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Awesome Go: Thousands of Categorized Go Resources — A useful

You Might Also Like

Daily Coding Problem: Problem #1708 [Medium]

Tuesday, March 4, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Indeed. Given a 32 -bit positive integer N , determine whether it is a power of four in

Underscore Naming, Flask-SQLAlchemy, Kivy, and More

Tuesday, March 4, 2025

Single and Double Underscore Naming Conventions in Python #671 – MARCH 4, 2025 VIEW IN BROWSER The PyCoder's Weekly Logo Single and Double Underscore Naming Conventions in Python In this video

Dial An Advertiser ☎️

Tuesday, March 4, 2025

Things like phone books existed before phone books. Here's a version for your browser. Hunting for the end of the long tail • March 4, 2025 I've decided to stop being so unfair to myself with

Ranked | The World's Top 20 Economies by GDP Growth (2015-2025) 📊

Tuesday, March 4, 2025

Halfway through the 2020s, here's a report card on the top 20 economies and their progress since 2015. View Online | Subscribe | Download Our App Presented by Hinrich Foundation NEW REPORT:

Open Source Isnt Dead...Its Just Forked

Tuesday, March 4, 2025

Top Tech Content sent at Noon! Augment Code: Developer AI for real eng work. Start for free Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, March 4,

LW 172 - How to Make Compare at Pricing Show at Checkout    

Tuesday, March 4, 2025

How to Make Compare at Pricing Show at Checkout ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ Shopify Development news and articles Issue 172 -

Issue 165

Tuesday, March 4, 2025

💻🖱️ A single click destroyed this man's entire life. Fake murders get millions of YouTube views. Zuckerberg can now read your silent thoughts. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

This top multitool is under $30

Tuesday, March 4, 2025

Thinnest phone ever?📱; ArcoPlasma; Siri alternatives 🗣️ -- ZDNET ZDNET Tech Today - US March 4, 2025 GOTRAX 4 electric scooter I finally found a high-quality multitool for under $30 Compact and durable

Post from Syncfusion Blogs on 03/04/2025

Tuesday, March 4, 2025

New blogs from Syncfusion ® Stacked vs. Grouped Bar Charts in Blazor: Which is Better for Data Visualization? By Gowrimathi S Learn the difference between the stacked and grouped bar charts and choose

⚙️ GenAI Siri

Tuesday, March 4, 2025

Plus: TSMC's hundred billion dollar investment ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌