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

Reageer!

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

Reageer!

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

Reacties uitgeschakeld voor Papers we love: Regular Expression Search Algorithm

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

Reacties uitgeschakeld voor Papers we love: Collaborative editing: hoe werkt dat eigenlijk?

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

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

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

Reacties uitgeschakeld voor Papers we love: Retroactive datastructures

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

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

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

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

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

Reacties uitgeschakeld voor Papers we love: In Search of an Understandable Consensus Algorithm

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

Reacties uitgeschakeld voor Papers we love: Why Functional Programming Matters