Hacker News new | past | comments | ask | show | jobs | submit login
The hotel bathroom puzzle (nevalalee.wordpress.com)
561 points by tlrobinson on July 14, 2018 | hide | past | web | favorite | 260 comments

I'm reminded of a discussion we had here a few weeks ago, where somebody noted that humanity wouldn't be able to invent, for example, a machine to automatically rack pins at a bowling alley today.

The 2018 solution to that problem would automatically involve computer vision, AI and robotics. The idea that one could construct a giant mechanical device the size of an entire bowling lane that is purpose built to lift, sweep, collect, rack, and place pins with no capacity for customization whatsoever wouldn't even occur to today's generation of engineers.

You can see it happening in some of the comments here.

"If all you have is a hammer..."

You're talking to software engineers here. Equating 'humanity' to us on Hacker News forgets about all of the mechanical engineers who would do a great job of racking those pins.

Both observations have equal validity for middle-/upper-class denizens whom can spend money on increasing entropy much faster. Go to anywhere remote and/or poor, and the better-to-do outsiders will be gobsmacked by inventiveness that, to the local, will seem mundane and vital. For example, one of my great-grandfathers made a continously self-cleaning oil-filter for farm equipment... the sort of thing corporations clearly wouldn’t offer for monetized consumables reasons.

Was it two cans at different elevations, with a length of sisal rope suspended in an arc between them? Because lots of people "invented" that...

king_nothing did not say his great-grandfather "invented" anything. He said his great-grandfather made it.

My apologies. I suppose I must have read the word "inventiveness" and just sort of mentally smeared it over the next few sentences.

I’m sure I’m being daft, but how would that arrangement function as a self cleaning filter?

The sisal rope will wick based on the elevation change and deposit clean oil to the lower receptacle.

Ah, so the sisal rope is just a simple filter, and not a "continuously self-cleaning" filter? I presume it's eventually fouled and must be disgarded? So this must not have been to which the ancestor was originally referring.

Just put a chip in it #internetofshit

Over time the idea of what "computing can do" has evolved to a point that now a days it is even used to "implement the behaviour of a mechanical system" rather than just being a tool to do data processing. The problem of building the mechanical system basically boils down to what all components and what all connections between the components are required to achieve the desired behaviour. This would be what a mechanical engineer would think about. A software engineer on the other hand would think about the components required and the algorithm that would control the components to achieve the desired behaviour. Both approaches have their pros and cons but as the desired behaviour get more and more complex, the algorithmic approach tends to be more simple and feasible.

I disagree with this.

There was talk on ha hackaday the other day about converting a windshield-wiper motor to a servo with additional components, and another user commented that the newer wiper motors are servos that have a built-in CAN bus and no mechanical linkages.

And more expensive.

It still just wipes the windows.

And if you've ever had a mechanical linkage fail, or noticed that wiper linkages only work for certain geometries, you appreciate the reliability and versatility that comes from having separate motors.

Also, one wiper arm can be completely jammed or disabled and the other still works, where a mechanical linkage would be down for the count.

Cost will come down. Power windows used to be a luxury item too, now they're ubiquitous because the hand-crank mechanism is not only more expensive to produce, it also placed constraints on door panel styling, and having a single door design is cheaper overall.

When the hood and windshield don't have to accommodate a wiper linkage, engine packaging gets easier, allowing designs that could be safer, cheaper, more efficient, more reliable, or some combination thereof.

These are built for a reason. CANbus means they share the wires with lots of other components. Wiring and the complexity in the other end of that wire have a cost too.

Mechanical solutions often weigh more, as well. We're supposed to be designing for better gas mileage, aren't we?

Good gas mileage is one of the many design goals. Another important one is reliability.

