golang

golang

105 bookmarks
Custom sorting
Russ Cox on passing the torch with Austin Clements & Cherry Mui (Go Time #333)
Russ Cox on passing the torch with Austin Clements & Cherry Mui (Go Time #333)
•    Introduction of guests and their roles on the Go team
•    Russ Cox’s decision to step down as tech lead of the Go project
•    Transition of leadership roles: Austin Clements taking over as Go project tech lead and Cherry Mui becoming tech lead of the Go core team
•    Discussion on the personal backgrounds of Austin and Cherry, including how they got into Go
•    Austin and Cherry’s initial thoughts and goals for their new leadership roles
•    Russ Cox’s explanation of the importance of leadership transition for the Go project
•    Austin’s perspective on the role of a tech lead and its responsibilities
•    Cherry’s explanation of what the Go core team is and her thoughts on leading it
•    Russ Cox’s new role in exploring AI applications for the Go project, particularly in aiding software maintenance
•    Austin’s focus on stability, engineering at scale, and potential improvements in performance engineering in Go
•    Cherry’s focus on scaling Go to handle modern hardware trends and user needs
•    Community engagement and communication between the Go team at Google and the broader Go community
•    Discussions on the barriers between the Go team and the community, and how to reduce them
•    How to get involved or stay updated on Go’s development (forums, proposals, code reviews, conferences)
•    Unpopular opinions from the guests, including Russ’s preference for Boston as the best place for software engineers, Cherry’s dislike of the GitHub pull request workflow, and Austin’s view on tech debt being manageable and sometimes beneficial.
·changelog.com·
Russ Cox on passing the torch with Austin Clements & Cherry Mui (Go Time #333)
packagemain #28: How to work with GitHub API in Go - YouTube
packagemain #28: How to work with GitHub API in Go - YouTube
In this episode we create a GitHub OAuth application in Go that lets users authenticate with GitHub and calls GitHub API on their behalf. Code: https://github.com/plutov/packagemain/tree/master/28-github-api GitHub API Go Client: https://github.com/google/go-github Fun project I built recently: https://gitprint.me Our Substack: https://packagemain.tech Follow me on X: https://x.com/pliutau
·m.youtube.com·
packagemain #28: How to work with GitHub API in Go - YouTube
Writing a TOTP client in Go
Writing a TOTP client in Go
A TOTP1 based 2FA system has two parts. One is a client that generates the TOTP code. The other part is a server. The server verifies the code. If the client and the server-generated codes match, the server allows the inbound user to access the target system. The code usually expires after 30 seconds and then, you’ll have to regenerate it to be able to authenticate. As per RFC-62382, the server shares a base-32 encoded secret key with the client. Using this shared secret and the current UNIX timestamp, the client generates a 6-digit code. Independently, the server also generates a 6-digit code using the same secret string and its own current timestamp. If the user-entered client code matches the server-generated code, the auth succeeds. Otherwise, it fails. The client’s and the server’s current timestamp wouldn’t be an exact match. So the algorithm usually adjusts it for ~30 seconds duration.
·rednafi.com·
Writing a TOTP client in Go
The Smallest Go Binary (5KB)
The Smallest Go Binary (5KB)
This whole adventure began because I wanted to write a C compiler in Go. I wanted to use Chibicc, a tiny C compiler, as a basis since I could start with the first commit and add each feature since each one is a separate commit. However, Chibicc uses ...
·totallygamerjet.hashnode.dev·
The Smallest Go Binary (5KB)
The Tao of Go — Bitfield Consulting
The Tao of Go — Bitfield Consulting
What is the Tao of Go, and how can we work with it, like a surfer going with the waves instead of struggling against them? By being kind, simple, humble, and not striving; here’s how.
·bitfieldconsulting.com·
The Tao of Go — Bitfield Consulting
Speeding up a Go cli application with concurrency
Speeding up a Go cli application with concurrency
Premise A few months ago I worked with a company which provided fully functional backend for online multiplayer games. As part of their product portfolio, they provided their customers with a cli utility, called ds-uploader (dedicated server uploader). Written in Go, this CLI helped the customer: Process all files and assets in a directory of their choice containing their game server. Synchronize each file to a remote object storage bucket (meaning to upload only files that are new or modified).
·cuffaro.com·
Speeding up a Go cli application with concurrency
Unmasking a Go HTML Parser Bug with Differential Fuzzing
Unmasking a Go HTML Parser Bug with Differential Fuzzing
In this write-up, we’ll delve into how, through differential fuzzing, we uncovered a bug in Go’s exp/net HTML’s tokenizer. We’ll show potential XSS implications of this flaw. Additionally, we’ll outline how Google assessed this finding within their VRP program and guide how to engage and employ fuzzing to evaluate your software. Introduction Reminisce with me the discussion boards of 2005. Open to all, searchable from every corner, with no account needed to peek in.
·mionskowski.pl·
Unmasking a Go HTML Parser Bug with Differential Fuzzing
Analyzing Go Build Times
Analyzing Go Build Times
Go is often praised for its fast build times. While they are pretty quick, they are slow enough that I spend a lot of time waiting for them, enough that it prompted me to go down the rabbit hole of thoroughly analyzing them. This post covers all aspects of what makes Go builds fast or slow. Throughout this blog, we will use Istio as an example of real-world codebase. For reference on its size:
·blog.howardjohn.info·
Analyzing Go Build Times
A Deep Look Into Golang Profile-Guided Optimization (PGO)
A Deep Look Into Golang Profile-Guided Optimization (PGO)
Intro Profile-Guided Optimization (PGO) is an optimization method which improves final compiled binary by using profile data hints and compiling the code based on those profiles. There are several optimization mechanisms that compilers usually get into account when compiling your code to binary. Like dead code elimination, Register allocation, Constant folding or function inlining; you may split your code into smaller and smaller functions and different level of abstractions to ease up future changes and modifications, but from compiler point of view multiple calls to different functions may not be very optimize and sometimes compiler decides to inline your functions!
·theyahya.com·
A Deep Look Into Golang Profile-Guided Optimization (PGO)