New Batch of Soap

We made a new batch of soap this evening — my normal 20% superfat coconut oil recipe but with 2 oz of beeswax. Anya melted the oils, and I mixed in the lye.

I mixed in a cool blue pigment. The portion I was stirring stayed nice and fluid, but the un-colored soap seized up rather quickly. Anya swirled it around in the mold. The cool blue color … turned purple!

All in all, it wasn’t my most successful soap making adventure 🙂 But it’ll clean us up (and we were pretty much out of soap in the house!)

Bath Time for Kittens

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!

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

Ash is still a very snuggly kitten. Anya spends a lot of time holding him — she will read a book while he sleeps (and sometimes she naps too … I always tell her you know you are getting old when a nap sounds like a good idea, so now she tells me she’s getting old!)

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

Scott and his friend Joe smoked ribs tonight — I baked potatoes and cooked up some of the corn from our garden. Very tasty — and I need to remember that I like BBQ sauce when it’s been heated on the grill for a while and has gotten caramelized and sticky!

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=:”