Armed with a text editor

mu's views on program and recipe! design

February 2008

Bento: week 7 Posted 2008.02.26 21:11 PST

This seems to be the week of leftovers. I've taken to trying to cook about twice the rice a bento needs, and refrigerating half of it. It doesn't make a lot of difference, but it's fewer times that the rice cooker has to go from zero to sixty each week, which can't be a bad thing. It also keeps available the option for fried rice every other day. Maybe I should have some tomorrow if it works with the short grain rice I started using Friday of this (last) week...


Yay leftovers. Sunday we decided we had to use up some chicken and spinach, and I'd remembered this dish we'd made a few years back. So we made it again. It yielded four chicken rolls, of which you can the top two of four slices which amount to about half of one roll. It was just as good room temperature as warm, although I would have liked some more of the tomato based sauce.


No creativity here whatsoever; instead just some duplicate leftovers, and some frozen fruit fresh from the freezer. While the berries generally manage to thaw in a couple hours, this fruit was still somewhat frozen in the center.


Yay, I got a new bento box! Now, not only do I have an extra day between forced bento box washings, the two-tier approach will result in much creativity...once I get the hang of it. Today I packed too much into it, not realize quite how big the gobo tempura really was, nor how little room the top tier really has for veggies (the center of the top is a little depressed, so there's less room than there looks like).


Not only did I pick up a new box, I bought some Japanese style rice: a Tamaki Haiga (still has some of the rice germ) short grain rice from California. Immediately out of the rice cooker it's obvious how much more this rice sticks together. It's nifty! It would actually work for making onigiri! You can eat it with chopsticks without driving yourself nuts! All sorts of benefits over Jasmine rices. Can you tell I like it so far?

The millet salad was something I threw together earlier in the week when I wanted a nice raw vegetable and grain salad. Having not cooked millet before, the way it puffed out rather surprised me, so this wasn't the effect I wanted. But it was tasty in an interesting (but not wonderful) way. Good enough to eat, at least.

After a surprise lunch at work, I really ate this on Saturday. Cold. Man that rice sticks together!

(0 Comments ) (0 Trackbacks) bento

Bento: week 6 Posted 2008.02.18 17:44 PST

Once again I ended up with four bentos this week. Only this time it was due to an unexpected company lunch, resulting in a delayed bento and no need to make one the next day. If they ever do that to me on Friday...well it's not like it's ever hard to find something to do with good food. I had my leftover copy of the shirataki noodle dish for dinner Friday as it was.


Sunday night I think I took ill, but had already overcome the shivery fever symptoms by morning. I wasn't too sure what would happen next, so I went with a fairly bland bento. I don't know if the carrots are already starting to show their age (the one horrible disadvantage of pre-cut baby carrots) or if my taste buds were off, but half of my carrots tasted horrible. The rice and kidney beans is approximately what it sounds like when you just put them next to each other like I did. Nothing special. This bento isn't really one I'd recommend unless you do want something bland.


I'd picked up these noodles a while ago. They're really convenient, since they don't need any additional cooking, they don't have a strong flavor so they can go with anything, and they're just ready to go even after a week in the refrigerator. Just drain them, cut them down to a manageable size, and enjoy. And don't forget to cut them.


I can barely remember Wednesday of last week; I think the interesting news on Thursday must have wiped it out of my head. However I do remember this bento. I was tired of rice, and far too interested in whether making lentils in the rice cooker would work out correctly. So I tried. It does. Next time I just need a better plan for how to use said lentils.


No bento today - the company sprang for pizza. It's good pizza, but it's not bento. And by that I mean it involves waiting in a line to get to the pizza, which is infinitely inferior to having your food ready when you want it. But tasty and free is worth the wait. And tasty bentos are worth the wait; see today's bento tomorrow:


This was yummy, even a day late, and a bit more chilled than I'm used to. It seems that my holy trinity combination of flavors is the soy-sauce, mirin, rice-vinegar, miso combination I keep using. It goes really well on chicken, tofu, probably even on fried rice but I've not tried yet. A teaspoon or so each, maybe as much as two teaspoons of soy sauce, provides much needed flavor, and works as well at room temperature as it does hot.

(0 Comments ) (0 Trackbacks) bento

Bento: week 5 Posted 2008.02.12 18:01 PST

This week was a little unusual, with both a snow day I worked from home, and a vacation day. Mind you, I'm not complaining about the time out of the office, but it does hurt the habit just a bit.


Monday I finally made a bento fried rice using onions, and threw in some enoki just for luck. Yummy! The newcomer to my lunch, aside from enoki, were a pair of dango. Specifically mochi an dango. I think. Either way I love 'em.


Tuesday was a simple brown rice and black bean main course, accompanied with some favorites. Today I used my newly acquired bamboo sushi mat to try to roll the tamago-yaki tighter. I think they came out a little better, but more due to improving my cooking process than due to the mat. Maybe something else will need the mat more later; for now, it seems like an unnecessary toy.


Snow day! We had heavy snows starting on Tuesday (not unlike those starting Thursday the week before), so I decided to work from home on Wednesday to fight neither traffic nor winter. Actually I fought winter a bit, shoveling our driveway a couple times. As I write this entry nearly a week later, most of the snow we got then is still present on the sides of the driveway, and the sides of our roads, although of course some of it came later as well.


Guess what - Thursday I unveiled my other recent new toy: kurogoma, or black sesame seeds. Under them are some eggs inspired by Just Bento's iri tamago recipe (but executed much more poorly). I was in a rush to create these and did them at my normal tamago-yaki heat and used a spoon. For the results shown on Just Bento's blog, I think you really need to use chopsticks, and perhaps a slightly lower heat. Under the eggs are leftover fried rice like Monday's. And mmm dango!


Vacation! But I made bento-style foods outside of a bento anyway. I'm really starting to want a two-layer bento box. I think it'll let me (and force me) to be a little more creative about the food I take, and I want that challenge. But I told myself I'd wait until at least week 6 to see if I was still doing this before getting any more boxes. One week left!

Lessons Learned

I think I'm learning less on a weekly basis now that I'm not completely new to bento, but there's still plenty of lessons that come up when trying new things. Like the iri-tamago failure (which was still yummy so I don't mind), or actually remembering to use onions in my fried rice. Sometimes when I end up making bland food I wonder if I'm doing something wrong, but then I just think back to the sandwiches this has replaced, and I'm quite happy with the trade. Life's too short to eat turkey sandwiches every day!

