When Snow Is on the Schedule but Motivation Is on Hold

Brian’s fitness journal after a brain stroke

Last night, I made the mistake of checking the weather forecast. There it was in bold, unforgiving clarity: snow scheduled for today. I don’t mind running in the cold, but snow running? That’s where my enthusiasm politely exits the building.

This morning, the very first thing I did was rush to the window like a weather detective. No snow yet. Victory—for the moment. The temperature had dropped, though, and it was barely going to crawl past 40°F all day.

We’ve had a suspiciously mild autumn this year. Just recently, we enjoyed a 70-degree day. I think that spoiled me. Cold now feels rude. Still, I reminded myself: at least it’s not snowing. Our neighborhood is hilly, and I vividly remember my wife and I nearly slipping just walking up the hill in front of our house on a previous snow day. Ice plus gravity is not a friendly combination.

Had it been snowing, the day’s running plans would have been instantly canceled—no debate. But since the ground was still clear, I was forced to consider actually going out into the cold. I wasn’t thrilled, but I figured that after breakfast, it might be slightly more tolerable.

Meanwhile, my wife casually goes out for exercise at 5:00 a.m., when the temperature is even lower. I still don’t understand what kind of heroic software runs her internal system.

I, on the other hand, require mental push-ups just to step outside in cold weather.

After feeding both my kitten and myself, I consulted my weather app for the optimal escape window—only to be informed that snow was still very much expected. The app cheerfully announced it would start within the hour. In other words, science had just handed me a perfectly legitimate excuse to make my run short.

And I accepted it without protest.

The exercise journey, I’m learning, is full of negotiations—with weather, with the body, and especially with the mind. A decade ago, my resistance to running was far worse. Now the resistance is mostly emotional… but I still show up more often than not.

Even a little bit of exercise counts. Even showing up mentally counts. And looking ahead at the week, both Wednesday and Friday promise better running weather—so I’m choosing not to feel too guilty today.

Sometimes progress means running.
Sometimes it means strategically retreating from snow.

Both are survival skills.

I Built A Dictionary Apps, Words, API-Style

Day 3 of 100 Days Coding Challenge: Python

Today’s adventure is building a dictionary app using a free API. Sure, it’s the budget airline of dictionary apps—it may not get you into Oxford, but it can probably land a gig judging the middle school spelling bee.
Creating this app triggered a wave of linguistic nostalgia. I remembered my early days of learning English… and by “early,” I mean roughly the first twenty years. After nearly three decades in North America, I still get prepositions wrong—just with more confidence and the occasional dramatic flourish.
As for setup, I had to install the requests library. I couldn’t remember if I had it installed already or if I had just dreamed I did it one night in a caffeine-fueled coding fever dream. I installed it anyway, just to be safe—because nothing says “I’m a developer” like doubting your own system and doing it twice.

Today’s Motivation / Challenge

I wanted to create something that felt practical yet beginner-friendly. A dictionary app fits that sweet spot perfectly—it’s a great excuse to practice working with APIs, and it actually does something useful. Besides, I’ve always loved words. They’re like Lego pieces for thoughts, except when they come with silent letters and inconsistent plurals. That’s when they become Jenga.

Purpose of the Code (Object)

This program prompts the user to enter a word, then looks up its definition using an online dictionary API. It prints a simple explanation, giving the app the feel of a pocket dictionary—without the bent corners or the chance of being used as a coaster. The app runs in a loop, allowing users to look up multiple words at once, which makes it feel less like a one-trick pony and more like a low-budget tour guide to the English language.

AI Prompt


Write a Python program that asks the user to enter a word and uses an API to retrieve and display a simple definition. Let the user repeat this until they type “exit”.

Functions & Features

  • Accepts user input for a word to define
  • Connects to a free dictionary API to fetch the definition
  • Displays the first available definition in plain text
  • Loops so the user can define multiple words without restarting

Requirements / Setup

Python 3.10 or higher
Install the requests library: pip install requests

Minimal Code Sample

import requests
def get_definition(word):
url = f"https://api.dictionaryapi.dev/api/v2/entries/en/{word}"
response = requests.get(url)
return response.json()[0]["meanings"][0]["definitions"][0]["definition"]

This function takes a word, queries the dictionary API, and returns the first definition found.

dictionary_app

Notes / Lessons Learned

