Google Play Store Ad Bidding Delay

Being that type of guy, I turn my phone off during the night while it’s charging, turn it on for the next day’s adventures, and check the Google Play App Store to see which apps will get updates.

The vast machine learning / AI / whatever analyzing my every move still hasn’t figured out my morning ritual, so it desperately tries to sell me crap:

Google Play Store - app ad delay
Google Play Store – app ad delay

My guess: those blank spots are placeholders for app ads, but, while the phone is busy scanning for malicious apps, the ad bidding process doesn’t complete fast enough to update the display before I see it.

FWIW, I had the Genuine NYS Covid-19 app installed for a while, but I very rarely go anywhere or see anybody, so it seemed to offer no net benefit.

Schauer Solid State Battery Charger: Digital Meter Retrofit

The Forester’s battery has been on life support from an ancient Schauer “Solid State” charger (which may have Come With The House™) for the last year:

Schauer battery charger - analog ammeter
Schauer battery charger – analog ammeter

A remote Squidwrench session provided an opportunity to replace its OEM ammeter with a cheap volt-amp meter:

Schauer battery charger - digital meter
Schauer battery charger – digital meter

The charger is “solid state” because it contains silicon electronics:

Schauer battery charger - solid state components
Schauer battery charger – solid state components

That’s an SCR implanted in the aluminum heatsink. The other side has a Motorola 18356 house number, a date code that might be 523, and the word MEXICO. The company now known as NXP says Motorola opened its Guadalajara plant in 1969, so they could have built the SCR in either 1973 or 1975; it’s not clear who manufactures what these days.

The black tubing contains at least one part with enough value to justify the (presumably) Kovar lead; nowadays, it would be a “gold tone” finish. It’s probably a Zener diode setting the trickle-charging voltage, joined to the resistor lead in the crimped block. I don’t know if the glass diode is soldered to the Zener, but I’m reasonably sure if the third lead came from a transistor tucked inside the sleeve, we’d read about it on the charger’s front cover.

In an ideal world, a digital meter would fit into a matching rectangular hole in the front panel, but that’s not the world we live in. After wrestling my gotta-make-a-solid-model jones to the floor, I got primal on a random slab of soft-ish plastic sheet:

Schauer battery charger - bezel nibbling
Schauer battery charger – bezel nibbling

There’s nothing like some bandsaw / belt sander / nibbler action to jam a square peg into a round hole:

Schauer battery charger - bezel test fit
Schauer battery charger – bezel test fit

It’s actually a firm press fit; whenever something like that happens, you know the project will end well.

Hot melt glue FTW:

Schauer battery charger - digital meter wiring
Schauer battery charger – digital meter wiring

The new meter’s (heavy) red-black leads go to the same terminals as the old meter’s wires, paying attention to the polarity. I splurged with insulated QD terminals on the old wires where a joint was needed.

The meter’s thin red lead expects to see a power supply under 50 V with no particular regulation requirements, so I used the same flying-component design as the rest of the charger:

Schauer battery charger - meter power supply
Schauer battery charger – meter power supply

The meter draws basically no current, at least on the scale of an automotive battery charger, so the 220 µf cap holds pretty nearly the peak 18 V half-wave rectified from the center tap by a 1N5819 Schottky diode.

Those two squares riveted to the back panel are genuine selenium rectifiers, from back in the day when silicon power diodes weren’t cheap and readily available. They also limit the charger’s peak current and have yet to emit their incredibly foul stench upon failure; you always know exactly what died when that happens.

Selenium rectifiers were pretty much obsolete by the early 1970s, agreeing with a 1973 date code. Schauer might have been working through their stockpile of obsolete rectifiers, which would have been sunk-cost-cheap compared to silicon diodes.

The meter’s thin black lead goes to the power supply common point, which turns out to be where those rectifiers meet. The larger black wire goes off to the meter’s fat black lead on the other side of the aluminum heatsink, joining it in a new insulated QD terminal.

The meter’s thin yellow wire is its voltage sense input, which gets soldered directly to the hot lead of the SCR.

