Posts
Goat Simulator IRL
This summer, my girlfriend and I took our second trip to Door County, Wisconsin, a tradition her family has kept alive since the 1940s. While there’s plenty to see, one of the coolest spots is Al Johnson’s, a restaurant famous for its goats grazing on the roof. The open face sandwiches are pretty great too, but the goats are the real draw.
Cloudflare Workers RPC
While prototyping some new features for this site, I stumbled upon some unusual code in a Durable Objects guide. Surprisingly, it covered functionalities I had not seen documented, at least not within the past couple of months. I had no idea you could directly call methods on Durable Object stubs! This discovery eliminates the need for cumbersome request routing boilerplate, trpc, and the often unnecessary low-level decisions. Simply obtain a handle to your object and call methods on it. Amazing. Source: C
Generating a Blog with Vite, MDX, and Remix
This site is built on top of Remix, which has many features that I absolutely love, but perhaps by favorite is its nested routing/route file name conventions/route module interface. It's the main selling point in my mind. Here's how it works: 1. Create a file conforming to the Route naming patterns (posts.my-post.tsx => /posts/my-posts) 2. Implement and export some or a subset of the Route Module "interface" 3. Done The Route Module is super powerful with 3 main exports: The power comes from how Remix uses
Coding my Resume
Somewhere around 2018, after getting the idea from a co-worker, I built my first Resume from Source. It was basically a reStructuredText file converted to HTML, styled with SCSS, and then converted to a PDF. To update my resume, I would: After pushing, an automated CircleCI (remember the times before Github actions?) workflow would build, spellcheck, and release the HTML and PDF artifacts to my Resume repositories releases page. While this resume and resume builder project has served me well, I wanted to ad
New Website
Welcome to my brand new website! It's been over nine years since I last designed the previous version and just a tad less than nine since I last posted on my blog (racking up a grand total of four posts!). The old site, a purely static Jekyll site, hasn't required much maintenance over the years. The primary update I implemented was Dockerizing the build about six years ago. This aligned with my switch from an aging MacBook Pro to a 13-inch Razer Blade Stealth (and I just recently switched to a brand new MB