(0 Comments ) (0 Trackbacks) bento

Using quilt for inplace tooltips Posted 2008.02.09 16:39 PST

As I talked about earlier, I have a patch for showing inplace tooltips on a gtk+ treeview. Furthermore as it's nearing time to update it, I wanted to record the steps necessary to do so and to apply it.

Most of what I know about quilt I learned from this quilt howto hosted on alioth. So I'm by no means an expert; rather I know just enough to be dangerous. So here are the steps a Debian user can use to update and refresh my inplace tooltips patch.

First: set up quilt. Here's my modified /etc/quilt/quiltrc but feel free to put the equivalent in your own ~/.quiltrc instead. The first line is critical; the others just simplify the patches.

QUILT_DIFF_ARGS="--no-timestamps --no-index"
QUILT_REFRESH_ARGS="--no-timestamps --no-index"

Second: get the build dependencies and source.

% sudo apt-get build-dep libgtk2.0-0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

% apt-get source libgtk2.0-0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Need to get 23.6MB of source archives.
Get:1 unstable/main gtk+2.0 2.12.7-1 (dsc) [1565B]
Get:2 unstable/main gtk+2.0 2.12.7-1 (tar) [23.5MB]
Get:3 unstable/main gtk+2.0 2.12.7-1 (diff) [89.4kB] 
Fetched 23.6MB in 54s (430kB/s)                                                
dpkg-source: extracting gtk+2.0 in gtk+2.0-2.12.7
dpkg-source: unpacking gtk+2.0_2.12.7.orig.tar.gz
dpkg-source: applying ./gtk+2.0_2.12.7-1.diff.gz

Third: apply the patch.

% cd gtk+2.0-2.12.7
% quilt import ../gtk+2.0-2.12.5/debian/patches/mu-inplace-tips.patch
Importing patch ../gtk+2.0-2.12.5/debian/patches/mu-inplace-tips.patch (stored as mu-inplace-tips.patch)