The meter indicates DC voltages and currents, which definitely isn’t the situation in the 100 Ω power resistor shown in the second picture.

The voltage:

Schauer battery charger - voltage waveform
Schauer battery charger – voltage waveform

And the current at 20 mA/div, showing why silicon replaced selenium:

Schauer battery charger - current waveform
Schauer battery charger – current waveform

Yes, the current does go negative while the rectifiers figure out what to do next.

The charger seems a little happier out in the garage:

Schauer battery charger - in use
Schauer battery charger – in use

The battery holds the voltage steady at 13.7 V, with the charger producing 85 mV blips every second or so:

Schauer battery charger - float V pulse
Schauer battery charger – float V pulse

Those blips correspond to 3 A pulses rammed into the battery:

Schauer battery charger - float A pulse - 1 A-div
Schauer battery charger – float A pulse – 1 A-div

They’re measured across a 1 Ω series resistor that’s surely limiting the maximum current: 18 V from the transformer minus 13.7 V on the battery minus other IR losses doesn’t leave room for anything more than 3 V across the resistor. I wasn’t going to haul the Tek current probes out to the garage just for the occasion.

Opening the Forester’s door to turn on all its LED interior lights bumps the meter to about 1 A, although the truth is more complicated:

Schauer battery charger - loaded A pulse - 1 A-div
Schauer battery charger – loaded A pulse – 1 A-div

The average current is, indeed, just under 1 A, but in this situation the meter’s cool blue number seems more like a comfort indicator than anything particularly reliable.

All I really wanted from the meter was an indication that the trickle charger was trickling, so I disconnected Tiny Scope, declared victory, and closed the garage door.

Ed’s Low-Effort High Traction Bread

Being that type of guy, perhaps I snug the plastic film over the top of the mixing bowl a bit too securely:

Yeast at work
Yeast at work

The dough descends from my High-Traction Bread, prepared with my low-effort version of the NY Times no-knead recipe.

The current dramatis personae:

  • 2 cups whole wheat flour (coarse grind OK)
  • 1 cup bread flour
  • ½ cup rye flour
  • ½ cup whey protein (dry milk powder OK)
  • 1 tsp yeast
  • 1 tsp salt
  • 1-½ cup warmish water

Let the mixer work on the dry ingredients for a while, then slowly pour the water into the bowl. The dough will (probably) become a thick batter, which is perfectly OK. Cover with plastic wrap as above, let it sit from afternoon until the next morning, plop the dough / batter on a floured silicone sheet, chivvy it into a lump, cover with the wrap, let it sit for a couple more hours.

Fire the oven to 450 °F, get the pot crazy hot, plop the lump inside, cook 25 minutes covered and 10 more uncovered, dump on a rack, slice off a QC sample, slather with butter, enjoy.

Makes a 700 gram = 24 ounce loaf lump: 1600 kcal, 320 g carb, 90 g protein. A serving might be a scant two ounces: 135 kcal, 26 g carb, 7 g protein.

Not keto-oid, but it’ll keep you warm in the Basement Laboratory.

You may safely ignore all recommendations concerning exact times, temperatures, and suchlike; this ain’t no damn fainting-flower souffle.

You could get used to it …

Handle With Care – FRAGILE – Thank You

I wonder if somebody took careful aim at this particular corner:

FRAGILE package damage
FRAGILE package damage

Well, it arrived in a more-or-less timely manner, unlike some packages and letters we’ve both sent and received of late. Tracking data suggests packages can vanish for days at a time, teleport to distant sorting centers, and sometimes loop between centers.

The USPS may simply have run out of people willing to work under the current conditions.

Blog Summary: 2020

You can’t make up results like this for a techie kind of blog:

Blog Top Post Summary - 2020-12-31
Blog Top Post Summary – 2020-12-31

Given my demographic cohort, bedbugs suddenly seemed downright friendly.

Overall, this blog had 109 k visitors and 204 k page views. The ratio of 1.8 pages / visitor has been roughly constant for the last few years, so I assume most folks find one more interesting post before wandering off.

My take from the increasing volume of ads WordPress shovels at those of you who (foolishly) aren’t using an ad blocker continues to fall:

