DEV Community

Jexia
Jexia

Posted on • Updated on

Golang Ninja Newsletter - Issue #10

Weekly · Maarten Bezemer · July 15 · Join for free or add the newsletter rss

Stay up-to-date and ahead of your peers with Maarten Bezemer’s weekly newsletter for Golang Ninjas.

Fundamentals

Slices from the ground up

Inspired by a conversation with a co-worker about using a slice as a stack. The conversation turned into a discussion on the way slices work in Go.

Understanding the context package in Golang

The context package in Go can come in handy while interacting with APIs and slow processes, especially in production-grade systems that serve web requests.

Best-practices

Telemetry system for F1 2017, using Go, InfluxDB and Grafana

I discovered a feature in my F1 2017 Game (PS4), navigating in a menu I sow an option called UDP Telemetry Settings with many network configurations.

Use interfaces and dependency injection to future proof designs

The use of interfaces is an easy to understand technique which enables the creation of both testable and extensible code. 

Tutorials

Simplifying cloud native development

The micro blog is a resource for microservices and distributed systems.

Using Go for WebAssembly Applications

A week ago, the first beta of Go 1.11 came out. For me this is a special release because it’s the first version that ships with initial WebAssembly (WASM) support.

Go WebAssembly: Binding structures to JS references

Support for WebAssembly will be shipped with Go 1.11 (expected in august 2018), and with it also the brand new syscall/js package.

Tools

Introducing Buffalo-Azure

For Go developers, Buffalo is a Ruby-on-Rails style rapid web development framework.

Dependency Injection in Go

Small utility package to handle dependency injection in Go (it's in tinrab/kit, among other things). The goal was simplicity and for it to fit well in my current side project.

Go 1.11: WebAssembly for the Gophers

In February 2017, the issue for WebAssembly support was opened at golang/go by Brad Fitzpatrick member of the Go team.

Writing a reverse proxy in just one line with Go

Leave your programming language hang ups at the door and come admire the best standard library I’ve ever come across. 

G.E.R.T: a Go-based toolkit for embedded apps

This paper presents a new embedded toolkit, the Golang Embedded RunTime (GERT), which is specifically intended for concurrent, bare-metal embedded apps. GERT is a modified version of the Go runtime which can boot on a bare-metal ARMv7a system and execute Go code.

Making Jepsen check linearizability in linear time

Testing consistency guarantees of distributed systems. Jepsen performs operations, injects faults, collects history and then tries to see if the history is linearizable.

Opinionated, P2P networking stack for decentralized protocols

The thing is, there has been no standardized solution to develop P2P applications that has been widely adopted by any community.

Perspectives

I fought the code, and the code won

I’ve been a “professional” developer now for almost 20 years. I’ve learned a lot in the time. I want to tell you a story about the last few weeks of my life when I ignored those life lessons.

Operational semantics of a weak memory model

On one hand, memory models must be lax enough to allow common hardware and compiler optimisations. On the other the more lax, the harder it is for devs to reason about their programs. To alleviate the burden a weak memory model should provide what is called the data-race freedom guarantee, which allows reasoning in terms of sequential consistency provided a program is data-race free.

Bye microservices: From 100s of problem children to 1 superstar

Segment is the analytics API you've always wanted. It's the easiest way to install all of your favourite analytics tools at once!

Videos

Simple Web App With Golang & WebAssembly

You'll see how to use Golang and WebAssembly to build a simple webapp.

Killer Robots 101 with Go

Thejana Sakunajith Satanarachchi presents 'Killer Robots 101 with Go'. Robotics has always been an elusive art for most developers.

Measuring memory allocations and how to reduce them

In this episode we learn how to measure how many memory allocations a program is performing and how to reduce them thanks to sync.Pool, as well as how to identify which piece of your code is allocating the memory thanks to pprof.

Podcast

Go Time #79: New Go branding strategy with Steve Francia

Steve Francia joined the show and told us EVERYTHING about Go's new branding strategy (and don't worry, the gopher isn't going anywhere!)

Weekly · Maarten Bezemer · July 15 · Join for free or add the newsletter rss

Top comments (0)