Using javascript to balance the 3-column css

In the wordpress theme I prefer (link here to original), I hacked in lots of purple.

Then I wanted to change the right column width. Eww — it was using background images of a fixed size to color the left and right columns!

Pulled out those background images, and replaced them with color strings ala #666 and #ccc.

Then, the columns on the left and right didn’t go all the way down, and were never balanced with each other nor the center column.

Finally, I found some javascript (which can be loaded in a separate file) — Balanced Columns and from there, this page.

The really good news is that it locks up IE. Yay! OK, disable that for ie, and add a “get firefox” link to the links.

Good TV is rare

I finally got my hands on the first season DVD of Made in Canada (which ran as “The Industry” here in the US on PBS and Bravo).
Some of my favorite quotes:

  • (after the movie Vigilante Vengence is cancelled because Jemery Black has had his knee broken)

    Victor: The movie will still be finished, it will just be shorter and…on television.
    Jeremy: Network television?
    Victor: Oh, yes, I think so!
    Jeremy: American network?
    Victor: (Somberly)Too soon to say
    .Jeremy: (with disgust) What, Canadian?
    Victor: (Even more somberly) I don’t want to make any promises.

  • Richard: Hey! You! Lay off the Chez Whiz — that’s for the talent!

  • Victor: Variety is all the same.

  • Alan is getting a lifetime achievement award at the Gemini Awards Show

    Alan: I’m a humanitarian, understand, a humanitarian, and I want people to know it; so work it in or I will make it my personal mission to watch you starve to death!

Got Grace a new bike

Her birthday bike was too big; her legs just aren’t long enough to follow through the bottom of the stroke, so she ended up braking to a stop each cycle. Not very enabling.

So, we got her an el-cheapo smaller bike (she chose Dora the Explorer). All day long there have been people coming and going, and each time I warned her about a car she immediately got out of the street and/or driveway. Since she was so good about that, I told her that we would get her a bike she could fit on tomorrow.

Daddy Cy, however, suggested that we get one tonight — a stroke of parenting genius! She got the immediate reward, which I’m sure she’ll remember, plus we got to kill several birds with one stone by getting shipping supplies at the same time.

Funniest moment: She saw a Scooby flashlight, and told us

“I’ve been looking for one of these!”

Like either of us has the power to resist that kind of cuteness. C’mon.

When time doesn’t match up

If ever you’re looking for the time-setting eqivalent of whiplash, I doubt you could do much better than shifting from watching Of Mice and Men to reading Pattern Recognition.

It also raised an interesting (for me) rhetorical question:

What is the shortest time period over the last 100 years which saw the most personal change in the U.S.?

I’m leaning towards thinking 1935-1946, largely for the personal wealth and relative safety that was, er, fashionable at the time.

Some throwaway work while reading documentation…

Not too much here:

  • Got the west-wing bluetooth working for my palm pilot, includes updating routing at home.
  • Moved my palm links to https://j.snyder.name/palm
  • Using PHP, I can now make sure only I can access the X10 remote-control of lamps. Now, I can do it from my palm pilot anywhere in the house! Without using up GPRS data limits!
  • Yeah, I don’t really care, either.
  • But now I can add SASL and PHP to my resume. Hell, that PHP knowledge might even mean something now.
  • Am I the only one who stopped using PHP when they had 16 security problems in a week? Looks like they’ve had time to mature, at least in internet time.
  • It seems that whenever a programming language gets object-oriented, the security drops for about 3 years, then it gets really tight for another 3. Remember the problems with java at first?
  • Remember java?
  • Hell, remember logo?
  • Hell, I still believe, deep down in my cockles (don’t ask) that the reason every programming language ends statements with a semicolon is because of PASCAL (remember “Turbo Pascal”? “Turbo Prolog”? Remember Borland?), not because of C.

SASL (and therefore port 587) is now running on the colo box (you all know it as dselwyn)

For quite some time I’ve been dinking around trying to get SASL to work on my colo box. It took

The most helpful part was the bit to add

PARAMS="-m /var/spool/postfix/var/run/saslauthd"

although I added it to /etc/default/saslauthd rather than edit /etc/init.d/saslauthd (better for future debian upgrades).
Another point to make is that sasltestwhatever of testsaslwhatever doesn’t work so configured unless you also either

  • Link each file in /var/spool/postfix/var/run/saslauthd to an identical name in /var/run/saslauthd or
  • Link /var/run/saslauthd directly to /var/spool/postfix/var/run/saslauthd (better answer, works through reboots)

J’s Bread recipe (bread machine required)

Ingredient options are listed in order of preference:

For each loaf:
  • 1 cup 1% buttermilk, or regular milk (have extra ready)
  • 1/2 stick butter, sliced
  • 3 tablespoons honey or sugar
  • 3 cups unsifted flour (any combination of whole wheat and white works with at least 1 cup white flour)
  • 3/4 tsp salt
  • 1 tablespoon yeast (quick-rise works best)
  • pam with flour

You will also need at least one small batter bowl (or something equivalent), and one more bread pan than the number of loaves you plan to make (the extra one is used as a shaping pan).

  1. Combine milk, butter and honey, heat in microwave 30 seconds. Let sit in microwave for a few moments, then nuke it another 30 seconds. The small batter bowl from pampered chef is fantastic for this. Put into bread machine.
  2. Add half the flour, the salt, the rest of the flour, and the yeast.
  3. Start bread machine on the dough setting, wait for initial ingredient combination. It should be lumpy from too much flour.
  4. SLOWLY drizzle more milk, 1 teaspoon at a time, until the dough both has a smooth gluten coating AND sticks to and pulls away from the side of the bread machine. Wait at least one minute between the last two teaspoons of milk. Don’t wait if the dough is banging around the inside way above the mixing beater.
  5. On my machine, the initial (intermittent) stirring takes two minutes of the 20-minute kneading process. I try to be done drizzling in milk by the time 8 minutes are left before the first rise.

  6. Spray all bread pans with pam with flour
Single loaf instructions
  1. Check on the first rise after 30 minutes. It may need to be punched down by hand (usually if the weather is warm) to prevent overflow!
  2. When the machine’s punch-down is complete, immediately transfer the dough to bread pan, and punch it flat to the shape of the pan.
  3. Put the other pan over the top, and flip them both over so that the shaped loaf is now smooth top and bottom.
  4. Run a knife down the length of the dough, through to the bottom.
  5. Pre-heat oven to 350°F to 375° F
  6. Let the dough rise until the highest point just passes the top of the bread pan.
  7. Bake for 35-50 minutes, at least until browned and tapping on the bread makes a hollow sound.
  8. Immediately remove loaf from pan and put on a cooling rack, unless you want a soggy crust.
  9. Let cool at least 30 minutes before slicing.
Multiple loaf differences
  1. When the 20-minute mixing finishes, let the dough rise in a pampered chef classic batter bowl. Spray the bowl with pam with flour to make your life easier.
  2. While measuring the wet ingredients, measure out several copies into more small batter bowls. Do the same for the dry ingredients.
  3. You can re-use the same shaping pan — it rarely needs to be re-sprayed with pam.

You want a real treat? Take two slices immediately after slicing the still-warm loaf; toast them until just barely crisp on the outside. Butter and salt. Try not to do that for two more slices.