Modern Computer Science is obscurantism disguised as science

Recently I decided to get back to the basics and question my use of classes/frameworks.

I tried to find a definition of the word framework but weirdly this word is a tautology, no one knows what it is, but it refers at itself for something people use to get the work done through the use of external knowledge. But can you manipulate knowledge you do not understand?

This word has been broadening so much that it globally is a synonym of a shortcut for standing on the giant's shoulder without having to do the painful process of climbing painfully all the way up by learning. Framework are actually for me a synonym for an intellectual shortcut ; they are the foundation of cargo cult programming. And I want to illustrate it with a python code example to draw a wall clock without libraries except for importing constant (exponential and PI) and drawing.

So I will introduce an anti-framework that makes you have less dependency based on taking no shortcuts : science. Not the ones of computer science and university, the one that also is useful in the real world, hence a more useful tool than framework. Something that can help you compute solution with a pen and paper fast. And for which you can check the results of your code. The science taught in high school that requires no degrees and that we are supposed to know when we are given the responsibility to vote. The one that help you make enlightened decisions as a citizen for the future.

For the example I will use a simple use case with code: an analogic wall clock. I will treat different problems: 2D & 1D geometry, sexagesimal basis, drawing the hands, computing time without datetime.

Scientific reasoning to be understandable before coding requires that you explain what you are doing and how. To introduce the problem in a simple, yet consistent way so people do not understand the code, but the mental process to interpret the code, thus to define rigorously your concepts and definitions. The stuff Agile hates : explicit requirements and clear definitions of concepts, rigor.
What is time?

Time in its usual form hour/minute/second is inherited from Sumerian civilization. A civilization that was localted in Irak -whose archeological wonders occidental civilization took part in destroying- that has brought mathematical knowledge to the world thousands years ago. It was designed by people having no computers but knowledge of the fact earth is round, having simple use of fractions and basic geometry. Time cannot be manipulated without understanding that earth is round and that it revolves around the sun and that noon is dependent from your location.  12:00am is set on when the sun is at its zenith for a given place. Which is basically an invariant on a meridien. Giving time, is giving a relative position of earth according to the maximum potential exposition to the sun.

The base of 60/60 is useful for astronomers using sticks/shadows and is quite powerful in low tech context. 360° (minutes * seconds) is a measure of the rotation of the earth according to a reference (noon) and since the angular speed of earth is constant, it is linearly related to time. Time measure the relative angle from your position according to noon in a referential where earth is rotating around its north/south pole axis. It is periodic. It is thus a measure of phase/space. Usual time is a space measure.

The python time() function is an expression in a base 10 of the time elapsed since 1/1/1970 according to your geographical position without all political biases (except TZ).
Localtime is the correction with leap seconds, DST .... and politics. Something defined by arbitrary rules that is far to be a one best canonical way.

Each hand on a wall clock rotates with a speed according to its rank in the base.

Seconds rotates at the speed of a 60th of a turn per seconds.
Minutes are 60 time slower
Hours ... are 24 times slower, but by convention, we prefer to make it with a period of half.
Basis conversion be it base 10, 2, or sexagesimal is a CORE concept of computer science. It is a core requirement every developers should be able to do it without libraries.

I am gonna introduce a convenient tool for doing geometry : the Moivre formula that will do the heavy lifting :

exp( i * theta) = cos(theta) + i * sin(theta)

To understand the following code, understanding the geometrical relationship between complex notation, cartesian/polar coordinates requires learning and rigor. And there is not shortcut for it.

I don't know why, python is confusing j and i. And I hate IT, it is like a slap to the face of people using science.
i is defined by i² = -1 python decided to call it j
j is traditionally defined by a number such as  j**3 = -1 for which the imaginary part is positive. Thank you python for not respecting mathematical conventions, it makes this confusing.

I guess it falls into the tao of python
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.

That is not the first time I have a beef with python community when it comes to respecting mathematical notations and their consistent use. I could dig this topic further, but it would be unfair to python which is not even the community with the worst practices. 

So without further ado here is the commented code without the noise of colors. Brutal code.
(Colored version here)

import matplotlib.pyplot as plt
from time import sleep, time, localtime

# Constant are CAPitalized in python by conventionfrom cmath import  pi as PI, e as E
# correcting python notations j => I  
I = complex("j")

# maplotlib does not plot lines using the classical
# (x0,y0), (x1,y1) convention
# but prefers (x0,x1) (y0,y1)
to_xx_yy = lambda c1,c2 : [(c1.real, c2.real), (c1.imag, c2.imag)] 

# black magic

# fixing the weired / behaviour in python 2 by forcing cast in float

# 2 * PI = one full turn in radians (SI) second makes a
# 60th of a turn per seconds
# an arc is a fraction of turn
rad_per_sec = 2.0 * PI /60.0
# 60 times slower
rad_per_min = rad_per_sec / 60
# wall clock are not on 24 based because human tends to
# know if noon is passed
rad_per_hour = rad_per_min / 12

# I == rectangular coordonate (0,1) in complex notation
origin_vector_hand = I

size_of_sec_hand = .9
size_of_min_hand = .8
size_of_hour_hand = .6

# Euler's Formula is used to compute the rotation
# using units in names to check unit consistency
# rotation is clockwise (hence the minus)
# Euler formular requires a measure of angle (rad)
rot_sec = lambda sec : E ** (-I * sec * rad_per_sec )
rot_min = lambda min : E ** (-I *  min * rad_per_min )
rot_hour = lambda hour : E ** (-I * hour * rad_per_hour )

