Golang Weekly - Fixing Go's for loops, for real

Plus we say hi to GopherCon 2023, GitHub's support for passkeys, and GoLand's latest EAP. |

#​477 — September 26, 2023

Unsub  |  Web Version

Together with  Ardan Labs

Go Weekly

Organizing a Go Module — It’s common for Go developers to think about how to organize the files and directories in projects (some of our most popular links have been on this topic). The Go project itself has tended to be quiet on the topic and has let the community figure out best practices, which has led to issues in the past, so it’s nice to see them publish something more official now.

The Go Team

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

Fixing for Loops in Go 1.22 — Go 1.21 includes a preview of a much-anticipated change to for-loop scoping that’s expected to ship fully in Go 1.22. This post shows off what will change and explains how such a significant change won’t affect Go’s backwards compatibility, by only being applied to code specifically declaring that it targets Go 1.22 or later.

David Chase and Russ Cox

QUICK BITS:

  • JetBrains has started the Early Access Program for GoLand 2023.3. As always, these builds of the popular Go IDE are free to try, and give a glimpse at what's coming up in the next major version.

  • Support for Passkeys is now generally available when using GitHub.

  • There's a proposal for adding runtime/trace 'flight recording' to Go's runtime a la the Java Flight Recorder. The idea is to maintain a circular buffer of trace data in a low-overhead way that can be interrogated as needed.

  • TinyGo 0.30 has been released which includes a switch to LLVM 16, support for Adafruit Gemma M0, and fixes for some bugs, just in time for GopherCon.

  • And yes, GopherCon 2023 is taking place right now in San Diego, CA. If you're there, we hope you're having a great time! 👋

Failsafe: Fault Tolerance and Resilience Patterns — A new Go library for building fault-tolerant apps where you can wrap code in various resilience policies such as Retry, CircuitBreaker, RateLimiter, Timeout, and Fallback. It supports async execution, cooperative cancellation, and event listeners.

Jonathan Halterman

GitHub Actions Could Be So Much BetterActions is a useful service, but the developer experience leaves much to be desired. If you’ve been frustrated when setting up and debugging workflows, you’ll find much to nod along with.

William Woodruff

How (Not) to Apply for a Software Job — Not Go specific, but one of our favorite Go bloggers.

Ben Hoyt

Temporal 101 & 102 Courses in Go — Learn Temporal's open source key concepts and best practices with our free self-paced training courses in Go.

Temporal Technologies sponsor

Top 10 Tips for Instrumenting Go Apps with New Relic — While this is part five of a series, it’s the one that summarizes all ten tips in one place.

Steve Ng (New Relic)

Replacing Python with Go and Reducing Our Docker Image Size by ~87%
Dragondrop

Implementing Enumerations in Go
William Kennedy

🛠 Code & Tools

Ebitengine v2.6.0: The 2D Game EngineEbitengine (formerly Ebiten) is the best known approach for building 2D games in Go that can run across numerous platforms (even including the Nintendo Switch). v2.6 improves Windows support, lets you control which monitor displays your game, provides a mouse cursor passthrough ability, and more.

Hajime Hoshi

Encore: Developer Productivity Platform for Go Development — Encore automates development tasks and infrastructure to shorten feedback loops, improve quality, and 2x productivity.

Encore sponsor

Sonnet: A High(er) Performance JSON Library“Fully compatible with the Go standard library, Both the encoder and the decoder passed all tests from it.” The author has benchmarks, but has also written an explanatory post on his approach.

Sugawara Yuuta

Afero 1.10: A Filesystem Abstraction System for Go — A single consistent API for accessing a variety of filesystems. Also lets you create mock and testing filesystems that don’t rely on disk at all.

Steve Francia

Flameshow: A Terminal Flamegraph Viewer — Before you whip out go install, bear in mind this tool is written in Python. Nonetheless, you get a capable terminal-based flamegraph renderer that, currently, only supports Go’s pprof data.

laixintao

automaxprocs: Automatically Set GOMAXPROCS to Match Linux Container CPU Quota

Uber Golang

📰 Classifieds