Fourth: update debian/changelog. You'll want to fix the conflict, revert the changes, or update the number.

% quilt push mu-inplace-tips.patch
% quilt edit debian/changelog
% quilt refresh
Refreshed patch mu-inplace-tips.patch

Fifth: build the packages. This takes a while.

% dpkg-buildpackage -us -uc

If anything breaks you'll probably have to run quilt pop mu-inplace-tips.patch, edit the patch to resolve the build failure, run quilt refresh, and try the build again.

Sixth: install the package, and optionally put it on hold. Note that you need only the libgtk2.0-0 package if you haven't bumped up the version in the changelog; you don't really need the others if you have, but they have tightly coupled version dependencies that complain if you don't use them.

% cd ..
% sudo dpkg -i libgtk2.0-0_2.12.7-1+0mu_i386.deb libgtk2.0-dev_2.12.7-1+0mu_i386.deb gtk2-engines-pixbuf_2.12.7-1+0mu_i386.deb
% echo libgtk2.0-0_2.12.7-1+0mu_i386.deb hold | sudo dpkg --set-selections
% echo libgtk2.0-dev_2.12.7-1+0mu_i386.deb hold | sudo dpkg --set-selections
% echo gtk2-engines-pixbuf_2.12.7-1+0mu_i386.deb hold | sudo dpkg --set-selections

Finally restart any gtk+ programs you want to use your freshly updated gtk+ library.

(1 Comments ) (0 Trackbacks) debian freesoftware gtk+ quilt

Inplace Tooltips vs. Aptitude Posted 2008.02.06 20:42 PST

A long time ago I started work to port my rudimentary treeview hack from its TreeViewHints python implementation in Quod Libet to a much more solid inplace-tooltips implementation in gtk+ itself. Inplace-tooltips are the little tips that appear as you move your cursor over items that aren't fully visible, and often appear immediately instead of after a hover delay.

For whatever reasons the patch has neither been nurtured and accepted nor denied, and has languished for most of the 19 months since I first filed the feature request. I personally suspect things varying from confusion over the term tooltips being in the name to malevolent negligence, but claiming either of those doesn't help the situation anyway.

Eight months ago I found a much better approach to it, which wrangled out some superficial bugs for free, and updated the patch. Finally over the past two weeks, I found that Debian's gtk+ package had changed its build procedure, and this time was able to figure out how to integrate my patch. Wow, what a difference it makes to use it full time. In under two weeks I'd found and filled some important gaps in my initial implementations, including fixing the tip's position when a tree is scrolled horizontally.

But building my own Debian packages comes at a price. Not only does it take significant time to build the packages, there are three options each with disadvantages.

By applying just the code patch I get all the behavior changes I long as I don't run a package update. If I run a package update, the original libgtk2.0-0 package takes precedence over my package, and offers to reinstall.

When Ubuntu makes packages, they apply a suffix to ensure that Debian's packages of the same version do not override theirs, but a newer Debian package can (so long as all dependencies are satisfied). This prevents the official package from overwriting my patched packages. However doing this causes the policy of my package to move past the testing archive and into the limbo which pulls in packages from unstable. It also requires I install some auxiliary packages due to tight version dependencies in the core gtk+ related packages.

An epoch is a special version indication that would let me continue to call my package by the same version the rest of gtk+ does, but tell the package management system it's newer than the official package. Assuming Debian never needs to bump their epoch, this would insulate me from the testing–>unstable bump, as my packages would always be even newer than the ones in unstable. However because of that it would be much harder to track when it was time to upgrade my own packages.

Currently I gave up on the first, and am still trying the second. I've run into one major hitch: aptitude doesn't work how I want it to. In particular I'm running with my suffixed package version 2.12.5-2+0mu, and unstable now has 2.12.7-1:

% apt-cache policy libgtk2.0-0
  Installed: 2.12.5-2+0mu
  Candidate: 2.12.7-1
  Version table:
     2.12.7-1 0
        601 unstable/main Packages
 *** 2.12.5-2+0mu 0
        100 /var/lib/dpkg/status
     2.12.5-2 0
        900 testing/main Packages

