Hacker News new | past | comments | ask | show | jobs | submit | dsign's comments login

It's about false advertising: they say "our product gets images like this and that", which is Okay and something the buyer uses to base their decision. And there is an expectation that their product will do as advertised. But they never say front-and-center "our product won't function without a valid Internet connection and an approved photo ID, because we use our product to harvest your data."

I have a washing machine that won't let me use it fully without installing an app that asks for permission to track my GPS coordinates at all time, in my phone. HomeWhiz.There should be a law against selling new hardware that demands that sort of thing to function, or to have full functionality. But I would be happy if procedures to bring class-auction lawsuits against companies that engage in this kind of bait-and-ransom were somehow simpler.

At the very least, when you the current end user refuse to agree to their terms of service, the model should have to be returned, at the manufacturer's expense, irrespective of condition.

Think of renters stuck in a place with units like that! They too should have the right to require un-tracked appliances and be free from being forced to agree to additional contract overheads that aren't obvious in the price / what should be reasonable terms.


In many countries, the consumer protection laws are strong enough that consumers probably can return such appliances, as long as the facts about app requirements weren't made abundantly clear to them at the store.

Though, it's usually the store who's responsible for that refund, not the manufacturer . Still, stores are motivated to reduce return rates and will put pressure on manufactures to not do stupid things.


For things you can carry back to the store, that works well. When I buy a new washing machine, though, it's a bit more complicated:

- I go to the store and make the purchase.

- A delivery crew brings the washing machine to my house.

- They unhook my old washing machine and take it away.

- They attach my new washing machine in its place.

Even with the strongest reasonable protection laws I can imagine, the most the store would be obligated to do if the new machine is unsatisfactory would be to detach the new machine and take it away. And I've probably had to pay for one or two visits from the installers at that point. Regardless of whether the extra visit from the installers carries any extra cost for me, there's enough hassle associated with this that I can easily imagine keeping a machine where I'm not happy with some app requirement because it'd be too much trouble to make the change.


Obligatory link to Doctorow’s Unauthorized Bread (2019), a DRM-themed, uh… thriller? polemic?… of a novella. Deals with the themes you discuss: large appliance manufacturer malfeasance, intrusive exploitation beyond the scope of the product’s purpose, renters’ relative helplessness for the appliances to service their daily needs.

https://craphound.com/unauthorized-bread/

Discussion here (2020, 123 comments):

https://news.ycombinator.com/item?id=23985140


Just yesterday I saw an ad for an "AI enabled dishwasher". I suspect things are about to get even worse.

I am astounded at how much this short, humorous quote from Philip Dick's "Ubik" was prescient:

"The door refused to open. It said, “Five cents, please.” He searched his pockets. No more coins; nothing. “I’ll pay you tomorrow,” he told the door. Again he tried the knob. Again it remained locked tight. “What I pay you,” he informed it, “is in the nature of a gratuity; I don’t have to pay you.” “I think otherwise,” the door said. “Look in the purchase contract you signed when you bought this conapt.” In his desk drawer he found the contract; since signing it he had found it necessary to refer to the document many times. Sure enough; payment to his door for opening and shutting constituted a mandatory fee. Not a tip. “You discover I’m right,” the door said. It sounded smug. From the drawer beside the sink Joe Chip got a stainless steel knife; with it he began systematically to unscrew the bolt assembly of his apt’s money-gulping door. “I’ll sue you,” the door said as the first screw fell out. Joe Chip said, “I’ve never been sued by a door. But I guess I can live through it."

Looking forward to argumentative washing machines.


> Looking forward to argumentative washing machines.

Thanks to all upthread for the reminder.

Last week I was sorta forced to install the app for the laundry room at the place I am renting.

They previously used another big service provider, and had troubles with plumbing and there was undoubtedly finger-pointing between the laundry service and the landlady, and eventually, landlady switched to a new laundry service provider, which has a very generic-sounding app.

