The poisoned ecosystem of software industry

People like to use words like ecosystem and sustainable, but do they really understand the analogy?

One of the very dogma of capitalism is industry has to be self sustainable to survive and that software industry is virtual / cheap.

Well, no.

One of the bias of people regarding computers is that it is rational and scientifically engineered.

Well, no.

It looks organic. It could be said to be made of food chain, species mutation, territory and resources.

Let's take an Operating System (O.S.).

An O.S. has a territory is it called Hardware (HW).

O.S. can be from the same species (like openBSD and freeBSD) or different species (like windowsNT vs QNX).  It can be a "son of" another OS (like CISCO iOS from BSD, ubuntu from debian) it can be a cousin (like net/free/openBSD), it can diverge or converge from its species. They can be hybrided, specialized ...

Like organisms OS have adaptation traits (specializations) like security, portability, desktop.

An O.S. without maintainers dies from lack of updates.

A bigger O.S. requires more workforce to sustain itself.

An O.S. has a potential of sheltering itself an ecosystem (like the human guts) according to the environment, these ecosystems made of drivers and software can be parasitic or symbiotic.

OSes like species adapting to evolution share a global context like the global warming or the acidification of the oceans and they can develop strategies of adaptation. IPv6 is such a global change.

Most companies sees big O.S that can do everything a good thing, and expect a survival to the fittest ensuring them a productive one size fits them all kind of OS or a reduced ecosystem. In this companies are like shepherds. They want less diversity, and more productive OS that evolve fast.

The problem is other companies : HW makers are responsible of fast change in the landscape : if they don't add features to their HW they cannot maintain a wheel of continuous change ensuring them a competitive advantage hence a continuous flow of cash hence survival. In this HW development is like bacteria. But without the continuity of HW there is no OS. They are tightly coupled to each other's survival.

O.S. fight for a resource: time of coders. Some coders like ants tends to cooperate for a mutually positive outcome (symbiotic). Others wants to explosively get the most of the environment (cicada/parasits) because there strategy is different according to their seasonal lifetime.

However, the world is bounded.

The more the O.S. grows, the more resources (devs, energy) is burned, and the more the inefficiency of the organism is (like a cancer). Resulting notably in higher surface of vulnerability, longer time to market, higher TCO and fastest rate of dying of installed O.S.

if the O.S. is a specie than an installed computer is a specific member of the ecosystem. Then software are functions (like leaver, kidneys) and documents/data/operation are fruits. But instance of OSes are steriel. They don't evolve. Their life is a long story of growing entropy and Mean Time Before Failure. They have a limited lifetime that get shorter and shorter.

OS are competiting for time. Capital bubbles favor to disregard operational expenses in favor of violent acquisition of the market by elimination of the competition.

Thus we are favoring OS that have a high metabolism in terms of energy, RAM consumption, resources, dev's time.

The life cycle of installed computers are diminishing. While the life time of developers are the same.

However, the real world has not changed.

Take a book. Store it in an adequate temperature/pressure storage. The operational expenses for conserving the book will be close to 0. And the cost to accessing it will stay the same.

Take a digitized book. Every months it will require electricity, from time to time it will require validation that the support is not degraded, it will require upgrade of the computer storing it, or of the physical media or data format.


The cumulative cost of the digital economy for long lasting "fruits" is sky rocketing with the cancer of the industry, making capacity planning impossible.

And humans die. Developers die, taking their knowledge to the grave. They also have limited available time (especially hobbyists). They need to sleep, mates, take care of their offspring, live... and the more coder on a task the less efficient they are.

While some lonely computers are still used for vital tasks : controlling planes, nuclear plants or weapons, billing or administrative tasks.

