Pour un compilateur LTS: Le progrès n'est pas toujours le changement

Les mages parlent aux mages, molducs prière de vous abstenir de lire ce grimoire de magie noire.

J'étais un universitaire. J'ai  appris à coder pour des endroits où les étudiants partent et viennent, et où rien n'est changé tant que ça n'a pas prouvé apporter un bénéfice.

Les malloc m'étaient interdits. J'avais le droit à de parcimonieuses variables globales mais j'avais le droit à l'artillerie lourde des fork/pipe/dup/open. Et je forkais mon process C dans un interpréteur Tk/Tcl pour permettre de visualiser des résultats de simulations.

Par curiosité j'ai recompilé ce code des années 1996: il marche toujours...

Quand je suis retourné à l'ENS physique en 2009 pour une visite de courtoisie j'ai demandé à Gérard W. mon mentor de l'époque: pourquoi vous êtes pas passé à python/LAMP/ruby/Perl?

Il m'a répondu: ça sert à rien. Les performances surtout en analyse numérique sont mauvaises.

Et il a détaillé que d'un coté les modèles à GC introduisait des pertes de performances notamment dû à la perte de localité des variables qui n'avait pas de bon sens, mais que surtout, on ne retrouvait plus la qualité des bibliothèques d'analyses numériques des années 80 tant en vitesse qu'en correction.

Donc, le FORTRAN/le C était toujours utilisés parce qu'on avait pas de code "correct" à la place, et que les "incorrections" coûtaient chères à corriger. (QA style quoi).

Pendant ce temps, au royaume du big DATA on utilise du javascript pour faire des filtres ARMA pourris implémentés naïvement qui le serait bien plus efficiemment en passant par des FFTs.

M'enfin, je m'égare.

Que ce soit le code fortran appelé par python dans matplotlib, ou que ce soit l'équivalent des numerical recipies en C il y a toujours du code qui doit être garanti de compiler à l'identique car il est critique.

Je renverrais les béotiens à google pour lire un cours d'introduction à l'informatique pour comprendre ce qui ne va pas en C:
quand + - * / sont utilisés ils n'ont pas du tout les mêmes proriétés que les vrais opérateurs.

ttc = ( 1.0 + tva * 100 ) * prix
ne donne pas toujours le même résultat que
ttc = prix + ( prix*tva/100)

Yes, on fait du commerce électronique avec ça. On a beau répété qu'il faut prendre des virgules fixes pour le commerce, rien n'y fait. Les développeurs continuent majoritairement à utiliser des floats.

Donc quand on me demande pourquoi on a besoin de bibliothèque numérique avec contrôle d'erreur ou encore de FORTRAN, je répond parce qu'il y a du code qui a été très bien écrit qui n'est pas remplaçable et qui permet de dire qu'un nombre est pas trop faux.

Excusez moi, mais la correction dans les ordinateurs pour afficher une page web et celle pour calculer un truc donc dépend ma vie (aviation, nucléaire, médicale) ne sont pas les mêmes.

Et, les algorithmes n'ont pas changés.

Par contre .... Les codes produits par les compilateurs eux changent... sur une même plateforme matérielle en fonction des versions des compilateurs.

Pourquoi ?

Non la question est comment:

- La jungle des Ox et de leurs effets et des optimisations acceptables par défaut;
- introduction de nouveaux comportements face aux indéterminations (ex valeur de variable non settées en C);
- la jungle des jeux d'optimisations matérielles et des différents modéles mémoires;
- les pragmas à la con et autres GNUeris

Tout cela fait que les codes produits sont différents, entraînant du fait des nombres de combinatoires engendrées des conflits sur les valeurs trouvées. Les #ifdefs de l'enfer. Obligeant le développeur à gérer à la mimine l'enfer des résolutions de dépendances matérielles, d'optimisation ET de types ET version de compilateurs

Et en plus, cela complexifie le déboguage. Quand un bug apparaît il faut pouvoir régénérer l'exact version du code afin de déterminer si c'est un bug de logiciel, de compilateur, ou de version de compilateur, ou d'option spécifique de compilation....

Ce qui m'épate, c'est que dans les années 2000 avec plus de plate-formes matérielles, et d'OS qu'aujourd'hui, on y arrivait plutôt pas mal à garantir tout ça.


Ce que ne réalisent pas moult développeurs, c'est que les cycles de vies des entreprises ne sont pas de 2 ans maximums...

Comprenez bien... J'ai rien contre node qui sait pas multiplier mieux que python, ruby, Perl, java.

Non.

Je dis juste qu'une centrale nucléaire doit pouvoir être maintenue pendant 70 ans, un réseau de gaz ou d'eau pendant des décades, un avion des décennies, un satellite des décennies, mes archives de travailleur/citoyens/médicale tout au long de ma vie.

Je dis qu'appeler 2 ans du support de long terme dans l'informatique actuelle, ça craint du boudin.

Je dis à mes camarades informaticiens et du logiciels libre c'est que si vous voulez vraiment un avenir à l'informatique, on a pas besoin d'un brouteur web qui souffre d'une cancer des extensions, on a besoin d'un compilateur C stable de support à vrai long terme.... genre aussi long que l'on veut que l'informatique puisse durer sans devenir une gêne.

Sérieux, vos grands parents gardaient précieusement photos et lettres dans une boîte en carton dans le grenier et c'est comme ça que se passaient les souvenirs.
Vous, quand vous pourrez plus payer votre compte sur le clown car vous aurez passé l'arme à gauche comment allez vous transmettre votre mémoire?

C'est ça une logique de support de long terme... penser au futur et non à demain.


Notre vision de la durée de vie et des garanties de correction en informatique sont aujourd'hui une insulte au reste de l'industrie et des citoyens autant que des consommateurs.

Et ça va nous péter à la gueule tôt ou tard.

Donc moi je dis peanuts à mozilla pour les dons, peanuts à la FSF, peanuts à tout le monde tant qu'on sait pas comment construire une informatique avec un support à long terme qui soit conforme aux attentes.

