Time versus Distance

Earn your pomodoro (tomato)!

I started jogging / running this year, and picked up a guide on training for Triathlons on my way home from an evening run. I skipped to the section on running advice for beginners, and one tip stuck out to me.

Run by time, not by distance. It’s easier to measure how many minutes you’ve run than it is by distance. For example, run 3 minutes, then walk 1 minute. Repeat 3-5 times, then call it a day.

Some days we run better, and some days the legs are just harder to move.

By setting goals by time rather than distance, we can still guarantee we got some jogging in, rather than getting hung up that we didn’t quite run the full mile we intended.

It also happens that my secondhand, 10-year old Garmin Forerunner watch takes many minutes to boot up the distance-tracking/GPS mode. Sometimes I’m halfway through my run by the time it’s booted up! The timer option doesn’t require booting up so I sometimes just go with that. I aim to run about 1 mile each time I go out, but when I measure by time, I don’t get so hung up on whether I met that distance or not. I feel physically good after running and mentally don’t look for reasons to lament that it ‘wasn’t enough’.

I’ve been applying this lately to work, too. There’s something called the Pomodoro Technique where you work in blocks of time, then take a dedicated break (you’ve earned your tomato!), and repeat. Even if the task isn’t completed during the block of time, there was still progress made. I think it’s key to experiment and find what block length keeps you motivated.

Currently, I find 30 minutes of work, then about 10-15 min of break works well. 30 minutes is bite-sized enough that I’m willing to get started, knowing the finish line is in sight. This has helped with self-disciplining my productivity while avoiding becoming burnt out, eyeballs glazed and back aching by the end of the day.

What are ways you make your goals more bite-sized and thus attainable?

Just Write

Tiny turkey-tail-like mushrooms growing on a tree,
Bellevue Botanical Garden parking lot

Have you ever noticed how rare it is to find a personal blog that lasts for several years, with new posts published regularly?

Many a time I have searched a topic on Google which led to a helpful blog post on the topic, say about a grammar rule, a specific restaurant, or exotic fruit. A memorable or funny post will have me browsing the archive to see what else the blog writer has published. Often, if the post is from 2005 or 2015, there will be no more posts after a year or two. I guess it’s hard to keep up a blog. It’s natural to get distracted or lose interest in maintaining it.

I recently came across one blog that is, stunningly, updated with a new post *every* day. It’s The Opportunity Machine, written by a wise and funny guy named Johnny Roccia. I first visited his blog on February 23 and saw there were (23) posts on the right-hand panel. What! Could that be right? And lo and behold, I discovered perhaps the most consistent blogger to grace WordPress. His posts are succinct and they don’t necessarily strive to deliver life-changing messages every time. I don’t know what motivates Johnny, but his consistency is admirable and inspiring. I suspect that he writes daily for his own sake rather than trying to satisfy an audience of followers.

In that spirit, I’ll be writing these next few weeks (hopefully months or even years) about different things that are floating through my mind. They may not appear to have a consistent theme, but that will naturally come as I figure out what topics are enjoyable to blog about. Thank you for reading, and welcome to Nest Cafe!

Field of Innovations

The textbook for my AP Environment Science class was dense with small print, depressing statistics, and heavy cynicism. It was critical of humans, citing overpopulation and human behavior as causes for environmental problems. It made the reader (as a human) feel guilty for existing!

Some of the environmental topics have stayed with me many years after collecting sample water from the wetlands to measure dissolved oxygen levels, or memorizing the top 10 countries’ annual CO2 emissions. I am increasingly reminded of them while also fiercely wanting to believe in hope for the future of our physical environment, and that people are doing something about it.

I started researching areas in agriculture/food production where innovations are being developed to improve farming practices and reduce the harmful impact on the land, air, water, and human health. Here are a few that were new to me and exciting to discover — I hope you learn something new, too.

