Sunday, November 26, 2023

Stuck Screw

I had a stuck screw in my garage several years ago that was blocking the next project. I knew I needed to do my research about stubborn screw removal before getting frustrated. When the first step worked, I thought I had "over-researched" the topic, but two days later my best friend texted me that some guys were getting frustrated at a stuck screw, they weren't impressed her best friend is an engineer, so did I have some suggestions? My immediate reply: too long for a text, check your email. We don't know which step worked (just that they removed the screw after exposure to my list), but I no longer feel like I did too much research!

My record so far is all screws were removed by a much bigger screwdriver (12 inches / 30 centimeters long!), except one (a stripped Phillips #2 #4-40 inside a computer) that turned after a few minutes of a heat gun.

Here are the steps I collected, and the order I would try them.

  1. Try a different screwdriver: larger head, longer handle.
  2. For stripped or worn screws, improve screwdriver's grip with: rubber band, steel wool, duct tape (sticky side on screw), green abrasive pad from a kitchen sponge, friction paste (like Drive Grip by Vibra-Tite), abrasive paste from car repair shops.
  3. Heat the screw for 2-3 minutes with a hair dryer or heat gun or small torch or soldering gun, and try again.
  4. Chill the screw with ice cubes, and try again.
  5. For screws into metal that might be rusty, or might have paint or debris, clean around the screw as much as possible, apply a rust penetrant (Liquid Wrench, PB Blaster, WD-40) or paint stripper, wait 15 minutes, try again.
  6. If headroom, tighten a drill chuck over the screw head, and unscrew with drill.
  7. If headroom, remove with a pair of pliers. Flatten opposite sides with a file or dremel to improve gripping.
  8. Tap the screwdriver with a hammer, primarily for Phillips head. For a standard #2, drive a #1 bit into the screw. Tap the screwdriver while turning (improvised manual impact screwdriver).
  9. Use a manual impact driver. (manual better than electric for forward thrust)
  10. Drill a shallow hole into the head, so the screwdriver sits deeper.
  11. Use a dremel to cut a slot all the way across, and use a large slotted screwdriver.
  12. Adhere a nut to the head with welding adhesive, let dry recommended time, use ratchet.
  13. Drill a pilot hole, and then use a screw extractor.
  14. Use a hole saw to remove the screw and a plug of wood around it; replace the plug of wood with one without a stuck screw.
  15. Drill out the whole screw.
References:

Monday, August 10, 2020

MRI

Many years ago, I had an MRI as part of a research study. As you might now, it's VERY LOUD inside an MRI machine, even with earplugs on. I followed the suggestion to close my eyes before entering The Machine, and I was in there for about an hour. However, I didn't expect to have an MRI again, so I opened my eyes as I was coming out. I had no idea that the "ceiling" was an inch from my nose! I managed not to panic only because I was almost clear when I discovered how tight it was. I took a nap while I was in there, despite the racket, and apparently I didn't twitch at all - the research study got very detailed results from me.

Fast forward to Friday, when I had another MRI. I have to say, the machines are far more open and expansive now! It was still loud, and the sounds were less regular this time, but it wasn't claustrophobic this time - I had more than a foot from my nose to the inside top of the scanner. This scan only lasted 20 minutes, so I didn't even get a nap this time. Did I mention it was REALLY LOUD in there, even with ear plugs? This video gives you a good idea, just remember that you're inside the noise, and it's LOUD despite ear plugs, and not all of it sounds like the MRI can be functioning properly. Even when I was holding still, the machine was sometimes shaking me! I amused myself by remembering the robot origins of dubstep, and making up my own to go with the sounds. So of course someone has already made dubstep from MRI sounds! I found my second MRI was neither boring (because I amused myself) nor terrifying (I expected smaller). The tech even covered me with a warm blanket!

Also, some of the comments on the first video are spot-on!

  • Doctor: We've upgraded our MRI machine Me: It has a higher resolution now? Doctor: No, it has a better bass
  • Skrillex : I Am Father Of Dubstep. MRI Scan : Hold My Beer
  • Needs more cowbell

Friday, November 29, 2019

Science with Chocolate Chip Cookies

Step 1: Define the result of a successful experiment. In this case, I sought a chocolate chip cookie that was delicious and oh-so-soft.


Step 2: Do background research. Wow, this was fun! Most of my old links were dead, but here's a fantastic new crop (including some of the same information at new homes):

Are you hungry now? I couldn't wait to get started!


Step 3: Based on your research, create a likely plan. I selected these ingredients for their characteristics:

  • margarine, creamed from the refrigerator (creamed for cakier cookies, lighter and firmer; warmer butter yields denser cookies)
  • brown (tall and moist) and white (thin and crisp) sugars, with some syrup
  • more flour (cake flour for softer cookies)
  • chill dough 24hr (to elevate flavor; cool dough for compact cookies with less spread)
I'm lactose-intolerant, so margarine is less likely to cause me digestive issues later; I often say "butter" and mean "butter or margarine, probably margarine if I'm eating it". The recipe I selected as a starting point is The Ultimate Healthy Soft & Chewy Chocolate Chip Cookies from Amy's Healthy Baking because softness was a key goal for that recipe too. Aside: I am never going to call chocolate chip cookies healthy, but some recipes are less bad than others.


Detour: One chocolate chip cookie recipe that is less unhealthy that my Very Picky Eater actually loves is for Pumpkin Chocolate Chip Cookies from The Candid Appetite. However, since I always modify recipes, I made that recipe, but with fresh sweet potato purée instead of fresh pumpkin purée (other substitutions would include butternut squash, actually in many cans of "pumpkin pie filling"), and skipping the nutmeg and allspice and walnuts because I know my audience. However, based on my experience, I recommend that you do not use purple sweet potatoes because the cookies were an unappetizing shade of blue-green on the inside! The color initially made me think of copper sulfate (not anhydrous), and I don't want my food to look like that! Luckily, the cookies were delicious and we ate them all ... while laughing about how terrible they looked.


Another Detour: My Very Picky Eater also loves these Chocolate Chip Chocolate Zucchini Cookies. Again, since I always modify recipes, I use zucchini purée (I also drain off some of the liquid, so the purée is slightly thicker - more like wet batter) because shredded zucchini was a notable texture (picky eaters and unexpected textures do not mix happily), with no cinnamon or walnuts (because I know my target audience). I'm not going to lie to my children "just because it's easier" so for both of these recipes, my picky eater knows that I put vegetables in his cookies and he still loves them.


Step 4: Experiment! Did you think I would start my science at this step? No, I know the value of careful planning! There were many batches of chocolate chip cookies, and a winner emerged that best fit the criteria for success.


Step 5: Document and publish your results for other scientists to verify. OK, here goes!


Yield: 34 cookies


Preparation Time: 20 minutes


Total Time: minimum 4 hours and 40 minutes


Ingredients:

  • 2 cups all-purpose flour (measured correctly with no compression)
  • 1/2 Tbs aluminum-free baking powder
  • 1 Tbs clear gel, or 1/2 Tbs arrowroot powder
  • 1/4 tsp salt
  • 6 Tbs butter, melted (I was persuaded / asked nicely to use butter instead)
  • 1 egg, at room temperature
  • 1 Tbs skim milk
  • 4 tsp vanilla extract
  • 1 cup brown sugar
  • 1/4 cup chocolate chips
  • 2 Tbs mini chocolate chips, divided


Directions:

  1. On a flexible sheet, sift together the flour, baking powder, cornstarch, and salt. In a bowl, whisk together the melted butter and egg until fluffy. Whisk in the milk and vanilla extract. Stir in the brown sugar, smearing out any clumps along the side of the bowl. Add in the flour mixture, stirring just until incorporated. Fold in the regular chocolate chips and 1 tablespoon of mini chocolate chips.
  2. Cover the top of the bowl with plastic wrap, and chill in the refrigerator for at least 4 hours, up to 24 hours.
  3. Preheat the oven to 350°F. Roll the chilled cookie dough into 24 balls, and place on the prepared baking sheets. Make sure each cookie has visible chocolate chips, pressing more into the top of each as needed. Flatten slightly to about 3/4-inch thick. Bake at 350°F for 10-12 minutes. Remove from the oven and allow the cookies to sit on the warm baking sheet for 10 minutes before turning out onto a wire rack.


Recipe Notes:

  • Do NOT overbake these cookies! After 10-12 minutes in the oven, they’ll still look and feel slightly underdone, but they’ll continue to bake and set on the warm baking sheet for the 10 minutes after. Remember: these cookies should be soft!
  • Second batch should be in for less time (first batch was fine at 11 minutes, but second batch was crispier).
  • Cornstarch has a (faint) bitter flavor in this recipe, so use gel (best) or arrowroot powder instead. This ingredient adds softness and thickness.
  • Other scientific notes from the original base recipes:
    • less butter, and melted for chewiness
    • more vanilla for buttery flavor
    • brown sugar for moisture and chew
    • regular and mini chips for more chocolate throughout
    • chilling for thickness
    • baking 10-12 minutes for softness


Equipment: cookie scoop, cookie sheet, measuring, mixing bowl, oven, refrigerator


Enjoy!

Tuesday, June 11, 2019

Morning Bowl of Chocolate

Most mornings, I have a "bowl of chocolate" for breakfast. This is one of the few breakfasts that holds me until (or beyond) lunch time, and I like not having a strong urge to snack between breakfast and lunch. Sometimes I make the cinnamon variant and eat it with fruit, but my default is chocolate.

The original source that my mother sent to me has vanished, but this Cinnamon Breakfast Muffin recipe is very close. I have adapted this recipe, based on food sensitivities (sugar instead of Splenda to minimize gastrointestinal consequences), happy accidents (tripling the yogurt, and doubling the ground flax), and experiments. Since I eat this almost every morning, I make a large batch of the dry ingredients in advance to save time in the morning. I have also learned that I can mix this a day or two in advance, store it in the refrigerator, and cook it in the morning (less thinking and time required to get to breakfast).

Once I had a routine, I wanted to try additions to the basic recipe. My current variations are to add almond butter (more protein and healthy fats), psyllium husk (fiber and prebiotic), hemp seeds (complete protein with all essential amino acids, nutrients, and some essential fatty acids), and chia seeds (antioxidants, fiber, nutrients, and protein). I discovered that I enjoyed the additions, but could no longer eat a "single serving" in one sitting. Generally recipes with baking powder should be baked soon after mixing with wet ingredients, but this recipe stores fine when I've made it up to a week in advance. By splitting the result into three bowls (with lids), I was able to keep my tasty recipe additions without overeating.

Chocolate Morning Mix Ingredients

  • 2 cups flax seeds, ground into flax meal
  • 2 Tbs up to 1/2 cup sugar (omit)
  • 1/2 cup cocoa (or 2 Tbs ground cinnamon)
  • 1/2 cup hemp seeds/hearts
  • 3 Tbs chia seeds
  • 2 Tbs baking powder
  • 2 Tbs psyllium husk (not ground - use less if ground)

Morning "Bowl of Chocolate" Directions

  1. Scramble 1 egg in a large microwave-safe bowl (recommended 3 cup capacity).
  2. Scoop in 2 Tbs (up to 1/4 cup) of yogurt. I generally use plain yogurt.
  3. Add in around 2 to 4 Tbs of sweet potato purée. Sometimes I use completely different purées, or combine mashed banana and sweet potatoes.
  4. Mix in 2 to 3 Tbs of almond butter. (When I tried peanut butter, it tasted burnt, so I stick with almond butter.) While this doesn't have to be thoroughly mixed, it does help to break up most of the "chunks" in the almond butter, and to mix the egg and other items thoroughly.
  5. Add 6 Tbs of morning mix, and combine. The mixture will thicken; once you're used to this recipe, you will be able to tell when it has thickened enough or when you need to add more mix.
  6. Scoop one-third of this into two bowls with lids, and save that for following mornings (or for your best friend, as I've done before).
  7. Microwave until done. The original recipe says 1 minute, but as I added more yogurt and other ingredients, I had to increase the time. In my 900-watt microwave, I cook a half-batch for 2 minutes (2:30 if it's not as thick as usual because I ran out of mix, 3 minutes if my purée was very liquid, or 90 seconds if it is thick).
  8. Top with a thin layer of maple syrup. I found pancake syrup tasted odd with this.
  9. Top with semisweet chocolate chips. I found that milk chocolate chips were the wrong flavor contrast for my preferences.
  10. Enjoy while warm! It loses a lot of appeal after it cools. I find this is best when it's the first food I eat; later in the day, it tastes "too healthy" and isn't as enjoyable. In the morning, it's like chocolate cake; in the evening, I prefer "The One" Chocolate Mug Cake.

Almost every time I try something else for breakfast, I end up snacking before lunch and wishing I had stuck to my routine.

With both dairy (yogurt) and eggs, this is not allergy-friendly. I have not found this recipe to be adaptable to substitutions for either eggs or yogurt. It is, however, gluten free so long as the baking powder is GF.

Update: I have discovered that I can leave out the sugar from the original recipe, and I don't miss it. If it doesn't need the taste of sugar, why bother?

Sunday, July 29, 2018

Rocker Bottom Shoes

I developed osteoarthritis in both knees at the age of 16 when I started running cross country. Many years ago, I read (in print!) that the leading cause of osteoarthritis in juveniles was dehydration, and I know I didn't increase my fluid intake when I started running (unfortunately; this is your cue to get more to drink so you stay hydrated). Thanks to my physical therapist, I am not (often) bothered by that knee pain. Yes, you can beat osteoarthritis! One of the suggestions from my physical therapist was always to wear athletic shoes for the cushioning and support. This has been the simplest fix so far! After a flare-up, I do need to treat the pain and perform my PT exercises regularly, but after that my "maintenance" state is just to wear good sneakers at all times.


Based on my experience running cross country, I want my shoes to provide motion control as well as lots of cushioning. Motion control shoes ease the stress on my wobbly ankles, and hold my arch in a better position. I tend to pronate when I walk, and supinate when I run, so when my shoes provide proper cues for both conditions, I experience less pain. This is why I choose motion control over stability. However, I also have a very heavy stride, wearing through the soles of my shoes very quickly, so the more cushioning, the less pain I feel.


Until bilateral ankle pain visited me, I was a huge fan of rocker bottom shoes, specifically Skechers Shape Ups. Some Skechers are so cushioned that I call them "marshmallow shoes" for all that squishiness! Shape Ups are very cushioned! The rocker bottom forced me to roll into each step instead of stomping with my heel, thereby reducing heel and knee pain. Instead of needing a new pair of shoes every 3 months, I could generally wear one pair almost a year before I noticed the characteristic ache in my knees of needing new shoes. However, the arch support was negligible. I took a pair of 3/4-length shoe inserts, and cut out just the arch following the shape of some other inserts I had that built up the arch in layers that made it easy to see the shaping. I put that "just the arch" cut-out underneath the liner in my Skechers Shape Ups, and my feet were finally comfortable!


However, the rocker bottom is not stable on your front-back axis (it's fine side-to-side, which is why it didn't originally bother my ankles). You should not wear these hiking, mowing, or on uneven surfaces.


After 5 cushioned years in my Skechers Shape Ups, I hit 2 years of near-continuous ankle pain that is somewhat soothed with normal flat-bottom shoes. sigh However, if you have a heavy stride, you want a cushioning shoe, and you don't mind the lack of arch support or you don't mind adding your own arch support, these shoes were great! I'm looking for my next favorite shoes.

Friday, July 27, 2018

Raspberry Pi Zero W, back from noboot

I had a brief power outage recently, and my Raspberry Pi Zero W did not survive - but the original Raspberry Pi Zero right next to it came through the power bounce without problems! (Power and cable modem internet have been bouncy this month.)


I tried to power it up on two known-good power sources. I tried another micro USB power cable. I didn't see any lights any time I tried, so I thought this Zero W was completely dead.


Then I ran across this suggestion to try a different SD card. Since that's so simple to try, I did, and now my Raspberry Pi Zero W works again! The old SD card spewed errors all over dmesg when I tried to mount it on my computer, so that was definitely the problem.


So now I'll add trying a new SD card to the list with power and cable to get a Raspberry Pi to boot.

Sunday, April 22, 2018

Chicken and Rice

I usually skip "me too" posts and comments, but how to cook moist and tender chicken breasts every time [from The Kitchn] does exactly that. I feel bad for not already sharing how easy and delicious this is!


I usually skip the first step of flattening the chicken. I've tried cooking chicken breasts both ways, and as long as I keep the thinner end of the chicken breast farther from the center of the heat and the pan, the end result is just as good in less time, with less of my kitchen exposed to raw chicken. I season very lightly with salt and garlic powder, but no pepper. I use either olive oil, or almond oil poured off my almond butter. It's especially tasty when some almond butter gets in the pan! If the chicken breasts are thick, I leave the heat on low for the second round of cooking for 10 minutes too. In less than 25 minutes, I have freshly cooked, delicious chicken breasts!


The chicken leaves some delicious broth in the pan, and often some bits of chicken. For my next step, I make rice with the chicken broth. I use my Progressive microwave rice cooker. So, for instance, if I make basmati rice, I add one scoop (about 3/4 cup) of basmati rice, and three scoops of liquid. I start with as much chicken broth as was left in the pan, and then I add cold water to fill three scoops. I microwave that for 18 minutes in my 900 Watt microwave. Then I take the rice out and stir it up. Since my crowd strongly prefers soft rice, I add two more scoops of water, sample it to adjust seasoning levels (usually just salt and garlic powder), and then microwave for another 12 minutes. Brown rice gets 21 minutes then 14 minutes; compared to the first round, the second round of cooking uses 2/3 of the water and 2/3 of the microwaving time. Now I'm up to an hour of cooking time, but 50 minutes of that is hands-off with no peeking so it's low effort.


From this point, it's a week of chicken and rice, but that's a delicious combination! Chicken with veggies over rice, chicken burrito bowl over rice, chicken stir-fry over rice, classic chicken and rice casserole, southwestern chicken and rice casserole, chicken fried rice, chicken and rice soup, pineapple chicken and rice, Greek chicken and rice, and that's just off the top of my head if you keep the chicken and rice paired together! I enjoy sliced chicken on my sandwiches, and rice is always a tasty side dish.

Saturday, June 10, 2017

Sugary Fun

The first project of summer vacation this year was sugar + water.


The first segment was to make hummingbird food for the hummingbird feeder I picked up from Dollar General (technically, it was my kids' Mother's Day present to me). I found many online resources, that most matched this one. The ratio is one part white sugar to 4 parts recently-boiled water (presumably to sterilize it). We followed the admonitions not to add food coloring, nor to change the proportions. I instructed my kids to measure how much the feeder would hold (then water the plants with the excess), and to calculate how much sugar to add to that much water. We then set that aside to cool overnight. I had them sample 1:4 sugar water for reference, and I was informed that hummingbirds are lucky because that's tasty.


If you wanted to continue on the hummingbird theme, here's a collection of hummingbird resources (maps, books, crafts).


The second segment was to make rock candy. The directions varied with the website, from as high as 3:1 down to a moderate 5:2. I went with the super-saturated note from Science Bob and stopped at 1:1 (possibly too low) when the sugar took much, much longer to dissolve in boiling water. I dipped popsicle sticks (made of untreated wood) in the solution, then rolled them in sugar, put clothespins above the sugar level, and placed the sticks in small (to the tall and narrow side) jars to wait for cooling and crystals. Next time, we might add flavors!


And now we wait impatiently for sugar crystals to grow ...


One piece of trivia from my college Optics class is (unverified) that sugar water circularly polarizes light, so you might be able to add on further science ...

Thursday, April 27, 2017

Beans

Update 2019-06-10


After years of cooking dried beans in the crockpot, I needed to adapt my approach to reduce bloating and gas, so I did some research on other methods. My current approach is almost as convenient as using the crockpot.


  1. Hot Soak: In a dutch oven, add 2 cups of water for every 1 cup of beans. Season as desired; my standard is garlic and ground cumin. Boil for 7 minutes (assuming my typical use of pinto beans, black beans, kidney beans, and white beans). Move to oven to soak overnight (4 to 24 hours suggested; I plan for overnight). [hot soak recommendation]
  2. Preparation: Rinse the beans, discard the soaking water, and refill the dutch oven to the same level with fresh water (or broth). Season again as desired. Boil for 1 minute. Skim off the foam. [digestibility, also digestibility]
  3. Bake: Bake in the oven (covered) at 350°F for 1 to 2 hours; start checking every 20-30 minutes after the first hour for tender but not overcooked beans. At the check, I may add salt. [cooking times, prefer oven, method]


I am uncomfortably aware that cooking sources I respect, namely J. Kenji López-Alt at Serious Eats, say not to soak beans, but I absolutely need to be able to stand myself after eating my own cooking. Every person is unique and may respond differently, so find what works for you!


Another debate is If and when to salt the beans. (I had no idea that cooking beans was so hotly debated until I started researching!) Some argue that cooked beans are less tender if the dried beans were soaked or cooked with salt. My choice is to cook beans with salt because I know that most people use less salt overall when the salt has been used in cooking as compared to adding salt at the table. (Sodium intake is a long discussion of its own.) I season my food with salt while cooking such that I use the salt shaker at the dining table maybe once every two months. I salt my beans depending on what I plan to do. If I plan to purée the beans to make a sofrito-style sauce, I will salt the sofrito, but either leave the beans unsalted or very lightly salted (even for me). If I plan for the beans to stand alone, I will salt them after the first check in order for the last 30 minutes (roughly) of cooking to be with salt.


I prefer cooking dried beans because I prefer my seasoned beans to unseasoned beans from a can, I prefer usually-tender beans to mushy (over-cooked) beans from a can, I can reduce the sodium content, and dried beans are generally cheaper (per unit price, canned beans would need to be 1/3 to 1/4 the cost of dried beans to match, before any discussion of flavor and texture).


Original


I read this article, So You Like Flavor? Don't Soak Your Black Beans! at Serious Eats that references an LA Times article, Don't soak your dried beans! Now even the cool kids agree.


That made me wonder How to Soak Dried Beans (from the US Dry Bean Council). They recommend and describe the hot soak method to reduce cooking time and to result in consistently tender beans. I looked up cooking times at How To Cook Dried Beans (from What's Cooking America) and Bean Varieties (from the US Dry Bean Council), giving more credence to the latter. Then I read How To Cook Beans in the Oven (from The Kitchn).


I used to (cold) soak my beans overnight, then cook for 8 hours in the crock-pot. After that research, I have a new method (that takes just about as long).


I pour 2 cups of pinto beans and 10 cups of water into my dutch oven. I heat it to boiling on the stove, then boil for 7 minutes. Now I place the dutch oven inside the oven (for heat retention) for 4 to 24 hours; I usually let the beans sit overnight. Before cooking, I exchange the soaking water (outdoor plants love these nutrients!) with fresh water. I add minced garlic or garlic powder and ground cumin at this point. I return the dutch oven of soaked pinto beans to the oven, and bake at 350 degrees for 2 hours. Around 1 1/2 hours, I add 1/2 teaspoon of salt, stir, and test the beans for done-ness. I expect 6 cups of cooked pinto beans from 2 cups of dried beans.

Thursday, April 13, 2017

VirtualBox and shared clipboard

Based on the number of results from a search, I feel grateful that I haven't had the shared clipboard between the Mac OS X 10.11 host of my work laptop and the Xubuntu 16.04 guest break sooner.

I read the documentation. I read many of the search results, including this older thread. Those commands gave me error messages! (This is useful, not terrible.)

/usr/bin/VBoxClient-all: 31: /usr/bin/VBoxClient-all: /usr/bin/VBoxClient: not found
/usr/bin/VBoxClient-all: 32: /usr/bin/VBoxClient-all: /usr/bin/VBoxClient: not found
/usr/bin/VBoxClient-all: 33: /usr/bin/VBoxClient-all: /usr/bin/VBoxClient: not found
/usr/bin/VBoxClient-all: 34: /usr/bin/VBoxClient-all: /usr/bin/VBoxClient: not found
/usr/bin/VBoxClient-all: 35: /usr/bin/VBoxClient-all: /usr/bin/VBoxClient: not found

I did a directory listing to look at the available VBox scripts, and saw that those were symlinks. Based on that, if I had to guess, the VBoxClient script was renamed to VBoxClient-all without updating the script itself where it called itself. Doh! The simplest fix was not to edit the script giving the errors but to add a symlink for the "old" name. The symlink solution will also aid any other scripts that were also not updated to call the new name.

user@guest:~$ cd /usr/bin
user@guest:/usr/bin$ ls -l VBox*
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxBalloonCtrl -> ../share/virtualbox/VBox.sh
lrwxrwxrwx 1 root root 62 Jan 18 10:06 VBoxClient-all -> /usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/98vboxadd-xclient
lrwxrwxrwx 1 root root 46 Jan 18 10:06 VBoxControl -> /opt/VBoxGuestAdditions-5.0.32/bin/VBoxControl
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxHeadless -> ../share/virtualbox/VBox.sh
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxManage -> ../share/virtualbox/VBox.sh
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxSDL -> ../share/virtualbox/VBox.sh
user@guest:/usr/bin$ sudo ln -s /usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/98vboxadd-xclient VBoxClient
user@guest:/usr/bin$ ls -l VBox*
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxBalloonCtrl -> ../share/virtualbox/VBox.sh
lrwxrwxrwx 1 root root 62 Apr 12 11:04 VBoxClient -> /usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/98vboxadd-xclient
lrwxrwxrwx 1 root root 62 Jan 18 10:06 VBoxClient-all -> /usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/98vboxadd-xclient
lrwxrwxrwx 1 root root 46 Jan 18 10:06 VBoxControl -> /opt/VBoxGuestAdditions-5.0.32/bin/VBoxControl
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxHeadless -> ../share/virtualbox/VBox.sh
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxManage -> ../share/virtualbox/VBox.sh
lrwxrwxrwx 1 root root 27 Jan 18 08:58 VBoxSDL -> ../share/virtualbox/VBox.sh

That might have been sufficient, but I thought this command also sounded promising.

user@guest:/usr/bin$ sudo rcvboxadd setup
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

And the report after a reboot is: OUCH! Lesson 1: do not try to install the HWE kernel (hardware enablement)! Virtual Box is not happy when you mess with the kernel. (Longer version: installing HWE conflicted with virtualbox-guest-x11 and that's necessary. I thought virtualbox-qt would be sufficient, but that didn't seem to be the case.) Without a skilled administrator, I don't think I would use that VM again! Lesson 2: make a snapshot before kernel upgrades! Or just any ol' time, because backups are good! I suspect the symlink helps too, but overall VBox feet were shot in the process of trying to restore the shared clipboard.

Monday, March 6, 2017

Chocolate Cake

In recognition of this cluster of birthdays, I present my favorite chocolate cake recipe that I have made for many years, originally seen by me on the back of the Hershey's Cocoa container. However, I have discovered some enhancements for that original recipe. Every time I try a different recipe for chocolate cake, I wish I had made that recipe instead (with one exception: this chocolate mug cake with peanut butter: "The One" Chocolate Mug Cake at Budget Bytes).

The first tip I learned in graduate school. One of the other students made the most delicious chocolate cake, so I asked her for the recipe. As she told me, I realized it's the same recipe, so I asked her for her technique instead. She sifted her flour while I, through a combination of following my original recipe that said unsifted flour and laziness (woo hoo! no sifting!), did not. Thank you, Gail! Made with sifted flour, the color of the cake was lighter, the texture softer, the crumb finer, and the overall taste better.

The second tip I learned from reading this posting of that recipe: do not add as much boiling water as listed. Wow, that helped! At this point, I didn't think the recipe could get any better. I'm glad I continued to make minor changes anyway.

I read a blog post (that I can't find now) where the author had used many different brands of cocoa powder to make brownies (I believe). The overall conclusion was that dutch-processed cocoa was preferred by this informal tasting panel. This led me to search for dutch-processed cocoa, and to discover that it's hard to find! I finally found Fair Trade Organic Baking Cocoa from Equal Exchange at Weaver Street. It was on sale, so how could I resist? The chocolate cake was even better! The chocolate taste was simultaneously more gentle and more present: delicious!

At this point, I believe this is the pinnacle of homemade chocolate cake, with those three tips. However, I admit that I am curious to know how much method makes a difference (often, like sifting flour, method makes a tremendous difference). When I was growing up, my mother assured me that The Creaming Method was The Right Way To Make A Cake, but that Two-Stage Method has its supporters too.

Although I couldn't find the post that sent me on the trail of dutched cocoa, I did find some other fun references.


Tangentially related to cocoa powder is the discussion of Baking Powder and Baking Soda at Joyofbaking.com noting the origin of Devil's food cake.

To which I say, have some more chocolate cake. It's for science!

Tuesday, January 10, 2017

How Icy Was It?

My cul-de-sac was quite icy on Monday (yesterday); I'd estimate that there was one 4-foot-square patch of pavement after the snow plow came through twice, and the rest was an inch thick of hard-packed ice. After three days below freezing (yes, even during the daylight hours!), the ice had bonded to the pavement in places. Notice that ice isn't mentioned with "Neither snow nor rain ..." I was expecting a package yesterday, so I looked at the tracking status. Here's what it said:

LOCATION, No Access, We attempted to deliver your item at 5:37 pm on January 9, 2017 in LOCATION but could not complete the delivery because the employee did not have access to the delivery location. Your item will go out for delivery on the next business day.

I maintain that means too much ice!!! However, I'm glad my postal carrier wasn't risking his neck in sub-freezing temperatures after dark trying to deliver a package that can wait until today (should be above freezing in about an hour).

Sunday, November 20, 2016

IPv6, Arduino, and temperature

Referring to what I learned last time, I installed the SparkFun library for the HTU21D. Then I did a simple mash-up of MiniHTTPServer and SparkFun_HTU21D_Demo, and it worked on the first try. I think I spent so much time starting two years ago being frustrated with the uIP library that I guess I don't expect Arduino to be simple, or even to work. However, I can now read temperature and humidity over IPv6 for around $25 from eBay, now that I found a working IPv6 (single-stack) library in EtherSia. I'm not complaining, but it just feels anticlimactic after all those months of arguing with the first Ethernet library to have the second Ethernet library work right away with minimal effort.

Lesson (re)learned: Always use the right tool for the job.

For future reference, this sketch would not work with an Arduino with less memory than the Nano v3; it needs that 2kB of SRAM. My hardware is HTU21D for temperature and humidity, NanoShield and EtherSia for IPv6 Ethernet, and Arduino Nano v3.

My code with EtherSia_ENC28J60:
Sketch uses 12,162 bytes (39%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,263 bytes (61%) of dynamic memory, leaving 785 bytes for local variables. Maximum is 2,048 bytes.

My code, but claiming EtherSia_W5100:
Sketch uses 11,864 bytes (38%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,259 bytes (61%) of dynamic memory, leaving 789 bytes for local variables. Maximum is 2,048 bytes.

SparkFun_HTU21D_Demo:
Sketch uses 5,656 bytes (18%) of program storage space. Maximum is 30,720 bytes.
Global variables use 460 bytes (22%) of dynamic memory, leaving 1,588 bytes for local variables. Maximum is 2,048 bytes.

Packet Printer (EtherSia_ENC28J60):
Sketch uses 7,406 bytes (24%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,053 bytes (51%) of dynamic memory, leaving 995 bytes for local variables. Maximum is 2,048 bytes.

Mini HTTP Server (EtherSia_W5100):
Sketch uses 8,112 bytes (26%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,025 bytes (50%) of dynamic memory, leaving 1,023 bytes for local variables. Maximum is 2,048 bytes.

Saturday, November 19, 2016

Arduino Nano with IPv6

I haven't touched my Arduino Nanos in a while because they didn't do IPv6 with the arduino_uip library I thought would work. However, I poked around again, and found EtherSia, so I thought I would give it a try. In the intervening time, I have switched from Mac to Linux for my daily driver.

I went to the Arduino Getting Started page, and downloaded the latest version of the IDE for Linux. I connected my Nano v3 that has the FTDI controller, so I selected Tools (menu) > Board > Arduino Nano and Tools > Port > /dev/ttyUSB0. The software selected Tools > Processor > ATmega328 automatically (which is correct for the Nano v3, but not what the hardware-specific page says to expect). I selected the "Blink" sketch (the hardware equivalent of "Hello, World!", from File (menu) > Examples > 01.Basics > Blink), clicked on Verify, clicked on Upload, and my Arduino Nano is blinking at me.

The relevant output line from lsusb for me was:

Bus 003 Device 047: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

When I run Tools > Get Board Info, I get
BN: Unknown board
VID: 0403
PID: 6001
SN: Upload any sketch to obtain it

No drivers were downloaded; it just worked. Despite knowing that I should quit while I'm ahead (so I can have dinner at a reasonable time), I wanted to try IPv6 from EtherSia! I went to Sketch (menu) > Include Library > Manage Libraries. I put "ethersia" in the Search box, it showed up, I clicked on Install next to the (most recent) version number, and that was just too easy. File > Examples > EtherSia > Minimal. I knew I would want it, so I brought up Tools > Serial Monitor as well. I switched it to 38400 baud (as mentioned in the sketch), and again it just works! I could even ping6 it!

Now I just need to see how it feels about reporting temperature and humidity from HTU21D over IPv6 into my monitoring. That can wait until after dinner!

Thursday, November 17, 2016

TIL: Roku NASA HD

The NASA channel on my Roku wasn't working this afternoon before the launch; luckily we checked on it early enough to get through the ads without missing the launch. So I turned to Google, and I learned that ...

  1. The NASA public Roku channel has ads (from the channel dev).
  2. And more importantly, there's a NASA private Roku channel that is HD, with multiple streams (I remember when I couldn't watch the ISS because something else was on the NASA public Roku channel!), and no ads! (ref1 and Space Time, ref2 for NASA HD link)

Friday, October 21, 2016

Greasy Knees

A few weeks ago, on both Monday and Tuesday, I got a grease mark on the knee of my pants. The first one didn't wash out with just a stain spray, so I looked for other treatments. (What is it with me lately, and marks that don't come out in the laundry?)

I am happy to report that dish soap (I had Palmolive in my kitchen) and a little scrub brush action before letting it sit in the laundry basket for several days worked just fine!

For grass stains, also common on knees, read Grass Stain Removal at House Cleaning Central, especially the note not to use ammonia, degreaser or alkaline detergent. I was impressed with how much peroxide and bleach removed (although not all).

Saturday, September 24, 2016

The Battle of Chocolate Milk

There was an incident last month, between chocolate milk and gravity. Gravity won, of course; and I ended up with chocolate milk spattered far and wide. The Very First Step is to make sure no one is freaking out about this! A certain child was sure he was going to get into big trouble. I'm still trying to clean up the impact, but it clearly wasn't intentional, and these accidents aren't common. The hardest hit were a white teeshirt and my hardwood floor. (Of course the shirt was white. This can't be easy!)

After cleaning up the main splatter and the child, I ran cold water over the white shirt. This reduced the chocolate marks, but did not remove them. I tried soaking the shirt in water; no improvement. I tried soaking the shirt in salted water; no improvement. Salt acts as a water softener to make water-for-cleaning more effective, but this chocolate was more stubborn. Next I put the shirt in the washing machine and washed it in cold water with OxiClean White Revive Whitener. The stains might have been lighter, but were still present. So I did some research:

Based on that research and availability, I tried soaking the formerly-white shirt in a solution of water, hydrogen peroxide, and baking soda (I purchase the last two in large sizes because they're both so handy). Success!!!

I didn't try ammonia or an ezymatic cleaner or club soda (didn't have any); I figured the bubbles of hydrogen peroxide and baking soda could approximate the fizziness of club soda, assuming that's how it is effective. I didn't try cream or full-fat milk because I don't keep that around either. I have Borax; it's a component in my homemade laundry powder, so I figured it would be tested in the washing machine soon enough.

I've been known to forget what worked last time, so I'm sharing with everyone.

Saturday, July 16, 2016

TIL: Geany and Shellcheck

I've been using Geany for a while. When I selected it, I was looking for a cross-platform text editor with convenience features for writing code because all of the IDEs I had tried were cumbersome. I wanted syntax highlighting and code folding. I was happy that Geany also includes auto-completion, project support, vertical selection (when that's useful, nothing else will work as quickly), and plugin extensibility.

More recently, I ran across Shellcheck and was impressed with what it detects. Of course I could use it online or on the command line, but wouldn't it be nice to have it integrated with Geany also? Sure it would! So I proceeded to look for a Shellcheck plugin for Geany, in a case of retrospectively-humorous linear thinking.

The punchline is that Geany doesn't need a plugin; it has a far simpler approach. When I open one of my bash scripts in Geany, the first menu item under the Build menu is Lint. Guess what lint on a shell script runs? Of course it runs shellcheck! So today I learned that the feature I wanted in Geany was already there in the most appropriate place ... once I broke out of the linear thinking.

Saturday, July 9, 2016

Stay Well!

A friend of mine was in the hospital two weeks ago due to a condition triggered by a reduced immune system. That got me thinking ...

Immune System Stressors

  • emotional stress
  • physical stress
    • inadequate sleep
    • athletic overtraining
  • smoking
  • diet
    • high fat consumption
    • alcohol consumption
    • high refined sugar consumption
    • inadequate protein consumption
    • inadequate calorie consumption
    • inadequate vitamin consumption, including inadequate Vitamin B12
    • inadequate mineral consumption, including inadequate iron and/or zinc
    • inadequate water intake
    • food allergies, mostly if not avoided
    • food intolerances, mostly if not avoided
  • UV (sunburn!) and other types of radiation
  • chemical sensitivities
  • environmental and occupational chemical exposure
  • any immunodeficiency or autoimmune condition
  • common viral or bacterial infections
  • cirrhosis of the liver
  • certain drug therapies, including prednisone
  • blood transfusions and surgery
  • over age 40

[1] http://www.diagnose-me.com/symptoms-of/weakened-immune-system.php accessed 2016-07-09

How to Help Your Immune System

  • wash your hands frequently to avoid infection
  • get adequate sleep: 8 to 10 hours a night
  • exercise regularly, but do not over-exercise
  • maintain a healthy weight
  • do not smoke
  • do not drink alcohol, or only in moderation
  • drink plenty of fluids, especially water
  • reduce in your diet: saturated fat, refined sugar
  • adequate amounts in your balanced diet: protein, calories, vitamins, minerals, and essential fatty acids
  • eat a diet high in fruits, vegetables, and whole grains
  • cook meats thoroughly to avoid infection
  • do not over-eat
  • to counter stress, try massage, mindfulness relaxation techniques, and spend time with good friends who make you laugh
  • avoid false friends who tell you how to feel, and who your friends are/should be
  • avoid allergies and food intolerances
  • avoid sunburn
  • avoid exposure to radiation and unhealthy chemicals
  • control your blood pressure
  • get regular medical screening

[2] http://www.health.harvard.edu/staying-healthy/how-to-boost-your-immune-system accessed 2016-07-09

Sunday, July 19, 2015

The Three Bins

When I have something that I want to talk out, I try to place the topic into one of three bins.

  1. The default bin is: talk it out, and forget it. Let it go! Luckily, a lot of stuff goes here.
  2. The middle bin is my least favorite, because it's filled with what I couldn't let go of from the first bin. There's a reason why some topics continue to gnaw at me, but figuring out what is actually bothering me isn't always easy. If it were easy, it wouldn't be in this bin in the first place!
  3. The smallest bin is my favorite: figure out what is actionable to improve that situation, and do it. I consider this bin the smallest because I'm always emptying it by doing what needs to be done. Woo-hoo!

So I guess that's: forget about it, chew on it, or do it. Let it go, let it stew, or take action.

And so goes the tale of Goldilocks and the Three Bins.