what should we do with our user what should we do with
play

What should we do with our user What should we do with our user - PowerPoint PPT Presentation

6/6/2019 What should we do with our UI? What should we do with our user What should we do with our user interface? interface? Douglas Bagnall <douglas.bagnall@catalyst.net.nz> 127.0.0.1:8000/?print-pdf#/ 1/68 6/6/2019 What should we


  1. 6/6/2019 What should we do with our UI? What should we do with our user What should we do with our user interface? interface? Douglas Bagnall <douglas.bagnall@catalyst.net.nz> 127.0.0.1:8000/?print-pdf#/ 1/68

  2. 6/6/2019 What should we do with our UI? Samba’s command line UI Samba’s command line UI kind of haphazard patchy abstractions untested as a user interface 127.0.0.1:8000/?print-pdf#/ 2/68

  3. 6/6/2019 What should we do with our UI? Nobody can fix it Nobody can fix it experts are locked-in newbies are baffled old options can’t be dropped 127.0.0.1:8000/?print-pdf#/ 3/68

  4. 6/6/2019 What should we do with our UI? “nerdview” — Geoff Pullum “nerdview” — Geoff Pullum insiders’ wordview prevents communication leaks detail you don’t need to know in language you don’t need to know 127.0.0.1:8000/?print-pdf#/ 4/68

  5. 6/6/2019 What should we do with our UI? nerdview nerdview 127.0.0.1:8000/?print-pdf#/ 5/68

  6. 6/6/2019 What should we do with our UI? nerdview nerdview 127.0.0.1:8000/?print-pdf#/ 6/68

  7. nerdview nerdview 6/6/2019 What should we do with our UI? 127.0.0.1:8000/?print-pdf#/ 7/68

  8. nerdview nerdview 6/6/2019 What should we do with our UI? 127.0.0.1:8000/?print-pdf#/ 8/68

  9. nerdview nerdview 6/6/2019 What should we do with our UI? 127.0.0.1:8000/?print-pdf#/ 9/68

  10. 6/6/2019 What should we do with our UI? nerdview nerdview 127.0.0.1:8000/?print-pdf#/ 10/68

  11. nerdview nerdview 6/6/2019 What should we do with our UI? 127.0.0.1:8000/?print-pdf#/ 11/68

  12. 6/6/2019 What should we do with our UI? nerdview nerdview 127.0.0.1:8000/?print-pdf#/ 12/68

  13. 6/6/2019 What should we do with our UI? nerdview nerdview $ ./bin/samba-tool drs kcc Could not find machine account in secrets database: Failed to fetch machine acc ERROR(): DRS connection to client.addom.samba.example.com failed - drsException File "bin/python/samba/netcmd/drs.py", line 54, in drsuapi_connect (ctx.drsuapi, ctx.drsuapi_handle, ctx.bind_supported_extensions) = drs_util File "bin/python/samba/drs_utils.py", line 63, in drsuapi_connect raise drsException("DRS connection to %s failed: %s" % (server, e)) 127.0.0.1:8000/?print-pdf#/ 13/68

  14. 6/6/2019 What should we do with our UI? Samba nerdview Samba nerdview hard to spot admin users are themselves specialists small intersection between users and developers overlap in users’ and developers’ jargon 127.0.0.1:8000/?print-pdf#/ 14/68

  15. 6/6/2019 What should we do with our UI? Samba nerdview Samba nerdview We need bug reports but Bugzilla presents deep nerdview 127.0.0.1:8000/?print-pdf#/ 15/68

  16. 6/6/2019 What should we do with our UI? Prior art in the field of command Prior art in the field of command line option rants line option rants A very short literature review 127.0.0.1:8000/?print-pdf#/ 16/68

  17. 6/6/2019 What should we do with our UI? Steve French, two weeks ago: Steve French, two weeks ago: the username and/or password seems to be ignored in different (and possibly confusing to users) ways on various client tools (smbcacls and smbclient for example) when you specify -k (for Kerberos authentication) ... goes on to enumerate inconsistencies 127.0.0.1:8000/?print-pdf#/ 17/68

  18. 6/6/2019 What should we do with our UI? Rowland: Rowland: You forgot 'samba-tool' and the ldb tools (ldbsearch etc) where it is '-k yes' 127.0.0.1:8000/?print-pdf#/ 18/68

  19. 6/6/2019 What should we do with our UI? Andreas: Andreas: I will rewrite the code to offer a new option. --use-kerberos=auto|yes|no [...] -k will mostly be working as before to not break any scripts. 127.0.0.1:8000/?print-pdf#/ 19/68

  20. 6/6/2019 What should we do with our UI? Backwards compatibility Backwards compatibility dilemma dilemma fixing consistency across tools worsens the complexity of each tool 127.0.0.1:8000/?print-pdf#/ 20/68

  21. 6/6/2019 What should we do with our UI? Alexander, last year Alexander, last year Everything should have --json ... for the machines (he is right) 127.0.0.1:8000/?print-pdf#/ 21/68

  22. 6/6/2019 What should we do with our UI? Testing the command line Testing the command line Easy to test for friendly default output self-documentation ( -- help ) 127.0.0.1:8000/?print-pdf#/ 22/68

  23. 6/6/2019 What should we do with our UI? Testing the command line Testing the command line Hard to test for nerdview inconsistencies between tools unknowable functionality 127.0.0.1:8000/?print-pdf#/ 23/68

  24. 6/6/2019 What should we do with our UI? Testing the command line Testing the command line run every script without arguments and see what happens expecting something like Usage: smbwhatever [options] 127.0.0.1:8000/?print-pdf#/ 24/68

  25. 6/6/2019 What should we do with our UI? Testing the command line Testing the command line run every script end-user tool and see what happens $ ./script/autobuild.py Traceback (most recent call last): *[...]* Exception: Unable to create /memdisk/douglas/b5766 : [Errno 13] Permission deni 127.0.0.1:8000/?print-pdf#/ 25/68

  26. 6/6/2019 What should we do with our UI? Testing the command line Testing the command line run every end-user tool and some dev tools $ $ ./selftest/filter-subunit 🕑 🕒 🕓 🕔 🕕 🕖 🕗 🕘 🕙 🕟 🕞 🕝 🕜 🕛 🕚 🕠 🕡 🕢 🕣 🕤 🕥 🕦 ⏰ ⏳ 🕨 🕧 ⏱ ⏲ ฀ 127.0.0.1:8000/?print-pdf#/ 26/68

  27. 6/6/2019 What should we do with our UI? Example fix Example fix --- a/source4/scripting/bin/samba_upgradeprovision +++ b/source4/scripting/bin/samba_upgradeprovision @@ -1589,7 +1589,14 @@ if __name__ == '__main__': # This variable will hold the last provision USN once if it minUSN = 0 # 2) - ldbs = get_ldbs(paths, creds, session, lp) + try: + ldbs = get_ldbs(paths, creds, session, lp) + except ldb.LdbError as e: + if opts.debugall: + print(e) + parser.print_usage() + sys.exit(1) + 127.0.0.1:8000/?print-pdf#/ 27/68

  28. 6/6/2019 What should we do with our UI? testing --help testing --help expecting something like Usage: smbwhatever [options] -k, --kerberos use kerberos -v, --verbose print more and success as error code. 127.0.0.1:8000/?print-pdf#/ 28/68

  29. 6/6/2019 What should we do with our UI? testing --help testing --help Not expecting: to create a file called ./-- help/etc/smb.conf . testenv access to /usr/local/samba/* a string containing “Traceback” 127.0.0.1:8000/?print-pdf#/ 29/68

  30. 6/6/2019 What should we do with our UI? Usage and --help tests Usage and --help tests many tools already pass several easy fixes several knownfails a small blacklist 127.0.0.1:8000/?print-pdf#/ 30/68

  31. 6/6/2019 What should we do with our UI? --help consistency --help consistency ldb tools repeat options, only one works ldbsearch --help | grep -we -s -s, --scope=SCOPE search scope -s, --configfile=CONFIGFILE Use alternative con 127.0.0.1:8000/?print-pdf#/ 31/68

  32. 6/6/2019 What should we do with our UI? --help consistency --help consistency ldbsearch --help | grep -e '-[siS],' -s, --scope=SCOPE search scope -i, --interactive input from stdin -S, --sorted sort attributes -s, --configfile=CONFIGFILE Use alternative configuration -S, --sign Sign connection to prevent -S, --signing=on|off|required Set the client signing state -i, --scope=SCOPE Use this Netbios scope 127.0.0.1:8000/?print-pdf#/ 32/68

  33. 6/6/2019 What should we do with our UI? --help consistency --help consistency ldbsearch --help | grep -e '-[siS],' -s, --scope=SCOPE search scope -i, --interactive input from stdin -S, --sorted sort attributes -s, --configfile=CONFIGFILE Use alternative configuration -S, --sign Sign connection to prevent -S, --signing=on|off|required Set the client signing state -i, --scope=SCOPE Use this Netbios scope 127.0.0.1:8000/?print-pdf#/ 33/68

  34. 6/6/2019 What should we do with our UI? --help consistency --help consistency ldbsearch --help | grep -e '-[siS],' -s, --scope=SCOPE search scope -i, --interactive input from stdin -S, --sorted sort attributes -s, --configfile=CONFIGFILE Use alternative configuration -S, --sign Sign connection to prevent -S, --signing=on|off|required Set the client signing state -i, --scope=SCOPE Use this Netbios scope 127.0.0.1:8000/?print-pdf#/ 34/68

  35. 6/6/2019 What should we do with our UI? --help consistency --help consistency ldbsearch --help | grep -e '-[siS],' -s, --scope=SCOPE search scope -i, --interactive input from stdin -S, --sorted sort attributes -s, --configfile=CONFIGFILE Use alternative configuration -S, --sign Sign connection to prevent -S, --signing=on|off|required Set the client signing state -i, --scope=SCOPE Use this Netbios scope 127.0.0.1:8000/?print-pdf#/ 35/68

Recommend


More recommend