1

Temat: interfejs uzytkownika

Zastanawiam sie nad dodawaniem do swoich programow jakiegos w miare nowoczesnego i wygodnego interfejsu uzytkowinia. ma byc wygodne dla usera ale takze wygodne dla programisty.

"w zasiegu" atari jest:
- wiersz polecen odpada: jest niewygodny i zacofany
- graficzny odpada: pozera za duzo zasobow
- tekstowy ... wypadlo na interfejs z okienkami i menusami w trybie tekstowym

Flashjazzcat z AtariAge w swoich programach uzywa wlasnie takiego interfejsu...

A/
pytanie do uzytkownikow jakie wady ma ten interfejs.

B/
pytanie do programistow jaki powinien byc ten interfejs.

http://atari.pl/hsc/ad.php?i=1.

2

Odp: interfejs uzytkownika

A/ Imho nie ma wad, ale nie powinien wymagać do działania wskaźnika (mysz, joystick) a powinno się dać posługiwać aplikacjami przez domyślne skróty klawiaturowe (wzorem dla mnie jest TurboVision).

B/
1. Obiektowy i prosty w użyciu - podajesz strukturę, wywołujesz funkcję.
2. Nie powinien samodzielnie alokować pamięci jeśli już, to programista decyduje gdzie ma leżeć struktura.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

3

Odp: interfejs uzytkownika

nie ma wad

4

Odp: interfejs uzytkownika

Cześć,

W latach '90 gdy z SoTe musieliśmy napisać kilka programów użytkowych, od razu wiedzieliśmy że będę musiały mieć interface okienkowy, tyle że tryb graficzny odpadał. Interface miał być szybki i uniwersalny. Na początku wymyśliliśmy że stworzymy jakąś gotową do użycia bibliotekę, tak aby wykorzystać ją w innych programach. Życie jednak zweryfikowało nasze podejście to "tematu" i wyszło na to że każdy program który tworzyliśmy wymagał indywidualnego podejścia i kończyło się tak że robiliśmy jakiś w miarę uniwersal ny szkielet programu (np. zalążek biblioteki rysującej okienka i przechowującej treść pod "otwartym" okienkiem) a reszta funkcji w danym okienku była już indywidualnie obsługiwana przez niezależne procedury, czasami mieliśmy gotowe jakieś biblioteki I/O z poprzedniego programu, jednak nasza wiedza i doświadczenie rozwijało się "z programu na program", więc z czasem uznaliśmy że za każdym razem będziemy pisali wszystko od nowa, wykorzystując zdobyte doświadczenie i pisząc wszystko "nieco lepiej" niż poprzednio :)

Wydaje mi się że gdyby teraz dobrze przemyśleć całą sprawę to można by się pokusić o w miarę uniwersalną i dobrze zoptymalizowaną bibliotekę do obsługi okienek w trybie tekstowym.  Mam na swoim koncie jeszcze "prawie dokończony" program muzyczny (wewnętrzna rywalizacja z SoTe oraz chęć nauki robienia kolejnych rzeczy na Atari, lecz wtedy wygrał SoTe ze swoim MPT, a je nie zdążyłem i się zniechęciłem), program ten  cały był w trybie TXT (ANTIC mode 2), ale obsługiwał również myszkę od Atari ST/Amigi oraz rysował kursor (strzałkę, klepsydrę) co do pixela hi-res, oczywiście potrzebował 4 znaków wolnych w zestawie znaków aby to realizować, ale wyglądało to całkiem porządnie, być może w końcu uda mi się znaleźć dyskietkę z tym softem i będę mógł pokazać jak to wyglądało).

i na koniec,  pierwsze z brzegu przykłady naszych programów z interfejsami "okienkowymi" w trybie tekstowym:

rok 1992, napisane w MAC/65:
http://seban.slight.pl/aa/digital_studio.png

rok 1992, napisane w QA:
http://seban.slight.pl/aa/sample_editor.png

rok 1992, napisane w QA:
http://seban.slight.pl/aa/mrec.gif

Ostatnio edytowany przez seban (2014-08-11 18:37:43)

5

Odp: interfejs uzytkownika

