A Real Life Off-by-One Error
https://leejo.github.io/2024/09/01/off_by_one/- Not an off-by-one error—at
least not in spirit. Interesting nonetheless.I expected the article to eventually answer this puzzle:
> The competition started and got through a number of rounds. There were some comments about how the climber on the left always won.
Near the end:
> The kicker is that the out of place hold hasn’t been used in a long time. The climbers have optimised their route such that it is skipped. The same happens to the fourth hold from the bottom. So either being in the wrong place is immaterial to the climbers’ technique as long as they don’t get in the way.
So it seems like the error discovered by the article author should not have conferred any advantage to the climber on the left.
Anyone who can shine light on this matter?
-- AEVL Reply - The climbers had complained about an issue with the belay ropes on the right side that they also fixed.
> A few of the climbers had said that the automatic belay ropes on the right hand lane did not feel right, so the cherry picker was replacing those and not the hold that I had noticed being out of place. The climbers had noticed something wasn’t quite right, but hadn’t said anything about the out of place hold.
It was probably just two separate problems.
-- Arcuru Reply
-- Reply- >Not an off-by-one error—at least not in spirit. Interesting nonetheless.
Literally it was an off-by-one error. Literally, literal meaning.
-- fsckboy Reply - I think the poster meant off-by-one doesn’t simply mean a plus or minus one error, like mispricing a $5.99 as $6.99, but instead must be born out of confusion as to whether an origin point is marked as a 1 or as a 0.
-- hyperhello Reply - Off-by-one is not born from the base of the index. It is a general problem a lot of people run into in a lot of different contexts.
It’s for example called “the fencepost problem”: https://betterexplained.com/articles/learning-how-to-count-a...
I agree subtracting or adding one to any number is not the problem. It has to do with counting.
-- fmbb Reply - Perhaps the pieces are placed by counting a number of holes from piece A to piece B? That's a perfect recipe for an off-by-one: at which point relative to piece A do you start counting.
-- richrichardsson Reply - > must be born
There are other reasons as well. I think the more common causes are inclusive vs exclusive comparison errors and fencepost.
-- Kiro Reply - > So it seems like the error discovered by the article author should not have conferred any advantage to the climber on the left.
They might not use the hold by physically touching it, but they might still use it as a visual indicator of where the other holds are in relation. These competitors are used to the same layout for many years. If there is a slight misrepresentation it can surely put them off.
-- Robbsen Reply - It may not be a fencepost error, but I think it's still off by one.
-- throwawayk7h Reply - Even if the out of place hold were used, would you then conclude it to be causal? I still wouldn't rule out coincidence. Many discoveries happen as a result of investigating spurious patterns.
Also the author rules out psychology, but I wouldn't, especially since there were multiple confirmed errors in the route preparation, which I expect could reduce one's trust in the fairness of the competition. In the moment, I might start to wonder, "If one hold was out of place, why not more? Is anyone even checking this?" even if untrue / unlikely.
-- merizian Reply - I’ve never been a competitive speed climber, but I do understand that part of the process of precision is having cues for e.g. body position. So the fact that it’s never actually touched is not necessarily the red herring it seems to be. Racecar drivers cue off of trackside landmarks to get their brake timing right, for instance.
Certainly, the rope feel is a much more significant factor, since the feel of the rope tugging on your harness is a non visual part of your body position feedback (maybe “I know that I’m going fast enough/pulling hard enough if I’m outracing the rope retraction rate”).
-- petsfed Reply
-- Reply- If you cross your eyes and look at the routes as if it were a single stereoscopic image overlaying one route on top of each other, the misplaced hold jumps out at you immediately.
-- delgaudm Reply - I don't understand how this works. If I cross my eyes, the images become extremely blurry. I can't even tell if they are precisely overlapping or not, let alone see if one of the holds is out of place.
Am I the only one?
-- sebtron Reply - That needs training, took me quite some time to learn this in the early 90s when the Magic Eye books [1] came out and autostereograms could be found in many newspapers. I personally also never learned to cross my eyes, I instead make them look parallel, see the diagram in [2]. Once you have learned it, it is hard to unlearn it, to the point that once in a while my eyes and brain will snap onto repetitive patterns like grid paper or just text without any intention to do so.
[1] https://en.wikipedia.org/wiki/Magic_Eye
[2] https://en.wikipedia.org/wiki/Autostereogram
-- danbruc Reply - It works. It is actually my secret technique when solving "find five differences".
-- sukmaagung Reply - Sometimes I also use this as a code diff tool. But it's most fun for those image puzzles.
-- qwertox Reply - Now I’m one of the happy 10000!
-- uvesten Reply - For people who may not understand your comment: https://xkcd.com/1053/
I'm also one of them... actually not, I'm not "in US" :)
-- jve Reply - Good idea. I just tried that on the first image of the whole route (after zooming in a bit) and the misplaced hold looks like it's floating in space away from the wall.
-- lilyball Reply - I tried this, and while I didn't have any difficulty establishing a stereoscopic view it didn't jump out for me at all. I perceived the blue line floating on top of the problem handhold, but the handhold seemed to be on the same plane as all the others. Knowing it was the problem one, I could use the stereoscopic view to see it, but without already knowing I don't think it would be apparent.
This is odd to me since I've successfully used stereoscopy in the past to find small differences. For some reason, with this image, rather than causing a change in perceived z-level, my eyes fight for dominance and my left ends up winning.
-- dkbrk Reply - >This is odd to me since I've successfully used stereoscopy in the past to find small differences.
Same, I think there are too many other things around it to make it work for me though.
-- carlmr Reply - I just did it and it didn't jump out for me at all. Odd
-- pooriar Reply - I usually find it easier to relax my eyes (focus too far rather than too close), and so the opposite occurred - most of the holds appeared to float in a single plane (slightly wavy perhaps due to lighting differences), while the incorrect hold was sunk further back.
-- pavon Reply - It's so weird ! The badly placed hold just disappears once all the rests aligns. My brain seems to dismiss it as an error on its part
-- Miraltar Reply - Same! I couldn’t get it to work because that sailboat was in the way.
-- LeonB Reply - Great find!
One comment on what the article says:
> If this were actual code review the correct comment would be something like “this [piece] hasn’t been used for years, it should be deleted”. But this is something in physical space, and there would be arguments that removing it (them) means the route has changed, thus times are no longer comparable.
Hmm, I think the correct analogy is rather a benchmark. Like code in a benchmarking tool or test, the whole climbing course does not serve any purpose, any actual goal, except to be completed as fast as possible.
You wouldn't say "these instructions should be deleted because branch prediction and speculative execution in recent years have made it so that total cycle count is the same without them", for the reason stated ultimately after in the article already: That may not have been true in the past, and may change again in the future.
-- anyfoo Reply - > You wouldn't say "these instructions should be deleted because branch prediction and speculative execution in recent years have made it so that total cycle count is the same without them"
This is a very different statement than the original, and furthermore the original might actually trigger performance issues e.g. while the operation might not be used anymore it can have side effects (like triggering a prefetch) which end up affecting downstream code.
-- masklinn Reply - > "these instructions should be deleted because branch prediction and speculative execution in recent years have made it so that total cycle count is the same without them"
Then a new CPU architecture becomes popular, and spiders start winning every speed climbing event
-- bigiain Reply - This week in 1945, an off-by-one error disrupts the surrender ceremony ending World War II: https://www.theglobeandmail.com/news/world/how-a-canadians-m...
-- CoreDumpling Reply - > When the Japanese delegation protested – could they accept a botched surrender document?
For some reason I find this a bit humorous. My dudes, you do not have much leverage.
-- dustincoates Reply - Seems bizarre to keep the same wall config for all of time. The sport becomes about muscle memory more than anything else. The competitors can literally turn off their conscious brain. It would seem to me, it would be more exciting as a spectator and competitor if they had to problem solve on their way up there. Records could be less about best times and more about how many rounds did someone win in a row or something.
They could even still incorporate the one standardized wall config as a speed round once in a while or integrate it into the competition in some other way.
-- fracus Reply - > Seems bizarre to keep the same wall config for all of time. The sport becomes about muscle memory more than anything else.
Plenty of other sport are pretty much the same each time, particularly track and field.
-- lostlogin Reply - Exactly, I don't understand people who watch any of the tracl and field disciplines and complain about this wall being the same everytime. Like there's about 10 different disciplines of people running on a plain track and that's fine but people climbing the same wall isn't.
I totally get that you might find lead or bouldering more interesting but that's not the point.
-- Miraltar Reply
-- Reply- The same wall config is only for the speed competition. There has been debate about changing it though, cause like you said they become muscle memory and hyper-optimized.
There are other forms of competition:
- bouldering: how many of 4 short boulder problems can you finish
- lead: how high can you get on a longer, higher route (pictured on the right of the image in the article)
In these ones the problems are switched up every competition.
-- francis-li Reply - This is also why every climber complained about speed climbing being a part of the climbing competition in the previous Olympics.
It's an entirely different discipline. Seeing lead climbers compete in speed climbing is like seeing Eliud Kipchoge matched up with Usain Bolt for sprinting.
Boulder and lead are at least somewhat related, although I still think it would be nice to see separate competitions here, too.
-- carlmr Reply - I hope they do split up bouldering and lead next olympics. At least for Ai Mori's sake!
-- Sander_Marechal Reply - Once an activity has become a “competitive sport” it has a way of prioritising “measurable” over meaningful or enjoyable. When you develop a critical eye for this aspect of sport, the Olympics stop being enjoyable and become an utter horror of human maladjustment, a horrid parody of what it alleges to stand for.
-- LeonB Reply - I don't watch this event but, coming from other sports, I think there's more to this than sheer muscle memory. Humans are not machines. Sometimes you compete with ongoing or lingering injuries. Conditioning changes even for the most disciplined of athletes. All of these mean that a different approach might be warranted for each event depending on your "set-up".
Not to mention other variables outside of the human body. Perhaps the type of rope could matter in your performance. The age of the holds could matter too; even when the governing body standardizes on a replacement period for holds, I'm sure competitors would have strong opinions about the difference between a hold at the start of its service life versus one about to be replaced.
Also, the one thing I love seeing in physical contests is how competitors eke out the last bit of performance advantage with sheer willpower. Muscle memory takes care of the actions but performance and willpower is a conscious effort.
In short, no, I don't think competitors can literally turn off their conscious brain and just let muscle memory take over. If a field has jargon, there's a hell lot to geek over it.
-- yallpendantools Reply - And in further support of what you are saying, when I'm in the flow state, either for programming or for workout or for other hobbies, I am not conscious. That's kind-of the definition of flow.
or people who describe an expert as someone who is unconsciously competent, they no longer have to think about what they are doing they just "know".
And as yallpendantools is saying, operating at that level of expertise is much much more than sheer muscle memory, though the muscle memory is critical. My typing skill certainly helps me find flow in my programming work, I don't have to think about how to type each letter, when I'm in flow the ideas "just appear" on the screen.
So rather than saying the competitors turn off their conscious brain, maybe it is better to say that they transcend it?
-- tway_GdBRwW Reply - How about birthdays? When you turn "1" it's your second birthday. Or counting three seconds. Start counting zero..one..two..three.
-- gre Reply - The number on your yearly "birthday" is not the number of birthdays you had (you only have one birthday) but the number of years you survived since your birth.
So the day of your fifth birthday is the first day of your sixth year alive.
-- taraparo Reply - Birthday vs birth day but yeah. It works if you say it
-- gre Reply - I've generally seen “birthday” (within a year; recurs) versus “birthdate” (happens once).
-- dasyatidprime Reply - array.length
-- noahlt Reply - Korea has a system similar to this. You start at age 1 and get one year older each New Year's Day.
https://www.90daykorean.com/korean-age-all-about-age-in-kore...
-- Fred27 Reply - Jewish law sometimes counts from 1 instead of 0 for birthdays, so a newborn is not 0 years old, they are in their 1st year. (But it's written as "when they are 1", so you have to know which counting method is being used.)
-- ars Reply - https://www.formulanon.com/movement/mrhp8j3hijw97sdl1krno2el...
-- actionfromafar Reply - If you're curious about those, they're all photos of the various sporting events that happen in the village here. All the effects you see are captured in camera through movements or otherwise.
-- leejo Reply - Little known trivia: the code that won the RSA rc5 56bit challange had an off by 1 error.
https://archive.nytimes.com/www.nytimes.com/library/cyber/we...
-- PeterStuer Reply - Where was the off by one error? I read the article and didn't find any mention of it.
-- Anunayj Reply - > Maybe when the record is unbeaten for more than a couple of years they should throw it all away and start with a brand new route?
There's been some discussion of having new speed routes every few years. I think this would make the event a thousand times more interesting. That said, I'm still not sure I'd be interested.
-- autarch Reply - How about a route pool like an esports map pool?
-- zelos Reply - It would be terrible from an athlete perspective
-- Miraltar Reply - You wouldn't want to remove unused holds, because in the future, someone may find a more efficient path the makes use of that hold, but ignores other ones.
-- BobAliceInATree Reply - Sometimes climber, but not a speed climber: it would be vanishingly unlikely for a hold that far left of the button to end up on a more efficient route. Closer to the middle of the route, maybe, but it'd be a sharp jog to the right to hit the button from having any appendage on that hold.
-- mauvehaus Reply - This is indeed what is argued in the article.
-- stijnstijn Reply - > Also, maybe in future someone will optimise the route using that currently unused hold four down from the top?
This reminds me a lot of how Brood War meta changes as new 'bugs' are discovered, since the fandom loves the game without it ever being touched so when edge cases are discovered they become part of the game rather than something to be fixed.
-- mst Reply - An AI image prompt could easily detect the misplace grip, but there's probably no other sport that needs to detect exact placements of things is there?
-- quantadev Reply - Mistakes happen: https://apnews.com/article/ncaa-portland-3point-line-d78742b...
-- joshuarrrr Reply - good example.
-- quantadev Reply - A few seconds in an image editor could do it too
-- superb_dev Reply - Right. AI however could take into account skew angles and perspective tho, so you could probably photograph something from any angle at all and as long as all the pixels are there the AI can tell you of something's out of place.
-- quantadev Reply - Which can also be trivially done in any halfway-decent image editor. Algorithm-wise, it'd probably look a lot like QR code detection - which of course doesn't need any kind of fancy AI.
-- crote Reply - That's a fantastic find. I imagine some standard CV tool can spot this since the holds are grid-aligned. We should probably have something like that. It's crazy how good human pattern-recognition can get when trained on things. What a spot by you.
Also, by the way, where is the photo on your about page: https://images.squarespace-cdn.com/content/v1/60f40aa1942bba...
I feel like it's Crater Lake, Oregon, but considering where you live it's probably somewhere in Switzerland. Looks lovely.
-- renewiltord Reply - You could also simply take two photos and overlay them. The difference would be obvious immediately to the human eye.
-- stijnstijn Reply - It is Crater Lake, from a second visit this summer.
-- leejo Reply - They’re all in real life.
-- db48x Reply - People use "real life" and "not in a computer" interchangeably
-- cortesoft Reply - Those people are wrong.
-- db48x Reply - There is no right or wrong, there is only "what people mean when they say words".
-- sanderjd Reply - No, it’s definitely possible to use words incorrectly.
-- db48x Reply - And who is the arbiter of which use is correct? Language is always evolving and changing, the definitions of words you grew up with were just the definitions at that time. The meaning of a word is only defined by how people use and understand it.
It is possible to use words incorrectly, but if 90% of people use a word in a certain way, that becomes the definition.
-- cortesoft Reply - Colloquialisms like "in real life" are correct usage. Just because it's not literal doesn't mean it's wrong because the information contained in verbal and written communication is affected by its context, including the society and culture it arose within.
-- Bjartr Reply - That's not in conflict with what the parent said.
People can mean something else than you when using the same words, and they might not be wrong as those word definitions might be acceptable too (and they might change over time too).
-- necovek Reply - Some can be imaginary no? Or do you think everything is real life? In which case what’s the meaning of “real life”?
-- enneff Reply - How is this an off BY ONE error? (Pretty sure it's not.)
-- polynomial Reply - > The fourth hold from the top in the right hand lane was off by one with respect to its counterpart in the left hand lane.
-- yallpendantools Reply - The grips are placed on a grid. It was supposed to be at, say, (43,55) but actually placed at (42,55).
-- crote Reply - While that's indeed literally off by one, typically in programming an off by one error is a fence post error: if you have 4 fence posts, there are 3 sections in-between the fence posts, and off by one errors are about mistaking those two things. That's not really what happened in this climbing grip coordinates scenario here.
-- Aardwolf Reply