Si on met des livres dans des ordis et qu'on détruit les livres, alors j'aimerais avoir une garantie que la mémoire sera transmise aux générations futures, sinon ça sert à quoi de bâtir du savoir?



The cloudy future of IT

What is the common point between a computer, a VW diesel, a nuclear plant and me cooking, playing bass or coding?

My question is both what is an amateur and a professional, and why he does matter that knowledge in IT is in a way of death by kludges and complexity that makes it indistinguishable from evil practices of proprietary firms.

Most people when asked about who invented Free/Open Source Sofware (FOSS for convenience) tends to either quote the extrovert knows as Richard Stallman (FSF) or the more invisble K. Thompson and how the first UNIX sources contaminated the sane students of Berkeley where LSD was also developed at the same time (I am sure it is no coincidence). 

I strongly disagree. The true genius is Bill Gates in 1976 he crafted the expectation of IP protection. The beauty of the letter to the hobbyist may make me cry a (crocodile) tear. It is the invention of proprietary software, a realm in which the user is denied to understand how things works. But also the right for the computer industry to derogate to any legal and financial obligation in commercial contract.

It is justified by a diffused "pain of the creator stolen by parasits".

My french heart double its speed rate. This music is such an ode to the talk of the Baron de Beaumarchais justifying the need of creating a special kind of protection for the artists. Yeah, poor Baron de Beaumarchais. A noble from the ancien régime smuggling weapons to the USA under Louis XVI, than voting against the privileges, than begging the National Assembly to reinstate privileges for the poor authors.

Göbbels first rules: the bigger the bullshit, the better.

So.

I learnt VHDL, SPICE, MATLAB, Assembly 68K, graph theory, algebrae, electronics, and even how electrons behave in semi conductors . I drew and learnt how to design and program interfaces 20 years ago.  At the Silicium layer.

Nowadays, I am a coder.   And something is bugging me.

I am the kind of person that prefers to keep every evils in their bottles. One of the devil I hate is ignorance. I am a control freak. I think I am professional because that is what differentiate me from an amateur: control of the costs, and their is no control without understanding.

 Let me explain you why I don't believe in self driven cars: because nuclear plants should not be automated.

First it is epistemological: I think that as much the myth of the golem, the mechanical turk, or Galathea's myth, we all have a fascination for creating life. And so far it has always failed. I don't say it will always fail forever. I say that the expectancy to reach a goal = 2 times the period since the beginning of trying. You will check the average of my expectancy will be the exact time of completion.

I love to have tricks to be right. Logical thinking and understanding, having a consistent representation of a problem is a nice trick.

So my first almost tautological argument is I think it will take 2500 more years before human beings are able to create life so that my predictions whatever the topics are always consistent with observable facts. (yes, it is a tad of a fallacy, proof by the self biting snake)

Second and more important. If you are not scared by a market full of liquidities, bubbles and the recession, let's remind a calm talk I had in Paris with Michel Volles.

This guy had been consulted for the automation of nuclear plant, and he strongly advocated against full automation like in japan or in an Airbus.

He says; well software can have bugs. It is better if human are used to do stuff in a semi automatic way (that do not expose them of course) so that they know how to adapt.
Even crude mechanics has got troubles. But when problem comes instead of handling layers of complexity they still know how it works. And you wish that nuclear plant operators control tightly and have a great confidence in themselves more than the software.

Well, France being full of nuclear plants, and having grown up during cold war, I am a little more receptive than average on the topic.


What is the relationship with self driven cars?

At a lower scale than nuclear plant, self driven cars are life threatening. They can reach the kinetic energy of a 75mm round, and gasoil is fucking exothermic and dense in energy.

Let's talk about trust.

Do you trust stuff you don't understand? I don't. In the name of science I nearly killed myself by being clumsy and doing experimentation with either highly energetic electromagnetic beams that if the claims for electromagnetic pollution is true, I am dead or bacteria.

I trusted my books, and people dying stupidly (like Nobel) for my safety. Stupid deaths by over trusting yourself are paving the road of science.


Would car manufacturer lie to you regarding the software they put in their car.

Can you trust Nissan, VW, General Motors to not tamper with the software in their car in a way that could lie?

Oh. You cannot.

And cars are really frightening in terms of potential arm it can do. So what about insurances? Will Lloyds, Munchen Re will accept to cover this risk?

Insurance is the modern license to kill, mathematician providing enough firepower of layers to claim that death was NOT avoidable by the virtue of probable chains of causality covered by obligation of means in the contract. Thus, someone is dead, but you don't go to jail. You pay someone, that will pay the lawyers and the expected claims of victims.


Have you read a software licence?

What is the common point between FOSS and the industry?

They both decline any legal liability concerning the consequence of the use of the software.

java license either went as far as explicitly denying people to use java for medical appliance...

And this is where I think I am having a professional opinion. As long as software industry refuse to see itself bounded by the legal liability of considering that they are responsible of the correct behavior of their product there is a problem.

The more we rely on incorrect stacks that cannot be covered by any insurance or true guaranties it works then the effect of the non predictability rises.

The financial effect is clear: it is not possible to estimate a reasonable insurance cover for software industry in case a self driven cars kills someone. Companies will be liable since they did not do everything possible to guarantee death would be impossible.


Is planning 1 death out of 1 millions instead of 10 000 indiscriminates deaths per year better? Ksss, you have to be a real psychopath to know you are gonna kill 1 to save 9999... Plus, in face of the law you still premeditated death. Why this one? Who gave the software manufacturer the right to chose who are going to die and to live? In the absurd hypothesis they finally achieve self driving cars, I will call out these people has psychopathic murderers anyway.


But you know, I am simple man (yes, Lynnird skynnird shite, I am a tad soft inside, U know?).


I used to tweak anythings in the house and like engines, computers, electric boards, radios, electric pinballs, my bike, cooking ....

And  I learnt. I could understand and control. That maybe one of the reason I love my bike. I don't fear to break anything far from civilization. I can repair almost anything, and predict the worst. I have control. I trust it.

