Wikipedia:Reference desk/Computing

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 12.116.29.106 (talk) at 13:34, 23 January 2024 (→‎Usability). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Welcome to the computing section
of the Wikipedia reference desk.
Select a section:
Want a faster answer?

Main page: Help searching Wikipedia

   

How can I get my question answered?

  • Select the section of the desk that best fits the general topic of your question (see the navigation column to the right).
  • Post your question to only one section, providing a short header that gives the topic of your question.
  • Type '~~~~' (that is, four tilde characters) at the end – this signs and dates your contribution so we know who wrote what and when.
  • Don't post personal contact information – it will be removed. Any answers will be provided here.
  • Please be as specific as possible, and include all relevant context – the usefulness of answers may depend on the context.
  • Note:
    • We don't answer (and may remove) questions that require medical diagnosis or legal advice.
    • We don't answer requests for opinions, predictions or debate.
    • We don't do your homework for you, though we'll help you past the stuck point.
    • We don't conduct original research or provide a free source of ideas, but we'll help you find information you need.



How do I answer a question?

Main page: Wikipedia:Reference desk/Guidelines

  • The best answers address the question directly, and back up facts with wikilinks and links to sources. Do not edit others' comments and do not give any medical or legal advice.
See also:

January 14

How are quantum computers different than normal computers we know?

What exactly will change with the increase in use of Quantum computers? will they completely overtake the currently popular types of computers? Yashrajkarthike (talk) 07:27, 14 January 2024 (UTC)[reply]

As stated above, we can't answer requests for predictions. Have you read our comprehensive article on Quantum computing? Shantavira|feed me 08:50, 14 January 2024 (UTC)[reply]
No, but thanks for reminding me. I will check out the article for more details. Thanks! Yashrajkarthike (talk) 10:04, 14 January 2024 (UTC)[reply]

January 16

Algorithm to match U.S. state names to USPS state codes

Re this mini project, I wish to match a list of USPS state codes (set A) with a list of U.S. state and territory names which has spelling variations (set B) in any order. Set B may have missing items, in which case set A matches [null]. This is an example successful match:

Set A CO, CT, DC, VA, WA, WV
Set B Conn., Wash., Washington (District of Columbia), W. Virginia

yields

Set A Set B
CO [null]
CT Conn.
DC Washington (District of Columbia)
VA [null]
WA Wash.
WV W. Virginia

Can someone please suggest a robust, performant yet simple to program algorithm? The target language is JavaScript.

Thanks,
cmɢʟeeτaʟκ 09:03, 16 January 2024 (UTC)[reply]

@Cmglee: I've re-read this multiple times and can't understand what this program is supposed to do. Are you trying to convert a natural language name to a USPS code? One which could have many variations, such as eg DC being "District of Columbia", "Washington DC", "Washington (District of Columbia)" for example. Is that what you're trying to do? —Panamitsu (talk) 10:28, 16 January 2024 (UTC)[reply]
Example map
Thanks for your reply, @Panamitsu: Sorry if I didn't make it clear. Yes, I effectively wish to convert a natural-language name to a USPS code. It is helped that the names are presented in one file, and each state or territory occurs at most once, so if one name somewhat matches one code, no other name can match that code. Here's my use-case:
I have created a template SVG map showing the states of the USA (and Washington DC). In the SVG code, I refer to the states' shape and labels with the USPS codes AK, AL, AR, AZ etc.
My collaborator, Timeshifter, however, receives data in the following format:
Alabama 41.4
Alaska
Arizona 31.4
Arkansas 43.5
The order of the states or their exact spelling cannot be guaranteed. Some states may be missing data: in the above, I have "Alaska" without a number, but that line could be left out entirely.
The JavaScript can have a lookup table with their nominal spellings, but may need to make matches e.g. using Levenshtein distances etc to find the best mapping. In my contrived example, the lookup table might have "CO → Colorado, CT → Connecticut", so when the data has "Conn.", it figures that "CT" is more likely than "CO".
Does it make sense now? It sounds that this is already a common solved problem in computer science. Thanks, cmɢʟeeτaʟκ 11:38, 16 January 2024 (UTC)[reply]
Your lookup table (which should be a map, not a table) is backwards. Let's assume it is called "map" in your code. If you get "Missouri", you set state=map["Missouri"] because map["Missouri"]="MO". It is likely that many people have made this map for their code. You can make it for yours. You have 51 states (including Washington DC), so you type it in. If you get one you haven't seen before, add it. Because of the way this map is made, you can have map["Colorado"] = "CO", map["Col."] = "CO", map["colarodo"] = "CO", etc... 12.116.29.106 (talk) 16:45, 16 January 2024 (UTC)[reply]
I would not use Levenshtein distances; I would just put common spellings into the object. I would restrict the case. If a match is not found, then add the failing string to the map.
/**
 * Table that maps lowercase state names to USPS abbreviations
 * @type {Object.<string, string>}
 */
const mapStateToUSPS = { "al" : "AL", "alabama" : "AL", "ak" : "AK", "alaska" : "AK", "ca" : "CA", "calif" : "CA", "california" : "CA" }; // etc...

/**
 * Convert a state name to a USPS abbreviation
 * @param name {string} name of the state
 * @returns {?string} the USPS abbreviation
 */
function lookupUSPS(name) {
  // normalize the name
  // could also remove punctuation: "N. Carolina" to "N Carolina"
  var key = name.toLowerCase();

  if (mapStateToUSPS.hasOwnProperty(key))
    return mapStateToUSPS[key];
  else
    return null;
}
Glrx (talk) 18:56, 16 January 2024 (UTC)[reply]
For the example given, you cannot use Levenshtein distances. The example is CO and CT with the abbreviation Conn. For that, the distance between CO and Conn is 2. The distance between CT and Conn is 3. CO is less distant than CT. So, it will not claim that CT is a better match. It will claim CO is a better match. If you really want to go down this route, you have to do a Levenshtein check between the abbreviation Conn and all full state names. But, you have a string length weakness. Conn to Colorado has a distance of 6. Conn to Conneticut has a distance of 6. If you divide the distance by the max possible distance, Conn to Colorado is 6/8=0.75 and Conn to Conneticut is 6/10=0.60. Now, 0.60 is less than 0.75. But, you will certainly hit more problems. You are much better off making a very complete map of all abbreviations. 12.116.29.106 (talk) 19:53, 16 January 2024 (UTC)[reply]
Note that "Washington (District of Columbia)" and "W. Virginia" from your set B do not occur as such in our article List of U.S. state and territory abbreviations, so you may need to add more name variations by hand. You can normalize the key by ignoring case and removing spaces and periods, so that "W. Virg." is replaced by "wvirg"; this will reduce the number of entries. While edit distance should not be the primary criterion, some well-crafted version of least edit distance can perhaps be used as a fallback if the key is not found in the lookup table.  --Lambiam 22:08, 16 January 2024 (UTC)[reply]
Another option to finding these abbreviations is to get a list of redirects to each state/territory which have the redirect templates {{R from alternate name}} and {{R from misspellings}}. This isn't going to get them all of course, but it should be a good start. Manually mapping typos isn't too much work. Heck, I have a database of over 1,000 flags which I manually type out descriptions for and it only takes a couple of minutes to map each typo. —Panamitsu (talk) 03:02, 17 January 2024 (UTC)[reply]
Thank you very much, everyone, for your feedback. Though I originally wanted a generic fuzzy-matching function, I've scaled back my ambitions and adapted Glrx's idea by first converting the name to lowercase and removing any non-alphanumeric-or-underscore characters.
If there is an exact match, it returns it, otherwise it finds the one with the lowest Levenshtein distance. This doesn't make use of the fact that each state appears at most once, but is hopefully sufficient for foreseeable data. I'll add a note to add common abbreviations e.g. "conn" or "wvirg" should the need arise.
Cheers,
cmɢʟeeτaʟκ 10:48, 17 January 2024 (UTC)[reply]

January 17

Where can I purchase Windows 10 OEM Operating system on a disk.

Hello,

I meed a disk with Windows 10 Professional OS. OEM is desirable.Thanks AboutFace 22 (talk) 23:53, 17 January 2024 (UTC)[reply]

@AboutFace 22: I found https://softwareld.com/product-category/windows/windows-10/ with a quick search. Pro version but not OEM. It looks like you can get USB key or DVD. I have no experience with this seller, I found the link at Amazon. RudolfRed (talk) 00:54, 18 January 2024 (UTC)[reply]
Which OEM? Dell, hp, Lenovo...? What do you want it for? A re-install of Windows 10 on a system that came out with Windows 10 or an upgrade from (say) Windows 7/8? Either way, you can download the official Microsoft Media Creation Tool for Windows 10. In the case of a re-install you will not have to buy a license as it is baked into the hardware - if it came out with Win10. For an upgrade of the OS from an older version you will likely have to buy a license. In the case of a custom built PC where the various components are possibly sourced from different vendors (MSI, NVidia, Seagate, etc.) you will have to buy a new license from the Microsoft store. 41.23.55.195 (talk) 08:14, 18 January 2024 (UTC)[reply]

I bought a Dell computer with Windows 11 OS. I cannot handle it. Tried many times. I want to install Windows 10 over it or make Windows 11 one of possible choices. I have experience with using two OS on one computer, e.g Linux and Windows 7. Thanks 107.191.0.90 (talk) 13:47, 18 January 2024 (UTC)[reply]

