Wikipedia:Reference desk/Archives/Computing/2023 June 28

From Wikipedia, the free encyclopedia
Computing desk
< June 27 << May | June | Jul >> June 29 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is a transcluded archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


June 28[edit]

IPv10?[edit]

Has anyone heard of IPv10? I'm guessing it's a joke, that needs to be AFD'd. —scs (talk) 14:17, 28 June 2023 (UTC)[reply]

Answering my own question, this Stack Exchange thread suggests it is, if not a pure joke, certainly not anything that's being seriously considered by more than a tiny handful of people. —scs (talk) 14:42, 28 June 2023 (UTC)[reply]
"IPv10 is the Proposed version of Internet Protocol announced by an anonymous group in 2023 on the Internet in June 2023." Well, if that's not a reliable source, I don't know what is. Matt Deres (talk) 15:07, 28 June 2023 (UTC)[reply]
And even that's not accurate — the IETF draft (proto RFC) first came out in 2016.
(I can't be bothered to see if what the proto RFC proposed is what the "article" describes — although it's perhaps telling that the article doesn't even cite the RFC.) —scs (talk) 19:56, 28 June 2023 (UTC)[reply]

How would you describe what this code is doing?[edit]

function read_and_verify  {
    read -p "$1:" tmp1
    read -p "$2:" tmp2
    if [ "$tmp1" != "$tmp2" ]; then
        echo "Values unmatched. Please try again."; return 2
    else
        read "$1" <<< "$tmp1"
    fi
}

read_and_verify domain "Please enter the domain of your web application twice" 
read_and_verify dbrootp "Please enter the app DB root password twice" 
read_and_verify dbuserp "Please enter the app DB user password twice"

I understand that read gets input and store it in memory and this happens each time the function, which is named read_and_verify is running.

But what's goging on here wholesomely and is there a simpler way to do store data from the user? 2A10:8012:1:A85B:748D:C39A:189B:D08B (talk) 21:22, 28 June 2023 (UTC)[reply]

It looks buggy to me. I think the argument "$1:" in the first line of the function body should be "$2:", while the next line should be read -p "Again, please:" tmp2 – assuming the -p argument stands for a prompt to the user. Expanding the first two limes for the first function call then results in
read -p "Please enter the domain of your web application twice1:" tmp1
read -p "Again, please:" tmp2
Function read gets input (a string) from a channel and assigns it to a variable. Internally, it uses the variables tmp1 and tmp2, and if both inputs are the same it then sets the variable that is the first argeument with which it is called – domain, dbrootp or dbuserp – to that common string. I'm not quite sure of the level at which this should be explained, since the code appears fairly self-explanatory to me.  --Lambiam 00:40, 29 June 2023 (UTC)[reply]
Thanks a lot, User:Lambiam. A Bash layman like me which is not a Linux Sysadmin should probably better off use something like this:
read -p email_1
read -p email_2
if [ "$email_1" = "$email_2" ]; then
echo $email_1.
else
   echo Mismatch.
fi
I just need code that I could understand immediately a years onward. 2A10:8012:1:A85B:A9A0:B966:CE15:D2AB (talk) 09:52, 29 June 2023 (UTC)[reply]
In the read command, the -p option writes a prompt. So read -p abc xyz means more or less the same as echo -n abc; read xyz. The variable names email_1 and email_2 are confusing; they are meant to contain passwords entered by the user through the keyboard. Above, the effect of echo $email_1. is that the password the user has just entered twice is echoed back to them (which might surprise and confuse them). I do not see that it is further used  --Lambiam 10:17, 29 June 2023 (UTC)[reply]
"I just need code that I could understand immediately a years onward", and you are missing the single most important thing about coding: comments. Try something like:
#
#  Define a function to obtain a string and check it
#  by asking the user to type it twice.
#
#  Parameter: the name of the string to return.
#
#  Returns:   string to stdout
#
#  Side effects: uses stderr to contact the user.
#
function read_and_verify  {
    local tmp1 tmp2
    read -p "Please enter the $1:" tmp1
    read -p "Again please to check:" tmp2
    if [ "$tmp1" != "$tmp2" ]; then
        echo "Values unmatched. Please try again." >&2
        return 2
    fi
    echo "$tmp1"
}

#
#  Get the domain, dbrootp and dbuserp from the user.
#
domain=$( read_and_verify domain )
dbrootp=$( read_and_verify dbrootp )
dbuserp=$( read_and_verify dbuserp )
#
#  For test purposes:
#
echo "domain: $domain"
echo "dbrootp: $dbrootp"
echo "dbuserp: $dbuserp"
Obviously a real script will need to do something with the error return, or else code the function to restart when the values don't match. Martin of Sheffield (talk) 11:03, 29 June 2023 (UTC)[reply]
Thanks a lot, dear Martin. I use code comments since about year 2010, I just didn't use them here :) 2A10:8012:F:F548:5831:5F73:4C2B:3E83 (talk) 18:32, 29 June 2023 (UTC)[reply]