Skip to Content

Rick Henry Development

Back to Homepage
Past Projects
Here are some more things I've built
Flask WebAuthn Demo screenshot
Flask WebAuthn Demo

With Apple making a big push toward passwordless authentication, I thought it would be time to figure out how to get it working on a website using the technologies that I like. I've tested it with TouchID on my Mac, FaceID on my iPhone, and Windows Hello on my PC. I'd love for you to try it out. You can register as a user with a username and email address, then you go immediately to setting up passwordless authentication with your device. Next time you come back (or if you just click "Logout" then "Login"), it will remember you, and you can log in using your device again. You can also get a magic login link as a fallback, or to register on a different device.

It was quite difficult to figure out at first, but, within about a week, I had a working demo using Python's Flask framework and a few of my other favorite technologies. I wrote a series of blog posts about building it. They're fairly technical and really only useful if you're already well-versed in Python and Flask and some Javascript. And if you're really a nerd like me, you can check out the source code.

Dice Probability Calculator screenshot
Dice Probability Calculator

I couldn't find an easy-to-use or attractive website for calculating the probabilities of the rolls of multiple dice in RPG Games (such as Dungeons&Dragons). So I built this site in an afternoon as a simple way to visualize it. It's bare bones but easy to understand and use.

I walk through collecting all the data needed with nice big buttons on the form, then run the calculation and generate a graph of all the possibilities. You can even print out the graph, and it looks nice, not like a printed website!

Table Tennis Scoreboard screenshot
Table Tennis Scoreboard

My Dad and I always forget the score when we're playing Ping-Pong games in the backyard. Actual scoreboards are quite expensive, so I threw this together in a weekend. As usual, it's super lightweight with as little code as possible to get the job done. This makes the load time very fast even on weaker connections. The largest asset to download is actually the font.

It's a single page app that keeps score, tracks games and matches. It allows you to bind players to certain keys so that you can use a presentation clicker to keep score from far away from your device. There's no server, so it can't keep track of lifetime games or matches, but it does save all configurations to the browser so that you can just pick up with the same player names and keybindings. I also ended up building a correction mode for when I inevitably click the wrong button after a point.