Terrorism is there to hide the true threat

Terrorism has a fishy history in  France

French propaganda during WWII collaboration
Let's say a young neglected ginger teen fishy smell

The treatment of what would be called heroes during WWII in France

When you see most of the persons that were actually powerful before, during WWII were still in power after the liberation, some do wonder if the France of the elite actually should not have been condemned with the nazis.

Terrorism has been used in France as an excuse to screen and archive every one's particularities (religion, opinions, ethnicity....) and then officially condemn them. Or deport them to death camps.

They turned the word terror as an excuse to protect the citizens and then take on the most vulnerable ones. All of this in the name of the higher reason of security...

Before terrorist it was named the agent of the enemy like ... the captain Dreyfus.

Nothing changes in french history, people using the words terrorism or the hidden enemies have a tendency to attack themselves the one they pretend to defend.

Let's be real ; the money of terrorism make Euro powerful.

For money laundering you have 3 options: USA based, Europe based, UK based.

And that's one reason Google, Amazon, Facebook ... don't pay taxes in Europe. Because we have custom made international rules to permit fiscal evasion and money laundering. The GAFA just used this circuits, hence that is the reason why they won't pay taxes.

But guess what, Mr Durand who is a hardcore human-and-weapon-and drug trafficking beast wants to enjoy his week ends with his 2 years old daughter. He share his stories about his kid with me.

Mr Durand wants his money locally. He cannot use the money too obviously, he just gets lucky in deals.

A company in Monaco, Delaware, or the Caïman may propose him a good lease for a car, or nice opportunity in real estates.

Yes, money of crime finally drop down in the real world. The trickle down reality of blood money.

It is invested in stuff in which you pay 3 times.

  • Art: a market that is artificially being kept afloat through national collections and sponsoring;
  • Stock options: which market is artificially high thanks to the free money the tax payers;
Real Estate is the worse: you pay the rent, fund the urban planning of government and fund the access to the property and pay it as a part of the costs of having retail surface distinct from living places.

Money laundering makes our economies turn into valuation of rents, like during victorian era, early or mid XXth.

It amplifies a winner takes all effects. And of course, losers don't like it. Because the only justification for this hierarchy is an arbitrary divide based on randomness of fortune most of it being inherited.

Let me tell you, take the best singers their offspring are often overvalued (except Kid Rock) compared to random singers. And worst comes at 3rd generation.

A society of feudalism maybe totally suiting my hardcore RPG background. However the point of fantasies is that it is not as a reality. Feudality is a dream in the it's good to be bad register, having fun and lashing out for the duration of a game.

I don't want to leave in a society left to pedantic whom power was only granted by the luck of birth.

It makes boring societies where you feel smart too easily but can't achieve anything. A tedious boring easy game you lose because of shitty controls and you need cheat codes to win. Like seriously? No gamers in their right mind want such a dystopian world.

The true threat is tax evasion and the fact a society based on inheritance makes us go back to the state of our societies before wars.

And that these societies have been calling terrorists anyone but the terrorists they were dealing with to have their fat earnings.

Basically with fiscal evasion we create a vicious circle where crime pays. And the more criminal you are, the more it pays. A money crime that slowly the corrupt more and more of the governments.

How We Could Make Coder's Union Successful

Last week I wrote an article on how I thought software industry was flawed for its lack of liability. In one week things changed: a coder is sentenced to 40 months in jail for having written a software.

Time has come to protect our asses from decision we were imposed.

Boring part what is it about having a profession (beruf)?

- having responsibility that fits your authority; 
- being paid for every hours spent to produce, including commuting for your work; 
- having hygienic work conditions that wont harm you (fuck crunches, open-spaces, poor chairs/lighting); 
- having standards in cleaning (yes cleaning is important, stuff like nice PR, documentations...); 
- LIABILITY we have to accept we are liable for things in exchange for authority; 
- ETHIC, we must have the right to refuse to code programs that in our knowledge opposes the common laws (like privacy, embezzlement, fiscal fraud, consumers rights to be informed...); 
- the respect of IP laws, I am bored of seeing people STEAL free/open source software and claim it is theirs, it we take part in doing so we are negating the value our very own work...

At my opinion this is the minimal package a coder's union should grant.

Once you have a well defined perimeter, you defend it. And here comes the how

It is easy. I know IT generation  is supposed to not be able to read book, but it is a lie. 

All unions are based on the same patterns:

fight for your right