Każdy interfejs jest dobry do określonych zastosowań i kiepski do innych. Np określenie że wiersz poleceń jest niewygodny i zacofany, bez dodatkowych warunków jest zbyt daleko posunięte. Są przypadki kiedy jest to najlepszy i najwygodniejszy interfejs. Podobnie z pozostałymi.

Co do interfejsu graficznego - powyższy jest również graficzny, bo tego nie określa technicznie użyty tryb ekranu tylko sposób działania. Interfejs tekstowy to wspomniana linia poleceń, albo np. menu z punktami (niektóre dosy). No ale to formalizmy.

Jest jedna spora wada powyższego rozwiązania: rozdzielczość interfejsu, ograniczona przez 40 kolumnowy ekran. Wystarczające dla np. programów narzędziowych ale przy muzycznych to jest spora wada. Ale tak jak mówię - interfejs do konkretnego zastosowania, nie ma rozwiązań uniwersalnych.

The problem is not the problem; the problem is your attitude about the problem

6

Odp: interfejs uzytkownika

W sumie to zalezy od upodoban uzyszkownika i od tego co program robi. Do niektorych uzytkow pasuje command line a do niektorych GUI. Ogolnie to ja bym optowal za GUI + command line tak jak to jest zazwyczaj w Linuxach.

7

Odp: interfejs uzytkownika

podobnie jak przedpiscy uwazam, ze taki interfejs (biorac pod uwage ograniczenia atari) nie ma wad

@wieczor odnoscie Twojej definicji: http://pl.wikipedia.org/wiki/Interfejs_u%C5%BCytkownika

@Mono: myslalem o przycietym amiga intuition ale tez turbo vision wyglada dobrze. poza tym jeszcze nie kumam interfejsu FJC a moze to jest wlasnie to.

@Seban: nie ograniczalbym sie do antic2, mysle o dowolnym trybie tekstowym

@Monsoft: rozumiem, ale nie widze zastosowania CLI w moich projektach.

http://atari.pl/hsc/ad.php?i=1.

8

Odp: interfejs uzytkownika

No tak jak mowie, do niektorych uzytkow command line prasuje a do niektorych to bylo "cos na sile".
W sumie wazne zeby bylo wygodne :)

9

Odp: interfejs uzytkownika

@xxl: SoTe i tego próbował (mówię o innych trybach tekstowych), np. w MPT:

http://atariki.krap.pl/images/f/f6/Mpt24s.gif

Ale mi ten tryb zawsze wydawał się mniej czytelny i bardziej męczący oczy. Nie bardzo mi to odpowiadało zarówno w CMC jak i MPT.

Ale na mnie chyba nie można patrzeć, bo mi się podobał tryb tekstowy który oferowała karta Hercules do PC z bursztynowym monitorem :D Tak jak Mono byłem w tamtych czasach strasznie zapatrzony na Borlanda oraz jego TurboVision oraz to co oferował jako interface, Norton Commander, Volkov Commander czy potem Dos Navigator. I do dziś mi to zostało bo zamiast Total Commander-a którego używają chyba "wszyscy", to ja go nie cierpię używam "Far Manager":

http://www.farmanager.com/screenshots.php?l=en

albo Midnight Commander pod Linuxem czy BSD.

http://seban.slight.pl/aa/far_example.png


Ale wracając do spraw związanych z Atari,  zawsze się zastanawiałem czemu czemu Janusz Pelc zmienił tryb tekstowy w CMC z Hi-Res na ten "kolorowy". moim zdaniem np. Avalom Music Composer mimo ubogiego zestawu znaków wyglądał czytelniej niż później wydany CMC:

http://atariki.krap.pl/images/c/c8/Amc.png

Ale to zapewne kwestia gustu czy indywidualnego podejścia do wyglądu interfejsu.

Oczywiście co do biblioteki to pewnie lepiej dla użytkowników że będzie działać w każdym trybie TXT zapewne, a jej wygląd w trybie "lo-res/kolorowym" być może zależy od dobrze dopracowanego zestawu znaków :)

i na koniec przykłady różnych interfejsów w hi-res TXT mode, nie koniecznie okienkowych, ale pokazujących jak można zrobić to dobrze i wygodnie, ale również to jak można to popsuć:

Black Magic Composer:
http://atariki.krap.pl/images/5/5c/Black_magic_composer.gif