The non bounded explosive growth of IT for more features/resources supported by the inextinguishable thirst for novelty is resulting in a luxuriant eco system where species appears every days ... resulting in the death of others while impacting the real world and resulting in a global death march for novelty. We never saw that many apps, stacks, concepts, language growth than in the last decade. And ironically most apps/software are just poor rewriting of old softwares (how many old 80's games have resurfaced with new (c)?).

 Some see the IT ecosystem in a closed system limited to bytes and bits.

However, it impacts the real one, it impacts notably the life of a specie called human beings.

Thanks to the IT bubble it is possible to over-invest in software with non sustainable calculus on the life of OUR specie if it can be amortized on 15 years.

We are not slowly losing the capacity to save our knowledge in the form of books, or songs but we also try to automatize knowledge that are necessary to the survival of our specie.

Why learn to make bread, or conserve food when just pressing a button can make it for you? With limited amount of time people invest their knowledge strategically.

Why learn about something as complex as maths, experimental science, biology,  chemistry, physics, CPU and try to understand your ecosystem when it is more efficient to be able to code automaton in python or ruby. With a well defined API doing most "basic tasks"? (Who cares if there are edge cases?). Survival to the fittest.

Big is beautiful has become the motto. Data must be big. Computers must be expensive  and have more resources to prove your social status, your OS/software MUST  be doing the maximum. Workers must know MORE.

We all live with the idea that the bigger and more violent an organism is the less likely it is to be destroyed by the other one.

Like dinosaurs our IT ecosystems favors big is beautiful and think it is all about being the best dinosaurs in the pool. But we have big high metabolism beasts that get more and more sensitive to their environment and diseases (virus, net disruption...).

But big is vulnerable to global accidental change.

May it be the costs of energy, the explosion of a financial bubble, the self poisoning of the ecosystem, a change in copyright laws, an increase in the cost of internet due to IPv6 quirks, a change of paradigm...

And you know what?

More and more free software devs are getting bored of this shit. The symbiotic behavior that helped commercial companies have a strong basis for their income has been replaced by a parasitic and violent behavior based on domination and a fast changing ecosystem. Modern IT is based on a brutal harvesting of the low hanging fruits left by the previous generations of coders without taking care of the ecosystem. OS, code, HW, education are degrading.

The numerical world has probably irreversibly taken the turn of a transition that is making life cycles of everything short, parasitic less efficient.  Our installed computers needs their fix of updates permanently to stay afloat or else they get contaminated by viruses. Old totally functioning computers having vital tasks are on the verge of extinction due to the disappearance of floppy disks, serial ports, knowledge... and the cost for replacing them get higher everyday.

At the opposite of a real ecosystem, there is no recycling; when a computer for a task dies, it does not self reproduces itself. Computer don't magically self heal, feed themselves.

There is no ecosystem, because, it is all an artefact coming from our imagination.  Calling IT an ecosystem is the poison. IT are mineral, they are yet another infrastructure like roads, railroads, water pipes that degrade when not maintained. And the more we divert money from maintaining vital real life infrastructure to spend on IT infra, the more they all degrade.

We are just building stuff that won't last. We are using amazing amounts of energy, workforces, copper, gold, gasoil, rare earth to build an industry that is not sustainable on the long run.

When IT will disappear as suddenly as dinosaur it will take away all the fruits of our works : blogs, numeric content, automated tasks resulting from former manual knowledge.

But you know what? I don't give a damn. I will probably will be dead when it will happen, and at the opposite of computers I can adapt, mend myself, make, grow, harvest my food. I have other goals in life than convincing people.

And I don't fear change because I am a true organic creature.

Will I take a new job in something I think is doomed? Well, I am a craftsman liking old mechanics having pride in being a dinosaur myself. I will do my job. Even when I have no illusion for the long term, I just hope that it will happen later rather sooner to keep my incomes to sustain myself.

IT future is dark, but it maybe just a consequence of a broader problem that I cannot fix. And I advise every one to follow my example : do not care of problems you cannot control and just live the way you want free of your opinions,  and focus on what is really valuable : your life on earth that includes having pleasures such as speaking freely.

Computers are a messy abstraction hence we are pro janitors.

What is professionalism?

Most profession defines themselves by their capacity to produce for the least costs.

And IT may define itself by its high level of experts: people that can tell you what to do, but actually don't know how to do it.

People tends to think the best approach to computers are mathematics, especially the knowledge of function(al).

But even if The Art of Computing (Donald Knuth) is a very inspiring book that should be read, even if LISP and related ideas are worthy, they are wrong at the intuition level.

Computer is about cleaning, because no computer intuition can be built from math.

It is like cooking.

Every one can cook. But a professional cook
  • can make money out of it by mastering its costs (sustainable);
  • clean its kitchen all the time and organize its work in a controlled fashion (guarantee of means);
  • do not poison its customers (guarantee of results);
  • can reproduce a same creation more than one time, while he has ability to create (Quality).

Every amateur can cook. But amateur that cleans efficiently are few. And cleaning all the time is the main hidden burden of professional cooking, however, without cleaning first you cannot cooperate in a limited space without burdening your coworkers, then you risk contaminating food. 

People want to reduce professional cooking to chemistry and tour de main (poaching eggs, soufflé, risotto, emulsion, Maillard's reaction)... others to the capacity to feed people. However it is the tip of the iceberg ; it is all about cleaning.


And my point is Math is not even close to be the chemistry of computer science, it is physics : dealing with ugliness, hence a lot of words we use from math are misleading.

Let's take the classical approach of what is a "function" and let's see why it is an un-professional misleading intuition.

a function is easier to describe as something that maps an entry space to an output space. Function can be inverted, combined....

Let's define in a meta language that looks like python :
def incr(x):
     return x+1

def decr(x):
     return x-1


def apply(n, func, arg):
     if not n:
          return arg
     return apply(n-1, func, func(arg))



We have a nice function that should be in every book as the simplest function possible

Well this is a lie. This is not a mathematical function because first it does not map an entry space to an output space and because it makes an ellipse on where the most of the hard work is : being a janitor.

Why a computer function will always be mutable


I call incr an effector. Given an output, it gives you a result that can range from expected one to unexpected. It changes the computer states.

Why can the result can be unexpected?

With ASM it is easy. The registry are made of bit values that according to the operator will be translated in various distinct operations. Addition on floats or integer, BCD ....

Computer integers/floats are segments varying according to the size of the computer architecture (from 4 to 128 bits usually) and conventions. The mathematical inversion of incr is decr defined with the following immutable rule:

incr(decr(x))== decr(incr(x))
incr . decr  = decr . incr = identity
Thus if incr and decr where pure mathematical function for all integers x we would have that there is no way incr(decr(x)) can cause a problem.

Since it is linear algebra I could also combine functions for optimization by reordering series of increment and decrement to avoid combining function

so I expect for all n and m with n>m that are integer for every values of x that all following results should be equal
1) apply(n , incr, x) + apply(m, decr, x)
2) apply(m , decr, x) + apply(n, incr, x)
3) apply(n - m, incr, x)
4) n - m  + x
5) x + m - n

I have used the mathematical commutativity of operation and we know about integer space in mathematics. Most mathematicians I have met seems to ignore that all mathematics are not linear there is an amazing lack of knowledge on stuff like hilbertian algebra, groups, anneal .... They know the words, they cannot recognize the idea when they see it.

In fact, all of this are not equivalent.

The janitor of computers have to deal with the ugly part : flawed mental models of  experts.

if x is a "computer" integer ... it belongs to a bounded segment and incrementing or decrementing too much can generate an out of bound error signaled by a flag that can be set after the operation on a register. Flag that modern languages signal mostly with errors or exception interrupting the code. Flags that can either raise a trap on CPU or set flags you must read to know something bad happened.

More over, if you use "bigint" (Perl, gmc, native in python), you can consume more than your available memory, raising another case.

And, the apply function that is a stupid tail recursivity can blow up my stack, raising another interesting case to handle. Functional addicts prefer recursion to simple for loops... because they don't use variable... instead they consume a precious resource call the call stack. Smart thinking. Instead of one register let's use unbounded memory that can explode to your face. Do functional programmers seems to care? Of course not. Their world is a world of an Aristolecian mathematics that are pure and perfect. Errors comes from the un-educated not understanding the beauty of pure theologic concepts such as monads.

