Golang Weekly - Answering all the big questions

Plus a big GoReleaser release, all the GopherCons, and an MIT workshop on concurrency that uses Go. |

#​467 — July 4, 2023

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

Frequently Asked Questions About Go — Did you know there's an official Go FAQ? It's been around forever, but somehow we’d not run into it it before.. 😅 It’s packed with interesting stuff and worth a flip through. Some of our favorites:

The Go Team

How Grab Uses Its Own Go Module Proxy — The team behind Grab, a popular ‘super-app’ in Southeast Asia, relies on a large Go monorepo for its backend dev projects and they use the Athens Go module store and proxy to make their dev process smoother and, in particular, to reduce module fetching times.

Jerry Ng (Grab)

Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.

Ardan Labs Consulting sponsor

Proposal: Let's Change the pprof Mutex Profile in Go 1.22 — This is, admittedly, a niche topic. The idea is to measure contention based on how many goroutines are blocked on a mutex rather than the number of OS threads (which may be just one). For example, if you hold a mutex for 10ms and several goroutines wait for it, only 10ms total contention would currently be recorded.

Russ Cox

IN BRIEF:

▶  MIT 6.824 Distributed Systems — It’s from 2020, but this playlist did the rounds on social media recently and what I’ve watched so far has been good. Prof. Robert Morris tackles the broad concepts of distributed systems, including fault tolerance, replication, and concurrency control. It’s broadly language agnostic, though Go is used for the main coding sections, such as the lecture on building a consensus algorithm in Go.

Robert Morris (MIT)

Creating a Simple Fixed-Window Rate Limiter in Redis — A short and sweet example of using a Lua script from Go to perform atomic actions in Redis.

Mahmud Ridwan

Rapidly Develop Golang Microservices In Kubernetes — Run your microservices locally and connect to real dependencies in a staging Kubernetes environment. Try our playground.

Signadot sponsor

About Structured Logging in Go 1.21 — We’ve mentioned the new structured logging (slog) package coming to Go 1.21 a few times recently, but Lukás pokes around, explains its interface, and how to use it today.

Lukáš Zapletal

Adventures in Building a Go Container with Nix — One developer’s notes are often another developer’s treasure.
James Williams

How to Deploy Your Existing Containers to OpenFaaS
Alex Ellis (OpenFaaS)

🛠 Code & Tools

Chroma 2.8: Pure Go Syntax Highlighter — Take source code and turn it into syntax highlighted HTML, ANSI colored text, or just grab the raw tokens in JSON. Brings most of the features of Pygments to Go and can use Pygments’ lexers and styles too. There’s an online playground where you can try it out. v2.8 adds support for ArangoDB Query Language and WebGPU Shading Language, plus more.

Alec Thomas

Announcing GoReleaser v1.19: The Big ReleaseGoReleaser is, unsurprisingly, a tool for releasing Go projects. It offers cross-compilation, release to systems like GitHub and GitLab, nightly builds, Docker image creation, packaging, and more. v1.19 improves support for Nix, Winget, Homebrew, Krew, and Scoop, among other things.

Carlos Alexando Becker

Encore: Declarative Infrastructure for Go — Define infrastructure directly in application code and get local, preview, and cloud environments automatically.

Encore sponsor

Mailpit 1.7: Email and SMTP Testing Tool — Built in Go, Mailpit is a general email testing tool and API for all developers. You can use it to view emails “sent” through its mock SMTP server, store emails, and even relay them on.

Ralph Slooten

Zygo: A Lisp Interpreter in 100% Go“Written in Go and plays nicely with Go programs and Go structs,” it could provide you with an interesting way to provide a DSL within Go apps.

Jason E. Aten, Ph.D.

Watermill: Library for Building Event-Driven Apps — A library for working with message streams (over numerous channels like Kafka, RabbitMQ, HTTP or even MySQL binlogs) to build event driven apps.

Three Dots Labs

