Bradley Kemp's Avatar

Bradley Kemp

@bradleyjkemp.dev

Experienced ignorer of Safe Browsing warnings Security @ Granola

207
Followers
308
Following
231
Posts
02.11.2023
Joined
Posts Following

Latest posts by Bradley Kemp @bradleyjkemp.dev

when the AI support agent passes you onto a human whose first message begins "you're absolutely correct, ..." 😐

thanks, now I just have LLM with a longer delay

25.02.2026 17:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

forks like this are pretty straightforward to keep updated: you just copy the latest stdlib code and re-apply your minimal patch to expose whatever internal fields you need

23.01.2026 18:41 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I think forking is the correct, idiomatic way to do this

As a comparison, Go gives you little choice in TLS cipher suite: go.dev/blog/tls-cip...

If your use case is nuanced enough to need it, you can easily maintain a fork (as people do for the TLS package: github.com/refraction-networking/utls)

23.01.2026 18:38 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
How to Say Numbers EVEN FASTER
How to Say Numbers EVEN FASTER YouTube video by TheGrayCuber

well this looks like a great nerd-snipe: given a number, is there a way to quickly find its minimal representation?

22.01.2026 15:26 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

hmm, just getting a second 16GB stick has gotta be the best bang for buck, right?

still £100+ though 😭

20.01.2026 17:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

related: I regularly see a quoted post followed shortly by the original

which always seems a bit redundant? I already saw it as part of the quoted post

11.01.2026 18:46 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I'm also mid-way through reading The Soul of a New Machine which means @bcantrill.bsky.social is 2/2 on great recommendations so far this year

07.01.2026 11:10 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Shell Game | Evan Ratliff | Substack A podcast and newsletter about things that are not what they seem, hosted by journalist Evan Ratliff. Click to read Shell Game, a Substack publication with thousands of subscribers.

been listening to the shellgame.co podcast and, wow, the LLM-dialect is so much more annoying when put through text-to-speech

overall great concept though e.g. creating a voice clone of yourself and then sending it to therapy

07.01.2026 11:07 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

guilty...

06.01.2026 17:54 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Fuses: a simple pattern for preventing runaway automation I’ve built and maintained countless β€œjanitor” systems in my career: cronjobs which go and clean up old resources like user accounts which should no longer be active. On multiple occasions, one of thos...

on _multiple_ occasions I've watched automation go rogue and suspend accounts for an entire company

since then, I've always built a fuse* into systems like this: if too much stuff tries to happen at once, the fuse blows

(* an if-statement with a fancy name)

06.01.2026 15:32 πŸ‘ 7 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I'm getting similar results for Amazon and Google badges though so πŸ€·πŸ»β€β™‚οΈ

generally frowned upon to be publicly posting pictures of your ID badge anyway, so maybe it's just very limited training data

06.01.2026 11:23 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

*not* having the company name on ID badges is pretty much corporate opsec 101

I wonder if the training data is polluted by all these etsy listings for Uber Eats drivers

06.01.2026 11:21 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
New year, new blog theme | bradleyjkemp

oof, four years since my last (personal site) blogpost 🧟

so, like every other developer's new-year writing habit, I've started with a classic mistake: spending a bunch of time re-working the theme

01.01.2026 19:39 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 1

the default behaviour of most ACME clients already seems to be renewing much earlier than technically necessary, so a properly functioning setup wouldn't see any failures

but a broken setup, or forgotten manual renewal would see aborted TLS handshakes gradually increasing

28.12.2025 13:51 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
The dangers of SSL certificates Yesterday, the Bazel team at Google did not have a very Merry Boxing Day. An SSL certificate expired for and as shown in this screenshot from the github issue. This expired certificate apparently b…

> It’s not like there’s an increasing percentage of requests that fail as you get closer to the deadline.

now there's an interesting idea for when we next shorten cert lifespans:

for the last 7d of validity, clients should start intermittently failing an increasing percentage of requests

28.12.2025 13:49 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I'm definitely mis-calibrated then: routinely going back for the last sip only to find the mug is already empty...

18.12.2025 17:42 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Valetudo Cloud replacement for vacuum robots enabling local-only operation

and, depending on the model you got, valetudo.cloud might protect you against a similar Roborock fate!

I'm stuck with eufy with its stupid 1.5GB app. literally the largest app on my phone. larger even than my podcast player including all downloaded podcasts

18.12.2025 15:14 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

it's almost 2026 and a doodad I just bought came bundled with software/drivers on a CD

12.12.2025 17:20 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
LaurieWired on X: "The SHA256 for this sentence begins with: one, eight, two, a, seven, c and nine." / X The SHA256 for this sentence begins with: one, eight, two, a, seven, c and nine.

ah that makes sense. yeah otherwise you've no choice but to brute force?

I'd assumed it was done in the "the md5 of this sentence begins..." style where you just have enough entropy (via e.g. alternate phrasing) to guarantee collision

(the dithered art style seemed good for hiding that entropy)

09.12.2025 16:08 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Constructing The Word's First JPEG XL MD5 Hash Quine A walk through of building an image that displays its own MD5 Hash

just 🀯

not just a hash quine (image which contains its own hash), but an image which can render *any* hex string without it's md5 changing

09.12.2025 14:39 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

just used this to find two liked posts which were causing the majority of weird stuff in my feed

1. enter your handle
2. scroll through and click "explain" on anything weird
3. check "top source posts" for repeat offenders
4. go un-like them

(I'm hoping that un-liking actually has an effect 🀞🏻)

29.11.2025 18:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

interesting how there's a consistent-across-models mistake in which side of the plug opens

(the location of the screw in step 4 is correct, but in reality it's the back of the plug that comes off, not the front)

26.11.2025 12:09 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

"🍌 is so close to πŸ’" still could be true though!

(assuming it's an old-school machine with rotating drums which could have those symbols adjacent)

21.11.2025 14:28 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

it's also what I predicted πŸ’ͺ🏻

19.11.2025 10:10 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

storing hashed phone number pairs is a very smart way to do this

obviously needs some further scrutiny, but this approach solves so, so many of the vulnerabilities you usually see in contact discovery systems

19.11.2025 10:09 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

in a similar vein: a surprising number of cold-email bots assume you can get the company name by:

stripping TLD from the domain name, and capitalising

I get multiple emails a week congratulating me for founding Phish...

17.11.2025 10:15 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
gemini-cli/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx at main Β· google-gemini/gemini-cli An open-source AI agent that brings the power of Gemini directly into your terminal. - google-gemini/gemini-cli

wtf it's even using React!

14.11.2025 12:12 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

so maybe IDEs should just have an integrated web panel like they do a terminal πŸ€·πŸ»β€β™‚οΈ

14.11.2025 11:17 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

the one benefit I can think of is: being in the terminal lets you embed yourself in arbitrary IDEs

cleaner than a separate GUI window, but without the overhead of maintaining separate extensions for intellij, vscode, zed, etc.

14.11.2025 11:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Making the terminal beautiful one pixel at a time- Google Developers Blog Build AI-powered Android apps! Explore the open-source Android AI Sample Catalog featuring on-device (Gemini Nano) and Cloud examples.

feels like the terminal is just an aesthetic choice now? wouldn't building an actual GUI be way simpler at this point?

> [use] your mouse to click and navigate directly within the input

> clean and polished display regardless of how you resize your window

14.11.2025 11:13 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0