to party... (beasty boys' joke). No actually unions are actually base on fighting for your rights.

Imagine you are like how do I start a union?

Literature is extensive on the topic: pick your fight and stick with it. And begin with the easiest one.

I would go for the LIABILITY part. 

I would create an legal association that can accept money and fund lawsuit for any topic where there is an easy win when a coder is held  responsible for a decision he was not having having authority.

Why? Because authority on a topic define a proficiency. 

If you are held responsible for decision, then it is your job. If you don't have the authority and the wages going with it you are being fucked. And the rest comes with it.

So a union basic mission is to fight for the recognition of a profession: the alignment between authority and responsiblity.

Hence, it turns into wages.

Nowadays, most managers that are paid more than you and know nothing about coding are going to force feed you dependencies in your project. Probably because their 16 yo kids just took their first computer out of its card-box. I like the idea of innovation. As long as risks are in sync with earnings.

A manager of a coder never get responsible of his choices, but since DieselGate we know we can go in jail for someone's else choice.

Are we paid as much as the managers? Hell no. Do we risk more than them? Hell yes.

What the fuck?!

Prove yourself useful


Coders do not live as a separate entity from the society.

A lot of topics where their knowledge can be useful exists: consumer's rights, legal expertise, education.

A union should also break the asymmetry of information between most common people and the other part of the society. However most of us have got these infamous Non Disclosure Agreement floating on our heads that are unethical.

Maybe a product is violating your civil rights, your consumers' rights and because we are individuals against big corporations we can do nothing.

Unions could be a way to protect whistle blowers and their rights to exists.

Unions could also tell students the real expected wages in regard to their tuition. Avoiding people to live as slaves of useless student loans.

Maybe a union could help citizens that are off the grid of "usable" internet connection have access to better connections?

Leveraging Internet

I recognize that FSF, OSI and CC have some «knowledge» on IP laws that are thanks to international conventions: global. I also do acknowledge the importance of Intellectual Property laws

However, I don't like any of the aforementioned organizations.

I don't know for you, but I know for myself I do accept disagreement as a fruitful form of evolution. I do not know anything about the future of any coder's union, however I am certain IP laws are central to this.

At my opinion, future unions should no be ashamed to begin locally and challenge global organization such WIPO, FSF, CC, WTO...

Where do I sign?

You don't sign: either you tell me of coder's union I am not aware of (0 so far), or you think of starting one yourself. My own location is probably far away for your own thus I am useless to you: a lot differ especially the costs of lawsuits, their odds of success, the cost of funding a union, and funding a strike.

Sometimes your future is up to you.

How Information Technology became the realm of bigots

Imagine you are in the Emergency Room of a modest hospital and you are a seasoned worker trying to save a patient.

You have not even begun to diagnose the patient someone just come in your back with a nice title saying, diagnose for what? We lose money.

Let's shower the patient in golden flakes and put him on a three days diet without water! It is exactly what they do that works in the fancy hospital where I come from.

You oppose the decision saying it could kill the patient, and they laugh at you saying, well who cares, we are not liable neither financially nor legally and who cares about the costs? Anyway NHS will pay.

Well, I do. A professional cares about costs and about the survival of the entity he works for. Ho! And if the patient dies, it is my fault, and I don't like people dying.

The patient I am gonna talk of today is Information Technology and Computer related technology: it is sick and FUBAR (like foo/bar).

We have symptoms:
  • multiplication of dependencies and frameworks;
  • non determinism of tools that used to be deterministic (systemd, C compilers);
  • non transactionals backend used for transactions;
  • bloatware that induces operational and energetical cost sinks;
  • unsecure software due to increase in the surface of vulnerability.
It all looks like what security engineers calls a shift of concern.

A collective dismissal about what our jobs is all about.

I could be theoretical on this one, or just tell my daily experience about what happens in real life.

I am not really a coder, I am first an analyst: I never take decisions without investigations of what a problem could be. I analyze, plan and anticipate before I code.

But, the process of diagnosing a trouble is random. Making it hard to plan. And nowadays we have all these magical tools for gathering gazillions of data. The funny part is I never have the data I need.

H = - k ln (Omega).

Information is not having access to big quantity of data, but just the right few relevant data. Two ways to higher information exists : better discrimination (AI) or smart data (science).
So the other day, there was a discussion on how to get insights working for our product: either take the upstream branch of the product we work on, or develop a new one.

Problem was solved in 30 seconds: fork is bad, end of discussion.

The upstream solution requires to introduce in a webstack of 500k lines of code that already have: Django, scipy, matplolib, bootstrap, jquery, ruby dependencies on java, hadoop, elasticsearch, openstack.

Our company has no sysadmins, and is pretty tight on developers.

What hadoop is used for? Time series display of events occuring with quite a light frequency. Something that could be handled in more than one ways: events could be dispatched at creation time with carbon/graphite. Using a custom script in a crontab with even less dependencies with python stdlibs...

But no, in modern days computer science diagnosing before taking a decision is bad because it makes company lose time, and everybody knows that big data is the direction to go, so if a tool is marketed big data and used by big companies, hence it is good.

I am totally aware this fall in the YAGNI article recently published on the internet.

But it does not end up there, because this is one of many symptoms of Cargo Cult science: borrowing the sign of science to look scientific but discarding any scientific methodology.

I made half a dozen internships in science. Science is not about theory and knowledge, it is a method based on making sure your model match your observations. For this measurements are important, and accepting you may be wrong. And believe me, when you deal with real world, you often are. You will fail eventually in your decisions!

I am a boring coder, longing for boredom.

I do not like crunch. I want to come back at the end of the day to enjoy the company of my family. I do hate death march, useless innovations, and adding new servers to the architecture when I already have a swarm of 26 servers using 20% loard to handle 50 request per seconds (all conformance with my actual work data would be fortuitous and coincidental).

Did I told you my linux experts in the company ignore that max CPU load on linux is CPU count * 100%? No so actually  the CPU load on most servers is 5%. And, my newly hired experts who takes decision for the infrastructure was scared when a consultant proposed to mutualize infrastructures. Let's use another VM instead! Yet another line of billing in the never ending growth of costs.

Anyway, I would like to work with a boring stack. I really do not like having to waste hours reading poorly documented code for which read the source luke involves using a buggy version of ansible (python), shell scripts, Vagrantfiles (ruby) based on magical assumption about environment variable, and not only deal with js/HTML/CSS but also 3 js frameworks one of which adds another templating systems that copies other templates we already serves in mako.

And when I ask why is this so complex? The answers is always because we trust our IT specialists that are in conformance with what the others are saying.

I am the rebel here. Wondering why no one backs up financially engaging choices with clear operational impacts with an argumentation about cost of different choices.

Logic has clearly left the realm of IT.

We are not anymore in the realm of individual responsibility and accountability we are in the realm of collective intelligence and benchmarking. We are well paid, because we are supposed to have responsibilities, we can make choices that can sink a company. But, it seems following the herd to be innovative is now more important.
Is the herd a troup of lemmings jumping of a cliff? We all seem to be going in euphoria to that cliff.

Except me, I don't like excitation and bromance.

I have a wife and a kid.

I hate documenting, I do document. Why? Because some operations require so much states to remember I cannot. Thus I document complex tasks. It is boring.

My coworkers also document complex tasks ... they never actually made and that they wish would be done one day.

And I am like, oh this is religion!

Documenting something that exists is sane.

Documenting something that does not exists is fantasy. Especially when there is no rationale for setting these tasks into motion other than I learned during my formation it is the way it should be done.

The freaking One best way of the engineering schools. Where you never did anything with your hands but are raised to think you are a special snowflake that have the magical power to be better than others at organizing their work.

Short military saying: if you want to be good at ordering first learn to obey. What is funny is these kind of persons seem to be good at writing a lot, but unable to accomplish simple procedure they are given. Yes, I am an asshole, I eventually trapped one of these guys in having to do a simple task that was documented.

How did we come up in a world that is basically functioning on magical thinking rather than scientific thinking?

How observations and measurements are now relegated as less efficient than just do what the majority does?

Because of Conway law. The problem in your code reflect the problem in your organization. This mess of dependencies and complexity is a reflection of our organizational problems.

There is no more conceptual integrity (Mythical Man-Month) that is ensured by a small team of knowledgeable coders.

If one project managers has experience with photoshop, I will have to generate documents as if we were a print workshop.

If a PR is enthusiastic about a new article about an IT guru we have to embed the technology.

We are living in companies were chain of commands are utterly broken. The one with responsabilities/accountability are not anymore in charge of taking decision. And the mismatch between responsibility and authority is called stress. I am a boring coder: I hate useless stress, because a production that is unstable is already enough stress for me. For every functionalities I prune, I am ordered to had 4. The fight against entropy is lost.

The multiplication of dependencies is just the reflection of how much persons are involved in the process of taking decisions. People who actually do not face the consequence of their actions. IT faced to the scarcity of coders have taken the decision to hire a lot of average quickly educated coders and think management worth more than the skills for actually doing. Basically skills are under-evaluated in regard of social status.

It is also a negation of what coding is. Coding is about analysing before coding. Most of the code will be in maintenance: screened for defects and better resource handling.

However management in IT is about hiring manageable coders that will not fight stupid decisions.

But how?

And that concludes my pamphlet: because we are experiencing an IT bubble.

In a normal market that actually works at handling resources efficiently companies that do not care about efficiency disappear.

There is clearly an hidden incentive for decisions that heads towards non rational decisions.

50 request/seconds (disclaimers these are not true figures bla bla) should not require 26 servers x 2, and 3 rows of load balancers for continuous delivery in a company of less than 50 if the budget is tightly controlled unless it is the norm in the economical environment.

It is the norm if and only if money is flowing so much that profitability does not matter.

Modern IT is just a sign our economical system is not working anymore and people have become irrational. Global warming is a truth. But because computers emit smoke only on very rare occasion (a warehouse taking fire), people do not integrate the energy consumption they use.

The watt per requests nowadays are ridiculously high. Who cares? It is green.

Modern IT has no legal/financial liability and people base their business and liability on a layer of unreliable products (software/hardware) that have no liability. Who cares, there is no incentives for delivering product that work as advertised.

IT/computer related industries revolution is based on the fact the nations have given a wild card to this industry and removed totally for them any liability, responsibility.  This industry is now used as a trojan horse to break any rights protecting consumers, stakeholders, citizens and workers. Uber, Amazon, Goldman Sachs, google, facebook all use the special treatment given by the AS IS clause in any software license to ignore any laws to which businesses are normally constrained like paying taxes.

As a rational person, I don't think this can end well. Because this is a clear incentive that results in destroying actual industry that efficiently handle resources.  The destroyed industry is the one that actually provides the goods and services with economical rationality.  When they will be gone, IT gurus will just cash out their money, take their benefits and retire on a deserted island not being accountable for the damage they did. Why? Because they have a boulevard of incentive to do so.

Can we stop this craziness?

Yes, we remove the incentives: the non financial and legal liability. IT are not above the laws, neither of the common, of economics, or of physics.

And what can YOU do?

Hire fucking boring coders instead of your crazy bigots that are gonna make your company bankrupt.

La guerre : c'est nul

L'Europe, est en tant qu'entité le 2é vendeur d'arme au monde.

L'Europe est en train de se recevoir une part de la vague énorme des réfugiés qu'engendre les conflits engagés avec des armes qu'ils ont vendu.

Mais rationnellement, la guerre c'est nul.

Le raisonnement violent qui va suivre est un raisonnement par l'absurde dont l'idée est de se faire l'avocat d'un diable malsain, et de démontrer que même le diable refuserait de faire la guerre.

Donc, la France vend des armes. Si moi j'y trouve mon compte, j'ai envie de dire on s'en fout des guerres d'ailleurs.

Mais un citoyen égoïste va-t'il y trouver son compte?

Rationnellement, il y a 2 types de dégâts liés aux ventes d'armes. Comme un bon lance roquette certes, la roquette va faire des dégâts sur le lieu visé, mais il y a aussi un retour de flamme direct.

Quel est le retour de flamme de toutes les transactions de ventes d'armes?

Corruption, paradis fiscaux et parfois terrorisme (service contentieux).

Que ce soit Eurodif (70), Luchaire (90), la Lybie (2007), Karachi (?), les frégates de Taïwan .... toutes les grosses ventes d'armes françaises ont été suivis de rétro commission vers des proches de nos pouvoirs. Et je donne pas cher de l'absence de coup tordus dans la vente des sous marins à l'Australie.

L'argent de la guerre corrompt autant les hommes politiques au loin que locaux. Argent qui comme nous le comprenons aujourd'hui est investi dans les campagnes électorales, car le financement public des partis politiques sans transparences est une manne pour les gens peu scrupuleux.

Or le coup d'une campagne est de l'ordre de 13 millions d'euros.

Quels sont les contreparties que semblent avoir engendré les corruptions locales.

Bon, Eurodif on a filé le nucléaire à l'Iran. Luchaire c'était pour payer l'Iran pour nos otages, à la Lybie de Kadhafi on leur a filé des équipements top secrets pour espionner leurs citoyens, Karachi ben on a eu des problèmes.

Les plus gros problèmes des ventes d'armes sont simplement le service contentieux.

Quand on fait un contrat avec le progressiste Shah d'Iran puis qu'on le remplace par un incontrôlable ayathola, on a plus vraiment envie de livrer le nucléaire qui ouvre la porte a du nucléaire militarisé.

Voilà comment la France s'est retrouvée la cible de l'Iran pendant 15 ans: à cause d'un contentieux sur un contrat d'armement.

Karachi, est aussi évidemment lié à un contentieux client sur le versement d'une rétro commission.

Tous les contentieux ne se terminent pas mal pour la masse française. Regardez Khadafi, quand on dit que le client est roi, pour un français ça implique qu'il peut terminer sur une Guillotine. Il a du penser qu'avoir en otage de l'info était une bonne idée et que tenter de faire plier le gouvernement avec était une bonne idée. Et bam! Opération homo (homicide) commandée depuis l'Élysée dans ses dents. Un petit reste de Mitterand la possibilité de pouvoir faire executer n'importe qui sans contrôle judiciaire par un président et sans traces. Son efficacité redoutable pourrait avoir été utile pendant l'affaire des frégates de Taïwan.

Donc, brefs, au premier ordre, l'impact dans nos frontières d'une vente d'arme est chère.

Au deuxième ordre, il faut noter bien évidemment que l'argent de la corruption doit passer par des canaux de confidentialité. Les ventes d'arme qui entraînent de la corruption, entraînent aussi la tolérance voire la bienveillance des gouvernements à l'égard des paradis fiscaux.

Au troisième ordre, il faut voir que l'Europe est bien en retard par rapport au bloc commonwealth sur l'espionage numérique. Et que même si les USAs corrompent tout autant, ils savent quand nous on le fait, et comme en affaire c'est comme à la guerre, ils hésitent pas à faire savoir. Si on se fait choper à corrompre alors que les pays du G20 se sont engagés à ne plus le faire, alors le marché est annulé.

Donc, il y a aussi les pratiques de la concurrence (mauvaise perdeuse) qui impactent notre société.

On peut dire que savoir que ses hommes politiques sont corrompus fait plus de dommage à la légitimité des institutions que l'ignorance.

Serions nous mieux dans un monde sans fuites ou sans mauvaises pratiques? En fait je trouve les fuites salutaires, même si elles sont dues à une puissance étrangère.

Ensuite posons nous la question de l'intérêt stratégique lui même d'entretenir une industrie de l'armement, en permanence.

Mon premier argument est l'Angleterre de 1942.
Ce qui a fait que l'Angleterre a pu produire en masse mitrailleuse, chasseurs bombardiers et autre n'était pas la présence d'une industrie militaire forte mais d'une industrie forte tout court.

Les UK ont converti en usine d'armement des usines qui n'étaient pas faites pour, grâce à une approche évoluée en logistique et ingénieurie.

Les ingénieurs sélectionnaient des usines avec le matériel nécessaire pour produire une arme ou une partie. Ils envoyaient les plans. Les usines avaient du personnel suffisamment éduqués pour pouvoir exécuter les plans et adapter leurs usines. C'est comme ça que les mitrailleuses étaient produites dans une usine de jouet. Des parts de bombardiers dans des usines de trains ...

Et ils évitaient la vulnérabilité Allemande aux attaques sur les régions industrielles qui concentraient la production d'armes, car les UK avaient un réseau naturellement bien réparti et une logistique déjà rodée pour ce genre de cas.

Mon deuxième est une fable paysanne. Celle du paysan qui veut marier sa fille à un mec pas trop inutile. Et, il demande aux deux prétendants de ramener une cheville adaptée à sa poutre au grenier. Le lendemain, le fils du charpentier ramène une superbe cheville en ébène. Le deuxième sa caisse à outil.

Le paysan demande, mais ell'est où ta cheville? Et le fils du métayer de répondre: ben je peux pas faire une bonne cheville si je vois pas pourquoi elle est faite. Avoir des nouveaux produits que l'on maintient sans évaluation du problème à contrer, c'est con. On lutte contre quoi exactement?

C'est un problème stratégique la France est un pays historiquement et constamment connu pour ses mauvais paris en investissement en évolution militaire.

D'Azincourt à Dien Bhien Phu le génie militaire en utilisation d'innovation a brillé par son aveuglement aristocratique a mépriser les coûts et les bénéfices.

Forteresses Vauban: peut être justifiées par l'intérêt touristique. Militairement une pure connerie qui a participé à provoquer la révolution de 1789  
Leurs constructions qui ont nécessité une somme monstrueuse de ressource, et ont été livrées plusieurs génération plus tard n'ont servi à rien, sauf à endetter la Nation.

Oui, entre leur mise en chantier et leur livraison ces pures merveilles issue des cogitations de nos mathématiciens célèbres comme Moivre (ou Monge?), étaient obsolètes dûes aux évolutions des technologies.

Un peu comme la ligne Maginot quoi.

Azincourt, des chasseurs d'écureuil qui dégomment du chevalier en conserve car la noblesse française considérait que le métal était une manière noble, et le bois un truc de gueux qui ne risquait de provoquer une innovation pouvant les compromettre. Sauf que l'arc composé est arrivé, et paf dans tes dents.

Une stratégie de conflit est une stratégie asymétrie notamment en terme de coût. Un IED c'est 130$. Un fantassin d'une armée de métier c'est dans les XXK$. Depuis les années 70 et l'apparition des insurrection notamment en milieu urbain denses avec une incapacité de discerner les alliés des ennemis, les armées sont désavantagées. 40 ans que les militaires l'on compris.

Nos militaires sont dans la situation de boîtes de conserves de la chevalerie qui refusent d'accepter qu'ils sont en train de se faire percer par des flèches parce que c'est une arme en bois.
De fait le terrorisme n'existe pas, il est juste une innovation dans l'art de la guerre et d'emploi d'une technique de conflit non réglementée basées sur une asymétrie extrême de moyens.

Si on accepte que ce que nous appelons terrorisme n'est qu'une forme évoluée de mode de conflit arrêtons de persévérer alors de leur donner l'avantage.

Plus nos boîtes de conserves coûtent cher, plus elles sont vulnérables.
Est-ce que les terroristes attaquent avec des avions, des tanks, des bateaux?

Non. Ils attaquent avec de la propagande en exploitant la misère et l'ignorance sur le territoire. Un peu comme les moines d'ages of empire en mode nuke de civilization. Et ça coûte bézef. Si tu jouais à civilization, et que c'était une des armes les moins chères, tu la spammerais.

Le terrorisme est amené à rester. Plus nous appauvrissons un pays en investissant dans des armes contrant la mauvaise menace plus nous faisons gagner les ennemis.

Plus nous nous appauvrissons, moins nous investissons dans la satisfaction et l'éducation des citoyens, plus nous donnons de surface à cette nouvelle forme de guerre moderne.

Bref, la guerre c'est nul, parce que plus on fait de l'argent avec, plus on se rend vulnérable.

Il est à noter, que les armées ne sont pas équipées comme elles le souhaiteraient pour maximiser l'efficience de leurs missions. Non, l'armée se voit imposer du matériel national au seul profit de faire la vitrine commercial de l'industriel.

Matériel qui engendre un coût d'achat, mais parfois aussi un coût de fonctionnement exhorbitant en plus d'être inadapté. C'est donc une perte cumulative sur des budgets militaire qui encore une fois affaiblissent systématiquement les armées.

Bref, en tant qu'individu rationnel égoïste je ne vois aucune rationalité à soutenir les industries de l'armement.

Et moralement, je pense que les pays qui appuient leurs industries militaires devraient être responsables à hauteur de leur chiffre d'affaire dans la région en conflit pour le traitement des réfugiés et des conséquences des guerres.

Un peu le principe du pollueur payeur. 

Pour conclure Civis pacem, para bellum implique que nous devons réagir face à un nouveau mode de guerre basé sur la déstabilisation sociale projetée. L'arme pour contrer la menace est claire: renforcer la stabilité sociale probablement en arrêtant de creuser les inégalités.

Aujourd'hui économiquement nos gouvernements favorisent les cigales, qui comme les industries de l'armement basent leur modèle économique sur la libre circulation des capitaux d'entreprise et la capacité à gagner un marché en mode attilah le hun. Tu peux détruire la société où tu atteris et tu peux empirer la situation sur le long terme, mais tu t'en fous puisque tu paies jamais les pots cassés.

De l'autre, les fourmis sont bien plus privées de libertés de mouvement, bien plus taxés, taxes reversées dans ... notamment les mécanismes de stabilisation de marchés. Qui sont les cibles des cigales. On est mécaniquement dans un mécanisme économique qui favorise la prédation comme modèle viable. Pouvoir faire des profits à aider à détruire efficacement les économies des autres pays, ça se pose là comme incitation à la vertu.

Bref, moi petite fourmi, je m'en fous, car je passe déjà ma vie à filer entre des marteaux et des enclumes, et ça fait longtemps que je stresse plus pour des conneries pareilles. On m'appelle One Punch Ant!

Une société stable et égalitaire est la seule et unique arme permettant de faire face à une nouvelle forme de conflit efficace exploitant notre instabilité sociale grandissante. Espérons que nos gouvernements comprennent que la lutte contre les paradis fiscaux et l'inéquité fiscale est une priorité stratégique, et qu'elle implique le sacrifice d'une partie de notre industrie qui en dépend dont une partie de celle de l'armement. C'est le prix pour gagner la guerre à venir.

Mon dernier padawan m'a peiné

Voilà moi j'ai des padawans, mais un pote tailleur de pierre il a des lapins.

Lui et moi on est con.

On a à peu près la même technique.

On prendJe me suis aperçu qu'une personne que j'aime bien des lapins/padawans. On les accepte comme ils sont, et ont les fait taffer direct.

On leur dit: «t'inquiètes j'ai du métier, d'abord t'essaies, et ensuite tu viens me voir».

Au début, le lapin idiot vient nous voir, et là on l'humilie sur un petit bout de notre connaissance en disant qu'un truc qu'on a pris 6 mois à apprendre est facile quand on connaît la bonne méthode.

Et le gars ... ou la fille quand on le tance, on le fait sévère en montrant le bon
geste, comme si c'était facile à trouver par soi même. Ouais je suis un pourri.

Humilié, le padawan préfère chercher plus par lui même la solution avant de venir voir. Mais, je lui dis pas qu'il est une merde. Je lui dis, tsss, tu peux le faire, t'as juste oublié d'essayer suffisamment fort.

Alors, le padawan vu comment je cause, piqué à l'aiguillon de la fierté, il veut me claquer le beignet, surtout que j'ai montré à quelques occasions que j'étais faillibe (probablement une question sur l'univer star wars que je déteste), alors il se dit, je vais le faire.

