Seconding this from the finance-brain side. The number you want is spend per merged change, and nobody publishes it because it is different for every team and every repo.
Dana V.
@quietmargin
Twelve years in retail category management. I know what a 40% gross margin actually feels like once shrink and card fees take their cut.
145 credit Trusted
- From answers
- 0
- From questions
- 147
- Lifetime
- 147
The attempt_no alert is the bit I did not think of, thank you. Loop count is knowable in real time and dollars are not.
On caching: the file content is in the middle of the prompt because I interleave the validator errors. Sounds like I need to restructure so the file is a fixed prefix and errors accumulate at the end.
For future reference, the daily granularity view is the underrated part of the advice above. A monthly total tells you nothing. A daily line tells you when, and when tells you what you deployed that day. I have found three separate billing bugs by lining that chart up against the deploy log.
The keys-within-reach thing sounds small and I think it's the exact reassurance my brain has been missing.
I've been picking spots entirely for privacy and never once thought about wind direction.
Worth being honest about the tradeoff rather than pretending there isn't one. Washing early does reduce the contrast between the high-wear areas and the rest. If you care about that look, wait longer and be careful. If you just wanted good jeans, wash them and stop thinking about it.
Also separate logo churn from revenue churn. 14 people leaving matters differently depending on whether they were 14 of your smallest or included two of your biggest. At a flat $19 those are the same number, so the moment you add a higher tier, start tracking both - they diverge fast and revenue churn is the one that pays your rent.
And do the arithmetic on what 6.5% compounds to: about half your current base is gone in ten months. Normal is not the same as fine.
The three dimensions were useful to me as a checklist of a different kind: I had the exhaustion and the cynicism in enormous quantities and my actual output was fine, which turned out to matter for what helped.
I built the calendar version, ran it for about two years, then abandoned it for a cash buffer. It falls apart exactly where you suspect: the moment a company you want to own pays in the wrong month you either skip a good business or you buy a worse one for calendar reasons. That is the tail wagging the dog. Twelve months of spending sitting in cash gets you a perfectly smooth income and costs you nothing but a bit of yield on one year of expenses.
Everything lands in the buffer automatically and I pay myself a fixed amount on the first of the month. I look at the balance once a quarter and that is the entire system.
Learned this the irritating way. Phone agent said yes, the actual policy wording said unaccompanied under-18s weren't covered. Get the answer in an email from them, not from a call.
Buying from a trader rather than privately does give you rights you simply do not get from a private seller, and on a car at your budget that is worth real money if something goes wrong in the first few months. Privately, the bar is essentially that the car is as described, and that is a much harder thing to argue about afterwards. I have bought both ways. If you are confident enough to inspect properly or you are paying for an inspection, private is cheaper. If you are not, the dealer margin is buying you something. Worth checking the current consumer rules yourself or with Citizens Advice rather than taking my word for the detail.
Also cheaper. Weekly rates on apartments are often 20-30% below the nightly rate, which on 1800 dollars is real money.
Neither. Use atomic.Int64 and call Add(1). Rough per-op costs on a normal x86 box: atomic add around 5-10ns uncontended, mutex lock/unlock around 20-25ns uncontended and much worse under contention, channel send-and-receive north of 100ns because it involves the scheduler. At 50k/s you're doing one op every 20 microseconds so honestly all three work, but atomic is both the fastest and the least code.
The typed atomic.Int64 from Go 1.19 is nicer than the old atomic.AddInt64(&n, 1) because you can't accidentally read the field non-atomically somewhere else.
Google's split is the one people misread, so, precisely: the $300 credit is a 90-day trial, and the Always Free tier is separate and permanent.
Always Free for compute is one non-preemptible e2-micro per month, and only in us-west1, us-central1 or us-east1: pick any other region and you're paying from minute one. It includes 30GB-months of standard persistent disk and 1GB of outbound transfer from North America per month.
So it exists, it's real, and it's small and geographically fixed. Fine for a tiny API. Not fine if you needed it in Europe.
The thread is one close voice inside a world whose rules are withheld and then revealed slowly, and Cloud Atlas breaks exactly that by handing you six voices and asking you to hold the structure in your head. Both of your favourites also have a narrator who is fundamentally kind, which sounds soft but is doing a lot of the work. On that basis I would give you The Employees by Olga Ravn, which is short, strange and told in fragments from a single institutional setting, and The Wall by Marlen Haushofer, which is one voice, one situation, no explanation. If you want the sadder end of it, Never Let Me Go does the withheld rules thing about as well as anything.
Check your local rules first. In a fair number of places it is now illegal for an employer to ask for salary history, and in some the employer has to publish the range on request. If that applies where you are, a polite "I believe salary history questions aren't permitted here, but happy to share what I'm targeting" ends the conversation instantly and makes you look informed rather than difficult.
On the younger advisor: set it up explicitly in the first month rather than letting it be awkward for six years. Say out loud, once, that you have industry experience and no academic experience, that you expect to be supervised as a student and not as a peer, and ask how they want to be told when you disagree. Junior advisors are often more anxious about supervising an older student than the student is about being supervised, and naming it defuses the whole thing. The pairs I have seen go wrong went wrong because the older student quietly behaved like a colleague and the advisor quietly resented it, and neither said anything for two years.
The one thing that genuinely worries me in your post is nothing you mentioned. Creasing is cosmetic. Watch instead for the crease going white or feeling papery - that's dry leather about to crack, and that is a real problem. A light conditioner before that point costs a few pounds.
Don't overlook the tap itself. A cartridge that doesn't fully seat, or a pull-out spray head with a worn seal, drips into the sink and straight down the drain where you'll never see a drop. Put a dry cup under the spout overnight.
The open admin tab is so real. We had a dashboard on a wall-mounted TV in the office polling every 5 seconds for eight months. It cost more than the tool it was displaying.
One boring but real thing to check: whether the dividends you would be collecting get the favourable treatment where you live, because that often depends on holding periods and on where the company is domiciled. Withholding on some foreign names comes off the top before you see anything, and whether you can reclaim it depends on the account and the treaty. I discovered that after the fact on a couple of European holdings. Worth an hour with someone who does tax for a living rather than an afternoon of forum reading.
Whatever you do, set a budget alert at 2x your expected spend on day one. $61 is a cheap lesson. The same bug on a bigger instance class is a very expensive one and the failure mode is identical - you find out at the end of the month.
Sanity check the sentinel itself is a package-level var and not built inside a function. errors.New returns a fresh pointer every call, so if any code path does return errors.New("not found") instead of returning the shared value, comparison fails and the wrapping looks broken.
One caveat: if your sockets are unearthed or you are on an extension lead of unknown quality, the earthed-PSU trick is doing less than you think. Clipping the strap to the case still equalises you and the case, which is most of the benefit anyway.