Quarters, Colors, and the Gospel of Granular Reading Data

Day 46 of 100 Days Coding Challenge: Python

I’ve been tinkering with this book tracker for almost five days now, and let me tell you—things are starting to look serious. Not “move-in-together” serious, but close. As the code grows chunkier, I’ve been extra cautious about how I add each new function. Rather than throwing in five features and hoping nothing explodes, I take the accountant’s route: one entry at a time, reconciled and balanced.

Why the sudden urge to filter by quarter? Well, in the world of corporate accounting—where I live and breathe—we worship the fiscal calendar. Quarterly reporting is practically a sacrament. Automotive manufacturers slow down in summer and December, and trust me, so do I (with a good fantasy novel in hand). But that’s just a hunch. I wanted cold, clean, spreadsheet-worthy evidence that I read more Gothic tales as leaves fall and pumpkins rise. Gut feeling isn’t GAAP-approved. So today, we brought seasonal analysis into the Book Tracker universe.

Today’s Motivation / Challenge

Today’s challenge was simple but essential: how do you filter your data like a pro and still keep your chart options open? I wanted to analyze my reading habits by year and season, just like I do with budgets and forecasts. This time, instead of revenue trends, I’m tracking fantasy epics and Gothic drama. Same logic. Less coffee.

Purpose of the Code (Object)

This update adds the ability to view genre summaries filtered by year and, optionally, by quarter. The user can pick a year (and a quarter if they want) and choose between a pie chart or a bar chart to visualize what they’ve been reading. It’s like a financial report, but for books—and it’s way more colorful.

AI Prompt: 

“Add a menu option that lets the user filter the genre summary by year and quarter, and display the data in either a pie or bar chart based on their choice. Keep the code clean and beginner-friendly.”

Functions & Features

  • Lets users filter reading data by year and quarter
  • Visualizes genre distribution as either a pie chart or bar chart
  • Builds on existing color-coded genre system
  • Detects invalid input and guides the user gently (and politely)

Requirements / Setup

pip install pandas matplotlib

Python 3.9 or later recommended for date handling and plotting.

Minimal Code Sample

year = int(input(“Enter year to analyze: “).strip())

df = df[df[‘Date Finished’].dt.year == year]

quarter_input = input(“Enter quarter (1–4) or press Enter to skip: “).strip()

if quarter_input:

    df = df[df[‘Date Finished’].dt.quarter == int(quarter_input)]

This snippet filters your book log by the chosen year and optional quarter.

Book Tracker

Notes / Lessons Learned

The more I add features, the more I see the architecture underneath the code. This little book tracker has evolved into a proper app—with clearly separated layers: imports, genre definitions, graphing logic, and menu options. Honestly, that’s kind of magical. It’s like finally understanding how your espresso machine works after years of just pressing the button.

There’s a quiet thrill in building something you actually want to use. This wasn’t just another tutorial—I created a tool tailored to my reading life. And somewhere between bug-fixing and plotting pie charts, I realized: 46 days in, I’ve gone from curious coder to confident tinkerer. Not bad for someone who thought Python was just a snake when this all started.

Optional Ideas for Expansion

  • Add filters for author or language (in case you read in multiple languages)
  • Include average pages per genre per quarter to see which genres exhaust you
  • Export filtered results as a CSV report for sharing or archiving

Pie, Bar, and Book Nerd Bliss

Day 45 of 100 Days Coding Challenge: Python

I’m still tinkering with my book log program—not just because it’s part of my Python learning project, but because, let’s be honest, I want this thing to actually work. I mean, really work. As in “track-my-life’s-reading-habits-and-give-me-pretty-charts” work. Reading is sacred in my world, and keeping a log isn’t just a nerdy pastime—it’s a habit that brings me joy, perspective, and a little control over my chaos.

Today’s feature? I added a toggle so users (okay, me) can switch between a pie chart showing total genre distribution and a bar chart showing monthly genre patterns. Why? Because I read more Gothic and fantasy novels in October, and it’s satisfying to see that mood shift visualized. Also, toggles are cool. They make me feel like I’ve built a dashboard, not just a Python script.

Today’s Motivation / Challenge

