Date and time representation in Go
I’ve been keeping a secret, that secret is I absolutely love Go. Ok, it’s not much of a secret, and it’s not that much of an admission. But there’s something that has been really getting… »
I’ve been keeping a secret, that secret is I absolutely love Go. Ok, it’s not much of a secret, and it’s not that much of an admission. But there’s something that has been really getting… »
According to the Wikipedia article on Fuzzing Fuzz testing “is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program.” This is a very helpful technique… »
Go has a (sometimes) handy feature called defer. A list of commands is executed when a function exits, the defer list. This makes it simpler for a developer to place near relevant code some other… »
There are two parts to allowing access to resources Authentication, the act of ensuring that the entity requesting access is whom they claim to be. This is usually achieved via an account name and some… »
Inter service communication is problematic, you can never be sure whether the other service got your message, errored, or failed in some way to respond. When networks are involved the problem is exacerbated. When a… »
A recent discussion on IRC about the value of returning anonymous functions via channels inspired this post. TLDR; it’s not a great idea to return functions this way, I personally will reject any pull request… »
RESTful API are communication gateways between service providers and their clients. They utilise HTTP verbs to standardise the way that clients can communicate with them, making them more easily accessible for client side developers. The… »
Go has anonymous functions, hardly “News at 11” but developers should know how these functions are defined and used. Anonymous functions are functions that are defined with no name, and that is almost all that… »
Recently a YouTube video “So you think you know Go” was doing the rounds with some Go gotchas. It’s an excellent little trip into some of the traps that Go developers may or may not… »
For people beginning with some programming languages, like Go, C, or C++, pointers can be a little confusing. It doesn’t help that the syntax used depends on context in order to understand what’s happening in… »
It’s Māori language week in Aotearoa (New Zealand) and it seems appropriate for the retelling of a story about the naming of the rivers in the South Taranaki Bight. Disclaimer: Before I get too far… »
The big selling point of Go is its focus on concurrency, and its simplicity. Go delivers on those concepts extremely well. There’s no doubt that the designers of Go have done a great job in… »
At a recent job interview I was asked to create an application that manipulated images, and allowed the user to move forward and backward through time, such that they could undo and redo changes to… »
One of the recurring questions people new to Go ask is, how to lay a project out on disk, that is, they want to know how to arrange the files and directories in their project… »
Before I embarked on my Go development career, I was a (not very good) Python developer. Unit testing was mandated at the company I worked at, but there was no (at that time) really simple… »
The Go programming language lends itself well to the SOLID programming principles. They go so well together that it should be a prerequisite that those new to Go also learn SOLID as part of their… »
One of my pet bug-bears is inter-service communication policies adopted by companies when it comes to microservice architecture. I don’t think I am ever going to understand why a company might mandate a one size… »
Kubernetes (K8s), the container orchestration management software. This post represents the initial learnings I have gathered on K8s), the units that K8s organises resources into, and the deployment strategies K8s makes available. Pods Kubernetes’ smallest… »
A common problem that Go developers come up against is how to process interfaces. They typically find themselves in a situation where their code has received an interface{} and it’s not clear that the interface… »
Such a weird title! Applications do, however, require the ability to have one thread block forever, specifically the main thread. As long as it stays blocked, it can never exit, as long as it never… »