Initially, I had to restart the app every time I wanted to look up a new word. So I added a loop—because I’m that kind of person now. Look at me, looping like a full-grown coder. I even thought about adding pronunciation support, example sentences, or text-to-speech features… but then I blinked and lost all motivation. There’s always Day 4.
This “baby dictionary” does well with common words. Throw something obscure at it and it shrugs—politely. Still, it’s the kind of app I wish I’d had when I first arrived in North America, back when I thought “raining cats and dogs” was a warning to check for falling animals.

Optional Ideas for Expansion

  • Add pronunciation audio or phonetic spelling
  • Include example sentences to see the word in context
  • Integrate a text-to-speech library to read the definitions aloud

Rock, Paper, Terminal: The Showdown

Day 2 of 100 Days Coding Challenge: Python

Today’s goal: build a Rock-Paper-Scissors game. Because nothing screams “coding wizard in training” like trying to outsmart a random number generator in a game invented for kindergartners with sticky fingers and short attention spans.


The app pits the player against the computer in a glorious text-based battle of chance and ASCII art. I even added little touches, like printed symbols, to make it feel like a retro arcade game that had forgotten to include a joystick.

The last time I played with ASCII was back in 2024, when I coded a cat-themed game featuring a passive-aggressive feline as the final boss. I poured hours into it. My husband played it once, looked at me with deep concern, and asked, “Are you okay?” That was the moment I knew I’d crossed the threshold: I had become a programmer.

Today’s Motivation / Challenge

There’s something charmingly nostalgic about text-based games. They don’t rely on graphics or fancy libraries—just logic, timing, and the eternal struggle to remember whether paper beats rock or rock beats paper. It’s a perfect early project for getting used to input, conditionals, and letting the computer be your unpredictable opponent. Plus, it’s fun. And when you’re learning to code, fun is fuel.

Purpose of the Code (Object)

This program allows a human player to play Rock-Paper-Scissors against the computer. The player types in their choice, the computer picks one at random, and the program determines who wins. It loops until the user decides to stop, making it a great intro to control flow and user input. It’s the kind of project that makes programming feel like a game—because it is.

AI Prompt


Write a Python program that lets a user play Rock-Paper-Scissors against the computer. Include random choices and let the user play again. Bonus: Add ASCII art for each move.

Functions & Features

  • Accepts user input (rock, paper, or scissors)
  • Randomly selects the computer’s move
  • Compare choices and declare a winner
  • Loops until the player chooses to quit
  • Includes basic ASCII-style flair for fun

Requirements / Setup

Python 3.10 or higher
No external libraries required

Minimal Code Sample

import random
def get_computer_choice():
return random.choice(["rock", "paper", "scissors"])

Randomly picks the computer’s move each round.

Rock_Paper_Scissors

Notes / Lessons Learned

I dumped it into the same “to-do list” folder from yesterday, because apparently that’s now my one-size-fits-all app warehouse. Should I organize my files? Probably. Am I going to? Let’s not get ahead of ourselves.
With a bit of help from AI, I added a loop so the game doesn’t just play once and vanish like a magician with stage fright. Now it asks if you want to play again—because one round is never enough when you’re trying to prove you’re smarter than a CPU. And shockingly, I recognized pieces of the code. My brain hasn’t fully turned to digital oatmeal yet.
That said, I kept losing. Badly. I suspect that either the computer is cheating or the game gods are cursing me. My husband tried it and won instantly. So yes, the program works. I just don’t.

Optional Ideas for Expansion

  • Add a scoreboard that tracks wins, losses, and ties
  • Include emojis or better ASCII graphics to boost the drama
  • Introduce a “secret cheat code” that guarantees a win (for testing, of course)

The Great .py Awakening

Day 1 of 100 Days Coding Challenge: Python

The great .py Awakening

The Great .py Awakening is the moment I turned confusion into creation, proving that even the smallest script can spark a journey of growth and persistence.

Day one was like moving into a new apartment where all the furniture keeps slipping out the back door. I had to install everything from scratch—VS Code, Python, Git—and even go spelunking through my password manager to revive my long-lost GitHub account. Apparently, I once took a Python course and then dropped it, much like a bad Tinder date.
My first project? A to-do list app. Ironically, the one thing I should have built before I started this challenge. But instead of writing tasks, I dove straight into writing code—without knowing how to create a .py file. Up until now, I’d been tossing code into browser-based compilers like a hobbyist throwing spaghetti at a virtual wall.
Still, I did it. I made a real file—a real app. And despite a few “what even is a terminal?” moments, I now have a tiny program that adds, removes, and lists tasks. It’s basically productivity’s version of learning to boil water.

