The dishwasher does automate a large part of doing the dishes, but not the whole of it. A Jetsons-style robot maid would also be able to clear the dishes from the table, restock the cabinets, and set the table before dinner - in addition to doing the cooking, cleaning, lawncare, etc.
It maybe wasn't the least-automated part of the chores, but if anything, doesn't that strengthen their point? We as people were happy to automate our dishwashers, and would probably spend more money on other chore-automations as well (see: Roomba, robotic lawn mowers, etc).
You gotta do both. Ideally, the bottom-up price (the price you want to charge) is less than the the top-down price (what people will pay). If it's not, you gotta go back to the drawing board.
"local" can also be a network fileshare. It could also be in a directory that is treated differently than your other checkouts - whether that's something like deployment, sharing over the web, running CI, etc.
"network fileshare" is not local. By the same logic, I can mount S3 bucket over fuse and call it "local". Sure, it will work, but in the context it is just nonsense.
/shrug It's more local than github is. Whether it's a server running in your basement, or the filesystem served by the next rack over in your on-prem datacenter, it doesn't seem unreasonable to refer to it as 'local' in certain contexts, to contrast with remotes that are further away.
Leaving out types in public API's makes type errors hard to understand. Types should be declared in the API and bidirectional type inference used in the implementation.
Eh. This causes some problems for rust. Right now you can have a function return impl Trait instead of a concrete type. Very handy - and essentially required by async functions.
But the language also requires that types have names in lots of places. For example, you can't store an 'impl Trait' in a struct. You can't make a type alias of an impl Trait. And so on. As a result, async rust can only interact with a butchered subset of the language. (You can work around this with Box<dyn Future<...>> but performance suffers.)
There's a proposal[1] to fix this. But the proposal has been under discussion for (checks watch) 7 years now. Until this lands, async remains a second class citizen in rust.
This entire problem stems from rust's early decision to requiring concrete types at interface boundaries.
I haven't encountered one as a driver either, but I'm pretty sure "Don't drive into roads with water on them" was a basic safety question on the permit test.
You haven't been driving for 25 years anywhere east of the Mississippi river if you've never encountered road flooding. Accepting they can't predict everything sounds reasonable. Failing to account for a routine occurrence is negligent.
My guess is this was brought up but getting the product out there was more important to the business so it got ignored.
Now that it's a problem for them, they get to hide behind an "oops sorry, let's fix the really obvious thing now", almost like taking "if it ain't broke, don't fix it" to malicious levels.
This jives with CRUD software in general, where people are not usually rewarded for preventing future issues and instead rewarded for waiting until it's a visible problem and then fixing it.
Just as a heads-up for non-magic players, each of those 40-card decks contains several multiple-thousand dollar cards. I wouldn't be surprised if those 240 cards cost over $50,000.
It maybe wasn't the least-automated part of the chores, but if anything, doesn't that strengthen their point? We as people were happy to automate our dishwashers, and would probably spend more money on other chore-automations as well (see: Roomba, robotic lawn mowers, etc).
reply