vendredi 28 juin 2019

Tria Nomina

Dans le cas de Jules César :
  • son prénom n'était pas Jules (mais Caius), 
  • son nom de famille n'était pas César (il était de la "gens" des Julia), 
  • et il n'était pas empereur (mais simplement caesar).
Tout va bien.

Il faut se pencher pour comprendre, sur la manière dont on nommait les gens, dans la République puis sous l'Empire : les "tria nomina" (neutre pluriel).

Dans les tria nomina :
  • Caius était son praenomen ("prénom") ;
  • Jules, c'était le Nomen, c'est à dire, la "gens", le nom de famille ; 
  • et Caesar est un cognomen, un surnom, en l'occurrence honorifique, dont seulement beaucoup plus tard, on fera un titre (czar, tsar …).
Il nous aura emmerdé celui-là.




samedi 22 juin 2019

La symbolique des couleurs

Il faut écouter Michel Pastoureau, le plus bon-vivant des ascètes de l'Ecole des Chartes, parler de l'usage des couleurs sur KTO.

Un régal de culture ...









La charpente de Notre-Dame

Un article passionnant et qualifié sur le chantier de réfection de la charpente de Notre Dame.

Avant de lire cet article, je militais pour le fait de refaire Notre-Dame à la pointe des technologies modernes, puisque les cathédrales ont toujours été faites, dès le 13ème, à la pointe des technologies modernes. 

C'était avant de trouver dans l'article l'argument qui consiste à dire que la pointe des technologies modernes c'est aujourd'hui le bois de chêne au doloire, comme au 13ème siècle, et pas le lamellé collé comme dans n'importe quel banal aéroport.

Du coup, je me sens encore plus légitime à militer pour refaire Notre-Dame à la pointe des technologies modernes, c'est à dire en chêne au doloire, comme au 13ème siècle.


mardi 11 juin 2019

Une enquête de gendarmerie très compliquée

Je lis dans la presse de ce matin :


La gendarmerie a confirmé ce mardi matin qu'un corps sans tête ni mains en état de décomposition avancée a été découvert dimanche soir dans une zone naturelle de la commune de Saint-Laurent-de-la-Prée, au nord-ouest de Rochefort, en Charente-Maritime

Une autopsie sera réalisée dans la journée au centre médico-légal de Poitiers, avec prélèvement ADN. 

Il s’agira de déterminer si la cause de la mort est criminelle ou non

Evidemment qu'il est possible que la personne soit décédée de cause naturelle, avant qu'on lui coupe la tête et les mains. Mais est-ce si important au regard du contexte ?





dimanche 9 juin 2019

Ancienneté incroyable

A Angoulême, juste derrière la gare, les archéologiques ont trouvé une gravure de cheval, datée de manière certaine de 12000 ans avant notre ère :




Plus encore que la valeur historique de l'objet, qui est immense, plus encore que la magnifique élégance du trait, c'est la permanence de l'occupation humaine sur le site qui me touche.

De manière certaine, Angoulême a 14000 ans d'ancienneté.
Ca calme ...





samedi 8 juin 2019

Cruciverbiste au NewYorker

Si vous avez jamais essayé de faire les mots-croisés du NewYorker, et échoué misérablement comme moi, vous ne raterez pas l'occasion de comprendre comment fonctionne l'esprit des journalistes qui les conçoivent :



https://video.newyorker.com/watch/inside-the-minds-of-the-new-crossword-constructors




C'est un exercice impressionnant de gymnastique intellectuelle.

Fasciné par le "Globe Trotter" pour Shakespeare.



vendredi 7 juin 2019

L'économie du plastique

Un excellent article livré par FranceTvInfo, sur l'économie mondiale du plastique, et comment celle-ci évolue :





"Nous exhortons les pays développés à cesser d'expédier leurs déchets dans notre pays". 

En Malaisie, le ministère de l'Environnement se lance dans une véritable traque contre les déchets venus de l'étranger. Dans un contexte diplomatique tendu, ce petit pays d'Asie du Sud-Est a annoncé, mardi 28 mai, qu'il allait renvoyer 3 000 tonnes de déchets en plastique dans leurs pays d'origine, notamment en France et aux Etats-Unis. "Je souhaite que, à l'échelle européenne, on se donne comme règle que nos déchets, on les recycle en Europe", a réagi, mardi 4 juin, le ministre français de la Transition écologique, François de Rugy, dans une vidéo du média en ligne Konbini News.

