Gave Technologie

Papers we love: Regular Expression Search Algorithm

15 februari 2017

Regular expressions zijn gaaf. Het zijn op het eerste gezicht obscure tekenreeksen die worden gebruikt om een patroon te definiëren wat gematcht kan worden aan een reeks tekst. Nu denk je misschien: het zoeken in tekst is toch niet zo’n ingewikkeld probleem? Helaas, dat is het wel.
Lees verder >>

Regular expressions zijn gaaf. Het zijn op het eerste gezicht obscure tekenreeksen die worden gebruikt om een patroon te definiëren wat gematcht kan worden aan een reeks tekst. Nu denk je misschien: het zoeken in tekst is toch niet zo’n ingewikkeld probleem? Helaas, dat is het wel.
Lees verder >>

Papers we love: Collaborative editing: hoe werkt dat eigenlijk?

01 februari 2017

Google drive, Microsoft office 365. Iedereen kent minimaal een van die producten. Maar hoe werken ze? Hoe kan er zo gemakkelijk met meerdere mensen aan een document gewerkt worden? Dat is precies wat ik me dus afvroeg. Na wat googlen kwam ik uit bij een artikel op Wikipedia, over Operational Transformation. Die pagina linkte weer naar een onderliggende paper die Concurrency control in groupware systems heet. Dit is dan ook de paper die ik deze maand wil bekijken.
Lees verder >>

Google drive, Microsoft office 365. Iedereen kent minimaal een van die producten. Maar hoe werken ze? Hoe kan er zo gemakkelijk met meerdere mensen aan een document gewerkt worden? Dat is precies wat ik me dus afvroeg. Na wat googlen kwam ik uit bij een artikel op Wikipedia, over Operational Transformation. Die pagina linkte weer naar een onderliggende paper die Concurrency control in groupware systems heet. Dit is dan ook de paper die ik deze maand wil bekijken.
Lees verder >>

Papers we love: Design patterns: hoe kunnen we een gemaakte keuze evalueren?

15 januari 2017

Design patterns. Iedereen kent het boek en heeft een aantal (favoriete) patterns in zijn of haar  gereedschapskist om toe te passen wanneer nodig. Maar waar wordt de keuze voor een specifiek pattern eigenlijk op gebaseerd? Niet alleen door Gamma et al, maar in bijna iedere verzameling van patterns wordt een stukje context gegeven die kan helpen een keuze te maken. De context is veelal in de vorm “als het lijkt op X, doe dan Y”.
Lees verder >>

Design patterns. Iedereen kent het boek en heeft een aantal (favoriete) patterns in zijn of haar  gereedschapskist om toe te passen wanneer nodig. Maar waar wordt de keuze voor een specifiek pattern eigenlijk op gebaseerd? Niet alleen door Gamma et al, maar in bijna iedere verzameling van patterns wordt een stukje context gegeven die kan helpen een keuze te maken. De context is veelal in de vorm “als het lijkt op X, doe dan Y”.
Lees verder >>

Papers we love: Retroactive datastructures

01 januari 2017

Deze keer wil ik het onderwerp ‘tijd’ aankaarten. Tijd in combinatie met datastructuren om precies te zijn. Het uitgangspunt van de paper van deze maand is dat er verschillende scenario’s zijn waarin niet alleen de huidige status van een datamodel, belangrijk is, maar ook de manier waarop dit tot stand gekomen is. Hierdoor zou het dan mogelijk moeten zijn om retroactief datamutaties door te voeren. Hierover is in 2007 een paper gepubliceerd met de titel Retroactive Data Structures.
Lees verder >>

Deze keer wil ik het onderwerp ‘tijd’ aankaarten. Tijd in combinatie met datastructuren om precies te zijn. Het uitgangspunt van de paper van deze maand is dat er verschillende scenario’s zijn waarin niet alleen de huidige status van een datamodel, belangrijk is, maar ook de manier waarop dit tot stand gekomen is. Hierdoor zou het dan mogelijk moeten zijn om retroactief datamutaties door te voeren. Hierover is in 2007 een paper gepubliceerd met de titel Retroactive Data Structures.
Lees verder >>