# drawing the ticks and making them different every
# division of 5
for n in range(60):
            origin_vector_hand * rot_sec(n),
            .95 * I * rot_sec(n)
        )+[n% 5 and 'b-' or 'k-'],
        lw= n% 5 and 1 or 2
# computing the offset between the EPOCH and the local political convention of time
diff_offset_in_sec = (time() % (24*3600)) - localtime()[3]*3600 -localtime()[4] * 60.0 - localtime()[5]   

while True:
    t = time()
    # sexagesimal base conversion
    s= t%60
    m = m_in_sec = t%(60 * 60)
    h = h_in_sec = (t- diff_offset_in_sec)%(24*60*60)
    # applying a rotation AND and homothetia for the vectors expressent as (complex1, ccomplex2)
    # using the * operator of complex algebrae to do the job
    l = plt.plot( *to_xx_yy(
            -.1 * origin_vector_hand * rot_sec(s),
            size_of_sec_hand * origin_vector_hand * rot_sec(s)) + ['g']  )
    j = plt.plot( *to_xx_yy(0, size_of_min_hand * origin_vector_hand * rot_min( m )) + ['y-'] , lw= 3)
    k = plt.plot( *to_xx_yy(0, size_of_hour_hand * origin_vector_hand * rot_hour(h)) +[ 'r-'] , lw= 4)
    ## black magic : remove elements on the canvas.
    if not n % 1000:
        ### conversion in sexagesimal base
        print int(h/60.0/60.0),
        print int(m/60.0),
        print int(s)
    if n == 100:

My conclusion is frameworks, libraries make you dumb. It favors monkeys looking savant as much as pedantism in academic teaching is. People may try to point THIS is pedantic, but pedantism is about caring about the words and formalism, not the ideas and concept. It is like focusing on PEP8 instead of the correction of the code. Pedantism is not saying correction is important, it is annoying developers with PEP8.

My code is saying the earth is round, that it revolves around the sun with a constant rotational speed, that noon is when the sun is at its zenith and happens periodically, that I have an harmonic oscillator in my computer that is calibrated to deliver me time with a monotonic growing functions, that we use a 60/60 base since millennials to represent time, that most of the problem we encounter with times are either political or due to an insufficient understanding of its nature. And that we can use complex numbers to do powerful 2D geometry operation in a compact, yet exact way that does not require libraries or framework. Complex numbers operations USED to be hardwired in CPU. They became useless, because people stopped using them by ignorance, not because they stopped being useful.

Our actual problem is not computer raw power, but education. Every coders using datetime modules should be sacked : datetime operations are (out of the TZ insanity) basic base conversion and 1D operations of translations projections. If a coder do not understand what numbers are, what time is, the difference between representations and concepts why do you entrust them manipulating your data in the first place? What do you expect?

That a thousands monkey will write you the next Shakespeare novel if you throw enough bananas at the monkeys?

We live in a time of obscurantists people using advanced concepts that looks like science, but are not.

I still find with the examples used for teaching OOP counterproductive

After the stupid example with the taxonomy of the species/car/employees that makes you do a lot of inheritance one of the valid use case for OOP is 2D geometry : points & rectangles.

This is the python example in

Don't worry, python is one of the many language doing this class. It is an actual use case for learning classes.

200 lines of code and you do nothing. Not even fun

Except in python complex is a base type, and I learned the use of complex numbers when I was  in public high school in my sweet banlieue. (a place said to be full of delinquents and uneducated kids)

Then I thought : with just simple math how hard would it be to just draw two polygons one of which rotated with the python base types? 
How hard is programming when you keep it simple?

Here is my answer in less than 10% of the initial number of lines of code and a drawing to illustrate how hard it is :

from PIL import Image, ImageDraw
# short constant names a la fortran
from cmath import pi as PI, e as E
I = complex("j")
to_x_y = lambda cpl: (cpl.real, cpl.imag)
im ="RGB", (512, 512), "white")
draw = ImageDraw.Draw(im)
rotation = E**(I*PI/3)
homothetia = min(im.size[0], im.size[1])
trans = homothetia/2
homothetia /= 2.5
polygone = (complex(0,0), complex(0,1), complex(1,1), complex(1,0), complex(0,0))
bigger = map(lambda x: x * homothetia + trans, polygone)
bigger_rotated = map(lambda x: x * rotation, bigger)
draw.line(map(to_x_y, bigger), "blue")
draw.line(map(to_x_y, bigger_rotated), "green")"this.png", "PNG")

I don't say classes are useless, I use them. But, I still have a hard time thinking of a simple  pedagogic example of their use. However, I see a lot of overuse of Object Oriented Programming to try to make people able to use concepts that are not accessible without basic knowledge. OOP is no shortcut for avoiding to learn math, or anything else. If you don't understand geometry and math, you will probably be whatever the quality of the class given unable to do any proper geometrical operations.

We need OOP. But the basic complex type far outweigh in usefulness any 2D geometry classes I see so far without requiring any dependencies.  And I never saw in 5 years complex types used even for doing 2D geometry, however it seems the alternative buzzword to OOP -including numpy- is so making you look data scientist and pro! 

So what is the excuse again for not using something that works and is included in base types with no requirements for doing geometry when we say that games could be a nice way to bring teenagers to coding? Are we also gonna tell them learning is useless and that reinventing the square wheel is a good idea? Are we gonna tell them to not learn because we have libraries for everything?

For the fun I did an OOP facade to complex as point/rectangle but seriously, it is just pedantic and useless. But still 50% less lines and more useful than the initial example.

