Hallo Welt,
ich glaube, ich habe hier im Forum irgendwann mal gelesen, dass ein
Queue für Eingaben einer Benutzerschnittstelle unsinnig sind, weil bei
Verzögerungen der Abarbeitung dann irgendwann noch auf "veraltete"
Eingaben erfolgen, und den Benutzer verwirren könnten.
Wie macht man das richtig?
Nichtig schrieb:> Wie macht man das richtig?
Ich beherzige meistens den Grundsatz 'do the visible work first', so
erkennt der Benutzer schon mal, das sein Tastendruck erkannt wurde und
die Mimik nun ihren Zauber im Hintergrund beginnt.
Lange Operationen kann man dem Benutzer durch irgendwelche 'Busy' LED
oder Fortschrittsbalken kundtun oder einfach nur entrüstet piepsen, wenn
da schon wieder jemand die Taste drückt, obwohl es noch gar nicht soweit
ist.
Im Idealfall ist die Technik so schnell, das man gar nicht erst eine
Warteschlange aufbauen kann.
Grundsätzliche Regel - zwischen einer menschlichen Eingabe und der
Aktualisierung des Bildschirmes dürfen maximal 20ms vergehen.
Auch wenn die Warteschlange immer leer sein sollte - du brauchst sie
trotzdem.
Zum einen startest du Hintergrundprozesse, die ihre Rückmeldungen in die
Warteschlange schieben. Zum anderen kannst du nicht alle Verzögerungen
vermeiden. Z.B. Ein anderes Programm hatte den gesamten Hauptspeicher
belegt und dein Programm in die Auslagerungsdatei verschoben.
Noch ein Kommentar schrieb:> zwischen einer menschlichen Eingabe und der> Aktualisierung des Bildschirmes dürfen maximal 20ms vergehen.
Völlig praxisfremd. In 20ms hat die FB das Kommando noch nicht mal
abgesendet.
In meinen Entwicklungen verzögert die Entprell-Lib schon um 40ms. Und
die Benutzer sind oft erstaunt, wie schnell das Gerät gegenüber üblichen
Kaufgeräten reagiert.
Viele andere Geräte mit 32Bit-Boliden und RTOS sind dagegen extrem
lahmarschig.
Nichtig schrieb:> Wie macht man das richtig?
Man reagiert umgehend auf eine Benutzereingabe. Und wenn die Reaktion
eine Sanduhr ist.
Und wenn die Reaktion eine Sanduhr ist, dann werden alle
Benutzereingaben gelöscht, die während der Sanduhrphase getätigt werden.
Ein wirklich grausames Gerät ist z.B. mein DVD-Player: wenn ich da auf
die "Schubladentaste" zum Auswerfen drücke, dann ist die einzige
Reaktion, die ich erwarte, dass das Ding sofort mit allem aufhört,
was es sonst grade so macht und die Scheibe auswirft.
Was das Ding tut: es rödelt mit variabler Drehzahl noch 30 Sekunden
weiter auf der DVD herum und versucht das unleserliche Ding einzulesen.
Und irgendwann kommt die Schublade herausgefahren und fährt danach
sofort wieder ein, weil ich natürlich wiederholt auf die
"Schubladentaste" gedrückt habe. Und das Spiel beginnt von Neuem.
Für dieses unheimlich simple UI hätte ich also schon 2
Verbesserungsvorschläge...
Matthias S. schrieb:> Ich beherzige meistens den Grundsatz 'do the visible work first', so> erkennt der Benutzer schon mal, das sein Tastendruck erkannt wurde und> die Mimik nun ihren Zauber im Hintergrund beginnt.
Dem würde ich zustimmen. Wir haben einen Fernsehen von Philips (der war
schon in der Wohnung drin, Geld würde ich dafür nicht ausgeben) und da
dauert die Reaktion auf eine Eingabe schonmal mehrere Sekunden. Da weiß
man nicht, ob der Fernseher das jetzt mitgekriegt hat und arbeitet oder
nicht. Also drückt man nach z.B. fünf Sekunden nochmal und nach acht
Sekunden öffnet sich das Menü und schließt sich sofort wieder. Dann ist
zumindest ein leeres Fenster, das sich sofort öffnet, doch besser.
Lothar M. schrieb:> Ein wirklich grausames Gerät ist z.B. mein DVD-Player: wenn ich da auf> die "Schubladentaste" zum Auswerfen drücke, dann ist die einzige> Reaktion, die ich erwarte, dass das Ding sofort mit allem aufhört,> was es sonst grade so macht und die Scheibe auswirft.> Was das Ding tut: es rödelt mit variabler Drehzahl noch 30 Sekunden> weiter auf der DVD herum und versucht das unleserliche Ding einzulesen.> Und irgendwann kommt die Schublade herausgefahren und fährt danach> sofort wieder ein, weil ich natürlich wiederholt auf die> "Schubladentaste" gedrückt habe. Und das Spiel beginnt von Neuem.
Das ist leider nichts unübliches. Man könnte es auch so bezeichnen: "Der
Fluch der Libs"...
OK, längst nicht immer sind die Libs schuld, viele stellen auch
asynchrone APIs bereit. Aber natürlich: deren Nutzung überfordert die
Lib-Gluer oder erzeugt bei ihnen zumindest mehr Aufwand, als sie bereit
sind zu investieren.
Und dann kommt halt recht regelmäßig genau sowas raus...
Lothar M. schrieb:> wenn ich da auf> die "Schubladentaste" zum Auswerfen drücke,...
Das Spielchen kenne ich auch.
Ich hab da so den Eindruck, daß es für alle handelsüblichen DVD Player
(und auch die CD-Player) nur einen einzigen Firmwarehersteller auf der
Welt gibt und daß bei diesem der Lehrling oder die Putzfrau das
komplette Userinterface geschrieben hat.
Aber laß mal, die User-Interfaces bei billigen China-MP3-Playern waren
und sind zwar anders, aber nicht weniger kröpelig.
W.S.
W.S. schrieb:> und daß bei diesem der Lehrling oder die Putzfrau das> komplette Userinterface geschrieben hat
Oder solche Experten, wie gerade in einem Heizungsforum gefunden. Mensch
berichtet von Problemen mit seiner Buderus-Gastherme. Gerät geht in
Störung und muß dann - logo - neu gestartet werden und wiederholt das
Spiel natürlich, wenn die Fehlerursache nicht behoben wurde. Erster Satz
von Mensch, er sei Softwarespezialist und die Software von Buderus wäre
sowas von Grottenschlecht!! Kein Wort über die Störungsursache, aber
Genörgel, dass die Resetversuche offensichtlich (der Softwarespezialist)
nicht "durchkommen", wenn zu schnell gedrückt wird. Und das Steuergerät
im Wohnzimmer wäre sowieso auch unterirdisch, wegen des bescheuerten
Softwareprotokolls!!! Selten so einen sinnfreien Beitrag gesehen...aber
natürlich Spezialist :-)
Gruß Rainer
Rainer V. schrieb:> Erster Satz> von Mensch, er sei Softwarespezialist und die Software von Buderus wäre> sowas von Grottenschlecht!!
Man könnte sich darüber beschweren, wenn da kein Grund für die Störung
angezeigt wird oder wie heute in Autos üblich nur ein 'Service rufen'.
Wenn die Steuerung aber sinnvolle Störungsgründe anzeigt, hat Buderus
sicher richtig programmiert.
Den Vogel in der Konsumerelektronik hat m.E. Loewe abgeschossen, mit
einer derart langsamen Benutzerführung, das du ein paar Stunden vor der
schweineteuren Glotze sitzt, nur um Programme zu ordnen.
Matthias S. schrieb:> Wenn die Steuerung aber sinnvolle Störungsgründe anzeigt, hat Buderus> sicher richtig programmiert.
Na ja, der Spezialist ist eben anderer Ansicht...Ich bin da auch nur
hin, weil ich z.Z. auch Probleme mit den Temperaturfühlern habe und
sehen wollte, ob ich was Interessantes finde...
Rainer
Matthias S. schrieb:>> Den Vogel in der Konsumerelektronik hat m.E. Loewe abgeschossen, mit> einer derart langsamen Benutzerführung, das du ein paar Stunden vor der> schweineteuren Glotze sitzt, nur um Programme zu ordnen.
Da lob ich mir den alten Sony meiner Eltern, hatte eine am PC
sortierbare Senderliste. Mein Panasonic kanns auch, sogar übers Netzwerk
😎
Lothar M. schrieb:> DVD-Player: wenn ich da auf die "Schubladentaste" zum> Auswerfen drücke, dann ist die einzige Reaktion, die ich> erwarte, dass das Ding sofort mit allem aufhört,> was es sonst grade so macht und die Scheibe auswirft.
Das würde mich ja jetzt wirklich interessieren: Kennt irgendjemand einen
DVD-Player, der diesen Test bestehen würde?
Peter D. schrieb:> In meinen Entwicklungen verzögert die Entprell-Lib schon um 40ms. Und> die Benutzer sind oft erstaunt, wie schnell das Gerät gegenüber üblichen> Kaufgeräten reagiert.
Man muss ja nicht unbedingt eine Fahrstuhlsteuerung, bei der man während
des Tastendrucks gefühlt langsam bis drei zählen muss, damit die
Steuerung den Fahrbefehl erkennt, als Maßstab nehmen ;-)