Today’s Motivation / Challenge

I wanted to start with something useful and immediately rewarding. A to-do list felt like the programming version of planting herbs on your kitchen windowsill—it’s simple, practical, and gives you an excuse to say, “Oh, this? I made it myself.” It also forced me to practice creating files, running scripts, and not panicking when my terminal asked me to press keys, as if it were judging my life choices.

Purpose of the Code (Object)

The app is a simple, command-line-based to-do list. It lets you add tasks, view your current list, and remove items you’ve completed or abandoned due to procrastination. All the tasks are saved in a text file, so you don’t lose them when you close the app—unless, of course, you delete the file, which I did. Twice.

AI Prompt


Create a simple Python to-do list app. It should let users add, view, and remove tasks. Store tasks in a text file so they persist between sessions.

Functions & Features

  • Add a task by typing it in
  • View all current tasks in a numbered list
  • Remove a task by selecting its number
  • All tasks are saved in a plain .txt file

Requirements / Setup

Python 3.10 or higher
No external packages required

Minimal Code Sample

def read_tasks():
with open("tasks.txt", "r") as file:
return file.read().splitlines()

Reads the tasks from a text file and returns them as a list—basic, but essential.

My-todo-list

Notes / Lessons Learned

I learned how to create folders, navigate directories, and use the cd command, as if I were starring in a low-budget ‘90s hacker movie. I even managed to connect Codex to GitHub… eventually. It felt less like a setup process and more like a professional wrestling match with invisible tech gremlins.
The most surprisingly difficult part? Figuring out how to push my code to GitHub. The last time I used Git was in 2023, and apparently, I’d flushed all that knowledge from my brain to make room for banana bread recipes and TV quotes. But guess what? My first to-do list app actually worked! A little too well—it zipped through the prompts faster than I could respond. Honestly, I’ll probably go back to using Google Calendar and Gemini for actual task management, but the app exists, it runs, and it’s up on GitHub like a proud toddler drawing taped to the fridge.

Optional Ideas for Expansion

  • Add due dates or time reminders to each task
  • Color-code tasks by urgency (for a future GUI version)
  • Let users mark tasks as “done” instead of just deleting them

Why I’m Coding for 100 Days (Even Though I Didn’t Enjoy It the First Time)

Day 0 of 100 Days Coding Challenge: Python

My experience with Python? Let’s just say—minimal. I took a course about a year ago, but most of the code has long since slipped through the cracks of my memory. Well, except for the basics. Those stuck around, probably out of sheer stubbornness.

Then, one day, I stumbled across a book about a university student who challenged herself to code for 100 days—with the help of AI. That caught my attention.

Now, doing something for 100 days straight isn’t the hard part for me. I’ve been keeping up daily habits for years. The real challenge? Committing to something I didn’t particularly enjoy the first time around. A hundred days of coding—something I once found frustrating? That’s a whole new kind of endurance test. Add a full-time job into the mix, and well… things start to get interesting.

The student in that book said she didn’t enjoy traditional programming courses—the kind that kick off with “print(‘Hello, world!’)” and expect you to be thrilled. I get that. It’s hard to stay motivated without a purpose. Learning is great, but creating something meaningful for yourself? That’s even better.

I will use AI as a collaborator, not a replacement for thought, to ensure each day’s ‘small program adds a brick to my understanding.So, no, I’m not aiming to become a full-stack developer in 100 days. But I will create something—one small program each day. Just to see what I can build. Just to see how far I can go. Let’s begin.

Shorts Weather, Long Distance, and a 10K Victory

Brian’s fitness journal after a brain stroke

Today’s mission depended on one critical variable: temperature. I waited patiently for it to rise just enough to justify running in shorts—quite possibly my final bare-legged appearance of the year. Once conditions were approved by the unofficial weather committee (me), I headed out for my 10K run with one ambitious goal in mind: hit my final speed target for the year.

The last two runs were hard 5Ks, and I’d pushed aggressively for pace. Somehow, my body had recovered better than expected, which gave me hope. Dangerous hope. The motivational kind.

After the first quarter kilometer, I was well ahead of target. That early success flipped a switch in my brain: Maintain this at all costs. Each pace announcement reinforced the fantasy that today might actually be the day. Naturally, I pushed harder.

Now, the body is essentially an energy budget. Spend too much too early, and you go bankrupt before the finish line. I knew I was overspending. By the end of the first kilometer, my head start had shrunk—but I was still safely ahead, so I continued the dangerous strategy known as optimism. By the 5K mark, I had beaten my target pace by a comfortable margin.