Unless You really need an app that only runs under Windows, switch to Linux. Much less hassle. I have been using Fedora Linux for years and I find that it just works and does not harass the user as Windows does. --Ouro (blah blah) 22:25, 18 January 2024 (UTC)[reply]
I'm not a frequent viewer of the Computing helpdesk, but I seem to remember that a few years ago it was agreed here not to answer queries about problems with 'Operating System A' with a recommendation to replace it with 'Operating System B'. {The poster formerly known as 87.81.230.1295} 176.24.47.60 (talk) 17:06, 22 January 2024 (UTC)[reply]


January 23

Usability

Why does usability score so low on most commercial software products? Or to put it another way, why is its importance so low when it comes to their end users? I was recently on vacation, and I noticed that the hotel staff were complaining about the usability of their in-house systems (the door key cards weren't issuing correctly and were cancelling the cards out), the rental car staff were complaining about the usability of their reservation systems (the system issued a car with the wrong license plate, which meant the correct car could not be picked up), restaurant staff were complaining about the low usability of their POS systems (their system did not put the drink orders through), uber and doordash drivers were complaining about the low usability of their rideshare and ordering platforms (delivery addresses and GPS didn't match), etc. Please do not reply with "confirmation bias". There is obviously something wrong with the way software is designed and it permeates the entire enterprise system. And as if that wasn't enough, I was at Costco today and the same thing happened at the tire center (reservation was deleted from the system). Viriditas (talk) 00:48, 23 January 2024 (UTC)[reply]

If there is more here to confirmation bias, it is likely due to priority differences between the consumer and employee. Companies usually prioritise the experience of customers over their employees as customers are the ones who the company wants to bring back for their wallets. If a customer has a bad experience, they are likely to find a better company to buy from. If an employee has a bad experience, then toughen up buddy. This translates into software: if a customer has a bad experience using the software, then that is a serious issue, but if an employee has difficulty with the software, it is not as bad. —Panamitsu (talk) 01:52, 23 January 2024 (UTC)[reply]
Yes, exactly. This confirms what a high-level employee at a five star hotel told me. Viriditas (talk) 02:23, 23 January 2024 (UTC)[reply]
I wouldn't classify these problems as usability issues. They are plain errors (aka bugs). The prevailing approach to reducing such errors is by repeated testing and fixing. The examples are of in-house systems, possibly custom-built, which are hard to test extensively before they are deployed. The question is perhaps more why such errors are not promptly fixed. The software company that built them may have gone belly-up, and the software may be a legacy system that no one knows how to maintain.  --Lambiam 11:05, 23 January 2024 (UTC)[reply]
Alternatively the software may be the cheapest that management believes (based on a salesman's spiel) will do the job. Once bought it is hard for management to back out and admit to a wrong decision. Martin of Sheffield (talk) 11:15, 23 January 2024 (UTC)[reply]
Sometimes the software may be excellent, but over-complex for the actual task involved. I worked for an engineering and maintenance company that bought an expensive, advanced and doubtless well-programmed business suite in order to use its stock management module to replace a simpler procedure using spreadsheets, despite my advice (as one who would need to consult its records) that to enter all of the system-required data properly would require extra personnel.
Just as I predicted, the existing warehouse staff found entering all the data too onerous, so the stock records rapidly became unreliable and deficient, and the new system was quietly abandoned. {The poster formerly known as 87.81.230.195} 176.24.47.60 (talk) 11:53, 23 January 2024 (UTC)[reply]
I am nearing retirement in commercial project development. Over the past 40 years, I've been a developer on many projects from entertainment to stock control to accounting to command and control to health equity research and much more. I see the same thing time and time again. A company will hire a group of developers. Half (or more) of the developers spend the entire time arguing about what programming language to use, what framework to use, what repository to use, etc... A few of them will develop the project to the best of their ability, making decisions based on what they think should be done. Because of the isolation behind all the layers of management and bickering, they don't have the luxury of discussing issues with the potential clients. Then, when the project is released, the development staff is fired and replaced with sales people. Any usability issues are fixed with training and documentation. True bugs are fixed by logging the complaint, hiring a long line of contractors to come in, say that the programming langauge is wrong, the framework is wrong, the repository is wrong, cash a check and leave. Eventually, some companies will rehire one of the original developers to fix the bug and then go away, never to talk about it for threat of lawsuit. So, if you experience issues with a product, it isn't a surprise. That is how the developement world is set up. In the end, everyone just points at the guys who developed it and blame them, but they were fired long ago, so they don't care. 12.116.29.106 (talk) 13:34, 23 January 2024 (UTC)[reply]