And least but not last computers used human generated input (which are often strings) as an input raising yet another nightmarish circus of failures.  (wrong encoding, incorrect inputs, mis-copy pasting, blame my mistakes on the computer, yet another silly misguiding UI...) that requires a lot of work.


So most of my code for dealing with this stupid "functional" example in real life will be about transforming the input, checking their validity and non commutativity of real world, handling resources, expected and unexpected failures and finding meaningful messages and way of signaling in the correct plane (logs, stderr, clearly redacted and internationalized exceptions what went bad.

Given n,m,x carefully chosen, I can have an expected result or an exception if I don't order them correctly. 1 != 2 != 3 != 4 != 5 when it comes to dealing with the boundaries and I can face multiple different output from stuff I do not control.

As such, the computer is mutable. The results given by a simple addition gives a state.

Most pointy haired boss would say forbid invalid input BEFORE processing.

Well, some of the input of my programs maybe "external". Like the input of a web service or a perf counter from an OS or a language.  I do not control them.

So basically because computer do not work on space (that are infinite) but on segment (that are bounded) my so called function are NOT commutative. And worse, this non commutativity can result in exception for operations that the CPU could be able to peform.

For example

incr(decr(decr(MAXINT))) = MAXINT - 1
decr(decr(incr(MAXINT))) => KABOOM

Thus when combining carefully protected function, I have to revalidate the input to make sure it will work. And there is still no guarantee it will works.

Also, bear in mind human are using code. Some are distracted or incompetent (99%) others are evil or just bored (1%) and want to watch the world burn.

Every time I give access to a function to the outer world when I let code crash it can have unexpected results: my code maybe incorporated in a web stack that maybe configured poorly firing a debug console for each non caught exceptions. So most of my code is decoding strings, validating them and carefully handle the exceptions and distinguish the one I control (out of bound numbers) with the unexpected one (failures, attack, resource exhaustion).

So by nature what we call function in computer science should more appropriately called a model.

There should be 2 models :
  • sensors modeling user input or data coming from sensors and their failures;
  • effectors modeling expected output from input and signaling properly all the range of output possible. 
A computer function in dealing with its input is a sensor, and an effector when it executes, and since effecting and sensing are the same in quantum mechanics (observing modifies the system) hence we can call them observable.

Since, physics is great let's say how code should be handled.

Sensors/observators in physics  all have probabilty of failures, they also have domains of validity.

Ex: x is not an integer it is a natural signed number belonging to a range of [MININT; MAXINT].

Observable have a probabillity of [true, false] x [ positive, negative] associated with costs. The role of a real project manager should be to clearly produce the matrix of costs for each False,True X positive, negative for every business model we code. 

Our code exceptions can happen in mathematically legitimate case for the model. Ex: incr(decr(MAXINT)) should be MAXINT

Since we combine pipelines of codes and since the correct ordering of operation now can be disrupted at CPU level, we cannot guarantee the proper functioning of our code.

Hence errors should be considered not in a deterministic way but in a probabilistic way with a proper appreciation of the costs of failure.

Project managers and coders should be versed in business/cost analysis and probabilities (of rare events).

We also share our environment, a code eating all the memory (or IO) in another container can balloon to the point of disrupting our operation (or maybe we have bit hammering).

External influence should also be considered as a part of the costing.


Well, you see, being a real coder is being a janitor: we have to deal with a world of so called experts and professional messing up with users and expecting us to deal with the mess they create and hammering us down every time something goes wrong.



Des cheveux et des religions, et du voile

Ma femme parfois me demande pourquoi je suis obsédé par les cheveux des autres alors qu'elle a un mal de chien à me faire aller chez le coiffeur.

En fait, j'en sais rien.

Mais en tant que personne élevée en France un truc me hérisse, c'est le coupage de cheveux en quatre, et le voile à l'origine qui est une histoire de cheveux.

«Le Monde», et moult autres journaux du centre de droite, de gauche, d'extrême droite et d'extrême gauche semblent ignorer le problème de la capilarité.

Les intellos sont souvent des gens biens, qui contrairement à moi sont intelligents et ne négligent pas d'aller chez le coiffeur. Mais négligent de vérifier la source de leurs préjugés.  Bref de vérifier, de lire.

Donc selon les élites françaises, le voile est soit un mal musulman qu'il faut éradiquer soit une preuve d'être un réac d'extrême droite qui ne sait relativiser les cultures différentes. Comme si ce débat n'avait jamais touché la France moderne. 

Hum. BULLSHIT.

Les gens de droites et de gauches ont torts, les femmes en Europe se sont battues contre le voile/le diktat de la longueur des coupes de cheveux. Le même imposé aux femmes dans les couvents, pour aller visiter les églises (pratiques toujours d'actualités en Europe dans certaines villes), et même certaines régions (la Corse, et le Portugal). Yes, en Europe les femmes se sont battues pour avoir les cheveux courts.

Voyez vous, messieurs dames, et j'y reviendrais plus tard le Coran ne dit pas grand chose sur le voile. Et ce n'est pas exactement l'ancien testament (supposé plus juif que chrétien qui en parle). C'est le nouveau testament.

Et c'est là de foi de protestant d'origine ... que je proteste sur cette histoire.

La folie voilesque est chrétienne, et par extension musulmane puisque Mahomet reconnaît Jésus Christ comme un des prophète de la foi musulmane. Le voile est initialement chrétien, suggéré par un des prophètes de l'Islam (Jésus) donc aussi musulman.

Or que dit Jésus sur le voile selon l'édition du Saint Livre immuable (la Bible) corrigée lors du concile (réac) de Trente?


Je cite l'évangile selon St Paul : (Corinthien chapître 11)


1 Soyez mes imitateurs, comme je le suis moi-même de Christ.
... 3 Je veux cependant que vous sachiez que Christ est le chef de tout homme, que l'homme est le chef de la femme, et que Dieu est le chef de Christ. 4 Tout homme qui prie ou qui prophétise, la tête couverte, déshonore son chef. 5 Toute femme, au contraire, qui prie ou qui prophétise, la tête non voilée, déshonore son chef : c'est comme si elle était rasée. 6 Car si une femme n'est pas voilée, qu'elle se coupe aussi les cheveux. Or, s'il est honteux pour une femme d'avoir les cheveux coupés ou d'être rasée, qu'elle se voile. 7 L'homme ne doit pas se couvrir la tête, puisqu'il est l'image et la gloire de Dieu, tandis que la femme est la gloire de l'homme. ... 11 Toutefois, dans le Seigneur, la femme n'est point sans l'homme, ni l'homme sans la femme. 12 Car, de même que la femme a été tirée de l'homme, de même l'homme existe par la femme, et tout vient de Dieu.
13 Jugez-en vous-mêmes : est-il convenable qu'une femme prie Dieu sans être voilée ? 14 La nature[?] elle-même ne vous enseigne-t-elle pas que c'est une honte pour l'homme de porter de longs cheveux, 15 mais que c'est une gloire pour la femme d'en porter, parce que la chevelure lui a été donnée comme voile ? 16 Si quelqu'un se plaît à contester, nous n'avons pas cette habitude, non plus que les Eglises de Dieu.


Bref pour résumer St Paul qui est un poil confus :
  • la femme doit prier couvre chef
  • l'homme doit se découvrir;
  • Mais comme c'est honteux pour une femme d'avoir les cheveux coupés il faut qu'elle ait un voile;
  • Parce qu'elle est inférieure aux hommes (wut?!)
  • Mais en fait les cheveux (long) des femmes sont un voile, 
  • Et donc les cheveux courts c'est bien pour les hommes,
  • et ça permet de distinguer qui est supérieur à qui...
  • Ouf
Bref la Bible dit Dieu (chauve?) >= homme  (cheveux courts) > femme (voilées mais cheveux longs == voile)

Est-ce à dire que les musulmans sont aussi cons que le chrétiens ?

Que nenni! À part le prophète Jésus qui en parle (cf ci dessus) le Coran s'en contrefout du voile. En fait il y a une occurrence dans le coran.

La sourate de Lumière (sourate/verset 24) qui évoque en ces termes le voile

Et dis aux croyantes de baisser leurs regards, de garder leur chasteté, et de ne montrer de leurs atours que ce qui en paraît et qu'elles rabattent leur voile sur leurs poitrines; et qu'elles ne montrent leurs atours qu'à leurs maris, ou à leurs pères, ou aux pères de leurs maris, ou à leurs fils, ou aux fils de leurs maris, ou à leurs frères, ou aux fils de leurs frères, ou aux fils de leurs soeurs, ou aux femmes musulmanes, ou aux esclaves qu'elles possèdent, ou aux domestiques mâles impuissants, ou aux garçons impubères qui ignorent tout des parties cachées des femmes. Et qu'elles ne frappent pas avec leurs pieds de façon que l'on sache ce qu'elles cachent de leurs parures. Et repentez-vous tous devant Allah, Ô croyants, afin que vous récoltiez le succès 
Bien entendus nombres d'érudits ont édicté des fatwas (interprétations) de ce verset pour dire que le voile était une allégorie. Néanmoins, comme le Coran est une religion où la foi est décentralisée, et que la foule a décidé de son interprétation, selon toutes mes relations croyantes islamistes magrébines cela s'interprète comme :
si une femme se découvre tu as le droit de la violer.

Comme je le répète, la religion musulmane est aussi variée que la religion chrétienne (papistes, protestants, cyrilliques, orthodoxes, baptistes, mormons, amishs, anglicans...), et est autant sujette à l'obscurantisme que l'Islam.

Des Perses, des Kabyles des Turques et d'autres musulmans m'ont assuré que cette interprétation était réductrice, et qu'il ne fallait pas généraliser la force obscurantiste du poids des traditions.

Néanmoins, force pour moi est de constater que l'on se fait toujours regarder bizarrement quand on est un homme avec des cheveux longs en kilt en Europe avec une femme aux cheveux courts. Et qu'un voile pour les femmes, ainsi qu'enlever son couvre chef pour les hommes sont toujours exigés pour visiter moult bâtiment religieux chrétiens en Europe.


Bref, avant de faire chier certains musulmans (qui le méritent amplement) avec le voile, certains apôtres des valeurs progressistes chrétiennes feraient bien de regarder la poutre dans leur œil avant de critiquer la paille dans l’œil de leur voisin musulman.

En ce qui me concerne, m'en foutant royalement des religions, et des cheveux, je suis pour le j'en foutisme maximal en terme de cheveux, et continue à regarder bizarrement les femmes qui suivent modes et traditions.

The troll in calling people troll

You may not be versed in Persian culture since Palmyre, Bagdad, Palestin are just in ruin and their culture has been constantly oppressed by various empires, but the story of Nasrudin questioning the common sense are very nice to read. Nasrudin was the first troll ever. He has been my model.

You can find some echos of this tradition in the uncensored translation of the one thousands and one night tales. It was my favourite child book.

Nasrudin was both depicted as an idiot and a wise man. And it was very hard to tell if he was stupid or smart. His constant irony was aiming at conventionnal wisdom and the authority of the wise.

In one word what we call the expert.

I will quote Feynman most important definition of science:

“Science is the belief in the ignorance of the experts”
Essay presented at the fifteenth annual meeting of the National Science Teachers Association, 1966 in New York City
I am adding the context because the context is important. Feynman was trolling the teachers. Implicitly telling them they were teaching kids the wrong thing : the obedience to the symbol/authority of science and not the critical rigourous of thinking and confronting your theory to the experimentation..

 Another way to turn it is science relies on rationality and constant questioning not on emotions or empathy and being right.

I am currently my own experiment on the topic for myself and my conclusions so far is I can predict when I will be called a troll. Why do I do it? Because I have time and something bugs me. The slow raising call to ban troll and criminalize them.

My methodology has been simple. Going to places and randomly defends random opinions based on logic and see how people reacts. Especially when I could find a simple counter example based on history or science.

And then for 3 months I have been experimenting on how to raise scores, how to avoid conflict saying the same things, and try to see if the troll were in my ideas or in the social networks. I have taken as a personal rule to avoid the use of fallacies because I believe like Arthur Schopenhauer that resorting to them is making discussion impossible. However, I used sarcasm, irony, bad taste. I tried to avoid emotionally loaded arguments but never resisted using loaded historical context. As the inventor of the Godwin point  pointed, well sometimes you faces a point where you can be indignated.  And after reading Indignez vous! from Joseph Hessel, I did like a lot of European adults, I realized it was okay to agree to disagree with the others and did not required a fight.

My experimental findings are qualitative but fairly easy to sum up.
  1. you will be more likely be called troll if you question common wisdom/sense or the authority especially of experts;
  2. the more factual and logical are your arguments the more it will backfire;
  3. the more you will be in a community making efforts towards tolerance and empathy the more the reaction will be violent. 
So basically my point is the troll is in the eye of the social network where you publish.

After reading Scott Adams analysis on how Trump may win the elections I got the final piece of the puzzle on how it works : the use of emotions in manipulations. Emotions are the enemy of constructive discussions aiming at exchanging.

If a discussion is about the grieving of your cousin, don't be an ass, emotions are normal in this context. Not all of them of course, but be human.

I would say that culture is informal rules that ignore themselves and provoking a troll reaction is hitting an invisible rule, and it can results in social mass reaction of reject. Cyber bullying.
Some individuals may turn in the cycle of victimization and reproduction in lonesome wolf troll, but I will not treat the exceptional case of the lonely troll. I just will share my intuitions on how communities are creating the ordinary trolls.

I have the belief that individual are more vulnerable when facing a mass. As a result I will mainly give rules of survival for potential troll. Not communities. A community hating trolls is just dying. My advice is vote with your feet against dangerous community. Death of toxic community by attrition is a good strategy.

Be an adult

I believe that the overexposure of young children to social media is potentially dangerous for most of them. They are not well taught yet on how to handle their emotions. They can either become part of the lynching mob, or the angry troll. I also think over protecting them is bad. So here are some self defense trick to help kids or people that get called trolls alike:

I would take as a warning signs for a potential victim the following signs :
  • has a strong negative or positive reaction to authority that is hardly controlled,
  • is for external reasons subject to violent contextual emotions (grieving, success, moving);
  • is strongly integrated or excluded to a local community (collective sport team, religion, political teen stuff, musical movement);
  • is/has been a direct victim of violence (rape, bullying, agression, wars, terrorism) and been denied their conditions in real life;
  • is diagnosed (for what it worth) ADHD, bipolar, depressive, dyslexic, sociopath, psychopath or autistic. 

Basically the most vulnerable person in our societies are more likely to be called trolls. And they basically are the person that have the more drive to make a point due to personal motivations especially that most actual vehement victims are often denied the recognition of their situations.

Technique to mitigate the problem
  • using /ignore features;
  • learning to retreat as soon as the word troll is being called. Loosing a battle is not losing war;
  • learn humor, sarcasm, irony and learn to distance yourself from the emotions, cut the empathy when discussing (emotions are cool for playing better music so keep them);
  • do RPG or improvisation or play music in public to learn how to feel a crowd and master your emotions;
  • read the The art of controversy
  • burn any social media accounts where conflict repeat themselves before you get spotted, fly below the level of the radar
  • your opinion maybe worthy, defend them, but learn to listen to critic as long as :
    • they are based on logic
    • you are treated on an equal foot
    • the counter augments are not crossing a moral line you can easily state
  • you also may be wrong, be prepared for it, it hurts your pride, but learning worth it;
  • learn to stay away from a fight the most you can and come back after a reasonable time. If after 3 days sleep you are still pissed, one of you is a troll, if you are pissed at you for having been trapped, do not answer! Sometime you fail or you are just not right. Live with it. It is totally okay if the person made a point to recognize it, even if you have been trolled. Recognition is a must.
  • READ. Read a lot of books
  • ignore the trolls, the most you can, the limit exists, but if this limit is crossed too often either something is wrong in the community you attend or you are wrong. Pick up your fights, pick up wisely. Some fights are not worthy. Learn to retreat and flee;
  • don't give up if a point is important, if you are a victim try to search strength where you can find it not where you think it should be, try, try, fail, learn, try, and try until it works. 
  • be peaceful. Anger, fear, are clouding your judgements, do not fall into the traps of violent emotions;  
  • don't follow rules given on the internet as bullet point blindly : be critical

Community management

You are expected as a community manager to do what is RIGHT, not morally or emotionally but for the sake of discussion

Here are some advice I would give:

  • if you have problem in your community : you sux; 
  • relativity, traditions orthography, grammar and universal values are a trap. Let people discuss based on reason and logic;
  • don't get involve in regulating discussion based on the subjective emotional pain  a person is claiming to have. Someone using empathy or emotion or politeness to try to settle an argument is probably a troll; beware of victimization;
  • learn to your community to use ignore features and propose it to them, spot the people getting trollish or trolled. Some person are better banned than sided/attacked dont hesitate in early kick of both trolls and trolled;
  • let people learn and check their progress. Failing is an option, persevering in failure is not;
  • don't trust people appealing to their authority/experience unless it can be established by facts;
  • apply to yourself what you apply to others. If you are a leftist pro tolerance group, accept that people disagreeing with you may be totally legitimate;
  • protect first the more vulnerable, especially the kids, the psychotics, the atypical not the strongest nor the mob;
  • pointing rationally inconsistencies will hurt the feeling of some; well, people have to accept this else no discussion are possible. A community is about discussing, disagreement are part of discussion, hence people will always feel hurt when they are wrong; we are all human beings;
  • people that often and easily offended by trolls are trolls; 
  • the only measure of your success as a community manager is the success of your community both on individual and global level; gives yourself some time to assess its evolution from time to time, seeing if some members progress, and if your community reaches some social objectives, and how active/joyful people are.  
  •  refuse any Code of conduct. But assert that every persons are responsible of their words and that it limits the freedom of speech (incitation to commit crime in privacy has to be considered the same as in public). Be consistent with your values;
  • someone calling on a third party for arbitration is more likely trying to try to win an argument by using an appeal to authority;
  • allow anonymity encourage use of recognizable nicks accountability when possible discourage it where it is a bad idea (like on a forum on how to find abortion pills in Brazil);
  • don't follow rules given on the internet given as bullet point blindly : be critical

In another context, with my team Section Finger, we have been managing successfully a public urban terror server for years. I followed these rules, notably by using kick/ban a lot with aggressive people and the results we had were the following:
  • early temporary kicks helps people cool down I would kick both trolls and anti trolls when we were playing, anyone arguing and polluting the game so there would be no benefits at winning a flamed arguments;
  • kids and women were going on our servers because they felt safe;
  • we disagreed on how to manage the community, but we all did managed it collectively;
  • the technical level was high, and noobs were making progress fast;
  • our servers had nice talks going through randomly, and it was nice to see a community discussing;
  • I loved being a community manager, because we shaped a nice community. 
  • once you set the dynamic correctly, you are likely to have your function disappear;
  • Kudo to myrmica who is now a member of team fr.
Given that mil fan boys, and FPS competitive users are pretty a trollish community by default, I consider I have been a good part of the community management, that is the reason why I feel legitimate in my advice.


After my unfun part that can be concluded by the raise of concern about trolls on the internet that is in my opinion a raise of censorship. I see most communities as the reason trolls appear in the first place. Reading french newspapers comments regulated by professional community manager is nauseous and full of racism, xenophobia.

Trolls are just appearing as soon as a community is pissed at someone not agreeing in their way. Some troll hunter are just basically hunting for diverging opinions, and are manipulators.

Trolls are the result of community management done wrong.

Fun discoveries

Most intolerant communities are open liberal & intellectual communities :)

I see it has a Donning Krüger effect; the people more likely to misbehave in tolerance are more likely the one convinced they are tolerant. The idiot and the wise alike know nothing about their aptitude at being tolerant. And that what tolerance is. Recognizing you may be wrong.

As a result the people applying for professional or benevolent community management are more likely to be expert, hence poorly doing their job. The only measure of a good community management is that there is a good community ... that often do not need a community manager.

For the same reasons, people convinced they are artists or intellectual or scientific are likely to be bad at arguing in respectful ways.

My overall advice is to avoid open minded communities for open discussion. Since Free Software is giving up on its radicality to open itself it does become more unfriendly to the differences of non typical thinking... pushing away the motor of its openness. 

People strongly asserting their intellectual capacity to dialog rationally are also dangerous. When I am in the mood for fun, they are my favourite victims of some perturbations, and it sometimes backfires in huge proportions. Yes, even with all my rules, it does not work perfectly. I still get caught sometimes in the net of polemic. Well, shit happens, and sometimes I fail. My results are telling me my understanding is still far from perfect. And I am okay with it : I don't have a perfect rule book for manipulating/educating people. It means I am not a master troll, just an apprentice on its way to learn. I am no expert... yet. And it is cool. For now I can trust myself a tad.

I actually know how to not piss people : you have to flow with the crowd, use emotions, and wait for support. It is very easy to become a leader. You just have to flatter the mass and I am as gifted to piss people as I am to manipulate them. I chose my path.

Resorting to logic and rationality makes your acceptation/success way slower. Your support to be less strong. There are two paths in a community the one leading to a strong self righteous community, and the one of strengthening the individuals to result in stronger communities.  You can chose to be the strong among a weak community or one of the weak in a strong community.

I prefer to be weak.

I will be no one's wise man. I am just an idiot, and I will keep it that way.




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)
https://en.wikipedia.org/wiki/Complex_number

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
plt.ion()
plt.show()

