Friday, February 20, 2015

Chocolate Peanut Butter and Hot Chocolate

Last weekend I made chocolate peanut butter first, and then wondered what I was going to do with it. (Tip: it's a tasty replacement filling for Nutter Butter cookies!)

The answer has been a bite here and a bite there, as a tasty snack. So far I haven't needed a plan to make quite a dent in it. It's tastier stored on the kitchen counter (where it reminds to have a sample as I pass by) than solid cold from the refrigerator.

Now that I know just how remarkably easy it is, I think I might start making my own peanut butter too, and I'm really tempted by the idea of using honey-roasted peanuts instead of regular roasted peanuts. Protip: wear hearing protection while the food processor is grinding your (chocolate) peanut butter.

 

After my kids went sledding this morning, I decided we should thaw out with hot chocolate, and I had a recipe to test. I made the "master recipe" with Ghirardelli chocolate chips and Ghirardelli cocoa. We added mini marshmallows (but none of the other suggestions - too far from the desired classic), and everyone enjoyed!

Ah, tasty times!

Thursday, February 19, 2015

Mint Chocolate

In honor of Mint Chocolate Day, we tried a few confections. Here's what I thought:

  • Russell Stover French Chocolate Mints: so smoooooooth and enjoyable, although they didn't actually hit my "mmm, good chocolate" button. I enjoy one after dinner when I want a little something chocolate and smooth. This is its own category, a chocolate infused with some mint.
  • York peppermint patties - the classic, VERY minty (just like the ad says)
  • Pearson's mint patties - fine on their own, but they just don't compare to York
  • Landmark Confections peppermint patties - more chocolate on the chocolate-to-mint filling ratio, but they hold their own when you want more chocolate than York
  • Hershey's mint truffle kisses - tasty, not heavy on the mint but very noticeable; another reasonable after-dinner choice
  • 3 Musketeers mint - "where's the mint?" no really, I thought I would love the fluffy with mint (I know I have before on its own) but in this taste test comparison, it didn't distinguish itself
  • Andes creme de menthe baking bits - decent pop of mint, and I'd try again with the actual bars, but not as spectacular as I expected
  • Junior Mints - more like mini York peppermint patties than I expected, maybe slightly less "I AM MINT!" but remarkably similar

The overall winner was York peppermint patties. It ended up as the yardstick against which I compared everything else. York is strong on the mint flavor. For more chocolate to balance the mint, reach for Landmark Confections instead. After dinner (when I want mild), Hershey's mint truffle kisses or Russell Stover. I will still want Junior Mints when I watch movies. Sorry that doesn't really narrow the field ... OK, York is the top but there are times when I want a smaller treat with more chocolate than mint.

So can you guess what I want to try next? Making my own York Peppermint Patties! I've made Almond Joy and Mounds before (this recipe looks familiar), and I particularly enjoyed bing able to tweak the chocolate, almond, and coconut ratios; since that was easier than I expected, peppermint patties should be similarly easy.

Sunday, February 8, 2015

Rustic Bread

I had wanted to make Bread in the Crockpot for a while, so I finally tried it yesterday. Short version: DON'T!

I have a 5 quart crockpot, and a one-and-a-half pound batch filled it about halfway. After one hour of cooking on HIGH, there was a superficial crust but it was almost all wet and uncooked. After three hours of cooking on HIGH, I had significant crust, it had fallen quite a bit in the middle, but the bread was still wet and gooey in the middle; mostly uncooked but now with a thick crust. It took quite bit of cleaning to remove the failure. The crust was very hard, and the rest was still raw.

I took another swing at it today. I used my bread machine's BAKE cycle, and I got rustic bread. The crumb is large, the bread is soft, and the crust is thick. (My mom adores rustic bread, so this isn't a problem per se, but you should know what to expect.) High moisture leads to thick crust, and it's much easier to let a bread maker handle very moist dough. I essentially halved this Artisan Bread in 5 Minutes a Day recipe. The longer you store the bread, the more complex flavor develops.

1 1/2 cups lukewarm water
1/2 Tbs yeast (1 1/2 tsp)
1/2 tsp salt
3 cups King Arthur bread flour

I mixed it in a bowl all at once. I let it sit in the bowl about 40 minutes (and it was rising nicely!). I oiled my bread maker's pan, and then used a flexible spatula to transfer the wet dough to it from the bowl. I let it rise in the pan for another hour and a half. The BAKE cycle on my bread maker is one hour, and I selected that. At the end of the time, it smelled like fresh bread, and a quick peek in the middle verified that the loaf was cooked all the way through. It's a bit rustic compared to my preferences, but fresh bread is tasty with butter!

This recipe made one loaf that weighed 1 pound, 9.6 ounces before I sampled a slice. Or two.

Tuesday, January 27, 2015

Remembering My Grandfather

My grandfather's funeral was one week ago. Some obituaries were published online (Herald-Sun and MRketplace; see also my uncle Shan's page about him). The weather was mild enough to be outside for the service comfortably.

