---
title: "A guide to dates and times in Go"
publication: "Go Weekly"
issue: 363
published_at: "2021-05-21"
canonical_url: "https://golangweekly.com/issues/363"
---

Plus an interview with TinyGo's maintainer, new VS Code support for Go Lambda functions, and a review of 'Learning Go.' |        

#​363 — May 21, 2021 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/grbamgtbqj6hsmwfpare.jpg)](https://listmonk.app/)   

[ListMonk 1.0: A Self-Hosted Newsletter and Mailing List Manager](https://listmonk.app/) — We first linked this two years ago as it seemed promising, and it’s just hit 1.0 - nice! Seems worth trying if you want to run your own list. [GitHub repo](https://github.com/knadh/listmonk). 

Kailash Nadh   

[TinyGo 0.18.0 Released](https://github.com/tinygo-org/tinygo/releases/tag/v0.18.0) — It’s gained support for several new boards, has a [snazzy new website](https://tinygo.org/) and the PWM API now supports servos. Most exciting of all, **we have an interview with one of its maintainers at the end of this issue,** so scroll down for that! :-) 

TinyGo   [![\](https://copm.s3.amazonaws.com/a07c3d7f.png)](https://dashboard.redisgreen.net/goweekly) 

[Redis 6.2 on RedisGreen](https://dashboard.redisgreen.net/goweekly) — SSL encryption, key size tracking, memory mapping, online upgrades, and more. 

RedisGreen sponsor    

[godocs.io Six Months Later](https://drewdevault.com/2021/05/07/godocs.io-six-months-later.html) — The fork of the old godoc.org site has been improved so if you don’t like [pkg.go.dev](https://pkg.go.dev/) or miss some of the old site’s features, [check it out](https://godocs.io/). 

Drew DeVault   

▶[Discussing Encore and Frameworks with André Eriksson](https://changelog.com/gotime/180) — A chat with the creator of [Encore](https://encore.dev/), a new(ish) Go backend framework that’s been getting a lot of attention recently, about tooling, frameworks, and the tradeoffs made when choosing them. 

Go Time Podcast podcast   

**IN BRIEF:** 

- The AWS Toolkit for Visual Studio Code has [added support for Lambda functions written in Go](https://aws.amazon.com/about-aws/whats-new/2021/05/aws-toolkit-visual-studio-code-adds-java-go-support/) making it easier to create, locally debug, and deploy Lambda functions from the popular code editor.
- Katie Hockman reports that [Go native fuzzing is almost ready for beta use](https://twitter.com/katie_hockman/status/1394387692083990530) and testing. If you're a project owner interested in being an early tester of the feature, you're [encouraged to get in touch](https://twitter.com/katie_hockman/status/1394387692927037441).
- There is a [DoS vulnerability in `/x/net/html`](https://groups.google.com/g/golang-announce/c/wPunbCPkWUg/m/ifcDT_DbCwAJ) that has been fixed.   

[A Book Review of 'Learning Go'](https://bitfieldconsulting.com/golang/jon-bodner-learning-go) — The review is favorable and gives an idea of what you do _and don’t_ get in this book aimed at experienced programmers. 

John Arundel   

[A Guide to Dates and Times in Go](https://qvault.io/golang/golang-date-time/) — Bookmark this site because you’ll be coming back to it every time you deal with dates and times. Oh, and _“you probably don’t need any third-party packages to manage times and dates in Go.”_ 

Lane Wagner   

[Scalable Spatial Data & Indexing Built in Go](https://www.cockroachlabs.com/blog/how-we-built-spatial-indexing/?utm_campaign=cooperpress-2021-Q2-&utm_source=go-newsletter&utm_medium=sponsor&utm_content=go-newsletter-spatial-data-support-0521) — Support for spatial data was the most requested feature in our history. We built it in Go. This blog explains how. 

Cockroach Labs sponsor   

[Discovering Goroutine Leaks with Semgrep](https://www.trailofbits.com/post/discovering-goroutine-leaks-with-semgrep) — Semgrep is an open-source static analysis tool that uses user-defined patterns to find issues in the code. Here, Alex defines a pattern to catch a concurrency issue that you may be ignoring. 

Alex Useche   

[Graceful Shutdowns with `signal.NotifyContext`](https://millhouse.dev/posts/graceful-shutdowns-in-golang-with-signal-notify-context) 
Taliesin Millhouse   

[An Approach to Error Handling in Go HTTP Apps](https://www.joeshaw.org/error-handling-in-go-http-applications/) 
Joe Shaw   

🛠 Code & Tools  

[go-feature-flag: A Simple and Complete Feature Flag Solution](https://github.com/thomaspoignant/go-feature-flag) — Want to turn features on and off in your app with feature flags? This is a Go-based approach with no backend system to maintain - the data is stored in a file (which can be hosted remotely). 

Thomas Poignant   

[Authority 2.0: Role Based Access Control (RBAC) with Database Persistence](https://github.com/harranali/authority) — Uses Gorm to persist roles, permissions, and user-role assignments. 

Harran Ali   

[Avoiding Integer Overflows with Zero Downtime at Buildkite](https://buildkite.com/blog/avoiding-integer-overflows-with-zero-downtime?utm_campaign=CPress&utm_source=ppc&utm_medium=go-newsletter&utm_term=integer-overflow&utm_content=blog-post) 

Buildkite sponsor   

[go-notion: Go Client for the New Notion API](https://github.com/dstotijn/go-notion) — If you don’t use [Notion](https://www.notion.so/), keep on scrolling :-) 

David Stotijn   

[Gopher2600: An Atari VCS Emulator](https://github.com/JetSetIlly/Gopher2600) — A relatively feature-complete emulator that includes controller support and gameplay recording. 

Stephen Illingworth   

[Magia: A Game Boy Advance Emulator Written in Go](https://github.com/pokemium/magia) — Not to play favorites with classic gaming devices.. how about an emulator for Nintendo’s GBA, too? 

Akatsuki   

[go-mysql 1.2.0: A Pure Go Library for the MySQL Network Protocol](https://github.com/go-mysql-org/go-mysql) — 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     

Jobs  

[Senior Backend Software Engineer (Remote)](https://stackoverflow.com/jobs/522851/senior-backend-software-engineer-c2fo) — Take ownership of key areas of our fintech platform & solve complex challenges while helping businesses get the capital they need. 
C2FO   

[Senior Software Engineer (Go) - 100% Remote, UK/EU Only](https://www.form3.tech/careers/job-application?gh_jid=4003519002) — Solving complex technical challenges using the latest, cloud-native technologies to help Banks and FinTechs move money faster. 
Form3   

[Golang Engineer at Fleet (100% Remote)](https://fleetdm.com/apply) — Work with the creators of osquery + Sails.js at our new venture building a better way to manage employee laptops and servers. 
Fleet          ![Ron Evans](https://res.cloudinary.com/cpress/image/upload/c_pad,w_480,ar_1/to8jpmkixkka6bly8qzb.jpg) 

💬 A Q&A with…
Ron Evans
A maintainer of the TinyGo project  

Ron Evans is a Go developer who's known for his work on projects such as [Gobot](https://gobot.io/), [GoCV](https://gocv.io/), and [TinyGo](https://github.com/tinygo-org/tinygo). We last spoke with him [back in March of 2019](https://golangweekly.com/issues/253), touching upon how Go can be suited for hardware and microcontroller use. 

Today we caught up with him for [an update on TinyGo](https://github.com/tinygo-org/tinygo), the popular Go compiler for 'small places.' 

There's been [some interest](https://twitter.com/DasSurma/status/1385583551308050438) in TinyGo's WebAssembly support recently. Where do you see this going? 

There's no question that WebAssembly is an important new set of technologies. Running WASM in the browser is only the first step. Now we're seeing TinyGo being used to run code on server-side proxies and in edge computing environments, thanks to WAPI and other emerging standards. TinyGo is really appealing in these scenarios because of the small size of executables. And some of our community are also seeing really great performance from their TinyGo code. 

What's been the most surprising/interesting use of TinyGo you've seen so far? 

People running TinyGo on older, less powerful hardware. The recent chip shortages and supply chain issues mean that we have to do more with the hardware we've already got. 

We have many people doing fun, hobby-type projects that are enjoyable. My personal favorites are people making toys and games with physical hardware, but there is a whole group of people adding interfaces and hardware used for industrial applications, such as CAN, as commonly used in the automotive industry. I don't want to spoil anyone's product launch announcements, so I will have to leave it there for now... 

What's coming in TinyGo's near future? 

We're focused on the developer experience right now. New users should be able to get something out of TinyGo very quickly. At the same time, we want to provide deeper understanding for devs who are really digging in to do something important. This is a major motivation behind the recent revamp of our website and documentation, and we're just getting started. 

Other things we're working on are more complete support for all of the Go standard library. This will bring better compatibility with commonly used packages. And of course, support for new hardware like the latest Raspberry Pi Pico microcontroller.   

Ron Evans is one of the maintainers of TinyGo and is a Technologist for Hire at [The Hybrid Group](http://hybridgroup.com/), a consultancy specializing in creating the software that makes hardware work.          

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