and theoretically a computer-driven windshield wiper would be able to respond to weather conditions better than a purely mechanical one, improving safety (perhaps marginally, but that's ok by me). I really appreciate my auto-rain-sensing windshield wipers.

As I said complex behaviour would benefit from computing. I don't see car wipers having complex behaviour that they would need computing to implement it. Also the complexity of the behaviour is a spectrum and not just a on or off thing. You need to consider all the various properties to figure out the best balance in the solution you come up with. On the industry side of things, companies will fit everything with computer and sell it at higher cost coz thats what their goal is i.e to make more and more money, they don't care about the best solution, all they care about is how they can sell expensive solutions and use proper advertisement to portray their solution as the best one (even though it is not).

Many modern cars are equipped with rain sensors that auto adjust the speed and frequency of the wipers, and they seamlessly move from one setting to the other instead of having distinct steps or settings like wipers of old.

I can see why a programmable wiper motor is useful that scenario; send the speed and frequency as arguments and have the motor adjust on the fly.

It's probably not about the complexity of the wipers, it's about the complexity of the wiring system. By putting everything on a bus you only need to run one set of wires around the entire car, rather than individual control wires to each gizmo.

With multiple wipers and no mechanical linkage, preventing blade collisions becomes a concern.

I think this is a bit of a unique case because we're assuming up front that we know how the problem would be framed.

In 2018, it would be odd to see a problem like this where people want pins shaped exactly the same way to be set up exactly the same way and that determine success for decades and decades. If (somehow, out of context) someone asked me for such a machine, I'd immediately be asking why not a different (or random) arrangement for a tougher challenge? Or for training? What about skinnier or fatter pins to control difficulty a little?

Those things only seem strange now because we're all accustomed to bowling being played exactly the same way our entire lives. If it were invented in 2018, I don't think it would look the same.

You'd almost be irresponsible as a software engineer to have someone explain what a bowling pin-setting machine should do, and then build it to do exactly (and only) that. For anything other than "bowling, exactly as specified," you'd be over-engineering an exact-fit solution only for your competitors to build something better and more extensible (with more bowling features / challenges) in six months.

Hmm sounds like you've identified a terrific opportunity to disrupt the game of bowling!

Or in less sarcastic terms, boring is an old, old game; the proof is in the pudding.

Today's generation of software engineers maybe, but thankfully humanity is a lot bigger than that. There are huge numbers of engineers who come up with practical non-digital solutions; take a look at farming or manufacturing equipment.

I don’t think this is true.

It may be true if you asked software people to build it.

Ask some mechanical engineers.

Yeah, this isn't even close to true, and honestly I think it's an issue that so many people seem to think it's true

Have today's engineers somehow stopped believing that the simpler thing is the most useful? Or is it that writing some code to glue together off-the-shelf parts is cheaper and easier than designing and manufacturing a giant machine?

One point is that pushing software into products gives companies more control and power.

* The software can collect data about the user.

* The software can prevent repairability by the user.

* The software can enforce obsolenscence (see the absurdity of smart TVs: an expensive display that can last for 20 years bundled with a super cheap computer that is obsolete in 2).

* The software can limit the user's options, in the manufacturer's favor.

> Have today's engineers somehow stopped believing that the simpler thing is the most useful?

Simplicity is a means to an end. There's no point in a "simpler" solution if it's more expensive and harder to maintain.

> Or is it that writing some code to glue together off-the-shelf parts is cheaper and easier than designing and manufacturing a giant machine?


Good engineering is about meeting the client's needs, not about showing off your own virtuosity. Too many on HN seem to forget that.

I would argue that if a solution is more expensive or harder to maintain, it is not simpler. Teleologically speaking, being simpler is a bigger umbrella which covers many facets of the intended solution.

I don't think "more expensive" is a valid criterion. When you replace a big chunk of metal with 20 carefully-designed parts that come out to be a third of the price, you have not made things simpler.

Even if it comes out as equally difficult to maintain.

Simplicity includesthe dimension of risks imposed by technologically complex solutions.

My brain just did something weird. Instead of instantly recognizing two concatenated words, it spent a while trying to work out the pronunciation of an apparently old English word, before Occam’s razor finally kicked in, hopefully before my vocabulary absorbed an errant entry.

Apologies (and too late to edit). Really crappy tablet soft-keyboard, and miss-, non-, and duplicate- keyregistrations.

That along with lack of preview or spellcheck, scroll-away-from-post mechanics, and tiny edit boxes, are my kryptonite.

Occasionally an amusing typo emerges, though not sufficient to compensate for the pain.

I don't think so. It's just easy to over-optimize things because you can.

Personal case in point. I've been hacking together some automated plant watering systems around my house. My initial thought was to have moisture detectors, Raspberry Pi, etc. I ended up just empirically figuring out how many seconds per day I needed to turn on the pump and that was good enough and a lot simpler/more reliable.

> Have today's engineers somehow stopped believing that the simpler thing is the most useful?

See how much crap do you have to install before using some modern js framework

For some others, you need to use an Arduino to make a led blink

Or maybe the true engineers are solving other problems.


I think a clarification is merited even if I think your comment is a bit low effort

Engineering involved, for most of its history, balancing cost (design and production and TCO) x effort x reliability

What people see today as an "planned obsolescence" (which does happen in some cases) is one facet of that balance. Yes you can make an incandescent bulb that lasts 1Mi hours. But it will cost more and probably consume 200W instead of 50W for the same luminosity.

Using React is not an engineering mistake. Using React for a page that has only a "Coming Soon" text and a picture probably is. And the mess of dependencies and tools that you need to use React/npm is probably not justifiable, especially compared to other systems.

Spot on. Most traditional engineering (electrical/electronics, chemical, civil) consider bloat and overcomplexity a big design failure.

This is mainly due to the cost of maintaining something during its lifetime.

Your comment sent me down this rabbit hole, happily:


That video was a bit long for my taste but I found another one that I watched instead that explained quite nicely how it works. https://youtu.be/amx6fp0s28c

Same guy also made an animation that gives a very detailed explanation of how the AK-47 works. The AK-47 is nothing short of breathtaking IMO. Wonderful! The guy that came up with the AK-47 was a true genius and a real master of engineering! https://youtu.be/_eQLFVpOYm4

That AK-47 vid was pure art. I always heard that gun is an engineering marvel but never knew why. Thanks for sharing!

Kalachnikov (The _K_ in AK-47) has stated that he dreamed of inventing agriculture equipment. He blames the Nazis by name for having had to invent his famous rifle, even though it was fielded only after the Nazis were defeated.

I saw one recently where each of the pins had tiny wire at the top...

It didn't really affect the game, you could see or notice them. But when setting the pins, it just pulled the wires, and gently relaxed the wires till the pin was standing on it's own.

Sometimes simple does the trick :)

These are called 'string pinsetters'. While they have recently become far, far better in achieving very low "impact" on the game, many bowlers will strongly prefer to play on a "free fall" or normal pinsetter. It's fairly rare but there are definitely circumstances that you just won't see happen on a string pinsetter that can and will occur on free-fall; likewise, there's always the risk that a string ('wire') will catch and topple over an adjacent pin.

Personally, I prefer to bowl with lanes that have well-maintained A2s, or alternatively the newer GS-X pinsetters. I hope to eventually build a pair of lanes in my home (my motivational pipe dream), and I'd almost surely go with one of these two even versus the substantially lower upkeep requirements (mean frames between blackout) of the string pinsetters.

It doesn't always do the trick. :)

Long, long ago when I worked at at bowling alley, when it was busy I'd have to run down to the end of the lanes a few times a night to untangle the strings the pins were attached to.

Some people wouldn't be able to do it and it would be good for them to think about this and realize it, but I hope you don't seriously believe that /humanity/ wouldn't be be able to do it. That vastly underestimates the amount of exactly this kind of problem solving that goes on every day, all over the world.

