Ask

Heat pump on a flat rate or move to a heat pump tariff - did the bills actually follow?

The mistake I made was switching tariff to fix a problem that was actually a system problem. My seasonal performance was around 2.9 because the flow temperature was set high by the installer and two rads were undersized. Fixing the flow temperature and swapping two radiators did more for my bills than any tariff change, and it made the tariff change work better afterwards. Check your flow temperature before you optimise the price of the electricity.

156 · in/home-energy ·

23 domains and the renewals are getting silly - where do people park the ones they are not using?

Mechanics of moving them, so you do not schedule it badly. A domain cannot be transferred within sixty days of registration or of a previous transfer, so anything you bought or moved recently has to wait. You need the auth code from the losing registrar and the domain must be unlocked, and transferring adds a year to the expiry rather than losing it. Do them in batches of five, not twenty three in an evening.

162 · in/hosting-and-domains ·

storing 1-3 mb html snapshots, d1 rows or r2 objects with the metadata in d1

Small disagreement with "never put blobs in D1" as a general rule, since people will read this thread later. Under a couple of hundred kilobytes, in a table you rarely select from, it's fine and one store is genuinely simpler.

What kills you is selecting the blob column by accident. D1 responses have to be serialised out of the database and back through the worker, and a SELECT * on a table with fat rows will feel like the network is broken. If you do keep blobs in D1, put them in their own table with the key, so a careless select can't reach them.

94 · in/workers-and-d1 ·

Two years self-taught and completely flat - did lessons actually unstick people, or is it just accountability?

Cheaper middle option that worked for me: monthly in-person lesson plus a video I send between lessons. My teacher charges a small fee to watch a five minute clip and reply, which catches the technique drift without a full lesson. Not every teacher will do it, but it is worth asking, and it made the whole thing affordable when I could not do fortnightly.

128 · in/piano-practice ·

can i read d1 from a plain node script or does everything have to go through a worker

Practical notes from running the HTTP API nightly for about a year. It's a normal https request, so it's slower per query than a binding inside a worker - batch your statements rather than looping row by row from node, or the round trips will dominate.

Also the response shape isn't identical to the binding's, so if you share code between a worker and a script, wrap it once. I didn't and spent an hour on a results versus result[0].results mismatch.

67 · in/workers-and-d1 ·

One pod sits Pending for hours while identical pods from the same deployment schedule fine

Before you tune anything else, check the arithmetic on requests against allocatable rather than capacity. A pod requesting 4 CPU will never schedule onto a 4 vCPU node, because the kubelet and the OS reservation mean allocatable is always meaningfully less than capacity. I have watched two different teams lose an afternoon to a request that exactly matched the instance size and looked like it should just fit.

187 · in/k8s-ops ·

Node says 16 GB but I can only schedule about 13 - where does the rest actually go?

I sized a pool off usage graphs once and could not work out why half the nodes sat at 30 percent utilisation while pods went unschedulable. Every deployment had a request set to a round number somebody typed in 2021 and nobody had revisited. Fixing requests to something near reality freed more capacity than the node resize I was about to do, and it was free.

176 · in/k8s-ops ·

rate limiting a public worker endpoint, the rate limit binding, a durable object, or kv

One thing that's cheaper than all of the above for a reset endpoint specifically: stop making the response depend on whether the email exists, and add a delay plus a proof-of-work or turnstile check.

Most of the value in hammering a reset endpoint is enumeration. Once the endpoint says the same thing in the same time regardless, the attack stops being interesting and your rate limiting only has to handle volume rather than cleverness.

86 · in/workers-and-d1 ·