Ever feel like you’ve built something, and it’s almost useful… but not quite delightful yet? That was me. So, today’s mission was simple: add a little UX sparkle. Let the user choose how to view their genre stats—like a buffet for data nerds. Pie or bar? Whichever suits the literary mood.

Purpose of the Code (Object)

This code adds a flexible summary feature to a book tracking app. It lets users choose between a pie chart showing the overall breakdown of genres they’ve read or a bar chart showing how many pages they read per genre by month. It’s a compact, practical way to visualize your reading habits—and yes, it’s way more fun than a spreadsheet.

AI Prompt:

“Add an option to toggle between a pie chart and a bar chart when viewing genre summaries in a Python book log app.”

Functions & Features

  • Add a book and track its genre, author, page count, and completion date
  • Import books from a CSV file
  • View a genre summary chart as either a pie or bar graph
  • Filter chart data by genre or month
  • See trends in pages read by month and genre

Requirements / Setup

pip install pandas matplotlib  

Minimal Code Sample

def show_genre_summary_chart():

    print(“Choose chart type:”)

    print(“1. Pie Chart (Overall Genre Distribution)”)

    print(“2. Bar Chart (Pages per Genre by Month)”)

    choice = input(“Enter 1 or 2: “).strip()

    if choice == “1”:

        plot_genre_pie_chart()

    elif choice == “2”:

        plot_progress()

    else:

        print(“Invalid choice.”)

This function lets the user decide how they want their genre stats served: sliced (pie) or stacked (bar).

Book Tracker

Notes / Lessons Learned

I’m getting much smoother with activating my virtual environment. Looking back, I can’t believe I fumbled so much with cd errors and typos just last week. Progress!

Today, even the smallest update required a little code renovation. First, I added a new function (show_genre_summary_chart) above the main() block. Then I gave the user a choice:

print(“Choose chart type:”)

print(“1. Pie Chart (Overall Genre Distribution)”)

print(“2. Bar Chart (Pages per Genre by Month)”)

Finally, I updated the main menu to replace the old genre graph option with this smarter version. It works like a charm.

Honestly, I’ve used so many apps over the years without fully appreciating what went into them. Now that I’ve written code that sort of behaves nicely, I’m grateful to all the developers who did this before the age of AI. I’ve got help, but they? They had raw logic, coffee, and probably a lot of bugs.

Optional Ideas for Expansion

  • Add a date filter for the pie chart (e.g., genre distribution by year or season)
  • Let users export the pie/bar charts as PNG files for their own book reports
  • Display top 3 most-read genres alongside the charts

When Getting Out of Bed Is the First Workout of the Day

Brian’s fitness journal after a brain stroke

Some mornings invite you to crawl back under the covers and negotiate with the universe. Today was one of those mornings. I was still half-asleep when the alarm went off, but I got up anyway—mostly because I’ve learned that negotiating with fatigue never ends well.

Ever since my brain stroke, sleep has been… complicated. In the early days, I could sleep almost indefinitely. My occupational therapist responded by giving me a very firm schedule, and my wife enforced it with the seriousness of a NASA launch director. Her rule was simple: never give up your agency. Losing control of your body is hard enough—don’t also surrender control of your will.

Kafka would’ve understood.

Being trapped in a body that doesn’t cooperate is emotionally brutal. At first, I was scared. Insecure. Stripped of mobility and confidence all at once. But slowly, painfully, I got it back. The will to live returned. I realized my wife needed me—but more importantly, I needed me.

Now, most of what I do is for myself: running, strength training, and learning. People can change. I’m living proof of that. So even on tired mornings, I stick to my routine.

Today was no exception.

I made my way to my office, fed our cat, and started my morning exercises before breakfast. My wife had already left for work at 6:30 a.m., as usual, powered by her own internal stoic engine.

Being Monday, the schedule called for pull-ups.

I knocked out the first 10 without dropping off the bar, then after a few seconds of dramatic oxygen negotiations, finished the remaining 9. Nineteen total. Next week’s target is 20, which conveniently marks the end of my weekly increase streak.

That opens an interesting question:
Do I push further into three sets of ten?
Or do I hold the line and focus on maintaining this strength?

I have two weeks to decide. That feels fair.

For now, I’m allowing myself a short pause before the next act of today’s production: my run. Fatigue may still be hanging around, but discipline has already clocked in for work.

