Skip to content

Instantly share code, notes, and snippets.

@peterwardle
peterwardle / GoConcurrency.md
Created September 13, 2018 14:58 — forked from rushilgupta/GoConcurrency.md
Concurrency in golang and a mini Load-balancer

INTRO

Concurrency is a domain I have wanted to explore for a long time because the locks and the race conditions have always intimidated me. I recall somebody suggesting concurrency patterns in golang because they said "you share the data and not the variables".

Amused by that, I searched for "concurrency in golang" and bumped into this awesome slide by Rob Pike: https://talks.golang.org/2012/waza.slide#1 which does a great job of explaining channels, concurrency patterns and a mini-architecture of load-balancer (also explains the above one-liner).

Let's dig in:

Goroutines

@peterwardle
peterwardle / main.go
Created September 13, 2018 14:56 — forked from enricofoltran/main.go
A simple golang web server with basic logging, tracing, health check, graceful shutdown and zero dependencies
package main
import (
"context"
"flag"
"fmt"
"log"
"net/http"
"os"
"os/signal"

Keybase proof

I hereby claim:

  • I am peterwardle on github.
  • I am peterwardle (https://keybase.io/peterwardle) on keybase.
  • I have a public key whose fingerprint is C672 7CCF 8546 67C5 0852 8637 C0AC D221 A7AB CD30

To claim this, I am signing this object:

@peterwardle
peterwardle / hack.sh
Created April 1, 2012 06:37 — forked from erikh/hack.sh
OSX For Hackers
#!/usr/bin/env sh
##
# This is script with usefull tips taken from:
# https://github.com/mathiasbynens/dotfiles/blob/master/.osx
#
# install it:
# curl -sL https://raw.github.com/gist/2108403/hack.sh | sh
#