Voilà des années que le continent asiatique accueille les ordures d'une vingtaine de pays développés, dans des conditions environnementales catastrophiques. Vendredi 31 mai, Les Philippines ont renvoyé vers le Canada des tonnes de déchets reçues il y a plusieurs années et qui ont été au cœur d'un vif contentieux bilatéral. L'année dernière, la Chine, épicentre du recyclage international, a décidé de réduire drastiquement ses importations. Du jour au lendemain, les pays exportateurs doivent revoir tout le fonctionnement de leur industrie. Franceinfo revient sur les origines de cette crise mondiale du traitement des déchets.

Comment le recyclage des déchets était-il géré jusqu'ici ?

Si les pays industrialisés possèdent tous des centres de recyclage, ceux-ci ne sont pas capables pour autant d'absorber l'ensemble des détritus produits sur leur territoire. La gestion des déchets est donc devenue un business mondialisé. Car les pays industrialisés exportent une grande partie de leurs rebuts à l'étranger, et notamment en Asie du Sud-Est.
Sur des cargos, des tonnes de déchets sont quotidiennement envoyés vers la Chine, la Thaïlande ou encore la Malaisie. Un rapport de Greenpeace (en anglais) a recensé la liste des 21 plus grands exportateurs : les Etats-Unis, le Japon et l'Allemagne forment le trio de tête, tandis que la France se place en 16e position.

Pendant des décennies, les pays de l'Ouest ont donc vendu une grande partie de leurs déchets à l'Asie, et principalement à la Chine. Jusqu'à l'année dernière, plus de la moitié des déchets importés dans le monde étaient envoyés dans ce pays. Une stratégie jusqu'ici gagnant-gagnant, puisque l'empire du Milieu manquait de plastique pour alimenter son industrie. "La Chine a besoin d'approvisionner ses usines pour fabriquer tous les objets qu'on importe de ce pays : l'électronique, les vêtements, les emballages…" analyse Jean-Charles Caudron, responsable du service recyclage à l'Agence de l'environnement et de la maîtrise de l'énergie (Ademe) à franceinfo.

Pourquoi les plastiques sont-ils particulièrement exportés ? 

Les pays exportateurs envoient toutes sortes de déchets à l'étranger : des cartons, des métaux, des textiles mais surtout énormément de plastique. En 2016, la France a ainsi exporté 700 000 tonnes de détritus en plastique dans le monde, d'après le ministère de la Transition écologique et solidaire. Parmi eux, il existe une multitude de catégories : "On parle abusivement du plastique au singulier" constate Jean-Claude Caudron. "Il y a pourtant des différences entre un PET, qui sert pour la fabrication des bouteilles, et un PVC, qu'on utilise beaucoup dans le bâtiment, pour les revêtements de sol et de murs, les fenêtres ou l'ameublement", détaille-t-il.
Or, ces plastiques ne se recyclent pas tous de la même manière. Certains sont très bon marché et ont donc une faible valeur ajoutée. Pour limiter les coûts de leur recyclage, les pays occidentaux préfèrent donc les envoyer à l'étranger. Moins la matière première a de valeur, plus elle va être recyclée loin, où la main-d'œuvre est moins chère.

Quel est le problème avec ces plastiques ?

Ce qui est problématique, c'est que les pays exportateurs n'envoient pas seulement des plastiques recyclables en Asie. Beaucoup d'arrivages sont constitués de mélanges de déchets non triés et en partie impossibles à transformer. "Les pays importateurs se retrouvent à acheter des mix des déchets, sans savoir de quoi ils sont composés. Leurs industriels doivent donc prendre en charge le coût du tri à l'arrivée et gérer le traitement de matières impures, c'est-à-dire mal triées", explique Jean-Charles Caudron à franceinfo. Résultat : ces plastiques impurs s'accumulent et entraînent des conséquences écologiques désastreuses sur le territoire. "Les études montrent que les trois quarts des déchets plastique chinois ne sont pas suffisamment retraités", pointe Agnès Le Rouzic, chargée de campagne Océans et Plastique chez Greenpeace. "Cela entraîne de graves problèmes de santé pour les communautés avoisinantes", ajoute-t-elle à franceinfo. Des tonnes de plastique sont déversées dans la mer et d'immenses îlots se forment dans le Pacifique, menaçant directement les écosystèmes.

Comment la crise a-t-elle commencé ?

