Why we should Say Bye Bye to Hello world!

In physics, when someone comes with a wonderful idea, the next question is: can you show us something practical -often just fun- we could do with that?

When introducing development the classical "hello world" example is there to prove how easy it is and how wonderfully any one can code.

At my opinion, this example is making incompetent companies and absolutely unskilled developers alike getting attracted to a field that may provide us money, but also the burden of their misconceptions. And sometimes cowardly I dream I could trade money I earn for living in a more sane environment. Yes I can trade freedom for comfort at this level of insanity.

Follow my steps in the realm of the white rabbit on steroïds.

 What are you supposed to do to print hello world on a screen?

Short answer :
  • open file
  • write incantation called programming
  • save/compile/give to interpreter
  • Magic Happens
Neat, no?
It is exactly the harmful way of thinking.

This short example is a kind of an ode to the black magic of reusability that is plaguing our actual world.

After you have done the hello world, you still know nothing jon snow.

In fact you ignore the biggest problem of programming: resources

Resources you are spoiling by requiring Gigabytes of disk spaces, and memory, screen, keyboards,  an operating system, 250W power supply, just to be able to launch your editor. 
The prerequisite you expect from a computer to do that is huge.

In assembly language the hello world example is pretty straigth forward.

Given the fact that we are given the full control of the memory and have access to both memory and video memory (the framebuffer). Than it may hold in less than 6k.

I have no operating system. Just memory I can read and write.

First I must think ahead. Does a computer know how to print a character on a screen at startup?



For this, like in hello world, a firmware on the motherboard with no know capacity of the world boot, probe its devices, and make the devices come to life.

Actually the motherboard could launch a software to do it... if it only knew of the thousands of peripherals sold everywhere and the code to boot them patched with the latest versions. But since hallucinated people falsely claimed that programming was about black magic, every computer user have been expecting  computers with no operating system loaded to already being configured enough to print stuff on screen like:

This is ambios feng shui 2008
Let me show off and print stuff on screen while I should not have been programmed to do it so that customers is happy watching my giblish status.


So on top of my 6 thousands as simple instruction as hello world, to make hello world works I also need tenth of thousands of lines of code to just have the screen come to life.

But How do I get this code?

By black magic of PCI.

A decoder with fixed adress that when are wired on the right cable can exchange informations for turning them on through a very elaborate dance like

Knock knock adress pci id (lit) model id (lit) I am PCI investigator, Decline your claim

Yes, "I am ...." 256 world CV to print for your amazed eyes. I also want these relative addresses to be reserved for me, and register these alarms for me, and set these parameters, oh and call me back later

This is done, your extra info are ....

Oki, now you can go at this address and jump into my firware in pure assembly and you execute it. Thanks....

Youhou I love to execute arbitrary code ..... Oh! and now I can execute routines with fixed address positioning to call code before your hello world exists! in my "console"! I can print my status...
I am the mad CPU youhou....

I would be doing a device claiming to be secured, I would refuse to have a computer execute arbitrary code. I would be scared to see a screen working before MY code has set it up to work.

So we stack black magic on black magic for the sake of unrealistic expectations. We want computers executing arbitrary code from outside vendors that can be founded by people with interests potentially diverging from mine to be secured... That is unrealistic.

We expect all computers to be the same with a purely abstracted twisted model that does contradict reality.

claiming this is atomic // executed in one cycle

*p = 4;

is a lie.

Memory should not be presented as linear. Because causality matters.

Hugh. When you design a computer, the speed limit is computed by the longest wire in nanometers, and then with basically the frequency being related to length given the speed of light as a limit you cannot do much.

Open your computer and look: memory banks are CENTIMETERS away from the CPU. make your computation, look at the figure, look at the frequency and say! Wut?

Yep, basically if we could access memory in one cycle it would make our computers millions of time slower. And the more the memory, the more the physical distance. So the more linearly accessible memory you have the smaller your frequency is. So real memory is never linear and will not tend towards linearity.

That is the reason to be of address bus, of L1/L2/L3 cache.

RAM is accessed in thousands of cycles, cache in hundreds of cycles.

The more memory you want to access the more layer of indirections you put.

Thus resulting in diminution of speed with the more memory you use or the faster your cores are.

