en:x-and-y-problem
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:x-and-y-problem [2021/07/27 06:37] – created - external edit 127.0.0.1 | en:x-and-y-problem [2026/08/03 19:10] (current) – Automatic push translation domele | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | Someone | + | Someone |
| ===== Wikipedia ===== | ===== Wikipedia ===== | ||
| - | | + | |
| <WRAP center round info 100%> | <WRAP center round info 100%> | ||
| - | The XY problem is a communication problem encountered in help desk and similar situations in which the person asking for help obscures the real issue, X, because instead of asking directly about issue X, they ask how to solve a secondary issue, Y, which they believe will allow them to resolve issue X. However, resolving issue Y often does not resolve issue X, or is a poor way to resolve | + | The XY problem is a communication problem encountered in help desks and similar situations, in which the person asking for help obscures the real issue, X, because instead of asking directly about issue X, they ask how to solve a secondary issue, Y, which they believe will enable |
| - | The XY problem is commonly encountered in technical support or customer service environments where the end user has attempted to solve the problem on their own, and misunderstands the real nature of the problem, believing that their real problem X has already been solved, | + | The XY problem is commonly encountered in technical support or customer service environments where the end user has attempted to solve the problem on their own and misunderstands the true nature of the problem, believing that their real problem, X, has already been solved, |
| </ | </ | ||
| Line 22: | Line 22: | ||
| The XY problem is asking about your attempted solution rather than your actual problem. \\ | The XY problem is asking about your attempted solution rather than your actual problem. \\ | ||
| \\ | \\ | ||
| - | That is, you are trying to solve problem X, and you think solution Y would work, but instead of asking about X when you run into trouble, you ask about Y. \\ | + | In other words, you are trying to solve problem X, and you think solution Y would work, but instead of asking about X when you run into trouble, you ask about Y. \\ |
| \\ | \\ | ||
| - | ====== The Problem ====== | + | ====== The Problem ====== \\ |
| - | This can lead to frustration by people | + | This can be frustrating for people trying to help you solve the problem, because by the time you ask about it, the solution you need help with may not have any obvious |
| How to avoid it | How to avoid it | ||
| - | To avoid falling into this trap, always include information about a broader | + | To avoid falling into this trap, always include information about the broader |
| == An example == | == An example == | ||
| - | + | A recent IRC conversation | |
| - | A recent IRC conversation | + | |
| <WRAP center round help 90%> | <WRAP center round help 90%> | ||
| Q: Is there a function to return a string between two delimiters? \\ | Q: Is there a function to return a string between two delimiters? \\ | ||
| - | B: I don't understand what you mean, but I doubt there's already a function \\ | + | B: I don’t understand what you mean, but I doubt there’s already a function \\ |
| C: Split and slice \\ | C: Split and slice \\ | ||
| - | D: Partition | + | D: ‘Partition’ as well \\ |
| Q: I tried partition \\ | Q: I tried partition \\ | ||
| - | Q: I was trying to use built-ins to get the number | + | Q: I was trying to use built-in functions |
| D: Why not just parse the string? \\ | D: Why not just parse the string? \\ | ||
| - | Q: I thought there may have been some built in parsing | + | Q: I thought there might have been some built-in parsing |
| D: pairs = [x.strip() for x in s.split("," | D: pairs = [x.strip() for x in s.split("," | ||
| - | D: There' | + | D: There are a few libraries, but simple |
| - | D: Changing | + | D: Where possible, it is preferable to change |
| Q: This code actually comes from HTML \\ | Q: This code actually comes from HTML \\ | ||
| - | Q: But I don't know how to parse Javascript with HTMLParser or whatever it's called \\ | + | Q: But I don’t know how to parse JavaScript using HTMLParser or whatever it’s called \\ |
| - | D: Is it merely | + | D: Is it simply |
| - | Q: It's embedded in the HTML \\ | + | Q: It’s embedded in the HTML \\ |
| - | D: If it's JavaScript (and that is, except for missing outer braces), JSON can probably parse it \\ | + | D: If it’s JavaScript (and it is, apart from the missing outer braces), JSON can probably parse it \\ |
| Q: Thanks \\ | Q: Thanks \\ | ||
| - | D: I didn't say it explicitly: JSON only parses data structures, not JS code \\ | + | D: I didn’t say it explicitly: JSON only parses data structures, not JavaScript |
| - | Q: That's all I need parsed is a data structure \\ | + | Q: All I need parsed is a data structure \\ |
| </ | </ | ||
| - | The problem is //really// about how to parse JavaScript data structures, not find "a string between two delimiters", yet it takes quite a bit of time and intuition to get to the real issue. | + | The problem is //actually// about how to parse JavaScript data structures, not finding ‘a string between two delimiters’, yet it takes quite a bit of time and intuition to get to the real issue. |
| - | This is easier to do in a fully interactive chat (regardless of what mode), but on a SE site, where you polish a post a bit, post it, and then have 5-30 mins, or longer, before feedback, it really helps to head in the right direction from the start. | + | This is easier to do in a fully interactive chat (regardless of the mode), but on a Stack Exchange |
| </ | </ | ||
| ---- | ---- | ||
| - | ==== XYProblem.info ==== | + | ==== XYProblem.info ==== |
| | | ||
| - | The XY problem | + | The XY problem |
| \\ | \\ | ||
| <WRAP center round info 90%> \\ | <WRAP center round info 90%> \\ | ||
| - | User wants to do X. \\ | + | The user wants to do X. \\ |
| - | User doesn't know how to do X, but thinks they can fumble | + | The user doesn’t know how to do X, but thinks they can muddle |
| - | User doesn't know how to do Y either. \\ | + | The user doesn’t know how to do Y either. \\ |
| - | User asks for help with Y. \\ | + | The user asks for help with Y. \\ |
| - | Others try to help user with Y, but are confused because Y seems like a strange problem to want to solve. \\ | + | Others try to help the user with Y, but are confused because Y seems like a strange problem to want to solve. \\ |
| - | After much interaction | + | After much back-and-forth |
| - | The problem | + | The problem |
| </ | </ | ||
| - | == What to do about it? == | + | == What can be done about it? == |
| <WRAP center round important 90%> | <WRAP center round important 90%> | ||
| - | Always include information about a broader | + | Always include information about the bigger |
| If someone asks for more information, | If someone asks for more information, | ||
| - | If there are other solutions you've already ruled out, share why you've ruled them out. This gives more information about your requirements. \\ | + | If there are other solutions you’ve already ruled out, explain |
| - | Remember that if your diagnostic theories were accurate, you wouldn't be asking for help, right? \\ | + | Remember that if your diagnostic theories were accurate, you wouldn’t be asking for help, would you? \\ |
| </ | </ | ||
| Line 97: | Line 95: | ||
| # Examples | # Examples | ||
| Example 1 | Example 1 | ||
| - | n00b doesn't actually want the last 3 chracters | + | n00b doesn’t actually want the last 3 characters |
| \\ | \\ | ||
| <WRAP center round help 90%> \\ | <WRAP center round help 90%> \\ | ||
| - | < | + | < |
| - | < | + | < |
| < | < | ||
| - | < | + | < |
| < | < | ||
| - | < | + | < |
| - | < | + | < |
| < | < | ||
| </ | </ | ||
| Line 112: | Line 110: | ||
| == Example 2 == | == Example 2 == | ||
| - | If Angela had just started by explaining she wants to prevent others from detecting her OS, this could have been a much shorter and more productive discussion. | + | If Angela had simply |
| <WRAP center round help 90%> \\ | <WRAP center round help 90%> \\ | ||
| - | Angela: | + | Angela: |
| - | Obama: Look in the sourcecode | + | Obama: Look at the source code for nmap, work out how it identifies |
| - | Angela: Yeah, but I don't know about linux system | + | Angela: Yeah, but I don’t know anything |
| - | Obama: Well, nmap's fingerprint is based on the way the TCP/IP stack works, there's no real way except to rewrite the appropriate | + | Obama: Well, nmap’s fingerprint is based on the way the TCP/IP stack works; there’s no real way round it except to rewrite the relevant |
| - | Angela: I really need to avoid these messages. Can iptables do this work? \\ | + | Angela: I really need to avoid these messages. Can iptables do this? \\ |
| - | Obama: Well, don't use OS detection or version scanning \\ | + | Obama: Well, don’t use OS detection or version scanning \\ |
| - | Angela: I want to prevent | + | Angela: I want to stop others from finding out what type of OS I’m running |
| </ | </ | ||
| ---- | ---- | ||
| - | |||
| ====== Conclusions ====== | ====== Conclusions ====== | ||
| - | The X and Y Problem can be fixed, in that way, that you completly tell what you want to do and what you have tried. | + | The X and Y Problem can be resolved by clearly stating exactly |
en/x-and-y-problem.1627367823.txt.gz · Last modified: by 127.0.0.1
