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.
JuiceFS is an open-source POSIX file system built on top of Redis and object storage (e.g. Amazon S3), designed and optimized for cloud native environment. By using the widely adopted Redis and S3 as the persistent storage, JuiceFS serves as a stateless middleware to enable many applications to share data easily.
Mat Ryer hosts our don’t-call-it-jeopardy game show live at GopherCon! Kat Zień, Mark Bates, and L Körbes put their Go knowledge to the test! Can you outwit our intrepid contestants?
NPM provides an easy way to publish and distribute Node JS packages for both code dependencies as well as global command-line tools. This article demonstrates how it can be used to publish and distribute binaries written in Golang.
Smug automates your tmux workflow. You can create a single configuration file, and smug will create all required windows and panes from it.
This is inspired by tmuxinator, which I’ve been using for years but has gotten a bit flaky on me with recent macOS upgrades. I can highly recommend the overall workflow, and will be giving this a try real soon. 💯
L Körbes– creator of Aprenda Go– joins our panel of gophers to discuss teaching and learning Go in non-English languages. Along the way: Mat reveals his origin story, Kris explains why all idioms are garbage, and Natalie gives conference tips.
Mat Ryer hosts a spectacular panel with expert debuggers Derek Parker, Grant Seltzer Richman, and Hana Kim from the Go Team. Let’s face it, even the best-intended code doesn’t always do what you want it to. What’s a Gopher to do? Listen to this, that’s what!
sops is an editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault and PGP.
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.
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!
k6 is a modern load testing tool, building on Load Impact’s years of experience in the load and performance testing industry. It provides a clean, approachable scripting API, local and cloud execution, and flexible configuration.
Join Mat Ryer for a fun conversation with Kris Brandow, Angelica Hill, and Natalie Pistunovich about how these Gophers get work/life done in this crazy world! Expect to learn about work environment must-haves, communication tips & tricks, developer tool recommendations, and much more!
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.
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.
Monitoring and debugging distributed systems is hard. In this episode, we catch up with Kelsey Hightower, Stevenson Jean-Pierre, and Carlisia Thompson to get their insights on how to approach these challenges and talk about the tools and practices that make complex distributed systems more observable.
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.
When we talk about improving a programming language, we often think about what features we would add. Things like generics in Go, async/away in JS, etc. In this episode we take a different approach and talk about what we would remove from Go to make it better.
Paul Smith (from “Obama’s Trauma Team”) tells us the tale of how Go played a big role in the rescuing and rebuilding of the HealthCare.gov website. Along the way we learn what the original team did wrong, how the rescue team kept it afloat during huge traffic spikes, and what they’ve done since to rebuild it to serve the people’s needs.
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.
In this episode we discuss Mislav’s experience building not one, but two Github CLIs - hub and gh. We dive into questions like, “What lead to the decision to completely rewrite the CLI in Go?”, “How were you testing the CLI, especially during the transition?”, and “What Go libraries are you using to build your CLI?”
Track and vizualize your followers/notifications, your repo’s stars/forks/watchers/commits, issue states/assignees/labels, and more.
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.
With Gophercon rapidly approaching, we go behind the scenes to find out what it takes to deliver the world’s largest Go conference.
Can’t find a job working in Go? Perhaps introducing your current team to Go is the solution. In this episode we talk about how Go was introduced at different organizations, potential pitfalls that may sabotage your efforts, some advice on how to convince your team and CTO to use Go and more.
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.