En 2013, Pékin a commencé à s'attaquer de front au problème de la pollution. Avec son programme "Green Fence" ("clôture verte"), le pays a commencé à renforcer les contrôles douaniers sur les matières recyclées afin de bloquer les lots de déchets impurs ou non recyclables. Un durcissement qui a surpris les acteurs de l'industrie occidentaux, pris au dépourvu. Les importations chinoises de plastique ont peu à peu baissé, passant de de 600 000 tonnes par mois en 2016 à 30 000 tonnes par mois en 2018.
Mais en début d'année dernière, au nom de sa politique environnementale, le gouvernement chinois a franchi un cap. Pour ne plus être la première destination mondiale du recyclage, la Chine a carrément banni l'importation de plastiques et de plusieurs autres catégories de déchets qu'elle recyclait jusqu'alors. Quelque 24 types de déchets sont concernés, dont "certaines matières plastiques, les papiers non triés, certains matériaux textiles et les laitiers, scories, croûtes d'oxydes et autres déchets provenant de la fabrication du fer ou de l'acier" détaille le site actu-environnement. "Ça a été comme un tremblement de terre", explique Arnaud Brunet, directeur du Bureau international du recyclage (BIR) basé à Bruxelles. "On ne s'attendait pas à une mesure si radicale", commente Jean-Charles Caudron à franceinfo.
Tout le réseau de recyclage mondial a été redistribué. Beaucoup d'industriels chinois ont transféré leurs activités vers l'Asie du Sud-Est : au Vietman, en Thaïlande mais surtout en Malaisie. Le pays, qui compte une importante minorité chinoise, est devenu une destination de choix pour les industriels qui ont déménagé leurs activités de Chine. Les importations de plastique du pays ont triplé depuis 2016, pour atteindre 870 000 tonnes l'an dernier, selon des données officielles. Des tonnes de bouteilles, d'emballages, de bidons de lessive atterrissent dans des dépotoirs illégaux où l'on brûle le plastique en plein air.
Les habitants se plaignent de l'odeur venant du recyclage des déchets et de l'incinération des matières qui ne peuvent pas être recyclées.

Quelles sont les conséquences concrètes pour les pays exportateurs ?

La fermeture du marché chinois a "créé une crise de pollution à l'échelle mondiale", commente Agnès Le Rouzic à franceinfo.
- Aux Etats-Unis. Pour le plus grand exportateur mondial de déchets, le durcissement des règles d'importation côté chinois a eu un impact direct. Faute d'infrastructures nationales suffisantes, les usines de recyclage sont saturées. Les frais de recyclage ont explosé et des centaines de municipalité ont tout simplement arrêté de recycler leurs déchets. La ville de Deltona en Floride, 90 000 habitants, a récemment suspendu son programme de recyclage municipal, constate le New-York Times (article en anglais). A Philadelphie, la moitié des déchets recyclables de ses 1,5 million d'habitants sont désormais incinérés. Soit 200 tonnes par jour.
Alors que les industriels du recyclage estiment souvent que les coûts sont trop élevés pour retraiter les déchets dans leur pays d'origine, certains ont eu recours aux décharges ou aux incinérateurs, faute de mieux.
- En Europe. Sur le continent européen, les flux se sont réorganisés, au bénéfice de l'industrie papetière. Et les pays tentent de s'arranger entre eux. "Le Royaume-Uni a saturé les usines allemandes par exemple", explique à actu-environnement Pascal Genneviève, président de Federec Papier-cartons. 
En Allemagne, les prix des emballages vont sensiblement augmenter pour compenser cette nouvelle donne. "L'Allemagne a déjà le système de traitement des déchets le plus coûteux du monde. Maintenant, ça va être encore plus cher", a indiqué au Monde Eckhard Heuser, le directeur de la Fédération de l'industrie du lait.
L'onde de choc touche toutefois moins sévèrement la France, à en croire la Federec. "Nous bénéficions d'une industrie de recyclage développée et très active", indique son président, Jean-Philippe Carpentier. "Chaque année, 500 millions d'euros sont investis par 11 000 entreprises de la branche recyclage, présentes dans tous les secteurs : ferraille, plastique, textile, papier, carton...", détaille-t-il à franceinfo.
- En Australie. La ville d'Adelaïde, dans le sud du pays, expédiait l'essentiel de ses déchets en Chine. Elle retraite désormais sur place 80% de ses détritus, la plupart des déchets restants étant envoyé en Inde. "Au bout d'un an, nous en sentons toujours les effets mais nous n'avons pas encore avancé vers une solution", déplore Garth Lamb, président de l'association australienne de l'industrie du recyclage et du traitement des déchets.