And that makes all the difference.

Slicing Up Genres (With Pie, Not Precision Tools)

Day 44 of 100 Days Coding Challenge: Python

Yesterday’s mission? Make a colorful genre-based bar chart that didn’t look like a monochrome mess. After some wrestling with the code (and maybe whispering a few stern words to matplotlib), I decided to step back and take a wiser approach—add one function at a time. Think of it like seasoning a dish: too many spices at once and you can’t tell if the problem is the salt or the cinnamon.

So today, instead of fixing every chart in one go, I added something deliciously simple: a pie chart. Not the edible kind, unfortunately, but a visual feast for genre distribution. It’s a nice way to get a bird’s-eye view of what I’ve been reading—am I balanced, or living in a fantasy bubble? This project is starting to feel like a real book journal app, and that’s both exciting and mildly terrifying.

Today’s Motivation / Challenge


Histograms are great if you’re obsessed with dates (hi, it’s me), but sometimes you just want to know what you’ve been feeding your literary diet. A pie chart offers a big-picture summary of your reading preferences—like stepping back from the bookshelf and realizing 60% of it is purple dragon covers. Today’s goal? See the forest, not just the monthly genre trees.

Purpose of the Code (Object)


This updated code adds a neat little pie chart showing the proportion of each genre in your reading log. It uses the data already stored in your CSV file and the color settings from yesterday’s code. The result? A clean visual breakdown of your book habits, so you can brag about how “diverse” your library is—or realize it’s time to mix in something besides historical fiction.

AI Prompt:


Make it readable. Make it modular. And for the love of Python, add one feature at a time.

Functions & Features

  • Add books to a CSV file with metadata like title, author, pages, and genre
  • Show reading progress over time (bar chart by month and genre)
  • View genre-specific reading patterns
  • Display a pie chart of your overall genre distribution
  • Import book lists from another CSV file

Requirements / Setup

  • Python 3.x

Install the required library:

pip install matplotlib pandas

Minimal Code Sample

def plot_genre_distribution():

    df = pd.read_csv(FILE_NAME)

    df[‘Genre’] = df[‘Genre’].str.strip().str.title()

    genre_counts = df[‘Genre’].value_counts()

    colors = [GENRE_COLORS.get(g, ‘gray’) for g in genre_counts.index]

    plt.pie(genre_counts, labels=genre_counts.index, colors=colors, autopct=’%1.1f%%’)

    plt.title(‘Overall Genre Distribution’)

    plt.axis(‘equal’)

    plt.tight_layout()

    plt.show()

This function creates a genre pie chart based on the books you’ve read.

Book Tracker

Notes / Lessons Learned


What I added today was the code to create a pie chart, showing the distribution of genres. Then, I gave it a shiny new menu option. It worked surprisingly smoothly—probably because I didn’t try to fix five other things at the same time.

I’m finally getting used to virtual environments, which means fewer self-inflicted typos and wild goose chases through the wrong folders. The genre color dictionary I built yesterday made the pie chart almost too easy. That’s a nice surprise in coding: sometimes past-you actually set present-you up for success.

Also, here’s a bit of wisdom from building queries in SAP (and now in Python): change one thing at a time. If you break something, at least you know which line of code betrayed you.

Optional Ideas for Expansion

  • Let users toggle between the pie chart and the bar chart from the same menu
  • Allow subgenre tracking with drill-down options
  • Export the pie chart as an image to share or embed in a blog

Color Me Curious: Giving Genre Some Style

Day 43 of 100 Days Coding Challenge: Python

I kept tinkering with the tracker I built yesterday, chasing a dream—a dream of colors. Specifically, I wanted each book genre to appear in a different color in the graph from my Python book tracker genre visualization. That’s when I realized: my genre list was… how should I say it… ambitious. Turns out, tracking every tiny genre variation from “Science Memoir” to “Neo-Futurist Romance” makes the visualization look like a unicorn exploded on a bar chart.

To simplify, I added a new column for broader genres—less chaotic, more chart-friendly. My vision was to see a beautiful stacked histogram by genre color, but the code didn’t quite cooperate at first. It also made me realize something bigger: if I want this program to be truly useful, I’ll have to rethink how I track my books moving forward. Retroactively cleaning up all that old data? That’s a future-me problem. For now, this code is more about going forward than going backward.

