I/O VIVAT JAARGANG 26 NUMMER 4 Micro vs. Monolitische kernels ‘Hét debat’ tussen de grondleggers van Linux en Minix

Leven op het web Hebben wij desktopapplicaties nog wel nodig? VerCors project Programma’s met meerdere executie- threads, maar zonder fouten

Bad programming habbits Wie heeft ze niet?

Kingpin Het verhaal van een alleenheersen- de hacker En verder... Werking/beveiliging OV-chipkaart Software hergebruik bij agile ontwikkelomgevingen X86 versus ARM Van de voorzitter CλaSH Katern: Immorailty Advertentie ING Colofon

Jaargang 26, nummer 4, juni 2011 ISSN: 1389-0468

I/O Vivat is het populair-we- tenschappelijke tijdschrift van I/O VIVAT I.C.T.S.V. Inter-Actief, de stu- dievereniging voor Technische Informatica, Bedrijfsinformatie- technologie en Telematica van de Redactioneel Universiteit Twente. I/O Vivat ver- Microsoft liet vandaag nieuws vrij over de aankondiging van een nieuwe versie van schijnt vier maal per jaar en heeft Windows. Daarbij zette het uiteen wat haar visie was over “technology transitions” door de jaren heen: van logge desktopcomputers bedoeld voor tekstverwerking een oplage van 1800 exemplaren. zijn we overgestapt naar in-house client/serversystemen en verder naar internet en cloud-applicaties. Vandaag de dag zouden we in overstap zijn naar de “unified Hoofdredactie: ecosystems”-fase, waarin je op je smartphone, tablet en laptop dezelfde mogelijk- Rick van Galen heden en toegang hebt.

Redactie: Kenmerkend voor deze overgang is het grotere gebruik van zuinige maar krach- tige ARM-processors. Onderdeel van Microsofts aankondiging is een versie van Bas Stottelaar, David Huistra, Windows die draait op ARM-processoren – iets dat het steeds grotere belang van Herman Slatman, Michel Brinkhuis, de ARM-chips illustreert. Gaat ARM de x86-wereld veroveren? Lees er alles over Stijn van Winsen in het artikel op pagina 26.

Vormgeving: Een ander kenmerk van deze overgang is het loslaten van applicaties die voor een Niels Witte specifiek platform zijn geschreven. Niet meer afhankelijk van een editor voor Mac OS X, die ene bibliotheek onder Linux of deze ontwerptool onder Windows: de ap- plicaties die je benadert zijn geschreven in HTML en Javascript en draaien op een Gastschrijvers: webserver die je benadert. Zijn webapplicaties al zo volwassen dat je er helemaal Christiaan Baaij, Berend van den afhankelijk van kunt zijn? Op pagina 30 ondervind je mijn ervaringen hiermee. Brink, Marieke Huisman, Matthijs Kooijman, Rom Langerak, Jacco Als men kijkt naar ontwikkeling van deze applicaties zien we ook een verandering Roest, Wouter Spoelstra, in ontwikkelingsstijl: in plaats van grote projecten die met een watervalmodel worden uitgevoerd, worden er snel prototypes opgeleverd die daarna worden Symposium Commissie uitgebreid. Met deze modellen is het vaak belangrijk zo snel mogelijk code op te leveren, wat nog wel eens fouten en ergernissen kan opleveren. Een klein overzicht Voor vragen, suggesties en tips is volgt op 10. I/O Vivat bereikbaar via e-mail op [email protected], telefonisch op Dit is slechts een kleine greep uit de artikelen in deze extra dikke Vivat-editie. We 053-489 3756 of per post: hebben onder andere ook artikelen over de OV-chipkaart, parallelle verificatie, hardwarebeschrijvingstalen en een eerste blik op het symposium Immorality. Een Studievereniging Inter-Actief geschikte Vivat om mee te nemen op vakantie dus! Postbus 217 7500AE Enschede Tot volgend jaar,

De studievereniging wil de adverte- rende bedrijven bedanken voor de samenwerking.

Drukwerk: Drukkerij van den Bosch & Fikkert © 2011 I.C.T.S.V. Inter-Actief

Rick van Galen Hoofdredacteur Artikelen Kingpin Bad program- Micro vs. Mono- ming habbits litische kernels

Herman Slatman Stijn van Winsen Michel Brinkhuis

CARDING, CYBERSECURITY, PROGRAMMEREN, JAVA, PHP, MICROKERNEL, MONOLITISCHE- CREDITCARDS, MAX BUTLER, SLECHTE GEWOONTES KERNEL, LINUX, MINIX 8 HACKER 10 14

Columns & ENIAC X86 versus ARM Leven op het Onderwijsver- web nieuwing en Scandinavië Bas Stottelaar Rick van Galen Rom Langerak

X86, ARM, INTEL, SOC EEN FLINKE, LIJST MET, KEY- WORDS, GESCHEIDEN DOOR, 26 30 KOMMA 17

Nieuws Beursgang Linke- Meerderheid ka- “Windows Phone dIn mer voor voor- 7 in 2013 groter stel netneutra- dan Android” liteit

6 6 7

26.4 //Inhoud I/O VIVAT VerCors project Werking/bevei- Topicus: Soft- liging OV-chip- ware hergebruik. kaart Marieke Huisman David Huistra Wouter Spoelstra

PROGRAMMAVERIFICATIE, TRANS LINK SYSTEMS, MYFARE SOFTWARE, ONTWIKKELOMGE- SPECIFICATIE, CONCURRENCY, CLASSIC, HACKEN,INDELING, VING, HERGEBRUIK, TOPICUS 18 LOGICA, SEPARATION LOGIC 22 FRAUDEURS 25

Columns & ENIAC Van de voorzit- CλaSH ENIAC: Van de ter Voorzitter Christiaan Baaij & Matthijs Jacco Roest Kooijman Berend van den Brink

CλASH, HASKELL, CAES, HARD- WAREBESCHRIJVING 35 38 41

Symposium Immorality Immorality Interview: David En verder... Nieborg Symposium Commissie 36 Op bezoek bij Quinity 42 Op bezoek bij Shell IMMORALITY, SOCIAL ENGINEE- GAMEMAKERS, GAMES, FEITELIJ- RING, HACKING, PRIVACY KE ASPECTEN, GEWELD, MEDIA 47 Volgende keer in I/O Vivat 45 46

26.4 //Inhoud I/O VIVAT Nieuws I/O Vivat redactie Nieuws LINKEDIN, BEURS, NETNEUTRALITEIT, KPN, WHATSAPP, WINDOWS PHONE 7, ANDROID

Beursgang LinkedIn

De concurrentie tussen de social me- aandeel aan het einde van de dag met Analisten schatten de waarde van Lin- dia netwerken is groot op het moment. een verdubbelde waarde. kedIn op zon 3 miljard dollar, meldt Facebook is in de Verenigde Staten en Tweakers.net. in vele andere landen oppermachtig, en Al met al heeft het Amerikaanse be- ook in Nederland is men aan een flinke drijf, op de NYSE-beurs nu bekend als opmars bezig. Dit laatste gaat met name LNKD, een ruime 350 miljoen dollar Bron: http://www.tijd.be/nieuws/geld_-_ ten koste van Nederlands eigen sociale opgehaald met de beursgang. De pro- beleggen_markten/IPO-gekte_op_ netwerk Hyves. LinkedIn, het meer za- fielensite telt inmiddels meer dan 100 beurzen.9060152-3452.art?ckc=1 kelijk georiënteerde sociale netwerk, miljoen gebruikers wereldwijd. Dat is kondigde onlangs een beursgang aan. een indrukwekkend getal, vooral ge- Dit met het doel concurrent Facebook zien het feit dat de site in 2003 live ging voor te blijven. De beursgang komt niet en in de eerste maand 4500 leden wist geheel als een verrassing, omdat men in binnen te halen. Op dit moment verwel- januari dit jaar al een zogenaamde IPO komt LinkedIn ongeveer een miljoen (initial public offering) indiende bij de leden per maand. Amerikaanse beursautoriteit SEC.

Initieel maakte LinkedIn bekend onge- veer 7,9 miljoen aandelen uit te geven, tegen een waarde van 45 dollar. Op 19 mei dit jaar ging het bedrijf daadwerke- lijk naar de beurs. De aandelen maakten in de eerste twee uur na de beursgang een stijging door van zo’n 160%. Ge- durende de eerste dag daalde de koers ook weer wat, maar alsnog eindigde het

Meerderheid kamer voor voorstel netneutraliteit

Een meerderheid van de Tweede Ka- Volgens de Tweede Kamer mogen aan- bel- en smsverkeer het hoofd te bieden, mer heeft het voorstel van GroenLinks bieders echter bepaalde diensten die via maar niet door controle van het data- gesteund om de plannen voor heffingen mobiel internet lopen tariferen. Bruno verkeer. Minister Verhagen heeft eerder op mobiele diensten als voip en chatten Braakhuis, GroenLinks-lid, stelt voor gezegd dat hij vindt dat internetdien- te blokkeren. In de Telecomwet moet om in de Telecommunicatiewet op te sten beschikbaar moeten blijven en dat opgenomen worden dat netneutraliteit nemen dat telecomaanbieders dit niet hij zich kan voorstellen dat de consu- gegarandeerd moet worden. op basis van het soort gebruik van da- menten daarvoor meer moeten betalen. taverkeer mogen differentiëren, en KPN gaf onlangs aan van plan te zijn daarmee netneutraliteit te garanderen. klanten extra te laten betalen voor dien- Aanbieders mogen hierdoor geen dien- sten als de chat-applicatie WhatsApp. sten blokkeren of voorrang geven op het Dit zou gedaan worden met behulp van netwerk. deep packet inspection. Na protesten trok het bedrijf uiteindelijk de plannen Volgens Braakhuis moeten telecombe- in, maar maakte mobiel internet voor drijven zelf met nieuwe verdienmodel- haar klanten wel duurder. len komen om de dalende inkomsten op 26.4 //6 I/O VIVAT “Windows Phone 7 in 2013 groter dan Android”

Het Amerikaanse onderzoeksbedrijf produceren. Daarnaast heeft het nauwe een aantal partijen die daar heel anders Pyramid Research verwacht dat in 2013 banden met telecomoperators wereld- over denken en dit ook kunnen onder- Windows Phone 7 groter zal zijn dan wijd, die uiteindelijk besluiten wat ze bouwen. Microsoft heeft in ieder geval elk ander mobiel besturingssysteem. gaan verkopen. laten zien dat Windows Phone 7 een Pyramid verwacht een flinke groei van flinke verbetering is ten opzichte van WP7 doordat het Finse bedrijf Nokia Begin dit jaar heeft IDC Nokia aange- Windows Mobile 6. haar nieuwe generatie toestellen gaat wezen als de voornaamste leverancier uitrusten met het mobiele besturings- van mobiele telefoons in het vierde Bron: http://computerworld.nl/ systeem. kwartaal van 2010. Ondanks dat de po- article/12884/waarom-windows-phone-7- pulariteit van Symbian sterk aan het af- het-gaat-maken.html Het is niet alleen WP7 dat zal groeien. nemen is, wist men het marktaandeel in Ook Google Android zal blijven groei- 2010 iets te vergroten door 453 miljoen en, terwijl BlackBerry OS van RIM en telefoons te verkopen, tegenover 432 Apple iOS juist marktaandeel gaan ver- miljoen in het jaar daarvoor. liezen. Windows Phone 7 wordt niet door ie- Nokia heeft onder de consument nog dere partij als het meest populaire steeds een sterke naam omdat het in platform geprezen. Het zal daarom het verleden heeft laten zien kwalita- menig persoon verbazen dat Pyramid tieve en goedkope telefoons te kunnen Research dit voorspelt. Toch zijn er

26.4 //7 I/O VIVAT Herman Slatman Kingpin Redacteur I/O Vivat CARDING, CYBERSECURITY, CRE- DITCARDS, MAX BUTLER, HACKER

Het verhaal van een alleenheersende hacker

evin Poulsen weet als geen an- inruilde voor een zwart exemplaar. Hij cybercrime-afdeling van de FBI waar der, als ex-hacker en ex-gedeti- weet als geen ander de lezer te boeien hij gedreven aan het werk ging om de neerde, hoe het is om te leven als als hij ingaat op de meer technische fa- samenleving te beschermen tegen be- hacker die in aanraking is geko- cetten van het hacken en de technieken roepscriminelen die het gemunt hadden Kmen met justitie. Sinds zijn ge- die Max tijdens zijn notoire carrière ge- op computersystemen. vangenisstraf heeft hij zijn leven bruikte. echter gebeterd en tegenwoordig Computercriminaliteit was in de tijd is hij hoofdredacteur voor Wired News. De jonge Butler vóór Butler nog niet echt aan de orde. Hij heeft zich daar onderscheiden als De eerste mensen die zich daadwerke- één van de beste onderzoeksverslagge- De jongen die geboren werd als Max lijk ‘hacker’ noemden waren studen- vers op het gebied van cybercrime en Butler was eigenlijk een vrij normale ten en onderzoekers aan het MIT in privacy. Met het schrijven van Kingpin tiener. Hij groeide op met computers in Amerika. Toen in de vroege jaren 80 brengt hij voor het eerst zijn expertise de computerzaak van zijn vader en had van de vorige eeuw steeds meer men- in boekvorm naar buiten. In Kingpin zich het programmeren in BASIC eigen sen toegang kregen tot een eigen com- schrijft Poulsen over het waargebeurde gemaakt op zijn achtste. Maar toen zijn puter, met apparaten als de TRS-80 en de Commodore 64, veranderde dit. De eerste scriptkiddies begonnen het AR- PANET, de voorloper van het huidige Het waargebeurde verhaal internet, af te tasten en gingen daarbij regelmatig over de schreef. In de dag- van Max ‘Vision’ Butler bladen werden ze hackers genoemd, en daarmee kreeg het woord voor het eerst verhaal van Max ‘Vision’ Butler, een ouders scheidden brak er iets, en nadien een kwade betekenis. Midden jaren ’90 white hat hacker die zijn witte hoed schommelde zijn karakter tussen rustig nam het thuisgebruik van computers en en extreem geschift. Hij kwam al vroeg de toegang tot internet enorm toe. Re- in zijn leven voor het eerst in aanraking creatieve hackers waren er in overvloed, met de sterke arm der wet, toen hij in totdat er enkele grote namen in de hac- zijn middelbare school inbrak om rot- kerswereld, zoals Kevin Mitnick, wer- zooi te trappen. Zijn eerste misdaad was den gearresteerd. Opeens was het voor een kleintje, maar de impulsiviteit ervan recreatieve hackers niet slim meer om te zat inmiddels diep geworteld in zijn ka- blijven hacken; het risico om gepakt te rakter en die impulsiviteit zou hem zijn worden werd namelijk steeds groter en leven lang blijven achtervolgen. het plezier dat men in het hacken had woog niet op tegen dit vergrote risico. Nadat hij voor enkele andere vergrij- Sommige hackers gingen steeds dieper pen een aantal jaren in de gevangenis ondergronds en werden vaak echte cri- had doorgebracht, trok hij in bij enkele minelen. Het grote geld was nu te halen oud klasgenoten en brak er voor hem bij het beveiligen van computersyste- een nieuw leven aan. Daar hoorde ook men en dat was wat veel andere hackers een nieuwe naam bij. Vanaf dat mo- gingen doen: ze ruilden hun criminele ment noemde hij zich Max Vision, naar verleden in voor een rechtvaardige toe- een digitaal alter ego van zichzelf. Bij komst. zijn nieuwe leven hoorde ook nieuw Figuur 1: Kingpin cover werk; hij werd geïntroduceerd bij de 26.4 //8 I/O VIVAT Shadowcrew dumps op Shadowcrew. Het handeltje Conclusie in dumps liep lekker, totdat bleek dat de Max vond van zichzelf dat hij een white- oprichter van het forum door de US Se- Kingpin, Poulsens eerste boek, is een hat-hacker was, tot op het moment dat cret Service was opgepakt en gedwon- zeer informatief en tegelijk vermakelijk de FBI voor een nieuw onderzoek van gen werd mee te werken aan Operation boek. Poulsen schrijft vlot en het boek hem vroeg om een goede vriend en col- Firewall. Tijdens Operation Firewall leest goed weg. Het beschrijft niet alleen lega te verraden. Hij moest een gesprek werd het forum veranderd in een ho- het verhaal van Max Butler, de white met hem aanknopen waarin zijn vriend neypot om de andere leden te kunnen hat hacker die zijn vaardigheden besluit een bekentenis zou afleggenen dit op- arresteren. Max had het naderende on- toe te passen voor minder legale zaken, nemen om het later door te spelen aan heil al bespeurd en hield zich koest tij- maar gaat daarnaast ook dieper in op de FBI. Max tekent het contract voor de dens het oprollen van het forum. technische details die bij verschillende zaak, maar houdt er een rotgevoel aan hacktechnieken om de hoek komen over. De volgende dag besluit hij zijn Iceman et. al. kijken. Ook komt er uitvoerig achter- vriend in een café te ontmoeten, waar grondinformatie aan bod omtrent de hij hem een briefje geeft. Max had be- Na de ondergang van Shadowcrew ble- ontwikkelingen in computerveiligheid sloten niet mee te werken aan het on- ven de duizenden leden gedesillusio- die speelden tijdens het leven van Max derzoek en zijn vriend te waarschuwen. neerd en ongeorganiseerd achter. Hun Butler. Kortom, een interessant en ver- Zodra zijn begeleiders bij de FBI hier handeltje leek naar de maan, maar al makelijk boek voor mensen die geïnte- van horen, ontslaan ze hem als infor- gauw ontstonden er enkele nieuwe resseerd zijn in cybersecurity. mant en Max werd niet lang daarna op- startups waar men hun criminele acti- nieuw ingerekend. viteiten kon voortzetten. Max had zijn nieuwe plan ook al klaarliggen: hij zou In 2001 werd het voornamelijk Russi- zelf een forum beginnen waar hij on- sche forum CarderPlanet geopend. Op gestoord zijn werk zou kunnen doen. CarderPlanet konden criminelen han- Midden 2005 werd Cardersmarket.com delen in onder andere creditcard gege- geboren met aan het hoofd Iceman, vens. Al gauw werd het succes van deze Max’ nieuwste troef. Iceman was zijn site duidelijk en het duurde niet lang of nieuwe alter ego dat het forum zou uit- iemand zette een forum op dat meer ge- baten. Onder andere schuilnamen kon oriënteerd was op Europa en Amerika: hij de dumps van creditcards verkopen. Shadowcrew. Op Shadowcrew werden Op deze manier werden zijn illegale naast duizenden creditcard dumps ook praktijken niet gelinkt aan het feit dat identiteitsbewijzen verhandeld en het hij de oprichter was van een forum, dat was al snel net zo’n succes als Carder- in principe legaal is. Dit zorgde ervoor Planet. Ook Max had na zijn zoveelste dat Max tijdens de jaren na de oprich- vrijlating het forum ontdekt. Samen ting van zijn forum ongestoord kon Bronnen met een nieuwe partner dook hij in de doorgaan met het verkopen van dumps. Wired http://www.wired.com/ illegale praktijk van het carding: het Tijdens zijn gehele notoire loopbaan threatlevel/2011/02/kingpin-excerpt/ misbruiken van creditcards en andere stal Max de gegevens van meer dan een betaalkaarten. Max hackte betaalsyste- miljoen creditcards, resulterend in een Kingpin, men van restaurants en andere bedrij- verlies van vele miljoenen dollars bij http://www.kingpin.cc ven, haalde de database met creditcard- verschillende banken. Kingpin (2011) gegevens leeg en leverde de dumps af New York: Crown Publishing Group aan zijn partner. Deze verhandelde de Poulsen, K.L. 26.4 //9 I/O VIVAT Stijn van Winsen Bad program- Redacteur I/O Vivat PROGRAMMEREN, JAVA, PHP, ming habbits SLECHTE GEWOONTES