Precision Farming – Professor George Vellidis works with graduate student Anna Orfanou on checking the circuit board of a University of Georgia Smart Sensor Array node. (Photo by Andrew Davis Tucker)
  1. Precision Farming (Precision Agriculture)
    Source: https://gca.org/this-is-how-farmers-are-using-satellites-to-enhance-adaptation-2/
    Area: Agriculture and Technology
    Who: Private companies and start ups, farmers
    What: Using tech tools like GPS, ArcGIS, satellites, drones and sensors to better understand land and improve efficiency (use less fertilizer, better-tailored irrigation, use algorithms to optimize crop yield based on soil quality).
    Current challenges: “Poor internet coverage, inability to afford the set-up costs of apps and services, and a lack of technological know-how among farm workers have all been cited as barriers to uptake. This will be even more of a challenge in the developing world.”
    Example companies: Ag Big-Data Firms, such as True Harvest, Discovery by Farmlink, and many examples listed starting at 2:07 in this video: https://www.youtube.com/watch?v=581Kx8wzTMc
  2. Climate-smart Farming
    Source: https://gca.org/how-climate-smart-farming-is-bringing-jobs-back-to-nepal/
    Area: Agriculture
    Who: Government, smaller farmers
    What: Uses “simple” (less high tech than precision farming) solutions that work with current climate conditions to improve farming. For example, Nepal has a monsoon season which means there is sometimes very heavy rainfall that washes away crops. Provide subsidized tanks to farmers which can capture rainfall and distribute irrigation water. Or, set up plastic ‘tunnels’ to cover tomato plants and protect from blight. Provide drought-tolerant seeds and hybrid goats that are hardy to the environment. Educate village farmers on soil mulching, rainwater harvesting.

  3. Vegan Farm Transitioning
    Source: https://gca.org/how-making-the-switch-to-plant-based-milks-can-support-farmers-and-ease-water-scarcity/
    Area: Agriculture, Ethics – Veganism
    Who: Private companies, not-too-small farms
    What: Help farmers in struggling traditional industries like cow milk production (milk value has been falling) to set up fields for plant-based milks like oat milk, which have been rising in demand and value. Some farmers dedicate 1/4 of their land to plant-based milks while maintaining their dairy-cow business. Some brands like Elmhurst completely transformed to producing plant-based products.
    Example Companies: Hood, Elmhurst, Oatly, Planet Oat, Miyoko’s Creamery

    Impact: Much less land, water, and emissions are used to produce each cup of plant-based milk than cow milk. In order for a dairy cow to produce milk, the cow must be pregnant and give birth (usually then separated from her calf) for her entire milk-producing life. To me, this is deeply concerning as the cow suffers an exhausting life just for the utility and pleasure of humans. This fate would not be acceptable for a human mother, so I do not believe it is just to impose this on any animal mother.

  4. Technology and scientific innovations to improve plant-based milk taste & shelf life, and lower cost
    Source: https://elmhurst1925.com/blogs/news/benefits-of-shelf-stable-plant-milk
    Area: Food Processing Technology, Ethics – Veganism
    Who: Private companies
    What: Innovations that help improve the flavor, creaminess, and durability of plant-based milks.
    Impact: This will bring more consumers into the plant-based milk world as products become tastier and (I hope) eventually cheaper than their dairy-milk options.
    Examples: Elmhurst’s HydroRelease (TM) to preserve nutrients and flavor without gums and thickeners, Aseptic packaging (packing milk in air-less vacuums, so milks last for months when unopened and not refrigerated in their cartons)

  5. Increasing Accessibility: Getting cafés to carry more vegan milks without costing extra
    No source here – just an idea budding in my mind.
    I’ve long been bothered by the $0.50 surcharge for requesting soy milk in my cappuccino. I don’t think the business is paying 50 cents more per foamed soy milk cup than for 2% milk. It feels like the consumer is being punished for choosing a healthier option, and I’m sure this deters many customers from even considering a plant-based milk option in their drink.

    When I lived in Peru, finding a cafe that even offered a plant-based milk option was rare to behold. And that’s how it used to be elsewhere, including the United States — at first, cafes and grocery stores didn’t carry them, and when they started, they had premium cost.

    Eventually, I hope that the supply and demand of plant-based milks will rise so that they are readily available and do not cost extra, as the cost of producing cow’s milk (raising the cow) is higher than growing a plot of soybeans or oats.