Today’s Motivation / Challenge

If data is the new oil, then visualizing it is like turning that oil into fuel. Today’s challenge was about clarity—seeing reading habits at a glance. Colors help your brain grasp information faster, and genre-based colors are like putting your bookshelf on a rainbow diet. Also, it’s just more fun to look at.

Purpose of the Code (Object)

This program reads your book-tracking log and turns it into a visual chart, showing how many pages you’ve read each month. It highlights your genre diversity using color-coded bars, so you can instantly see if you’re stuck in a romance rut or finally diversifying your literary diet.

AI Prompt:

Add the existing Python code a color code for the following: Fantasy, Science Fiction….. History Fiction. 

Functions & Features

  • Add a new book to your reading log
  • Import books from another CSV file
  • List all books you’ve logged
  • Show a reading progress chart by month
  • Show a stacked genre-colored chart to compare reading trends

Requirements / Setup

You’ll need:

pip install pandas matplotlib

This code runs on Python 3.9+ (but most 3.x versions will do).

Minimal Code Sample

df[‘Genre’] = df[‘Genre’].str.strip().str.title()

df = df[df[‘Genre’].isin(GENRE_COLORS.keys())]

Standardize the genre format and filter out undefined genres so colors work correctly.

Book Tracker

Notes / Lessons Learned

Today, I had a brand new flavor of problem. You know the kind—where the code technically runs, but nothing happens? Turns out, I completely forgot to add:

if __name__ == “__main__”:

    main()

So the script just… stared at me, judging my oversight in silence. Classic rookie move.

But wait, there’s more. My bar chart decided that “colorful” meant “one color only.” Why? Because my genre strings were a mess—some had leading spaces, others were lowercase, and a few were practically jazz solos. After several rounds of trial and error (and a little sulking), I discovered this trick:

df[‘Genre’] = df[‘Genre’].str.strip().str.title()

instead of the other way around. And when I added this line to filter only the genres I’d actually assigned colors to:

df = df[df[‘Genre’].isin(GENRE_COLORS.keys())]

it finally worked. The chart bloomed into the colorful visualization I’d hoped for—like spring after debugging winter.

Optional Ideas for Expansion

  • Add a pie chart showing the overall genre distribution
  • Include a “favorite author” stat based on frequency
  • Let users define their own genre-color mappings in a config file

Why My Kidneys Just Banned My Favorite Melons

Brian’s fitness journal after a brain stroke

today my kidneys staged a small but decisive coup.

My nephrologist’s office called to inform me that my latest bloodwork shows I’ve been consuming too much potassium. The culprits? Cantaloupe and honeydew. Two of my favorite, innocent-looking fruits. Apparently, they’ve been quietly plotting against me this whole time.

When your kidneys aren’t working properly, the list of things you have to watch becomes impressively long. Protein. Potassium. Phosphate. Even foods that sound healthy—like spinach and other green vegetables—can become problematic. You don’t just eat what’s “good”; you eat what your kidneys will tolerate.

Over the summer, I was told I was eating too much icecream (sugar), so melons became my workaround. Light, refreshing, hydrating—what could go wrong? Well, potassium. That’s what.

Fortunately, it’s not summer anymore, and I’m not doing as much physical activity. That means I can get away with smaller snack volumes, which makes adjusting a little easier.

Kidney disease is not a casual hobby. It demands attention, planning, and frequent dietary grief. So now, melons are off the table—for a while, at least.

After some research, I discovered that strawberries and carrots are much friendlier options for a low-potassium diet. My wife, always the strategist, suggested rotating foods instead of banning them forever: melon one week, berries the next. That way, nothing gets permanently exiled unless it absolutely has to.

Still, losing another favored snack stings. And it’s not just melons. Cheese and chocolate—two of life’s most reliable joys—also need to be carefully rationed when kidneys are involved. Apparently, the universe believes character is built through dietary restraint.

So for now, it’s goodbye to honeydew and cantaloupe. Hello to berries and carrots.

I’ll keep paying attention to potassium levels, rotating foods when possible, and doing my best to eat in a way that keeps my kidneys cooperative—even if they have a flair for dramatic food bans.