Around 75 people were there; I wasn't in the center of the circle. I am thankful that my grandfather's nurses were invited to attend (that's tasteful), and honored that at least two showed up. I am especially touched that Anna told me he was such a sweetheart and she would miss him. Thank you for helping him age gracefully!

Many stories about him were told. I knew that he and my grandmother had a great love. My grandfather had remarked how much he enjoyed the article, interview, and photos by Valerie Schwartz about their love, so I'd say their love was known. I had not heard many of the other stories before, though.

One year, Lincoln High School called local car dealerships to borrow a convertible for their Homecoming parade. None agreed. My grandfather didn't like that, so their blue Skylark convertible was in the parade. Nice problem solving skills! Several reminiscences had that theme of someone with a problem, and my grandfather saying, "How are we going to make this better?" He didn't walk away from problems; he believed in community and contributing to his community. (Awesome!)

One conclusion, about my grandmother changing the flat tire on family vacation, that especially made me smile was that my grandmother had the gifted touch with tools, while my grandfather had a double dose of the social gift. I hadn't heard that story, but of course I knew their respective strengths.

I had not heard many stories about my grandfather's childhood. The way he told it, there was a lot of hard work. He didn't mention the poverty of the Jewish ghetto in Massachusetts, though. He and his father sold produce as well as odds and ends. His roots in hard work to move out of poverty, in retail and social connections, and in close-knit community go all the way. I agree with my oldest uncle that his success was The American Dream.

My mother said his last words to her were, "Make sure that order of 14 Regular comes in!" Yes, he was always thinking about selling clothing. He loved it, and it made him happy. Talk about a good career choice!

I don't want to forget his good points, especially his optimism! He went far with his smile and good attitude.

Friday, January 23, 2015

Nano Drivers

Today's Arduino lesson is that not all Arduino Nano v3 boards are the same (and this is probably true for other Arduino models when purchased from different sources). Let's skip over how long it took me to discover that, m'kay? I discovered this by looking in System Information, going to System Report, and looking at what was connected to USB. Get drivers for that, whatever it is.

My first Nano required PL2303 serial drivers. My second Nano needs the more standard FTDI libraries instead. Sparkfun has FTDI installation directions, and those drivers can also be downloaded directly from FTDI.

And just like that, sprinkling a little driver magic over it, this Arduino is now happy to talk to its IDE.

Thursday, January 22, 2015

Virsh

We all know how fun brain dumps are to read, so move along, nothing to see here.

Today was my second day arguing with learning virsh. Here's what I've learned so far (with some bruises).

Basic virsh

reference

You'll need to install various tools, but that should be readily search-able. I had the tools and some existing VMs as my starting point, but I had a lot to learn.

Create (build) a new VM

  • define (export) NEWVM, OLDVM, HOST, DOMAIN, and ME (assuming your VG, LV, and VM naming scheme matches mine; otherwise, watch out!)
  • sudo lvcreate -n vm_${NEWVM} -L 8192M /dev/vg_${HOST} # from http://virt-tools.org/learning/install-with-command-line/
  • The rest of this is mostly http://manpages.ubuntu.com/manpages/trusty/man1/virt-builder.1.html
  • virt-builder --list
  • virt-builder --notes ubuntu-14.04
  • From that, I learned that I want to add --firstboot-command "dpkg-reconfigure openssh-server" to virt-builder.
  • Create a file with your desired initial root password. Mine was /tmp/password.
  • virt-builder ubuntu-14.04 -o /dev/vg_${HOST}/lv_${NEWVM} --firstboot-command "dpkg-reconfigure openssh-server" --root-password file:/tmp/passwd --hostname ${NEWVM}.${DOMAIN}
  • Now I leverage that I already had some working VMs of the same OS type and version:
  • virsh dumpxml ${OLDVM} | sed 's/${OLDVM}/${NEWVM}/g' | grep -v "mac address\|uuid" > ${NEWVM}.xml
  • virsh define ${NEWVM}.xml # persistent VM
  • virsh start ${NEWVM}
  • Alternatively, 'virsh create ${NEWVM}.xml' is a transient VM that goes away when shutdown
  • Very awesomely, console access was available by default! If it weren't, you'll want to configure it.
  • virsh console ${NEWVM} # log in as root with the password set in the file
  • useradd -G sudo -s /bin/bash -d /home/${ME} -m -c "Your Name" ${ME}
  • passwd ${ME} # set your password
  • If console doesn't work, you'll need to use some brute force.
    • virsh domiflist ${NEWVM}
    • ipv6calc --action prefixmac2ipv6 --in prefix+mac --out ipv6addr fe80:: [that MAC]
    • ssh -l root [that IP]
  • Add DNS records for the new VM.
  • When you're done, virsh shutdown ${NEWVM}

Clone a VM

  • Read https://help.ubuntu.com/community/KVM/Virsh. This was a CentOS 7 clone.
  • virsh list --all
  • virsh shutdown ${OLDVM}
  • virsh list --all # verify that shutdown completed
  • sudo virt-clone --original ${OLDVM} --name ${NEWVM} --prompt # first time, or
  • sudo virt-clone --original ${OLDVM} --name ${NEWVM} -m [previous MAC] --prompt # subsequently, if you're learning by breaking as I did
    • answer /dev/vg_${HOST}/vm_${NEWVM} to prompt if you named yours like mine
  • virsh list --all
  • virsh start ${OLDVM}
  • sudo virt-sysprep --hostname ${NEWVM}.${DOMAIN} --enable cron-spool,dhcp-client-state,dhcp-server-state,logfiles,mail-spool,random-seed,ssh-hostkeys,yum-uuid -d ${NEWVM}
  • virsh start ${NEWVM}
  • The clone has my user account and other niceties, but I don't know its address. Luckily I can use available information and link-local IPv6.
  • virsh domiflist ${NEWVM}
  • ipv6calc --action prefixmac2ipv6 --in prefix+mac --out ipv6addr fe80:: [that MAC]
  • ssh [replace with that IPv6 address]%br0 # replace with your local network interface after '%'
    • grep "${OLDVM}\|${NEWVM}" /etc/hostname # always verify!!!
    • sudo sed -i 's/${OLDVM}/${NEWVM}/g' /etc/hostname
    • grep "${OLDVM}\|${NEWVM}" /etc/hostname # and check my work!
    • sudo vgrename centos_${OLDVM} centos_${NEWVM} # or use lvm, see below
    • grep "${OLDVM}\|${NEWVM}" /etc/fstab
    • sudo sed -i 's/${OLDVM}/${NEWVM}/g' /etc/fstab # only needed if vgrename used
    • grep "${OLDVM}\|${NEWVM}" /etc/fstab
    • grep "${OLDVM}\|${NEWVM}" /etc/default/grub
    • sudo sed -i 's/${OLDVM}/${NEWVM}/g' /etc/default/grub # only needed if vgrename used
    • Now is a good time to add the RHEL7 console tips below!
    • grep "${OLDVM}\|${NEWVM}" /etc/default/grub
    • sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    • grep "${OLDVM}\|${NEWVM}" /boot/grub2/grub.cfg
    • exit # log out of ${NEWVM} now
  • virsh reboot ${NEWVM}
  • Add DNS records for the new VM.
  • virsh shutdown ${NEWVM} # when you're done

Enable Console Access

Typically, you don't care about console access until it's the only way to get out of trouble. So enable it right away if it isn't working yet. Check with 'virsh console ${NEWVM}' and press return at least once to see if you get a login prompt.

The directions for RHEL6 are https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect-Virtualization-Troubleshooting_-Troubleshooting_with_serial_consoles.html. Edit the /boot/grub/grub.conf file to append this to the kernel line: console=tty0 console=ttyS0,115200

The directions for RHEL7 are http://www.daemonzone.net/e/17/, to add the following lines to /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Since mine already had GRUB_CMDLINE_LINUX (to apply it to all the menu entries), I just appended " console=tty0 console=ttyS0,115200n8" to that line inside the quotes, then added the next two lines. Next you need to rebuild the grub.cfg file:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

LVM

[${ME}@${NEWVM} ~]$ sudo lvm
lvm> pvdisplay
lvm> vgrename centos_${OLDVM} centos_${NEWVM}
  Volume group "centos_${OLDVM}" successfully renamed to "centos_${NEWVM}"
lvm> pvdisplay
lvm> lvdisplay
lvm> exit

Loose Ends

sudo virt-inspector -d ${NEWVM}
sudo virt-filesystems -d ${NEWVM}
sudo virt-df -d ${NEWVM}
sudo virt-df
sudo virt-edit -d ${BrokenGuest} /boot/grub2/grub.cfg
sudo virt-rescue -d ${BrokenGuest}

Saturday, January 10, 2015

Canon MX870 Print Head "Repair"

I'm usually cranky when the directions I want are only available on YouTube because I can read much faster than the video plays, and I find the extra time to be excruciating. Seriously, please just tell me in words!

A few months ago, my Canon PIXMA MX870 printer decided that it would mostly print yellow: no cyan printing, and only sometimes the faintest magenta printing. I suppose the other colors weren't cheerful enough? Some searching indicated that the problem was the print head. I tried all of the printer's built-in cleaning routines to no avail. I looked at replacement printers (I mostly print kid pictures), but I decided to see if I could fix it. It wasn't useful the way it was, replacing it seemed likely, so I had nothing to lose for trying. After a while, all remaining hints pointed YouTube. I decided that removing a print head might be best described in a video, so (prepare yourself for the shock!) I watched YouTube videos about printers.

The video that worked for me was "How to remove and clean a Canon printhead" and it delivered on the promise of its title! I thought I might need to watch "The secret on how to remove the Canon print head" but the first video with some gentle but persistent jiggling was sufficient.

What I had to do was to remove the ink carts, then remove the print head. I rinsed the print head in warm water from my kitchen faucet at a low pressure for several days (in between bouts of going about my regularly scheduled life), until I no longer saw any ink bleeding out when I did so. Yes, I spent days rinsing the print head, but it was essentially a free experiment. La, la, la, several days of rinsing and a day of drying later, I re-installed the print head and the ink carts. And my printer worked again! I couldn't believe something so cheap and easy actually resurrected my printer, but it did! I'm so glad I didn't replace it hastily!