Because I'm beyond testing (which I have as my default), apt and aptitude want to attempt to keep me at unstable (my fallback) because it appears that's where I was before the update. I'm not ready to make this leap; I want to make it when 2.12.7 reaches testing. So I employ the next trick in the book: hold.

Hold is supposed to tell aptitude to ignore this package during normal upgrades until I explicitly tell it to install a newer version. But it just doesn't work. If you visit aptitude's bug page and search for hold it becomes obvious that there have been lots of problems with hold, and most of them are still unresolved. Most of them have to do with synchronizing aptitude's list of holds with dselect (and apt's) list. But if that were all, I could work around it. Instead aptitude doesn't even follow its own holds:

% dpkg --get-selections | egrep 'gtk2-engines-pixbuf|libgtk2.0-0|libgtk2.0-dev'
gtk2-engines-pixbuf				hold
libgtk2.0-0					hold
libgtk2.0-dev					hold
% sudo aptitude unhold gtk2-engines-pixbuf libgtk2.0-0 libgtk2.0-dev
% sudo aptitude hold gtk2-engines-pixbuf libgtk2.0-0 libgtk2.0-dev  
% sudo aptitude safe-upgrade
The following packages will be upgraded:
  gtk2-engines-pixbuf libgtk2.0-0 libgtk2.0-dev 
3 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 6061kB of archives. After unpacking 12.3kB will be used.
Do you want to continue? [Y/n/?] n

Now that I've seen this sloppy behavior among others, and seen just how many long standing bugs there are against aptitude, I think it's time to go back to dselect, apt-get, and deborphan. Too bad; aptitude seemed like a good idea at the time.

(0 Comments ) (1 Trackbacks) debian freesoftware gtk+

Bento: week 4 Posted 2008.02.04 20:49 PST

Four weeks already? I wonder if I'm counting weeks into 2008, or weeks into bento...


Monday I mostly finished off left-overs, but treated myself to some sliced cucumber this time. The ume is grand, as was the stir-fry. It's kinda funny that all these years I've disliked smaller onions because I was cooking dinner for three or four people. But now that I'm cooking lunch for one, they're perfect. Also, instead of my usual two-egg tamago-yaki, I made a three-egg because there were three eggs left in the carton. That'll save me some time tomorrow.


This miso-chicken over rice on Tuesday was awesome. There's nothing like upping the flavor of cooked chicken with a little miso. But I'm out of my usual add-ins, so this bento was a little more boring than usual after the chicken.


Wednesday was this week's bean day! Nothing special to report. Except that I'm still out of my usual add-ins; maybe I'll stop at a store and pick something up... I pulled some fruit out of the freezer this morning, and while it does wonders for the fruit's appearance, it's certainly much less convenient.


Time for a change - enough rice bentos! Thursday I made a soba bento, inspired by poor memory of yakisoba recipes, and made without consulting any. It was tasty goodness, but I don't have a clue how close it was to a real yakisoba. Probably almost nothing like it, really. Since it was snowing something fierce, I didn't head to any good bento supply stores on the way home.


Vacation! After the wonderful drive home Thursday night, slip sliding around on snowy roads, I wasn't particularly interested in going to work. I worked from home, and was too lazy to make a bento. Perhaps four a week is better for me. As I write this the following Monday, they're talking about a reprise of the snow storm Tuesday-Wednesday. Lucky us!

(0 Comments ) (0 Trackbacks) bento

January 2008

Bento: week 3 Posted 2008.01.28 18:32 PST

Week 3 would have been fairly uneventful, but I experimented with some new easy-addins from a Japanese grocery.


What can be better than starting off the week with a bento that doesn't take any work? I had leftover fried rice, which I reheated on the stove and put in the bento. The remaining vegetables and fruit were similarly easy to collect and took no extra preparation.


Tuesday was time for some new tastes. When I visited a Japanese market Monday night to pick up some more Mirin, I also picked up a small package of umeboshi and a small tray of "fish cake (kakiage tempura)." I have memories of being in Japan years ago, eating an onigiri, and wondering what was burning my mouth so badly. It wasn't wasabi—I would have recognized that. Later I decided it was an umeboshi. Ever since then I've been curious and now I finally tried ume again. They're really strong, but decidedly sour instead of hot. Maybe I'll never know what was in that onigiri after all. The fish cakes are just simple and good; the flavor reminds me of something my grandmother would make for us, but I can't put my finger on what.


