Ash had his first bath today — he was pretty calm. He wasn’t super thrilled to be walking around in a tub full of water, but he loved her rubbing soap into his pelt. Getting rinsed off wasn’t awesome, but he was happy to be snuggled in a fluffy towel and dried off.
Kitten Returns
Anya got Ash back in the house! She fed him a big dish of tuna, and he let her pet him as he ate. She was petting his face and moved back down to pet his shoulders … and she picked him up and brought him back inside. I know she’ll be a lot more careful in the future so he doesn’t get outside until he really trusts us!
Kitten Escape
Pancake Molds
I had purchased silicone pancake molds a while ago — Anya likes to make fancy shaped pancakes, but I really do not like scrubbing cookie cutters that have been used as pancake forms. Finally tried them out today — they are really easy to use. If you put the part with the lip facing down, pour in some batter, and let them cook … you can pick up the mold and flip it to continue cooking the other side.
Voila — we’ve got heart and flower shaped pancakes:
Kitten Snuggles
Quiet Quitting, 87 hours, and employee exploitation
This past week, I’ve been reading about how Musk expects “dedication” from employees like 87 hour work-weeks and somehow that’s OK because it’s nothing he doesn’t do himself. I’m sure it’s willful ignorance, but how can he not see the difference between the owner of a company putting 80+ hours a week into their company and the person whose 40 hours his company bought being expected to donate another 40+ hours a week to his cause?! Does he get angry at the steel manufacturer because they only deliver five tonnes when he ordered and paid for five tonnes?
BBQ Ribs
Autumn Sunset
Kafka – Messages Not Appearing in Topic
I created a few new Kafka topics for a project today — but, in testing, messages sent to the topic weren’t there. I normally echo some string into “kafka-console-producer.sh” to test messages. Evidently, STDERR wasn’t getting rendered back to my screen this way. I ran the producer script to get the “>” prompt and tried again — voila, a useful error:
[2022-10-31 15:36:23,471] ERROR Error when sending message to topic MyTopic with key: null, value: 4 bytes with error: (org.apache.kafka.clients.pro.internals.ErrorLoggingCallback)
org.apache.kafka.common.InvalidRecordException: Compacted topic cannot accept message without key in topic partition MyTopic-0.
Ohhh — that makes sense! They’ve got an existing process on a different Kafka server, and I just mirrored the configuration without researching what the configuration meant. They use “compact” as their cleanup policy — so messages don’t really age out of the topic. They age out when a newer message with that key gets posted. It’s a neat algorithm that I remember encountering when I first started reading the Kafka documentation … but it’s not something I had a reason to use. The other data we have transiting our Kafka cluster is time-series data where we want all of the info for trending. Having just the most recent, say, CPU utilization on my server isn’t terribly useful. But it makes sense — if I instruct the topic to clean up old data but retain the most recent message for each key … I need to be giving it a key!
Adding a parameter to parse the string into a key/value pair and provide the separator led to data being published to the clients:
echo “test:EchoTest” | /kafka/bin/kafka-console-producer.sh –bootstrap-server $(hostname):9092 –topic MyTopic –property “parse.key=true” –property “key.separator=:”







