---
title: "Go meets SimCity"
publication: "Go Weekly"
issue: 397
published_at: "2022-01-28"
canonical_url: "https://golangweekly.com/issues/397"
---

Plus porting TypeScript's type checker to Go and not Rust, GoLand 2022.1, and creating English language time differences. |        

#​397 — January 28, 2022 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/f3tmkuml9ti6r04pyifw.jpg)](https://github.com/nikolaydubina/go-binsize-treemap)   

[go-binsize-treemap: Render a Visualization of Go Executable Space Usage](https://github.com/nikolaydubina/go-binsize-treemap) — This is easier to look at than explain in writing! Essentially it’s a tool that generates an SVG [treemap](https://en.wikipedia.org/wiki/Treemapping) of how the space inside a Go-produced executable is used. Not necessarily super useful, but fun to look at and could throw up some surprises. [Bloaty](https://github.com/google/bloaty) is another tool that can help in this area and does a deeper analysis. 

Nikolay Dubina   

['I’m Porting the TypeScript Compiler to Go'](https://kdy1.dev/posts/2022/1/tsc-go) — The author here is a big-time Rust advocate (who created [swc](https://swc.rs/)) but recognizes that Go might be a better tool particularly for the _type checker_ and explains why here. This post also fuelled a rather [extensive Hacker News discussion](https://news.ycombinator.com/item?id=30074414) on the complications involved and on Go vs Rust for such work. 

DongYoon Kang   [![\](https://copm.s3.amazonaws.com/0f2f944d.png)](https://nanos.org?utm_source=cooperpress&utm_medium=cooperpress&utm_campaign=go-primary) 

[Run Go Unikernels 2X as Fast on GCP and 3X as Fast on AWS](https://nanos.org?utm_source=cooperpress&utm_medium=cooperpress&utm_campaign=go-primary) — Run your first open source go unikernel in seconds. Go unikernels aren't just faster than docker - they are faster than Linux itself. Unikernels are easier to debug, orchestrate and safer too. [Try it now](https://nanos.org?utm_source=cooperpress&utm_medium=cooperpress&utm_campaign=go-primary). 

NanoVMs sponsor   

[What Happens When You Profile a Continuous Profiler?](https://pyroscope.io/blog/profile-continuous-profiler/) — Pyroscope made a presumption about the performance of Go’s binary search algorithm implementation only to find it lacking through profiling and trial and error. 

Ryan Perry (Pyroscope)   

**BRIEF BYTES:** 

- [TinyGo 0.22](https://github.com/tinygo-org/tinygo/releases/tag/v0.22.0) has been released with support for several new devices, M1 / macOS ARM support, LLVM 13 as the new default, and more. [This Twitter thread](https://twitter.com/i/web/status/1486394616681279492) digs deep into the release.
- JetBrains has started [the 'early access program' for GoLand 2022.1](https://blog.jetbrains.com/go/2022/01/27/goland-2022-1-early-access-program-has-started/), the next major version of its popular Go IDE.
- [GoReleaser can now support AUR](https://goreleaser.com/customization/aur/) (Arch User Repositories) as used by Arch Linux based distros.     

Jobs  

[Backend / API Engineer at Textile (Remote)](https://grnh.se/20a9234c4us) — Written primarily in Go, built on top of protocols like [Libp2p](https://libp2p.io/), [IPFS](https://ipfs.io/), & [Filecoin](https://filecoin.io/), and is deployed to Google Kubernetes Engine. You'll interact with layers throughout the stack and own responsibilities from R&D to implementation and production monitoring. 
Textile   

[Golang Developer at X-Team (Remote)](https://x-team.com/remote-go-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-go&utm_content=go) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more. 
X-Team   

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired      

[How to Build a Web App with Go and SQLite](https://www.allhandsontech.com/programming/golang/web-app-sqlite-go/) — A five-part series that uses the Gin Web Framework to build a CRUD API that includes versioning and handling OPTIONS requests properly. 

Jeremy Morgan   

[learning-go: Minimal Working Examples of Go's Unique Features](https://github.com/Mathieu-Desrochers/Learning-Go/blob/master/main.go) — All in one long file. 

Mathieu Desrochers   

[256 Shades of Gray: Converting Color Images to Grayscale](https://golangprojectstructure.com/converting-colour-images-to-greyscale/) — Not only that, but _monochrome_ as well. Some fun image fiddling afoot here. 

Unknown  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/gitqtogrzbnlsawsgnnk.jpg)](https://rocketnine.itch.io/citylimits)   

[City Limits: A SimCity-esque Game in Go](https://rocketnine.itch.io/citylimits) — A small Go and [Ebiten](https://ebiten.org/) powered isometric city-building sim produced for a game jam. The [source is here.](https://code.rocketnine.space/tslocum/citylimits) I’m impressed just how realistic the “Lego” blocks used here look. A fun use of Go! 

Trevor Slocum   

[rueidis: A New Performance Oriented Go Redis RESP3 Client](https://github.com/rueian/rueidis) — If you’re a heavy Redis user, this might be worth a look as it supports auto pipelining of non blocking commands, connection pooling, (optional) client side caching, and more. 

Rueian   

[timediff: Produce Human Readable, Relative Time Differences](https://github.com/mergestat/timediff) — For example: `timediff.TimeDiff(time.Now().Add(-3 * time.Minute))` would produce “3 minutes ago”. English only at this point. 

MergeStat   

[Build Video for Your Go App That Just Works](https://get.mux.com/3ekCeeJ) 

Mux sponsor   

[eBPF 0.8: A Pure Go eBPF Library](https://github.com/cilium/ebpf) — Utilities for loading, compiling, and debugging [eBPF](https://ebpf.io/) programs. 

Cloudflare and Cilium   

[termle: The Wordle Word Game in the Terminal](https://github.com/JeremyLoy/termle) — Every language seems to be getting its own [Wordle](https://www.powerlanguage.co.uk/wordle/) implementation and Go is no exception. 

Jeremy Loy   

[wasm-maze-generator: A Simple WASM Maze Generator in Go](https://github.com/deadpixi/wasm-maze-generator) — Neat minimal but practical example of writing Go code to be run on the Web. 

Rob King   

[Milvus 2.0: A Vector Database for Scalable Similarity Search](https://github.com/milvus-io/milvus) 
The Milvus Project   

[ClickHouse: A Go SQL Database Driver for ClickHouse](https://github.com/ClickHouse/clickhouse-go) 
Kirill Shvakov    

**🕰 ICYMI** _(Older stuff you may have missed...)_ 

- John Stupka shows [how to build your own URL shortener](https://jrstupkadev.medium.com/golang-url-shortener-22ba6c970792) with Go.
- Here's a nice tutorial detailing [building a CLI that includes calls-outs to decisions made](https://earthly.dev/blog/golang-command-line/) and learnings encountered.
- Kenta Takeuchi shares how to go about [making your own Go-powered load balancer](https://dev.to/bmf_san/implement-a-load-balancer-in-golang-8gj), distributing the load in a round-robin style.         

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