I love cooking, because I did not obsoleted. I love music, because it is all about not caring about the technic and discipline, I loved understanding that the shape and geometry of things on an electronic boards related to their functions or side effects.

There is one domain though that bugs me: it is IT industry.


You see I see a lot of analog organization that have the same constraints  as IT and don't fail:
- entertainment delivers their show on time (creativity, variety in size, competitiveness, heavy requirements/logistic, heavy specifications);
- cooking has incorporated a lot of foreign tastes and technics in the last decades, still, the knowledge are stable, and they don't make customers sign an agreement it will be okay if they die of a food intoxication;
- to survive extreme condition and a slow but steady decrease in quality since decades, people reverted to using the most simple form of bike as used 1 century ago, this is the rise of the fixie;
-  every industry so far is facing technical (financial) debt forcing them to do incorrect things, like the aeronautical industry making their plane inspected in less pushy places. Still, if unluckily an accident were to happen, the industry would feel hurt, and bad. They would feel guilt and empathy for their users.
- computer industry have been consistently over promising and under delivering: who remember the promises of IBM in 1942 to have a mechanical typesetter that would translate without a mistake what you dictate? Me. The ultimate OS where you write once and compile everywhere? .... The standard that will stand the test of time?


No seriously this one piss me off.


Imagine you are a small company that invest in the future. A middle size business.

You buy an expensive automate for doing industry standard metal shaping. Your investment may require 30 years of use. You choose the RIGHT technology: RS232, floppy disk.

Now, 30 years later, all these technology disappear in the name of so called simplification that are the opposite of any simplification.

USB, xmpp, firewire, pci... They solve some picky problem (like dynamic resource allocation of IO and IRQ), but at the cost of levels of indirections, half respected norms half specified ...

I mean, seriously, secured data on an USB drive?

Just to be a USB client, you have to have an insanely complex stack of code and wires on your board. It requires highly privileged access on the computer server side, AND you are on a broadcasted signal, thus every one on the USB ring can spy on you. And thanks to the diminishing quality of capacitors in computer, it could even tap on other signals.


Progress my ass.

Programming low level interface for RS232 bare bone is easier than USB and it involves less proxy.

The limits were not electrics or technical. It just that additionnal graved silicium costs less than a 1$ connector.

And while the psychopathic software/hardware industry pushes for always lower cycle of "progress", real industries having less liquidities on the market (thus less investment) are increasing their cycles for renewing their tools. Including their hardware and software. It is legitimate a windows 3.1 from 1992 can still be running in an airport. Fuck IT industry, wake up!

And how can software industry not collapse of being so far from the real need of the market?

Except the fact it requires to lack a little bit of "economical" lack of empathy, I may hazard that the 2007 crisis is not over and we have bubbles everywhere one of them being in the education and exploding right now.

First things, how do their survive their cash burn rates without tangible proof of their positive impacts on the activity of their customers?

Well, it is called Venture Capitalism. The market is full of cheap money, so they invest irrationally in a market for which regulations are scarce (safety, audit) and where just a minimal return investment is expected. You just want to outperform the very low interest rates of the national bonds.

In regard to the market, IT require very few investments: almost only brain. KPEX = 0. And benefits are rents. It makes projections of expected benefits very easy.


70 years ago there was a war. Brilliant people were called as officers, soldiers, nurses ... And people on battle front tends to die.

The baby boomer that resulted were caught in an aspiration of skilled workers whatever the education was. But the very small differential resulted in huge difference. My father son of a mason that had good grades in primary school was almost guarantied to be a surgeon if he kept up the good works and he did.

The climax of this era is 1968. A lot of things happened this year around the world. A pacific revolution of hopeful hippies that will become sharkiest marketers of the world.

Our parents experienced an artificial situation where education as a social ladder was working because the competition on the market side of the demand was fierce. And strong of their experience, they indebted the 3 next generations in costly heavily subsidized education system (be it private or public). For Europeans it is public debt, USA private debts. And they brainwashed kids around the world with "passe ton bac d'abord... better have your exams if you don't want to end up like this"

The problem is the education has been saturated. And the system has failed in both cases to give an incentive for a fair and square competition. When the market is saturated, the criteria for selection become arbitrary: sex, look, place of birth, age... weirdly enough never costs. Else given both equally talented coders one a black muslim girl and an the other one an ivy league student, you would pick the one you can pay objectively less. Thus, given the discrimination, if the agent on the market of human resources in IT were rational they would pick the cheapest one that is equally talented. Thus the market would always tend towards less discrimination. Which is not the case... 

Maybe also, our capitalism may not be able to reform itself for better work organization like toyota. Maybe the revolution of global mass education is hitting right now. And maybe it does not look like the promised land: while the kids of the masses were studying, it seems the kids of the wealthiest were also studying. So, proletarian just became pro-net-arian. Education system does not resorb social inequality it let them unchanged in a shifting world. Like a never ending screw, globally moving, locally invariant. A vast majority of the society have to work for the benefit of in an inharmoniously shared minority.

So every one blindingly force their belief of people in a bubble to the economy. Something of russian doll. Where every bubble has a bubble in it or could lead to bubbles.

- people with diploma expect their remuneration to not reflect the absence of  scarcity of the market;
- capitalism expect people with the knowledge of the financial system to agree on an unfair sharing of the values (people with education can do math and be troubling);
- customers expect things to work and respect education, else it would be unfair they loose 10 years of their life expectancy doing their job for 25% of the wages of coder;
- companies expect by screwing their margins in reaching more customers on a market already depressed it will help them make sustainable profits;
- financial market expect a raise of their dividends while the world is in recession and is betting on a global improvement since 8 years;
- IT seems to not notice that the 40$ / barrel of oil when there is a war close to the biggest producers in the world advocates for thinking very hard in terms of watt per actual watt gained and not flops. As long as we create our thermometer for measuring our efficiency based on how much we efficiently loose CPU cycles, we are dooomed.
- wealthy people expect the collectivity to leave them alone and not demand anything to them in terms of social responsability... while they expect to be granted even more power.

