Ask

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

turn on the billing export to bigquery if you haven't - it gives you cost by sku and day, so you can at least confirm the jump is document reads rather than egress or storage, and pin the exact day. cloud monitoring will give you read counts by database and operation type, but it will not tell you which collection or which screen, which is the thing you actually want. so instrument it yourself: wrap your query helper so every read logs a screen name and a collection, ship that behind a flag, and give it a day. in my case the wrapper found it in about four hours and the answer was a screen nobody had thought about.

108 · in/cloud-bill-shock ·

three customers and one is my old boss, do testimonials help or just look thin

Since you gave numbers: at nine hundred visits a month you cannot test this. To detect a small improvement in a twelve out of nine hundred rate with any confidence you would need months of traffic per variant, by which point you have changed six other things and the seasons have moved.

So test only changes you expect to be large, run them as a straight before and after over a few weeks, and accept the result is directional rather than proof. Anything you would describe as a tweak, just make the judgement call and move on. Time spent building a testing setup at this traffic is time not spent getting to a hundred trials.

58 · in/sunset-or-sell ·

product hunt launches all go live at 12:01am pacific - do i have to be awake at 8am in europe or is that a myth

Your timezone is the good one and people will not tell you that. The window opening at 09:01 local means you start your launch day awake, caffeinated and at a desk, while founders on the US west coast are choosing between launching at midnight and sleeping through the first six hours.

What to do with the hours: reply to every comment within a few minutes, in full sentences, like a person. That is the actual work. Not upvote begging, not DMs, not the group chats - comments, because they are the visible part and because the people who leave them are the ones who might become users.

Second most useful thing is having your own list and your own communities lined up to arrive throughout the day rather than all in the first hour. Steady beats spiky, and a completely flat line after 10am looks exactly like what it is.

214 · in/launch-day ·

How do you ask a specialist to explain it again without sounding like you weren't listening?

I nodded through three appointments in a row and then had to book a fourth to ask the questions I should have asked in the first one, which wasted about two months. Now I write the questions on paper beforehand and physically hold the list, which stops me from being swept along, and I ask to take notes. Nobody has ever objected, and one consultant looked visibly relieved.

47 · in/explain-simply ·

200Ah lithium bank drops to 20 percent overnight with just a fridge and fan

Second thing worth checking: is the fridge actually cycling or running continuously? In a van with poor ventilation behind the fridge, the compressor never gets ahead of the heat it's rejecting and it runs 80% of the time. That turns a 15Ah night into a 45Ah night. Feel the coils, and if the space behind is sealed, cut a vent.

512 · in/van-build ·

Why does my worker pool hang on shutdown even after I cancel the context

Your workers aren't stuck on the select, they're stuck on the send. Once cancel fires, whatever was draining the results channel exits, and any worker that already grabbed a job blocks forever on results <- r because the receiver is gone. ctx.Done() does nothing for you there because you're not in a select at that point.

Two fixes, pick one:

  • wrap the send: select { case results <- r: case <-ctx.Done(): return }
  • keep the consumer alive until wg.Wait() returns, then close results. Producer closes, consumer drains, nobody blocks.

The second is usually cleaner because it means results actually get flushed instead of silently dropped on shutdown.

341 · in/go-dev ·