The ultimate L0 memory is called registers. That is where we can do programming by playing with a memory model of at most 64 words in one cycle. No programming language let you access it. That is where programming really happens. In a claustrophobic place on a dire of silicium inside what you call a core. This place you are pushed away from by programming language and operating systems. You never went there. This requires a pure hellish initiation from which you'll come back seeing the dark side of the world. Instead you let compilers, interpreters operating system transform what you said in a code that may not respect your intentions.

So when you access the other memories (not registers), all the requests are analysed, decoded rerouted by circuitry.
They are all handled by the CPU with complex enough circuitry to be considered as a computer itself when you have learned to program microcontrollers.  It presents you data not from where you asked, but from another location. The cache. Magically! In the middle it may have disrupted the other code flowing in the pipelines. Breaking the claim of isolation.

It does the magic of performance happens, by handling 3 level indirection to mask the real performances of the computer and perturbing other code. The one you hit "only in worst case".

The worst case being ironically the one you wish to reach: your computer fully occupied to justify the investment.

Where is worst case? It is near the transition to full work in best possible case for a business: a lot of customers with different contexts, doing a lot of different things. You wish for every business to be at the crossroads between a lot of different profiles of buyers and providers. That is you wish to become a defacto standard in a place you minimize risks. Risks are coming for not diversifying your sources of incomes and of providers.

Well, that is the worst case: the computer will probably kick more often than average page faults. Thus penalizing the best case possible. because of expectations you had. You will work for the locality of variables : you are gonna therefore aim to cluster things, reduce differences. That is the purpose of bug data. Create ways to reduce customers to a set of "relevant datas" that is we classify them as sex, age, location ... You also have devops justifying the use of computer at 100% of CPU to reduce OPEX and thus resulting in a degradation of performance resulting in more level of indirections redirections, dependencies, availability ... making you sucked in the spiral of diminishing OPEX using devops black magic mantras. Did I said it also makes your CPU leak information thus making security nightmarish?

Hell is paved with good intentions and bankruptcy with inept costs reductions.

Just for avoiding a worst case in a computer...

Just because some believe in black magic...
Just because people have no intuitions...
Just because idiots propagate the rumour that when you do an "hello world" you learnt programming. No! You dislearnt that there is a price for everything, and people have done a lot of questionable choices for you regarding cost/price issues.
Just because of this, your choices are constricting your profitable business incomes.

You may not need an operating system in the first place. You may not need firwmare, nor a bus to communicate with the hardware nor even level 3 cache memory. You maybe totally fine using a 1.5 V battery to light leds on a gigantic banderolle in 255 levels of color per pixel for the length of 3 days comicon convention because you may not obviously want to bring on a light trip a full computer that has a 17 inch screens and install a C compiler, linux, maybe python, apache.... drivers for the banderolle that you might have to write if it is custom resulting in more lines of codes for the sake of the god of black magic of interoperability. Just writing an  hello world module/driver for linux outweigth the complexity of lighting a led in assembly language.

Hello world value a very bad habit of magical thinking about the use of resources.

Whatever happens the printf equivalent implies used for hello world implies an abstraction of interface and assumption that reflects a certain model of what computer are that is totally disconnected of reality.

The first lie of hello world is that the context in which you program does not matter.
That resources are free.

All business should be about mastering costs and prices. And people not caring of costs should be barred from being near production lines.

It is another lie of programming; code does matter. Code matters, but not as much as data structures. Because the art of data structures is to map the data the closest  to the wires in a fashion that goes with the strength of the computers. For stuff to print on a screen you want a contiguous memory mapping to make the "media/STRing/blitter specialized" routines to kick.

If you want good data model for accessing data in memory with a level of indirection, you have to have your data structure map the reality of the hardware memory.

For every use data structures are the place where the most gain in productivity is found.

Read this article for a complete essay:You are doing it wrong (PhK)

Yep, knowing of B-tree is more essential then doing recursion or OOP, or even functional programming. The language matters less than the fine control of your data locations.

Hello world focus on code. Not on data.

And with 4 pages I did not even raised the issues of the bloatwarish dependencies involved in hello world; "standard" libraries, module control, exec/thread models, scheduling, io and devices, dynamic libraries, security/user model, permissions, the optional agument in the signature of printf, then handling of the function calls with the stack, implicit memory allocations...

hello world is an invitation do get what is programming the wrong way. It is pretending knowing the map is more important than the territory.

