Go Icon

Go

Go is a programming language built to resemble a simplified version of the C programming language.
266 Stories
All Topics

Go github.com

Simple web statistics. No tracking of personal data

GoatCounter is a web analytics platform, roughly similar to Google Analytics or Matomo. It aims to give meaningful privacy-friendly web analytics for business purposes, while still staying usable for non-technical users to use on personal websites. The choices that currently exist are between freely hosted but with problematic privacy (e.g. Google Analytics), hosting your own complex software or paying $19/month (e.g. Matomo), or extremely simplistic “vanity statistics”. There’s a free hosted offering for non-commercial use. For those running businesses, self-host the thing. Live demo here.

read more

Filippo Valsorda github.com

age is a simple, modern, and secure file encryption tool

It features small explicit keys, no config options, and UNIX-style composability. $ age-keygen -o key.txt Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p $ tar cvz ~/data | age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p > data.tar.gz.age $ age -d -i key.txt data.tar.gz.age > data.tar.gz If Rust is more your thing, check out the perfectly named port: rage.

read more

Go blog.jse.li

Building a BitTorrent client from the ground up in Go

What is the complete path between visiting thepiratebay and sublimating an mp3 file from thin air? In this post, we’ll implement enough of the BitTorrent protocol to download Debian. It isn’t a full-fledged client (no magnet links, no multi-file torrents, no seeding), but that makes it an excellent candidate for reading and learning. Here’s the resulting source code.

read more

Kubernetes github.com

A chaos engineering platform for Kubernetes

Chaos Mesh is a cloud-native Chaos Engineering platform that orchestrates chaos on Kubernetes environments. At the current stage, it has the following components: Chaos Operator: the core component for chaos orchestration. Fully open sourced. Chaos Dashboard: a visualized panel that shows the impacts of chaos experiments on the online services of the system; under development; curently only supports chaos experiments on TiDB(https://github.com/pingcap/tidb). For the uninitiated, chaos engineering is when you unleash havoc on your system to prove out its resiliency (or lack thereof).

read more

Go github.com

A better way to handle, trace, and log errors in Go

This package is intended to give you more control over error handling via error wrapping, stack tracing, and output formatting. Basic error wrapping was added in Go 1.13, but it omitted user-friendly Wrap methods and built-in stack tracing. Other error packages provide some of the features found in eris but without flexible control over error output formatting. This package provides default string and JSON formatters with options to control things like separators and stack trace output. However, it also provides an option to write custom formatters via eris.Unpack.

read more

Go github.com

A static website "generator" that lets you use servers and frameworks you already know

The scare quotes around generator are there because Staticgen doesn’t actually generate a static site for you. Instead, it downloads your dynamic site and produces a static version of it. A slightly new twist on an old idea: If you’re unfamiliar, you can actually use the decades-old wget command to output a static website from a dynamic one, this project is purpose-built for the same idea, letting your team to use whatever HTTP servers and frameworks you’re already familiar with, in any language. It is not without its caveats (no JavaScript rendering is a big one), but this could be useful in many circumstances you may find yourself in.

read more

Bill Kennedy ardanlabs.com

The why and what of Go modules

If you’re looking for a thorough primer of Go modules, Bill Kennedy has you covered: In this post, I will focus on the transition from GOPATH to modules and the problems modules are solving. Along the way, I will provide just enough of the semantics so you can have a better understanding of how modules work at a high level. Maybe more importantly, why they work the way they do. When you’re done with this, check out part 2 of the series about projects, dependencies, and gopls.

read more

Go Time Go Time #108

Graph databases

Mat, Johnny, and Jaana are joined by Francesc Campoy to talk about Graph databases. We ask all the important questions — What are graph databases (and why do we need them)? What advantages do they have over relational databases? Are graph databases better at answering questions you didn’t anticipate? How is data structured? How do queries work? What problems are they good at solving? What problems are they not suitable for? And…since we had Francesc on the hot seat, we asked him about Just for Func and when it’s coming back.

read more

Jerod Santo changelog.com/posts

5 things Rob Pike attributes Go's success to

As the saying goes… history doesn’t repeat itself, but it often rhymes. If you want to create a successful programming language (or at least understand how you might), it’s immensely valuable to learn from others who have done just that. on Go Time episode #100, two of Go’s creators (Rob Pike and Robert Griesemer) sat down to discuss the language’s success. Here’s 5 things they attribute to its success.

read more

0:00 / 0:00