🎟️ CityJS Berlin: 1-3 November 25. Speakers include Tejas Kumar, Christian Heilmann, Rachel Nabors. Use COMMUNITY discount code to save 25% off.


💻 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.

🤔 PHP?

FrankenPHP 1.0 Beta: Another PHP App Server — Your eyes do not deceive you. This is still Go Weekly, but FrankenPHP is a new app server for PHP, written in Go and built on top of Caddy, that simplifies the deployment of PHP apps. If this idea sounds familiar, you may have encountered RoadRunner, another Go-powered PHP app server that takes a very different approach.

Kévin Dunglas

n

Older messages

Explaining Go's WebAssembly System Interface support

Tuesday, September 19, 2023

Plus a simple Go static server, looking at JSON with 'fx', and gocron springs back into life. | #​476 — September 19, 2023 Unsub | Web Version Together with Fusion Auth Go Weekly fx 30: The Go-

Let's get optimizing

Tuesday, September 12, 2023

Plus some love for the Go gopher, and Go takes 8th place in IEEE's language roundup. | #​475 — September 12, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Profile-Guided Optimization

'Cgo performance is good actually'

Tuesday, September 5, 2023

Plus how Go 1.21 enables truly reproducible builds. | #​474 — September 5, 2023 Unsub | Web Version Together with Teleport logo Go Weekly Perfectly Reproducible, Verified Go Toolchains — Go 1.21

'There will not be a Go 2 that breaks Go 1 programs.'

Tuesday, August 29, 2023

Plus RIP to AWS Lambda's Go runtime, a big TinyGo update, and an official introduction to 1.21's structured logging. | #​473 — August 29, 2023 Unsub | Web Version 👋 We're back! Well, almost

Go 1.21 released

Tuesday, August 8, 2023

Plus cross-platform sound from Go, a new dependency security tool, and we're off for a few weeks. | #​472 — August 8, 2023 Unsub | Web Version ⛱ I'm taking two weeks off and will be back on

You Might Also Like

The Race for AI Reasoning is Challenging our Imagination

Sunday, December 22, 2024

New reasoning models from Google and OpenAI ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

ScienceDaily/Minimalist lamp/Avocado tip

Sunday, December 22, 2024

Recomendo - issue #442 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Laravel VS Code Extension, Laravel 11.36, Wirechat, and more! - №544

Sunday, December 22, 2024

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

Kotlin Weekly #438

Sunday, December 22, 2024

ISSUE #438 22nd of December 2024 Announcements klibs.io JetBrains has introduced the alpha version of klibs.io – a web service that speeds up and simplifies discovering KMP libraries that best meet

Weekend Reading — Happy "That's a January Problem" week

Saturday, December 21, 2024

Can Christmas season start a little earlier this year Tech Stuff Ramsey Nasser fuck it happened i am in a situation where i do actually need to reverse a linked list Atuin I just learned about Atuin

Daily Coding Problem: Problem #1644 [Easy]

Saturday, December 21, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by IBM. Given an integer, find the next permutation of it in absolute order. For example,

🐧 Whatever Happened to Unix Workstations? — My Incredibly Cheap Alternative to a Soundbar

Saturday, December 21, 2024

Also: Here's Why More Games Need Expanded Difficulty Settings How-To Geek Logo December 21, 2024 Did You Know Lake Wendouree, an artificially created and maintained shallow urban lake in Australia,

Supercharge Your Knowledge Capture Workflow with the Obsidian Web Clipper

Saturday, December 21, 2024

Stop juggling multiple tools and supercharge your knowledge capture workflow with Obsidian's powerful Web Clipper browser extension Sébastien Dubois DeveloPassion's Newsletter Supercharge Your

Charted | The World's Most Valuable Automakers 🚙

Saturday, December 21, 2024

Tesla shares reached a record high, setting a new valuation milestone. This graphic highlights the world's most valuable automakers by market cap. View Online | Subscribe | Download Our App

Next Holiday Season, Ignore Everyone Except One Customer

Saturday, December 21, 2024

Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? 🪐 What's happening in tech today, December 21, 2024? The