GUI en JTP
 
Inleiding


Een Grafische Gebruikers Interface rondom het Judo Tournooi Programma .
Met het schrijven van het JTP is begonnen in de jaren 1982 .Er waren toen vrijwel geen PC laatstaan Grafische beeldschermen voor prive gebruik . De invoer werd gedaan met behulp van terminals welke slechts zwart/wit en alleen  instaat waren tekens aftebeelden . De uitvoer werd gedaan op regel/keting printers die zo groot waren dat je het wel uit je hoofd liet ze meetenemen .

Nu vele jaren later is dit allemaal veranderd . Grafische beeldschermen zitten eenvoudigweg in je labtop of hangen aan je PC . Je bekijkt er films  en foto's op  .

Het JTP is in deze zin  verachtergebleven  .  De oorzaak  (of  beter gezegd de  noodzaak) is dat het zou moeten kunnen funktioneren op de  meest simpele  machine  .  Dit  mede daar vele verenigingen niet altijd beschikken over moderne machines . Een tweede reden is snelheid . Een judo tournooi is vaak er hektis qua logistiek . Om die reden is gekozen voor een gehele textuele afhandeling zonder tussenkomst van een muis of iets dergelijks . Ook om reden van eenduidigheid is het beeld , zoals de gebruiker het ziet , de laatste jaren zo min mogelijk veranderd .

Main-menu lid-edit

Het eerste figuur geeft het hoofd menu weer terwijl de andere het wijzigen van deelnemergegevens weergeeft . (Plaatjes opgenomen uit puppyLinux) De kommando's zijn enkel een letter of ingeval van een windowtje de pijltjes om de plaats tebepalen .

Het voordeel van een simple text interface is dat het programma klein is , op dit moment zo'n 350kB(linux) en 600Kb(dos/windows) . Een simpel toevoegen van een window maneger b.v. GraphApp geeft so wie so een vergroting van 800kB aan bibliotheken . (En met hetgevolg dat het niet meer werkt onder een kale Dos machine nog onder windos 3.11/95 en niet meer onder een Linux zonder X11 )
Een bijkomend probleem zijn printers . Veel GUI's hebben geen of een slechte manier om wat op het beeld staat ook aftebeelden op een printer . Nu zou je kunnen overwegen dit te omzijlen door de gewenste uitvoer bestemt voor een printer in een formaat te maken dat het OS er wat mee kan . B.v. door de uitvoer text naar PostScript te programeren .  Betekend wel dat je windows moet voorzien  van een  postscript lezer  .

Een andere manier .

Zoals misschien uitbovenstaande al een beetje is gebleken dat compabiliteit een van de grootste problemen is . Of misschien anders gezegd , een programma zo schrijven dat het OS onafhankelijk werkt . Dit geld metname als je je werk niet voor iedere versie van een OS moet gaan aanpassen . Ingeval van een grafische omgeving  blijkt dit  , voorals nog , een  enorme opgave te zijn .
Er zijn wel pogingen gedaan dit zomogelijk OS onafhangkelijk te maken zoals b.v. wxWindows , GTK , GrapApp . Ongetwijfeld zijn er nog meer . Een andere manier is tekijken naar de webbrowser en naar de manier waarop hiermee gebruikers interface's kunnen worden gemaakt . Het voordeel zo zijn dat het op alle OS's(platformen) werkt en dat tevens het printer probleem is opgelost . Daar alle browser een printoptie bijzich hebben en de conversie verder overgelaten wordt aan het onderliggende OS .  In 2004 heb ik eens wat geexpirimenteerd met dit idee waarvan hier onder een paar afbeeldingen . Links staat het keuze menu en rechts de te ondernemen actie's of het resultaat van een vraag .

www-org www-org