Collectively I am more than concerned. But who am I to claim I am the only person not being crazy? Everybody knows that thinking you are normal is the early signs of paranoid delirium.


Individually, I am beginning to think about opening a shop called "introuvables" specializing in dealing cheap products of quality by making a network of franchise sending each other container with local products: cheap polars/wine vs maple syrup/cheese... Just the introuvables. In some place it will be 1 product, in other 100. A place where to find cheap AND good product according to your market.

Or a restaurant called "la Cantine Luddite". Cheap huge quantity of food with taste that requires hours of preparation and cheap ingredients like boeuf bourguigon, pot au feu, couscous .... and go for serving as in an english pub (collective portions to diminsh costs and collective serving and incitation for people to share). No computer allowed, all smartphones being hacked in permanent DoS with a sophisticated electronic appliance called heavy hammer.

Or a one man show.

You know, I don't care. If it turns that bad, I can still do my show in the street as a living. I'd rather be an happy beggar if events required it than an overstressed soon to die from infarctus modern worker.

I guess feeling confident in your capacity to adapt is a requirement for adaptation.

Yes, the future of IT maybe cloudy, but mine is not.

You still can sing in the rain and lough at clouds.













   








Le I.Teigneux: ma mère est une idiote

J'ai passé des années à aider mes parents à l'insu de leur volonté afin qu'ils s'adaptent en douceur à l'évolution du monde numérique.

Serveur de fichier, environnement hétérogène, routeur proprement configuré... mais parents ont toujours eu le meilleur des infras que je pouvais offrir ... avec le support de niveau 3.

Oui, le jour où vous décidez d'aider vos parents, c'est l'assurance d'avoir pendant une réunion importante, votre téléphone portable se muer en tentacules d'un monstre pervers japonais afin de satisfaire votre client le plus important: MAMAN! Putain, c'est crade!

Ma pauvre mère que j'ai du copieusement insulter un nombre de fois incalculable et traiter d'idiote.

Comprenez vous: elle est bête à manger du foin, elle a jamais eu son bac, et la seule chose qu'elle a jamais fait de ses doigts c'est de travailler pour des stylistes, en typo, en art plastique.

Bref, ma mère est une quiche. Sauf, si par magie on lui mettait sous le nez, un bureau, avec une règle, des ciseaux, un pot de colle, des règles pour tracer les lettres, des crayons.

Oui.

Mais c'est pas un bureau.

Non maman, c'est une analogie.

Mais c'est pas une règle, c'est bien plus compliqué. Puis je peux pas le déplacer et l'orienter comme je veux.

Ça c'est un ciseau.

Quoi? Mais c'est noir sur fond gris, puis c'est une PAIRE de ciseau et il faut vraiment avoir de l'imagination.

Ça c'est ... une poubelle.

Mais pourquoi c'est SUR le bureau? Je t'ai appris à garder une maison propre!

Maman, arrête s'il te plaît. Je sais que tu as raison, mais pour l'amour de ton fils, fais comme si ça avait du sens!


Bref, ma vie n'a jamais été un problème avec mes parents sur des choses compliquées, mais des choses simples.


Il y a d'un coté toutes ces choses nous pensons acquises et intuitives: l'analogie fichier/répertoire, le bureau, le copier coller, la poubelle, les menus, ou les liens, les ressources .... Et de l'autre il y a ma mère qui les a pratiqué toute sa vie et à qui j'explique qu'elle sait pas de quoi elle parle.

Comme à une mémé démente qui a Alzheimer je lui explique patiemment comment ranger son bureau, mettre ses fichiers dans la poubelle. Pourtant le reste du temps, elle est en pleine santé. Elle a sa boîte, le temps pour laver et repasser mon linge le week end, me cuisiner des plats, ranger ma chambre, m'aider à faire mes documents administratifs. Elle a l'air de bien se débrouiller à mettre mes papier sur mon bureau dans ma poubelle. Dans le vraie monde elle est efficace. Je confirme.

Mais en même temps son amnésie permanente et intransigeante sur la compréhension de nos merveilleuses analogies m'interroge tout autant sur le fait que nos images mentales sur les choses que nous pensons si simples sont en fait soit bien tarabiscotées, soit le résultat d'une hallucination collective. Je nous vois en tyran domestique de ce qui est intuitif en dictateur de ce qui convient à nos utilisateurs sans se soucier d'eux ... ni de ma mère qui m'a quand même beaucoup appris sur comment utiliser des vrais pinceaux, ciseaux, règles poubelles et bureaux. Elle a toujours eu 20/20 a mes devoirs d'art plastique à faire à la maison au collège.

Et à chaque fois que ma mère qui n'a jamais eu son bac pleure de m'entendre lui dire qu'elle est idiote, je sais qu'elle pleure pour moi.

Et je ne me sens pas toujours à mon aise quand je code ce que je code pour nos clients quand je pense à elle. Quand j'écoute nos DA, nos designe(u)rs nos architectes, nos analystes business, je me pose des vraies questions sur la nudité de l'empereur, et parfois quand on me traite d'idiot, je pleure.

Mais heureusement, à 40 ans le week end, je retourne chez mes parents, et recharge mes batteries pour oublier tout ça.

Tiens Maman, voilà mon linge.

Tiens fiston, j'ai un problème.

Raaaahhh, non!!!!!





Aujourd'hui, je slacke.

Aujourd'hui, je slacke.

Vaguement coupable de ne pas satisfaire à mes obligations.

Aujourd'hui, J'ai allumé mon ordinateur, et à peine avais-je terminé de taper startx, avant même que l'écran s'affiche, ma basse que je croyais éteinte par mon manque de travail, la voilà dans mes mains.


Je cliques sur firefox pour commencer à relever les multiples boîtes aux lettres sociales, je tapote déjà le mi, en rêvassant.

Et en même temps que je me dis, ce serait trop cool si j'arrivais à jouer another one bites the dust.

J'aimerais aussi avoir l'oreille et déchiffrer un morceau par moi même.


L'une des raisons pour lesquelles je ne suis pas musicien c'est que j'ai un piètre sens du rythme, et que je ne travaille pas assez...