Don't underestimate humanity by forgetting to look outside of your bubble.

I don’t think anybody invented the whole pinsetting machine and ball return apparatus all at once. That kind of thing was invented through a process of gradual iteration just like software design is done.

Good point; similar to the refutation of the argument that biological eyes are too complex to have been produced without supernaturally intelligent design.

When you only consider the result of a whole pile of small but good design choices, it seems implausible. You have to consider all those steps that led up to the current state. Standing on the shoulders of giants, and all that.

To restore your faith in mechanical ingenuity you need to watch Martin from Wintergatan build his Marble Machine X. It's a neat intersection of tech wizardry with CAD and CAM and old fashioned handicraft https://www.youtube.com/playlist?list=PLLLYkE3G1HED6rW-bkliH...

To be fair, the solution with the leather thong across the bathroom is ridiculous as well.

Ridiculous in what way? It certainly solves all the constraints given in the article. What do you see that was missed? Are you imagining that it's running through the middle of the room? That's not necessarily the case. if nothing else, it could easily be anchored through a pulley or ring attached to the wall.

Is https://news.ycombinator.com/item?id=17319537 the thread you were thinking of?

In the same way, I've seen people involve Arduino's to solve simple electrical automation problems, when they could've just built a fairly simplistic circuit.

In a lot of cases, using a $4 Arduino clone (or $2 for a Nano clone) is going to be faster/easier/most certain than a $0.50 circuit, especially if you keep a handful of each on the bench.

For one-offs, that seems like a good tradeoff.

Maybe there's room for improvement, a software guided robot could be faster, more efficient, cheaper to run and occupy less space than clunky old machinery.

1st of all, the automated pinsetter is not very old, it's WWII era invention.

2nd where I work, I can clearly see how the 50+ yo engineers think differently than the 40+ yo, who also think differently than the rest.

So yes I don't think the 20-30 yo population would conceive of the pinsetter. I actually doubt they could even describe how the current one works. However the 50+ yo would not do anything else but that, and they could improvise one immediately.

It's a difference between being purpose built and efficient, vs need to thinker. The thinkering aimlessly stops at ~40 yo, when you figured you spent a fair amount of your life goofing around for no good reason (other than sex, money, and your social profile). At one point your realize than you might juts be able to leverage all your assets into something useful.

Okay that last bit was both utopia and off-topic, but it feels good...

I completely and wholly disagree. You walk into any factory that isn't Tesla made in the last decade and you'll know exactly what kind of purpose-built machinery that can be made.

This sort of goes to something I learned as an auto mechanic. When you have a problem, describe the symptoms as objectively as possible. Don’t say, “I need my tires balanced.” Or you might get your tires balanced but the problem persists. Instead say, “I feel a vibration when driving on the highway at 60mph.” This forces the technician to diagnose the problem.

That’s an overly simplistic example but that’s the point. Tell your doctor what your symptoms are, without including statements that suggest a cause, or otherwise limit the scope of the issue.

First step of any technical support case, or just troubleshooting anything is "Define the problem" and that includes when it happens, the circumstances, the circumstances when it doesn't happen, and etc.

One of my first real jobs I quickly became the favorite of some folks on the engineering team. The thing was I was not experienced, I didn't know much, but I followed a simple formula to write up problems, and they liked that. I often missed some basic steps and didn't have experience, but for whatever reason they liked how I gave them information. Also when they asked a question I was very clear and honest with "I don't know" and "I'll find out".

Other smarter techs would make assumptions based on their experience, fiddle with this and then, and then present to engineering this rambling tale that was all about what they tired to fix the problem and didn't fix it.... all while missing what the problem was in the first place, when it happened, and so on.

Not only tech support but also sales.

When I attend trade shows, I often have potential customers come and ask if we sell a particular type of technology. I’ve discovered that really what they are doing is asking if we sell the think they they _think_ is the solution to what they _think_ is the problem. It’s my job to figure out what their problem _actually_ is and then figure out if we have something that can solve _that_ problem.

One has to be quite diplomatic in these situations. They certainly know more about their domain, but I know more about technologies to solve their problem. So I need to pry out more information without sounding like I think I know more about their job than they do.

I like that part of the job.

Nice; the generalized version of "if I'd asked my customers what they wanted, they would have said a faster horse".

On the other hand, the job often turns out to be knowing the set of problems for which you're selling a solution (which is quite large for some companies e.g. Oracle) and then convincing the potential customer that this is the real problem that they have.

Interesting; this is sort of the flip side of one of the slides here: https://news.ycombinator.com/item?id=17532360 "Cognitive Distortions of People Who Get Stuff Done". One of the items is "Correct Overgeneralization", which seems to be basically what you describe in the last paragraph. Making assumptions based on experience, but being mostly right. Surely there's some balance to be struck: there's value in experience -- it can help you move faster -- but you have to be able to recognize and question your assumptions if need be. Sounds like your "smarter techs" were missing that step. They didn't circle back after their shortcuts failed them.

Absolutely there is value in experience! I don't want to discount that at all. I was way more productive longer-term for sure. And those techs weren't bad by any means.

The critical points in my example were failing to properly define the problem, and to some extent failure to communicate when engaging engineering created more work, delay, and frustration.

