Month: May 2021

Turkey Hatchery

I’d spent a good bit of time, earlier this year, researching turkeys. I ultimately decided not to buy them this year — we were adding American Bresse chickens to our flock, and we are getting a few beehives. But we kept thinking about it — specially now that the Bresse are pretty much grown up. It was, however, too late to be ordering turkeys. They were all sold out! I managed to find one hatchery — Cackle — that had a “surplus” box of random heritage turkeys available. And hatching the very next day. We decided to order five, and the turkeys hatched basically the day we ordered them.

They shipped the little guys out the next day — and then we encountered the problem with sending live animals. The delivery was Friday. Then it was Saturday. Then it was Monday — that’s a long time for little guys to be trapped in a box! We rang up the USPS 800 number and our local post office this morning. The local post office offered to call us as soon as the truck got in — 4:30 AM — if we wanted. Better than waiting another four hours until they open. Luckily, the USPS folks in Akron were proactive about animal welfare and called me Saturday afternoon. He asked if we were expecting a shipment of live chicks. I said, “oh yeah; you’ve got our turkeys, turkey?” (because we all say turkey, turkey to each other all the time). He paused for a second to parse that out then said ‘yup’. He was concerned that the animals wouldn’t make it if they were sitting at his office for the rest of the day and all day Sunday. Did we want to come out there and pick them up? Yes! They’re even open 24/7. We wrapped up the work we were doing outside and drove right over. After I went into the distribution center and was directed to the chap who called, he called out “you here for your turkeys, turkey?” — always nice to come across goofy people.

Opening the box, we had two dead poults right off — one very dead, a second taking its last breaths. We got it a little liquid, but it was way too late. Between Saturday night and Sunday, most of the turkeys didn’t make it. We hand ‘fed’ them liquids to keep them hydrated, and we moved the less vigorous birds out of the brooder into a warm box so they wouldn’t get hurt by the ones that were walking around. The two slates and what I think was a Narragansett died too.

There’s a yellow poult that is still able to stand and open its eyes, but it’s quite weak. There’s a black one with a yellow head that’s doing well — it’s drinking on its own and venturing around the brooder pecking crumbles off the floor (and it’s found the food dish a few times too). I talked to the hatchery today because (1) the post office said that priority mail express is the only one with a guaranteed delivery time-frameĀ  and (2) there wasn’t any food in the box. Turns out there is a delivery guarantee for live animal express mail. So the post office did screw up (not that it helps). They also put cubes of gel nutrient stuff in the box because it’s consumed and doesn’t leave trash — there’s enough for the three days that it’s supposed to take to deliver your birds (also doesn’t help, but made me feel a lot better about doing business with the company). We also had a chat about expecting delays given the logistics changes at the post office — mail essentially gets put on the truck the day after it gets to each hop, and it takes a lot longer for delivery. If four or six day delivery is going to be the norm, they should be putting four or six days worth of food cubes into the box!

Turkeys, Turkey!

Here are the possibilities for the turkeys we’ve got …

Breed Temperament Status Hen Tom Baby Tom Hen
Royal Palm Flighty Watch 10 16 Royal Palm Turkey Poults Royal Palm Turkey Royal Palm Turkey Poults for Sale
Narragansett Calm Threatened 14 23 Day Old Narragansett Turkey Poults Narragansett Turkey Gobbler Royal Palm Turkeys
Bronze Heritage Vary Watch 16 25 Day Old Heritage (Standard) Bronze Turkey Poults Heritage (Standard) Bronze Turkey Tom Bronze Heritage Standard Turkey For Sale
Bourbon Red Docile Watch 14 23 Day Old Bourbon Red Turkey Poults Bourbon Red Turkey Bourbon Red Turkey
Blue Slate Vary Watch 14 23 Day Old Blue Slate Turkey Poults Blue Slate Turkey Gobbler Blue Slate Turkey
Black Spanish Vary Watch 14 23 Day Old Black Spanish Turkey Poults Black Spanish Turkey Gobbler Flock of Baby Black Spanish Turkeys
Black Slate Vary Watch 14 23 Black Slate Turkey

 

Recipe: Whole Wheat Bread

I’ve been experimenting with whole wheat flour — white wheat, not red — and have happened across a technique for making light, fluffy dough. ~4 cups of flour, ~1 Tbsp yeast, ~1/2 cup of wheat gluten, ~1 tsp salt, ~1/4 c oil, ~1/4 c honey, and 2 Tbsp of lemon juice. Supposedly the healthy stuff in the whole wheat makes it difficult for gluten to form the long, stretchy chains that make bread light and bubbly. Lemon juice helps the gluten, and the resulting bread is less dense than a traditional whole wheat bread. I add enough water to make a soft dough, then leave the dough rise in a warm location (the house this time of year, or the oven with the light on). Gently deflate, form (either form a loaf or spread out a pizza crust), let rise again. Then bake however long that sort of loaf needs to bake. Using my pullman loaf pan, that’s 30-35 minutes.

It’s a great sandwich bread!

Unmasking

The CDC’s revised health guidance has a lot of people celebrating — taking off their masks and rejoicing. From a psychological standpoint, I get it. But, from a functional perspective? I don’t get the mask hatred. There’s some work we do outside (cleaning chicken coops, mowing grass, using a chainsaw) where it’s great not to inhale dust and pollen. Since we’ve got masks, we wear them. Even if SARS CoV-2 were completely eliminated from the solar system, I don’t want your cold. Or your flu. Or whatever other respiratory illness.