©MIZINA – STOCK.ADOBE.COM

Most Eruptions

That’s right, eruptions, not interruptions. We’re talking volcanoes here.

This week’s TidyTuesday theme for R Programming data analysis was on volcanoes, and volcanic eruptions. Data was provided by the Smithsonian Institute.

  • Did you know all known volcanoes in the world have an official “Volcano Number”?
  • Did you know that not all volcanic eruptions are confirmed?

For example, since 2000 there have been 794 recorded eruptions, but of these 79 are unconfirmed (about 10%). That’s pretty surprising considering these recently occurred. Perhaps they occurred in very remote regions (like on an unpopulated island in the middle of the Pacific Ocean), or there was dispute if some volcanic activity was considered an “eruption” or not.

Which do you think are the top three countries with confirmed volcanic eruptions since 2000?

Japan came to my mind, but I wasn’t sure about the rest. Maybe Chile or Argentina…

it turns out, Indonesia (30), Japan (15), USA (14) have had the most confirmed eruptions recently!

The top recent “eruptors” bear very interesting names, like:

  1. Piton de la Fournaise
  2. San Cristobal
  3. Klyuchevsky
  1. Chikurachki

Some of these have erupted 22 times in the past 20 years!

You can check out my volcano github post to see more curiosities I analyzed and the actual R programming code I used. I got to learn & practice using some new functions from the dplyr package like:

inner_join(), which combines columns from both datasets in the result
semi_join(), which shows only columns from the first specified dataset
anti_join(), which keeps only the first dataset’s columns like in semi_join() but feels more rebellious to use

I found this dplyr site helpful in helping me figure out how to use these functions and see which ones fit my analysis needs.

At first, I was bummed that the topic was on “Volcanoes” after a fun whirl on Animal Crossing. However, this analysis turned out to be fun and the time quickly erupted by!

TidyTuesday Tidbits from Animal Crossing

There is a popular video game captivating folks at home these days called “Animal Crossing”. When I first heard this, I imagined animals crossing a road to get to the other side, like the old game Frog Xing or Frogger. Alas, the game has nothing to do with crossing busy traffic roads!

“Animal Crossing” is a Japanese game whose original title (Doubutsu No Mori どうぶつの森) translates to something more like “Animal Forest”. From what I gather, it’s a SIMs-like game where you build up an island, interacting with both virtual (in-game) and real characters (actual people). My friend was totally unfazed when I showed her a picture of fish whose face only a mother could love (aka a Sculpin) because she’d grown accustomed to catching valuable tarantulas by night and selling them by day for the game. A rather strange-sounding way to make money…

Every Tuesday, some wonderful people share an interesting data set that becomes a source of data analysis. It’s a great way to practice “data wrangling” – that is, filtering, cleaning, and taking care of problematic data in a quest to tame it, understand it, and find some interesting insights. It’s called #TidyTuesday and comes with a fresh dataset, background information, and article that makes use of the data. This past Tuesday the data just so happened to pertain to Animal Crossing!

The “Tidy” aspect of “TidyTuesday” refers to ‘cleaning’ or ‘tidying’ the data. In R Programming, there’s a package called the “Tidyverse” that comes with many tools and enhanced functions great for tidying data. Why on Tuesday? I’m not sure, but it does add a spark of excitement to this day of the week for me. #TidyFriday or #TidyThursday wouldn’t sound bad, either.

This week’s Animal Crossing data included stats on all of the villagers (computer characters) on the island and items that can be bought/sold. There’s a plethora of information on each, like a villager’s personality type, birthday, and theme song! I decided to practice my R data wrangling skills while answering curiosities that popped into my mind as I examined this data.

(Check out my github site for the full analysis & R code, which I’ll update every Tuesday as I’m able!)

Items Analysis

# Analysis 1: Which items can be bought with ‘miles’ and then sold for bells?
# Answer: 19 “Nook Inc” items from the Nook Miles System. Not the e-reader Nook, from the Tanuki character Tom Nook.

