|
>
.02 > .01 .00 > .99 |
|
|
>
.02 .02 > .01 |
Grafische vormgeving/techniek
De seconde van Ron van Roon Fontlicenties en de kleine lettertjes Laissez-passer (nieuwe paspoort) |
|
>
.05 .04 .03 .02 .02 .01 |
|
|
>
.05 .03 .03 .01 .01 .01 |
|
|
>
.01 .00 .99 |
|
|
>
.02 .01 .00 |
|
|
>
.98 |

David Niemeijer (links) en Giesbert Nijhuis
|
>
1998 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
>
De kracht van KeyStrokes > De filmacteur ziet de camera, maar de toneelspeler ziet zijn publiek. De directe relatie tussen de software ontwikkelaar en de gebruiker blijft veelal beperkt tot een aantal bètatesters die het prille programma tot in de verre uithoeken mag testen. Aan de hand van de bugreports die de ontwikkelaar van de testers ontvangt, kan het programma worden bijgeschaafd en kan na een reeks opeenvolgende bètastadia de definitieve versie worden uitgebracht. Toch ligt de oorsprong van een programma niet altijd bij de innovatieve geest van de ontwikkelaar of de op grote winsten beluste manager. > David Niemeijer (1968) ontwikkelde zijn programma KeyStrokes op heel andere gronden. KeyStrokes is een volledig werkend on-screen toetsenbord dat met de muis bediend kan worden. Niemeijer is geen fulltime programmeur: van huis uit is hij geograaf. In deze hoedanigheid deed hij onderzoek in Afrika en is nu bezig met de afronding van zijn proefschrift. Op programmeergebied heeft hij zich beziggehouden met Remote Sensing (de interpretatie van luchtfotos en satellietbeelden) en GIS (Geografische Informatie Systemen). In dit interview ligt de nadruk echter op de ontwikkeling van KeyStrokes. > Wat heeft de aanzet gegeven tot de ontwikkeling van KeyStrokes? In december 1995 heeft een vriend van mij (Giesbert Nijhuis) een heel ernstig auto ongeluk gehad. Hij speelde in een band en ze waren naar Frankrijk geweest om op te treden. Op de terugweg is het busje waarin ze zaten omgekanteld. Niemand mankeerde iets ernstigs, maar Giesbert had een hoge dwarslaesie. Het enige wat hij nog kon bewegen was zijn hoofd en zijn nek. Hij had net zijn opleiding afgerond als grafisch ontwerper en fotograaf en toevallig had hij al een beetje computerkennis. In eerste instantie zag hij het helemaal niet meer zitten. Het maakt je leven grondig kapot natuurlijk als je jezelf plotseling op die manier aantreft. Toen heeft mijn vader hem een tijdlang een computer geleend die hij door middel van een zogenaamde `head mouse' kon bedienen. In eerste instantie heeft hij daar een heel slecht en duur programmaatje voor gebruikt. Er werkten een hoop dingen niet en het crashte de hele tijd. Ik dacht: dat moet beter kunnen en goedkoper! Dat was dus de aanleiding om iets voor hem te ontwikkelen. Ik heb toen in korte tijd iets in elkaar gezet wat in geen enkel opzicht lijkt op het huidige KeyStrokes. Dat was niet echt ideaal, maar desalniettemin was hij er erg tevreden mee. Dankzij die computer kreeg hij weer zin in zijn leven: hij had iets waar hij helemaal controle over had. > Kun je uitleggen hoe zon head mouse werkt? Op het beeldscherm staat een kastje dat fungeert als een soort infraroodzendertje. Giesbert heeft op zijn bril een reflector die het signaal terugkaatst. Het kastje vertaalt dit signaal naar de ADB zodat de muis kan worden bewogen. Daarbij is ook een zendertje op zijn stoel nodig om te zorgen dat hij ook kan klikken. Dat gebeurt door een buisje waar hij op blaast of zuigt, dat vergeet ik altijd. Dubbelklikken is twee keer blazen of twee keer zuigen. Op deze manier kan hij dus met zijn hoofd de muis bewegen en dus ook de computer besturen. > Je hebt KeyStrokes in eerste instantie alleen ontwikkeld voor Giesbert Nijhuis. Wat gaf de doorslag om de software via het Internet te distribueren? Eind vorig jaar zei Giesbert dat hij twee andere mensen kende die het programma graag zouden willen gebruiken. Nou, zei ik, dan moet ik het wel wat netter maken. Ik heb het programma toen helemaal omgegooid en ervoor gezorgd dat het programma permanent in de voorgrond kwam te liggen. Ik heb ook toegevoegd dat je de cursortoetsen kunt gebruiken, maar ook de Option-, Command- en Shift-toetsen. Die toetsen zijn natuurlijk erg belangrijk. Als je bijvoorbeeld in Photoshop wilt uitzoomen, dan moet je de optie toets ingedrukt houden. Naast Giesbert heeft ook nog een andere persoon het programma in de praktijk getest. In januari heb ik de eerste versie uitgebracht. > Heb je Giesbert Nijhuis geraadpleegd voor bijvoorbeeld de opzet van de interface? Ja, ik heb in samenwerking met Giesbert de features bepaald zoals bijvoorbeeld de mogelijkheid om een groter en een kleiner toetsenbord te krijgen. Als je programmeert dan vermenigvuldig je met een factor 1,5 of 2, maar voor de gebruiker zegt het meer als je de formaten omschrijft als Small, Very Large of King Size. Over dat soort dingen heb ik zelf natuurlijk al proberen na te denken. Het moet natuurlijk zo min mogelijk technisch zijn. Vooral de features; de vormgeving is grotendeels overgenomen van het beroemde oude Key Caps. > Waar begint het ontwikkelproces? Hoe ga je te werk? Het begint met je suf piekeren hoe je in godsnaam zoiets voor elkaar kunt krijgen. Een aantal dingen verloopt niet normaal: je wilt een venster dat altijd zichtbaar moet zijn en je wilt zeker weten dat elke klik op het KeyStrokes toetsenbord door KeyStrokes wordt opgevangen en niet door het programma dat in de voorgrond ligt. Die programmas weten niet dat KeyStrokes bestaat en kunnen er dus ook geen rekening mee houden. Je vraagt je af op welke manier een programma kan weten dat er een toets is ingedrukt. Want dat is de informatie die door KeyStrokes moet worden doorgeven. Daar begint het dus eigenlijk mee. > Je moet goed kijken hoe andere programmas werken Ja, en hoe het besturingssysteem werkt. Het besturingssysteem moet aan andere programmas doorgeven welke toetsen worden ingedrukt. Dit soort dingen zijn hele gevoelige kwesties omdat het op systeemniveau plaatsvindt. Je doet dingen met de computer waar hij eigenlijk niet voor bedacht is. Je maakt gebruik van allerlei haakjes en oogjes en als er iemand niet volgens de spelregels speelt, dan zit jij met een probleem. Het is een hele moeilijke klus om te zorgen dat het KeyStrokes toetsenbord onder alle omstandigheden beschikbaar is en werkt. Als gebruikers toch op een probleem stuiten, wijten ze dat vaak aan jouw programma. Mensen realiseren zich vaak onvoldoende dat dergelijke problemen juist door andere programmas worden veroorzaakt. > Is dat de reden dat je expliciet vermeldt dat het gebruik van KeyStrokes voor eigen risico is? Jazeker. Ik moet er niet aan denken dat een gehandicapte op die computer zijn omgevingsbesturing heeft zitten, met deuren die open en dicht kunnen en lichten die aan en uit kunnen. En dat dankzij mijn programma de zaak down gaat, de deuren open gaan en iemand kou vat. Stel je voor! Ik wil dat dit programma gewoon 100% stabiel is. Ik accepteer dat het met sommige dingen niet goed samenwerkt, dat ik gewoon niet alles kan doen. Dan zou ik er dagelijks aan moeten werken en diep in andere programmas moeten duiken om te achterhalen wat er gebeurt en waarom het niet samenwerkt. Daarbij zijn er zoveel extensies die rare dingen uitvreten en vaak ook niet meer compatibel zijn met andere software. Maar tegelijkertijd wil ik wel dat het heel erg stabiel is. Als dit programma niet goed werkt, dan crasht het hele systeem met alle gevolgen van dien. > Je voelt je verantwoordelijk voor de gebruiker Ja, dat zeker. Daarom ga ik ook geen snelle toevoegen maken om een volgende versie op de markt te kunnen brengen. Tussen versie 1.0 en 1.1 heb ik KeyStrokes door 6 of 8 mensen, de eerste geregistreerde gebruikers, laten bèta testen. Mensen die er dagelijks mee werken, onder verschillende omstandigheden en in verschillende landen. Ik wilde dat het bij deze mensen minstens twee weken stabiel zou draaien. Eén van de eerste gebruikers schreef dat het programma na een half jaar nog steeds werkt en dat er nog nooit problemen mee zijn geweest. Dat is toch wat je wilt. > Welke hardnekkige hindernissen heb je tijdens het ontwikkelproces moeten nemen? Adobe Photoshop reageerde niet op de nette manieren die ik gebruikte om door te geven of de optietoets ingedrukt was. Dan ga je je afvragen wat er aan de hand kan zijn. Als programmeurs normale manieren gebruiken om te achterhalen of er een toets is ingedrukt, gaat alles goed. Het gaat mis als ze lui zijn of efficiënter willen zijn en gebruik maken van illegale methoden. Er is bijvoorbeeld een plek in het geheugen waar wordt bijgehouden of er een toets wordt ingedrukt. Normaal gesproken moet je als programmeur een procedure van het besturingssysteem aanroepen: wat is de stand van zaken op die plek in het geheugen. Je gaat niet zelf in het geheugen kijken en je gaat niet zelf aan het geheugen sleutelen. Maar programmas als Photoshop kijken mooi letterlijk op die plek in het geheugen. Dat ene simpele extra stapje, dat slaan ze over. Ze kijken rechtstreeks. > Wat is de reden daarvan? Dat is iets wat ik niet echt kan begrijpen, want het levert je geen snelheid op. Wat maakt het nou uit dat een fractie van een fractie van een milliseconde later de cursor omschakelt naar min of plus? Er is geen enkele reden waarom dat sneller en efficiënter moet. Het is ook niet volgens de regels. Apple waarschuwt daar ook voor: het kan betekenen dat je programma niet compatibel is met andere software. De problemen die Apple ondervindt bij de overstap naar een nieuwe versie van het besturingssysteem hebben voor een deel te maken met programmeurs die zich niet aan de spelregels houden. En bijna alle programmeurs houden zich op een bepaald moment niet aan de spelregels omdat ze zo snel geen andere oplossing weten. Ik word in feite gedwongen tot illegale acties die ook weer incompatibiliteiten opleveren doordat andere programmas zich niet aan de spelregels houden. > Het resulteert in een domino effect Ja, een domino effect, inderdaad. Met dat soort dingen heb je dus allemaal te maken, daar moet je goed over nadenken. Het ontwikkelproces begint eigenlijk met dit soort problemen, pas daarna kom je toe aan zaken die eventueel handig zouden kunnen zijn. > Zou je de software gaan aanpassen als een gebruiker vraagt of je KeyStrokes niet geschikt kunt maken voor Systeem 7.0, of adviseer je die persoon om te upgraden. Het is zo dat ik op een gegeven moment een melding kreeg van iemand die zei dat het niet werkte bij zwart/wit. Dat heb ik aangepakt omdat ik vond dat dat gewoon moest kunnen. > Waar ligt de grens? Ik gebruik nu faciliteiten van Systeem 7.1 om het KeyStrokes toetsenbord altijd in de voorgrond te houden. Dat is fundamenteel. Om nou een oplossing te vinden voor Systeem 7.0 zie ik niet meer zitten. Bij de registratie vraag ik mensen welk type computer ze gebruiken. Zeker de helft gebruikt Mac OS 8.0 of 8.1. Het is niet zo dat KeyStrokes gebruikers op achterlijke, ouderwetse systemen werken. Helemaal niet. > Waarom is KeyStrokes eigenlijk gratis. Op het web zag ik slechter uitgevoerde programma's met een soortgelijke functionaliteit voor 99 dollar. Ondanks dat het niets kost, kent KeyStrokes een registratieprocedure. Registreren en toch gratis, dat komt niet vaak voor. Waarom heb je dat gedaan? Ik heb er geen geld voor gevraagd omdat ik het programma al geschreven had voor Giesbert. Ik had niet de intentie om er rijk van te worden en bovendien wist ik dat de markt beperkt zou zijn. Het was ook een beetje om al die andere fabrikanten van on-screen toetsenborden te laten zien dat het veel goedkoper kan. Tegelijkertijd was ik ook heel nieuwsgierig naar de hoeveelheid mensen die het zouden gaan gebruiken en voor welke doeleinden. Door de registraties krijg ik daar een aardig beeld van. Het levert je ook een stuk plezier op als je reacties krijgt. Dat geeft een stuk feedback. Je krijgt ook veel meer reacties als iets gratis is. > Je bouwt natuurlijk ook een klantenkring op Ja, als ik ooit een commerciële of shareware versie wil uitbrengen van KeyStrokes, dan heb ik alvast een klantenbestand. Als ik meer tijd heb, dan ga ik het echt uitbreiden en nieuwe functies toevoegen. Tegelijkertijd kan ik altijd een gratis versie houden die de basisfunctionaliteit biedt, maar wel up-to-date blijft met de nieuwste besturingssystemen. Een ander punt is dat ik zicht heb op de verhouding tussen de hoeveelheid downloads en het aantal registrerende gebruikers. Ik weet dat het beperkte aantal registraties ten opzichte van de downloads te maken heeft met het feit dat mensen altijd alles even willen bekijken om het vervolgens weg te gooien of te bewaren voor de eeuwigheid, en niet omdat ze mijn programma te duur vinden. Als ik ooit een product heb, dan weet ik een beetje waar ik aan toe ben. > Heb je nog plannen voor andere software? Naast een eventuele shareware versie van KeyStrokes heb ik twee dingen in mijn hoofd. Het eerste is programma op het gebied van Remote Sensing en GIS. Op dat gebied zijn er vrijwel geen programmas voor de Mac. De paar die er zijn, zijn of heel slecht en beperkt, of belachelijk duur. Voor een gemiddelde gebruiker is het niet interessant. Het is meer bedoeld voor wetenschappers en onderzoekers. Ik heb altijd het gevoel dat het goed is om een stuk feedback te krijgen uit het veld. Als je het veld zelf bent, dan heb je veel meer inzicht, kan je veel meer en kom je ook los van bestaande programmas. Ik denk dat ik een competitive advantage heb, als ik dingen maak die in mijn eigen veld liggen. Ik kan dingen bedenken en toevoegen aan een programma, waar de gewone gebruiker niet aan zou denken, omdat die maar gewoon accepteert wat een programma doet. Dingen die een gewone programmeur niet zou doen, omdat hij niet weet dat de gebruiker er wel eens behoefte aan zou hebben. Een tweede programma is gebaseerd op het werken met tekstinterpretaties. Alsof je met een markerpen gaat markeren, daar vervolgens informatie aan koppelt, en dat voor een deel gaat automatiseren. Op die manier kun je tekst automatisch indelen, iets wat onderzoekers vaak nodig hebben. Antropologen en sociologen bijvoorbeeld, nemen vaak interviews af en hebben te maken met enorme stapels teksten, hele cassettes vol. Als jij deze interviews dagelijks zou doen, dan heb je voor je het weet zoveel materiaal, dat je door de bomen het bos niet meer ziet en niet meer goed in staat bent om alle informatie eruit te halen. Dat zou heel interessant zijn als je dat zou kunnen automatiseren. > Bij KeyStrokes is de relatie tussen ontwikkelaar en gebruiker heel direct. De software plannen die je net omschreef zijn meer gebaseerd op de beperkingen die je in je eigen vakgebied tegenkomt. Welke rol bevalt je beter, die van de acteur of de toneelspeler? In feite sta ik in beide gevallen dicht bij de gebruiker. Bij de ontwikkeling van software op mijn eigen vakgebied sta ik eigenlijk nog dichterbij de gebruiker dan bij KeyStrokes. Misschien kun je in dat geval wel zeggen dat ik toneelspeler, publiek en recensent tegelijk ben. Contact met anderen is onontbeerlijk om een goed product te maken. Zonder opbouwende kritiek kan je nooit het onderste uit de kan halen en zonder complimenten van andere gebruikers is het werk niet half zo leuk. Kortom, de rol van toneelspeler spreekt mij het meeste aan. > - - - > > www.niemconsult.nl > - - - > > > > © Gerard Voshaar 1998 |