Benjy Sound Monitor 1.8:
http://seban.slight.pl/aa/bsm18.png

Benjy Sound Monitor 2.09:
http://seban.slight.pl/aa/bsm209.png


Theta Music Composer:
http://atariki.krap.pl/images/f/fd/Tmc111.png

NeoTracker
http://atariki.krap.pl/images/0/07/Neo16_2.png

Ostatnio edytowany przez seban (2014-08-12 12:09:40)

10

Odp: interfejs uzytkownika

BMC usiłował się wzorować na "wygodnych" okienkowych systemach. Doprowadzał mnie do szału sterowaniem wskaźnikiem za pomocą joysticka (wiem - można było też myszką). Pomysł trafiania w jeden znak żeby zamknąć takie okno (zamiast po prostu wciśnięcie ESC) jest kretyński. Trauma została mi do dzisiaj. Podobnie zresztą było z kolejnym "wygodnym" Sound Trackerem z ASFu.
Od narzędzia wymaga się:
1. prostoty obsługi (kiedy jesteśmy zieloni)
2. szybkości obsługi (kiedy już przebrnęliśmy przez pierwsze kroki)
"Jedynka" to sterowanie myszką - jestem w stanie się zgodzić z Wieczorem, że to jest wygodne przy niektórych zastosowaniach, ale na dłuższą metę jeśli to jest jedyny sposób sterowania, to potrafi doprowadzić do pasji (vide Sound Tracker). Stąd też cechą dobrze zaprojektowanego interfejsu użytkownika jest sterowanie skrótami klawiaturowymi - i to załatwia "dwójkę". Wiadomo, że w niektórych rozbudowanych aplikacjach nie starczy kombinacji na klawiaturze, żeby wszystko podpiąć stąd też zazwyczaj podstawowe rzeczy są domyślnie predefiniowane, ale mamy osobny panel w ustawieniach, w którym do funkcji można samodzielnie przypisać kombinację klawiszy (choćby Eclipse IDE i Pakiet biurowy Microsoftu).
TurboVision też zresztą dawał obydwie opcje - każdą rzecz z oknami dało się zrobić odpowiednim skrótem. Nawet taki Windows 3.x dało się bez problemu obsługiwać samą klawiaturą, co było rzecz jasna szybsze niż szukanie wskaźnika myszy.
Jest też na Atari XL/XE coś takiego, jak Chaos(?) GEMS autorstwa Pelca (nie mam linka :/). To jest właśnie tekstowy interfejs ze wskaźnikiem przesuwanym co znak za pomocą kursorów klawiatury.

Edit: No i czytelny układ elementów aplikacji. Tragedia w Sound Tracker'ze (szczególnie definiowanie tracku), świetnie rozwiązane w NEO Tracker'ze czy TMC.

Ostatnio edytowany przez mono (2014-08-12 12:31:46)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

11

Odp: interfejs uzytkownika

mono dokładnie o tym wiem :) ale miałem myszkę od AtariST i jakoś udawało się to opanować, ale ten interface był jako przykład czegoś "jak można to popsuć", napisałem o tym w poście nawet :) być może powinienem wyraźniej zaznaczyć iż BMC był jako przykład mało ergonomicznego interface użytkownika ;]

I popieram Twój postulat że wszystko musi być obsługiwane (alternatywnie) skrótami klawiszowymi, dlatego używam FAR-a, tam nie dotykam myszki. Mam święty spokój i mogę zrobić co chcę nie używając "stoło-kulo-toczonego wpływacza na położenie kursora na ekranie" :P

I jeszcze jedno... jeżeli chodzi o kolorystykę, zdecydowanie wolę ciemne tła (np. niebieski) i jasne litery. Gdy widzę takiego total-commander to zbiera mi się na wymioty, być może da się tam zmienić wygląd i kolory, jednak moje nawyki z czasów DOS/Borland pozostały i dlatego pozostaję w niszy użytkowników którzy wolą rozwiązania typu FAR, MC, czy konsola tekstowa.

Niestety używając specjalistycznego komercyjnego oprogramowania (taka praca) jestem zmuszony do używania systemów Windows ;/ i nic nie poradzę bo pod WINE większość nie działa wcale a to co działa, nie działa poprawnie lub koszmarnie wolno ;/