That would be the right thing to do with a competent technician or indeed your doctor. However, here in India where I live, mechanics and computer technicians are for the most part essentially illiterate. They have absolutely no experience with the kind of analytical and critical problem solving skill you describe. Very often I am the expert in the room, and the only thing preventing me from doing the repair myself is the actual tooling (Plus I don't want to get my clothes dirty :-) ). So I do the do the diagnosis, and tell the mechanic what to do and they do it. Works well for all of us. :-)

That’s different then. You aren’t asking for someone to solve a problem for you. You are just paying them to perform a task. I’m referring to the issue addressed in the article about problem solving.

India has exceptionally skilled mechanics. I saw one resuscitating a worn axle by stick welding new metal onto it! (In the street)

There are situations, however, where you have to know specifically what you want in order to get it. Using my personal experience with automobiles in Pakistan as an example, maybe 1 in 50 places that's capable of changing a tire also has a good quality balancing machine. If you've just purchased new tires and you know you're going to need all four wheels rebalanced, you have to intentionally seek out that rare place which has a modern digital tire balancing machine and knows how to use it.

Let me guess... Puegeot branded car?

Oops, forgot this funny add, yes too!

Full context for the other readers: The puegeot 206 have a known axle problem, leading to breaking up right after warranty expires: http://clubpeugeotuk.proboards.com/thread/3298/faulty-axle-o...

It can be solved by directly welding metal to the axes. Considering how popular the 206 is in India, I thouht the OP was also relating his personal experiences with having his Puegeot fixed

*Peugeot (sorry)

Oops, yes.

Yep, this is generalized as the "standard litany" for bugs reports/request for assistance:


and if you don't provide that you risk to slip on a chocolate covered banana (or XY problem):


This often got me into trouble on IRC. Sure there might be a more elegant way to do it, but I'm learning here!

Curiously I also regularly got into trouble for what I trying to do, not just the how.

For IRC, you need to go through the (only seemingly dated), a bit lengthy, but really exhaustive:

How to ask questions the smart way ... (by Eric Steven Raymond)


Sometimes a subtle difference in the wording of the question may make the difference from receiving one or more helpful/useful replies and getting some snarky reply.

"subtle difference"

To me, that's hazing. There absolutely are bad questions, but the things that make them bad are rarely subtle.


>In the last question, notice the subtle but important difference between demanding “Give me an answer” and “Please help me figure out what additional diagnostics I can run to achieve enlightenment.”

Similar to the XY problem.


This is true when giving feedback on games too when playtesting! As a designer, I love it when players say "I was frustrated when facing X, and had a lot of fun when doing Y interaction", rather than things along the lines of "I think X is too strong and needs to be balanced by doing W, but I think you should keep Y exactly as it is because it's just right."

Goes for both video and tabletop games. In general it's good to be able to articulate your "root issues" and work your analysis of the experience from there (if that's your responsibility, otherwise leave it to the people whose responsibility it is, the root issues are the only information they need).

This is very much captured elegantly as XY problem:


I don't think it's simplistic at all. In fact I think it's core to product/requirement management if you're doing it well.

"Tell me what you want to do, not how you want it done."

Or in business with knowing that customers don’t want 1/4” drills, they want 1/4” holes.

Or they want to feel proud their home and show off to friends. Which means getting modern art on their wall, hence requiring a 1/4" hole, and hence the corresponding drill bit.

Let's briefly imagine the world where this thinking is taken to its logical conclusion.

So business thought, why bother with drilling, let's invent Modern Art Affixer, because that's what people really want to do.

(That we can vendor-lock them in this is just an added benefit.)

Then I need a screen mounted on a wall. I can't use Modern Art Affixer, and it's something not common for regular consumers to do, but fortunately there are some (appropriately more expensive) Screen Affixing services that mostly service other businesses.

Then I want to hang a DYI piece of equipment I made and I'm shit out of luck, because individuals doing DIY hardware are too small a market to justify dedicated products.

Coming back from this nightmare - the point is, what happened with the concept of technology empowering people? That is, giving them means to solve their own problems, instead of trying to sell a ready-made solution to arbitrarily specific problem? It's not that I mind very specific solutions - but without more general, empowering technology, we'd be limited to only solving specific problems that affect large enough amount of people to justify a business around it. I worry this already starts happening at the intersection of hardware and software (e.g. most IoT products can be seen as solving overly specific problems to vendor-lock people).

So big thanks to all businesses that keep assuming that what consumers really need are standard-sized drills.

That logical conclusion exercise basically how to suss out, and then create giant scale businesses.

When enough of these exercises in root cause analysis (which is a bad methodology) point to the same problem, and you can monopolize the solution for that singular problem, you have a massive win on your hands.

You have to either trust your mechanic or know enough to avoid getting flimflammed. An unscrupulous mechanic can cost you hundreds in superflous services easily.

This is an entire section of Zen and the Art of Motorcycle Maintenance.

You see this a lot in stackoverflow.com

What I see on SO is a lot of really annoying people refusing to answer simple questions because they believe, based on nothing, they know more about the question than the person who asked it.

When asking "unpopular" questions on SO I usually include a disclaimer along the lines that I want to know the answer for education purposes and any answer that is not specifically addressing the question at hand will get downvoted and never accepted. This works to some extent.

In the end, I stopped asking questions on SO because dealing with this kind of behaviour was too tiresome. I'm glad to see I'm not the only one who thinks like that

It heavily depends on the tag.

Some tags have friendly communities that will give a dozen of pointers in the comments.

Never ask them anything about Linux networking. They get so excited to gatekeep the information and tell you that you don't know enough to be safe doing whatever you're doing.

I've actually been super curious lately what happens if you route a PC's localhost to someone else's IP, but I have no clue how to ask on SO without baiting out the obvious "don't do this" and the generic "stuff won't work". Obviously, I could do it myself and explicitly see stuff not working, but I'd like to find out what actually happens under the hood and why things break; SO seems like an awful place for these kinds of "what if" questions and I don't know a better place to ask.

You're curious what happens if you add a route for 127/8 to somewhere other than the loopback interface? Or do you mean making it so that the hostname "localhost" resolves to something other than Give it a try.

