Category: Personal

  • Building a Backyard Sauna — Part 5: Finishing the Sauna

    Building a Backyard Sauna — Part 5: Finishing the Sauna

    The final post in my DIY backyard sauna build series. If you missed earlier parts: Part 1 (site prep & framing), Part 2 (roof & weatherproofing), Part 3 (siding, window, ventilation), Part 4 (lighting, vapor barrier, cedar)

    This is the one. The finale. Months of weekends compressed into a single episode that takes the sauna from “almost there” to “finished, fired up, and family-tested.”

    It’s also the longest video in the series, because the last 20% of any build is somehow always the most work. Custom door, benches, exterior ventilation finished out, electrical run, heater installed, first sauna, and a full tour.

    Here’s how it came together.

    Exterior Ventilation Finished Out

    I’d already framed the ventilation openings earlier in the build, but this stage was finishing them out adjustable exhaust vent cover and the intake vent. The intake sits low below the heater and adjacent to it; the exhaust sits high on the opposite wall. That layout creates a slow convection loop that keeps fresh air moving through the room without dumping heat out.

    If your sauna gets stuffy, your ventilation isn’t right. Mine breathes well I can feel a gentle pull of air when the heater’s running, and when I pour water on the rocks the steam doesn’t linger, but moves over me and dissipates.

    Building the Custom Door from Scratch

    I saw people say this in other videos, and it’s true: building a door from scratch is not that easy.

    I started by carefully measuring the doorway on all four sides, then constructed and sanded the frame before squaring it up, gluing the corners, and test-fitting it in the rough opening to make sure it would swing cleanly without rubbing. Getting a door to sit flush is a fussy process: a sixteenth of an inch in the wrong direction and it won’t close right.

    Then I laid one side of the door with the same tongue and groove cedar that’s installed on the interior of the sauna, before flipping it and filling it with R15 Rockwool insulation. We don’t want any part of the sauna to be a weak spot for heat loss, so it’s important that the door has the same quality of insulation as the rest of the walls.

    After that I installed my second piece of custom tempered glass that I ordered from a local glass shop, then all I needed was a handle.

    The door took longer than any other single piece of this build, but it was worth it: a flimsy door would have undone everything else.

    Finishing the Remaining Cedar

    With the door in, I wrapped up the last of the interior cedar corners, the doorframe, and the trickier cuts around fixtures and ventilation. The hand-fitting for these last pieces takes more time than the long, easy runs do. Patience here pays off in how the finished room reads visually.

    Designing and Building the Benches

    Benches are where a lot of DIY saunas go sideways. Wrong height, wrong depth, wrong wood, and the room becomes uncomfortable to sit in.

    A few principles I followed:

    • Two tiers, with the top bench tall enough that your feet are well above floor level when seated. Heat rises, and the top bench is where you actually want to sit.
    • Bench depth wide enough to lie down comfortably. A bench you can only sit on is a bench you’ll only use for ten minutes at a time.
    • Soft cedar (Western Red or Aspen-style), not regular construction cedar. The wood touches your skin. It needs to be smooth and low-resin so it doesn’t get sticky or sappy at temperature.

    Top bench went in first, then the bottom bench. Testing by sitting in the unheated room felt good.

    Under-Bench Lighting

    This was the small touch that ended up making the biggest aesthetic difference. LED strip lighting tucked under the front edge of the top and bottom bench, washing soft light down toward the floor.

    It does two things: practical (you can see where you’re stepping in a dim room) and atmospheric (it’s the difference between a wood box and a space you actually want to spend time in). It also lights the space, and not the people, which is an important element.

    Running the Electrical

    I covered the wiring approach in earlier episodes 50 amp circuit from the main panel to an outdoor 50 amp disconnect, 6/3 wet-rated wire to the sauna control panel, then to the heater. This stage was finishing those connections, mounting the control panel, and wiring up the heater itself.

    If you’re not comfortable with this part of a build, hire it out. The electrical is the one place where “I’ll figure it out as I go” is genuinely dangerous.

    Heater Test and First Sauna

    Powered the heater up for the first time. Watched it climb. Threw water on the rocks for the first time and felt that wave of löyly hit the room.

    It worked.

    There’s a specific quality to the heat in a properly insulated, properly vented sauna with the right kind of stove that you don’t get in a prefab unit or a cheap kit. It’s softer, more even, and the steam has weight to it. That feeling is what I was chasing through this whole build, and it was there on the first burn.

    Heating Theory in Practice

    Sauna heat works on three fronts:

    1. Convection — hot air rising and circulating through the room.
    2. Radiation — direct radiant heat from the heater and stones.
    3. Steam (löyly) — water on hot rocks creating a brief, intense spike of humidity and perceived heat.

    A good sauna balances all three. Too much convection without radiation and steam, and you get a hot room that feels flat. Too much radiation, and you get scorched skin without the depth. Steam ties it all together.

    Painting and Final Trim

    A few exterior touches: paint where it needed paint, cedar trim to clean up the visible transitions. The kind of small finishing work that’s invisible if you do it right and impossible to ignore if you don’t.

    The First Family Sauna

    The whole point of this project was to have something the family could use together. The first sauna with everyone in it was the moment that made the months of weekends worth it.

    The room felt right. The light was warm. The kids loved it. We talked.

    This is what I built it for.

    Final Thoughts on the Heater

    After several weeks of regular use, a few notes on the heater I went with the Vevor 9kW 200V electric heater which is an absolute steal on Amazon at $200. Worth its own paragraph since the heater is one of the decisions DIY builders agonize over the most:

    Trumpkin and most other sources go back and forth on this, and the recurring theme is that heater quality matters a lot. They’ll typically point you toward Harvia or one of the other premium brands that run anywhere from about $1,000 up to $3,000 depending on size and features. My take is that once you’ve gone electric, you’ve already stepped away from the traditional wood-fired stove, and at the end of the day the thing is really just heating a pile of rocks. For my room I probably could’ve gotten away with a 6–8 kW unit, but I oversized to 9 kW and the whole space comes up to temp in about 20 minutes — maybe 30 if it’s really cold out. And even if a component does eventually fail, I could replace this heater ten times over before I’d hit the price of a single premium one. Three or four months in, no issues, no regrets. At 9 kW for what it costs, it’s a great buy.

    Sauna and Cold Plunge

    I didn’t cover the cold plunge in this build, but I’ve been pairing the sauna with a cold plunge after each session. The contrast is the point. Hot, then cold, then rest. Several rounds. The energy and clarity afterward is its own kind of medicine, and it’s something I wanted built into the daily rhythm of where we live.

    What This Build Taught Me

    A few things I keep coming back to:

    • Custom always takes longer than you expect. Especially the door. Especially the door.
    • Don’t cheap out on the parts that matter. Vapor barrier, high-temp silicone, tempered glass, the heater. These are the things that decide whether the sauna lasts 5 years or 30.
    • Ventilation and insulation are 80% of whether a sauna works. Pretty cedar on the inside doesn’t matter if the wall cavity rots out behind it.
    • A good resource is worth its weight in gold. Trumpkin’s Notes saved me from probably ten major mistakes.

    Thank You

    If you’ve followed this series from the start — thank you. Sharing this build was one of the most rewarding parts of the project, and the questions and feedback in the comments made me think harder about a lot of the decisions.

    If you’re starting your own build: take your time, do the boring steps right, and don’t underestimate the door.

  • DIY Backyard Sauna Build – Part 4: Lighting, Vapor Barrier & Interior Cedar

    DIY Backyard Sauna Build – Part 4: Lighting, Vapor Barrier & Interior Cedar

    Part 4 of my DIY backyard sauna build. If you’re just joining: Part 1 (site prep & framing), Part 2 (roof & weatherproofing), Part 3 (siding, window, ventilation).

    This is the episode where the inside of the sauna stops looking like a construction site and starts looking like a sauna. The sequence — lighting wiring, vapor barrier, furring strips, cedar. This has to happen in this order, because once the cedar goes up, anything you forgot is staying forgotten.

    It’s also one of the shorter episodes in the series, but the steps in it matter a lot for whether your sauna lasts 30 years or starts rotting from the inside out in 5.

    Running the Lighting Electrical

    Sauna lighting has to handle high temperatures and high humidity, which rules out a lot of standard fixtures. I went with a setup designed for sauna use, ran the wiring through the wall cavities before any insulation or vapor barrier went on, and left a little slack at each fixture location so I had room to work later.

    A few things I’d flag for anyone doing this themselves:

    • Run the wire before the vapor barrier. Once the vapor barrier is up, you don’t want to be poking holes in it.
    • Use temperature-rated wire. Standard wire jacketing can degrade in sauna conditions. Check the rating on whatever you’re running.
    • Plan your switch location outside the hot room. You don’t want a standard switch on the inside of a sauna.

    Ran a quick test once it was wired in to make sure everything worked before sealing it all up behind the wall.

    Vapor Barrier

    This is the part most non-sauna DIY guides skip or get wrong, and it’s arguably the most important step in the whole interior build.

    A sauna gets hot and humid in cycles: heat up, cool down, repeat. That moisture wants to migrate out through the walls. If it gets into the insulation and stays there, you get mold, rot, and a sauna that smells wrong forever.

    The fix is a foil-faced vapor barrier on the warm side of the insulation (the inside of the sauna). The foil reflects radiant heat back into the room and blocks moisture from getting into the wall cavity. Tape every seam with foil tape, not regular duct tape, which will fail.

    Two rules I followed:

    1. Continuous coverage. Walls and ceiling, every cavity, every seam taped.
    2. Seal around penetrations. Lighting wires, ventilation openings, anything that punctures the barrier needs to be sealed back up.

    This step is boring and slow. Do it right anyway.

    Installing the Furring Strips

    Furring strips go up over the vapor barrier, running perpendicular to the direction the cedar will run. Do not skip furring strips. It does very important things:

    1. Creates an air gap between the vapor barrier and the cedar paneling. This gap lets any incidental moisture dry out instead of sitting against the wood and also allows the cedar to dry on both sides.
    2. Gives you something to nail the cedar to without puncturing the vapor barrier in random places.
    3. My colleague Tyler who also built a sauna pointed out a third benefit I hadn’t fully understood. Without an air gap, the cedar is in direct contact with the framing, so the heat in the wood conducts straight through into the studs and gets pulled into the insulation. With the air gap, the cedar can’t dump its heat into the wall instead, it re-emits the heat as infrared radiation, which the foil-faced vapor barrier reflects back into the sauna. As a result: your cedar walls stay hot, but your insulation stays cool.

    I used 1×2 furring strips over each stud, fastening them with 3 inch construction screws since they would hold the whole weight of the cedar.

    Installing the Cedar

    This is the satisfying part. Tongue and groove cedar going up, board by board.

    A few things that helped:

    • Start with a level reference line. If your first board isn’t level, every board after it is fighting that mistake.
    • Hidden-nail through the tongue. No exposed fasteners on the face of the wood.
    • Acclimate the cedar. Let the wood sit in the build space for a few days before installing so it adjusts to ambient humidity. Cedar that’s installed too dry or too damp can move on you.
    • Stagger your seams. Same as flooring, staggered seams look way better than aligned seams.

    The cedar smell hit immediately. That alone made all the tedious work of the vapor barrier feel worth it.

    What’s Next

    Part 5 is the finale: exterior ventilation finished out, custom door built and installed, benches designed and built, electrical finished, heater installed, and the first sauna. It’s the longest episode in the series and easily the most satisfying to film.

  • DIY Backyard Sauna Build – Part 3: Ventilation, Siding & Glass

    DIY Backyard Sauna Build – Part 3: Ventilation, Siding & Glass

    Part 3 of my DIY backyard sauna build. If you’re just joining, start with Part 1 (site prep and framing) and Part 2 (roof, sheathing, and weatherproofing)

    With the structure framed, roofed, and wrapped, it was time to start turning the sauna from “box that looks like a shed” into something that actually functions as a sauna. Part 3 is where that shift starts — I got the exterior siding on, installed the custom glass window, worked through the ventilation system, and started prepping for the electrical.

    Ventilation ended up being the piece I researched the most, and honestly it’s the part of a sauna build I see people mess up the most online. So I’ll spend some time on it here.

    Cutting the Door Opening and Installing the Front Siding

    Before siding went on, I had to cut the rough opening for the door through the sheathing and house wrap. Pretty straightforward — measure twice, cut once, and keep the cut as clean as possible because the trim will cover small mistakes but not big ones.

    From there, the front siding went up. I worked off the top, keeping a consistent reveal between boards.

    Ventilation Theory (The Part Most DIY Saunas Get Wrong)

    A sauna isn’t just a hot box. For it to actually work — meaning the heat stays where bodies are, humidity moves correctly, and you don’t suffocate — you need air moving in a deliberate way.

    The short version of what I landed on:

    • Intake goes low, near the heater, so fresh air gets pulled up through the stones and into the room at temperature.
    • Exhaust goes on the opposite wall, ideally placed to encourage a slow convection loop rather than dumping hot air out the top.
    • You want air turnover without killing the heat — maybe 4–6 air changes per hour depending on the source.

    Like I mentioned in the videos, I based my setup largely on Trumpkin’s Notes on Building a Sauna, which is the most useful free resource I found on this topic. If you’re planning a build, read it before you frame anything.

    Exterior Trim and Caulking

    Trim went on after the siding — corners, around the window, around the door opening. Not complicated but the kind of detail work that either looks great or looks off, depending on how patient you are with it.

    Then came caulking every seam that would see weather. Use an exterior-grade product rated for the temperature swings in your area. Cheap caulk cracks in a year or two and then you’re chasing leaks.

    The Custom Glass Window

    This was the moment I was most nervous about in the whole build. I had a custom tempered glass panel made at a local glass shop based on the rough opening dimensions I’d framed in Part 1. Tempered is non-negotiable here — regular glass near sauna temperatures is dangerous.

    When it arrived, I dry-fit it first without any sealant just to make sure the opening was right. It was — barely. A snug fit on the right and left side and about a 2 inch gap on top that required additional framing to close that opening.

    Then I framed the opening with cedar stops, applied a bead of high-temp silicone (the red stuff — rated for 500°F+), set the glass, and locked it in with the interior stops. High-temp silicone is the right call here. Standard silicone will off-gas or degrade at sauna temperatures.

    Prepping for Electrical

    With the exterior buttoned up, I started prepping for the electrical run. I’ll cover the actual wiring in Part 4, but at this stage it was mostly about locating the control panel, thinking through the conduit path, and making sure everything I’d need was on hand before I opened anything up.

    What I’d Do Differently

    A couple of lessons from this stage:

    • Dry-fit the glass panel the moment it arrives. If something’s off, you want to know before you’ve committed to sealants and trim.
    • Don’t skimp on high-temp silicone. It’s $10 more than the regular tube and it’s the difference between a window that lasts and one that fails in a year.
    • Plan your ventilation before you frame, not after. I got lucky that my placements worked out, but if I were doing it again I’d mark the exact intake and exhaust locations during framing.

    What’s Next

    Part 4 is a short video covering the lighting electrical, vapor barrier, and installing the furring and the first part of the actual interior cedar. Part 5 is finishing the sauna, and using it!

  • DIY Backyard Sauna Build – Part 2: Roofing, Sheathing, and Insulation

    DIY Backyard Sauna Build – Part 2: Roofing, Sheathing, and Insulation

    Part 2 of my DIY backyard sauna build is here! In this episode I get the sheathing up, build and install the roof, wrap the whole structure in Tyvek, install hurricane ties, insulation, and flash the window and door openings.

    This was the stage where the sauna finally started to look like an actual building and where a few small mistakes (looking at you, drip edge) taught me some lessons I wish I’d learned before starting.

    Part 1 is here with parts 3, 4, and 5 coming in the next few days.

  • DIY Backyard Sauna Build – Part 1: Site Prep & Framing

    DIY Backyard Sauna Build – Part 1: Site Prep & Framing

    I spent the last several months designing and building a sauna from scratch in my backyard and finally started posting the build on YouTube. Part 1 is live! It covers the background, site prep, and framing.

    Key things covered:

    – Why I decided to build instead of buy

    – Site preparation

    – Base frame construction

    – Wall framing and layout

    Part two is also already live with the rest coming in the following days.

  • I Built a Menu Bar App That Turns My Wife’s Texts Into Calendar Events

    I Built a Menu Bar App That Turns My Wife’s Texts Into Calendar Events

    My day is a wall of notifications.

    IRC, Slack, Discord, P2s, Adium jabber alerts, ntfy.sh pings, Telegram, WhatsApp, iMessage. I have thousands of streams of text coming at me every single day. It’s just ping ping ding ding ding from the moment I open my laptop until I close it.

    And somewhere in that noise, my wife texts me that the kids have a baseball game Tuesday at 5pm at Riverside Park.

    She’s incredibly organized. She texts me about dates, plans, appointments, school events, family stuff. All the time. And she’s great about it. The problem is me. I’m neck deep in a Kubernetes migration or chasing a kernel bug, and by the time I come up for air, that text is buried under 47 Slack threads and a Discord ping about someone’s homelab.

    So I built something to fix it.

    iMessageWatcher

    Screenshot of iMessageWatcher app showing a conversation about a kids' baseball game scheduled for February 24, 2026, with event details added to the calendar.

    iMessageWatcher is a macOS menu bar app that watches my iMessages specifically from my wife and uses a local LLM to figure out if a message contains an event, a date, a reminder, or something I need to act on. If it does, the app automatically creates a calendar event with the name, location, time, and all that. No input from me. No copy-pasting. No “I’ll add that later” (which means never).

    The whole thing runs locally. The LLM runs on my machine through Ollama. My wife’s messages never leave my device, never hit a cloud API, never get sent to OpenAI or anyone else. That was non-negotiable for me.

    How It Works

    The app sits in your menu bar and polls the iMessage database (~/Library/Messages/chat.db) every 60 seconds. It watches for new messages from whichever contact you configure (in my case, my wife’s number).

    Flowchart illustrating how iMessageWatcher processes text messages into calendar events on a device, showing steps from iMessage database to classification and extraction by Olama LLM, leading to integration with Calendar, Reminders, Due App, and ntfy.sh.

    When it finds new messages, it grabs the recent conversation context and sends it to a local Ollama instance running deepseek-r1 (or whatever model you prefer). The LLM gets a prompt that basically says: “Look at this conversation. Is there an event, appointment, or task mentioned? If so, extract the name, date, time, and location. Return JSON.”

    The app parses the response and creates the event in Apple Calendar. Done. My wife texts “Don’t forget about the kids’ baseball game Tuesday at 5pm, it’s at Riverside Park” and a few seconds later, “Kids’ Baseball Game” shows up on my calendar for Tuesday at 5:00 PM at Riverside Park. I don’t touch anything.

    It also works with Apple Reminders, the Due app (a personal favorite reminder app), and ntfy.sh for push notifications. You can toggle each one on or off depending on your setup.

    The Entire App Is 4 Files!!!1

    This is probably my favorite part. The whole thing is 4 files with no Xcode project and no external dependencies:

    Overview of the app structure, featuring four key files: main.swift as the entry point, AppDelegate.swift for application logic, Info.plist for metadata, and build.sh for compilation. Each file includes brief descriptions of its functionality.
    • main.swift : App entry point. 5 lines.
    • AppDelegate.swift : All the logic. Menu bar, SQLite scanning, LLM classification, EventKit integration, preferences window. Everything.
    • Info.plist : Bundle metadata and permission descriptions.
    • build.sh : Compiles the app, generates the icon programmatically, bundles everything into a proper .app.

    No CocoaPods. No Swift Package Manager. No Xcode project file. You clone the repo, run ./build.sh, and you have a working macOS app. The build script even generates the app icon using Core Graphics in an inline Swift script. I love that kind of simplicity.

    The compilation is just a single swiftc call:

    swiftc -O main.swift AppDelegate.swift \
    -framework Cocoa \
    -framework EventKit \
    -lsqlite3

    That’s it. Two Swift files, three frameworks, one binary.

    Why Local LLM

    I thought about this a lot. I could have used OpenAI’s API or Claude’s API and gotten better classification accuracy out of the box. But these are my wife’s text messages. They contain personal details about my kids, our schedules, where we’ll be and when. I’m not sending that to a third party.

    Ollama makes this easy. You install it, pull a model, and you have a local inference server running on localhost. The app just makes HTTP requests to http://localhost:11434. Everything stays on my machine.

    The classification accuracy with deepseek-r1 is honestly great for this use case. It’s not trying to write poetry. It’s looking at a text message and deciding “is this an event or not” and pulling out structured data. Local models handle that just fine.

    The SQLite Trick

    iMessage on macOS stores everything in a SQLite database at ~/Library/Messages/chat.db. The app reads it directly using the SQLite3 C API (no ORMs, no wrappers, just raw queries). It tracks which messages it’s already processed using ROWIDs so it never creates duplicate events.

    You do need Full Disk Access enabled for the app since chat.db is in a protected directory. The app checks for this on launch and walks you through enabling it if needed.

    What It Actually Catches

    Here’s the kind of stuff that used to slip through the cracks and doesn’t anymore:

    • “Soccer practice moved to Thursday at 4:30”
    • “Dentist appointment for the kids next Wednesday at 2”
    • “My mom is coming over Saturday around noon”
    • “Can you take and pick up the kids from school tomorrow?”
    • “I’m traveling for a work event the second week of April to Houston” (Yes it will do a multi day entry accurately”
    • “Don’t forget we have that dinner thing Friday at 7, it’s at that Italian place downtown”

    The LLM is good at parsing casual language. My wife doesn’t text in calendar-event format. She texts like a normal person. And the model handles it.

    Try It

    The repo is at github.com/rfaile313/iMessageWatcher. Clone it, run ./build.sh, configure your contact, and you’re done.

    You’ll need:

    • macOS 14+
    • Ollama installed and running
    • Full Disk Access for the app
    • Calendar and Reminders permissions

    It’s free, it’s open source, and your data never leaves your machine. If you’re someone who drowns in notifications and occasionally misses the important stuff from the people who matter most, this might help.

    It definitely helped me stop being the guy who forgets about Tuesday at 5pm.

  • Journaling, Blogging, and Embracing Imperfection

    Journaling, Blogging, and Embracing Imperfection

    Hello, hello! I know it’s been a long time since I’ve made a post on here. My last proper blog post was on February 1st, 2021 😱. I wrote about the Global Game Jam Contest that I participated in that year. The only other thing I posted was my “Life at Automattic” post on August 8, 2023, which wasn’t a true post from me—it was just a repost of an article I had been featured in at work. I wanted to blog more, but every time I thought about it, I considered the work that goes into it. I have to really think through and refine everything, consider the potential reader, and how it’s going to read years into the future, etc. My colleague, Alex Kirk, summed this up perfectly:

    When you have a blog, it can feel like it pressures you into publishing. The longer you let it linger, the more abandoned it looks. Thus, it can feel like as soon as you start a blog, you put yourself into a position where publishing becomes a chore rather than just a powerful means of expression.

    But I’m starting to think that all of that isn’t really that important. Alex is Right. No matter how much I think something over, proofread it, or go back through it, there are going to be mistakes and things I regret. It’s just like when you write code—every time you write code, it becomes legacy code. So, I’m going to try to worry less about how long it’s been since I’ve posted or if what I’m posting here is perfect or not, because there are a lot of other benefits to blogging. With the advancements in AI and LLM and stuff, maybe one day, people will be able to train an LLM against my blog and essentially be able to “talk to me” based on what I’ve written there over the years. It’s not a new idea or anything, but I think it is pretty cool:

    I think it’s also helped that I started journaling recently, I’ve been doing it for about a month now. Automattic has had this really great product called Day One, which is a journaling app. It’s super easy to use, it’s intuitive and has all the features you would expect to make journaling an easy breazy experience. I especially like the sync between all my devices, the daily prompts, and the comprehensive metadata that contains everything from geolocation, what the weather was, even what phase the moon was in 😆. This isn’t even an ad, it’s just a good product. I mainly started so that I would have something to look back on over the past several years and see what I was doing or thinking or what was going on during that time. I did this because when I started thinking about the last 10 years, I really couldn’t drill down granularly to a day-to-day level and could only really think about larger events and happenings, which was kind of shocking. Then, when I thought about like the last 20 or 30 years, oh boy, I felt like there was so much lost there.

    So I’m going to continue journaling and start blogging more and getting all of these ideas and words in my head out there on paper somehow. Not just for future me, but for my friends, family, and kids. I will say that one thing I’m always concerned about is security and privacy. I already put a lot of personal information out there on the Internet, and while I would love it if everybody could just read stuff and move about their day, I would be remiss in my duties if I didn’t recognize that there are some crazy people out there, and we all have to be kind of cautious. So, I’m still going to try to keep my family’s security and privacy at the forefront of everything, still trying to focus on thoughts and ideas that might be beneficial to me or anybody else reading. I do still smile when I receive emails from people telling me that they found value in something that I wrote, or a new comment on one of my YouTube videos telling me how nothing worked or clicked for them until they watched my video. Here’s one, for example:

    This video is over three years old, and I still get nice comments like that every week ☺️

    So anyway, to wrap this up, I guess long story short—I’m not going to commit to anything. It’s possible, although unlikely, that this will be the last post for the year, but what I am saying is that I’m not going to worry about it. It doesn’t matter if the blog looks abandoned, it doesn’t matter if it takes an extra amount of time between each post, it doesn’t matter if I do five posts in a week and then nothing at all. I’m just going to blog when I feel like blogging and not worry so much about how it appears to anybody else because, at the end of the day, while it is one of my goals and I do hope that people enjoy reading it and find value in it, it’s really for me. 🙂


    [Update] I wrote:

    With the advancements in AI and LLM and stuff, maybe one day, people will be able to train an LLM against my blog and essentially be able to “talk to me” based on what I’ve written there over the years. It’s not a new idea or anything, but I think it is pretty cool:

    Less than 10 minutes after I posted this. My colleague Jeremy Herve told me that we already have this 😳 — so um, I guess enjoy!