Discipline = Freedom

From LeBron James, “Routine and Ritual”, Train Your Mind Vol. II series on Calm.com

Ever since that time with the Walker family, I’ve always carried it with me. The desire for a routine. It’s one of the pillars of my success.

Everything in my life is planned and scheduled. I’m talking meals, meeting, workouts, naps, snacks…everything.

Two hours naps in the afternoon: planned.
Half time snack: planned.
Protein shake after the game: planned.
And I’ve got that playlist on repeat day in and day out.

It’s not what you do once or twice, it’s what you do every day.

It’s not just effort, it’s effort multiplied by consistency…year after year…that’s when I start to see my full potential.

I’ve got hectic days, flight delays…the key is to create that routine for yourself, based on what’s important to you. Based on what helps you connect and get locked in.

One of the most powerful things I can do with my time is to plan my time. Put what’s most important on my schedule and defend it. Slip into the groove of a routine and ride it. And when there’s a crisis you need to take care of, you can manage it. Or…You can say no with confidence.

Effort multiplied by consistency.

It’s discipline, not desire, that determines your destiny.

LeBron James

This is what’s keeping me going and grounded this year. 7 week streak of studying and practicing Python programming 4+ days a week, and we’re 7 full weeks into 2023. Running 2+ times a week, every week, to work my way up towards my first half marathon later this year. IT band issues be damned, I’ll do whatever physical therapy and training it takes to take care of my body and work it towards that goal. Going to bed earlier, waking up earlier so that I get my morning coding time in before anything else pulls at my attention. Saving a part of every paycheck and socking it away into retirement accounts for future, wrinkly me to live a relaxed and happy life.

Discipline and Consistency = Freedom.

Homestead Gingerbread

Here’s a recipe for a less-sweet gingerbread with bare-bones spices and minimal dishes to wash. Add whatever nuts, chocolate chips, or fruit toppings you fancy.
I’ve tried: Cranberries studded on top, chopped walnuts, peanuts (strong flavor; walnuts are better), and chocolate chips.
I didn’t include allspice or nutmeg, typically in gingerbread recipes, as I don’t find those necessary.

Yield: About 8 slices, from a 9-inch round pan


  • 200g flour (all-purpose or whole wheat OK)
  • 1 teaspoon baking soda
  • 1/2 teaspoon salt
  • 2.5 teaspoon ground ginger (add more if you like spicy)
  • 1 teaspoon ground cinnamon
  • half stick (or 55g) unsalted butter, melted
  • 55g sugar
  • 120mL molasses, dark unsulfured
  • 160mL boiling water
  • 2 eggs
  • Toppings: chocolate chips, chopped walnuts, fruit


Mix Sweet + Wet ingredients First, then add in Dry.

  1. Pour 55g sugar and 120mL molasses into mixing boil.
  2. Boil water
  3. Melt butter in a microwave-safe cup for about 20 seconds
  4. Pour butter into mixing boil, then pour boiling water into the cup to clean it out.
  5. Whisk items in bowl. When warm (cooled down), add eggs and whisk.
  6. Whisk 200g flour, 1 teasp baking soda, 1/2 teasp salt, 2.5 teasp ginger, 1 teasp cinnamon into the wet ingredients.
  7. Add semi-sweet chocolate chips and any toppings. Whisk till combined, no lumps.
  8. Bake at 350’F for 25-30 minutes.

About Me & Nest Café

About this site:

Welcome to Nest Café ~ Café Nido, where I share about my life of homesteading and learning data analysis/coding. Different aspects forge who I am. I’m happy to share my thoughts with you through this blog, as if we were enjoying conversation at a favorite café.

About me:

Korean Chicken Tender.
Small Farmer.
Efficient Optimizer.
Data Analyzer and Presenter.
Bridge-Builder between technical concepts and non-technical audiences.
Logic Lover.
Language Learner.
Nature Observer.

Awaken the bread machine!

