Oracle

Modernising .NET projects for .NET Core and beyond!

The world of .NET is going through a transformation. The .NET Framework is reaching end of life, .NET Core is an increasingly feature rich and robust platform to develop solutions which target Linux, MacOS, embedded devices, containers and more. There's also the .NET Standard. But what does this mean for .NET Framework projects? In this article I'll describe how to modernise your .NET Framework projects for .NET Core, the .NET Standard and .
Read more

Observations, tips and tricks for the CKA certification

In this article I'll share some observations, tips and tricks for the Linux Foundation's “Certified Kubernetes Administrator certification and exam. I've been operating Kubernetes in multiple environments for a few years now. I thought this would be an easy certification to get, but I was surprised by how hard it was! I took this exam without doing any formal training, I mostly focused on the areas of the curriculum which I knew I was a little weak at.
Read more

Supercharge your Java Projects with Conventional Commits, Semantic Versioning and Semantic Releases

In this article we'll look at a few simple techniques which can really supercharge your Java project and make them much easier to work with! Semantic Versioning Why Does This Matter? The Semantic Versioning Specification Using Semantic Versions The Challenge of Semantic Versions Conventional Commits Time for Magic Enforcing Conventional Commits with Git Hooks How the Hook Works Creating the Initial Release Go Forth And DevOps The Gradle Version That's It tl;dr If you know the concepts, then just jump straight to my fork of standard-version at github.
Read more

Effective Shell for Beginners

I have rebuilt my “Effective Shell” series as an online book - it's available now on: https://effective-shell.com The whole site is built from a GitHub repo at github.com/dwmkerr/effective-shell. It is open for contributions, changes, issues and suggestions. I've also added a comment section to each page to get input. To keep the material as accessible as possible, I have added a new section for beginners, to help anyone who has not used a shell before.
Read more

Migrating from Ghost to Hugo - Why Bother?

With a little bit of free time for a change, I decided to finally migrate my blog from Ghost to a static site generator. I've been putting this off because it's one of those things that I knew would take longer than I'd expect, and to be honest, it it ain't broke, then don't fix it. So, Why Bother? Reason 1 - I write in vim Reason 2 - I backup on GitHub Reason 3 - My workflow sucks for images Reason 4 - I have two sources of truth Reason 5 - I want to allow people to contribute Reason 6 - I don't want to manage a server Reason 7 - I need to learn how do this Reason 8 - Static Sites are Fast and Simple Picking a Generator Jekyll Gatsby Hugo The Migration Process Automating Build and Deploy Changing Front Matter to YAML Normalising Newlines Restructuring the Content Bringing the images to the posts Was It Worth It?
Read more

Effective Shell Part 7: The Subtleties of Shell Commands

In this chapter, we'll take a look at the various different types of shell commands that exist and how this can affect your work. By the end of this chapter, you might even be able to make sense of the horrifying and perfectly syntactically valid code below: which $(where $(what $(whence $(whereis who)))) Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands What Are Commands?
Read more

Effective Shell Part 6: Everything You Don't Need To Know About Job Control

Job control is a feature of most shells, which is generally not particularly intuitive to work with. However, knowing the basics can help prevent you from getting yourself into a tangle, and can from time to time make certain tasks a little easier. In this chapter, we'll look at the main features of job control, why it can be a problematic, and some alternatives. Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands What Is Job Control?
Read more

Effective Shell Interlude: Understanding the Shell

This is the first ‘interlude’ in my Effective Shell series. These interludes give some background, history or more flavour to some of the topics. Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands This one should be high-level enough for even non-technical readers to enjoy (or at least understand!
Read more

Effective Shell 4: Move Around!

This is the fourth part of my Effective Shell series, a set of practical examples of ways to be more efficient with everyday tasks in the shell or at the command line. Part 1: Navigating the Command Line Part 2: Become a Clipboard Gymnast Part 3: Getting Help Part 4: Moving Around Part 5: Interlude - Understanding the Shell Part 6: Everything You Don't Need to Know About Job Control Part 7: The Subtleties of Shell Commands In this article we'll look at the key elements of navigation in the shell.
Read more

Dynamic and Configurable Availability Zones in Terraform

When building Terraform modules, it is a common requirement to want to allow the client to be able to choose which region resources are created in, and which availability zones are used. I've seen a few ways of doing this, none of which felt entirely satisfactory. After a bit of experimentation I've come up with a solution which I think really works nicely. This solution avoids having to know in advance how many availability zones we'll support.
Read more