#315 — June 5, 2020 |
Golang Weekly |
ZZT in Go (Using a Pascal-to-Go Converter) — Back in the 90s I loved a text-based game called ZZT. It was built by Tim Sweeney who went on to create the Unreal Engine(!) and still has a bit of a cult following. So it’s fascinating to see this work done in translating the Pascal source code to Go and, of course, the similarities between Pascal and Go generally too. Ben Hoyt |
GoLand 2020.2 Early Access Program Is Open — GoLand is a Go IDE and its EAP build is free to use for 30 days. This EAP has some wicked new features, refactorings, and plugins. JetBrains |
Find & Fix Code Performance Issues — You can’t improve what you can’t measure. Install in minutes. Profile and understand Go code’s behavior and performance. Browse through appealing graphs. Blackfire.io is now available as Public Beta. Blackfire.io sponsor |
'The Go Compiler Needs to Be Smarter'? — A pretty opinionated piece from a reasonably academic perspective, but it raises some interesting points about the Go compiler’s tradeoffs. Daniel Lemire |
Writing Go CLIs With Just Enough Architecture — A developer inspired by some of the recent CLI app tutorials reflects on his own approach where he provides “just enough” architecture to build solid Go CLI apps. Carl Johnson |
Bare Metal RISC-V Programming in Go — Did you know that Go 1.14 includes experiment support for 64 bit RISC-V? I didn’t, but the creator of Embedded Go was keen to try it out on a RISC-V microcontroller and here’s how it went. Michał Derkacz |
💻 Jobs |
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 |
Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now. Stream |
Find A Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started. Vettery |
📚 Articles & Tutorials |
How to Write a Lexer in Go — A lexer (short for lexical analyzer) is the first phase in most modern compilers and is the process where textual code is turned from characters into a more useful construct of ‘tokens’. Aaron Raff |
▶ A Go RabbitMQ Beginners' Tutorial — A brief review of what RabbitMQ is followed by a coding session where you’ll create a queue, publish a message, and consume that message. TutorialEdge |
Getting Hands-On with Agniva De Sarker |
The Go Security Checklist — From code to infrastructure, learn how you can improve the security of your Go applications with the Go security checklist. Sqreen sponsor |
Unicode Support in Go Source Code — Unicode support is good enough to allow Marcus Noble |
A Subtle Trap When Formatting Chris Siebenmann |
Converting JSON to a Struct in Go — This covers a bit more than the basics, such as custom unmarshalling. Rob Allen |
▶ The Trouble with Databases — Google’s Jaana Dogan recently wrote a very popular article about what she wished more developers knew about databases and here she reflects on these topics and more in a solid hour with the Go Time podcast crew. Worthwhile weekend listening. Go Time Podcast |
Logging Without Losing Money or Context — Logging services are expensive, but logs are important. What’s a poor application developer to do? Komu Wairagu |
Waiting on Goroutines — Many people default to using WaitGroups for this, but there are multiple (and more common) ways to handle your waiting. Tit Petric |
🛠 Code & Tools |
go-yaml: YAML Encoding, Decoding and Querying for Go — As of this week’s 1.7 release, it now supports YAMLPath, a way of extracting values or ASTs by a simple query language (example). Masaaki Goshima |
Heimdall: An Enhanced HTTP Client for Go — Enhanced, how? A built in circuit breaker to control failing requests, multiple and custom retry strategies, a fluent API.. Gojek |
The Ultimate Guide to Container Formats: Decrypting Video Technologies Bitmovin Inc. sponsor |
Smocker: A Simple and Efficient HTTP Mock Server — Smocker uses YAML to define mocks and responses, but there is a handy user interface, as well. Use it in your dev and test environments to cut out external services. Thibaut Rousseau |
Oragono 2.1: A Modern IRC Server Written in Go — Supports UTF-8 and IRCv3 features. 2.1 adds native support for WebSockets. Jeremy Latt |
DBCore: Code Generation Powered by Your Database — If you’re thinking “I bet there is a YAML file involved.”, you’re right. Phil Eaton |