items_miles % filter(buy_currency == "miles" & sell_currency == "bells")
view(items_miles)

# Analysis 2: Which ‘items’ give the highest profit (sell minus buy value)?
# Answer: None. All items have a sell_value < buy_value.
I guess you can’t sell things for more than you bought them for…

# Analysis 3: Which items have a greatest difference between buy and sell value?
# Answer: Royal Crown, Crown, Gold Armor, Golden Casket (?!?), Grand Piano

items_bells % filter(buy_currency == "bells" & sell_currency == "bells")
items_bells %>% filter(sell_value > buy_value)
# Create value difference column and add to items_bells table
value_dif <- items_bells$buy_value - items_bells$sell_value items_bells$value_dif % top_n(wt = value_dif, n = 5) # Done!! Expand Console width to view last col. The trick was to create the value_dif in a new column and add it to the table. top_n(items_bells %>% filter(buy_value > sell_value), n = 5)

My question is…is a Golden Casket really what I think it is? Who would use this?? (I can only think of one person, who is rumored to have a golden toilet).

…oh! It’s real! (The casket is in the lower left corner, I believe.)

Golden Casket 1

# Analysis 4: Which category of items is the most expensive?
# Furniture, Hats, Bugs
# Cheapest: Flowers, Fruit, Photos, Socks, Tools

items_bells %>%
group_by(category) %>%
dplyr::summarize_at(vars(buy_value, sell_value), funs(mean(., na.rm = TRUE)))

Villagers Analysis

# Analysis 5: Are there more male or female characters?
# Answer: 187 Females, 204 males! Slightly more males!
# count() does group_by() + tally() https://dplyr.tidyverse.org/reference/tally.html
villagers %>%
count(gender)

# Analysis 6: Which Personality Types are the most common?
# Answer: Lazy, Normal, Cranky/Jock/Snooty, Peppy

# Analysis 6b:Are there any personality types with only 1 character?
# Nope! But the least common type is ‘uchi’ (a translation of “sisterly/big sister” in Japanese).

villagers %>%
count(personality) %>%
arrange(desc(n))

Uchi

To be honest…Agnes the black pig scares me…

# Analysis 7: Who has their own song?
# Four special villagers have their own song: Angus, Diva, Gwen, and Zell.

villagers %>%
add_count(song) %>%
filter(n == 1)

# Analysis 8: Who has a birthday today (5/6)?
# Answer: Tank the Rhino! He looks cuter than I imagined from his name.

villagers %>%
filter(birthday == "5-6")

Tank Rhino

Mandela on Liberating the Oppressor

I walk around my neighborhood every day, and like discovering Little Free Libraries. These little nooks and crannies are packed with books donated by any passerby, and it’s always a surprise what you’ll find!

Littlefreelibrary

I picked up a book called “The Best of Personal Excellence (Volume 2)” edited by Ken Shelton. It’s anthology of 2-page excerpts from well-known figures, entrepreneurs and life coaches. The cover design and font looks a bit dated, and was published in 1999. But on the top of the contributing authors list was “Nelson Mandela”, so I was intrigued. I know little about this great man, and the little I know is mainly through Trevor Noah — not exactly the most professional source, but a valid one nonetheless.


The Best of Personal Excellence (Magazine of Life Enrichment) (Volume 2)

There are about 20 authors listed on the cover. Nelson Mandela appears first, but his excerpt is embedded later. I didn’t look up what page and let it come as a surprise. Lo and behold, when it appeared, it certainly delivered!

“During those long and lonely years, my hunger for the freedom of my own people became a hunger for the freedom of all people.

The oppressor must be liberated just as surely as the oppressed. A man who takes away another’s freedom is a prisoner of hatred; he is locked behind the bars of prejudice and narrow-mindedness. The oppressed and the oppressor alike are robbed of their humanity.”

(This excerpt, from “The Best of Personal Excellence” volume 2, is originally from Mandela’s book Long Walk to Freedom.)

