Pages

Thursday, August 1, 2024

Bessie May Pelfrey

Bessie May was my great grandmother, and I never once called her anything other than Granny Pelfrey.  She was the gentlest person I ever met, which blew my mind to find out later in life from Granny Joyce that Bessie May was the only woman she said she ever felt threatened by, because she felt like she thought her mother-in-law believed she wasn't good enough for her son (my Grandpa Mervin).

Bessie May had a soft laugh, the warmest hug, and the greenest thumb.  She would quietly chuckle all day long.  She found humor in every situation and her joy was contagious.  To this day, although I feel I am fairly skilled in the kitchen, my palette is so black pepper heavy that I have to ignore my own taste buds most of the time and trust my recipes for everyone else.  She had a habit of making hamburgers that were practically dredged in black pepper with almost no salt, and it would burn your eyes when she was cooking them; however, those crazy burgers were always complimented by fresh melon, grapes, or something else amazing from her garden. I know she owned more cookware, but I only recall ever seeing her use a cast iron skillet and a small paring knife to make everything.

She smelled like lavender and baby powder.  In an area known for two types of trees, arid plains, and almost no grass, she would always grow her own grapes (sometimes pressing her own wine), multiple types of tomatoes, squash, cucumbers, cantaloupe, and melons.  Honeydew was her personal favorite; although, Grandpa Mervin was a sucker for watermelon hearts.

She kept an immaculate house, and I mean absolutely spotless; however, I don't recall ever seeing her freak out about a spill, dirty child, or mishap.  She would laugh, hug, and smother you with comfort for days.  She used to tell me what a wonderful complexion I had at a time in my life when I was extremely self-conscious and was struggling with self-esteem.  She was sunshine incarnate, and she would drag you up, make you grow, without time to complain or mumble excuses.

She was a simple woman, but also fashionable (at least to my eye).  She always wore a light gray or white dress and would carry a petticoat and hat when she'd go visiting. On ancestry.com, there is a photo of her before she turned 20 and already had silver hair.  I'm not sure if it's why I started getting gray hair in my early twenties and had full silver by 35, but they say you get hair genes from your mother's father.

Her house was otherworldly, with a giant cinderblock fence around the small back yard to protect her garden.  It was the only house I knew of with a giant stone stairwell with solid stone balustrades.  I was always told her husband, Joe, not only built the house, but made that stairwell.  He was the most masculine man I have ever met, and the quietest.  The most amazing thing about him, considering the area and the men in my family and all their friends: I never once heard him cuss, or raise his voice.  He wasn't just civil in front of his wife (which was rare), but he was soft-spoken while possessing the skillset of any other five men and was a huge believer that only actions matter.  Everything else is bragging and reasons why things don't get done.  He was a man who got things done.  They were such a power couple.  He lived to 89 and she tiptoed into 101 years.

In her final days, I visited her in the hospice center where she was staying.  I had not seen her in over a decade, having gone gray, and having put on a lot of weight.  I walked into her room, and she just chuckled, held out her arms and called me by my name, and held her arms out for a hug.  I lost it and ran over.  Halfway there, she even warned me "I have to tell you, my brain says there's a giant pit right there on the floor, but I'm also smart enough to know that's ridiculous. Just in case I'm not crazy, you should walk around the edge of the room."

We hugged, we cried, we laughed, and then talked.  She was magical and if anyone in my life figured out how to stick around and watch over their family, that woman did it.  While I ache for Granny Joyce that leaves me near despair, I miss Granny Pelfrey the same way I miss the way the ocean looked on my wedding day.  I remember her and find comfort and a serenity that grants me so much strength.

Tuesday, July 2, 2024

Logo For a Friend

 Here are some color swatches at 300 DPI for 4"x4" coasters and square business cards.  If anyone else is interested, moo.com has incredible deals and material options for traditional and unique business cards.  I've been using them for years.  Plus, they know what they are doing.  There is no substitute for experience.

1. 

2. 

3. 

4. 

5. 
6.

and my least favorite, but sometimes you have to deal with corporate assholes to pay the bills ->


and my favorite... letterhead for newsletters and formal shit ->



Friday, February 16, 2024

My Tamagoyaki Recipe


Basic Ingredients 

Tamagoyaki Photo1
For a plain, but delicious Japanese omelet:

  • 2 large chicken eggs
  • one teaspoon of dashi
  • one bottle cap of mirin
  • 2 tabs of butter