Charting Chapters and Chasing Genres With A Book Tracker App

Day 42 of 100 Days Coding Challenge: Python

Instead of starting a shiny new project file (and the inevitable spiral of new virtual environments), I decided to stick with yesterday’s book tracker and give it a little more love. Reading is one of my enduring passions—and also a data problem waiting to happen. Sure, I’ve used Excel for book logs, and I’ve even flirted with BI tools. But I want something more personal. More tailored. I want a program that doesn’t just track what I’ve read, but shows me how I’m reading.

The truth is, my reading speed shifts wildly. I can fly through The Hunger Games in a weekend, but with Ulysses, it feels like I’ve aged ten years by chapter three. Hemingway, despite his famously minimal style, still slows me down—not because of the vocabulary, but because of the silences between the lines. That kind of nuance doesn’t show up on a bar graph. But I want it to. I want to see the shape of my reading: genre shifts, reading slumps, maybe even gaps that whisper, “You never finished that biography, did you?” So today’s work is about evolving this project—bit by bit—into something that could actually help me change the way I read. I am going to make a Python book tracker with genre analysis.

Today’s Motivation / Challenge

This project matters because books shape who we are—and being able to map that influence with code feels like giving your brain a mirror. Today’s challenge is part introspection, part data design. How do you build a program that not only records what you read, but reveals patterns about you as a reader? That’s the kind of rabbit hole worth crawling into. Also, I finally fixed the bug that’s haunted me for days. Turns out it wasn’t a deep Python issue—it was just me calling .env instead of .venv. Classic user error.

Purpose of the Code (Object)

The script is designed to help you track your reading habits in a CSV-based log, with details like title, author, page count, genre, and the date you finished each book. It also lets you visualize your progress with bar charts and filter your reading by genre. And yes, now it can import data directly from a Notion-exported CSV file, so you’re not stuck entering everything manually like it’s 1994.

AI Prompt:

Improve a Python program that logs and visualizes books read, adds genre filtering, and supports importing from CSV. Ensure proper datetime handling for visualizations.

Functions & Features

  • Log books with title, author, pages, genre, and date
  • Import book data from a Notion-exported or custom CSV
  • Display reading progress by month
  • Filter and visualize reading stats by genre
  • Prevent duplicate entries using pandas

Requirements / Setup

  • Python 3.7+
  • Install these packages:

pip install pandas matplotlib

Minimal Code Sample

df = pd.read_csv(FILE_NAME)

df[‘Date Finished’] = pd.to_datetime(df[‘Date Finished’], errors=’coerce’)

df[‘Month’] = df[‘Date Finished’].dt.to_period(‘M’)

monthly_pages = df.groupby(‘Month’)[‘Pages’].sum()

monthly_pages.plot(kind=’bar’)

This reads your log, groups it by month, and shows how many pages you read each month.

Book Tracker App

Notes / Lessons Learned

A project like this isn’t just about writing code—it’s about designing your data. Today, I realized that if I want to categorize my books properly, I need to structure the genre field more carefully. “Science Fiction” could mean a dystopian classic or a wild space opera. So I’m thinking of building a two-level genre system: a broad Category for reporting (like Fiction or Memoir) and a Detailed Genre for personal insights (like Time Travel Romance or Existential Cyberpunk). This kind of structure is what we use in BI dashboards at work—it keeps the data tidy while allowing for nuance.

I also made peace with PowerShell today. The mysterious failure to activate my virtual environment? Yeah… I typed .env instead of .venv. It took three days, multiple Google searches, and a small existential crisis to realize I was chasing a typo. But hey, I’ll never forget it again.

Optional Ideas for Expansion

  • Create a two-tier genre system (Category + Subgenre)
  • Add a reading speed calculator (pages per day) based on start/end dates
  • Build a tag cloud of favorite authors or keywords

Graphing My Way Through the Library With A Book Tracker App

Day 41 of 100 Days Coding Challenge: Python

Book Tracker Program (Day 41 – Day54)

I moved on from absolute-beginner apps to something a little more demanding. Over the past two weeks, most of what I built wasn’t flashy—it was practical. These small apps were about learning the exact functions I actually need.

