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 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.

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


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.