Mensen staan voorop bij software ontwikkeling

Wij hebben een video gepubliceerd die laat zien hoe wij in de praktijk een kick off bijeenkomst vormgeven. Wij leggen in de film uit waarom wij het belangrijk vinden dat er balans moet zijn tussen de mensen, de groep en de inhoud bij IT-projecten.

De film maakt aanschouwelijk hoe we dat in de praktijk brengen.

Met dank aan alle deelnemers van de kick off bijeenkomst bij onze klant Surf in Utrecht.

 

 

Edurep: goede wijn behoeft geen krans?

‘We zijn ons er nauwelijks van bewust dat Edurep op de achtergrond ons faciliteert’, vertelt Ron Zuijlen, directeur van Stichting VO-content. Edurep is een in opdracht van Kennisnet gebouwde dienst. Seecr ontwikkelde Edurep, en beheert die. VO-content is een van de portals die gebruik maakt van Edurep. Het haalt de metadata op van tientallen databanken met digitaal onderwijsmateriaal (zoals de Stercollecties van VO-content), en ontsluit die ook weer naar portals, zoals die van VO-content.

Met zo’n 400 deelnemende scholen met 300.000 leerlingen vertegenwoordigt de Stichting voor open leermateriaal maar liefst een derde van het voortgezet onderwijs. In 2016 bestond ze vijf jaar.

Faciliteren flexibele leerroutes

“Er worden in de onderwijsmarkt heel veel spiegeltjes en kraaltjes aangeboden. Maar met een paar appjes leren kennen, vindt er nog geen onderwijsinnovatie plaats”, reflecteert Ron. Edurep vervult in zijn ogen een duidelijke behoefte. “Goed leermateriaal is lastig te vinden via Google. Met Edurep is de hooiberg een baaltje stro geworden. Het verzamelt elkaars leermiddelen, die gecheckt zijn door de onderwijswereld zelf. Veel scholen zijn gebonden aan een methode. Maar met het aanbieden van open digitale flexibele leerlijnen die voldoen aan de kerndoelen en eindtermen, faciliteren wij meer flexibele leerroutes. Platformleveranciers zien daar ook het voordeel van en ontwikkelen technische integraties, zodat hun software met Edurep kan communiceren.” Kortom, met Edurep wordt de dienstenontwikkeling binnen het onderwijs aangejaagd.

Goede wijn behoeft geen krans

Volgens Thijs Janssen, software-ontwikkelaar van Seecr, is het een goed teken dat gebruikers zich nauwelijks bewust zijn van Edurep. “Dat betekent dat het een natuurlijk onderdeel van hun workflow is. De dienst loopt dan ook als een zonnetje.” Per uur zijn er gemiddeld 6000 queries aan de server. De dienst verwerkt gemiddeld 4,3 miljoen zoekopdrachten per maand.

Meresco

Edurep maakt gebruik van open source componenten uit de Meresco-bibliotheek, die op Github te vinden is. Door het inzetten van nieuwe open source software componenten, afkomstig uit de groeiende Meresco bibliotheek, levert Seecr aan de wereld van onderwijs en ontwikkeling, wetenschap, cultuur en erfgoed een belangrijke maatschappelijke bijdrage.

Voor meer informatie: www.seecr.nl / www.kennisnet.nl / www.vo-content.nl

vo-content_ontwikkeling-leermaterialen

Met Edurep helpen we het onderwijs te leren van elkaar. Hierboven de ontwikkeling van de Stercollecties in de afgelopen 5 jaar.

Herbouw Sharekit in volle gang

Sharekit is de naam van een door SURFmarket aangeboden publicatieplatform. Seecr heeft de opdracht gekregen de de dienst van de grond af aan te vernieuwen. De ambities van de hogescholen en universiteiten die bij SURFnet zijn aangesloten, reiken verder dan het oude systeem aan kan.sharekit_surfmarket

Seecr houdt zich al 15 jaar bezig met het ontsluiten van informatie. Met dit herbouwde publicatieplatform kunnen onderwijsinstellingen hun publicaties, zoals artikelen in van lectoren, onderzoeksuitkomsten, en onderwijsleermiddelen voorzien van metadata, zoals samenvattingen, trefwoorden en auteursnamen.

Flexibel