Ostatnio edytowany przez seban (2014-08-12 12:42:07)

12

Odp: interfejs uzytkownika

Ależ ja wiem, że wiesz :) Wyraziłem jedynie swoją opinię na temat złych i niewygodnych interfejsów. Zdaje się, że nasze zdanie jest zbieżne :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

13

Odp: interfejs uzytkownika

Nie moge namierzyc Chaos GEMS Pelca... jestes pewny, ze tak to sie nazywa?

owszem, klawiatura, bedzie nowy driver klawiatury.

http://atari.pl/hsc/ad.php?i=1.

14

Odp: interfejs uzytkownika

widzisz XXL, prób stworzenia takiego interfejsu było wiele, ale żaden nie wybił się, powinieneś raczej dorzucić swój kamyczek do tego ogródka

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

15

Odp: interfejs uzytkownika

innymi slowy obfitosc UI. jest w czym wybierac :D

http://atari.pl/hsc/ad.php?i=1.

16

Odp: interfejs uzytkownika

no z tym wybieraniem to jest tak że chyba właśnie nie ma z czego wybierać :) bo wszyscy za każdym razem od nowa projektowali interface dla swoich programów, nikt nigdy nie zrobił jednolitej uniwersalnej biblioteki z której można byłoby z prosty sposób skorzystać :)

W dawnych czasach (Code3) mieliśmy nawet taki prymitywny tool na którym rysowaliśmy sobie koncepcje interfejsu użytkownika dla naszych programów, nic skomplikowanego to nie było ale umożliwiało rysowanie ekranów w trybach tekstowych (+wczytanie dowolnego zestawu fontów). Można było mieć kilka ekranów, i przełączać się pomiędzy nimi, zmieniać zestaw znaków w każdej linii, etc.  Służyło nam to jako namiastka takiego edytora WYSIWYG, która pozwalała na zobrazowanie koncepcji interfejsu danego programu. ileż to było dyskusji i sprzeczek "o pierdoły" :) a potem i tak piszący kod "robił po swojemu".

17

Odp: interfejs uzytkownika

Ja kiedys napisalem taki 'windows' system. Mial okienka jak QA, zapamietywal i stackowal pamiec okien, API bylo zorganizowane 'obiektowo' tzn tablica skokow dla kazdego okna i 'uchwyt' do okna przez inny wektor. Nawet napisalem jakis program potem na to ale oczywiscie zginelo wszystko gdzies... moze kiedys sie odnajdzie na jakiejs dyskietce ktorej jeszcze nie sprawdzilem :)))

"Was powinny uzbrojone służby wyciągać z domów do punktów szczepień, a potem zamykać do pi* za rozpowszechnianie zagrożenia epidemicznego" - Epi 2021
"Powinno się pałować tylko tych co tego nie rozumieją. No i nie szmatki i nie chirurgiczne tylko min FFP3, to by miało jakiś sens. U mnie we firmie, to jak przychodzi bezmaskowiec, to stoi w deszczu przed firmą" - Pin 2021

18

Odp: interfejs uzytkownika

Mój wynalazek, który Ci linkowałem nie ma bufora dla zawartości pod oknem, bo go nie potrzebuje (user też nie wskazuje takiego bufora). Aktualnie procedura rysowania jest wolna bo przy malowaniu każdego bajtu ekranu sprawdza z którego okna wziąć daną, ale można by to poprawić tak, żeby odrysowywało tylko potrzebne klipy. To był eksperyment wynikający z rozmów z JBW, który właśnie doszedł do wniosku, że można tak skonstruować system, że bufor jest niepotrzebny a tylko zajmuje pamięć. Nawet pokazywał mi w TA na pececie taki swój system okienkowy wyglądający na Borlandowy.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

19

Odp: interfejs uzytkownika

Wydaje mi się, że takie rozwiązanie godzi wszystkich:

1. Startuje tekstowy interfejs okienkowy: główne, górne menu rozwijane już w okienka z wyborem. Sterowanie klawiszami kursora lub dżojstika.