Le tiers état de la France moderne: Les zinzins, les timbrés et les gueux

Quand je regarde la France aujourd'hui, je vois 1788.

Je vois l'inéquité fiscale qui a entraîné la convocation du tiers état, et je vois 3 populations sur un même territoire dont une importante totalement ignorée par l'état et l'administration qui porte directement la plus lourde part des prélèvements obligatoires tout en touchant la plus petite part des reversements.

Même un pauvre est taxé à hauteur de 20% sur toutes ses dépenses alors que les plus riches ont des taux de prélèvements globaux de l'ordre de 10% pour les plus sioux.

Alors je me suis dit, amusons nous à imaginer ce qu'est le tiers état aujourd'hui et comment le définir?

Comment définir 3 populations quasiment disjointes qui vivent leur rapport aux impôts et à leurs reversements différemment et dont une partie ne voit pas ses intérêts représentés à l'assemblée.

Et j'ai vu cet article :

Certes vieux, ils représentent quand même des statistiques qui perdurent depuis 40 ans. Donc on tient le bon bout.

La partie choquante de cet article est la disparition pure et simple d'une partie de la population des statistiques dans les classes de populations qui sont mesurées.

Pas d'handicapés, de clodos, de marginaux, de détenus, de malade de longues durée, d'handicapés mentaux ou physique, de chômeurs (20% de la population active), de jeunes de moins de 20 ans (10% a minima), de caissière prisunic ou autres galériens des CDDs, les méthèques (immigrés en statut temporaire et en voie d'être citoyen de plein droits) rien sur ceux qui refusent le mode de vie sociale.

A la louche ça nous fait un bon tiers de la population. Et ça nous fait ... quand on mesure ce qui est touché de l'état en comparaison de ce qui est versé la population qui est le plus sous pression de la fiscalité.

La question n'est pas comment on en est arrivé là. La question est à quoi ressemble les forces en présence dans les instances de pouvoir et comment se fait il que les gens soient sous représentés.

La défaillance de la représentativité

Qu'est ce qui garantirait la représentativité de toute la population?

Une idée en vogue est que je soutiens parfois est qu'il faudrait que l'assemblée ressemble au peuple. Seulement les moyens financiers, le coté concours de popularité des élections, la vulnérabilité accrue qu'entraîne l'exposition politique et les disponibilités et temps barrent un nombre élevé de citoyens des processus politiques actuels quand tout simplement ils n'ont même pas déjà le temps pour survivre.  Le temps c'est de l'argent quand t'es pauvre.

Donc qui est à l'assemblée : les notables, les salariés avec du temps disponibles, et les fonctionnaires. La France qui a du temps libre disponible.

Les zinzins et les timbrés

L'assemblée nationale est dominée par 2 groupes qui font passer la discipline de vote avant la mission de représentativité des élus. Les républicains et les socialistes (qui n'en ont que le nom).

Pour des raisons amusantes l'assemblée voit la sur-représentation de 2 groupes d'intérêts particuliers qui défendent des intérêts partiellement congruents : les z'investis des z'institutions et les timbrés (fiscaux).

Les timbrés représentent les quelques milliers de personnes les plus riches du pays. Ils sont libéraux économiquement tant que les marchés sont régulés limitant la compétition et qu'ils sont subventionnés. Ils considèrent légitime de pouvoir payer une part inférieure des impôts au titre de leur capacité à créer de la richesse. Leur richesse étant souvent issue du mérite d'être né on peut les considérer comme les Nobles du XVIIIé siècle. Relisez les livres d'Histoire c'est exactement l'argument que donnait les nobles pour ne pas payer d'impôts. Ils soutenaient aussi que sans eux le pays tombait.

Les zinzins sont issus des couches supérieures des institutions et vivent sur la bête. Ils justifient leurs avantages au nom de leur vocation à défendre le peuple. Leur haute valeur morale et leur sens de la mission les faits ressembler en des hordes de curés pédophiles justifiant leurs traitement différenciés de la population par leur mission. Qui n'a pas vu dans les statistiques de l'INSEE les fils de profs du secondaire hérauts de la mixité sociale et du mérite personnel prédominer dans les filières d'excellence.

Filière d'excellence où ils côtoient aussi  les timbrés. Les zinzins se décrivent de gauche, les timbrés de droite et se querelle comme des chiffonniers sur la place publique à savoir qui doit être favorisés d'eux ou des autres.

Les zinzins et les timbrés sont d'accord sur une chose il faut prélever plus et reverser plus d'argent aux bonnes personnes. Les meilleurs d'entre nous. Ils sont d'accord sur le fait que les élus, les députés, les institutions réussiraient mieux si ils étaient plus financés. Par contre, les zinzins préfèrent reverser plus de salaires aux élites technocratique et administrative de la nation, alors que les timbrés préfèrent que l'on favorise le regroupement des activités économique afin de rebâtir la puissance économique nationale pour faire face aux défis mondiaux.  La menace extra nationale, l'excuse la plus vieille de France.

Les zinzins et les timbrés ensemble pensent dans leurs conflits à 2 balles qu'ils représentent toute la population, car d'après eux tout le monde à accès par le vote à la représentation élective. Donc l'assemblée est représentative. Ils pensent qu'ils ont travaillé dur et qu'une partie de la population est juste fainéante ou juste avec la compassion de la charité dysfonctionnelle et inutile. Ils donnent l'aumône aux inutiles par soucis de compassion. Comme une piécette à la sortie de l'église. Les zinzins et les timbrés n'aiment pas les mêmes gueux donc ils mesurent à l'applaudimètre leurs popularité respective en jetant des promesses de subventions à leurs foules préférées.