Blog Ad Summary - 2020-12-31
Blog Ad Summary – 2020-12-31

The CPM graph scale seems deliberately scrunched, but the value now ticks along at 25¢ / thousand impressions, adding up to perhaps $250 over the full year. Obviously, I’m not in this for the money.

The ratio of five ads per page view remains more or less constant. Because Google continues to neuter Chrome’s ad blocking ability, I highly recommend using Firefox with uBlock Origin.

WordPress gives me no control over which ads they serve, nor where they put ads on the page. By paying WordPress about $50 / year I could turn off all their ads and convert the blog into a dead loss. I’m nearing their 3 GB limit for media files on a “free” blog, so the calculation may change late next year.

Onward, into Year Two …

Straightening Armature Wire

Although I was blithely unaware when I bought some useful-looking surplus, it turns out 1/16 inch armature wire works really well to seal our homebrew masks around our noses. Mary added a narrow passage along the top edge of her slightly reshaped Fu Mask pattern to retain the wire and I provided 4.5 inch lengths of straightened wire:

Armature wire - stock vs. straightened
Armature wire – stock vs. straightened

The wire comes off the roll in dead-soft condition, so I can straighten (and slightly harden) it by simply rolling each wire with eight fingertips across the battered cutting board. The slightly wavy wire shows its as-cut condition and the three straight ones are ready for their masks.

Although nearly pure aluminum wire doesn’t work-harden quickly, half a year of mask duty definitely takes its toll. This sample came from my biking mask after the edges wore out:

Armature wire - work-hardened
Armature wire – work-hardened

We initially thought using two wires would provide a better fit, but more metal just made adjusting the nose seal more difficult after each washing. The wire has work-hardened enough to make the sharper bends pretty much permanent; they can be further bent, but no longer roll out under finger pressure.

Although we’re not yet at the point where we must reuse wires, I took this as an opportunity to improve my annealing hand: heat the wire almost to its melting point, hold it there for a few seconds, then let it cool slowly. The usual technique involves covering the aluminum with something like hand soap or permanent marker ink, heat until the soap / marker burns away, then let it air-cool. Unlike steel, there’s no need for quenching or tempering.

Blue Sharpie worked surprisingly well with a propane torch:

Armature wire - annealed straightened
Armature wire – annealed straightened

As far as I can tell after a few attempts, the pigment vanishes just below the annealing temperature and requires another pass to reach the right temperature. Sweep the flame steadily, don’t pause, and don’t hold the wire over anything melt-able.

Those wires (I cut the doubled wire apart) aren’t quite as soft as the original stock, but they rolled straight and are certainly good enough for our simple needs; they’re back in the Basement Laboratory Warehouse for future (re)use.

Monthly Science: COVID-19 Lagged CFR

In round numbers, a nasty COVID-19 infection ramps up for a week before you develop enough symptoms to finally get tested. Various states report various combinations of test results as confirmed / probable / tested “cases”, with “tested” including any possible combination (or lack thereof) of viral / antibody presence. As a result, the number of “daily cases” doesn’t mean much, but it’s the only number we’re likely to get. With that in mind, about 6% of those tested have a positive result for whatever they’re being tested for. Got that?

At some point within a week or two of being infected, tested, and found positive, about 2.8% of all cases will be hospitalized. That’s 2.4% of cases in the 18-49 age bracket and 4.3% of my decade (64-75):

COVID-19-NET_Image - Weekly Hospitalizations - 2020-06-24
COVID-19-NET_Image – Weekly Hospitalizations – 2020-06-24

You get the Weekly Rate chart from the CDC’s weekly data by drilling into the Hospitalization block to reach the summary chart (through Additional Rate Data), dinking with the controls to show the Weekly Rate and COVID-NET Surveillance Area, then turning off the overlapping age ranges. Most of us seem to have an Underlying Medical Condition or two affecting the outcome.

Roughly a week (more or less, kinda-sorta) after hospitalization, 15% of all patients and 28% of those over 65 will die:

COVID-19 - Weekly Hospitalization Outcomes by Age - 2020-06-24
COVID-19 – Weekly Hospitalization Outcomes by Age – 2020-06-24

You get that chart from the Lab-Confirmed Hospitalizations page by dinking around with the controls for the lower-right pane. The Overall column represent 5800 patients and, as it happens, each column represents about 2000 patients.

Because it takes about three weeks to go from “infected” to “dead”, the ratio of [daily deaths today] to [daily positive test results from three weeks earlier] gives (In My Opinion) a better indication of the expected outcome than the simpler ratio of [today’s deaths] to [today’s test positives]. Because the news headlines always feature cumulative numbers, these numbers aren’t at the tip of anyone’s awareness.

Fetch the daily data as a CSV from the COVID Tracking Project’s Historical Data, compute the day-to-day values from the appropriate columns, then slam the columns into a graph:

COVID-19 - Lagged Daily CFR - 2020-06-23
COVID-19 – Lagged Daily CFR – 2020-06-23

The strong weekly component is surely a combination of data aggregation (no weekend reports?) and actual death events (nobody dies on Sunday?), but there’s no way to know from here. There’s plenty of noise in April which I decided to completely ignore; consult the raw data and draw your own conclusion.

Eyeballometrically, the lagged CFR has been declining linearly by 1% every 3 weeks since mid-May and should be around 2% in July. If you’re under 50 and in reasonable health, the news is even better, because you’re very unlikely to either need hospitalization or die from it. Again, work the numbers out for yourself from the raw data.

However, AFAICT, those results depend on a relatively unloaded healthcare system, because little of the US has (yet) to experience the catastrophic overload seen during the early onset in Washington state and NYC. This chart of ICU occupancy suggests the worst is yet to come for folks in states where expectations don’t match up to the reality of exponential growth:

COVID-19 - All-patient ICU occupancy - 2020-06-23
COVID-19 – All-patient ICU occupancy – 2020-06-23

It seems having the ICUs tick along at 50% occupancy is about right, so the states with 70+% occupancy don’t have much surge margin.

Right now, COVID-19 is burning through the US population at about 30,000 confirmed new cases per day, which means 840 people will require hospitalization every day next week (in addition to all the usual hospitalizations for other causes) and, in another week, 126 people will die every day. Maybe 40 people under age 50 will die, so the human herd will develop immunity by killing off we Olde Fartes.

After I ran those numbers, the rate passed 40,000 cases per day, with no sign of slowing down and indications it’s getting worse faster. Scale my numbers up by 30%: 1100 hospitalizations and 170 deaths per day in a few weeks.

However, if you live in one of those dark purple states already showing 70+% ICU utilization, don’t do anything starting with “Hold my beer. Watch this!” because you will not get a welcoming Emergency Room reception. The CNN synoptic view of new cases continues to be informative.

One of Mary’s cronies is married to a guy who knows this whole COVID-19 thing is a hoax: “They’d all have died of something else, anyway.” Plotting all-cause fatalities vs. age (2020 in red, last five years in gray) shows tens of thousands of people are dying from something new this year:

All-cause deaths by age - current vs historical - 2020-06-26
All-cause deaths by age – current vs historical – 2020-06-26

Before you do the happy dance about the downward slope toward the right, read the disclaimer:

Data are incomplete because of the lag in time between when the death occurred and when the death certificate is completed, submitted to NCHS and processed for reporting purposes. This delay can range from 1 week to 8 weeks or more, depending on the jurisdiction and cause of death.

Some of the decline is real, because NYC hospitals aren’t running out of body bags nowadays, but much of it seems due to the paperwork not catching up with reality.

Judging from the slope of the Johns Hopkins summary of daily cases in the US, corroborated by the CNN projections, the doubling time (before the most recent increases) runs around four weeks: five million cases by the end of July and ten million by the end of August. Later this year, we’ll know how well saying “It’ll be gone by April summer Election Day 2021″ without doing anything has worked out for us.

The overall death rate should decline in a few years, because those (of us?) who died early will reduce the later rate, but it’s not something to look forward to.

Back to the Basement Laboratory … and, on good days, the rail trail.