When I hold a grudge against someone, I have a hard time focusing or sleeping well because the negative thoughts and feelings eat me up. I want to forgive sincerely, so I harbor this grudge longer. This often leads to extended suffering, however. The oppressor is shackled too, in a different way than the oppressed but still severely.

Though hard, I am learning how important it is to forgive more easily. This liberates both the oppressor and the oppressed.

The Lines and Dots that Make Us

This post title plays on Nathan Vass’s book, but doesn’t have to do with Seattle bus transportation!

I’ve been studying how to use R programming for data analysis. We learned about the “geometry” layer of creating graphs using a neat function called ggplot(), from the ggplot2 package. (In case you wondered like me, ‘gg’ stands for Grammar of Graphics, which is a book written about data visualization. Nothing to do with Gigi’s nor gee’s). Compared to using graphing functions like matplot() (“matrix plot”) that come standard in “base R”, graphing tools from packages created by others tend to take care of a lot of details that would be cumbersome to set manually.

We took a set of 562 American movies spanning many genres from 2007-2011, their Rotten Tomatoes ratings (from critics and public audience) and budget in dollars. The following shows how Critic versus Audience ratings compared, by genre (color) and budget (line thickness & dot size, millions of dollars).

Movies lines dots
ggplot: Critic vs Audience Movie Ratings, by genre and budget, 2007-2011. Created using R programming.

Isn’t this graph crazy? Like rainbow paint was splashed everywhere. This left me wondering what is the point of having a graph with lines overlaid above dots like this? It’s hard to distinguish between line strokes and dots, not to mention its not at all necessary to ‘connect the dots’ with geom_line’s.

That’s when I started creating a different graph. I have this banana plant that is unfurling long, luscious green leaves, each one bigger than the next. I counted each leaf (number 1 being the first/oldest, and smallest leaf), and measured the length in centimeters. Ultimately I’d like to create a predictive model (comparing regression versus machine learning) to forecast how long the next leaf will be. Anyways, seeing this graph, this is a case where having lines and dots isn’t so chaotic, and actually aesthetically makes sense.

Banano Line and Dots
Banana plant leaf length. Created using R programming.

The lesson here is that combining both geometric points and lines – geom_line() + geom_point() is better suited when:

  • Dots and their connecting lines are distinct colors
  • Lines are not so thick that the dots are hard to distinguish
  • Generally speaking, that it makes sense to have a reason to draw lines (to emphasize trends, for example).

None of these were the case with the movies graph – so while it may be worthy of being displayed in an art museum, the simpler Banana Growth graph makes a much better use of ggplot geometric dots and lines.

Words from the Cafe: Bang Nguyen

I’ve been reading an anthology of short stories & poems from Seattle’s Recovery Cafe writing program. One of the authors is a Vietnamese refugee who came to Seattle when he was 4 years old. His poignant prose and themes struck me, particular in this passage:

Bang Nguyen

“Not My Brother”, from Another American Dream

We started out the same. Born in the same coastal city in Vietnam,
the sons of sisters from our mothers’ side. Refugees on the same boat
in the same graduating class, got jobs,
and began climbing the corporate ladder.

We were more like brothers than cousins.

But somehow, I couldn’t keep climbing.
It seemed the higher I climbed the more the burden
of guilt weighted on me for my executive decisions.
Did I say execute?
I felt like a financial hit man. A corporate bankster.
Everything started to look slick on me.
Slick hair. Slick suits. Slick style.
I was fast becoming a corporate burnout,
my business life an infamous two pots of coffee morning,
two martini lunch, and way more than two hours of happy hour
each and every day.

I got caught in a rung, and fell off the corporate ladder.

Unlike me, Cousin showed no sign of cracking…

This passage transports me back to when I used to do consulting, donning pressed shirts and slacks, corporate badge on retractable clip on my right belt-loop, neat rows of office desks and computers, directors taking out their anger on their managers, managers onto their senior associates, and eventually associates onto the innocent taxi drivers, hotel staff, cafe barista, or whomever else they could shed off some stress. It was a hard world of great pay but great stress that often didn’t make sense. I didn’t climb high onto this ladder, but I didn’t like the cynical person I was becoming. I eventually decided to climb off the rungs and restore myself in a different lifestyle in Peru.