Wie heeft ze niet?

ie heeft het nog niet code moet bekijken. Een plan van te vo- Eenvoud boven duidelijkheid meegemaakt? Een grote ren kan goed helpen om gestructureerd klasse vol met ongedo- te programmeren. Een voorbeeld is het Veel mensen verkiezen compactere code cumenteerde code van je van te voren in comments opschrijven boven duidelijkheid. Goede voorbeel- W practicumpartner, en jij wat je gaat programmeren. Je weet van den hiervan zijn het gebruik van ondui- nu mag gaan uitzoeken te voren al hoe het programma er uit delijke variabelen als ‘foo’, ‘AL’ voor een hoe het werkt. Veel men- komt te zien. De precieze implementa- ArrayList of gewoon het alfabet afgaan. sen hebben het: slechte programmeer- tie is dan nog niet belangrijk, maar je Het is soms lastig om de shift knopt in- gewoontes. Wat zijn ze, en wat kan je hebt in ieder geval een idee over hoe je gedrukt te houden voor een underscore ertegen doen? Het kan geen kwaad het programma gaat werken. Comments of Camelcase, maar het kan zoveel dui- een keer door te lezen en te zien dat jij zijn makkelijk te veranderen, dus een delijker gemaakt worden. Een stijl die dit natuurlijk niet doet. wijziging in je aanpak resulteert alleen misschien kan helpen bij het benoemen maar in een wijziging van je comment. van variabelen is een naam te laten be- Je plant niet voordat je gaat coden Verwacht ook dat je veel comments zal ginnen met een letter die staat voor het veranderen, verwijderen of toevoegen. type variabele. Bijvoorbeeld nFoo voor Gewoon beginnen met coden werkt Zie het als een boodschappenlijstje; het een integer en bFoo voor een boolean. maar voor weinig mensen. Voor je ook houdt je op de goede weg als je bood- Ook het gebruik van accolades bij een if-else kan verwarrend zijn. Zie figuur Een plan kan goed helpen ge- 1. Natuurlijk snapt iedereen na even kijken dat “Zo willen we het hebben” altijd geprint wordt. Maar moeten we structureerd te programmeren dat zelf uitvogelen, of is het makkelijker om gewoon wat accolades te gebruiken? maar begint met coden moet je een schappen gaat doen, maar het is geen Natuurlijk is zo min mogelijk regels goed plan van aanpak hebben. Het helpt definitieve lijst van producten die je uit- gebruiken goed om je code beknopt te je niet alleen om op spoor te blijven, eindelijk mee naar huis zal nemen. houden, maar dit mag niet ten koste maar zorgt er ook voor dat je later niet gaan van de duidelijkheid van je pro- in de war raakt van je eigen verspreide gramma. code. Laat staan iemand anders die je Een standaard is voor mietjes public void c(int v){ if (v>3) Iedereen wil anders zijn, een program- if (v<8) meerstijl hebben die jou van anderen System.out.println(“39”); staan met een reden; zo kan iedereen else if(v<3) elkaar begrijpen als je dingen opschrijft. System.out.println(“v<3”); Kies dus een standaard en houdt je System.out.println(“Zo willen we het hebben”); hieraan. Het volgen van een standaard if (v==3) zorgt ervoor dat mensen begrijpen wat System.out.println(“hier hoor je niet te omen”); je bedoelt, en niet dat je een saai per- } soon bent zonder eigen stijl. Daarnaast Figuur 1: Voorbeeld van onduidelijke code door het niet gebruiken van accolades. zorg je ervoor dat je over een paar jaar 26.4 //10 I/O VIVAT je oude code ook nog kunt teruglezen Het nieuwe programmeren bruikbaar zijn of dat je ondertussen en niet verdwaalt in je oude program- nieuwe ideeën hebt om toe te passen. meerstijl. Er zijn genoeg standaarden, Het is altijd leuk een nieuw trucje te ge- Met een andere bril naar een project bijvoorbeeld de PEAR[1] standaard. bruiken waar je laatst over gelezen hebt. kijken kan geen kwaad. Houd het pro- Maar probeer geen complexe oplossin- grammeren leuk voor jezelf, en zorg Patterns gen te maken waar een simpele ook al voor genoeg uitdaging en afwisseling. werkt. Het kan er ook voor zorgen dat Structuur is belangrijk als je een pro- iemand anders je code niet meer kan Eén voor allen, allen voor één gramma schrijft. Patterns als het MVC lezen, omdat het te moeilijk is om te be- kunnen helpen ervoor te zorgen dat je grijpen. De meeste projecten kan je gewoon weet waar componenten van je pro- niet in je eentje doen. Probeer niet alles gramma moeten komen. Maar niet al- Wat je echter nooit moet doen, is stop- voor jezelf te houden maar spreek met leen standaard patronen zijn handig, pen met leren. Als je stopt met het leren je teamgenoten af wie wat doet. In een ook de manier waarop je dingen aan- van nieuwe manieren van programme- team moet je gewoon een plan hebben van hoe alles eruit komt te zien, anders wordt het één grote warboel. Al eerder Zelfs bij simpele stukjes code gegeven tips zorgen er ook nog eens voor dat je snapt wat de ander schrijft. Ook kunnen je teamgenoten je voor- kan het enorm helpen te do- zien van waardevol commentaar en an- dersom. Overleg dus goed over wie wat cumenteren doet. Een goed project kan nou eenmaal niet van één persoon afkomen. pakt kan via vaste patronen. Als je dit ren blijf je hangen in die tijd. De tech- vaak genoeg doet, zorg je ervoor dat nologie gaat steeds weer vooruit en het Comments je zulk soort beslissingen automatisch is belangrijk dit te blijven volgen. De gaat maken. Je programma is een stuk vooruitgang is er niet alleen maar om Één van de ergste slechte gewoontes is gestructureerder en je kan makkelijker iets mooier te maken, maar ook om het niet documenteren van code. Het later dingen terugvinden en veranderen dingen efficiënter en makkelijker te ma- is zo simpel om te doen, maar toch zijn als het nodig is. Ook helpt het om bin- ken. Ga dus geen complexe oplossingen er veel mensen die het niet doen. Het nen een klasse standaard posities aan te gebruiken van anderen, maar kijk zeker maakt het voor iemand anders heel houden voor methoden en variabelen. wat er mogelijk is om toe te passen in je lastig om jouw code door te lezen, laat Een standaardvolgorde is bijvoorbeeld: programma, waar dit het effectiever of staan het ergens te verbeteren. Zelfs bij variabelen, constructor en methoden. duidelijker kan maken. simpele stukjes code kan het enorm hel- pen te documenteren. Al kost het maar Krijg je door dat je bepaalde stukken Houd het leuk 3 seconden om een regeltje code te coden vaker aan het typen ben, maak er snappen, in een project met 100 regels dan een aparte methode van als dit kan. Het vinden van uitdagingen in een pro- code is dat al 5 minuten. En dat is als de Mocht je toch iets fout hebben gedaan, ject is wat het programmeren zo leuk regels simpel te begrijpen zijn! Vooral dan kan je gewoon één methode wijzi- maakt. Bij elk project dat je doet, moet slechte comments zijn een ramp. Pro- gen in plaats van al deze stukken code er iets zijn dat je uitdaagt. Zo houdt je grammeurs die midden in een zin van op verschillende plekken. Bespaart je het programmeren leuk en leerzaam. Nederlands naar Engels overgaan of 10 veel zoektijd. Vraag jezelf voor je begint aan een pro- regels aan comments nodig hebben om ject eens af of er nieuwe technologieën een methode nog niet goed uit te leg- 26.4 //11 I/O VIVAT gen, maken het alleen maar erger. Na- of het naar wens is van de doelgroep en Een ander belangrijk punt van goed tuurlijk moet je ook niet alles becom- alvast problemen uit je programma ha- werken is van te voren plannen. Doe mentariëren. Een handige vuistregel is, len voordat je het programma af hebt. dit echter niet te veel. Er komt een punt als je een paar seconde moet nadenken Dit komt het uiteindelijke programma waarop je meer aan het gokken en raden over je hoe je een probleem moet oplos- alleen maar ten goede en je hebt meteen bent over hoe het eruit komt te zien dan sen, is het handig een kleine uitleg toe feedback op je werk. dat je het daadwerkelijk plant. Het ont- te voegen voor iemand anders. Dus doe werpen moet dus samengaan met het jezelf en anderen een plezier en lever Hoe goed je ook bent in programmeren, implementeren om elkaar van feedback commentaar bij je code. geen enkel programma kan perfect zijn. te kunnen voorzien. Te veel van te vo- Hier moet je dus ook niet naar streven. ren plannen, en je ontwerp raakt te veel Hoe moet het dan Requirements veranderen met de tijd van de werkelijkheid. Te veel coden, en en dus moet ook je programma mee je programma wordt te onoverzichtelijk Een belangrijk punt is dat je goed de veranderen. Als je programma af is kan en ongestructureerd. Zoek de gulden requirements van het programma kent. je verwachten dat je het nog vaak zult middenweg die voor jezelf goed werkt. Anders verspil je veel tijd aan een stuk moeten aanpassen en verbeteren. Maar code dat helemaal niet nodig is. Maak maak het programma natuurlijk wel zo Opslaan daarnaast al snel een eenvoudig sys- goed mogelijk. teem. Zo kan je met dat systeem kijken Één van de belangrijkste tips tot nu toe: zorg dat je je werk vaak opslaat en back- ups maakt van grote projecten. Het overkomt de beste programmeurs dat de computer per ongeluk uitvalt en al je werk weg is en je weer opnieuw moet beginnen. Opslaan is heel gemakkelijk en bespaart een hoop werk als er toeval- lig iets mis gaat.

Dit geldt niet voor jou

Maar natuurlijk gelden al deze gewoon- tes niet voor jou en heb je niks aan deze tips. Je programmeert al zo lang dat jij in grote lijnen goed gedocumenteerd werkt. Maar houd er rekening mee dat slechte code vaak een ophoping is van meerdere kleine afkortingen en conces- sies, die door luiheid of haast even zijn overgeslagen. Kijk dus de volgende keer dat je aan je programma werkt even een keer van een afstandje naar je code, mis- schien valt je iets op.

Bronnen [1] PEAR coding standard (2009) http://pear.php.net/manual/en/ Figuur 2: Hoe goede code tot stand komt. standards.php 26.4 //12 I/O VIVAT Advertentie Technolution Michel Brinkhuis Micro vs. mono- Redacteur I/O Vivat MICROKERNEL, MONOLITISCHE- litische kernels KERNEL, LINUX, MINIX

Hét debat tussen de grondleggers van Linux en Minix

e basis van elk besturingssys- Het gaat hierbij om het management gebruik van een microkernel. Doordat teem is de kernel. Een kernel van interruptions, beheren van fysiek bij een microkernel minder taken door kan op meerdere manieren geheugen, beheren van virtueel geheu- de kernel worden afgehandeld, maar worden ‘vormgegeven’. Iets gen en ‘scheduling’. Dat laatste is het plaatsvinden in de ‘user space’ zal de Dwat zo’n twintig jaar geleden beheren van de processen, waarbij de source code van een microkernel in the- leidde tot een online discus- kernel bepaalt wanneer welke taak uit- orie uit minder regels code bestaan. Dat sie tussen de grondlegger gevoerd mag worden. komt de stabiliteit ten goede, zo stellen van Linux: Linus Torvalds en de maker voorstanders. Immers, alle fouten ha- van Minix Andrew: Tanenbaum. Een Verschil microkernels en monolitische len uit een klein stuk code van een paar discussie die wereldwijd bekend werd kernels duizend regels is nog wel te doen. Maar in de ICT-wereld als ‘The Tanenbaum- als die broncode tien- of honderddui- Torvalds debate’, en soms zelfs nog weer Een microkernel is, zoals de naam al zenden regels code telt, dan wordt zoiets even oplaait omdat één van de betrok- doet vermoeden, een kernel met een een heel wat lastigere opgave. kenen erover naar buiten treedt. beperkte functionaliteit. Dit in tegenste- ling tot de monolitische kernel, waarbij Bij een microkernel is het risico dat Kort samengevat: in 1992 plaatste Ta- de kernel meer verworven is met ove- fouten optreden in de user space dan nenbaum in de comp.os.Minix-nieuws- rige delen van het systeem. Beperkt in wel groter, omdat deze als logisch ge- groep een post met de titel ‘Linux is de zin dat zoveel mogelijk zaken als volg uit meer regels code zal bestaan obsolete’. In de post pleitte Tanenbaum apart proces zullen worden uitgevoerd dan bij een monolitische kernel. Echter, voor het gebruik van een microkernel binnen het systeem. Wanneer we kijken de user space bestaat uit vaak uit een gebaseerd systeem in plaats van de door naar bijvoorbeeld drivers, dan zijn dri- aantal lagen, waarbinnen afzonderlijke Linus in Linux gebruikte monolitische vers in een systeem dat op een micro- processen draaien. Een fout in één van kernel. Al snel volgde een discussie tus- kernel draait aparte processen. Bij een de processen heeft geen invloed op de sen Torvalds en Tanenbaum. Volgens monolitische kernel vormen de drivers kernel, die gewoon zal blijven draaien. De impact van een fout is dus in de meeste gevallen minder groot bij een microkernel, in tegenstelling tot bij een Microkernels zijn nog bij monolitische kernel. lange na niet ‘mainstream’ Uit statistische onderzoeken is gebleken dat per 1000 regels code er zo’n vijf tot sommigen een flamewar, maar ook aan een geheel met de kernel. Je zult al wel tien errors optreden. Bij code voor dri- inhoudelijke argumenten ontbrak het vermoeden dat, wat drivers betreft, een vers ligt dit aantal iets hoger, het gaat niet. stabieler systeem haalbaar is met een hier per 1000 regels code om tussen de microkernel. Immers, wanneer een dri- 35 en 70 errors. Vanuit dit opzicht beke- Kernels ver zou crashen is dat slechts een enkel ken is het dus zeker zinvol om zo min proces dat crasht. Anders is het bij een mogelijk code te hebben in het meest Voordat we de discussie kunnen bekij- monolitische kernel, waarbij een driver essentiële onderdeel van het systeem. ken, is het handig als duidelijk is wat niet als zijnde apart proces kan crashen, een microkernel anders maakt ten op- maar in zijn crash andere systeemon- De stabiliteit van het systeem is één van zichte van een monolitische kernel. Al- derdelen ook kan mee laten crashen. de punten waar Andrew Tanenbaum in lereerst, een kernel. De kernel heeft de zijn discussie met Torval Linus op in- verantwoordelijkheid over een aantal Velen zien tevens de grootte van de gaat. Tanenbaum is tot op dit moment taken binnen het besturingssysteem. code als een van de voordelen van het nog steeds bezig met onderzoek naar de 26.4 //14 I/O VIVAT microkernel, en werkt daarbij binnen Nog dezelfde dag komt er in de nieuws- itself should be easily portable to new de Vrije Universiteit in Amsterdam, aan groep een reactie van Torvalds. ‘True, hardware platforms.” Torvalds geeft Ta- een ‘self healing’ systeem. Hierbij kan Linux is monolitic, and I agree that nenbaum gelijk op het punt dat Minix een driver worden herstart, zonder dat microkernels are nicer.’ Volgens Tor- portable is. ‘But you can rewrite that een gebruiker het zelfs hoeft te merken. valds is het echter zo dat de discussie as “doesn’t use any features”, and still Doel van Tanenbaum om is middels niet zozeer uitsluitend uitsluitsel geeft be right.’ Volgens Torvalds is de Linux- deze technologie, welke verderop in dit over hoe goed een kernel is. Torvalds kernel maar een klein onderdeel van artikel in nader detail zal worden be- verwijst daarbij naar de Minix kernel, een heel system. ‘And all of that source sproken, een besturingssysteem te ma- die alleen multithreading ondersteund is portable.’

Echter, na een paar ‘post-wisselingen’ tussen Torvalds en Tanenbaum schrijft Het is zinvol om zo min Torvalds: ‘I over-reacted.’, en geeft hij aan een wat minder ‘bittere’ brief te stu- mogelijk code te hebben in ren naar Tanenbaum.

