Tech Talk
Caddy and Wireguard for Homelab Dynamic DNS
March 2023Self-hosting multiple services I’ve been running various services at home for a while now. My adventures in self-hosting started with an ethereum node on a Raspberry Pi back at the end of 2020. Today, I’m hosting about half a dozen services that run on two single-board computers, and I anticipate my self-hosted ecosystem to grow. Complexities arise When I started self-hosting things, it was an opportunity to learn about all the layers of the onion that I had to peel back in order to get a service on my home server exposed to the internet.
Hosting my own wiki
July 2022I like taking notes when I’m building and/or learning things that require a lot of my time. Inevitably, I revisit those things from time to time, and I’m always happy when there are breadcrumbs from my past self to assist my memory and help me pick up where I left off. One realm where I appreciate the writings from my past self is in my home lab. I run several services on single-board computers (i.
TBD54566975
December 2021What’s behind the naming of TBD54566975? Just days after Jack Dorsey’s departure from Twitter, Square announced a major rebranding: Square becomes Block I became intrigued. Until today, I had never heard of this TBD54566975 entity. There was a lot to learn. The tbDEX Whitepaper As of today, TBD had a pinned tweet on their profile which mentions a whitepaper they published a few weeks ago. I began reading it immediately.
Visualizing GPX Routes in 3D
October 2021Intro I love researching awesome running and backpacking routes. Years ago, I relied mostly on paper maps to aid my research and planning. In recent years, I’ve started to use 2D virtualization tools like Strava’s route planner and the Gaia GPS app. I’ve seen some cool 3D route visualization tools, specifically from Suunto and relive.cc, and I decided to dive into 3D geospatial visualization tools for myself. I ended up creating a couple libraries in the Go programming language to convert .
Serverless: Free Basic Auth Password Protection of a Static Website
May 2021All plug-and-play website password-protection solutions from hosting providers require payment at a usable scale. I recently built a wedding website. Due to the semi-private nature of the event details, I decided to make it password-protected. I wanted a simple solution: a username and password prompt that would be performant, reliable, easy to use across all platforms, and free to implement. I scoured the internet for free static website authorization solutions, but ultimately I had no luck.
Generating Static Reference Documentation from an OpenAPI Specification
February 2021Summary Working Example on GitHub Performance Benefits: Using Twitter’s relatively small OpenAPI definition: 2,250x reduction in asset sizes for reference docs (18 MB with Swagger, 0.008 MB with Hugo shortcode) 45% improvement (69 -> 100) in Google Lighthouse Performance score Using GitHub’s huge OpenAPI definition: 7x reduction in asset sizes for reference docs (18 MB with Swagger, 2.6 MB with Hugo shortcode) 67% improvement (36 -> 60) in Google Lighthouse Performance score Background The OpenAPI Initiative is a fantastic Linux Foundation initiative that maintains a set of standards by which web API’s (Application Programming Interfaces) can be defined by code.
Building a Personal Bitcoin Node for Less Than $100
January 2021I turned my Raspberry Pi 4 from an Ethereum Node into a Bitcoin Node. As a bitcoin node, it requires less in the way of compute power and consumes less bandwidth than my Ethereum node. The blockchain also fits on the same hard drive. The Ethereum 2.0 migration has started as of the time of this writing, with the genesis blocks of the 2.0 proof-of-stake chain having been written. Running an Ethereum node and Bitcoin node on the same hardware allowed me to realize how much more the Ethereum ecosystem consumes in the way of compute resources and memory, when compared to Bitcoin.
Mining Ethereum on a Raspberry Pi 4
December 2020I recently bought a Raspberry Pi 4 with the intention of using it to explore the compute side of the cryptocurrency world. There are plenty of resources out there to help newcomers get up-and-running with a bitcoin or ethereum node on a Raspberry Pi. However, these resources don’t talk about resource consumption, memory usage, performance constraints, and whether it is possible to mine with a Pi (spoiler: yes, it is possible, but definitely not profitable!
FIT, GPX, KML, TCX, CSV - GPS Activity Filetype Differences
October 2020Activity Tracking Filetypes I recently found myself trying to parse raw data from my GPS-tracking watch, and I found that I could export the data in many different filetypes. Not knowing which type I needed, I decided to export all of them and learn the differences for myself. These formats are frequently used to share data across platforms such as Garmin, Suunto, Strava, TrainingPeaks, MapMyRun, Coros, Nike, and even Google Maps.
Multifactor Authentication Hacking is Getting Real
June 2020Bad Actors are Validating SMS Targets at Scale TL;DR - in a hurry? Jump to the Summary at the bottom of the post! I work for a company that protects online accounts and that automates account takeover detection and remediation. Needless to say, I’m well aware of the scale of attacks using account credentials. Many people share a password or three across most their online accounts, or they fall back to creating a pattern for their passwords (such as [email protected] or [email protected]).