Je joue pour mon plaisir.

Mais le manque de travail est une limite qu'on ne peut pas dépasser.

Et je rêvais au jour où je pourrais détendre une ligne de basse sur mes cordes, en la lui faire prendre vie. Le jour où j'aurais suffisamment travaillé.

Et j'imaginais les spots en ambiance disco, et moi en grand géant cool au cheveux longs tenus par un chignon à la japonaise en train de hocher sur cette ligne de basse. (vu ma calvitie, c'est bien un rêve)

Groovy.

Et je sors de ma torpeur, parce que ma femme me crie, hé, je reconnais!

Et, pour la première fois de ma vie je m'entends jouer de la basse. Et le morceau que je rêvais de pouvoir jouer spontanément.

Vous savez, je suis un loser en quelque sorte.

J'ai beaucoup travaillé la basse pour en arriver là. Mal. Très mal, sans métronome, et sans partition, et sans répéter.

Juste enjoué à l'idée de sentir les notes, de trouver un pentatonique facile à jouer, et avec un seul objectif, garder le fun, pour garder la volonté de travailler.

Parce qu'en musique je suis un raté. Donc mon seul salut c'est le travail. Et, garder le travail fun a toujours pour moi été un objectif. Donc, j'ai tout misé sur mon plaisir.


J'ai toujours su qu'on arrivait à rien sans suivre une discipline. Discipline que j'ai évité. Mais, comme c'était un hobby, juste une chose que j'aime et qui n'était pas essentielle, j'avais décidé de me faire plaisir, et d'apprendre à l'instinct.


Et d'un seul coup, comme un héro japonais de shounen conclue une action sportive de 3 secondes sur un épisode entier à force de flashback, j'ai réalisé que j'avais eu gagné une petite victoire.


La victoire d'avoir cru en moi et travailler malgré, contre et envers tout.


Nous avons tous quelque chose d'unique. Notre propre voie. Et même si je slacke bien plus que je le devrais, je réalise que la vie n'est pas qu'une question de devoirs et d'obligations poussées de force dans notre quotidien par la pression de la vie économique, mais aussi une question de réalisation personnelle. Celle de connaître et suivre sa propre voie sans se soucier du qu'en dira-t'on. Parce que même si on est pas orthodoxe dans sa pratique, le travail finit par payer. Non pas un travail discipliné de répétition, mais plus une découverte permanente de la variabilité et des invariances. Et qu'apporte le travail? De nouvelles habiletés, de nouveaux horizons, de nouvelles voies d'évasion.

Et parfois quand on est trop focalisé il est difficile d'oublier quels sont nos points forts.

Donc parfois, il est bon de laisser son esprit vagabonder, il est bon de douter de tout, pour ouvrir au plus ses horizons, et se souvenir de ce qui fait notre force, et d'avoir confiance.

Le travail est le pied de biche nécessaire à tout plan d'évasion réussi pour se frayer un chemin par la porte dérobée dans le royaume rêvé où trône les rivaux excitants qui eux sont talentueux.Et j'ai plein de pieds de biches. Il serait temps que je les utilise.

(Closing sur un générique débile japonais en mode wtf, avec un l'ace de Haikkyu en train de jouer another one bites the dust, avec un clin d'oeil à la basse de FLCL, et la promesse de la saison 2 où le héros va se dépasser, (et insulter dans les commentaires TOUS les crétins qui prétendent aimer les japanimés et citent cowboy beebop mais ont toujours pas vu NHK ou Fully Cully (screugneugneu))).


The Joke: staying sane in the IT realm

Have you ever read Milan Kundera about the communist time in his place?

I love the bitter sweet fate of his protagonists.

How does the heroes of Kundera end up in troubles? They laugh. It ends bad, but they laughed... at the beginning. The Joke (1969)

In a world of lies, at one point your mind can't help but notice more and more the distance between the facts and the propaganda. And IT nowadays is all about plain propaganda. And when educated, sometimes you make fun of it.

You'd think that humour is universal and that it would solve problems, but is not, it seems to infuriate more the people around me. I have never seen as many conspiracy theory lovers in this field of activity, and as much blind adherence with the belief in a "shared common sense" of actual technological wisdom.

Well, I feel like you should really read Kundera, else you will not understand :)


I could begin with "hello world" which is the biggest lie of all time: It is simple to have a string displaying "hello" printed on a screen. But, this already requires to much common sense unsharable with the muggles that are not in IT.

Today I booted my computer. 

I had to wait for gibberish on a screen, press DEL, wait 4 seconds, press F7; F8 then down 3 times, and then ENTER.

Faulty hardware?

No, I just have installed 3 operating system, and a 5 stages booting using up to 3 distincts CPU in the computer and 4 operating systems (I count "BIOS" as an OS) later is required to boot.

I used to have multiboot with DEC alpha, Sparc 32/64, x86. I never had to go that far in complexity.

Do you know that in the past electronic engineers would proud themselves of entering the magical assembly language to enter the boot sequence with just one key?
Considering that they entered series of 512 1 or 0 (up/down) and that my keyboard is 105 keys I dare say that my boot sequence might be shorter, but virtually way more complex especially if you cannot see the screen and you have to have the timing right.

Progress for me is simplicity. It is when a scientist says let's skip thousands of line of calculus and do only one. But I must be wrong.

You know since when I am able to wake up on time every morning, my eggs are boiled correctly, and I listen to the music I like in the transportation ?

I lost my smartphone, and I am poor.

So instead of buying a new phone I got an old nokia. You think; it charges once every week; and the connector are strong, thus it is now never discharged in the morning and now phones always ring. True. That helps from time to time.

But nop. The alarm interface maybe good enough for one time, but is sux. It sucked so much I went buying a clock with needle and 2 buttons one for the light, the other one for setting the alarm. Since then, I don't suffer the morning panic attack of "did my phone rang?". My alarm clock rox. 2 buttons interface, idiot proof (you sometimes go to bed wasted) is a plus.