Basic Hardware

NOTE: A list of exact brands can be found at bottom of page.

  • a frying pan (preferably cast iron, Japanese version of pan is square)
  • a non-metal spatula (the wider the better)
  • a fork
  • a small bowl

Instructions

These should be performed in order, without delay.
  1. Clean your pan surface.  The whole process only works if your pan surface is smooth.
  2. Read all the following instructions before doing anything else.  You have been warned.
  3. Set your pan on a burner at MEDIUM LOW. That's 3 of 10 for most electric stovetops.
  4. While pan comes to temperature (usually takes around 5 minutes to stabilize) combine the eggs, dashi, and mirin in a small bowl.  
  5. Chop the egg mixture against side of bowl with fork to mix.  Thank you, Jacques Pepin.
  6. After pan has achieved temperature, add 1 tab of butter and lift pan off burner.  Roll pan to coat.
  7. If the butter turns brown, your stupid burner is too hot.  Turn it down just a little and think about buying a real stove.
  8. Pour half the egg mixture into the pan and roll the pan to coat consistently. Return to burner.
  9. Watch the egg until there is almost no eggy liquid on top.  It will cook to yellow very quickly.  Do not wait for the entire egg to solidify.  Making tamagoyaki has wiggle room as long as you observe some minor egg liquid.  If the entire thing looks cooked throughout, you have overcooked it.  Try again tomorrow.
  10. Use the wide spatula to release the edges of the omelet, and softly fold in thirds.
  11. Now, scoot the small egg rectangle stack to the back of the pan.
  12. Add the second tab of butter to the open surface, raise pan, and roll to coat.  Professional omelet chefs use a tongue with a buttered paper towel or cloth for this step, but keep egg stack against edge.
  13. Add the second half of the egg mixture to the pan, from one edge to the other side, flowing into the base of the existing tamagoyaki stack.
  14. Watch the egg egg, similar to step 9.  When there is just a little liquid left on the top, fold starting with the existing egg stack in thirds again, snowballing the rectangle into an inch-thick pillow of eggy heaven. 
  15. If your pan has a square edge, park the egg against it for 2 seconds, allowing the liquid that slid out during final fold to encounter the pan and cook prior to serving.
  16. Use your spatula and move final tamagoyaki to plate.  Let it sit for 30 seconds while the omelet's interior solidifies from the heat of all the interior layers.  This is what causes the entire thing to produce: a non-trivial omelet of uniform height, cooked throughout, but without being dry.
  17. Turn off the burner and allow the pan to cool (not on the burner).
  18. Salt and pepper to taste. Give thanks for the blessing you are about to consume. Itadakimasu!
Tamagoyaki Photo2

Fancy Ingredient Options

