Image for post
Image for post
This image doesn’t really have anything to do with this article, I just like quite it…

This is a brief description of the types and patterns in go used to manage groups of concurrent goroutines that I find myself using daily. Starting with the built in wait group, working our way to error group and beyond. It vaguely follows my own path of discovering these.

Lets start some goroutines

Starting a goroutine is really simple in go, you just need to prefix a function call with the keyword go. So as a newcomer to the language you might expect this snippet to just print numbers from 0 to 9 in some random order. I certailnly expected that.

Try running it…


This post is a short guide on how to deploy cfssl as Certificate Authority (CA) service on Kubernetes.

Now you might ask why would anyone want to do that given that Kubernetes comes with a CA out of the box. This is a good point and the Kubernetes implementaion may be good enough for some use cases. However, note that in order to use it you first need to configure your cluster properly and make sure that the key for signing certificates is on all of your master nodes, what can be non trivial.

Another issue with the Kubernetes CA…


If you are reading this article then you probably got around to writing tests for your Django project and when running them using python manage.py test you encountered an exception like this

django.contrib.admin.sites.AlreadyRegistered: The model Country is already registered

or this

RuntimeError: Model class app.world.models.country.Country doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

Why does this happen and how to solve it?

The reason why you get these exceptions is that you structured your admin and/or models as packages and imported the individual admin and/or model classes in their respective __init__.py files.

This might seem like a reasonable thing to do, but it confuses the…

Michal Bock

Backend developer at Utility Warehouse. Oxford graduate in Mathematics and Computer Science. Working with Golang, gRPC, Kubernetes, Python and Django.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store