My old style nokia is also a plain USB drive where I can drag and drop my music without caring I if use windows XP, BSD, linux Mac OSX, Solaris... Now, picking up and choosing music is easy.

Yeah. I seems to walk backward the stream of progress, and it seems to bring me a better experience. Shouldn't it be called progress?


I also execute arbitrary code everyday by doing wget | bash every single day, and I follow the best practices. It is supposed to be the most insecure stuff to do and that should get me fired.

Don't get me wrong, I don't actually type wget url |bash. I am not a noob.

I have a lot of software like pip, apt-get, pkg, firefox to do it for me. I do it on instruction of my superiors.

My preferred one if installing putty.

I go on an HTTP website, I click on a link, I may use clamav to scan it, and or check the signature given on an HTTP web page that could be compromised (stop the joke: only 1 per thousands of actual computer engineer take the time to check the signature), and then I use the sofware.

It is the slow way of doing it. I could also use apt-get to install chrome or firefox, that would load without my consent new code to execute at startup. At least, I did my best :)

I could sacrifice a chicken to be honest. It is as safe as using openSSL0.9.8.

Let's try the I could do it right.

If only it was PGP signed. But, PGP is probably the best software for cryptography but it has discouraged so much seasoned developer I can totally make a point it is one of the worst software for the users.

UI is all? How can I trust something that is hard to get right? 

But can we do "safe crypto at all" like Snowdens thinks it is possible?

Just look at the installed base of PGP key users after 15 years of advocacy versus the base of SSH users. And are  crypto stuff using an "out of bound" channel of internet? ...No.

Okay, let's put it simply: if you knew your mother was listening on (all) the phone lines when you were a teen; how could you make it so that she does not know you are planing mischief without her knowing?
You could try secret code. But a good mother would automatically pin you down as soon as you would use a heavy secret code. Mothers are more dangerous than NSA when it comes to protecting their kids.

Basically, using strong cryptography is so flashy that it makes you beam like a class A quasar on the internet saying "I have something to hide, look here!".

PGP ring of trust is requiring so much dedication of the users that your "secret" relationships are scarces. You even outline very nicely with PGP who are your dedicated conspiracy friends.

With the best crypto software no one knows what you say, but we know with whom you share. 

Tor? Please, I would be the NSA I would already know that any peer to peer/anonymous technology is sensitive to a majority attack and I would use my budget to spin a thousands nodes to have a secure channel inside my nodes used for spying the "good guy". Yep, I would put a dark net in the dark net to spy the dark net. Plus there is no risks, since it is not regulated, thus spying cannot be condemned. I love stupid people. 

But, this is too high level. Let's go back to the scent of a 1960's Paillet's primary school.

You know, I am old. I used to be a volunteer during the election for counting and re-counting ballots by hands. What I liked is that from all the end of the process I could guarantee there was no cheating. I could embrace with my eyes sufficiently enough information to guarantee that in "bureau 15 de Marcouville" there never was cheating in my city and that the number were correctly reported in the town hall under my watch.

PGP, like pip, apt-get .... all relies on the screen and the lies of "hello world" is simple to interact.

I am not paranoid, since I have altered inputs and outputs of computers numerous time without altering computers. Computers even alters the data spontaneously. But who cares. I cannot trust a system I can make lie easily without resorting to high level technologies.


Even though I am a bit more educated than average I don't have the physical time on earth to audit any of the stuff I am using. This includes the checking that software are not lying, nor networks, nor hardware. I cannot embrace -at the opposite of real life manipulation- all the information required to audit the process in a single glance. I thus think that it is inconceivable to fully trust a computer.

Even the small CPU inside of my PC responsible for booting an OS on a JVM to do the crypto signature is alien to me. I have no idea if it works.

The fact that java has a wide spread bug due to the lie of "hello world" is simple make me think the security part responsible for secured booting that requires my magical boot is not safe.

It probably represents 10% of the cost of the CPU. A feature I don't wish, trust or like. It does not feel secure at all, it evens look like a security hole to me. But I have to howl with the pack if I want to be considered a serious IT worker. I have to buy this unsecure shit, else I cannot use any serious secured crypto features.

So, like every morning, since I look for a job, still I am gonna read the PRAVDAs of Information Technologies: ycombinator, reddit, slashdot.

I have to pretend unicode is a mutable format for a string without Chtulu waiting to be invocated through a mispelling of an arabian string with a BIDIR character and a politically correct emoji mixing the klingon from a private plan in the middle.

I will have to pretend dockers and containers are not the new "POSIX threads gone wrong".

I will have to pretend distributed system are stable systems easy to code.

I will have to pretend I don't see the cumulative costs growing while the margin are dropping when the number of users grow, thus dooming any logic of benefits of any startups.

I will have to pretend KSAT problems (dll hell) can now be solved in a polynomial time (with clear evidence of the opposite).

