Thursday, October 29, 2009

GFCF Chicken Florentine

1 lb organic baby spinach, rinsed, in a big bowl, with

a minuscule sprinkle of nutmeg on top

microwave for 2 minutes to reduce spinach bulk

1/2 tsp coarse sea salt

dried leaves from a 2-inch stem of rosemary

1/4 tsp coarsely-ground black pepper

pulverize herbs with mortar and pestle

sprinkle herbs over spinach

stir spinach, and watch it shrink

1 small onion, diced

1 cup chicken stock

1/3 cup garbanzo bean flour

mix in a small bowl

microwave for 2 minutes until flour thickens

mix with spinach

spread this spinach mixture in a 9x9 baking pan

1 lb chicken / 2 breasts

top spinach mixture with chicken

bake at 350°F until chicken reaches 165°F, about 20 minutes unless chicken is thick

The last time I made this, my father-in-law (I didn't even know if he liked spinach!) said he loved it, but it needed more spinach. He's from meat-and-potatoes Wisconsin, but he's always had his meat and potatoes with a salad too. So this time I doubled again* the amount of spinach, and I hope this ratio works for us. This recipe as written serves my family: Daddy and Mommy eat all of our spinach, and there's enough chicken to share with our two hungry sons who like chicken but are small enough that they don't need their own serving from this recipe. Plus the boys just think food tastes better when it comes off our plates. No, neither of them eat spinach yet. I loved spinach, even as a small girl, and even more the other dark leafy greens, so I'm not worried yet.

*Almost all meat-and-veggie recipes taste better to me if I double the amount of veggies or halve the amount of meat. I'm pretty sure this recipe has already had at least one doubling, which is why it goes in a baking pan with high sides!

Baked garbanzo flour (mixed with olive oil or chicken stock) is a surprisingly good cheese sauce substitute! It even has protein, and a lot less fat than cheese.

I almost called this recipe "Vegan Chicken Florentine" because it is dairy-free and egg-free, but then I remembered the chicken ... hehe ... oops! But it is GFCF (not that the original had gluten either, but this version is gluten-free and casein-free) so it works around Cale's allergies.

This is an easy make-ahead recipe: I do all of the steps except baking the chicken (sometimes I butterfly it and try to have the chicken breasts "hug" the spinach, but as I said, we like more spinach than you can even pretend to stuff inside the chicken, so the chicken is a topping on a bed of delicious spinach). I take it over to the in-laws, leave the boys to play (Karston said today that he doesn't get to visit Opa and Grammy often enough), go to work, and return to a yummy meal that I know is allergy-safe for me and Cale to eat. Making three dinners tonight (chicken soup for Daddy who has the cold that the boys have, chicken stir-fry for me, and chicken florentine for tomorrow) was a challenge, but at least mine was just combining and heating leftovers.

Come to think of it, I guess that chicken soup was da bomb! Daddy went back for seconds, if not thirds, and this cold has removed his appetite (not that he ever had much). Chicken soup with tiny pastina stars made by a food lover is pretty tasty ... homemade stock + chicken breast + grated carrot + sliced celery + a handful of frozen peas + a few diced onions from the florentine + a sprinkle of adobo seasoning + pastina added at the end so it doesn't get over-cooked, boiled until done. Simple, and good enough for someone who's sick and not hungry to go back for more.


Well, I just tried a Krups coffee grinder to turn flax seeds into flax seed meal, and it works! Fast too! One tablespoon of flax seeds turned into two tablespoons of meal, so that's an easy conversion to remember. I wish I had thought to use when I mixed the spices (coarse sea salt, dried rosemary from my bush, and coarsely ground black pepper) for my chicken florentine by hand with mortar and pestle. If the Krups can pulverize rosemary too, that would be awesome! I bet it can. I like the flavor of rosemary (in moderation), but I don't like finding little sticks of rosemary in my food.

At first I tried to use it like my food processor, where five two-second bursts yield better results than one ten-second burst, but since I want the flax seed finely pulverized, the continuous run (instead of short bursts) is more effective. It's not hard at all to clean with a paper towel either.

Wednesday, October 28, 2009

Hugging the Toilet

This morning I was struck by how some of the ... ah ... college experience does prepare you for life. There's the experience of hugging toilet, as I was doing this morning. Only this time, as a parent, I was hugging my small child with tummy hurting sitting on the toilet to go poop. When he doesn't feel well, he can get a hug anywhere. And all-nighters? That's obvious to anyone who's had a sick kid. And here I thought I had outgrown my days of hugging the toilet!

Monday, October 26, 2009

Ban Short Vertical Pockets!

The (comfy slacker) knit pants I'm wearing today have vertical-entry on-seam pockets. I've got nothing against on-seam pockets, except these are also short, shallow pockets that aren't deep enough. And when I say my pockets aren't deep enough, I mean that my cell phone and my keys have fallen out! Worse yet, I even lost my building-entry badge that I clipped to the pocket because the pockets are so shallow that the bottom of the pocket pushed on the clip until it popped off!

These pants may be comfortable, but I don't think I'll keep them too long, at least not as wear-to-work on meeting-free days.

If these pockets had a horizontal entry, items wouldn't fall out so easily. If these pockets were deeper, again it wouldn't be a problem because the opening would again be above the stuff stored in the pocket. But short vertical pockets are truly dangerous because it's so tempting to use your pockets as, well, pockets to store essential items, and this short-vertical configuration kicks out everything.

Bad, bad pockets.

Saturday, October 24, 2009

kid fonts

At Karston's preschool, the teachers carefully dash out the name for each child to trace on the daily artwork. Tedious! Karston is learning to write his name, and I'd love to build on that at home, but I know I'm not going to draft all this tracing for him when I'm sure there's a font for it ... I found free trace fonts @ with the Print Clearly and Trace fonts. Much better!

Friday, October 23, 2009

Chocolate Chip Oatmeal Cookies

I looked at The Post-Punk Kitchen for a butter or margarine to oil conversion (1/2 cup/1 stick of those to 1/3 cup oil). Also, when I use Ener-G Egg Replacer, I use the whisk attachment on my mixer to whip it into a meringue-like froth before using it, and I've never noticed the chalk-y taste. Another tip is that chocolate chips don't "stick" to oil batters, so use fewer than in the chips-laden original. I also replace brown sugar with slightly less white sugar and a dollop of molasses. So here's what I did:

1 1/2 Tbs Ener-G egg replacer

2 Tbs water

1/2 tsp vanilla extract

whisk into a froth (several minutes)

1/3 cup canola oil

3/4 cup brown sugar


7/8 cup flour

1/2 tsp baking soda

1/2 tsp salt


preheat oven to 325 °F

1 cup oatmeal

mix (batter will now be getting stiff)

1/2 cup (3 oz) chocolate chips



lightly grease cookie sheet

put cookie batter on cookie sheet

bake 8-12 minutes at 325 °F

I either left the cookies in too long (the kids were wild), or I need to drop the temperature to 300 °F for the oil substitution. Or perhaps I should use a combination of apple sauce (to hold moisture) and oil (to transport yummy flavor)? OK, this is still a work in progress, but completely edible as is too. The cookies also wanted to stick to the pan, so I either should have removed them sooner or I should have greased the cookie sheet. But still mighty tasty! These are my favorite cookies ...

Friday, October 16, 2009

MythDora ... Not Yet

Running anaconda, the MythDora system installer - please wait...

/usr/bin/python: error while loading shared libraries: cannot open shared object file: No such file or directory

install exited abnormally [1/1]

disabling swap...

unmounting filesystems...

        /mnt/runtime done

        disabling /dev/loop0 LOOP_CLR_FD failed: 6

        /proc done

        /dev/pts done

        /sys done

        /mnt/stage2 done

sending termination signals...done

sending kill signals...done

you may safely reboot your system

My current theory as to why I can't install MythDora from DVD or CD or LiveCD is that I have bad burns from OS X. Maybe it doesn't set all the right "bootable DVD" signals so that something (including libpython) isn't extracted or mounted at boot. I believe the error message because I can't find libpython when I mount the image in OS X.

The other possible theory is that the hardware I'm using is just that screwy. Linux is strongest on slightly older hardware (so that someone has written the drivers for it), so I asked for a cast-off. This cast-off, it was finally admitted to me, is unwanted because it was not stable as a Windows XP box. I've got another cast-off (same reason, but different-enough hardware to try again) to try.


Thursday, October 15, 2009

Today's Javascript Lessons

Today I learned two tricks for the replace() function in Javascript.

  1. Use $? for the found pattern, and
  2. use (parentheses) within your regular expression if you want to refer to what it matched by $number in the replacement.

I needed the sub-string '.A.' to be zero-padded into '.0A.' instead. However, I wasn't positive enough that the only character that needed zero-padding would be an A, so I wanted to match the general case of any single character between dots.

So that means I could match any single character between dots and give a long-winded message: output = input.replace(/\.(.)\./g, "replace> $& <replace "); or more to the point: output = input.replace(/\.(\w)\./g, ".0$1.");

I can use either '.' (traditional Unix regexp for a single character) or '\w' (PCRE for any non-whitespace character) to match A with my expected input.

Monday, October 12, 2009

Finder Toolbar Links

The Drag a link to Tagger into the Finder toolbar screenshot was driving me nuts because it's not that simple. I dragged, and the link just bounced back to the application. So I tried some keyboard combinations (since the screenshot indicates that it's possible), and sure enough, COMMAND-OPTION is the magic pre-drop key combination! Of course, now I'm used to it in my Finder sidebar, so I don't need it in my toolbar, but it's nice to know I can do that when I want.

Friday, October 9, 2009


So I had some Bob's Red Mill garbanzo flour that includes a recipe for hummus on the back. Starting with finely ground garbanzo flour seems a lot easier than grinding my own chickpeas to the properly smooth texture! I was also tempted by this hummus cracker recipe so something had to happen eventually.

The first time, I scaled down the hummus recipe to make only the 1/2 cup needed for the crackers, and I left out the tahini because I didn't have (or want!) any. What I learned from this batch of hummus answers one of those little mysteries: why is some hummus so amazingly good, and why does the rest taste horrible like dirt? The answer is that cooked garbanzos are tasty, and raw garbanzos are ick ptooey. Cook the mixture again after adding the garbanzo flour, and it improves greatly!

On to the crackers, first time! I used olive oil instead of canola oil. Even adding extra flour, the crackers still were too wet to roll out, but after baking, the clumps tasted pretty good! Worth making again.

The second time I made 1/2 cup hummus from the Bob's recipe much as before, except I put all the liquids (lemon juice and texas pete) in the 1/2 cup measuring cup, and topped it off to 1/2 cup total. I also skipped the olive oil in the hummus this time around (it still tasted mostly ok, suggesting I can skip the tahini and cut back on the olive oil, and still get enjoyable lower-fat hummus), and just added the olive oil for the crackers part of the recipe. This time I had crackers that I could roll out to a uniform thinness before baking on a silicon baking sheet.

The report is still yummy crackers, and more cracker-like with the much drier hummus. I'm inspired to try this with refried beans! I had never considered making my own crackers until Cale had allergies to most commercial crackers, but it's not hard to make these crackers and they taste great! The one drawback (ahem) is that I get some remarkable gas from just two small crackers, so I probably need to cook the garbanzo beans even longer to tone down that effect. Or perhaps this is inherent in the garbanzo flour, although I suspect not since I don't remember gas from the vegan calzones made with it.

1 Tbs lemon juice

1 tsp hot sauce

1/2 cup water less 4 tsp

add lemon juice and Texas Pete to a half-cup measuring cup,

then fill to 1/2-cup with water

2 shakes onion powder

2 shakes adobo seasoning

4 shakes garlic powder

1/4 tsp ground cumin

mix in a bowl, then microwave 1 minute

preheat oven to 325 °F

2 1/2 Tbs garbanzo flour

stir in, then microwave 2 minutes

1/2 cup whole wheat flour

2 Tbs garbanzo flour

mix in

1 1/2 Tbs olive oil

add just enough oil to get mixture to stick together like a dry dough

roll out to 1/8-inch thickness onto a silicon baking sheet

(if too moist to roll, just spread thin, but without holes, with your fingers;

may need to increase cooking time for extra thickness)

gently cut (or dent) crackers with pizza roller

place silicon baking sheet on a cookie sheet for stability

bake in oven until edges look toasted, about 20-25 minutes at 325 °F

when cool enough to handle, snap crackers apart

cool completely, and store in an air-tight container

Thursday, October 8, 2009

Life Without Cable TV ...

I mentioned it again Tuesday, Lifehacker Wednesday ... I can confidently say that replacing a television subscription service with what you can legally view online is no longer in the "early adopter" range. There's still plenty of room to build your own (say if you want HD more than AppleTV), so it's not "commodity" yet either, but the bleeding edge bled elsewhere.

Monday, October 5, 2009

Less TV

So we've been thinking that, for as little as we watch TV, the cable bill is rather high. However, we want HD (but now there's significantly more free HD available), and we need a DVR. I might miss some of the cable channels if I'm sick and at home, but that doesn't happen often enough to plan for it. I think we could watch over-the-air with a side of Netflix and be perfectly happy. However, I'll have to roll a DVR replacement because the children expect their shows now, with fast forward and rewind. (Bill Cosby said parents don't want justice, they want quiet, and we've learned how right he is! If we want to eat breakfast without children climbing all over us, that episode of Super Why or Imagination Movers or Mickey Mouse Clubhouse sounds pretty tempting. If they don't talk to the TV, we turn it off as soon as we inhale our food. Usually, however, they interact with the show and we're not disappointed with the educational opportunity while we eat in peace and quiet.) Super Why is on PBS so we can watch it over-the-air, and Disney has episodes online and seasons on Netflix. It will take some juggling, but I think we can go without cable. I'm planning a gentle, gradual, slow transition, though.