Last year, I received a bread machine from a neighbor who had previously received it from another neighbor. It sat unused for years at her home so she passed it on. Alas, the tradition continued as it sat on my shelf for many months, yearning for yeast and flour.

I resolved that 2023 was going to be different. I would awaken this bread machine from its deep slumber.

Also, I jogged with a friend along the lake, and we chatted about schmalzkuchen (German beignets), sourdough, and this bread machine. Thank you to this friend for sharing the joy of running and making bread!

Here is a 1 pound loaf, which is the smallest size possible with this machine. The machine kneaded away my fears with its automatic mixing, gentle heat application as the dough rose (proofing), and finally the actual baking. It took 2.5 hours from start to finish with very little hands on and cleaning effort. This cube loaf is chewy and tastes like normal bread! The crust is a little tougher through than store-bought loaves, but I will eventually figure out how to amend this. The yield is a perfect amount for me to enjoy in one week, 1 to 2 half slices per day as part of breakfast or a snack with vegan butter and homemade invasive blackberry jam.

Also: The proofed dough is an exquisite texture that I highly recommend patting. Far better than a baby’s bum!

I was curious…
How much did this 1 pound loaf of homemade bread cost?

IngredientGrams in packageCost of packageCost/gramGrams in loafCost for loaf
Water240g (1 cup)$00240g$0
Olive Oil (organic)1832$15.99$0.00872828g$0.24
(organic, raw)
All-Purpose Flour
(organic, 5 lb bag)
Active Yeast (2 lb)908$7.49$0.0082494.2g
1.5 teaspoons
Sunflower Seeds, Toasted, Unsalted, Shelled454$2.99$0.00658660g$0.40
1 Loaf Total670.2g
(about 1 lb)
Note: All ingredients were from Costco except for the flour (Grocery Outlet) and Sunflower Seeds (Trader Joe’s).

So I made 1 week’s worth of organic bread for just 147 cents! Definitely a tasty and inexpensively repeatable activity. Next time I will mix sunflower seeds into the dough (I love seed-rich, “bird food” bread) and maybe use a third or half whole wheat flour for more nuttiness.

*Update February 19, 2023*
I’ve now made this recipe 4 times. By happy accident, I discovered that doubling the honey from 15g to 30g somehow produced a softer, chewier bread (did not dry out as quickly) without noticeable sweetness. I also add 60g of sunflower seeds which gets mixed into the dough and gives nice texture. Trader Joe’s has the best value on these. The final bread weight is lighter than adding all the raw ingredients due to water evaporating as it bakes.

If you have a bread machine, you can follow the Ingredient + Grams in Loaf columns to get the recipe. I poured the ingredients in this order (top to bottom) in the Breadman Plus machine.

Curtain Hemmer

If you asked me who am I, as in my role, title or vocation, I would tell you:

My name is Michu, Chicken Tender and a Hemmer.

I recently went to a sewing class at Cultivate South Park (an art studio above Resistencia Coffee) and the teacher, Emily, helped me remember how to use a sewing machine. I had once learned over 4 years ago. I emerged from the first class with a pair of hemmed hiking pants. After the second class I could confidently wind a bobbin and had repaired a shopping bag with button thread, now ready for another thousand grocery hauls.

There are miscellaneous projects at my home that require the precision, speed, and secure stitching of a sewing machine and not hand-sewing. One of these is a pair of curtains. They drape lightly against the floor and have visibly rough edges that were pasted with some kind of glue. My first home sewing challenge! This waited a few weeks as I didn’t have any pins. I followed the Uber Frugal Month’s recommendation to wait 72 hours before buying non-necessities…lo and behold, a few weeks later I found a mysterious tomato pin cushion deep in my sewing box. I don’t know how I have this; the pin cushion I remember from 4 years ago are at my parent’s place, and this one is different. Once I discovered this tomato I threaded up the machine, pinned the curtain hem, and pushed the foot pedal.