Le padawan travaille poussé par le coté obscur de la force, rêvant de passer du statut d'humilié à personne respectée. Entre nous, je le fais pas exprès, j'ai 0 empathie.

Et le crétin va travailler.

Et il va s'apercevoir qu'en fait je suis pas si bon quand il travaille parce qu'il croit eu lui.

Et ce crétin va me foutre le nez dans le caca devant tout le monde.

Et, tout le monde va rire, car c'est ce que font tout mes padawans qui deviennent maîtres.

C'est pour ça que j'ai des bons padawans naïfs au début qui découvrent qu'un maître est une fraude qui leur fait croire qu'ils sont bons et que c'est ce qui les  rend meilleur, et que le secret n'est pas le maître, mais l'apprenti.

Mon dernier padawan m'a peiné, il m'a traité de truc genre Lord dark sith, et il m'a traité de fraude parce que j'étais clairement pas à jour en culture star wars ... après un mois....Normalement, ça prend plus de temps...

Cryptographie, je te hais

Quelque part involontairement, je te le rend bien, je suis ton pire ennemi.

Je suis le pire problème de la sécu, pas en version Arsène Lupin super intelligent, mais plutôt en étant un croisement de Gaston Lagaffe et Monsieur Jourdin.

Si vous faîtes pas de crypto je vais vous expliquer crûment le problème.

