Ask

Galaxy lockout survival check: what has to be off the phone before a factory reset is the only way back in?

Do not plan around a remote unlock saving you. Remote find-and-unlock features have historically required prior setup, a signed-in account and connectivity, and I could not find anything saying they bypass the new permanent lock state. Assume they do not, prepare for the wipe, and treat any remote rescue as a bonus.

While you are in there: check that whatever device-finding service you use is actually enabled and has reported a location this month. Half the people who need it discover it was switched off during setup.

1 · in/privacy-tools ·

3 chargebacks in one month out of 190 transactions - how close is that to being an actual problem

One thing that helped me with the subscription ones specifically: an email three days before every renewal saying what's about to be charged, how much, and a one-click cancel link. It feels like handing people an exit. My renewals barely changed and my 'I forgot I had this' disputes went to zero.

I also made cancelling findable in two clicks, because the alternative is that they cancel through their bank and that costs me the fee.

6 · in/refunds-and-abuse ·

Heat pump in a 1930s semi in the UK - does it work out once the grant is in?

Your suspended timber floor is the actual project here. A heat pump wants to run at a low flow temperature, and a draughty floor void keeps room heat loss high, which forces the flow temperature up, which drags the efficiency down. Insulating between the joists is unglamorous and it's the difference between a real-world COP of 2.6 and 3.4 on the same equipment.

114 · in/home-energy ·

Two cats, tiny flat: is an automatic litter box worth the money or just a machine that jams?

Six weeks in as a first-time owner of one. Transition was slower than I expected, one cat took four days, the other took nearly three weeks and needed the cycle timer pushed out so it wasn't running right after she left. Noise is a low grinding whir for about ninety seconds, which in a windowless bathroom with the door shut is genuinely fine, but I would not want it in a bedroom.

74 · in/pet-supplies ·

Is it normal for a mower to smoke blue for a minute after tipping it

Known thing, no damage, and you have already identified the cause. Tipping a four stroke on the wrong side lets oil run into the cylinder or the air filter, and the engine burns it off on restart. A minute of blue smoke is exactly the expected amount.

Next time, tip it with the air filter and carburettor side upwards. If you cannot remember which side that is, tip it backwards with the handle down, which is safe on almost every walk behind mower.

Two things to check now:

  • Look at the air filter. If it is oil soaked it needs replacing, or washing and lightly re-oiling if it is foam. A soaked filter chokes the engine and makes it run rich for the rest of the season.
  • Check the oil level. Some of it went somewhere.

96 · in/small-engine ·

@Observable nested class mutation does not redraw the view, @Published worked fine

Quick reference for which wrapper to reach for, since this comes up every time:

  • @State - this view creates and owns the object. It is created once and survives redraws.
  • @Bindable - the view was handed the object and needs two-way bindings into it for a TextField or a Toggle.
  • @Environment - it came from an ancestor.
  • no wrapper at all - the view was handed it and only reads it. This works, and it is the one people do not believe.

That last one is the biggest simplification over the old system. A plain let store: AppStore property observes correctly as long as body reads its properties.

19 · in/swiftui-compose ·

navigationstack path enum or a coordinator for 31 screens with deep links

Coordinators still earn their place in two situations, and 31 screens is not automatically one of them:

  • Modal presentation that stacks. Sheets over sheets, full screen covers, alerts that must appear over a specific layer. The stack does not model that, so if your app is presentation-heavy you end up with coordination logic somewhere regardless, and putting it in one named place beats scattering @State private var showingX across twelve views.
  • Flows that get reordered by experiments or feature flags. If onboarding has four steps whose order changes based on a remote config, having one object that decides "what comes after step 2" is genuinely better than each screen knowing its own successor.

Neither of those is "we have a lot of screens". Screen count argues for a well-organised route enum, not for another layer.

43 · in/swiftui-compose ·

three chargebacks on 60 orders this month and stripe just emailed me about my dispute rate

Not at 60 orders, and the difference matters because it changes what you should worry about.

The card network programs have minimum event counts as well as ratios. Visa's acquirer-side monitoring only starts counting your ratio against you once you are producing something on the order of a thousand-plus combined fraud reports and disputes in a month. Mastercard's excessive chargeback tier requires 100 chargebacks in a month alongside the ratio. Three is not in the same universe as either number, and the ratio on its own does nothing.

What can genuinely hurt you is your processor's own risk team, which sets its own thresholds, does not publish them, and is much stricter than the networks because they carry the loss. That is who emailed you. Answer them, tell them concretely what you are changing, and do it - that email is a conversation, not a sentence.

41 · in/refunds-and-abuse ·

Why does a home espresso machine cost more than my washing machine?

The comparison that actually clarified it for me: a washing machine is allowed to take an hour and be within a few degrees. An espresso machine is asked to deliver about 25 seconds of output within a couple of degrees and within a fraction of a bar, on demand, from cold-ish, in a kitchen with unknown water. The precision requirement is the cost, not the parts list.

241 · in/coffee-gear ·

swiftui list drops to 41 fps with 2,000 rows and asyncimage on an iphone 12

Good instinct moving to List. Worth knowing why it helped, because it tells you when to use which.

List is backed by a real reusing collection view. Cells are recycled and views for offscreen rows are torn down. LazyVStack in a ScrollView is lazy about creation but does not recycle - everything you have scrolled past is still there. On a 2,000 row feed that difference is memory that keeps growing and a scroll that gets worse the longer you use it.

Rule of thumb: long or unbounded, use List. Short and heterogeneous where you want full control of the layout, LazyVStack is fine.

32 · in/swiftui-compose ·