The file organizer, for example, solves a very real problem: keeping files consistently formatted instead of turning my folders into abstract art. The PDF merger came from pure necessity. My scanner insists on scanning one page at a time, and finding a decent free merger online—one that doesn’t ask me to upload tax documents to the internet gods—turned out to be surprisingly difficult.

That’s when it clicked. With Python—and a bit of help from AI—I can build these functions myself. No subscriptions, no privacy risks, no compromises. So I decided to aim slightly higher and work on an app connected to something I genuinely care about. For my first “real” project, I chose a Book Tracker Program—because if I’m going to code for hours, it might as well involve books.

Introduction

I love reading. My idea of a good time is curling up with a 1,000-page fantasy epic and thinking, Yes, this is how I’ll spend the next two weeks. Naturally, the data nerd in me can’t resist tracking my progress. I’ve used everything from Excel spreadsheets to a system I call “Analog Notion” (also known as a notebook) to log my reads. But now I want more—stats, graphs, the whole dashboard treatment. I’ve seen those beautiful book journals online with charts showing how many pages were devoured each month, and I thought, “Why not me?” Today’s project is a humble beginning: a simple book tracker App in Python. It’s nowhere near as pretty as those Instagram-worthy bullet journals, but it’s a start. And hey, if Brandon Sanderson can write 400,000 words in a single book, I can write a few lines of code to track it.

Today’s Motivation / Challenge

Every January, I wonder how many books I actually read last year, and how many times I reread Mistborn instead of trying something new. This little tool is my attempt to turn that curiosity into data—and maybe guilt myself into broadening my literary horizons. Also, it’s a good excuse to code something that feels both nerdy and delightfully personal.

Purpose of the Code (Object)

This script lets you log the books you’ve finished, track how many pages you’ve read, and generate a basic bar chart showing your monthly reading habits. It’s not fancy yet, but it turns your pile of finished books into pretty bars on a graph—which is basically visual applause.

AI Prompt:

Write a Python script that logs books read (title, author, pages, and date finished), stores them in a CSV file, and displays a monthly bar graph of pages read using pandas and matplotlib.

Functions & Features

  • Add a finished book to your reading log
  • View your full list of logged books
  • Display a graph of how many pages you read per month

Requirements / Setup

pip install pandas matplotlib

Python 3.7+ is recommended (though any recent version should work).

Minimal Code Sample

df[‘Month’] = df[‘Date Finished’].dt.to_period(‘M’)

monthly_stats = df.groupby(‘Month’)[‘Pages’].sum()

monthly_stats.plot(kind=’bar’)

This groups books by month and creates a bar chart of pages read.

Book Tracker

Notes / Lessons Learned

Let me tell you the saga of activating a virtual environment in PowerShell. It started, as all good tales do, with an error message claiming the activation script didn’t exist—even though I was staring right at it. After the usual ritual of Set-ExecutionPolicy RemoteSigned -Scope CurrentUser, and trying the exact same command three times, it suddenly worked. I have no explanation. It was like summoning a reluctant ghost. Once I got the environment running, I entered four books from my holiday reading binge (December 23 – January 1). Manually. One by one. It’s not glamorous. The graph? Let’s call it “functional minimalism.” This is a bare-bones tool for now, but it has potential. Someday, I’d love to feed it directly from my Notion log and automate the whole thing. Until then, I type.

Optional Ideas for Expansion

  • Import book data automatically from a Notion export or CSV
  • Add genre filters to visualize trends (e.g., “Too much fantasy?”)
  • Track time spent reading, not just pages

When Nashville Freezes and Productivity Moves Indoors

Brian’s fitness journal after a brain stroke

Tragically, today is 30 degrees colder than yesterday, which was already rude. That puts us squarely in literally freezing territory. My wife reported that it was 11°F when she went out for her morning workout—casually, as if that’s a normal thing to say.

She wore her legendary winter ski jacket from Canada. It’s over 30 years old and still looks brand new. At this point, I’m convinced it’s immortal.

Nashville, for context, is in the southern United States. We are not in Minnesota or in Texas.. We live in the awkward middle zone where winters usually aren’t this aggressive and summers don’t actively try to kill you. I honestly don’t remember it being this cold before.