Pour vous la crypto, c'est de la magie noire: c'est comme des boîtes toutes identiques en apparences dont tout le monde dit que c'est vachement important, et qui magiquement rendent secrets vos conversations, projets d'attentats virement bancaire pour votre paie ou votre compte en Suisse.

Vous savez pas si le truc marche parce que c'est vrai ou parce qu'il n'y a pas d'ennemis, vous constatez juste que ça marche pour vos et vos amis, donc ça vous suffit.

Moi, je suis comme vous.


Je dois parfois lever le capeau de ses boîtes pour les triffouiller.

Les ingénieurs qui les ont fait (appelons des cryptographises) sont hyper balaises.

Ils ont pensé à tout, ils ont mis des autocollants attention partout!

Genre! Attention si vous prenez tel protocole vous êtes morts à moins que voir sous asterisque 2

Attention, en fait si le protocole suscité est utilisé dans telle condition vous n'êtes pas vulnérable ... à moins que.

Et genre, les cryptographistes ils vont loin dans le détail.

On croirait quand tu veux protéger tes données qu'il faut faire un pacte avec le diable.

Chaque point et détaillé est vrai. Juste des fois, tu dois choisir, entre ta situation actuelle qui est pas la meilleure, et moins pire.

Et tu sais que tu dois faire des sacrifices.

