The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Category: Home Ec

Things around the home & hearth

  • Monthly Science: Weight

    We’d been eating a “healthy” high-carb / low-fat diet, which produced the more-or-less expected 1 lb/yr weight gain over the course of three decades. Given that we eat about 106 Cal/yr, being off by a mere 0.3% seemed fixable, but we were always hungry while trying to cut out calories.

    In April 2016, we decided our tummies had come between us, so we switched to a mostly ketogenic diet (clicky for more dots):

    Weight Chart 2016 - Ed
    Weight Chart 2016 – Ed

    Having a Master Gardener in the family complicates dietary choices along the ketogenic axis, but Mary raised more green-and-leafy veggies, less squash-and-corn, and we keto-ized our meals reasonably well. Moderation in all things works fine for us, so losing 25 pounds at about 1 lb/week wasn’t particularly stressful.

    Continuing through 2017, you can see how regular bike riding season affects winter bloat:

    Weight Chart 2017 - Ed
    Weight Chart 2017 – Ed

    Our cycling vacation in July 2018 produced a blip, but the rest of the riding season worked as expected:

    Weight Chart 2018 - Ed
    Weight Chart 2018 – Ed

    It’s straightforward to crash-diet two dozen pounds, but maintaining a more-or-less stable weight for the next two years suggests we’ve gotten the annual calorie count about right. FWIW, my bloodwork numbers sit in the Just Fine range, apart from the somewhat elevated cholesterol level typical of a keto-ized diet.

    Starting in late 2018, however, a stressful situation of a non-bloggable nature (at least for a blog such as this) produced an unusually high number of road trips, motel stays, and generally poor dietary choices:

    Weight Chart 2019-03 - Ed
    Weight Chart 2019-03 – Ed

    The situation now being over, our lives / exercise / diet will return to what passes for normal around here and my goal is to lose another 10% of my current body weight, ending at 150 pounds, by the end of the year. In round numbers, that requires losing half a pound = 1700 Cal/week, 250 Cal/day. Not power-noshing an ounce or two of nuts a day should do the trick.

    If it makes you feel more science-y, you can use the NIH Body Weight Planner, but it produces about the same answer: knock off 300 Cal to lose weight, 250 Cal to maintain it, at essentially the same exercise level as before.

    We’ve been recording our weights as dots on graph paper every Saturday evening for the last four decades, so I know for a fact I averaged 148 pounds when I wore a younger man’s clothes. I’ll re-post the 2019 chart, adding four dots every month, during the rest of the year.

    This way, you can help keep me on track … [grin]

  • Poster Boilerplate: Whoopsie

    Spotted this in a lobby (clicky for more dots):

    Hannaford Reusable Bags - Poster Boilerplate
    Hannaford Reusable Bags – Poster Boilerplate

    I know no more than you do about the situation, but I’d lay long, long odds Hannaford created the poster with a more recent version of Microsoft Word (or whatever) than the recipient organization has available, making the file essentially read-only.

    Not casting shade on ’em; sometimes, you do what you gotta do.

    FWIW, I’d expect LibreOffice and any Microsoft Word version other than the exact one used to create the poster to mangle the formatting differently. Been there, done that.

  • Injured Arm Support Table: Wide Version

    This table must sit across the threshold of a walk-in / sit-down shower, with the shower curtain draped across the table to keep the water inside.

    Starting with another patio side table, as before, I installed a quartet of 5 mm stainless screws to lock the top panels in place and convert the table into a rigid assembly:

    Arm Supports - wide table - overview
    Arm Supports – wide table – overview

    Because the shower floor is slightly higher than the bathroom floor, I conjured a set of foot pads to raise the outside legs:

    Patio Side Table Feet - OpenSCAD model
    Patio Side Table Feet – OpenSCAD model

    The sloping top surface on the pads compensates for the angle on the end of the table legs:

    Arm Supports - leg end angle
    Arm Supports – leg end angle

    I think the leg mold produces legs for several different tables, with the end angle being Close Enough™ for most purposes. Most likely, it’d wear flat in a matter of days on an actual patio.

    Using good 3M outdoor-rated foam tape should eliminate the need for fiddly screw holes and more hardware:

    Arm Supports - leg pads
    Arm Supports – leg pads

    The feet fit reasonably well:

    Arm Supports - leg pad in place
    Arm Supports – leg pad in place

    They may need nonskid tape on those flat bottoms, but that’s in the nature of fine tuning.

    And, as with the narrow table, it may need foam blocks to raise the top surface to arm level. Perhaps a pair of Yoga Blocks will come in handy for large adjustments.

    The OpenSCAD source code as a GitHub Gist:

    // Patio Side Table Feet
    // Ed Nisley – KE4ZNU
    // 2019-03
    /* [Layout Options] */
    Layout = "Build"; // [Show,Build]
    /* [Extrusion Parameters] */
    ThreadWidth = 0.40;
    ThreadThick = 0.25;
    HoleWindage = 0.2;
    Protrusion = 0.1;
    //—–
    // Dimensions
    TapeThick = 1.0; // 3M double-stick outdoor tape
    LegWall = [2.5,3.5]; // leg walls are not the same in X and Y!
    LegBase = [36.0,19.0]; // flat on floor
    LegOuter = [31.0,19.0]; // perpendicular to leg axis
    LegInner = [28.5,11.5]; // … ditto
    LegAngle = 90 – 53; // vertical to leg
    LegRecess = [LegInner.x,LegInner.y,LegInner.x*tan(LegAngle)];
    PadWedge = 2; // to fit end of leg
    PadRadius = 4.0; // rounding radius for nice corners
    PadBase = [LegBase.x + 2*PadRadius,LegBase.y + 2*PadRadius,5.0];
    PadSides = 6*4;
    BathStep = 20; // offset between shower bottom and floor
    /* [Hidden] */
    EmbossDepth = 1*ThreadThick; // recess depth
    DebossHeight = 1*ThreadThick + Protrusion; // text height + Protrusion into part
    //—–
    // Useful routines
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
    Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
    FixDia = Dia / cos(180/Sides);
    cylinder(r=(FixDia + HoleWindage)/2,
    h=Height,
    $fn=Sides);
    }
    //—–
    // Foot pad
    module FootPad(Riser = 0.0) {
    difference() {
    union() {
    hull()
    for (i=[-1,1], j=[-1,1]) {
    translate([i*(PadBase.x/2 – PadRadius),j*(PadBase.y/2 – PadRadius),0])
    cylinder(r=PadRadius,h=1,$fn=PadSides);
    translate([i*(PadBase.x/2 – PadRadius),
    j*(PadBase.y/2 – PadRadius),
    Riser + PadBase.z – PadRadius – (i-1)*PadWedge/2])
    sphere(r=PadRadius/cos(180/PadSides),$fn=PadSides);
    }
    translate([PadRadius – PadBase.x/2,0,Riser + PadBase.z])
    rotate([0,LegAngle,0])
    translate([LegRecess.x/2,0,(LegRecess.z – Protrusion)/2 ])
    cube(LegRecess – [2*TapeThick,0,2*TapeThick],center=true);
    }
    translate([0,0,-2*PadBase.z]) // remove anything under Z=0
    cube(4*PadBase,center=true);
    cube([17,12,2*DebossHeight],center=true);
    }
    mirror([1,0,0])
    linear_extrude(height=EmbossDepth)
    translate([0,0,0])
    text(text=str(Riser),size=10,spacing=1.05,
    font="Arial:style=Bold",
    valign="center",halign="center");
    }
    //—–
    // Build things
    if (Layout == "Build") {
    if (true) {
    translate([-0.7*PadBase.x,-0.7*PadBase.y,0])
    FootPad(0);
    translate([-0.7*PadBase.x,+0.7*PadBase.y,0])
    FootPad(0);
    }
    translate([+0.7*PadBase.x,-0.7*PadBase.y,0])
    FootPad(BathStep);
    translate([+0.7*PadBase.x,+0.7*PadBase.y,0])
    FootPad(BathStep);
    }
    if (Layout == "Show")
    FootPad();

  • Injured Arm Support Table: Narrow Version

    For reasons not relevant here, I recently conjured a pair of tables to support an injured arm (ours are OK!) in the bathroom: one table fitting in the narrow space adjacent to a toilet and the other across the threshold of a walk-in / sit-down shower.

    The raw material came from a plastic side table intended for outdoor use:

    Arm Supports - OEM Patio table
    Arm Supports – OEM Patio table

    That’s the Patriotic Blue version, which seemed the least offensive of the colors on offer at the local store.

    The plastic pieces unsnap easily enough:

    Arm Supports - top panel disassembly
    Arm Supports – top panel disassembly

    The legs also come apart by pulling outward at the crossover points. You may need to clean the flashing from all the joints, as they’re only as finished as absolutely necessary.

    A table about half the width seemed about right, so I sawed the two top plates off their struts, then angled the strut ends to match the new leg angle:

    Arm Supports - trimming table struts
    Arm Supports – trimming table struts

    Because it’s now completely floppy, I drilled holes for 5 mm screws through the struts:

    Arm Supports - cross-drilling struts
    Arm Supports – cross-drilling struts

    In the process, I discovered stainless steel nyloc nuts tend to gall on stainless steel screws:

    Galled stainless steel cap screw and nyloc nut
    Galled stainless steel cap screw and nyloc nut

    I lost a pair of screws + nuts before I got a clue and began adding a drop of machine oil to each screw before tightening the nuts. Haven’t had that problem with the 3 mm SS screws, so there’s always something new to learn.

    With all the screws in place, the half-table becomes a rigid contraption:

    Arm Supports - narrow table - bottom view
    Arm Supports – narrow table – bottom view

    The top looks like it’s suffering from severe barrel distortion, but it really started out looking that way:

    Arm Supports - narrow table - overview
    Arm Supports – narrow table – overview

    The slat sides are all curved, except the far edge that was once in the middle of the table and now fits against the wall.

    It may be slightly too short, but we can stack foam slabs on the top, probably held in place with cable ties.

    Memo to Self: lube all the stainless steel screws!

  • Improved Shoelace Ferrule Aglets

    After considerable evaluation, the Customer decided the shoelaces were still too long and said the hex-crimped ferrules were entirely too rough and tended to snag on things. This time, I prepared the ferrules by chucking them in the lathe:

    Ferrule - original flange
    Ferrule – original flange

    The steel rod inside the ferrule encourages it to remain round and not collapse while I’m filing off the flange that normally holds the plastic strain-relief doodad:

    Ferrule - reshaped flange
    Ferrule – reshaped flange

    I snipped another half inch off each end of the laces and crimped on the prepared ferrules:

    Shoelace ferrule aglets
    Shoelace ferrule aglets

    Which were definitely too jaggy, so they now sport an epoxy coat:

    Ferrule aglets - epoxy coat
    Ferrule aglets – epoxy coat

    Alas, JB Kwik epoxy has a pot life measured in minutes, so the last ferrule looks a bit lumpy. They seem to work fine and the Customer is happy with the results.

    Memo to Self: Next time, dunk the ferrules in a pot of slow-curing JB Weld and let them drain overnight.

  • Monthly Image: Cutting Board Shadows

    Seen after topping bowls of chili late on a wintry day:

    Cutting board - grazing sunlight
    Cutting board – grazing sunlight

    Late afternoon sunlight streams across the living room and through the kitchen doorway to sidelight cheddar cheese crumbs on the far side of the kitchen.

    There’s also one magic wintry night when the full moon aligns with the front doorway to light the entire hallway floor for a few Stonehenge moments. It’s always a delightful surprise, even though I’m sure it’s predictable.

  • Monthly Science: Baking Powder Desiccant

    Being that type of guy, I tucked a bag of silica gel desiccant and a humidity indicator card into a #10 can of baking powder, then recorded the bag weight whenever I refilled the kitchen container:

    Baking Powder Can with Data
    Baking Powder Can with Data

    For reasons not relevant here, we pretty much stopped using baking powder a couple of years ago, so there’s a protracted silence between the last two data points:

    That last point emptied the can and, after a few days in the 60% RH basement, the bag weighed 243 g. The slope of the line suggests it’s been near 240 g for a while, although the humidity card showed the air was reasonably dry in there.

    At our current rate, we’ll open the next can in a year or so …