Papers we love: Automatisch repareren van bugs, hoe doe je dat?

15 december 2016

Bugs. Out-of-bounds errors, integer overflows, divide by zero errors. Wie kent ze niet? Het zijn allemaal bugs met eenzelfde achtergrond en hebben gemeen dat ze nogal eens optreden, zeker in de meer low-level talen. Wat nu als je dit soort fouten automatisch zou kunnen herstellen? Dat is precies de vraag die de auteurs van de deze paper zich stelden. De paper van deze maand heet Automatic error elimination by horizontal code transfer across multiple applications en komt bij MIT CSAIL vandaan.
Lees verder >>

Bugs. Out-of-bounds errors, integer overflows, divide by zero errors. Wie kent ze niet? Het zijn allemaal bugs met eenzelfde achtergrond en hebben gemeen dat ze nogal eens optreden, zeker in de meer low-level talen. Wat nu als je dit soort fouten automatisch zou kunnen herstellen? Dat is precies de vraag die de auteurs van de deze paper zich stelden. De paper van deze maand heet Automatic error elimination by horizontal code transfer across multiple applications en komt bij MIT CSAIL vandaan.
Lees verder >>

Papers we love: Reflections on trusting trust: kun je je hard-, en software nog wel vertrouwen?

01 december 2016

Om na de vakantie weer rustig op gang te komen is er deze week korte paper aan de beurt die je waarschijnlijk aan het denken zal zetten. De paper heet Reflections on trusting trust, komt uit 1984 en is geschreven door Ken Thompson. Het oorspronkelijke idee is zelfs iets ouder, maar bij het ontvangen van de Turing Award heeft hij het als speech aan het grote publiek  voorgelegd.
Lees verder >>

Om na de vakantie weer rustig op gang te komen is er deze week korte paper aan de beurt die je waarschijnlijk aan het denken zal zetten. De paper heet Reflections on trusting trust, komt uit 1984 en is geschreven door Ken Thompson. Het oorspronkelijke idee is zelfs iets ouder, maar bij het ontvangen van de Turing Award heeft hij het als speech aan het grote publiek  voorgelegd.
Lees verder >>

Papers we love: In Search of an Understandable Consensus Algorithm

15 november 2016

Momenteel zijn gedistribueerde systemen een hot topic. We zien steeds vaker dat dezelfde functionaliteit van applicaties over meerdere machines wordt opgedeeld. Het buzzword “horizontal schaling” gaat hier bijvoorbeeld over. Dit schalen over meerdere machines is relatief eenvoudig wanneer je niet over (gedeelde) state na hoeft te denken. Wanneer een applicatie, laten we hem foo noemen, alleen maar rekentaken uitvoert is het bijvoorbeeld eenvoudig om deze te schalen. Indien de capaciteit van deze applicatie gemaximaliseerd is kun je hier een tweede instantie bij plaatsen, waarna je het werk verdeeld over de twee nodes. Je krijgt dan dus fooA en fooB. Dit zelfde principe is dan ook toe te passen voor beschikbaarheid. Het falen van individuele machines is daarmee geen groot probleem meer.
Lees verder >>

Momenteel zijn gedistribueerde systemen een hot topic. We zien steeds vaker dat dezelfde functionaliteit van applicaties over meerdere machines wordt opgedeeld. Het buzzword “horizontal schaling” gaat hier bijvoorbeeld over. Dit schalen over meerdere machines is relatief eenvoudig wanneer je niet over (gedeelde) state na hoeft te denken. Wanneer een applicatie, laten we hem foo noemen, alleen maar rekentaken uitvoert is het bijvoorbeeld eenvoudig om deze te schalen. Indien de capaciteit van deze applicatie gemaximaliseerd is kun je hier een tweede instantie bij plaatsen, waarna je het werk verdeeld over de twee nodes. Je krijgt dan dus fooA en fooB. Dit zelfde principe is dan ook toe te passen voor beschikbaarheid. Het falen van individuele machines is daarmee geen groot probleem meer.
Lees verder >>