Genre je vais vous la jouer avec un autre métier: aubergiste.

Une nouvelle loi interdit les assurances, et l'aubergiste devient responsable sur ses fonds propres de tous vols.

Il sait que la prochaine maraude peut faire fermer sa baraque.

Il a plus un sou car comme un con il a fait investir dans de la serrurerie et la mise d'alarme dans chaque chambre.

Manque de pot, tous les biens précieux sont dans une chambre non surveillée.
Manque de pot, il a installé par distraction une serrure unique que toutes les clés ouvrent.

Là tu te dis, ben je vais dire à mes hôtes que ce serait mieux qu'ils gardent leur bien dans leurs chambres.

Et là, t'as ton ami cryptographe qui te dit, mais tu fais de la merde, on ne partage pas un secret, ça ne peut pas améliorer la sécurité, le problème c'est la culture qui défailli dans toute ta boîte qui a abouti à ce que personne ne voit le problème.
Pourquoi? Parce que des gens comme toi prennent des décisions qu'ils savent mauvaises pour améliorer leur situation, et tu donnes un mauvais exemple.

Je sais que le problème c'est moi. C'est mon coté Lagaffe

Et je sais qu'il a raison.

Les serrures, je les ai commandé alors que je ravalais la façade sans vraiment faire attention.

