Blog

Demystifying GIT: Branching

Branching in source control is crucial to building software, and understanding how branching works in GIT can make it much easier to use. Branching is a concept in GIT that differs drastically from traditional source control providers. In my previous post, I discussed the internal structure of GIT commits. In this post, I'm going to talk about branching and how it relates to those commits. Review As we had seen in my previous post on GIT storage, a commit is a snapshot of…

October 13, 2022
|
approximately 6 minutes to read
Demystifying GIT: An Overview of How Git Stores Files

I really like GIT. I've been using it in some form for the past 10 years. First to keep personal projects, and later at work. In stack overflow surveys of developer, GIT it consistently ranks high in usage with 90%+ of surveyed developer utilization using it in the last survey. Considering the segmentation of developer languages and tools, there are not many tools with that much adoption. I want to take a look through the internals of how it stores information underneath a…

October 07, 2022
|
approximately 11 minutes to read
Creating Containers in .NET 7 with the .NET CLI

One really handy feature with .NET 7 is the ability to create containers directly from the dotnet command line. This lowers the bar to entry with container development, and if you've got a standard ASP.Net application, it's easy to throw it in a container. I just want to put a disclaimer before I begin. This functionality is currently in preview. Example Here's an simple example of building a docker container in .NET in just a few simple steps. Create the Project Using the…

October 05, 2022
|
approximately 2 minutes to read
Output Caching in .NET 7 with ASP.Net Core

The release of .NET 7 is around the corner with it now in RC. There are several new features that have grabbed my attention that I decided to try out. The first of these is Output Caching in ASP.Net Core 7. What is Output Caching? Output caching stores the response of an ASP.Net endpoint based on a policy so that it will not be re-calculated on a future request. This is different from Response Caching previously in ASP.Net Core. Response used cache headers and responses from…

September 24, 2022
|
approximately 6 minutes to read
Publishing a NuGet Package Through GitHub Actions

I've been working with Roslyn Source Generators and have gotten to the pointer where there are a few I would like to use for other projects. In order to share the code between these projects, I've decided to create a NuGet package. While I've used NuGet for years and occasionally have had to create a NuGet package here and there for work, I've never actually published one to the official public NuGet repository before. NuGet NuGet is the package system for .NET. It has been…

August 20, 2022
|
approximately 5 minutes to read
Metaprogramming in .NET: Building a Source Generator for a Factory Pattern with Roslyn

In every project there is boilerplate code. It is a particular evil more seen in statically typed languages with the need to express every object in a type safe way. In this post I'm going to be talking about building a Source Generator with Roslyn to auto generate some of this boilerplate. More specifically I'll be auto generating a factory for an object based off a constructor. What's a Factory A factory is a design pattern focused on creating objects. While factories have…

July 29, 2022
|
approximately 4 minutes to read
Kubernetes: Deployments

In my previous posts regarding Kubernetes, I've written primarily about running containers in Pods on Kubernetes. Pods provide a basic building block in kubernetes that allows to execute containers within a Kubernetes cluster. In future posts, I'm going to move on to other concepts that can be built off of Pods within Kubernetes. ReplicaSets and Deployments will build off that base to help run scalable workloads. Like Pods, there is a lot to discuss with the topic, this first…

June 25, 2022
|
approximately 8 minutes to read
Kubernetes: Checking Pod Health

In my previous post on Pods, I gave a simple example running a container in Kubernetes. In this post, I will be discussing how to check pod health and keep them running with probes. Probes on Pods Even the best software fails from time to time. Be it networking issues, a software bug, or unrelated 3rd party dependencies. Being able to react to these failures and ensure the appropriate action occurs is critical to maintaining an overall healthy software system. Kubernetes has…

June 17, 2022
|
approximately 7 minutes to read
Kubernetes: Running Containers in Pods

I've been working on gaining a deeper understanding of Kubernetes and refreshing my knowledge on the topic. I'll be writing several posts over the remainder of the year on Kubernetes. In my first post I'm going to talk about the basics of running a container in Kubernetes with Docker Desktop. Enabling Kubernetes in Docker Desktop It's simple. Go to the settings, select the Kubernetes tab on the left, and in the settings click the checkbox to "Enable Kubernetes". Hit the apply…

June 03, 2022
|
approximately 7 minutes to read
Container Orchestration

In a previous post, I talked in brief about containers, and their benefits. In this post I want to talk in brief about container orchestration before I get into more in depth technical topics on Kubernetes. Container Orchestration Container orchestration is a way to manage running containers and the resources necessary for the containers. Container orchestration also manages a cluster of machines and allocate various I/O resources. Orchestrators A few years ago, there were…

May 27, 2022
|
approximately 4 minutes to read
© 2024 - Built and designed by Jeremy Honl with Gatsby. Images are from Unsplash