# 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):
    plt.plot(
        *to_xx_yy(
            origin_vector_hand * rot_sec(n),
            .95 * I * rot_sec(n)
        )+[n% 5 and 'b-' or 'k-'],
        lw= n% 5 and 1 or 2
    )
    plt.draw()
# 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]   
n=0

while True:
    n+=1
    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)
    plt.pause(.1)
    ## black magic : remove elements on the canvas.
    l.pop().remove()
    j.pop().remove()
    k.pop().remove()
    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:
        n=0
   


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.



Manifeste de la libérale démocratie

Hum, j'aime lire. J'aime Nietzche, un auteur confus traversé ça et là de brillants éclairs de clarté.

J'aime son attachement au passé pour construire un futur détaché de la tradition. Apprendre à distinguer les textes et les auteurs et se détacher des contextes et ne pas être partisan.

Se tenir sur les épaules des géants, même quand ils puent des pieds. Je suis un fan de recyclage de vieilles idées pour résoudre des problèmes nouveaux sans me maquer avec la tradition.

Je distingue le libéralisme qui est une voie vers la gestion efficientes des ressources physiques nécessaires à la survie de l'humanité, et le fait démocratique qui concerne la question de la légitimité des instances de contrôles et de pouvoirs.

La première partie est sur le libéralisme, la deuxième sur la démocratie et la troisième sur leur complémentarité harmonieuse. Et ... mon plan d'action pour faire que le monde soit meilleur en chantant.