Pourquoi ça crée des tensions entre importateurs et exportateurs ?

En Malaisie, où les usines clandestines se sont multipliées ces derniers mois, le gouvernement a décidé de durcir le ton. Pas moins de 60 conteneurs d'ordures importés illégalement seront retournés aux pays expéditeurs, dont les Etats-Unis, le Japon, la France, le Canada ou encore l'Arabie saoudite. "Ces conteneurs ont été introduits illégalement dans le pays avec de fausses déclarations, entre autres infractions, en violation patente de notre législation sur l'environnement", a déclaré mardi 28 mai la ministre de l'Environnement, Yeo Bee Yin.
Les relations sont particulièrement tendues avec le Canada. Quelque 103 conteneurs canadiens remplis de déchets non recyclables sont en effet conservés depuis 2013, dans des ports de Manille et de Subic, aux Philippines. Dans l'impossibilité de les réexpédier, le gouvernement philippin en a fait détruire une trentaine. Après plusieurs ultimatums, le président philippin, Rodrigo Duterte, a tranché fin mai, en ordonnant le départ immédiat de 69 conteneurs. "Baaaaaaaaa bye, comme on dit", a tweeté le ministre des Affaires étrangères philippin, Teodoro Locsin, avec une photo du cargo en partance.


Les Etats exportateurs vont décidément devoir d'autres solutions pour traiter leurs déchets. D'autant qu'en novembre 2018, Pékin a annoncé que 32 nouveaux types de déchets allaient être bannis de son territoire, allant des rebuts d'acier inoxydable au bois, aux pièces automobiles et de navires.
Quelles sont les solutions possibles pour endiguer le problème ?
Le gouvernement français s'est engagé à atteindre un taux de 100% de plastique recyclé en 2025, contre 20% aujourd'hui. Actuellement, "notre industrie n'utilise que 350 000 tonnes de déchets en plastique recyclés, sur 3,5 millions de tonnes de plastique générées chaque année", pointe Roland Marion, chef adjoint du service Produits et Efficacité matière à l'Ademe, à 20 Minutes.
Une "fausse bonne idée", selon Nathalie Gontard, chercheuse à l'Institut national de la recherche agronomique (Inra). "Le plastique recyclé est un paradoxe, dans le sens où l'on ne peut pas recycler le plastique à l'infini", explique-t-elle à franceinfo. "Il faut plutôt se passer de plastique quand on peut le faire, avec du verre ou du métal par exemple, qui, eux, sont vraiment recyclables".
Pour les associations, cette crise sans précédent prouve que les capacités de recyclage à travers le monde sont arrivées à saturation. "L'industrie projette une augmentation de la production de plastique de 40% d'ici les prochaines années : on n'aura pas le temps d'agrandir nos usines de traitement", déplore Agnès Le Rouzic, pour qui "la solution passe avant tout par la réduction de la production de déchets à la source". Quelque 300 millions de tonnes de plastique sont ainsi produites chaque année, selon le Fonds mondial pour la nature (WWF).

Travailler en amont à changer les usages semble être la seule issue possible, comme le souligne Slate : "Plus tôt nous accepterons que le recyclage est économiquement impraticable, plus tôt nous pourrons faire des progrès en réglant le problème de la pollution plastique", affirme Jan Dell, la directrice de l'association Last Beach Cleanup.

mardi 4 juin 2019

Question d'informaticien

Vous êtes un véritable informaticien, non pas si vous comprenez toutes les subtilités de cette question, mais seulement si vous savez en apprécier l'élégance, ainsi que la subtilité de la réponse qui lui est donnée par la communauté :

La question


When planning out my programs, I often start with a chain of thought like so:
A football team is just a list of football players. Therefore, I should represent it with:
var football_team = new List<FootballPlayer>();
The ordering of this list represent the order in which the players are listed in the roster.
But I realize later that teams also have other properties, besides the mere list of players, that must be recorded. For example, the running total of scores this season, the current budget, the uniform colors, a string representing the name of the team, etc..
So then I think:
Okay, a football team is just like a list of players, but additionally, it has a name (a string) and a running total of scores (an int). .NET does not provide a class for storing football teams, so I will make my own class. The most similar and relevant existing structure is List, so I will inherit from it:
class FootballTeam : List<FootballPlayer> 
{ 
    public string TeamName; 
    public int RunningTotal 
}
But it turns out that a guideline says you shouldn't inherit from List. I'm thoroughly confused by this guideline in two respects.

Why not?

