Welp, I Paid For That

Home loan balance: 3 cents.

Not bad for just-over-40 years old. Thanks to everyone in my life that’s helped, most especially borysSNORC. 🥰

[Read More]

Model Collapse and the increasing value of "pre-AI" data

There’s a curious callout at the end of this article talking about “model collapse” where an increase in non-human created data being used as sources creates problems on the outputs…

Although there is no agreed-upon way to track LLM-generated content at scale, one proposed option is community-wide coordination among organizations involved in LLM creation to share information and determine the origins of data.

In the meantime, to avoid being affected by model collapse, companies should try to preserve access to pre-2023 bulk stores of data.

[Read More]

Bluetooth Scanner With ESPHome and an ESP32

This is a super-simple one, but took some searching to find it. Add the following config to an ESPHome device and deploy it, and it’ll spam regularly in the logs every BLE device it sees.

You need an ESP32 (because they have bluetooh) and it uses the esp32_ble_tracker module.

esp32_ble_tracker:

text_sensor: 
- platform: ble_scanner 
  name: "BLE Devices Scanner"

Pretty simple, spams shit out of the logs with what’s going on every time it finds something. You really don’t want this on a device you care about, or are logging the output of, because it’s heavy on CPU/memory and noisy but it’s good for tracking things down! There’s config options to slow it down as well, but who’s got time for that? 😁

[Read More]

Fuzzy Power

So, I get a weird “buzzy” or “fuzzy” feeling when using things connected to a USB charger, unless they’re good quality grounded devices.

And yes, this includes Apple’s devices, until I use the “extension cable” which is a three-prong grounded cable.

There’s a small difference on those Apple cables - inside the “mating” connector are ground tabs which connect to the “lug” on the power brick. It’s a little hard to see, but if you squint you can tell the difference.

[Read More]

Unable to Run Search While Using map Command in Splunk

Sometimes errors are just a little too confusing for me on a Monday.

I was trying to run the following search:

| makeresults 1 
| eval cheese_id="12345", index="cheese" 
| map search="index=$index$ cheese_id=$cheese_id$ sourcetype=cheese_info"
| table cheese_id, name, description

And couldn’t work out why it was throwing the following error:

warn : Unable to run query index=cheese cheese_id=12345 sourcetype=cheese_info | table cheese_id, name, description.

Turns out that if I’d squinted a little harder at the example in the documentation, I’d have realised that I need to prepend searches with search. The UI does this automatically, but API things don’t.

[Read More]

Writing Rust-style Python

This post by @kobzol highlights some good methodologies for writing Python in a more defensive manner.

I learned that typing.assert_never allows one to inform their IDE/type checker about code which should be unreachable.

Similarly, simpler Union typing and the existence of the pyserde package make for more powerful access to data - but I’ll have to test serde against the venerable pydantic which has been my go-to for the longest time.

A good read for sure!

[Read More]