Et oui, on ouvre des nouveaux datacenters plus efficients énergétiquement mais on n'enlève pas les anciens. Les deux cohabitent et le coût énergétique ne fait que croitre, en plus du côut de fabrication des équipements de l'installation.
IDEM pour la 5G, c'est une vase fumisterie de dire que la 5G est une bonne chose d'un point de vue climat car le bilan énergétique de l'équipement réseau est mieux que la 4G. Car, on ne va pas débrancher les antennes 4G, ni les 3G, ni les 2G (je simplifie volontairement). C'est donc un coût climatique supplémentaire dont on parle.
Concrètement, en roulant avec mon vieux diesel produit avant que les normes écolo ne soient trop fortes, mon impact climatique est bien meilleur que le citoyen écolo-naïf qui va s'acheter une voiture électrique toute neuve en mettant l'ancienne à la casse. L'impact de la fabrication écrase juste massivement tous les autres impacts à l'usage.
On a été à mon sens endoctrinés à croire que en achetant des biens dit "vertueux" d'un point de vue climatique, on peut changer le destin climatique de notre planète. C'est plus facile à croire car ça demande moins de changements à nos habitudes.
Mais pour moi, la vérité difficile à admettre, c'est que le chemin est différent: il faut changer des habitudes de fond, engrammées dans le mode de fonctionnement de notre société: acheter moins, acheter d'occaze, faire réparer plus, accepter un PC moins performant, une voiture moins confortable et vieille, faire un gateau sans utiliser le robot mixeur pour mélanger la farine, et etc.
A l'opposé de ce que nous vend la télé, les journaux, la croissance et autres.
Ca m'arrive souvent de faire des parser pour des formats de fichiers relativement simple, et je trouvais que mon code manquait d'un bon Design Pattern approprié. Le voici enfin! Je m'en sortais avec des variables globales pour le contexte, une variable pour l'état et plein de if/else qui au bout d'un moment deviennent un peu compliqués à maintenir.
J'ai aussi eu le cas d'une boucle d'évènement d'un jeu à réaliser dernièrement et j'ai rencontré exactement le besoin que du décris (du très très classique en fait).
Je garde ça dans ma besace. J'aime beaucoup la simplicité, tu as avant-tout une classe avec une méthode run(). Question naive, est-ce qu'une fonction ne suffirai pas dans les cas très simple ?
Je réagis sur cette partie de ton message qui laisse filer un troll bien involontaire:
Pour valider le paiement, il y a l'envoi d'un SMS ou d'un courriel.
C'est un peu fastidieux […] mais ça me semble difficile de faire plus simple en restant sécurisé.
Bof.
J'habite à la campagne. Dans mon jardin, je capte péniblement l'antenne SFR du village (située à trois kilomètres). Je suis passé chez SFR exprès pour ça, les autres étant catastrophiques. Dans la maison aux murs épais à l'ancienne, le réseau ne passe pas ou très mal. Quand il pleut, pas de réseau dans la maison et un seul endroit dans le jardin où je capte.
Malgré ça, j'ai un accès ADSL pas trop mal et il m'arrive de commander des trucs sur internet ou de payer tout simplement la cantine de mes enfants. En ai-je le droit ? C'est pas sûr… Le fameux SMS du Crédit Coopératif met entre 2 minutes et 20 minutes à arriver jusqu'à mon téléphone. Pour un paiement qui expire en cinq minutes ! Je fais souvent ce type de paiement le soir et je suis moyennement motivé pour sortir dans la nuit sous la pluie juste pour recevoir mon SMS.
C'est un peu mieux avec l'application dédiée, il semble que la consommation en bande passante soit plus faible qu'un SMS. Ah oui, parce qu'on aime pas les ondes chez moi, donc on active le wifi qu'en situation de nécessité. Et un téléphone n'a pas de moyen de se connecter au nain ternet autrement qu'en wifi.
Bref, en vivant depuis quelques années à la campagne, je découvre à quel point notre monde dit moderne est très centré sur le mode de vie des citadins/banlieusards et complètement ignorant ou méprisant des réalités de la campagne.
On est pas au niveau de la prison, mais aux jours qui ont suivi la dernière attaque terroriste sur le territoire français, les médias et divers courants politiques se sont emparés avec émoi du concept de "fiche S" en demandant plein de trucs à la con (déchéance de nationalité, prison, etc).
Lors de l'annonce de la manifestation suivante, pas mal de citoyens ont été assignés à résidence par la préfecture, sans aucune justification. On y trouvait pèle-mèle des musulmans, des écolos, des gauchistes. Autant certains avaient un profil qui pourrait faire imaginer qu'ils aurait vaguement un lien avec l'islam radical, autant la majorité était clairement des gens en profond désaccord avec la politique du gouvernement, qui avaient l'habitude de l'exprimer en participant à des manifestations. Je pense aux écolos et aux gauchistes, voir à ceux qui cumulent ces deux handicaps sous un gouvernement de droite.
Je pense aussi à cet homme qui a crié en pleine gare devant l'arrivée d'un convoi de policier "Sarkozy, je te vois" et qui a eu la joie de passer 72 heures en garde à vue.
On est pas dans un état de la censure comme dans des pays sous dictature, mais en France, quand ton opinion diffère de la majorité et que tu l'exprimes, tu peux t'attendre à te ramasser un certains nombre de problèmes : flash ball dans la gueule, insultes, assignation à résidence, garde à vue non justifiée, petit passage à tabac, etc etc.
Et puis l'annonce d'un invité surprise, le tout nouveau responsable du département "éthique logicielle" que Apple vient d'embaucher pour remettre l'entreprise sur ses rails.
Ah, c'est lui le nouveau stagiaire ? Je me demandais aussi…
Quand je discutais il y a une bonne vingtaine d'année avec Guillaume Laurent, l'un des ex-mainteneurs de gtkmm, il m'avait expliqué que le projet n'avait pas de futur. Ce qu'il avait identifié, en tant que mainteneur, c'est que la charge de travail pour générer des bindings à la main était énorme, et que Gtk se prêtait mal à cet exercice. L'autre facteur, c'était le manque d'intérêt de la communauté pour un binding C++ vers Gtk. Les développeurs étaient très majoritairement heureux avec le Gtk en C. En tant que fan de C++, il s'était tourné vers Qt, à rebours de tout le monde à l'époque (chacun restait dans son camp, Qt/KDE vs Gnome/Gtk).
Par curiosité, j'ai cliqué sur les projets listés sur la page de gtkmm pour voir ce qu'il en était aujourd'hui. Je tombe en très grande partie sur des pages qui n'existent plus, des dépôts sous CVS sous sourceforge qui n'ont jamais été migrés, des dépôts valides mais sans commits depuis 15 ans, ou 10 ans pour certains.
Il reste quelques survivants néanmoins: inkscape, K-3D (pas complètement actif mais pas mort quand même), gobby en mode maintenance, gparted qui a l'air relativement actif.
Il y a surement d'autres projets non listés. Par contre, vu le petit nombre de projet actifs, on peut s'attendre à ce qu'il n'y aie pas grand monde pour reprendre le flambeau.
Je me demandais ce que ça me faisait, 15 ans plus tard, de constater que ma vision sur Qt et Gtkmm était juste. Il y a une vague petite satisfaction d'avoir eu raison, mais surtout, c'est juste dommage pour ces projets dont certains avaient l'air sympatique. Je doute que gtkmm a lui seul soit la raison de cette désaffection, mais ça reste dommage quand même. Après … c'est la vie, des projets logiciel libre, il en nait et meurt tous les jours.
Tiens d'ailleurs, le projet de Guillaume Laurent a-t-il survécu ? Mais oui, RoseGarden est toujours sur sourceforge, et visiblement toujours actif !
Je reste aussi sur ma faim côté UI. Les applications que j'ai développées en PyQt ces dernières années se basaient sur affichages en arbres, en liste ou en table. Trois widget/contrôles que je n'ai pas retrouvé dans les lib citées plus haut.
Le choix de widget m'a semblé vraiment pauvre. C'est peut être le côté portabilité universel sur un smartphone qui fait qu'on limite les contrôles à des trucs vraiment très basiques.
Mais parfois, on fait du pur desktop. Par exemple, si je prends un screenshot wireshark, j'ai pas l'impression qu'il soit possible de coder facilement une telle interface avec les deux lib go.
Pourtant, on est bien dans le domaine de prédilection du go: du réseau et du système.
Je suis un peu surpris par ton commentaire. Tu es sûr que tu as fait du Qt récemment ?
Peut-être que j'arrive pas à cerner précisément le problème que tu rencontres mais j'ai jamais eu l'impression d'être noyé par les callback sous Qt. L'aspect slot justement est plus fin qu'un callback puisque tu n'as pas besoin de connaitre précisément l'appelant.
Quant à la propagation des modifications, sur des écrans de fonctionnalité assez simples, évidemment, quelle que soit la méthode, ça reste simple. Sur des écrans assez complexes, je me retrouve souvent à utiliser du modèle/vue, que ce soit celui fourni par Qt pour des widgets types lists, arbres ou tables, ou bien celui fourni indirectement par le flux de circulation des signaux.
Par exemple, pour cacher une entrée dans un menu en haut de la fenêtre + menu du click + bouton de la barre d'outil, j'ai juste à utiliser l'action d'origine actionMachin.setVisible(False).
On est bien dans une logique modèle/vue où le module (le QACtion) propage son changement dans toutes les vues (3 vues ici). Et tu as seulement besoin de toucher au modèle.
Les mises à jour visuelles se font aussi selon une chaîne de réaction qui ressemble à ce que j'ai vu sous React. L'évenement de base est propagé en descendant (par exemple un click) et tu choisis de le gérer au niveau qui t'interesse en mettant à jour les widgets qui te conviennent. Qt fait ensuite l'analyse en remontant pour voir quels parties de l'écran il doit redessiner.
Autant j'ai bien compris l'intérêt de React par rapport à de la programmation web javascript classique à coup de callback qui est vraiment lourd, autant je lui vois aucune supériorité par rapport à de la programmation en Qt. Les principes de fonds sont à peu près les mêmes, avec quelques particularités liées à la technologie d'implémentation.
React ne résout pas tout non plus. J'ai eu à debugger une application un peu complexe récemment, j'ai du m'accrocher pour comprendre la chaîne d'évènements qui mettait à jour ou pas une partie inappropriée de l'interface. Mon inexpérience côté web a certainement joué, mais il m'a pas semblé que j'étais arrivé dans un monde de simplicité et de clarté que tu vantes ici.
De façon intéressante, les nouveaux qui sont censés enterrer l'ancien n'y arrivent pas complètement, et surtout, lui doive beaucoup. Pour nommer ceux que tu as cités et je connais, une grande partie de leur syntaxe est héritée du C : Java, C++, .Net, Python, Javascript. Comme dit Rafiki à Simba dans le roi lyon à propos de son père: "il vit en toi!". Le C vit aussi dans tous ces langages qui lui sont apparentés.
Les PR ne font pas tout. Pour un projet populaire comme mypy (vérification de typage pour Python), il y a plus de 2000 issues ouvertes et 140 PR. L'équipe derrière est une petite équipe, c'est pas forcément gérable d'avoir autant de choses à revoir et possiblement intégrer.
J'ai de nombreux collègues qui adressent tous les papiers administratifs sur leur lieu de travail
Et cela se passe avec la coopération de l'employeur, donc super.
Comment cela se passerait-il si l'employeur était prêt à utiliser tous les moyens à sa disposition pour accentuer la pression psychologique sur une personne ? Ca peut se faire avec des petites phrases "n'oublie pas que c'est moi qui reçoit ton courrier" ou des franches menaces. Etant donné que l'auteur parle d'un non respect de son intimité, on peut aussi imaginer que l'employeur a ouvert son courrier privé, voire ne s'est pas gêné pour en mettre une partie à la poubelle, accentuant la dépendance et le désarroi de l'auteur.
Donc, non, sortir d'une relation de manipulation n'est pas simple ni facile. N'oublions pas qu'en tant qu'être humains, on s'imagine être des entités rationnelles mais nous sommes fortement soumis à nos émotions. Et certaines personnes ont le talent d'exploiter chez d'autres être humains la moindre faiblesse émotionnelle, la moindre faille ou fragilité, avec beaucoup de talent. Le manipulateur peut prendre la forme d'une figure qui a manqué dans la construction de la personne, ou d'une figure qui rappelle une figure d'autorité à laquelle la personne s'est soumise. En psychothérapie, on passe beaucoup de temps à déconstruire ce type de figure pour apprendre à se décoller des situations anciennement traumatiques, qui reviennent en permanence dans notre vie.
Pour prendre mon cas personnel, je sais que je suis plus sensible à la manipulation si le manipulateur peut représenter pour moi: une figure paternelle, un figure de grand frère, une jolie fille, une personne en détresse. Je suis par contre relativement résistant aux figures d'autorité abusives et à la manipulation par la peur. Je précise bien "relativement".
C'est un tort de projeter d'une part que l'auteur aurait pu facilement s'en sortir autrement, d'autre part que certains d'entre nous seraient mieux capable de se protéger. On a tous nos failles et il vaut mieux prier pour ne pas rencontrer quelqu'un qui souhaite les exploiter avec talent et à son profit!
Je fais la remarque pour inviter à prendre du recul sur le déploiement continu.
Les particularités qui font que ça prend si longtemps, c'est que seul un test sur la carte finale est vraiment fiable pour une livraison. Et une carte à puce, c'est lent, et communiquer avec une carte à puce, c'est lent aussi.
On fait bien sur des tests sur des simulateurs beaucoup plus rapides, mais qui ne garantissent pas l'absence d'erreurs. Seule la carte finale peut te donner confiance.
Si on compte toutes nos bases de test, on est largement au dessus des 100 000 tests sur les cartes SIM, et autour des 100 000 sur des objets plus simples comme les cartes bancaires.
Alors pourquoi c'est aussi compliqué une carte à puce, cela reste en partie un mystère pour moi. On a globalement de la crypto, de la communication, une VM Javacard, des systèmes de distributions de clés et d'applications Javacard (GlobalPlatform). Les gars du GSM ont en plus une pile TCP si je me souviens bien et un client http et un client dns.
Parmi les tests les plus longs, il y a la coupure de courant/champs en plein milieu d'une opération critique. Tu prends une opérations critique et tu répètes ton test un coupant le courant au bout de 0.001 s puis 0.002s etc et tu vérifies que la carte n'est pas corrompue après chaque test.
En pratique, on fait tourner une intégration continue avec les batteries pas trop longue (moins de 10h) toutes les nuits, et le reste le weekend.
Bien sûr, on peut toujours viser un sous-ensemble de ces tests à tourner sur chaque commit, mais extraire et maintenir ce sous-ensemble demande un savoir-faire et une expertise sur nos bases de tests qui n'est pas forcément disponible. C'est surtout l'aspect maintenance de ce type de suite qui est délicat.
Donc on fait comme on peut, en allant vers plus d'intégration continue qu'avant.
Ah oui, j'oubliais un détail comique: la flash, c'est entre 100 000 et 500 000 écritures en gros. Sur des bases de test un peu intensive (et écrites comme des cochons), on grille l'endurance de la flash en trois jours sur une carte. Ce qui se traduit quand tout va bien par un gros fail, mais plus généralement par des échecs aléatoires dans la suite de test, qu'il faut trier d'échecs légitimes générés par du code nouveau.
Bref, ca peut être la mouise. Cela dit, avec toutes ces contraintes, je trouve que ma boite s'en tire bien. On s'appuie sur des bons outils internes pour gérer la problématique globale et on va vraiment sur plus d'intégration continue et de reproductibilité des problèmes. Peut-être même qu'un outil open source verra le jour sur un sujet connexe lié à tout ça.
Dans mon industrie (la carte à puce), faire tourner l'ensemble des tests d'une carte prend environ 3 jours, avec environ 4 lecteurs de carte à puce en parallèle (parfois beaucoup plus).
Donc le "je teste tout à chaque push", ça me parait difficile.
Pour la dépêche Python partie 9, je propose un duel à la loyale pour savoir qui tuera qui: sortez vos harmonicas, mettez un 33 tours de Ennio Morricone sur le tourne-disque et regardez le spectacle:
Philippe et la dépêche Python 9 se défient du regard, immobiles et confiants dans leur dextérité. Un léger rictus déforme la bouche de la dépêche Python 9 pendant que Philippe plisse ses yeux pour faire face au soleil.
…
[musique de fond alimentant le suspense insoutenable]
…
PangPang!
Deux coups de feu ont retenti presque en même temps, deux corps basculent. Quelle est l'issue de ce duel ?
Philippe se relève: en fait, il n'était pas mort, il avait juste glissé sur une peau de banane. Lentement, il s'approche de la dépêche Python 9 et il lui explose la gueule avec son éperon. Paix à son âme.
Tout ça pour dire que cette dépêche est bonne pour l'enterrement. Les sujets qui y sont abordés ont presque tous déjà été abordés par les autres dépêches, ou par des journaux, rendant son intérêt relativement limité.
Donc, plante lui en épieu dans le cœur avant qu'elle ne se réveille encore.
Quel langage dynamique n'a pas son vérificateur de type statique maintenant ? Ils sont partout ces vérificateurs. Et c'est une bonne chose pour notre industrie, on va enfin pouvoir se hisser au niveau de fiabilité du C++. Arf !!
Je suis dans le même cas, et je sais qu'il a déjà eu des problèmes. Je n'ai plus le contexte exacte, mais il me semble que c'est une banque, qui a refusé l'ouverture d'un compte à mon oncle, le soupçonnant d'usurpation d'identité. En effet, il utilisait son nom de famille accentué sur ses documents d'identité, mais les traces administratives de son existence étaient sans accent.
C'est allez assez loin, je crois avant qu'il puisse prouver sa bonne foi.
Tu rigoles ? Ca fait plus de 10 ans que c'est comme ça et il n'y a plus aucun investissement sur maildir ou dans Thunderbird en général. C'est parti pour rester encore loooooooooooooongtemps comme ça.
De ce point de vue là, pixijs a l'air de tenir la route. Le rendu se fait prioritairement en OpenGL et en 2D Canvas s'il n'a rien trouvé d'autre. Du coup, j'imagine que c'est plus rapide.
Je suis en train de réimplémenter un jeu en javascript pour apprendre ledit langage. Merci pour le code, il est hyper clair et sobre. J'adore!
N'ayant pas l'expérience des jeux ni du web ni du javascript, je suis parti sur Pixi au niveau lib graphique mais je vois que c'est pas si dur de faire du html canvas direct. Après, il y a surement des tas de difficultés qui sont habilement masquées.
Côté son, je comptais me pencher sur la partie web/js correspondante, mais je vois que je vais surtout me pencher sur ton code et gagner du temps :-)
En lisant le paragraphe sur Square et sa participation à l'OIN, je me dit que c'est un très bon succès, ce principe de non-agression. Si on pouvait trouver un moyen de le répliquer au niveau mondial pour les armes atomiques, on pourrait peut-être s'en sortir…
C'est plus ou moins ce qu'avait voulu faire l'OTAN, mais il y a eu pas mal d'interférence impérialistes et politiques…
Ce livre m'a l'air d'être exactement ce que je voulais lire. J'ai une culture de développeur très poussé, et une culture de sysadmin extrêmement limitée. J'aimerai me mettre plus dans la peau d'un DevOps et il me semble que ton livre va bien m'aider. Je m'en vais le commander dans pas trop longtemps!
[^] # Re: Les vrais ecolos sont uniquement de mon parti
Posté par Philippe F (site web personnel) . En réponse au journal Les vidéos de Devoxx fr sont disponibles. Évalué à 4.
Et oui, on ouvre des nouveaux datacenters plus efficients énergétiquement mais on n'enlève pas les anciens. Les deux cohabitent et le coût énergétique ne fait que croitre, en plus du côut de fabrication des équipements de l'installation.
IDEM pour la 5G, c'est une vase fumisterie de dire que la 5G est une bonne chose d'un point de vue climat car le bilan énergétique de l'équipement réseau est mieux que la 4G. Car, on ne va pas débrancher les antennes 4G, ni les 3G, ni les 2G (je simplifie volontairement). C'est donc un coût climatique supplémentaire dont on parle.
Concrètement, en roulant avec mon vieux diesel produit avant que les normes écolo ne soient trop fortes, mon impact climatique est bien meilleur que le citoyen écolo-naïf qui va s'acheter une voiture électrique toute neuve en mettant l'ancienne à la casse. L'impact de la fabrication écrase juste massivement tous les autres impacts à l'usage.
On a été à mon sens endoctrinés à croire que en achetant des biens dit "vertueux" d'un point de vue climatique, on peut changer le destin climatique de notre planète. C'est plus facile à croire car ça demande moins de changements à nos habitudes.
Mais pour moi, la vérité difficile à admettre, c'est que le chemin est différent: il faut changer des habitudes de fond, engrammées dans le mode de fonctionnement de notre société: acheter moins, acheter d'occaze, faire réparer plus, accepter un PC moins performant, une voiture moins confortable et vieille, faire un gateau sans utiliser le robot mixeur pour mélanger la farine, et etc.
A l'opposé de ce que nous vend la télé, les journaux, la croissance et autres.
# J'aime beaucoup !
Posté par Philippe F (site web personnel) . En réponse au journal Sunday Python Pattern : Une machine à état toute simple. Évalué à 4.
Ca m'arrive souvent de faire des parser pour des formats de fichiers relativement simple, et je trouvais que mon code manquait d'un bon Design Pattern approprié. Le voici enfin! Je m'en sortais avec des variables globales pour le contexte, une variable pour l'état et plein de if/else qui au bout d'un moment deviennent un peu compliqués à maintenir.
J'ai aussi eu le cas d'une boucle d'évènement d'un jeu à réaliser dernièrement et j'ai rencontré exactement le besoin que du décris (du très très classique en fait).
Je garde ça dans ma besace. J'aime beaucoup la simplicité, tu as avant-tout une classe avec une méthode run(). Question naive, est-ce qu'une fonction ne suffirai pas dans les cas très simple ?
# Et dans les zones blanches ?
Posté par Philippe F (site web personnel) . En réponse au journal BPCE et les paiements avec authentification à deux facteurs. Évalué à 10.
Je réagis sur cette partie de ton message qui laisse filer un troll bien involontaire:
Bof.
J'habite à la campagne. Dans mon jardin, je capte péniblement l'antenne SFR du village (située à trois kilomètres). Je suis passé chez SFR exprès pour ça, les autres étant catastrophiques. Dans la maison aux murs épais à l'ancienne, le réseau ne passe pas ou très mal. Quand il pleut, pas de réseau dans la maison et un seul endroit dans le jardin où je capte.
Malgré ça, j'ai un accès ADSL pas trop mal et il m'arrive de commander des trucs sur internet ou de payer tout simplement la cantine de mes enfants. En ai-je le droit ? C'est pas sûr… Le fameux SMS du Crédit Coopératif met entre 2 minutes et 20 minutes à arriver jusqu'à mon téléphone. Pour un paiement qui expire en cinq minutes ! Je fais souvent ce type de paiement le soir et je suis moyennement motivé pour sortir dans la nuit sous la pluie juste pour recevoir mon SMS.
C'est un peu mieux avec l'application dédiée, il semble que la consommation en bande passante soit plus faible qu'un SMS. Ah oui, parce qu'on aime pas les ondes chez moi, donc on active le wifi qu'en situation de nécessité. Et un téléphone n'a pas de moyen de se connecter au nain ternet autrement qu'en wifi.
Bref, en vivant depuis quelques années à la campagne, je découvre à quel point notre monde dit moderne est très centré sur le mode de vie des citadins/banlieusards et complètement ignorant ou méprisant des réalités de la campagne.
[^] # Re: S'occuper vos oignons sinon ?
Posté par Philippe F (site web personnel) . En réponse au journal Écrire directement aux Russes. Évalué à 3.
On est pas au niveau de la prison, mais aux jours qui ont suivi la dernière attaque terroriste sur le territoire français, les médias et divers courants politiques se sont emparés avec émoi du concept de "fiche S" en demandant plein de trucs à la con (déchéance de nationalité, prison, etc).
Lors de l'annonce de la manifestation suivante, pas mal de citoyens ont été assignés à résidence par la préfecture, sans aucune justification. On y trouvait pèle-mèle des musulmans, des écolos, des gauchistes. Autant certains avaient un profil qui pourrait faire imaginer qu'ils aurait vaguement un lien avec l'islam radical, autant la majorité était clairement des gens en profond désaccord avec la politique du gouvernement, qui avaient l'habitude de l'exprimer en participant à des manifestations. Je pense aux écolos et aux gauchistes, voir à ceux qui cumulent ces deux handicaps sous un gouvernement de droite.
Je pense aussi à cet homme qui a crié en pleine gare devant l'arrivée d'un convoi de policier "Sarkozy, je te vois" et qui a eu la joie de passer 72 heures en garde à vue.
On est pas dans un état de la censure comme dans des pays sous dictature, mais en France, quand ton opinion diffère de la majorité et que tu l'exprimes, tu peux t'attendre à te ramasser un certains nombre de problèmes : flash ball dans la gueule, insultes, assignation à résidence, garde à vue non justifiée, petit passage à tabac, etc etc.
[^] # Re: Ah ben c'est malin...
Posté par Philippe F (site web personnel) . En réponse au journal La commu high-tech retient son souffle. Évalué à 4.
Ah, c'est lui le nouveau stagiaire ? Je me demandais aussi…
# C'était prévu
Posté par Philippe F (site web personnel) . En réponse au journal Le projet Gtkmm cherche de nouvelles forces pour son équipe de maintenance. Évalué à 10. Dernière modification le 06 mars 2022 à 15:35.
Quand je discutais il y a une bonne vingtaine d'année avec Guillaume Laurent, l'un des ex-mainteneurs de gtkmm, il m'avait expliqué que le projet n'avait pas de futur. Ce qu'il avait identifié, en tant que mainteneur, c'est que la charge de travail pour générer des bindings à la main était énorme, et que Gtk se prêtait mal à cet exercice. L'autre facteur, c'était le manque d'intérêt de la communauté pour un binding C++ vers Gtk. Les développeurs étaient très majoritairement heureux avec le Gtk en C. En tant que fan de C++, il s'était tourné vers Qt, à rebours de tout le monde à l'époque (chacun restait dans son camp, Qt/KDE vs Gnome/Gtk).
Par curiosité, j'ai cliqué sur les projets listés sur la page de gtkmm pour voir ce qu'il en était aujourd'hui. Je tombe en très grande partie sur des pages qui n'existent plus, des dépôts sous CVS sous sourceforge qui n'ont jamais été migrés, des dépôts valides mais sans commits depuis 15 ans, ou 10 ans pour certains.
Il reste quelques survivants néanmoins: inkscape, K-3D (pas complètement actif mais pas mort quand même), gobby en mode maintenance, gparted qui a l'air relativement actif.
Il y a surement d'autres projets non listés. Par contre, vu le petit nombre de projet actifs, on peut s'attendre à ce qu'il n'y aie pas grand monde pour reprendre le flambeau.
Je me demandais ce que ça me faisait, 15 ans plus tard, de constater que ma vision sur Qt et Gtkmm était juste. Il y a une vague petite satisfaction d'avoir eu raison, mais surtout, c'est juste dommage pour ces projets dont certains avaient l'air sympatique. Je doute que gtkmm a lui seul soit la raison de cette désaffection, mais ça reste dommage quand même. Après … c'est la vie, des projets logiciel libre, il en nait et meurt tous les jours.
Tiens d'ailleurs, le projet de Guillaume Laurent a-t-il survécu ? Mais oui, RoseGarden est toujours sur sourceforge, et visiblement toujours actif !
[^] # Re: Mais ou est l'innovation ???
Posté par Philippe F (site web personnel) . En réponse au journal Interface graphique en Go!. Évalué à 4.
Je reste aussi sur ma faim côté UI. Les applications que j'ai développées en PyQt ces dernières années se basaient sur affichages en arbres, en liste ou en table. Trois widget/contrôles que je n'ai pas retrouvé dans les lib citées plus haut.
Le choix de widget m'a semblé vraiment pauvre. C'est peut être le côté portabilité universel sur un smartphone qui fait qu'on limite les contrôles à des trucs vraiment très basiques.
Mais parfois, on fait du pur desktop. Par exemple, si je prends un screenshot wireshark, j'ai pas l'impression qu'il soit possible de coder facilement une telle interface avec les deux lib go.
Pourtant, on est bien dans le domaine de prédilection du go: du réseau et du système.
[^] # Re: Trop simple ?
Posté par Philippe F (site web personnel) . En réponse au journal Interface graphique en Go!. Évalué à 6.
Je suis un peu surpris par ton commentaire. Tu es sûr que tu as fait du Qt récemment ?
Peut-être que j'arrive pas à cerner précisément le problème que tu rencontres mais j'ai jamais eu l'impression d'être noyé par les callback sous Qt. L'aspect slot justement est plus fin qu'un callback puisque tu n'as pas besoin de connaitre précisément l'appelant.
Quant à la propagation des modifications, sur des écrans de fonctionnalité assez simples, évidemment, quelle que soit la méthode, ça reste simple. Sur des écrans assez complexes, je me retrouve souvent à utiliser du modèle/vue, que ce soit celui fourni par Qt pour des widgets types lists, arbres ou tables, ou bien celui fourni indirectement par le flux de circulation des signaux.
Par exemple, pour cacher une entrée dans un menu en haut de la fenêtre + menu du click + bouton de la barre d'outil, j'ai juste à utiliser l'action d'origine actionMachin.setVisible(False).
On est bien dans une logique modèle/vue où le module (le QACtion) propage son changement dans toutes les vues (3 vues ici). Et tu as seulement besoin de toucher au modèle.
Les mises à jour visuelles se font aussi selon une chaîne de réaction qui ressemble à ce que j'ai vu sous React. L'évenement de base est propagé en descendant (par exemple un click) et tu choisis de le gérer au niveau qui t'interesse en mettant à jour les widgets qui te conviennent. Qt fait ensuite l'analyse en remontant pour voir quels parties de l'écran il doit redessiner.
Autant j'ai bien compris l'intérêt de React par rapport à de la programmation web javascript classique à coup de callback qui est vraiment lourd, autant je lui vois aucune supériorité par rapport à de la programmation en Qt. Les principes de fonds sont à peu près les mêmes, avec quelques particularités liées à la technologie d'implémentation.
React ne résout pas tout non plus. J'ai eu à debugger une application un peu complexe récemment, j'ai du m'accrocher pour comprendre la chaîne d'évènements qui mettait à jour ou pas une partie inappropriée de l'interface. Mon inexpérience côté web a certainement joué, mais il m'a pas semblé que j'étais arrivé dans un monde de simplicité et de clarté que tu vantes ici.
[^] # Re: Survivor
Posté par Philippe F (site web personnel) . En réponse au journal C, un âge remarquable. Évalué à 7.
De façon intéressante, les nouveaux qui sont censés enterrer l'ancien n'y arrivent pas complètement, et surtout, lui doive beaucoup. Pour nommer ceux que tu as cités et je connais, une grande partie de leur syntaxe est héritée du C : Java, C++, .Net, Python, Javascript. Comme dit Rafiki à Simba dans le roi lyon à propos de son père: "il vit en toi!". Le C vit aussi dans tous ces langages qui lui sont apparentés.
[^] # Re: "heureusement tout a changé"
Posté par Philippe F (site web personnel) . En réponse au journal Quand le mainteneur de pkexec ignorait (ou pas) les failles potentielles. Évalué à 5.
Les PR ne font pas tout. Pour un projet populaire comme mypy (vérification de typage pour Python), il y a plus de 2000 issues ouvertes et 140 PR. L'équipe derrière est une petite équipe, c'est pas forcément gérable d'avoir autant de choses à revoir et possiblement intégrer.
[^] # Re: Pourtant ça partait bien
Posté par Philippe F (site web personnel) . En réponse au journal Comment j’ai été réduit en esclavage, comment vous m’avez aidé, et les leçons que j’en ai tirées. Évalué à 7.
Et cela se passe avec la coopération de l'employeur, donc super.
Comment cela se passerait-il si l'employeur était prêt à utiliser tous les moyens à sa disposition pour accentuer la pression psychologique sur une personne ? Ca peut se faire avec des petites phrases "n'oublie pas que c'est moi qui reçoit ton courrier" ou des franches menaces. Etant donné que l'auteur parle d'un non respect de son intimité, on peut aussi imaginer que l'employeur a ouvert son courrier privé, voire ne s'est pas gêné pour en mettre une partie à la poubelle, accentuant la dépendance et le désarroi de l'auteur.
Donc, non, sortir d'une relation de manipulation n'est pas simple ni facile. N'oublions pas qu'en tant qu'être humains, on s'imagine être des entités rationnelles mais nous sommes fortement soumis à nos émotions. Et certaines personnes ont le talent d'exploiter chez d'autres être humains la moindre faiblesse émotionnelle, la moindre faille ou fragilité, avec beaucoup de talent. Le manipulateur peut prendre la forme d'une figure qui a manqué dans la construction de la personne, ou d'une figure qui rappelle une figure d'autorité à laquelle la personne s'est soumise. En psychothérapie, on passe beaucoup de temps à déconstruire ce type de figure pour apprendre à se décoller des situations anciennement traumatiques, qui reviennent en permanence dans notre vie.
Pour prendre mon cas personnel, je sais que je suis plus sensible à la manipulation si le manipulateur peut représenter pour moi: une figure paternelle, un figure de grand frère, une jolie fille, une personne en détresse. Je suis par contre relativement résistant aux figures d'autorité abusives et à la manipulation par la peur. Je précise bien "relativement".
C'est un tort de projeter d'une part que l'auteur aurait pu facilement s'en sortir autrement, d'autre part que certains d'entre nous seraient mieux capable de se protéger. On a tous nos failles et il vaut mieux prier pour ne pas rencontrer quelqu'un qui souhaite les exploiter avec talent et à son profit!
[^] # Re: L'opensource et maven fonctionne très bien
Posté par Philippe F (site web personnel) . En réponse au journal log4shell : Et après ?. Évalué à 7.
Je fais la remarque pour inviter à prendre du recul sur le déploiement continu.
Les particularités qui font que ça prend si longtemps, c'est que seul un test sur la carte finale est vraiment fiable pour une livraison. Et une carte à puce, c'est lent, et communiquer avec une carte à puce, c'est lent aussi.
On fait bien sur des tests sur des simulateurs beaucoup plus rapides, mais qui ne garantissent pas l'absence d'erreurs. Seule la carte finale peut te donner confiance.
Si on compte toutes nos bases de test, on est largement au dessus des 100 000 tests sur les cartes SIM, et autour des 100 000 sur des objets plus simples comme les cartes bancaires.
Alors pourquoi c'est aussi compliqué une carte à puce, cela reste en partie un mystère pour moi. On a globalement de la crypto, de la communication, une VM Javacard, des systèmes de distributions de clés et d'applications Javacard (GlobalPlatform). Les gars du GSM ont en plus une pile TCP si je me souviens bien et un client http et un client dns.
Parmi les tests les plus longs, il y a la coupure de courant/champs en plein milieu d'une opération critique. Tu prends une opérations critique et tu répètes ton test un coupant le courant au bout de 0.001 s puis 0.002s etc et tu vérifies que la carte n'est pas corrompue après chaque test.
En pratique, on fait tourner une intégration continue avec les batteries pas trop longue (moins de 10h) toutes les nuits, et le reste le weekend.
Bien sûr, on peut toujours viser un sous-ensemble de ces tests à tourner sur chaque commit, mais extraire et maintenir ce sous-ensemble demande un savoir-faire et une expertise sur nos bases de tests qui n'est pas forcément disponible. C'est surtout l'aspect maintenance de ce type de suite qui est délicat.
Donc on fait comme on peut, en allant vers plus d'intégration continue qu'avant.
Ah oui, j'oubliais un détail comique: la flash, c'est entre 100 000 et 500 000 écritures en gros. Sur des bases de test un peu intensive (et écrites comme des cochons), on grille l'endurance de la flash en trois jours sur une carte. Ce qui se traduit quand tout va bien par un gros fail, mais plus généralement par des échecs aléatoires dans la suite de test, qu'il faut trier d'échecs légitimes générés par du code nouveau.
Bref, ca peut être la mouise. Cela dit, avec toutes ces contraintes, je trouve que ma boite s'en tire bien. On s'appuie sur des bons outils internes pour gérer la problématique globale et on va vraiment sur plus d'intégration continue et de reproductibilité des problèmes. Peut-être même qu'un outil open source verra le jour sur un sujet connexe lié à tout ça.
[^] # Re: L'opensource et maven fonctionne très bien
Posté par Philippe F (site web personnel) . En réponse au journal log4shell : Et après ?. Évalué à 5.
Dans mon industrie (la carte à puce), faire tourner l'ensemble des tests d'une carte prend environ 3 jours, avec environ 4 lecteurs de carte à puce en parallèle (parfois beaucoup plus).
Donc le "je teste tout à chaque push", ça me parait difficile.
# petit bug
Posté par Philippe F (site web personnel) . En réponse au journal Capuchine: un jeu libre à jouer avant d'aller au lit. Évalué à 5.
A la plage, Capucine peut sortir de l'écran par la droite.
Sinon, très très mignon. J'imaginais une musique un peu onirique en jouant.
# Clint Eastwook, à l'aide
Posté par Philippe F (site web personnel) . En réponse au journal De la sédimentation dans l'espace de rédaction. Évalué à 7.
Pour la dépêche Python partie 9, je propose un duel à la loyale pour savoir qui tuera qui: sortez vos harmonicas, mettez un 33 tours de Ennio Morricone sur le tourne-disque et regardez le spectacle:
Tout ça pour dire que cette dépêche est bonne pour l'enterrement. Les sujets qui y sont abordés ont presque tous déjà été abordés par les autres dépêches, ou par des journaux, rendant son intérêt relativement limité.
Donc, plante lui en épieu dans le cœur avant qu'elle ne se réveille encore.
# Ils sont partout
Posté par Philippe F (site web personnel) . En réponse à la dépêche PHPStan est sorti en version 1.0. Évalué à 3. Dernière modification le 08 novembre 2021 à 14:46.
Quel langage dynamique n'a pas son vérificateur de type statique maintenant ? Ils sont partout ces vérificateurs. Et c'est une bonne chose pour notre industrie, on va enfin pouvoir se hisser au niveau de fiabilité du C++. Arf !!
[^] # Re: Moi aussi j'ai perdu mon accent
Posté par Philippe F (site web personnel) . En réponse au journal EBCDIC n'est pas compatible avec la RGPD. Évalué à 5.
Je suis dans le même cas, et je sais qu'il a déjà eu des problèmes. Je n'ai plus le contexte exacte, mais il me semble que c'est une banque, qui a refusé l'ouverture d'un compte à mon oncle, le soupçonnant d'usurpation d'identité. En effet, il utilisait son nom de famille accentué sur ses documents d'identité, mais les traces administratives de son existence étaient sans accent.
C'est allez assez loin, je crois avant qu'il puisse prouver sa bonne foi.
[^] # Re: email, maildir, offline, etc.
Posté par Philippe F (site web personnel) . En réponse au journal Un réseau offline "delay-tolerant" avec NNCP. Évalué à 6.
Tu rigoles ? Ca fait plus de 10 ans que c'est comme ça et il n'y a plus aucun investissement sur maildir ou dans Thunderbird en général. C'est parti pour rester encore loooooooooooooongtemps comme ça.
[^] # Re: We need more
Posté par Philippe F (site web personnel) . En réponse au journal opensara: un nouveau jeu libre. Évalué à 2.
De ce point de vue là, pixijs a l'air de tenir la route. Le rendu se fait prioritairement en OpenGL et en 2D Canvas s'il n'a rien trouvé d'autre. Du coup, j'imagine que c'est plus rapide.
Il y a des jeux assez chiadés fait en pixijs.
[^] # Re: We need more
Posté par Philippe F (site web personnel) . En réponse au journal opensara: un nouveau jeu libre. Évalué à 8.
Je suis en train de réimplémenter un jeu en javascript pour apprendre ledit langage. Merci pour le code, il est hyper clair et sobre. J'adore!
N'ayant pas l'expérience des jeux ni du web ni du javascript, je suis parti sur Pixi au niveau lib graphique mais je vois que c'est pas si dur de faire du html canvas direct. Après, il y a surement des tas de difficultés qui sont habilement masquées.
Côté son, je comptais me pencher sur la partie web/js correspondante, mais je vois que je vais surtout me pencher sur ton code et gagner du temps :-)
[^] # Re: Les compilateurs et l'optimisation
Posté par Philippe F (site web personnel) . En réponse au journal Recherche de valeur dans un tableau et l'écosystème des compilateurs C++. Évalué à 2.
Et il faut ajouter:
10- Des optimisations qui marchent super bien sur une version donnée du compilateur peuvent ne plus marcher du tout sur la version suivante.
[^] # Re: Pleins de possibilités!
Posté par Philippe F (site web personnel) . En réponse au journal Gitlab va entrer en bourse. Évalué à 7.
Au contraire, reste, c'est très crédible…
# Open Invention Network : le futur
Posté par Philippe F (site web personnel) . En réponse à la dépêche Revue de presse de l'April pour la semaine 37 de l'année 2021. Évalué à 3.
En lisant le paragraphe sur Square et sa participation à l'OIN, je me dit que c'est un très bon succès, ce principe de non-agression. Si on pouvait trouver un moyen de le répliquer au niveau mondial pour les armes atomiques, on pourrait peut-être s'en sortir…
C'est plus ou moins ce qu'avait voulu faire l'OTAN, mais il y a eu pas mal d'interférence impérialistes et politiques…
# filtrage par motif
Posté par Philippe F (site web personnel) . En réponse au journal Java 17 LTS. Évalué à 5.
Ca m'a tout l'air d'être à la mode. Ca arrive dans Python, dans Java. D'autres endroits ?
J'ai l'impression que c'est RUST qui l'a rendu populaire même si je l'ai vu la première fois en Caml qu'on m'a forcé à apprendre durant mes études.
# Tu tombes à point
Posté par Philippe F (site web personnel) . En réponse à la dépêche Écrire un livre à deux : Haute Disponibilité sous Linux, des prémices à la sortie. Évalué à 5.
Ce livre m'a l'air d'être exactement ce que je voulais lire. J'ai une culture de développeur très poussé, et une culture de sysadmin extrêmement limitée. J'aimerai me mettre plus dans la peau d'un DevOps et il me semble que ton livre va bien m'aider. Je m'en vais le commander dans pas trop longtemps!
Bonne journée.