Sonic outperforms other Go implementations on all JSON sizes. Here are the results on a large dataset. 👇
Open Source and other source available projects have been a huge driver of progress in our industry, but building and maintaining an open source project is about a lot more than just writing the initial code and putting together a good README. On this episode of the maintenance mini-series, we’ll be discussing open source and the maintenance required to keep it going.
Tiago Mendes joins Mat, Jon, and Johnny to discuss eventual consistency and strategies for changing data at scale.
Run ping, DNS, TLS & HTTP test against any URL or host with a single command.
Natalie and Mat explore hacking in Go from the eyes of 2 security researchers. Joakim Kennedy and JAGS have both used Go for hacking: writing malware, hardware hacking, reverse engineering Go code, and more.
Svyatoslav Kryukov on the Evil Martian blog:
Ruby is awesome. We love its readability, flexibility, and developer-centric nature. Still, here at Mars, we also love Go because it has its own sense of simplicity and magic, too. Simply put, Go holds advantages over Ruby in some aspects: it’s faster, statically typed, and comes with cool concurrency primitives out of the box. This being said, some intrepid readers might find themselves grappling with a seemingly reasonable question: if Go is so darn good, why don’t we just write everything with it?
Read this tale and learn to write Go in Ruby, gaining the ability to modify Ruby exactly as you desire.
Each year a group of user researchers and the Go team get together and create a survey for the Go community. The results of the survey are analyzed and turned into a report made available to everyone in the Go community. In this episode we sit down with Alice Merrick and Todd Kulesza to discuss the survey, how it’s made, and some of the interesting results from this year’s survey.
The team’s goal is to become “the de-facto open-source alternative to MongoDB.” Here’s why:
MongoDB is a life-changing technology for many developers, empowering them to build applications faster than using relational databases. Its easy-to-use and well-documented drivers make MongoDB one of the easiest to use database solutions available. However, MongoDB abandoned its open-source roots, changing the license to SSPL - making it unusable for many open source and commercial projects.
Most MongoDB users are not in need of many of the advanced features offered by MongoDB; however, they are in need of an open-source database solution. Recognizing this, MangoDB is here to fill the gap by providing an alternative.
This is currently a proof of concept. The concept: a proxy that converts Mongo’s wire protocol to SQL and stores everything in PostgreSQL. Fascinating idea! Will it work?
Vladimir Dementyev shares a deep dive into some necessary profiling he did on one of the Go services and how he finally figured out what was going wrong:
Here’s a question: how can we see what’s happening inside an arbitrary Go process? Or, more precisely, how can we see what all the goroutines are doing at any given moment? If we could crack that, it could help us figure out why they’re not processing our requests.
Ashley Willis and Ela Krief join Natalie to discuss the ins and outs of management. They discuss what makes a good manager, common mistakes managers make, how to communicate effectively, dealing with conflict, and much more.
With the constant demands of work and life we often don’t take much time to ensure that we’re maintaining ourselves. In this third episode of the maintenance series, Kris is joined by co-host Natalie, along with Ian Lopshire to discuss the ways in which we can maintain ourselves in this busy and chaotic world.
A friendly reminder to only point this tool at websites you own/operate. 😎
eBPF (7 years old) is a sandbox that can run code inside the linux kernel. It started as a technology to build firewalls, and has evolved over time to include a range of new features.
The panel discuss the origins of eBPF and how it works, as well as dig into some real-world use cases. While eBPF programs themselves aren’t written in Go (more like C), we will hear about how you can communicate with eBPF programs from your Go code.
We’re celebrating our 200th episode with a crazy game of Gophers Say! Mat Ryer hosts two epic teams including Go Time OGs Carlisia, Erik, and Brian!
In this episode, we will be exploring the tiny world of Go and Hardware. We are joined by three gophers, Vladimir Vivien, Tobias Theel, and Ron Evans, who will be discussing the use of Linux API (V4L2) to control video hardware and capture image data in realtime, programming Bluetooth devices, working on WiFi communication using an Arduino Nano 33 IoT NINA chip, and much more.
In this video I kick the tires on Mat Ryer’s xbar, an open source utility that lets you “put anything in your macOS menu bar.” I get it to tell us dad jokes, keep us abreast of Covid case counts, and write a custom plugin that pulls from Plausible Analytics to display changelog.com’s real-time visitor count.
Ever wonder how new features get added to the
go command? Or where tools like
gopls come from? Well, there’s an open team that handles just those things.
Just like the programming language itself, many of the tools that Go engineers use everyday are discussed and developed in the open. In this episode we’ll talk about this team, how it started, where it’s going, and how you can get involved.
Nice is a highly customizable and lightweight framework for crafting CLI apps.
Nice respects idiomatic Go code and focuses to be clear, efficient and easy to write and maintain.
You can use it as a full-featured non-opinionated framework or use any nice packages as stand-alone libraries.
I’m a big fan of the similar projects section in the README. Classy!
Encore now supports the two most highly requested features from our users!
- Native support for building REST APIs
- Support for ORMs and other database query helpers
Encore v0.17 also comes with improvements to authentication, and lots of minor improvements and bug fixes!
Natalie sits down with Go book authors Bill Kennedy & Sau Sheong Chang to discuss the ins and outs of writing (and reading) books about Go!
Here’s how Tom Payne describes his project:
chezmoi is a popular dotfile manager (currently over 4.5K stars on GitHub and increasing quickly). chezmoi helps you get your prefered environment synchronized across multiple machines (e.g. your home desktop, your work laptop, and a temporary development container in the cloud) while easily coping with differences from machine to machine and keeping all your secrets safe either with your password manager or encryption. Using chezmoi feels very much like using git (and indeed it builds on git). chezmoi is easy to install, quick to start with, runs everywhere, and scales from managing a handful of files on one machine to complex multi-machine set-ups with hundreds of dotfiles and plugins.
Getting a new machine set up looks like:
$ sh -c "$(curl -fsLS git.io/chezmoi)" -- init --apply <github-username>
My dotfiles “manager” is just a combination of
git clone and
setup.sh, but if I used many machines I’d probably reach for something more robust like this. If you’re already using a manager for yours, here’s a comparison guide of how chezmoi stacks up to other popular options.
Building software is difficult and time consuming, but the maintenance of software is where we spend the majority of our time. In this episode, Ian and sam join Johnny and Kris to discuss how to build actually maintainable software, the features of Go that make it good for writing maintainable software, and different ways that we might define the term “maintenance”.
To build or to buy, that’s a constant question we ask ourselves as software engineers. In this episode we dig into the nuance of these options and the space between them with an eye toward both the building of software and its eventual maintenance.
Bryan Boreham (Grafana Labs) and Jordan Lewis (Cockroach Labs) join Mat and Jon to talk about memory management in Go. We learn about the heap, the stack, and the garbage collector. There are also some absolute gems of wisdom scattered throughout this episode, don’t miss it.
Static analysis is a powerful technique for finding vulnerabilities in source code. However, the approach has suffered from being noisy - that is, many static analysis tools find quite a few “vulnerabilities” that are not actually real. This has led to developer friction as users get tired of the tools “crying wolf” one time too many.
The motivation for GoKart was to address this: could we create a scanner with significantly lower false positive rates than existing tools? Based on our experimentation the answer is yes.