Gave Technologie

Papers we love: Reactors, channels and event streams for composable distributed programming

15 april 2017

Deze maand wil ik het over een paper hebben die ergens vorig jaar is gepubliceerd. Het onderwerp, de betrokkenen en het gebruikte platform zijn vrij high-profile, waardoor het me gelijk prikkelde. De paper heeft de (lange) titel Isolates, channels, and event streams for composable distributed programming.
Lees verder >>

Deze maand wil ik het over een paper hebben die ergens vorig jaar is gepubliceerd. Het onderwerp, de betrokkenen en het gebruikte platform zijn vrij high-profile, waardoor het me gelijk prikkelde. De paper heeft de (lange) titel Isolates, channels, and event streams for composable distributed programming.
Lees verder >>

Papers we love: Black magic: het aantal elementen in een verzameling bepaald door de meest significante bits die sequentieel nul zijn

01 april 2017

Deze keer wil ik even stilstaan bij een probleem wat in eerste instantie heel triviaal lijkt, maar wat op grote schaal voor enorme uitdagingen kan zorgen. Dit probleem is het tellen van het aantal elementen in een verzameling, waarbij de verzameling technisch een zogenaamde multiset is. Concreet: gegeven een verzameling {2, 3, 2, 2, 3, 4, 5} zou je, vragend om het aantal unieke elementen, het antwoord 4 terug willen krijgen. De meest eenvoudige en trefzekere manier om dit te doen is door sequentieel door de verzameling heen te lopen en voor ieder element bij te houden dat je hem hebt gezien. Deze naïeve implementatie heeft als nadeel dat deze in lineaire tijd uitvoerbaar is en dat het geheugengebruik ook proportioneel is aan het aantal unieke elementen in de multiset.
Lees verder >>

Deze keer wil ik even stilstaan bij een probleem wat in eerste instantie heel triviaal lijkt, maar wat op grote schaal voor enorme uitdagingen kan zorgen. Dit probleem is het tellen van het aantal elementen in een verzameling, waarbij de verzameling technisch een zogenaamde multiset is. Concreet: gegeven een verzameling {2, 3, 2, 2, 3, 4, 5} zou je, vragend om het aantal unieke elementen, het antwoord 4 terug willen krijgen. De meest eenvoudige en trefzekere manier om dit te doen is door sequentieel door de verzameling heen te lopen en voor ieder element bij te houden dat je hem hebt gezien. Deze naïeve implementatie heeft als nadeel dat deze in lineaire tijd uitvoerbaar is en dat het geheugengebruik ook proportioneel is aan het aantal unieke elementen in de multiset.
Lees verder >>

Papers we love: Crash-Only Software

15 maart 2017

Instabiele software is iets wat we allemaal kennen. Het blijft hangen, is ineens onverklaarbaar langzaam, geeft timouts of crasht. Het is op zijn best irritant, maar in het slechtste geval kost dit zelfs mensenlevens. Gelukkig is het meestal niet zo desastreus en is het resultaat vooral dataverlies of data-corruptie. Onze software schrijven we dan ook (meestal) op een dusdanige manier dat we data duurzaam opslaan in systemen die zijn ontworpen om met onverwachte omstandigheden om te gaan. Dit kan bijvoorbeeld door gebruik te maken van een database welke zelf met o.a. een transaction log werkt om duurzame schrijfactie te garanderen. Ook denken we na over de levensduur van onze applicatie en introduceren we mogelijkheden om software op een deterministische manier te starten en te stoppen.
Lees verder >>

Instabiele software is iets wat we allemaal kennen. Het blijft hangen, is ineens onverklaarbaar langzaam, geeft timouts of crasht. Het is op zijn best irritant, maar in het slechtste geval kost dit zelfs mensenlevens. Gelukkig is het meestal niet zo desastreus en is het resultaat vooral dataverlies of data-corruptie. Onze software schrijven we dan ook (meestal) op een dusdanige manier dat we data duurzaam opslaan in systemen die zijn ontworpen om met onverwachte omstandigheden om te gaan. Dit kan bijvoorbeeld door gebruik te maken van een database welke zelf met o.a. een transaction log werkt om duurzame schrijfactie te garanderen. Ook denken we na over de levensduur van onze applicatie en introduceren we mogelijkheden om software op een deterministische manier te starten en te stoppen.
Lees verder >>

Papers we love: Debugging for Reactive Programming

01 maart 2017

Een van de onderwerpen waar Sogyo steeds meer om bekend begint te raken is Reactive Programming. Dit doen we meestal (altijd?) met de libraries van ReactiveX, welke een generieke en open source API aanbiedt voor een groot aantal talen. Mocht je nu denken: huh? Waar heb je het over, verdiep je dan eens in hun introductie.
Lees verder >>

Een van de onderwerpen waar Sogyo steeds meer om bekend begint te raken is Reactive Programming. Dit doen we meestal (altijd?) met de libraries van ReactiveX, welke een generieke en open source API aanbiedt voor een groot aantal talen. Mocht je nu denken: huh? Waar heb je het over, verdiep je dan eens in hun introductie.
Lees verder >>

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 >>