Alle metadata wordt als los object gemaakt. Een van de voordelen van deze keuze is dat er een link wordt aangebracht tussen objecten. Dit vergroot de flexibiliteit. Toekomstige veranderingen zijn daardoor gemakkelijker te verwerken.

Voordelen

Het object ‘auteur’ is bijvoorbeeld in deze aanpak een link tussen ‘persoon’ en ‘publicatierecord’. Verandert iemands titel of achternaam op enig moment, dan heeft dat geen nadelig effect op zoek- of sorteeropdrachten. Dit in tegenstelling tot een situatie, waarbij de auteur als naam in de tekst is opgeschreven.

Zou de gebruiker een lijst van publicaties van 1 persoon willen, dan zal de tussentijdse naamsverandering geen invloed hebben op de volledigheid van de lijst.

Meresco

Door het inzetten van nieuwe open source software componenten, afkomstig uit de groeiende Meresco bibliotheek, levert Seecr aan de wereld van onderwijs en ontwikkeling, wetenschap, cultuur en erfgoed een belangrijke maatschappelijke bijdrage.

Rode loper gaat uit voor Debian Stretch

Wat hebben Dwight Eisenhower en de OS-software release Stretch met elkaar te maken? Het antwoord staat bij ons op het whiteboard. De Eisenhower methode helpt om relevantie en urgentie van te verrichten werkzaamheden te beoordelen. Hij schijnt ooit te hebben gezegd: ‘The urgent are not important, and the important are never urgent.’

Onderhoud

eisenhower-method

The Eisenhower Method

De servers waarop de diensten draaien die wij onze klanten leveren, moeten onderhouden worden. Bijvoorbeeld door de software te updaten. We willen betrouwbaar meerwaarde leveren: de dienst moet altijd bereikbaar zijn voor onze klanten en doen wat is afgesproken.

Voorbereidingen

De nieuwste versie van het besturingssysteem dat we gebruiken, Debian (URL), heet Stretch en zal naar verwachting begin volgend jaar beschikbaar komen. Om de overgang naar Stretch zo soepel mogelijk te laten verlopen, hebben we nu de nodige voorbereidingen getroffen. Zo is onze Meresco software gepackaged, dus klaar gezet, om straks gemakkelijk te kunnen worden uitgerold op de servers.

Op tijd

Omdat we denken zoals Eisenhower, komt ons werk niet in belangrijk-urgent terecht. Dat is immers de vervelendste plek om te zijn. Tijdige voorbereidingen vergroten het zelfvertrouwen. Bij ons hoeft niemand te wachten op het krijgen van bijvoorbeeld de nieuwste security updates. En wij maken ons niet te laat – dus onnodig -druk.

HBO/WO Afstudeeropdracht: automatic garbage collection

Ben je hbo’er of WO’er en zoek je een boeiende afstudeeropdracht? Wij hebben de volgende casus voor je klaar staan:

Garbage Collection Sequential Store

Bij Seecr is een zeer efficiënte manier ontwikkeld om een kleine hoeveelheid gerelateerde data efficiënt op te slaan. Deze opslag moet nu met de hand worden ontdaan van garbage. Dit proces moet worden geautomatiseerd.

Random access

De opslag van zeer kleine eenheden van informatie gaat in de vorm van Triples. Het opslaan van deze informatie in databases zoals Triple Stores of Relationele Databases is geoptimaliseerd voor random access. Dit vertaalt zich in de architectuur van de software, maar ook in de eisen die gesteld worden aan de onderliggende hardware. Er moet vaak veel geheugen beschikbaar zijn voor caching en indexen en dergelijke, en de toegang tot harde schijven moet een zeer lage latency hebben, het liefst als SSD.

Sequential

In veel gevallen is de toegang van de data echter niet random, maar sequentieel van aard. Dit komt omdat in de praktijk vaak gerelateerde gegevens worden opgevraagd, bijvoorbeeld om informatie omtrent een specifiek voorwerp of onderwerp weer te geven in een App of website. Het gaat dan ook al snel om honderden tot duizenden gerelateerde triples. Traditionele Triple Stores en Relationele Databases zijn hier slecht in doordat, eenvoudig gezegd, deze honderden tot duizenden triples allemaal als random access behandeld worden.

