|
Beginnend met een stage bij de elektromotorenfabriek
Smit-Slikkerveer, heb ik voor Smit een verzameling floating-point rekenroutines
geschreven, onderleiding van Dr. J. Giltay. Alle rekenkundige functies:
optellen, aftrekken, vermenigvuldigen, delen, worteltrekken, goniometrische
functies, exponentiele functies moesten vanaf de absolute basis worden
opgebouwd. De routines werden geschreven in de assembler van de IBM 360/20. Het aardige
van deze rekenset was, dat de waarde ‘oneindig’ en ‘onbepaald’ ook in het
domein en bereik waren opgenomen. Dit betekende dat berekeningen nooit konden
crashen vanwege een ‘underflow’ of ‘overflow’. Dat was nog al bijzonder in
die tijd. Zie Rules. Nadat deze routines gereed waren, heb ik er een laag overheen
geschreven. Een eigen programmeertaal: WimBlan; compleet met een compiler die
vertaalde naar assembler, gebruikmakend van de reeds geschreven
rekenroutines. De compiler bestond uit 2000 regels assembler code, geheel op
ponskaarten getypt. Het compileerwerk moest ik doen in de avonduren en soms
zelfs ’s-nachts, omdat de computer overdag voor administratieve toepassingen
nodig was. Hieronder is een voorbeeldprogramma in WimBlan begin doe IA = 1 – 100 IAK = IA * IA doe IB = 1 – IA IBK = IB*IB +
IAK doe IC = IA –
100 IBK =
IC*IC @ als )
naar NOGN als (
naar NEE NOGN tot NEE tot tot klaar De ‘doe-tot’-constructie is goed
herkenbaar. Niet zo duidelijk is de syntax en semantiek van het
‘als’-statement. Deze wordt namelijk ingeleid door het ‘@’-teken na een expressie.
Daarna betekent ‘als ( naar NOGN’: als de waarde van de
expressie kleiner dan nul is, spring dan naar het label NOGN. In de gebruikte tekenset
ontbrak het ‘<’, vandaar de ‘(’. Ook een volgend ‘als’-statement refereert aan
het laatst gebruikte ‘@’-teken. Al met al een nogal kromme constructie, maar we praten van 30
jaar terug. Basic kende ik nog niet. Fortran en Algol kende ik al wel. Maar
met mijn beperkte vaardigheden en de simpele omgeving kon ik die kwaliteit
niet halen. Veel hulpmiddelen voor de ontwikkeling waren er ook nog niet.
Een ponskaartenmachine met 13 toetsen, voor elk ponsgaatje een toets. Je
moest zelf maar onthouden welke de toetscombinatie bij een bepaald
letterteken hoorde. Het kleurrijkste hulpmiddel dat ik hierbij had was een
portable radio. Die stond op de computer en aan de storingen in de ontvangst
kon ik horen hoever hij was met compileren…… |
|
Voor het raadgevend ingenieursbureau Van Dorsser programmeerde
ik modellen voor wetenschappelijk rekenwerk, met name voor het bereken van verkeers-
en industrielawaai. Aangestuurd door de kennis van Gerard Meerdink werden diverse
versies gebouwd. -
HP-9810A versie. Een zeer beperkte versie in RPN -
HP-9825A versie. Een beperkte versie in HPL -
Fortran-versie op een HP-1000 Daarna heb ik voor DGMR Raadgevende Ingenieurs, nog steeds voor Gerard
Meerdink, de volgende weer geheel nieuwe versies gebouwd: -
HP-9835 versie in HP Technical Basic -
HP-85 versie (een gestripte versie van de 9835-versie) -
Op MS-DOS: een Modula II versie -
Op MS-DOS: een Turbo Pascal versie -
Op Windows: een Delphi-versie (als projectleider) De programmatuur is behoorlijk complex. Een 3 dimensionaal
model van geluidsstralen moet worden doorgerekend via de methode van
ray-tracing. De rekentijd waren zeer aanzienlijk, soms stonden een paar
computers dagenlang te rekenen. De laatste Delphi-versie heeft in Nederland een ruime
verspreiding onder de naam Geonoise. Wereldwijd wordt het verkocht door Brüel
& Kjaer onder de naam “Predictor
Type 7810”. Bij dgmr heb ik in de eerste jaren van haar bestaan,
meegeholpen een software-ontwikkelingsgroep op poten te zetten voor de
ontwikkeling van deze software. Onder leiding van Erwin Hartog van Banda is
deze groep nu flink gegroeid en levert een ruim scala aan wetenschappelijk
software op de vakgebieden van dgmr. Maar Geonoise is nog steeds een
belangrijke peiler. |
|
Bij het middelgrote softwarehuis Multihouse ben ik een syntax-gedreven
tekst-editor voor programmateksten aan het maken geweest. Met de ideeën en
het programmeerwerk van Marco Luijten is een eerste prototype ontstaan:
MultiEdit. De software engineering groep die ik toen onder mijn hoede had
functioneerde als klankbordgroep. De MultiEdit was een taal-editor met als kenmerken: -
multi-taal: de syntax van de te editten talen waren in aparte
beschrijvingsbestandjes opgenomen -
multi-platform (VAX/VMS,
MS-DOS en Unix) -
multi-bestand: in een character-based,
maar Windows-achtige interface; konden meerdere bestanden konden gelijktijdig
geopend en bewerkt worden. Het belangrijkste aspect van de editor was, dat de bewerking
op de taal-structuur waren gericht en niet de individuele letters, woorden en
regels! Wat betekende dit? In een normale tekst-editor ziet “if a>b then a := b” als een verzameling
letters. De bewerkingen zijn: letter toevoegen, aantal letters verwijderen,
etc.. MultiEdit kende deze bewerkingen niet. In MultiEdit werd de tekst gezien als: «if-deel» «boolean-expressie» «then-deel» «assignment» De bewerkingen in MultiEdit waren: statement toevoegen,
statement verwijderen, «statement» verbijzonderen tot «if-statement»,
«boolean-expressie» verbijzonderen tot “a>b”, etc. De scope (diepte) van de
afbeelding op het scherm was instelbaar. Diepte=2 zag er uit als:
De “:” stond dus voor:
alles wat dieper ligt dan dit niveau. Als je met de cursor “in” en statement
stapte, werd automatisch een niveau dieper ook afgebeeld. Zo had je altijd
goed overzicht, zonder teveel details en zonder de omliggende context, die op
dat moment niet relevant was. Ook de navigatie met
pijltjes-toetsen ging van statement naar statement (in plaats van regel naar
regel of letter naar letter). Het is met MultiEdit niet
goed afgelopen. Het ging financieel slecht met Multihouse en het project werd
beëindigd. We hebben nog een poging gedaan het concept te verkopen aan
Cullinet, maar dat ging niet door omdat ook hun kas was erg leeg was. Collega Johan Vromans en ik denken er nog af en toe met
weemoed aan terug. Misschien pakt één van ons dit project nog eens op, want
een dergelijke taal-editor is er nog steeds niet. |
|
Met de vraag van Jos van Oijen om hem te helpen met het
opzetten van Nevis: een informatiesysteem voor het beheer van commercieel
vastgoed begon een hectisch project. Het met een minimum aan middelen bouwen
van een groot informatiesysteem. Na een jaar van ontwerpen en keuze maken
voor de technische infrastructuur en volgde de bouw van het pakket. Alle mogelijke onderdelen van het vastgoedbeheer waren er in
voorzien: vastlegging van de gebouwen en verhuurbare eenheden, vastlegging
van de huurders en hun huurcontracten, verzenden van verhuurfacturen,
indexeren van huurprijzen, de volledige inkoop van producten en diensten voor
gebouwonderhoud, inclusief vastleggen van inkoopfacturen, voeren van een
volledige multi-currency boekhouding voor meerdere bedrijven (bij één klant
zelfs 150 bedrijven). Nevis was gebouwd in Delphi in een client-server structuur.
Het kon werken met meerdere databases, zoals Oracle, Sybase en Interbase. De
database had zo’n 120 tabellen, de programmatuur bestond uit zo’n 350
modulen. In samenwerking met KPMG, Getronics en Trendsoft, hebben een
tiental mensen aan het pakket gewerkt. Het pakket heeft bij diverse bedrijven
in test gestaan. Helaas is het om commerciële redenen nooit tot voldoende
wasdom gekomen om een succes te worden. Wel heb ik er een flinke kennis mee
opgebouwd over het beheer van vastgoed en de bijbehorende administratie. |
|
Als projectmanager tijdens de ontwerpfase heb ik gewerkt aan
een workflow-managementsysteem
voor begeleiding en vastlegging voor alle stappen in een rechtszaak in hoger
beroep: vanaf het instellen van het hoger beroep tot en met de uitspraak en
de uitvoering van het arrest. Het uiteindelijke ontwerp omvatte 650 processtappen, wat enorm
veel is voor een workflow-managmentsysteem. Het systeem is uiteindelijk wél
gebouwd, maar nooit in gebruik genomen. Kern van de problemen is mogelijk een
te grote procesomvang geweest om goed beheerst in te voeren. De infrastructuur was een Oracle-database voor de
gegevensopslag en Oracle-designer voor de functies en Staffware voor de
proces-design en proces-flow. Voor een goede koppeling tussen Oracle en
Staffware werd een aparte tussenlaag ontwerpen en gebouwd. Het project werd in ontwerpfase uitgevoerd in samenwerking met
mensen van : DCE Consultants, Bakkenist (nu Deloitte&Touche), Oracle,
CAP-Volmac, Getronics en CMG. |
|
www.waterland.net
[2002] |
|
Als projectmanager voor het ontwerp heb ik in 2002 bijgedragen
aan www.waterland.net,
dé web-portal van Rijkswaterstaat voor alles wat met water te maken heeft.
Voor een watersporter al ik, was dit een heel erg leuke klus. We hebben een ontwerp gemaakt dat het mogelijk maakt dat alle
meer dan 200 partners met eigen sites zelf links naar specifieke informatie
kunnen plaatsen in een zoekstructuur die door Waterland is bepaald en wordt
onderhouden. Individuele gebruikers kunnen hun eigen voorkeuren vastleggen,
interessante links creëren. Ook kunnen ze een abonnement nemen op een
nieuwsbrief, samengesteld uit de nieuwe links, toegesneden op de eigen
interesses. De doelgroep is zéér diverse: van scholieren tot professionals. De bouw is uitgevoerd door Atos-Origin met het content
management systeem Smartsite.
Het resultaat mag er beslist zijn. |