Author: Lisa

Freedom!!?

About a year ago, my boss observed that this entire pandemic sitch is just a nightmare for those with analytical thought processes.. Engineering, science, analytic types. Mathematically? The country was basically in a worse place when the health orders were lifted than it was when the orders were put in place last year. That was astonishing to me. And kind of like the anti-environmentalists who don’t seem to realize they need to drink the water and breath the air … even if you’re vaccinated and have a very good probability of avoiding hospitalization? Getting sick for a week sucks. It sucked ten years ago, it’ll suck ten years from now. But, if you can mitigate your risk of feeling like an elephant is roosting on your chest for a week … what’s the reasonable thought process that leads to someone saying “I’m going to show how very free I am by getting painfully ill”?!

I mean, there are plenty of ways to partake in your American Freedoms that aren’t painful illness. Head out to the range, rent a gun for a few hours, and fire off a couple dozen 50 caliber rounds. Publish a rant against whatever part of government irked you this week. Spend the weekend attending church services for ten different religions. Hell, marvel at the fact there’s not an uninvited soldier camped out in your spare bedroom and that the cops aren’t rifling through your belongings. And that just covers the first five articles in the bill of rights.

In fact …

Article Way to enjoy it
I Spend a weekend attending services for a dozen different churches (synagogs, mosques, etc)
II Hire a gun at a range and spend the afternoon popping off 50-cal rounds
III Marvel at how your spare bedroom is not occupied by an uninvited soldier
IV Notice how the police are not rifling through your personal belongings just because they can
V, VI, VII, VIII Don’t know that I’d commit a crime just to enjoy my right not to provide evidence against myself, be subjected to cruel or unusual pubishment, or experience a speedy, public trial … but you do you.
IX Go to work?
X Oooh, experience all of the things your state does control — maybe hang at the DMV and renew your license
XI Umm … well Michigan hasn’t sued Ohio today. Does that count?
XII Well, you cannot be part of the electoral college … but you CAN vote
XII No more slaves
XIV The state isn’t depriving me of life, liberty and such.
XV My rights aren’t being abridged because of my race
XVI Taxes were withheld from my paycheque this week. Yeah!???
XVII My state has tw senators
XVIII Grab a pint!
XIX I’m a woman, and I can vote!
XX Watch the certification of the election
XXI Grab another pint!

Sustainability and meat

I’ve seen a lot of info on the incredible (bad) environmental impact of meat production — the amount of land and water it takes to grow a cow is staggering. Something like 77% of the world’s land that is used for agriculture is used to graze livestock. Lamb/mutton, beef, and cheese (mostly cows still) top the list of inefficient ways to produce a gram of protein. I see plant-based fake meat (Beyond, Impossible, etc) marketing toward this — a lower impact way to enjoy a burger. I’d like to see more focus on using existing food sources to reduce the amount of meat contained in meals — rewriting recipes to reduce meat consumption.

I make a lot of meals where meat is a small component of the dish — additions instead of subtractions from the normal recipe. Enhancements instead of restrictions. Turkey burgers with lots of spinach, some feta, and garlic. Stroganoff with three different types of mushrooms, plenty of onions, and a bit of beef. Tacos and wraps loaded with rice, beans, tomatoes, onions, avocado, cheese, grilled corn, and a little grilled chicken. Sloppy joe sandwiches where half of the ground beef is replaced with red lentils. Pasta salad that’s more salad than pasta with a little bit of diced pepperoni. We have completely vegetarian meals, and I use the Beyond/Impossible substitutes to make meatball subs or sausage pizza. That all balances out the grilled steak or rack of ribs some other day.

New Hatchling Countdown

One of our chickens, Astra, has become broody. We had been getting her out of the nest once a day to eat/drink/defecate and collecting the eggs. But it’s getting on in the year, and we wanted to raise more broilers. We decided to take this opportunity to hatch some new chickens — not all 100% American Bresse, but still chickens. It seems like the chickens have a really cool agreement that she’s in charge of incubating eggs. She sits on the nest all day, but seemingly gets up and allows other chickens to lay eggs that she’ll keep safe.

Anya counted 12 eggs under Astra — 2 from Sunshine (Buff Orpington), 4 from Queenington (Green Queen), and 6 from the Bresse. She’s got each egg marked so we can collect any newly laid eggs … and we should have new chicks in about 21 days — around August 3rd. We’re bringing her food and water a few times a day, so (hopefully) she’ll stay healthy over the next couple of weeks.

Towel Money

