Java has been in a bit of an awkward spot since containers took off a few years ago. In the world of Kubernetes, microservices, and serverless, it has been getting harder and harder to ignore that Java applications are, by today’s standards, overweight. Well, until now. In this article, I explore the basics of Quarkus, a brand new Kubernetes Native Java framework built to specifically address Java’s weight problem. Continue reading “Enter Quarkus”
In this blog I reinvent arithmetic from scratch (kind of) while showcasing some cool programming techniques – currying, partial application, and recursion. Continue reading “Arithmetic Curry, Coming Right Up”
In this article, I talk about the trie data structure and use it to create a solver for a word puzzle game I play on my mobile phone. In the process of trie-ing to find words (get it!), we also see a simple example of breadth first search at play.
DevOps is becoming a ubiquitous practice among modern software organizations, and a critical aspect of DevOps are CI/CD pipelines (continuous integration, delivery, and deployment). This article focuses on building CI/CD pipelines using Jenkins, Kubernetes/Openshift, Buildah, and Helm. I will build two CI/CD pipelines. Both build, deploy, and release a sample web application. One deploys the application to any Kubernetes cluster using a Gitflow branching model, while the other deploys specifically to Openshift (Red Hat’s managed Kubernetes offering) and uses Trunk development branching model. What the hell does all this mean? Let’s dig in. Continue reading “Getting Started with CI/CD Pipelines”
Still doing all your Linux container management using an insecure, bloated daemon? Well, don’t feel bad. I was too until very recently. Now I’m finding myself slowly saying goodbye to my beloved Docker daemon and saying hello to Buildah, Podman, and Skopeo. In this article, I explore the exciting new world of rootless and daemon-less Linux container tools.
This is the last part of the series. In this video I put together everything I have done so far in the previous videos of the series to build a simple web service application using Go. I leverage all the linked list work from before to build a Task Master application that maintains a prioritized list of tasks and assigns them to workers on demand.Continue reading “Gophin’ Off With Linked Lists. Part 6”
This is the fifth part of the series. In this video I explore everything that Go has to offer towards concurrency. So join me as I make a thread safe version of the linked list from the previous videos and in the process play with mutexes, channels, and wait groups.Continue reading “Gophin’ Off With Linked Lists. Part 5”
This is the fourth part of the series. In this video I dig deeper into how inheritance and polymorphism works in Go. I do this by extending the linked list implementation from previous videos to create a new implementation that keeps elements sorted in their natural order.Continue reading “Gophin’ Off With Linked Lists. Part 4”
This is the third part of the series. In this video I explore unit testing in Go by testing the linked list implementation from the previous video. I also build and unit test my queue and stack implementations by heavily leveraging the linked list implementation from the previous video.Continue reading “Gophin’ Off With Linked Lists. Part 3”
This is the second part of this series. In this video, I get into the heart of the series by maturing the quick and dirty list implementation from the last video and making it a more standalone module. In the process, I show the basics of Object Oriented Programming in Go.