Golang Weekly - Let's get optimizing

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 (PGO) in Go 1.21PGO has been a popular topic for blog posts recently, but here’s an as-close-to-official-as-it-gets example of using it to improve code, including deeper dives into two major optimizations enabled by the process. If nothing else convinces you to give it a shot, consider this: “In Go 1.21, workloads typically get between 2% and 7% CPU usage improvements from enabling PGO.”

Michael Pratt (The Go Team)

And if you fancy another article on the topic, Landon Clipp has another practical intro to PGO here that provides more of a "user-facing perspective."

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

Scaling gopls for the Growing Go Ecosystem — The official Go blog gives us two posts to sink our teeth into this week. This time, the spotlight shines on the gopls Go language server used by a variety of IDEs to enhance their Go support. This post looks at some recent advancements and speedups, and invites you to take this survey if you’re a gopls user.

Robert Findley and Alan Donovan

QUICK BITS:

  • Go 1.21.1 and 1.20.8 have been released. Minor point releases with some security fixes.

  • I want to take another opportunity to link to The Free Gophers Pack by Maria Letta – it's a helpful set of Go gopher illustrations (based upon the original by Renée French) and we used it in today's lead image.

  • Talking of the Go gopher, back in 2016 Renée French gave an ▶️ interesting talk about the Go gopher, how it came together, and some of Renée's favorite adaptations of it.

  • If you've got to write any C++, coost is worth a look. It's a tiny Boost-esque library to make C++ easier to write and with a little more Go flavor, including Go-style coroutines.

  • IEEE Spectrum has released its list of 'top programming languages' in 2023 and Go does pretty well in 8th place.

  • 📅 🤖 In a few weeks I'm attending the AI Engineer Summit in SF – if you're into the rapidly growing field of using AI and ML tools and technologies alongside software development, check it out. Even if you can't attend, you can snag a free remote ticket to watch from afar.

▶  'This Will Make Everyone Understand Go Interfaces' — For anyone experiencing confusion, Anthony GG takes on the task in his inimitable style.

Anthony GG

What I Have Changed My Mind About in Software Development“Anybody who doesn’t change their mind a lot is dramatically underestimating the complexity of the world we live in.” – Jeff Bezos

Henrik Warne

Free Course: Temporal 102 with Go — Learn how to utilize the full development cycle in Temporal with this practical follow-up to our essentials 101 course.

Temporal Technologies sponsor

Using Tailscale for Authentication of Internal Tools
Khash Sajadi

Implementing a ClickHouse Output Plugin for Telegraf in Go
David Wołosowicz

A Practical Tour of Common File Operations in Go
Adebayo Adams

🛠 Code & Tools

Wails 2.6: Create Desktop Apps with Go, JS and CSS — Ever been envious of JavaScript developers being able to use Electron to build desktop apps? Wails brings a similar option to Go. v2 is mature and solid, but Wails v3 is on the way and promises to be a big update. GitHub repo.

Lea Anthony

Goxygen 0.7: Quickly Generate a Go Backend for a JS Project — A tool that sets up a new Go-based project with Angular, React, or Vue in the front-end, and Docker and Docker Compose files to make it all work. v0.7 introduces Go 1.21 support.

Sasha Shpota

[Blog] How to Hack Kubernetes (And How to Protect It) — This roundup covers the top seven ways your cluster will likely be attacked and a corresponding countermeasure.

Teleport | goteleport.com sponsor

Participle 2.1: A Simple Parser Package — Aims to provide a straightforward and idiomatic way to define parsers in Go using a familiar approach of using struct field tags to define a grammar, so if you’ve used encoding/json before, you’re well on your way.

Alec Thomas

Lip Gloss 0.8: Style Definitions for Nice Terminal Layouts — Provides a ‘fluent’-style API for stylizing text output from your programs in an attractive way, as you'd expect being a Charm project.

Charm

Spotify 2.4.0: A Go Wrapper for the Spotify Web API — There are a variety of examples, but you can do all the obvious things like search for tracks, playlists, and control playing tracks.

Zac Bergquist

Enmime 1.0: MIME Encoding and Decoding Package — Focused on generating and parsing MIME encoded emails.

James Hillyerd

QUICK RELEASES:

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

n

Older messages

'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

The Go team's new project templating tool

Tuesday, August 1, 2023

Plus the Go survey is back, a 400 line Go git client, and Google Cloud Functions gets Go 1.21. | #​471 — August 1, 2023 Unsub | Web Version Together with Ardan Labs Go Weekly Experimenting with Project

The one where Go keeps getting better

Tuesday, July 25, 2023

Plus Go benchmarking pitfalls, a gentle intro to pointers, and finding vulnerable dependencies with govulncheck. | #​470 — July 25, 2023 Unsub | Web Version ✍️ It feels like there's a particularly

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 ☁️ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