When developing software traditionally we'd spin up a database, a message queue, a cache, and maybe a few other services. This can be a pain to manage, especially if you're working on multiple...
Now that I have a bunch of blog posts the home page was getting rather length so I decided to add a paging mechanism for blog posts.
This goes along with adding full caching for blog posts to make...
One of the things that annoyed me about my current setup was having to use Google Analytics to get visitor data (what little there is of it ??). So I wanted to find something I could self-host that...
Small Posts FTW
Small but potentially useful solution to a problem I was having. Namely, how to generate a GUID from a string input where the Guid is always valid but unique for any given input...
RSS (and Atom) is still the only widely adopted format for syndicating content. It's a simple XML format that can be consumed by a wide range of feed readers. In this post, I'll show you how to add an...
##Introduction
In my previous post I detailed how to send emails using FluentEmail and the SMTP Client. However one issue with this is the delay in sending emails. SMTP servers tend to be slow and can...
This is a fairly simple article but will cover some of the odness of using FluentEmail in ASP.NET Core to send HTML emails I haven't seen elsewhere.
The Problem
Sending HTML mails is itself kinda...
This just popped up on Facebook, an old image of me in my office at Microsoft.
Office at Microsoft
A long long time ago in a country far, far away I was a lowly PMII at Microsoft. I was working on the...
NOTE: WORK IN PROGRESS
I've been looking for a simple comment system for my blog that uses Markdown. I couldn't find one that I liked, so I decided to write my own. This is a simple comment system...
In this app I wanted to add a simpple mechanism of allowing login to add comments (and some admin tasks) to the app. I wanted to use Google Auth for this purpose. I did not want to use the ASP.NET...
EasyNMT is a locally installable service that provides a simple interface to a number of machine translation services. In this tutorial, we will use EasyNMT to automatically translate a Markdown file...
Mermaid is a simple diagramming format that takes text-based input and generates diagrams in SVG format. It is a great tool for creating flowcharts, sequence diagrams, Gantt charts, and more. In this...
Markdown is a lightweight markup language that you can use to add formatting elements to plaintext text documents. Created by John Gruber in 2004, Markdown is now one of the world’s most popular...
Using HTMX with ASP.NET Core is a great way to build dynamic web applications with minimal JavaScript. HTMX allows you to update parts of your page without a full page reload, making your application...
ImageSharp is a great library for working with images in .NET. It's fast, easy to use, and has a lot of features. In this post, I'll show you how to use ImageSharp with Docker to create a simple image...
Cloud free systems for startups.
First I am NOT saying that the cloud is somehow evil or unnecessary just that for many startups it can be unnecessary / expensice for
either your main or dev / test...
This is a simple example of how to use GitHub Actions to build and push a docker image to a container registry.
Prerequisites
A docker file exists for the project you want to build and push.
A GitHub...
Dev models for Web Applications
In my LONG (30 year) history of building web applications there have been many ways to build a web app.
Pure HTML 1990-> - the very first (if you ignore BBS / text...
Docker Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application's services. Then, with a single command, you...