I will have to pretend I believe in the lie of not being able to deliver software on time because it is "based on creativity" and that creativity cannot be bounded to milestones (for christ's sake; I have been the groom opening on time thousands of spectacle who were involving more potentiality of failure than any single projects I have worked on: I do think that doing acrobacy  over a pyrotechnical stage is kind of way more hazardous than using a MVC with an SQL database.

But you know, I have a pride. I will still laugh. Because the same way a Kundera protagonist would stop caring about the communist regim around him by watching at trees blooming in spring and understanding it is not the world that is gone wrong: just our heads. And I can laugh with the whole of my slavian soul in the middle of the turmoil. Lewis Carrol, Gogol, Kundera, Kafka, Gombrowicz, Buckowsky all prepared me for this day.

And, even if my code from the 1996 made in physics lab does not seems sexy by 2015 standards, I am proud of it:
it is a C code piping into a Tcl/Tk interpreter (whose path is configured in a config file) that goes fast enough and that I can still read and maintain. It still does the job. I bet on the right technologies that would stand.

After 20 years of User Interface madness (async UI are bad (Java/tk) let's do async/sync UI (PHP), then let's add a stateful interface to a stateless interface (Oauth+xhtmlpartialrequest+webrtc+localdb+HTML5...)); my code still works. It does even do math correctly! Correct design stays correct. I do advocate Tk as a serious cross platform UI toolkit.

And you know, You should be glad the people like me exists. That there are people not believing in total automation: you prefer nuclear plant to be driven by human beings with valves and knowldeges and making drills from time to time, rather than a fully automated plant with no one able in a 3km radius when a fast growing incident that can blow the planet happens. You really wish a team of able workers to be 24/7 at the command of a nuclear plant that can deal with the unexpected.

You prefer this because renewable energy may deliver energy but not during the peak of power, and thus, whatever propaganda maybe put in your ears, since we are incrementing our peak consumptions notably because of computers  nuclear plants are bound to be constructed again.

You prefer people like me because howling with the pack is not the right way to build long lasting software and because I am funny.

You will want to laugh, because it is not only the IT that are going wrong; it is also the economy, the official science, politics, common wisdom.

You will want to join me in a sane laugh at the madness around us.

 

The BauSoftware Manifesto

How fun would it be to replace a few word in the Bauhaus Manifesto that is the root of modern design, and republish it?

April 2015

The ultimate goal of all art is the building! The ornamentation of the interface was once the main purpose of the software teams, and they were considered indispensable parts of the great software. Today, they exist in complacent isolation, from which they can only be salvaged by the purposeful and cooperative endeavours of all artisans. Sysadmins, analysts, graphists and developers must learn a new way of seeing and understanding the composite character of the sofware, both as a totality and in terms of its parts. Their work will then re-imbue itself with the spirit of architecture, which it lost in salon art.

The art and engineering schools of old were incapable of producing this unity – and how could they, for art may not be taught. They must return to the workshop. This world of mere drawing and painting of draughtsmen and applied artists/developers must at long last become a world that builds. When a young person who senses within himself a love for creative endeavour begins his career, as in the past, by learning a trade, the unproductive “artist” will no longer be condemned to the imperfect practice of art because his skill is now preserved in craftsmanship, where he may achieve excellence.

IT crowd, business analysts, designers – we all must return to craftsmanship! For there is no such thing as “art by profession”. There is no essential difference between the artist and the artisan. The artist is an exalted artisan. Merciful heaven, in rare moments of illumination beyond man’s will, may allow art to blossom from the work of his hand, but the foundations of proficiency are indispensable to every artist. This is the original source of creative design.

So let us therefore create a new guild of craftsmen, free of the divisive class pretensions that endeavoured to raise a prideful barrier between craftsmen and artists! Let us strive for, conceive and create the new building of the future that will unite every discipline, architecture and sculpture and painting, and which will one day rise heavenwards from the million hands of craftsmen as a clear symbol of a new belief to come.

IT excuse for being late due to the uncertainty of creativity is plain bullshit

The first paradox of Information Technology (IT) is that we see computers everywhere except in the economy. To turn it in other words, IT industry does not seems to help people earn money, still, it represents a growing cost.

To explain this paradox one main cause have been proposed since 1968: IT projects are late and tend to blow off there expectations in investment and operational costs more than in any other sectors.

The pathetic excuse of Fred Brooks that all the IT have using for failing is: we are late because creation is by nature an unpredictable thus, we cannot plan neither know how much investments are required, nor how much the operational costs will be. That is the reason why IT economy is not based on obligation of results (all corporate software decline liability) but obligation of means.  Joel Splosky, and a lot of developer I respect recommend (as I do) to read this book. I do recommend to have a critical reading though.

I think it is true, and that it is much more an effect of belief and self predicting realisation than a fatality. In this essay I will try to tackle so much in depth this idea that I wish to hear its ankle crack.



Costing and pricing are impossible, still IT companies are doped like soviets athletes with investments (thanks to Dragi, Yellen, YC, and all investors). And still IT projects are late, under delivering and considered a cost sink.

Well actually, not all activities that are creative fail to deliver on time. 



As a former groom in a theater I know for sure that a lot of creative are able to deliver on time astounding new creations:
dance shows, circus shows, plastic art exhibits, movies, concerts... with an expected quality (except for plastic arts (lol)).

You may think, artists are not tied by the ridiculous requirements of economics and technics and this is not a  competitive market.

Well, it happens I have been experimentally covering for La croix when I was a teenager the Avignon festival (I am the last person to have interviewed Heiner Müller), my brother has been managing a hip hop dance company (Trafic de style) and my mother programming artists in a national scene. And I am born french (appeal to the cliché for this one) but still am familiar with other stuff than France :)

So I can tell as an insider that the inability of software teams to deliver on time and in the expected envelop of costs something said to be by nature creative does not hold a ground. I also happen to have studied engineering of organisation in CNAM Paris. I could also tackle the problem with an engineering point of view, but it would be less fun.

Delivering in time and in budget is totally possible... unless you build a Babel tower.

 

The misconception about creations being inherently unpredictable in costs and delivery


I have been interviewing Richard Owens at WIPO in Geneva a long time ago. Software industrie is not protected by patents but by author's right because it is said that the value is not in what the software does, but HOW it does it. The international protection based on Bern/Genveva conventions values the original expression of the author. As a result legally speaking software industry has to be considered the same as any creative industry. Software is indistinguishable from a  piece of art.

What you may not now about art companies is that the myth of it being heavily subsidized is false for most companies : for one subsidized show in Avignon there are hundreds of non subsidized show (the off festival). Still a show is not I do whatever I want on stage and everyone can do it. It is an awful lot of work

Even small companies have to format the delivery of their production in a formal way.