So that means the first piece of hardware is something to send HD signals to a home-grown DVR. I thought this would be very confusing, a wide field of choices, blah blah blah. Well, it isn't. After reading bronzefinger, there's only one choice: the Hauppauge HD PVR. The usual dithering of checking online reviews and trying to imagine which feature set I want is unnecessary without choices. Newegg had the best price, and a rebate that ended that weekend (2 weekends ago), so I just ordered it. We're still getting the hang of using this box, but so far this glacial move away from the glassy medusa has been surprisingly, disturbingly (as in, why didn't we do this sooner?) easy.

Sunday, October 4, 2009

Caramel Apple Cookies

I saw the Caramel Apple cookies at Craft:, and I had to have some! I started with the allergy-friendly Chocolate Oat Cookie Bars recipe at Recipezaar, replaced the milk with orange juice, and replaced the 1 cup of chocolate chips with a generous cup of apples and a scant cup of caramel bits. These bar cookies are really yummy, and they taste appropriately like Fall.

Saturday, October 3, 2009

Breakfast Experiment: Fluffy Pancakes

We wanted pancakes this morning, and I'm still searching for the right vegan recipe to avoid Cale's allergies. I started with the Simple but Perfect Pancake at Recipezaar. To eliminate the eggs, I followed the Post-Punk Kitchen's advice and used 1/2 cup of banana that had been through the food processor (I was trying to make banana ice cream, but discovered that if the banana has been frozen so long that it has lots of ice crystals, the water prevents the desirable ice creamy texture: so I had leftover, defrosted, maple-extract-spiced banana purée to use up). Instead of milk, I used fruit juice (mango, passionfruit, peach, and pear; cleaning out the frig again). I followed the technique, even to beating the "eggs and milk" with a mixer. The banana and fruit juice, despite not having the protein (and allergen!) content of eggs in milk, did froth up a lot! I used the whisk attachment for my mixer, and that may have helped aerate it. Whatever the reason, frothy fruit or Bakewell Cream, the pancakes turned out great! They were thick, fluffy, light, and only very vaguely possibly fruity. No gooey center (and no crispy edges), either. Yum! I didn't add fruit chunks this time since I figured I had already pushed my luck enough by replacing all of the protein and most of the liquid with Cale-safe alternatives.