what I see on SO a lot is people assuming your question is an instance of the "XY problem" when it's not.

Also the case where for the original asker it really was was an XY instance, but now the top google result for "how do I fill a bathtub using a hosepipe?" goes to a Stack Overflow page full of people refusing to answer the question.

...which was then closed for being a duplicate of another question, even though they are different questions that superficially look similar

Got a link? I can't find the page in Google, DDG or Stack Exchange search using that search text.

I think it was just an example, but now there's this lively discussion about us: https://chat.meta.stackexchange.com/transcript/89/2018/7/15/...

The thing is, 99 times out of 100 it really is an XY problem. If you're the 1 out of 100 then it sucks to be you; I guess the free advice is worth exactly what you paid for it.

I don't often make that accusation, but the last time I did that's exactly what it turned out to be. They were trying to dive deep into the internals of C++ to find out why their debugger was hanging, and what they were asking for just didn't have an answer. They finally found that they were doing something that led to undefined behavior, and if they had asked about that instead the question would have been answered immediately.

I have ~7k reputation there, that should be a pretty strong signal, but apparently it's not.

The person asking the question above has a 5k reputation. Mine is over 100k so I've seen quite a bit.

I see mostly homework problems on SO.

I see mostly lively threads that are closed by moderators as 'offtopic'.

Yes. Don't assume, describe the context and explain the reason for your request.

Good luck with that when contacting Comcast or AT&T.

I visited some dorm rooms in Croatia once, and they had a nice solution to this problem. Both doors opened inward, with the non-hinge side of the doors sitting very close to one of the walls with no doors. Instead of a conventional lock, a narrow piece of wood ran the length of this no-door wall that could be rotated to block both doors simultaneously.

This is like the solution in the article, except deals with the "opens-inwards" case instead of the "open-outwards" case, and is less fumble-y than having to attach a rope to both doors.

I've seen a similar solution in the swimming pool changing cubicles at a Center Parcs in the UK. The cubicles have two inwards opening doors opposite one another. Once inside, you close both doors and fold down a bench which blocks the doors shut and gives you somewhere to sit. Very clever solution.

There is better solution used everywhere else.

The bench stays in place. Both locks are linked by a bar, that can be conveniently hidden under the bench. When rotating any lock, they both rotate together.

If you have to fold the whole bench to get out you are less likely to accidentally leave something behind. But I guess the real reason for this design is probably that folding the bench saves some space.

Except if there is a fire and you realise it's stuck. A normal lock can be kicked in if not opened with master key, but that contraption sounds hard to break in to.

There are large gaps above and below, plus the hinges are plastic and the walls are plastic covered chipboard (or something similar.

The bench lifting is part of the system - you can't leave rubbish or water on the bench.

You could solve a safety access issue by having the bench corner removed and replaced with a breakable component; but I'd speculate the materials are such the hinges already serve that purpose and changing the corners would lead to a lot of accidental breakage.

I'm imagining that doors on "swimming pool changing cubicles" are flimsy enough to kick outwards.

I feel like a fire at a swimming pool might be more rare than a fire elsewhere, just by virtue of being surrounded by water (pool, showers, etc). Maybe I'm wrong.

True. You might get smoke from somewhere else in the building though.

A fire? At a sea parks?

No idea about this specific example, but if it is anything like normal bathroom locks, I'd expect that you'd be able to rotate the bench back upwards with some sort of key/screwdriver/lever from the outside.

I'd worry about someone being ill while sat/leaning-on/collapsed on the bench though meaning you cant rotate it. I guess this is an issue for any door where a body could block it being opened? At the least in a changing room cubicle these are usually open at the top so someone could climb over in an emergency.

Wow, thank you. I have been struggling forming the mental picture in my head of how the leather rope could work... I didn't even think that the doors would be opening outwards from the bathroom.

Upvoted :)

You could leave your door open and still lock out the other in this case.

I think assuming malice the problem becomes much harder.

I wasn't thinking malice actually. You might just want to use the bathroom with your own door open and not think anything of it.

In that situation the open outwards/rope solution is indeed more save.

In your case you could design it such that you can’t close the door after use without unblocking the other one. Typically people would like to close the door to the bathroom after usage.

Do you have a picture or a diagram of this? I'm finding it hard to visualize.

|\ /| imagine those being the doors slightly open into the room.

Now here it is with the doors shut and the wood beam between them. ||__||

Can’t open either inward until the beam moves.

The thing in the middle is a stick attached to the wall on a hinge.

View from above - open:

View from above - closed:

The whole thing at “face level” with the pushing beams sliding in guiding loops.

I just can't believe I understood the whole concept so easily by the creative use of ASCII characters!!


But if the beam somehow fell/rotated in place while no one was in there with the doors closed, you'd be locked out without a non-destructive way to unlock it.

The same issue applies if the person inside is unconscious or otherwise unable to help.

You make the beam weak - strong enough to avoid accidental breakage, weak enough that a solid shoulder will break it. You also make the rotation cammed in such a way that gravity holds the beam failed open.

As used in pretty much every swimming pool I've ever been to.

In other words, the bathroom is a "critical section" and instead of focusing on locks on each door, it's been replaced with one big "lock" that locks them all at once.

It makes the transaction atomic.

You can do that with two locks too, but one is simpler.

Also, there is a failure mode here. Can you think of it?

Death of the person in the bathroom? Damage to the hooks causing a jam or releasing the lock entirely? Simply not engaging the lock at all? Someone walking off with the thong and using it creatively elsewhere in their hotel? A few failure scenarios. Nothing's perfect!

Death or incapacitation of the person in the bathroom is what I had in mind.

Yes, there's also the leather strap or hook (or doorknobs, ..) breaking. I hadn't considered that, oy.

