UX / Používateľské rozhrania systému Unix

Používateľské rozhrania systému Unix

Sergej Chodarev / 4. december 2023

Cyan typewritter at wooden desk

UNIX

Unix a „Unix-like“ OS

GUI

Príkazový riadok

Príklad

Príklad grafického rozhrania

Príklad rozhrania MS-DOS

C:\>quadratic
Turbo Quadratic Equation Solver for MS-DOS
Please, enter the coefficients of the equation
ax^2 + bx + c = 0
a: 4
b: -5
c: 1
The equation has two roots: 1, 0.25
    

Príklad rozhrania UNIX

~$ quadratic 4 -5 1
1
0.25
    

História

Začiatok

Ken Thompson (sitting) and Dennis Ritchie at PDP-11

Vlastnosti

Filozofia Unixu

This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.

Doug McIlroy

Sila príkazového riadku

Majster Foo diskutuje o grafickom používateľskom rozhraní

The Art of Unix Programming

The Art of Unix Programming

Efektívne a bohaté možnosti vyjadrovania

Kompozícia programov

rpm -qa --qf '%{size} %{name}\n' | sort -nr | less
cat program.hs | ./parser | xsltproc ../viztree.xsl -  \
               | dot -Tpng > parser.png

Automatizácia

Vim

História Vimu

LSI ADM 3A keyboard

Jazyk pre úpravu textu

Jazyk

Internalizácia vs externalizácia

The Cognitive Style of Unix

Tricycles vs. Training Wheels

A. Cockburn, C. Gutwin, J. Scarr, and S. Malacria
Supporting Novice to Expert Transitions in User Interfaces
ACM Computing Surveys (Nov. 2014)
DOI: 10.1145/2659796

A painting of a woman on a swing

Zásady návrhu CLI

Odporúčania a štandardy

Vstup a výstup

Presmerovanie

prog > output
prog >> output
prog < input
prog 2> errors
prog 2>&1
prog1 | prog2

Pravidlo ticha

When a program has nothing surprising to say, it should say nothing.

Argumenty

ls -a
ls -al
ls --all -l
ls -I '*.png'
ls --ignore='*.png'

Štandardné argumenty

--help
--version

The -a to -z of Command-Line Options

Exit status

return 0;

exit(0);

Exit status

Konfigurácia

Konfiguračné súbory

Premenné prostredia

Signály

kill -SIGKILL 42
kill -SIGHUP $(cat /var/run/nginx.pid)

POSIX Signals

Dokumentácia

Vzory rozhraní príkazového riadku

The Art of Unix Programming

Postelov zákon

Buďte liberálni pri prijímaní informácií, ale naopak konzervatívni pri ich odosielaní.

Oddelený „engine“ a rozhranie

Jazyk ako rozhranie

Príkazový riadok dnes

Záver

High-performance tasks require high-performance user interfaces specially designed for those tasks.

Jon Udell

Kam ďalej?

Dilbert compic strip