#324 — August 7, 2020

Unsubscribe  |  Read on the Web

Golang Weekly

Boids in WebAssembly Using Go — A boid (bird-oid) is a “simulated bird-like object” and simulating a flock of them in Go and WebAseembly makes for an interesting demo. (The technique is of particular interest to me, rather than the output, though.)

Andrew Healey

Go 1.14.7 and Go 1.13.15 Released — These releases address a recently reported security issue around ReadUvarint and ReadVarint (which is explained in more depth in the item below). Here’s the issue in question if you haven’t got a Google login.

Katie, Filippo, and the Go Team

Introducing GoLand 2020.2 — New features for Go modules, new ways to review and fix problems in your code, new code inspections and editing features, the Go Playground, WSL 2 support for Git on Windows, experimental support for generics, and more, all in GoLand 2020.2.

JetBrains sponsor

Comparing Go and Rust for Writing a CLI Tool — A developer, unfamiliar with both Go and Rust, decided to write an app in both and compared his experiences. It’s not deep but it’s quite balanced and he found good reasons to use both languages.

Paulo Henrique Cuchi

Taking Advantage of a Bug in Go's Standard Library — Go 1.14.7 and 1.13.15 were just released (above) to fix this very bug which could be used as part of a DoS attack.

Jonny Rhea

Go 1.15 Release Candidate 2 Released — Here are the draft release notes. Fingers crossed we get to announce the final release next week :-)

Alex Rakoczy

💻 Jobs

Software Engineer - Want to Build a Platform Ecosystem in Go? — Skool is hiring its 2nd backend engineer in Los Angeles, CA. Go, PostgreSQL, Redis, Elasticsearch, Docker. Apply now.

SKOOL

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.

X-Team

One Application, Hundreds of Hiring Managers — Use Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.

Vettery

📘 Tutorials

An Introduction to Go's Escape AnalysisEscape analysis is the process of determining the scope of pointers, which in Go means whether variables should be allocated on the stack or the heap.

Vincent Blanchon

Generators in Go — Generators here are for creating iterators, not generated code, that you can range over easily.

Sven Haardiek

Building Desktop Apps with Go: Webview vs. Lorca vs. Electron — A comparison of the three frameworks that (spoiler!) ends up with an odd recommended approach. Other options are available, however!

Graham Jenson

▶  Discussing Go with Google's Ian Lance Taylor — Yes, we’re linking to a C++ podcast! But they had Google’s Ian Lance Taylor (who works on GCC and Go’s frontend for it) on to talk about Go (and C++, a little).

CppCast podcast

The 5 Crucial PDF & Office Features for Corporate Apps in Pure Go

UniDoc sponsor

How to Notarize and Sign Go Binaries for MacOS with GitHub Actions — For jumping through all the hoops MacOS Catalina presents regarding trusted binaries.

Ken Cochrane

How Subqueries Were Implemented in a Go-Powered SQL Engine — There’s a few moving parts here, but basically Dolt is like Git for data and the underlying SQL engine is go-mysql-server, a MySQL wire protocol compatible SQL server and engine.

Zach Musgrave

▶  Tiny Go: Small Is Going Big — Ron Evans, the creator of TinyGo (a Go compiler for ‘small’ environments such as microcontrollers), gave a talk at QCon London 2020 (just before lockdown!). You can watch it here or read a transcript. Worth watching if you want to see how Go can be used in 'small' places :-)

Ron Evans

🛠 Code & Tools

sqlc v1.5.0 Released — A tool for creating fully type safe idiomatic Go code from SQL. Write SQL queries, run sqlc, then write application code that calls the methods sqlc generated.

sqlc.dev

aws-lambda-go: Libraries, Samples, and Tools for Go and AWS Lambda — Libraries, samples and tools to help Go developers develop AWS Lambda functions.

Amazon Web Services

defaults: Initialize Structs with Default Values — Uses field tags to assign the default value. This seems very useful.

Yuki Iwanaga

The Golang Security Checklist — From code to infrastructure, learn how to improve the security of your Go applications with the Go security checklist.

Sqreen sponsor

html-to-markdown: Convert HTML to Markdown — Uses an HTML parser vs regex everywhere.

Johannes Kaufmann

Gearbox: A Web Framework with a Focus on High Performance — Written on top of fasthttp.

Gearbox

go-mysql-server: An Extensible MySQL Server Implementation in Go — We linked to an article about this in the tutorials section (above) but basically this is an SQL engine and server that clones some of MySQL, so you get MySQL SQL syntax and wire protocol support but written in Go. It is not a complete database system in and of itself though (read the docs).

Liquidata