---
title: "Go Newsletter Issue #158"
publication: "Go Weekly"
issue: 158
published_at: "2017-05-04"
canonical_url: "https://golangweekly.com/issues/158"
---

Go Newsletter 158   . 

[Read this on the Web](http://golangweekly.com/issues/158) 

[Go Newsletter](http://golangweekly.com) Issue 158 — May 4, 2017     

Featured [There is No Pass-by-Reference in Go](https://dave.cheney.net/2017/04/29/there-is-no-pass-by-reference-in-go?utm_source=golangweekly&utm_medium=email) tutorial _“Go does not have pass-by-reference semantics because Go does not have reference variables.”_ Dave Cheney [Pilosa: A Distributed Bitmap Index, Powered by Go](https://github.com/pilosa/pilosa?utm_source=golangweekly&utm_medium=email) code An open source, distributed bitmap index system for accelerating queries across massive data sets. [Intro here.](https://www.pilosa.com/docs/introduction/) Pilosa [Real-time performance monitoring for Go apps](https://www.datadoghq.com/monitor-go/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-GoWeekly&utm_content=Go) Observe your apps from any angle with custom Go metrics, expvar variables, server metrics, and end-to-end traces. Datadogsponsored[![\](https://copm.s3.amazonaws.com/bf7fdb83.png)](https://www.datadoghq.com/monitor-go/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-GoWeekly&utm_content=Go) [Type Safety or Convenience](https://lanreadelowo.com/blog/2017/05/02/type-safety-or-convenience/?utm_source=golangweekly&utm_medium=email) tutorial How one developer discovered that the freedom of `interface{}` comes at the cost of type safety. Lanre Adelowo [infreqdb: S3 Backed Database for Infrequent Read Access](https://github.com/turbobytes/infreqdb?utm_source=golangweekly&utm_medium=email) code An AWS S3-backed key/value data store for infrequent read access from Go. turbobytes [Building a Go Web App in 2017, A 4 Part Series](https://grisha.org/blog/2017/04/27/simplistic-go-web-app/?utm_source=golangweekly&utm_medium=email) tutorial A four part series on building a ‘real’ web app from scratch without frameworks. Gregory Trubetskoy [Config: A Simple Configuration Library](https://github.com/joshbetz/config?utm_source=golangweekly&utm_medium=email) code A small configuration library for Go that caches values in memory, parses environment variables, JSON files, and reloads automatically on SIGHUP. Josh Betz Jobs [Full Stack Go Developer (London, UK)](http://www.golangprojects.com/golang-go-job-bpt-Full-stack-engineer-for-an-ambitious-cryptocurrency-startup-%28remote%29-remote-work-possible-London-Endian.html?utm_source=golangweekly&utm_medium=email) A cryptocurrency startup which is migrating from Node to Go. Endian [Be Passionate about your Work. Get Hired](https://hired.com/join/?utm_source=petercooperpress&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-swe%29%28q2-17-go-weekly%29&utm_content=newsletter) Your dream job is out there, use Hired to find it faster. Hiredsponsored In Brief [A Multi-Stage Dockerfile for Go Apps](http://pliutau.com/multi-stage-dockerfile-for-golang-application/?utm_source=golangweekly&utm_medium=email) tutorial Docker just added multi-stage Dockerfiles to reduce production image sizes. Alex Pliutau [Mapping an RDBMS on to a Key-Value Store](https://fortytw2.com/relational-dbs-on-kv-store-pt-1?utm_source=golangweekly&utm_medium=email) tutorial Mapping rows to keyed values and indexes based on interesting attributes. Simple Made Difficult [A Go Web Deployment Tool Chain with NGINX, Gulp and Supervisor](https://medium.com/dev-bits/building-a-go-web-application-deployment-tool-chain-with-nginx-gulp-and-supervisor-bef6a5d454b9?utm_source=golangweekly&utm_medium=email) tutorial An interesting and relatively complete approach to a Go web application deployment. Naren Arya [Cross Compiling Go Apps For Use on a Raspberry Pi](https://www.thepolyglotdeveloper.com/2017/04/cross-compiling-golang-applications-raspberry-pi/?utm_source=golangweekly&utm_medium=email) tutorial Nic Raboy [A Short Guide to Mastering Go Strings](https://mymemorysucks.wordpress.com/2017/05/03/a-short-guide-to-mastering-strings-in-golang/?utm_source=golangweekly&utm_medium=email) tutorial Chris Tomich [Writing a Go SPI Driver for the MCP3008](https://orangetux.nl/post/writing-spi-driver-for-mcp3008-in-go/?utm_source=golangweekly&utm_medium=email) tutorial The MCP3008 is an analog-to-digital converter you can communicate with over an [SPI bus](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus). Auke Willem Oosterhoff [Running MongoDB as a microservice with Docker and Kubernetes](https://www.mongodb.com/blog/post/running-mongodb-as-a-microservice-with-docker-and-kubernetes?jmp=cpress&utm_campaign=WW_CP_newsletter_sponsorship_FY17Q2&utm_content=sponsored&utm_medium=display&utm_source=gonewsletter0503) tutorial Containers are revolutionizing the entire software lifecycle from proofs of concept through development, test, deployment, and support. MONGODBsponsored [Visualizing Concurrency in Go](https://divan.github.io/posts/go_concurrency_visualize/?utm_source=golangweekly&utm_medium=email) story We linked it a year ago but this animated look at concurrency in Go apps has been doing the rounds again. Ivan Daniluk [Brad Fitzpatrick on Go4 and Contributing to Go](https://changelog.com/gotime/44?utm_source=golangweekly&utm_medium=email) podcast An 80 minute interview with a prominent Go core member. The Changelog [On Game Development and Rebuilding Microservices in Go](https://changelog.com/gotime/40?utm_source=golangweekly&utm_medium=email) podcast Luna Duclos [Using Go in Production: One Developer's Experiences](http://blog.tamizhvendan.in/blog/2017/05/01/using-golang-in-production-my-experiences/?utm_source=golangweekly&utm_medium=email) opinion Tamizhvendan S [Immutable vs Mutable Performance in Go](https://mymemorysucks.wordpress.com/2017/04/27/immutable-vs-mutable-programming-performance-in-golang/?utm_source=golangweekly&utm_medium=email) opinion Chris Tomich [Continuous Integration & Delivery Made Easy With Golang](https://circleci.com/docs/2.0/language-go/?utm_source=cooperpress&utm_medium=newsletter&utm_content=go-newsletter) tools Quick-start guide for Go projects on CircleCI. Configuration, examples, and demo projects. CircleCIsponsored [Nanolog: Super Fast Logging for Go](https://blog.sgmansfield.com/2017/04/nanolog-super-fast-logging-for-go/?utm_source=golangweekly&utm_medium=email) code A fast, zero-allocs logger. Scott Mansfield [GoQ: Lightweight In-Memory Message Broker](https://github.com/MasslessParticle/GoQ?utm_source=golangweekly&utm_medium=email) code Travis Patterson [Webook: A Simple HTTP Server for Catching Incoming Web Hooks](https://github.com/adnanh/webhook?utm_source=golangweekly&utm_medium=email) code Adnan Hajdarević [Kurly: An Alternative to 'curl' But Written in Go](https://github.com/davidjpeacock/kurly?utm_source=golangweekly&utm_medium=email) code [Full explanation here.](http://davidjpeacock.ca/post/announcing-kurly/) David J Peacock [LinkedList: A Simple Doubly Linked List Implementation](https://github.com/itsmontoya/linkedlist?utm_source=golangweekly&utm_medium=email) code Josh Montoya [go-errortree: For Handling Errors Organized As A Tree](https://github.com/speijnik/go-errortree?utm_source=golangweekly&utm_medium=email) code Stephan Peijnik    

Go Newsletter is curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict) [Read this issue on the Web](http://golangweekly.com/issues/158) [See our archives](http://golangweekly.com/issues) [Change your email address](*|UPDATE_PROFILE|*)  [Stop getting this newsletter](*|UNSUB|*)  

Published by [Cooperpress](https://cooperpress.com/)
Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