Always add these after the first phase of egg folding prior to second pour to keep them from destroying the beautiful yellow pillow you worked so hard for.  For easier folding, place them in a line between a boundary of thirds in a very thin layer.
  • Green onions (whites during cooking, and fresh green over the finished product).
  • Shallots (this requires you to get the shallots glassy prior to starting the tamagoyaki).
  • Cheese (cheddar works just fine and produces a nice gooey visual akin to thick hollandaise, but ricotta, and even cottage cheese would be great as a healthier option).
  • Bonito flakes (if you're going there, you may as well go all in).
  • Ham of any kind: thin canadian bacon, country ham, 
  • Hot sauce (for those who don't like heat, Cholula Chili Lime is fantastic on these).
  • Cacique® Crema Mexicana (only 3mg of sodium, adds a richness without making it taste like a giant breakfast burrito).
  • Cilantro (duh)
  • Diced tomatoes.  I create a layer from thinly sliced Campari tomatoes akin to a tart.
  • Nori.  This one is delicious BUT be sure to add it while the egg is still liquid, otherwise the nori will not have enough moisture to fold.  Also, don't use too much.  Enough to cover two thirds of a single egg phase will more than suffice.
  • Sambal Oelek (oh heck yeah, bring on the heat)

Non-obvious Ingredients to be Used in the Future

Tamagoyaki Photo3
These are listed alphabetically to avoid bias (and probably should not be combined, except the plantains and mole... that would probably be fantastic):
  • chilaquilles
  • hashbrowns
  • fried plantains
  • fried rice
  • linquica
  • lox
  • mole
  • sumac
  • tapenade
  • tobiko

Links to Gear


Friday, January 20, 2023

Time to Fire This Back Up

 I snagged a few FlipperZero's from KickStarter, and I've been very surprised to see how much my daughter has engaged hers.  She even updated her firmware following a Youtube video without involving me.  I'm also for empowering her to make executive decisions, and in this case it turned out beautifully.  She applied a fairly scientific method in her reasoning before applying the update.



Thursday, August 27, 2020

Day 9: What a Week

Work Has Been Crazy

To all the teachers out there who have to keep smiling while also having anything else in their life demand their attention, I SALUTE YOU!  We've been having intermittent server woes since Tuesday morning at my j-o-b, but my wife has kindly pointed out we can't do new topics every day, so we've been reviewing things this week that we went over last week: primitives, flow control, basic objects, arrays and collections.

Today We Cover String Manipulation

In her example code, she has been using file names that have reusable folders leading up to their location (to represent sound files in her game).  After a quick lesson in String manipulation, she will be able to simplify all those paths using a variable to cover the destination path.  She is also going to extend her randomized Fight class to choose names of Hero objects from a pool, emulating a gladiator-style tournament.

I'm debating giving her a pop quiz tomorrow.  I love my kid, but I feel like she needs to visually see an indicator of her progress.  The good news is, I have been quizzing her verbally since the day we started and I know it's clicking.  I also installed Eclipse and have started letting her use an IDE to simplify code execution during our lessons.  I still require her to prove she remembers how to compile from the command-line, but being able to modify code and click "run" helps us cover a lot more ground in an hour.

[NEW] Open-Source Library of the Week: JLayer

I have decided to introduce one new library a week for her to get an idea of what is out there, how it is packaged up, and how to search for things you might need.

Name Category License Description
JLayerAudioLGPLmp3 decoder/player/converter
<!--https://mvnrepository.com/artifact/javazoom/jlayer-->
<dependency>
    <groupId>javazoom</groupId>
    <artifactId>jlayer</artifactId>
    <version>1.0.1</version>
</dependency>
JLayer bypasses all the painful parts of Java audio (ridiculous MP3 woes, frame rates, cpu glitches, etc.), allowing you to simply create sound objects and play them. There are no blood sacrifices required, no pro services sound engineers on-hold. It just works the way you expect everything in life to work (but that usually doesn't). It works like it says: simply. 

Be advised: JLayer uses a reciprocal license (LGPL). For clear explanation of what using this type of OSS license requires of you, please go to opensource.org.

Wednesday, August 26, 2020

Day 7/8: Rushed

 I gave her two days to chew on the topics we've covered.

Monday, August 24, 2020

Day 6: Arrays and Collections

Object Evolution

She has recognized and learned how useful instance variables are to her game.  I think part of why she is getting this so quickly is that I introduced her to making her own dice-based games when she was 5.  With games like Pathfinder/D&D, Shadowrun, and Battletech obviously a bit much for someone that age, it was still valuable to get her a few dice and show her how to map out what each of the values mean when rolled (after which we spent hours coming up with insane monsters to randomly run into in our adventures).

Fights usually went something like this:  "roll a d6 when encountering a hostile creature, 1 = creature bored runs away, 2=miss, 3=hit for d4 damage, 4=d10 damage, 5=d20, 6=headshot monster dies."

Within her game's list of components, each:
  • Hero has a name, life, gold, weapon,
  • Weapon has a name, attack, effect,
  • Attack has a name, value, range, 
  • Monster has a name, life, weapon, boss.

She has also realized that she needs to store additional sets of items that may be plural (some obvious, some not-so-obvious):
  • Combo → a list of attacks performed in order that trigger a special attack
  • SpriteList → a set of image tiles that describe movement over time
  • Gang → a group of Monster objects that when killed as a whole drop additional loot
  • LootTable → potential loot drops with chance rates per Monster or Gang


Additional Math Operations

To realize the benefit of sprites and loot, we will also be discussing the modulus operator (%).  The simplest way of performing smooth tiled movement over time is to have a group of sprites for each direction that cycle (independent of CPU speed).  This can be accomplished by utilizing a universe timer, with each object possessing it's own offset (to keep the same object types from visually aligning), and then switching to the next sprite as the universe iterates.  Modulus is used to trigger looping within the fixed sprite list length (using the remainder keeps us from ever stepping beyond the max size).  We will also expand on her understanding of Random, seeds, and how to produce non-trivial random ranges.