Gopher Gold #22 - Wed Dec 02 2020
Published: 2020-12-02 00:00:00

---
title: Gopher Gold #22 - Wed Dec 02 2020
description: Weekly nuggets of Golang Gold
date: "2020-12-02"
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/qs7o2ag8vzo0uborgc7v.png
---

Gopher Gold weekly curation for Wed Dec 02 2020.

## Hot Go Articles This Week On Reddit

- [In-process caching in Go: scaling to 100k requests/second](https://www.reddit.com/r/golang/comments/k0r9xo/inprocess_caching_in_go_scaling_to_100k/) (6 days ago)
- [Golang <-time.After() is not garbage collected](https://www.reddit.com/r/golang/comments/k1xk52/golang_timeafter_is_not_garbage_collected/) (4 days ago)
- [Step-by-Step Guide to Use WebSockets in Golang](https://www.reddit.com/r/golang/comments/k1ey2a/stepbystep_guide_to_use_websockets_in_golang/) (5 days ago)

## Go Articles This Week On Dev.To

- **Smruti Ranjan Rana**: [Golang for Web (Part-I): Build your first REST API with Golang & Fiber](https://dev.to/devsmranjan/golang-build-your-first-rest-api-with-fiber-24eh)
- **Laura Vuorenoja**: [DIY Christmas Radio](https://dev.to/levelupkoodarit/diy-christmas-radio-31k4)
- **Junerey Casuga**: [Go + gRPC with Go kit](https://dev.to/junereycasuga/go-grpc-with-go-kit-3gab)
- **Sonia**: [Automating your routine with Golang and a CLI](https://dev.to/zoun/automating-your-routine-with-golang-and-a-cli-4dok)
- **Minh-Phuc Tran**: [Use Go Channels as Promises and Async/Await](https://dev.to/phuctm97/use-go-channels-as-promises-and-async-await-3d27)
- **Kat  🐆🐾**: [Learning GO with Codeacademy](https://dev.to/codebalance/learning-go-with-codeacademy-41ip)
- **tomassirio**: [Bridge Design Pattern in Go](https://dev.to/tomassirio/bridge-design-pattern-in-go-4bb0)
- **Weerasak Chongnguluam**: [ทำไมเราถึงเห็นข้อมูลแบบ []byte หลายที่ใน standard package ของ Go](https://dev.to/iporsut/byte-standard-package-go-p98)
- **Josh Ellis**: [How to Setup MongoDB with Go](https://dev.to/imjoshellis/how-to-setup-mongodb-with-go-2ccb)
- **bitsmonkey**: [Yet another cli with golang using cobra](https://dev.to/bitsmonkey/yet-another-cli-with-golang-using-cobra-2m82)
- **Serkan Algur**: [PHP Functions for Golang - phpfuncs](https://dev.to/serkanalgur/php-functions-for-golang-phpfuncs-59hf)
- **Takahiro Kudo**: [Go - aws-sdk-go/service Unit Test](https://dev.to/takakd/go-aws-sdk-go-service-unit-test-p2)
- **Michele Caci**: [Reading stack traces in Go](https://dev.to/mcaci/reading-stack-traces-in-go-3ah5)
- **Bob Firestone**: [I give up. Atwood's Law won](https://dev.to/bobfirestone/i-give-up-atwood-s-law-won-7ic)
- **Greg Holmes**: [Text-to-Speech Voice Calls With Go](https://dev.to/vonagedev/text-to-speech-voice-calls-with-go-1h7m)
- **Solace Infotech Pvt. Ltd.**: [Top 11 Kubernetes Tools For 2021](https://dev.to/ltdsolace/top-11-kubernetes-tools-for-2021-1im6)
- **tmack8080**: [We all know, and Love, JSON-to-Go but did you know ...](https://dev.to/tmack8080/we-all-know-and-love-json-to-go-but-did-you-know-4kc4)
- **Uģis Ģ**: [Embedding assets in Go without any 3rd party libraries](https://dev.to/ugjka/embedding-assets-in-go-without-any-3rd-party-libraries-3a5d)
- **handuy**: [Concurrency trong Go: Tổng quan cơ chế hoạt động](https://dev.to/handuy/concurrency-trong-go-t-ng-quan-c-ch-ho-t-d-ng-4hd2)
- **Jacob Goodwin**: [11 - Account API Cleanup & Fixes](https://dev.to/jacobsngoodwin/11-cleanup-fixes-2b18)
- **Jeroen de Kok**: [How to add authentication to  your Go Chat application (Part 4)](https://dev.to/jeroendk/how-to-add-authentication-to-your-go-chat-application-part-4-1d31)
- **handuy**: [Concurrency trong Go: Tạo goroutine](https://dev.to/handuy/concurrency-trong-go-t-o-goroutine-4fe6)
- **Mike Levan**: [Deploying a Go (golang) app to GKE](https://dev.to/thenjdevopsguy/deploying-a-go-golang-app-to-gke-2c7l)
- **Mohammad Aziz**: [How to Auto Reload Golang Applications?](https://dev.to/iaziz786/how-to-auto-reload-golang-applications-58j0)
- **Mario Carrion**: [Complex Pipelines in Go (Part 4): Sane Coordination and Cancellation](https://dev.to/mariocarrion/complex-pipelines-in-go-part-4-sane-coordination-and-cancellation-501c)
- **David Kröll**: [Progress indicator for console applications](https://dev.to/davidkroell/progress-indicator-for-console-applications-2h14)
- **Brian Michalski**: [Practical Differential Privacy w/ Apache Beam](https://dev.to/bamnet/practical-differential-privacy-w-apache-beam-4bki)
- **Uday Yadav**: [Testing simple web server](https://dev.to/dev117uday/testing-simple-web-server-jlh)
- **handuy**: [Concurrency trong Go: Tạo goroutine (phần 2)](https://dev.to/handuy/concurrency-trong-go-t-o-goroutine-ph-n-2-10kc)

## Trending Go Repositories This Week On Github

- **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)
- **go-kratos/kratos** (Go): [Kratos是bilibili开源的一套Go微服务框架，包含大量微服务相关框架及工具。](https://github.com/go-kratos/kratos)
- **projectdiscovery/nuclei** (Go): [Nuclei is a fast tool for configurable targeted scanning based on templates offering massive extensibility and ease of use.](https://github.com/projectdiscovery/nuclei)
- **facebook/ent** (Go): [An entity framework for Go](https://github.com/facebook/ent)
- **utkusen/urlhunter** (Go): [a recon tool that allows searching on URLs that are exposed via shortener services](https://github.com/utkusen/urlhunter)
- **foxcpp/maddy** (Go): [✉️ Composable all-in-one mail server.](https://github.com/foxcpp/maddy)
- **oam-dev/kubevela** (Go): [An Easy-to-use yet Highly Extensible App Platform based on Kubernetes and Open Application Model.](https://github.com/oam-dev/kubevela)
- **ory/kratos** (Go): [Never build user login, user registration, 2fa, profile management ever again! Works on any operating system, cloud, with any programming language, user interface, and user experience! Written in Go.](https://github.com/ory/kratos)
- **prysmaticlabs/prysm** (Go): [Go implementation of the Ethereum 2.0 blockchain](https://github.com/prysmaticlabs/prysm)
- **loadimpact/k6** (Go): [A modern load testing tool, using Go and JavaScript - https://k6.io](https://github.com/loadimpact/k6)
- **RichardKnop/machinery** (Go): [Machinery is an asynchronous task queue/job queue based on distributed message passing.](https://github.com/RichardKnop/machinery)
- **flipped-aurora/gin-vue-admin** (Go): [基于gin+vue搭建的后台管理系统框架，集成jwt鉴权，权限管理，动态路由，分页封装，多点登录拦截，资源权限，上传下载，代码生成器，表单生成器，通用工作流等基础功能，五分钟一套CURD前后端代码包含数据库的快感你不要体验一下吗~,更多功能正在开发中，欢迎issue和pr~](https://github.com/flipped-aurora/gin-vue-admin)
- **syncthing/syncthing** (Go): [Open Source Continuous File Synchronization](https://github.com/syncthing/syncthing)
- **pkg/errors** (Go): [Simple error handling primitives](https://github.com/pkg/errors)
- **kubernetes/kubernetes** (Go): [Production-Grade Container Scheduling and Management](https://github.com/kubernetes/kubernetes)
- **tinode/chat** (Go): [Instant messaging platform. Backend in Go. Clients: Swift iOS, Java Android, JS webapp, scriptable command line; chatbots](https://github.com/tinode/chat)
- **temporalio/temporal** (Go): [Temporal service and CLI](https://github.com/temporalio/temporal)
- **geektutu/7days-golang** (Go): [7 days golang programs from scratch (web framework Gee, distributed cache GeeCache, object relational mapping ORM framework GeeORM, rpc framework GeeRPC etc) 7天用Go动手写/从零实现系列](https://github.com/geektutu/7days-golang)
- **etcd-io/etcd** (Go): [Distributed reliable key-value store for the most critical data of a distributed system](https://github.com/etcd-io/etcd)
- **gofiber/fiber** (Go): [⚡️ Express inspired web framework written in Go](https://github.com/gofiber/fiber)
- **chrislusf/seaweedfs** (Go): [SeaweedFS is a distributed object store and file system to store and serve billions of files fast! Object store has O(1) disk seek, transparent cloud integration. Filer supports cross-cluster active-active replication, Kubernetes, POSIX, S3 API, encryption, Erasure Coding for warm storage, FUSE mount, Hadoop, WebDAV.](https://github.com/chrislusf/seaweedfs)
- **sourcegraph/sourcegraph** (Go): [Universal code search (self-hosted)](https://github.com/sourcegraph/sourcegraph)
- **derailed/k9s** (Go): [🐶 Kubernetes CLI To Manage Your Clusters In Style!](https://github.com/derailed/k9s)
- **containrrr/watchtower** (Go): [A process for automating Docker container base image updates.](https://github.com/containrrr/watchtower)
- **hashicorp/vault** (Go): [A tool for secrets management, encryption as a service, and privileged access management](https://github.com/hashicorp/vault)

## Topics from the Weekly Go Forum

- [Experimenting with Go Type Parameters (Generics) in GoLand](https://forum.golangbridge.org/t/experimenting-with-go-type-parameters-generics-in-goland/21487)
- [Passing array of Go pointers to C](https://forum.golangbridge.org/t/passing-array-of-go-pointers-to-c/21476)
- [Short assignment statement looking weird](https://forum.golangbridge.org/t/short-assignment-statement-looking-weird/21530)
- [Showing line numbers in error message](https://forum.golangbridge.org/t/showing-line-numbers-in-error-message/21524)
- [Space gophers set](https://forum.golangbridge.org/t/space-gophers-set/21506)
- [Difference between `go build .` and `go build ...`?](https://forum.golangbridge.org/t/difference-between-go-build-and-go-build/21527)
- [Libc.so.6 could not be found](https://forum.golangbridge.org/t/libc-so-6-could-not-be-found/21488)
- [My tags not recognized on github](https://forum.golangbridge.org/t/my-tags-not-recognized-on-github/21475)
- [Func output into a variable](https://forum.golangbridge.org/t/func-output-into-a-variable/21508)
- [How can I print `%` in fmt.Printf](https://forum.golangbridge.org/t/how-can-i-print-in-fmt-printf/21542)
- [Implimenting the ContextDialer interface](https://forum.golangbridge.org/t/implimenting-the-contextdialer-interface/21473)
- [Add value to interface type](https://forum.golangbridge.org/t/add-value-to-interface-type/21525)
- [Undefined: float](https://forum.golangbridge.org/t/undefined-float/21518)
- [Function type explanation?](https://forum.golangbridge.org/t/function-type-explanation/21538)
- [Switch over to go mod causing build errors](https://forum.golangbridge.org/t/switch-over-to-go-mod-causing-build-errors/21529)
- [IF-ELSE loop with return statement](https://forum.golangbridge.org/t/if-else-loop-with-return-statement/21477)
- [Matrix product with goroutines](https://forum.golangbridge.org/t/matrix-product-with-goroutines/21467)
- [What is "&" before struct?](https://forum.golangbridge.org/t/what-is-before-struct/21512)
- [Bulkwrite using monogdb](https://forum.golangbridge.org/t/bulkwrite-using-monogdb/21532)
- [It's very nice and HOW](https://forum.golangbridge.org/t/its-very-nice-and-how/21479)
- [Short question about Return](https://forum.golangbridge.org/t/short-question-about-return/21480)
- [Slice permutations of r length](https://forum.golangbridge.org/t/slice-permutations-of-r-length/21511)
- [Templates parsing checkboxes](https://forum.golangbridge.org/t/templates-parsing-checkboxes/21482)
- [Question about basic and person data type](https://forum.golangbridge.org/t/question-about-basic-and-person-data-type/21462)
- [How do I manipulate binary numbers in GO?](https://forum.golangbridge.org/t/how-do-i-manipulate-binary-numbers-in-go/21541)
- [Understanding Golang Mock](https://forum.golangbridge.org/t/understanding-golang-mock/21484)
- [Library load/unload method in golang](https://forum.golangbridge.org/t/library-load-unload-method-in-golang/21468)
- [Modules problem involving `github.com/nats-io` [SOLVED (but I don't see how!)]](https://forum.golangbridge.org/t/modules-problem-involving-github-com-nats-io-solved-but-i-dont-see-how/21502)
- [How to Create sharred library in Golang,then it will print statically linked as output on ldd](https://forum.golangbridge.org/t/how-to-create-sharred-library-in-golang-then-it-will-print-statically-linked-as-output-on-ldd/21460)
- [Unable to update packages due to host name issues](https://forum.golangbridge.org/t/unable-to-update-packages-due-to-host-name-issues/21493)
- [I built a minimal CLI app framework which can be configured using a single YAML file](https://forum.golangbridge.org/t/i-built-a-minimal-cli-app-framework-which-can-be-configured-using-a-single-yaml-file/21509)
- [Add request-id to different logs - best practice with context](https://forum.golangbridge.org/t/add-request-id-to-different-logs-best-practice-with-context/21526)
- [Compiling the same project with go 1.14 with module and go 1.11 without module](https://forum.golangbridge.org/t/compiling-the-same-project-with-go-1-14-with-module-and-go-1-11-without-module/21535)
- [gRPC(Syslog-port->key:value->parquet)](https://forum.golangbridge.org/t/grpc-syslog-port-key-value-parquet/21464)
- [How to get video stream from the camera of laptop or system using golang](https://forum.golangbridge.org/t/how-to-get-video-stream-from-the-camera-of-laptop-or-system-using-golang/21539)

_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)_