Apparently List is somehow optimized for performance. How so? What performance problems will I cause if I extend List? What exactly will break?
Another reason I've seen is that List is provided by Microsoft, and I have no control over it, so I cannot change it later, after exposing a "public API". But I struggle to understand this. What is a public API and why should I care? If my current project does not and is not likely to ever have this public API, can I safely ignore this guideline? If I do inherit from List and it turns out I need a public API, what difficulties will I have?
Why does it even matter? A list is a list. What could possibly change? What could I possibly want to change?
And lastly, if Microsoft did not want me to inherit from List, why didn't they make the class sealed?

What else am I supposed to use?

Apparently, for custom collections, Microsoft has provided a Collection class which should be extended instead of List. But this class is very bare, and does not have many useful things, such as AddRange, for instance. jvitor83's answer provides a performance rationale for that particular method, but how is a slow AddRange not better than no AddRange?
Inheriting from Collection is way more work than inheriting from List, and I see no benefit. Surely Microsoft wouldn't tell me to do extra work for no reason, so I can't help feeling like I am somehow misunderstanding something, and inheriting Collection is actually not the right solution for my problem.
I've seen suggestions such as implementing IList. Just no. This is dozens of lines of boilerplate code which gains me nothing.
Lastly, some suggest wrapping the List in something:
class FootballTeam 
{ 
    public List<FootballPlayer> Players; 
}
There are two problems with this:
  1. It makes my code needlessly verbose. I must now call my_team.Players.Count instead of just my_team.Count. Thankfully, with C# I can define indexers to make indexing transparent, and forward all the methods of the internal List... But that's a lot of code! What do I get for all that work?
  2. It just plain doesn't make any sense. A football team doesn't "have" a list of players. It is the list of players. You don't say "John McFootballer has joined SomeTeam's players". You say "John has joined SomeTeam". You don't add a letter to "a string's characters", you add a letter to a string. You don't add a book to a library's books, you add a book to a library.
I realize that what happens "under the hood" can be said to be "adding X to Y's internal list", but this seems like a very counter-intuitive way of thinking about the world.

My question (summarized)

What is the correct C# way of representing a data structure, which, "logically" (that is to say, "to the human mind") is just a list of things with a few bells and whistles?
Is inheriting from List always unacceptable? When is it acceptable? Why/why not? What must a programmer consider, when deciding whether to inherit from List or not?






La réponse (apportée par la collectivité des Développeurs)

There are some good answers here. I would add to them the following points.

What is the correct C# way of representing a data structure, which, "logically" (that is to say, "to the human mind") is just a list of things with a few bells and whistles?

Ask any ten non-computer-programmer people who are familiar with the existence of football to fill in the blank:

A football team is a particular kind of _____

Did anyone say "list of football players with a few bells and whistles", or did they all say "sports team" or "club" or "organization"? Your notion that a football team is a particular kind of list of players is in your human mind and your human mind alone.

List is a mechanism. Football team is a business object -- that is, an object that represents some concept that is in the business domain of the program. Don't mix those! A football team is a kind of team; it has a roster, a roster is a list of players. A roster is not a particular kind of list of players. A roster is a list of players. So make a property called Roster that is a List. And make it ReadOnlyList while you're at it, unless you believe that everyone who knows about a football team gets to delete players from the roster.

Is inheriting from List always unacceptable?

Unacceptable to who? Me? No.

When is it acceptable?

When you're building a mechanism that extends the List mechanism.

What must a programmer consider, when deciding whether to inherit from List or not?

Am I building a mechanism or a business object?

But that's a lot of code! What do I get for all that work?

You spent more time typing up your question that it would have taken you to write forwarding methods for the relevant members of List fifty times over. You're clearly not afraid of verbosity, and we are talking about a very small amount of code here; this is a few minutes work.

UPDATE

I gave it some more thought and there is another reason to not model a football team as a list of players. In fact it might be a bad idea to model a football team as having a list of players too. The problem with a team as/having a list of players is that what you've got is a snapshot of the team at a moment in time. I don't know what your business case is for this class, but if I had a class that represented a football team I would want to ask it questions like "how many Seahawks players missed games due to injury between 2003 and 2013?" or "What Denver player who previously played for another team had the largest year-over-year increase in yards ran?" or "Did the Piggers go all the way this year?"


That is, a football team seems to me to be well modeled as a collection of historical facts such as when a player was recruited, injured, retired, etc. Obviously the current player roster is an important fact that should probably be front-and-center, but there may be other interesting things you want to do with this object that require a more historical perspective.