#331 — September 25, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

TamaGo: Bare Metal Go for ARM SoCs — A framework that enables compilation and execution of Go apps on bare metal ARM System-on-Chip (SoC) setups (including the Raspberry Pi 2 and Zero so far). An ARM-only alternative to the more established TinyGo, potentially, as TamaGo modifies the standard Go distribution while TinyGo is a distinct LLVM-based compiler.

F-Secure Foundry

So How Will Go Implement Generics? — Generics are coming to Go, that’s a given, but now how does it actually get implemented? Keith Randall presents two design documents with strategies for the task: Stencilling and Dictionaries. Note: Google login required for the golang-dev group.

Keith Randall

Reduce Test Time Without Sacrificing Security 🚀 — Run your build infrastructure on your terms. Self-hosted agents mean the choice between the speed of cloud-native and security of on-prem is over. Buildkite works with all source code tools, languages and platforms, speeding up mobile tests at scale. Try now.

Buildkite sponsor

TinyGo Gains Initial Support for the ESP32 and ESP8266 — If you’re familiar with microcontrollers, this is pretty exciting news as these ESP devices are cheap and popular. However, this is only an initial port with “still a lot to be done” before you can take advantage of all their features like WiFi and Bluetooth.

Ayke van Laëthem

The Go Time Podcast Chats with Brad Fitzpatrick — Not only was Brad a fundamental part of Go’s core team, he founded LiveJournal and invented memcached too, so it’s great to hear his story – if you have the time.

Go Time Podcast podcast

⚡️ Quick bytes:

💻 Jobs

Stream Provides APIs for Building Activity Feeds and Chat — Stream is looking for a full time Backend Software Engineer to join our development team. If you are interested in becoming a part of what we do, apply now.

Stream

Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.

CrowdStrike

Find a Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

📘 Tutorials

Hacking Ethernet Out of Fibre Channel Cards with Go — One of my favorite technologists is back with a niche but interesting tale of putting some random cards he bought off eBay to use with Go code holding it all together.

Ben Cox

Optimizing PGX Allocations in Go with PprofPGX is a popular Postgres driver for Go and this post demonstrates the use of a profiler for improving it.

Louis DeLosSantos

Running Go in the Browser with WASM and Web Workers — Qvault (interactive coding courses in the browser) started using web workers and WASM in order to stream output from a program. This post is unsurprisingly JS-heavy, but shows how to compile Go for use with a worker.

Lane Wagner

In-Process Caching in Go: Scaling lakeFS to 100k Requests/Second — A pretty basic idea here, but such things usually pay dividends.

Barak Amar

Fan Out, Fan In While Maintaining Order — Writing an event processor in Go seems to be a rather common item. Following that first iteration with a refactored event processor is also quite common.

Jake Walsh

'Go Is Not Ready for Enterprise Systems Yet and Here’s Why' — This is at the bottom of the opinions section because, well, it’s not a great read, but it got a bit of attention on social media, so here you go. The author tries to claim that Go is “too young” for the enterprise but their argument feels weak.

Dmitry Afonkin

🛠 Code & Tools

go-diagrams: Create Beautiful System Diagrams with Go — Considers itself a ‘loose port’ of Python’s diagrams, a way of defining diagrams in code to then be rendered.

blushft

goconst: Find Repeated Strings That Could Be Replaced by a Constant

Jonathan Gautheron

Troubleshoot Golang App Performance with Datadog APM — Inspect detailed flame graphs to identify bottlenecks, latency and other issues. Try Datadog APM free.

Datadog APM sponsor

Ali: Generate HTTP Loads and Plot The Results in Real-Time — Go is fantastic at putting together tools like this.

Ryo Nakao

logo-ls: Modern ls Command with VS Code-Like File 'Icons' and Git Integrations — Add some icons and intelligence to your terminal listings.

Yash Handa

Twirp 7.1: A Simple RPC Framework with Protobuf Service Definitions — Define your service in a Protobuf file and this autogenerates Go code with a server interface and fully functional clients. Think gRPC, but without the custom HTTP server and transport implementations - it uses net/http instead.

Twitch

Mouthful: A Self Hosted Go Powered Alternative to Disqus — For adding comment sections to your sites. Demo here.

Viktoras

Siegfried: Signature-Based File Format Identification — Uses several databases including those from the UK National Archives, freedesktop, Library of Congress, and Wikidata. I had no idea these places maintained such data, to be honest. This demo shows off the point.

Richard Lehane

Automated App Security for Go Web Apps.

Sqreen sponsor

Dbmate: A Lightweight, Framework-Agnostic Database Migration Tool — Written in Go but can be used alongside database-using apps written in any language. Supports MySQL, Postgres, SQLite and ClickHouse.

Adrian Macneil

msfs2020-go: Connect to Microsoft Flight Simulator 2020 From Go — The latest Flight Simulator from Microsoft is hugely realistic and well worth checking out in its own right, but if you want to try and get Go involved, here you go.

lian