Nothing comes as a solution except the careful analysis of a problem. Hello world is just a universal solution to your programming problems: exepecting developers with limited knowledge of computers being able to make code work good enough in a business context. Resulting in cashflow being poured in solutions with randomly diminishing returns, thus making your growth antagonizing with your profits based on your initial figures with a toy proof of concept pretending to "scale".

Pushing Hello world as the first introductive step in programming is as misleading as the claim that being able to turn on a flash on a camera is your first mandatory step as a fully competent photographer... Programming is not about coding, and bringing solutions, it is about analyzing and solving problems eventually by creating code when that costs less money on the long run than not coding. For this the complexity of computer should not be hidden by stack of magic.

Everytime someone is writing "hello world", Chtulu shimmers, kitten are killed, and you can hear the Apocalypse's Knights nearing, one hello world at a step.

Hello world is magic, thus it should be excommunicated of the programming culture and burnt as a witch. All references and books printing this example should be burnt in the name of the enlightenment of the people by pure reason. No obscurantisms should be mistaken with careful mastering by the experience of trials and errors. Amen.

How I am experimenting about plants, stochiometry and ecology

So, I am bored.

And when I am bored I do something new. And this time I am growing plants.

Tomato from old times. From before mechanization because I hate gardening, but, I love tomato with taste [easy to harvest tomato sux]

In the process I learnt a lot of thinks.

In fact, since I knew my great father was working on the topic, by curiosity I went to see his research [on fumure profonde] becaue I was disappointed at my results with just water and how my plants were dying.

I also remembered my talk with my totally ecology crazy neighbour [ecological stochiometry]

This article is not exactly about his talks. His talks are about ratio of C / H / O / N / K / P and how their availability favours some species, and also how the equilibrium can happen as an evolution of a complex system.  Complex system, chemistry, physics, non euclidean geometry and our families and eating good foods have always been our favorite talks. Actually, the topic is broader than my own plants, or not...

Well ... I live in a small flat in Montréal, I don't have the space to build an ecosystem. So I have to cheat.

Hence my grand father. To cut short: without prior knowledge, by using his hints and making my own KNoP (Potasse, Nitrogen, Phosphate) cocktail and giving them at the right time I have actual results.
Chemistry works: effect of non optimal 20 - 20 - 20 on my window chilis

What is the alternative to me using my great fathers KNOP chemical ratios?

Healthy food growing. With compost.

Well. My plants would die, it would be slow and it would costs a lot. I would not be able to feed myself, and, worse, it is NOT sustainable.

A compost's composition is hard to control in its ratio of KNOP. It is also hard to control the level of acidity (plants wants a slightly acid soil), and it is easy to grow bacteria, and stuff that can pollute your food, make you sick or kill it. The worst is the energy efficiency of the process compared to the chemical process to create the same chemicals "naturally".

As a scientific, I would not trust my knowledge without experimentation.

And growing plants has convinced me of one thing: so called organic sustainable development is not.

It requires too much energy, knowledge, money, time. It also generates a lots of waste and inconvenience.

Actually food being more expensive and less easy to produce is Malthusianism. Every part of the city where healthy food appear, it is a part of the population that either cannot afford to eat, or have to cut on spending, or is forced to move away.

In the same time, their tomato are not even as good as the one my father was growing.

I love tomatoes, I want to be able to help the world and the modest to share this pleasure, so I want to herald My own message: don't listen to rich spoiled kids and obscurantists stupid people. Learn to grow your own plants, learn to value the knowledge, and make your own decisions according to where you are, and what you have access too. I don't have space, I don't have time, I go for KNOP, but it is totally legitim in a different environment to go for other solutions (like [these amazing swiss people])

Follow your way, and learn, and have fun and awesome tomatoes. And kick the "healthy food" morons in the balls.
My mad scientist kit, and yes I feed plants with blood, mouhahaha
I have vampire plants

IPv6 j'aime pas.

Comment fait on pour protéger une maison qui n'a pas de portes d'entrée?

Il en est ainsi d'IPv6:  on ne peut plus définir d'intérieur et d'extérieur. C'est comme une maison dont toutes les pièces sont accessibles de l'extérieur et pour lesquelles il faut remettre sonnette, serrure, alarme et interphone sur chaque portes.

Et quelle idée farfelue de mettre la mac dans une adresse IP : veut-on à ce point aider les gouvernement à suivre les traces des utilisateurs tout en aidant les attaquants?

C'est comme badger avec sa carte d'identité pour se déplacer dans toutes maisons la sienne incluse.

