#392 — December 17, 2021
Go Weekly
Go 1.18 Beta 1 is Available (with Generics) — It’s here! It’s here! Just in time for the holidays! The preview release of Go 1.18 with generics (and a few other very nice new features) is ready for you to play with (and test). The final release isn’t due until 2022 so there’s plenty of time. See the draft release notes for more.
Russ Cox
gqlclient: GraphQL Client and Code Generator for Go — It can parse a GraphQL schema and generate Go types as needed. It can also parse query documents and generate Go functions. (As an aside, it’s so nice to link to something hosted on sourcehut instead of GitHub for a change :-))
Simon Ser
Six Power Rules for Secure GitOps — Take advantage of GitOps agility without losing sight of cloud security best practices. 👀 Follow these steps to provision faster and more reliably while automating proactive security-as-code. Download the Secure GitOps Checklist for free ✅
Bridgecrew sponsor
IN BRIEF:
-
A site is offering links to good first issues to work on in Go projects if you want to get involved in open source.
-
📗 Powerful Command-Line Applications in Go by Ricardo Gerardi has been published by Pragmatic Bookshelf.
-
Mat Ryer of the Go Time podcast ▶️ asked the Go team lots of questions about lots of things from garbage collection and generics to Go 2 and how community surveys influence their work.
-
The Gorilla Toolkit (perhaps best known for the mux router) is looking for new maintainers.
Replacing interface {} with any — Don’t worry about this syntactic sugar until you’re working on Go 1.18, but it’s a type alias to be aware of and might save a little typing time in future ;-)
Russ Cox
When to Use Generics in Go? — And here’s a well-timed and well-written piece on when you can and can’t use generics along with some discussion around appropriate use cases.
Teiva Harsanyi
Awesome Go Education: Links to Go Tutorials — If you’re a fan of those ‘awesome’ lists of curated links, this new one covers tutorials in about 30 broad categories such as error handling, microservices, and debugging. Early days, but if you have tutorials of your own you’re encouraged to contribute here.
Mehdi Hadeli
Jobs
Senior Golang Engineer (Cloud, Microservices, REST APIs) (Romania Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks.
Crowdstrike
Senior Software Engineer (Go) - 100% Remote, UK/EU Only — Solve complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster.
Form3
Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired
🛠 Code & Tools
MapReduce: A Map-Reduce Framework for Go — Inspired by one of the labs in MIT CSAIL’s Distributed Systems class.
Bo-Wei Chen
ImmuDB 1.2: A Fast Immutable Database, Built on a Zero Trust Model — A ‘tamper proof’ database system built in Go that has just added ACID transaction support, plus the ability to delete or expire records as necessary to comply with GDPR rules.
CodeNotary
gofumpt: A Stricter gofmt — You like rules? gofmt not strict enough? gofumpt has even stricter rules to keep your codebase clean and behaving.
Daniel Martí
Observability Won't Replace Monitoring (Because It Shouldn't)
Lightstep sponsor
Miniredis: A Pure Go Redis Server for Go Unit Tests — Think of it as the Redis version of net/http/httptest.
Harmen
go-mysql 1.4.0: A Pure Go Library for the MySQL Network Protocol — Not your typical MySQL client (there is a client in here, but that’s not the focus) but for when you need to interact with other clients and servers at the low level.
siddontang
Oso: A Batteries-Included Library for Building Authorization in Go — Oso embeds in your application and uses policies that you write using Polar (a DSL for authorization policy) and includes some patterns for common access control patterns.
Oso
XLSX 3.2.4: A Library for Reading and Writing XLSX (Excel) Files
Geoffrey J. Teale
👾 And one for fun..
Monovania: A 2D Puzzle Platformer Built with Ebiten — Built with Go’s popular Ebiten 2D game library for the Metroidvania Month 14 game jam, you can play the game online at the main link above or get the source here. (Note: I found you have to click on the browser again to give the game keyboard access, but then it's fine.)
rocketnine