Daarmee leek de discussie op dat mo- de kernel ment voorbij, maar dat de postwisse- ken welke jaren achter elkaar zonder te wanneer er eerst hacks zijn toegepast. ling in de nieuwsgroepen één van de crashen kan draaien. Tanenbaum ziet op dat moment het nut bekendste discussies uit de OS-historie niet in van een multithreaded bestands- is geworden, bleek wel uit de jaren die De discussie systeem. “When there is only one job erop volgden. Zo werd er onder meer active, the normal case on a small PC, it een boek over de discussie gepubli- Op woensdagmiddag 29 januari 1992 buys you nothing and adds complexity ceerd, en wakkerde Torvalds in 2006 plaatst Andrew Tanenbaum in de to the code. (…) It is only a win when de discussie weer aan met een post op nieuwsgroep comp.os.Minix de posting there are multiple processes actually het Real World Tech-forum. De dis- met als titel ‘Linux is obsolete’, waarin doing real disk I/O.” cussie is wereldwijd zo bekend dat er hij Linux op twee fronten aanvalt. Al- zelfs een Wikipedia-pagina aan gewijd lereerst de discussie microkernel vs. Ook wint Linux het op het punt van is genaamd ‘The Tanenbaum-Torvalds Monolitische kernels. Tanenbaum stelt beschikbaarheid en ook is Linux meer Debate’`. dat het enige argument vóór monoliti- portable dan Minix, vindt Torvalds. sche kernels snelheid is, en dat er in dat Weliswaar de kernel is niet portable, Tussenvorm jaar genoeg bewijs is dat microkernels maar vanwege de open source-licentie net zo snel kunnen zijn als systemen en het feit dat de code vrijelijk beschik- De discussie tussen Torvalds en Tanen- gebaseerd op een monolitische kernel. baar is, is iedereen vrij de code aan te baum gaat over monolitische kernels ‘Microkernels have won.’, zo luidt de passen om Linux portable te maken. versus microkernels. De ‘kernelmarkt’ kort maar krachtige conclusie van Ta- Volgens Linus kunnen programma’s is wel wat groter dan alleen deze twee nenbaum. ‘Linux is a monolitic style veel makkelijker worden geport naar varianten. Linux mag dan wel gebruik- system. That is a giant step back in to Linux dan naar Minix. maken van een monolitische kernel, 1970s.’ Daarnaast gaat Tanenbaum in op bij Windows en Mac OS ligt dit an- de portabiliteit van Minix. Portabiliteit Tanenbaum vindt het een verkeerde ders. Beiden maken gebruik van een is hoe makkelijk de software is aan te keuze dat Linux wordt gemaakt om te hybride kernel, een kernel waarbij zo- passen zodat het ook op een ander type kunnen draaien op maar één type hard- wel elementen van een monolitische processor draait. ware, namelijk die van Intel. “An OS kernel als van microkernels te herken- 26.4 //15 I/O VIVAT nen zijn. Windows is ‘hybride’ sinds de geheel in het geding kan komen. Boven debate’ nogmaals zal opwaaien, door komst van Windows NT. Microsofts’ de drivers-laag draait een laag met ser- een publicatie of uitspraak van een van oorspronkelijke doel was Windows NT vices. Hierin zitten een file-server (het de kernelvisionairen. op een volwaardige microkernel te ba- deel van het besturingssysteem dat het seren. Maar doordat de prestaties die wegschrijven en lezen van bestanden hiermee behaald konden waren niet mogelijk maakt) en de zogenoemde voldeden aan de eisen van het bedrijf, is ‘reincarnation server’. Deze laatste zorgt besloten om meer systeemservices van voor de zelfhelende krachten van het de user space naar de kernel te verplaat- systeem. Deze software roept perio- sen. Hierbij gaat het onder meer om de diek alle lopende processen aan. Komt apparaatstuurprogramma’s. Windows is er geen reactie, dan wordt het proces vandaag de dag object georiënteerd van vervangen door een nieuwe instantie opzet. In dit ontwerp zijn processen, van dat proces. Op deze manier zal een drivers, threads etc. weergegeven als ob- proces niet lang kunnen ‘vastlopen’, en jecten, welke allemaal beheerd worden hoeft het de gebruiker niet eens op te door de ‘object manager’. vallen dat een deel van het systeem is vastgelopen. Dat heeft ook zo z’n voor- Mac OS X maakt gebruik van de Mach- delen vanuit usability-perspectief be- kernel, een microkernel ontwikkeld keken. Stel je eens een omgeving voor door de Carnegie Mellon universiteit. waarin niets meer vast lijkt te lopen! Ook hier zijn vanwege de prestaties dri- vers teruggebracht in de kernel, en is Bovenop deze service-laag is de appli- dus ook geen sprake meer van een vol- catie-laag te vinden. Dit is de bovenste waardige microkernel. laag, en hierin draaien dan ook alle pro- gramma’s. Programma’s hebben geen Uit onderzoek aan de TU Wenen is directe toegang tot de kernel of de hard- gebleken dat prestaties tegenwoordig ware. Datzelfde geldt feitelijk voor alle geen argument meer hoeven te zijn componenten van het systeem. Toegang om te kiezen voor iets anders een een tot de kernel wordt verkregen via com- microkernel. Dat brengt ons ook in de municatie met de onderliggende laag, gelegenheid iets verder te kijken. Wan- via een ‘top-down flow’ naar de kernel. neer de microkernel absoluut niet meer ‘bloated’ (d.w.z. elementen bevat die Conclusie ook in de user space zouden kunnen draaien) zou de microkernel zelfs in de Een discussie die zo’n twintig jaar ge- processor geïntegreerd kunnen worden. leden werd gevoerd, is eigenlijk tot op Dat maakt nog betere prestaties, en de vandaag de dag nog niet beslist. Waar beste optimalisatie voor elke processor zowel Apple met Mac OS X als Micro- mogelijk voor elke processor, zo stelt soft met Windows wel hebben gekeken onderzoeker Benjamin Roch van de TU naar microkernels, maar daar omwille Wenen. van prestatieoverwegingen toch niet volledig voor hebben gekozen, is Linux Een ‘self healing’ kernel tot op heden volledig gebaseerd op een monolitische kernel. Microkernels zijn Andrew Tanenbaum doet onderzoek dus nog bij lange na niet ‘mainstream’ Bronnen naar het bouwen van betrouwbare en te noemen, maar dat wil niet zeggen dat Monolithic kernel vs. Microkernel veilige besturingssystemen, en naar het concept door de grote OS-bouwers http://www.vmars.tuwien.ac.at/ zijn idee zijn microkernels een goed helemaal aan de kant geschoven is. Een courses/akti12/journal/04ss/ gereedschap om dat doel te kunnen ge- aantal jaar geleden startte Microsoft article_04ss_Roch. bruiken. Het besturingssysteem Minix namelijk het onderzoeksproject Singu- The H-Open: Andrew Tanenbaum’s is inmiddels aangekomen bij versie 3, larity. Een in C++ geschreven bestu- Minix 3 Minix3. Het besturingssysteem bestaat ringssysteem welke gebruik maakt van http://www.h-online.com/open/ logischerwijs ook uit een microkernel, een zuivere microkernel. Vooralsnog is features/Andrew-Tanenbaum-s- waarbij zo’n beetje alle functionaliteit het gebleven bij een onderzoeksproject, Minix-3-746388.html draait in de ‘user space’. Het besturings- maar wie weet zal de opgedane kennis Tanenbaum-Torvalds Debate: Part II systeem is te beschouwen als zijnde een ooit ingezet worden om de kernel van http://www.cs.vu.nl/~ast/reliable-os/ systeem dat bestaat uit meerdere lagen. Windows rigoureus op de schop te ne- men. Maar of dat gezien de complexiteit Open Sources: Voices from the Open De kernel is de basislaag, met daarbo- van besturingssystemen tegenwoordig Source Revolution ven een laag waarin de drivers draaien. nog te verwachten valt, en op welke ter- http://oreilly.com/catalog/ opensources/book/appa.html Elke driver draait daarbij in z’n eigen mijn, dat is lastig te zeggen. In die tus- proces, zodat dankzij een slechte driver sentijd is het echter niet geheel onwaar- Wikipedia: Kernel niet de stabiliteit van het systeem als schijnlijk dat de ‘Torvald-Tannenbaum http://nl.wikipedia.org/wiki/Kernel 26.4 //16 I/O VIVAT Rom Langerak Opleidingsdirecteur Onderwijsvernieu- Informatica

Sinds april 1992 is dr. ir. Rom Lange- rak universitair docent bij de Formal wing en Scandinavië Methods and Tools groep van de fa- culteit EWI. Romanus (Rom) werd op 1 februari geboren in Dordrecht en ging naar het Christelijk Lyceum aldaar. Hij haalde op de Universiteit Na een wat onduidelijke start (toen de Aalborg, bij de DTU in Kopenhagen, en Twente met lof zijn studie Toegepas- bachelors nog breed genoemd werden, bij de Aalto Universiteit in Helsinki. We te Wiskunde, waar hij afstudeerde terwijl later bleek dat ze nieuw waren) hebben er allerlei inspirerende ideeën op een onderwerp over Databases. begint de vernieuwing van het bachelor opgedaan, met name op het gebied van Het is dan ook niet vreemd dat hij onderwijs steeds duidelijker contouren projectonderwijs, wiskunde onderwijs, na zijn afstuderen ging promoveren te krijgen. Het basisidee van de vernieu- grote projecten, en ontwerpprojecten in bij de toenmalige faculteit Informa- wing wordt gevormd door het concept de Master. En we kwamen er ook achter tica. Na zijn promoveren in 1992 “module”: een module is een samen- dat we in Twente best goed bezig zijn, bleef hij bij de faculteit werkzaam. hangende eenheid van 15 EC, die je in dat ze op andere plekken soms met pro- zijn geheel moet volgen en halen. Dat blemen kampen die wij allang achter Rom houdt van literatuur, filosofie, lijkt een simpel idee, en dat is het ook, de rug hebben, en dat er in de wereld gitaar spelen, biljarten en Taekwon- maar zoals zo vaak in het leven zijn het ruimte is voor het Twentse model dat do. Sinds september 2009 is hij de de kleine dingen die veel betekenen. hier langzaam gestalte krijgt. nieuwe opleidingsdirecteur Infor- Een belangrijk effect van de module is matica, een taak die hij met liefde zal dat het de versnippering tegen gaat (het Zo’n tripje moet je niet zien als een toe- gaan uitvoeren om zo het onderwijs “sprokkelen” van vakjes), die er al snel ristisch snoepreisje. Het is een hectisch voor zowel studenten als docenten toe leidt dat er vrijwel niemand meer gebeuren, het is een doorlopend gewis- nominaal studeert. Bij een module kun sel van hotels, taxi’s en vliegtuigen, en er je niet besluiten dat je een onderdeel is geen enkele tijd om iets te zien. Van dat je wat minder bevalt, op de lange Aalborg hebben we helemaal niks ge- baan schuift: bij een module is het al- zien, en in Kopenhagen hebben we een les of niets! Een tweede belangrijk effect wandeling (met twee biertjes) van zo’n is dat modules leiden tot een grotere honderdvijftig meter gemaakt. In Hel- flexibiliteit. Je kunt vrijelijk met modu- sinki kwamen we om half twaalf aan in les combineren, omdat een module per het hotel, en toen we volgens goed Ne- definitie een betekenisvolle eenheid is. derlands gebruik nog een laatste biertje Dat betekent dat je niet al als scholier wilden, bleek de hotelbar al dicht. Ge- in 5 of 6 vwo je hele leven hoeft vast te lukkig is onze decaan Ton Mouthaan leggen. Als je gaat studeren, heb je in elk iemand met veel initiatief, en hij had geval een initieel idee van wat je wilt, en al gauw een soort rare Duitse biertent daar kun je flexibel op blijven voortbor- opgespoord, op steenworpafstand van duren door on-the-fly modules te kie- het hotel. Erg gezellig leek het er niet zen op momenten dat je ook inderdaad (zelfs niet voor Finse begrippen), maar de kennis en ervaring hebt om te weten dat veranderde toen er een bandje het wat zo’n keuze inhoudt. podium beklom. Accordeon, gitaar en bas, gespeeld door drie jongens die Uiteraard laat het moduleconcept nog neefjes van de Leningrad Cowboys allerlei ruimte voor andere verbeterin- konden zijn. Ze speelden vrijwel alles gen. En bij dat soort vernieuwingen is wat we vroegen! Al gauw stond letterlijk het een goed idee om inspiratie op te het hele Nederlandse gezelschap op de doen in het buitenland. Ik had het ge- dansvloer, het werd een onvergetelijke luk deel uit te maken van een delega- avond. Later bedacht ik dat die muzi- tie van 14 UT’ers die begin maart een kanten misschien wel studenten waren, vierdaagse rondreis door Scandinavië Finse langstudeerders, die onbedoeld hebben gemaakt. Het was een gemengd het Twentse vernieuwingsproces de be- gezelschap: de rector, onze decaan, een slissende impuls hebben gegeven! aantal beleidsmedewerkers, wat oplei- dingsdirecteuren, en twee studentes die de zaak perfect organiseerden. We gingen op bezoek bij de Universiteit van 26.4 //17 I/O VIVAT Marieke Huisman Formal Methods and VerCors project Tools PROGRAMMAVERIFICATIE, SPECIFICATIE, CONCURRENCY, PROGRAMMALOGICA, SEPARATION LOGIC

Programma’s met meerdere executiethreads, maar zonder fouten

ktober vorig jaar heb ik een programma hoef je immers alleen maar zien dat de software inderdaad correct beurs van 1,3 miljoen euro na te denken over hoe de verschillende was. Dit standpunt is echter niet meer ontvangen van de European instructies elkaar opvolgen en daardoor vol te houden: de eisen aan software Research Council - een in- invloed op elkaar hebben. Voor een worden steeds hoger en langzamerhand Ostituut van de Europese programma waarin meerdere executie- bereiken we het einde van Moore’s law: Unie om toponderzoekers threads tegelijk bezig zijn, moet je als fysieke beperkingen zorgen er voor dat te financieren - voor het programmeur in gedachten bijhouden processorsnelheden niet meer elke 18 VerCors project, voluit: Verification of hoe al deze threads elkaar beïnvloeden. maanden verdubbeld kunnen worden. Concurrent Data Structures. Doel van Je kunt er nooit van uit gaan dat een be- De oplossing hiervoor is het gebruik VerCors is om de komende 5 jaar verifi- paalde instructie zal gebeuren voor een van chips met meerdere processoren. catietechnieken te ontwikkelen voor da- instructie in een ander thread - tenzij je Om deze multi-core chips optimaal te tastructuren die speciaal gemaakt zijn deze volgorde expliciet afdwingt in je gebruiken, moeten je programma’s hier om in een concurrent programma te programma. Als je een beetje zoekt op echter ook op ingericht zijn. Of te wel: het ontwikkelen van en nadenken over multithreaded software is niet langer te Als je zoekt op internet kun vermijden.

Het onderzoek binnen het VerCors pro- je een groot aantal bugs (met ject richt zich op het ontwikkelen van technieken om te kunnen zeggen of een serieuze gevolgen) vinden programma zich correct gedraagt. Het idee is dat een programmeur een logi- gebruiken. Met het geld van deze beurs internet kun je een groot aantal software sche beschrijving geeft van het gedrag kan ik een aantal mensen aan stellen (2 bugs (met serieuze gevolgen) vinden die van het programma (dit wordt de for- AiO’s en 2 post docs) om dit onderzoek veroorzaakt werden door concurrency mele specificatie genoemd) en dat ver- mee samen te doen. In dit artikel leg ik fouten. Een bekend voorbeeld hiervan volgens verificatietechnieken gebruikt in het kort uit wat de achtergronden en zijn de problemen met de Therac 25. Dit worden om te controleren of de im- de doelen zijn van het project en hoe we was een bestralingsapparaat, waarvan plementatie hier ook aan voldoet. Een deze doelen gaan realiseren. de besturingssoftware multithreaded methode die vaak voor dit soort proble- was. Door een fout in het programma men gebruikt wordt, is het gebruik van Verificatie van Multithreaded Pro- konden soms twee threads tegelijkertijd een model checker. Het basisprincipe gramma’s schrijven op de geheugenlocatie waar van model checking is dat een volledige de stralingsdosis werd opgeslagen, met toestandsruimte van een systeem gege- De eerste vraag is natuurlijk waarom als gevolg dat hier extreme waarden nereerd wordt en dat vervolgens geke- de verificatie van concurrent datastruc- kwamen te staan en patienten een hoge ken wordt of alle bereikbare toestanden turen, dat wil zeggen datastructuren overdosis straling ontvingen. van het programma de gewenste eigen- die speciaal geschikt zijn voor multi- schappen hebben. Echter, in het geval threaded programma’s, überhaupt een Door problemen zoals met de Therac 25 van concurrent software stuit dit op veel belangrijk onderwerp is. Het is een al- is er lange tijd gedacht dat concurrency problemen, omdat de toestandsruimte gemeen geaccepteerd gegeven dat het te moeilijk was om correcte software te erg groot of zelfs oneindig is. Daarom schrijven van correcte multithreaded ontwikkelen. Als je persé wilde dat je gebruiken we binnen het VerCors pro- software nog een graadje moeilijker is software correct zou functioneren, dan ject een andere methode, namelijk ve- dan het schrijven van correcte sequen- moest je dat maar sequentieel doen; dan rificatie door middel van een program- tiële software. Voor een sequentieel was het al moeilijk genoeg om te laten malogica. 26.4 //18 I/O VIVAT Geschiedenis van programmaverificatie kwamen Susan Owicki en David Gries dat we gebruik maken van zogenaamde met een uitbreiding van Floyd-Hoare permissies: we weten niet alleen of een Het idee om programma’s te verifiëren logica voor concurrent programma’s. thread een bepaalde geheugenlocatie met behulp van logische bewijsregels Het belangrijkste onderdeel van hun gebruikt, maar ook of een thread op stamt al uit de jaren 60. Robert Floyd verificatiemethode was dat je voor elke deze locatie mag schrijven, of alleen en Tony Hoare ontwikkelden de zoge- atomaire stap in je programma moest mag lezen. Correctheid van de bewijs- naamde Floyd-Hoare logica: een ver- laten zien dat deze geen invloed had op regels garandeert dat een programma zameling regels om over correctheid de correctheid van andere threads. Dit alleen geverifieerd kan worden met de van een programma te redeneren. Ze resulteerde echter in zo’n grote hoeveel- bewijsregels als het geen data races be- introduceerden zogenaamde program- heid bewijsverplichtingen dat deze me- vat. Belangrijk is dat onze logica spe- macorrectheids-triples {P}S{Q}, thode niet praktisch toepasbaar was. ciaal voor Java ontwikkeld is: we kun- waarbij P een preconditie, Q een post- nen onder andere redeneren over het conditie en S een programma is. Zo’n Uiteindelijk is er pas een paar jaar ge- dynamisch creëren en beëindigen van triple {P}S{Q} moet je als volgt lezen: leden een methode gevonden om op threads, en over reentrant locks. Ook als je programma S uitvoert in een toe- een praktische manier over concurrent voor concurrent programma’s geldt dat stand waar preconditie P waar is, en als programma’s te redeneren. Hiervoor de logica aangepast moet zijn aan de programma S termineert, dan zal in de wordt separation logic gebruikt. Dit is specifieke kenmerken van de program- eindtoestand postconditie Q waar zijn. een uitbreiding van Floyd-Hoare logica meertaal om over echte programma’s te Vervolgens ontwikkelden ze bewijs- die oorspronkelijk ontwikkeld was om kunnen redeneren. Op dit moment zijn regels waarmee je correctheids-triples te redeneren over programma’s met we druk bezig om tool support te ont- voor samengestelde instructies kan op- pointers. Een belangrijk kenmerk van wikkelen voor deze logica, zodat we het breken in triples voor de onderdelen separation logic is dat de specificaties kunnen gebruiken om daadwerkelijk hiervan. Om bijvoorbeeld te bewijzen expliciet geheugenlocaties gebruiken programma’s te gaan specificeren en ve- dat {P} if C then S1 else S2 en met name dat ze expliciet zeggen rifiëren – tot nu toe deden we dat altijd {Q} geldt, is het voldoende om te be- dat twee onderdelen van een program- met pen en papier. wijzen dat voor de beide branches {P ^ ma op verschillende geheugenlocaties C}S1{Q}, respectievelijk {P ^ ¬C} werken. Dit maakt het geschikt om op Binnen het VerCors project gaan we S2{Q} geldt. Sinds het eind van de een praktische manier over concur- deze redeneertechnieken verder uit- jaren 90 worden deze principes in ver- rent programma’s te redeneren: als breiden. De bedoeling is om uiteinde- schillende tools toegepast om te rede- je weet dat twee threads op verschil- lijk een verzameling gespecificeerde en ren over bijvoorbeeld sequentiële Java lende geheugenlocaties werken, weet je correct bewezen implementaties van of C programma’s. Waar de regels van automatisch dat ze elkaars correctheid concurrent datastructuren te ontwik- Floyd en Hoare voor een simpele, ideale niet beïnvloeden en hoef je dit niet kelen. Deze datastructuren zijn dan de programmeertaal ontwikkeld zijn, zijn meer te verifiëren. bouwstenen waaruit een concurrent voor deze tools de logica’s aangepast aan programma opgebouwd kan worden en de de belangrijkste specifieke kenmer- Verificatie van multithreaded Java met behulp van onze verificatietool kan ken van deze programmeertalen, zoals programma’s een software-ontwikkelaar dan makke- side-effects in expressies, excepties, en lijk controleren of hij deze bouwstenen return statements. De afgelopen jaren heb ik (samen met op een juiste manier gebruikt. Hiervoor Clément Hurlin en Christian Haack) moet ook de programmalogica ver- Toen Floyd en Hoare deze bewijstech- een variant van separation logic ont- der uitgebreid worden: we moeten in nieken introduceerden wilden mensen wikkeld die speciaal geschikt is om over staat zijn om te redeneren over andere dit ook graag uitbreiden naar concur- concurrent Java programma’s te rede- concurrency- en synchronisatiecon- rent programma’s. Midden jaren 70 neren. Specifiek voor onze variant is structies, zoals bijvoorbeeld futures, 26.4 //19 I/O VIVAT barriers, compare-and-swap instruc- reëel om te denken dat het resultaat over Als je meer wilt we- ties en reader-writer-locks. Daarnaast vijf jaar voor iedereen bruikbaar zal zijn, is het bedoeling om de verificatie van maar ik verwacht wel dat het een be- ten over het VerCors het concurrency-specifieke gedeelte los langrijke stap hiernaar toe is. Een aantal project te koppelen van de verificatie van de jaar geleden dacht men ook dat verifica- functionele specificatie, dat wil zeggen tie van seqentiële programma’s iets voor Op de pagina van het VerCors de beschrijving van het gewenste ge- hobbyisten was, maar ondertussen zijn project (http://fmt.ewi.utwente.nl/ drag. Op deze manier kun je laten zien er commerciële tools beschikbaar die research/projects/VerCors) vind je dat als je de synchronisatie-strategie van programmalogica-gebaseerde technie- de volledige projectbeschrijving, een hoog-niveau presentatie van het project en alle technische resultaten. De komende vijf jaar verwach-

In de NVTI nieuwsbrief van 2011 ten we veel interessante on- staat een samenvatting van de belangrijkste resultaten tot nu toe. De technische details en bewijzen derzoeksvragen op te lossen zijn hier weggelaten. Dit artikel is beschikbaar via mijn homepage: een datastructuur wijzigt, door bijvoor- ken gebruiken om fouten te vinden in http://wwwhome.ewi.utwente. beeld meerdere locks te gebruiken voor programma’s. Ik ben er van overtuigd nl/~marieke/papers.html. onderdelen van de data, in plaats van dat over een aantal jaren zulke tools ook één lock die alle data beschermd, dit wel beschikbaar zijn voor concurrente pro- Als je echt alles wilt begrijpen, dan invloed kan hebben op de performance, gramma’s en dat de tools en technieken is er ook een journal paper beschik- maar niet op de correctheid van een da- die we in VerCors gaan ontwikkelen, baar waarin alle technische details tastructuurimplementatie. aan de basis hiervan zullen staan. en bewijzen worden gegeven. In het Mastervak Program Verifica- Om de methode ook praktisch bruik- tion worden de belangrijkste prin- baar te laten zijn, zullen we veel aan- cipes over het verifiëren van mul- dacht besteden aan automatisering. We tithreaded programma’s uitgelegd, zullen speciale algoritmes ontwikkelen onder andere aan de hand van dit om de bewijsverplichtingen te contro- artikel. leren en eventuele tegenvoorbeelden te genereren. Daarnaast zullen we ook technieken ontwikkelen om specifica- ties te genereren. De ervaring heeft ge- leerd dat om een programma daadwer- kelijk te kunnen verifiëren er veel details expliciet gespecificeerd moeten worden. Maar veel van deze specificaties zijn standaard en kunnen automatisch gege- nereerd worden, zodat de programma- ontwikkelaar zich kan richten op het specificeren van de eigenschappen die essentieel zijn voor de correctheid van het programma.

Op de langere termijn is het de bedoe- ling om de volgende problemen aan te pakken: het uitbreiden van de logica voor de verificatie van zogenaamde lock-free programma’s, waarbij soms wel een data race mag voorkomen, zo- lang deze maar “goedaardig” is; het uit- breiden van de logica naar gedistribu- eerde systemen, waarbij het geheugen van de verschillende sites consistent gehouden moet worden; en het uitbrei- den van de logica naar andere program- meertalen.

Kortom, de komende vijf jaar verwach- ten we een heleboel interessante onder- zoeksvragen op te lossen. Het lijkt niet 26.4 //20 I/O VIVAT Advertentie Thales David Huistra Werking/beveili- Redacteur I/O Vivat TRANS LINK SYSTEMS, MYFARE CLASSIC, WERKING OV-CHIP- KAART, HACKEN OV-CHIPKAART, ging OV-chipkaart INDELING OV-CHIPKAART, FRAU- DEURS OPSPOREN.

Hoe werkt hij en waar komt alle trammelant vandaan?

e kunnen vandaag de dag en de 16 allereerste bytes van de kaart kunnen het principe van dergelijke bijna overal in Nederland worden gebruikt voor het serienummer. systemen wel aangeven. met de OV-chipkaart rei- De OV-chipkaart maakt gebruik van zen en de VVD wil dat de een vaste indeling wat betreft welke in- Normale communicatie met de kaart W landelijke dekking van formatie zich in welke sectoren bevindt de OV-chipkaart nog dit en deze volledige indeling is op internet Als iemand bij een bus of op een station jaar volledig is. Hoewel simpel op te zoeken. Zo blijkt je huidige incheckt, zal de kaartlezer de juiste sleu- de OV-chipkaart over het algemeen saldo zich altijd in sector 39 te bevinden tels moeten weten om bij bijvoorbeeld wordt gezien als een goed streven, zijn en staat de verjaardag van de eigenaar je saldo te kunnen komen. De sleutels er steeds meer partijen die zich afvragen altijd in sector 22. voor elke kaart in een tabel op elke of het systeem met de huidige kaart wel kaartlezer opslaan is hierbij natuurlijk werkt. De media meldt dat het kinder- Op de kaart bevindt zich ook een geen realistische optie, aangezien deze lijk eenvoudig is om de OV-chipkaart te kleine processor die voor de interactie systemen dan bijgewerkt zouden moe- hacken en recentelijk hebben een aantal van het geheugen met de buitenwereld ten worden wanneer er nieuwe kaar- vervoersbedrijven openlijk aangegeven zorgt. Deze proccessor ondersteunt een ten worden gemaakt, om het nog maar geen vertrouwen meer te hebben in aantal instructies die het mogelijk ma- niet te hebben over de ruimte die nodig Trans Link Systems, de uitgever van de ken om het geheugen van de kaart te is om een dergelijke tabel op te slaan. kaart. Maar hoe kan de OV-chipkaart lezen en te schrijven. De instructies zijn Daarom worden vaak de sleutels op lo- eigenlijk worden gehackt en is het in- echter zo geprogrammeerd dat ze lees- catie bepaald. derdaad zo eenvoudig? Om deze vragen en schrijfoperaties alleen uitvoert als te beantwoorden zullen we eerst gaan de juiste sleutel wordt meegestuurd. Hierbij wordt normaal gesproken ge- kijken naar de werking van de OV- Ook is het zo ingesteld dat sleutels zelf bruik gemaakt van het serienummer chipkaart. nooit kunnen worden uitgelezen en van de kaart en een privésleutel die al- dat het serienummer van de kaart niet leen bij Trans Link Systems bekend is. De hardware van de kaart kan worden overschreven. Hiernaast Over deze twee elementen wordt een zorgt de processor voor het versleutelen hash berekend en deze hash wordt in De OV-chipkaart is in feite weinig en ontcijferen van het dataverkeer met een bepaald algoritme gestopt dat ver- meer dan een stuk geheugen dat door de kaartlezer, aangezien zonder encryp- volgens de correcte sleutels voor elke een kaartlezer kan worden uitgelezen tie het hacken zo simpel zou zijn als sector kan opleveren. en worden beschreven. Dit geheugen het afluisteren van het dataverkeer. De is opgedeeld in een aantal sectoren die processor haalt de nodige stroom uit de Mensen thuis zullen niet de beschik- elk apart worden beschermd door twee inductie die aanwezig is bij kaartlezers king hebben over deze privésleutel of sleutels, genaamd A en B. Op de kaart en zal op deze manier dus nooit ‘op’ ra- de werking van dit algoritme en kunnen kan worden ingesteld voor welke opera- ken! daardoor niet simpel de sleutels bere- ties op het geheugen welke sleutels no- kenen. De reden dat er een hash wordt dig zijn, bijvoorbeeld A om te lezen en Voordat we aangeven hoe de OV- gebruikt komt vanwege het feit dat men B om te schrijven. chipkaart kan worden gehackt, oftewel wil voorkomen dat de werking van het hoe de sleutels van sectoren kunnen algoritme en de privésleutel kunnen De MIFARE Classic, de chip in de OV- worden achterhaald, zullen we eerst worden achterhaald door veel data te chipkaart, beschikt over een geheugen aangeven op welke manier er normale verzamelen. Toch blijken er genoeg van 4kB en is opgedeeld in 32 secto- interactie met de kaart plaatsvindt en mensen wel degelijk bij de informatie ren van 64 bytes en 8 sectoren van 256 hoe de kaartlezer de sleutels normaal op de kaart te kunnen komen; hoe doen bytes. Voor elke sector worden er 16 bepaalt. De werking van dit systeem ze dat? bytes gereserveerd voor de twee sleutels is natuurlijk niet vrijgegeven, maar we 26.4 //22 I/O VIVAT Het hacken van de kaart gelijke kaartlezer kan er een program- producten en reisgeschiedenis. Onder ma van internet worden gedownload identificatie wordt het serienummer Door gebruik te maken van de rela- dat al het werk voor je doet. Namelijk verstaan, maar ook de verloopdatum tief kleine sleutels, het afluisteren van de sleutels bepalen en de gebruiker de van de kaart, het bedrijf dat hem uitge- transacties en ‘gewoon proberen’ zijn mogelijkheid geven om de data te lezen geven heeft en zelfs een banbit die aan- er inmiddels algoritmes geschreven die en/of aan te passen. geeft of de kaart verbannen is. binnen 300 queries naar de kaart elke sleutel kunnen achterhalen, wat resul- Zo is er een programma genaamd ‘OV Aangezien niet alle sectoren van de teert op een sleutel achterhalen binnen Saldo – Lees / Schrijver’ dat slechts over OV-chipkaart worden gebruikt mogen een minuut. Op de werking van deze twee functionaliteiten beschikt, een lees bedrijven een van deze blocks claimen algoritmes zullen we hier niet ingaan, knop en een schrijf knop, waarbij je zelf om hier hun eigen informatie zoals een aangezien deze complex zijn en vaak het saldo dat wordt weggeschreven kan abonnement in op te slaan. Van deze wijzigen om sneller te worden. Deze bepalen. producten wordt dan vaak het pro- algoritmes zijn echter gewoon opens- ductnummer en verloopdatum in deze sector opgeslagen. Bij de NS is er zelfs een derde parameter, namelijk of het Elke sleutel binnen één mi- product eerste of tweede klasse betreft. Ten slotte wordt er ook nog reisin- nuut te achterhalen formatie op de kaart opgeslagen in de vorm van de laatste tien tot twaalf ource en door iedereen te downloaden Andere mogelijkheden zijn bijvoor- reizen die zijn gemaakt. Van elke reis en te gebruiken. Door herhaaldelijk beeld het zelf inchecken in een bus of wordt bepaalde informatie opgesla- gebruik van dit algoritme kunnen zo op een station. Met speciaal hiervoor gen: het station van in- en uitchecken, beide sleutels van alle sectoren worden gemaakte programma’s kan je vanaf je het tijdstip hiervan en het bedrag dat achterhaald en kan vervolgens alle niet computer met kaartlezer thuis al in de hiervoor in rekening is gebracht. Maar expliciet beveiligde data (zoals sleutels) bus inchecken. Om het inchecken bij waarom wordt deze informatie allemaal worden gelezen en veranderd. de bus te simuleren kan zelfs het geluid op de kaart gezet? dat de officiele kaartlezer maakt van in- Door een ontwerpfout van de OV- ternet worden gedownload en bijvoor- Naast het feit dat je hierdoor de reisge- chipkaart is voor zowel het lezen als het beeld op een mobiel worden afgespeeld schiedenis van de kaart bij de oplaad- wijzigen van het saldo van de kaart al- bij het binnenlopen van de bus. punten op stations kan zien, is er nog leen de B sleutel van sector 39 nodig. Zo een belangrijke andere reden. Voor het hoeft er zelfs maar één sleutel achter- De data op de kaart reizen met het openbaar vervoer moet haald te worden voordat het saldo dat er naast een bedrag voor het aantal ge- op de kaart staat kan worden gewijzigd, De data die op de OV-chipkaart blijkt reisde kilometers ook een basistarief wat dus binnen een minuut kan. te staan is natuurlijk afhankelijk van van 79 cent worden betaald. Bij een reis wat soort kaart je hebt; zo heb je de waarbij moet worden overgestapt hoeft Zelf hacken persoonlijke kaarten en de anonieme dit echter maar eenmaal te worden be- kaarten. We zullen hier alleen naar de taald, zolang er altijd binnen 35 min na Voor het aanpassen van de informatie persoonlijke kaart kijken. het uitchecken ergens anders word in- heb je een kaartlezer nodig, welke te- gechecked. genwoordig vanaf 35 euro zijn aan te De informatie op de kaart is te verdelen schaffen. Eenmaal in bezit van een der- in 3 categorieën, namelijk: identificatie, De kaartlezers in bussen blijken echter 26.4 //23 I/O VIVAT niet constant in contact te staan met de Hoewel er ook fouten aan de kant van Het blijkt dat het hacken van de OV- databases van TLS. Ze slaan alle infor- de vervoersbedrijven kunnen plaats- chipkaart niet erg ingewikkeld is met matie tijdelijk op en zullen slechts een- vinden, bijvoorbeeld een bus die een de juiste apparatuur en software. Om maal per dag contact opnemen en alle dag de informatie niet opstuurt, zullen echter consequent met een gehackte infomatie doorgeven. Om er toch voor constante verschillen tussen de syste- kaart te reizen lijkt lastiger te zijn, aan- te zorgen dat iemand niet tweemaal men van TLS en de kaart gaan opval- gezien TLS beweert samen met de po- litie consequent mensen met gehackte kaarten op te sporen. TLS gaat er op het moment van uit dat een hoge pakkans Constante verschillen zul- mensen ervan moet weerhouden om de kaart te hacken. TLS is van plan de len gaan opvallen huidige kaart pas in 2015 te vervangen en hopelijk zal dat systeem lastiger te een instaptarief hoeft te betalen, kan de len. Als je in dit geval een persoonlijke kraken te zijn. kaartlezer via de reisgeschiedenis zien OV-chipkaart hebt ben je makkelijk op of de kaart minder dan 35 minuten ge- te sporen. TLS zegt verder mensen met leden is uitgechecked, waarna hij niet anonieme kaarten te kunnen opsporen opnieuw het basistarief voor reizen zal door middel van de camera beelden die afschrijven. ze tot hun beschikking hebben.

Fraudeurs opsporen Het was al snel duidelijk dat de OV- chipkaart te kraken was. De eerste keer Naast dat de informatie van passagiers gebeurde dit echter in een laboratori- op de OV-chipkaarten wordt opgesla- umopstelling en gaf TLS aan dat dit niet gen heeft TLS zelf ook een systeem dat haalbaar zou zijn voor een particulier. alle reisinformatie bijhoudt. Dit sys- Inmiddels blijkt dat ook NPX, de maker teem synchroniseert eenmaal per dag van de OV-chipkaart, al in een vroeg met alle OV-chipkaartsystemen van stadium heeft aangegeven dat de bevei- de verschillende vervoerbedrijven en liging van de MIFARE Classic niet vol- kan zo controleren of er inconsisten- doende was en dat er een andere kaart ties bestaan tussen de data die de kaart van tien cent per kaart meer moest wor- doorgeeft en de informatie in hun eigen den aangeschaft, maar dit advies is door systeem. TLS niet opgevolgd.

Bronnen De OV-chipkaart wiki Figuur 1: Dump van de inhoud van een OV-chipkaart http://OV-chipkaart.pc-active.nl 26.4 //24 I/O VIVAT Wouter Spoelstra Topicus Topicus SOFTWARE, ONTWIKKELOMGE- VING, HERGEBRUIK, TOPICUS

Software hergebruik bij agile ontwikkelomgevingen

opy-pasten, als student ge- op software hergebruik. Om alle fac- Wouter Spoelstra is student Be- bruik je het al en in het be- toren goed te kunnen analyseren is er drijfsinformatie technologie geweest drijfsleven wordt het nog een model gedefinieerd, waarin onder- aan de Universiteit Twente. Tijdens steeds veelvuldig toegepast. scheid gemaakt wordt tussen een vijftal zijn afstudeeropdracht heeft hij in C Ondanks dat iedereen altijd re-use levels, 15 re-use factoren en een opdracht van Topicus onderzoek aangeeft dat dit natuurlijk assessment component. De re-use levels gedaan naar software hergebruik in niet de bedoeling is, is deze beschrijven de niveaus waarop software agile ontwikkelomgevingen. vorm van hergebruik vaak wel het snel- hergebruik plaats kan vinden, varië- ste. Op dat moment natuurlijk, want rend van ad-hoc tot optimaliserend. De Topicus is een jong en innovatief fouten worden rustig mee gekopieerd. factoren beschrijven de verschillende ICT bedrijf met ca. 260 medewer- Een oplossing hiervan is het generieker invalshoeken en met behulp van de as- kers in zowel Deventer als Ensche- definieren van een specifiek stuk code, sessment component kunnen diverse de. Topicus realiseert identificieert zodat dit in een breder spectrum bruik- verbeterpunten worden gedefinieerd. zich niet alleen met hoogwaardige baar kan zijn. Echter, hoe weet je van te softwareoplossingen maar vooral voren waar je het nog meer nodig gaat Dit model is binnen verschillende ook door het automatiseren van ge- hebben? business units van Topicus getoetst op hele ketens in de sectoren zorg, on- correctheid en volledigheid. De cellen- derwijs en finance centraal staan. Voordat deze vraag beantwoord kan structuur van Topicus, waarbij kleine worden, moet de code geanalyseerd, units zich richten op specifieke markt- geoptimaliseerd en tenslotte geformali- segmenten, leent zich uitstekend voor seerd worden. Echter, met de komst van toepassing van dit model: naast de vele agile ontwikkeling zijn er weer nieuwe standaard componenten, worden er ook vragen ontstaan, aangezien de focus nu echte marktspecifieke componenten niet meer ligt op geformaliseerde pro- ontwikkeld, wat leidt tot een potentiëel cessen en de documentatie hiervan, hoog niveau van hergebruik. maar juist op mensen en communicatie. Hiermee wordt het interessant om uit te Naar aanleiding van het onderzoek zijn zoeken hoe dit proces nu het beste vorm diverse verbeterpunten gevonden. De kan krijgen en welke factoren hierbij belangrijkste is het toevoegen van een een rol spelen. extra variabele om de schaalbaarheid van een re-use factor expliciet te meten, Grote multinationals als IBM en HP om zo de toepasbaarheid te vergroten. hebben in het verleden gehele business Daarnaast blijkt dat agile organisaties units opgezet om software componen- niet de processen als belangrijkste fac- ten te creëren en te onderhouden. Het tor zien, maar juist de bewustwording lastige van deze opzet is dat kennis bij het individu om hergebruik moge- over de componenten verzameld moet lijkheden te herkennen en te benut- worden bij andere business units, wat ten. Het herkenningsproces begint bij na verloop van tijd steeds moeilijker het analyseren van de klantbehoefte en wordt, zeker aangezien het hergebruik werkt door in de projecten. Ook bleek vaak slechts een secundair proces is. dat er behoefte is aan tool support om communicatie tussen projecten te ver- Naast deze organisatorische factoren zorgen, echter zijn hier slechts beperkte zijn diverse andere factoren van invloed mogelijkheden voor. 26.4 //25 I/O VIVAT Bas Stottelaar x86 versus Redacteur I/O Vivat X86, ARM, INTEL, SOC ARM

Een ware strijd of gewoon marktwerking?

nder de ict’ers hoor je er len. Op je mobiele telefoon wil je geen x86 is een complex instruction set com- haast niet meer bij als je geen programma’s gaan compileren en je puter (CISC). ARM is een reduced in- smartphone(s) hebt. Even desktop wil je er niet elke keer bij pak- struction set computer (RISC). De re- snel je mail checken, iets op ken als je op internet wilt. Kortom, de den waarom hier voor gekozen is, heeft Ohet internet opzoeken of een markten zitten elkaar niet compleet in te maken met het doel van de inzet van spelletje spelen: allemaal ta- de weg, maar er is wel een verschuiving vroeger. Embedded processoren zoals ken die we ‘vroeger’ nog op zichtbaar. de ARM werden vroeger veel gebruikt de computer deden. Nu smartphones en op plekken waar de programma’s een- tablets steeds krachtiger worden maar Fabrikanten spelen hier ook al op in. voudig waren en specifiek voor die ene ook gelijktijdig energiezuiniger, lijkt er Intel probeert met haar Atom-processo- toepassing. De processor hoeft dus geen een strijd te zijn begonnen tussen de ren de ARM Cortex-gebaseerde proces- rekening te houden met legacy code. In- meest gebruikte architecturen voor het soren uit te dagen. Maar is er wel een structies kunnen dus direct uitgevoerd mobiele- en desktopsegment: x86 en strijd gaande? En wat is het voordeel worden door de hardware, zonder een ARM. van ARM boven x86? Dit artikel gaat microcode en hardware om instructies daar op in. te vertalen naar microcode. Toch hebben beide platformen twee verschillende mogelijkheden en doe- Architectuur Intel gebruikt wel een vertaler en micro- code in haar processoren om instructies te vertalen. Dat heeft als groot voor- deel dat een instructie hetzelfde kan blijven, maar de implementatie ervan op hardware-niveau anders kan zijn. Overigens gebruikt Intel sinds de 80486 ook concepten van een RISC-processor. Veelgebruikte eenvoudige instructies (zoals MOV) gaan dan niet door de ver- taler, maar worden direct uitgevoerd. Het x86-platform is ook log omdat het juist legacy code ondersteunt. Hierdoor moeten ‘oude’ ontwerpkeuzes ook nog geïmplementeerd worden.

Dat legacy code niet per definitie draait op nieuwe ARMs is ook voordelig voor het aantal transistoren. De ARM2 (ARMv2) heeft er maar 30.000 en de ARM6 (ARMv3) maar 35.000. Bij Intel had de 8086 er alleen al 29.000 en de 80286 al meer dan 130.000!

ARM-instructies zijn altijd 32-bits. Dat heeft als nadeel dat een instructie die erg eenvoudig is toch meer ruimte nodig heeft. Er is wel een 16-bits vari- 26.4 //26 I/O VIVAT ant (Thumb Mode), maar die beperkt gebruik van de architecturen. ARM is Benchmark het aantal instructies weer. Ook omdat open en geeft fabrikanten licenties om ARM een RISC-processor is, heeft deze de architectuur te gebruiken. Dat bete- Omdat er veel verschillende uitvoerin- vaak meer instructies nodig om de- kent dat elke chipbakker zelf een pro- gen van de processoren op de markt zelfde berekening uit te voeren als een cessor gebaseerd op ARM mag ontwer- zijn, is het niet mogelijk om een algeme- x86-processor. Hierdoor is een gecom- pen, wat als groot voordeel heeft dat een ne benchmark te presenteren. Om toch pileerd programma in de praktijk vaak fabrikant in staat is om een eigen draai een indruk te geven van wat soortgelijke tot 20% groter dan de x86-variant. Intel aan de processor te geven. Hierdoor processoren kunnen neerzetten, zijn er ondersteunt variabele instructielengtes kan zo’n processor bijvoorbeeld speci- wel benchmarks beschikbaar van de waardoor codes compacter zijn. fiek voor die ene toepassing ontworpen huidige topmodellen die enigszins op worden waar het extra energiezuinig elkaar lijken. Het gaat dan om de ARM Omdat de rekentaken sterk veranderd moet zijn, of een complete system-on- Cortex A9 1Ghz processor en de Intel zijn de afgelopen jaren, zijn er ook spe- a-chip (SoC). Atom 1,6Ghz.

Een ander groot voordeel van ARM is dat het goed mogelijk is om SoC te pro- Intel staat geen licenties duceren. Marvell heeft eind 2010 een af voor x86-architectuur Wist je dat: ciale instructies aan zowel de x86-archi- Intel staat geen licenties af voor het ge- tectuur als de ARM-architectuur toege- bruik van de x86-architectuur. Toch zijn • 5% van de Amerikanen een tablet voegd. Te denken valt bijvoorbeeld aan er een aantal andere fabrikanten die ook heeft? In Groot Britannië is dit net instructies om efficiënt met kommage- x86-processoren maken. Dat zijn AMD iets meer dan 1,5%. tallen te rekenen, of met vectoren. Maar en Via die, vanwege oude overeenkom- ook voor audio- en videobewerking sten, dit wel mogen. AMD heeft geluk • 90% van de embedded-markt zijn instructies toegevoegd. Virtualisa- gehad door de 64-bit uitbreiding te ont- (router, telefoons, automotive etc) tie wordt ook steeds vaker gebruikt op werpen voor de x86-architectuur, waar- een ARM-processor bevat? desktopsystemen. Om een gastsysteem door ze van Intel de licentie mochten te voorzien van fatsoenlijke prestaties houden. • Wereldwijd 1,7 miljard smartpho- hebben zowel Intel als AMD virtualisa- nes in gebruik zijn? tie-instructies toegevoegd aan het x86 Stel dat je als fabrikant een processor no- platform. De originele set met instruc- dig hebt, dan kun je enkel een ‘complete’ • Er totaal 4,7 miljard computers op ties is de 808. Deze is in de loop der x86-processor kopen van Intel, AMD of aarde zijn? jaren forst uitgebreid (SSE1-4, MMX, Via. Bij ARM koop je het ontwerp en 3DNow, AMD64). ARM doet een produceer je zelf de processor. Omdat • Het One-laptop-per-child-project soortgelijk iets en noemt dit ARMv1- hierdoor veel ontwerpen beschikbaar ook een ARM variant heeft? v7, maar omdat ze geen compatibiliteit zijn en je als fabrikant zelf zou kunnen garanderen tussen verschillende versies, produceren, zijn de ARM-processoren • Er ruim 15 Linux desktopdistri- is het ook efficiënter. veel goedkoper dan x86-processoren. buties zijn die op ARM processoren Het is daarom ook logisch dat er veel draaien? Licentie van deze processoren in mobiele appa- raten terug te vinden zijn. • Apple ook ARM-architectuur in Er is een groot verschil in het recht op de iPhones en iPads gebruikt? 26.4 //27 I/O VIVAT Smallest Footprint Lowest Power Best Performance

Cortex-A9 Atom processor Atom Atom IncludingL1 Cache Including L1 Cache 1.6Ghz Cortex-A9 1.6Ghz Cortex-A9 (45nm) 1Ghz (45nm) (45nm) 1Ghz (45nm) Cortex-A9 is 1/3 the size of Atom Atom platform uses 6x power A 1GHZ Cortex-A9 than a Cortex-A9 based Enables smaller chip displays web pages faster platform rinning the same than a 1.6GHz Atom designs or 3 CPUs in tasks same area Even when idle next-generation Atom platform uses 50x power tripple core ARMv7 gebaseerde SoC ge- turen draaien brengt ook nadelen met Intel. Hierdoor is een ARM energiezui- ïntroduceerd samen met USB3.0 onder- zich mee. Programmeurs moeten op dit niger. steuning, HDMI en een Direct X GPU moment code nog vaak voorzien van die in staat is om 200 miljoen driehoe- extra patches om programma’s te por- Een Intel heeft altijd een basisinstruc- ken per seconde te berekenen (MT/s). ten. Stuurprogramma’s zijn vaak nog tieset gehad, de 8086. Daarop zijn veel Ter vergelijking: een Playstation 3 is in lastiger omdat deze erg afhankelijk zijn uitbreidingen gekomen. Dat heeft als staat om 250MT/s te berekenen en de van low level architectuur. Verder heeft voordeel dat legacy code ondersteund iPhone 4 kan 28MT/s. Dit opent een Intel al wel 64-bits processoren, maar wordt, maar als groot nadeel dat de pro- nieuwe wereld voor multimediatoepas- ARM ziet er tot op heden niet de nood- cessor log is. ARM kent verschillende singen zaak van in. versies en heeft geen ondersteuning voor legacy code.

Vanwege de licentie is het als fabrikant In idle-state verbruikt een ‘voordeliger’ om ARM te gebruiken en zelf een chip te bakken die specifiek Intel Atom 100mW ontworpen is voor dat ene apparaat, dan dat je een dure Intel-processor moet Toekomst Op technologisch vlak kan er ook nog gebruiken. Maar gaat het over echte het een en ander veranderen. Het pro- rekenkracht, dan heeft Intel nog steeds De groei van het aantal mobiele appa- bleem waar veel processoren mee te een streepje voor. raten wereldwijd is nog lang niet stil maken hebben is current leakage. Dat komen te staan. De komst van tablets is een verschijnsel waarbij energie ‘lekt’ Er staat nog heel veel te wachten en doet de vraag naar energiezuinige pro- bij het schakelen van een transistor. Te- de intrede van ARM is pas net begon- cessoren groeien met steeds meer geïn- genwoordig zijn transistoren grofweg nen. Intel heeft dit gemerkt en gooit de tegreerde mogelijkheden. De kans dat je 32nm groot en is de energiebehoefte Atom-processor in de strijd. De strijd router of modem thuis met een ARM- om een transistor te schakelen erg afge- is nog maar net bezig en nog lang niet processor uitgerust is, is tegenwoordig nomen. Echter is het zo dat de lekkage over. Wat in ieder geval zeker is, is dat erg groot. Projecten om Linux-bestu- juist toeneemt en dat er meer energie de mobile era pas net begonnen is! ringssystemen te porten naar andere verloren begint te raken door het lekken architecturen beginnen meer aanhang dan het schakelen. Meer transistoren te krijgen. betekent ook meer verlies. Het gebruik van hogere kwaliteit materiaal (waaron- Bronnen Recentelijk heeft Microsoft aangekon- der high-k dielectric) voor de produc- Achtergrond: ARM-processor digd om Windows 8 ook voor mobiele tie van transistoren moet deze lekkage technologie (2011) apparaten met een ARM-processor be- voorkomen. Intel claimde recentelijk http://nl.hardware.info/reviews/1994/ schikbaar te maken. Er komen steeds dat ze met Tri-Gate technologie transis- achtergrond-arm-processor- meer mobiele apparaten bij, waaronder toren kunnen produceren op 22nm die technologie tablets. Energiezuinigheid is hierbij be- 50% minder energie nodig hebben. Mirror: The Coming War: ARM versus langrijk en dat is iets wat door de ont- x86 (2010) werpvrijheid bij een ARM-processor Conclusie http://vanshardware.com/2010/08/ gemakkelijker is. In idle-state verbruikt mirror-the-coming-war-arm- een Intel Atom processor nog 100mW, Dat het aantal ARM-processoren aan versus-x86/ terwijl een ARM processor rond de het groeien is, moge duidelijk zijn. ARM vs. Atom: The battle for the 1mW verbruikt. Benchmarks wijzen uit dat de ARM next digital frontier Cortex al erg dicht in de buurt komt van http://www.infoworld.com/d/ Dat applicaties (en besturingssystemen) de Intel Atom. Het aantal transistoren hardware/arm-vs-atom-battle-next- steeds vaker onder meerdere architec- in een ARM is veel minder dan in een digital-frontier-762 26.4 //28 I/O VIVAT Advertentie QualityOnline Rick van Galen Leven op het Redacteur I/O Vivat WEB, LIFEHACKING, JAVASCRIPT, web CLOUD

Hebben wij desktopapplicaties nog wel nodig?

esktopapplicaties zijn oud en den geschaard onder AJAX. Daarnaast bruikers aanwezig is. Het voordeel van versleten, zo lijkt het. Men hebben de grote adoptie van Firefox, webapplicaties is de onafhankelijkheid loopt niet meer warm voor Opera, Chrome en recentelijk Inter- van je werkplek. Als je een pc, tablet of een nieuwe e-mailclient of net Explorer 9 er voor gezorgd dat veel telefoon hebt kun je simpelweg inlog- DRSS-lezer: alles gebeurt op webapplicaties gebruik kunnen ma- gen op je webdienst, en het werk dat het web! Maar zijn deze web- ken van een voorschot op HTML5- en je wil bereiken is beschikbaar vanaf de diensten al zo volwassen dat CSS3-specificaties. Deze nieuwe stan- servers van de provider. je geen desktopapplicaties meer nodig daarden specificeren een aantal nieuwe hebt? technologieën om de functionaliteit en Er is zo’n groot aanbod aan desktopver- het uiterlijk van websites op hetzelfde vangende webapplicaties dat het wel- Web 2.0 is inmiddels een enigszins ge- niveau te krijgen als een desktopappli- licht mogelijk is om alle desktopappli- passeerde term. Deze werd gehangen catie. caties van de hand te doen en puur op aan toepassingen op het web die het het web verder te gaan. Dit idee wordt beter mogelijk maakte voor verschil- Door deze vooruitgangen in webte- bijvoorbeeld interessant gebruikt door ‘nieuwe’ besturingssystemen Chrome OS en Joli OS: beide op Linux geba- seerde systemen die als portal dienen LucidChart is een echte voor verscheidene webapplicaties. Voor dit artikel heb ik geprobeerd voor zover aanrader mogelijk met webapplicaties mijn zaken te doen. Hoewel ik een heel eind kwam, lende mensen, waar dan ook op de chnologie zijn er veel bedrijven ont- bleek dat ik als informaticastudent toch wereld, om te communiceren. Deze staan die zich hebben gespecialiseerd tegen beperkingen aanliep. Web 2.0-toepassingen waren mogelijk in het maken van webapplicaties die door vernieuwde webstandaarden die desktopapplicaties vervangen. Als de Mail en agenda het mogelijk maakten om in plaats van wijdverspreidheid van de benodigde oude statische hypertext, dynamische technologie nog niet toereikend is, kan Er zijn op het web een groot aantal applicaties te maken met dynamische men applicaties schrijven in Flash, dat webapplicaties beschikbaar, maar er is inhoud - technologieen die vaak wor- op bijna alle platformen van de eindge- er één die er met kop en schouders bo- venuit steekt: Google Mail. Hoewel con- currerende platformen vandaag de dag een behoorlijk beter indruk maken dan een aantal jaar geleden, heeft Google bij de introductie van Gmail een standaard gezet waar andere webmailclients niet goed overheen komen. De dominantie van Google als web- en agendadienst zorgt bovendien voor uitstekende com- patibiliteit met verschillende aantal an- dere diensten. Concurrenten als Win- dows Live Mail, Calendar van Microsoft en Calendar en Zoho Mail kunnen niet zowel de volwassenheid van de webin- Figuur 1: Screenshot van Google Mail. terface, het niveau van comptabiliteit 26.4 //30 I/O VIVAT compatibiliteit, het spamfilter als de Notities hoeveelheid beschikbare ruimte evena- Platformkeuze ren. Notities op een desktop gaan niet veel verder dan het gebruiken van een tex- Hoewel het grote voordeel van het De Universiteit Twente biedt een oude teditor, en de opgeslagen textbestanden gebruik van webapplicaties is dat je Exchange 2003-server waar ik de af- ongestructureerd over verschillende overal je werk kunt openen, heb ik gelopen drie jaar gebruik van heb ge- mappen verspreid zijn. Een ware noti- toch een paar aannames gemaakt maakt. In de loop van de tijd ben ik tie-applicatie biedt veel meer opties om voor het platform. De browser groot fan geworden van Outlook als notities te organiseren en te synchro- werd toegestaan om een Flash- client, maar zodra deze niet beschikbaar niseren. Evernote is een online dienst plugin en PDF-plugin te hebben. was, werd ik aangewezen op een ernstig waar je notities bij kunt houden, kunt Deze plugins zijn voor vrijwel alle gedateerde webinterface. Mijn overstap organiseren in verschillende mappen, platformen beschikbaar - alleen naar Google Mail en Calendar was dan en notities rijk kunt opmaken. iOS-apparaten zijn beperkt daarin. ook verademend. De webinterfaces van Dit opende iets meer opties voor zowel de mail als de agenda zorgen ook Documenten webapplicaties om te draaien, zoals voor een meer dan adequate vervanging SlideRocket en LucidChart. van Outlook. Naast mail en agenda biedt Google ook Als browser heb ik Google Chrome Google Docs aan - een bekende dienst gebruikt. Niet alleen heeft Chro- Eén ding dat Google nog niet voor el- om online te tekstverwerken, spread- me standaard een PDF- en Flash- kaar heeft is takenmanagement. Ge- sheets bij te houden en presentaties te plugin, maar is het ook één van de lukkig biedt de dienst Remember The maken. Iedereen is vrij goed bekend snelste webbrowsers die beschikbaar Milk een handige plugin voor Google met Google Docs - en daarom besloot is. Naast deze voordelen beschikt Calendar die het takenmanagement een ik gebruik te maken van Zoho Docs, Chrome ook over uitgebreide syn- stuk gebruiksvriendelijker maakt. Het de grote concurrent van Google Docs. chronisatiefunctionaliteit, waarbij werken met de combinatie van Google Zoho Docs biedt ook een rijke interface alle instellingen en extensies kunnen Mail, Calendar en Remember The Milk om tekst op te maken, die toereikend worden gesynchroniseerd. Al mijn is een adequate vervanging van Out- moet zijn voor iedereen behalve de extensies, wachtwoorden en derge- look. zwaarste Office-gebruikers. Ook biedt lijke waren beschikbaar op mijn PC, het uitstekend functionerende real-time laptop en bij Inter-Actief. Bovendien biedt Google met haar Chrome Web Store een gecentraliseerde plek om webapplicaties in je browser te in- tegreren. Ondanks deze keuze voor Chrome werken de hier beschreven applicaties prima met Firefox en moderne Internet Explorers.

Figuur 2: Screenshot uit Zoho writer. 26.4 //31 I/O VIVAT Webspelers in de cloud.

Op het moment van schrijven ver- schijnen in het streamen van muziek via het web een aantal grote partijen op het toneel. Amazon kondigde haar Cloud Player aan, Google haar Google Music Beta en Apple is bezig met een iTunes-streaming dienst. Al deze diensten komen overeen in de zin dat het de bedoeling is dat je er muziek naar uploadt en dat ver- Figuur 3: Screenshot van Cloud9 IDE. volgens via de webspeler of mobiele applicaties streamt. Het is dus niet samenwerkingsmogelijkheden om te- webgebaseerde presentatie-applicaties als Grooveshark waarbij de muziek gelijkertijd met een aantal mensen aan mooie animaties tussen slides inzetten. al aanwezig is: het is zelfs zo dat de hetzelfde document te werken. online spelers een portal zijn naar Het is in de informatica ongebruikelijk de winkels van de respectievelijke Zoho Docs is beter dan Google Docs. om academische papers te schrijven met bedrijven. De opmaakopties in de tekstverwerker een standaard office-pakket. Doorgaans zijn veel uitgebreider: lijsten, insprin- gebruikt men hier LaTeX voor. Het is Eclipse in de cloud gen en andere opmaak zijn in Zoho verrassend hoe goed de online LaTeX- Docs beter uitgewerkt met een makke- editors zijn - aanraders zijn Verbosus en Bestaande online IDE’s zijn ontwik- lijkere interface. Ook zijn er opties voor LaTeX Labs (die integreert met Google keld als klein opensource project, of meerdere kolommen, speciale tekens, Docs). Helaas bleek geen enkele van de door een kleine startup. De Eclipse Foundation is nu echter ook begon- nen met het maken webgebaseerde IDE, gebaseerd op in Java geschre- Voor ontwikkeling moet ven serversoftware gecombineerd met JavaScript client-code. Voor- lopig is het het doel om een JavaS- men het voorlopig nog cript-IDE op te leveren, en daarna door te ontwikkelen als completer offline zoeken platform. Misschien dat dit platform de eerste succesvolle webgebaseerde betere ondersteuning voor vergelij- online LaTeX-editors in staat om zowel ontwikkelomgeving kan worden! kingen. Het importeren en exporteren BibTeX als custom class-bestanden voor naar Microsoft Office liep vanuit Zoho een andere opmaak te gebruiken. Om- Docs ook vele malen beter dan vanuit dat ik deze voor mijn werk wel nodig Google Docs. Als laatste is de interface had, heb ik daarvoor een offline appli- van Zoho Docs overzichtelijker, gede- catie gebruikt. tailleerder en zet het meer de focus op het document dat getikt moet worden Bewerken van afbeeldingen in plaats van menubalken. Voor de spreadsheet- en presentatietoepassin- Er zijn heel sterke afbeeldingsbewer- gen van Zoho geldt ook dat deze veel kers. De firma Aviary heeft een aantal uitgebreider en completer aandoen dan applicaties in gebruik om afbeeldingen Google Docs, zonder in te boeten op de mee te bewerken. Er zijn applicaties samenwerkingsfunctionaliteit. voor bitmap-creaties, vectorcreaties en fotobewerking. Hoewel geen enkele Voor presentaties heb ik echter niet applicatie in de buurt komt van Adobe Zoho Docs gebruikt, maar de dienst Creative Suite of Corel’s producten, vol- SlideRocket. SlideRocket biedt een in doet het prima voor enkele basisopera- Flash geschreven applicatie aan die een ties. Het grote probleem van het online heel rijke interface biedt om presenta- bewerken van afbeeldingen is dat afbeel- ties te maken. Het voordeel dat Slide- dingen altijd verplaatst moeten worden Rocket heeft over andere webdiensten naar andere documenten. Of je nu een is dat het makkelijk Flashobjecten als screenshot aan het bijwerken bent, de video’s kan implementeren, en widgets Vivat-cover aan het maken bent, of een als Twitterstreams en polls in de presen- website ontwerpt - de afbeeldingen zul tatie zetten. Bovendien kan het als enige je op de goede plek moeten krijgen. He-

26.4 //32 I/O VIVAT laas betekent dat in de praktijk dat je je bestanden eerst moet uploaden naar de cloud om ze te bewerken, ze na bewer- king weer downloaden vanuit de cloud en dit bestand weer moeten uploaden naar een andere clouddienst. Niet al- leen is dit werk dat er buiten de brow- ser moet gebeuren, maar is het ook nog eens erg onhandig.

Ontwikkeling

Als informaticastudent moet je aan ont- wikkeling doen. De afgelopen tijd ont- wikkelde ik in Java EE voor mijn werk, Figuur 5: Screenshot van SlideRocket. in Python/HTML voor het ontwerppro- ject en in Java/Promela voor mijn ba- probeert dit wel te zijn, en heeft een Diagrammen cheloronderzoek. Het web is in potentie omgeving die naast een code-omgeving een uitstekende plek om je codewerk te ook een beperkte Platform-as-a-Service Een gedeelte van software-ontwikkeling doen: alle code veilig opgeslagen in de aanbiedt: het is mogelijk om PHP-pro- kon ik gelukkig wel op het web doen. cloud, mogelijk Google-Docs-achtig gramma’s te draaien op de servers van LucidChart is online diagramsoftware tegelijkertijd code kunnen bewerken Kodingen om te testen. Helaas is Ko- waarmee men klassendiagrammen, control flow-diagrammen, mockups en andere zaken kan maken. Het lijkt qua Je kunt binnen je web- ontwerp meer op het Mac-programma OmniGraffle Pro dan Microsoft Visio. Een van de prettig verschillen met Visio browser prima overleven is dat LucidChart niet voor je probeert na te denken: het weet dat je vormpjes libraries die automatisch bugfixes kun- dingen nog in bètafase en functioneert en pijltjes wil tekenen en niet veel meer nen krijgen, en het direct testen van het nog niet vlekkeloos. Het is een om- dan dat. Voor de meest complexe dia- webapplicaties in de browser zijn mo- geving die voor webdevelopment in de grammen is een betaald account no- gelijkheden die in de toekomst mogelijk toekomst nog veel kan betekenen, zeker dig, maar voor de meeste diagrammen moeten zijn. als het bedrijf zijn beloftes om Git, Ruby werkt het uitstekend. Een aanrader! en Python te ondersteunen ook gaat na- De huidige online IDE’s zijn echter niet komen. Muziek geschikt hiervoor. Er wordt wel gewerkt hieraan. Cloud9 is een online IDE Voor ontwikkeling moet men het voor- Muziek in de cloud is iets dat de laat- waarin PHP, Python, Ruby, HTML en lopig nog offline zoeken. Geen enkele ste paar jaar in een stroomversnelling is JavaScript geschreven kan worden. Het webomgeving komt verder dan een geraakt. Je muziek in de cloud opslaan is primair bedoeld als JavaScript-IDE, beperkte deelverzameling van web- en het overal luisteren waar je dat wil omdat het de browser kan gebruiken frameworks, en kan daarmee dus maar is een aantrekkelijke gedachte. Spotify om dynamisch code te verifiëren. Ver- beperkt in worden gezet voor webdeve- is waarschijnlijk de populairste dienst, der biedt het dichte integratie met Git- lopment en al helemaal niet voor ont- maar hoewel het een clouddienst is, is Hub om code makkelijk te delen met wikkeling van andere zaken. Voorlo- het geen webdienst (spotifyontheweb. anderen. Het is echter geen vervangen pig is men daarvoor nog op NetBeans, com werd pas beschikbaar tijdens het van een complete omgeving. Kodingen Eclipse of Visual Studio aangewezen. schrijven van dit artikel) en viel dus af voor de test. Sociaal netwerk Last. FM biedt een betaalde dienst aan om onbeperkt muziek te streamen, maar biedt geen prettige interface aan om dit te ondersteunen. Mijn vereiste om een goede webspeler te hebben bracht mij bij Grooveshark: Grooveshark laat haar gebruikers muziek uploaden en dat met elkaar delen. Het bedrijf zorgt daarbij voor de licenties, in ruil voor het tonen van advertenties of de betaling van een maandelijks bedrag. Als je een maande- lijkse bijdrage betaalt, kun je ook nog eens de nummers naar je telefoon stre- amen. Figuur 4: Screenshot van Aviary. 26.4 //33 I/O VIVAT Grooveshark is een adequate vervanger ten reageren en nog dynamischer te Conclusie van desktopspelers, met prettige facili- maken. teiten om je afspeellijst te managen, het Bijna twee weken lang heb ik alleen maar opzetten van ‘radiokanalen’ met bepaalde WebWorkers webapplicaties gebruikt, tenzij het niet categorieën muziek (denk aan ‘klassiek’ anders kon. Voor de ‘gewone’ dingen ging of ‘eighties dance’), en met integratie van JavaScript wordt altijd in een enkele dat best prima: met genoemde applicaties sociale netwerken. Het grootste voor- thread op een browser uitgevoerd. (en nog een aantal anderen) kun je de deel van Grooveshark is dat er veel meer Aangezien webapplicaties steeds meer meeste de zaken die je gewoon op inter- muziek beschikbaar is dan je zelfs op je JavaScript gebruiken en ook zware be- net doet prima uitvoeren vanuit de web- computer kunt opslaan. Van obscure Ne- rekeningen moeten uitvoeren, betekent browser. Documenten bewerken, mails derlandse muziek tot grote dancestam- dit dat een website kan ‘hangen’ als er versturen, muziek luisteren: dat ging al- pers uit de Top 40: alles is er te vinden, en zware operaties worden uitgevoerd, lemaal prima - en dat terwijl ik een grote mocht dat toch niet lukken kun je altijd simpelweg omdat er geen JavaScript hoeveelheid diensten niet eens heb uit- je eigen muziek uploaden. Helaas heeft afgehandeld kan worden als deze op geprobeerd. Niet-algemene toepassingen Grooveshark maar beperkte controle een berekening aan het werken is. Als zijn op het web echter nog niet te vinden. over de kwaliteit van de nummers die het een browser WebWorkers implemen- Met name software-ontwikkeling is nog aanbiedt, omdat deze door gebruikers teert is het mogelijk om JavaScript een heikel punt, maar ook het bewerken geüpload worden. Daarom zijn sommige ‘multithreaded’ te maken: JavaScript- van LaTeX-bestanden kwam nog niet he- nummers van slechte kwaliteit of komt de operaties kunnen in een andere thread lemaal goed uit de verf. De conclusie is tag-informatie toch niet overeen met het worden uitgevoerd, zodat zware bere- dan ook dat je met alleen een webbrowser nummer dat je hoort. keningen geen websites meer laten han- behoorlijk prima kunt overleven, als je er gen. maar niet heel speciale dingen mee wil Belangrijke nieuwe webtechnologieën doen. In het algemeen viel het me mee Op een rijtje Notifications hoe weinig ik office-applicaties, muziek- spelers en e-mailprogramma’s miste. Veel De belangrijkste nieuwe technologieën Een voordeel van desktop-applicaties van de hier genoemde applicaties - met die interactievere applicaties mogelijk is dat ze via popups aan kunnen geven name LucidChart, SlideRocket en Zoho maken: wanneer er bijvoorbeeld nieuwe chatbe- Docs - zal ik dan ook in de toekomst vaak richten binnenkomen of als bestanden blijven gebruiken. Local storage geconverteerd zijn. Webbrowsers heb- ben dat voordeel normaal gesproken De traditionele manier voor browsers om niet, maar Google Chrome implemen- data op te laten slaan is met cookies: klei- teert sinds versie 9 een standaard om ne bestandjes die door de browser voor deze notificaties weer te geven. Mozilla Bronnen websites beschreven kunnen worden. heeft aangegeven deze op termijn ook te Aan cookies kleven echter een aantal be- gaan implementeren, wanneer dit een Overzicht van nieuwe functionaliteit veiligingsproblemen en tekstbestandjes W3C-standaard wordt. in HTML5, CSS3 en JavaScript (vooral voor Chrome) zijn bovendien een primitieve manier om html5rocks.com data op te slaan. Met Local Storage wordt Canvas een flexibele maar meer afgeschermde Orion, het webgebaseerde IDE-project omgeving geïntroduceerd: websites kun- Het -element in HTML5 van de Eclipse Foundation nen lokaal bij de gebruiker een simpele maakt het mogelijk om een gedeelte in http://mmilinkov.wordpress. relationele database beschrijven. Dit de browser vrij te betekenen. Dit maakt com/2011/01/11/introducing-orion/ maakt het mogelijk om veel webapplica- het mogelijk om animaties te maken die ties zonder internettoegang functioneel voorheen alleen mogelijk waren met LucidChart te houden. Adobe Flash en Microsoft Silverlight. lucidchart.com In I/O Vivat 26.2 staat een tutorial over Evernote WebSockets hoe dit kan. evernote.com

Als een webpagina geladen is, kan deze WebGL SlideRocket met JavaScript verbinding maken met een sliderocket.com server om data uit te wisselen (dit wordt Een uitbreiding op de -tag om Zoho Docs vaak met de term AJAX aangeduid). Dit het beter mogelijk te maken 3D-beelden docs.zoho.com gaat altijd om eenvoudige berichtjes die weer te geven is WebGL. Deze is geba- heen en weer gestuurd worden, maar een seerd op OpenGL, een 3D-bibliotheek Cloud9 webpagina heeft nog geen mogelijkheid voor allerlei platformen, en maakt ge- cloud9ide.com om een permanente verbinding te ope- bruik van hardwareacceleratie op de Grooveshark nen naar de webserver. Met WebSockets platforms waar het op draait. listen.grooveshark.com wordt het wel mogelijk om een TCP-ver- binding naar een webserver te openen. Deze technologieën worden goed on- Verbosus Dit maakt verbindingen met webservers dersteund in Chrome en Firefox 4, maar verbosus.com sneller en betrouwbaarder, en maakt het het zal nog een tijd duren voordat dit Chrome OS beter mogelijk om websites sneller te la- gemeengoed is in alle webbrowsers. google.com/chromebook/ 26.4 //34 I/O VIVAT Jacco Roest Van de Voorzitter Inter-Actief

Jacco Roest werd geboren op 17 fe- bruari 1989 in Hardenberg. Hij is opgegroeid in Dedemsvaart, wat voorzitter bekend is van de Dedemsvaria. De middelbare school rondde hij af in Hardenberg met als profiel N&T. Hij begon zijn carrière in het onder- wijs op basisschool ‘ De Regenboog’ Het einde is in zicht in Dedemsvaart. Zijn middelbare- schooltijd beleefde hij op het Vecht- Het klinkt heel cliché, maar het voelt En eigenlijk voelt dit vlak na de half- dal College te Dedemsvaart en daar- toch echt wel zo. Op het moment van jaarlijkse algemene leden vergade- na in Hardenberg. Uiteindelijk heeft schrijven zijn we al op zoek naar opvol- ring (ALV) een beetje vreemd. Je hebt hij z’n VWO diploma gehaald in zes ging, op zoek naar leden die commis- deze vergadering aangegrepen om te jaar met als profiel N&T. sies willen doen die begin volgend col- laten zien aan de ALV hoe ver je bent legejaar starten en dat terwijl je dat in gevorderd met betrekking tot het be- Daarna de keuze voor Enschede, mindere mate mee gaat maken, omdat leidsplan dat we aan het begin van het een gezellige stad, gezellige mensen je half oktober klaar bent met besturen. jaar gepresenteerd hebben. Tijdens de en gezellige studievereniging. Hij is Iedereen leeft nu naar de zomervakantie vergadering krijg je een stukje feed- daar bezig met de studie Bedrijsin- toe en kijkt vooruit naar wat ze volgend back over hoe je als bestuur het eerste formatietechnologie. En hij zet, na jaar willen doen, kijken naar hun per- half jaar door bent gekomen en waar een jaar een Informaticus als voor- soonlijke (studie-)planning. Zo moet ik wij nog beter op kunnen letten. Een be- zitter, de traditie voort als een voor- zelf ook gaan kijken wat ik ga doen, qua langrijk punt, ook met betrekking tot de zitter die de studie BIT doet. vakken, maar ook in hoeverre ik iets ac- kabinetsplannen waar ik in mijn vorige Naast zijn studie heeft Jacco zich in- tiefs wil doen en waar. column over sprak, is het vervroegen gezet in verschillende commissies, van het wisselmoment van het bestuur. waaronder de ECie, ICI (nu Kick- Je merkt dat het einde in zicht is, omdat Het wisselmoment ligt op het moment IT) en de CoLeX. we op het moment bezig zijn met het op half oktober en wij zijn bezig om te zoeken naar een kandidaat-bestuur, op inventariseren wat er allemaal bij komt zoek naar opvolgers die ook deze gewel- kijken om het wisselmoment naar het dige ervaring mee kunnen maken, men- begin van het collegejaar te halen. sen met een eigen visie en die hun eigen beleid gaan voeren. Je ziet dat dit bij de Zoals gezegd, het einde is in zicht. Na- besturen om je heen ook gebeurd. Som- tuurlijk is dit jammer, want het bestuur mige besturen zijn net gewisseld, maar is geweldig om te doen en ik ga dit met ook een deel van de besturen wisselt veel enthousiasme overdragen. En in de begin volgend collegejaar uit. Er zijn al volgende Vivat hoop ik dat er een nieuw een aantal kandidaat-besturen gepre- bestuur aan het roer staat bij deze ge- senteerd, iets wat wij ook aan het eind weldige vereniging en dat alle commis- van dit collegejaar willen. sies gevuld zijn!

Verder zijn wij op zoek naar mensen voor commissies die volgend jaar star- ten en die wij als contactpersonen van het bestuur eigenlijk niet meer zo veel zien. Dat zijn de kleinere commissies die een evenement neer zetten, zoals de skireiscommissie of een commissie voor het Twents kampioenschap program- meren. Maar ook voor de studiereis zijn we op het moment op zoek naar leden. Na de geweldige reis naar de Verenigde Staten van vorig jaar willen we graag be- gin collegejaar 2012/2013 weer een reis neerzetten.

26.4 //35 I/O VIVAT Voornaam Achternaam Op bezoek bij: Redacteur I/O Vivat QUINITY, INHOUSE-DAG, VERZEKE- Quinity RINGSPRODUCTEN

Your Partner in eBusiness Solution Delivery

ellicht heb je wel eens on- ten worden aangeboden? Hoe zitten ken. Iedereen kent elkaar, wel zo gezel- line een verzekering afge- die producten in elkaar? En hoe wordt lig. Op kantoor heb je in principe geen sloten. Grote kans dat je de premie berekend? De basis voor een vaste werkplek, iedereen werkt er op aanmelding werd ver- functioneel ontwerp is te vinden in een flexwerkplekken in zowel kleinere kan- W werkt door een systeem datamodel. Dit datamodel is een repre- toortjes als in grote open ruimtes. van Quinity. Quinity is sentatie van hoe de database van het een e-business dienstver- systeem eruit dient te zien. De materie Maar er zijn meer leuke aspecten aan lener, gevestigd in Utrecht. Men houdt is behoorlijk complex. het werken bij Quinity, waaruit blijkt zich voornamelijk bezig met verzeke- dat Quinity geen ‘standaard’ bedrijf is. ringsproducten. Daarvoor heeft het be- Via een opdrachtbespreking en ont- Zo wordt er ’s middags altijd samen aan drijf een eigen systeem ontwikkeld, de werpsessies met de klant, een directeur grote tafels geluncht, is er een borrel- Quinity Insurance Solution (afgekort: van een fictieve verzekeringsmaat- commissie die twee keer per maand een QIS). schappij, moesten de wensen van de borrel organiseert, is er een feestcom- klant in kaart worden gebracht. Met de missie en zijn er verschillende sport- QIS is een volledig geïntegreerde web- informatie van de klant kon vervolgens groepen. based polis- en schadeadministratiesys- een datamodel en een functioneel ont- teem voor verzekeringsmaatschappijen. werp worden opgesteld. Dit werd tus- Quinity biedt haar werknemers ook veel In Nederland is Quinity daar erg suc- sentijds een aantal malen met de klant opleidings- en doorgroeimogelijkhe- cesvol mee, met een marktaandeel in de besproken, waarna het eindresultaat ge- den. Wanneer je begint als consultant of verzekeringsbranche van zo’n 90%. presenteerd moest worden aan de klant. software engineer volg je een uitgebreid opleidingsprogramma, en wordt je be- Op 19 mei organiseerde Quinity een De inhousedag is niet alleen een mooie geleid door een coach en vaktechnisch inhousedag. Een hele dag werken vol- gelegenheid om de werkwijze te zien begeleider. Dat maakt het mogelijk dat gens de werkwijze van Quinity, aan een binnen een deelproject, maar is ook een je al snel kunt doorgroeien naar bij- case zoals ze bij Quinity aan de ‘lopende mooie gelegenheid om kennis te maken voorbeeld de rol van senior consultant band’ voorbij komen: maak een functio- met Quinity als bedrijf. Quinity heeft / software engineer, teamleider of pro- neel ontwerp voor de inrichting van een zo’n 115 medewerkers in dienst, welke jectleider. verzekeringsproduct in QIS. Daarbij verspreid zitten over twee mooie (aan- moet worden gekeken naar met name grenzende) panden. Dat maakt dat je Wil je kennismaken met het bedrijf? drie aspecten, namelijk: welke produc- bij Quinity binnen een kleinschalige or- Kijk dan eens op www.quinity.com en ganisatie werkt. Een jonge www.werkenbijquinity.nl. Daarnaast en dynamische organisatie, organiseert men regelmatig inhouseda- welteverstaan. Dat uit zich gen. Na je studie kun je bij Quinity aan in veel aspecten. De gemid- de slag als software engineer of consul- delde leeftijd is 30 jaar en tant. Ook zijn er regelmatig interessante Quinity is een projectorga- afstudeeropdrachten beschikbaarvoor nisatie. Opdrachten wor- laatstejaars informaticastudenten. Inte- den dus uitgevoerd in pro- resse? Dan kun je je CV en cijferlijsten jectteams. De grootte van voorzien van een korte motivatie mai- zo’n team kan erg verschil- len naar [email protected]. Voor meer len, teams bestaan gemid- informatie kun je bellen met Tessa van deld uit 5-8 mensen.. De Rijnsoever of Gerda Kamphof, beiden samenstelling van een team zijn bereikbaar via het telefoonnummer wisselt vaak per opdracht, 030-2335999. waardoor je dus met veel collega’s samen zult wer- 26.4 //36 I/O VIVAT CλaSH

Column: Van de voorzitter Christiaan Baaij & Matthijs Kooijman C aSH ENIAC λ CλASH, HASKELL, CAES, HARDWAREBE- SCHRIJVING

Functioneel Hardware ontwerpen in CλaSH

e technologie achter het fa- programmeren in assembly zijn com- Combinatorische schakelingen (hard- briceren van microchips is de plexe ontwerpen niet meer behapbaar ware zonder geheugen) zijn eenvoudig afgelopen decennia met veel voor de hardware ontwerper omdat hij wiskundig (als functies) te beschrijven. grotere stappen vooruit ge- geen beschikking heeft over abstractie- Net zoals de toepassing van een functie Dgaan dan de methodologieën mechanismen. In de software-wereld op een bepaald argument altijd hetzelf- en talen voor het ontwerpen worden inmiddels hogere talen (voor- de resultaat geeft, levert een schakeling van hardware. Het gevolg namelijk objectgeoriënteerde talen) ge- bij een bepaalde invoer ook altijd de- hiervan is dat we nu meer transistoren bruikt om de beschikbare CPU kracht zelfde uitvoer.

Een functionele taal, waar de nadruk Een functionele taal, [...], is dus ligt op functies en waar het toepas- sen van functies de basisoperatie is, is daarom heel geschikt als ontwerptaal daarom heel geschikt als ont- voor hardware omdat het evaluatie- model van hardware en functioneel werptaal voor hardware [...] programmeren erg op elkaar lijken. Functionele talen hebben als bijkomend op een chip kunnen zetten dan dat we optimaal te benutten, maar in de hard- voordeel dat ze beschikken over vele ab- nuttig kunnen gebruiken. Om aan te ware wereld zijn VHDL en Verilog nog stractiemechanismen die het mogelijk geven wat de huidige staat van hard- steeds de meest gebruikte talen. maken om zeer generieke ontwerpen te ware-ontwerptalen is trekken we een maken die aan de hand van allerlei pa- vergelijking met programmeertalen: Hardware en Functionele talen rameters aanpasbaar zijn. VHDL en Verilog, de standaard hard- ware ontwerptalen zijn vergelijkbaar Om de abstractie-mechanismen die Een voorbeeld van zo’n abstractie- met high-level assembly talen. Net als in softwareprogrammeurs al tijden ge- mechanisme is dat functionele talen een high-level assembly taal zijn er wel wend zijn nu ook aan te bieden aan functies zelf als “first-class citizens” van wat trucjes om bepaalde dingen sneller hardware ontwerpers is er binnen de de taal beschouwen. Dat betekent dat op te schrijven, maar moet er nog steeds CAES1 vakgroep van de Universiteit functies zelf zowel het argument als het op een heel laag en heel gedetailleerd Twente de hardwarebeschrijvingstaal resultaat van een functie kunnen zijn niveau ontworpen worden. Net als met CλaSH2 ontwikkeld. Deze ontwerptaal (deze laatste functie noemen we dan is gebaseerd op de functionele pro- “hogere orde”). In het voorbeeld verder- grammeertaal Haskell3. Er is gekozen op zullen we gebruik maken van dit zeer oi voor een functionele taal omdat hard- handige abstractie-mechanisme. Merk ware en functies hetzelfde model vol- op dat een functie als first-class waarde f gen. Functioneel programmeren is een in de uiteindelijke hardware natuurlijk paradigma dat het ‘berekenen’ ziet als niet mogelijk is, dus de CλaSH compiler s s' de evaluatie van een wiskundige func- zoekt voor je uit welke functies precies tie. Het legt de nadruk op het toepassen waar gebruikt worden, waardoor er toch van functies, in tegenstelling tot de im- hardware gemaakt kan worden van een peratieve en objectgeoriënteerde pro- beschrijving met hogere orde functies. grammeerstijlen (Java, C/C++) die de nadruk leggen op het veranderen van Hardware en Geheugen de toestand (geheugen) van de onder- Figuur 1: Mealy Machine liggende hardware. Ondanks dat het evaluatiemodel van 26.4 //38 men die we tot onze beschikking heb- ben binnen CλaSH, zoals: hogere-orde functies, partial application, lambda- expressies, pattern matching, en type afleiding. Een schematische weergave van de CPU die we willen ontwerpen is te zien in Figuur 2.

De processor zal bestaan uit 4 execu- tie-eenheden (function units), fu₀ … fu₃, die elk een binaire operatie zullen uitvoeren. Elke executie-eenheid heeft 7 data inputs en twee adres inputs. De twee adressen geven aan welke van 7 data inputs als operanden van de functie gebruikt moeten worden. Deze 7 data inputs zijn: een externe input x, twee constanten (0 en 1) en de uit- gangswaarden van de 4 executie-eenhe- functionele talen en combinatorische den (uit de vorige kloktik). De uitvoer f(State s) i=(State s’, o) schakelingen perfect bij elkaar aan- van de processor als geheel is de oude where sluiten, bevat de meeste (interessante) waarde van de executie-eenheid fu₃. De (s’,o) = (i, s + i) hardware echter ook geheugenelemen- executie-eenheden fu₁, fu₂, en fu₃ voe- ten. Het geheugen zal vaak ook het re- Code Listing 1: Mealy-Machine. ren een vooraf vastgestelde functie uit. sultaat van de hardware beïnvloeden, menten in de uiteindelijke hardware Executie-eenheid fu₀ heeft daarentegen waardoor de uitvoer bij een bepaalde worden gezet. Via dit Mealy-machine een extra opcode ingang, opc, zodat er invoer niet meer altijd hetzelfde zal zijn. model hoeven we dus niet af te wijken uit verschillende functies gekozen kan Om met het concept ‘geheugen’ om te van het evaluatie-model van functioneel worden. De “instructies” van deze CPU gaan binnen CλaSH hebben we terug- programmeren en blijft het beschrijven bestaan dus uit de opcode en de 8 adres- gegrepen naar een oud en zeer bekend van de hardware dus consistent met de sen, die bijvoorbeeld uit een extern ge- model van hardware: de Mealy machi- achterliggende theorie. heugen afkomstig zouden kunnen zijn. ne. Een schematische weergave van de Mealy machine is te zien in Figuur 1. Een CPU ontwerp Code Listing 2 laat de volledige code zien die de eerdergenoemde CPU De Mealy-machine bestaat uit een com- Om meteen in het diepe te springen en beschrijft. We zullen hier stap voor binatorische schakeling, f, die twee in- goed te laten zien welke abstractieme- stap doorheen lopen. Op regel 1 en 2 voerwaarden heeft: de externe input, i, chanismen er allemaal in CλaSH be- worden twee type-aliassen aangemaakt, en de huidige waarde van het geheugen, schikbaar zijn, gaan we meteen over tot waar de eerste type-alias Word een s. Het resultaat van deze Mealy machine het ontwerpen van een simpele CPU. alias voor 16-bit signed integers is bestaat uit twee delen: de output, o, en Dit voorbeeld zal gebruik maken van en de tweede type-alias CpuState een de nieuwe waarde, s’, die in het geheugen de verschillende abstractiemechanis- alias voor het geheugenelement van geschreven moet worden. We beschrij- ven een functie f in CλaSH zoals te zien is in Code Listing 1. Deze voorbeeld functie geeft van een rij invoergetallen steeds de som van het huidige getal en het vorige getal. Merk op dat CλaSH code ook gewoon geldige Haskell code is. Dus hoewel we geen ruimte hebben om de syntax van CλaSH uitgebreid te behandelen, kun je je Haskell kennis direct toepassen (of van de gelegenheid gebruik maken om eens naar Haskell te kijken, dat is zeker de moeite waard!).

Hierbij geeft het State keyword aan welk argument en welk deel van het re- sultaattupel met het geheugenelement zijn verbonden. In CλaSH wordt alle hardware die geheugen bevat dus in de vorm, zoals in Code Listing 1 getoond, op geschreven. De CλaSH compiler zal er dan voor zorgen dat de geheugenele- Figuur 2: CPU Ontwerp 26.4 //39 1 type Word = Signed D16 samengevoegd in de cpu functie (re- 2 type CpuState = State (Vector D4 Word) gel 20 t/m 32). Op regel 19 geven we 3 tevens aan de cpu de top-entiteit is en 4 fu op inputs (a1, a2) = dus de top van de functie hiërarchie is. 5 op (inputs!a1) (inputs!a2) De top-entiteit mag niet polymorf of 6 hogere orde zijn. Om er voor te zorgen dat de functie cpu niet meer polymorf is 7 fu1 = fu (+) 8 fu = fu (-) moeten we hem voorzien van een type- 2 signatuur. Dit doen we op regel 20 t/m 9 fu3 = fu (*) 10 22, waarbij we dus ook het gebruik van 11 data Opcode = ShiftL | Xor | Equal de CpuState type alias terug zien. Om- 12 dat het type van cpu nu is gegeven, kan 13 multiop ShiftR = shiftR de compiler tevens de concrete types 14 multiop Xor = xor afleiden voor alle andere functies die 15 multiop Equal = \a b -> if a == b then 1 else 0 gebruikt worden door cpu. 16 Hoewel dit een vrij simpel CPU-ont- 17 fu0 opc = fu (multiop opc) 18 werp is, geeft het toch aan welke ab- 19 {-# ANN cpu TopEntity #-} stractie mogelijkheden er beschikbaar 20 cpu :: CpuState zijn in CλaSH en hoe compact een 21 -> (Word, Opcode, Vector D4 (Index D7, Index D7)) dergelijk ontwerp opgeschreven kan 22 -> (CpuState, Word) worden. De CPU kan nu gesimuleerd 23 cpu (State s) (x,opc,addrs) = (State s’, out) worden met een Haskell compiler of 24 where interpreter of naar VHDL vertaald wor- 25 inputs = [x,0,1,s!0,s!1,s!2,s!3] den met de CλaSH compiler. 26 s’ = [ fu opc inputs (addrs!0) 0 Verder met CλaSH 27 , fu1 inputs (addrs!1) 28 , fu inputs (addrs!2) 2 Wil je meer weten over CλaSH, of wil 29 , fu3 inputs (addrs!3) 30 ] je zelf eens spelen met de code of de 31 out = vlast s compiler, ga dan naar de CλaSH web- site4, waar je de compiler en verdere Code Listing 2: Simple CPU documentatie kan vinden. Tevens is de CPU geeft. Het geheugen element Dit betekent dat fu₁, fu₂, en fu₃ ook nog het functioneel hardware ontwerpen bestaat uit een vector van vier elemen- functies zijn die nog twee argumenten een actief onderzoeksgebied binnen de ten van het type Word. verwachten. CAES vakgroep: ben je geïnteresseerd in een (master)opdracht, kom dan rus- Op regel 4 en 5 staat de ‘template’ func- Om de laatste executie eenheid, fu₀, te tig eens langs bij Jan Kuper5 of Christi- tie voor elke executie-eenheid. De be- definiëren, moeten we eerst het Opcode aan Baaij schrijving van fu maakt gebruik van het type (regel 11), en een functie multiop feit dat functies zelf argumenten mogen (regel 13 t/m 15) maken. De multiop zijn van een functie. Het eerste argu- functie kan gegeven een opcode een be- ment van fu, op, is namelijk de binaire paalde functie teruggeven. De multiop operatie die de executie-eenheid uit functie maakt gebruik van zogenaamde moet voeren. Het tweede argument is Pattern Matching, waarbij de versie van een vector met de zeven data inputs, het de functie gebruikt wordt waarbij het derde argument is een tupel met daarin pattern (tussen de functienaam en het de twee adressen. Wat de fu functie doet = teken) overeen komt met de daad- (regel 5) is twee operanden selecteren werkelijke argument. Indien het eerste uit inputs en de operatie op hierop toe- argument van multiop dus gelijk is aan Bronnen passen. Merk op dat fu tevens een po- ShiftR zal hij de functie shiftR terugge- 1 CAES: Computer Architecture for lymorfe functie is: het kan omgaan met ven (let op het verschil in hoofdletter- Embedded Systems inputs van verschillende lengtes en ver- gebruik). schillende element types. 2 CλaSH: CAES Language for De waarde van de Equal case van mul- Synchronous Hardware Nu we een ‘template’ hebben voor de tiop is een zogenaamde lambda-ab- executie-eenheden kunnen we over- stractie. Dit is een anonieme functie, 3 The Haskell Programming Language gaan tot het definiëren van fu₁, fu₂, en die in dit geval de twee argumenten a en http://www.haskell.org fu₃ (regels 7 t/m 9). Hier geven we elke b heeft. Op regel 17 definiëren we dan 4 CλaSH executie-eenheid een eigen operatie eindelijk fu₀, welke dus een extra argu- http://clash.ewi.utwente.nl mee die hij moet uitvoeren. Merk op ment, een opcode, meekrijgt. dat fu drie argumenten heeft, maar nu 5 Jan Kuper maar op één argument toegepast wordt. Alle componenten worden uiteindelijk email: [email protected] 26.4 //40 Berend van den Brink ENIAC: Van de Voorzitter ENIAC Berend van den Brink is voorzitter van ENIAC: de ENschedese Infor- matica Alumni Club. ENIAC is de voorzitter alumnivereniging voor oud-studen- ten Informatica, bedrijfsinformatie- technologie en Telematica aan de Universiteit Twente. Laatst ben ik weer eens voor een dagje op daaruit voortvloeiende naamsbekendheid de UT geweest. Voor vele lezers van de van Inter-Actief beter kunnen benutten Voor slechts € 5,- per jaar kan je al lid I/O-Vivat waarschijnlijk “dagelijkse kost”. dan we nu doen. worden van deze club. Je krijgt dan En dan bedoel ik natuurlijk met name de in ieder geval de Vivats die jaarlijks vele Inter-Actief-leden die deze Vivat ook Misschien staat ENIAC niet bij ieder- verschijnen (meestal zo’n 4 stuks, lezen. Voor andere lezers zal het mogelijk een even positief bekend. Daar kan je je maar niet helemaal per kwartaal) lang geleden zijn dat ze de UT gezien heb- bij neerleggen en dan houdt het op een en uitnodigingen voor de activitei- ben. Ik kom er niet vaak, maar toch wel re- gegeven moment vanzelf op. Of je doet ten die we organiseren (meestal per gelmatig en nog steeds verandert er steeds er wat aan. En wat er ook gezegd wordt, mail). Daar mag je dan vervolgens weer wat op de Campus. Directe aanlei- ENIAC is altijd een vereniging geweest (veelal gratis!) aan deelnemen. En ding was de promotie van Machiel van waar ruimte is voor initiatieven van leden. al doe je maar eens in de paar jaar der Bijl, oud ENIAC-bestuurder en voor Dus vind je dat ENIAC beter kan? Beter ergens aan mee, die € 5,- kan toch mij ook oud-collega, in de relatief nieuwe moet? Doe er wat aan. Mis je een activi- bijna iedere informatica-alumnus Prof.dr. G. Berkhoffzaal (voorheen Waaier teit? Organiseer er hem maar. Het bestuur wel missen? Zo houd je toch nog 4). Een in vele opzichten unieke gebeur- biedt je alle ruimte en ondersteuning. Wil wat binding met je wetenschappe- tenis. Natuurlijk allereerst voor Machiel, je iets met je vroegere doegroep? Een ac- lijke roots en af en toe contact met want promoveren doe je niet iedere dag. tiviteit die openstaat voor alle leden? Het vrienden uit je studietijd. Gefeliciteerd! bestuur staat achter je, met ondersteuning in de communicatie en een financiële bij- Berend van den Brink Maar voor Prof. dr. ir. Arend Rensink was drage. Laten we er met z’n alle voor zorgen [email protected] het ook de eerste promotie waar hij als dat ENIAC weer een bruisende vereniging “Prof.” bij zat, in de rol van promotor. En wordt. voor de rector, Prof. dr. ir. Brinksma was het de eerste keer dat hij als rector en pro- Vrij snel na mijn “dagje Enschede” kwam motor de bul mocht tekenen. En ik weet er een mail waarmee drie oud-bestuurders vrijwel zeker dat het ook de eerste promo- van Inter-Actief hun belangstelling voor tie is geweest waarbij tijdens de felicitatie een bestuursfunctie kenbaar maakten. Ge- van de promovendus een gloedvol be- lukkig. Want Francis heeft na vele jaren in toog werd gehouden voor het werven van het bestuur te kennen gegeven dat hij aan ENIAC-actievelingen. Dank je, Arend! het eind van het jaar wil stoppen. En met Als het nou niet lukt, weet ik het niet meer. een nieuw bestuur kan ENIAC er weer fris tegenaan. Met drie nieuwe actievelingen Rond de promotie had ik diverse afspraken zijn we goed op weg, maar natuurlijk kun- en heb ik mensen gesproken over de toe- nen we nog veel meer impulsen gebruiken. komst van ENIAC. Gelukkig overheerst Doe je mee? Meld je snel aan of lees eerst de mening dat een vereniging voor INF/ de oproep verder in dit katern en kies iets BIT/TEL-alumni er zeker moet zijn en dat wat je aanspreekt. En natuurlijk wil ik ook het de moeite waard is daar energie in te graag je aandacht vestigen op het artikel steken. Gelukkig, dan heb ik dat de afge- van de scriptieprijs-winnaars Christiaan lopen jaren in ieder geval niet voor niets Baaij & Matthijs Kooijman over “Functio- gedaan. Ook hebben we gesproken over neel hardware ontwerpen in CλaSH”, ver- de bekendheid van ENIAC en van Inter- derop in dit ENIAC-katern. Actief en mogelijkheden van verdergaande samenwerking. Natuurlijk is een alumnus Tenslotte wil ik jullie vragen of je 26 no- wat anders dan een student, maar een vember al in je agenda hebt gezet? Dan alumnus is natuurlijk wel altijd student organiseert de UT een groots opgezette geweest. Nou biedt Inter-Actief tijdens alumnidag omdat de UT dit jaar 50 jaar de studie zoveel directe voordelen dat ei- bestaat. Een goede gelegenheid voor een genlijk iedere student uit de doelgroep lid “dagje Enschede” en het ontmoeten van wordt. Mogelijk dat we die binding en de oude bekenden. 26.4 //41 Floor de Jong External Sourcing Op bezoek bij: Coordinator at Shell SHELL, AFSTUDEREN, ICT, TaCIT, Shell CONSULTANCY

Interview Floor de Jong

itmaal zijn we op bezoek ge- goed bevallen dat ik dacht: ‘hier wil ik Ik heb me daarna ingeschreven voor de weest bij Floor de Jong. Floor wel blijven hangen’ en gelukkig was het business challenge van Shell, Gourami. heeft BIT gestudeerd aan de bij Shell ook zo goed bevallen dat ik hier Nadat ik online mijn CV had ingevuld Universiteit Twente en is nu in maart 2009 aan de slag kon. Ik woon werd ik uitgenodigd voor een interview Dwerkzaam bij Shell. Naast tegenwoordig in Voorburg met mijn en toen ik daar doorheen was kon ik in haar studie BIT heeft Floor vriend en werk in Rijswijk. principe ingedeeld worden in een case. een jaar in het bestuur van Ze bleken echter geen ICT cases te heb- Inter-Actief gezeten (bestuur 26), veel Hoe ben je bij Shell terecht gekomen? ben bij die versie van Gourami, dus ik op het gebied van voorlichting georga- zou een case moeten doen die weinig niseerd, meerdere jaren in de BIT on- Ik had tijdens mijn studie nooit het met mijn achtergrond te maken zou derwijs kwaliteit commissie gezeten, idee om bij Shell af te studeren. Waar ik hebben. Daarom boden ze mij aan om het Skill Certificate van de Student Uni- me destijds vooral op oriënteerde was in plaats van een case een stage bij Shell on opgezet en ze is op studiereis naar consultancy en dan specifiek strategy te komen doen, waarop ik vroeg of ik India geweest. consultancy. Ik ben bij zo’n beetje alle ook bij Shell kon afstuderen en dat bleek strategy houses langs geweest, maar te kunnen! Op dat moment baalde ik er Kun je ons wat meer over jezelf vertel- daar kun je niet afstuderen. Ik ben bij eigenlijk flink van, aangezien ik me ver- len? Shell terecht gekomen via het bestuur heugd had op Gourami, maar achteraf van Inter-Actief. Het bestuur van Inter- gezien ben ik erg blij mee, aangezien ik Ik ben dus Floor de Jong, sinds kort Actief werd uitgenodigd voor een denk dat een stage je veel meer inzicht 27 jaar en ik werk sinds 2 jaar bij Shell. besturendag waar ik er achterkwam wat geeft in de werking van een bedrijf dan Daarvoor heb ik al 9 maanden afge- er allemaal op het gebied van ICT bij een business course. studeerd bij Shell, hoewel dat in een Shell plaatsvindt. Vervolgens werd mij heel ander onderdeel was dan waar ik door een Ebbinge recruiter aangeraden Wat heb je voor afstudeer opdracht nu werk. Het afstuderen was echter zo om eens bij Shell te kijken. gedaan?

Bij Shell zijn er in de loop van de tijd al- lerlei programma’s ontwikkeld, bijvoor- beeld de interne vacaturebank. De ap- plicatie support van deze programma’s is uitbesteed aan een Indiaas bedrijf. Bij applicatie support moet worden ge- dacht aan bugs oplossen, nieuwe func- tionaliteit toevoegen maar ook mensen die ergens niet uit komen hulp bieden, oftewel helpdesk.

Het bleek erg lastig om de medewer- kers in India aan te sturen. De cultuur is daar extreem anders, de werkproces- sen zijn anders en de manier waarop zij succes meten is ook heel anders. Als je bijvoorbeeld in Nederland aardig bent tegen klanten van de helpdesk wordt je Figuur 1: Floor op haar werkplek hulp vaak al snel als goed beoordeeld. 26.4 //42 I/O VIVAT In India is het veel meer tot in detail het beste bij kunnen steunen en welke kelen van dergelijke software. Dit is gespecificeerd hoe succes moet worden cursussen je zou moeten volgen etc. Je daarom geen goed voorbeeld van wat gemeten. Ze meten bijvoorbeeld hoe- wordt bij Shell echt behandeld als een je mijn studie kan doen, maar er is ook veel tickets ze binnen krijgen, hoe snel waardevolle werknemer en ze willen nog een andere reden dat ik hier zit. Ta- ze worden opgelost, hoeveel er naar een graag je potentie zo goed mogelijk be- CIT in zijn huidige vorm bestaat name- volgend niveau (bijvoorbeeld naar me- nutten en dat geeft best een tof gevoel! lijk pas sinds 2010 en de ‘tools, policy’s dewerkers die werkelijk het programma en processes’ van deze functie, dus hoe onderhouden) doorgaan en dat botst Waar ben je op het moment mee zoeken we mensen, welk tarief moeten nog wel eens met de Nederlandse ma- bezig? ze krijgen etc, zijn nog niet opgesteld, nier van werken. dat mag ik nu doen en daarna ga ik naar Ik ben op het moment bezig met mijn mijn volgende baan. Voor mijn afstudeeropdracht werd ik derde grote klus bij Shell en ga al bijna gevraagd om een besturingsmodel te met mijn vierde beginnen. Het is bij Waar heb je een hekel aan en wat vind ontwikkelen voor de relatie met een Shell ook de bedoeling dat je in korte je geweldig binnen Shell? dergelijk bedrijf. Dit is in feite een raam- tijd bij meerdere functies langsgaat. Op werk wat beschrijft wat voor rollen er bij het moment ben ik ‘External Sourcing Waar ik een hekel aan heb is de bureau- zo’n relatie nodig zijn, bijvoorbeeld een Coordinator for P&T TaCIT’. Hoewel cratie binnen Shell, er zijn ontzettend relatiemanager en een applicatie specia- dit erg chique klinkt komt het er op neer veel policies en soms lijkt de situatie list binnen je eigen organisatie en team- dat ik mensen inhuur voor projecten. bijna niet werkbaar en dat is iets waar je leiders bij de externe partij. tegen moet kunnen, helaas niet een van We hebben (in een versimpelde versie) mijn sterkste kanten. Heb je veel aan je studie gehad? bij Shell twee IT organisaties. De ‘stan- daard IT afdeling’ die gaat over dingen Wat ik echter super leuk vind aan Shell Als je bij Shell aan de slag gaat met een zoals applicatie support en de IT infra- is het internationale karakter en dan be- IT-achtergrond, dan wordt je niet ie- structuur. Daarnaast heb je TaCIT, ofte- doel ik niet eens dat je veel gaat reizen, mand die erg de technologie induikt, die wel Technical en Competative IT en dit want dat geldt lang niet altijd. Ik zit nu echt gaat programmeren of ontwikke- is de tak die zelf programma’s ontwik- in een kamer met een Ier, een Portugees, len. Je wordt iemand die gaat nadenken kelt en Shell anders maakt dan bijvoor- een Iraniër, een Canadees en mijn baas over IT op een hoger niveau. Tijdens beeld BP of ExxonMobil. uit Indonesië. Dat is echt ontzettend mijn afstudeeropdracht heb ik geen en- leuk, maar dat heb je pas door als je hier kele regel broncode gezien, maar ik heb Een van de punten waarin Shell de af- werkt. Verder is de work-life balance erg wel met de applicatiebeheerders en hun gelopen 30 jaar uitblinkt, is het vinden goed bij Shell en uiteindelijk ook een bazen gepraat . Het gaat er dus om dat je van olie. Shell doet overal ter wereld van de redenen dat ik niet bij een con- snapt waar het over gaat, dus dat je weet testen om te zoeken naar olie en gas en sultancy bedrijf aan de slag ben gegaan. wat programmeren is en wat een archi- dit levert petabyte’s aan data op, welke tectuur is, maar vooral dat je op een ni- worden geïnterpreteerd door onze su- Bedankt voor het Interview! veau hoger kan kijken en dat allemaal in percomputers. Hoewel concurrenten verband met elkaar kan brengen en daar dit natuurlijk ook doen, blinkt Shell uit is BIT een zeer geschikte opleiding voor. bij het vinden van olie en gas vanwege de supergoede interpretatie software die Als graduate wordt je bij Shell als een door TaCIT wordt ontwikkeld. talent gezien en er zijn mensen die na- denken over wat jij voor Shell kan be- Mijn functie is om externe mensen te tekenen in 10 jaar en hoe ze jou hier zoeken en in te huren voor het ontwik- 26.4 //43 I/O VIVAT

Immorality Symposium Commissie Immorality IMMORALITY, SOCIAL ENGINEE- RING, HACKING, PRIVACY

De duistere kant van IT?

p 5 oktober houdt Inter- hoeveel sites slecht beveiligd zijn. Hoe gaan naar een bachelor- of afstudeer- Actief weer een studenten- kan dit en hoe kan dit probleem opge- opdracht, of gewoon voor een eerste symposium: Immorality. lost worden? kennismaking. Uiteraard zul je de hele Het thema deze dag zal ‘de dag voorzien worden van koffie, thee, Oduistere kant van IT’ zijn. Privacy frisdrank en lunch, en is er een bor- Als IT-studenten beseffen rel achteraf. En dat alles voor een heel we ons natuurlijk maar al te Hoe vaak plaats je je privégegevens op schappelijke prijs. We zien je graag, de goed dat het digitale iets moois is. Toch het internet? En hoe gaan bedrijven hier 5e van oktober! zijn wij de laatsten om te ontkennen dat mee om? Je wil natuurlijk niet dat er met er ook een andere kant aan zit. Deze deze gegevens rondgestrooid wordt, andere kant wordt, nu computers pro- maar daar heb je zelf maar weinig con- minenter en prominenter aanwezig zijn trole over. Hoe bedrijven de veiligheid in de samenleving, steeds invloedrijker. van je privégegevens waarborgen en Daarom is het interessant en belangrijk hoe de wetgeving op dit gebied in elkaar om hier eens een dag aandacht aan te zit is de vraag die wij ons stellen op Im- besteden. morality.

Natuurlijk is ‘de duistere kant’ een zeer Social engineering breed begrip. Het eerste waar u aan denkt is waarschijnlijk hacking en de Je kunt je technisch nog zo goed bevei- bijbehorende security, maar de duistere ligen, maar is de mens niet de zwakste kant van IT is veel groter. Zo zullen pri- schakel van de beveiliging van je sys- vacy, wetgeving en social engeneering temen? Social engineering is de kunst een aantal onderwerpen zijn die be- van het misbruiken van de mens en sproken zullen worden. Over de exacte zijn psyche om op die manier een sys- invulling kunnen we nog niet veel be- teem te kraken. Dat klinkt wellicht wat kend maken, maar één van de sprekers onduidelijk, maar het voorbeeld van e- zal David Nieborg zijn. Verderop in dit mails die op naam van een bank wor- katern staat een interview met hem. den verzonden en de ontvanger vragen zijn wachtwoord op te sturen, is heel Hacking concreet. Uiteraard zijn er vele andere manieren. Zoals gezegd is dit waarschijnlijk het meest voor de hand liggende onder- Overige informatie werp binnen de immorele kant van de IT, dus wie zijn wij om er geen aandacht Met dit interessante, prikkelende thema aan te schenken? Beide kanten van de denken we een fantastisch symposium medaille zullen daarbij aan bod komen, neer te gaan zetten. Naast boeiende le- dus zowel het hacken als het beveiligen zingen zullen er een aantal bedrijven daartegen. Het is van het grootste be- aanwezig zijn met een stand en een aan- lang dat het web goed beveiligd is. Stel tal werknemers. Deze bedrijven komen Bronnen je voor dat iedereen bij je online ban- speciaal voor jou naar het symposium www.immorality.nl Datum: 5 Oktober 2011 kieren account kan. Dit mag natuurlijk en daarmee vormt Immorality een uit- Grolsch Veste niet, maar het is verbazingwekkend stekende gelegenheid om op zoek te Kosten: 5 euro 26.4 //45 David Nieborg Interview: David Game-onderzoeker GAMEMAKERS, GAMES, FEITELIJKE Nieborg ASPECTEN, GEWELD, MEDIA

Zijn games wel zo onschuldig?

avid Nieborg is 30 jaar oud bleem als je Schindler’s List kijkt, waar scripts vind je eerder terug in films dan en is cum laude afgestudeerd toch ook ethisch onverantwoorde din- in games. aan de Universiteit Utrecht gen gebeuren. Maar als iemand een ter- met het onderwerp interactie rorist speelt is hij weer schietlustig. Hebben games dan geen invloed op de Dtussen populaire cultuur en echte wereld? het Amerikaanse leger. Hij Kijkend naar voorbeelden als de schiet- woont momenteel in Am- partij in Alphen aan de Rijn, heeft de Games hebben wel degelijk invloed op sterdam, waar hij in juni promoveert gamewereld dan invloed op de echte de mens, maar dat ligt geheel aan de aan de Universiteit van Amsterdam op wereld? context. Als je gewoon speels en com- het gebied van politieke economie van petitief een spel online aan het spelen de game industrie. Daarnaast is hij jour- Bij een schietpartij als in Alphen of bij bent heeft het schieten op personen nalist voor het NRC next, schrijft hij Columbine kun je eigenlijk alleen maar geen invloed op je hersenen. Het is niet columns over computergames en is hij algemene observaties doen. Er roept al zo dat een klik op de knop meteen iets adviseur over social media. Hij zal op vrij snel iemand dat de oorzaak bij de omschakelt in je hersenen waardoor 5 oktober 2011 spreken op het sympo- gewelddadige game ligt, terwijl dit nog je schietlustig wordt. Maar als je het sium Immorality. helemaal niet aangetoond kan worden. in een andere context plaatst, bijvoor- Er zijn zo veel factoren die invloed heb- beeld in de politie of het leger, worden Wordt er in de game-industrie gekeken ben op deze mensen dat je niet kunt schietspellen wel degelijk gebruikt om naar morele aspecten in een video- zeggen dat het aan gewelddadige games procedures te leren aan soldaten. Dan spel? ligt. Eric Harris bleek achteraf een psy- kan er ook gecontroleerd worden wat chopaat te zijn, dat is een veel betere ze goed deden en wat beter kan. Er zijn Gamemakers richten zich meer op de verklaring dan dat hij gewelddadige bijvoorbeeld ook levels opgedoken van feitelijke aspecten in een spel. De na- games speelt. Er zijn altijd drie pun- de compound van Al Qaida. Wie weet druk ligt meer op hoe wapens werken ten bij dit soort problemen: je kunt het hebben de Navy SEALs dit level wel vele en hoe groot een bominslag moet zijn, nooit voorkomen, er is geen eenzijdig malen gespeeld voordat ze daadwerke- maar kijken daarbij minder naar de profiel dat bij deze mensen hoort en er lijk de inval hebben gedaan. morele kant. Je schiet vrijwel altijd als is niet één factor aan te wijzen waardoor blanke Amerikaanse soldaat een terro- dit komt. De FBI heeft dan ook gezegd Dus games kunnen ook een boodschap rist neer, maar er wordt geen aandacht dat de oorzaak niet bij games lag. Jour- overbrengen geschonken aan waarom deze man ter- nalisten doen er daarom ook geen eer rorist is. Je bent ook nooit de terrorist aan om dit probleem aan computer- Ook games kunnen inderdaad een in singleplayer spellen. In multiplayer games toe te schrijven en moeten eerst boodschap overbrengen, maar dat is spellen kan je dan nog wel de terrorist het onderzoek afwachten. erg afhankelijk voor de personen die spelen, maar dan mist er een verhaal het spelen. Ik zou als ik kinderen had achter het terrorist zijn. De oorzaak van dit probleem is eerder ze geen games laten spelen waar ze niet toe te wijzen aan populaire cultuur. Na oud genoeg voor zijn, net zoals ik geen Maar houden bedrijven er dan zelf het voorval bij Columbine zijn in heel Schindler’s List met ze zou kijken. Daar- rekening mee? Amerika meer van dit soort schietpar- om worden er ook ratings aan games tijen voorgevallen. Er wordt dus eerder gegeven. Kinderen zijn daar nou een- Er zijn zeker gameontwikkelaars die gekopieerd van andere gebeurtenissen. maal vatbaarder voor. Maar naar mijn hiermee experimenteren. Maar de iro- Nu kan het natuurlijk zijn dat dit ge- idee hebben games niks te maken met nie is een beetje dat gamemakers nog kopieerd wordt van games. Maar zulke de schietpartijen en maken ze mensen wel bereid zijn dit aspect op te nemen in schietpartijen hebben vaak eenzelfde niet gewelddadiger. hun spellen, maar dat het de media en patroon; de dader wil eerst anderen van de ouders zijn die dit niet verantwoord hun leven nemen voordat ze hun eigen Hartelijk bedankt voor het interview en vinden. Mensen vinden het geen pro- leven nemen. En zulk soort patronen en tot op 5 oktober 2011. 26.4 //46 VOLGENDE KEER IN I/O VIVAT

- COMPLEX ADAPTIVE SYSTEMS - NFC (BETALINGSCHIPS) - DNS FILTERING / PROTECT IP ACT Advertentie ASML