Ook is de overhead van de opslag vaak zeer groot: er wordt meer data opgeslagen dan dat er feitelijk informatie in zit. Een overhead van honderden procenten is niet vreemd.

Onze oplossing

Seecr heeft een storage ontwikkeld die zeer weinig geheugen nodig heeft en zeer lage eisen stelt aan de harde schijven. Tegelijk is de through-put in triples per seconde zeer hoog (>1.000.000/s) en ook de netto ingenomen ruimte op de harde schijf is zeer klein doordat de overhead zeer laag is.

Deze store noemen we de Sequential Store omdat hij is geoptimaliseerd voor sequentieel opslag en toegang.

De stores die we in gebruik hebben, bevatten honderden miljoenen triples. Een cruciale optimalisatie is het read-only behandelen van data en het slim bij elkaar opslaan van gerelateerde informatie. Dit betekent dat als er data moet worden verwijderd, dit niet fysiek, direct, gebeurt, maar alleen wordt geregistreerd. Daadwerkelijke verwijdering vindt pas plaats bij een (handmatige) garbage collect. Het is onze wens dat dit automatisch gaat gebeuren.

Hoe automatiseren?

De volgende uitdagingen komen hierbij kijken:

  1. De data is gecomprimeerd en heeft geen vaste lengte.
  2. De benodigde geheugenruimte is beperkt, niet de hele store past in het geheugen.
  3. De benodigde schijfruimte is beperkt en kan dynamisch variëren.
  4. Alle processen lopen door, en de indexen moeten correct blijven.

Voorlopige ideeën over hoe dit aan te pakken:

  1. Verdeel de sequential store in meerdere kleine read-only delen.
  2. Gebruik bijvoorbeeld merge sort om deze delen bijeen te voegen.
  3. Tijdens 2 verdwijnt de garbage en ontstaat een nieuw read-only deel.
  4. Voer dit periodiek uit, of na een trigger die een percentage garbage berekent.

Voor wie?

Deze boeiende stage of afstudeeropdracht is bedoeld voor laatstejaars studenten informatica HBO of WO met een sterke voorkeur voor geavanceerde datastructuren en kennis van de performancekarakteristieken van hardware.

Als IT-stagiair werk je samen met collega’s,  scrum-based, aan userstories. Je denkt mee over het ontwerp en de implementatie van oplossingen, die baanbrekend kunnen zijn voor de dienstverlening van onze klanten.

Wat kenmerkt ons

Via onze maandelijkse retrospectives verbeteren we continu onze processen en onze interactie met elkaar en onze omgeving continu. Onze werkdag is ingedeeld in vier blokken, ieder voorafgegaan door een stand-up. Zo houden we elkaar scherp, zijn we bij elkaar betrokken, en zijn we wendbaarder door de dag heen. Iedereen denkt met elkaar mee.

Je zult begeleid worden door onze senior developers op WO- en hbo-niveau. Met hen kun je de diepte in over de uitdagingen die je tegenkomt.

Ervaring en skills die je nodig hebt

Dit ben jij:

  • Je volgt een hbo- of universitaire ICT-opleiding (eindstage).
  • Je bent integer en respectvol.
  • Je kunt in teamverband én zelfstandig werken.

Als je een goed idee hebt,  krijg je de tijd voor research en toepassing binnen projecten.

Wat wij bieden

  • Je werkt mee aan IT-projecten bij de grootste klanten van Seecr.
  • Het is een uitdagende stage binnen een professionele, platte organisatie. Collegialiteit en samenwerken bepalen de sfeer. Iedereen denkt graag met je mee.  We staan open voor nieuwe ideeën.
  • We hebben een stagevergoeding en reiskostenvergoeding; een (h)eerlijke lunch met tweemaal per week versgebakken brood uit eigen oven, gekookte eitjes en biologisch broodbeleg en zuivel van onze Streekleverancier.  Er is altijd vers sinaasappelsap en fruit op kantoor. De eerlijke koffie uit ons Barista apparaat, komt hier vandaan. We hebben verrassende uitjes en ontmoeten graag inspirerende mensen op congressen zoals de XP Days en TEDx-bijeenkomsten.

Waar je gaat werken

Ons ruime kantoor ligt hier.  Onze medewerkers wonen verspreid in de wijde regio, dus meerijden kan een mogelijkheid zijn.