Comment adopter IPv6 quand la transition nécessite de changer tous les équipements et les savoir faire alors qu'il est déjà si difficile de trouver des admins réseaux compétents en IPv4 (bien plus simple)?

C'est comme passer des maisons en bois à 2 étages aux constructions parasismiques dont la taille minimum est de 40 étages, et s'étonner qu'on a une crise du logement, et que les plus pauvres soient exclus.

IPv6, HTTP2.0, Oauth2.0 même combat : ce sont des éléphanticiels qui font régresser internet de la presse de Gutenberg numérique ouverte à tous à une spécialité de tartuffes numériques digne d'une pièce de Molière.

Cette tendance à faire passer pour profond ce qui est obscur ça s'appelle de l'obscurantisme.

Fuck IPv6, fuck l'IETF moderne qui est devenu un repaire de savants acculturés, fuck unicode et l'informatique moderne.

PS lire nanog est instructif

PPS: je retourne poursuivre les recherches de grand père sur la culture des plantes hors-sol, et l'amélioration du quotidien de l'humanité par des techniques simples et que l'on peut enseigner facilement. Vive daddy glaenzer, j'ai pas été élevé pour devenir un gros con.

Coup de gueule : retour des maladies infectieuses nous sommes tous responsables

Darwin gagne les maladies infectieuses reviennent:

- retour de la rougeole en 2015 aux UK (antivaccins)
- premier cas depuis 1986 de diphtérie en espagne (antivaccins).
- retour de la rougeole; des oreillons (ça peut rendre stérile),  de la coqueluche et de la rougeole aux USA en 2015 (antivaccins)
- syphilis (canada) (raison que j'ai pas eu le temps de trouver)
- tuberculose (résistante aux antibiotiques, manque de soin des sans abris) (paris),
- poliomyélite (conflit)
- diphtérie (Europe de l'Est)(désorganisation des services de santé suite aux bouleversement politiques post guerre froide)

La tendance est à stupidement transformer le problème en antivaccin contre le reste du monde. Ce n'est pas vrai. Avec une bonne éducation scolaire, il n'y aurait pas d'antivaccins.

Les facteurs sont certes multiples (réchauffement climatique, conflit, aide insuffisante vers les pays émergents, flux migratoires, mégapoles, récession, dettes publiques). Mais dans une tendance de réémergence systémique, les cas "évitables" du fait de choix d'adultes envers des enfants qui sont vulnérables et n'ont pas de libertés à choisir ne sont pas tolérables, d'autant que ces choix peuvent affecter d'autres personnes : personnels médical et de secours, autres enfants en premier lieu...

Certes les antivaccins sont des gros cons et je les aime pas. Mais, ils sont l'arbre qui cache la forêt.

Les états sont encore plus responsables:
- désorganisation des services de santé (politiques basées sur des visions comptables de premier ordre);
- augmentation des coûts des soins, diminution de leur efficience (la prévention coûte moins chère que les soins);
- abandon des populations vulnérables qui deviennent victimes et vecteurs (sans abris, victimes de conflits, réfugiés, migrants, population défavorisées);
- désorganisation de l'éducation privilégiant la formation de main d’œuvre qualifiée au détriment de la formation de citoyens éclairés à même de comprendre ce qu'est un vaccin et une infection;
- conflits qui font perdre à des pays des décennies entière de progrès (zone sud, syrie (qui par expérience avait une médecine de qualité), irak, afghanistan, palestine, ukraine);
- discours anti science (négation du réchauffement climatique);
- réchauffement climatique/politique énergétique

J'espère qu'un jour la responsabilité pénale sera aussi effectivement appliquée aux hommes politiques. (scandale du sang contaminé, maladie de la vache folle .... qui ont abouti à rien)

Je ne donne pas mon blanc seing pour autant aux industries pharmaceutiques tentées de créer des innovations marginales afin de renouveler leurs brevets.

C'est pour ça que je soutiens mon pote Charles Gagnon​ quand il fait partie des rares infirmiers à protester contres les gels de salaires dans son hosto.

Et, si j'écris c'est aussi pour parler des pire: les citoyens apathiques bien qu'ayant la compréhension qui pensent égoïstement "à chacun sa graisse" car ils sont encore au chaud... pour l'instant.

Notre manque de solidarité nous tuera si nous ni prenons garde car nous sommes tout autant la cause que les victimes potentielles futures ainsi que nos enfants, neveux, nièces et proches.