My wife, however, treats temperature like background noise. Hot, cold—it’s all just “weather.” Her routine does not bend. She’s deeply influenced by Stoicism and admires Marcus Aurelius. While she doesn’t take Meditations as literal doctrine, she lives the spirit of it remarkably well. Marcus Aurelius: philosopher king, cold-weather champion, probably would have approved of that jacket.

Fortunately, I had no outside activities planned today. Instead, I redirected my energy toward indoor productivity—specifically, tidying up.

I still had boxes and random packaging debris left over from assembling the stretching machine, and I needed to find a sensible permanent spot for it in my room. Equipment without a home is just clutter waiting to become emotional.

Meanwhile, my wife has been on a house-cleaning streak. She also has two broken former desk chairs in her room that she’s asked me to dismantle and dispose of. She briefly entertained the idea of fixing and reselling them after seeing someone do that online—but the person who could help is booked for months. The chairs, meanwhile, are occupying valuable mental space.

So the verdict was clear: let them go.

My wife strongly dislikes having too many things in the house. She says clutter makes it harder to focus—and worse, it encourages buying even more things. This is, unfortunately, correct.

So today’s plan is simple and achievable:
  • Disassemble and remove one broken chair today
  • Deal with the second one next weekend

Progress without burnout. Stoic, even.

When the weather is this cold, staying inside isn’t laziness—it’s strategy. And if that strategy results in fewer boxes, fewer broken chairs, and a calmer space, then honestly, winter can stay mad outside.

Pie Charts and Poor Spending Habits: A Colorful Confession

Day 40 of 100 Days Coding Challenge: Python

I’ve been tracking my personal expenses in Excel for years—part frugality, part paranoia, and part curiosity about where my coffee budget keeps disappearing. While rows and columns get the job done, they aren’t exactly thrilling.

So, I decided to give my budget a little makeover. I created a Python Expense Tracker App. Over the past couple of days, I’ve been fiddling with matplotlib, playing with lines and bars like a spreadsheet Picasso. Today, I thought, “Why not turn this into a pie chart?”—because nothing says responsible adulting like slicing your expenses into pizza-shaped regret. For this mini project, I spared myself the embarrassment of my actual spending and used a clean, innocent example instead. Baby steps.

Today’s Motivation / Challenge


We all love to believe we’re financially savvy… until we see it in a chart and realize we’ve spent more on takeout than utilities. Visualizing data is like turning on a light in a messy room—you suddenly see everything you were ignoring. Pie charts are a beginner-friendly way to practice working with visualizations, and let’s face it: they’re much easier to interpret than bar charts if you’re half-awake with your morning tea.

Purpose of the Code (Object)


This code creates a pie chart that shows how your expenses are split among categories like rent, groceries, and “miscellaneous,” which is often just code for impulse purchases. It helps turn numbers into visuals so you can actually understand where your money goes—without scrolling through endless rows in a spreadsheet.

AI Prompt: 


Write a Python script that generates a pie chart of personal expenses using matplotlib.

Functions & Features

  • Breaks down expenses into categories.
  • Assigns colors to each slice for easier viewing.
  • Automatically calculates percentages and displays them on the chart.

Requirements / Setup

You’ll need:

pip install matplotlib

Minimal Code Sample

plt.pie(expenses, labels=categories, autopct=’%1.1f%%’)

plt.axis(‘equal’)  # Makes the pie chart look like a circle

This generates the core of your pie chart and ensures it’s not shaped like an egg.

Expense Tracker Pie Chart

Notes / Lessons Learned


The code itself wasn’t hard to wrangle—it’s the file names that got me. I confidently ran my script, only to watch Python stare at me blankly. Turns out I’d named the file incorrectly and had the right environment with the wrong target. It’s like dialing the right number but calling the wrong person. Also, adding more categories is easy, but unless you want all your slices to look the same shade of gray, you’ll need to manage your colors better. Next time, pulling data from a CSV file, like a bank statement, would make the tool far more practical—and possibly more shocking.

Optional Ideas for Expansion

  • Import expense data directly from a CSV file.
  • Add a legend to clarify which color means what (before purple becomes both rent and groceries).
  • Turn it into a simple GUI with category input for non-coders.