While step by step reorganizing the Tideland Go libraries the one for testing your projects reached a new version. I’ve just released the Tideland Go Audit v0.5.0. As it already is a very robust and complete library there are only few changes. The asserts package now provides the additional assertions NotOK() and AnyError(). In case of asserting tests and using Failable like testing.T their provided Logf() and Errorf() will be used for output.
Last Monday I gave a remote workshop about Go programming. It has been an interesting experience, not yet done something similar before. Sadly I needed too much time for the basic topics. So I had not enough time in the end to dive into my example. This has been a module containing a little declarative environment for components, a bit like Kubernetes. As a result I decided to create an online training for Go based on an improved version of that example.
In January 21 to 23, 2020 are the next GoDays in Berlin, Germany. And I hope it will be a great conference for all Gophers again like it has been this year too. While being a passive visitor last time I’ll be active with two slots this time: First one will be a workshop from 9:00 am to 5:00 pm on 21st together with Nico Schieder and Indradhanush Gupta. We’ll introduce you in Kubernetes as platform for own components, because it can do more than deploy and manage containers.
Today we’re celebrating the birthday of our little gopher, Googles programming language Go turns 10. A decade of growing and getting better every year without breaking the promise of source code compatibility. So the community grew to about two million developers world wide and we can find a pretty large number of projects developed in Go. Especially many projects of the Cloud Native Computing Foundation are using Go for implementation, like Docker and Kubernetes, Etcd and Prometheus.
Here it is, a new minor release of the Tideland Go Library. It’s the new v0.2.0 and contains some smaller changes. You can read about it inside the CHANGELOG. But it also contains two bigger blocks. One has been the splitting of the somehow poor designed and organized webbex into the new httpx and web. The other one is the even bigger one, I needed most of the time for it.
The JAX conference typically focusses on Java technologies, the J of the name already shows it. But over the last years it opened more and more for other languages or external infrastructure technologies influencing the system architecture for solutions. And so this year in May I had the chance to give an introduction into Google Go as an alternative programming language. The slides can be found at SlideShare as usual. But additionally the organizers recorded the one hour talk on video.
What shall be special when working with functions? They are part of software development almost since beginning, there’s even the paradigm of functional programming. So what’s special with functions in Go? Simple answer: nothing. But true to the motto of the language the work with functions and their relatives, the methods, is very pragmatic. And so they get parts of elegant solutions. Let’s start with quite simple functions. They can be small, having none, one, more or a variable number of parameters.
It costed some time, but now I’m happy to release v0.1.0 of the Tideland Go Library. Some of you may wonder, because I already had a Go library and once started to break it into individual repositories. But then different discussions happened. The introduction of Go modules. The discussions about mono-repos or multi-repos. Microsoft was buying GitHub with the insight about the dependency of one provider, regardless who it is.
Pretty often you read questions about multiplexing in Go web application on Slack, StackOverflow, or Reddit. Sometimes they think about using libraries like gorilla/mux, which is a powerful software, and its alternatives. Depending on individual requirements and constraints these may make sense, but for many cases the standard library or own little packages based on the standard library are more than enough. I’ll show the idea behind the Go net/http package and how to build own solutions based on it.