But I wasn’t content with “comfortable.”

I wanted a new personal best 10K.
I wanted my first ever sub-9-minute-per-kilometer 10K.
And I still had half the distance left to survive.

The final two kilometers were brutal. My lead evaporated faster than my confidence during those last pushes. Every step felt like a negotiation. With three seconds to spare—three—I crossed the line under my sub-9 goal.

I did it.
New personal best.
Goal achieved.
Shorts weather honored.

For a brief moment, I considered retiring for the rest of the year. After all, it’s still early November. Why not celebrate with a well-earned vacation from running? That thought lasted exactly as long as the walk home.

Instead, I doubled down.

Next year’s goal is already on the table: shave off another full minute from my pace. Is it realistic? I honestly don’t know. But it’s achievable to try—and that’s the part that still matters most.

So on Monday, the next mission begins.

When Muscles Protest but Motivation Wins the Argument

Brian’s fitness journal after a brain stroke

Today, I fully expected to fail my target pace before I even tied my running shoes. My legs were still filing formal complaints from yesterday’s effort—the direct result of pushing hard for that shiny new personal best the other day. Consecutive personal bests are a bold request of the universe, and I had already braced myself for disappointment. Pre-disappointment, if you will.

And yet… the goal refused to leave my head.

The first pace announcement came in, and to my surprise, I was slightly ahead of target after the first quarter kilometer. That tiny lead was just enough encouragement to make a reckless decision: push harder. Hope is powerful—and occasionally unwise.

For a while, it worked.

Then reality caught up. By the end of the second kilometer, that early lead had completely evaporated. My legs stiffened like they had clocked out early. I tried to push again, but my body had officially entered “no further negotiations” mode. No matter how much I argued with my pace, it refused to come back down.

In the end, I missed my target—but only by about ten seconds. I also logged my eighth-fastest run ever, which is not exactly a tragedy. I was still more than a minute faster than Monday’s run, so overall, progress was very much alive… just not wearing a gold medal today.

Now the focus shifts to recovery. My next run is a 10K, not a 5K, and that’s a different kind of negotiation altogether. Pace management over 10 kilometers is much trickier—start too fast, and the second half will collect its revenge with interest. I’ve been running for nearly a decade, and yet I still struggle with pacing like it’s a lifelong riddle.

My body condition and temperature affect my running more than I’d like to admit. Recovery is especially tricky with my kidney condition. Even after a few days of rest, it’s not unusual for my body to feel like it hasn’t fully recharged. The last two sessions were particularly hard pushes, so caution is now my training partner. I may not be improving at the speed I imagine in my head—but I am moving forward. And more importantly, I still have something to run toward. These days, the hope matters more than the stopwatch. Performance fades. Motivation, when treated kindly, sticks around.

Warm Weather, Fast Legs, and a New Personal Best

Brian’s fitness journal after a brain stroke

As forecast, today’s weather finally decided to be kind. After nearly a week of cold and rainy misery, I was able to run in shorts again—which, this time of year, feels like winning the fitness lottery. I waited out a brief cool morning delay, and then I was off. Pure luxury.

There are fewer than two months left in the year now. I’ve already hit my original year-end running goals, so naturally, I moved the finish line. Running, after all, is highly negotiable with the weather. Temperature rules everything: my pace, my motivation, and occasionally my mood. The last few cold days were rough, and hitting my target pace felt like negotiating with gravity.

But when I checked today’s forecast, I knew. Today is the day.

And my body agreed.

From the first kilometer, everything felt smoother—lighter, faster, less like I was dragging winter behind me. My running app announced my pace each kilometer like a tiny motivational coach. Each update sounded better than the last. By the end, my target pace had dropped to just under 9 minutes per kilometer. Not only did I beat my target—I crushed it. I even set a new personal best, running more than a full minute faster than my run just two days ago.

Weather is powerful. But on my cooldown walk home, curiosity kicked in. Why was today so much better?

Then it hit me—I was also a pound lighter than I was on Monday. Add in less water weight, and suddenly I was carrying about two pounds less than my last run. And while two pounds doesn’t sound dramatic, try hauling it around for five kilometers and see how heroic you feel.

Between the warmer temperatures, time-change recovery, and lighter load, everything lined up perfectly.

My last running goal for the year is simple but stubborn: finish a 10K at under 9 minutes per kilometer. I only attempt a 10K once a week, so the weather still holds all the bargaining power. A cold or rainy day can turn that goal into a negotiation with reality.