I can't see what failure mode that the single lock has that isn't the same in the 2 locks version.

I often share the bathroom with my wife, and we don’t always enter at the same time. I.e. sometimes you don’t want to lock your own door.

Just thinking about this for a minute or so, I don't think there's a way of allowing /only/ one door to remain open-able ('unlocked') that solves the problem. Either both must lock/unlock in the same action or there must only be one door to the restroom (that is, duplicate the resource).

It's a different problem.

If the two people are accessing the bathroom from the same side, locks are not a problem. Three or more people sharing the bathroom is a different problem.

Awesome solution, simple genius. So many times I've tried to explain a similar principle for this kind of situation. Signs don't work! People don't read them (actually, they often don't even see them, at least consciously). Especially when it's a common action. You generally have to physically alter their path through the task to get their attention -- disrupt the affordances somehow.

If you don't want anyone to turn on the oven, cover the knob (or remove it). Same for a door handle. There's one case of something on the shelf that's earmarked for a particular purpose? Tie or tape it in place. A sign works to give reasoning, but first you have to slow down the distracted and goal-oriented person enough to read it.

Another good example of this kind of design is circuit breaker lockouts: an electrician needs to work on a particular circuit, so they turn off the breaker. To make sure that no-one turns it on and kills them while they're still working, they bar the switch in place with a physical lock that only they have the key for. Better, some models allow multiple locks to be attached (it's like a physical concurrency semaphore). Then the circuit can't be re-powered until all locks have been removed.

A surprising number of these comments are trying to find problems with the solution.

I've noticed a tendency for hackers to assume that practical solutions to real world problems are theoretical, and then try to pick holes in them, forgetting that if the solution is already implemented and in place, then it probably works just fine.

But that’s a big part of designing anything: Trying to find a solution’s faults to then be able to implement a better one or at least be aware of the faults and work around them. I don’t see anything wrong with that.

To echo you, that's also one of the things you painfully learn when working with real software systems: there will always be failure cases you didn't think of. Better to catch as many as possible early. Just because it's working now doesn't mean it will keep working tomorrow.

The world might beat a path to your door if you https://en.wikipedia.org/wiki/Build_a_better_mousetrap,_and_...

> find problems with the solution

You would be surprised to know how many nobel prize winners do that.

Really? How many?

Why settle with "just fine"?

Opportunity cost. Time spent trying to come up with a better solution to something that doesn't need a better solution, is time that isn't being spent doing something more valuable.

OTOH, one could argue that pursuing a seemingly trivial improvement to an existing solution could - by serendipity - lead to a breakthrough that actually does solve other problems as well. But I'd guess that, on balance, there's a greater payoff for spending time on something besides incremental tweaks to existing solutions. But that's just a guess...

When I was a young child I tied the pantry light's pull chain to string and tied the string to the door handle, just taut enough that it would enable the light when the door was opened.

Regretfully to shut the light off, I needed to first close the door, re-open the door and then finally close it.

Crafty. I like it. It's funny the little (and not-so-little) things we put up with, just so we can bask in the joy of our own creations.

As everyone else is trying to re-solve this problem in a better way... Here's my 2p's worth:

Employ a monkey to lock/unlock both doors for you. Use something like a banana for lock and an orange for unlock, keep baskets of both fruits in the bathroom. To stock the baskets get the maids to do it when they change towels.

I would pay good money to stay at a hotel that utilises monkey-lock-fruit-bowl arrangements

One ticket for the lockpicking monkey circus please

In product management this is often described as problem space vs solution space.

One of my biggest lessons in “managing up”: agree on the problem, and take any suggestions for a solution seriously. Then work to make the solution you present as good or better.

> often described as problem space vs solution space .... agree on the problem

The hard part being agreeing on the problem!

Sometimes, management sees the "solution", and present it as a problem that engineers then must solve. For example, competitor has brand new feature, and management asks said feature to be implemented (presumably, keeping up with the jones style). But the actual problem isn't lack of said feature, but that customers are not buying, and the only reason that's presented is a lack of said feature.

I’d find it rather difficult to use a bathroom that was divided in half by a leather thong.

The strap could be diverted around a pully so the room is still usable

Why, because of the string thru the room? It can be placed along either side of the wall.

I have trouble seeing how it could be placed along the wall while maintaining the necessary tension.

Through rings bolted to the wall.

Good (and in retrospect, obvious) point!

Yeah, I misunderstood things worse: I thought doors opened inwards, and that the ropes were somehow rigid (basically rods).

I suspect the door opening was already close to a wall. Just make sure the hinge is on the side farthest away from the wall.

I think just because thong is a funny word that means different things in different places

The word means a (leather) strap - which is why thong underwear and thong sandals are called "thongs" that's what they're made of ... like rubbers being called rubbers (kinda, note a rubber in en-gb is both an eraser and a prophylactic).

I don’t think the illustration is accurate. You can imagine a room where the doors are right next to each other.

The bathroom connects two rooms where you don't know or trust the other room.

Without a lock you have no way to prevent them coming into your room when you are not there.

Still that is some great out of the box thinking.

That thought occurred to me, too, but I realized that you could add locks that could only be locked from the bedroom sides.

Yes, but then the problem becomes possibly being locked out of your own bedroom, stuck in the shared bathroom!

How? If someone from your room on purpose locks you in the shared bathroom? That doesn’t sound like a likely scenario

I lived in on-campus student housing that had bathrooms like this (the locks on both sides of both doors version.) My friend was in the bathroom during a commercial break of X-Files and I locked him in there. Ha ha. So he knocked on my neighbour's door and got out that way, but he still needed to get back into my room from the public hallway. I was watching him through the peep hole in my door, and to taunt him I opened the door and quickly closed it again. The two problems with that were that the peep hole made it look like he was further away than he was and the door had a hydraulic arm on it and didn't close as quickly as I expected. Anyway, I put ice on my forehead for the rest of the episode and then went to the hospital for three stitches.