People seem to assume the fact you’ve managed to amass money to be a fact that vouches for you … like you cannot be inept / senseless / bad at managing money because, look at that, you’ve got money. Doesn’t matter if you inherited (and subsequently lost much of) a bigger load of money, managed to injure yourself in some stunningly original way that requires some company to fork over millions, tripped over your untied shoelaces and discovered the lost Civil War gold. You have money, so you’re awesome at life.
It makes me think of the towel in the Hitchhiker’s Guide series — encounter someone while you’re wandering and, if they’ve managed to keep track of something so trivial as their towel, then they’ve obviously got it together.

Docker and Windows — Unable to Allocate Port

On the most recent iteration of Windows (20H2 build 19042.1052) and Docker Desktop (20.10.7 built Wed Jun 2 11:54:58 2021), I found myself unable to launch my Oracle container. The error indicated that the binding was forbidden.

 

C:\WINDOWS\system32>docker start oracleDB
Error response from daemon: Ports are not available: listen tcp 0.0.0.0:1521: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
Error: failed to start containers: oracleDB

Forbidden by whom?! Windows, it seems. Checking excluded ports using netsh:

netsh int ipv4 show excludedportrange protocol=tcp

Shows that there are all sorts of ports being forbidden — Hyper-V is grabbing a lot of ports when it starts. To avoid that, you’ve got to add a manual excluded port for the one you want to use.

To reserve the port for your own use, disable Hyper-V (reboot), add a port exclusion, and enable Hyper-V (reboot)

REM Disable Hyper-V
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V 
REM REBOOT ... then add an exclusion for the Oracle DB Port
netsh int ipv4 add excludedportrange protocol=tcp startport=1521 numberofports=1 
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
REM REBOOT again

Now 1521 is reserved for Oracle

ADO – Migrating a Repository to Azure Repos (and keeping your commit history)

The most direct way to migrate a repo into Azure Repos is to create a new, blank repository. This may mean making a new project. From the organization’s main page, click “New project”

Or it may mean making a new repo in an existing project. From an existing repo, click the drown-down next to the repo name and select “New repository”

Name the repository but don’t add a README. We want a blank repo

Note the URL to the repository – in this case, it’s https://ado0255@dev.azure.com/ado0255/History%20Test/_git/Another%20History%20Test

Find the URL for your existing Git repo – if you cd into the project’s folder and run “git remote -v”, you will get a list of the repos. Make a new folder somewhere – this is a temporary staging area to move the data from your existing repo over to the new Azure Repo. Change directories into your new folder. Run git clone –mirror URLToOldRepo

You will see data being downloaded from your git server.

Change directories into the folder that just got downloaded. You won’t see your code like you normally do when you clone a git repo. You’re looking at the underlying git stuff that makes up the repo. You’re code is all in there, as are all of the branches and commit history.

Now add the new Azure Repo as a remote – in this case, I’m naming the remote “ado”. Then run “git push ado –all” to push everything up to the new Azure Repo.

Stuff will transfer – you may be prompted to log into your ADO repository first. Eventually, you’ll see new branches being created on the remote and the process will complete.

Refreshing the Azure Repo, you’ll now see the files.

Selecting “Commits” will display the commit history.

Anyone else using the repo will need to add the new remote. Use “git remote rm origin” to remove the existing origin, then use “git remote add origin url” to add the new Azure Repo as origin.

ADO – Cleaning up test repos and projects

I find the process to delete repositories and projects to be nonintuitive. Since I create a lot of projects and repos for testing and documentation, it’s nice to be able to clean them up when I’m done!

To delete an Azure Repo, navigate to a repo and select the drop-down next to the repo name. Select “Manage repositories”

With your mouse over a repository, there’s a hamburger menu at the right-hand side of the listing. Click it and select “Delete”

You’ll need to type the repository’s full name to activate the delete button.

To delete a project, go to the organization’s home page and select “Organization Settings” from the lower left-hand corner of the screen.

Select “Projects” from the left-hand navigation bar

With your mouse over the project listing, you’ll have a hamburger menu. Click it and select “Delete Project”

You’ll need to type the project name to activate the delete button.

 

Math Time — COVID Edition

Scott’s dad gets on our cases about being paranoid hypochondriacs (or whatever) because we’re still wearing masks and have Anya in online school for another year. The governor dropped the health orders, after all. Anya is too young to be vaccinated, but he’s safe … and kids don’t get sick anyway. Now, I don’t believe the latter two “facts” — kids do get sick, even if it’s less virulent. And I’ve never seen anything published that indicates vaccinated individuals don’t spread the virus. Just that they don’t feel unwell (which, in my mind, makes them more likely to spread it ’cause they don’t know they are sick … the Yankees having so many vaccinated people test positive sticks in my mind. They wouldn’t have known they were sick if it weren’t for what I assume is routine team-wide testing). And it’s difficult to explain to someone who has already made a decision … but the math just doesn’t support the “it’s all good” attitude people are adopting. I’m not an epidemiologist — I went to school for theoretical physics and work in computer science. I have done a lot of data mining and analysis, so I’ve got a decent understanding of the math side of epidemiology without any of the “so what do we do about it” medical knowledge. That being said … the math side of it can be helpful.