Je suis un fan du monologue de Figaro par Beaumarchais et pourtant pour moi le magazine du même nom est tout le contraire.

L'ôde au droit de vivre non basé sur sa naissance mais la capacité à prouver continument sa valeur, et la valorisation du mérite dans un contexte non biaisé par la triche. J'adore ce truc. Étrangement pas les lecteurs du figaro. A croire que les gens comprennent les mots à l'envers.

Le libéralisme a 2 volets souvent opposés à tort : le volet du travailleur et celui de entrepreneurs. Pour les réconcilier on va aller droit au but: le travailleur est une entité libérale de base fonctionnant sur le mode de l'entreprise négociant sa force/énergie contre un salaire. Une heure travaillée = une heure payée et la limite de ressource disponible est celle prouvée non contre productive (cf le scandale des munitions UK 1917).

L'opposé du libéralisme est historiquement un système qui valorise soit un truc appelé les meilleurs qui dirigent pour une raison souvent farfelue (la sagesse auto déclarée dans la République de Platon par exemple), soit la naissance aka les plus forts et leurs enfants.

L'idée du libéralisme est que quand il s'agit de l'accès à l'activité économique, une concurrence saine est la base de l'efficience. L'invention du système international (dont je suis un fan) est historiquement une mesure libérale faite pour permettre aux consommateurs de pouvoir comparer les mesures des différents bien échangés et aider le consommateur à arbitrer lui même le marché en pouvant acheter grâce à un choix éclairé. Le consommateur est lui même partie intégrante de la force auto-régulatrice du marché si et seulement si il a accès aux informations pertinentes. L'information pour être pertinente doit être simple. En télécom aucun contrat est comparable par exemple. Ce marché est anti libéral ne serait-ce parce que l'unité de choix devrait logiquement être une simple unité de coût à la minute par destination.

