Go

sqreen

Preventing SQL injections in Go (and other vulnerabilities)

Go has taken the programming world by storm. When it recently passed its ten-year anniversary, estimates suggested as many as 2 million people use the language. As that number continues to grow, common mistakes have emerged that can lead to bugs and security vulnerabilities. In this article, I will address some of them so you can arm yourself with the knowledge to write more robust, secure Go applications, and avoid SQL injections and other security issues.

honeycomb

Discord Bot Part 2: More Observability

I’ve recently started working on a new project to build a Discord bot in Go, mostly as a way to learn more Go but also so I can use it to manage various things in Azure and potentially elsewhere. I figured it’d be useful to document some of this project to give some insights as to what I’ve done and why. Next up is the bot itself and how I integrated it into Honeycomb to get some visibility on how different commands are running.

honeycomb

Discord Bot Part 1: Getting started the right way

I’ve recently started working on a new project to build a Discord bot in Go, mostly as a way to learn more Go but also so I can use it to manage various things in Azure and potentially elsewhere. I figured it’d be useful to document some of this project to give some insights as to what I’ve done and why. First up was setting up the CI/CD pipeline for it so that I don’t need to worry about it later and can save myself a bunch of time when testing.

jfrog

Find the Path to Go Module Major Versions With GoCenter

How many major versions of a given Go module are there? That simple question doesn’t always have an easy-to-discover answer. Golang’s unique system of semantic import versioning solves some key problems of ensuring Go module compatibility across dependencies. But it also makes it a bit harder to learn what major versions of a Go module are available. The go client doesn’t provide a way to find out, nor will it inform you when a newer major version of a dependency exists.

mattermost

Coordinated disclosure of XML round-trip vulnerabilities in Go's standard library

This blog post is a part of Mattermost’s public disclosure of three serious vulnerabilities in Go’s encoding/xml related to tokenization round-trips. The public disclosure comes as a result of several months of work, including collaborating with the Go security team since August 2020 and with affected downstream project maintainers since earlier this month.

instana

How To Get Lightning Fast Observability For Go On AWS Lambda

AWS Lambda supports development and deployment of functions in a variety of programming languages including Node.js, Go, Java, and Python. Instana has previously announced automated tracing of AWS Lambda Functions for Node.js and Python. We are now extending our best-in-class Lambda distributed tracing to Go and Java.

sensu

Go for systems operators, part 1: a brief history of Go

For Sensu Software Engineer Eric Chlebek, the Go programming language is a core part of his day-to-day, and building a monitoring tool has given him unique insight into the world of operations and what operators are looking for in a monitoring solution. In this series, he shares his learnings about Go as it relates to and benefits IT operators.

logz.io

Beginner's Guide to Jaeger + OpenTracing Instrumentation for Go

This post aims to provide a very simple beginner’s guide to Jaeger + OpenTracing instrumentation for Go applications (the terms “application” and “service” is used interchangeably in this document) via a working example. If you are new to instrumentation, I recommend that you first read this post for a practical introduction to instrumentation for Jaeger and OpenTracing. You can also get more info on using logs in Go.

Workshop: Getting started with OpenTelemetry and Distributed Tracing in Golang

Lightstep enables teams to detect and resolve regressions quickly, regardless of system scale or complexity. We integrate seamlessly into daily workflows, whether you are proactively optimizing performance or investigating a root cause so you can quickly get back to building features.