---
title: "Initial reports of Go on Apple's new Arm-based CPUs"
publication: "Go Weekly"
issue: 339
published_at: "2020-11-20"
canonical_url: "https://golangweekly.com/issues/339"
---

Plus when to use sync.Cond, good and bad practices, and a Go powered video chat system.       

#339 — November 20, 2020 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/339)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1605881337/ctccsogyfyfnuvxouibd.jpg)](https://roland.zone/m1-go-benchmarks/)  

[Go Standard Library Benchmarks: Intel i5 vs Apple's M1](https://roland.zone/m1-go-benchmarks/) — If you’ve wondered how Apple’s newest Arm-based CPU fares with Go, these results are promising. As with _all_ benchmarks, though, maintain a critical eye, especially as these are microbenchmarks against an older i5 CPU(!) but it's still worth reporting and there's more info below.. 

Roland Shoemaker   

[The Pros of `Cond`s](https://lukechampine.com/cond.html) — If you’ve never used `sync.Cond` (and it’s not _that_ popular in Go code) Luke wants to sell you on why and where it’s useful. If you have events you need to sit around and wait for, this article is for you. 

Luke Champine   [![\](https://copm.s3.amazonaws.com/98b94116.png)](https://www.cockroachlabs.com/blog/spatial-data/?utm_campaign=cooperpress-2020-Q4&utm_source=goweekly&utm_medium=sponsor&utm_content=goweekly-primary-spacial) 

[Support for Geospatial Data - Written in Go](https://www.cockroachlabs.com/blog/spatial-data/?utm_campaign=cooperpress-2020-Q4&utm_source=goweekly&utm_medium=sponsor&utm_content=goweekly-primary-spacial) — The most upvoted feature in the history of CockroachDB was support for geospatial data & indexing. And now it’s here. We’ve rebuilt all spatial data types and libraries in Go and we’d love for the Go community to test it out. 

Cockroach Labs sponsor   

🐦 [Thread: _"Let's See How The New M1 Chips Do On Go Benchmarks!"_](https://twitter.com/filosottile/status/1328851878277509123) — Filippo Valsorda of the Go team does eventually get to the benchmarks but the real takeaway here is his journey (signed binaries [are mandatory on arm64](https://github.com/golang/go/issues/42684)?) to get there. If you’re thinking of buying a new Mac, read this. 

Filippo Valsorda   

[Go’s Recurring Security Problem](https://medium.com/tempus-ex/gos-recurring-security-problem-2b5339f19216) — _“`go get` does a lot under the hood, including invoking third-party tools like `git` and `clang` in ways that are heavily influenced by package configurations. Ensuring that these invocations are safe is an uphill battle that Go hasn’t quite won yet.”_ 

Chris Brown    

- You know Go trainer extraordinaire [Bill Kennedy](https://twitter.com/goinggodotnet)? He's launched a new podcast focused on 'intimate conversations with engineers' – the first episode can be [watched on YouTube](https://www.youtube.com/watch?v=mQidWZbc8JM&feature=youtu.be) or you can [find it on Apple Podcasts](https://podcasts.apple.com/us/podcast/ardan-labs-podcast/id1539547911) (or [RSS](https://feeds.buzzsprout.com/1466944.rss)). His first guest is Googler and Gopher Andy Walker.
- [GoLand 2020.3](https://blog.jetbrains.com/go/2020/11/12/goland-2020-3-goes-beta/), the popular commercial Go IDE, is now in beta.  

💻 Jobs  

[Mux Is Hiring Across the Board to Help Build the Stripe for Video](https://get.mux.com/3lBXdvu) 

Mux   

[Find a Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-golangweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77582) — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers. 

Vettery  

📘 Tutorials and Stories  

[Writing a Postgres Foreign Data Wrapper for Clickhouse in Go](https://arunsori.me/posts/postgres-clickhouse-fdw-in-go/) — Foreign data wrappers (FDWs) provide a way for Postgres servers to interact with external services (including other database systems), such as the [ClickHouse](https://clickhouse.tech/) OLAP DBMS covered here. 

Arun Sori   

[Using 'Dot Imports' in Views](https://www.maragu.dk/blog/using-dot-imports-in-views-in-go/) — Dot imports let you import a package into the local namespace (so no prefixing is needed!) – it’s not a good practice, but also not super commonly known, and Markus has speculated on an interesting use case for them at least. 

Markus Wüstenberg   

[Good and Bad Practices - A Limiting Perspective?](https://pmihaylov.com/good-and-bad-practices/) — Certain patterns or approaches can get painted as being ‘good’ or ‘bad’ practices (see ‘dot imports’ above!) but is it always so binary? No, says Preslav. 

Preslav Mihaylov   

[Storing Telegraf Telemetry in New Relic One](https://blog.newrelic.com/engineering/how-to-collect-telegraf-metrics/?utm_campaign=FY21-Q3-DEV-OBSV-AMER-GN-NL-None-B_CTM&utm_medium=NL&utm_source=GN&utm_content=B_CTM&fiscal_year=FY21&quarter=Q3&gtm=DEV&program=OBSV&ad_type=None&geo=AMER) — Learn how to use an output plugin that extends the Golang Telemetry SDK to ingest data with Telegraf and New Relic One. 

New Relic sponsor   

[An Introduction to AWS Lambda Functions in Go](https://tpaschalis.github.io/golang-aws-lambda-getting-started/) — This detailed look includes forays into logging, triggers (including API Gateway), using Context, and versioning the functions. 

Paschalis Tsilias 3rd degree connection   

[Refactoring for Better Testability](https://developer20.com/refactoring-for-better-testability/) — The first in a series of posts on refactoring existing code for testability. This _is_ good practice! ;-) 

Bartłomiej Klimczak   

[How to Build Your Own Serverless Subscriber List with Go and AWS](https://www.freecodecamp.org/news/build-your-own-serverless-subscriber-list-with-go-and-aws/) — How to build an email subscription sign up flow (complete with double opt in) using Lambda and DynamoDB. Can’t be bothered? [Simple Subscribe](https://github.com/victoriadrake/simple-subscribe) is Victoria’s project with it all done for you ;-) 

Victoria Drake   

[Go Constants and JSON: To Iota and Back](https://bojanz.github.io/go-constants-json-iota/) — Constants and `iota` are very useful…up until you combine them with JSON serialization. Thankfully, there’s a Marshal (and Unmarshal) in town to help. 

Bojan Živanović   

[Checking If The Pi Is Done](https://alexanderell.is/posts/pi-cluster-monitoring/) — Build a basic cluster monitoring system using a laptop, some Raspberry Pis, and Go’s RPC package. 

Alex Ellis   

[Building a WebRTC Video and Audio Broadcaster in Go using ION-SFU and Media Devices](https://gabrieltanner.org/blog/broadcasting-ion-sfu) 
Tanner Gabriel  

🛠 Code & Tools  

[go-getter: Download Things from Various Sources with a URL](https://github.com/hashicorp/go-getter) — Reading the title you might think.. “so it’s an HTTP client then?” Not exactly. A GitHub URL can become a `git` URL, local filenames work, S3, Mercurial and BitBucket URLs all work as intended too. 

HashiCorp   

[Peer Calls: Group Peer-to-Peer Video Call System](https://github.com/peer-calls/peer-calls) — Want to get in on the action of rolling out a video chat service? The core of this one is written in Go. You can play with an example deployment [here.](https://peercalls.com/) 

Peer Calls   

[eBPF: A Pure Go eBPF Library](https://github.com/cilium/ebpf) — Utilities for loading, compiling, and debugging [eBPF](https://ebpf.io/) programs. 

Cloudflare and Cilium   

[Live Workshop: Getting Started with OpenTelemetry in Go](https://go.lightstep.com/signup-opentelemetry-golang-distributed-tracing-workshop.html?utm_campaign=golang&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[p5: An Initial Port of Processing to Go](https://github.com/go-p5/p5) — It’s early days for this project, but this brings some initial concepts from [Processing](https://processing.org/), a popular visual programming system, to Go. 

Binet and de Carvalho   

[Fleets: Automatically Delete Tweets, Retweets, and Likes](https://github.com/karan/fleets) — A new, craftily-named library for cleaning up your Twitter account that leans heavily on the [Anaconda](https://github.com/ChimeraCoder/anaconda) Go Twitter library. 

Karan Goel   

[gdriver: Download Large Files From Google Drive](https://github.com/mtojek/gdriver) — A command-line tool for downloading large files from Google Drive (using API v3). 

Marcin Tojek   

[h2go: Apache H2 Go SQL Driver](https://github.com/jmrobles/h2go) — Experimental, right now. 

JM Robles         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