I’m pleased because the finished curtain hem is barely noticeable. It wouldn’t catch your eye because it looks factory-made. Which for someone with little sewing experience, is a pleasing achievement!

After that second sewing class, I felt ready to have my own machine. I scoured the used marketplace and found one from an alterations store that was closing (congrats to the owner who is retiring to a farming community on Camano Island!). I like that this Brother is mechanical and not digital (less maintenance complications) but still has a sleek and sturdy design.

It feels good to have acquired a machine for the same price I sold mine for 4 years ago.
It feels satisfying to fix things and do little improvements for my cozy home.
It feels right to buy useful, thoughtfully-planned things that are within my means (this was part of my monthly $200 ‘homestead garden’ budget).

Come on over if you have anything that needs a-hemmin’!

Uber Frugal Month Goals

Next month, I’m going to partake in the Frugalwoods Uber Frugal Month. Step 1 is to establish your goals. I’m going to do that here.

  1. Why are you participating in this Challenge?

    I want to learn new ways to be frugal. I want to curb the tug of consumerism, materialism, and shopping which is a vacuous hobby that delivers fleeting bliss. I want to be surrounded by others who are like-minded and feel encouraged and supported by them. I want to learn ways to save money and dedicate it towards what is most meaningful to me. I want to become more attuned and aware of my spending and saving habits and my relationship with money. I want to develop a healthy, peaceful, and happier relationship with money, personal finances, and finances with my family.

  2. What do you hope to achieve?

    I hope to achieve a better understanding of my saving and spending habits so that I understand how much realistically I spend in a month/year. This will give me a sense of how much money I’ll need to live when I retire (early), happily veering off this rat race and living a sustainable, fulfilling, self-sufficient life on a small farm or homestead.

    I also hope to achieve a better relationship with money. It becomes a strained topic when I bring it up with my partner. I want to ask my parents about how they manage their money, but I freeze up and haven’t asked them. I want to grow comfortable talking about money with my partner, my parents, my family and friends without it resulting in hurled insults or harsh feelings.

  3. What are your longterm life goals?

    Where do you want to be in 5 years?
    In 10 years?

    This is the first time I am penning this publicly.
    I want to achieve FIRE (Financially Independent, Retire Early).

    I want to have the option of not working for a company (full time office-work) and that if I choose to, it’s because I enjoy it, not begrudgingly because I need the paycheck.

    I want to have this option while I feel the fire and joy of keeping a productive homestead, which means the sooner, the better.

    Something in me dies when I imagine slaving away in the rat race for another 5 years. (That something is a putrefied rat corpse). I’d like to exit the rat race in 5 years, but it might be more like 10 years (when I’m about 40). I’m pretty confident I can achieve FIRE by age 50. No matter how many years it is, you damn well better bet that I’ll be enjoying the journey. I may have an office job by day but I am also tending the happiest chickens on earth, growing nutritious fruits and veggies, making mulch and vermicompost, building wooden coop structures, and more. No one can tell me a work meeting is more important than these things. My own conviction is firm.

    I want to graduate from Chicken Tender and try other forms of animal husbandry. Raising hens from chick-stage. Raising quail. Raising 2+ kunekune pigs. Possibly pasture-raising and butchering meat-chickens.

    I want to get good at growing my own crops and making good, homemade food so that I do not need to rely on going to a store. It’s late December and I am enjoying frozen cherry tomatoes and canned tomato sauce from my September harvest. I hope to grow and process enough tomatoes each year that I don’t need to buy them from a store (this post’s photo is from a batch of canning tomatoes). Same goes with strawberries, lettuce and mustard greens. There will be more crops I get good at growing and preserving. Even with chicken eggs, I have not had to buy any all year, and I enjoy a 2-egg skillet breakfast most mornings.

    In 5 years, I want to be on my way towards having a 2nd type of animal (my working companions).
    I want to be self-sufficient in tomatoes, berries, and leafy greens.
    I want to have savings towards a possible small farm or rental property.
    I want to be frugal and save money smartly while still enjoying life, without guilt from either.

    In 10 years, I want to be debt-free. I’ll have paid off my house or be on the way.
    I want to be a small farmer, sharing my organic, flavorful eggs and produce with customers.
    It’s possible I may still be working – if so, I want to be happy while at it.
    I will never stop learning. I want to always be learning – whether it’s a programming language, gardening strategy, animal husbandry, ice-skating, a new bike route, or frugal hack. Usually it’s multiple things like this at the same time, because my life is multi-faceted and I don’t hone into 1 sole obsession.

  4. What about your current lifestyle might prevent those goals from happening and what can you do about it?

    My mindset. I am practical, pessimistic, negative. There’s good and bad sides to this.
    Knowing me, my saving nature and practicality would have me financially ready for FIRE in some years. But I may not take the leap (ie leaving job, getting a pig) until I am very sure. And not taking the leap sooner means delaying happiness.

    Currently it’s difficult to talk about money and work things out with my partner. This makes me take on extra burden of paying a larger share of bills, which means less money saved for future pig-tender me. This needs to change, and I believe it gradually will.

    Another hindrance is my fear, timidness, cowardice to ask questions about money to my parents, who have been good financial role models for me. Time to start breaking the ice. Even writing about this on my blog is a form of breaking the ice.

    Unplanned spending is dangerous. Buying items not on the originally grocery shopping list is dangerous. Stick to the shopping list like Sara’s weekly $100 grocery shopping (from the Youtube Channel Matt & Sara). Be disciplined.

    Don’t go thrift shopping for fun without a specific, well-thought out need in mind. If the goal is to shop for fun, then have allocated dollars for just this.

    Finish the food I have. I buy or acquire more food in a week than I can consume. This has been one of the final and harder parts of minimalism for me. “Food minimalism”. This would make me spend less on food and waste less and enjoy more fridge and pantry space.


