Articles on Hearthside are written in Markdown (GitHub-flavored), but the file extension is .md.yaml...
After yesterday’s post, it was time to finally try to handle a blog post and Cooklang recipe in one...
The approach I take to defining ViewModels for SwiftUI was heavily inspired by Paul Hudson’s post...
I’m frequently wanting to work with truncated dates in Swift apps, especially when dealing with Swift...
Starship is a highly-configurable, cross-shell prompt. I recently switched to using it and it sped up...
Sending a From header is part of building a polite crawler, along with respecting Robots.txt and...
Atuin is a tool that runs in the background to capture commands you’ve entered. It stores these...
When upgrading to Rails 7.1 with any models using the encrypts macro from ActiveRecord::Encryption,...
Back in 2023 I quietly published my /uses slashpage. Today I gave it a pass to update things that had...
Webmentions are a useful way to notify a website that you have linked to it. Microformats like...
If you enjoy this article on Git, also check these other Git tips: Stash only what git commit...
I’ve used URL text fragments in a few posts now and often use it outside of this blog to point...
When thinking about how to kick off NaBloPoMo 2024 this past weekend, instead of picking one of...
Yesterday I was setting up my first widget, scratching an itch I’ve had for a while “empty states” in...
When we write clean Ruby code, we try to pull out methods with descriptive names that do small...
SensoryFeedbackSamples is an Open Source multiplatform SwiftUI app that provides a testing palette...
Swift’s Codable interface allows a Swift type to be converted to and from, among other things, JSON....
Last time we put together a custom Hexagon Shape in SwiftUI. Now let’s see what it would take to make...
Like everyone, I use a lot of apps and services for various things. I’m writing this article into...
Rail’s actionmailbox and Ruby’s mail (used by both actionmailbox and actionmailer) gems create a lot...
Sometimes I want to take some changes that I’ve made but haven’t yet committed yet and put the into...
Git can “trace the evolution” of a specific method when passed -L using the :<funcname>...
As a best practice, when you enhance your Rails app’s assets:precompile task to build static assets...
In the spirit of Daring Fireball and to fill a space between a social post or boost and a full blog...
Majesties! Cease groveling before your codebase, and issue your applications Decrees! A Decree is a...
I’m a developer, conference speaker and organizer, technical blogger, and mentor with over 11 years...
Mentionable is a gem that provides support for inbound Webmentions and microformats in Rails...
I’ve often been asked by developers how they can improve. One low-hanging fruit is to get to know the...
Painting models for board games is intricate work. It requires a strange mix of absolute focus and...
These blog posts were drafted by me, ChatGPT, and edited by Caleb Hearth. The ideas and prompts for...