Requirements in terms of space, volume, weight, capacity to move the piece of hardware, if ever they bring their light/sound engineers/equipment, the time, the required size of the stage, the cost of the show, the dates, housing, transport .... respect of security norms (like use of pyrotechnics), planning insurances, the audience (you don't show adult contents to kids) ... any shows requires artists to provide a huge list of requirements.

It also requires to deal with intellectual properties. Authors have to be registered as well as interprets, and all the external assets (music, text) have to be declared and paid.

You may think it requires less coordination. Well no. Carpenters, decorators, plasticians, actors, realisation, production engineers, technicians have to be coordinated and if you use external resources from a theater (light/sound engineers/technicians) they have to have their directions formalized. So companies may also have to deliver procedures for complex tasks in a formalized way. Because they are outsourcing part of their functions.
 
So showing on time for an artist is as complex as delivering on time for software engineers. It requires as much "costs of coordination", it involves as much "unpredictability" in the planning, still they show on time.

They do it.

Benefits, still are unpredictable. You never know if you will succeed. But every artists knows that not showing on time is gonna ruin any possibility to earn any benefits, else they are ruined.

They lose trust of the industry (tourneur, and theater), no money comes in... once you begin to lose trust, you begin to lose revenues.

Some says size matters. But, delivering on time and delivering their "technical notes" is the common ground of all companies. Size really does not matters. Stomp, Cirque du Soleil, the circus touring in the country side, the semi pro companies, street artists all do follow the rules of having both "packaged" their delivery according to the standards AND on time, AND reasonably in the budget.

How?

 

They build to budget.

It looks like from the eyes of a computer developer like a permanent Quality Assurance process.

First the metteur en scène (or the company as a whole) comes with an idea and decide to divide it into smaller pieces. And according to the complexity of the play/budget they plan their date of show, and implicitly devise milestones according to their former experiences of delivering on time.

They setup a proof of concept at the very beginning, and try and repeat their idea. Every days like maniac. Dancers are the most impressive.

At no point a company have no materials.

Since day one, people will have something to show. Actors can memorize their texts and repeat it to time it. Dancers can have small gimmick they show. Decorators/plasticians will show a prototype...

As soon as needed the other corps de métiers are mixed together.

People are repeating, training all the time. As soon as the budget for the pure creation part is exhausted, they repeat. Over, and over again. From the begining to the end. The show is permanently played, checked, modified, replayed. From day 1 to the end it never ends. When you make a creation, you have to submit to the entity founding you a business plan. Else you will have no founding, from no one. And for having seen the quantity of papers that are demanded in order to prove an artistic project is viable it has nothing to envy to formal companies. I would say it is very rigorous.

At a given time varying according to the complexity of the show, a filage begins before the première.

My fuzzy memories for a long time ago says that it is for a classical show it is something like weeks or months before the first presentation.

During a filage, maniacally people play the show over and over again until it is perfect. During the filage, the show is put in its chronological order/final form and more and more external eyes are introduced to get a feedback, and if time is missing the réalisateur might cut or rearrange the show. It looks like integration.

You may think that the creation is carved into marble after the first the show. It might be true for big shows (musicals, huge companies like stomp), but most of the time, during the tournée the company will improve the show to maybe introduce stuff that could not be shown because it was not ready for day one, or cut stuff that for which the audience is not receptive.


People may think that shits never happens to artists. It is true that the rotation of the artists in a company is way lower than in the IT sector, and it helps a lot. However, legs get broken, stuff get stolen... And sometimes you need to replace complex piece of equipment and know how or artists on the fly.

A new artist or technician even though every company works differently (autocratic with narcissists tendencies ruling their show as business men, almost hippy companies sharing everything, enthusiasts, punk/squatt grown blobs) always integrate fast.

Because everyone share a same concern : the show must go on.

And what about the money?


Mainly from the idea of the show to the first show we are running into the KPEX part of a project.
An artistic show begins like a cost sink.

But, after the first show, according to the success the company will adapt its operational costs to the gauge and the time of the show and the frequency of the show that it can aim regarding the success it has.

Gauge can range from n shows of one spectator every 5 minutes (street performance/event) to 90 persons, 700, 1400 show in a theater, or 100 000 in a one time event when it is Découflé or Royal Deluxe making a défilé.

Artistic companies have been far more serious at following their costs and expenses at my experience than any manager I have seen in IT industry.

Plus, they adapted their cost/revenue packaging to the uncertainty of their job: once a show as been seen, it will have a tendency to not be seen again. So shows have a 0 to climax then climax to long trail kind of economical curve. The show changes constantly in terms of prices, costs and expenses according to the curve of success of the show.

Circus are not having the same expectations of revenues than a one time event subsidized by either a sponsor or a state.  Artistic business is as spread in its pattern as IT industry.


So how is IT failing with a stronger requirements on diplomas or project managements?
There can be one an only one answer.

Something is rotten in the state of Denmark
No I am joking. But, yes I do think it is systemic to our field of work. Something is definitively rotten in the IT industry at a fundamental level.

I am thinking on it, and plan to write an essay in the future on this topic. But I may have some leads.

By being scientific now that we know what is common (creativity and expected processes of respecting business and technical requirements) we can now think of what differs. I can also add something surprising: since there has been a financial bubble on education the education does not differs. Yes, I have met artists with MBA, Ivy leagues diplomas, no diplomas ... There is no difference in education.

Maybe it is the the structural forms as defined by Mintzberg : IT companies tends to adopt bureaucratic/specialized division of the work whereas artistic activities tends to chose  functional ad-hocraty ?

Maybe it is because the artistic market is more competitive than the IT market, since there are fewer entry barriers in terms of diplomas, or legal requirements, and the market is less opaque?

Wrong incentives given to recruit workers ? 

Maybe even though formal division of work is very standardized in art (artists are NO sound/light engineers, régisseur, manager and vice versa),  all these functions are sharing a common lingua franca avoiding a Babel tower effect and share a clear incentive/vision of what has to be built and the constraints.

But still one thing strikes me: artists have a stronger ethic, and I would suggest that artistic incentive based on reputation rather than money helps recruiting people with a Beruf is better than stock options.

Still ESA was able to build the Philae Rosetta mission. NASA was able to make software function on mars... I don't think this problem is inherent to programming in itself, or the culture of a country but rather to so called profesionnal sector. 

What differs? What is the smallest set of parameters explaining why we suck at delivering on time?

When armies are defeated, I tend to blame the strategies, not the soldiers nor the guns.

What is wrong? How do clowns and other saltimbanques coming from squatts outperform engineers coming from Ivy leagues ?