Jobs

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

  • GoLand 2023.2 EAP7
    ↳ Now includes a LSP API for plugin developers.

  • Centrifugo v5
    ↳ Scalable real-time messaging server.

  • TiDB 7.2
    ↳ Distributed MySQL-compatible HTAP database. (Repo.)

  • FerretDB 1.5
    ↳ MongoDB alternative built atop Postgres (or, now, SQLite).

  • env 9.0
    ↳ Parse environment variables into a struct.

  • Goxygen 0.6
    ↳ Generate a full stack Web project. Now with Go 1.20 support.

  • Column 0.4
    ↳ High-performance, columnar in-memory store.

  • Kubo 0.21
    ↳ IPFS implementation in Go

n

Older messages

Go's three new builtin functions

Tuesday, June 27, 2023

Plus running Go in Jypyter Notebooks, a Go app generator, and using htmx with Go. | #​466 — June 27, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Go 1.21 Release Candidate — Despite

Random numbers in Go, version 2

Tuesday, June 20, 2023

Plus how and when to use Go pointers effectively, Mergo 1.0, and just how much Go is 'admired and desired.' | #​465 — June 20, 2023 Unsub | Web Version Together with Courier logo Go Weekly

Go toolchain changes in Go 1.21+

Tuesday, June 13, 2023

Plus talking to Matt Boyle about DDD, Ebitengine turns 10, and building traffic lights and fractals with Go. | #​464 — June 13, 2023 Unsub | Web Version ✍️ If you're intrigued about domain-driven

Go's on IBM mainframes now

Monday, June 12, 2023

Plus a natural language date/time parser, a new HTTP request router, and a way to visualize git contributions locally. | #​463 — June 6, 2023 Unsub | Web Version Together with Courier logo Go Weekly

Let's build a distributed K/V store in Go

Tuesday, May 30, 2023

Plus PayPal's Go-powered database, a fluent HTTP client library, and Mario makes an appearance. | #​462 — May 30, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Implementing a

You Might Also Like

Software Testing Weekly - Issue 220

Saturday, May 18, 2024

Software Testing Conferences 📚 View on the Web Archives ISSUE 220 May 18th 2024 COMMENT Welcome to the 220th issue! Have you ever been to a testing conference? They're a great way to learn about

📶 Is a Cellular iPad Worth It? — How to Prevent YouTube From Taking Over Your Screensaver

Saturday, May 18, 2024

Also: This Robot Vacuum Can Clean Stairs, and More! How-To Geek Logo May 18, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your inbox by

Weekend Reading — Objection-oriented programming

Saturday, May 18, 2024

This week we find a power-up box, replace GitHub Actions with Maven XMLs, avoid the worst website in the world, revisit RTO policies, “listen” to OpenAI employees, watch our Slack private messages, do

Daily Coding Problem: Problem #1445 [Easy]

Saturday, May 18, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Jane Street. The United States uses the imperial system of weights and measures, which

You don’t have to take our word for it…

Saturday, May 18, 2024

You can probably tell how excited we are to re-launch our Gigantic courses – which bring on-demand product management training for today's modern Product Managers and Product Leaders. In fact, we

🐍 New Python tutorials on Real Python

Saturday, May 18, 2024

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: What Is the __pycache__ Folder in Python? In

Visualized | Life Expectancy by Region (1950-2050F) 📊

Saturday, May 18, 2024

This map shows life expectancy at birth for key global regions, from 1950 to 2050F. View Online | Subscribe Presented by Voronoi: The App Where Data Tells the Story FEATURED STORY Life Expectancy by

New Wi-Fi Vulnerability Enables Network Eavesdropping via Downgrade Attacks

Saturday, May 18, 2024

THN Daily Updates Newsletter cover The DevSecOps Playbook: Deliver Continuous Security at Speed ($19.00 Value) FREE for a Limited Time A must-read guide to a new and rapidly growing field in

🐍 New Python tutorials on Real Python

Saturday, May 18, 2024

Hey there, There's always something going on over at realpython.com as far as Python tutorials go. Here's what you may have missed this past week: What Is the __pycache__ Folder in Python? In

Toward 'local' AI w/ Apple's new chip

Saturday, May 18, 2024

faster than the cloud ☁️ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