Si vous voulez, le libéralisme c'est un peu comme une ligue de sport: ça ne devrait pas influencer l'activité économique mais juste s'assurer des conditions d'arbitrage permettant une compétition fair play.
Le capitalisme c'est un peu comme le PSG qui gagne une compétition juste parce qu'ils ont plus de pognons.

Le libéralisme est très sympa. Il a juste un défaut. Il est abstrait théorique, froid et s'en fout des Humains et est digeste comme un corpus de règles pour faire du sport. Bref, pas bandant à mon goût.

Le capitalisme dans le fait historique corrèle l'activité économique avec la naissance, diminuant la compétitivité des marchés et donc entraînant le gaspillage de ressource (en tout cas ça semble se répéter dans l'histoire économique). Oui je tiens le capitalisme responsable des problèmes de surchauffe de la terre. Si la naissance faisait un système efficient, comment se fait-il que les révolutions initialement libérales ont entraînées le lattage en rase campagne à leur naissance des monarchies et empires européens?


Donc le deuxième volet c'est la démocratie. Comme beaucoup d'anciens hélénistes je distingue la merde fachisante de Platon appelée République (où l'on croise les humains comme des vaches pour obtenir les meilleurs pédigrés et où l'on confie la direction de la Nation aux plus riches parce que comme ils ont réussi, ils vont faire réussir la Nation (même si c'est au dépend des autres)) de la démocratie.

Historiquement la fin de la démocratie athénienne (Clysthène, Périclès, Solon) coïncide avec la montée de l'idée républicaine de Platon et la montée de l'influence des riches immigrés (fuyant les conflits) dans les cités états grecques au détriment des traditions. (cf guerre du péloponèse)

La République est à la démocratie ce que le capitalisme est au libéralisme : des opposés.

L'idée de la démocratie, c'est que l'on ne sait comment déterminer avec notre sagesse qui sont les meilleurs d'entre nous parce que c'est intellectuellement vachement dur. Moi je ne sais pas reconnaître les meilleurs. Sinon, je serais pas en galère perpétuelle :)

La proposition athénienne est la boulée. Le tirage aux hasard des élus parmi les citoyens afin de garantir mathématiquement à moindre coûts à une assemblée représentative.

Les instituts de sondages exploitent avec un certain succès le principe de l’échantillonnage aléatoire des opinions. Il n'est pas nécessaire de tirer toute la nation au sort pour avoir un échantillon suffisamment représentatif. 500 ou 1000 devraient suffire.

Ce n'est pas parfait. C'est juste que le hasard est dur (mais non impossible) à biaiser. Je tiens quand même à conseiller la lecture de la Loterie solaire de Philippe K. Dick sur le sujet comme potentielle critique bien pesée du système. On peut truander le hasard quand les citoyens ne contrôlent pas.

En quoi la démocratie peut aider à corriger la froideur scientifique du libéralisme. Elle répond à 3 objectifs :
  1. les humains sont pas des machines: ils s'abîment avec la fatigue et peut être que la vie a plus de valeur que les billets de banque;
  2. les gens ont peut être le droit de décider de leur sort;
  3. qui contrôle les instances de contrôle? 

Traditionnellement la France est à la fois un pays de travail et entrepreneuriat.  Et il se trouve que j'aime bien les 2 idées et les trouve complémentaires.

Les Canuts lyonnais ont une histoire intéressante: ils sont passé d'entrepreneurs traditionnels à travailleurs suite à l'introduction des métiers mécaniques. Premiers automates programmables. Donc première révolution basées sur l'automatisation mécanique des tâches. Uber avant l'heure.

Pourquoi n'ont ils pas pu se mettre à jour? Non parce que c'était des fainéasses, mais uniquement parce que les banques refusaient de leur fournir le capital pour investir. Et une fois résignés au travail ils demandaient juste à Vivre libre en travaillant ou mourir en combattant ! 18 heures de travail par jour payés beaucoup moins apparemment c'est pas cool. A 10h par jour pendant 5 semaines je pète déjà un cable et j'ai mal partout et je suis pas vraiment masochiste.

J'aime bien cette idée que les gens puissent vivre librement et heureux. Le bonheur de mes voisins a tendance à m'influencer positivement. Je sais c'est con, mais le sourire est contagieux.

En ce qui concerne les entrepreneurs pour ceux qui ont tâté de l'aventure, on se sera bien tous pris dans les dents un état qui au contraire d'établir une régulation neutre aboutissant à une compétition loyale a une petite tendance à fausser le marché : par les régulations, les droits différents par acteurs économiques (SA qui peuvent frauder le fisc, SARL/EURL bien taxées et obligé de cotiser à des merdes comme le RSI, auto-entrepreneurs, chèque emploi services ....) et des subventions (Crédit impôts recherche tombant plus facilement dans les mains des anciens X que des universitaires ou autodidactes, subventions à l'exportation, et présidents VRP qui pourrait vendre des fromages plutôt que des armes). La régulation de l'accès à des métiers régulés par des diplômes qui favorisent la reproduction de ceux qui enseignent crée clairement une distorsion pour les travailleurs.

Bref, travailleur ou entrepreneur  le système actuel est pas ton pote quand t'es petit ou mal né.
Et c'est triste car tout le monde est pas égal face aux impôts qui ont une tendance à taper de plus en plus sur les mêmes populations. Bref, les petits acteurs se font bouffer. C'est ni sympa, ni drôle et cela ne correspond pas à ce que je souhaite pour tout le monde. Je me donne le droit d'avoir un peu d'empathie pour les autres.

Cependant, la révolution c'est fatiguant, salissant, casse couille et dangereux, et je déteste les anarchistes parce qu'ils sont tristes, et j'aime pas quand tout change tous les matins. Je suis un non violent, traditionaliste, optimiste avec un petit niveau en boxe si nécessaire.


Donc je préfère l'évolution en chantant, dans la joie la décontraction et le sourire.

Donc je me suis dit, comment patcher le monde d'une manière où tout le monde y gagnerait et qui serait légale?

Comment améliorer le monde et pouvoir éventuellement revenir en arrière sans casse sur les changements si je me trompe?

Ben oui. Je suis pas Platon, Lénine, Napoléon et d'autres. Contrairement à d'autres j'imagine que je pourrais avoir tort et que ce serait bien de valider qu'on fout pas le boxon. Je me suis souvent planté, je ne laisserais jamais personne me prendre au sérieux sans avoir peur des conséquences de mes idées. On sait jamais, ça pourrait être des conneries. Et puis le malheur des autres c'est mon vélo qu'on vole et je suis pas bien riche.

Donc mon idée est simple pour garder mon vélo. (Oui le but avoué c'est qu'il y ait moins de personnes qui volent mon vélo)

Comme je ne crois pas dans la neutralité de l'éducation publique ou privée, des médias de la culture, d'internet, des parties politiques je propose de discuter pacifiquement et de réinvestir les rues, les écoles, les lieux publiques et de recréer une dynamique d'éducation citoyenne par tous les espaces interstitiels encore tolérés et non censurables.

La surveillance des espaces numériques a totalement fait perdre aux états leurs moyens de surveillance humain. En plus l'accès à internet est pas hyper égalitaire. Il y a quand même pas mal d'illétrés (20%) qui seraient exclus, et d'autres pour d'autres critères. Donc, tant qu'à faire autant pouvoir y aller tranquilou pépère sans risques. Je suis pas un courageux qui veut monter sur des barricades. Vivre dignement ou lancer des confettis. Telle est ma devise.

Chanter, s'amuser, discuter dans la rue, publier des pamphlets tirés à pas cher sur une rohnéo, dessiner sur les murs, faire des T shirts amusants, faire du sport, fêter les solstices sont des activités autant dures à surveiller qu'à interdire. La liberté ça se prend. Surtout elle consiste à rendre les gens plus heureux. Sérieux, qui va t'arrêter pour inciter les gens à sourires et à reprendre espoir dans les valeurs de liberté, d'équité et de responsabilités civiques partagées? On a une crise de légitimité évidente des institutions sur les bras. C'est faire le boulot des institutions que faire ça. Si on ne croit plus dans la légitimité des institutions autant s'y coller soit même, non? Au lieu d'être le problème on peut être la solution.

Ensuite, le vote légitime le régime. Le vote blanc en France est certes comptabilisé mais non accessible à égalité des autres choix.

Je propose de commencer par faire une campagne pour inciter à un vote blanc significatif en le mettant à égalité avec les bulletins des candidats. Et juste rappeler aux votants que l'on est pas obligé de voter pour la peste ou le choléra. Et juste proposer un petit plus positif.

Les partis institutionnels vont dire, que fait-on quand le vote blanc est majoritaire? C'est la fin du monde.

Que nenni.

Je répond avec un grand sourire : on rembourse aucune campagne électorale et on exige le tirage au sort sous contrôle d'assesseur par un mécanisme PHYSIQUE facilement contrôlable sur les listes électorales. Pour éviter la tentation de criminaliser les opinions politiques je suis assez que nous incluions les ex-criminels qui ont payé leurs dettes à la société voir les gens actuellement en prison. Les militaires, les policiers, les magistrats.... Tous les citoyens même ceux traditionnellement tenus à un devoir de réserve par leur fonction.  Que le devoir de réserve soit tenu pendant la fonction, okay. Mais une fois tiré au sort les gens ont vocation à s'exprimer et pourquoi pas à récupérer les doléances de leurs pairs (sous le sceau de la confidentialité), ils seraient vachement légitimes pour ça.

Je dirais aussi que contractualiser les mandats électifs en annulant toute élection où les représentants du peuple ne suivent pas leurs engagements rétablirait un poil la confiance des électeurs dans la représentativité des élus. Il y a de la place pour 2 initiatives parallèles concurrentes : le hasard et l'auto-réforme vertueuse des institutions. Ne soyons pas stupides, si ça se trouve peut être que l'on va trouver le saint Graal de la politique : détecter les meilleurs d'entre nous d'une manière objective et consensuelle. Il ne faut pas abandonner la recherche de meilleures alternatives au hasard. Je ne crois pas dans l'infaillibilité des idéologies. Créons un futur robuste et des institutions à même de s'adapter. Mettons les hommes politiques en concurrence avec le hasard comme ils mettent en concurrence les entrepreneurs, les salariés et les fonctionnaires. Ce n'est que justice. 

Donc un système double, c'est pas si pire. Peut être que localement, les électeurs connaissent les meilleurs? On va pas leur dire qu'ils ont tort si on en sait rien.

Ensuite, on regarde ce que cela donne et on mesure les effets, et que les meilleurs gagne dans une compétition saine et ludique!

J'ai une vie sur terre des proches que j'aime, et je vois pas pourquoi je me refuserais le droit de rêver d'un monde meilleur et d'espérer y contribuer de mon vivant. Surtout que comme vous le constatez il n'y aucun crime, aucun combat, aucune violence à utiliser.

Juste un peu de bon sens, un sourire et un peu d'espoir.





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 wiki.python.org
https://wiki.python.org/moin/PointsAndRectangles

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 = Image.new("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")

im.save("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.