Tempted by the Sweet pepper and onion confit from Makiko Itoh's Just Bento, I made my own quick slapdash version Wednesday morning. Actually I sliced up the vegetables the night before and threw them in the fridge. It made the cooking a little faster in the morning, but not enough to brag about. It might be worth fully making ahead of time, but that seems like so much effort.


I finally used up the chickpeas I'd opened the other week. They were still fine. Some mushrooms, onions, and oregano joined the party making for a flavorful interlude. Throwing in my recent standard ume and fish cakes, I was set for Thursday. I think perhaps I used a little too much oregano in the chickpeas, but it wasn't a bad combination.


Friday we had decided to go out for lunch at work, so I just made some soup. Given how much I like miso soup, why do I make it so rarely? I tried taking it to work in a thermos I had gotten for free on some coffee deal. Now I know why it was free. I ate the soup fairly early and it had already lost a lot of the heat. The day was cold too, but I don't count that as an excuse.

(0 Comments ) (0 Trackbacks) bento

Bento: Week 2 Posted 2008.01.21 20:37 PST

Maybe week-by-week is the way to do this. It seems to better match when I have the energy to write it up, at least. My second week of bentos was primarily more of the same from the first week, but with a new partner: Yvo's Kickin' Chicken, which I made with an approximate 2/3 recipe of RecipeGal's BBQ Sauce.

All in all I didn't learn as much this week. I did learn that turmeric needs to be cooked into the rice if you're going to bother, and that Kickin' Chicken deserves the reverence Yvo continually pays it. And that sesame seeds are still fun, even if they make the pictures larger.


Monday I kept some simple favorites, and tried out the Kickin' Chicken I'd prepared Sunday night. It was yummy, and the plain rice was the perfect foil for the strong BBQ taste.


Speedbump #1: We used up all the grape tomatoes, which I love so much, Monday night and hadn't replaced them yet.

Tuesday I had gotten it in my head the night before to try some vaguely Indian spices, so I added ground cumin, coriander, and turmeric to already cooked brown rice. In retrospect at least the turmeric should have been added before cooking the rice. And perhaps I should have used some ground ginger as well. The Kickin' Chicken rescued it.


Speedbump #2: Wednesday we were still out of grape tomatoes. I'd used up my seaweed salad on Tuesday (yay, no more missing toothpicks!), only to find we'd also eaten all our baby carrots. I was way too tired to chop up real carrots, though, so I found a substitute. At least I'd thawed some more fruit.

Note to self: I still need to use up the chickpeas I opened for this bento.


What can I say? Thursday's bento is a clear combination of several of my favorites. I've loved fried rice for years, and Kickin' Chicken was my new love. No complaints, other than I really should chop up some onion for my fried rice—it's so flat without it.


I took a vacation Friday, and didn't make a bento. Instead I fought with my laptop, installing a memory upgrade only to find that a Windows Update (or other as yet unconfirmed alignment of heavenly bodies) had deleted the system file psapi.dll, preventing my laptop from successfully booting. Thanks to help from friends at work, I was able to track this down instead of needing to do a full repair. It's good to have developer friends who know how to think Windows...

(0 Comments ) (0 Trackbacks) bento

Bento: first week's lessons Posted 2008.01.15 19:26 PST

Since I started making and taking bento to work a week ago, I feel the need to play some catch up. I'd gotten enticed by Yvo's fine work, and had read up further on lunch in a box's tips including how to make tamago-yaki, and fallen across Just Bento as well. There was too much advice to take in all at once. So I bought an 800ml bento, some silicone muffin cups, and I dove in.