1/2 cup banana, smooth purée

1 1/4 cup fruit juice

2 tsp vanilla

beat until frothy

3 Tbs canola oil

stir into juice

1 cup all-purpose flour

1/2 cup white wheat flour

1/2 tsp salt

2 tsp baking powder

2 Tbs sugar

sift dry stuff together, then fold in to wet stuff (do not overbeat)

Picking an All-in-One Media Center

I happened across the Telematics Freedom Foundation PDF on FLOSS Media Centers, and the chart in the middle was great! For as little as we watch TV, the cable TV bill is gigantic! So we're considering ditching it (keeping the cable modem of course, but that portion of the bill doesn't feel as outrageous unless you compare it to most of the rest of the developed world where the US loses on bandwidth to households and price per bandwidth), but we like the DVR feature. So we need to replace it with something like TiVo. From the chart, I eliminated Neuros (don't want another set-top box, although it does look cool) and MediaPortal (I don't run servers on Windows). The next filter was that I want to watch and record TV, so that knocked out all but MythTV and Freevo. (Shame; XBMC and its derivatives Plex and Boxee look nice.) Those two have about the same feature sets, but I noticed that Feevo didn't have keyword search in media library; if I go to the trouble of adding keywords (and I do), I want to be able to search those. So it's MythTV.