There’s a rate of spread for infections — computer viruses or human, in fact. There’s an initial rate of spread when no one has any immunity / has patched their computer (R0 to epidemiologist). If one person gets the virus, they give it to x people over the course of their infection. This is where you either see the total number of infected people trend toward zero of infinity — that is, if one infected person infects 0.5 (i.e. for every two infected people, you get one more person infected) … eventually the virus dies out. If one infected person infects ten others? This is a ever increasing progression — those ten each infect ten more for 100 infected people. Who each infect 10 for 1000 infected people. Which doesn’t seem bad — but those each infect 10 for 10,000 infected. Then 100,000. For each iteration, the number of infected people is 10^n — 10,000,000,000 is ten iterations down.

But preventative measures get taken — in one case, a computer virus caused my employer to shut down the LAN facing ports on every router in the company. Techs had to walk around with a fix-it CD, clean up every computer on a subnet, and then request the subnet be returned to the network. And, if we saw the virus propagating from that subnet? It got locked down again. Highly disruptive, but effective. And that’s where we were last spring with stay-at-home orders.

There are less severe precautions — computers have anti-virus software that look for virus-like activity for day zero identification. In human terms, that means we’re washing our hands after coming home from an outing. Or, as of last spring, wearing masks. Any of these precautions reduce the R0 value — but it can be difficult to predict exactly how much these actions will reduce the rate of spread.

Vaccines, on the other hand, have a quantified (and published) impact on spread. That efficacy and the percentage of the population that has been vaccinated scale the R0 value. The effective rate of spread is R0 * (1 – ( (vaccine efficacy) * (% of population that is vaccinated) ) ). If a vaccine prevents infection for half of the people who are exposed, then the effective rate of spread after vaccination is R0 * (1 – 0.5 * % of population that is vaccinated)). If a vaccine can prevent 90% of infections from occurring, the effective rate of spread after vaccination is R0 * (1 – 0.9 * % of population that is vaccinated)).

For convenience, I am going to ignore partially vaccinated individuals because I don’t know how effective a partial dose is at preventing transmission. The R0 published last year was around 3 — with about 40% of the population vaccinated with a 95% effective vaccine, that’s an effective rate of spread around 1.86 without other precautions being taken.

Now my numbers aren’t perfect — but this is almost a best-case effective rate of transmission. Another ten percent or so of the population is half-way vaccinated even if I don’t want to get that granular with my maths. But plenty of people got a 80-something percent effective vaccine, too. And the efficacy of each vaccine is reduced against variants. Having an effective transmission rate hovering around 2 seems, to me, like a premature time to cease taking other precautions.

County Building Department

It strikes me, every time I talk to someone from the auditor’s office or the building department, that county officials must talk to a lot of people after-the-fact … like they built a shed, someone noticed it, and now they’re going through the permitting process for that shed. Because they always seem surprised that I’m in the planning stages of a project and am ringing them up to make sure I’m doing all the right things in the right order.

My note-to-self for the day — while the Medina County Building Department does permit fences over 6′, they do not require anything for agricultural buildings and fences. If you’ve got an agricultural exemption from the Township for a building, they’ll happily agree that the fence around / next to that building is for agricultural use as well. (For non-agricultural fences, you fill out the residential building form and specify the perimeter of the fence for the sq ft area and not the square footage enclosed by the fence).

Thus, I’ve concluded that the steps to build a bigger chicken coop and a pasture are:

  1. Submit the agricultural exemption form to the township
  2. Once it is approved, e-mail a copy to the Medina County Building Department for their records (so when someone rings them up about some construction that doesn’t look like it should be there, the don’t have to waste a day driving out to look at a chicken coop)
  3. Build it

Our coop and greenhouse shouldn’t need a permit from the county because the size is under 200 sq ft.

Fence Options

We’re planning out a pasture for the chickens and turkeys — mostly back in the woods so they’ve got plenty of cover, lots of tree detritus to scratch at, and shade on these hot summer days. There are plenty of options for fencing — and a big jump in prices between 5′ and 6′ high fences. We’re thinking about overlapping two rolls of fence to create a cheaper version of 6+ foot high fencing — it’s $120 for two 3′ rolls v/s $160 for a single 6′ roll. Even a 3′ and a 4′ roll, creating a higher fence with maybe 6″ of overlap, is $140. Securing the two pieces along the entire fence line will be increased effort, but rolling out 6′ of fencing seems like it might be a lot of effort compared to rolling out a 4′ and a 3′ roll.