mpm + go   19

Package file handles write-ahead logs and space management of os.File-like entities
go  io 
6 weeks ago by mpm
Understanding Real-World Concurrency Bugs in Go
In this paper, we perform the first systematic study onconcurrency bugs in real Go programs. We studied six pop-ular Go software including Docker, Kubernetes, and gRPC.We analyzed 171 concurrency bugs in total, with more thanhalf of them caused by non-traditional, Go-specific problems.Apart from root causes of these bugs, we also studied theirfixes, performed experiments to reproduce them, and eval-uated them with two publicly-available Go bug detectors.Overall, our study provides a better understanding on Go’sconcurrency models and can guide future researchers andpractitioners in writing better, more reliable Go softwareand in developing debugging and diagnosis tools for Go.
concurrency  go 
6 weeks ago by mpm
Fast, portable, non-Turing complete expression evaluation with gradual typing (Go) - google/cel-go
8 weeks ago by mpm
Go Memory Management
In this post we will explore Go memory management
go  memory 
october 2018 by mpm
Books about Nodejs, Angular2, Agile, Clean Code, Docker, Golang, Microservices, REST, TDD, BDD, and Startups.
book  rest  testing  agile  go  design  ddd 
september 2018 by mpm
The Go low-level calling convention on x86-64
This article analyzes how the Go compiler generates code for function calls, argument passing and exception handling on x86-64 targets.
august 2018 by mpm
A Go package, littleboss lets you turn your program into a a self-supervising binary. It starts itself as a child process, monitors its life cycle, reloads it if it exits, and can be instructed to replace it with a new binary. The supervisor can open sockets for you and share them across reloads of your program, ensuring no connections are dropped.
june 2018 by mpm
gVisor is a user-space kernel, written in Go, that implements a substantial portion of the Linux system surface
linux  go  containers 
may 2018 by mpm
Allocation Efficiency in High-Performance Go Services
In this post we’ll cover common patterns that lead to inefficiency and production surprises related to memory allocation as well as practical ways of blunting or eliminating these issues. We’ll focus on the key mechanics of the allocator that provide developers a way to get a handle on their memory usage.
go  memory 
april 2018 by mpm
Your basic func
This text is about the implementation of a Go tool based entirely on functions – the API contains only immutable data types, and the code is built on top of a struct with five func fields. It’s a tool for building virtual graphs. In a virtual graph no vertices or edges are stored in memory, they are instead computed as needed
graph  go 
february 2018 by mpm
CoreDNS aims to be a fast and flexible DNS server. The keyword here is flexible: with CoreDNS you are able to do what you want with your DNS data. And if not: write some plugin!
dns  discovery  go 
september 2017 by mpm
Going down the rabbit hole with go-fuzz
Inspired by AFL, Dmitry Vyukov created go-fuzz, which is a fuzz testing tool for the Go programming language. It’s one of the most useful tools in the Go toolchain, but it’s not as widely known as it should be
testing  go 
july 2017 by mpm
Suture provides Erlang-ish supervisor trees for Go
july 2017 by mpm
periph is a standalone library with no external dependency to interface with low-level board facilities exposed by the OS or leveraged against OS’ will.
april 2017 by mpm
Libmill is a library that introduces Go-style concurrency to C
concurrency  coroutines  go 
august 2015 by mpm
groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases
go  caching 
july 2013 by mpm
Learning Go
"Learning Go" is a book that gives an introduction into the Go language of Google. It is licensed under a copy-left license.
book  go 
may 2012 by mpm
Network Programming with Go
An e-book on building network applications using the Google Go programming language (golang)
networking  book  go 
march 2012 by mpm
Doozer is a highly-available, completely consistent store for small amounts of extremely important data. When the data changes, it can notify connected clients immediately (no polling), making it ideal for infrequently-updated data for which clients want real-time updates. Doozer is good for name service, database master elections, and configuration data shared between several machines
distributed  coordination  consistency  consensus  availability  go 
april 2011 by mpm

Copy this bookmark: