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

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]