Showing posts with label Journal. Show all posts
Showing posts with label Journal. Show all posts

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

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

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)

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.

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.

Monday, May 4, 2015

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.

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.

Tuesday, December 23, 2014

TIL: 3-way CFL bulb

I have a set of reading lamps, one everywhere we might sit and read, all with 3-way CFL bulbs. The lamp I use most often only had two settings: two clicks for OFF, two clicks for ON. Since I've had many 3-way incandescent bulbs before, I shrugged, and thought, "that's how it always goes: one filament burns out long before the other." I knew it was CFL, but I didn't put much thought into that because the "failure" mode was familiar. Tonight I decided to replace that bulb. And that's when I discovered it wasn't screwed in all the way. As soon as I screwed the original 3-way CFL bulb in all the way, it had four states again: HIGH, MEDIUM, LOW, and OFF. Now I wish I had checked sooner!

Friday, December 19, 2014

CLI to Google Calendar

After a few weeks of missing my old cli access to Google Calendar, and pushing the Try It! button with no success (yes, I customized it, but no, what I tried didn't work for me), I went looking (again) for another tool.

Hurrah! Look to gcalcli!

First I tried "pip install gcalcli; pip install vobject parsedatetime" but "which gcalcli" came up empty. I read the log file mentioned at the end of the pip install, ran a search on the most obvious error message, and re-ran it with sudo. Now it's working! I recommend "gcalcli list" to start.

The command I expect to use most often is

gcalcli --calendar 'Calendar' --title 'what is it' --where there --when '12/19/2014 10:00 PM' --duration 60 --description 'yay for description field finally!' add --details url
, and next
gcalcli --calendar 'Calendar' quick 'quick add text' --details url
(possibly). I have always wanted to be able to populate the description from the command line, but APIv2 only supported what's in Quick Add. Now that I've got another easy tool, I can forgive APIv3 for moving my cheese since it supports a feature I wanted.

Now if you'll excuse me, I need to pound on this new command line tool ...

Update: Oh, it works so well! I start at Spot the Station, I remove the irrelevant lines (too early, too short, or too low) with PrintWhatYouLike, and then I copy the remaining (relevant) lines.

That then becomes the starting point to fun with regular expressions! Although pbpaste is a Mac OS X tool hailing back to the NeXT days, Linux has tools like xsel and xclip that I hope are roughly equivalent.

clear; pbpaste | awk -F $'\t' '{ print "gcalcli --calendar \"Calendar Name\" --title \"ISS sighting\" --where \"Durham, NC\" --reminder 20 --when \""$1"\" --duration "$2" --description \""$3" max elevation, "$4" approach, "$5" depart\" add --details url" }' | sed 's/\ min\ /\ /g;s/\ above/°\ above/g'; echo

I like to glance at the commands before running them, just to be sure I haven't made some hideous formatting error about to be replicated at the speed of automation, and I like to check at least one of the resulting URIs to be sure the calendar entry survived the transfer. So far, so great!

Sunday, November 30, 2014

Google Calendar Sadness

I had been looking up ISS passes then adding to Google Calendar using the command line for a long time, but the last time I tried, it wouldn't work. After a quick search, that's because Google Calendar API v2 was deprecated on November 17, 2014. (I bet that's when my default calendar colors changed to garish, too.) There's one newer version of gdata-python-client than what I have installed, but since it was released more than a year before the the deprecation date, I doubt it uses APIv3.

From the look of the new client libraries, it's no longer as simple as google calendar add --cal Calendar "Event 11/17/2014 at 2:00 PM in Location" now. Very sad. I miss simplicity.

So, to replace just that command functionality, I guess I'll read about inserting events. sigh

Thursday, October 2, 2014

Make Plarn

The problem with plarn projects (for me) is how long it takes to make the plarn. Now that I've tried it, this is my new method to make plarn reasonably: spiral-cut plarn. I just tie the ends together if needed, without the joining splice.

Hit that link for the description with photos! What I do is fold the bag over (smoothly, neatly) four times, leaving an inch on one edge not in the folds. Then cut through all of the layers of the folds while leaving the spine untouched (that's fast!). For the last step, open the (remains of the) bag up and cut diagonals from one row to the next (that's easy). Now wind your plarn for storage, or get crafting!

I'm more likely to craft with plarn now! ... The first three projects were painfully slow due to plarn production.

Thursday, June 5, 2014

Dinner

Sunday night, while getting my boys cycled through the bath (one at a time due to Karston's toe surgery; he didn't want to take any chances) and getting all of us ready for Monday and oh-my-goodness-how-did-it-get-this-late, I had the thought, "I don't have time for dinner." Not merely was I thinking I didn't have enough time for a healthy dinner that I prepared, I was thinking I didn't have time for any dinner.

Screeeeech! Stop! Put on the brakes!

I may think some silly things, but I'd like to think that I can notice some of it, and improve.

So I thought about the problem while eating a big green salad (luckily that's my favorite food!) that I threw together quickly. In fact, I made two salads so I could chop up the whole head of lettuce. What I do in the late afternoon is fix dinner for my boys, and then fix dinner for myself. Especially when I'm not sure what I want, that can take some time. So I came up with a new plan: I'll eat leftovers for dinner, and then fix something tasty for the next meal(s). I don't have to rush with that meal preparation because I will have just eaten.

And that's what I did last night. I ate the other salad I made, and then I roasted a pan of vegetables (zucchini, mushrooms, onions, and red and yellow bell peppers with a little olive oil and salt). The only drawback is that I made the kitchen smell so good, I want to stay up and eat! Luckily I was too tired to eat, so I went to bed instead.

Friday, April 25, 2014

Self-Irrigating Planter

This weekend, we made self-irrigating planters from recycled water bottles, and planted marigold seeds that I hope will germinate in time for Teacher Appreciation Week.

The Wisconsin Fast Plants program covers the basics of making this planter from recycled plastic bottles. I incorporated the helpful comments on Seattle Sundries, too. Those directions are really useful.

I started with my drill, and made many small holes on the shoulder of the water bottles. I put one larger hole in the shoulder of the water bottles and in the bottle cap. Next I used my utility knife to separate the top of the bottle from the base. I experimented with where to cut until I found what looked good to me. This completed the "adult only" portion of the craft; happily, they enjoyed watching.

I knotted two sections of cotton twine in the middle, and we poked the knot through the hole in the cap with a toothpick. The outside of the cap had four "legs" while the inside had a knot to keep from pulling through. Then the boys screwed the cap on the top of the bottle. Next we placed the top, cap down, into the bottom of the former water bottle. I handed out narrow strips of aluminum foil for the boys to line the planter. One of the comments was that roots don't like sunlight, so unless the plant is to be transplanted, the roots need to shielded. Aluminum foil was the suggestion I remembered, and, well, it's fun to shape! They put a straw over the foil and through the larger hole in the top, and used cotton twine and a small piece of duct tape to fasten the straw securely to the side. Then I scooped in potting mix. We soaked the potting mix with water, and poured out the excess water from the base. Next I cut sections of duct tape, and the boys wrapped all the way around to tape the tops to the bottoms. They put 4 seeds in each planter. To finish this (later), we will wrap the outside of the planter to minimize algae growth in the water (see last item on Fast Plants page).

I don't know how well it will work, but I added the straw to refill the water in the base so the plants can continue to self-irrigate by wicking up the cotton twine indefinitely.