7 ms·
A Real Life Off-by-One Error
- ClimberAcademy 2y ago[dead]
- anyfoo 2y agoGreat 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.
- bigiain 2y ago> "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
- masklinn 2y ago> 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.
- yccs27 2y agoYep, and even if the hold is not used anymore it can have side effects (like being in the way) which can end up affecting the climbing movements ;)
- yccs27 2y agoIn the benchmark analogy, that piece would be a line of code that can be optimized away by the compiler. It could still matter if the code (course) is recompiled (rerouted) for a different architecture (climber).
- canucker2016 2y agoMy analogy is that "The bug is in the error-handling portion of the common fast-path speed traversal of the climb." The fast path that the speed climbers commonly use doesn't involve the slower path involving the buggy portion. But if the climber can't get up/further using the fast path then the climber may be forced to take the slower path. Since the slower path is standardized, the climber knows how much effort/time is needed on the slower path. Except on the righthand side, the climber's typical effort along the slower "buggy" path is different from the typical slower path and will result in an even slower time aka the execution time in the error-handling path is larger than usual...
- AEVL 2y agoNot 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?
- throwawayk7h 2y agoIt may not be a fencepost error, but I think it's still off by one.
- Arcuru 2y agoThe 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.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- merizian 2y agoEven 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.
- db48x 2y agoThey’re all in real life.
- cortesoft 2y agoPeople use "real life" and "not in a computer" interchangeably
- db48x 2y agoThose people are wrong.
- sanderjd 2y agoThere is no right or wrong, there is only "what people mean when they say words".
- db48x 2y agoNo, it’s definitely possible to use words incorrectly.
- necovek 2y agoThat'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).
- cortesoft 2y agoAnd 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.
- Bjartr 2y ago
- renewiltord 2y agoThat'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/60f40aa1942bba66cf802d7d/14cdc61e-d4b4-4e51-9a37-1698bcda4491/avatar_2024.jpg?format=2500w 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.
- leejo 2y agoIt is Crater Lake, from a second visit this summer.
- stijnstijn 2y agoYou could also simply take two photos and overlay them. The difference would be obvious immediately to the human eye.
- delgaudm 2y agoIf 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.
- pooriar 2y agoI just did it and it didn't jump out for me at all. Odd
- pavon 2y agoI 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.
- LeonB 2y agoSame! I couldn’t get it to work because that sailboat was in the way.
- Miraltar 2y agoIt'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
- iwontberude 2y agoSame, after some practice I could close one eye at a time and see the movement but it was hard to maintain the eye crossing with one eye closed
- zeekaran 2y agoTook me a bit to realize the last photo has it correctly, and to stop trying to find the discrepancy there. Looking at only the first image it pops out to me because the wrong one is floating closer to my eyes than the rest.
- 2y ago
- gre 2y agoHow about birthdays? When you turn "1" it's your second birthday. Or counting three seconds. Start counting zero..one..two..three.
- taraparo 2y agoThe 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.
- noahlt 2y agoarray.length
- gre 2y agoBirthday vs birth day but yeah. It works if you say it
- dasyatidprime 2y agoI've generally seen “birthday” (within a year; recurs) versus “birthdate” (happens once).
- ars 2y agoJewish 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.)
- hangonhn 2y agoChinese traditional age counting does the same. My mother had to constantly explain to our relatives when I tell them my age -- I use Western conventions.
- Fred27 2y ago
- BobAliceInATree 2y agoYou 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.
- mauvehaus 2y agoSometimes 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.
- stijnstijn 2y agoThis is indeed what is argued in the article.
- quantadev 2y agoAn 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?
- superb_dev 2y agoA few seconds in an image editor could do it too
- quantadev 2y agoRight. 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.
- crote 2y agoWhich 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.
- quantadev 2y agoWhat I mean is you can probably get this to work with pure prompt engineering, and English language just by saying stuff like "Here's an image with correct hold positions", and then submit another image that says "Are the positions in this image correct." I just meant basic image understanding of AI, like what OpenAI has. I realize there's an infinite number of ways to accomplish this that would be more complex. What I was stating is the simplest possible way being pure prompt engineering. You could even try with OpenAI right now, I didn't try.
- joshuarrrr 2y agoMistakes happen: https://apnews.com/article/ncaa-portland-3point-line-d78742b29b8a48fa3f6b5de7899c7844 https://apnews.com/article/ncaa-portland-3point-line-d78742b...
- mst 2y ago> 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.
- CoreDumpling 2y agoThis 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-mistake-70-years-ago-almost-botched-japans-surrender-document/article26201436/ https://www.theglobeandmail.com/news/world/how-a-canadians-m...
- dustincoates 2y ago> 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.
- fracus 2y agoSeems 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.
- francis-li 2y agoThe 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.
- carlmr 2y agoThis 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.
- Sander_Marechal 2y agoI hope they do split up bouldering and lead next olympics. At least for Ai Mori's sake!
- spuz 2y agoIndeed they will separate them at the 2028 LA Olympics. There will be 3 separate medals for boulder, lead and speed.
- polynomial 2y agoHow is this an off BY ONE error? (Pretty sure it's not.)
- yallpendantools 2y ago> 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.
- crote 2y agoThe grips are placed on a grid. It was supposed to be at, say, (43,55) but actually placed at (42,55).
- Aardwolf 2y agoWhile 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.
- KaiserPro 2y agoI realise that by arguing the semantics, and am making this worse. However Off by one is the error, not the cause. sure, a lot of off by one errors are caused by index starting confusion, but not all. The hold is clearly off by one. thus its a "real life" off by one error.
- autarch 2y ago> 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.
- Miraltar 2y agoIt would be terrible from an athlete perspective
- zelos 2y agoHow about a route pool like an esports map pool?
- devnullbrain 2y agoThere's a misconception that a quadrennial sports festival. Actually, they're a quadrennial festival for people who never cared about the sport before to explain how it should be fixed.
- whycome 2y agoQGM
- PeterStuer 2y agoLittle 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/week/102497computing.html https://archive.nytimes.com/www.nytimes.com/library/cyber/we...
- Anunayj 2y agoWhere was the off by one error? I read the article and didn't find any mention of it.
- PeterStuer 2y agoI haven't seen it reported anywhere. It was my machine that found the key. To commemorate the event a plaque was made and permanently attached to the case. If it is still in the archives somewhere, the plaque lists the key reported as found by the client, which you would see is one off from the actual key that was the solution. I never asked the distributed.net team, but I always suspected this was intentional to maybe thwart people from front-running a submission, so not truly a bug. If Adam, Jeff or David read this, maybe they could chime in.
- actionfromafar 2y agohttps://www.formulanon.com/movement/mrhp8j3hijw97sdl1krno2elwh7nfn https://www.formulanon.com/movement/mrhp8j3hijw97sdl1krno2el...
- leejo 2y agoIf 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.
- dwighttk 2y ago>The kicker is that the out of place hold hasn’t been used in a long time. I’m guessing the belay rope issue was real and the actual cause of the other lane always winning then.
- philip1209 2y agoThat's funny. I discovered an off-by-one error in college as I was graduating. Apparently the "class plan" I had put together with an advisor during my second year was missing a class, and I discovered it as I petitioned it for graduation. "You're one class short." (It was for my second major, not the primary one, and the head of the physics department was nice enough to credit a nonlinear optimization course from engineering toward the major, so I earned it.)
- tomrod 2y agoI had a similar experience in getting a Math BS after finishing an Econ BA (which, for my school, was notoriously short and was not seen as sufficient to prepare you for economics graduate work). The deal with my Math dept head was I had to make it my primary major (no true doubles at my weird undergrad, had to have an "additional"). It was a deal I was happy to make if it meant skipping an intro-to-proofs course after having taken the masters level series in most the of the fields they offered!
- NeoTar 2y agoIn terms of real-life off-by-one errors, it's hard to beat the town of Wemding in Bavaria (Germany). Here a pyramid of 120 blocks is planned, with one placed every ten years. It started on the 1200th anniversary of the town, and is planned to be complete 1200 years later... and I'm sure you've spotted the problem. Matt Parker, the 'stand-up Mathematician' has a video on it: https://youtu.be/FAdmpAZTH_M?si=_u8fM-fprUWiEqZ9 https://youtu.be/FAdmpAZTH_M?si=_u8fM-fprUWiEqZ9
- 10-22-38Astoria 2y agoMy favorite off by one error is that the index of a count down is always one less than the amount that you subtracted. This means if you count up and down at the same time, you won’t count the middle number twice. 1: 1, 10 :0 2: 2, 9 :-1 3: 3, 8 :-2 4: 4, 7 :-3 5: 5, 6 :-4 Since the sum on each line is 11, the sum of all the numbers from one to ten is 55. The cool thing is that this generalizes 1: 1, N : 0 2: 2, N - 1 :-1 3: 3, N - 2 :-2 <-sum is N+1 … N/2: N/2, N -(N/2)+1 => N/2+1 So the sum of N numbers is N/2 * (N/2+N/2+1) => N/2 * (N+1) if N is even. It appears to be broken for odd numbers 1: 1, 9 :0 2: 2, 8 :-1 3: 3, 7 :-2 4: 4, 6 :-3 5: 5, 0 :-4 <- can’t reuse 5 But for odds, setting the odd number K equal to N+1, N is an even number so the total sum is sum(N) + N+1. We showed that sum(N) = N/2 *(N+1). So we have N/2 * (N+1) + (N+1). But that means N/2+1 * (N+1) equals sum(K) => (N+2)/2 * (N+1) => (K+1)/2 * K So the formula N/2 * (N+1) computes the sum of N numbers if N is odd too! It works for all numbers. Wow! [Edit: Formatting]