Blog

Tracking Time in Markdown

Over the New Years break, I built a little console app to help with my new practice of engineering daybook. Engineering daybooks are the practice of documenting what happened in a work day. If you have read the Pragmatic Programmer, the practice is discussed in Topic 22. It has also be an very long time since I've just written a simple console application, so I wanted to see what's available in the latest version of .NET and NuGet libraries. Engineering Daybook I started…

December 31, 2021
|
approximately 6 minutes to read
New DateOnly and TimeOnly Types in .NET 6

I keep finding new little gems in .NET 6. The latest was the DateOnly and TimeOnly structs in .NET 6. Previous to .NET 6, time was typically represented as a DateTime, a DateTimeOffset, or sometimes a TimeSpan for intervals. DateTime and DateTimeOffset worked, but there are odd situations where you need to represent just a Time or just a Date. Trying to represent a Time in a DateTime can lead to all kinds of odd situations. Is one DateTime UTC vs Local, etc? What if I just…

December 28, 2021
|
approximately 2 minutes to read
Thoughts on Estimating in Hours vs Complexity

Why is estimating in hours so difficult? I often wondered this as I sit and am required to put hours on tasks. I had been formulating ideas on this, and these are the conclusions I've come to so far. I've been reading some select chapters from "The Mythical Man-Month". The book has some key conceptual ideas behind estimating that are still relevant nearly 50 years after it was published. However being 50 years old, there are also some chapters that are very antiquated and…

December 03, 2021
|
approximately 5 minutes to read
New Periodic Timer API in .NET 6

The GA of .NET 6 is right around the corner, I've posted some articles in the past about upcoming changes I'm looking forward to. While there are a lot of major improvements that get a lot of attention, many of the smaller improvements get pushed to the wayside. One small change that I really like is the new PeriodicTimer class. Previously Timers in .NET revolved around a callback interface. System.Timers.Timer had a event which an event handler could be added that would be…

October 27, 2021
|
approximately 2 minutes to read
Windows 11 First Impressions

Today I updated to Windows 11 on my laptop. After an hour or two of use, this is a blog post on some first impressions of things I've noticed. Three Things I Like There are a lot of new things in the OS, these were some initial things I just appreciated as I've been working on Windows 11. Maximize Button Shows Layout Options Hovering over the maximize button now gives you the option to the window in a particular layout. Snapping a window along the edges of the screen has been…

October 08, 2021
|
approximately 4 minutes to read
Using Skaffold for Local Kubernetes Development

I've been a fan of Docker Desktop for years. Docker compose was my go to for developing multi-container applications locally. However, while it was polished there was always a gap between building docker compose files and then running it in Kubernetes. Docker had done things over the years to simplify this, but I wanted to automate more of my local development experience. The recent changes to Docker Desktop's Licensing model started me on a search to see what other tools are…

September 29, 2021
|
approximately 4 minutes to read
Using Material for MkDocs for Project Documentation

Many software projects enlist the amount of complexity that requires documentation. The primary reason for the documentation to either aid external users on how to use the project, or to document the internal complexities of the software for other developers. While commenting code and public interfaces can help, it's sometimes helpful to include extra details about how an application is built for other maintainers. There are many tools to write documentation, keeping the…

September 17, 2021
|
approximately 3 minutes to read
Building APIs: Generating API Clients with OpenAPI Generator

APIs are everywhere! APIs are one of the basic building blocks of modern software architectures. With the proliferation of HTTP based APIs, facilitating API consumption with minimal effort becomes crucial. The bridge between programming languages and APIs is to use a programmatic API specification that defines the contracts of the API. From there, utilizing tools to read that specification to generate an API client. When utilizing a single language, it's sometimes possible to…

August 30, 2021
|
approximately 5 minutes to read
Typescript Tips: null(and undefined) Checking

Null is often described as the million dollar problem or billion dollar mistake. There are so many times when a null check is needed in code that it can be easy to forget them. Javascript compounds this with the additional special case of undefined. With Typescript, strong typing helps catch these errors. However, in Typescript that safety comes with the added complexity of having to do null checks a lot. Thankfully, in Typescript, there are several shorthand ways to deal…

July 20, 2021
|
approximately 2 minutes to read
Typescript Tips: Destructuring Assignments

Typescript has become my favorite language to use during web development. Most of all, I love the type safety. However, there are so many features to the language it's easy for little useful tidbits to get forgotten about. I'm going to be writing some brief posts on some little features that have really been helpful during web development. The first of these is destructuring assignments. Destructuring Arrays For example: While this is a trivial example, the opritunity here is…

July 09, 2021
|
approximately 1 minutes to read
© 2024 - Built and designed by Jeremy Honl with Gatsby. Images are from Unsplash