Tech

    I installed a Lutron Caseta in-wall dimmer switch for the hallway today. Before it was wired as a 3-way so one switch is now a wired dimmer and the other switch is now a Pico remote (with adapter for switch box install). Real nice. Caseta is solid for home automation w/HomeKit.

    wired in-wall dimmer switchPico renote installed at switch box for 3-way use

    My New Markdown Editing and Preview Apps

    MultiMarkdown Composer and Marked 2 fit my Markdown needs perfectly. One key item is that I can drag a photo into the MultiMarkdown window and it’ll insert the image syntax with relative paths. For some reason that feature I need is astonishingly rare on other editors I’ve trialed. MultiMarkdown Composer can be set to automatically launch Marked 2 for previews and proofing – real nice. It is a bonus that Marked 2 can easily preview MarsEdit in-progress posts too. I’m using the Pandoctor style in Marked 2 since that matches Pandoc output of my Markdown journalling files. However, I had to edit its CSS to remove paragraph indentations.

    Automating Deselection and Unchecking of Twitter Interests - EvilTester.com

    Automating Deselection and Unchecking of Twitter Interests - EvilTester.com: The final JavaScript works to automatically deselect Twitter ad interests, but I had to change the timer from 2000 milliseconds to 10000 milliseconds or 10 seconds per uncheck to avoid Twitter Over Capacity errors. The process is taking forever but isn’t invasive at all so this Safari JavaScript console automation can go all week for all I care. By Twitter’s estimation, I am interested in everything in the universe. Including things that greatly raise my blood pressure. Ugh.

    From the above website but milliseconds modified from 2000 to 10000. Paste and run in your browser’s JavaScript dev console when on the Twitter ad interests page:

    var timer=100;document.querySelectorAll(
    "div > input[type='checkbox']:checked"
    ).forEach((interest) => {
    setTimeout(function(){interest.click()},timer);timer+=10000;});

    macOS Big Sur TimeMachine and Bootable External Drives

    If you have any bootable APFS containers on an external drive, macOS Big Sur will not allow you to assign any of the containers on that drive to TimeMachine. I had to delete my SuperDuper! volumes, but SuperDuper! doesn’t work yet on Big Sur anyway. Here goes another reorg of my external drives! Hope I don’t need to buy another. But dang TimeMachine on an SSD is incredibly fast.

    I tested my journaling workflow in Big Sur on a secondary Mac and it worked. So I couldn’t help myself and, despite SuperDuper! not being ready for Big Sur, I installed Big Sur on my production machine. I’ve zero complaints so far.

    I accidentally trashed my Windows 10 Virtual Machine and thought it was a total loss with no backup. Two weeks later I realized I had a SuperDuper! clone of my MBP as I… prepared to update the clone. Phew and glad I remembered!

    For today and a while after the election, Twitter & Instagram apps are removed from my devices. So far I’m avoiding their web counterparts. Instead, let’s enjoy some tiny coyote bush flowers!

    On iPhone 12: I love the telephoto lens so I’ll wait for the 2.5x camera or better to migrate down into the iPhone Pro from the Max. The Max is a nonstarter for my small hands. My 11 Pro already pushes my limits. As for the super wide angle lens, I use that more than I expected.

    My typical workflow: here’s a thing I need to do. Hm. That seems more difficult than expected. What’s easier than that? And easier than that? No, that’s silly and overcomplicated. Easier than before that? Can I live with that? Probably. Not what I wanted but A-OK.

    VMware Fusion 12 Player

    It is pretty awesome that VMware Fusion Player is replacing VMware Fusion Standard and Player is free for personal use. This is weird to me since I never expect a company to stop asking for money for great software. Now, it seems, I can upgrade VMware Fusion 11 Standard to VMware Fusion 12 Player for free and not miss anything. So weird! I guess VMWare wants to focus on business users and don’t want to cater to end-users like me. That would make sense as I will no longer be paying them money for their software. Well, this is pretty cool at this point in time.

    Upon a recent update to VMware Fusion 11.5.5, sound began crackling in Windows 10. For some reason

    sound.virtualDev = "hdaudio"

    was missing from my .vmx file so Windows 10 was using VMWare’s generic audio drivers. Added that line into the .vmx file and all is well as now Windows is using its High Definition Audio device drivers. Thanks to this AppleVis post for giving me the idea.

    Follow up: I just noticed that this AppleVis post reported nearly the same issue I had and the same fix. Apparently this may be known to be an issue at VMWare.

    Keep MacBook from Sleeping with Lid Down

    The MacOS app Amphetamine is pretty slick. As promised, it keeps my MacBook Air awake even if the lid is closed and there is no external display attached. So now I can run it as a part-time file server (via SFTP and Secure ShellFish for iOS). At least, that’s the plan. Since it is running on a laptop, I really appreciate the audio alert it’ll give if I unplug the MBA while Amphetamine is keeping it awake. Now that MacOS 10.15.5 has battery aging management, now is the time to try this out.

    My goal is to somehow simplify things by no longer needing an aging QNAP NAS and using a single platform. I love the idea of having a spare laptop but also actively using it and getting more value out of it.

    I finally got around to messing with iStat Menu's Time menu and I’m sold. Having a calendar and events embedded in the clock is lovely.

    Upgraded to 16" MBP ❤️

    Since 2010, I have always had a 13” Mac laptop — now I’m on a 16” MacBook Pro and I love it. I upgraded from a 2018 MacBook Air.

    I waited for the new 13” MBP. The new 13” MBP had the necessary Magic keyboard but didn’t satisfy in terms of evolution: its screen was not 14” as rumored; it has the same thermal system; the same speakers; and the same mic. However, the latest 13-inch MBP has slightly better single thread CPU performance than the base 16” MBP I got. Finally, it seemed as if the latest 10th gen Intel chips that might work for the 16” wouldn’t provide too much of a performance boost (no wonder there’s so much interest in ARM). And I might be waiting a while for that. Assuming the 16” ever gets a refresh before the surmised ARM revolution.

    What did I want? I really wanted the wide color gamut of the MBP since I’m a prolific photo taker and editor. In addition, I really wanted a laptop that will last beyond three years (like my first ever 2010 13” MBP, RIP)— even if ARM becomes a thing. A laptop that has enough CPU cores for ARM emulation, if needed (though I suspect for a few years  apps will be delivered as dual Intel-ARM binaries).

    I use x86 Windows 10 in VMWare and on my 2018 MacBook Air, it was nearly unusable. So the 100% base 16” MBP seemed like a good fit. 

    So without a solid evolution of the 13”, the 16” began to look pretty nice. 

    Now, my Windows 10 VM can take over two of six cores and four gigs of ram without any noticeable system impact. Also, it is now apparent 16 gigs of ram really is the sweet spot for my use cases. And it is awesome to use a 16” screen on my lap wherever I want. For basic things, like writing to my blog in MarsEdit, it never gets warm enough to notice. Oh, and yes, photos look so very good and editing on this 16" screen is a dream. I’m uh also taking a liking to the Touch Bar.

    For the Touch Bar, I just wish I could enable the expanded control strip without losing app-specific controls. For example,  if I’m in an app with Touch Bar support, it should show the app’s controls with a shrunk control strip. However, if I’m viewing just the desktop, the Touch Bar should immediately show me the expanded control strip — I don’t want to press the <.

    Why must Apple hide three finger drag on their touch pads under Accessibility? It’s my favorite touch feature of the touch pad.

    Fruit Tree Irrigation: an Experiment

    For several years I’ve watered my fruit trees using a Generation 2 Rachio controller and their irrigation method called “Flex Daily”. This method relies on many variables, a few of which I can only make good guesses at. For example, my soil’s Available Water Capacity from the U.S. Soil Survey.  Flex Daily on Rachio is really designed for watering lawns, and I don’t care about lawns. I water fruit trees with unevenly spaced emitters. So the other advanced zone variable that’s not easy to determine due to my needs is the Nozzle In/Hr setting.

    Here is a formula I use to convert from my drip emitters GPH to In/Hr:

    (96.25 * Q * 0.0167) / A = PR

    Where Q is Gallons Per Hour (GPH) and A is, in the case of trees, drip line or canopy area. 0.0167 changes GPH to the needed Gallons Per Minute (or divide by 60).

    Rachio’s Flex Daily method worked fine for the past few years, though it seemed to water too much in a day and too infrequently causing regular water stress in certain trees. I figure that’s because Flex Daily relies heavily on the AWC and root depth. It then waters to what it expects is the root depth.

    Recently, in preparing for this irrigation season, I learned about a daily tree watering model from the University of California’s Center for Landscape and Urban Horticulture. I had always wondered what model local orchards use, and I bet it is this one because I have often seen the almond orchards watered daily. But with Rachio’s Flex Daily, it was every 3-5 days. According to the Center for Landscape and Urban Horticulture, deep watering of trees can actually be disadvantageous as water can leach nutrients to a depth where roots would never reach them. They also write that when using drip emitters, depth of watering isn’t as important for trees as the volume of water they actually need. I assume from this that the bulk of tree roots that take up water are shallow.

    With Rachio’s Flex Daily, I had the root depth set to 8 inches for my trees. According to tree (crop) evapotranspiration (ETc) needs, it’d attempt to water to that root depth. But my settings would have to be perfect for that to work right — especially the Available Water Capacity. I’d also have to be reasonably certain about my tree root depths, which I am not! I doubt my settings are good enough for the watering depth to be accurate, especially as soil is not homogenous. Was this Flex Daily method watering well beyond the tree roots? Without digging some deep holes I’d never know. So the Center for Landscape and Urban Horticulture’s daily watering method for drip immediately appealed to me. All I need to know, for this method, is the tree’s drip (canopy) area and the tree’s Plant Factor (or its daily water usage):

     Gallons = ETo × PF × (R× R × 3.14) × 0.623

    Where ETo is the reference evapotranspiration (figured from grass), PF is the Plant Factor or Crop Evapotranspiration coefficient, and R is the radius of the tree’s canopy. 0.623 is the conversion to gallons. ETo * PF results in the inches of the plant’s water use.

    To get the water needs of my trees, I use the Irrigation Training and Research Center’s California Crop and Soil Evapotranspiration (PDF) guide. For my Reference ETo Zone, I use the Typical Year table to find my tree type, and then find the inches/month for my trees. I can use the above formula to calculate the amount of gallons needed per tree and then calculate, based on the total GPH of emitters under the trees, how long I need to water them. Of course, it is key to divide the monthly ET by that month’s number of days in order to get the average day’s water use.

    The following image is extracted from the California Crop and Soil Evapotranspiration book. I’m interested in the monthly values for the bottom four rows. If you divide a tree monthly average by the grass reference ETo, you can get the Plant Factor or evapotranspiration coefficient. Divide the value for a tree on a given month by the days in that month to get the tree’s average water use in inches per day.

    Zone 12 Crop Evapotranspiration Example

    If all my trees were the same age and the same maturity, trees of the same kind (e.g., stone fruit or citrus) would have the same GPH per tree. They are not. So to get the same Nozzle In/Hr at each tree, I have to balance the emitters in each irrigation zone. For example, in my Stone Fruit zone, my mature and stingy apricot has emitters that total 12 GPH while at my much younger, prolific but severely bark beetle damaged Lapins cherry tree, has 2 GPH’s worth of emitters. But because the apricot’s drip line area is about 78.5 square feet and my cherry’s drip line area is 12.56 square feet, their inches/hour balances out to 0.246 in/hr for the apricot and 0.256 in/hr for the cherry. Close enough! So in this case, I can run the zone for nearly 18 minutes in April and both trees will (hypothetically) get the amount of water they need on a daily basis. This, of course, assumes the soil is suitably well draining and water can soak down some depth into the root zone. For the most part, this is the case for my trees.

    So by balancing a watering zone’s trees to have similar inches/hour, I can figure the amount of time needed to water the zone:

    Gallons per Day / Gallons per Hour * 60 minutes per hour = minutes per day 

    (phew; the dimensional analysis would make more sense if written symbolically)

    And, I can be as granular as I want at calculating the water need. For now, I’ve calculated water needs for each month using my trees’ average monthly water use. I have setup Fixed irrigation schedules for many different months using the Rachio Gen 2 controller for almost every month (if months seem similar in water use for a zone, I use one Fixed schedule). Each schedule has the month’s average ETo in the name, So when evapotranspiration regularly matches a set schedule, I’ll switch to that schedule (assuming the phenology makes sense; some trees have higher water use during certain parts of the season). I no longer need to use Flex Daily. Each zone has its own watering time based on its daily water needs. Rachio will still skip irrigating if enough rain happens, but none of the Flex features are in use now. I started this daily irrigation regime on April 22. It’s too early to say how the trees are responding, so I’ll have to report back on this big experiment.

    Rachio Fixed schedules that I’ve created to suit ET and tree phenology.

    .Rachio Fixed ET Schedules

    I can never remember brackets or parentheses for Markdown links!

    With [Watchsmith](https://apps.apple.com/us/app/watchsmith/id1483088503), I get a hamburger when my move/exercise/stand goals are met.

    Apple delayed shipment of 2020 MacBook Air. Understandable. Buyer’s remorse came fast and furious so I canceled. I’ll keep mashing those butterfly keys for a while longer.

    I’d say nationwide telework went very well this last week. Only had a few hours of repeat VPN disconnections. Bandwidth was not constrained relative to my home internet. Good job, CIO staff!

← Newer Posts Older Posts →