Et de l'autre un Mélenchon dépeint comme le grand méchant loup.
Bah, quand ton programme se base en partie sur la dénonciation de la collusion entre les médias et des gens pas fréquentables, tu ne peux pas non plus t'attendre à attirer la sympathie des journalistes. Tu peux trouver que ça prouve ton point de vue si tu veux, mais tu ne peux pas avoir les deux.
Sur le fond, la neutralité journalistique me semble en paradoxe total avec la qualité de l'info. Une info de qualité, c'est par exemple une analyse et une remise en contexte des déclaration des politiques : plutôt que de relayer bêtement la com des partis, on attend des bons journalistes qu'ils vérifient les faits, les chiffres, et éventuellement ne relayent pas les opérations de coms sans contenu. Du coup, on va leur reprocher de privilégier certains partis, certains discours, etc. Parce que oui, tous les politiques racontent des des co**ries, mais certains nettement plus que d'autres.
J'ai un peu l'impression que pour quelqu'un comme Mélanchon, les médias constituent surtout un moyen facile d'éviter la contradiction et de maitriser complètement sa communication. L'argument de la communication directe (par les réseaux sociaux ou par n'importe quel moyen qui ne passe pas par les "médias"), c'est du pain béni pour les communicants : on peut réciter sa propagande sans risquer d'être filtré, contredit, ou mis devant ses contradictions.
Tu détournes habilement le sujet, mais je pense que tu as tort sur le fond. Les mathématiques fournissent évidemment des raisonnements et des résultats qui peuvent être utiles en informatique, et même éventuellement, parfois, dans la pratique quotidienne de la programmation (typiquement, en algorithmique).
Mais je ne sais pas si tu as fait semblant de mal comprendre là où je voulais en venir, ou si je ne m'étais pas exprimé clairement. La question qu'on discutait, c'était de dire que la vectorisation était une manière intuitive en mathématique d'aborder un problème, et que les gens qui considéraient une boucle FOR plus intuitive qu'un calcul vectorisé avaient, en gros, un problème de formation. Or, c'est à mon avis faux. Très souvent, la pensée mathématique est catastrophique en programmation. En calcul numérique, l'utilisation de la définition mathématique est souvent une très mauvaise idée : pour calculer une intégrale, une dérivée, ou même simplement une variance, "penser mathématique" ne mène qu'à des algos inefficaces.
Bref, le fait que certaines applications des mathématiques soient utiles en algorithmique n'invalide absolument pas le fait que quand on code dans la plupart des langages (qui sont destinés à produire des logiciels et pas des démonstrations mathématiques), on doit avant tout penser aux aspects informatiques des problèmes (efficacité de l'algorithme en temps et en mémoire, gestion des arrondis, évolutivité, modularité et clarté du code). Dans ce cadre, les maths sont un outil, et pas un état d'esprit.
Ils choisissent surtout n'importe quoi qui permet d'instiller le doute auprès du grand public. Il ne s'agit absolument pas d'un débat, scientifique ou pas, il s'agit d'une entreprise de propagande et de désinformation, basé sur des outils de communication.
Plus tous les trucs enterrés et bien conservés… Si on garde des traces de l'activité de l'Homme de Cro-Magnon alors qu'ils n'étaient que quelques familles de chasseurs-cueilleurs, je pense qu'il n'y a aucun doute qu'on trouve des traces de la civilisation "moderne" pendant plusieurs millions d'années… Les chiffres avancés sont assez fantaisistes et ne considèrent, j'imagine, que des traces vaguement visibles. Il est évident que dans 25000 ans, on va pouvoir tomber sur une rue pavée ou un parking souterrain en creusant un peu.
Quelques accidents climatiques ne sont pas des preuves de réchauffement ; tout au plus des indices.
En face de certains bistros, il y a des universités, et dans les universités, il y a des gens qui travaillent sérieusement sur de telles questions ; il existe par exemple une discipline scientifique qui s'appelle "Statistiques des valeurs extrêmes" et qui permettent d'aller un peu plus loin que les platitudes habituelles.
Le choix, ça pourrait être de coder avec des retours par valeur et de laisser le compilo gérer, ce qu'il fait plutôt bien quand le code est clair. En tout cas, c'est ce que j'ai tendance à faire à mon niveau.
Mais bon, j'avoue que je surestime souvent les capacités du compilo à faire des trucs intelligents, notamment pour la gestion de la mémoire. Par exemple, quand on a une fonction qui alloue de la mémoire, fait un traitement, et désalloue la mémoire, appeller la fonction n fois dans une boucle for réalloue et désalloue n fois la mémoire, ce qui me semble assez abérrant. Moi ça me file des boutons en C++11 de refiler des pointeurs vers de la mémoire libre en paramètre des fonctions ou de passer des gros objets par références non-constantes, j'ai l'impression que c'est du mélange crado de paradigmes. Étrangement, ce genre de code est beaucoup plus performant dans certains langages de haut niveau qui vectorisent les appels de fonction.
je ne vois pas comment ça peut tomber dans un comportement non défini.
Je me suis peut-être mal exprimé, mais je n'ai jamais eu de problème avec le comportement du code, seulement avec le temps d'exécution (donc je ne parlais pas du tout de comportement non-défini). Mon problème, c'est que le temps d'exécution du code compilé avec un niveau d'optimisation agressif par le compilo n'était pas compréhensible (tout du moins par moi), avec des temps d'éxécution qui variaient substantiellement et visiblement de manière chaotique en fonction de l'ordre et du nombre de tests conditionnels.
Par exemple, optimiser ton architecture pour exploiter au maximum la taille des lignes de cache, c'est du haut, ou du bas niveau?
Pour moi, c'est du très bas niveau. Classiquement, dans mon domaine de recherche (biologie/bio-info), tu n'as aucune idée de la machine sur laquelle ton code va tourner (ça va de ton portable à un gros calculateur, en passant par des clusters pas homogènes). Bref, très difficile d'écrire du code spécifique pour une machine.
ce qui a le mérite d'être plus explicite, je dirais
Bof, des pointeurs à poil en C++ moderne…
Je suis curieux, as-tu la possibilité de nous montrer un exemple?
Pas évident sans refiler tout un tas de code imbittable. De mémoire, ça ressemblait à des tentatives d'éviter des multiplications par zéro:
double result = fun1();
const bool is_a_zero = (a==0.);
const bool is_b_zero = (b==0.); // + the same for is_c_zero etc.
if (!is_a_zero) {
for (unsigned int i = 0; i < BIGSTUFF; i++)
result += a*fun2(i);
}
if (!is_b_zero) {
for (unsigned int i = 0; i < BIGSTUFF; i++)
result += b*fun3(i);
}
C'est simplifié mais c'est l'idée. Les variables a et b sont lues dans un fichier de paramètres (donc inconnues du compilo). Je ne me rappelle plus exactement des résultats, mais en fonction des valeurs du couples is_a_zero et is_b_zero, on se retrouvait à préférer les versions avec test ou sans test sans vraiment de logique. Ça me faisait penser à un compilo qui prévoit un certain nombre de combinaisons de branches, mais pas toutes (sur quelle base? Aucune idée). Du coup, quand on passe par une combinaison de branchements prévue, ça va vite, mais quand la combinaison n'est pas prévue, il faut se taper une série de tests conditionnels, et c'est lent ; ça irait plus vite de faire les multiplications par zéro.
J'en ai conclu que le résultat de telles optimisations était au mieux inégal, et au pire imprévisible.
Non, quand tu as fait des maths, la manière la plus naturelle d'éviter une boucle FOR, c'est de vectoriser ton calcul. Sinon, tu fais du C pur.
Le lien entre les maths et la programmation est ténu, en plus d'être souvent dangereux. L'idée d'adopter une pensée mathématique quand on code ne me semble pas une bonne idée du tout.
En plus, je ne suis même pas certain que ça soit vrai. Assez souvent, le formalisme mathématique utilise l'équivalent de boucles FOR (sommes et produits) ; le recours à l'algèbre linéaire est loin d'être systématique, et me semble inexistant dans certains domaines (suites, systèmes dynamiques?). D'autre part, les notations d'algèbre linéaire sont souvent compactes (typiquement, les successions de produits de matrices inversées et transposées), mais sont très inefficaces en terme de calcul. Bref, pas concaincu du tout qu'il soit naturel de vectoriser, surtout quand on code dans un langage qu'on connait mal. Ça me semble être un peu un argument a posteriori, la logique de la vectorisation est très puissante quand le langage est organisé autour de ça, mais il n'y a pas de raison a priori qu'elle paraisse plus naturelle qu'une autre.
tu es bien obligé de rentrer dans les détails bas niveau
Pas forcément, tu peux déja optimiser énormément en restant à haut-niveau, et les compilateurs sont aussi censés t'aider à ne pas micro-optimiser le code. Il arrive d'ailleurs souvent en C++ par exemple qu'une optimisation "logique" (par exemple, retourner un résultat par référence plutôt que par valeur) ralentisse le programme, parce que le compilateur l'avait déja fait, et de manière plus efficace qu'à la main. J'ai récemment essayé de plonger un peu dans la micro-optimisation d'une fonction critique en C++, et à mon niveau de compréhension, tout ça s'est avéré relever de la magie noire ; tout fonctionne sans optimisation, mais dès qu'on est en O2 ou O3, l'effet des changements (par exemple jouer avec le nombre et l'ordre des tests conditionnels) est totalement imprévisible, ce qui me donne à penser que plus on fait des trucs sioux et plus on gène le compilo plutôt qu'autre chose.
La plupart des scientifiques […] ne savent même pas qu'il existe
Ce genre de trucs, c'est quand même assez récurrent, et à mon avis c'est quand même en grande partie attribuable à des défauts des langages de programmation. On vit dans un monde où il y a des dizaines de langages populaires, et des centaines si on ajoute des trucs comme Julia. Tous les ans, des dizaines de nouveaux langages apparaissent. Dès qu'on fait un peu de programmation, il faut être polyglotte, et si la programmation n'est pas le cœur de métier, alors on peut s'attendre à ce que la règle générale soit de ne pas maitriser les spécificités du langage.
Or, ces langages ont l'air d'être conçus par et pour des gens qui vont en connaitre tous les détails, tout ce qui est mal documenté, tout ce qui n'est pas intuitif, et que c'est de la faute du programmeur s'il ne connait pas ces "finesses". Je trouve que c'est une excuse qui fait injustement reporter la faute sur les utilisateurs et pas sur les concepteurs des langages. Un moment donné, est-ce qu'il n'est pas naturel de s'attendre à ce que la meilleure manière de faire une boucle FOR, c'est de faire une boucle FOR?
La fragmentation, c'est aussi un problème dans ce genre de cas. On a parlé de Julia, par exemple, qui arrive dans un contexte où il y a déja de nombreux langages "scientifiques" et de nombreuses possibilités ; dans une équipe de recherche de 10 personnes, on trouve parfois 10 langages différents : C, C++, Fortran, Ada, OCalm, R, Python, Perl, MatLab, plus les pseudo-langage des logiciels spécialisés (SAS, Mathematica… ), les langages de script, etc. Encore une fois, tout ça vient en plus de la formation scientifique, les gens utilisent ces outils pour arriver à leurs fins, mais la programmation n'est pas leur métier. Et là, paf, «Pourquoi tu ne fais pas du Julia?», «Pourquoi ne pas regarder du côté de Ruby?», «L'avenir, c'est le Go.», etc. Alors oui, tout cela part d'une bonne intention, mais il faut bien comprendre qu'on ne remplace pas un langage par un autre, tout ça se juxtapose. Quand on incite à utiliser Julia pour les nouveaux projets, on peut éventuellement gagner un peu en productivité, mais quid de la maintenance du code une fois que le post-doc ou le doctorant sera parti? Quid du temps de formation, et du manque de support local? Évidemment, ça n'est pas une raison pour ne jamais évoluer, et c'est vrai que des trucs comme Ada, Fortran, ou même C tendent à disparaitre peu à peu, mais ça n'est pas une raison pour refaire pour la 1000e fois le coup du "apprenez ce truc nouveau, ça vous fera gagner du temps". Au final, plus personne ne maitrise réellement chaque langage, ça diminue la qualité du code, et ça n'apporte pas grand chose.
J'ai tiqué sur "révolution agricole" car pour moi elle se situe il y a plus de 10000 ans
Je pense que tu as un problème de terminologie, regarde l'article Wikipédia Révolution agricole: «La révolution agricole désigne, dans une première acception, l'ensemble des innovations agricoles survenues aux XVIIIe et XIXe siècles.». Mais bon, je m'étais gouré aussi, je voulais parler plutôt de ce qui se passe depuis les années 1950 (mécanisation, intrants, sélection variétale, irrigation), et qui a fait augmenter les rendements de 300% en 50 ans.
Après, pour certains trucs, j'ai fait une synthèse de mes lectures, et je peux aussi me tromper. Par exemple, il existe une étude de l'INRA (https://www.permaculturedesign.fr/non-labour/) qui pourrait faire penser que les méthodes sans labour pourraient être rentables économiquement malgré une perte de rendement (de l'ordre de 20% en moins). Mais bon, d'une manière générale, quand on parle de rentabilité économique, on doit s'attendre à ce qu'une activité rentable se généralise, et que la disparition d'une pratique soit au moins en partie due à son manque de rentabilité—il est faux d'affirmer que les acteurs économiques sont tous rationnels, mais il est encore plus faux d'assumer qu'ils sont systématiquement irrationnels!.
Sur les histoires de pratiques agricoles et de rentabilité, je suis surpris par le manque de sources académiques sérieuses sur le sujet. On trouve pas mal de trucs en Amérique du Nord par exemple, mais les conditions (climatiques, biologiques, économiques et sociales) y sont tellement différentes que j'ai du mal à imaginer qu'on puisse en tirer quoi que ce soit sur la rentabilité des différentes pratiques agricoles en Europe.
L'agriculture est une activité économique, elle doit être viable. Déja qu'elle n'est pas rentable sans de multiples subventions, il faut quand même qu'elle soit capable d'être pérenne (ne serait-ce que pour rentabiliser les investissements). Si ta ferme bio-dynamique respectueuse de l'environnement et qui produit des machins qui ont du goît perd 100k€ par an, elle va vite être remplacée par une activité rentable.
Bien sûr, la qualité peut se payer ; c'est d'ailleurs le cas (peut-être même un peu excessivement) avec les produits "bio". Tu peux aussi payer un peu plus cher pour une agriculture de proximité, favoriser les circuits courts, tout ça tu peux le faire.
Il n'empêche, si tes machins ne poussent pas, tu ne peux rien vendre. Le manque de rendement est problématique pour plusieurs raisons ; déja pour la viabilité économique de ton activité, mais pas seulement. Si ta culture est pourrie de ravageur, la qualité ne va pas être au rendez-vous, les gens veulent bien payer plus cher pour du bio mais ils ne veulent pas se retrouver avec un vers dans chaque fruit ; il faut que ça soit mangeable. Il faut aussi que tu puisses assurer tes livraisons, si tu fais des paniers ou si tu as des clients réguliers, après 3 semaines de "ah je n'ai plus que des patates", tes clients vont se barrer. Il faut aussi que tes solutions ne soient pas pires que le mal (typiquement, le cas dont je parlais au-dessus : innonder ton champ de glyphosate avant de faire un semis sans labour). Enfin, le rendement a une importance pour le développement durable, le but est de nourrir une population sans cesse croissante avec une surface agricole constante. Dans ce contexte, l'agriculture "de qualité" à faible rendement est un luxe d'occidental, et condamne les Chinois à manger du riz issu d'une production industrielle polluante parce qu'on gâche nos surfaces agricoles à cultiver des trucs qui poussent mal.
Il ne faut pas certes jeter le bébé avec l'eau du bain, la production industrielle actuelle est assez insipide, notamment (mais pas seulement) à cause de sélections variétales orientées sur des critères de productivité et de rentabilité économique au détriment des propriétés organoleptiques (ça claque hein?). Les semenciers ne sont pas complètement débiles, et ils sélectionnent aussi depuis quelques temps sur le goût. Mais bon, c'est aussi surtout la distribution qui est problématique ; cueillir les fruits avant maturité reste nécessaire pour les transporter dans de bonnes conditions, et ça, même sur une variété bio traditionnelle, ça fera toujours des fruits durs et pas très bons.
Ce que je critique surtout, c'est la pensée bobo-Parisien, orientée vers le "c'était mieux avant", et "c'est meilleur quand c'est traditionnel". L'agriculture traditionnelle (avant la révolution agricole), c'était surtout des agriculteurs qui avaient du mal à nourrir leur famille, qui se tuaient la santé, qui dépendaient énormément des aléas de la météo, qui ne pouvaient pas stocker leur production car elle ne se conservait pas, qui se faisaient ravager par des insectes, des chenilles, des maladies diverses… bref, qui étaient bien contents de sortir quelque chose de leur terre, et qui se foutaient certainement pas mal du goût des légumes. D'ailleurs, trainer avec quelques "vieux" dans les coins bien reculés est assez instructif, la plupart du temps ils mangent assez mal, ils stockent leurs production "bio" du potager dans des vieux bidons d'essence rouillés, ils récoltent des trucs de la nature qui sont depuis interdits à la vente à cause de leur toxicité… Sérieusement, il faut bien comprendre que les stupidités du style "jardiner avec la lune", "culture bio-dynamique", "variétés traditionnelles", c'est des trucs hyper-récents ; une sorte de vague commerciale sur laquelle un certain nombre d'entreprises surfent pour vendre des légumes trois plus plus chers à une clientelle fortunée. Tout ça n'a rien de traditionnel, puisque l'agriculture traditionnelle, c'est plutôt de manger ce qu'on peut, des semences douteuses qui voulaient bien pousser et qui n'étaient pas trop bouffées par les bestioles.
Les grands semenciers sont tranquilles parce que, jusqu'à preuve du contraire, personne n'a pu démontrer la viabilité économique de l'agriculture "traditionnelle" (rendements similaires aux années 1950-1960?), ni encore moins le caractère «durable» d'une agriculture peu productive.
C'est toujours plus facile d'interpréter les choses avec un filtre idéologique. Par exemple, il y a quelques années, c'était la grande mode du semis sans labour. Puis, la mode est passée, il semble que ceux qui ont essayé reviennent au labour (ou alors, c'est un bon coup de glyphosate avant :-) ). Il y a toujours quelques hurluberlus (qui ne sont pas agriculteurs) qui prétendent que c'est de la faute des vendeurs de matériel, des semenciers, ou d'épouvantails divers, mais bon…
Le plus gros ennemi des idéologues, ça n'est pas les grandes entreprises ou le gouvernement. C'est juste la réalité. On peut penser, pour de très bonnes raisons, que d'éviter de zigouiller tous les vers de terre tous les ans est une bonne idée, et que le monde se porterait mieux si on ne labourrait pas les champs. Sauf que bon, si on n'arrive à ne rien faire pousser, ça ne sert absolument à rien.
À mon avis, ça va être la même chose pour les semences paysannes ou traditionnelles. Ça a beau sembler mieux sur le papier, mais si ça pousse mal, si les rendements sont variables et non-reproductibles, si la récolte est compliquée, ou s'il faut déverser trois citernes de phytosanitaires par hectare pour maintenir un semblant de rendement, bah ça ne va pas marcher. Les agriculteurs ne sont pas des débiles profonds, s'ils sont passés des semences traditionnelles aux semences industrielles, c'est parce que le rendement des produits industriels était bien supérieur.
Ouais, il y a quand même pas mal d'idéologie là dedans, et il n'est pas nécessairement simple de déméler le vrai du faux.
Déja, il y a des dizaines de milliers de variétés inscrites au catalogue, y compris des variétés traditionnelles. Le catalogue existe depuis très longtemps, et seule une toute petite partie est encore cultivée—autrement dit, il est quand même difficile de ne pas trouver chaussure à son pied dans ce catalogue.
Ensuite, le but du catalogue est avant tout de protéger le consommateur, afin qu'il puisse identifier clairement ce qu'il achète. La variété est documentée de la graine à l'étal du maraicher, et c'est justement ce qui limite la fraude : on ne peut pas vendre une variété pour une autre, par exemple. En absence de catalogue, on pourrait donner n'importe quel nom à n'importe quelle variété. Que la logique du catalogue puisse bénéficier dans une certaine mesure à des grandes entreprises, c'est dans l'ordre des choses, les grandes entreprises ont assez de ressources et d'imagination pour tirer bénéfice de n'importe quel dispositif, et ce même si ce dispositif avait été mis en place justement pour lutter contre les grandes entreprises (c'est typiquement le cas du droit d'auteur, des brevets, etc).
Enfin, il faut se renseigner un peu autour de ce que proposent certaines associations (on cite kokopelli plus bas), parce que c'est beaucoup plus compliqué que de plonger dans un discours "gentilles associations contre puissances de l'argent". D'une part, une grande partie de la com' de ces associations est fausse (beaucoup par exemple affirment que les lois liberticides rentent illégales les échanges ou la vente de graines entre particuliers, ce qui est complètement faux). D'autre part, elles ont tendances à se victimiser alors qu'à ma connaissance, tous les problèmes judiciaires qu'elles ont eu étaient liés à des petites et moyennes entreprises (notamment des boites qui vendent des graines par correspondance), pour concurrence déloyale, et pas du tout à des grands semenciers, qui se foutent comme de leur premier slip que des associations vendent des graines de plantes qui poussent mal. Il faut savoir quand même que les associations doivent respecter un certain nombre de règles quand elles concurrencent des acteurs économiques non-associatifs dans le secteur marchand, et elles se font condamner à juste titre quand elles ne le font pas. Il faut aussi comprendre que le problème de Kokopelli, par exemple, n'était pas du tout l'inscription de nouvelles variétés au catalogue (chose qu'on leur a proposé de faire gratuitement il y a plusieurs années). Certaines associations veulent pouvoir vendre des semences qu'elles appellent "paysannes", et qui sont des populations non-fixées. Ces mélanges ne sont pas stables dans le temps, on ne peut pas non plus les récolter pour les resemer à l'identique, bref, ils posent un réel problème parce qu'il est impossible de les caractériser et d'assurer la reproductibilité de la culture. Au fond, peu de "paysans" seraient intéressés par ces semences "paysannes", qui n'ont pas réellement d'intérêt agronomique (contrairement aux mélanges de variétés), et qui ne peuvent donc pas être inscrites au catalogue.
Au passage, il ne faut pas non plus se faire intoxiquer par l'appellation "variété ancienne". Cette appellation est beaucoup utilisée par les industriels, et la très grande majorité des variétés qu'elles désignent sont au contraire très récentes. C'est un terme commercial qui désigne des variétés qu'on pense représenter ce que les consommateurs considèrent comme des variétés anciennes ; elles sont en effet moins productives et peut-être plus goûteuses que les variétés très productives, mais elles ne sont pas du tout anciennes. Les vraies variétés anciennes, d'une part, sont évidemment inscrites au catalogue (pour celles qui n'ont pas simplement disparu), et d'autre part, ont souvent une production catastrophique (faible productivité, grosses pertes, grosses sensibilités aux ravageurs, aux maladies, aux aléas climatiques…) sans pour autant avoir particulièrement plus de goût. La mode du "c'était mieux avant" sert avant tout à harponner un nouveau type de pigeon qui croit savoir mieux que tout le monde, mais c'est juste de la com.
Il ne faut pas se méfier des prestataires de manière générale? :-)
Après, c'est comme tout, j'imagine. Quand tu fais appel à un électricien, tu peux tomber sur un pro qui sait ce qui fait et en plus qui est efficace, et tu peux tomber sur un guignol pas sérieux qui se forme sur le tas. Je n'y connais absolument rien à ce milieu, mais d'après ce que je lis parfois sur ce site, ça fait quand même peur…
Il ne donne pas le contexte ni le budget. Si c'est une association ou une administration, il a peut-être 0€ de budget de fonctionnement, donc faire appel à une boîte…
C'est le cas pour la plupart des langages haut niveau bien pensés, et c'est d'ailleurs exactement ce qu'ils sont censés faire. Tu codes dans un langage de haut niveau pour gérer les entrées-sorties, la gestion des erreurs, la portabilité, l'évolutivité du logiciel, etc. Et les quelques parties gourmandes en temps de calcul, tu enchaines les appels de fonctions optimisées prises dans les bibliothèques du langage, et souvent codées en C (ou en assembleur, ou en n'importe quoi du moment que c'est efficace) par des gens qui savent le faire.
Au final, sur une application scientifique par exemple, il est très rare d'avoir besoin de coder soi-même une partie au cœur de l'algorithme (d'ailleurs, c'est souvent inenvisageable, parce qu'on ne peut pas vraiment être à la fois une pointure dans un domaine scientifique et en programmation bas niveau). Tu vas mettre en place ton modèle, stocker tes objets, analyser les sorties, etc, et tu vas leur appliquer des opérations de calcul "standard" : appel à des générateurs de nombres aléatoires qui tirent dans des distributions spécifiques, optimisation de fonctions multivariées, inversion de matrices, parcours d'arbres, etc etc. Évidemment, tout dépend du problème et de la compétence téchnique autour de soi, mais dans certains domaines, l'analyse de données scientifiques revient souvent à scripter un «pipeline» qui enchaine des opérations successives ou parallèles de traitement de données. Ça n'est pas le même métier que de mettre au point les algorithmes eux-mêmes…
C'est sûr que c'est contraignant à appliquer quand tout est encastré
C'est surtout que ça gripperait complètement le marché de l'immobilier, ça n'a aucun intérêt. Si tu as une baraque vétuste, tu ne pourrais la vendre qu'en engageant des travaux coûteux, donc en fait tu ne le ferais pas. Ça découragerait les propriétaires de louer, etc. C'est carrément contre-productif, en plus d'être injuste. Les normes changent tellement souvent qu'une installation ne serait OK que pendant une très courte période.
Ça devrait, selon moi, être obligatoire derrière tout compteur
Les différentiels 30mA ne sont pas obligatoires sur toutes les installations, c'est juste la norme pour les installations récentes. Rien ne t'empêche d'ajouter les dispositifs de ton choix sans pour autant complexifier encore les milliers de normes en vigueur…
Ces compteurs ne sont pas là pour juste rénover les compteurs et faire plaisir aux concepteurs de ces boîtiers. Il y a un besoin aussi derrière de récolter ces informations régulièrement de manière fiable. Et il y a un gâchis actuel énorme à faire contrôler régulièrement les compteurs par des humains.
Bah, surtout, les compteurs appartiennent au fournisseur du service, même s'ils sont parfois placés à l'intérieur des logements. Du coup, Enedis peut vouloir le remplacer par un truc rose à points bleus, par un truc plus cher, pas rentable, on peut bien sûr en discuter, mais finalement ça ne change pas grand chose. C'est bien sûr intéressant de savoir pourquoi, mais on n'a pas non plus à connaître tous les coûts de tout l'ensemble de la chaîne. Ils n'ont de toutes manières pas décidé de remplacer tous les compteurs pour se faire plaisir…
Ce n’est pas possible, car quand tu es dans le constructeur de polygone, le vtable (pointeur vers la table des fonctions virtuelles) est initialisé pour Polygone.
Oui oui, c'est logique, je l'ai réalisé dès que j'ai repéré un bug lié à ce problème. Le principe de ma hiérarchie de classe est d'utiliser des méthodes génériques de la classe de base, et tout fonctionnait très bien jusqu'à ce que j'essaye de le faire aussi dans le constructeur.
la solution est de descendre l’information nb_de_point en paramètre au constructeur de Polygone.
Pour être honnête, j'ai même pensé à passer this en paramètre du constructeur de la classe de base, mais j'ai rapidement décidé que je ne voulais même pas savoir si c'était légal.
Je suis quand même un peu surpris que le C++ n'ait pas un mécanisme simple pour s'assurer qu'une fonction est exécutée exactement une fois lors de la construction, sans pour autant contraindre la hiérarchie de classes (typiquement, pour réserver de la mémoire). Dès que les classes filles appellent le constructeur des classes mères, on se retrouve à devoir choisir où réserver la mémoire ; soit dans le constructeur de la classe mère (et donc, de devoir se débrouiller pour passer des variables membres en paramètre du constructeur, ce qui est quand même étrange), soit dans le constructeur de la classe fille (ce qui rend presque mécaniquement la classe mère virtuelle). Disons que je comprends le pourquoi du comment techniquement, mais que ça me semble être un mécanisme légitime en POO…
Ça pourrait bien être le cas. Ceci dit, il arrive bien souvent qu'un «problème d'analyse» ne soit pas vraiment distinguable d'une chose que C++ ne sait pas faire ; c'est clair que j'essaye de faire quelque chose qui n'est pas naturel en C++. Le principe de ce qui me semblerait naturel (vite fait):
structPoint{Point(doublexx,doubleyy):x(xx),y(yy){}doublex;doubley;};classPolygon{public:Polygon(){init();}virtual~Polygon(){}virtualvoidinit(){for(inti=0;i<get_nb_points();i++){Pointp=Point(cos(i*360/get_nb_points()),sin(i*360/get_nb_points()));v.push_back(p);}}virtualintget_nb_points(){return0;}protected:std::vector<Point>v;};classTriangle:publicPolygon{public:Triangle():Polygon(){}intget_nb_points()const{return3;}// pourrait être plus compliqué, lire dans un fichier, etc. };
La logique, c'est que Polygon sait se construire tout seul avec un code générique, il lui manque juste quelques infos auxquelles il pourrait accéder par des "getters" virtuels qui, eux, sont spéciques des classes dérivées. Finalement, ça revient à dire que je souhaite juste éviter quelque chose du style Polygon * p = new Triangle(); p->init(); afin d'éviter de pouvoir laisser l'objet dans un état pas complètement construit.
Le callback permet d'inverser artifciellement l'ordre de la construction, et je réalise que dans tous les cas un bricolage de ce style s'impose. Ça pourrait aussi être une Factory qui s'occuppe d'appeler le constructeur et init() dans la foulée, ou tout un tas d'autres «solutions» (par ex. une fonction statique Polygon* Construct()…). Plus j'y pense et plus j'ai l'impression que ce que j'essaye de faire, c'est de donner également le rôle de Factory à la classe de base, et que ça n'est pas une bonne idée…
C'est marrant, j'avais écrit mon commentaire après avoir lu l'article de Wikipédia (j'évite en général de poser des questions dont on peut trouver les réponses facilement sur Internet). L'article en question est très verbeux et très jargonnant, mais le fond me parait très faible, voire inexistant. Par exemple, «la dysorthographie perturbe, dans des proportions variées, la conversion phono-graphique, la segmentation des composants de la phrase, l'application des conventions orthographiques (dites règles d'usage), et enfin l'orthographe grammaticale», ça veut juste dire qu'on ne sait pas écrire et/ou qu'on fait des fautes. Comme tu as l'air de t'y connaitre, je me permets de reformuler ma question : est-ce qu'il existe une distinction sérieuse entre la dysorthographie et le fait de ne pas savoir écrire un texte bourré de fautes, ou est-ce que l'état de l'art correspond à ce qu'on peut lire dans l'article de Wikipédia (qui, à mon avis, n'est qu'un ramassis de pseudo-science jargonnante).
Au fond, ce n'est pas parce qu'on met des mots savants sur des trucs triviaux que ça devient une approche scientifique. Je comprends bien pour quelles raisons les parents ont besoin d'être rassurés sur les éventuels problèmes scolaires de leurs enfants, et qu'il est beaucoup plus facile d'entendre dire qu'un gamin est dysorthographique et dyscalculant (la phrase clé étant «malgré une intelligence normale») plutôt que d'admettre qu'il n'arrive pas à apprendre à écrire et à compter. Cependant, une discipline ne peut pas à elle seule décider qu'elle est scientifique (à ce compte là, l'astrologie est scientifique).
Si ce n'est pas le cas, tu te fous un peu de toi-même et de nous, non ?
Est-ce que le fait de faire plein de fautes n'est pas par définition la caractéristique de la dysorthographie? Tu considères qu'il y a deux catégories de personnes qui font plein de fautes, les «gentils» qui ont un problème d'apprentissage, et les «méchants» qui se foutent du monde? Le problème, c'est que ça peut s'étendre à tout, certains sont atteints de dysprogrammation (incapacité à pondre du code qui fait quelque chose), d'autres se font accuser par leur conjoint de dysconsidération, de dysremplissage du lave-vaisselle, certains politiciens sont atteints de dysfranchise, etc.
Un petit peu au-dessus de 1600€ je pense que ça deviens pas trop difficile de s'enlever 20% de salaire
Waa, passer de 1600 à 1300€… Quand ton logement te coûte déja pas loin de 1000€, c'est hardcore, faut être très motivé…
C'est clair que ça dépend énormément du contexte ; si tu possèdes ton logement, que tu as des sous de côté, que tu n'as pas d'enfants et des loisirs pas cher, c'est jouable. Si tu as besoin d'une voiture et/ou d'habiter à proximité des transports en commun en région parisienne, avec une famille à nourrir, tu peux avoir besoin d'un peu plus que ça quand même.
[^] # Re: Mauvaise dates
Posté par arnaudus . En réponse au journal Journal social agenda. Évalué à 6.
Bah, quand ton programme se base en partie sur la dénonciation de la collusion entre les médias et des gens pas fréquentables, tu ne peux pas non plus t'attendre à attirer la sympathie des journalistes. Tu peux trouver que ça prouve ton point de vue si tu veux, mais tu ne peux pas avoir les deux.
Sur le fond, la neutralité journalistique me semble en paradoxe total avec la qualité de l'info. Une info de qualité, c'est par exemple une analyse et une remise en contexte des déclaration des politiques : plutôt que de relayer bêtement la com des partis, on attend des bons journalistes qu'ils vérifient les faits, les chiffres, et éventuellement ne relayent pas les opérations de coms sans contenu. Du coup, on va leur reprocher de privilégier certains partis, certains discours, etc. Parce que oui, tous les politiques racontent des des co**ries, mais certains nettement plus que d'autres.
J'ai un peu l'impression que pour quelqu'un comme Mélanchon, les médias constituent surtout un moyen facile d'éviter la contradiction et de maitriser complètement sa communication. L'argument de la communication directe (par les réseaux sociaux ou par n'importe quel moyen qui ne passe pas par les "médias"), c'est du pain béni pour les communicants : on peut réciter sa propagande sans risquer d'être filtré, contredit, ou mis devant ses contradictions.
[^] # Re: essayer Julia ?
Posté par arnaudus . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 3.
Tu détournes habilement le sujet, mais je pense que tu as tort sur le fond. Les mathématiques fournissent évidemment des raisonnements et des résultats qui peuvent être utiles en informatique, et même éventuellement, parfois, dans la pratique quotidienne de la programmation (typiquement, en algorithmique).
Mais je ne sais pas si tu as fait semblant de mal comprendre là où je voulais en venir, ou si je ne m'étais pas exprimé clairement. La question qu'on discutait, c'était de dire que la vectorisation était une manière intuitive en mathématique d'aborder un problème, et que les gens qui considéraient une boucle FOR plus intuitive qu'un calcul vectorisé avaient, en gros, un problème de formation. Or, c'est à mon avis faux. Très souvent, la pensée mathématique est catastrophique en programmation. En calcul numérique, l'utilisation de la définition mathématique est souvent une très mauvaise idée : pour calculer une intégrale, une dérivée, ou même simplement une variance, "penser mathématique" ne mène qu'à des algos inefficaces.
Bref, le fait que certaines applications des mathématiques soient utiles en algorithmique n'invalide absolument pas le fait que quand on code dans la plupart des langages (qui sont destinés à produire des logiciels et pas des démonstrations mathématiques), on doit avant tout penser aux aspects informatiques des problèmes (efficacité de l'algorithme en temps et en mémoire, gestion des arrondis, évolutivité, modularité et clarté du code). Dans ce cadre, les maths sont un outil, et pas un état d'esprit.
[^] # Re: Réchauffement ou Dérèglement ?
Posté par arnaudus . En réponse au journal Le jour d’après, c’est aujourd’hui. Évalué à 6.
Ils choisissent surtout n'importe quoi qui permet d'instiller le doute auprès du grand public. Il ne s'agit absolument pas d'un débat, scientifique ou pas, il s'agit d'une entreprise de propagande et de désinformation, basé sur des outils de communication.
[^] # Re: Pour combien de temps encore ?
Posté par arnaudus . En réponse au journal Le jour d’après, c’est aujourd’hui. Évalué à 3.
Plus tous les trucs enterrés et bien conservés… Si on garde des traces de l'activité de l'Homme de Cro-Magnon alors qu'ils n'étaient que quelques familles de chasseurs-cueilleurs, je pense qu'il n'y a aucun doute qu'on trouve des traces de la civilisation "moderne" pendant plusieurs millions d'années… Les chiffres avancés sont assez fantaisistes et ne considèrent, j'imagine, que des traces vaguement visibles. Il est évident que dans 25000 ans, on va pouvoir tomber sur une rue pavée ou un parking souterrain en creusant un peu.
[^] # Re: Exceptionnel ou systémique ?
Posté par arnaudus . En réponse au journal Le jour d’après, c’est aujourd’hui. Évalué à 4.
En face de certains bistros, il y a des universités, et dans les universités, il y a des gens qui travaillent sérieusement sur de telles questions ; il existe par exemple une discipline scientifique qui s'appelle "Statistiques des valeurs extrêmes" et qui permettent d'aller un peu plus loin que les platitudes habituelles.
[^] # Re: essayer Julia ?
Posté par arnaudus . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 2.
Le choix, ça pourrait être de coder avec des retours par valeur et de laisser le compilo gérer, ce qu'il fait plutôt bien quand le code est clair. En tout cas, c'est ce que j'ai tendance à faire à mon niveau.
Mais bon, j'avoue que je surestime souvent les capacités du compilo à faire des trucs intelligents, notamment pour la gestion de la mémoire. Par exemple, quand on a une fonction qui alloue de la mémoire, fait un traitement, et désalloue la mémoire, appeller la fonction n fois dans une boucle for réalloue et désalloue n fois la mémoire, ce qui me semble assez abérrant. Moi ça me file des boutons en C++11 de refiler des pointeurs vers de la mémoire libre en paramètre des fonctions ou de passer des gros objets par références non-constantes, j'ai l'impression que c'est du mélange crado de paradigmes. Étrangement, ce genre de code est beaucoup plus performant dans certains langages de haut niveau qui vectorisent les appels de fonction.
Je me suis peut-être mal exprimé, mais je n'ai jamais eu de problème avec le comportement du code, seulement avec le temps d'exécution (donc je ne parlais pas du tout de comportement non-défini). Mon problème, c'est que le temps d'exécution du code compilé avec un niveau d'optimisation agressif par le compilo n'était pas compréhensible (tout du moins par moi), avec des temps d'éxécution qui variaient substantiellement et visiblement de manière chaotique en fonction de l'ordre et du nombre de tests conditionnels.
[^] # Re: essayer Julia ?
Posté par arnaudus . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 2.
Pour moi, c'est du très bas niveau. Classiquement, dans mon domaine de recherche (biologie/bio-info), tu n'as aucune idée de la machine sur laquelle ton code va tourner (ça va de ton portable à un gros calculateur, en passant par des clusters pas homogènes). Bref, très difficile d'écrire du code spécifique pour une machine.
Bof, des pointeurs à poil en C++ moderne…
Pas évident sans refiler tout un tas de code imbittable. De mémoire, ça ressemblait à des tentatives d'éviter des multiplications par zéro:
C'est simplifié mais c'est l'idée. Les variables a et b sont lues dans un fichier de paramètres (donc inconnues du compilo). Je ne me rappelle plus exactement des résultats, mais en fonction des valeurs du couples is_a_zero et is_b_zero, on se retrouvait à préférer les versions avec test ou sans test sans vraiment de logique. Ça me faisait penser à un compilo qui prévoit un certain nombre de combinaisons de branches, mais pas toutes (sur quelle base? Aucune idée). Du coup, quand on passe par une combinaison de branchements prévue, ça va vite, mais quand la combinaison n'est pas prévue, il faut se taper une série de tests conditionnels, et c'est lent ; ça irait plus vite de faire les multiplications par zéro.
J'en ai conclu que le résultat de telles optimisations était au mieux inégal, et au pire imprévisible.
[^] # Re: essayer Julia ?
Posté par arnaudus . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 8.
Le lien entre les maths et la programmation est ténu, en plus d'être souvent dangereux. L'idée d'adopter une pensée mathématique quand on code ne me semble pas une bonne idée du tout.
En plus, je ne suis même pas certain que ça soit vrai. Assez souvent, le formalisme mathématique utilise l'équivalent de boucles FOR (sommes et produits) ; le recours à l'algèbre linéaire est loin d'être systématique, et me semble inexistant dans certains domaines (suites, systèmes dynamiques?). D'autre part, les notations d'algèbre linéaire sont souvent compactes (typiquement, les successions de produits de matrices inversées et transposées), mais sont très inefficaces en terme de calcul. Bref, pas concaincu du tout qu'il soit naturel de vectoriser, surtout quand on code dans un langage qu'on connait mal. Ça me semble être un peu un argument a posteriori, la logique de la vectorisation est très puissante quand le langage est organisé autour de ça, mais il n'y a pas de raison a priori qu'elle paraisse plus naturelle qu'une autre.
Pas forcément, tu peux déja optimiser énormément en restant à haut-niveau, et les compilateurs sont aussi censés t'aider à ne pas micro-optimiser le code. Il arrive d'ailleurs souvent en C++ par exemple qu'une optimisation "logique" (par exemple, retourner un résultat par référence plutôt que par valeur) ralentisse le programme, parce que le compilateur l'avait déja fait, et de manière plus efficace qu'à la main. J'ai récemment essayé de plonger un peu dans la micro-optimisation d'une fonction critique en C++, et à mon niveau de compréhension, tout ça s'est avéré relever de la magie noire ; tout fonctionne sans optimisation, mais dès qu'on est en O2 ou O3, l'effet des changements (par exemple jouer avec le nombre et l'ordre des tests conditionnels) est totalement imprévisible, ce qui me donne à penser que plus on fait des trucs sioux et plus on gène le compilo plutôt qu'autre chose.
[^] # Re: essayer Julia ?
Posté par arnaudus . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 10.
Ce genre de trucs, c'est quand même assez récurrent, et à mon avis c'est quand même en grande partie attribuable à des défauts des langages de programmation. On vit dans un monde où il y a des dizaines de langages populaires, et des centaines si on ajoute des trucs comme Julia. Tous les ans, des dizaines de nouveaux langages apparaissent. Dès qu'on fait un peu de programmation, il faut être polyglotte, et si la programmation n'est pas le cœur de métier, alors on peut s'attendre à ce que la règle générale soit de ne pas maitriser les spécificités du langage.
Or, ces langages ont l'air d'être conçus par et pour des gens qui vont en connaitre tous les détails, tout ce qui est mal documenté, tout ce qui n'est pas intuitif, et que c'est de la faute du programmeur s'il ne connait pas ces "finesses". Je trouve que c'est une excuse qui fait injustement reporter la faute sur les utilisateurs et pas sur les concepteurs des langages. Un moment donné, est-ce qu'il n'est pas naturel de s'attendre à ce que la meilleure manière de faire une boucle FOR, c'est de faire une boucle FOR?
La fragmentation, c'est aussi un problème dans ce genre de cas. On a parlé de Julia, par exemple, qui arrive dans un contexte où il y a déja de nombreux langages "scientifiques" et de nombreuses possibilités ; dans une équipe de recherche de 10 personnes, on trouve parfois 10 langages différents : C, C++, Fortran, Ada, OCalm, R, Python, Perl, MatLab, plus les pseudo-langage des logiciels spécialisés (SAS, Mathematica… ), les langages de script, etc. Encore une fois, tout ça vient en plus de la formation scientifique, les gens utilisent ces outils pour arriver à leurs fins, mais la programmation n'est pas leur métier. Et là, paf, «Pourquoi tu ne fais pas du Julia?», «Pourquoi ne pas regarder du côté de Ruby?», «L'avenir, c'est le Go.», etc. Alors oui, tout cela part d'une bonne intention, mais il faut bien comprendre qu'on ne remplace pas un langage par un autre, tout ça se juxtapose. Quand on incite à utiliser Julia pour les nouveaux projets, on peut éventuellement gagner un peu en productivité, mais quid de la maintenance du code une fois que le post-doc ou le doctorant sera parti? Quid du temps de formation, et du manque de support local? Évidemment, ça n'est pas une raison pour ne jamais évoluer, et c'est vrai que des trucs comme Ada, Fortran, ou même C tendent à disparaitre peu à peu, mais ça n'est pas une raison pour refaire pour la 1000e fois le coup du "apprenez ce truc nouveau, ça vous fera gagner du temps". Au final, plus personne ne maitrise réellement chaque langage, ça diminue la qualité du code, et ça n'apporte pas grand chose.
[^] # Re: A suivre
Posté par arnaudus . En réponse à la dépêche Open Source Seeds : les graines de tomates libres. Évalué à 3.
Je pense que tu as un problème de terminologie, regarde l'article Wikipédia Révolution agricole: «La révolution agricole désigne, dans une première acception, l'ensemble des innovations agricoles survenues aux XVIIIe et XIXe siècles.». Mais bon, je m'étais gouré aussi, je voulais parler plutôt de ce qui se passe depuis les années 1950 (mécanisation, intrants, sélection variétale, irrigation), et qui a fait augmenter les rendements de 300% en 50 ans.
[^] # Re: les graines en France
Posté par arnaudus . En réponse à la dépêche Open Source Seeds : les graines de tomates libres. Évalué à 4.
Wikipédia fournit un contexte et des sources pour creuser :
https://fr.wikipedia.org/wiki/Kokopelli_(association)
https://fr.wikipedia.org/wiki/Catalogue_officiel_des_esp%C3%A8ces_et_vari%C3%A9t%C3%A9s
Après, pour certains trucs, j'ai fait une synthèse de mes lectures, et je peux aussi me tromper. Par exemple, il existe une étude de l'INRA (https://www.permaculturedesign.fr/non-labour/) qui pourrait faire penser que les méthodes sans labour pourraient être rentables économiquement malgré une perte de rendement (de l'ordre de 20% en moins). Mais bon, d'une manière générale, quand on parle de rentabilité économique, on doit s'attendre à ce qu'une activité rentable se généralise, et que la disparition d'une pratique soit au moins en partie due à son manque de rentabilité—il est faux d'affirmer que les acteurs économiques sont tous rationnels, mais il est encore plus faux d'assumer qu'ils sont systématiquement irrationnels!.
Sur les histoires de pratiques agricoles et de rentabilité, je suis surpris par le manque de sources académiques sérieuses sur le sujet. On trouve pas mal de trucs en Amérique du Nord par exemple, mais les conditions (climatiques, biologiques, économiques et sociales) y sont tellement différentes que j'ai du mal à imaginer qu'on puisse en tirer quoi que ce soit sur la rentabilité des différentes pratiques agricoles en Europe.
[^] # Re: A suivre
Posté par arnaudus . En réponse à la dépêche Open Source Seeds : les graines de tomates libres. Évalué à 6.
L'agriculture est une activité économique, elle doit être viable. Déja qu'elle n'est pas rentable sans de multiples subventions, il faut quand même qu'elle soit capable d'être pérenne (ne serait-ce que pour rentabiliser les investissements). Si ta ferme bio-dynamique respectueuse de l'environnement et qui produit des machins qui ont du goît perd 100k€ par an, elle va vite être remplacée par une activité rentable.
Bien sûr, la qualité peut se payer ; c'est d'ailleurs le cas (peut-être même un peu excessivement) avec les produits "bio". Tu peux aussi payer un peu plus cher pour une agriculture de proximité, favoriser les circuits courts, tout ça tu peux le faire.
Il n'empêche, si tes machins ne poussent pas, tu ne peux rien vendre. Le manque de rendement est problématique pour plusieurs raisons ; déja pour la viabilité économique de ton activité, mais pas seulement. Si ta culture est pourrie de ravageur, la qualité ne va pas être au rendez-vous, les gens veulent bien payer plus cher pour du bio mais ils ne veulent pas se retrouver avec un vers dans chaque fruit ; il faut que ça soit mangeable. Il faut aussi que tu puisses assurer tes livraisons, si tu fais des paniers ou si tu as des clients réguliers, après 3 semaines de "ah je n'ai plus que des patates", tes clients vont se barrer. Il faut aussi que tes solutions ne soient pas pires que le mal (typiquement, le cas dont je parlais au-dessus : innonder ton champ de glyphosate avant de faire un semis sans labour). Enfin, le rendement a une importance pour le développement durable, le but est de nourrir une population sans cesse croissante avec une surface agricole constante. Dans ce contexte, l'agriculture "de qualité" à faible rendement est un luxe d'occidental, et condamne les Chinois à manger du riz issu d'une production industrielle polluante parce qu'on gâche nos surfaces agricoles à cultiver des trucs qui poussent mal.
Il ne faut pas certes jeter le bébé avec l'eau du bain, la production industrielle actuelle est assez insipide, notamment (mais pas seulement) à cause de sélections variétales orientées sur des critères de productivité et de rentabilité économique au détriment des propriétés organoleptiques (ça claque hein?). Les semenciers ne sont pas complètement débiles, et ils sélectionnent aussi depuis quelques temps sur le goût. Mais bon, c'est aussi surtout la distribution qui est problématique ; cueillir les fruits avant maturité reste nécessaire pour les transporter dans de bonnes conditions, et ça, même sur une variété bio traditionnelle, ça fera toujours des fruits durs et pas très bons.
Ce que je critique surtout, c'est la pensée bobo-Parisien, orientée vers le "c'était mieux avant", et "c'est meilleur quand c'est traditionnel". L'agriculture traditionnelle (avant la révolution agricole), c'était surtout des agriculteurs qui avaient du mal à nourrir leur famille, qui se tuaient la santé, qui dépendaient énormément des aléas de la météo, qui ne pouvaient pas stocker leur production car elle ne se conservait pas, qui se faisaient ravager par des insectes, des chenilles, des maladies diverses… bref, qui étaient bien contents de sortir quelque chose de leur terre, et qui se foutaient certainement pas mal du goût des légumes. D'ailleurs, trainer avec quelques "vieux" dans les coins bien reculés est assez instructif, la plupart du temps ils mangent assez mal, ils stockent leurs production "bio" du potager dans des vieux bidons d'essence rouillés, ils récoltent des trucs de la nature qui sont depuis interdits à la vente à cause de leur toxicité… Sérieusement, il faut bien comprendre que les stupidités du style "jardiner avec la lune", "culture bio-dynamique", "variétés traditionnelles", c'est des trucs hyper-récents ; une sorte de vague commerciale sur laquelle un certain nombre d'entreprises surfent pour vendre des légumes trois plus plus chers à une clientelle fortunée. Tout ça n'a rien de traditionnel, puisque l'agriculture traditionnelle, c'est plutôt de manger ce qu'on peut, des semences douteuses qui voulaient bien pousser et qui n'étaient pas trop bouffées par les bestioles.
[^] # Re: les graines en France
Posté par arnaudus . En réponse à la dépêche Open Source Seeds : les graines de tomates libres. Évalué à -6.
Les grands semenciers sont tranquilles parce que, jusqu'à preuve du contraire, personne n'a pu démontrer la viabilité économique de l'agriculture "traditionnelle" (rendements similaires aux années 1950-1960?), ni encore moins le caractère «durable» d'une agriculture peu productive.
C'est toujours plus facile d'interpréter les choses avec un filtre idéologique. Par exemple, il y a quelques années, c'était la grande mode du semis sans labour. Puis, la mode est passée, il semble que ceux qui ont essayé reviennent au labour (ou alors, c'est un bon coup de glyphosate avant :-) ). Il y a toujours quelques hurluberlus (qui ne sont pas agriculteurs) qui prétendent que c'est de la faute des vendeurs de matériel, des semenciers, ou d'épouvantails divers, mais bon…
Le plus gros ennemi des idéologues, ça n'est pas les grandes entreprises ou le gouvernement. C'est juste la réalité. On peut penser, pour de très bonnes raisons, que d'éviter de zigouiller tous les vers de terre tous les ans est une bonne idée, et que le monde se porterait mieux si on ne labourrait pas les champs. Sauf que bon, si on n'arrive à ne rien faire pousser, ça ne sert absolument à rien.
À mon avis, ça va être la même chose pour les semences paysannes ou traditionnelles. Ça a beau sembler mieux sur le papier, mais si ça pousse mal, si les rendements sont variables et non-reproductibles, si la récolte est compliquée, ou s'il faut déverser trois citernes de phytosanitaires par hectare pour maintenir un semblant de rendement, bah ça ne va pas marcher. Les agriculteurs ne sont pas des débiles profonds, s'ils sont passés des semences traditionnelles aux semences industrielles, c'est parce que le rendement des produits industriels était bien supérieur.
[^] # Re: les graines en France
Posté par arnaudus . En réponse à la dépêche Open Source Seeds : les graines de tomates libres. Évalué à 10.
Ouais, il y a quand même pas mal d'idéologie là dedans, et il n'est pas nécessairement simple de déméler le vrai du faux.
Déja, il y a des dizaines de milliers de variétés inscrites au catalogue, y compris des variétés traditionnelles. Le catalogue existe depuis très longtemps, et seule une toute petite partie est encore cultivée—autrement dit, il est quand même difficile de ne pas trouver chaussure à son pied dans ce catalogue.
Ensuite, le but du catalogue est avant tout de protéger le consommateur, afin qu'il puisse identifier clairement ce qu'il achète. La variété est documentée de la graine à l'étal du maraicher, et c'est justement ce qui limite la fraude : on ne peut pas vendre une variété pour une autre, par exemple. En absence de catalogue, on pourrait donner n'importe quel nom à n'importe quelle variété. Que la logique du catalogue puisse bénéficier dans une certaine mesure à des grandes entreprises, c'est dans l'ordre des choses, les grandes entreprises ont assez de ressources et d'imagination pour tirer bénéfice de n'importe quel dispositif, et ce même si ce dispositif avait été mis en place justement pour lutter contre les grandes entreprises (c'est typiquement le cas du droit d'auteur, des brevets, etc).
Enfin, il faut se renseigner un peu autour de ce que proposent certaines associations (on cite kokopelli plus bas), parce que c'est beaucoup plus compliqué que de plonger dans un discours "gentilles associations contre puissances de l'argent". D'une part, une grande partie de la com' de ces associations est fausse (beaucoup par exemple affirment que les lois liberticides rentent illégales les échanges ou la vente de graines entre particuliers, ce qui est complètement faux). D'autre part, elles ont tendances à se victimiser alors qu'à ma connaissance, tous les problèmes judiciaires qu'elles ont eu étaient liés à des petites et moyennes entreprises (notamment des boites qui vendent des graines par correspondance), pour concurrence déloyale, et pas du tout à des grands semenciers, qui se foutent comme de leur premier slip que des associations vendent des graines de plantes qui poussent mal. Il faut savoir quand même que les associations doivent respecter un certain nombre de règles quand elles concurrencent des acteurs économiques non-associatifs dans le secteur marchand, et elles se font condamner à juste titre quand elles ne le font pas. Il faut aussi comprendre que le problème de Kokopelli, par exemple, n'était pas du tout l'inscription de nouvelles variétés au catalogue (chose qu'on leur a proposé de faire gratuitement il y a plusieurs années). Certaines associations veulent pouvoir vendre des semences qu'elles appellent "paysannes", et qui sont des populations non-fixées. Ces mélanges ne sont pas stables dans le temps, on ne peut pas non plus les récolter pour les resemer à l'identique, bref, ils posent un réel problème parce qu'il est impossible de les caractériser et d'assurer la reproductibilité de la culture. Au fond, peu de "paysans" seraient intéressés par ces semences "paysannes", qui n'ont pas réellement d'intérêt agronomique (contrairement aux mélanges de variétés), et qui ne peuvent donc pas être inscrites au catalogue.
Au passage, il ne faut pas non plus se faire intoxiquer par l'appellation "variété ancienne". Cette appellation est beaucoup utilisée par les industriels, et la très grande majorité des variétés qu'elles désignent sont au contraire très récentes. C'est un terme commercial qui désigne des variétés qu'on pense représenter ce que les consommateurs considèrent comme des variétés anciennes ; elles sont en effet moins productives et peut-être plus goûteuses que les variétés très productives, mais elles ne sont pas du tout anciennes. Les vraies variétés anciennes, d'une part, sont évidemment inscrites au catalogue (pour celles qui n'ont pas simplement disparu), et d'autre part, ont souvent une production catastrophique (faible productivité, grosses pertes, grosses sensibilités aux ravageurs, aux maladies, aux aléas climatiques…) sans pour autant avoir particulièrement plus de goût. La mode du "c'était mieux avant" sert avant tout à harponner un nouveau type de pigeon qui croit savoir mieux que tout le monde, mais c'est juste de la com.
[^] # Re: FreeIPA
Posté par arnaudus . En réponse au message Gestion centralisée d'un parc de postes de travail (300 postes). Évalué à 5.
Il ne faut pas se méfier des prestataires de manière générale? :-)
Après, c'est comme tout, j'imagine. Quand tu fais appel à un électricien, tu peux tomber sur un pro qui sait ce qui fait et en plus qui est efficace, et tu peux tomber sur un guignol pas sérieux qui se forme sur le tas. Je n'y connais absolument rien à ce milieu, mais d'après ce que je lis parfois sur ce site, ça fait quand même peur…
[^] # Re: FreeIPA
Posté par arnaudus . En réponse au message Gestion centralisée d'un parc de postes de travail (300 postes). Évalué à 2.
Il ne donne pas le contexte ni le budget. Si c'est une association ou une administration, il a peut-être 0€ de budget de fonctionnement, donc faire appel à une boîte…
[^] # Re: Pas si choquant que ça
Posté par arnaudus . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 10.
C'est le cas pour la plupart des langages haut niveau bien pensés, et c'est d'ailleurs exactement ce qu'ils sont censés faire. Tu codes dans un langage de haut niveau pour gérer les entrées-sorties, la gestion des erreurs, la portabilité, l'évolutivité du logiciel, etc. Et les quelques parties gourmandes en temps de calcul, tu enchaines les appels de fonctions optimisées prises dans les bibliothèques du langage, et souvent codées en C (ou en assembleur, ou en n'importe quoi du moment que c'est efficace) par des gens qui savent le faire.
Au final, sur une application scientifique par exemple, il est très rare d'avoir besoin de coder soi-même une partie au cœur de l'algorithme (d'ailleurs, c'est souvent inenvisageable, parce qu'on ne peut pas vraiment être à la fois une pointure dans un domaine scientifique et en programmation bas niveau). Tu vas mettre en place ton modèle, stocker tes objets, analyser les sorties, etc, et tu vas leur appliquer des opérations de calcul "standard" : appel à des générateurs de nombres aléatoires qui tirent dans des distributions spécifiques, optimisation de fonctions multivariées, inversion de matrices, parcours d'arbres, etc etc. Évidemment, tout dépend du problème et de la compétence téchnique autour de soi, mais dans certains domaines, l'analyse de données scientifiques revient souvent à scripter un «pipeline» qui enchaine des opérations successives ou parallèles de traitement de données. Ça n'est pas le même métier que de mettre au point les algorithmes eux-mêmes…
[^] # Re: CPL + Wifi
Posté par arnaudus . En réponse au journal Linky et filtre cpl. Évalué à 4.
C'est surtout que ça gripperait complètement le marché de l'immobilier, ça n'a aucun intérêt. Si tu as une baraque vétuste, tu ne pourrais la vendre qu'en engageant des travaux coûteux, donc en fait tu ne le ferais pas. Ça découragerait les propriétaires de louer, etc. C'est carrément contre-productif, en plus d'être injuste. Les normes changent tellement souvent qu'une installation ne serait OK que pendant une très courte période.
[^] # Re: CPL + Wifi
Posté par arnaudus . En réponse au journal Linky et filtre cpl. Évalué à 3.
Les différentiels 30mA ne sont pas obligatoires sur toutes les installations, c'est juste la norme pour les installations récentes. Rien ne t'empêche d'ajouter les dispositifs de ton choix sans pour autant complexifier encore les milliers de normes en vigueur…
[^] # Re: Lien utile
Posté par arnaudus . En réponse au journal Linky et filtre cpl. Évalué à 8.
Bah, surtout, les compteurs appartiennent au fournisseur du service, même s'ils sont parfois placés à l'intérieur des logements. Du coup, Enedis peut vouloir le remplacer par un truc rose à points bleus, par un truc plus cher, pas rentable, on peut bien sûr en discuter, mais finalement ça ne change pas grand chose. C'est bien sûr intéressant de savoir pourquoi, mais on n'a pas non plus à connaître tous les coûts de tout l'ensemble de la chaîne. Ils n'ont de toutes manières pas décidé de remplacer tous les compteurs pour se faire plaisir…
[^] # Re: Ordre des constructeurs
Posté par arnaudus . En réponse au message Le constructeur d'une classe de base peut-il savoir qu'il n'est pas le dernier?. Évalué à 2.
Oui oui, c'est logique, je l'ai réalisé dès que j'ai repéré un bug lié à ce problème. Le principe de ma hiérarchie de classe est d'utiliser des méthodes génériques de la classe de base, et tout fonctionnait très bien jusqu'à ce que j'essaye de le faire aussi dans le constructeur.
Pour être honnête, j'ai même pensé à passer this en paramètre du constructeur de la classe de base, mais j'ai rapidement décidé que je ne voulais même pas savoir si c'était légal.
Je suis quand même un peu surpris que le C++ n'ait pas un mécanisme simple pour s'assurer qu'une fonction est exécutée exactement une fois lors de la construction, sans pour autant contraindre la hiérarchie de classes (typiquement, pour réserver de la mémoire). Dès que les classes filles appellent le constructeur des classes mères, on se retrouve à devoir choisir où réserver la mémoire ; soit dans le constructeur de la classe mère (et donc, de devoir se débrouiller pour passer des variables membres en paramètre du constructeur, ce qui est quand même étrange), soit dans le constructeur de la classe fille (ce qui rend presque mécaniquement la classe mère virtuelle). Disons que je comprends le pourquoi du comment techniquement, mais que ça me semble être un mécanisme légitime en POO…
[^] # Re: Ordre des constructeurs
Posté par arnaudus . En réponse au message Le constructeur d'une classe de base peut-il savoir qu'il n'est pas le dernier?. Évalué à 2.
Ça pourrait bien être le cas. Ceci dit, il arrive bien souvent qu'un «problème d'analyse» ne soit pas vraiment distinguable d'une chose que C++ ne sait pas faire ; c'est clair que j'essaye de faire quelque chose qui n'est pas naturel en C++. Le principe de ce qui me semblerait naturel (vite fait):
La logique, c'est que Polygon sait se construire tout seul avec un code générique, il lui manque juste quelques infos auxquelles il pourrait accéder par des "getters" virtuels qui, eux, sont spéciques des classes dérivées. Finalement, ça revient à dire que je souhaite juste éviter quelque chose du style
Polygon * p = new Triangle(); p->init();
afin d'éviter de pouvoir laisser l'objet dans un état pas complètement construit.Le callback permet d'inverser artifciellement l'ordre de la construction, et je réalise que dans tous les cas un bricolage de ce style s'impose. Ça pourrait aussi être une Factory qui s'occuppe d'appeler le constructeur et init() dans la foulée, ou tout un tas d'autres «solutions» (par ex. une fonction statique Polygon* Construct()…). Plus j'y pense et plus j'ai l'impression que ce que j'essaye de faire, c'est de donner également le rôle de Factory à la classe de base, et que ça n'est pas une bonne idée…
Merci pour les pistes!
[^] # Re: réponses + question
Posté par arnaudus . En réponse au message Récuperer un Mot de passe Root. Évalué à 2.
C'est marrant, j'avais écrit mon commentaire après avoir lu l'article de Wikipédia (j'évite en général de poser des questions dont on peut trouver les réponses facilement sur Internet). L'article en question est très verbeux et très jargonnant, mais le fond me parait très faible, voire inexistant. Par exemple, «la dysorthographie perturbe, dans des proportions variées, la conversion phono-graphique, la segmentation des composants de la phrase, l'application des conventions orthographiques (dites règles d'usage), et enfin l'orthographe grammaticale», ça veut juste dire qu'on ne sait pas écrire et/ou qu'on fait des fautes. Comme tu as l'air de t'y connaitre, je me permets de reformuler ma question : est-ce qu'il existe une distinction sérieuse entre la dysorthographie et le fait de ne pas savoir écrire un texte bourré de fautes, ou est-ce que l'état de l'art correspond à ce qu'on peut lire dans l'article de Wikipédia (qui, à mon avis, n'est qu'un ramassis de pseudo-science jargonnante).
Au fond, ce n'est pas parce qu'on met des mots savants sur des trucs triviaux que ça devient une approche scientifique. Je comprends bien pour quelles raisons les parents ont besoin d'être rassurés sur les éventuels problèmes scolaires de leurs enfants, et qu'il est beaucoup plus facile d'entendre dire qu'un gamin est dysorthographique et dyscalculant (la phrase clé étant «malgré une intelligence normale») plutôt que d'admettre qu'il n'arrive pas à apprendre à écrire et à compter. Cependant, une discipline ne peut pas à elle seule décider qu'elle est scientifique (à ce compte là, l'astrologie est scientifique).
[^] # Re: réponses + question
Posté par arnaudus . En réponse au message Récuperer un Mot de passe Root. Évalué à 4.
Est-ce que le fait de faire plein de fautes n'est pas par définition la caractéristique de la dysorthographie? Tu considères qu'il y a deux catégories de personnes qui font plein de fautes, les «gentils» qui ont un problème d'apprentissage, et les «méchants» qui se foutent du monde? Le problème, c'est que ça peut s'étendre à tout, certains sont atteints de dysprogrammation (incapacité à pondre du code qui fait quelque chose), d'autres se font accuser par leur conjoint de dysconsidération, de dysremplissage du lave-vaisselle, certains politiciens sont atteints de dysfranchise, etc.
[^] # Re: Techniquement
Posté par arnaudus . En réponse au message Recherche de boulot en temps partiel voir mi-temps. Évalué à 3.
Waa, passer de 1600 à 1300€… Quand ton logement te coûte déja pas loin de 1000€, c'est hardcore, faut être très motivé…
C'est clair que ça dépend énormément du contexte ; si tu possèdes ton logement, que tu as des sous de côté, que tu n'as pas d'enfants et des loisirs pas cher, c'est jouable. Si tu as besoin d'une voiture et/ou d'habiter à proximité des transports en commun en région parisienne, avec une famille à nourrir, tu peux avoir besoin d'un peu plus que ça quand même.