2. Po uruchomieniu w jednej z opcji "nakładki" będzie możliwość włączenia obsługi, np. jakiejś myszki lub innego kontrolera + ewentualne parametry takowego (np. numer portu, prędkość kursora). Tę opcję można zapamiętać by po kolejnym starcie był uruchamiany od razu odpowiedni sterownik. W miarę jak powstawały by nowe sterowniki do potrzebnych urządzeń - stawały by się kolejnymi urządzeniami do kontroli kursora w okienkach.

3. Potraktowałbym górną belkę menu jako menu aktualnie uruchomionego podprogramu - znane skądinąd rozwiązanie z wczesnych systemów z nakładkami tekstowymi czy też graficznymi. Jest to przyjemne bo zawsze widać w kontekście czego pracujemy.

4. Idąc tym tropem dalej, pewne rodzaje aplikacji mogą się integrować (kamuflować) z nakładką. Np. uruchomienie odtwarzacza audio zmieni górną belkę na menu odtwarzacza, chociaż jest to już tak naprawdę inny program. Powrót z niego do systemu - ujawni ponownie menu główne "nakładki".

5. Nakładka przy wyjściu do aplikacji, podprogramu zostawia w pliku swoje ustawienia.

Do zalet: każdy uruchomiony program korzysta ze wspólnego sterownika okien, każdy nowy program może załadować swój zestaw fontów, kursora myszy, jeśli będzie uruchomiony, żaden program nie martwi się o powrót do "nakładki": wracaj tryb graficzny zero, fonty główne, kursor myszki, etc.

Nawet gdyby tryb programu był graficzny - żaden problem wygenerować linię menu na podstawie ustawień "nakładki" sprawiając wrażenie integracji.

To taki przykład.

Ale to wszystko już było.

Ostatnio edytowany przez Yansen (2014-08-12 18:50:35)

20

Odp: interfejs uzytkownika

Yansen napisał/a:

1. Startuje tekstowy interfejs okienkowy: główne, górne menu rozwijane już w okienka z wyborem. Sterowanie klawiszami kursora lub dżojstika.

to ma byc biblioteka a nie jakas nakladka na atari os.


Yansen napisał/a:

5. Nakładka przy wyjściu do aplikacji, podprogramu zostawia w pliku swoje ustawienia.

ja opuszczam program klawiszem reset. jak mam zapisac ustawienia podczas zimnego startu?

http://atari.pl/hsc/ad.php?i=1.

21

Odp: interfejs uzytkownika

xxl napisał/a:

ja opuszczam program klawiszem reset.

No i na tym powinna się zakończyć kulturalna dyskusja :)

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

22

Odp: interfejs uzytkownika

Kończę.

23

Odp: interfejs uzytkownika

dely napisał/a:
xxl napisał/a:

ja opuszczam program klawiszem reset.

No i na tym powinna się zakończyć kulturalna dyskusja :)


powinienes zamknac temat bo teraz albo offtopic albo niekulturalna dyskusja :-)

zapraszam na atarionline forum gdzie temat bedzie kontynuowany:

http://atarionline.pl/forum/comments.ph … =1#Item_24

http://atari.pl/hsc/ad.php?i=1.

24

Odp: interfejs uzytkownika

Niezły imho pomysł miał JBW w Panther'rze - chodzi o brak ramek w oknach. W trybie 40x24 one faktycznie zajmują tylko miejsce, a mogą być pokazane znacznie bardziej elegancko poprzez wyróżnienie obszaru ekranu, kursor itd. To samo widać w TMC/NEO. Może by tak pójść w takim kierunku? Podkolorowanie sprajtami, znaki tylko do wyświetlania treści (user miałby wtedy nawet generator znaków do własnej dyspozycji po to, żeby wyświetlać treść, a nie malować okna).

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

25

Odp: interfejs uzytkownika

wieczor napisał/a:

Jest jedna spora wada powyższego rozwiązania: rozdzielczość interfejsu, ograniczona przez 40 kolumnowy ekran. Wystarczające dla np. programów narzędziowych ale przy muzycznych to jest spora wada. Ale tak jak mówię - interfejs do konkretnego zastosowania, nie ma rozwiązań uniwersalnych.

Okienkowy interface FJC ma tę też zaletę, że jakimś sposobem dość sprawnie rysuje przez system, bo uruchamiając owe okienka w trybie 80 znakowym na VBXE wszystko ładnie bangla na 80 znakach ;)

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info