(Note: if you're interested in the recipes for anything, take a look at the first bento it appears in, and there should be a comment with directions. Just ask if you need more!)


Monday I made way too much rice—probably at least two cups combined rice and veggies. I didn't rescue myself from the situation by saving some of it for the next day; I just shoved it all in my bento. And perhaps most importantly I didn't season it enough - it's just rice, ginger, carrot, and celery thrown in a rice cooker.

However I did several things right: I had chilled edamame ready to act as filler. I had some mixed fruit from freezer bags pre-thawed in the fridge. I had grape tomatoes on hand to fill gaps. I made a successful dashimaki-tamago. So even though this probably took me half an hour prep time in the morning, I was happy.


Tuesday I scaled back on the rice, saving that which was too much, and covered it with something with a lot of flavor. The miso-mirin-broth-vinegar combo is a good one and I'll have to try that again sometime. The carrot filler was fine, but not very satisfying. But nothing is wrong with a partial cop-out. I cut my prep time down, too.


I started Wednesday's bento the night before, in bed, thinking about what I wanted as I fell asleep. I ended up with a quick kidney bean, mustard, and chicken mix which despite being too strong when I packed it in the bento, was about right when I ate it. Maybe the sesame seeds saved it. Furikake on rice is definitely a good standby to have. I purposely made extra rice for use later.

I also used the movable separator that came with the bento box for the first time. I'm not quite sure why I skipped using it before, other than it didn't seem to be necessary, but I've used it since.


Thursday I used my saved rice to make a quick fried rice...and learned that you need to flavor it more strongly than usual if you still want it to be yummy later. Ah well. It wasn't awful, just a little bland. I made some more tamago-yaki, and had some seaweed salad Tamara had recommended.

It got stuck in my teeth.


My bento for Friday was my favorite bento of the week. I felt good and nutritious pairing the kidney beans with brown rice, and the soy-mirin-lemon tofu was easy to cook and marvelous even after cooling. The chili-garlic paste is what saved it, though; without that there would not have been enough flavor for the rice.

Pickles! Despite Tamara's assurances, they're not quite identical to the ones the restaurant served, but maybe that's from coming in a small plastic bag instead of who knows what the restaurant gets. They're still yummy.


The two most important lessons from this week were to season the food strongly, and not to overdo the rice. The supporting themes were having enough interesting ready-made side dishes on hand (in this case the thawed fruit, seaweed salad, edamame, and grape tomatoes) to avoid having to prepare time-intensive main or more than one additional side-dish (such as the dashimaki-tamago, or the kidney-mustard-chicken). Coming in a close third is the need to take multiple pictures, as one always comes out fuzzy, way off center, or is otherwise unusable.

Oh, and seaweed salad gets stuck in your teeth.

(0 Comments ) (0 Trackbacks) bento

Bento: my new hobby Posted 2008.01.14 22:23 PST

Apparently I got tired about ranting about software licenses and features I can't get into major free software projects because while I've got draft articles for both, they've sat untouched for a woefully long time. I've been working for four years now, doing C++ and related programming for most of it. While it hasn't killed my interest in side programming, it certainly has started to diminish the time I spend doing it. Of course, the bigger limiting factors are my recently expanded addictions: cooking, cooking, and more cooking.

Last Thanksgiving we went out for Thai instead of our traditional family gathering. But two days before that my dad's cousin and her husband were in town; I had nothing better to do, and offered to cook dinner for them. My mom was working late, so we scheduled a late dinner. I started working around 14h. It was a blast. I made watermelon-cranberry sorbet, apricot muffins, rosemary bread, Tuscan bean soup, whole wheat pasta, and a tomato pasta sauce (cursing content, but I love his style). The next day I made watermelon sorbet, and Friday I followed up with a pair of deep dish pizzas. What a great week!

Then I decided to write a cookbook. To do this I felt the need to write my own PDF layout engine (more on that some other time) so at least there's some python left in my life. It's a personal cookbook, so I'll try to post most of it up here.

Winter break I went on a bit of a dessert spree for a small party I hosted. I made a vanilla berry pie on an oatmeal crust, fruit tartlets, and hot chili bean dip for chips. About the same time I started drooling over feistyfoodie's bentos. I read a few other bento blogs, and finally shopped at our local Mitsuwa for a bento box. The supplemental muffin cups I got from Bed Bath and Beyond are perfect for the bento job.

Now six lunches in I'm hooked on bento.

(0 Comments ) (0 Trackbacks) bento recipes

Previous entries