Ask

Is a Tumi backpack worth it, or am I paying $600 for the logo?

Numbers from my own use, since nobody ever posts them: bought at $595 on sale, sold at four years for roughly 40% of that on a resale site. Real cost about $85 a year. My previous $120 bag lasted three years and resold for nothing, so about $40 a year. Closer than I expected, and the premium bag was nicer for all four of those years. The risk you're taking is that the resale market stays where it is.

71 · in/travel-gear ·

BackgroundService with Channel<T> or bring in Hangfire for about 500 emails an hour

Whichever you choose, make the send idempotent before you make it durable. Both approaches will eventually run a job twice, because at-least-once is what you get from anything that retries, and a duplicate email is worse than a slightly delayed one. Store a key on the row for what the message is about, check it before sending, and record the send in the same transaction that marks the job done. That single decision has saved me far more embarrassment than any queue choice.

117 · in/queues-and-jobs ·

Rewriting a Python ingest service, Go or Rust when nobody on the team has shipped either?

Go, on the deadline alone. A competent Python developer is writing useful Go within a couple of days and reviewing it usefully within two weeks. Rust is a genuinely better language for several things you might care about later, and it is also a month of your six being spent learning when to clone and which async runtime you are in. Six weeks with a hard external date is not the project you learn a hard language on.

217 · in/go-dev ·

Pull-through sharpener or learn on stones when I own six knives and no patience

The middle option nobody mentions is paying someone. Four times a year, six knives, dropped off at a shop or a market stall that does it properly. If you genuinely do not want the hobby, that is a defensible answer, and it is what I did for three years before I got curious. Just ask what they sharpen on, because some places use a belt grinder that gets hot and some use water cooled wheels, and it is worth knowing which.

94 · in/sharpening ·

firestore reads went 40x after one release and the bill followed, how do you find which query?

start with real-time listeners, because that's where nearly all of these come from. a listener attached inside a component that remounts will re-subscribe every time, and each new subscription pulls the initial snapshot again, so a list of 200 documents on a screen that remounts on every keystroke turns into an astonishing number very quickly. grep for every onSnapshot in the diff, check each one has an unsubscribe that actually runs on unmount, and check none of them are created inside a render path. mine was a listener in a component that remounted whenever a parent's state changed, which was constantly.

156 · in/cloud-bill-shock ·

What did your first fifty candles actually cost you, wax to label?

Politely disagreeing with the framing. You asked what fifty candles cost, but the real question is what fifty sellable candles cost, and the answer includes about four weeks of testing before you pour any of them. Eight weeks is genuinely tight if you have never poured. I would buy materials for twenty test candles now, in one fragrance, and only order jars in bulk once you know your wick size. Ordering fifty jars before you have a working recipe is how people end up with fifty jars of something they cannot sell.

74 · in/candlemaking ·

astro islands or a plain svelte spa for a 40-page docs site with search

Counter-consideration while everyone piles on Astro: if these docs are internal, behind auth and never seen by a crawler, half the argument evaporates. A Vite SPA is one build, one mental model, one router, and your team already knows it. Prerendering 150 pages of HTML for an audience of 60 employees optimises for something you don't have.

Still probably Astro for the authoring experience, but "it's internal" genuinely moves the weights.

27 · in/svelte-vue-astro ·

What's the earliest date this could be in front of a stranger, and how do you find that date honestly?

The date isn't your problem, the scope is, and dates slip because scope is allowed to be vague. Try this instead: write the release notes for version one first, in past tense, on a single screen with nothing scrolling off the bottom. Then delete lines until you'd be comfortable showing it to someone whose opinion you fear slightly. The earliest possible date is the day you're actually willing to delete things, and it's usually much sooner than the date you keep picking.

77 · in/first-version ·

Enqueue inside the database transaction or after commit, where do you put it?

If your framework has an after-commit hook, use it, and understand what it does and does not promise. It removes the rollback problem completely, which is the failure that produces user visible nonsense like an email about a cancelled order. It does not remove the crash-in-the-gap problem, because nothing running in your process can. For a lot of applications that is an acceptable trade, and it is one line of code rather than a new component. Just be honest that you have chosen the silent-loss failure over the phantom-job failure rather than solved anything.

134 · in/queues-and-jobs ·