The book is called “Words from the Cafe: An Anthology”. Bang Nguyen and the other authors come from myriad walks of life, but their stories all touch the heart deeply from their life events and wisdom.

Words From the Cafe: An Anthology

Macadamia & Sesame Coffee

Today at Grocery Outlet (Crown Hill, Seattle), I discovered two interesting accompaniments to duet with coffee:

1. Milkadamia brand’s Macadamia nut Coffee Creamer, “Fudge Flavor”

This creamer pours out with thick, rich cocoa promises. I mixed it with coffee and some sesame milk and it has a nice mocha flavor.

The first (and only) coffee creamer I’ve tried was Trader Joe’s Soy Creamer. This is a sweet creamer with lots of vegetable oils whipped in so that it gives coffee a nice, full (fatty) body like dairy creamer. I’ve been curious about trying other plant-based creamers for a while and for $1.99 (16 fl oz or 0.47L, this was worth trying! Note that this is not sweet so you can control the sweetness level by adding sugar to your liking.

2. Hope & Sesame Organic Sesame Milk, Original Flavor

I enjoy trying out plant-based milks, and have tried & made many including Soy, Oat, Hemp, Almond, Cashew, Pecan, Walnut, Rice, and Quinoa. However, Sesame milk was a new find! Hope Sesame Milk is made from a combination of Sesame and Pea protein (so it’s not purely sesame + water). I’m a big fan of sesame seeds, oil and tahini so was curious how this would taste.

The sesame milk has a strong, nutty flavor and a fine but discernible grainy texture. It’s sort of like oat milk, but the grains are suspended throughout the milk and don’t seem to collect/fall to the bottom. Honestly I wouldn’t know it was made of sesame in a blind taste-test.

It’s much thicker and richer than rice milk. The “Original” version has a distinct flavor, sort of like vanilla.

I’d recommend this sesame milk for the daring, but don’t expect a strong toasted-sesame flavor! This was also $1.99 at Grocery Outlet (Crown Hill) for a 1L carton.

Box and Whiskers

Remember ‘box and whisker’ plots? Along the same vein as ‘stem and leaf’, these are a type of plot learned in school to show the distribution or spread of data, but I’d be stunned if you, dear reader, have actually made use of these outside of math class. Please comment if you have had the honor!

I’ve done a number of statistical analyses for school and tutoring, but I’ve yet to encounter a situation where a good old box and whisker rises as the best contender to display data.

Nonetheless, I learned to make one by coding in R today.
We’re working with a set of data showing the popularity of google-searching the term “entrepreneur” by state. The data has been standardized so that a state with an ‘entrepreneur’ value of 0 is at the mean; a positive value means ‘entrepreneur’ was googled relatively more than average. A negative value means that ‘entrepreneur’ was googled relatively less than average.

Out of the box, the boxplot() function is quite bare.

05_02 Out of the Box Boxplot
Out of the Box boxplot()

No titles, no labels! Those are premium services!
Curiously, the outlier ‘circle’ on the right, around 2.55, is actually TWO data points but they overlap and appear as one. I discovered this only upon summoning some descriptive statistics in the console viewer using:

boxplot.stats(df$entrepreneur)

So, let’s:
– Label the descriptive statistics (min, max, quartiles) and outlier
– Make the labels a fun color while at it


# Boxplot with Quartile Labels

boxplot(df$entrepreneur,
notch = F, horizontal = T,
main = “Distribution of Googling ‘Entrepreneur’ by State”,
xlab = “Standard Deviations”)

text(x = fivenum(df$entrepreneur),
labels = fivenum(df$entrepreneur),
y = 1.25,
col = “#990066”)

05_02 Boxplot Googling Entrepreneur by State and Color Quartile Labels

Concluding here, and next steps:
– It looks like the fivenum() five number summary considers the outliers as the max, so the max whisker is not labelled.
– I’d like to label the outlier with the State Abbreviations (any guesses?)

Thanks for reading!

* The outliers are DE and UT! Surprised?