I'd say that the likeliness really depends on whose bathroom it is. ;)

May not be likely but does seem like this would be in violation of fire codes. (Possible lack of free egress)

That could always happen regardless of the locking mechanism.

The solution still allows you to lock your own room from bathroom entry (though it isn’t this way, weirdly, at the hotel in question).

> You could, of course, tear down and rebuild the entire hotel, at great expense, so that each room has its own bathroom—a solution that might sound ridiculous, but isn’t so far removed from how similar design problems are addressed every day.

The 'similar design problems' link in this sentence points to an article about how the video game Destiny was delayed due to a story re-write. What on earth?

I was at one of the baths in Budapest recently where I saw another solution to this problem. The locker room is mixed gender, and the changing stalls have two doors that open to opposite sides of the aisle. But the doors open inward, and the bench inside folds down to block them while occupied. Then you have to lift the bench to get out.

I thought this was going to be about the question of why every hotel bathroom has a different way of controlling the hot and cold water in the shower, and why none of these are anything like what you see in most residential bathrooms.

No one has mentioned this yet: remove the two private doors and install a single door in the common hallway.

Yes you lose some convenience by having to be clothed while entering and exiting the bathroom. But at least you guarantee the door is always unlocked when not in use.

That's only possible if the bathroom is next to the hallway, otherwise they have to tear down the building.

Some parts of the solution are left unspecified. Which way do the doors open? Surely not inwards, else someone can intrude. Do they only open outwards? In which case, to get out, does the leaver first detach the rope from the handles?

Realistically, if you're the one solving the problem, then the answer to "Which way do the doors open?" is "whichever way you want, since it's you who decides on how to build them".

I was thinking this too. They must open out which is uncommon enough (at least nowadays) to deserve comment

Yes to the last question.

I guess if society had no problems with nudity and bath room activities, the problem of needing to keep the doors locked when it is occupied not exists.

I have zero problems with nudity and I still don't want anyone walking in on me while I'm taking a dump.

Instead of relying on the user to "do the right thing", the idea is to prevent the user from doing "the wrong thing" and making it as automated as possible. This is course clashes with the "let the user freedom to do anything", forcing subpar decisions and predictable mistakes. Making the interface of system simple is more important that making the system itself simple.

The bathroom in my house is like this. This solution would make me happy, but perhaps is too weird to be worth explaining to visitors.

I'd imagine visitors would marvel at the succinctness of the design, and it'd be a talking point!

Unless they're HNers, in which case they'd take great delight in demonstrating their superior intelligence by explaining why your locking system is ineffective due to various hypothetical scenarios.

Or attach the lock mechanism to the toilet so when a door is opened it flushes

I get what the author is getting at. But this particular example doesn't really help with the conclusion. The solution is still about locks, just that the 2 locks are now linked together.

There are no locks in doors at all. There is a single mechanism physically connecting the doors together, so that neither can be opened, and that can only be engaged and disengaged from the inside.

How is that mechanism not, itself, a lock? It's an unusual (and well suited) kind of lock, sure, but still a lock.

Try pointing to the part that is the key that unlocks it, and you will see. (-:

Yes, strictly speaking the headlined article is likely talking about door bolts not locks.

There are plenty of locks that do not use keys, e.g. a keyless deadbolt.

No. The key that unlocks a "keyless" deadbolt is the code that one types in.

That type exists, yes. There is also the variety that is simply impossible to unlock from one side.

Another way would be to make the the lock a large rotating latch that was connected mechanically to a similar latch on the other side.

While this would be more complex, it wouldn't get in the way as much.

Another possible solution:

Each side has two locks: one that is locked when the key is missing, and one that is locked when the key is present. To give yourself privacy, you must also lock yourself in. To exit the room, you must first unlock the other door and use the key to unlock your own door.

That would violate fire codes almost everywhere.

It’s also asymmetrical. The occupant of the locked-when-key-is-present room would have no incentive to return the key and to unlock the opposite room door.

It’s not really assymetrical: both sides have one key and two locks. But you’re right that it won’t work.

Nope, ignore me. This protocol has a fatal vulnerability: either user can just remove the other side’s key, and put it on the windowsill.

Brilliant ! Means vs End. Getting fixated and not taking a step back only adds more debt to the solution, if the problem is partially solved.

I'd have assume the door handles are close to a blank/empty wall... Otherwise all I can imagine is trying to use various things in the bathroom and having to step over a waist-level leather strap running through the middle of the room while you're trying to use it.

As the diagram goes at least, if you were sitting on the toilet, and then decided to have a bath, you'd be contorting yourself over the strap.

This entire treatise presumes not using one switch, two locks. Cars seem to have no trouble with this.

Electronic locks was not a thing in 1900. Old cars with manual locks did indeed have the cases where the driver reaches over and locks the passenger door, when the passenger forgets to lock it themselves. And users of old cars will remember the "open front door, reach inside and unlock back door" maneuver.

Central locking: if you're in the centre of the car yu can lock all the doors.

Cars in 2000 still had that.

Someone attaches the rope and dies in the bathtub. Now we have a problem ...

You can use sensors to figure out if someone is inside these days. Tech is cool.

The sensors have a lot more failure cases, though, and it can be hard to tell whether they're working properly.

Reminds me of light sensors in bathrooms. Often you have to wave your arms to let the sensor know you’re still inside.

Yeah, that's what I was thinking of too. Don't relax in the tub too long or the doors will unlock!

That could be a feature, for someone waiting to use the facilities...

could also use a mechanical interlock such that when one door opens, it locks the other door, then when you return to your room the act of closing your door behind you unlocks the other door.

Wouldn’t this make it easy to get into the adjacent guest room?

They could still have locks on the doors, but the locks would be to keep people out of the hotel rooms, not out of the bathroom.

I believe the parent is suggesting that the two rooms adjoining the bathroom would be mutually accessible when they shouldn't be.

Yes, so you have a lock on the door that you can only manipulate from your room. Unlock it when you need to use the bathroom, lock it otherwise.

This of course doesn't allow you to lock the bathroom when you're in it from other people also in your hotel room. Although this is certainly much less of a concern.

so then you need to remember to bring your hotel key into the bathroom.

Why? It’s not a key, just a lock you open/close from inside your bedroom into the shared bathroom. Once you are in, you can just walk back into your room unless someone in your room on purpose locks you in.

There's a lock on the bedroom side of the door.

What if both doors don't open in the same direction?

Sure, but what if both doors open _into_ the bathroom?

Oh. I get how the solution works now. I was assuming the doors opened into the bathroom (which I think most do in most places I've been??).

If they open into the room then you have two giant rods that you connect together to hold them shut? Another solution but even weirder...

>where bathrooms share a bathroom

Is this a typo?

In the Hotel Louis IV even the bathrooms have bathrooms (but the guests still have to share)

I think it should read "where bedrooms share a bathroom".

Very interesting problem! The supplied solution is simple and it works for that specific use case, but there are still some problems.

1) This can only be done where its feasible to connect the two doors with a rope. What if the doors are physically seperated far away from each other, or maybe even seperate entrances to a large bulding complex?

2) You can be locked inside the bathroom if someone locks the door behind you.

