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.

Thursday, June 11, 2015

The Dollops

Here's a recipe I would not have considered posting (in large part because it's different every time I make it, and I don't measure anything), but it's my youngest son's favorite dish right now, and it's loaded with vegetables. Even one formerly-picky eater likes it (although without celery)!

First start with the most important but often unmentioned preparation: shopping for the ingredients. I recommend seasonal vegetables from your local farmers' market, if you can. You can look up USA-local farmers' markets from the USDA or from Local Harvest (click on Find Farmers Markets). Vegetables that are in season have more nutrients, taste better, and are usually cheaper. You can look up what's in season from the USDA, from Sustainable Table, or from fruits and veggies: more matters! (some sites assume Northern Hemisphere). Get a lot of fresh vegetables. Also get some ground meat, potatoes, and an onion. Ground meat freezes well, and root vegetables like potatoes and onions keep well (except in spring and summer, when they want to sprout, but that's also when buying them fresh is easier!).

For an example, here's what I made tonight.

First I diced four organic russet potatoes. I usually get yukon gold instead of russet, but variety is the spice of life! I placed them in my largest mixing bowl (4 quart Pyrex), and sprinkled with salt, garlic powder, brown gravy mix, and a small scoop of Better Than Bouillon beef. I generally use garlic powder instead of minced garlic because the taste doesn't change with time; with fresh garlic, the flavor gets deeper and more pronounced the longer you keep the leftovers. I agree with Budget Bytes about Better Than Bouillon; that stuff is a tasty time-saver! Then I covered the potatoes with water, and placed them in the microwave set for 20 minutes. (These potatoes were still crunchy after 30 minutes, and finally soft after 35 minutes. Usually 15 to 20 minutes in the microwave softens diced potatoes.) Then I diced an onion, and put them in the potato bowl about 6 minutes later. Then I sliced two medium zucchini, quartered the slices, and put them in the same microwavable bowl. Next I diced a very large green pepper, and, you guessed it, added it to the bowl in the microwave! At this point, I couldn't submerge all of my vegetables, so I added more water and more spices. At the same time, I also added grated carrots from my freezer, that I bought and grated and froze when they were at their seasonal peak. I let all of that microwave until the 20 minutes ended. The vegetables were still fairly crunchy, and my eaters prefer soft, so I put the bowl in for another 10 minutes. Then I got out my large sauteuse pan (5 quart size) and put in 18 ounces of ground turkey with the same spices as earlier. I use the same spices so that all the food pieces would taste as though they cooked together. In the winter, I cook everything together for a long time in the pan (and heat the kitchen); in the summer, I prefer to use the microwave as much as possible. Once the ground turkey was completely cooked into tasty crumbles, I added a big scoop of frozen corn kernels and turned the heat down to low. When the vegetables in the microwave were finally done, I added them as well using a slotted spoon to drain the water, and turned the heat up to medium. This time, I also added several big scoops of mashed potatoes that I was afraid would go bad before we remembered to finish them. (Tip: this dish is a great home for lonely leftovers.) I kept an eye on the pan, stirring it every so often, and when food looked like it was about to stick to the pan, I added cooking water from the microwave bowl. When everything in the pan was the same warm temperature, I served dinner. I left the pan simmering on low until the excess water had cooked off. After eating a little for dinner, I packed up 10 cups of leftovers.

If you go the frugal route and select a lower-cost ground meat, it will often have a high fat content. Counter this by draining the grease off the meat after cooking, and add 2 Tablespoons (or more) of flour to soak up the remaining grease for a more palatable mouth feel.

I save the cooking water from this recipe and similar preparations. In this case, the cooking water is a flavorful vegetable broth with seasonings added. I could use it to make bread (yeast doesn't like garlic, so you may need to add a yeast enhancer like Vitamin C / powdered ascorbic acid), as a base to make a tasty soup, or to cook rice. Cooking water that's nearly a soup base on its own can be used in any recipe with compatible seasonings that calls for water. I've also used juice in place of water in some recipes; it all depends on how I think the flavors will work together.

I realize that's not the easiest recipe to follow, so here it is without the prose:

4 potatoes, diced
1/4 tsp salt
1/4 tsp garlic powder
1/2 tsp beef bouillon
  place in large bowl
  cover with water
  microwave for 5 minutes
1 onion, diced  microwave in same bowl 5 minutes
2 medium zucchini, sliced and quartered
1 large green bell pepper, diced
2 cups of grated carrots, very loose (probably 1 cup or less if packed)
  microwave in same bowl 10 minutes
  if needed, continue to microwave vegetables to desired doneness
18 oz ground turkey
1/4 tsp salt
1/4 tsp garlic powder
1/2 tsp beef bouillon
  loose-fry into tasty crumbles with no pink on medium heat
1 1/2 cups frozen corn  add to pan, and cook on low heat until thawed
   add the bowl vegetables to the pan when they're done, and return to medium heat
  add water as needed to keep food from sticking to the pan
  when all food is the same temperature, it's ready to serve!

One thing I try to do with this dish is to include a rainbow of vegetable colors. Red: I'm the only one who likes tomatoes, so when I pack some for my lunch tomorrow, I will add tomatoes. Orange: carrots! Yellow: corn. Green: green bell pepper. White: zucchini, onion, and potatoes. I'm only missing purple/blue, but otherwise I have a (fairly) complete meal in one shapeless dollop of tasty, filling food.

When I "follow" recipes from the Internet (not that I ever follow a recipe exactly), I tend to double the vegetables in the recipe, and halve the meat so that I'm happy with the result. In this case, although this has a lot of meat by my standards, you may wish to double the meat and possibly halve the vegetables.

One thing I love about this concept (it's more of a concept than an actual recipe) is that it's so flexible. You could even view it as a "mix and match" recipe!

1 pound meat or proteinground turkey
3 cups starch / starchy vegetables2 cups potatoes and 1 cup corn
5 1/2 cups vegetables3 cups zucchini, 1 cup carrots, 1 cup bell pepper, 1/2 cup onion
seasoningsalt, garlic powder, beef bouillon

So, let's imagine where we could go with this concept! I really enjoyed the pork potstickers, so how about this wild idea?

meat or protein1 pound ground pork
starch2 cups potatoes and 1 cup corn
vegetables3 cups shredded cabbage, 1 cup carrots, 1/2 cup baby corn, 1/2 cup bean sprouts, 1/2 cup onion
seasoningminced ginger root, garlic powder, soy sauce

What about an Indian variant? Hmm, curry or garam masala? I would probably use ground chicken, rice, a selection of fresh vegetables, and curry! My mom makes a delicious curried chicken salad with rice, so that's why I'd lean in that direction. What about a pizza variant? Perhaps using sausage, potatoes as a neutral base (or skip the starch and serve with rolls), tomato sauce with bell peppers and mushrooms (my favorite pizza toppings!), and seasoned with garlic and oregano. Oooh, that one might require a topping of mozzarella cheese! For a Mexican variant, beans are both protein and starchy (ground or shredded meat will also work), fajitas have bell peppers, mushrooms, and onions, and season with garlic and cumin - possibly lime and cilantro too! There are so many choices! Enjoy, and feel free to experiment!

Notice that all of these combinations are gluten-free, dairy-free (GFCF unless you sprinkle cheese on top!), and soy-free (GFCFSF). This dish is allergy-friendly and infinitely adaptable. Unlike many allergy-kind recipes, it can be made frugally. It can easily be made vegetarian. You can use up or hide leftovers in it. I have used vegetable purée in it to thicken the base (stirring soft potatoes will also do that). Use your imagination!

Wednesday, June 10, 2015

Tasty Potstickers

I ran an informal taste test of potstickers from my grocery store's freezer section. Potstickers are so yummy, but they would be so much more convenient if I could keep some in the freezer.

  1. Pagoda Express savory pork potstickers - the best of these choices, with a wide flavor profile and a good texture
  2. Tasty Select vegetable and pork potstickers - I thought these were a very close second with a good flavor range, but the other opinion rated them a distant second
  3. Tai Pei chicken potstickers - nothing exciting here
  4. Ling Ling chicken and vegetable potstickers - bland with a thick wrapper

Now I wonder if pork potstickers are tastier, or just those two brands. I still have too many leftovers from this test to want to start the next test of potstickers right away, but I do have more questions for later.

Monday, May 4, 2015

Against Bottled Water

I don't drink bottled water, because

  1. making plastic bottles uses a lot of fuel and water: it takes several times more water to make the bottle than to fill it!, and
  2. most bottled water is municipal water, but with less regulation for safety.

There are a few times when bottled water is appropriate (such as when local water is known to be unsafe), but generally it can be avoided for a more ecological choice. Consider a reusable water bottle and a water filter instead.

References:

Flowers for Teacher Appreciation Week

It's Teacher Appreciation Week!

My children's school organizes themes for each day of the Teacher Appreciation work-Week, and today's suggestion was to bring fresh flowers to your teachers. Although cut flowers are lovely, they are also short-lived; I wanted a gift with more staying power. I also like DIY, crafts done with my kids, recycling, and gardening. (You can probably see where I'm going.) This year, like last year (I just didn't have a better idea for this year, but we did improve our technique), we put marigold starts in a self-irrigating planter; the planter was a recycled craft we made together.

These marigolds are a dwarf marigold (Tagetes patula), in French Gold (orange, not yellow). Marigolds are self-seeding annuals, which means they will come back year after year, but from seeds not roots (like perennials). The best way to prepare the seeds, according to my mother, is to let the seeds dry on the plant over winter. I recommend pulling up the plants on a dry day to gather the seed pods (where the blossoms were) once the entire plant is gray and has thoroughly dried out. Take care to gather all the seed pods that have fallen off during the drying process so you're not over-run the next year.

The first year, I planted the six seeds from a 10¢ pack on a drizzly February 12, 2012; just casually scattered under the mailbox before I escaped back to the warm dry. All of the seeds germinated, and the one closest to the road with the most space grew particularly tall; almost two feet tall and nearly as wide! (Dwarf? Ha!) The next two years, I gathered the seeds (and passed them on), and let the ones that fell and germinated on their own grow with minimal thinning; those that grew outside the rock border around my mailbox were mowed without compunction. With lateral competition, the plants did not grow as tall, but I still had an amazing number of blooms all summer until the first hard frost. This year, I plan to thin the mailbox marigolds much more to see if they grow like the first year. I carefully pulled up the largest starts for this year's teacher appreciation marigolds; marigolds are fairly sturdy so they should survive this transplanting. I have more marigold seeds now than I know what to do with! In 2012, I thought 6 seeds for 10¢ was a bit steep, but in one year I had a hundred-fold increase and I think that dime has gone a long way now.

The Parts List:

  • empty water or soda bottles, with their caps, to recycle; you need as many bottles as you want to make planters
  • cotton twine, or any cord made of uncoated natural material that will wick water (including strips of cotton tee shirts)
  • duct tape
  • aluminum foil, or any opaque flexible material to cover the roots for root health

The Tools List:

  • drill and two bits, maybe 1/16" and 1/8" (size isn't critical, just "small" and "about the size of the cord bundle"; careful adults only)
  • utility knife (careful adults only)
  • scissors
  • a towel that can get gardening-dirty

The Resources List:

Based on what I learned last year, here is how we made the self-irrigating planters from recycled water bottles this year:

  1. I drilled several small holes around the shoulder of the water bottles that were empty and to be recycled.
  2. I drilled a larger hole in the bottle cap.
  3. For the last "careful adult" step, I used a utility knife to cut the bottle roughly in half (a bit more on the top, a bit shorter on the bottom; see how one looks, and adjust the others).
  4. The remaining steps were done by my eager children. First we cut two sections of twine, and put a big knot in the middle. Then we threaded the twine through the bottle cap; holding the bottle cap like a cup, it should have octopus-style legs of twine and the knot should be large enough to keep the cord from pulling through the hole. We sealed the cap back on the top of the water bottle.
  5. We lined the inside top of the water bottle with aluminum foil to protect the plant's roots from light. You could instead wrap the entire planter at the end to do that, and to minimize algae growth. I chose to leave the bottom section visible so it's obvious when to add water, but that does allow algae growth.
  6. If the cut edge of the water bottle top is sharper than you'd like, use duct tape folded over that edge to hold the aluminum foil in place, and to cover the sharp edge itself.
  7. We carefully scooped potting mix inside the foil inside the top of the water bottle, shaping as we went.
  8. We placed the water bottle tops inside the water bottle bottoms, and watered. The goal is for the potting soil to be thoroughly moistened, so we ended up pouring out some water from the bottoms.
  9. We dried the bottles as needed before wrapping them with duct tape to hold the upside-down top to the bottom.
  10. Add a few seeds or one small plant, and you are ready to gift or tend this!

All parts came from the recycling bin or the dollar store, so this is a low-cost project. I raided the recycling bin at work because I'm opposed to bottled water.

If you leave out the aluminum foil, the plant will not be as healthy in the long term, but your children can observe the later stages of root growth.

Most plants need as much room for roots underground as they occupy aboveground, so clearly this self-irrigating water bottle planter should not be the final home for most plants. However, a group should be sufficient for a small (windowsill?) herb garden. You can also adapt this technique to larger recycled containers.

There you go! It's surprisingly easy!

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. Just as readily, all of the peripherals are now also working with the example code.

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 an Ubuntu VM

  • Read https://help.ubuntu.com/community/KVM/Virsh.
  • 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 '%'
    • sudo dpkg-reconfigure openssh-server # if you get ssh errors and have to use console
    • 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!
  • virsh reboot ${NEWVM}
  • Add DNS records for the new VM.
  • virsh shutdown ${NEWVM} # when you're done

Clone a CentOS 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 CentOS 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!

Thursday, January 8, 2015

Recycled and Reusable Produce Bag

I thought this was too simple to post, until two weeks ago. I was at the grocery store, and I handed my reusable shopping bags to the checkout clerk. He said, "I'm glad you remembered; sometimes I forget." I replied that's why the bags live in the back of my car, so I can remember them. Then he asked, "Where did you get these produce bags?" I explained that I ran some yarn through the top of plastic mesh bags, and the one he was holding right then was from the turkey I had cooked for Thanksgiving. After a moment of stunned silence on his part, he said, "That's awesome! High five!"

produce bag

So in case it's not completely obvious, start with a plastic mesh bag. For me, the larger ones are more useful, and the most plastic-y ones hold up better. I typically re-use these from bags of onions, but this turkey bag is bigger. Weave a long length of yarn over and under at the top until you've woven all the way around; I used a crochet hook for the weaving. Make sure the yarn is larger than you ever expect to open the expandable mesh bag! I have tried plarn and shoelaces, but yarn slides most easily on the bags I've made. So I don't have to weave the yarn in again, I knot the ends together. Store your produce bags with your reusable grocery bags.