MACHAZINE Volume 17 - Issue 2 December 2012
zuipen of verzuipen
WiFi Pool Party Computer Science
RDF Data Creation The Mathematics behind
Google’s PageRank Historical Figure
Ada Lovelace
containing: Current Affairs | Association | Computer Science | Mathematics | Miscellaneous
5 000 METER TRACK 150 000 KOFFERS PER DAG 1 BAS BIJKERK
Inderdaad, het zijn imposante systemen die Vanderlande Industries realiseert. Material handling systemen voor tal van nationale en internationale distributiecentra, luchthavens en sorteercentra. De ene keer betrekkelijk compact en overzichtelijk. De andere keer zeer uitgebreid, behorend tot ‘s werelds grootste installaties. Complex en opgebouwd uit de meest innovatieve en creatieve oplossingen op het gebied van elektronica, mechanica en besturingstechnologie.
Unieke systemen, die altijd weer anders zijn. Gerealiseerd door bijzondere mensen. Bas Bijkerk bijvoorbeeld. Een van onze collega’s die niet uitgesproken raakt over de projecten waarbij hij van begin tot einde betrokken is. Internationale miljoenenprojecten, waar hij in multidisciplinair teamverband aan werkt. En waar hij trots op is! Net als zijn 2 000 collega’s op onze verschillende kantoren in de wereld.
UNIEKE SYSTEMEN, BIJZONDERE MENSEN
De boeiendste technische en logistieke uitdagingen. Een creatieve omgeving met gedreven collega’s die van aanpakken weten. De afwisseling van projectenwerk. Met internationale carrièremogelijkheden. Unieke systemen. Bijzondere mensen. Je vindt het bij Vanderlande Industries. Kijk op www.vanderlande.com. WWW.VANDERLANDE.COM
content & colophon Machazine is a publication of
W.I.S.V. ‘Christiaan Huygens’
Current Affairs
Editor in Chief
Arie Troebel
3
Van Bestuur 56 - Hylke Visser
4
Prof.dr. C. Witteveen - 12 (her)kennen
5
FSR: Het tienpuntenplan
6
Peter Pul Editorial staff Kees Boon, Friso Abcouwer, Derk-Jan Karrenbeld, Kirsten Koolstra, Claudia Wagenaar, Ralf Nieuwenhuizen, Rebecca Jacobs, Max de Groot (QQ’er) Art Directors Peter Pul, Bojana Dumeljic, Hylke Visser, Floris Verburg, Cathaline Meloen
Contact address Mekelweg 4, 2628 CD Delft E:
[email protected] T: 015-2782532
Concept and design G2O Kesteren
Publisher
DeltaHage bv
Cover
Association TU Delft Nieuws
8
WiFi Zwembadfeest : Zuipen of verzuipen
9
Fotocollage 10 MaPHyA Double Degree Diner in de /PUB
11
Algemene Docenten en Studenten Lounge
11
http://leslyeb.wordpress.com/
Cooperating on this issue: Terms and Conditions The MaCHazine-committee and the Board are responsible for the content within this MaCHazine, in such terms that the opinion of a writer is not (necessarily) a reflection of the opinion of the committee or association. All rights reserved.
Computer Science Hacking The Government
12
Java Puzzlers
13
Dynamic loading and task migration for a Composable Multi-core
16
Processor System-on-a-Chip
16
Ontology driven RDF data creation
18
No part of this publication may be reproduced,
Library Updating. Risk it Now, or Risk it Later?
24
stored in a (retrieval) system or transmitted in
Teaching Reactive Programming
25
any form or any means, electronic, mechanical, photocopying, recording, scanning or otherwise, without the prior written permission of the committee or association.
Advertiser index DSW Outside cover VanDerLande Inside cover front Quinity 7 TOPDesk 14-15 De Delftse Bedrijvendagen 22-23 Deloitte 28-29 Q42 34-35
Mathematics Wiskundepuzzel 21 A Glimpse beneath the surface: modeling 3D material with 2D data
26
Google’s PageRank
30
Het vinden van een invariante maat
32
The Hidden Accuracy of DG
36
Miscellaneous Bachelor Eindproject: Tips and Tricks
25
Historical Figure: Ada Lovelace
38
De opleidingsdirecteuren
41
CH’ers over hun minor
42
Een student moet ook eten - Workshop pasta maken
44
Volume 17 • Issue 2 • December 2012
Volume 17 • Issue 2 • December 2012
Activity Calendar January Editorial : Coffee Break
15 General Assembly January 31 - February 10: WiFi Wintersport
Bojana Dumeljic
February It is that time of the year when everyone is working hard to finish their
12 - 14 Application Trainings DDB
deadlines before the holidays. We at the MaCHazine have done our best
14 SjaarCie party
again this quarter. During this stressful period it is not uncommon to
16-17 LAN party
reach a point where you lack inspiration or motivation. Frustration rises
18 Symposium
with the stress level as the deadlines creep closer. What better way to get
19 - 21 Presentation Days DDB
out of those dips, then a caffeine high?
26 General Assembly
Unfortunately, our dear faculty does not offer the comfort of good coffee anymore. Those lovely espressos, lattes and cappuccinos have left this building. Personally I especially miss the large caramel cappuccino. The machines in the hallways and the cafeteria are the only option left. A little birdy told me that recently a group of TU Delft students conducted an experiment to measure the caffeine levels in the machine coffee. They found that the coffee held little to no caffeine at all!
27 Pre-Dies
Current Affairs
Lucky for us the center of Delft offers plenty of solutions for caffeine deprivation. It is rich with lovely cafes that serve delicious coffee. Just like out faculty they are warm and have comfortable couches. The machines could never replace an actual barista that the cafes do have and EWI doesn’t. Watching them prepare your coffee is as much a part of a coffee break as actually drinking it. It becomes especially fun when you are at a place like Coffee Company, where they make beautiful latte art. It is a little sad to drink it, since that ruins the pretty design. It is a bummer that you have to go all the way to the city center to get good coffee. Even though it is cold and wet outside, stretching your legs a bit and getting your blood pumping is the second best solution to the inspiration problem (coffee will always stay first). Combining them would be the ideal solution!
Lunch Lecture by Ortec Finance 28 Excursion to IMC
March 4 - 8 Dies 12 Lecture KMPG 18
Start In-house Days DDB
20 Klaverjas tournament
CH Twitter
Three interesting facts about coffee: 1.
Coffee grows on trees that can grow to be nine meters tall.
2.
Espresso (|e-spres-oh|) is not a bean, but a way of preparing coffee: “Shooting pressurized, hot water through finely round coffee.”
3.
2
The coffee bean is actually a seed inside a bright red berry.
Charl Botha @cpbotha It looks like your Skype account is hackable if the hacker knows your primary email address: http://goo.gl/EQcz4 #skype #hack Birna van Riemsdijk @mbirna Dat zijn wij! ;-) RT @datalytix: TU Delft opent lab voor interactieve intelligentie http://j.mp/UxAmwh #data #TUDelft
Volume 17 • Issue 2 • December 2012
Volume 17 • Issue 2 • December 2012
ὑπερβολή Arie Troebel
Lieve, lieve schatjes in het altijd zo mooie Delft, Op Ter-Weksel gaat alles zoals een goed geoliede machine hoort te lopen, kortom: daar gaan we het eens niet over hebben. Nee, we gaan het hebben over de jongen ‘Al-Sijzi’ ( 945 – 1020). Tja, bij het lezen van deze naam roepen jullie natuurlijk in één adem: “De hyperbool!”, en natuurlijk komen dan gelijk de rode koontjes op de wangen te staan, want zeg nu zelf: is er nog iets leuker dan een hyperbool?? Maar goed, ik dwaal even af, waar ik het nu over wil hebben is dit: hoe kwam Al-Sijzi hierop?!
Ook na het lezen van de vele ‘Veda’s” had ik, jawel, jullie Arie, nog geen enkele strohalm te pakken. Nou, als Arie iets niet kan vinden dan moet er veel, héél veel gebeuren! Dus ik moest aan de noodbel trekken, en als ik aan de noodbel trek (en dat is echt in uiterste nood), dan komt mijn ‘tja, hoe noem je zoiets’ G.Flater. “Arie, echt geweldig dat ik met je mee mag denken.” Dat waren zijn woorden toen ik het probleem op tafel had gelegd. Punt is, waarde lezers, dat deze ‘wetenschapper’ bijzonder pragmatisch is ingesteld en dat baarde me altijd zorgen. ‘We gaan de boel eens visualiseren, Arie.’ Jawel, dat zei G.Flater tegen me! “We gaan naar het Diamantmuseum in Amsterdam, eens zien wat we daar kunnen ontdekken!” Het koude zweet liep al over mijn rug, dus waarom ik het goedkeurde is me een raadsel, maar ja, een wetenschapper onder druk maakt rare sprongen.
Het opgevangen diamantgruis deed Flater in een zandloper, en hij schudde het geheel door elkaar. Vervolgens deed hij een hele, hele scherpe lamp ontsteken en hield de zandloper dicht ervoor,met een sterk vergrootglas “Arie, Arie, kijk dan!” Scandeerde hij, en ik keek, en mijn mond viel open: ik zag nu de hyperbool werkelijk zitten. Ik sprong een gat in de lucht, maar toen ik weer met beide benen op de grond stond dacht ik: “Maar zou meneer Al-Sijzi dan ook met een diamant gewerkt hebben om zo het stukje hyperbool te visualiseren??” Jullie begrijpen vast wel dat ik daar nog niet uit ben gekomen. Arie Troebel
Current Affairs
Om me te verplaatsen in de gedachtegang van Al-Sijzi heb ik me eerst gestort in de Heliocentrische theorie: daar moest immers de pret zijn begonnen. Nu is de Heliocentrische theorie mij niet geheel onbekend, dus dat las wel lekker en luchtig weg. Uiteraard las ik nu de nodige fouten maar die liet ik voor wat ze waren: immers, ik was op zoek naar het ontstaan van de.. juist!
Aangekomen in het Diamantmuseum liepen we met de grootst mogelijke voorzichtigheid rond, dat wil zeggen: ík liep voorzichtig rond! Wat Flater deed wil ik nooit en te nimmer meer meemaken, en hoe hij het deed is me nog een raadsel, maar hij had daar de Allnatt-diamant in zijn handen. “Arie, kijk! Misschien kunnen we hier iets mee! Laten we zien wat we eruit kunnen halen.” En met een speciale vijl schraapte meneer over de Allnatt-diamant kleiner en kleiner.
3
From the Board Hylke Visser
When the days are getting shorter, the Christmas holiday is coming and the year has almost ended, you start to think about last year. What were my expectations at the beginning of this year, the good intentions I wrote down at New Year’s Eve? And, more important, what happened to
When you guys were studying or doing the exams of the first quarter, I finally had time to start working on this. Now, at the moment I’m writing this, the second quarter has just started. This is a quarter full of activities. Lunch lectures, the ADSL (at which students can get to know their teachers), the North Western European Regional Contest, the WiFi Pool Party and the Members Lunch (with a very special guest). When you’re reading this, all these activities are already behind us, but right now I’m really excited to see how all these activities are going to work out.
them?
Current Affairs
About a year ago I was, just like the current second year Computer Science students, working on my programming exercises for Algorithmics and figuring out how to write an Iris flower classification function in R for the lab assignment of Probability and Statistics. But the biggest part of my day was spent on my Information and Knowledge Engineering project. In a team of three students, we were building an application that could recommend music to a user. Music the user doesn’t know yet, but fits his preferences, according to a user profile we calculated with his listening behavior. In the mean time I was also working on the yearbook of CH. Since October, we have been engaged in gathering all submissions, negotiating with printing offices and brainstorming for the best ideas to make the book even better. Do we want that silver metallic ink or maybe the stuff that looks like raindrops on the cover of the book. At that point I didn’t expect to be asked to become a board member of CH a few months later.
Since the moment I had decided to say yes, it seemed as if time went a lot faster. With the rest of the prospective board we started to write our policy document. We made a list of things we wanted to change within CH, committees we wanted to discontinue, new committees we wanted to start. Other things we wanted to do different than the previous years. This document is basically the guidance for the things you do during your time as a board.
For me, the secretary of CH, the most important issue in our policy was cleaning up our members database and making sure everything is up-to-date. I’m working really hard on getting that right. Finding out which members stopped their studies, making sure every member gets his MaCHazine on the right address, finding out the correct addresses of our alumni. Have you recently moved? Please send me an email to update your address!
4
In the second quarter I will be spending much time helping the Study Visit Committee. Even before I was asked to become a board member, I wanted to join the Study Visit Committee. This committee organizes a three week study visit to Japan and South Korea. A group of 30 students and 2 members of the academic staff will leave the Netherlands on July 13, 2013 to visit universities, companies and cultural highlights in Tokyo, Kyoto, Osaka, Daejeon, Seoul and several other cities. Next month we will have a lot of work to do. First, we will have to find companies in the Netherlands that are willing to let our participants work on cases to finance the study visit. Next, we will have to make appointments with universities and companies we want to visit during the trip. It’s a lot of work, but I’m sure that it will succeed. All this has to be done before mid-January, because then we have the GO/NO GO moment. In a General Meeting there will be a vote to decide whether the Study Visit will take place or not. Let’s go back to the questions I have posed in the introduction of this article. A year ago, I thought by now, I would have finished my second year, that I would be doing my minor right now and finish my bachelor in three years. Well those three years are not going to happen anymore. I’m not studying at all this year. (I did however finish my second year.) Almost out of nowhere I became a board member of CH, which is not always easy. Your days are long and you have little time for friends. But you receive so much in return. I met a huge amount of people and I have already learned so much. I think this is much better than what I planned on that New Year’s Eve.
Volume 17 • Issue 2 • December 2012
om die wijn geschikt te maken voor consumptie. Het kost veel meer moeite een goede brug te bouwen, dan te controleren dat het om een goede brug gaat. Produceren kost over het algemeen meer tijd dan consumeren. Ga zo maar door. Nu ben ik echt niet zo naïef om te denken dat ik de enige ben die dat door heeft. Onze universiteit is van dat hele idee doordrenkt. Zo maken we bewijzen en berekeningen om te laten zien dat onze ideeën kloppen: het controleren van de juistheid van zulke bewijzen of berekeningen kost nog steeds minder tijd dan het bedenken en opstellen ervan. We ontwerpen nieuwe methoden en apparaten. Zulke ontwerpen kunnen gepatenteerd worden. Waarom? Omdat het ontwerpen van een apparaat veel meer moeite en geld kost dan het inzicht dat het ontwerp zo’n kwaliteit heeft dat het de moeite loont gekopieerd te worden. Wij zijn er daarom praktisch al lang van overtuigd dat het construeren van iets veel meer tijd en vernuft kost dan het checken van de kwaliteiten ervan - dat creativiteit nu eenmaal meer tijd kost dan het administratief controleren van resultaten.
12 (her)kennen Prof.dr. C. Witteveen
Construeren en waarderen. Voordat u deze column onder ogen kreeg, had ik een probleem. U niet. U kunt passief van mijn columns kennis nemen, terwijl ik met veel moeite de juiste woorden op papier moet zien te krijgen, achterna gezeten door
U moest eens weten hoeveel moeite het kost om zo’n column op het allerlaatste moment nog af te ronden! Vaak ben ik al weken van tevoren aan het nadenken over een geschikt onderwerp en kost het me daarna uren om het ruwe idee fatsoenlijk vorm te geven. In schril contrast tot de schamele inspanning die u, lezer, zich moet getroosten. U heeft na een paar minuten deze column doorgelezen en heeft dan vrijwel onmiddellijk in de gaten of er een leuk, dan wel minder leuk stukje uit mijn toetsenbord is gevloeid. Geloof me, de tijd die u in het algemeen nodig heeft om uw conclusies te trekken is echt een fractie van de tijd die ik eraan besteed heb om deze tekst in elkaar te zetten. Er is dus een behoorlijke asymmetrie tussen een stukje lezen en een stukje schrijven: Lezen en begrijpen is echt veel eenvoudiger dan bedenken en schrijven. Buiten deze context zijn veel meer voorbeelden van deze asymmetrie te vinden. Als u een cabaretvoorstelling bezoekt heeft de artiest er maanden aan voorbereiding op zitten om u een uurtje te laten genieten. Ik kijk tentamens na, om na een paar minuten een forse streep te halen of een minzame krul te zetten op vellen papier waar stuk voor stuk studenten uren over hebben gezwoegd. Ik geniet van een fles wijn in aanmerkelijk minder tijd dan het kost
Een wat herkenbaarder voorbeeld: om sommige vormen van literatuur of poëzie te begrijpen en waarderen lijkt het erop dat de tijd die hiervoor nodig is minstens zo lang is als de tijd die het heeft gekost om deze kunst te scheppen. Nu terug naar mijn probleem. Voor ik dit stukje ging schrijven vroeg ik me af of ik iets zou kunnen schrijven, waarover u, om het helemaal te begrijpen, minstens zo lang zou moet nadenken als het mij gekost heeft om het te schrijven. Het resultaat is dit stukje. Ik hoop echt dat het gelukt is. Ik kan het alleen helaas niet verifiëren.
Current Affairs
een deadline, mijn geweten, en de MaCHazine-redactie.
Maar wacht eens, als iedereen er praktisch van overtuigd is, is zo’n opvatting dan ook waar? Het feit dat iedereen het met dit standpunt eens lijkt te zijn, zou ons eigenlijk argwanend moeten maken. En natuurlijk is de opvatting niet waar. We weten uit betrouwbare bron dat er ook situaties zijn waarin verificatie of appreciatie van iets niet essentieel eenvoudiger is dan de constructie ervan. Er zijn problemen waarvoor het niets helpt als je er een bewijs voor zou produceren: het verifiëren van zo’n bewijs zou net zoveel tijd kosten als het produceren ervan.
5
Volume 17 • Issue 2 • December 2012
FSR: Het tienpuntenplan Laura Molenaar
De FSR, de Facultaire StudentenRaad, is een commissie die zich bezighoudt met het verbeteren van het onderwijs. Elk jaar worden er elf studenten verkozen die zich bezig gaan houden met de faculteit en het onderwijs.
Dit jaar leggen we de nadruk op de vernieuwde BSA, de gesproken en geschreven taal in de colleges (nu zijn er bijvoorbeeld docenten die een taal gebrekkig spreken, waardoor het soms makkelijker is om over te schakelen op een andere taal, zoals het Engels) en de beschikbaarheid van de juiste software die gebruikt wordt bij het onderwijs
7. Toenemende studentenaantallen
Dit jaar bestaat de FSR uit Ginger Geneste, Max de Groot, Marieke van der Tuin, Pieter Hameete, Xander Zonneveld en Laura Molenaar (TWI) en uit Bas van Wee, Michel Jansen, Remco van der Plaats, Seth van Roemburg en Vincent van Hoek (EE).
Het is natuurlijk een goed teken dat er steeds meer studenten bij EWI studeren. Wij merken echter dat de faciliteiten hier niet altijd op berekend zijn (denk aan de fietsenstallingen en de kluisjes) en willen hier praktische oplossingen voor vinden.
Zoals elk jaar hebben we een ’10-puntenplan’ gemaakt, een plan waarin wij tien punten zetten die wij het belangrijkst vinden en waar we komend jaar vooral aan zullen werken. Ons 10-puntenplan ziet er als volgt uit:
8. Tentamenreglementen
1. Studieadviseurs Omdat de afgelopen jaren de studentenaantallen flink zijn toegenomen, moet er op worden toegezien dat studieadviseurs hun werk goed kunnen blijven doen. We willen ook kijken of er bijvoorbeeld extra studieadviseurs aangesteld kunnen worden en of er andere mogelijkheden zijn om de druk op de studieadviseurs te verlichten.
Wij willen erop toezien dat de tentamenreglementen duidelijk naar de studenten gecommuniceerd worden en dat deze ook worden nageleefd. Verder zouden we een versoepeling van de inschrijfregels willen zien in combinatie met strengere maatregelen wanneer studenten niet komen opdagen .
9. Studentassistenten We merken dat het aantal studentassistenten niet toereikend is voor het aantal nieuwe studenten. We zouden graag zien dat er meer studentassistenten, geselecteerd op uitlegkwaliteit, aangesteld worden
10. PR FSR
Er wordt voor TI en TW in 2013 en voor EE in 2014 een nieuw bachelorprogramma ingevoerd. Wij bekijken of de opleidingen goed zijn ingedeeld en de nieuwe curricula ook haalbaar zijn. Daarnaast willen we ook de huidige studenten steeds inlichten over wijzigingen in het programma.
Om de FSR meer bekendheid te geven is er een facebook-pagina opgezet en willen we speciale colleges geven over waar we mee bezig zijn. We willen vooral ook buitenlandse studenten hierbij betrekken.
Current Affairs
2. Curriculumwijzigingen
3. Overgangsregelingen
Omdat de Bachelorprogramma’s gewijzigd worden, zullen er ook voor de huidige studenten veranderingen optreden. Om deze overgang soepel te laten verlopen, zorgt de FSR ervoor dat de nieuwe regels tijdig en duidelijk naar de studenten gecommuniceerd worden, zodat er geen resultaten verloren zullen gaan.
4. Verbouwing
De verbouwing op EWI is nog niet af. Wij als FSR worden hier graag bij betrokken om erop toe te zien dat alles goed zal verlopen.
5. Informatie
De TU Delft heeft veel kanalen voor informatievoorziening. De FSR wil erop toezien dat deze informatie vindbaar, uniform, compleet en up-to-date is. We gaan kijken hoe we deze informatievoorziening nog verder kunnen verbeteren.
6
6. Onderwijskwaliteit
Verder zullen we ons dit jaar bezig houden met presentaties geven (in de pauze), waar geïnteresseerde studenten kunnen horen waar wij mee bezig zijn, en ook (misschien wel belangrijker) input kunnen geven waar wij weer iets mee kunnen doen. Verder hebben we een facebookpagina die we na elke interne vergadering updaten (zie http://www.facebook.com/EWI.FSR) en hier zal het volledige 10-puntenplan met uitgebreide uitleg ook op komen te staan. Als je nog vragen of opmerkingen hebt, kun je een berichtje op de Facebookpagina achterlaten of een mailtje sturen naar
[email protected]. We zien jullie graag tijdens onze eerste presentatie in de week voor de kerstvakantie. Hopelijk tot dan!
Volume 17 • Issue 2 • December 2012
TU Delft nieuws TU Delft nieuws Max de Groot
Max de Groot
30 november 2012 De TU Delft is de grootste en oudste Nederlandse publieke technische universiteit opgericht door Koning Willem II op 8 januari 1842. Maar wat gebeurt er momenteel op de TU Delft? In dit artikel zetten we de belangrijkste gebeurtenissen van de afgelopen tijd op een rijtje.
TU Delft doet het goed op de university world ranking De TU Delft stijgt in de internationale ranglijst van beste universiteiten, de Times Higher Education World University Rankings van de 104e naar de 77e plaats. TU Delft is daarmee de beste Nederlandse Technische Universiteit in deze ranking. De stijging is vooral bepaald door de score op ‘citatie-impact’, de mate waarin publicaties van Delftse wetenschappers door anderen worden geciteerd. TU Delft scoort als beste Nederlandse en als zesde Europese technische universiteit. Op de algemene lijst staan we als vijfde Nederlandse universiteit, na de universiteiten van Leiden, Utrecht, Wageningen en Rotterdam.
Figuur 1: Joost de Groot
• Er komt een sociaal leenstelsel voor de basisbeurs voor zowel de bachelor- en masterfase. Dit geldt voor nieuwe studenten met ingang van september 2014. Dit betekent dat je inkomensafhankelijke je schuld moet gaan afbetalen, dus hoe minder je verdient hoe minder je terug hoeft te betalen. Er blijft daarnaast een aanvullende beurs, buiten het sociale leenstelsel om, bestaan.
Twee nieuwe ’Distinguished’ professoren De TU Delft heeft de hoogleraren Sybrand van der Zwaag en Luuk van der Wielen benoemd tot Distinguished Professors, respectievelijk op de gebieden Material Science en Biobased Economy. Beiden onderscheiden zich reeds lange tijd door succesvolle valorisatie van wetenschappelijke en technologische kennis richting industrie en maatschappij. Met de positie van Distinguished Professor biedt de TU Delft hen beiden de mogelijkheid om zich, over de grenzen van hun eigen leerstoel en TU Delft heen, verder te concentreren op kennisvalorisatie,.
• De OV-kaart van studenten wordt in 2015 een kortingskaart. Vervoerskosten zullen daarmee tot een nog te bepalen maximum ook onder het sociale leenstelsel gaan vallen. • De opbrengst van bovenstaande maatregelen worden geïnvesteerd in onderwijs en onderzoek.
Meer internationalisering
Association
TU Delft wil een internationale universiteit zijn en dat lukt aardig: inmiddels komt al een derde van de masterstudenten en twee derde van de promovendi uit het buitenland. Met ingang van 1 november 2012 zal een nieuwe of�ce, the �entral International Of�ce, alle Delftse ‘internationals’ opvangen. Dus niet alleen bachelor-, master- en uitwisselingsstudenten maar ook internationale promovendi, staf en gasten. Zij kunnen dan allemaal gebruik maken van dezelfde ondersteuning. Het International Of�ce helpt bij het verkrijgen van visa en het zoeken naar geschikte huisvesting, en geeft informatie over het leven op de campus en in Delft.
• Voor het compenseren van onbedoelde effecten van het vrijgeven van het collegegeld voor een tweede studie is 20 miljoen beschikbaar. • Er komt 150 miljoen extra beschikbaar voor versterking van het fundamenteel onderzoek, waarvan 50 miljoen door herprioritering. • Het beleid van bekostiging op basis van kwaliteit, wordt voortgezet. • Toelating tot het hoger onderwijs vindt plaats op basis van een daarvoor kwali�cerend diploma. Selectie aan de poort blijft toegestaan voor University colleges, studies waar het aantal aanmeldingen het aantal opleidingsplaatsen overstijgt en voor opleidingen met bijzondere toelatingseisen, zoals in de kunsten.
Beste Docent en afstudeerder van het jaar 2012 Op 29 november was de-beste-docent-en-afstudeerder-van-het-jaar-2012uitreiking. Voor EWI waren dat Joost de Groot als docent en Wenlong Jiang als afstudeerder genomineerd. Uiteindelijk zijn Joost de Groot als docent van het jaar en Robert Mans als beste afstudeerder van het jaar verkozen.
Politiek De VVD en de PvdA hebben een regeerakkoord. Daar hebben ze het volgende besloten over het universitair onderwijs: • De langstudeerboete voor studenten wordt afgeschaft.
8
Referenties [1]
http://www.scienceguide.nl/201210/regeerakkoord-hoger-onderwijs-rutte-ii.aspx
[2]
http://tudelft.nl/actueel/laatste-nieuws/
[3]
https://intranet.tudelft.nl/live/pagina.jsp?id=e98eadb0-b400-45f4-b5a5-2cc880eee9c5&lang=nl
Volume 17 • Issue 2 • December 2012
Volume 17 • Issue 2 • December 2012
WiFi Zwembadfeest : Zuipen of verzuipen Sander Ploegsma
Zet een hoop CH-leden en aanhang met veel bier, opblaasbeesten en muziek de hele avond in een zwembad en je hebt een topfeest. Dat is
arriveerden waren de eerste strandballen al opgeblazen, badjassen al aangetrokken en stond iedereen te springen om naar binnen te mogen. Na iedereen van muntjes voor de lockers te hebben voorzien (wat zijn we toch lief) kon het feest dan eindelijk beginnen.
precies wat wij als WiFi dachten en dus organiseerden we een zwembadfeest. De WiFi (Wintersport Feest iets) is een nieuwe tweedejaarscommissie die, zoals de naam al doet vermoeden, dit jaar een geweldige wintersport en natuurlijk dit feest organiseert. Als nieuwe commissie moeten we onszelf natuurlijk goed profileren binnen CH en daar zijn we dan ook hard mee bezig. Niet alleen loopt de wintersport als een trein, maar ook was ons zwembadfeest een groot succes! Het is nu zaterdag 1 december 2012 en ik zit in de trein, terwijl ik me al schrijvende probeer te herinneren wat voor geweldige dingen er gisterenavond allemaal zijn gebeurd. Ik ben brak, heb weinig geslapen en het enige wat ik kan denken is: van bier drinken in een zwembad word je moeilijk kaal.
Helaas mochten we op de dag van het feest niet in de /Pub eten, dus hebben we de rest van de kelder voorzien van tafels en stoelen om daar te gaan eten. Verbazingwekkend genoeg was het eten zo goed als op (wat knap is als je Chinees eet, als je het mij vraagt). In een grote stoet zijn we vervolgens vertrokken naar het station. Daar aangekomen werd iedereen nog een cadeautje van onze sponsor Tam Tam aangeboden en stonden we met zijn allen Flügel te adten op het perron. Vervolgens de trein in (een hele mooie WiFi trein, welteverstaan) en op naar Rotterdam! Tegen de tijd dat we bij het zwembad
Het nadeel van bier drinken in een zwembad is dat het water naarmate de avond vordert steeds voller raakt met lege bekertjes. Gelukkig waren een paar mensen zeer enthousiast aan het opruimen door deze bekertjes al strepende uit het zwembad te verwijderen. Vooral dansende mensen van muurtjes af strepen was een populaire bezigheid. Nadat het eerste slachtoffer op de EHBO belandde werd het vuren echter gestaakt.
Association
Van tevoren was al duidelijk dat het een flink feest zou worden. De kaartverkoop ging als een speer en uiteindelijk hebben we zo’n 150 kaartjes verkocht. Niet alleen aan CH-leden, maar ook aan hun clubgenoten, huisgenoten en zelfs broertjes en zusjes. Omdat het al vroeg zou beginnen en eindigen leek het ons leuk om mensen de mogelijkheid te geven voor het feest te eten. Uiteindelijk hebben we voor bijna 50 mensen Chinees besteld. De beste man van het restaurant schrok nogal van onze bestelling toen hij over de datum heen las en dacht dat wij binnen een kwartier zo’n 50 bakken eten verwachtten.
Van tevoren waren er al wat WiFi-leden naar het zwembad vertrokken om de boel daar op te bouwen, waardoor het water was voorzien van een hoop krokodillen, strandballen, luchtbedden en dergelijke. Helaas heeft onze 4-persoons opblaaslounge het niet langer dan een half uur volgehouden, erg waterglijbaan-proof was het ding namelijk niet. De krokodillen bleken daar echter uiterst voor geschikt, hoe niemand iets gebroken heeft is mij nog steeds een raadsel. Waar deze krokodillen ook heel goed in waren was het blokkeren van de ingang van de glijbaan, met als resultaat een mooie waterval van de trappen naar beneden.
Het hoogtepunt van het feest moet wel zijn geweest toen een Wocky!-lid wiens naam ik verder niet zal noemen (zie de foto’s van het feest) in een mankini verscheen, onder luid gejoel van de rest van zijn commissie. Na een paraderondje om het zwembad en een uiterst foute fotosessie met onder andere de DJ verdween hij helaas weer naar de kleedkamers. Rare jongens, die Wocky!’s. Aan het eind van de avond zijn we na een half uur bekertjes en kapotte krokodillen uit het zwembad vissen naar de kleedkamers gerend en hebben we ons zo snel mogelijk omgekleed om de laatste metro te kunnen halen. Dat alles was onder begeleiding van een prachtige serenade van het alarm, dat mede mogelijk werd gemaakt door een gast die dacht dat zijn kluisje zich achter de nooddeur bevond. Wat een prachtfeest.
9
Association
Fotocollage
Volume 17 • Issue 2 • December 2012
MaPHyA Double Degree Diner in de /PUB
Algemene Docenten en Studenten Lounge
Merel Toussaint
AkCie 2012-2013
Huh? Wat? De MaPHyA? Wie zijn dat nu weer, is meestal de vraag die we
Afgelopen woensdag 21 november vond in de /pub wederom de door de
krijgen zodra we ons bekendmaken.
AkCie georganiseerde ADSL plaats. Vanaf 15:56 stroomde de /pub vol met
Het antwoord op die vraag is simpel, we zijn een commissie die zorgt voor activiteiten voor de dubbele bachelor studenten TN/TW. We zijn dan ook lid van de VvTP én CH. Toch is de onwetendheid van onze medestudenten niet geheel te wijten aan hen. Zo staat de Maphya bijvoorbeeld bij géén van beide verenigingen op de lijst van commissies online en bestaat ze ook pas sinds 2010.
enthousiaste docenten en studenten die wel zin hadden in een biertje (en
Waarom nu deze negatieve inleiding? Dit illustreert precies waarom de Maphya is opgericht! Door het organiseren van een aantal leuke activiteiten voor leden van de VvTP en CH kunnen de DB-ers niet alleen hun jaargenoten beter leren kennen, maar het geeft ook nog eens de kans aan wiskunde studenten om wat te integreren bij natuurkundigen. Hiervoor is bijvoorbeeld een watergevecht (ja precies… één watergevecht, het tweede is namelijk door regen letterlijk in het water gevallen…) en een filmavond georganiseerd. De Maphya zorgt natuurlijk niet alleen voor integratie tussen DB-ers en andere studenten, maar ook voor integratie tussen de DB-ers zelf. Hiervoor wordt (als alles verloopt volgens plan en bepaalde sleutelfiguren niet toevallig een burn-out krijgen) jaarlijks een introductiedag speciaal voor DB-ers opgezet. Bovendien is dit jaar voor het eerst ook het exclusieve DB-diner georganiseerd.
Het originele plan was om alles zelf te koken, maar door gebrek aan kookruimte werd de hoofdmaaltijd toch maar uitbesteed. Om nu toch nog een goed diner voor 6 euro te regelen moest er dus flink wat afgedongen worden van de pasta en na een aantal restaurants tegen elkaar uitgespeeld te hebben kregen we eindelijk het bod dat we wilden. Hoewel we toen wel de saus en pasta apart in 64 verschillende bakjes geleverd kregen… Ben je eerstejaars dubbele bachelor student en lijkt je het leuk om activiteiten zoals dit en het aankomende watergevecht te organiseren of vond je dit maar slecht en heb je zelf veel betere ideeën, stuur dan een mailtje naar maphya@ ch.tudelft.nl en wie weet word jij uitgenodigd om de Maphya volgend jaar te runnen als echte Godfather van de Double Degree!
drank gratis voor de docenten. Van tevoren was de /pub door de AkCie uitvoerig versierd met rode draden. Het thema was immers “Verbinding door de rode draad”. Dit stond zowel voor de connectie tussen studenten en docenten als voor de pure randomness van de WTFAkCie (B’vo). De weinig stroeve en voor velen nog onbekende docenten begonnen al snel veelvuldig bier uit te delen. Daarbij werd het algemene doel van de ADSL niet uit het oog verloren want menig student heeft natuurlijk veel nieuwe docenten leren kennen. Tegen zevenen werd het tijd om aan eten te denken en ging de pizzalijst rond. Helaas vond IO het nodig om net voor ons ∞ veel pizza’s te bestellen waardoor het tot acht uur duurde voordat we konden eten. Na deze maagdelijke bevrediging ging het feest nog even door met de echte feestvierders, de docenten waren toen reeds zowat geheel vertrokken. Ook na sluitingstijd van EWI (waarbij een bepaald persoon zich liet insluiten #baasCH) was de gezelligheid niet ver te zoeken. Al met al kijken wij met de AkCie terug op een zeer geslaagde ADSL en kan menig trouw CH-lid nog meer van ons verwachten, met om te beginnen de sinterklaaslunch van 4 december! B’vo!
Association
Dit diner (wat eigenlijk het onderwerp van dit artikel moest zijn) was ondanks, en misschien juist wel dankzij het kleine aantal DB-ers een succes. Om elkaar wat beter te leren kennen werd na elke gang van plaats gewisseld. Zo werd na een kopje champignonsoep met stokbrood vooraf, de pasta bolognese in porties die totaal niet op de kleine sodexo-bordjes pasten aan de 32 uitgehongerde studenten geserveerd. Als laatste gang was er all-you-can-eat aardbeien-, bananen- en vanille-ijs met slagroom en chocoladesaus. Ondanks al het wiskundige talent in de commissie was er namelijk per ongeluk een halve liter ijs pp ingekocht. ..
nog ééntje en nog ééntje), want zoals gebruikelijk is bij de ADSL was de
11
Volume 17 • Issue 2 • December 2012
Hacking The Government Jens de Waard
W.I.S.V. ‘Christiaan Huygens’ organizes a few lectures each quarter, at the very least a lecture about mathematics and a lecture about computer science. The Computer Science lecture in June of 2012, by Lex Slaghuis on behalf of ‘Hack de Overheid’, brought open government data to our attention. At the end of his talk, he mentioned a Hackathon organized by
Our original plan was to combine a few datasets. At the start of the day they had shown something called an “eNose”. This little device could be mounted on practically anything (in fact, they mounted it on a bike and drove throughout Rotterdam the entire day to provide real time data) and provide information about the kind of particles that were floating in the air. The GGD had published a public report about the health of the citizens of Rotterdam. We wanted to combine the information from these two sources to find out whether we could find a correlation between the results of eNose and the number of COPD cases in different parts of Rotterdam. Unfortunately, it turned out that the eNose hadn’t produced any useable info yet, so we only used the reports by the GGD.
Hack de Overheid. Attending this event proved to be the start of a series of fortunate events culminating at a conference in Berlin.
Computer Science
Together with two other students, I travelled to Amsterdam to try and find out what this Hack-a-thon was all about. The event was being held in a nice, clean, but decidedly alternative venue. The day started with presentations by all the governmental departments about the data they published. Think about all kinds of information about Amsterdam, like data about public transportation, health, public safety, etc. After a few hours of deliberation, we settled on creating an app to help motorists find a parking spot in the centre of Amsterdam. At the end of the day, our app was greeted with much enthusiasm by all attending parties. While we considered the app to be technically superficial, the fact that it had practical value delighted the organizing parties. Other apps created by developers included an app that could simultaneously play a lot of sounds from a soundbite database. At the end of the day, after the necessary free drinks and meals, we went home quite content. A few months later, there was another Hackathon, now in Rotterdam. And this one was a bit different. While the previous Hackathon in Amsterdam could only net you a t-shirt if you had created an app, there were now cash prizes available for the best app in several categories. So off we went again. The event was once again held in a venue that could be considered alternative, as it was all about avant-garde music and art. It seems there is some overlap between supporters of a more transparent government and other alternative movements! Once more, the day started with a number of presentations by government institutions. One of the categories that could earn you a nice prize was Healthcare, so that was a presentations we attended. At the end of his talk, the presenter asked if anyone was planning to use healthcare data. We were the only three to raise our hands. After this awkward moment, he periodically joined us at our table to check up on our progress. While we were the only developers working in the category Healthcare, that didn’t mean we didn’t have to deliver quality.
12
At the end of the day, we had created an app that could give you information about different parts of Rotterdam based on zip codes. It would return a grade for several areas, like both the perceived safety of a neighbourhood and the actual safety (gotten from data from the police), how lonely the inhabitants of a neighbourhood considered themselves, and several other factors. The atmosphere at the event was quite good. Ever ybody was very friendly and interested. People dropped in every now and then to ask us questions, like what we were making, how we thought the event was going, if we worked together or were friends, etc. The day was over before we knew it and the presentations by the developers were starting to begin. The jury started announcing the winners. To our delight, we had won first prize in the category Healthcare! They made special care to mention that, even though we were the only ones competing, they wouldn’t have given the prize if they deemed the app unsatisfactory. After accepting our prize, we sat back down, until we suddenly won another prize. Turned out we had won second place in the category Business, which was meant to encourage us to create a start-up. At the end of the day, we had won €2250 in prizes, and two tickets to a conference in Berlin. This story is meant to illustrate that even as a first or second year student there really is no need to keep stocking your local AH. Just get out there and find those opportunities to show them that you can code!
Volume 17 • Issue 2 • December 2012
Oplossing ’Twisted Pair Java Puzzlers De Puzzler
Class Warf
De Puzzler
De Puzzle
December 13, 2012
December 10,
Last MaCHazine you had the puzzle ’Twisted pair’. Now we present the
Each MaCHazine there will be a puzzle with a script of a program, here is
solution of this puzzle
the new one. �t is up to you to �nd out what the program does. �ou may
� super�cial analysis suggest that the program shouldn’t compile. The anonymous class inside reproduce tries to invoke the private method name from the class Twisted. One class can’t invoke a private method of another, can it? If you tried to compile the program, you found that is compiles without a hitch. Within a top-level type– in this case, Twisted– all the local, inner, nested, and anonymous classes can access one another‘s members without any restrictions [JLS 6.6.1]. It‘ all one big happy family.
use Java, but it‘s more fun just to use your mind.
With that understanding, you might expect the program to print reproduce, because it invokes printName on the instance ne Twisted(”reproduce”), wich passes the string ”reproduce” to its superclass constructor to be stored in its name �eld. The printName method invokes the name method, wich returns the contents of this �eld. �ut if you ran the program, you found that its prints main. Now why would it do a thing like that?
public class PrintWords { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { S y s t e m . o u t . p r i n t l n ( Words . F I R S T + ” ” + Words . SECOND + ” ” + Words . THIRD ) ; } } p u b l i c c l a s s Words { p r i v a t e Words ( ) { } ; / / U n i n s t a n t i a b l e
p u b l i c s t a t i c f i n a l S t r i n g FIRST = ” the ” ; p u b l i c s t a t i c f i n a l S t r i n g SECOND = n u l l ; p u b l i c s t a t i c f i n a l S t r i n g THIRD = ” s e t ” ; }
This program violates the advice of Puzzle 90: The anonymous class inside ”reproduce” is both an inner class of Twisted and extends it. This alone is suf�cient to make the program unreadable. Throw in the complexity of invoking a private superclass method, and the program becomes pure gobbledygook. This puzzle serves to reinforce the lesson of Puzzle 6 If you can‘t tell what a program does by looking at it, it probably doesn‘t do what you want. Stive for clarity.
Now suppose that you modify the library class as follows and recompile it but not the client program: p u b l i c c l a s s Words { p r i v a t e Words ( ) { } ; / / U n i s t a n t i a b l e
public s t a t i c f i n a l St ri ng FIRST = ” physics ”; p u b l i c s t a t i c f i n a l S t r i n g SECOND = ” c h e m i s t r y ” ; p u b l i c s t a t i c f i n a l S t r i n g THIRD = ” b i o l o g y ” ;
References [1]
Computer Science
The intuition behind this behavior is that private members are never inherited [JLS 8.2]. In this case, the name method is not inherited into the anonymous class in reproduce. Therefore, the printName invocation in the anonymous class must refer to the method in the enclosing (”main”) instance rather that the current (”reproduce”) instance. This is the smallest enclosing scope that contains a method of the correct name.
This puzzle tests your knowledge of binary compatibility: What happens to the behavior of one class when you change another class on which the �rst class depends? �ore speci�cally, suppose that you compile the following two classes. The �rst is meant to represent a client; the second a library class:
Java puzzlers, traps Pitfalls and corner cases, Joshua Bloch & Neal Gafter
} What does the client program print?
References [1]
Java puzzlers, traps Pitfalls and corner cases, Joshua Bloch & Neal Gafter
13
Volume 17 • Issue 2 • December 2012
Volume 17 • Issue 2 • December 2012
TOPdesk, een succesvol Nederlands software- en consultancybedrijf TOPdesk
Als je nieuw bent in de TU wijk zal je binnenkort wel iemand langs zien fietsen met een TOPdesk-jas of iemand leren kennen die werkt bij dat succesvolle software- en consultancybedrijf uit Delft. Maar wat is TOPdesk eigenlijk? En wat maakt TOPdesk succesvol? Onze oprichters, Wolter Smit en Frank Droogsma zijn beiden afgestudeerd aan de TU Delft. Zij begonnen in 1993 met de ontwikkeling van de eerste Nederlandstalige helpdeskapplicatie. Een softwarepakket waar een helpdesk alle meldingen, vragen, klachten en storingen van medewerkers in registreert. Dit bleek een gat in de markt, want twintig jaar later is TOPdesk uitgegroeid tot een internationaal software- en consultancybedrijf met meer dan 400 medewerkers!
Van MS DOS tot webbased
Advertorial
TOPdesk 1.0
In 1994 brachten Wolter en Frank de eerste versie van hun helpdesksoftware uit: TOPdesk 1.0. Deze versie draaide op een MSDOS-interface en was geschreven in de 16-bits programmeertaal Clipper. Twee jaar later brachten zij de eerste TOPdesk-versie uit voor Windows 3.11. De applicatie was geschreven in de databasetaal FoxPro.
Van FoxPro naar objectgeoriënteerd programmeren
Met de lancering van TOPdesk 3.0 in 1998 werden grote stappen gezet. Er werd gekozen voor de 32-bits ontwikkelomgeving Visual FoxPro 5, waarmee de ontwikkelaars een betere Windowsomgeving konden creëren. Bovendien konden ze gebruikmaken van het objectgeoriënteerd programmeren en een relationele databasestructuur. Door een zelf ontwikkelde ‘laag’ tussen de database en TOPdesk kon de database onafhankelijk draaien en worden aangestuurd met een ODBC-koppeling.
14
TOPdesk Enterprise Steeds meer klanten stelden hoge eisen aan zaken zoals platform- en databaseonafhankelijkheid, schaalbaarheid en gebruikersvriendelijkheid. Om aan deze wensen tegemoet te komen, werd in 2005 TOPdesk 4.0 Enterprise geïntroduceerd. Enterprise is volledig webbased en geschreven in Java.
TOPdesk 5.0 Op het TOPdesk Symposium 2012 hebben we met veel trots onze nieuwste product onthuld aan 1200 nieuwsgierige klanten: TOPdesk 5.0. Het hele bedrijf heeft 15 maanden lang keihard gewerkt om deze versie te realiseren. Los van technische innovaties is ook de manier van ontwikkelen vernieuwd bij TOPdesk 5. Onze ontwikkelaars werken nu namelijk volgens
Volume 17 • Issue 2 • December 2012
de Scrum-methode, waarbij multidisciplinaire teams in korte sprints werkende software opleveren. Een werkwijze die niet meer is weg te denken uit onze afdeling Software Development.
Onze specialiteit: dienstverlening Servicemanagement Van oorsprong richt TOPdesk zich op de ICT-helpdesk, maar in de praktijk blijkt dat allerlei serviceafdelingen gebaat zijn bij onze producten en diensten, zoals facilitaire- of HR-afdelingen. Stabiele en hoge servicekwaliteit leveren is essentieel voor dit type organisaties. TOPdesk helpt deze organisaties hun dienstverlening te professionaliseren. We voorzien hen van goede standaardsoftware, onze consultants zorgen dat de software wordt afgestemd op de bestaande werkwijze en onze afdeling Support ondersteunt klanten bij het dagelijkse gebruik.
Vijf buitenlandse vestigingen
Werken in een snelgroeiende organisatie TOPdesk als werkgever Als je voor het eerst binnenkomt in ons kantoor in Delft, valt op dat er vooral jonge mensen werken. Onze collega’s zijn hoogopgeleid, behulpzaam en gedreven. ‘Werken is leuk’ is het motto. En we doen er dan ook alles aan om leerervaringen en werkplezier te combineren. Ondanks een vervijfvoudiging van ons personeelsbestand in 10 jaar tijd, lukt het ons om een prettige, open cultuur te behouden waarin jonge, hoogopgeleide mensen direct veel vrijheid en verantwoordelijkheid krijgen om zichzelf te ontwikkelen.
Startersfuncties voor jonge academici Wil jij werken in een groeiende organisatie met veel jonge, hoogopgeleide mensen waarin je de vrijheid krijgt om dátgene te doen dat jij leuk vindt? Dankzij onze groei, zijn we continu op zoek naar starters als: • IT-Consultant • Accountmanager • Software Developer • Technisch product-Consultant
Advertorial
Niet alleen in Nederland is er een focus op uitstekende dienstverlening; servicemanagement is wereldwijd een hot item. De internationale mogelijkheden werden snel zichtbaar toen onze software ook in het Engels beschikbaar kwam. Potentiële klanten vanuit de hele wereld benaderden ons met aanvragen. De TOPdesk collega’s deden de rest. TOPdesk-medewerkers zijn namelijk ondernemend van geest, leergierig en doen graag alles zelf. Het is dan ook niet verwonderlijk dat vrijwel al onze buitenlandse vestigingen gestart zijn door een TOPdesk-medewerker. We hebben inmiddels buitenlandse kantoren in Londen, Kaiserslautern, Antwerpen, Boedapest en Kopenhagen. Ook brengen we onze software uit in tien talen en bedienen we met meer dan 400 collega’s wereldwijd 4500 klanten in zo’n 45 landen.
Volume 17 • Issue 2 • December 2012
Kijk voor al onze actuele vacatures op topdesk.nl/werk en wellicht zien we jou binnenkort bij een kennismakingsgesprek!
Nog niet klaar met je studie, maar wel nieuwsgierig?
Ondernemende studenten kunnen ook bij ons terecht voor een afstudeerstage of voor deelname aan ons Summer Internship. De perfecte manier om alvast kennis te maken met TOPdesk.
15
Volume 17 • Issue 2 • December 2012
Dynamic loading and task migration for a Composable
Dynamic loading and task migration for a Composable Multi-core Multi-core Processor System-on-a-Chip Processor System-on-a-Chip Aad van Buuren
Aad van Buuren �n the �eld of �mbedded Systems, a focus is set on System�on�Chips (SoC). These SoCs provide a complete system on a single chip, which is very usable for small devices such as mobile phones. The current development is towards Multiple Processors on a SoC (MPSoC), as this enables lower power consumption and offers more scalability compared to increasing the speed of a single processor core. This article describes the work done on introducing dynamic loading and task migration on a MPSoC [1]. The unique feature of the used MPSoC is that it offers composability, which is the independent functional and temporal behavior of applications.
The memory reserved by applications is split up in three types of memory, which need to be �lled when an application is loaded. The �rst type of memory is instruction memory. From this memory instructions are fetched by the processor to execute applications. The second type is data memory. This memory is used to store all kinds of data, ranging from initialized variables to constants. A processor accesses this memory through load and store instructions. Last, communication memory is used. This memory is used to communicate between processors and often also accessible by other processors. To load an application onto a system, the code is �rst compiled into an executable and then a linker sets all the addresses. This means that in the executable both instructions and data are stored and all the addresses to all types of memory are set. This does not lead to problems when all the applications are compiled together, since the linker knows for all applications how much memory is used and where it can be stored, but when separate executables are created, the used data ranges might overlap. Moreover, when instructions refer to data, these addresses might not correspond to the address that the data is loaded.
Computer Science
Multiple cores offer more processing capacity and hence allow an increasing number of applications to run on a single system. Some of these applications are streaming applications and may have real-time demands, such as guaranteed throughput. To make sure the real-time requirements are met, the temporal behavior needs to be validated, as faulty behavior might occur when the real-time requirements are not met. This is often done through simulation, a very computation intensive task. To reduce the complexity of validation of applications on a system, the composable MPSoC CompSoC has been introduced [2]. CompSoC provides complete independent functional and temporal independent behavior for all applications running concurrently on the platform. This allows a developper of applications to verify an application in isolation since the concurrently running applications do not in�uence each other, and therefor there is no need for veri�cation of the entire system but only for individual applications, hence reducing the complexity of veri�cation. The drawback of CompSoC is that it in in development and that the existing system has no functionality for dynamic loading and task migration. In this article the concepts of dynamic loading and task migration will be explained �rst, after which the implementation of these concepts on CompSoC will be described.
Dynamic linking loading Dynamic loading allows applications to be loaded after the system has been started. Without support for dynamic loading, all applications need to be compiled and linked in a single executable, and all memory is reserved at design time. During runtime, the worst-case memory usage of the system thus is the sum of the memory use of all applications. When dynamic loading is introduced, reserved memory can be freed to be reused for applications that are dynamically loaded.
16
Figure 1: Position independent code references to data
On general purpose system, dynamic linking is used for this, i.e. the retrieving of addresses at runtime. Another option is the use of virtual memory to have the same virtual address range for all applications. However, most embedded systems do not support these solutions for performance reasons. A simpler technique is the use of position independent code. Position independent code is supported by the gcc compiler and introduces indirect linking to data through a global offset table (GOT) with the addresses of the data. The GOT can be reference by the instructions through a register, which implicates that only the GOT with addresses needs to be updated. Figure 1 shows this indirect referencing.
Task migration When multiple processors are available, the workload is not always balanced. To balance workload, the tasks of an application can be remapped on the several processors. Dynamic loading enables the creation of a task of an application on another processor, but the state of the task is not restored, hence the task or even the entire application should be restarted. Task migration is the pro-
Volume 17 • Issue 2 • December 2012
cess that allows suspending and resuming an application after remapping the tasks on processors. Restoring the task implies copying all memory in use, hence instruction memory, data memory, communication memory and the registers in the processor. Since memory locations can also contain absolute addresses, these addresses need to be corrected as well since it is not certain the addresses correspond to the previous setup. Since this restoration is very complex when no virtual memory is available, migration points are introduced to reduce complexity [4]. Migration points are states of the tasks of an application that are set at design time in which less memory is in use, hence migration is simpli�ed.
application is modular and therefor easily extendable. For dynamic loading the steps are to con�gure the operating system �rst. Then for the tasks the instructions and data are loaded into IMEM and DMEM from a remote location by the DMA module. Loading the instructions and data also include changing the GOT that is introduced by the use of position independent code. Next, the communication structure is setup and the data that needs to end up in the communication memory is loaded. Then the application can be started. Migration of a task from a source tile to a destination tile is more challenging, as we have one operating system per tile, which introduces the need for intertile communication. Next, not all data is accessible by the destination tile, hence the data needs to be copied to a memory where it is available on the source tile.
CompSoC For CompSoC the independence of applications should be preserved when introducing dynamic loading. The goal is to have completely independent between concurrently running applications in both temporal and functional behavior from the start of an application until it is suspended or stopped. This is different from composability as a composable system would also mean complete independence of the start and stop time of an application. Although composability is not preserved, the solution should provide possibilities for extensions in future work to provide a fully composable platform. Figure 3: The application model for steaming applications
CompSoC is build up from processor tiles, of which an instance is shown in Figure 2. Every tile is build up from the three types of memory, where the communication memory (CMEM) is divided into a memory where other processor tiles can write to and read from (CMEM IN), and a memory that is used as buffer to write data to other processors or retrieve data from other processors (CMEM OUT). This setup provides fast local communication memories that use Direct Memory Access (DMA) modules to do the slower remote communication [3]. To dynamically load an application, the platform is loaded with an operating system and a separate system application per tile, dedicated to loading and migration. This allows the dynamic loading to be completely independent in temporal and functional behavior of the concurrently running applications, since it is running in an application for which CompSoC already provides composability. The system application is currently composed of a single task performing all loading and migration, hence is a shared resource. This means that multiple loading or migration requests can interfere and composability is not offered. However, it is possible to introduce multiple tasks, i.e. one per application to have the loading and migration of one application separated from other applications. This has not been the focus of the work done since it also introduces the need for new complex hardware blocks. The system application has to go through several steps for the loading or migration. To go through these steps, system instructions have been introduced, that are parsed by the system application. This has as advantage that the
Computer Science
Figure 2: A processing tile instance of the CompSoC platform
To reduce the complexity we require the task to be in a migration point. The applications are all modeled in data�ow graphs (see Figure 3), where every node in the graph is a task that has four stages. First the task reads all the incoming data, and then it processes this data after which the task writes away all the output data. In the last stage, it is idle until the scheduler starts the task again. This means that the computation function that processes the data is �nished and no data is in the registers, or on the stack. Requiring a task to be idle reduces the complexity of the migration enormously; hence we choose this stage as a migration point.
If the task is in the idle state the application is suspended entirely to make sure no data is written or read from the communication channels. Next, a protocol is implemented to make sure no data is in-�ight on the interconnect between the processor tiles. Now that the application is in a quiescent state, the migration can start. The task is created by dynamic loading opposed to replication since this does not require any processing on the source tile. When the data has been copied, the task is removed on the source tile and the entire application is resumed. The support for dynamic loading and task migration has been implemented on an FPGA prototype of CompSoC. Experiments with various streaming applications indicate that the temporal behavior of a running application is not in�uenced by dynamic loading and task migration of other applications. Furthermore, the implementation does not affect the critical operating system execution as it is implemented in an independent application.
References [1]
A. van Buuren, Dynamic loading and task migration for streaming applications on a composable system-on-chip, 2012.
[2]
A. Hansson, K. Goossens, M. Bekooij, J. Huisken, CoMPSoC: A template for composable and predictable multi-processor system on chips, 2009.
[3]
J. Ambrose, A. Molnos, A. Nelson, S. Cotofana, K. Goossens, B. Juurlink, Composable local memory organisation for streaming applications on embedded MPSoCs, 2011.
[4]
V. Nollet, P. Avasare,J-Y. Mignolet, D. Verkest, Low Cost Task Migration Initiation in a Heterogeneous MPSoC, 2005.
17
Volume 17 • Issue 2 • December 2012
Ontology driven data creation Ontology driven RDFRDFdata creation Bastiaan Bijl
Bastiaan Bijl December 9, 2012
Software Engineering meets Systems Engineering around a concrete Java application in the Dutch shipbuilding sector, which is good luck for an Information Architecture student. In this article I would like to present the thesis assignment I got at Croon Elektrotechniek. It is an interesting case of how concepts from the Computer Science education are used in Industry, and an opportunity to share some of my efforts to make a defensible thesis out of this. The main technology is that of the Resource Description Framework (RDF) and the company’s interest is having both an RDF dataset that contains all construction data of a ship building project and having an application that guides the creation and disclosure of this data. The assignment is part of the work of Project 8 of Integraal Samenwerken[1], a platform to improve collaboration in the Dutch shipbuilding sector partly funded by the Dutch Ministry of Economic Affairs.
What is Ontology?
Computer Science
Before Berners-Lee had his Linked Data dream[2], ontology was merely a term in philosophy meaning the theory of being. It studies the categories in which reality presents itself (what makes a dog different from a light post) and the basis of individuality (what makes this dog different from its exact clone). It is closely related to epistemology, the theory of knowledge (what does it mean to know a dog). Not so long ago, all knowledge was contained in the minds of people and the books they wrote, but with the introduction of the Internet this localization of knowledge is disappearing. Because of the availability through the Internet the knowledge is just there. Yet in the current hypertext structure of the Web (as a collection of pages) the data is still location bound. Although most of the pages are machine generated, the data they contain is not machine interpretable, so the user needs to visit them. In contrast to this, the Semantic Web is a collection of resources that represent individuals (dogs and light posts). Machines can be programmed to collect needed information of these resources, so the data becomes truly available.
A resource is a uri, and generally a service will be listening for requests on this uri, for example if you look it up with a web browser, to supply data about this individual (what breed, who were its parents, who is the owner), but not necessarily. Other resources might be doing claims about this resource without such a listener being there. In the Semantic Web a dog exists as soon as some resource is talking about it. Claims are always in the form of a statement, which consists of three elements like a simple sentence in natural language: a subject, a predicate and an object. Usually all three are a resource, and for that reason they can all be the subject of another statement. Because it has three parts, a statement is also called a triple. Triples can be grouped into graphs, and a triple can only be part of one graph. See �gure 1 for an example of a graph notation. In order to make the Linked Data searchable like human knowledge, it shouldn’t be a collection of individuals and the relations between them only, it should
18
also contain category speci�cations (that dog is a dog, a dog is an animal, it can be used as a pet animal). Special sets of Linked Data can be made consisting of classi�cation types just like class de�nitions in �ava. Such a set of statements conceptualizes a part of reality, and in the Semantic Web context this kind of collection is called an ontology. The collection of all statements, either grouped in graphs or not, and either part of a classifying ontology or just part of a dataset consisting individuals, together constitute the complete Semantic Web. Because all classi�cations and de�nitions, even of the basic concepts class, relation and graph, are contained, the Semantic Web as a whole is self-explanatory. Especially in engineering industry the construction of such a big knowledge base is promising because it can help reduce the cost-of-failure. If design details are only in some designer’s head, or in a con�icting or overlooked version of a drawing, the engineering process of a ship is much more dif�cult than when the details are just there. The ship building industry is not so much interested in the Semantic Web, but in a Semantic Web describing all data from a speci�c ship and all the processes and documents around the all staged of the lifecycle. In order to structure this collection of individuals (lifecycle stages, properties, pumps, roles) there is a need for a tailor-made ontology. Systems Engineering is the academic community that studies and models precisely this technical engineering domain, so the concepts used in the application stem from an ISO certi�ed Systems Engineering ontology[3].
The best Application A typical applications to produce Linked Data is Protégé, but this is a text editor like application to produce �les that contain resource description data. These �les are of no interest to a user in the ship building industry. The need in this domain is the possibility to create as easy and unambiguous as possible data instances from the concepts described in the ontology and link them according to prede�ned relationships. All the rest should be hidden from the users.
http: // localhost/graph_name http: // localhost/subject http: // localhost/predicate http: // localhost/object
Figure 1: The TriX format Moreover, what is needed is more than one application. The requested architecture consists of a user interface application, a triple store application storing all the produced Linked Data and a well-de�ned interface between the
Volume 17 • Issue 2 • December 2012
two. Both applications should be able to allow multiple users to work on multiple projects concurrently. When the thesis assignment started the interface was more or less �xed. For the view transactions from the triple store to the user interface application and for writing created individuals in the opposite direction an xml format called Tri� (shown in �gure 1) was chosen, and this was already contained in an authorative ISO part. Also the graph structure of an individual was decided upon. In the thesis work this structure was slightly rede�ned (see section�c). Next to the interface a user interface implementation existed as a Java application and the triple store as a Tomcat web service. Because of the use of the Apache Jena Semantic Web Java framework, the choice for Java and Tomcat were also �xed. The main improvements of the thesis work had to be (1) rewriting the Java user interface to a Web application, (2) better extensibility of the code, (�) better �exibility towards the RDF structure and (�) multiple triple stores in one project. Due to time limitations the fourth was largely dropped. The �rst three will be discussed brie�y in the remainder of this section.
of the application as a web service (�gure �) no installation on the user�s computer is needed and the con�guration can be automated at login. The intuitiveness is enhanced by more clearly representing general elements graphically. Anything displayed is either a Navigator (some tree structure relating individuals) or a Browser (a box representing an individual). Two Navigators can be opened in the left column, one at the top and one at the bottom. Next to that any number of Browsers can be opened. Each Browser has a header consisting of the individual�s name and the type de�nition, a left panel containing all other statements about this individual and a right panel that gives extra details about the selected statement. The statements are sorted into complex data consisting a relation and the value (say the power consumption of an electric device, the value and the measure), and relations to other individuals. The default Navigator in the top left is a full category tree of all the classes that might be initialized, containing all individuals that are contained in the triple store as children. Clicking any individual opens it in a Browser. Clicking a random �eld in this Browser opens the metadata about this statement. In this way the view �ow is from left (general) to right (speci�ed), which is the usual way of browsing through folders. Creating and editing individuals also works from left to right. Inside the Browser possible new relations can be selected (say the colour of a device) and once such a prede�ned relation is selected, right of it is a new selection box shown containing all the possible values. When such a statement is created, it is possible to include remarks or attachments about this statement as metadata.
(2) Extensibility
(3) Dependence on the ontology
Computer Science
Figure 2: Java application (before)
Both the webserver and the triple store consist of RDF datasets powered by the used Jena framework. All view and create transactions on the dataset are done using SPARQL queries. These queries are stored in a special Java package and the results of each query are archived and benchmarked at runtime. Although the Jena framework also supports direct interactions on the dataset, using SPARQL queries the interactions are separated from the Java code. Also, these interactions are very easy to understand and adapt if the ontology might change. The Navigator and Browser objects from the user interface are represented as general Java classes, and they use SPARQL queries to interact with the dataset. The architecture is open for any new kind of representation unit, which also could start to do operations on the dataset using existing or new SPARQL queries. The functions of a Browser are quite constant, but a new Navigator can be made very easily by de�ning a new type using a set of SPARQL queries that need to be executed on each branch level.
The webserver is the application to view and edit data which is retrieved from the triple store or create new individuals. This webserver does as little assumptions as possible about the ontology. The Navigators fully depend on the supplied SPARQL queries. These look for any pattern between resources in the dataset and they depend on a grouping of these resources in namespaces (a). The Browser also depends (b) on the graph structure of an individual and (c) on a priming mechanism that bridges the gap between the Systems Engineering ontology and the application. Figure 3: Web service (after)
(1) User interface First of all, the Java application (�gure 2) needed installation and con�guration and it lacked intuitiveness at some points. By centralizing the location
(a) The full ontology is split in a primer-layer consisting of resources needed for the application (like graph status), an upper-ontology consisting of Systems Engineering concepts (like PhyisicalObject), a library consisting of project speci�c sub classi�cations of the upper-ontology concepts (like CentrifugalPump as a certain PhysicalObject) and the actual dataset consisting of individuals. All of these layers have their own namespace, so the SPARQL queries are easier to read.
19
Volume 17 • Issue 2 • December 2012
(b) A sub classi�cation from the library consists of multiple RDF statements that are grouped in a graph that can be addressed as a resource. An individual from the dataset consists of a set of graphs. The dataset needs to be able to contain metadata statements (who entered the data, a supplied attachment �le) about certain statements (say the color of a CentrifugalPump). For this reason three levels of graphs exist: graphs representing an individual, graphs representing a statement about an individual and graphs representing metadata. A Browser creates data that is structured in this way. (c) The upper-ontology namespace is �lled with all the elements that stem from the Systems Engineering standard, but the application could just as well be con�gured to produce data about a medical practice or a farm. The procedure to prepare the application to produce instances of the supplied upper-ontology is called priming, and consists of adding relations to some resources from the priming namespace to specify which individuals may be instantiated by which user and which relations between which types of individuals are allowed or obligated. The Browser uses these guidelines to support the data creation process. So the resulting ontology is not only self-explanatory, but also drives its own growth. This lead to the title of this engineering thesis.
�c�en���c re�ec���ns At the current stage of the thesis project the development phase is more or less over, and it is also decided that the scienti�c quality of the report will focus on how the application is designed. A good design quali�es the programmer as a Master of Science if the solution is not trivial. Related subjects are how to draw ontology diagrams (especially representing graphs is not yet often done in diagrams), how the application cares for the concurrency, the logic behind the user interface. These topics might deserve a research on their own, but they will need to be covered at some level. A related question that will not be dealt with (related to dropped approvement (4)) is how SPARQL queries could be constructed if the data would be federated over different triple stores.
Computer Science
Related publications It is tempting to delve into the abundance of papers produced by the academic communities related to the subject, in order to �nd some recent discussion the thesis can be a related to. If the topic of the thesis has some relevance, as hinted in the June volume of MaCHazine [4], there is even a chance of making a real contribution. As sketched in the �rst section, the transformation into the Semantic Web is a very intricate and broad movement. A search in Google Scholar for the combination of Software Engineering and the Semantic Web delivers a number of completely different �elds. The process of Software Engineering, for example, can be guided by using Semantic Web techniques of modelling, say, Java class structures. It takes some time to realize that this is completely the wrong association between the two search terms. The focus on the thesis is at desirable qualities of an application that produces Linked Data, not the process of coming to such an application. In fact, the application itself is meant to guide the development process of Electrical Engineering of a ship, but theory on that is fundamentally out of scope. Looking for similar attempts to design an application that relies as heavy as possible on an (upper) ontology results in two meagre attempts. There is the OWiki initiative[5], which sounds like an exact hit because it exploits the ontology, deals with creating metadata and has as main goal a user friendly data production, but the meaning of metadata is very different and the paper focusses on a very detailed and limited aspect. Then the KOMMA application framework[6] which has a higher relevance because it discusses an architecture that is quite similar, but still does this very generally and the paper is only cited twice.
20
Assumed that the right search queries were used and all relevant publications are online, disappointing results can mean to things. Either the topic is trivial and only some marginal publications deal with it, or the �eld is so new that no one is doing it yet. In both cases it is good to relate the thesis to what already exists, but this ambiguity doesn’t increase con�dence. One thing that does help to boost con�dence a little is the search results on the work on iRING, a completely identical approach to build a construction framework for the same ISO 15926 standard[3], which didn’t receive any papers. So it doesn’t seem to be a big competitor.
Sound argumentation Thinking too much about publishing might become dreaming. The main claim will be that the application is built in a very generalized way so it is highly extensible in the interface and highly con�gurable by changing the ontology. Two other important tests are if the application meets the requirements and if the users like to use it. The dif�culty in specifying requirements is not so unusual, but �nding users is a little more complicated, because the application is meant to create a whole new work�ow, so there are no users that know what they want yet. What the thesis report is concerned, I don’t know what I want either. The next step is �nishing the main question.
References [1]
http://www.integraalsamenwerken.nl/
[2]
TED.com, Tim Berners-Lee on the next Web, 2009.
[3]
Ruijven, L. van, Ontology for Systems Engineering, 2012/2013.
[4]
Smit, N., The Uni�ed Anatomical �uman, Machazine, volume 12, issue 4, June 2012.
[5]
Bolognini, et all., Exploiting Ontologies To Deploy User-Friendly and Customized Metadata Editors, 2009.
[6]
Wenzel, K., Ontology-Driven Application Architectures with KOMMA, 2011.
Volume 17 • Issue 2 • December 2012
Volume 17 • Issue 2 • December 2012
Wiskundepuzzel Prof.dr J.M. Aarts
Oplossing Puzzel LX Ruim je blokken toch op, jongen
Oplossing puzzel LX
Puzzel L MAgisCH
Prof.dr J.M. Aarts
Prof.dr J.M. A
Puzzel LXI : MagisCH
De puzzel was gebaseerd op een meetkundige illustratie van het
Een magisch vierkant van zes bij zes is een matrix met zes rijen en zes kolommen waarbij in iedere rij en in iedere kolom de cijfers een tot en met zes precies één keer voorkomen. De wiskunde studenten herkennen zulke magische vierkanten, zo hoop ik, als groepentafels. De negen bij negen magische vierkanten zijn de basis voor de sudoku-puzzels; bij de sudoku-puzzel is er nog de eis dat in ieder van de negen kleinere vierkanten van drie bij drie de som der cijfers ook 55 is. Deze puzzel is geïnspireerd op de K-doku; zo’n puzzel staat iedere zaterdag in de Volkskrant. Hierbij is de matrix in deel�guren verdeeld en bij elke deel�guur staat de uitkomst van de genoemde rekenkundige bewerking die wordt toegepast op de getallen in de deel�guur.
merkwaardige product
(a + b)3 = a3 + 3a2 b + 3ab2 + b3
Ik heb het bewijs dat Christiaan Huygens gegeven heeft van deze formule als uitgangspunt genomen. Alleen had ik aan het bewijs van Huygens iets gewijzigd om de opgave moeilijker te maken. Dat is helaas
×10
niet gelukt. Rein Leentfaar heeft buiten mededinging een heel
+17
+10
eenvoudige oplossing ingestuurd. Slim dat hij die gevonden heeft. :3
+9
+10
×10
+5
+10
:3
+10
−2
×5
+10
×20
Mathematics
Ik zal niet vertellen hoe de oplossingen precies in elkaar zitten. Met hetgeen ik hierboven gezegd heb, kan ieder snel een goede oplosssing vinden. Professor van der Poel kwam naar aanleiding van de puzzel nog bij me langs om te vertellen dat Professor Conway heel veel van deze ruimtelijke puzzels had gemaakt en computerprogramma’s had ontworpen om deze puzzels te ontwerpen en op te lossen. Ik heb op zijn kantoor een demonstratie van al deze mooie dingen gekregen. Als ik zie wat de geleerden de computers allemaal kunnen laten doen, dan word ik als puzzelredacteur wel moedeloos. Werk je avonden lang om een leuk probleem in elkaar te zetten, dan blijkt dat een druk op de knop voldoende is om het probleem op te lossen. Uit puzzel LX blijkt dat dit soms ook zonder computer kan.
Dit is de laatste puzzel die ik voor MaCHazine heb gemaakt; na tien jaar redacteurschap van de puzzelrubriek vind ik het welletjes. Als afscheidscadeau geef ik voor iedere goede oplossing 5 punten voor de ladder. Mijn opvolger is Dr. ir. Mark Veraar. Ik hoop van ganser harte dat jullie hem meer oplossingen toesturen dan ik mocht ontvangen.
1
21 1
D
Kick start your career!
Prepare yourself for your job interview
Take a look behind the scenes
Until February 26th, the Tuesday after the Presentation Days, you can sign up for the In-house Days. From March 18th until April 5th the In-house Days offer an opportunity to form a better, more complete idea of the companies you are interested in.
On February 12th, 13th and 14th ‘De Delftse Bedrijvendagen’ offers Application Trainings. The companies will provide you with both general tips and tricks as well as detailed personal advice.
UP N G I S ! NOW
Get to know over 100 national and international companies
On February 19th, 20th and 21st ‘De Delftse Bedrijvendagen’ hosts its most famous event, the Presentation Days in the Aula Congress Centre. This fair gives you the opportunity to get to know more than one hundred different national and international companies! There are several ways of meeting these companies. You can visit their information stand or attend their company presentation. There is also the opportunity to have your résumé checked. Each day ends with informal drinks together with the recruiters.
Participation
Netherlands, and takes place each year in the Aula Conference Centre of the TU Delft. This career event is specifically aimed at the students of Delft University of Technology and offers them a wide range of companies and institutions. ‘De Delftse Bedrijvendagen’ kick starts your career with the Application Trainings, Presentations Days, In-house Days and/or the Interview Days.
Your résumé will be forwarded to the companies of your choice. Based on the résumés the companies will select the participants. As the name suggests, the In-house Days are a great way to learn on location about the culture of a company and the projects they work on. On March the 28th an In-house Day will be held in the Aula Congress Centre in Delft for companies situated far away from Delft.
Take part in onetoone interviews From April 24th until May 8th ‘De Delftse Bedrijvendagen’ will be completed with the Interview Days. During this period, companies are free to invite students for an interview or simply to get to know the company in more depth. For the Interview Days your résumé will be sent to companies you are interested in, but also to companies that are interested specifically in your degree. You will receive an overview of which companies are interested, and from these you can make a selection.
All activities described above are included in a single price when participating in ‘De Delftse Bedrijvendagen’. On top of this, you also receive a full-color company guide with information about all participating companies.
Participation is only € 10,- if you register before January 25th. From January 26th and onwards participation will cost € 15,-.
You can participate by signing up via our website, www.ddb.tudelft.nl, or by coming to the Aula Congress Centre on January 23rd, 24th or 25th.
So if you are looking for a job, an internship or a graduation project, from January on you can subscribe at www.ddb.tudelft.nl!
All personal information will be treated strictly confidentially.
Organization
‘De Delftse Bedrijvendagen’ is organized by five student societies, that together from ‘The Pentagon’: • Vereniging voor Technische Physica • Gezelschap Leeghwater • Technologisch Gezelschap
design: Studio Piraat
2013
Every year ‘De Delftse Bedrijvendagen’ leads 2000 students to the start of their career. If you want to hit the ground running this year, make sure you do not miss this event. Whether you are job hunting or in need of an internship, ‘De Delftse Bedrijvendagen’ offers a unique opportunity to get to know a wide variety of high-profile companies. ‘De Delftse Bedrijvendagen’ is the largest technology oriented career event in the
• VSV ‘Leonardo da Vinci’ • W.I.S.V. ‘Christiaan Huygens’
In short: r job, find you sis ip or the internsh elftse ia ‘De D project v ndagen’! Bedrijve
Volume 17 • Issue 2 • December 2012
Library Updating. Risk it Now, or Risk it Later? Arie van Deursen Chances are your software depends on external libraries. What should you
In 2011, a new feature, single sign-on, was required for the system. To implement this, the team decided to adopt Atlassian Crowd.
do, if a new version of such a library is released? Update immediately? But what if the library isn’t backward compatible? Should you swallow the
Unfortunately, the old Acegi framework could not communicate with Atlassian Crowd. The natural replacement for Acegi was Spring Security, which was then in version 3.0.6.
pill immediately, and make the necessary changes to your system so that it can work with the new version? Or is it safe to wait for now, and avoid
However, the system already made use of an older version of the general Spring Framework. Therefore, in order to upgrade to Spring Security 3.0.6, an upgrade to the entire Spring Framework had to be conducted as well.
immediate cost and risk? Together with Steven Raemaekers and Joost Visser (both from SIG), we embarked upon a reseach project in which we seek to answer questions like these. We are looking at library and API stability, as well as at the costs and consequences of library incompatibilities. A first result, in which we try to measure library stability, has been presented at this year’s International Conference on Software Maintenance. The corresponding paper starts with a real life example illustrating the issues at hand.
To make things worse, the system also made use of an older version (2.0.9) of Apache Struts. Since the new version of Spring could not work with this old version of Struts, Struts had to be updated as well. Upgrading Struts not just affected the the system’s Java code, but also its Java Server Pages. Between Struts 2.0.9 and 2.2.3.1 the syntax of the Expression Language used in JSP changed. Consequently, all web pages in which dynamic content was presented uinsg JSP had to be updated. Eventually, a week was spent to implement the changes and upgrades.
Computer Science
The system in this example comprises around 200,000 lines of Java code, divided over around 4000 classes. The application depends on the Spring Framework, Apache Struts, and Hibernate. Its update history is shown below
The system was built in 2004. Third-party library dependencies were managed using Maven. Version numbers of the latest versions which were available in 2004 were hard-coded in the configuration files of the project. These libraries were not updated to more recent versions in the next seven years. The system used version 1.0 (from 2003) of the Acegi authentication and security framework. In 2008, this library was included in Spring, and renamed into Spring Security, then at 2.0.0. As time passed, several critical safetyrelated bug fixes and improvements were added to Spring Security, as well as a number of changes breaking the existing API. One might argue that keeping a security library is always a good idea. But since the development team expected compatibility issues when upgrading the Acegi library, the update to Spring Security was deferred as long as possible.
24
The good news was that there was an automated test suite available consisting of both JUnit and Selenium test cases. Without this test suite, the impact of this update would have been much harder to assess and control. This case illustrates several issues with third-party library dependencies. 1. Third party libraries introduce backward incompatibilities. 2. Backward incompatibilities introduce costs and risks when upgrading libraries. 3. Backward incompatibilities are not just caused by direct dependencies you control yourself but also by transitive ones you do not control. 4. There likely will come a moment in which upgrading must be done: To fix bugs, to improve security, or when the system’s functionality needs to be extended. 5. The longer you postpone updating, the bigger the eventual pain. As your system grows and evolves, the costs and risks of upgrading an old library increase. Such an accumulation of maintenance debt may lead to a much larger effort than in the case of smaller incremental updates. In short, not upgrading your libraries immediately is taking the bet that it never needs to be done. Upgrading now is taking the bet it must be done anyway, in which case doing it as soon as possible is the cheapest route. In our research project, we seek to deepen our insight in these issues. We are looking at empirical data on how often incompatabilities occur, the impact of library popularity on library stability, the effort involved in resolving incompatibilities, and at ways in which to avoid them in the first place. Stay tuned!
Volume 17 • Issue 2 • December 2012
Teaching Reactive Programming
Bachelor Eindproject : tips and tricks Bachelor eindproject:
Arie van Deursen
Seb Harrevelt
Seb Harreve
One of the new courses at the TU Delft MSc Computer Science in 2012
Je bachelor eindproject (BEP): een project waarin je kunt laten zien bij
was on reactive programming. The students loved this course, and I had a
welk vakgebied binnen de studie je interesses liggen. Ook het eerste
great time too. What was so good about it?
Format The course was taught by Erik Meijer, creator of the .NET reactive extensions framework Rx. Erik works at Microsoft, Redmond, and has a part time appointment at TU Delft. The lectures thus were packed in two weeks, followed by several student presentations over Skype after Erik had returned to Redmond.
Content The course content included big data, asynchronous operations on observable collections, push versus pull, Pip Coburn’s change function, the role of abstraction, monads, LINQ, coSQL, event processing, schedulers, and the reactive extensions architecture. Course material included Programming Reactive Extensions and LINQ by Jesse Liberty and Paul Betts.
Labwork Students subsequently used this understanding of reactive programming to build a cloud-based (Windows) phone app, to be put in the market place. Results include one app to keep an eye on your stack overflow account, and two apps focused on train delays. Some helper libraries developed by the students are now on github, such as a proxy for the Dutch Railways API, and ExchangeLINQ, a LINQ query provider for the Stack Exchange API.
The Engineer as Educator One thing that made this course special was Erik sharing his extensive experience in API design. He explained the actual tradeoffs he and his team made in the design of Rx — for example when deciding that subscribing to an IObservable should return an IDisposable in order to allow the developer to stop the subscription. In order to explain his design decisions, Erik naturally made use of his background in functional programming. To answer the student’s questions, he used monads, co- and contravariance, category theory, and trampolines, to name a few. Thus, the course demonstrated how a thorough understanding of programming language theory is a prerequisite for good API design. More than anything, this course motivated students to dive into the theory of (functional) programming.
Pizza In the final session, the students presented their apps and their reactive programming skills. The IDEs were opened, and the students experienced what it feels like when a senior engineer like Erik reviews your code. The session took place at 6pm over Skype, with students having pizza and beer, while Erik was having his morning coffee in Redmond.
moment in je studie dat je een groter project alleen zult moeten uitvoeren zonder terug te kunnen vallen op studiegenoten.
Vooraf Zelf een vakgebied, een onderwerp en een begeleider kiezen is opzich al een uitdaging. Belangrijk is het om een begeleider te kiezen waarbij je je op je gemak voelt. Op die manier is de drempel om vragen te stellen lager en wordt het leuk om langs te gaan bij je begeleider. Dit draagt bij tot het goed doorlopen van je project. De eerste stap zal zijn: het maken van een plan van aanpak samen met je begeleider. Je kunt dan denken aan het indelen van de literatuurstudie, het echte onderzoek en de de�nitieve afronding van het project. Daarbij speelt de presentatie een belangrijke rol. Tijdens het Studentencoloquium zul je je daarop voorbereiden.
Mijn project Mijn bachelorproject ging, simpel gezegd, over partiële differentiaalvergelijkingen (PDV’s). Eigenlijk lagen mijn interesses meer bij Numerieke Methoden, maar door mijn bachelorproject bij PDV te volgen dacht ik mijn kennis te verbreden. Als ik nu terugkijk op mijn bachelorproject en de periode eromheen, ben ik daar niet zo tevreden over. Naast mijn bachelorproject volgde ik nog vier vakken. Tegelijk had ik de drang om mijn bachelor datzelfde jaar af te ronden, onder andere omdat de langstudeerboete me op de hielen zat. Toen ik aan mijn bachelorproject begon had ik de instelling dat het met genoeg inzet moest lukken. Toen mijn literatuurstudie achter de rug was, kwam ik echter tot de conclusie dat er teveel van mijn tijd in andere bezigheden ging zitten. Ik had geen overzicht meer van mijn project, waardoor ik inef�ciënt werkte en berekeningen dubbel deed. Ook vond ik de problemen waar ik tegenaan liep op dat moment niet groot genoeg om om hulp te vragen. In de tussentijd had ik drie van mijn vakken gehaald. In de zomervakantie kreeg ik de kans mijn bachelorproject en het laatste vak af te ronden. Beiden heb ik afgesloten, zij het met de hakken over de sloot. Dit bij elkaar betekende dat de titel Bachelor of Science een feit geworden was.
Advies Het is duidelijk dat op deze manier je bachelor afronden niet prettig is. Een planning maken die haalbaar is, op tijd je afspraken maken en conact houden met je begeleider zijn dingen die ik jullie wil meegeven. Je bachelorproject wordt zo een leerzaam onderdeel van je bachelor waar je met plezier op terug kunt kijken. Kies een onderwerp dat je leuk vindt en voer je planning uit, dan komt dat project wel goed! Ik wens jullie veel succes en plezier bij het doorlopen van jullie bachelorproject.
25
Volume 17 • Issue 2 • December 2012
A Glimpse beneath the surface: modeling 3D material with 2D data
A Glimpse beneath the surface: modeling 3D material with 2D data Kimberly McGarrity
Kimberly McGarrity December 5, 2012
I originally chose to study physics at Michigan State University in the US because I wanted to apply mathematics to everyday problems. Application has always been important to me, but I also wanted to understand the underlying principles. Over the years I have been involved in many research projects from experimental acoustics to experimental biophysics to computational theory on polycrystalline materials. Almost four years ago, I came here to TU Delft as an invited researcher to the Theoretical Physics department to work on modeling electromigration in platinum nanowires. Near the end of that time, I stumbled upon my current PhD research, which is an interdisciplinary project between the departments of statistics and materials science and engineering. This work appeals to me because the stochastic model that I am developing and exploring has a direct application to materials. At the same time, I can delve into the mathematics and statistics of my model and examine the underlying principles that govern it. I have the opportunity to learn two disciplines in detail that I have only had vague interactions with in the past. At the end of my PhD, I will have created a practical model for my industrial partners while making meaningful contributions to the understanding of the statistical estimators that I employ. I could never have imagined a more perfect opportunity for me.
Figure 1: Serial sectioned images of a banded steel stacked together to form a 3D image of the microstructure.
To give a brief introduction to the application of my project, I need to �rst discuss materials. I am working with steel, but most of what I am going to write next applies to other metals, ceramics and even concrete. The �rst thing that I had to learn was there are many different types of steel. Some are extremely hard and others soft, some are highly resistant to corrosion and some rust quickly, some are suitable for building bridges and towers while others are best for making nuts and bolts and washers. The appropriate application for a material is determined by its mechanical properties, which arise from the composition and arrangement of the atoms at the microscopic level. Each unique composition and spatial arrangement of atoms is called a phase, and there may be more than one phase within a material. The basic unit within a material is a grain. The phases, size, shape, distribution and orientation of grains within the material is what distinguishes one material from another. The arrangement of the grains and phases with respect to one another de�ne the microstructure. The most common steel has a uniform microstructure. The grains are all relatively the same size (small) and approximately the same shape (spherical). They are uniformly distributed throughout the material and their atomic lattice orientation relative to the neighboring grains is also completely random. With this kind of microstructure it is reasonable to assume that a sample taken from any place within the material will be representative of the microstructure as a whole. This means that evaluating the microstructure at the surface is the same as evaluating it somewhere inside the material.
Mathematics
Therefore, a single two dimensional (2D) picture provides a signi�cant and useful amount of information about the properties of the steel. However, I am not working with a uniform microstructure. Instead, I am trying to model what is called banded steel. Banded steel gets its name from the fact that the phases with in the steel segregate into layers of elongated grains. This material is interesting because it has strange mechanical properties. The material might be strong in one direction, while soft and malleable in another. Banded steel is dif�cult to machine because of this asymmetry, and it often cracks easier and corrodes faster than uniform microstructures. The problem is, with this kind of microstructure, a single 2D image cannot be assumed representative of the microstructure as a whole. While it is possible to obtain three dimensional (3D) information about the microstructure, it requires great expenditures of time and resources. One of the �rst things I did when I started my PhD was to spend six weeks at Tata Steel, my project’s industrial partner, obtaining serial sectioned images. Every day I traveled an hour by train to Beverwijk to spend eight hours polishing two banded steel samples and taking pictures of the three orthogonal directions under the microscope at six different magni�cations. I would then go back
1
26
Volume 17 • Issue 2 • December 2012
Figure 2: The model: Cylinders in an opaque medium are intersected by cutting open the box. The rectangles observed on the cut plane are portions of the cylinders, and from the width and height of the rectangles we can estimate not only the distribution of the radius and height of the cylinders, but also the volume and surface area distributions of the cylinders.
and polish the samples to remove a micrometer of material and then take a new set of pictures, return to polish, take pictures, polish, pictures, polish, pictures, on and on... In that time, I was able to obtain 55 serial images that can be stacked together to form a 3D image (see Figure 1). These 55 images correspond to roughly 90 µm of depth into a 4 mm thick sample. All in all, I was literally only able to scratch the surface of my samples. When I came back to of�ce here in �WI, I had a much better understanding of the goal of my project: to create a statistical model to describe the important 3D characteristics of the microstructure from only a 2D data set. The �rst challenge in creating a model is deciding how to represent the objects of interest. Since I was working with bands, I decided that circular cylinders would be a good shape to use. Moreover, there are many other microstructural features, such as voids, precipitates, and inclusions which are often described as needles, plates and rods, that can also be thought of as cylindrical.
This model is rather simple, and the relationship between the observable 2D rectangles and the 3D cylinders is not so dif�cult to calculate. The challenge lies in processing the images, deciding how to draw rectangles around the less-well-de�ned bands, testing the model against simulations, and going through the rigorous proofs for obtaining rates of convergence and asymptotic variances for the estimation procedures. The latter is important not just for completeness and mathematical closure, but also for determining how good the estimate is for a given data set. In an ideal world, we would have an in�nite number of observations, but in reality we have only a few. Since the goal of this project is to create a model that is usable in practice by my industrial partner, we need to know how reliable the results are. We also need to know when this model breaks down. How far from cylindrical can my objects deviate before this representation is no longer valid� This is the �nal question that I will be focusing on, and to do this I will be collaborating closely with my
industrial counterpart, Dr. Piet Kok. Piet has developed a model that he uses to generate realistic microstructures in order to test their mechanical properties. We will use this model to create a variety of structures that can range in cylindricity and test, in a controlled manner, the robustness of our model. In the end, I will hand over a model that can be used to describe many different types of microstructures, not just banded microstructures. My industrial partners will know under what circumstances they can apply this model and they will be able to use the results con�dently to assess the mechanical properties of the materials coming off their production line.
Mathematics
The basic premise of our stochastic model is that we embed circular cylinders, with their symmetry axes parallel, into an opaque medium (see Figure 2). The cylinders have a joint distribution for their radius and height that we call f (x, h), which is unknown in 3D. Then, we cut the medium in some random location, parallel to the symmetry axes of the cylinders and look at the plane formed by the cut. On the plane are rectangles whose height is exactly that of the cylinder and whose width is some fraction of the radius. From this, we have a joint 2D distribution of the width and height of the rectangles, which we call g(z, h). We estimate g(z, h) by the empirical distribution of the observed rectangles and use that to estimate f (x, h), since there is a straightforward relationship between them. More than this, though, we are able to estimate other quantities of interest, such as the volume and surface area distributions of the cylinders, both of which can be linked to mechanical properties. Figure 3 shows the results for the estimation of the squared radius and volume distributions for the banded steel shown in Figure 1.
Figure 3: Estimates (solid lines) of the 3D (light grey dashed lines) distribution functions from the 2D (dark grey dot-dashed lines) observable rectangle halfwidth distribution functions of the squared radius (left), and the volume (right).
27
Volume 17 •120 Issue 2 • December 2012
Volume 17 • Issue 2 • December 2012
100 80 60 40 20 0
Week 25
Week 26
Week 27
8
12
Sev 1
1
Sev 2
6
Sev 3
39
44
52
Total
46
52
64
Week 28
Week 29
Week 30
Week 31
Week 32
Week 33
Week 34
4
4
5
8
4
17
24
27
31
43
55
59
63
61
66
76
87
95
100
113
Van jaloezie op de sloop-COI naar gecontroleerd slopen: Wie wil dat nou niet? Ir. R.H.M. van Etten Door een jaar lang toekijken hoe alle niet praktische cadeautjes vakkundig uit het leven geholpen worden door de COI ontstaat er een zekere
alles (lees: ALLES) boven tafel zouden krijgen. De eerste paar keren dat er functionaliteiten opgeleverd werden kwam al snel aan het licht dat testen toch wel erg ondergewaardeerd werd. Vandaar dat de, inmiddels gesmede, testplannen toch in uitvoering gebracht worden.
jaloezie. Als het zoveelste cadeautje in stukken op de grond of tegen een
is mee te helpen om systemen op een gecoördineerde manier om zeep te
Allereerst moesten er een aantal processen ingericht worden om het daadwerkelijk testen van functionaliteiten vanuit India zo goed mogelijk te ondersteunen. Hierbij kan gedacht worden aan het uitstippelen van test scenario’s in individuele atomaire stappen. Deze stappen variëren van elementaire controles als ‘verifieer dat knoppen x en y in het menu aan de linkerkant zichtbaar zijn’ tot ‘pas data ABC aan en valideer dat deze wijziging in de goede systemen is doorgevoerd’. Ook moesten er natuurlijk voldoende handleidingen komen om data op te zetten. Met alleen deze twee categorieën is het natuurlijk niet mogelijk om de ontwikkelaars te overtuigen dus werd de derde categorie, rapportage ook netjes uitgestippeld.
helpen is dan ook snel, louter positief, beantwoord.
Processen
muur uiteen barst wordt de drang om deel te nemen aan de festiviteiten steeds lastiger te onderdrukken. Gelukkig zijn er, voor persoonlijk gewin, nog voldoende mogelijkheden om ‘uit te zoeken hoe spullen precies werken’ met de focus op hoe dat valt te misgebruiken. De vraag of er tijd
Situatieschets
Advertorial
Voor de grootste klant van Deloitte Consulting zou een Self Service portaal ontwikkeld worden. Denk bijvoorbeeld aan de situatie dat er geen televisie signaal meer door komt, waar vroeger gebeld moest worden naar een helpdesk met een standaard stappenplan is het idee hier dat de gebruiker zelf het stappenplan doorloopt en digitaal zijn verzoek tot reparatie indient. Hierbij wordt data uit vele verschillende systemen aan de gebruiker voorgeschoteld en vice versa weer in verschillende systemen opgeslagen. De integraties tussen deze systemen zijn, zoals het hoort, gebaseerd op Web Services met heel duidelijk afgesproken zonder, om het uitdagend te houden, concrete contracten. Waar de verscheidene ontwikkelteams testen als irrelevant bestempelden en beloofden louter kwaliteit op te leveren was het toch nodig om te testen of de kwaliteit ook opleeft naar de hoge standaarden die verlangd werden.
Aanpak Door deze insteek is ervoor gekozen om in de eerste paar weken scrum geen tijd te reserveren voor het oplossen van defecten, die zouden immers niet optreden. Mede dankzij het gebruik van deze visie werd het team van testers in India erg geprikkeld om te laten zien dat zij
28
Deze inhoudelijke benodigdheden zijn, ondanks dat ze vrij simpel klinken, misschien wel de elementen welke de meeste kopzorgen opleverden. Door de aard van een scrum project is er bijna nooit de kans verder vooruit te werken dan het einde van een iteratie. Dit zorgt ervoor dat er niets zo zeker is als verandering. Gelukkig was deze verandering redelijk bij te houden zolang de formele processen voor verandering maar goed vastgelegd werden en bleven. Deze veranderprocessen werden dan ook op zodanige manier ingericht dat het ontwerp team alle voorstellen (vanuit zowel het ontwikkelteam als de bedrijfsvoering) netjes moest voorleggen ter acceptatie aan de diverse ontwikkelteams, het integratie team en ten slotte het test team. Wat er in de praktijk gebeurde was dat ver-
Volume 17 • Issue 2 • December 2012
anderingen die vanuit puur technisch () perspectief als simpel bestempeld werden binnen no-time in de applicatie verwerkt waren zonder erbij stil te staan dat het vanuit test-perspectief toch beduidend intensiever geschat werd.
Er wordt dus vanuit alle kanten getrokken? Zoals uit voorgaande blijkt wordt er vanuit bijna alle hoeken aan het test team getrokken. In het merendeel van de gevallen wordt het test team onderschat, er wordt immers kwaliteit opgeleverd en kleine technische veranderingen hebben natuurlijk totaal geen impact op het test werk. Het moment echter dat het einde van het ontwikkeltraject steeds dichterbij komt wordt duidelijk dat het test team zo gek nog niet is. Door de gedegen kennis van de verschillende applicaties en de nieuw gebouwde laag daaromheen werd er steeds meer op het test team gebouwd en werd er ook steeds meer van verwacht. Waar de aandacht in het begin van het testen vooral naar het faciliteren van de samenwerking tussen de verschillende ontwikkelteams en het ontwerp team ging, werd alle aandacht aan het einde van het testen in een tweestrijd verdeeld. Enerzijds kostte het steeds meer moeite om de vooruitgeschoven en moeilijk oplosbare defecten te voorzien van onderzoeksrapporten: hoe ontstaan ze en hoe kan de functionaliteit zo verdraaid worden dat het binnen het afgetekende ontwerp past? Anderzijds gaat er veel moeite zitten in het uitleggen van het (bijna) opgeleverde systeem aan de verschillende training teams, eindgebruikers en natuurlijk onderhouders; het ontwikkelen (en daarmee het vinden van defecten) stopt immers nooit.
Verantwoordelijkheden Dit veld van politieke spelletjes en heen en weer duwen en trekken kan het beste betreden worden met een aantal vastgestelde verantwoordelijkheden.
Vertaling van ontwerp naar testcases Door de knipperlichtrelatie van functionaliteiten met de scope van het project zorgde voor vele afhankelijkheden en een neiging naar het just-in-time opleveren van de testen. Probleem hierbij is dat de projectleiding natuurlijk wel nog wat tijd wil hebben om de aanpak van het testen te beoordelen. Daarnaast zit er een omgekeerd evenredige relatie tussen de hoeveelheid tijd benodigd voor testen en de hoeveelheid tijd benodigd om op te leveren. Doordat de ‘low hanging fruits’ het snelst opgepakt werden geeft dit een redelijke uitdaging met betrekking tot het plannen van activiteiten.
Uitwerken van testcases
Ronald van Etten was de Commissaris Public Relations van het blauwe Bestuur 52. Hij is afgestudeerd aan de TU Delft in juni 2011 en werkt sinds november 2011 bij Deloitte in de service line Enterprise Architecture. Daarnaast maakt hij ook deel uit van de Raad van Advies van De Delftse Bedrijvendagen.
Vanuit kostenoverweging bestond het halve team uit mensen in India. Zij vormden de daadwerkelijke testers, dat klinkt misschien oneerbiedig ware het niet dat zij op die manier precies krijgen wat ze willen: veel van onze manier van werken leren kennen. Om dit alles in goede banen te leiden is er elke dag (naast vele onregelmatige contactmomenten) ten minste één vast moment waarop beide zijden van het continent hun zegje deden. Waar werd tegenaan gelopen, wie moest er achter de broek gezeten worden en vooral hoe kunnen we elkaar helpen de werkzaamheden te vergemakkelijken? De uitdaging hierbij was vooral omgaan met de geheel andere cultuur, de kunst van geen ‘nee’ zeggen is daadwerkelijk tot een nieuwe hoogte verheven. De logistieke uitdaging van de verschillende tijdzones werd overbrugd doordat zij met ‘onze tijden’ werken, wat er vaak op neer kwam dat zij voor ons startten en pas (ver) na ons stopten. Geen idee hoe ze het vol hielden, maar wel alle lof voor hen!
Defecten onderzoeken en beheren Het moment dat er discrepanties gevonden werden tussen ontwerp en implementatie was het zaak om deze aan te geven bij het team wat de oplossing zou moeten geven. Dit werd gedaan door in HP Quality Centre –HP tool die we gebruikten voor defect registratie en voortgangrapportage- een defect aan te maken waarvoor een triage gedaan diende te worden. Dit werd uitgevoerd door zoveel mogelijk berichten te onderscheppen om te identificeren wat er precies mis ging. De hoeveelheid SoapUI sessies, web service aanvragen en MiddleWare log onderscheppingen zijn bijna niet meer te tellen, hoewel het natuurlijk wel leuk is om de applicaties door en door te leren kennen.
Dagelijkse rapportage Het doel van de rapportage is al eerder aan bod gekomen, er werd een momentopname verlangd van de huidige status van het testen. Op het moment dat er 1) voldoende rechten, en 2) een logische manier van exporteren had bestaan dan was dit waarschijnlijk een triviale taak geweest. De praktijk bood echter alleen maar toegang tot de database die als een soort spinnenweb opgezet was… Talloze uurtjes SQL & VBA en vele ‘catastrophic errors’ later is er wel een tool neergezet die het proces van rapportages uitdraaien enorm versimpeld heeft (ofwel dat de Chinese koppeling verwijderd is).
Terug bij de DDBeunprojecten Natuurlijk blijft er ook voldoende ruimte over om ongepland te testen, of monkey testen zo u wilt, waarbij de mooiere defecten naar boven komen. Voorbeelden hiervan zijn bijvoorbeeld het misbruiken van nieuw gemaakte zoekfunctionaliteiten om wat buffer overflows in te zetten voor eigen gewin, of de mogelijkheid van het manipuleren van cliënt-side code om data uit systemen te trekken welke absoluut niet voor bepaalde ogen zichtbaar zou moeten zijn. Het mooie van deze activiteiten is dat deze op momenten plaatsvinden waarop de ontwikkelteams op z’n minst gezegd ‘niet zitten te springen’ om dit soort bevindingen omdat deze, in tegenstelling tot vele andere defecten, vaak grote veranderingen in ontwerpen vereisen om opgelost te worden.
Consulting
Advertorial
Nadat de testcases afgetekend waren begon de race tegen de klok om op tijd de individuele tests uitgeschreven te hebben. Zoals altijd klinken taken soms veel simpeler dan ze eigenlijk zijn, zo kunnen relatief eenvoudig uitziende testcases voor een vrij enthousiaste hoeveelheid stappen zorgen. Denk hierbij bijvoorbeeld aan het maken van een stappenplan om te ‘kijken of die fiets nog goed rijdt’, wat hierbij vaak vergeten wordt is dat leren fietsen toch zeker niet triviaal is. De wat simpelere tests wel kunnen vaak gecombineerd worden in één test om geen dubbel werk te doen en de geschatte benodigde tijd vanuit India te beperken (hardcoded regel: totaal aantal tests * 60 minuten).
Begeleiden van test team in India
Nadat er voldoende stuk gemaakt is wordt het natuurlijk tijd om naar een nieuwe uitdaging te zoeken. Tijd om in te gaan lezen in Solvency II, het blijft immers wel consulting…
B’vo blauw, b’vo 52!
29
Volume 17 • Issue 2 • December 2012
Google’s PageRank Google’s PageRank Alex Sangers
Alex Sangers
November 27, 2012 PageRank is the algorithm used by Google to rank websites in a particular order when searching on the web. For my bachelor thesis I searched for a relation between link spamming and the second eigenvector of the Google matrix.
they passed this website compared to the other websites. One can look at this as an internet user who clicks on hyperlinks to surf on the internet. This user however will never get bored of clicking (following hyperlinks) and does not mind visiting sites more than once. If the user visits a website with more outgoing hyperlinks, then (s)he will pick one randomly with equal chances. The visiting frequency of a particular website corresponds to its ranking. The attentive reader might notice that we have a problem when we arrive at a dead-end node, such as node 4 in Figure 1. Some other defects occur as well and to improve the model, two adjustments are made:
As the web expands every year, so does the demand for ef�cient search engines. Currently the web counts at least 8.6 billion websites and different search engines, such as Google, try to bring order to the web. PageRank is such an algorithm where important websites should appear higher in the results compared to less important websites. The algorithm uses the structure of hyperlinks between the websites and references in scienti�c publications to determine the ranking. Eventually, the PageRank is the eigenvector corresponding to the largest eigenvalue. This is the biggest eigenvalue problem of the world. Several businesses try to abuse the algorithm to receive an unfair high PageRank. We call this link spamming and, obviously, link spamming is harmful for the quality of PageRank.
The Google Matrix An important aspect of PageRank is using the hyperlink infrastructure between different websites. A website can become more important if many other websites refer to this website.
Mathematics
First, let us represent (a part of) the web using a directed graph. If website 1 refers to website 2 by having a hyperlink on its website, then we represent this by an arrow from 1 going to 2, as we recognise in Figure 1.
2. In practise, surfers tend to follow a hyperlink with chance p and ‘jump’ to another website with chance 1 − p. Google uses p = 0.85. This behaviour can be mathematically expressed in the Markov matrix A, known as the Google matrix. This matrix can be explained in three parts, namely the hyperlink structure P, the dead-end nodes replacements ~ P and the ‘jumping’ behaviour E. Below, the graph in Figure 1 is written in matrix form: P) + (1 − p)E A = p(P + ~ := pP + (1 − p)E 0 0 1 1 0 02 = p 0 1 0 0 0 12 0.04 0.04 0.89 0.04 = 0.04 0.89 0.04 0.04
1 4 1 4 1 4 1 4
+ (1 − p)
0.46 0.04 0.04 0.46
0.25 0.25 0.25 0.25
1 4 1 4 1 4 1 4
1 4 1 4 1 4 1 4
1 4 1 4 1 4 1 4
1 4 1 4 1 4 1 4
.
(1)
Note that every matrix above is stochastic, because all columns add up to one and all elements are positive. The sur�ng behaviour of an internet user can now be seen as iteratively applying matrix A, thus xk+1 = Axk . The PageRank is given by the eigenvector corresponding to the largest eigenvalue of A. The largest eigenvalue for all Google matrices is equal to one, so the typical eigenvalue problem is x(1) = Ax(1) . For the example in Figure 1, the PageRank is given in Figure 2.
Figure 1: Directed graph with four nodes
Intuitively, PageRank determines the ‘importance’ of a certain website by following these hyperlinks (arrows) for a long time and counting how many times
30
1. Dead-end nodes will be replaced by nodes which have hyperlinks to all nodes in the web. In other words, if the internet user reaches a dead end, he or she will randomly choose the next website.
Figure 2: The PageRank corresponding to the graph in Figure 1
Volume 17 • Issue 2 • December 2012
Link spamming �ink spamming in this context can be de�ned as deliberately abusing the structure of PageRank to gain an unfair high ranking. An effective method of gaining a higher ranking is creating an irreducible closed subset. Informally speaking in terms of our internet user, an irreducible closed subset is a group of websites with the property that once the surfer gets in this group, he or she can never get out again by merely following hyperlinks. That is one of the reasons of adding the jumping chance 1 − p, but for the de�nition of an irreducible closed subset this is ignored.
Intuitively, the second eigenvector corresponds to the sur�ng behaviour of an internet user who does not jump (with chance 1 − p), because this part of Equation (1) is zero for x(2) . Hence, when this surfer gets in an irreducible closed subset, such as in {4, 4′ }, he or she will never get out by merely following hyperlinks (not being able to jump). Consequently, the visiting frequency in the link spamming nodes is high, while the time spent in nonlink spamming nodes will eventually go to zero. As a result, we can now formulate the relation between link spamming and the second eigenvector of the Google matrix:
For example, we would like to improve the ranking of website 4 in Figure 1. Therefore, we create an irreducible closed subset, which is graphically shown in Figure 3.
{
x(2) (i) ̸= 0 x(2) (i) = 0
if node i ∈ irreducible closed subset, if node i ∈ / irreducible closed subset.
(3)
Furthermore, I implemented several algorithms (direct and iterative) to con�rm this theory on some test problems and the results were positive. �ltimately, this information can be used to reduce the in�uence of link spamming using irreducible closed subsets. For more information about this subject I refer to my bachelor thesis and for more information about doing a bachelor thesis about PageRank I refer to C. Vuik or M. van Gijzen. My special thanks go to Martin who helped me tremendously as my thesis advisor.
References
Figure 3: Using link spamming to improve the ranking of node 4.
[1]
Alex Sangers, The second eigenvector of the Google matrix and its relation to link spamming, 2012.
Now, its corresponding PageRank is given in Figure 4. Needless to say, we see
Figure 4: The PageRank corresponding to the graph in Figure 3 that link spamming has dramatically in�uenced the PageRank in our example.
In my bachelor thesis I found a relation between link spamming and the second eigenvector of the Google matrix A. Remember, the �rst eigenvector x(1) is the PageRank vector and satis�es x(1) = Ax(1) . It appears that the second eigenvalue λ2 is always equal to p if A has at least two irreducible closed subsets. The corresponding eigenvector x(2) has the ∑ property that it counts up to zero, so i x(2) (i) = 0. Therefore, Ex(2) = 0 for all uniform matrices E. Finally, the corresponding eigenvalue problem is: λ2 x(2) = Ax(2) px(2) = (pP + (1 − p)E)x(2)
= pPx(2) + (1 − p)Ex(2) = pPx
(2)
(2)
⇒ x(2) = Px(2) If A has at least two irreducible closed subsets, then it is possible to �nd an eigenvector of P with sum equal to zero. This eigenvector of P corresponding to eigenvalue γ1 = 1 is a second eigenvector x(2) corresponding to λ2 = p.
Figure 4: Yellow website is using an irreducible closed subset to increase PageRank
Mathematics
Results
31
Volume 17 • Issue 2 • December 2012
Het vinden van een invariante maat Het vinden van een invariante maat Niels Langeveld Niels Langeveld
Men kan bij ieder reeël getal x een (gegeneraliseerde) kettingbreuk
1
maken. Hierbij maak je gebruik van een afbeelding. Deze afbeelding heeft een invariante maat. Deze begrippen zal ik kort toelichten. De meest gebruikte manier om een reeël getal te representeren is in decimaalvorm. Iedere eindige rij van deze decimalen geven een benadering voor je getal. Een andere manier om een reeël getal te representeren is om een kettingbreukontwikkeling te maken. Er zijn verschillende kettingbreukontwikkelingen. In dit artikel kijken we naar de gegeneraliseerde kettingbreuk. Bij een gegeven getal x ∈ R schrijven we: x = a0 +
a1 b1 +
a2
b2 +
..
.
We zullen alleen nog kijken naar x ∈ [0, 1] waarbij a0 = 0. Een vraag die je jezelf kunt stellen is:”hoe vinden we de rijen {a1 , a2 , . . .} en {b1 , b2 , . . .} en zijn deze uniek? Bij een irrationaal getal zullen we precies 1 rij vinden en bij een rationaal getal soms 2 (dit is bij een decimaalontwikkeling ook zo). Verder geeft iedere eindige kettingbreuk een benadering voor het getal x en neemt men meer a’s en b’s om zo een betere benadering te krijgen. Deze benaderingen convergeren sneller naar x dan een decimaalontwikkeling (dit is 1 van de redenen waarom er interesse voor is). Wat ik nog niet verteld heb is hoe we de rijen {a1 , a2 , . . .} en {b1 , b2 , . . .} construeren. Dat gaan we doen met behulp van een afbeelding. De�nieer nu T : [0, 1) → [0, 1) door T (x) =
⌊1⌋
Mathematics
Zet nu a1 (x) =
x
x
−
⌊ ⌋ 1 x
⌊⌊1⌋⌋ x
x
en
voor x ∈ (0, 1] , T (0) = 0
b1 (x) =
⌊
a1 (x) x
⌋
(1)
als x ̸= 0,
en de�nieer an (x) resp. bn (x) door an (x) = a1 (T n−1 (x)),
bn (x) = b1 (T n−1 (x)),
als T n−1 (x) ̸= 0.
Dan volgt uit (1) dat x=
a1 b1 + T (x)
en
T (x) =
a2 b2 + T 2 (x)
zodat invullen geeft dat a1
x= b1 +
a2 b2 + T 2 (x)
Als we T n keer toepassen vinden we dus:
32
a1
x= b1 +
···
a2 b2 + T 2 (x)
0
... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... ... .. ... ... . ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... ... .. ... ... . ... ... .. ... ... ... ... ... .. ... ... ... ... .... ... ... ... ... ... ... ... .. ... ... ... ... .. ... . ... . . ... ... .. ... ... . ... ... .. ... ... ... ... ... .. ... .. . ... ... ... ... .. ... ... ... .. . ... .. ... ... .. ... .. ... ... ... . ... ... .. ... ... . . ... .. ... ... ... ... . ... ... ... .. ... . ... ... ... .. ... . . ... ... ... ... .. ... ... .. ... ... .. ... ... ... ... .. ... ... ... . .. ... ... ... ... . ... .. ... ... .... . . ... .. ... ... ... ... . ... .. ... ... ... . ... ... ... .. ... . . ... .. ... ... .. .. ... ... ... ... .. ... ... ... . .. ... ... ... .. . ... ... .. ... ... . ... ... .. ... ... ... . . ... ... ... ... ... ... ... ... ... ... ... . ... ... ... .... ... . ... ... ... ... .... . . ... .. .... ... ... ..... ... ... . ... ... ..... ... ... ... ... ..... .. ... ... ... ..... ... ... ... ..... . ... ... ... ... ..... ... ... ..... ... .... . . . 3 3 1 11 10 3
2 5
1 2
1
Figuur 1: De afbeelding T .
Een invariante maat Een invariante maat µ is een maat op een verzameling X (met σ-algebra F ) bij een gegeven functie T : X → X. Zodanig dat µ(T −1 (A)) = µ(A) voor alle A ∈ F . Als T injectief is kan men T −1 vervangen door T . Bij de afbeelding waar wij geïnteresseerd in zijn is dit niet het geval. Het is niet zo dat bij iedere afbeelding zo’n invariante maat µ te vinden is. Gelukkig is dat bij onze afbeelding wel het geval (deze is uniek). Een existentiebewijs is te vinden in m’n scriptie en zal ik jullie nu niet verder mee lastigvallen. Hoewel er wel een invariante maat is voor onze afbeelding T weten we op dit moment nog niet hoe we die kunnen vinden. In het algemeen is dit een lastige klus. Zeker het vinden van een analytische vorm lijkt een onbegonnen zaak. Daarom heb ik de invariante maat numeriek benaderd. De invariante maat heeft als eigenschap dat het een kansmaat is en kan worden geschreven als ∫ µ(A) = A f (x)dx . Het is de kansverdeling van waar een x ∈ (0, 1] terecht komt tijdens het itereren over T . Als we geen numerieke fout zouden maken dan zouden we een willekeurige X kunnen nemen en die itereren over T en dan kijken waar deze allemaal terecht komt. Echter maken we wel een numerieke fout en bij iedere iteratie loopt de fout op. Bovendien heeft onze functie T veel discontinuïteiten dus kan x totaal ergens anders heen gaan wanneer deze door de numerieke fout er net overheen springt. Na enig geploeter heb ik de invariante maat toch numeriek kunnen benaderen. Wat ik heb gedaan is niet 1 willekeurig punt genomen maar 2000 deze 20 keer ge-itereerd en dit alles 500 keer. Deze 20 miljoen punten hebben een verdeling en deze geeft een benadering voor de invariante maat. De verdeling ziet er zo uit:
Volume 17 • Issue 2 • December 2012
Waarbij µ de invariante maat is die we gevonden hebben. De functie f is constant op intervallen waarbij x1 geen discontinuïteiten heeft. We zien dat we de integraal ook als volgt kunnen schrijven: ∫
1
f dµ =
0
∫ 1 ∞ ∑ k+1 1 1 dµ 1 k k=1 k
Merk op dat bij een gegeven k de integraal ∫
1 k+1 1 k
1 dµ
het percentage geeft waarvoor an = k. We vinden de volgende limiet: Figuur 2: simulatie van een verdeling van 30 miljoen punten
lim
n→∞
Deze functie ziet er in ieder geval glad uit, maar niets geeft ons de zekerheid dat dit een goede benadering is voor de invariante maat. Daarom heb ik deze benadering getest op invariantie (dit is te lezen in m’n verslag).
Ergodenstelling van Birkhoff Nu we een benadering voor de invariante maat voor T hebben willen we deze kunnen gebruiken. Een krachtige stelling die gebruik maakt van een invariante maat is de volgende: Theorem 0.1. (Ergodenstelling van Birkhoff) Laat (X, F , µ) een kansruimte zijn en T : X → X een afbeelding zijn die µ-invariant is. Dan geldt voor elke f ∈ L1 (µ) is er een f ∗ ∈ L1 (µ) met lim
n→∞
1 a1
+ ··· + n
1 an
≈ 1.7222433 . . .
Dergelijke vergelijkingen kan men enigszins makkelijk uitrekenen wanneer je beschikking hebt over de invariante maat. En wanneer men gebruik kan maken van de Ergodenstelling van Birkhoff. We hebben gezien wat een gegeneraliseerde kettingbreuk is. Dat we de functie T kunnen gebruiken om de ai ’s en bi ’s te bepalen. En de invariante maat kunnen gebruiken samen met de Ergodenstelling van Birkhoff om limieten te bepalen die gelden voor bijna alle x ∈ (0, 1). Voor meer informatie kun je terecht op : repositry.tudelft.nl zoekterm ”gegeneraliseerde kettingbreuk of de scriptie van Niels van der Wekken te vinden op zoekterm ”quadratic irrationals”. Wij hebben beiden ons bachelorproject bij Cor Kraaikamp gedaan. Dus als je interesse in het onderwerp hebt kun je ook bij hem langs gaan.
n−1 1 ∑ f ◦ T i (x) = f ∗ (x) n i=0
∫ ∫ Bestaat bijna overal, is T -invariant en X f dµ = X f ∗ dµ. Als T ergodisch ∫ is dan geldt f ∗ een constante C (bijna overal) en dat f ∗ = X f dµ.
De T die wij hebben voor onze kettingbreukontwikkeling blijkt inderdaad ergodisch te zijn. Verder hebben we alle ingrediënten voor het toepassen van de stelling en gaan dat dus ook doen.
lim
1 a1
1 a2
+
+ ··· +
1 an
n
n→∞
Waarbij de {a1 , a2 , . . .} een rijtje is uit de gegeneraliseerde kettingbreuk van een willekeurige x ∈ (0, 1). Dat hier een getal uitkomt wat hetzelfde is voor bijna alle x zou je in eerste instantie misschien niet zeggen. Dat blijkt wel het geval en we gaan dit getal uitrekenen met behulp van de Ergodenstelling van Birkhoff. Als we terugblikken op het begin zien we dat an (x) = a1 (T n−1 (x)) Als we voor f de functie f (x) = 11 nemen zien we dat we de limiet dus ook ⌊x⌋
als volgt kunnen schrijven: lim
n→∞
n−1 1 ∑ f ◦ T i (x) n i=0
Uit de Ergodenstelling van Birkhoff volgt nu dat dit gelijk is aan: ∫
1 0
f dµ
Mathematics
Laten we kijken naar:
33
EEN HAPPY PLACE VOOR NERDS
Stel, je richt een bedrijf op met één doel: dé plek zijn waar je zelf als nerd ook zou willen werken. Dat hou je tien jaar lang vol, door internetbubbels en economische crises heen. Wat heb je dan? Q42. Twee leden van Christiaan-Huygens, Herman en Jan-Willem, werken er al een paar jaar. Tijd om te vragen hoe het gaat.
HOE kwAm jE bij Q42 tERECHt? HERmAN
wAt mAAkt Q42 bijzONDER?
Ik reageerde op een tweet van één van de oprichters, Kars. Voor ik het wist zat ik tegenover hem voor mijn eerste sollicitatiegesprek ooit. “Laat maar eens wat code zien,” zei Kars.
Ik zag de vacature “knappe kop gezocht” op hun website en reageerde dat het me te gek leek om daar te werken, maar dat ik nog geen relevante opleiding had. Dat vonden ze geen enkel probleem. Ik liet wat van mijn eigen projectjes zien en een week later was ik aan het werk!
jAN-wiLLEm
wAt DOE jE DAAR PRECiES? HERmAN
Ik heb de afgelopen twee jaar aan heel veel verschillende projecten gewerkt, zoals schaatsen.nl, maar ook aan het onlangs gelanceerde Philips Hue. Daarmee kun je de verlichting in huis met je telefoon dimmen of van kleur laten veranderen.
Ik heb mij vooral gefocust op Objective C. Daarmee kun je ontwikkelen voor iOS. Dat gaat me heel goed af en ik heb gewerkt aan o.a. de nieuwe app voor 9292 en een eigen product van Q42, Link, een soort sociaal netwerk met locaties.
jAN-wiLLEm
HERmAN
Kwaliteit boven kwantiteit! Bovendien lukt het Q goed om vanuit hun technische expertise en jarenlange ervaring de ideeën over nieuwe ontwikkelingen binnen het vakgebied over te brengen aan hun klanten zoals D-Reizen, KPN, 9292 en ThiemeMeulenhoff. Maar wat ook echt te gek is, is dat iedereen de ruimte krijgt om aan eigen projecten te werken. In navolging van Google heeft Q al jarenlang elke week een middag ‘Passietijd’. De kleine, persoonlijke projecten die in deze uren ontstaan, groeien regelmatig behoorlijk uit de kluiten. Neem bijvoorbeeld Handcraft.com, een superhandige tool om website prototypes mee te maken in de browser, of Cynthia 2.0, de digitale office assistant die ik zelf ontwikkeld heb. Ze zwaaide en zei ‘Goedemorgen’ of ‘Goedemiddag’ wanneer er iemand langsliep.
Bij Q42 werken op dit moment 49 mensen, waarvan 46 ontwikkelaars. Dat vind je bij geen enkel ander bedrijf terug denk ik. Daardoor is de sfeer echt geweldig: geen vervelende management types die geen flauw idee hebben waar je mee bezig bent. Je kunt een potje tafelvoetbal spelen als je daar zin in hebt, of op vrijdagmiddag lekker een biertje drinken met z’n allen. En zo kan ik nog wel even doorgaan, te veel om op te noemen eigenlijk. Kom gewoon een keertje langs, dan zie je het zelf!
jAN-wiLLEm
wAt zijN DAt VOOR gAStEN, DiE Q’ERS? EEN Q-mOmENt DAt jE zAL bijbLijVEN? HERmAN
Supernerds, maar dan wel van het sociale soort. Altijd in voor een slechte grap. De beste omschrijving is misschien wel een hechte vriendenclub.
Awesome nerds. Eén voor één slimme mensen die allemaal hun eigen specialiteiten hebben en gebruiken. Daarnaast staan ze altijd open voor nieuwe ideeën en leuke uitdagingen.
jAN-wiLLEm
HERmAN
Oh dat zijn er zoveel! Stappen met collega’s, het werken aan supervette projecten en niet te vergeten de “Q-uitjes”, die zijn echt heel bijzonder. Met de hele club, plus aanhang, een paar dagen ertussenuit om te eten, drinken en samen toffe dingen te doen.
W00tcamp, een tweedaagse code-a-thon waarbij je met heel Q superveel gave dingen gaat maken. Zoals vorig jaar bijvoorbeeld: Mimo, de plant die een virtueel Facebookleven heeft gekregen. Door middel van sensors vraagt de plant via Facebook om water, aandacht en zonlicht. Of “Settle it!”, een app die kijkt wie het hardste schreeuwt om iets te “settlen”. Die staat nu zelfs nog in de App Store!
jAN-wiLLEm
Bij Q42 proberen we hard de happy place for nerds te blijven. Vanuit Den Haag en binnenkort Amsterdam werken we aan projecten voor toffe opdrachtgevers als het Rijksmuseum, 9292, Philips en de Staatsloterij. We zijn altijd op zoek naar een knappe kop die ook Q’er wil worden. Ben jij zo iemand of wil je gewoon even komen snuffelen? Dat kan altijd. Neem dan contact op met Chris:
[email protected]. Of tweet wat, post iets op onze Facebookpagina of bedenk een andere manier om onze aandacht te trekken. Het is Herman en Jan-Willem immers ook gelukt!
Volume 17 • Issue 2 • December 2012
The Hidden Accuracy of DG Paulien van Slingerland
Numerical approximations for PDEs can contain ‘hidden accuracy’. Application of a post-processor then sometimes nearly doubles the order
↑ x ¯
of convergence. Interestingly, this post-processor does not need to
↑
x ¯
contain any information of the underlying physics or numerics...
Figure 1: Symmetric (left) and right-sided (right) kernel
To study this post-processor, consider the following transport problem: x ∈ [a, b],
ut + ux = 0,
unavailable. To make the post-processor applicable near non-periodic boundaries, the one-sided post-processor has been proposed in [3].
t ≥ 0.
with either periodic boundary conditions or a Dirichlet boundary condition at x = a and some known initial condition. Next, we construct a numerical approximation uh for this problem, using the discontinuous Galerkin method. To this end, we subdivide the spatial domain into mesh elements (intervals) of length h. The DG method can be seen as a generalization of the �nite volume method, except that the approximation uh is a polynomial of degree p or lower (rather than a constant) within each mesh element. Discontinuities at the mesh element boundaries are allowed. To discuss the post-processor below, further details of the discretization [2] are not needed (we use �rst order upwind �uxes).
Symmetric post-processor To post-process our DG approximation uh in an evaluation point x ¯, the main idea is to convolve it against a certain kernel function K (scaled by the mesh size h): u∗h (¯ x) =
1 h
∫
b
K a
(
x ¯−x h
)
uh (x)dx.
(1)
This kernel is de�ned in terms of B-splines ψ (p+1) of order p + 1 ≥ 1, which can be de�ned recursively in the following manner: ψ (1) is the indicator function 1[− 1 , 1 ] , and ψ (p+1) = ψ (p) ⋆ψ (1) , where ⋆ denotes the convolution 2 2
operator. A B-spline ψ (p+1) is a piecewise polynomial of degree p that is p−1 , p+1 ]. times continuously differentiable. Moreover, it is zero outside [− p+1 2 2
This technique is similar to the symmetric case, except that the kernel nodes are shifted to one side of the origin, ⌉ the right side (the notation ⌈ . ⌉ ⌈ e.g.
means we are rounding up): xj = p+1 + j for all j = 0, ..., 2p. Figure 1 2 (right) illustrates the right-sided post-processor. Unlike the symmetric postprocessor (left), it can be applied anywhere close to the right boundary of the domain, without requiring information outside the spatial domain. This is because the support of the right-sided kernel is located entirely on the right ( −. ) side of the origin (although the support of K x¯h is located on the left side of the evaluation point x ¯, as illustrated).
Although the right-sided post-processor is suitable near the right boundary, it is not suitable near the left boundary, as it would require information outside of the spatial domain in this region (this is similar to the symmetric case). To be able to post-process near the left boundary, we can reverse the strategy above and shift the kernel nodes to the other (left) side of the origin. The resulting left-sided post-processor is applicable near the left boundary, but not the right. Although neither of the post-processors can be applied in the entire domain, we can still cover the entire domain by combining the previous kernel types: in the interior, we can use the symmetric kernel; at the right boundary, we can use the right-sided kernel; at the left boundary, we can use the left-sided kernel; and in the transition regions, we can use kernels that are between a symmetric and a one-sided kernel: more speci�cally, for a given evaluation point x ¯, the (combined) one-sided post-processor uses the following kernel nodes:
Mathematics
The symmetric kernel K in (1) is a linear combination of 2p + 1 B-splines that are located symmetrically around the origin:
K(x) =
2p ∑
j=0
cj ψ (p+1) (x − xj ),
xj = −p + j,
(2)
where the coef�cients cj are chosen such that the resulting post-processor reproduces polynomials q of degree 2p and lower in the sense that q ⋆ = q. The latter is crucial for the accuracy-enhancing nature of the post-processor (using Taylor’s theorem). ( ) Figure 1 (left) illustrates the application of the symmetric kernel K x¯−x at h the evaluation point x ¯ in the mesh (for p = 1). The kernel nodes are indicated by circles, and the corresponding (three) B-splines by dashed lines. Although the symmetric post-processor does not contain any information of the underlying physics or numerics, it has been shown in [2] that it can enhance the DG convergence rate from order p + 1 to order 2p + 1 (assuming that the exact solution is periodic and suf�ciently smooth).
for all j = 0, ..., 2p,
xj = −p + j + λ(¯ x),
where λ takes different integer values throughout the domain, as illustrated in Figure 2 (left). It can be seen that the latter is designed so that the postprocessor can be applied in the entire domain, even for non-periodic boundary conditions. ⌈
3p+1 ⌉ 2
symmetric
0
−⌈
r+p+1 2
right-sided
3p+1 left-sided ⌉ 2 a
x ¯
0
b
−
r+p+1 left-sided 2 a
right-sided
symmetric
x ¯
b
Figure 2: Original (left) and new (right) choice for λ.
One-sided post-processor
Position-dependent post-processor
For an evaluation point near the boundary, the symmetric post-processor requires information outside the spatial domain (cf. Figure 1 and the convolution in (1)). Unless the boundary conditions are periodic, this information is
The non-symmetric kernels are known to be less accurate than the symmetric kernel. Furthermore, the discontinuous nature of λ above introduces arti�cial jumps in the post-processed solution. To improve the accuracy and smoothness
36
Volume 17 • Issue 2 • December 2012
near the boundary, we now propose the position-dependent post-processor (as appeared in [4]). To this end, we �rst de�ne a generalized post-processor by relaxing both the number and the position of the kernel nodes. Speci�cally, we drop the convention that the kernel must be based on 2p + 1 kernel nodes, and use r + 1 B-splines instead (where r is any positive integer at this point). Furthermore, we allow the kernel nodes to take real values, instead of the original approach to consider integers only. This makes it possible to render λ, and thus the overall technique, smooth. Altogether, the generalized post-processor uses the following kernel nodes: xj = −
r + j + λ(¯ x), 2
for all j = 0, ..., r,
where λ is now the function illustrated in Figure 2 (right). Other than that, the post-processor is de�ned as before (using r rather than 2p in the upper bound of the summation in (2)). The main advantage of the new de�nition of λ is that it is now continuous everywhere. Because the �ltered DG solution is as smooth as λ (but typically not smoother than the B-splines), the generalized post-processor yields a better and more realistic smoothness than before. We can now specify the position-dependent post-processor: to this end, suppose that u⋆h,2p+1 (¯ x) and u⋆h,4p+1 (¯ x) are the result of applying the generalized post-processor using 2p + 1 and 4p + 1 kernel nodes respectively. Furtermore, let θ : [a, b] → [0, 1] be a (‘smooth’) function that is equal to 1 in the interior and equal to 0 near the boundary. Then, we set
stair-stepping effect. This can be explained by the use of extra kernel nodes and the continuity of the new de�nition of λ. As a result, unlike before, the new post-processor enhances the accuracy of the DG approximation in the entire domain. Error Before Post−Processing −3
Error After Post−Processing (Old) −3
10
10 20 el. 40 el. −6 80 el. 10 160 el.
−6
10
−9
10
−12
10
10 10
0
spatial domain
6.2832
20 el. 40 el. 80 el.
Error After Post−Processing (New) −3
10
20 el.
−6
160 el. 10
−9
10
−12
10
40 el.
−9
0
80 el. 160 el.
−12
spatial domain
6.2832
0
spatial domain
6.2832
Figure 4: Results The post-processor can also be applied for two-dimensional problems (using tensor products). Furthermore, it can enhance the accuracy of streamlines, especially near critical points. This was observed by Steffen et al. [5] for the symmetric post-processor, away from the boundary. Figure 5 shows that similar improvements are obtained for the position-dependent post-processor in the entire spatial domain (for p = 1, and 202 mesh elements of size h × h, using a standard RK-4 method to compute the streamlines). Whenever results before post-processing (blue) are not visible, they are overlapped by the exact solution.
After
x
4p+1 nodes a
Exact x
After
Altogether, DG approximations for PDEs can contain hidden accuracy that can be extracted by applying a post-processor. Unlike the original symmetric and one-sided post-processor, the proposed position-dependent post-processor improves the accuracy and smoothness in the entire domain, even for nonperiodic boundary conditions. This can aid to better visualization of the results, e.g. in the form of streamlines.
4p+1 nodes b
x ¯
Before
Mathematics
0
Exact
Figure 5: Enhanced streamline visualization through post-processing.
Conclusion 2p+1 nodes
1
Before
y
The purpose of θ is to select the appropriate number of kernel nodes, depending on the evaluation point. An illustration of a speci�c choice for θ is given in Figure 3. Near the boundary, we prefer to use extra nodes to enhance the accuracy of the non-symmetric kernels. Hence, θ = 0 in this region, to select u⋆h,4p+1 rather than u⋆h,2p+1 . In the interior, the symmetric kernel already provides the desired accuracy without the additional costs for the use of extra B-splines. Hence, θ = 1 in this region, to select u⋆h,2p+1 rather than u⋆h,4p+1 . Between the boundary regions and the interior, there are two transition regions, where θ varies smoothly between 0 and 1 to avoid that arti�cial discontinuities are introduced.
y
( ) x) = θ(¯ x)u⋆h,2p+1 (¯ x) + 1 − θ(¯ x) u⋆h,4p+1 (¯ x). u⋆h (¯
References
Figure 3: Function θ(¯ x)
[1] J. H. Bramble and A. H. Schatz. Higher order local accuracy by averaging in the �nite element method. Math. Comp., 31(137):94–111, 1977.
Results Next, we compare the original one-sided post-processor and the new positiondependent post-processor for the problem ut + ux = 0,
u(0, t) = sin(−t),
x ∈ [0, 2π],
t ∈ [0, 12.5].
It can be seen in Figure 4 that both post-processors produce identical results in the interior of the domain, where they apply the same symmetric kernel with 2p + 1 nodes. The differences occur at the boundary: the new postprocessor yields signi�cantly better results without introducing a spurious
[2] B. Cockburn, M. �uskin, C.-W. Shu, and E. S�li. Enhanced accuracy by post-processing for �nite element methods for hyperbolic equations. Math. Comp., 72(242):577–606, 2003. [3] J. K. Ryan and C.-W. Shu. On a one-sided post-processing technique for the discontinuous Galerkin methods. Methods Appl. Anal., 10(2):295–307, 2003.
[4] P. van Slingerland and J. K. Ryan and C. Vuik. Position-dependent smoothness-increasing accuracy-conserving (SIAC) �ltering for improving discontinuous Galerkin solutions. SIAM J. Sci. Comp., 33(2):802–825, 2011.
[5] M. Steffen, S. Curtis, R. M. Kirby, and J. K. Ryan. Investigation of smoothness-increasing accuracyconserving �lters for improving streamline integration through discontinuous �elds. IEEE Transactions on Visualization and Computer Graphics, 14:680–692, 2008.
37
Historical Figure: Ada Lovelace Historical Figure: Ada Lovelace
Kees Boon
Kees Boon
December 5, 2012 Amo�g the traditio�all� male domi�ated �eld o� Computer ��ie��e� o�e o� the �er� �rst �omputer s�ie�tists sta�ds out as a di�erge��e �rom that patter�� Ada �o�ela�e is o�te� k�ow� as the �rst �omputer programmer� Ada was born Augusta Ada Byron in 1815 to prominent poet and politician Lord George Gordon Byron and Anna Isabella Milbanke, who were members of the British aristocracy. Her father died of a fever on a military campaign in Greece when Ada was eight years old. Since he had left England only months after Ada was born, Ada never got to know him. Her parents went to a bad divorce afterwards, which caused her mother to breed animosity towards her father into her. However, her mother was also not the best of parents, as she left the young Ada in the care of her own mother (Ada’s grandmother). The only concern her mother showed was through letters, which were mainly written for legal reasons, as she had to show to still care for her daughter or risk losing parental custody. During her childhood and teenaged years, Ada was not healthy, which was possible exacerbated by the relatively primitive medicine at the time. Ada’s mother was very concerned that Ada might exhibit some of the ’insanity’ of which she thought Lord Byron had suffered, so she ensured that Ada was educated in mathematics from an early age, even throughout her illness. Her thoughts being that being educated in mathematics is a cure for insanity. It is true that Lord Byron may have suffered from bipolar disorder and that there is some hereditary aspect to this, it appears that Ada did not suffer from it.
In 1835, she married William King, so Ada became Baroness King. William and Ada had three children, but childbirth took a large toll on Ada’s health. Her husband was awarded the title of Earl of Lovelace in 1838, and thus Ada became known as the Countess of Lovelace. In the years that followed Ada was involved in several Victorian court scandals. Ada Lovelace died aged 36 of uterine cancer, which she battled for several months. At her request, she was buried next to her father.
Work with Babbage Lovelace often interacted with Charles Babbage, both socially and in intellectual pursuits, particularly on the Difference Engine �rst and the Analytical Engine afterwards. During 1842 and 43, Lovelace translated a memoir by an Italian mathematician written in French, who was greatly interested in Babbage’s work, into English. During the translation, Lovelace expanded upon the notes in the memoir, adding a lot of details and explanations. This was a dif�cult task, as most other scientists did not really grasp the concept of the machine, and the British government was uninterested in the academic merits, but only in the lack of results. The analytical engine was not built in either Babbage’s or Lovelace’s lifetimes, due to the state of mechanical engineering of the time. The notes Lovelace wrote eventually became longer than the memoir itself, and the �nal note G was later found to contain the �rst algorithm as is so ubiquitous today: a set of formal instructions for a machine to accomplish a task.
First Computer Program (Note G)
Shortly after that Ada had an affair with one of her tutors and tried to secretly marry him after being caught. However, her plans were foiled when the tutors family recognised her and informed Ada’s mother. Ada was quickly brought back home, and the event was covered up, as in Victorian era Britain such things were incredibly scandalous.
In the annotated translation, what can be considered to be the �rst algorithm is proposed, alongside an extremely lucid description of the strength and limitations of what we would now call computers. Additionally, an almost prophetic statement about how the usage of computers would change many sciences. The notes by Lovelace can be found on http://www.fourmilab.ch/babbage/sketch.html#NoteG The �rst algorithm set out by Lovelace was used in the notes as an example of the Analytical Engine’s capabilities. It takes the form of enumerating 1 1 the Bernoulli numbers (B1 = ± 12 , B2 = 16 , B4 = − 30 , B6 = 42 , B8 = 1 − 30 . . .. For all n odd and > 1 the Bernoulli numbers are 0 so often the odd numbered ones are omitted from the sequence). The introduction is reproduced below [2]:
Adult Years
Note G - Ada Augusta, Countess of Lovelace
One of Ada’s instructors, Mary Somerville was a noted researcher at the time. She introduced Ada to Charles Babbage in 1833. Ada would correspond with him for many years, and later on collaborate on the work on the Analytical Engine, the second proposed mechanical computer by Babbage. Ada was always interested in the scienti�c works of her time, even including the phrenology and mesmerism, which are now considered pseudosciences. She expressed interest in establishing a mathematical model for how the brain gives rise to thoughts and the nerves to feelings. She conducted experiments with electricity and magnetism and in the year before she died, she was apparently working on the relation between math and music.
It is desirable to guard against the possibility of exaggerated ideas that might arise as to the powers of the Analytical Engine. In considering any new subject, there is frequently a tendency, �rst, to overrate what we �nd to be already interesting or remarkable; and, secondly, by a sort of natural reaction, to undervalue the true state of the case, when we do discover that our notions have surpassed those that were really tenable. The Analytical Engine has no pretention whatsoever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths. Its province is to assist us in making available what we are already acquainted
Miscellaneous
Ada was privately schooled in mathematics by many prominent British academics, including Augustus De Morgan (of De Morgan’s laws). At age seventeen, her outstanding mathematical abilities became apparent, and De Morgan suggested to Ada’s mother that Ada might become a �rst-rate mathematician.
38
Volume 17 • Issue 2 • December 2012
with. This it is calculated to effect primarily and chie�y of course, through its executive faculties� but it is likely to exert an indirect and reciprocal in�uence on science itself in another manner. For, in so distributing and combining the truths and the formulæ of analysis, that they may become most easily and rapidly amenable to the mechanical combinations of the engine, the relations and the nature of many subjects in that science are necessarily thrown into new lights, and more profoundly investigated. This is a decidedly indirect, and a somewhat speculative, consequence of such an invention. It is however pretty evident, on general principles, that in devising for mathematical truths a new form in which to record and throw themselves out for actual use, views are likely to be induced, which should again react on the more theoretical phase of the subject. There are in all extensions of human power, or additions to human knowledge, various collateral in�uences, besides the main and primary object attained. To return to the executive faculties of this engine: the question must arise in every mind, are they really even able to follow analysis in its whole extent? No reply, entirely satisfactory to all minds, can be given to this query, excepting the actual existence of the engine, and actual experience of its practical results. We will however sum up for each reader’s consideration the chief elements with which the engine works:— 1. It performs the four operations of simple arithmetic upon any numbers whatever. 2. By means of certain arti�ces and arrangements (upon which we cannot enter within the restricted space which such a publication as the present may admit of), there is no limit either to the magnitude of the numbers used, or to the number of quantities (either variables or constants) that may be employed. 3. It can combine these numbers and these quantities either algebraically or arithmetically, in relations unlimited as to variety, extent, or complexity. 4. It uses algebraic signs according to their proper laws, and developes the logical consequences of these laws.
6. It can provide for singular values. Its power of doing this is referred to in M. Menabrea’s memoir, where he mentions the passage of values through �ero and in�nity. The practicability of causing it arbitrarily to change its processes at any moment, on the occurrence of any speci�ed contingency (of which its substitution of 12 cos n + 1θ + 12 cos n − 1θ for cos nθ · cos θ, explained in Note E., is in some degree an illustration), at once secures this point.
The Algorithm The algorithm as produced in Note G is very verbosely stated, and obviously without the shorthand and conventions that have since been developed. It was summarised and reproduced in Scienti�c �merican in 1��� [3]. It is adapted from that article below: Let the Bernoulli numbers be the constant Bn in the polynomial expansion of the expression: ∑ xn x Bn = x e −1 n! n≤0
0=−
2x 1 2x − 1 +B1 + 2 2x + 1 2! (2x)(2x − 1)(2x − 2) + B2 4! (2x)(2x − 1)(2x − 2)(2x − 3)(2x − 4) B3 + 6! ...+ Bn
(2x)(2x − 1) . . . (2x − 2n + 2) (2n)!
To calculate Bn from this expression, start by letting x = 1. The fraction next to B1 becomes 1 and that the fractions next to B2 , B4 and so on all become 0, because each numerator contains the factor (2x − 2), which is 0 when x = 1. This leaves: 0 = (−
1 1 × ) + B1 2 3
So B1 = 61 . Next, let x = 2, the fraction next to B2 becomes 1, because both the numerator and the denominator are equal to 4!, and the fractions next to B3 , B4 etcetera all become 0 because of the factor (2x − 4) that they all contain. Hence: 0 = (−
1 3 × ) + (B1 × 2) + B2 2 5
1 B1 is known from the previous iteration, so B2 becomes − 30 .
In modern terms, computing each Bernoulli number was the outer loop of her program, the inner loop was computing the fractional part corresponding to each Bernoulli number. The means of division used in her program was �rst dividing the �rst factor of the nominator by the denominator, then the second factor in the nominator by the second in the denominator and so on. Each value was stored and multiplied by the values from previous pairs of factors. Once this was done, the result of the fraction was multiplied with the corresponding Bernoulli number.
References [1]
Wikipedia.org
[2]
http://www.fourmilab.ch/babbage/sketch.html#NoteG
[3]
�da and the �rst computer, E.E. �im, B.�. Toole. Scienti�c �merican, May 1���, pp��
Miscellaneous
5. It can arbitrarily substitute any formula for any other� effacing the �rst from the columns on which it is represented, and making the second appear in its stead.
For her program, Lovelace simpli�ed this expression to:
39
IF YOU CAN READ CODED 20 5 24 20 AS FAST AS 14 15 18 13 1 12 TEXT YOU MIGHT 2 5 THE ONE. WE ARE SCOUTING FOR BRILLIANT MINDS ONLY START YOUR CAREER IN TRADING
APPLY AT WWW.OPTIVER.COM
Volume 17 • Issue 2 • December 2012
De Opleidingsdirecteuren Max de Groot & Herman Banken
Max de Groot en Herman Banken De opleidingsdirecteuren van Wiskunde en Informatica zijn Hendrik Paul Lopuhaä en Emile Alexander Hendriks, beter bekend als Rik Lopuhaä en Emile Hendriks. Hier is Rik Lopuhaä de opleidingsdirecteur van Wiskunde en Emile Hendriks de opleidingsdirecteur van Informatica.
Wat is uw taak als opleidingsdirecteur? Emile Hendriks: Er is geen heel nauwkeurige omschrijving. Je bent verantwoordelijk voor de opleiding, het curriculum op orde houden, de logistiek op orde houden, de juiste docenten met de juiste vooropleiding en didactische kwaliteiten aanstellen, afstemmen met andere opleidingen (zoals Leiden voor de Bachelor en 3TU voor de Master) en afstemming bereiken binnen de universiteit (zoals de kwartaalindeling, tentamenperiode etc.). Verder controleer ik of de leerdoelen kloppen, of de inhoud van de vakken klopt en werk ik mee aan de evaluatiecyclus van vakken. Ook overleg ik veel, ga ik langs bij docenten en sta�eden, ben ik veel bezig om mijn mail af te handelen, zit ik studenten achter hun broek aan die zich te laat hebben ingeschreven voor de tentamens, ben ik momenteel bezig met de accreditatie van de opleiding en ben ik bezig met het nieuwe curriculum. Verder moeten er leerlijn-coördinatoren komen, die op hun beurt weer de docenten aansturen.
Wat betekent u voor de studenten en docenten? Emile Hendriks : Toestemming geven en knopen doorhakken. Docenten achter hun broek aanzitten. Dit jaar heb ik het docent-mentorsysteem opgezet. Samen met de studieadviseurs bepaal ik de overgangsregelingen. Zonder de opleidingsdirecteur zou het een ongeorganiseerde bende worden en zou de structuur wegvallen. Rik Lopuhaä: Voor docenten een goede balans zoeken tussen onderzoek en onderwijs. Ik probeer het onderwijs zo evenredig mogelijk te verdelen over de docenten. Voor studenten probeer ik een goede opleiding te verzorgen, maar vooral ook een prettige opleiding. Ook probeer ik ervoor te zorgen dat dingen
Wat heeft u gestudeerd? neer?
Vanaf wanneer en tot wan-
Rik Lopuhaä Ik heb Wiskunde gestudeerd aan de UvA van 1977 tot en met 1986. Ik was vier jaar lang kandidaat-assistent, dat is een halve baan. Ik heb ook een jaar lang gedaan over mijn lesbevoegdheid. Emile Hendriks: Ik heb Wis-&Natuurkunde gestudeerd in Utrecht van 1974 t/m 1983. Ik heb in twee jaar mijn kandidaatsexamen gehaald, daarna heb ik les gegeven en drie à vier jaar full time assistentschap gedaan.
Wat was/is uw favoriete vak? Rik Lopuhaä: Toen ik net begon waren Verzamelingenleer en Topologie mijn favoriete vakken op de universiteit. Ze waren heel interessant, maar ik was er niet goed in. Tijdens mijn kandidaatsexamen had ik een erge hekel aan statistiek, maar in mijn doctoraalfase raakte ik toch geïnteresseerd in mathematische statistiek. Ik wou graag toegepaste wiskunde doen om toch een baan te kunnen vinden, dat makkelijker in dat gebied. Emile Hendriks: Op de middelbare school vond ik Wiskunde en Natuurkunde het leukst, maar eigenlijk alle bèta vakken. Toen ik studeerde waren Elektrodynamica, Relativiteitstheorie en de wiskunde vakken (analyse en lineair) mijn favorieten.
Heeft u nog bijzondere prestaties gehaald?/ Overige opmerkingen. Rik Lopuhaä: Ik ben Delft gepromoveerd in 1990 in robuuste statistiek in het gebied van limiet eigenschappen. Ik ben een keer docent van het jaar bij Informatica geweest. Ik heb twee keer de marathonbokaal van de roeivereniging gedaan. Ik ben clubkampioen geweest bij mijn tennisvereniging. Verder heb ik twee winnaars van de VVS-prijs, een landelijke scriptie prijs, begeleid tijdens hun scriptie. Ik ben mee geweest naar de bedrijvenreis naar CERN in Geneve. Verder kom ik nog zo af en toe op de ADSL. Ik wil ook nog naar het EJW gaan, maar helaas kon ik de afgelopen keer niet. Verder ga ik naar lunchlezingen als ik kan. Ik speel gitaar, modern en klassiek. Wel echt op de akoestische gitaar dus. Dat deed ik eerst, toen dat nog kon, samen met Cor Kraaikamp, en heb ook twee keer opgetreden op EWI bij een maandelijks muziekevenement van EWI dat inmiddels niet meer bestaat.
Miscellaneous
Rik Lopuhaä: Ik ben of�cieel verantwoordelijk voor de inhoud van de opleiding, het curriculum en problemen daaromtrent. Verder verdeel ik het onderwijs onder de sta�eden. Dit is zeker bij Wiskunde lastig omdat er een aantal volledige docenten zijn (dit zijn docenten die geen onderzoek doen naast het onderwijs). Veel van hen zijn betrokken bij het service onderwijs, waar door de wiskunde afdelingen relatief veel geld mee wordt verdient, waar weer onderzoek van wordt ge�nancierd. De reden dat ik opleidingsdirecteur ben geworden is omdat de verhouding scheef was. Er werd te veel onderwijs gegeven door onderzoekers en dit was ook oneerlijk verdeeld per wiskunde afdeling. Beide opleidingsdirecteuren zitten de volgende vergaderingen bij: ODIR (overleg met andere opleidingsdirecteuren van de TU), Examencommissie, Opleidingscommissie Wiskunde/Informatica, Facultaire studenten raad, Vergaderingen ivm de accreditatie en visitatie. Rik Lopuhaä zit bij de volgende vergaderingen: Regieorgaan voor Mastermath op landelijk niveau, Overleg met de opleidingsdirecteur van Leiden, Overleg met de opleidingsdirecteuren van wiskunde van 3TU
goed geregeld zijn, naast de rol van Onderwijs & Studentenzaken hierin, waar mogelijk.
Emile Hendriks: Ik ben gepromoveerd in Utrecht op �uctuatie verschijnselen en ruis verschijnselen bij “mosfets”, dat zijn metaaloxide transistors. In mijn onderzoek ging ik in op het gedrag bij lage temperaturen. Ik had ook Cum Laude voor mijn kandidaatsexamen. Ik probeer altijd bij de ADSL te zijn van CH. Ik ben niet zomaar bij Informatica terecht gekomen. Ik ben heel inhoudelijk gepromoveerd. Ik wou iets meer toegepast gaan doen. Ik wilde wel meteen naar het onderwijs. Toen heb ik gereageerd op een vacature bij Elektrotechniek in 1987. Daar ben ik begonnen in de vakgroep Informatie en Communicatie theorie. Vervolgens ging ik naar de vakgroep Signaalverwerking en Beelverwerking. Dit is op het randgebied van Informatica en Electrotechniek.
41
Volume 17 • Issue 2 • December 2012
CH’ers over hun minor Minor Educatie
Minor Interactive Environments
Halverwege het tweede studiejaar kregen we te horen dat we binnenkort een keuze moesten maken uit de aangeboden minors. Ik ben toen met een medestudente naar de informatiemarkt in de aula gegaan om me te oriënteren. Uiteindelijk heb ik voor de minor Educatie gekozen. Vooral omdat ik er graag achter wil komen of voor de klas staan bij mij past, en of ik het leuk vind om dat dag in, dag uit te doen. Zelf studeer ik Technische Wiskunde en ik wil er nu achterkomen of docente wiskunde een geschikte baan voor mij zou zijn.
Een weekend naar het Ars Electronica Festival in Linz. Je stapt in een bus met vreemden en komt twee dagen later terug vol met inspiratie en motivatie om een half jaar lang keihard te werken voor de minor. Verder schep je ook gelijk een band met de andere 29 mensen die deze met jou volgen. Zo begint deze minor.
Ondertussen ben ik halverwege mijn minor en heb ik mijn oriënterende stage erop zitten. Tijdens dit deel van de stage heb ik vooral veel lessen geobserveerd, maar ook geassisteerd bij een aantal lessen en zelf een paar lessen gegeven aan een derde en vierde klas. Na de herfstvakantie zal ik voor het eerst les gaan geven aan een eerste klas - spannend! De lessen die ik tot nu toe gegeven heb aan de derde en aan de vierde klas gingen redelijk goed, dus hopelijk zal dat ook zo zijn bij de eerste klas. Als je achterin zit, zie je veel gebeuren. Je ziet soms beter of de leerlingen wel of niet serieus meedoen met de les en je ziet hoe de docent zich gedraagt bij verschillende lessen. Door de stageopdrachten uit te voeren, krijg je een beter beeld van de docent of van een klas. Zo heb ik bijvoorbeeld een klas meerdere uren gevolgd, maar ook bij andere wiskundedocenten in de les gezeten om die docenten te observeren. Ook moet je dan een paar docenten en een paar leerlingen interviewen. Dit vond ik wel leuk om te doen, want zo leer je bijvoorbeeld meer over wat de leerlingen bezighoudt of hoe verschillende docenten tegen dezelfde zaken aankijken.
Miscellaneous
Terwijl ik dit schrijf zit ik alweer in mijn tweede week van de vervolgstage. In dit onderdeel van de stage is het de bedoeling om meer lessen te gaan geven en later ook lessenseries te gaan geven. Ook zullen we andere activiteiten bij moeten gaan wonen, zoals vergaderingen, ouderavonden of meegaan met excursies.
Naast het volgen van een stage op een middelbare school, volg je ook nog enkele vakken in Delft. Je volgt dan vakken zoals Didactische Vaardigheden, Onderwijskunde en Vakdidactiek (1 en 2). Ik vind dat ik een goede keuze gemaakt heb voor de minor, want nu kan ik erachter komen of ik later iets in het onderwijs wil gaan doen of niet. De minor neemt wel veel tijd in beslag, want je moet veel documenteren (verslagleggen), maar tot nu toe heb ik geen spijt van mijn keuze. Dus mocht je je afvragen of een baan in het onderwijs iets voor jou is of niet, dan is deze minor daar uitermate geschikt voor!
42
Kimberley Lindenberg
Bij Interactive Environments werk je in een multidisciplinair team aan een project. Deze teams bestaan vooral uit student van Industrieel Ontwerpen en Bouwkunde, maar ook Informatica, Werktuigbouwkunde, Natuurkunde en Lucht- & Ruimtevaarttechniek. Dit jaar is de opdracht om een interactieve ruimte te realiseren die de algemene gezondheid van de kinderen en hun ouders moet bevorderen tijdens hun verblijf in het NKOC, het nieuwe ziekenhuis van het Nationaal Kinder Oncologisch Centrum dat in 2013 gebouwd zal worden in Utrecht. Na het bestuderen van al de installaties bij Ars mag je dus zelf zo een installatie verzinnen en bouwen. Het eerste kwartaal ben je bezig met concepten verzinnen en kleine prototypes maken. Om je hierbij te helpen, leer je verschillende technische vaardigheden. Je oefent er ook telkens mee in een workshop. Zo zijn we begonnen met programmeren in C op een Arduino. Verder hebben we grafisch gemodelleerd in Rhino en Grasshopper om vervolgens met deze kennis fabricatiemethodes werkelijk toe te passen. Ten slotte hebben we in Max MSP visueel programmeren geleerd. Uiteindelijk hebben we al deze kennis samen moeten voegen en in verschillende workshops toe moeten passen om netwerken van interactieve objecten te maken. Alle resultaten en concepten voor het project zijn terug te vinden op de blog van de minor: http://studiolab.io.tudelft.nl/ie2012. In de tweede periode, die begin november begonnen is, ga je aan de slag om je concept werkelijk te realiseren. Uiteindelijk moet er een 1:1 werkende installatie zijn die in het ziekenhuis zou kunnen staan. Je bouwt drie maanden lang non-stop aan de installatie, waarbij alle vaardigheden die je in de eerste periode hebt geleerd van pas komen. Naast design en techniek komen er ook aspecten zoals onderzoek en sponsoring bij kijken. In korte tijd leer je enorm veel. In zo korte tijd kan je natuurlijk geen professional erin zijn, maar het heeft je een goede basis en mogelijkheid om je er verder in te verdiepen. Het beste van deze minor vind ik dat je alles ook gelijk toe mag passen. Verder is de kennis die je opdoet over andere disciplines zeer waardevol. Die motivatie die je opdoet in Linz, blijkt al snel van groot belang te zijn. Fulltime werken op het Science Centre, elke dag van kwart voor tien tot laat, vergt heel veel motivatie en energie. Gelukkig heb je op het Science Centre een eigen workshopruimte waar je onbeperkt koffie kan drinken!
Bojana Dumeljic
Volume 17 • Issue 2 • December 2012
Minor �na
X. Savenbe
December 5, 2 Back to Reality
Minor finance
Met de wiskundige technieken die je in twee jaar hebt geleerd, wordt het tijd om eens om je heen te gaan kijken. Als wiskundige ben je vooral bezig met de technieken en niet met de toepassingen. Gelukkig zijn er in Delft veel andere studies waar dit wel het geval is, en hier kan je met je minor goed gebruik van maken om je te richten op de toegepaste wiskunde. Een minor natuurkunde is bijvoorbeeld een goede aanvulling op je wiskundige kennis. Waarom kan de zon branden? Wat gebeurt er nou ongeveer in mijn mobiele telefoon? Hoe zit dat nou eigenlijk met temperatuur, wat gebeurt daar nou op nano-schaal? Dit soort vragen worden beantwoord bij een minor natuurkunde, onderbouwd met een mooi staaltje wiskunde. Niet altijd even netjes, maar dat is bij natuurkunde nou wat minder aan bod.
De afgelopen jaren lijken een voortdurende �nanciële crisis, en in tijden als deze hoor je wel eens “De beurs is gedreven door emotie”. Om in deze “emotionele rollercoaster” door het bos de bomen nog te zien gebruikt de �nanciële wereld prachtige modellen. Niet de vleselijke soort, zoals je ze in de modeblaadjes ziet, maar minstens even mooie wiskundige modellen.
Naast alle theoretische vakken moet je ook twee experimenten doen. Het eerste experiment is een introductie op het experimenteren en verslagleggen. Het tweede experiment is een stukje moeilijker, je kiest uit een aantal richtingen een project en gaat daar met z’n vieren aan werken. Het project waar mijn groepje zich op richt is het optimaliseren van zonnepanelen aan de hand van kwantummechanica. Gelukkig worden we hierbij begeleid door de ingenieur die dit zelf bedacht heeft. In het eerste jaar wiskunde heb je de keuze gemaakt tussen mechanica en relativiteitstheorie of elektriciteit en magnetisme en heb je al aardig wat met MATLAB gewerkt bij modelleren. Bij de minor natuurkunde zijn dit zes ECTS die je moet vervangen als je deze minor wilt doen. De keuze was tussen de vakken Systemen en Signalen of Elektriciteit II. Systemen en Signalen heeft overeenkomsten met het tweedejaars keuzevak Systeemtheorie en is te volgen met die kennis. Voor Elektriciteit II heb je eigenlijk wel Elektriciteit I nodig, omdat het daar op doorgaat.
Kortom, ben je op zoek naar een interessante minor? Dan is natuurkunde zeker wat voor jou!
Thijs Verbeek
In deze minor zitten theoretische vakken, zoals onder andere “Kansmodellen voor �nance”, waarbij je een introductie in discrete kansmodellen krijgt en een aantal �nanciële producten ontdekt. Of het vak “�aarderen van derivaten” waar je meer inzicht krijgt in het Black–Scholes model, en de toepassing van de risk measures, oftewel Greeks. De bijna even belangrijke praktische insteek wordt ook niet vergeten. Hiervoor heb je dan weer vakken zoals “Financiële actualiteit” waarbij je, zoals de naam al voorspelt, bij de les gehouden wordt op vlak van het doen en laten van de �nanciele wereld. Of �rinciples of �sset �rading, het wat meer globale vak van de minor� Hierbij zie je onder andere hoe een bedrijf zijn �nanciële structuur beheert, wat er schuil gaat achter een beursgang van een bedrijf en welke spelers hiervoor nodig zijn, of waarom een bedrijf dividend uitkeert. Dankzij deze combinatie van theoretische en praktische invalshoeken krijg je als student een beter beeld over hoe de �nanciële crisis in elkaar zit, of hoe een optiehandelaar zijn prijzen bepaalt en daar geld mee verdient. Daarnaast kan je die kennis erg snel omzetten in de praktijk, aangezien je al snel beter leert beoordelen in hoeverre de mensen die in de media over de crisis spreken er zelf ook echt iets van begrijpen en of hun plannen ter bestrijding ervan ook daadwerkelijk hout snijden.
Miscellaneous
Het rooster voor de minor is op een interessante manier ingedeeld. Sinds dit jaar is er voor alle eerstejaars een nieuw systeem bedacht: je krijgt vier weken twee vakken en daarna in de vijfde week je tentamen. Dit systeem is (helaas) ook doorgevoerd voor de minor, omdat je het vak elektriciteit en magnetisme samen met de eerstejaars volgt. Je hebt dus weinig contacturen per week, wat wel fijn is, maar er is geen witte week en alle tentamens worden in één week gegeven. Waarna je ook weer meteen doorgaat met de volgende vakken. Het heeft dus zijn voor en nadelen.
Bij aanvang van de minor krijg je een opfrissingcursus kansrekening en statistiek. Naast het feit dat dit een logische keuze is aangezien vrijwel de hele minor op kansrekening en statistiek gebaseerd is, is het ook een welkome verfrissing van feiten en formules die vele studenten al lang vergeten zijn. Na dit opfrismoment gaat de minor pas echt van start.
Sinds dit jaar heeft de minor ook een aantal partners, die de studenten tijdens gastlezingen wat bekender maken met de verschillende uithoeken van de �nanciële wereld. Meestal krijg je achteraf ook nog de kans om gezellig een biertje te gaan drinken op een borrel, waar je alsnog alle vragen die onbeantwoord bleven tijdens de lezing kan stellen.
Xander Savenberg
43
Volume 17 • Issue 2 • December 2012
Een student moet ook eten Workshop pasta maken Elke student leeft krap bij kas, kan niet wachten totdat het weer de 24ste van de maand is, waarna een periode volgt van twee á drie weken feestjes, borrels en feestmaaltijden en daarna een week van zuinigheid. Maar er zijn ook manieren om feestmaaltijden te eten in deze laatste week, zoals zelf je eigen pasta maken!
Het verband dat je hier met het leven kan maken is dat je de muur die veel mensen rondom zichzelf hebben voorzichtig moet afbreken. Wanneer je teveel van de ‘muur’ van de kuil afbreekt, dan zal de muur doorbreken en is zelfs Hansje met zijn vinger in de dijk niet voldoende om je eieren tegen te houden. Dit is ook op persoonlijk vlak. Iedereen heeft zijn geheimen en daar zijn vaak goede redenen voor. Nu wil je die persoon misschien wel helpen, maar te veel druk maakt meer stuk dan je lief is. Doe voorzichtig en schaaf er beetje bij beetje vanaf. Duurt misschien wat langer, maar voor leven is lang!
2. Het leven met een korreltje zout nemen
Persoonlijk ben ik een grote fan van pasta, dus toen ik op een poster van Unit Sport en Cultuur een workshop pasta zag staan ging mijn hart sneller kloppen - iets met de combinatie van liefde en maag. Na een oproep op Facebook om te vragen wie met mij mee wilde, gingen we uiteindelijk met zijn vieren naar de workshop. De Machazinecommissie vond dat een goede reden om mij een vervolg te laten schrijven op het vorige artikel over Unit Sport en Cultuur.
Eenmaal een klomp deeg bij elkaar gekneed te hebben, moet er verder gekneed worden. In deze periode kan je ook best er wat zout bij doen. Niet te veel, want de pasta kook je ook water met wat zout. De relatie tussen het leven en sommige dingen met een korreltje zout te nemen is hier wel duidelijk en heeft daarom ook geen verdere uitleg nodig.
Eenmaal aanwezig werd de groep verdeeld en kreeg iedereen een partner aangewezen. Gelukkig is vier goed deelbaar door twee en ging ik samen met Wikash, oud-redactielid en toevallig met commissiekleding aan, aan de pasta.
Dat is ook eigenlijk ook de laatste stap voordat de pasta gemangeld gaat worden door de pasta machine, voor tagliatelle of spaghetti, of met een deegroller, kan je mooie lasagnevellen mee maken. Maar dit kneden heeft natuurlijk ook een verband met het leven.
Tijdens de introductie van de chef werd het me snel duidelijk: Italiaans eten maken is voornamelijk liefde erin stoppen, want op zich stelt het allemaal niet veel voor. Pasta is niet meer dan een hoopje bloem met eieren, zout en wat olijfolie.
Miscellaneous
Goed, pasta stelt blijkbaar niet zo veel voor, dus ga je kijken of je andere verbanden kan vinden tussen het maken van Italiaans eten en de liefde die je erin moet stoppen. Of zijn er zelfs verbanden met het leven zelf? Nu, een paar weken na de workshop, waarin ik thuis ook een keer zelf pasta gemaakt heb voor de buurvrouw, heb ik een aantal verbanden gevonden, waaronder de volgende drie:
1. Muren moet je voorzichtig afbreken
Misschien is het niet direct helemaal duidelijk waar dit over gaat, maar de eerste stap van pasta maken is dat je hoop bloem pakt (een kopje per persoon was volgens de chef een goede verhouding), daarin een kuiltje maakt en daarin wat eieren breekt (hou hier ook één per persoon aan). Vervolgens pak je een vork en begin je langzaam te roeren, zodat je langzaam de eieren mengt met het bloem. Wanneer het langzaam allemaal begint te mengen, neem je wat bloem van de ‘muur’ af en meng je dit weer in je eimengsel. Ga zo door totdat het mengsel wat dikker wordt. De volgende stap is dan gewoon allemaal bloem pakken en dit tot één hoop kneden.
44
3. Kneden, kneden en nog eens kneden
Het leven is wat je er zelf van maakt. Zijn er oneffigheden, dan kan je die zelf op- en aanpakken. Kneed de dingen waar je jezelf in wilt verbeteren. En wees niet bang om verkeerd te kneden, want net zoals met pastadeeg gaat het niet zomaar stuk. Dus pak het op, zet er wat kracht achter. Als het moet zelfs even helemaal los op de tafel, máár als je er tevreden mee bent. Dan even vijftien minuten rusten op kamertemperatuur, want dat is toch stiekem het belangrijkst! Wie is nou liever lui dan moe? Volgende keer maar weer gewoon bestellen!
Mobile App Ontwikkelaar
Wil je deel uitmaken van een jong en innovatief team dat met de nieuwste technieken de mooiste nieuwe apps gaat bedenken, ontwerpen en ontwikkelen? Solliciteer dan nu!
DSW Zorgverzekeraar is een middelgrote zorgverzekeraar met ruim 450.000 verzekerden. DSW heeft een regionaal karakter. Het hoofdkantoor in Schiedam is voor bijna alle medewerkers de vaste werklocatie. Wij vinden dat iedereen recht heeft op gemakkelijk toegankelijke en betaalbare zorg, van hoge kwaliteit. Zorg verzekeren is meer dan premie innen en nota’s betalen. Betrokkenheid bij de zorg en een uitstekende relatie met onze klanten en de zorgverleners is wat ons kenmerkt. DSW is een innovatieve organisatie. DSW ontwerpt, ontwikkelt en realiseert bijna alle applicaties zelf. Alles wordt in het werk gesteld om klanten goede service te verlenen en medewerkers maximaal in hun werkzaamheden te ondersteunen. En dat gaat goed! Een voorbeeld: Declaraties van verzekerden worden gemiddeld binnen vijf werkdagen uitbetaald. DSW is groot genoeg om echt onderscheidend te kunnen zijn. Medewerkers van DSW houden van de uitdagingen die de complexiteit en de verscheidenheid bieden. Toch is DSW klein genoeg om de flexibiliteit en snelheid niet te verliezen.
DSW Zorgverzekeraar wil starten met mobile app development in eigen beheer. We kijken om ons heen en zien veel kleine mobile-app-bedrijfjes: snelle start-ups. Dat willen wij ook, maar dan binnen DSW. Dit betekent dat we wel de voordelen hebben van een sterk en solide bedrijf, zoals aanwezige kennis, goede arbeidsvoorwaarden, een open, informele en positieve sfeer, etc. Maar niet de nadelen. Je krijgt alle vrijheid die je nodig hebt en je hoeft niet bang te zijn voor een bureaucratische laag (die heeft DSW überhaupt niet) die jouw time-to-market snelheid halveert. Beslissingen moeten snel genomen kunnen worden. We houden de lijntjes kort en zorgen er voor dat je met de nieuwste technologieën kunt werken: HTML5 / CSS3 / Javascript en technologieën voor iOS en Android. DSW Zorgverzekeraar zet haar verzekerden op de eerste plaats. Ons motto is niet voor niets ‘goed voor je’. We willen met mobile apps DSW nog toegankelijker maken voor verzekerden, tussenpersonen en zorgverleners. Tevreden klanten hebben is natuurlijk mooi, maar als het kan gaan we voor de “wow factor”. Wij zoeken iemand die... • onderdeel wil uitmaken van dit nieuwe, dynamische, agile team; • zelfstandig kan werken, initiatief neemt en bereid is te leren; • betrokken wil zijn bij het hele proces, van idee tot oplevering en van grafisch ontwerp tot backend; • die een WO-studie heeft afgerond; bij voorkeur informatica, maar een andere bètarichting is ook prima; • kennis heeft van HTML5, CSS3, JQuery en JQuery Mobile. Dit is een pre, geen vereiste. Andere sleutelwoorden: iOS, Android, Phonegap, scrum, agile, .NET / C# 4.0, Visual Studio 2010, DreamWeaver CS6, Team Foundation Server 2010. Wij bieden... • ontplooiingsmogelijkheden; • een professionele werkomgeving; • goede balans tussen werk en privé; • een keuzesysteem arbeidsvoorwaarden; • 13e maand. Meer informatie? Wil je meer weten over de vacature, dan kun je contact opnemen met Rogier van het Schip (Business Developer ICT) via telefoonnummer (010) 2 466 512.
Solliciteren
Enthousiast geraakt? Mooi! Reageren kan via www.werkenbijdsw.nl.