So i tried coming up with my own solution to solving the specified problem while also dealing with the problems with the other solution.

First off it makes sense having a system with keys and devices that are easily installed at each door. That way you deal with problem 1.

With this solution another problem arises: You can just remove a key from the room and nothing will work, so a constraint is introduced.

Specifically: It should be impossible to exit the room while carrying any of the keys, given you don’t work together with the opposite side.

So my solution is: A connected sliding lock on both sides of both doors, plus a sliding lock containing a key on both doors inside the bathroom. So one sliding lock in the apartment side and two locks the bathroom side for each door. Inside the bathroom you can only lock the opposite sides door by locking your own door first. Locking your own door with the sliding lock containing a ley gives access to the key which you insert into one of the sliding locks on the opposite side. An important feature is that you can not remove the key from the lock on the opposite side without first unlocking it and you can not unlock your own door without using the key.

So with this system it is impossible to leave with a key from the bathroom, and you also can’t lock your opponents door without locking your own door, barring your escape.

At first I thought this solution was the perfect one, but then I realised that there is nothing stopping someone from stealing the key from the opposite side by just locking the opponent door with their sliding lock, removing the key, and leaving the room.

The solution to this is that the sliding lock for eachs side key is connected to the sliding lock on the apartment side. By this I mean that when the door is locked on the apartment side, it will make the sliding lock on the bathroom side unmovable, and aldo vice versa. If you have locked the door on your side, the sliding lock will also be immovable. This way nobody can lock you inside, and you can not steal the opponents key because it is locked from its apartment side therefore blocking the use of the sliding lock with the key on the bathroom side.

So I think this solution works, even though it is somewhat complicated. So heres the user story for using the bathroom.

1. Unlock door on apartment side. 2. Lock door on bathroom side, and take key. 3. Use key to lock door on opposite side 4. Do your business 5. Unlock opposite side, and take key 6. Use key to unlock your own door, locking the key in place in he process 7. Exit the bathroom and slide the lock again.

I guess this is what you would call «over-engineering» but it was fun trying to come up with a solution!

Please tell me if I’ve missed something that would break this, I can’t come up with anything atm.

Has nobody ever been swimming?

I have never seen this situation at a swimming pool, and I have no idea why it would be necessary at all? Just have a cubicle with a shower curtain, or an ordinary change room.

All swimming pools in the UK have cubicles with two doors - one that leads to the pool and one that leads to the exit. There isn't any way around the cubicles.

It's to prevent people casually walking into the pool in shoes and making it dirty.

They use a single piece bar that locks both doors simultaneously.

If only London hotels architects had known this, the majority of showers might not be a size smaller than a phone-booth such that you cannot turn around in it and must enter/exit sideways... while not being at all rotund.

So: try { lock() } finally { unlock() }

Ah, but there is one failure mode... Can you find it?

Guess not. The failure mode is: the person in the bathroom becomes incapacitated or dies.

Good article, but what they failed to notice was that the bathtub already blocks both doors from opening.

Okay, how would tying the two doors together prevent the doors from opening if the doors opened inwards? It’s pretty obvious the doors would have to open outwards from the bathroom into each suite. So the bathtub’s size and position in any diagram is even more irrelevant, I’d suggest.

If one has always lived in a country where bathroom doors (or outdoors, for that matter) as a rule open inwards, maybe the idea of a door opening outwards is too distant to contemplate.

It's a poor drawing. They look like doors that open inward. Doors that open outward would be need to be set more deeply into the door frame.

A poor drawing and a worse excuse.

There's only one way this could work and how it's drawn has very little to do with it.

If they open inwards you replace the rope with a stick.

A stick can handle both inwards and both outwards, but if one is in and one is out then it's no good.

Well it is cheaper to change the direction of the door than it is to demolish and rebuild the hotel.

What if the high humidity of the bathroom causes the leather strap to break at an inopportune time? What happens if the strap gets misplaced or stolen? This is not a good idea.

> What if the high humidity of the bathroom causes the leather strap to break at an inopportune time?

I doubt that would happen, but use something other than leather?

> What happens if the strap gets misplaced or stolen?

Replace it?

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