Imagine, que t'es parachuté plombier dans une centrale nucléaire, qui y connaît rien au nucléaire, et qu'on te dit, fais gaffe si tu répares le mauvais tuyau tu vas tous nous faire exploser, mais je te dis pas lequel faut que tu devines. Et quand tu vois une fuite qui semble suspecte, genre nucléaire, et ton nez de mécanicien te dit si elle est pas réparée sous 3 minutes c'est irréversible car pouvant toucher d'autres tuyaux. Qu'est ce que tu fais?

T'es là t'es comme l'aubergiste t'as deux dangers également vrais:
- le vol intérieur à ton auberge,
- le vol extérieur à ton auberge.

La situation actuelle est que si les gens volent de l'intérieur t'es mal, et tu sais que c'est le plus courant.

De l'autre, si tu informes tes clients de rentrer leur bagages tu les prémunis certainement d'un autre problème, mais si ils savaient que leur clés sont des passe partout, les vols arriveraient sûrement.

Donc temporairement tu dois faire de la sécurité par «ofuscation» bref à coup d'écran de fumée, ce qui est mensonger, et est une mauvaise pratique criminelle.

Genre en info tu fais ça, tout le monde atterrit en garde à vue. De l'autre si tout était parfait (avec le mouchard indiquant qui rentre dans quelle chambre à quelle heure) seuls les clients qui visiteraient des chambres qu'ils n'ont pas loué le serait, et c'est toi le crétin qui a mis les mauvaises serrures.

Idéalement tu veux ni l'un ni l'autre. Tu sais que le monde est poche.

Et tu sais que tu ne sais rien.

Tu dois évaluer des choses sans savoir a priori.

Je vais te la refaire. T'imagine que t'es dans une manufacture. Que tes potes qui bossent dedans te disent attention, chaque machine outil mal utilisée peux te tuer ainsi que tes proches.

Tout leurs outils sont également coupants, dangereux et bruyant. En tout cas, c'est ce dont la crypto parle le plus.

Tu fais une erreur à la con dans un coin, et tout s'écroule.

Comme t'es mécanicien, tu fais attention tu penses que tu comprends leur langage.

Et tu lis qu'un mec n'as pas fait deux tours sur lui même, jeté du sel par dessus son épaule avant de tourner une manette et tout à explosé. Sa maison à 10km de là incluse.

Et toi malheureux, parce que tu es mécanicien et qu'ils se disent mécanicien tu parlais la même langue. Toi tu parles celle de la mécanique et de certaines proba.
Eux ils te parlent de choses prouvées et pratiquement qui marche consistant à se mettre des plumes dans les fesses et hurler 3 x à la lune.

Tu regardes, tu doutes, tu regardes à nouveau.

Là tu vois que mécaniquement, ça revient tourner un robinet et souffler sur une soupape, et ça fait du sens.

Moi je leur répond que ça fait du sens.

Et c'est là où je suis dangereux, alors que je pense connaître et je connais pas, mais je semble pour eux leur parler dans la même langue.

Et voilà où je dit involontairement des conneries et semble crédibe.

Mais je sais que j'ai deux risques. Je sais que je me prémunis de l'un si j'assène une connerie qui fait illusion alors que c'est ridicule. Je sais que j'ai amélioré la situation, de l'autre je dois mentir à des gens sans pouvoir le leur révéler. Je me mets en position de faute.

C'est mon coté Arsène Lupin.

Et nous savons tous que mentir est un écheveau. Quand on commence à mentir on ne s'arrête plus. On connaît tous l'histoire de ce crétin qui a dit je suis meilleur que les autres et j'en ai rien à foutre de la littérature.

Alors moi, je m'en tire.

Je mens.

En fait pas vraiment. Je fais le plan C: je convoque tout le monde pour leur dire que j'ai merdé.

Je crois qu'il y a un juste milieu qui est dur à trouver entre l'orgueil et l'humilité.

Sans orgueil on ne peut avancer, quitte à faire des conneries. La paralysie est pire qu'une mauvaise action quand le danger est certain.

Sans humilité on ne peut douter, et sans doute on peut se précipiter vers un danger pire en fonçant obstinément dans une direction.

La question de l'équilibre, donc de la mesure implique rigueur et méthode.

Tenter d'être positif et compter ce que l'on fait correctement. Tenter de voir où l'on s'est trompé. Et parfois, même après de nombreuses années où l'on pensent avoir été positif, on subit un revers, qui nous fait perdre tout notre orgueil.

Et la question est dois je agir ou pas sachant que je ne sais pas où est la bonne direction?

Moi, j'agis... et je prends le risque de me (re)tromper peut être encore et encore si l'alternative proposée est l'inaction.

La peur du ridicule est d'éviter l'inaction à préférer risquer de devoir avouer que l'on se trompe est pire que ne pas agir, quitte à apprendre et bouffer sa honte.

Donc, ouais, en crypto, je dis et je pense des trucs parfois cons, et ça me colle les michettes, le problème c'est que j'ai aucun outil de sécurité informatique facilement utilisable parce que ça existe pas.

De l'autre coté, toutes les boîtes n'ont pas les pépèttes pour se payer des spécialistes de la sécu de niveau.

J'en fais pas partie, je suis juste un fan boy qui trace et singe des gens qu'il suit dans l'ombre comme un stalker. Comme tant d'autre dans mon métier.

Donc, quand tout le monde est inactif face à un truc pas propre j'agis.

Et si j'agis pas c'est pire.

Mais parfois mon action est potentiellement dommageable... car je ne sais pas tout.

Voilà pourquoi je hais la cryptographie.