Les zinzins mécènent aussi des citoyens appelés artistes pour donner la bonne parole. Ça s'appelle la Culture. Nulles fictions représente des gueux.
Ou ils soutiennent des médias objectifs : ça s'appelle les médias. C'est les hérauts des timbrés. Mais pour les gueux? L'expression est contrôlée, pénalisée quand elle sort de clous arbitraires nuisant soit aux zinzins soit aux timbrés. L'arsenal juridique est utilisé, et la mitraille pleut. Les discours hostiles aux timbrés et aux zinzins sont considérés terroristes.

Ils se refusent cependant à tout contrôle citoyens. Les promesses n'engagent que ceux qui y croient disait élégamment Jacques Chirac plus haut représentant du Peuple.

Seulement, je suis pas d'accord.

Élection : chèque en blanc

Là vu qu'on parle de sous je vais rester sur les sousous dans la popoche.

Les représentants ne sont asservis à aucun mécanisme de contrainte à voter ce que leurs administrés souhaitent. Ils font littéralement ce qu'ils veulent. Et aucune pétition, aucune votation, aucun référendum national ne les engage à suivre les choix explicites du peuple.

Et, ils n'ont aucune responsabilité financière et légale sur les dépenses qu'ils signent aux noms du Peuple et qui engendre de la dette, donc des impôts donc de la diminution de richesse. Ils décident aussi de où l'argent est dépensé. Mais pour la responsabilité légale ou financière?

Rien, nakash, peau de lapin. Et les dépenses engagées sont non annulables.

Donc, le tiers états sont les victimes systématiques de leurs sous représentations à l'assemblée nationale: les gueux, les miséreux, les exploités, les malades, les accidentés du travail, les détenus, les militaires (qui peuvent être engagés et mourir sur un conflit sans contrôle du Peuple), les représentants de la justice, les policiers,  les précaires ...
Bref tout le réservoir de misère et le bouclier humain nécessaire à faire vivre les zinzins et les timbrés. Les zinzins arrosent la misère, les timbrés le bouclier humain.

Et la population se retrouve piégée dans une division catégorielle entre les gardiens (appelés extrême droite par nos politiques) et les prisonniers (appelés extrême gauche). Et de temps en temps il y a des manifs.
Un wall of death social. Où l'on envoie clasher en d'amusante cérémonie sociale les gardiens et les prisonniers.

Et quand les gardiens et les prisonniers fraternisent le discours politique est de dire que les extrêmes se rejoignent et délivrent des points Godwin à tout va.

On vaut mieux que ça

Les gens veulent descendre dans la rue en espérant de convaincre les zinzins et les timbrés de prendre une décision qui va contre le sens de leurs intérêts combinés en ce qui concerne les actualités comme la réforme du travail.

Moi je dis quitte à descendre, autant descendre pour que ça marche.

