Gopher Gold #16 - Wed Oct 21 2020
Tags: go, newsletter
Published: 2020-10-21 00:00:00

---
title: Gopher Gold #16 - Wed Oct 21 2020
description: Weekly nuggets of Golang Gold
date: "2020-10-21"
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/qs7o2ag8vzo0uborgc7v.png
---

Gopher Gold weekly curation for Wed Oct 21 2020.

## Hot Go Articles This Week On Reddit

- [Breakout: browser game written on pure Go and compiled into WASM. No JS added.](https://www.reddit.com/r/golang/comments/jb5kn7/breakout_browser_game_written_on_pure_go_and/) (6 days ago)
- [Gosaic - 4yrs but still a piece of art](https://www.reddit.com/r/golang/comments/jcrmou/gosaic_4yrs_but_still_a_piece_of_art/) (3 days ago)

## Go Articles This Week On Dev.To

- **Shubham Zanwar**: [Design Patterns: Facade Pattern 🎭](https://dev.to/shubhamzanwar/design-patterns-facade-pattern-9pb)
- **Lane Wagner**: [How To Correctly Validate Passwords – Most Websites Do It Wrong](https://dev.to/wagslane/how-to-correctly-validate-passwords-most-websites-do-it-wrong-l46)
- **Jeremy Morgan**: [Building a Go Web API with the New Digital Ocean App Platform](https://dev.to/pluralsight/building-a-go-web-api-with-the-new-digital-ocean-app-platform-5bl5)
- **Yannick Rehberger**: [Can you recommend a book for practical learning of Go?](https://dev.to/yannick_rest/can-you-recommend-a-book-for-practical-learning-of-go-1nga)
- **suntong**: [Are you still coding go cli handling by hand?](https://dev.to/suntong/are-you-still-coding-go-cli-handling-by-hand-5g2h)
- **Mukul Mishra**: [Super secure communications algorithm](https://dev.to/itsmukulmishra/most-secured-tcp-implementation-k8f)
- **Pranav Karawale**: [My experience of writing a CLI in Go](https://dev.to/obnoxiousnerd/my-experience-of-writing-a-cli-in-go-1ni8)
- **Toby Chui**: [Web Desktop Environment in Go](https://dev.to/tobychui/web-desktop-environment-in-go-5ao)
- **Pranav Karawale**: [Check if user is connected to the internet in Go](https://dev.to/obnoxiousnerd/check-if-user-is-connected-to-the-internet-in-go-1hk6)
- **Ruben Sanchez**: [Making a fast "yes" clone with Go](https://dev.to/rubenwap/making-a-fast-yes-clone-with-go-hom)
- **Reishi Mitani**: [Mini gRPC Project (1): Creating a Simple Increment API on Go](https://dev.to/greenteabiscuit/mini-grpc-project-creating-a-simple-increment-api-on-go-6cn)
- **Stephen Solka**: [Mocking http clients in Go](https://dev.to/trashhalo/mocking-http-clients-in-go-3l9p)
- **Reishi Mitani**: [Mini gRPC Project (2): Deploying the gRPC API on k8s](https://dev.to/greenteabiscuit/mini-grpc-project-deploying-the-grpc-api-on-k8s-4h15)
- **Wagner Abrantes**: [Resolução de Problemas](https://dev.to/vapordev/resolucao-de-problemas-4a9c)
- **Alexandre Liberato**: [Como Instalar Golang no Linux](https://dev.to/alexandreliberato/como-instalar-golang-no-linux-3pl9)
- **Mathis Van Eetvelde**: [AWS S3 Multipart Upload tutorial in Golang](https://dev.to/mathisco01/aws-s3-multipart-upload-tutorial-in-golang-5hgk)
- **Wagner Abrantes**: [Sets](https://dev.to/vapordev/sets-59ge)
- **Wagner Abrantes**: [Queues](https://dev.to/vapordev/queues-1djm)
- **Pierangelo**: [using superheroes for refresh my mind about Golang structs](https://dev.to/pierangelo1982/using-superheroes-for-refresh-my-mind-about-golang-structs-1958)
- **Wagner Abrantes**: [Recursions & Dragons](https://dev.to/vapordev/recursions-dragons-a62)
- **Wagner Abrantes**: [Stack](https://dev.to/vapordev/stack-2men)
- **Takahiro Kudo**: [Go - Tips - generate gomock](https://dev.to/takakd/tips-generate-gomock-2j9b)
- **Wagner Abrantes**: [Single Linked Lists](https://dev.to/vapordev/single-linked-lists-53ge)
- **Wagner Abrantes**: [WEBthrough](https://dev.to/vapordev/webthrough-3jbi)
- **Mike Levan**: [Getting Started with Go (Golang) - Free Mini-Series](https://dev.to/thenjdevopsguy/getting-started-with-go-golang-free-mini-series-5b9o)
- **Takahiro Kudo**: [Shell - golang-migrate-helper.sh](https://dev.to/takakd/shell-golang-migrate-helper-sh-2184)
- **Jacob Goodwin**: [05 - Testing a Service Layer Method in Go Account Application](https://dev.to/jacobsngoodwin/05-testing-a-service-layer-method-in-go-account-application-13a6)
- **Wagner Abrantes**: [Doubly Linked List](https://dev.to/vapordev/doubly-linked-list-4fe5)
- **claudio d'angelis**: [qrcp: transfer files over wi-fi from your computer to your mobile device by scanning a QR code without leaving the terminal](https://dev.to/claudiodangelis/qrcp-transfer-files-over-wi-fi-from-your-computer-to-your-mobile-device-by-scanning-a-qr-code-without-leaving-the-terminal-12bd)
- **Alexandre Liberato**: [Preciso usar GOPATH para desenvolver com Golang?](https://dev.to/alexandreliberato/preciso-usar-gopath-para-desenvolver-com-golang-157g)
- **Alexey Melezhik**: [Sparrow plugin to lint Terraform scripts using tflint go utility](https://dev.to/melezhik/sparrow-plugin-to-lint-terraform-scripts-using-tflint-go-utility-mk9)
- **erman imer**: [Go Telegram Bot](https://dev.to/ermanimer/go-telegram-bot-47a8)
- **Tymoteusz Blazejczyk**: [Go Formatter](https://dev.to/tymonx/go-formatter-3l6)
- **Tymoteusz Blazejczyk**: [Go Error](https://dev.to/tymonx/go-error-3k2m)
- **Pierangelo**: [nodejs vs golang with MongoDB](https://dev.to/pierangelo1982/nodejs-vs-golang-with-mongodb-kee)

## Trending Go Repositories This Week On Github

- **v2fly/v2ray-core** (Go): [A platform for building proxies to bypass network restrictions.](https://github.com/v2fly/v2ray-core)
- **didi/nightingale** (Go): [💡 A Distributed and High-Performance Monitoring System](https://github.com/didi/nightingale)
- **charmbracelet/bubbletea** (Go): [A powerful little TUI framework 🏗](https://github.com/charmbracelet/bubbletea)
- **go-gitea/gitea** (Go): [Git with a cup of tea, painless self-hosted git service](https://github.com/go-gitea/gitea)
- **tal-tech/go-zero** (Go): [go-zero is a web and rpc framework written in Go. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity.](https://github.com/tal-tech/go-zero)
- **photoprism/photoprism** (Go): [Personal Photo Management powered by Go and Google TensorFlow](https://github.com/photoprism/photoprism)
- **go-admin-team/go-admin** (Go): [基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架（包含了：基础用户管理功能，jwt鉴权，代码生成器，RBAC资源控制，表单构建等）分分钟构建自己的中后台项目；文档：http://doc.zhangwj.com/go-admin-site/ Demo： http://www.zhangwj.com/#/login](https://github.com/go-admin-team/go-admin)
- **gofiber/fiber** (Go): [⚡️ Fiber is an Express inspired web framework written in Go with ☕️](https://github.com/gofiber/fiber)
- **asim/go-micro** (Go): [A Go microservices development framework](https://github.com/asim/go-micro)
- **filecoin-project/lotus** (Go): [Implementation of the Filecoin protocol, written in Go](https://github.com/filecoin-project/lotus)
- **hashicorp/terraform** (Go): [Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.](https://github.com/hashicorp/terraform)
- **gohugoio/hugo** (Go): [The world’s fastest framework for building websites.](https://github.com/gohugoio/hugo)
- **sundowndev/PhoneInfoga** (Go): [Advanced information gathering & OSINT framework for phone numbers](https://github.com/sundowndev/PhoneInfoga)
- **pion/webrtc** (Go): [Pure Go implementation of the WebRTC API](https://github.com/pion/webrtc)
- **golang/go** (Go): [The Go programming language](https://github.com/golang/go)
- **goharbor/harbor** (Go): [An open source trusted cloud native registry project that stores, signs, and scans content.](https://github.com/goharbor/harbor)
- **pingcap/tidb** (Go): [TiDB is an open source distributed HTAP database compatible with the MySQL protocol](https://github.com/pingcap/tidb)
- **micro/micro** (Go): [Micro is a platform for cloud native development](https://github.com/micro/micro)
- **rclone/rclone** (Go): ["rsync for cloud storage" - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfiles, Google Cloud Storage, Yandex Files](https://github.com/rclone/rclone)
- **influxdata/influxdb** (Go): [Scalable datastore for metrics, events, and real-time analytics](https://github.com/influxdata/influxdb)
- **etcd-io/etcd** (Go): [Distributed reliable key-value store for the most critical data of a distributed system](https://github.com/etcd-io/etcd)
- **kubernetes/ingress-nginx** (Go): [NGINX Ingress Controller for Kubernetes](https://github.com/kubernetes/ingress-nginx)
- **kubernetes/minikube** (Go): [Run Kubernetes locally](https://github.com/kubernetes/minikube)
- **kubernetes/kubernetes** (Go): [Production-Grade Container Scheduling and Management](https://github.com/kubernetes/kubernetes)
- **casbin/casbin** (Go): [An authorization library that supports access control models like ACL, RBAC, ABAC in Golang](https://github.com/casbin/casbin)

## Topics from the Weekly Go Forum

- [Problems with installing third-party packages](https://forum.golangbridge.org/t/problems-with-installing-third-party-packages/20938)
- [Type-safe database client for Postgres, MySQL & SQLite](https://forum.golangbridge.org/t/type-safe-database-client-for-postgres-mysql-sqlite/20896)
- [Free Go Getting Started Mini-Course](https://forum.golangbridge.org/t/free-go-getting-started-mini-course/20959)
- [Can someone give me an example of a well written simple Golang code?](https://forum.golangbridge.org/t/can-someone-give-me-an-example-of-a-well-written-simple-golang-code/20915)
- [Why unused global variable allowed in Go?](https://forum.golangbridge.org/t/why-unused-global-variable-allowed-in-go/20886)
- [Started learning Golang, question about Slices](https://forum.golangbridge.org/t/started-learning-golang-question-about-slices/20878)
- [After learning the basics of Golang, what are the packages I should get my hands dirty on](https://forum.golangbridge.org/t/after-learning-the-basics-of-golang-what-are-the-packages-i-should-get-my-hands-dirty-on/20910)
- [CGO link whole library on mac](https://forum.golangbridge.org/t/cgo-link-whole-library-on-mac/20936)
- [How to have dynamic or a regexp in my URL with net/http](https://forum.golangbridge.org/t/how-to-have-dynamic-or-a-regexp-in-my-url-with-net-http/20971)
- [Why can't "os/exec" run shell command?](https://forum.golangbridge.org/t/why-cant-os-exec-run-shell-command/20912)
- [Functional parameters in Go functions](https://forum.golangbridge.org/t/functional-parameters-in-go-functions/20892)
- [What is. synchronizing this code?](https://forum.golangbridge.org/t/what-is-synchronizing-this-code/20881)
- [Is Gorilla/Mux bad to use?](https://forum.golangbridge.org/t/is-gorilla-mux-bad-to-use/20969)
- [What to learn to boost Golang code excution and performance?](https://forum.golangbridge.org/t/what-to-learn-to-boost-golang-code-excution-and-performance/20924)
- [Timer abnormal action](https://forum.golangbridge.org/t/timer-abnormal-action/20884)
- [Are you using sync.Pool, and where?](https://forum.golangbridge.org/t/are-you-using-sync-pool-and-where/20897)
- [Get a module file path](https://forum.golangbridge.org/t/get-a-module-file-path/20968)
- [My code not rendering form in html page](https://forum.golangbridge.org/t/my-code-not-rendering-form-in-html-page/20935)
- [Should I learn Web developing after finishing a quick intro course?](https://forum.golangbridge.org/t/should-i-learn-web-developing-after-finishing-a-quick-intro-course/20905)
- [Unmarshal a structure dynamic](https://forum.golangbridge.org/t/unmarshal-a-structure-dynamic/20900)
- [Unpredicted output using go routines](https://forum.golangbridge.org/t/unpredicted-output-using-go-routines/20927)
- [Generic XML Unmarshal](https://forum.golangbridge.org/t/generic-xml-unmarshal/20943)
- [Gocv installation error](https://forum.golangbridge.org/t/gocv-installation-error/20887)
- [Why float64 value is printed wrongly?](https://forum.golangbridge.org/t/why-float64-value-is-printed-wrongly/20895)
- [Context package](https://forum.golangbridge.org/t/context-package/20926)
- [Best learning resource for Go web development](https://forum.golangbridge.org/t/best-learning-resource-for-go-web-development/20964)
- [How to have live web preview with http package?](https://forum.golangbridge.org/t/how-to-have-live-web-preview-with-http-package/20937)
- [How can I implement feature toggles/functionality toggles in my CI/CD?](https://forum.golangbridge.org/t/how-can-i-implement-feature-toggles-functionality-toggles-in-my-ci-cd/20879)
- [Help Creating Go Sandbox To Execute Untrusted Golang Code](https://forum.golangbridge.org/t/help-creating-go-sandbox-to-execute-untrusted-golang-code/20941)
- [Problem with routing and middleware](https://forum.golangbridge.org/t/problem-with-routing-and-middleware/20970)
- [Structuring an web app](https://forum.golangbridge.org/t/structuring-an-web-app/20929)
- [Reading JSON from URL string](https://forum.golangbridge.org/t/reading-json-from-url-string/20973)
- [What is the idiomatic way to use context.Context?](https://forum.golangbridge.org/t/what-is-the-idiomatic-way-to-use-context-context/20930)
- [Go Developer - UK Remote | Machine Learning, Industrial IoT](https://forum.golangbridge.org/t/go-developer-uk-remote-machine-learning-industrial-iot/20876)
- [Golang slow performance inside for loop MySQL queries](https://forum.golangbridge.org/t/golang-slow-performance-inside-for-loop-mysql-queries/20979)
- [Go mod replace package and all subpackages](https://forum.golangbridge.org/t/go-mod-replace-package-and-all-subpackages/20904)
- [Why dose RSS have more bytes than runtime.memstats?](https://forum.golangbridge.org/t/why-dose-rss-have-more-bytes-than-runtime-memstats/20906)
- [Review of sql migration package](https://forum.golangbridge.org/t/review-of-sql-migration-package/20934)
- [New generic purpose throttler library for Go that comes with builtin integrations for popular libraries](https://forum.golangbridge.org/t/new-generic-purpose-throttler-library-for-go-that-comes-with-builtin-integrations-for-popular-libraries/20918)
- [How is GC & inlining influencing this code?](https://forum.golangbridge.org/t/how-is-gc-inlining-influencing-this-code/20880)
- [Is there alternate approach to adding new field to json](https://forum.golangbridge.org/t/is-there-alternate-approach-to-adding-new-field-to-json/20894)
- [Go-Watcher error, rebuilding go project on file change](https://forum.golangbridge.org/t/go-watcher-error-rebuilding-go-project-on-file-change/20917)
- [Can I set canonical dynamically?](https://forum.golangbridge.org/t/can-i-set-canonical-dynamically/20962)
- [Question about golang source code in sync/mutex.go](https://forum.golangbridge.org/t/question-about-golang-source-code-in-sync-mutex-go/20946)
- [How you deal with bugfixes in imported packages?](https://forum.golangbridge.org/t/how-you-deal-with-bugfixes-in-imported-packages/20920)
- [No Dependency Lightweight Telegram Bot](https://forum.golangbridge.org/t/no-dependency-lightweight-telegram-bot/20932)
- [Pprof cpu sample rate](https://forum.golangbridge.org/t/pprof-cpu-sample-rate/20980)
- [Handling Google Sheet data as json](https://forum.golangbridge.org/t/handling-google-sheet-data-as-json/20984)
- [Statically compile with custom libraries](https://forum.golangbridge.org/t/statically-compile-with-custom-libraries/20983)

_Gopher Gold is a weekly roundup for all things Go! If you have more suggestions for resources, submit them below! Follow me on Twitter for more projects [@dennisokeeffe92](https://twitter.com/dennisokeeffe92)._

_Image credit: [Katerina Kerdi](https://unsplash.com/@katekerdi)_