Je suis un taigneux, j'ai un complexe d'infériorité et je tente de leur taper dessus par envie de rivalité.

Je m'en fous d'être KO, je suis un taigneux je remonte sur le ring comme un deumeu.

C'est vrai que je suis nul.

Sauf, que des gens biens qui comptent sur moi pour comprendre l'informatique, crypto incluse. Et même si suprenamment le département de la compta peut être plus inspirée que moi sur le sujet. De manière encore plus surprenante la plupart dont ceux dans la hiérarchie des cadres qui comptent et devraient comprendre en connaissent moins que moi.

Je veux dire je suis pas le pire. Je flotte un poil significatif au dessus de la moyenne. Pas un gros poil, juste un poil de couille, petit mais certifié significatif.

Ami de la sécurité informatique, je vous hais.

Je sais que ce que vous faîtes est bien et m'émmerveille.

Mais là où vous me faite chier, c'est que j'ai du mal avec tout vos trucs. Vos applications contre-intuitive, votre jargon, votre mépris des crétins comme moi et cette idée que l'action qui entraîne l'impression de marcher dans un champs de mine est à préférer à une inaction mortelle.

Et comme pour un champs de mine, je n'ai aucune intuition des risques que je prends à chaque pas que je fais, car votre truc est imbitable.

Votre meilleur conseil c'est si tu sais pas bouges pas, ouhalala, tout est dangereux. Il te faut attendre 6 heures et payer 5l de ton sang pour du secours.

Moi, je vois un déluge de bombes lié au retard de production monter vers moi.

Je vois qu'il reste 5 pas à faire pour peut être survivre dans les 3 minutes et que nous allons mourir si je fais rien, et que même si c'est pas ma faute qu'on est là, je dois prendre le poids d'une décision qui me dépasse sur mes épaules.

Et vous m'avez prévenu que je devrais pas le faire....

Et je m'élance en vous faisant un gros doigt en disant tant pis si ça pète, je préfère mourir en essayant que vivre paralysé dans la peur.

Macron la pédanterie et l'incompétence numérique

 Correction importantes


  1. Le site permet bien d'envoyer des courriers non sollicités à des personnes;
  2. Les utilisateurs de Macron ne sont pas en danger de quoi que ce soit concernant les mots de passe (je me suis trompé grave);
  3. Il y a peut être un truc sur les tokens, mais ce code me ressort vraiment par les trous de nez.
  4. bcrypt génère les sels par défaut, cet algorithme n'a pour l'instant pas été pris à défaut contrairement à beaucoup d'autres.  
  5. Le code du site reste quand même éparpillé partout comme la cervelle de Kurt Kobain

En termes de technologies de l'information, soit on sait comme le premier ministre de Singapoure coder son solveur de soduku en C++
Voir le code ici

Soit on fait comme le gouvernement Taẅanais, et on embauche l'un(e) des meilleur(e)s hacker du monde comme ministre dédiée au technologie: Audrey Tang.

Macron est probablement l'un des candidats les plus dans la hype: son site web est disponible à mes yeux sur github! On se croirait dans la brise pré crash de la bulle internet tellement ça buzzz!

Donc, plutôt que d'écouter ses conneries, je vous propose une visite guidée des sources du sites webs et ce que cela révèle.

Premières impressions

Avant de rentrer dans le détail commençons par regarder l'ensemble:

Le code est ici : https://github.com/EnMarche/en-marche.fr

C'est buzz compatible et semble de bonne facture.

Annoncé logiciel libre, un readme, des documentation d'installation, une convention de style à la JAVA d'entreprise sérieuse, un couplet à la De Gaulle, l'intégration continue buzz compatible avec la vignette (comme sur mes projets), une doc développeur, du docker (de la techno cloud hype totalement instable).

Si j'étais dans le cargo cult je dirais : l'idée que l'apparence renseigne sur le fond, je serais sûrement un fan du site. En plus le core dev semble savoir de quoi il parle (là je ne m'attaque pas à la personne, mais à la stature sociale): il est tellement brillant qu'il a commencé par être architecte logiciel avant de savoir poser une brique logiciel, il est un dévelopeur certifié sensiolabs (créateur et dévelopeur du cadriciel utilisé par l'équipe par Macron pour leur site) et il est architecte internet de Macron, spécialiste en Intelligence Artificielle. Il participe et fait vivre du code libre. Si on juge sur le plumage tout à l'air bon.

Le code est propre comme du code d'entreprise, lisse, apparemment bien rangé, structuré fait pour le déploiement. Tout est fait pour sembler pro, propre, clean, parfait, même la petite touche logiciel libre et contributions libres.

Macron dont on rappellera qu'il a fait une violente charge contre le chiffrement. Une des bases garantissant un petit peu de sécurité sur internet tant que personne n'écoute au milieu.

Par où commencer un audit de code PHP?

Après 5 ans avec les web agencies et autres marchand de viande, j'ai appris à ne plus croire les apparences. Et j'ai développé une méthode simple d'audit: elle commence par rechercher comment les mots de passe sont stockés et validés.

Comprenez que l'authentification, est un point crucial de la sécurité informatique, tout autant que le chiffrement. La règle de base est: si le site est compromis il faut rendre difficile le fait de pouvoir trouver les mots de passes rentrés par les utilisateurs.

Il y a des règles simples:
  • utiliser un algorithme de cryptage (hashage) considéré sans vulnérabilités connues ou à venir (au moins au moment de la création du site) ;
  • rajouter un aléa dans le cryptage permettant qu'une compromission de la base embête qu'une bête comparaison entre les résultats du cryptage et ceux issus d'un dictionnaire donnent le résultat ;
  • utiliser un algo connu sans vulnérabilité susceptible d'apparaître sur les collisions.

Pour ceux qui s'y connaisse et qui veulent passer la suite un peu chiante, ils utilisent bcrypt et pour certains cas SHA1* et ne salent pas les mots de passe avec un aléa. Pourquoi? Parce que sinon ils ne peuvent pas faire une couverture de 100% sur leurs tests! Cargo cult 110%! Crétinerie ++ comme dans C++!
Si si, ils ont affaibli la sécurité pour avoir une belle médaille en chocolat délivrée par des laveurs de cerveau d'une secte appelé experts en méthodologie.

* le coté distraction par la redirection ne me permet pas d'être certain à 100% que les mots sont stockés encodés en base, mais je suis optimiste par nature.

