Go Icon

Go

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

Security github.com

Security health metrics for open source projects

This project is a formalized list of checks that can be run against an open source codebase and a Go-based tool to run those checks and provide a report on the project’s health. Here are a few of the checks it runs, to get an idea of what it’s all about:

  • Does the project use fuzzing tools, e.g. OSS-Fuzz?
  • Does the project cryptographically sign releases?
  • Does the project contain a security policy?

Go github.com

A high-performance, columnar, in-memory storage engine for Go

The general idea is to leverage cache-friendly ways of organizing data in structures of arrays (SoA) otherwise known “columnar” storage in database design. This, in turn allows us to iterate and filter over columns very efficiently. On top of that, this package also adds bitmap indexing to the columnar storage, allowing to build filter queries using binary and, and not, or and xor (see kelindar/bitmap with SIMD support).

The Changelog The Changelog #446

xbar puts anything in your macOS menu bar

On this episode we’re talking with our good friend Mat Ryer whom you may know from the Go Time podcast. Mat created an awesome open source tool for putting just about anything in your Mac’s toolbar. It was originally written in Objective-C, but it just got a big rewrite in Go and abig rename from BitBar to xbar.

If you don’t use a Mac don’t hit skip on this episode quite yet! There are lessons to be learned for anyone interested in hacking on tools to make your life better. Plus, with this rewrite Mat has positioned xbar to go cross-platform, which we talk about as well.

Go Time Go Time #183

Using Go in unusual ways

This episode was recorded live from GopherCon Europe 2021!

Natalie & Mat host three amazing devs who gave talks that showcase using Go in unusual ways: Dr. Joakim Kennedy is tracking Go in malware, Mathilde Raynal is building quantum-resistant cryptography algorithms, and Preslav Rachev is creating digital art.

We hear from our speakers how they got into Go, how they made the choice to use Go for their unusual use case, and how it compares to other languages for their specific needs.

We also chat about conference talks, submissions and public speaking - how to start, good practices, and tips they collected along the way.

Katie Hockman blog.golang.org

Go's fuzzing effort now in beta

We first talked fuzzing with Katie Hockman back in August of 2020. Fast-forward 10 months and native fuzzing in Go is ready for beta testing! Here’s Katie explaining fuzzing, for the uninitiated:

Fuzzing is a type of automated testing which continuously manipulates inputs to a program to find issues such as panics or bugs. These semi-random data mutations can discover new code coverage that existing unit tests may miss, and uncover edge case bugs which would otherwise go unnoticed. Since fuzzing can reach these edge cases, fuzz testing is particularly valuable for finding security exploits and vulnerabilities.

It looks like the feature won’t be landing in Go 1.17, but they’re planning on it sometime after that. Either way, you can use fuzzing today on its development branch.

Go Time Go Time #182

Go Battlesnake Go!

In the past decade a variety of games have emerged where players need to create an AI to play the game rather than play the game directly. In this episode we speak with the creator of one of those games - Battlesnake. Brad Van Vugt joins us to talk about building a game engine using Go, making programming games easier for beginners to get started with, the long term vision for games like Battlesnake, and more.

Kubernetes github.com

Porter is a Kubernetes-powered PaaS that runs in your own cloud provider

Porter brings the Heroku experience to your own AWS/GCP account, while upgrading your infrastructure to Kubernetes. Get started on Porter without the overhead of DevOps and customize your infrastructure later when you need to.

For more on Porter, tune in to Go Time live on June 1st! Mat Ryer will be asking Carolyn Van Slyck all about it. If live isn’t an option… subscribe to Go Time, why don’t ya?

Namespace conflict! I mistook this Porter for that Porter which Carolyn Van Slyck works on. That Porter will be the subject of the June 1st Go Time, not this Porter. If you want us to do a show on this Porter, let us know. 😎

Go Time Go Time #180

Are frameworks getting an Encore?

Tools and frameworks that aim to boost developer productivity are always worth a closer look, but we don’t often consider the trade-offs for whichever we settle on. In this episode, we discuss the questions one should be asking when evaluating developer productivity tools and frameworks in the Go ecosystem in particular.

Joining us to discuss is André Eriksson, the creator of Encore, a backend framework that aims to make development and deployment as productive as it can be.

Linux github.com

Lima is like a "macOS subsystem for Linux"

Lima launches Linux VMs on your Intel or ARM-based Mac with automatic file sharing, port forwarding, and containerd. That means you can easily do cool stuff like:

$ echo "files under /Users on macOS filesystem are readable from Linux" > some-file

$ lima cat some-file
files under /Users on macOS filesystem are readable from Linux

$ lima sh -c 'echo "/tmp/lima is writable from both macOS and Linux" > /tmp/lima/another-file'

$ cat /tmp/lima/another-file
/tmp/lima is writable from both macOS and Linux"

Patrick DeVivo github.com

Reqlite lets you query Redis with SQL

Patrick DeVivo:

This is a project in Go that compiles to a SQLite runtime loadable extension, which brings Redis commands into a SQL context. This allows you to write SQL queries against data in a Redis instance, using Redis commands like LRANGE as SQL functions.

Experimental for now. But why? Patrick says:

In general, Redis is fairly accessible from many programming languages, and any query using reqlite could probably be implemented in a language of your choice using a Redis client. However, sometimes declarative SQL can be a better choice to express what you’re looking for, and that’s where this project may be most useful.

Go github.com

A Go backend framework for rapidly creating APIs and distributed systems

Encore uses static analysis and code generation to reduce the boilerplate you have to write, resulting in an extremely productive developer experience.

The list of superpowers is impressive, to say the least. I know gophers tend to be skittish when they’re approached by a framework, though, so I’d love to hear more about this project on Go Time

Go Time Go Time #175

The ultimate guide to crafting your GopherCon proposal

The Call for Proposals for GopherCon 2021 is open from Monday, April 5th to Sunday, April 25th. Kris Brandow, an experienced GopherCon speaker, has published a series of guides to assist Gophers as they craft their proposals and think about submitting.

In this episode Kris reads through his guide, discussing the four parts with a GopherCon newbie, Angelica Hill, who spoke for the first time at GopherCon last year, and is a first time CFP reviewer this year.

0:00 / 0:00