Het idee is overigens niet nieuw . Systemen als Ajax , Hop doen dit ook en met de zelfde achtergrond redenatie . Het verschil is dat deze systemen uitgaan van een nieuw optezetten programma terwijl ik er naar streef een bestand programma , eigentlijk , alleen maar aantepassen aan de huidige gebruiker . Dit met behoud van de mogelijkheid het in console mode te kunnen gebruiken .
Dit kun je berijken door het JTP tevoorzien van een Server en alle invoer en uitvoer van het programma door het programma in HTML code naar de Client(Browser) testuren . Als je het zo maakt dat het omschakelbaar is tussen Server en Console mode is de oplossing voor zowel oude als nieuwere computers gewaarborgd . Tevens is het  programma OS onafhankelijk gebleven .

Soms zijn plaatjes duidelijker : ServerConsole Hierin is de Browser iets als explorer of firefox en je console iets als de dos-box(mswindows) of rtvx(Linux-X11) .

Gebruiker gezichtspunt

Het verzoek om het aanzien van het programma te veranderen komt voort uit het feit dat de huidige computer gebruiker geheel geindoctrineerd is door het aangezicht van MS windows . Dientegevolge eigenlijk alleen maar meer in staat is met een muis te klikken en hij/zij hoopt dan dat de gewenste aktie wordt gestart c.q. weergegeven .  Het voor mij dan ook maar zeer de vraag hoe je de informatie die de gebruiker nodig heeft moet gaan weergeven . Ik ben in het bovenstaand voorbeeld er vanuitgegaan dat het wenselijk is zoveel mogelijk directe annwijzigen tegeven in het menu . Dit integenstelling tot een weergave met tab bladen , waarbij je eerst een hoeveelheid moet openen als vorens je hebt gevonden wat je eigenlijk wilt gaan doen . Mogelijk moet je in de aangebonden formulieren ook gelijk een uitleg meegeven (help optie) , dit daar de meesten de aangeboden help funktie meestal niet bekijken . Een nog heikelder punt is wat vind de gebruiker mooi en niet mooi . De ervaring heeft mij geleerd dat je daar maar overeenstemming tussen gebruikers over bestaat . De een vindt kleur geel mooi tewijl de ander liever grijs heeft . Wat is funktioneel ? .

Programma gezichtspunt

Vanuit het programma zijn er twee gezichtspunten n.l. de client(browser) en de server(jtp-programma) (Lees dit maar eens) .
Wat de client betrefd is het verstandig geen Flash en SVG tegebruiken en zomogelijk het gebruik van Java te vermijden . De reden is dat gebruikers uit veiligheid vele plug-ins verbieden . Ook zijn er verschillen in Java modules gezien . De meeste Browser ondersteunen HTML + CSS , voor eventuele problemen kijk maar eens op de website van W3C .
Wat de server betrefd moet de input/output worden hergeprogrammeerd ondervoorwaarde dat de console mode blijft bestaan . Het handigste lijkt mij dit als parameter in de commando lijn mee tegeven .
Wat de gebruiker betrefd zullen er formulieren en menu's moeten worden ontworpen die funktioneel zijn en passen binnen het raam van wat mogelijk is in HTML+CSS . (Bedenk wel niet alles werkt in iedere browser !)

Technisch gezichtspunt

Het JTP is geschreven in Fortran77 met twee C routines . Een voor de beeldbesturing en een voor de netwerk besturing . De beeld besturing lost de verschillen op tussen Dos/Linux/MSwindows . Het netwerkdeel bevat een koppeling tussen C en Fotran parameter overdracht en voor het oplossing van de verschillen tussen Linux/Unix en MSwindows . De toegepaste vertalers zijn de GNU-GCC en de GNU-G77 welke gratis beschikbaar zijn voor zowel Linux/Unix als voor Dos/Windows en Windows . Een enkele toelichting is dat voor Dos/Windows heet deze DJGPP en voor MSWindows(draait niet onder Dos) is dit de MingWin compiler .
Programma vertaald met DJGPP werken onder alle dos/mswindow systemen in consolemode maar ik heb de netwerk driver nooit aan de praat gekregen , schijnt wel te kunnen . Om die laatste reden gebruik ik MingWin voor het programeren van een netwerk versie .

Versie 0.0 datum : 19-06-2007 door Menno S. Ter Haseborg .