3 ms·
You're taking it too literally/assuming too much. It is super easy. Watch. $ awscli s3 ls Unable to locate credentials. You can configure credentials by ru
by peterwwillis 8y ago
You're taking it too literally/assuming too much. It is super easy. Watch.
$ awscli s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
That is stupid. Let's fix it.
#!/bin/bash
[ -r .awssettings ] && . .awssettings
[ -n "$USERN" ] || read -p "What is your username? " USERN
if [ ! -n "$PASS" ] ; then
read -s -p "Enter your password: " PASS ; echo ""
fi
[ -n "$REGION" ] || read -p "What region should I run this in? " REGION
echo awscli --region $REGION --user $USER --pass $PASS "$@" \
&& echo -en "USER=$USER\nREGION=$REGION\n" > .awssettings
$ ./foo.sh s3 ls
What is your username? peter
Enter your password:
What region should I run this in? us-east-1
awscli --region us-east-1 --user peter --pass blahblah s3 ls
This is a contrived example, because of course AWS wants obscure tokens and secrets to log in, but the point is that it was trivial to write an interface that helped the user out. The fact that this isn't the default is stupid. (The argument that it fails by default to "help programs out" is dumb, because a simple argument like --no-questions which becomes default without a tty is easy)
- lmm 8y agoAnd how do I put process controls around that? How do I have confidence that someone I'm trying to help over the phone will see the same screens and get the same questions that I do? What do they do if it asks the wrong question? Having simple, predictable, consistent behavior from our tools is far better than trying to guess what the user wanted.
- peterwwillis 8y agoYou must live in a different universe from me. In my universe we have been successfully addressing those problems for over 60 years. Also, our tools aren't simple, or predictable, or consistent, which is why our universe created this software called "Docker". It helps, but there's no UI for anything (unless you pay a lot of money) so it's still a pain.
- lmm 8y ago> In my universe we have been successfully addressing those problems for over 60 years. In my universe people have been pushing "visual programming environments" for something close to 60 years, and they're still awful and haven't caught on. Over the last 10-20 years programs have taken a step away from "wizard" style interactions like you describe, as it turns out that a simple, automatable config format is more useful than a step-by-step interaction. API design has started to realise the importance of understandability over magic, e.g. the new generation of 3D graphics APIs are much less "do what I mean" than the previous generation.