Before we had Anya, I thought I had an amazing immune system. I was rarely sick — like once every five or ten years. Since Anya started school — preschool, grade school — I’ve learned that I just didn’t have much exposure to pathogens. With a kid in school, everyone in the household was sick basically from November through April. I cannot believe vast swaths of the population spend half of the year sick! This past year, though? Not a sniffle (well, at least not a sniffle until pollen started blowing around in visibly yellow clouds). Why wouldn’t we continue to wear a mask and avoid the gamut of respiratory illnesses?!

Troubleshooting Kafka

Our server metrics are fed into a Kafka bus, and various applications are able to pick up and process this data. Problem is, however, that everything I’m sending doesn’t end up in the downstream system. The conflunce_kafka module I’m using in python reports that data is send along it’s merry way, but the primary system that is used to present metrics to end users says they’re not consistently getting data across the channel. Not never like there’s something outright wrong, but long periods of time where there’s no data followed by a cycle where data shows up.

I’ve exhausted all of the in-script debugging I can — the messages are getting there. But I wondered if the async nature of Kafka might mean that the client’s “it got there” wouldn’t actually mean something arrived. So I had to figure out how to test a Kafka server the same way I test my MQTT server — how do I use a quick command line program to send a message and how do I use a quick command line program to subscribe to various topics.

Turns out this is easier than anticipated — the binary build of Kafka includes windows batch files. Download the latest Kafka binary. Untar/unzip it somewhere. This is easy if you have the Win32 port of the GNU utilities and can just run “tar vxfz kafka_2.13-2.8.0.tgz”.

In the .\kafka<version>\bin\windows folder, there are kafka-console-consumer.bat and kafka-console-producer.bat files that can be used for testing Kafka. You can open two command prompts — one for the producer (sending data to Kafka) and one for the consumer (watching Kafka for new messages). In the consumer window, run

kafka-console-consumer.bat –bootstrap-server yourkafkaserver.example.com:Port –topic Test

Then, in the producer, run

kafka-console-producer.bat –broker-list yourkafkaserver.example.com:Port –topic Test

The producer will bring you to a “>” prompt where you can type some strings and hit enter to send the message to Kafka. You should see the messages pop into the consumer window.

To subscribe to multiple topics, use “–whitelist” followed by a pipe-bar delimited list of topics.

Oracle Collection Instead of Dual

I’m still retrofitting a bunch of SQL queries to use bind_by_name and came across a strange scenario. I created a recursive query (STARTS WITH / CONNECT BY PRIOR) but I needed to grab the original value too. The quickest way to accomplish this was to union in something like “select 12345CDE as equipment_id from dual”. But the only way to get a bunch of these original values grafted onto the result set is to iterate through the array once to build my :placeholder1, :placeholder2, …, placeholderN placeholders and then iterate through the array again to bind each placeholder to its proper value.

I’ve been working with Oracle collections for LIKE and IN queries, and thought I could use a table that only exists within the query to glom the entire array into a single placeholder. It works! A query like

select column_value equipment_id from TABLE(sys.ODCIVARCHAR2LIST('12345CDE', '23456BCD', '34567ABC') );

Adds each of the values to my result set.

Which means I can use a query like “select column_value as equipment_id from TABLE(:myIDs)” and bind the collection to :myIDs.

Alexa Dungeon Adventure – Lightsaber?

We managed to get a lightsaber in the Dungeon Adventure game. Scott said something like “try to smash the chest with the morningstar”, and a screen came up with the ‘do or do not, there is no try’ and said we had a new weapon. Checked the weapon list and, hey, there’s a super powerful weapon. Damage is 7d6 — so better than the super sword we were hoping to find somewhere in the dungeon.

SNL

I hate that Musk (and many other people) conflate a real condition with permission to be a jerk. You learned something about how your brain or biochemistry work and can use this information to relate better with others? Great! You learned something about how your brain or biochemistry work and take that as permission to mistreat people, defame them, etc? No good. I get PMS. It doesn’t mean I get to scream at people and verbally abuse them for a week every month.

If he had someone reading his tweets before publishing — to ensure he wasn’t, say, about to call a stranger a pedo — I’d be more accepting of the “I have Aspbergers” announcement because the announcement would have continued with “… and I understand that things I don’t consider offensive really bother people, so I’ve taken this concrete step to avoid inflicting harm on others in the future”. Similarly, considering yourself a visionary because you don’t care enough about others to think that their near certain death isn’t a big obstacle to colonizing Mars? I think that’s callousness.

Docker – List Container Startup Policies

A quick one-line Bash command to output all containers and the startup policy:

docker container ls -aq | xargs docker container inspect --format '{{ .Name }}: {{.HostConfig.RestartPolicy.Name}}'

For Docker on Windows, the following PowerShell command produces similar results:

$jsonData = docker container ls -aq |%{docker container inspect --format "{{json .}}"$_}
[System.Collections.ArrayList]$arrayContainerConfig = @()
foreach($jsonContainerConfig in $jsonData ){
	$psobjContainerConfig = ConvertFrom-JSON $jsonContainerConfig
	$arrayContainerConfig.add(@{Name=$psobjContainerConfig.Name;Hostname=$psobjContainerConfig.Config.Hostname;CurrentlyRunning=$psobjContainerConfig.State.Running;RestartPolicy=$psobjContainerConfig.HostConfig.RestartPolicy.Name})
}

$arrayContainerConfig | ForEach {[PSCustomObject]$_} | Format-Table -AutoSize