Running Blazor on Fly.io

I’ve been running a Blazor app on Heroku for a bit, but I decided to give Fly.io a try. Aside from the ease of deployment through their CLI, they boast some pretty cool, zero-configuration global deployment benefits: Over 3 million apps have launched on Fly.io, boosted by global Anycast load-balancing, zero-configuration private networking, hardware isolation, and instant WireGuard VPN connections. Push-button deployments that scale to thousands of instances. Since .NET Core 1.0 first release in 2016, Microsoft has made a Docker image available for the .NET runtime, making composing Docker containers and running .NET application a breeze. This has made hosting on services that support Docker (like Heroku and Fly) a breeze. To get started, you need Dockerfile in your project folder. Simply change the AppName.dll to match your executable name. I’m also running .NET 9.0 preview builds, so adjust accordingly. ...

August 24, 2024 · 4 min · 852 words · Me · - views

On Troubleshooting

As a long time contributor to StackOverflow, the quality of posts are wide ranging. In the hay-day, a contributor could rack up tons of points by pointing low-effort posters in the right direction with a single line of code. Now I’m sure the majority of those questions could be (and are) answered by AI, which was trained on my answers. But I think troubleshooting is the hallmark of a great engineer. Over time, you learn to hone troubleshooting skills and you can often tell a lot about an engineering by the tooling they surround themselves with. ...

August 23, 2024 · 2 min · 345 words · Me · - views

Blazor Authentication Without Razor Pages

For a while now I’ve been using the standard ASP.NET authentication methods with customized Razor pages to match the style of my site. And while this works, it’s annoying to lose all the functionality of Blazor, especially when you pour hours of time into customizing the look-and-feel, only to need to recreate it in the Razor page. In short, the special sauce is a minimal API method hat accepts a POST form-encoded username and password, which I called internal_login: ...

August 23, 2024 · 3 min · 499 words · Me · - views

Blazor Magic Link

I wanted a quick Magic Link implementation for my Blazor app, so I cobbled together a solution. I took inspiration from a NuGet package (forgot which one), but it’s simple enough to do with a few methods. Generating the Magic Link When a user decides to log in with a magic link, you can call a method like this. I’m loading a lot of the email server config elsewhere in the service. ...

August 21, 2024 · 4 min · 726 words · Me · - views

A Robot, Dad?

This story was written in 2006 when I was 24 years old. Today an traffic cone was left outside our home, and bringing it inside I realized I had never properly shared it. So now that history has come full circle, I’m reviving it here so it can live forever. Prologue The following story is commonly referred to as the day that single-handedly ruined my entire childhood. Of course, that’s just line that runs over and over in my head. But, in reality, it’s become quite the opportunity to embarrass my father at family gatherings. Enjoy! ...

April 4, 2024 · 5 min · 1014 words · Me · - views

Bike Tech in 2024

If you’ve never been on a road bike, or if you haven’t been on one in the last 10 years, the amount of technology on bikes today is mind-blowing. From electronic shifting to power meters, the technology has come a long way. But how much of this tech is nice to have and how much makes a difference? Let’s jump in and find out. Electronic Shifting One of the biggest shifts in the industry, and maybe the most controversial, is the move to electronic shifting. Electronic shifting replaces the traditional mechanical cables with electronic wires and motors. The most popular electronic shifting systems are Shimano’s Di2 and SRAM’s eTap. There are a few benefits to electronic shifting. The first is that it’s more precise. The shifting is always spot on and you don’t have to worry about cables stretching or getting gunked up. The second is that it’s customizable. You can program the buttons to shift however you want. The third is that it’s easier to shift. You don’t have to push as hard to shift and you can shift from the hoods, drops, or even the tops of the bars. ...

March 3, 2024 · 6 min · 1225 words · Me · - views

Submitting an Unraid Community App

In a previous post I created a docker container for Goatcounter, a privacy-friendly analytics service. I wanted to submit it to the Unraid Community Apps repository so that others could easily install it. This post will cover the process of submitting a new app to the Unraid Community Apps repository. The first step I took was to install the docker container from Docker Hub. To do this, you can use the “Click Here To Get More Results From DockerHub” link. ...

March 1, 2024 · 2 min · 334 words · Me · - views

Creating a Docker Hub Repository

Recently I was looking to implement some analytics from this site and came across the following blog post by Haseed Majid: How to Add Page Views to your Hugo Blog Posts Using Goatcounter. I really like the concept of Goatcounter and wanted to try it in my self-hosted environment, but it appears the creator has strong opinions about Docker, so there’s no provided Dockerfile. There are a few implementations referenced in the readme, however they were all based on older versions and not kept up. ...

February 28, 2024 · 4 min · 789 words · Me · - views

An Open Letter to the DCC

To: DCC Organization, Mack Cycle, Team Hurricanes, The DCC Board of Directors, and the DCC Community I’m Joey Gennari, a 20-year cycling veteran who has participated in hundreds of events and advocates for cyclists when possible. This letter is written from the perspective of a rider, not someone who has intimate knowledge of the organization, it’s preparation, or safety culture. Therefore I may be missing key information that would change my perspective. If I receive feedback that changes my perspective, I will update this letter accordingly. ...

February 26, 2024 · 5 min · 1009 words · Me · - views

Using Github Copilot to Create Blog Posts

First, let me show you: I recently installed the Github Copilot extension for VS Code. I’ve been using it for a few days now, and I’m really impressed. I’ve been using it to generate the basic structure of my blog posts. I’m going to use this post to show you how I’m using it, and how I’m going to use it in the future. ...

July 30, 2023 · 2 min · 225 words · Me · - views