Still, I haven’t given up. There are nearly two months left in the year—and at least a few more warm days hiding in the forecast. Somewhere out there, my next breakthrough is waiting, probably wearing shorts.

Time Change Chaos and a Kitten Boss

Brian’s fitness journal after a brain stroke

Time change season is here again—the biannual ritual where humans pretend one hour is no big deal, while our biological clocks absolutely disagree. My wife and I both struggle with it. She even started adjusting a day early, as if easing into jet lag without the benefit of a vacation. Neither of us grew up with daylight savings—Japan doesn’t use it, and I once lived in a part of the U.S. where clocks remain blissfully untouched—so after decades, it still feels unnatural.

I work from home and live by my own schedule, so waking up early or late doesn’t cause any major disasters. Still, I like to keep my time consistent—mostly because my wife has a strict work routine, and I want to stay synchronized for the sake of household harmony. I allow myself just enough flexibility to keep life interesting.

This morning, however, my alarm dragged me out of sleep far too early. I remembered the time change and thought smugly, “I’ll just sleep in a little longer.” Unfortunately, this plan was immediately vetoed by our kitten, who stomped upstairs like a tiny furry manager, dropped her toy mouse onto my chest, and demanded a meeting.

My wife had already fed her hours earlier—she wakes up long before I do in order to exercise and prepare for work. Usually, once the kitten eats, she either curls back up beside me or disappears to find trouble somewhere else. But today? She wanted the morning shift on my schedule. And she wanted it now.

So Our Kitten

Ignoring her is not an option. When I try, she escalates the situation by repeatedly dropping the toy mouse onto me with the precision of a trained negotiator. Eventually, I surrendered. I dragged myself out of bed, fixed breakfast, and went downstairs for my mandatory “fetch with mouse toy” session. She observed my compliance with great satisfaction.

Honestly, she’s not the worst alarm clock. She’s on time, persistent, and offers plenty of accountability—whether I asked for it or not. And on days when I want to get a lot done, having a tiny, determined supervisor staring at me actually helps.

She is my new boss. And she’s learning her rights very quickly.

Cold Weather Running, Frustration, and Nietzsche: A November Runner’s Tale

Brian’s fitness journal after a brain stroke

I can’t believe it’s already November. One week we’re basking in warm weather, and the next we’re suddenly living inside a refrigerator. But cold or not, I refuse to stop running. I simply layer up like an onion with cardio goals.

This morning, my fitness tracker declared I had “high energy” and was in a “cardio-ready state.” Lies. All lies. My 5k quickly turned into a comedy of disappointment.

I blasted out of the gate so strongly that by the first quarter kilometer, I was a glorious 40 seconds ahead of my goal pace. Unfortunately, by the time I hit the first full kilometer, that 40-second buffer had vaporized—like steam on a cold morning—and I was actively fighting gravity, time, and possibly physics to keep from slowing further.

My running app updates me every quarter kilometer like a friendly but brutally honest coach. Each announcement informed me that my pace was either the same or a second slower. Meanwhile, I felt like I was pushing harder than a Black Friday shopper. Yet the data said otherwise.

Cold weather is always more brutal for me. Ever since my brain stroke, my body adapts to temperature changes about as gracefully as an old computer installing a software update. So I have to be very deliberate about my clothing: too cold and I stiffen up; too warm and I overheat. Dressing for a winter run feels like preparing for a NASA spacewalk—one wrong layer and the mission goes sideways.

Even with all the challenges, I finished my 10k only 21 seconds behind my target pace. Not ideal, but far from a disaster. And I was much faster than last week’s 10k, so progress is still happening—just slowly, like a stubborn download progress bar.

Running is one of those long-term investments that requires patience… and more patience… and then even more patience. I’ve been running for nearly a decade, and while 5k used to feel like medieval torture, once I learned to run 10k consistently, the shorter distance stopped scaring me, but chasing a target pace? That always requires grit, stubbornness, and the willingness to suffer a little.

Cold days make it harder—pushing harder doesn’t guarantee results. Sometimes your body simply files a complaint.

My wife always reminds me: One day at a time. One step at a time. Every project has ups and downs, and effort still counts even when the outcome isn’t what we imagined.

Nietzsche might call today’s struggle a small act of “self-overcoming”—choosing the higher challenge instead of the comfortable shortcut. So instead of dwelling on today’s frustrations, I’m choosing to see it as another step toward a stronger version of myself.

And honestly? That feels like its own victory.