Skip to content

Instantly share code, notes, and snippets.

View Morendil's full-sized avatar

Laurent Bossavit Morendil

View GitHub Profile
asf for 2014-11
asf_elig for 2014-11
en_couple for 2014-11
nb_parents for 2014-11
residence_mayotte for 2014-11
asf_elig_enfant for 2014-11
autonomie_financiere for 2014-11
salaire_net for 2014-05
salaire_imposable for 2014-05
crds_salaire for 2014-05
asf for 2014-11
asf_elig for 2014-11
en_couple for 2014-11
nb_parents for 2014-11
residence_mayotte for 2014-11
asf_elig_enfant for 2014-11
autonomie_financiere for 2014-11
salaire_net for 2014-05
salaire_imposable for 2014-05
salaire_de_base for 2014-05
@Morendil
Morendil / test_yamls.py
Created October 20, 2018 20:15
openfisca-run-test replacement using Pytest
from yaml import CLoader as Loader, CDumper as Dumper
import pytest
import glob
import yaml
import numpy
from openfisca_core import scenarios
from openfisca_core.scripts import build_tax_benefit_system
@Morendil
Morendil / fiche-de-poste-lbo.md
Created September 12, 2018 08:18
Quand on m'a demandé fin 2014 d'écrire ma fiche de poste…

L'un des dictons de la nouvelle économie est "culture eats strategy for breakfast": non pas définir une stratégie au sommet, puis l'imposer a la base par le jeu classique de la hiérarchie, mais veiller a partager des valeurs, et laisser chacun les transcrire en actes en s'adaptant aux situations. Le paradoxe, c'est qu'on ne décrète pas un changement culturel: la culture, c'est la somme de ce que l'on fait de façon si habituelle qu'on y réfléchit meme plus. La culture émerge de pratiques, d'invariants de comportement.

On ne décrete pas le recours a la multitude, le changement culturel, la transformation de l'entreprise en plateforme: on en crée les conditions. On peut encourager, protéger, récompenser (sans ostentation) des comportements et des pratiques; vérifier périodiquement leur adéquation aux valeurs. C'est aux individus de faire le reste, c'est-à-dire l'essentiel.

Voici donc un catalogue de pratiques, de comportements, de tactiques: nécessairement provisoire, mais visant à servir de point de départ.

import R from 'ramda'
import {expect} from 'chai'
import daggy from 'daggy'
import {Maybe as M} from 'ramda-fantasy'
describe('simplified tree walks', function() {
// Notre domaine peut se simplifier à une liste d'équations à trous:
// a: 45
// b: a + c
import R from 'ramda'
import {expect} from 'chai'
import daggy from 'daggy'
describe('simplified tree walks', function() {
// Mon domaine peut se simplifier à une liste d'équations à trous:
// a: 45
// b: a + c
// d: a + 4

Keybase proof

I hereby claim:

  • I am morendil on github.
  • I am morendil (https://keybase.io/morendil) on keybase.
  • I have a public key ASD5WwUdb8DA0vDTOKkzlCI_5SQPGQQjjSOHYd84J7UcTQo

To claim this, I am signing this object:

for V in One Two Three; do echo -n $V > word.txt && docker run -it -v $(pwd):/app envygeeks/alpine /bin/bash -c "sleep 1 && cat /app/word.txt" ; done
mkdir docker-alpine-bug
cd docker-alpine-bug
git init .
echo "Bug" > README
git add .
git commit -m "Bug"
git checkout -b somewhere
echo -e "One\nTwo\nThree" > README
git commit -am "Bug"
git checkout master
@Morendil
Morendil / Mills.md
Last active February 16, 2016 07:12

Abstract

Structured programming can be used to develop a large system in an evolving tree structure of nested program modules, with no control branching between modules except for module calls defined in the tree structure. By limiting the size and complexity of modules, unit debugging can be done by systematic reading, and the modules can be executed directly in the evolving system in a top down testing process.

Introduction

Large systems programming today is dominated by the integration and debugging problem because it is commonly assumed that logic errors are inevitable in programming systems (in contrast to syntax errors, which are detected by translators). There is no doubt that programmers are fallible and always will be. But it now appears possible to organize and discipline the program design and coding process in order to (1) prevent most logic errors in the first place and (2) detect those errors remaining more surely and easily than before.

We will use the term "structured programming"