March 2023
Self-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.
July 2022
I 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.
December 2021
What’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.
October 2021
Intro 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 .
May 2021
All 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.
February 2021
Summary 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.
January 2021
I 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.
December 2020
I 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!
October 2020
Activity 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.
June 2020
Bad 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 P@ssw0rdGoogle or P@ssw0rdAmazon).