The easy path is probably one of the bundled versions. Of those, Google search results seem to agree that if you can stand the longer up-front install time, MythDora is the easiest. I shouldn't have to install it too often, and I don't mind walking away from an installer either, so I think I should burn a copy of MythDora to try it out. Bonus is using RHEL at work might transfer to some comfort with RH's Fedora Core too (I hope). I'm keeping LinuxMCE in mind too, in case we want to add that home automation. Since LinuxMCE uses MythTV as well, I don't think it would be a painful transition for us after I install the same libraries and skins, but I suspect that starting there would be unnecessarily complicated.

Finding the right online reference comparing our choices has made all the difference so far. Yay for online!

Thursday, October 1, 2009

CSS for numbered sublists

I ran across a nice piece of CSS to add numbered subitems in an ordered list.

ol { counter-reset: item }

li { display: block }

li:before { content: counters(item, ".") " "; counter-increment: item }

That's pretty simple! You can play around with HTML lists here.

There's also the jQuery route (with example), but it isn't as simple or lightweight, and it isn't recursive.

Sad Information Move

Well, I really want my notes to be accessible, and that means available to Spotlight more and more now, so with some sadness and some help from touch -r, I just migrated the first document from Alepin to Journler.

Alepin's export preserves the hierarchy (the way I wish the document package's internal structure did, #3 on my wishlist), but it doesn't preserve timestamps. So the package structure is flat but with the timestamps I want, and the export structure is hierarchical with a 'now' timestamp. I believe I can fix this!