Le labyrinthe des indirections

Tout code d'entreprise qui se veut sérieux tend à vouloir être obscur afin de paraître profond. La logique de vérification des mots de passes est en générale fait dans le contrôleur en appelant la classe de sécurité ou un mixin du modèle ce qui vous évite de réinventer la roue carrée. En général on s'attend à un niveau d'indirection, voir 2 si c'est mis dans le modèle :)

Bon prenons un outil de dev sérieux :

find ./ -type f -exec grep -Hin authenticate {} \;
La fonction authenticateUser apparaît dans le :
  • le formulaire (form) de connection (login)
  • un contrôleur 
  • le modèle
  • euh ... ailleurs ?!
Bon, un petit coup de fun, et amusons nous un peu.

Logging (journalisation des évènements) et Login (connection) sont prononcés de la même manière par les français. Ça ne veut pas dire que ce sont les mêmes mots, hein?

Et bien croyez le ou non, une fonction de Login est rangée dans l'espace de nommage Logging. LoL! 1 point pour l'humour.

Je vais passer la lente agonie de l'audit qui consiste à suivre une fonction sur 5 fichiers en se demandant, mais où le travail est-il vraiment fait? Pourquoi pour la même fonction je vois du copier coller?

Plus on met d'indirection pour faire une chose simple plus ça fait du code pédant, mais aussi chiant à maintenir et corriger. Par contre, il est vrai qu'en Entreprise on passe pour un dieu qui sait «abstraire et structurer». Quand le faire savoir l'emporte sur le savoir faire....

Bon, X fichiers 2 héritages une factory (qui n'empêche pas 3 fois la même fonction d'être recodée) et une apoplexie plus tard, que voyons nous comme manière d'encoder les mots de passe?

C'est notamment ici : https://github.com/EnMarche/en-marche.fr/blob/master/src/AppBundle/Membership/AdherentFactory.php#L98

private function encodePassword(string $password): string
        $encoder = $this->encoders->getEncoder(Adherent::class);

        return $encoder->encodePassword($password, null);
Le deuxième argument de encodePassword est le sel (salt) à donner à la function de hashage cryptographique.

Et malgré l'utilisation d'une Factory (code hyper réutilisable) la fonction encodePassword pour la validation de mots de passe est redéfinie / utilisée 17 fois. À ce niveau, ça valait vraiment pas la peine de faire une factory, et à chaque fois, le sel est vide.

Quel est l'algo de hash. Là encore X redirections plus tard c'est ici: https://github.com/EnMarche/en-marche.fr/blob/master/app/config/security.yml

brcrypt avec fallback en SHA1 si il y a des mots de passes anciens.

SHA1 est cependant toujours utilisé pour .... les jetons (tokens) de sécurité ... et j'ai pas eu le courage de suivre les cas où le legacy était vraiment appelé. Je suis lâche j'ai même pas honte.

Note pour les velus : je ne m'étends pas sur l'hérésie d'utiliser SHA1 en 2017 et la potentialité d'une prochaine attaque par collision qui rendrait de fait la fonction de sécurité cryptographique totalement illusoire.

Mais pourquoi 0 sel (salt)? Sont ils totalement idiots? La réponse est dans les tests unitaires : si vous mettez un aléas et que vous ne savez pas initialiser (seed) le PRNG de votre plateforme, alors, vous ne pouvez tester les mots de passes générés à la création de l'utilisateur. Et donc pour ne pas casser les tests unitaires .... ils ont retiré l'aléa ... \o/ Bravo! Chapeau bas!

En fait quand je lis les tests unitaires, j'ai parfois peur qu'ils testent des mots de passe en clair et que j'ai été très indulgent.
Mais le code est tellement lourd que j'avais pas envie de lire plus loin.

J'ai vu d'autres potentiels idioties (des tokens potentiellement utilisables en techno ajax base64encodé au lieu de URLbase64encodés), des tokens qui ont l'air déterministes, et des tas d'autres erreurs qui me ferait flippé si j'étais inscrit comme utilisateur du site web. Si une puissance étrangère avait la main sur leur base de données, je donne pas cher de vos chers mots de passe.

Si vous avez le courage de publier une analyse sur la sécurité de leurs tokens, je promet de vous payer une chopine! Moi, j'ai trop vu d'horreur pour un mois.

Mais si tu es pas content yakafokon soumettre un rapport de bug

Je suis pas content initialement, car je voulais déterminer avec certitude si le site enmarche était de fait une plateforme de spam. Et elle l'est. L'équipe internet de Macron qui connaît tout sur tout donne des outils à ses militants et à des officines privées pour envoyer le programme de Macron aux citoyens sans leur accord.  Cela tombe sous le coup de la loi Européenne, mais ils semblent se torcher avec la loi quand ça va pas dans leur sens.

Ma philosophie c'est n'ayant le droit de casser les genoux des spammeurs, au mieux de leur coller la honte à minima de ne pas les aider.

Le spam est un sujet autrement plus grave qu'avoir un site en carton, mais personne n'entend.

Mais c'est du logiciel libre donc c'est bon!

Non, c'est une licence spéciale appelée Affero GPL qui n'est pas unanimement reconnue comme telle, et même si c'était libre, ça donne pas au code des morceaux de vertues qui vont faire que je vais contribuer par lavage de cerveau.

Mais pourquoi t'es méchant!

Le spam c'est mal, mm'okay?

J'aime pas les gens qui me font chier et je donne pas un chocolat à celui qui me marche sur les arpions, je lui colle un bourre pif.

Et en République, on a le droit d'être sale, méchant et grognon

Mais c'est qu'un site web en quoi est-ce important?

Bonne question! Enfin.

C'est le site web dont le plus gros contributeur est l'auto promu architecte internet de Macron. Macron qui a pris une position radicale anti moyen de sécurisation des communications.

Pour moi, quand on fait la morale on s'expose à être regardé à la loupe au niveau de ses actions et de son code.

L'équipe web qui prétend conseiller Macron fait clairement un code qui est dans la norme de ce que fait l'industrie, et ce qui est d'un point de vue technique faible. Je ne souhaite pas avoir un président qui a l'oreille de mauvais experts.

Tu fais mieux?

Mon code est du code de punk, il est sale moche, méchant, petit comme moi  mais il fait la job sans s'étaler dans 28 classes et 20 répertoire et perdre les utilisateurs.