Voor dit project zijn we gevraagd om databases van wetenschappelijke publicaties, artikelen en tijdschriften te integreren. Het heet ‘Get It!’, omdat het systeem niet alleen bedoeld is om te vinden, maar ook te verkrijgen. Je kunt namelijk het zoekresultaat direct lenen uit de bibliotheek, of downloaden. Als je klikt op een artikel, ziet de software of jij via het universiteitnetwerk binnenkomt. In dat geval heb je recht op verschillende abonnementen en word je doorgestuurd naar de site van de uitgever, waar je het artikel kunt downloaden. Kom je van buiten de universiteit, dan word je geredirect en moet je betalen.
Advies en software ontwikkeling
In het project met de Universiteit van Tilburg hadden we een adviserende rol. We gaven advies, maar we bouwden ook software. Na het ontwikkelen, droegen we de software over. Het ‘probleem’ met een zijdelingse rol in een project is dat je niet exact weet hoe de componenten uiteindelijk worden toegepast. Om de kwaliteit van het project en de software te garanderen, benoemen wij een aantal belangrijke voorwaarden voor succes:
1. Niveau inschatten
Het is belangrijk een goede inschatting te maken van het niveau waarop de andere partij programmeert. Wij hebben zelf geleerd dat software ontwikkelen meer inhoudt dan alleen programmeren. Voor de kwaliteit van het eindresultaat is het daarom belangrijk om met de opdrachtgever te bespreken welke ondersteuning hij hierbij nodig heeft. De Universiteit van Tilburg bleek dit prima zelf aan te kunnen.
2. Focus op testfirst
Als je – in plaats van een complete applicatie – alleen een component ontwikkelt, moet je een goede voorstelling hebben van hoe het wordt gebruikt. Je ontwikkelt veel meer testen dan normaal en je denkt uitgebreider na over interfaces.
3. Blijven communiceren
Tijdens het project hebben we gelijktijdig met de Universiteit een feature gemaakt in Meresco, zonder dat we dit van elkaar wisten. Om dit soort overlap te voorkomen – maar ook omdat we bekend zijn met het systeem en allerlei vragen soms sneller kunnen oplossen – willen we regelmatig contact met de opdrachtgever. Zelfs in een periode waarin wij even niets opleveren.
Technische feature: de JTool
Op een moment bleek het systeem geheugen te lekken. Dat werd veroorzaakt door de wijze waarop Python gebruik maakte van het in Java geprogrammeerde Lucene. We zijn toen een onconventionele richting ingeslagen door het lekkende component PyLucene te vervangen door eigen code. Een mooie ontdekkingstocht met een innovatieve tool als eindresultaat. Onze J(ava)Tool maakt Java interfaces op een zeer generieke manier toegankelijk vanuit Python. Het werkt niet alleen voor Lucene, maar ook op alle andere software die in Java is geschreven. En dat met slechts 1500 regels code!
Het projectteam
Thomas Place, de projectleider, gaf ons veel inhoudelijke feedback. Ook werkten we samen met certified Debian Maintainers; vakmensen die erkend zijn door de Debian community, packages bouwen en geautoriseerd zijn om officiële Debian distributies en aanpassingen te doen. Het was bovendien leuk om samen te werken met vakmannen die visie hebben op metadatamanagement, storage en filesystemen.
Looptijd
Tot 2010.