Papers we love: Why Functional Programming Matters

01 november 2016

Functioneel programmeren: het is een terugkerend fenomeen met een fanatieke groep aanhangers. Maar waarom zijn ze altijd zo enthousiast? Wat drijft de aanhangers van dit paradigma al sinds de opkomst hiervan? Met het aandragen van deze paper probeer ik hier een klein beetje licht op te werpen. De paper heet Why Functional Programming Matters en komt uit 1984, al is deze een klein beetje herschreven en gepubliceerd in 1989[3].
Lees verder >>

Functioneel programmeren: het is een terugkerend fenomeen met een fanatieke groep aanhangers. Maar waarom zijn ze altijd zo enthousiast? Wat drijft de aanhangers van dit paradigma al sinds de opkomst hiervan? Met het aandragen van deze paper probeer ik hier een klein beetje licht op te werpen. De paper heet Why Functional Programming Matters en komt uit 1984, al is deze een klein beetje herschreven en gepubliceerd in 1989[3].
Lees verder >>

Papers we love: pull-based software development

15 oktober 2016

De paper van deze maand is weer een jonge paper — gepubliceerd in 2013 — en is afkomstig van SERG te Delft. Hij heet “An Exploratory Study of the Pull-based Software Development Model“. Centraal staat de manier van samenwerken die mogelijk gemaakt is door decentrale versie-beheersystemen zoals Git: pull-based development. Dit model, vaak gefacilliteerd door producten als Github, Gitlab of Bitbucket, stelt je in staat een complete eigen kopie te maken van de development repository. Changes aan de code-base kun je dan, eventueel gebundeld, aan de hand van een pull-request weer aanbieden aan de “upstream” eigenaar van het project.
Lees verder >>

De paper van deze maand is weer een jonge paper — gepubliceerd in 2013 — en is afkomstig van SERG te Delft. Hij heet “An Exploratory Study of the Pull-based Software Development Model“. Centraal staat de manier van samenwerken die mogelijk gemaakt is door decentrale versie-beheersystemen zoals Git: pull-based development. Dit model, vaak gefacilliteerd door producten als Github, Gitlab of Bitbucket, stelt je in staat een complete eigen kopie te maken van de development repository. Changes aan de code-base kun je dan, eventueel gebundeld, aan de hand van een pull-request weer aanbieden aan de “upstream” eigenaar van het project.
Lees verder >>

Papers we love: statische analyses op code uitvoeren

01 oktober 2016

De paper die ik deze maand in het zonnetje wil zitten is er een uit het jaar 2000. Hij heet “Checking system rules using system-specific, programmer-written compiler extensions” en is te downloaden . Dit paper beschrijft een systeem om eenvoudig en efficiënt statische analyses uit te kunnen voeren van een stuk software. De auteurs stellen dat “meta-level compilation” gebruikt kan worden om op een eenvoudige manier systeem-specifieke regels vast te leggen en als automatisch controlemiddel toe te passen om de kwaliteit van software te kunnen verhogen.
Lees verder >>

De paper die ik deze maand in het zonnetje wil zitten is er een uit het jaar 2000. Hij heet “Checking system rules using system-specific, programmer-written compiler extensions” en is te downloaden . Dit paper beschrijft een systeem om eenvoudig en efficiënt statische analyses uit te kunnen voeren van een stuk software. De auteurs stellen dat “meta-level compilation” gebruikt kan worden om op een eenvoudige manier systeem-specifieke regels vast te leggen en als automatisch controlemiddel toe te passen om de kwaliteit van software te kunnen verhogen.
Lees verder >>