Et pendant qu'on y est, au vu de la crise de représentation, on pourrait proposer 3 choses pour s'assurer qu'il y ait un résultat durable sur nos existences:
  • le renvoi immédiat de 50% de l'assemblée (au hasard) et le tirage au sort sur leurs députation sur la liste des jurés ceux qui vont représenter le peuple jusqu'à la conclusion de la constituante au parlement, c'est clairement pas idéal, mais c'est déjà un mieux immédiat signe de bonne volonté (moi je rajouterais les gens administrativement interdits d'activités politique);
  • le lancement des cahiers de doléances. Les institutions locales régionale et nationales mettraient à disposition des moyens de se réunir pour écrire des cahiers de doléances permettant d'identifier les problèmes mais aussi de répondre à une question simple : comment rendre l'assemblée représentative à moindre coût durablement? Et comment organiser une assemblée constituante ayant le pouvoir de corriger la constitution de manière conforme aux cahiers de doléance qui garantisse la représentativité de tous, même ceux oubliés pendant les cahiers de doléance? On pourrait se donner des rendez vous bimensuel pour remonter le top 3 des doléances qui pourrait même se donner le luxe de donner un plan de route précis et mesurable aux députés et s'arrêter à 12;
  • Et enfin le lancement de l'assemblée constituante en vue de réformer les institutions de manière à améliorer définitivement leur représentativité. 
Si les gens trouvent que tiers états, assemblée constituante ça sonne mal, je vous dirait que comme en 1789 on peut s'attendre à voir les créditeurs de la France et les banquiers du monde s'inquiéter.

Comme en 1789 l'optique d'un peuple souverain maîtrisant la dette, c'est l'optique pour les entreprises multinationale les plus influentes de perdre des bénéfices extorqués par les états et surtout ce serait un fâcheux précédent.

L'Islande? Oui, les banquiers ont laissé passé. Mais la France? Imaginez l'effet de contagion possible.

Dès que le processus sera enclenché, les capitaux vont fuir le pays, les médias internationaux vont parler de révolution sanglante faites pas les fainéants et apeurer les braves citoyens du monde entier sur l'effet que cela aurait dans leur pays, nos voisins vont contacter nos dirigeants pour les informer de la disponibilité de leurs forces de l'ordre dans le cadre du maintien de l'ordre public. Les niveaux de menace terroriste vont être relevés pendant que les hommes politiques dénonceront l'irresponsabilité du Peuple à déstabiliser un état pendant un moment grave où la concorde nationale est de mise.

La partition est connue.

La seule solution c'est de s'organiser en avance et de coller un coup sec et rapide derrière la nuque.

Un boycott organisé et public des élections pour dénoncer le manque de représentativité peut être fun pour sensibiliser le reste du tiers état.

La rédaction des cahiers de doléances peut commencer par des billets sur facebooks, des chats, des postes sur des technologie oubliées (NNTP) ou nouvelle, des posts de blogs, des chansons, des discussions du café du commerce, des discussions à la paroisse ou pendant les sorties au pub et les repas de famille.

Avant de les écrire on peut tout à fait commencer. Puis si les moyens institutionnels d'expression sont contrôlés, il y a des tas de moyens de communiquer bien plus efficaces et discrets. Rhonéo, photocopieuse, graffitis, série-graphie, T-shirts, bandeau sur les sites webs, bouche à oreille, discussion au coin de la machine à café, pour ceux qui ont twitter des hashtags genre #CahierDeDoléance ... Fuck, on est pas des cons non plus on a largement d'interstices dans les espaces contrôlés pour s'y engouffrer.

Bref, râler étant dans la culture française, je vois que nous avons là un avantage indéniable. En plus on est démérdards.

Vous pensez pas qu'on pourrait y arriver dans le fun, et aussi probablement sans violence, cette fois?

 Je veux dire, des fois vous en avez pas marre?

How IT fails at being professional and how to solve it

Have you seen an addicted gambler?

The mechanism of gambling addiction has much more odds to happen to people who first won a lot of money.

Human brain is bad at groking statistical laws. I experienced first hand with a known Quality engineer at a famous corp not able to understand why you cannot conclude from one "defective" sample on a lane of production from a brand that the whole production is defective and even extrapolate to the whole brand.

I am not an engineer. But I can say it is not because I was mugged once or twice by a colored person that it means all colored person are thieves. I have been statistically also in situation of physical aggression or of being mugged with an equal representation by all culture and colour of skins.
Live with it. One fortune or misfortune happening randomly should not be extrapolated as an iron rule of the universe. (I of course was not always thinking like that, but well I matured I guess). 

Entrepreneurship is about risks management and a proper remuneration of the risks. And risk is at the opposite of what you perceive (the danger) that can be measured.

Some says that clear success of IT is a proof that IT by itself should be granted more investments and that everything we do is justified by our past successes. Like a typical future gambler. Blinded by accidental money gain, losing rationality and taking absurd decisions without control.

I have a concern that our profession is going into hybris. The only sin of greek civilization; the excessive pride / euphoria that make heroes do stupid things. Odysseus, Herakles, Zeus, Appolo, Narcisse, Achileus, Orpheus; Paris all the heroes of great greek tragedies either died or met horrible destinies for negating the Gods/the odds.

All people -Appolo included- that tried to cheat destiny learned with a dear price that they were not bad persons nor did wrong things.

Not all went for humility. The obvious sin of Odysseus was to try to save his mates that were condemned by eating the sacred oxen of Zeus that were destined to appease the Gods.

He fought hard for what he though was just: saving men that were just starving and coming back from a decade long war. He is my favorite one flirting dangerously with hybris himself.

I am not saying trying having faith in progress is a bad thing I actually have faith too. I just say there are signs of blindness in our decisions and I strongly disagree with 99% of the crap on the internet about the actual best practice that matters in IT.

What concerns me is the focus on tools and creativity.  L'art et la manière.
We have been reducing our job to how we do things.

A carpenter build houses with a field of specialization in wood. The mason is specialized in bâtis. The electrician in electricity.

Their profession is not only about HOW to use your tools and to be innovative, it is always in the context of building houses. In conformity of delays, prices and regulation and expectations.

What defines a profession is its capacity not to use tools, but to make something that is conform to an expected result in the constraint of the real world.

In the real world, bank notes do not grow on trees. Investment normally requires risk managements, provision, qualifying and planning the returns over investments and benefits. With a seasonal variation of activity or costs that cannot be forecast. We have to objectively negate the odds to win.

One of the expected benefit of automation should normally be to alleviate the work of human with a clear decrease in costs and eventually without harming the ecosystem.

For this there should be evidence it works. The most basic way of ensuring this is scientifically simple.

Do a precise analysis of costs (investments and operational expense) of before the product exists and re-evaluate after  and add the first and n-th order costs. And reproduce in other contexts trying to control stuff with known techniques to asses if it worked (first invented by brewers than perfected by armies often known as QA)

You seen what bugs me in IT? I see people coding business automation refusing to learn the business. The same way a carpenter or a mason or an electrician would refuse to learn about houses and regulations. The uncertainties are almost never taken into account.

I do not want to convince people already involved in IT. They have no interest to change the absolute nirvana in which they live. They maybe stolen a lot from their value and they may have stressful work conditions, but on the other hand their wages and work conditions are still better than most other employees. And they have no liabilities. If they had liabilities (legal or commercial one) they would also be granted authorities. Like refusing to put code in production if it would result in a greater harm. The same way an electrician is legally liable if malfunctioning causes deaths and thus can be in deep shit for accepting a work that does not respect the regulation. Resulting in business bankrupting by lack of provision or the boss ending in jail.

The problem is for the rest of the economy. Money are resources. Inefficient money flow is directly influencing our future locally and globally.  The global crap is not the topic at hand here.

Contractually IT has some serious flaw in its profession : we cannot predict how fruitful our investments will be for the customers over time. But the problem is not in the IT.

You would be scandalized to invest 1M$ for a house breaking in 4 years or requiring to constantly have reparation for 100k$ per year. Your intuition of what you should expect from construction is set to high standards.

That is what it is right now. Customers are not having expectations anymore. They accepted what none of their own customers would accept. C'est pour le business, tu comprends. IT investment are a necessity.

Customers are blinded by a jargon, discourse of expertise looking savant that is no more than travesting science.

Having a lot of money by making a business cheating on regulations does not make you a guru.

It makes you a good leader, able to serve well its own interests. It is something I respect too, like the Borgia and other romantic stories.

We all can see problems that we pretend to solve since 40 years are still there:
- the (in)famous calendar and resource sharing app (for cars, rooms...) (outlook, IMAP, lotus notes);
- the automatic dictating machine (vaporware since 1942 IBM powa);
- the Türk Machine also called I.A (yes big blue won, but they kind of cheated by putting a lot of human intelligence in the mechanic);
- mistakes originating from human operators (like typing last name ; we introduced some mistakes  by removing accents that are making collisions that overwhise would not be there);
- embezzlement (SQL was supposed to make accounting related operation so clear auditing would not require knowledge of computers);
- trust : blockchains/GPG are sensitive to majority attack that require just small cheap distributed local temporal majority attacks repeatedly to win, and central authority that are all the more corruptible there are incentives to betray. The more we use crypto the more we asymmetrically favors the attack of the people with the biggest budgets;
- systematic 60% delays/cost in delivery.
-  non predictable costs : and that is the worse.

The constant flow of new technology creating obsolescence in computer science is around 10 years and getting shorter. Real industries may invest in appliance that might require to be able to stand 40 or 60 years.

Nuclear plants were made in the 1970's and they still function thanks to the professionalism of our senior engineers.

But, some people's job and safety relies on investments that ought to last them 40 years. The cycle in modern IT is to fast for most activities and exceed most investment capacities of small to medium businesses.

If a good mechanical automata can be amortized on 40 years the industrial can spend more money on the juicy part of the automata : what it does. No more floppy disks are produced for 40 yo automata/robots, and some automata that can work perfectly for decades still needs them.

Think of automatas using Z80 or 6502 still used for signaling in railroads/metropolitan transports. Think of mechanical robot to knit clothes with instructions that feats on a floppy disk that requires a DOS format.

Do you really think having to change signals every 5 years to update hardware, software, transport a good idea? It is really a good investment? Is 99.9% SLA acceptable for a peacemaker? Are the investment worthy over time?

You know this is business. And it reminds me of one NASA exceptionally good idea.

Yes NASA can be smart.

They noticed there was an asymmetry in knowledge. It is easier to train Phd in physics to have elite military aircraft piloting skills than the opposite.

Why? How is it possible?

Since appolo 13 risk management is top of NASA's concerns.

So they actually want people to NOT die piloting aircrafts. So obviously what they do, seems totally counter-intuitive. Favoring non-piloting skills to improve the survival of people that are going to pilot planes.

Is NASA crazy? (Yes mainly, but) What is special about NASA's piloting?

Well, shit happens. And for this the pilot must have a good intuition of his context. The physical context. Decision taking for such important and costly missions implies that pilot themselves can adapt and take decisions faster and autonomously because a lot of worst case require reaction below the time of speaking with experts just to say help.

Basically NASA pilot not only have a skill of the tools, but they have an as good as the designer intuition of the plane. It also helps communications and fluidifies coordination that is critical. Being Empowered is not only about having more knowledge and patted on the shoulder it is also being given life threatening authority and responsibility.

This is what I think is the biggest change that have to happen. A virtuosity with tools in an non liable autistic way does not produce anything great. Context matters more than tools.

Industries for which IT is a cost center should experiment replacing their IT specialists by professional to whom they give IT formations. And workers and boss should work hand in hand to define their objectives in terms of investments and objective.  With their shared common knowledge of seasonality of activities, regulations, costing, planning.

A secured 400$/month websites with social blabla for a restaurant maybe top of the art for SEO. But it may not be as valuable as a 400$ direction sign on the road clearly stating that there is a restaurant at this place. Sometimes not using IT is the right IT answer. Information is the keyword. It does not always have to be on the internet to be information. And there are other metrics than media exposition for effective information strategies. Like how much added customers made their way to the service since changes occurred.

Human Resources should consider focusing on people knowing the business over tools. For the same reason important function in the enterprise are paid well developers, project managers ... designers should be liable. It should be as a developer a pride to encourage his boss having his or her code audited by an independent team so that you know your boss is vigilant and controlling. All workers have interest in their boss making money and being in charge. And if computer development is that strategic, there should be a code of the profession defining the rules for liabilities.

The right to be protected by law if we are forced into doing illegal according to our knowledge. This is required for being trusted to make software that can conform to the laws of the people. We act as a man in the middle. We should make sure people can trust us. It gives us more value, it gives users more confidence thus more value to our businesses. Business is all about trust.

The acceptation of liability on delay as long as domain and business requirements are clearly stated in its business/contractual expression and that budget is accepted.

The right to not pay to much for the investment in our time for learning new skills that profits a private interests (and that can lock us in and make us bribed).

The possibility to refuse jobs on the markets that are not conforming to the basics of business and regulations.

Defining a profession is about trading comfort for recognition. It is also ensuring the mean for the like of us to work in better conditions where we can achieve better with less frictions. Frictions often comes from misunderstanding.  

In the history of professions, the practice always created the profession. No government, no investors, no merchants, no teachers, no academy or landlords ever defined a profession. It has to be internal.

Profession has always emerged from legitimate practice and the need to resolve emerging conflicts raising from the disruptive nature of change. It is only the one who do that can enlighten businesses and regulators.

At one point, profession becomes evident.

It is what makes us proud of our skills and how we know it works and how we believe in our usefulness.  It is defining a formal set of rules to begin enforce the positive element of our work culture and also what could be corrected. It is creating a virtuous circle. It is also about taking part in the education of future professional workers. Not doing it, but taking part in it. Without transmission of culture there is no culture.

When actual practices, economical incentives and regulations needs to be changed, historically it has been the one who heralded for progress that won. Because every one prefer to have hope and feel okay with people claiming not for a bigger share of the profits, but for a better share of the profits. If we do not change our jobs may stay and probably worsen, but above all our profession might disappear.

I am like Odysseus. I don't care of the difficulties or the Gods.

I am to alive to give up on dreaming yet.  I still profoundly reject the actual state of coding as heralded in most magazine, by my coworkers, blogs, startups, OS/coding meetups, companies and conferences. 
But, the surprise of the future is that you never know where your steps will lead you. And there is nothing wrong in having hope.

I see some of you smiling behind a grey veil of fatigue. That is the spirit. We can transmit our knowledge and help people. The old men (according to the standards of the modern corporations) can still make a difference and bring value to our society.

By staying humble but proud in an era of hubris that clearly is resulting in a financial bubble we can prepare ourselves to save the day when it will matter. Let's prepare before it is a total mess.

It is when people will wake up from the hangover of QE / 2007 /2000 crisis that they will understand they truly need professionals thinking in terms of business value with an ethic due to the awareness of their responsibility. Broken young professional will be left un-adpated on the business market. Both a threat for them and their future companies. All will need help not judgement.

Silver bullets (Agile included) must die and must be replace by a clearer contractualization of the profession where the business perimeter of our function is clearly defined with responsibilities and authorities. A definition that will stand time.

And since Computer Science means nothing I prefer to define my profession like Practicien Informatique (Craftsman in the automation of the flow of information) when I operate, and ingénieur informaticien when I model, design, plan the costs and price, validate the contractual terms, plan prototyping, do the risk assessment. I could even apply my knowledge to mechanical based automata for irrigation requiring a screw driver to be set. Tools do not matter. Data is what I treat, Information is what the business see, and in the middle I am a proxy doing my best to conform to the business.

I do no more no less.  I am focused on costs, prices, the best practices and ethics related to be entrusted personal and business data and staying informed on the evolution of risks. I minimize your risks therefore I am. I am here to make you objectively able to achieve your objective in your given constraints. That is the profession I will now try to define and build in my future. The one I wish to see.

All the rests angular, agile, TDD, languages, frameworks, web technologies, crypto,  the cloud are important but not a primary concern in my practice.  They are just the moving part of my job.  The stuff that represent more of a distraction because they can break or change than an asset.

Non sustainable : IT is in a bubble due to overly cheap entropy/energy

Have you worked by an Internet Service Provider or any activities related to energy distribution?

The profile of consumption in developed countries is the same:

Activities peaking up early in the morning with max before people eat. People come back from eating, works and decrease their load until business hours and then activities from evening to night.

5/7 and on week end a lesser activity.

Have you got any physical intuition?

The answer is YES: you all have. So let's use it.

So we have basically concentrated the activity of human beings in such a way that we speed up our works by synchronizing business hours. The result is congestion: on the internet, on the transportation grid, on the allocation of resources for keeping kids...
To handle a system in congestion, we throw more energy at the congestion; building bigger roads, more transportation, scaling up our internet pipes. Diminishing the overall efficiency of each of our daily action requiring use of resource for sustaining our way of life.

Scaling up in physics tends to throw diminishing returns. Power throughput vs efficiency are antagonizing and it is described by reversibility. The more power you want to extract of an energy source, the more violently and irreversibly you destroy it : example explosive bombs are a direct application. You cannot find the components of the initial reaction after, and the entropy of the universe is higher. Used another way you can extract more useful energy (than heat) but you require more time.

Another example is Stie?rling engine vs Carnot engine. Efficiency of Carnot is less, but with a greater loss you achieve more power.

The new energy challenge is wrongly thought about energy. It is much more about the available usable pool of accessible entropy we can diminish over time.

Given our actual knowledge and the inherent limit of physics (causality and equivalence principle) we know we have a very limited pool of entropy we can transform per unit of time. Solar insulation, wind, heat of the earth, fossil energy, nuclear energy, hydro energy, living stuff (that diminishes locally entropy by increasing it on a higher level).

The increasing consumption of entropy generated by our way of life is making us leave in a negative overall system.  We borrow more we can replenish. We are making a survavibility debt. We borrow on the entropy available for the future generations in an irreversible way and at one point there will be no coming back. 

We actually generate more entropy daily than we soak it. Hence we end up producing one of the most degraded form of energy in the atmosphere that is irreversibly hardly recyclable : disorganized heat.

And that is why Fourier claimed that human activity results in global warming. Temperature is just another name for entropy.

Our planet has a limited overall pool of available fixed entropy, and have a potential daily refurbishing of it (eolian, photovoltaic, hydrology) that is not predictable.  But we live under the tyranny of 24/7 human activity.

Most people forget all these pools are coupled through the movement of a fluid called air. You cannot think of alternatives. The entropy equation is global because of the climate. Shifting the debt from coal to nuclear, or eolian, or rare earths (batteries) ... Does not essentially changes the existence of the systemically improving debt, it just changes its accidental nature. Like a diversion. It is just a transfer on an another limited budget or resources.

Through chemistry we can with Faber process transform heat and chemical compounds irreversibly in boosters of living production called Potasse and Nitrate. They are useful to feed the whole planet. We could also use the natural cycle to achieve with a better efficiency the same result but on longer scale of time with locally less productivity.

Thermodynamics is about the way we create an energy debt.

And it is growing.

Look at a web page.

1000 meaning full words at most and already 1Mb of data loaded through n web servers available 24/7 from every where around the world.

Nice feature.

S = k ln(O) where O = sums of relevant choices other total choices.

I can't help but notice that eye candy is not meaningful information. Nor ad trackers.

in 10 years we have multiplied the entropy generated by document passing of ln(1000) =  2 ln(10) just looking at the row information loaded per HTML pages.

We have directly multiplied the minimum energy needed to load any web page by 6.7 as a DIRECT effect with diminishing return.

And also. Look at all the crap on the internet. Do we have relevant new piece of knowledge or isn't internet filled with increasingly NIH and noise? So entropy due to Noise/Signal ratio also increases in a way I cannot evaluate.

You will say computers have been more efficient. I will say bullshit crap.

New Highly Available architecture (like bloggers) require multiple levels of infra. And redundancy to achieve .1 more in SLA does not scale well.

Exemple: if multiplying your clock seems a good idea it has all the more diminishing returns we are close to the physical limits of speed of light.
Then, doubling your CPU/threads/datacenter/dockers/VM brings only a marginal benefits of 40%  per each doubling

If IT architecture DO scale, it is mainly because IT industry does not pay energy at its true cost.

Most of the price of the internet (routers, IP, bandwidth, allocation and operations) are paid by the customers paying for unsolicited information. Even the one not using any free products are paying for free users of gmail & al. Internet in its cost structure is like a thermostat on which commercial companies plug themselves to parasit the resource gathering of the whole planet.

And IT is not the only industry making its profit by sacrificing without control the future of our civilization.

And that is the last reason I quit IT. I will not take part in condemning the future of humanity by my own work.

I am good enough in science to know that what I do is wrong.

I am also convinced that throwing more power on the grid using batteries is wrong. The new green tech bubble is not thermodynamically justifiable. It comes with more entropy being generated in the process of storing and transporting energy while relying on more entropy debt.  Just on a new budget. But the number of accessible budgets are limited by the nature of entropy.

The solution will be to adapt our work rhythm to the cycle of naturally available energy that will be used with the less loss possible. And to favor back natural adaptive locally reversing entropy  reactors called living beings over mechanical workforces.

- using boats on river instead of trucks to transport merchandises and accept slower delivery;
- using eolian energy for direct mechanical conversion (water pump, mills);
- using hydro-electricity only when dam are full and new collect is expected;
- letting micro organism slowly build fertilizer rather than Faber process;
- having animals both used for they power to help on the field and as food in a quantity that does not imbalance the biotops;
- letting local producer survive according to the entropy efficiency;
- dynamic websites closed out of work hours if useless to avoid energy use;
- denying private property so that we can use like native Americans a globalized nature as a plant able to give and build resources (plants, mammals, trees) we can use for our global interest.

I think there is no IT bubble right now. IT Unicorns are built on absurdly cheap power given by the limited pool of fossil energy that is ridiculously NOT priced correctly when all costs are taken into account if we consider that Humanity does want to still be alive in the future.

We have family, we have kids to protect. I do not think our objective is to condemn them to die or set them on the track to do so in a catastrophic way. 

I think it is time again every citizen just try to re-use the little knowledge they learned to evaluate what I say and decide by themselves after thinking critically if I am wrong and if our actual way of life really worth is.

Our future and the future of our family totally worth we invest a little time for thinking. It is not acceptable as human beings we give up on improving the world. We are setting a wrong example.

We are all gonna die. Our kids too. It is the law of nature and the curse of locally diminishing entropy. That is the reason why time is not symmetric in physics at our levels.

Before we condemn our kids selfishly like a psychopath millennial apocalyptic sect, I think as an atheist, that we need religions & citizens to wake up.

Science and religions are orthogonal, and I also think that now more than ever we need religions to stop fear science and promote it. Science is also stuck in an academic (value of authority) posture that is counter productive. It also has to be reformed. So I clearly don't rely on actually broken institutions.

I don't know why, science and religions to face the problems are trying to impose a one best way that does not exists (yet?). We need to think harder. We have to trust we can do it. We have to have Faith in ourselves even if there is no Gods or science.

Our whole way of life needs a solid questioning on why are we there?

Do we want to live like happy selfish Pavlov's dog to scared to look at our destiny and condemn ourselves predictably or do we want to resume the amazing Odyssey of Humanity and write new amazing adventures to the book of our specie in new imaginative ways?

I made a Choice. I will take the second option. And the second option is antagonizing with most business models of IT (not all of them) that do not think of their global entropy debt.

IT evolution is one of the less sustainable one ever in human industry right now. I will not work for it given my potentially incomplete knowledge. But I dare take a stand. If I am wrong, educate me better and come and convince me. It will not be the over way round.

And I will boycott working for any companies that will endanger by its recklessness the future of my families.

It is by taking our destiny back in our hand that we have a way to deviate the future from potentially harmful consequences of the decisions of a few that are never liable.

Liability and considering every one are responsible of their action has been a major break through in making human specie able to progress, innovate and negate randomness. Let's resume this positive thinking.

So far we have done well, let's trust our history, our pasts and let us resume the good job of our ancestors. We are no weaker than past heroes. We are like them. It is time we become the heroes that will save our future, standing again on the giants' shoulders.