Compounding Knowledge

It’s been one year since I started studying programming using Codecademy.com. I set out to study 4 to 5 times a week, every week, 1 lesson page at a time. My longest streak on record is 12 weeks in a row. I’ve completed 86% of the Learn Python 3 course (a hefty course that covers programming fundamentals) and finished the Command Line course too (Linux terminal is not so scary anymore!)

I just finished an online project called ‘Fending the Hacker’ where I read and write to CSV and JSON files programmatically with Python. I didn’t realize this till the end, but this project built on prior lesson topics:

  • Functions
  • Loops
  • Lists
  • Dictionaries
  • Modules (JSON, CSV)
  • Files – Programmatic File Reading/Writing

Looking back on what I’m comfortable with now and how much I’ve learned in one year amazes me. I don’t look back much nor often. But I recall a sinking, confused feeling about not understanding loops, when to use a function, and the purpose of lists and dictionaries. Now I can’t imagine doing any Python analysis or mini project without loops and lists at a minimum. I’m comfortable using them, something distinctly different from before.

This shows me the power of bite-sized but consistent practice. Most lesson topics are divided into about a dozen pages, and I do the reading and practice for 1-2 lesson pages each sitting. That’s 10 minutes or less of light and easy studying. I don’t let long stretches of days pass between each sitting. Recently I’ve shifted my Python study time to earlier in the day to ensure I get it done. I feel the power of compounding knowledge and love it. Is this what the power of compounding interest is also like? The journey along the way has actually been fun.

Onward to the next and final lesson of Python 3, Classes!

Test the Truth

The previous post on falsiness (which should be “falseness”, but will continue with the ‘i’ since “Truthiness” is the conceptual term instead of “Truthfulness) has me thinking and steam’s coming out of the engine. I wanted to see for myself these different flavors of False in action, as well as variants of Truthiness.

See the results for yourself running this code in a Python IDE. Experimenting with this made me discover {} is part of the falsiness group, too.

# Values for test: False, 0, None, [], {}

test = []

if test:
    print("True. Condition passed. If statement succeeded.")
