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

 

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 or Saturday. Then Saturday. Then 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 this 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 tomorrow. 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.

Now, our first chickens we ordered were from a large hatchery about an hour from our house. It was a bit of a trip, but we drove down and drove our birds back. We even had a blanket to keep them extra toasty on the ride home. It was a nice, thick cardboard box with a cute little nest in it. There wasn’t any heat source (it was also August!), water, or food … but I figured that was because we were picking the chicks up at the hatchery. The second chickens were ordered from a small hatchery that has on a couple of rare breeds. They shipped the chicks express priority, had a heat pack glued down to the bottom of the box, added plenty of straw, and had containers of gel nutrient (combo food and water) stuck in two corners of the box. They also included three extra chicks — one of my rare breed and two Rhode Island Reds — to ensure there was enough body heat. The chicks were all healthy and perky when we picked them up. This hatchery from which I ordered the turkeys? They had a heat pack stuck to the bottom of the box. And that’s it. No food. No water. One was dead, and a second was barely breathing. The heat pack was a little warm, but certainly not keeping them in the upper 90’s. I held the little guy, and we got a little bit of water into it. But his breathing slowed down, and he died. They shipped us seven turkeys, so I don’t really have room to complain because we have five live birds. But it’s awful that the hatchery wouldn’t put some nutrient gel in the box like Bresse Farms did. I wouldn’t order from them again based just on this fact, and I now know to chat with the hatchery first and get more details on their shipping techniques before ordering.

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.

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