× Want to read this newsletter every week?! × 👋  Join FAUN
 
 
🌐 View in your browser.   |  ✍️ Publish on FAUN   |  🦄 Become a sponsor
 
GoLang best tutorials, news and libraries from last week!
GoPa
 
Golang Weekly Newsletter, Gopa. Curated Golang news, tutorials, tools and more!
 
 
⭐ Patrons
 
goteleport.com goteleport.com
 
Teleport Kubernetes Access
 
 
Consolidate identity-based access to Kubernetes clusters across all environments, meet compliance requirements, and have complete visibility into access and behavior:

👉 Easily secure your Kubernetes clusters using security best practices
👉 Meet compliance requirements (SOC 2, FedRAMP, HIPAA, ISO 27001, PCI and more)
👉 Complete visibility into access and behavior
👉 Secure access that doesn't get in the way
👉 Give an identity to all your microservices, CI/CD automation, and service accounts
👉 Works with everything you have (X.509 certificates, HTTPS, SAML, OpenID connect and others)
👉 Easy to get started

Get started for free.
 
 

👉 Spread the word and help developers find you by promoting your projects on FAUN. Get in touch for more information.

 
🔗 Stories, Tutorials & Articles
 
www.pixelstech.net www.pixelstech.net
 
Introduction to GoLang generics and advanced usage
 
 
This article discusses generics in the Go programming language, which allow code to work with multiple types of data without the need for separate versions of the code for each type.

The article explains how to define type parameters, which are placeholders for the types that the code will work with, and how to use them in code. The article also discusses some of the restrictions on the use of generics in Go and how they are implemented using code generation.

The article provides examples of advanced uses of generics in Go, including creating reusable code that can work with multiple types of data and creating type-safe code that enforces constraints on the types that can be used.
 
 
ketansingh.me ketansingh.me
 
Writing a toy compiler with Go and LLVM
 
 
This article discusses the LLVM (Low Level Virtual Machine) project, a collection of tools that can be used to build programming languages. It explains the role of a compiler in translating a program from one language to another and the typical structure of a compiler, including the frontend, optimizer, and backend.

The article then introduces LLVM IR, the intermediate representation used by the LLVM compiler framework, and explains its structure, including the concepts of a module, function, and basic block. Finally, the article provides an example of LLVM IR generated from a simple C code snippet.
 
 
github.blog github.blog
 
Highlights from Git 2.39
 
 
Another new release of Git is here to end the year! Take a look at some of our highlights on what's new in Git 2.39.
 
 
docs.google.com docs.google.com
 
Resources/Classes to Learn Golang   ✅
 
 
A long list of resources (websites, tutorials, interviews, and more) to learn Golang and dive into its ecosystem.
 
 
mrkaran.dev mrkaran.dev
 
Writing a disk-based key-value store in Golang
 
 
Bitcask is a disk-based key-value storage engine designed for fast read and write operations. It writes to the file in an append-only mode, avoiding the need for random disk I/O seek.

The data is stored in fixed-width records that include metadata about the data such as a checksum, timestamp, and expiry. Bitcask can have multiple datafiles, with only one being active at a time. When the active datafile reaches a certain size, it is rotated and becomes a stale file.

Stale files are merged in a process called compaction. Bitcask also has a hash directory that allows for fast key-value lookups and a log file that stores information about the key-value pairs in the database.
 
 
 
📺 Quick Hits
 
 
Go-dongle version 0.2.2 has been released. The news release includes better encoding/decoding and encryption/decryption for Golang.
 
 
💬 Discussions, Q&A & Forums
 
www.reddit.com www.reddit.com
 
Convince me to use golang for a web project
 
 
 
 
 
🎦 Videos, Talks & Presentations
 
www.youtube.com www.youtube.com
 
How To Inspect, Plan, Migrate DB Schemas With Atlas
 
 
If you have a database (as almost everyone does), you must have a tool to manage its schema. That's where Atlas comes in. It plans and applies schemas defined in a declarative format (HCL) or as versioned migrations. As an added bonus, it works both as a standalone CLI and as a Terraform provider.
 
 
 
📚 Book picks
 
www.amazon.com www.amazon.com
 
Black Hat Go
 
 
Go Programming For Hackers and Pentesters.

You'll learn how to:
  • Make performant tools that can be used for your own security projects
  • Create usable tools that interact with remote APIs
  • Scrape arbitrary HTML data
  • Use Go's standard package, net/http, for building HTTP servers
  • Write your own DNS server and proxy
  • Use DNS tunneling to establish a C2 channel out of a restrictive network
  • Create a vulnerability fuzzer to discover an application's security weaknesses
  • Use plug-ins and extensions to future-proof productsBuild an RC2 symmetric-key brute-forcer
  • Implant data within a Portable Network Graphics (PNG) image.
 
 
 
⚙️ Tools, Apps & Software
 
github.com github.com
 
trietmn/go-wiki
 
 
This is a Golang open-source module that makes it easy to access and parse data from Wikipedia (Wikipedia API wrapper)
 
 
github.com github.com
 
memphisdev/memphis-broker
 
 
An open-source message broker for developers made out of devs' struggles with using message brokers, building complex data/event-driven apps, and troubleshooting them.
 
 
github.com github.com
 
hashicorp/golang-lru
 
 
Golang LRU cache
 
 
github.com github.com
 
reugn/go-quartz
 
 
Minimalist and zero-dependency scheduling library for Go
 
 
github.com github.com
 
flyingmutant/rand
 
 
Fast, high quality alternative to math/rand and golang.org/x/exp/rand
 
 
github.com github.com
 
nikoksr/notify
 
 
A dead simple Go library for sending notifications to various messaging services.
 
 
github.com github.com
 
acouvreur/sablier
 
 
Start your containers on demand, shut them down automatically when there's no activity. Docker, Docker Swarm Mode and Kubernetes compatible.
 
 

👉 Spread the word and help developers find and follow your Open Source project by promoting it on FAUN. Get in touch for more information.

 
🤔 Did you know?
 
 
"Sketch of the Analytical Engine, Invented By Charles Babbage" is considered by many people as the first programming book. It was published in October 1842, over a hundred years before the first silicon chip.
 
 
😂 Meme of the week
 
 
 
 
❤️ Thanks for reading
 
 
👉 Never miss an issue
Join FAUN Developer Community and subscribe to our newsletter here.

👋 Keep in touch and follow us on social media:
- 💼LinkedIn
- 📝Medium
- 🐦Twitter
- 👥Facebook
- 📰Reddit
- 📸Instagram

👌 Was this newsletter helpful?
We'd really appreciate it if you could share it with your friends! You can also donate to help us keep this newsletter going.

ℹ️ Have a question or feedback?
Feel free to reach out to us at community@faun.dev. We'd love to hear from you!

🤩 Want to sponsor our newsletter?
Reach out to us at sponsors@faun.dev and we'll get back to you as soon as possible.