else: print("False. Condition did not pass. If statement failed.")
>>> False. Condition did not pass. If statement failed.

test = [1]

if test:
    print("True. Condition passed. If statement succeeded.")
else: print("False. Condition did not pass. If statement failed.")
>>> True. Condition passed. If statement succeeded.

“Falseness”: False, None, 0 and [ ]

Here’s a lesson on “falseness”- that is, whether values are classified as True or False in Python.

I’m working on a Codecademy project (Abruptly Goblins) where there’s a gamer named Kimberly who is available to play on Monday, Tuesday and Friday. There will be other gamers added in later.

Let’s make a dictionary with name and availability as keys.
We’ll also make an empty list called gamers to store valid gamer details.

gamers = []
kimberly = {"name":"Kimberly Chook", "availability": ["Monday", "Tuesday", "Friday"]}

The project instructions say to:
Create a function called add_gamer that takes two parameters: gamer and gamers_list. The function should check that the argument passed to the gamer parameter has both "name" and a "availability" as keys and if so add gamer to gamers_list.

The number of times ‘gamer’ and variants are being tossed around make these instructions confusing as heck! But I plow through. Here’s what I came up with:

def add_gamer(gamer, gamers_list): #gamers_list is the parameter. gamers = [] is what the parameter value will be (argument).
    if gamer.get("name") and gamer.get("availability"): # Access name and avail values if they exist. If any keys not found, returns None.
    else: print("Failure, Gamer doesn't have name or availability")

Notice the if statement here. It seems incomplete to me:
if gamer.get(“name”) and gamer.get(“availability”):

We will be inserting gamer dictionary arguments. If it doesn’t contain “name” or “availability” as a key, the .get() method will return None (because it did not find the key, and thus has no corresponding value).

But there is something weird assumed here. If the gamer argument does contain keys of “name” and “availability”, the if statement is True, so proceed with the function (appending the player’s details to the gamer list).

1. Why do the two .get() statements result in a True / pass go, collect $200?

2. If any of the .get() statements results in a None, why is that a False / do not pass go, do not collect $200?

The answer to #1 is still unknown to me, but I did find out #2 from Stack Overflow:

The expression x or y evaluates to x if x is true, or y if x is false.

Note that “true” and “false” in the above sentence are talking about “truthiness”, not the fixed values True and False. Something that is “true” makes an if statement succeed; something that’s “false” makes it fail. “false” values include False, None, 0 and [] (an empty list).

from Stack Overflow https://stackoverflow.com/questions/3914667/false-or-none-vs-none-or-false

When any .get() statements results in a None, that is of the “False” category in Python so it will not proceed. I tested this out by running:

gamers = []

def add_gamer(gamer, gamers_list):
    if gamer.get("name") and gamer.get("availability"):
    else: print("Failure, Gamer doesn't have name or availability")

kimberly = {"notname":"Kimberly Chook", "availability": ["Monday", "Tuesday", "Friday"]}
print(kimberly.get("name" and gamer.get("avialability")))

>>> None

So when you ask your partner “Did you clean the bathroom yet?” and get no response for an answer (none, nada, nothing), you can interpret that as: status_bathroom_is_clean = False.

Plum Salad + Chicken Tenders

Have you ever tried sliced plums in a salad? The arugula and lettuce greens go surprisingly well with the fruit. Here’s a fresh summer meal I’ve enjoyed these last few evenings:

  • Vegan chicken tenders
  • Trader Joe’s Incredisauce (“great with nuggies!”) and Peri Peri hot sauce
  • Salad: baby greens, balsamic vinaigrette, seeds, 1-2 sliced ripe red plums
  • Optional: Any leftover sides, like elote corn kernels or carrots & hummus

One day I discovered Blanqui (the white hen) eating a fallen plum. I looked up and realized the tree straddling the fence line was laden with ripe plums! This discovery inspired this meal. It also feels appropriate, not ironic, that I enjoy the tenders as a loving tender of happy chickens.