Reageren

Geïnteresseerd of vragen? Neem dan contact op met Marjanne van Arendonk (communicatie) marjanne@seecr.nl,  of bel 06 – 207 042 96.

Afstudeeropdracht: RDF in Lucene

Apache Jena (https://jena.apache.org) is een raamwerk dat Sparql zoekvragen begrijpt, ontleedt, en via een domeinspecifiek algebra doorstuurt voor verdere verwerking. De verwerking wordt gedaan door een backend, wat zorg draagt voor efficiënte opslag en uitvoering van basale zoekvragen in termen van triples. Jena heeft zelf een backend met de naam TBD.  Seecr is gestart met een back-end die gebaseerd is op Apache Lucene (https://lucene.apache.org). Deze opdracht bestaat uit het uitwerken van de interface tussen Jena en Lucene.

De uitdaging

De belangrijkste reden dat we begonnen zijn met dit project is dat we een Sparql-compliant triple store nodig hebben met specifieke performance karakteristieken die andere open source triple stores niet hebben. Vrijwel alle triple stores zijn geoptimaliseerd voor het volgende gebruik:

  • Laadt (veel) data.
  • Wacht hier (lang) op.
  • Ga grasduinen in de data met Sparql.
  • Antwoord binnen een seconde is heel snel.
  • De triple store draait kort: uren, dagen, hooguit weken.

Echter, het gebruikspatroon wat wij graag willen ondersteunen is:

  • Laadt voortdurend nieuwe data.
  • Verwijder niet meer relevante data.
  • Doe continu queries.

Snel is als het onder de 100 ms is, maar liever onder de 10 ms.  De triple store draait maanden lang door.

Oplossingsrichting

We testen regelmatig triple stores, en we zien hierin maar weinig verbetering. Vooral het voortdurend bijwerken van de data zorgt voor instabiele systemen en voor het uit-sync raken van indexen waardoor het zoeken steeds trager wordt.
Ons inziens ligt dit er vooral aan dat de triple stores vaak nog nieuw zijn en onvoldoende uitontwikkeld. Nu is Sparql-verwerking misschien wel vrij nieuw, maar de benodigde indexen in back-end zijn niet nieuw. Toch worden deze back-end van van de grond af opnieuw ontwikkeld. Dat is de oorzaak van veel problemen, want het maken van een robuuste database met indexen is veel werk en kost veel tijd om stabiel te krijgen.
Er is echter al lange tijd een open source project wat in staat is zeer flexibel indexen van allerlei soorten te maken én om die zeer efficiënt en betrouwbaar up-to-date te houden: Apache Lucene. Zo is het idee ontstaan om Lucene te gebruiken als Back-end voor Jena. Dit idee is niet geheel nieuw, want er zijn twee onderzoekers van verschillende universiteiten die het al eens eerder uitgezocht hebben. De code is echter nergens te vinden.
Dit idee werkt en is ook toepasbaar in serieuze systemen; dat hebben we de afgelopen periode vastgesteld. Verdere doorontwikkeling gaat nu over het implementeren van alle Sparql features en de tuning voor performance. Ons doel is 1 miljard triples op één relatief eenvoudige machine.

Past dit bij jou?

Dit is een zeldzame kans om op zeer fundamenteel niveau bezig te zijn. Een goed begrip van algebra en de toepassing hiervan in de informatica is een pré. Net als kennis van Lucene en Jena. Dit is een opdracht voor een laatste jaar WO-student informatica.

Hoe je dit gaat doen

Als IT-stagiair werk je samen met collega’s,  scrum-based, aan userstories. Je denkt mee over het ontwerp en de implementatie van oplossingen, die baanbrekend kunnen zijn voor de dienstverlening van onze klanten.

Wat kenmerkt ons

Via onze maandelijkse retrospectives verbeteren we continu onze processen en onze interactie met elkaar en onze omgeving continu. Onze werkdag is ingedeeld in vier blokken, ieder voorafgegaan door een stand-up. Zo houden we elkaar scherp, zijn we bij elkaar betrokken, en zijn we wendbaarder door de dag heen. Iedereen denkt met elkaar mee.

Je zult begeleid worden door onze senior developers op WO- en hbo-niveau. Met hen kun je de diepte in over de uitdagingen die je tegenkomt.

Ervaring en skills die je nodig hebt

Dit ben jij:

  • Je volgt een universitaire ICT-opleiding (eindstage).
  • Je bent integer en respectvol.
  • Je kunt in teamverband én zelfstandig werken.

Als je een goed idee hebt,  krijg je de tijd voor research en toepassing binnen projecten.

Wat wij bieden

  • Je werkt mee aan IT-projecten bij de grootste klanten van Seecr.
  • Het is een uitdagende stage binnen een professionele, platte organisatie. Collegialiteit en samenwerken bepalen de sfeer. Iedereen denkt graag met je mee.  We staan open voor nieuwe ideeën.
  • We hebben een stagevergoeding en reiskostenvergoeding; een (h)eerlijke lunch met tweemaal per week versgebakken brood uit eigen oven, gekookte eitjes en biologisch broodbeleg en zuivel van onze Streekleverancier.  Er is altijd vers sinaasappelsap en fruit op kantoor. De eerlijke koffie uit ons Barista apparaat, komt hier vandaan. We hebben verrassende uitjes en ontmoeten graag inspirerende mensen op congressen.

Waar je gaat werken

Ons ruime kantoor ligt hier.  Onze medewerkers wonen verspreid in de wijde regio, dus meerijden kan een mogelijkheid zijn.

Reageren

Geïnteresseerd of vragen? Neem dan contact op met Marjanne van Arendonk (communicatie) marjanne@seecr.nl,  of bel 06 – 207 042 96.

De schoonheid van een agile proces

Fijn om enthousiaste klanten te hebben. Twee weken geleden deden we een mooie retrospective, waarin we terugkeken op het proces van de eerste maanden van samen nadenken en ontwikkelen. Een iteratie verder, ervoeren we weer hoe goed er wordt meegedacht, en meegewerkt. Dit zien we graag.

Flexibel

Communicatie en vertrouwen maken deel uit van de grondhouding in een agile werkwijze. Bij het ontstaan van iets nieuws, komt er meer begrip van ‘andere wegen naar Rome’. En toch: je moet maar durven die wegen in te slaan! Het team van Surfmarksurfsharekit-logoet dat met ons een nieuwe Sharekit opbouwt, blijkt goed in staat om hun ‘zekerheden’ los te laten. Gevolg: minder conservatieve ontwerpkeuzes, snellere overweging van nieuwe alternatieven, en de capaciteit om momentum te bewaren bij het ontwikkelen van Sharekit. Onze compleet nieuwe opzet, is flexibeler dan wat er was. Dat geeft mogelijkheden. Maar die moeten wel worden gezien, en durven benut. Doordat we kleine stappen maken, bouwen we vertrouwen op.

Wenkend perspectief

De makke van een bestaand systeem is soms, dat het de beeldvorming van de werking van een nieuw systeem kan vertroebelen. Echter, omdat we stap voor stap bouwen, groeit er een nieuw beeld van wat Sharekit kan zijn, en worden. En het andere perspectief wordt met enthousiasme ontvangen.

Doel

Het Surfsharekit-platform moet een palet aan publicaties van hbo’s en universiteiten kunnen harvesten, metadateren, opslaan, en uitwisselen. Wat als eerste gemaakt moet worden, bepalen we samen. We maken een inschatting voor de bijbehorende workload, van de samen vastgestelde prioriteiten. De prioriteit moet in twee weken kunnen passen. We hebben er nu een week of acht programmeren op zitten; dus hebben we vier keer, een steeds iets meer uitgebreid systeem van ‘most wanted’ kunnen presenteren en de opdrachtgevers laten ervaren, en feedback op laten geven.

Gedeeld begrip en doel

Deze nauwe afstemming werpt zijn vruchten af. Er wordt goed meegedacht over wat het uiteindelijke doel van een requirement is. Zo waren in het oude systeem diverse rollen en functies gedefinieerd, waaraan rechten waren gekoppeld. Samen kijken we nu of het mogelijk is groepen te definiëren, die rechten hebben. Wie lid is van zo’n groep, heeft dan dezelfde rechten. We gaan ervaren of deze opzet gaan werken, door hem te bouwen en uit te proberen.