Go Icon

Go

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

Go TimeGo Time #162

We're talkin' CI/CD

Continuous integration and continuous delivery are both terms we have heard, but what do they really mean? What does CI/CD look like when done well? What are some pitfalls we might want to avoid? In this episode Jérôme and Marko, authors of the book “CI/CD with Docker and Kubernetes” join us to share their thoughts.

Go TimeGo Time

The engineer who changed the game

Today we’re sharing a full-length episode of Command Line Heroes from Season 6 for you to check out. We hand picked this episode for you to listen to.

Many of us grew up playing cartridge-based games. But there’s few who know the story behind how those cartridges came to be. And even fewer who know the story of the man behind them: Jerry Lawson. Before Jerry, a gaming console could only play one game. Jerry quite literally changed the game. This episode shares Jerry’s story of inventing the cartridge-based system for gaming consoles.

Go TimeGo Time #158

Play with Go

Play with Go is a set of hands-on, interactive tutorials for learning the tools used while programming in Go. In this episode we are joined by its creators, Paul Jolly and Marcos Nils, as we learn more about what motivated the creation of the project, what technology it was built on, and how you can help contribute additional guides to help your fellow gophers!

Goroland.zone

Benchmarking the M1 with the Go standard library

We are in a time where the open source tooling and developer story around Apple’s new M1 chip is all over our feeds. Among these was this interesting benchmark. It even highlights where a somewhat older Intel can still beat the M1, such as highly optimized crypto. In general, if your code relies on the Go parts more than native optimized code the M1 looks like a performance win.

Gogithub.com

Maddy – a composable all-in-one mail server

Maddy Mail Server implements all functionality required to run an email server. It can send messages via SMTP (works as MTA), accept messages via SMTP (works as MX) and store messages while providing access to them via IMAP. In addition to that it implements auxiliary protocols that are mandatory to keep email reasonably secure (DKIM, SPF, DMARC, DANE, MTA-STS).

It replaces Postfix, Dovecot, OpenDKIM, OpenSPF, OpenDMARC and more with one daemon with uniform configuration and minimal maintenance cost.

IMAP storage is still in beta, but this is one to watch as it could dramatically simplify your infrastructure.

Russ Coxgithub.com

Russ Cox's experimental new refactoring tool for Go

It’s just 18 commits deep at the time of logging, but when one of Go’s authors fires up a new project (and a refactoring tool at that), it’s worth following along to see what develops.

Just how raw is this effort? The README only states:

rf is an experimental refactoring tool. It is very much a work in progress. rf is incredibly rough and likely to be buggy and change incompatibly.

I gave the repo a quick cloneing to see what I could see, but go get failed due to a missing file reference so it’s definitely in a “wait and see” status unless you’re up for some hacking.

Opsgrafana.com

Grafana Tempo is a high volume, distributed tracing backend

Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, and Loki. Tempo can be used with any of the open source tracing protocols, including Jaeger, Zipkin, and OpenTelemetry. It supports key/value lookup only and is designed to work in concert with logs and metrics (exemplars) for discovery.

Add this to the incredibly impressive open source portfolio at Grafana Labs.

Gogithub.com

A Go unikernel running on x86 bare metal

Run a single Go applications on x86 bare metal, written entirely in Go (only a small amount of C and some assembly), support most features of Go (like GC, goroutine) and standard libraries, also come with a network stack that can run most net based libraries.

The entire kernel is a go application running on ring0. There are no processes and process synchronization primitives, only goroutines and channels. There is no elf loader, but there is a Javascript interpreter that can run js script files, and a WASM interpreter will be added to run WASM files later.

Goroutines correspond to processes and channels are used for inter-process communication (IPC). Also it runs JavaScript ¯\(ツ)

Chua Bok Woongithub.com

sq is a code-generated, type safe query builder and struct mapper for Go

From reading through the README, this seems like a nice balance between a full-blown ORM and hand-rolling all your own SQL. For example, this point from the The mapper function is the SELECT clause. section:

In sq whatever you SELECT is automatically mapped. This means you just have to write your query, execute it and if there were no errors, the data is already in your Go variables. No iterating rows, no specifying column scan order, no error checking three times. Write your query, run it, you’re done.

0:00 / 0:00