cd ~/Desktop/Notes\ Exported

find . -name "*.rtf" | grep -v TXT.rtf | tee adjustTimes.txt

find . -name "*.rtfd" | tee -a adjustTimes.txt


while read FILENAME; do echo "${FILENAME}"; ls -l "${FILENAME}"; BASENAME=${FILENAME##*/}; ls -ld "${ORIG}"/"${BASENAME}"*; echo; done < adjustTimes.txt

while read FILENAME; do echo "${FILENAME}"; ls -l "${FILENAME}"; BASENAME=${FILENAME##*/}; ls -ld "${ORIG}"/"${BASENAME}"*; touch -r "${ORIG}"/"${BASENAME}"* "${FILENAME}"; ls -l "${FILENAME}"; echo; done < adjustTimes.txt

rm adjustTimes.txt

Let's decompose that last long while loop. (And take out the touch command the first time you try this yourself!!! Make sure the right files show up, to make sure you won't mind the results!)

while read FILENAME; do (stuff); done < adjustTimes.txt

This is a while loop that puts the entire line, one line at a time from that text file, into the variable FILENAME. This is the iterative engine!

First, display the filename (make sure spaces come through properly escaped) with echo "${FILENAME}". Then show the directory listing with timestamp via ls -l "${FILENAME}": too new.

Since Alepin's package structure is flat, strip off everything in front the last slash; ## is greedy match removal, */ is anything before and including a slash. This should be the rtfd filename inside the Alepin document. However, rich-text-only exports from Alepin are sensibly just RTF. So to look at that timestamp, I need to convert *.rtf to *.rtfd ... or just tack on * to match zero or more characters for ls -ld ~/Documents/stuff/Notes.alpn/"${BASENAME}"*.

If all that checks out when you test it, it's time to move the Alepin timestamps to the Alepin export with touch -r ~/Documents/stuff/Notes.alpn/"${BASENAME}"* "${FILENAME}"! Admire the results with a final directory listing with updated timestamps: ls -l "${FILENAME}" (and a final echo for visual space).Ta-da!

rsync script

I wrote a quick bash script about a month ago to do my daily rsync, but I had a problem that took the quick and easy fun out of the script for several days. What worked on the command line to handle spaces didn't work in the script! The answer was buried in the rsync FAQ:

The [rsync] command line is interpreted by the remote shell and thus the spaces need to arrive on the remote system escaped so that the shell doesn't split such filenames into multiple arguments.

That's the core of the problem, but backslashes didn't seem to help. I went for the ? solution, to match one character that happens to be a space, instead.

Today I discovered that I probably could have stayed with what worked on the command line (but not in the script) if I had used eval on the scripted rsync command.