So you can pay two ways (no coins and no currency): obtain a stored-value card from the little kiosk in the laundry room (it will cost you, like $10 just for the card with $0 on it.) or you can install the mobile app, and load money into your account. (The account is not shared with any stored-value card, so they'll be separate.)

So last time, I opted for a card, and I immediately punched a hole in it, so I could string it to a lanyard. That disabled the card! It is some sort of RFID/NFC thing which has little spiderweb tendrils, rather than a single chip in one place that can be avoided.

So this time around, I installed the Android app. I loaded money on the card (of course you can't specify the exact amount, but you select a dropdown, and the $10 or $15 or $25 or $40 is never an exact multiple of the cost of a load.)

And the mobile app demands a lot of permissions. It wants camera access, and Nearby Devices, and Location, and probably Precise Location too. And then you need to enable Bluetooth, and you also need to be standing right inside the laundry room in order for the app to go anywhere (yes, you can't even check your account profile, or balance, or add money, unless you're inside the laundry room, so fuck me if I wanted to set this up in the comfort of "my" home before going down there in public.)

And the app relies on a shitty QR code scan anyway. I mean, you can tap the NFC stored-value card, but your phone won't tap-to-pay the fuckin' washing machines. And they don't take credit cards, or coins or bills. And the soda machines here don't take credit cards, or bills either, only coins. LOL!

And the app has a fucked-up self-image. It lists 16 washing machines. There are 6 in the room. So there are 10 "phantom machines". I informed the Support dudes like in Marh 2024, when they first installed everything. I told them the app was a dumbass and listed too many machines. I showed them how I was standing in the correct room and the other two rooms had likewise fucked "phantom machines" too, but I didn't care about them. We went around in circles with Support asking for "more information" and I cc:ed the landlady, and she was rather bemused, but more-or-less a bystander on the whole issue.

I was sort of indignant on behalf of the other residents who may be confused. I wasn't personally too confused, but imagine if Grandma installed her iPhone app or something and tried to start Machine #13.

And it's been 13 months and they still haven't rectified the list of machines.

The old service provider, they used to provide a public website; you could see each machine and whether it was active or not, in a little widget, it was very Web 1.0 but with animation. It didn't use Flash or anything fancy. There was no authentication to see these laundry machines running. I suppose that was too vulnerable, and so they locked it up in the app. And of course the app requires you to be in the fucking location rather than checking from the comfort of your home.

So I used to be able to see availability before I took everything down and went into the laundry room and bugged the other resident ladies. But now I can't see availability until I barge into the fucking room itself. Fuck you app makers. I have a login. Let me see whether I can start my wash or if I can wait in the comfort of my home. Now I need to make a special trip just to check on things, or to add funds or even just to check my balance.


This makes me so angry just reading this.

It's a failure of both management, and the developers carrying out management's tasteless design/vision which leads to this sort of shit. Not the kind of world I want to live in, and I wish these organizations would get punished somehow for the shit they put out into the world.


I imagine there are lots of folks here who could answer this question. I like to assume that no individual engineer/developer/product manager is so unscrupulous as to make this sort of kafkaesque nightmare into a reality, but somewhere along the line from concept to implementation, some individual needs to demand, create or at least suggest such hostility to the user. My question is, how does this usually go? Is it a vague implicit target set by management that can only be achieved by abusing the user, giving both the engineers and managers a plausible deniability? "I'm just following orders". Or are there folks during the development phase suggesting and promoting these awful "features"? I'm guessing the answer will be unsatisfying to me, that no individual or group of individuals is really responsible, and it's just the incentive structure of the system that's emerged over time. Which just begs the deeper, but more complicated question, how did we get here?

The same technology used to foist madness upon someone is also used to insulate the creator from feedback. Its a double edge sword. Virtually every touchpoint of society is being turned into this awful dynamic as its unregulated. All actors with power take their playbook from a familiar guy in a turtleneck on stage pointing to his users and saying " youre holding it wrong". As if every one participating in this "experiment" is indeed a willing "user"

In terms of professional ethics, where should a product manager stand, when the business asks them for a customer-hostile solution like this (or on the opposite end of the developers suggest a customer-hostile technical solution)?

"Don't do this or I quit".

If you don't have enough money to do that, immediately start looking for a new job. If you are feeling lucky you can try weaponised incompetence to try to prevent this from being shipped.


Sounds really shit.

The RFID card will have a chip too. The 'tendrils' are the aerial which is a thick loop (of many wires) round the outside. So punching a hole in one corner is a non-starter, but there's a good chance you could punch one in the middle if you work out where the chip is

Of course, the simpler option is just to get a lanyard with card holder.


Depending on the card design, you can sometimes shine a bright lamp or flashlight through it and see the antenna shadow...

I had a high-end dishwasher from the early 2000's in this house when I moved in. It had a lot of smarts to it. It would constantly monitor turbidity to change soap mixtures and would decide when it wanted to drain and add more water in case the tub water was really dirty.

I imagine this is what that "AI" feature is doing.


Unfortunately, governments are highly incentivised to allow mandatory on-device spyware to feed your location into the global information market.

Why run a sophisticated surveillance and information retrieval system when a you can just ask big-tech for the data for free, or buy from the market at a fraction of the running cost of a dedicated system?

Personally I think the best way to combat this is for concerned people to build businesses with privacy as a feature. Dumb TVs, dumb washing machines etc.


At least a requirement to let customers know in big letters that the device/appliance you're going to buy would not function without App + Wifi + Internet plan + GPS, and that you're not buying an appliance but a limited license to use it.

Out of interest did you know this before buying it? I'm interested in how they would advertise that kind of feature. I feel like that needs to be a regulated warning label on the box.

This is the kind of stuff that I feel a coordinated campaign to have consumers take companies to small claims court over would be very effective in combating.

I'm sure a bunch of elderly magistrates would feel that this kind of requirement is obscene and would readily side with the claimant.

Collectively this would cost the company a lot.


As well, I would say pick a shame domain and make some noise about this, collate feedback from other consumers, etc. Spread that constantly until the manufacturer can justify it or relent. Hassle them for comment and until they reply to your satisfaction, note on the site that they haven't responded despite repeated attempts at contacting them.

There are laws. Get a refund. Tell them why. If we all do this it won't be profitable.

You are correct, Haskell has quite a few mutex-like types. MVar is one of them.

However, if memory serves me right, TVar is a building block for the transactional memory subsystem. The guard on TVar with, say, modifyTVar is not really stopping execution at entrance but simply indicating that the block modifies the variable. In my mental model, some magic happens in an STM block that checks if two concurrent STM blocks acted upon the same data at the same time, and if so, it reverts the computations of one of the blocks and repeats them with new data.

To my knowledge, Haskell is the only programming language (+runtime) that has a working transactional memory subsystem. It has been in the language for about 20 years, and in that time many have tried (and failed) to also implement STM.


I think Clojure has some kind of STM too?

Haskell's STM is pretty world-class though. That's fair to say :)


Clojure's STM never really took off because, for various reasons, it's not as easy to compose as Haskell's (where you can build up a big library of STM blocks and piece them together at the very edges of your program). As such Clojure's STM implementation doesn't actually have a great reputation within the Clojure ecosystem where it isn't usually used in most production codebases (whereas in Haskell STM is often one of the first tools used in any production codebase with concurrency).

Basically it's the difference between focusing only on transactional variables without having a good way of marking what is and isn't part of a larger transaction and having a higher-order abstraction of an `STM` action that clearly delineates what things are transactions and what aren't.


My impression at least watching chatter over the last several years isn’t that it has a bad reputation but rather that people haven’t found a need for it, atoms are good enough for vast bulk of shared mutable state. Heck even Datomic, an actual bona fide database, doesn’t need STM it’s apparently all just an atom.

But I’ve never heard someone say it messed up in any way, that it was buggy or hard to use or failed to deliver on its promises.


Clojure atoms use STM, though. I've been writing Clojure for almost a decade now, it's not that STM isn't great, it's just that immutable data will carry you a very long way - you just don't need coordinated mutation except in very narrow circumstances. In those circumstances STM is great! I have no complaints. But it just doesn't come up very often.

That’s incorrect. Only refs+dosync use stm. https://clojure.org/reference/refs

Not atoms.

From Hickey’s History of Clojure paper:

“ Taking on the design and implementation of an STM was a lot to add atop designing a programming language. In practice, the STM is rarely needed or used. It is quite common for Clojure programs to use only atoms for state, and even then only one or a handful of atoms in an entire program. But when a program needs coordinated state it really needs it, and without the STM I did not think Clojure would be fully practical.”

https://dl.acm.org/doi/pdf/10.1145/3386321

Atoms do an atomic compare and swap. It’s not the same thing.


Haha, I read The Joy of Clojure way back in 2013 and conflated the different reference types with STM. So thanks for mentioning that, I always thought it weird that you'd need STM for vars and atoms too.

That said, I have never used a ref, nor seen one in use outside of a demo blogpost.


Totally! They are rare. Cheers

PS I agree atoms and stm are both solid though — and that you can go a very long way without touching either!

I would say to the contrary it would come up all the time if the right idioms were in place.

For example, when it comes to concurrent access to a map the Clojure community generally forces a dichotomy, either stick a standard Clojure map in an atom and get fully atomic semantics at the expense of serial write performance or use a Java ConcurrentMap at the expense of inter-key atomicity (or do a more gnarly atom around a map itself containing atoms which gets quite messy quite fast).

Such a stark tradeoff doesn't need to exist! In theory STM gives you exactly the granularity you need where you can access the keys that you need atomicity for and only those keys together while allowing concurrent writes to anything else that doesn't touch those keys (this is exactly how e.g. the stm-containers library for Haskell works that's linked elsewhere).


You missed a very important detail, the language runtime.

While Haskell's runtime is designed for Haskell needs, Clojure has to be happy with whatever JVM designers considered relevant for Java the language, the same on the other platforms targeted by Clojure.

This is yet another example of a platform being designed for a language, and being a guest language on a platform.


I don't think this is a limitation of the JVM. When I've used Clojure's STM implementation it's been perfectly serviceable (barring the composability issues I mentioned). Likewise when I've used the various STM libraries in Scala. Eta (basically a Haskell implementation on the JVM that unfortunately stalled in development) also had a fine STM implementation.

It's more of a combination of API and language decisions rather than the underlying JVM.



> Implication of Using STM Running I/O Inside STM— There is a strict boundary between the STM world and the ZIO world. This boundary propagates even deeper because we are not allowed to execute arbitrary effects in the STM universe. Performing side effects and I/O operations inside a transaction is problematic. In the STM the only effect that exists is the STM itself. We cannot print something or launch a missile inside a transaction as it will nondeterministically get printed on every reties that transaction does that.

Does Zio actually offer any protection here, or is it just telling the reader that they're on their own and should be wary of footguns?


STM happens inside the STM monad while regular effects happen in the ZIO monad. If you try to do ZIO effects inside an STM transaction you'll get a type error.

Scala doesn't enforce purity like Haskell though so it wont stop you if you call some normal Scala or Java code with side effects. In practice its not a problem because you're wrapping any effectful outside APIs before introducing them into your code.


I am not super familiar with it, great question - my guess would be its the latter! Does Haskell's provide protections?

There is a bias there in action: we are assuming that the entire world is like this thing we just happen to be thinking about.

It is not.

Even if it were just a minority, there are plenty of people outside "this thing" that will profit from the ((putative) majority's) anesthesia. Or which at least will try to set the world on fire (anybody remember the elections in USA a few months ago? That was really dumb. But sometimes a dumb feat shows that one is alive, which is better than doing nothing and being taken for dead. Or it is at least good-enough peacocking to attract mates and pass on the genes, which is just an extravagant theory of mine that I'm almost certainly sure is false. And do not take this as an endorsement of DJT). I'm not being an optimist here; I've seen firsthand the result of revolutions, but it may be the least-bad outcome.


Indeed.

Even a bad VFX artist has so much more control over what they do. I think that the day "text-to-video" reaches the level of control that said bad VFX artist has from week one, it will be because we have sentient AIs which will, for all ends and purposes, be people.

That's not to say that there is no place for AI-generated content. Worst case scenario, it will be so good at poisoning the well that people will need to find another well.


> So far the only products spawning from these tools are tiktok/general internet spam companies.

Help me here. If tiktok becomes filled with these, will it mean that watching tiktok "curated" algorithmic results will be about digesting AI content? Like, going to a restaurant to be served rubber balloons full of air that then people will do their best to swallow whole?[^1]. Could this be it? The demise of the algorithm? Or will people just swallow rubber balloons filled with air?

[^1]: Do please use this sentence as a prompt :-)


> Nordic countries are made of homogeneous populations

Once upon a time, it was so. Today, not so much. If that's a good or a bad thing, it's an entirely different can of worms. I think diversity in the Nordics is beautiful, but Japan has managed without it and they have great artisans.

In the Nordics, in addition to long barbaric winters, having long barbaric Middle Ages helps foster social discipline. See what beloved King Vasa of Sweden did to peasants that weren't happy with their Gini coefficient:

https://en.wikipedia.org/wiki/Dalecarlian_rebellions


Coat the carrots in chocolate?

One can always do as in "The good place" show: put a bunch of hotties to talk about and play with moral philosophy. I think the show was somewhat evil in that approach, but at the same time, it was also morally sound...


Yes, but I also disagree to some degree because it's a similar argument to "I can watch philosophy TikToks and learn".

Certainly, philosophy TikToks are better than "boyfriend caught cheating prank" TikToks, but to some degree the medium is the message. And the question is whether we want the message of "everything is a short video, everything has a simple explanation and you can always swipe away and something else will be provided for you"


> Ai will destroy critical thinking in our youths

I don't think that's the argument the article was making. It was, to my understanding, a more nuanced question about if we want to destroy or severely disturb systems at equilibrium by letting AI systems infiltrate our society.

> Sometimes there is an adjustment period (we still haven't figured out how to deal with short dopamine hits from certain types of entertainment and social media), but things will balance themselves out eventually.

One can zoom out a little bit. The issue didn't start with social media, nor AI. "Star Wars, A New Hope", is, to my understanding, an incredibly good film. It came out in 1977 and it's a great story made to be appreciated by the masses. And in trying to achieve that goal, it really wasn't intellectually challenging. We have continued in that downhill for a bit, and now we are in 16 second stingers in TikTok and Youtube. So, the way I see it, things are not balancing out. Worse, people in USA elected D.J. Trump because somehow they couldn't understand how this real-world Emperor Palpatine was the bad guy.


"Retaliatory tariffs" is one of those things I don't understand but I'm afraid to ask.

When someone tariffs you, you tariff them right back (but typically _only_ them). This is how trade wars work, typically.

I haven't been familiar with trade wars before Trump. What I don't understand is what there is to win for the EU by suddenly imposing its own tariffs... that will slow down its own economy, even possibly cause social unrest. If US wants to do tariffs, fine, but there is no need to compound on the damage.

The point is to inflict pain on the aggressor; in general no-one ‘wins’ a trade war, and the goal is to make things bad enough for the aggressor that they back down.

In this case, the aggressor inflicted much pain on _itself_, before the tariffs really even went into operation, that it has already partially backed down, but that’s kind of unusual that it would happen so quickly.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: