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!
En fait, il y a malheureusement des fantasmes qui circulent parmi les jardiniers
amateurs […] Par exemple, que les rendements sont meilleurs dans un écosystème équilibré
J'ai jamais entendu un jardinier amateur écolo parler de rendement, et surtout comparer ses rendements avec l'industrie agricole. Par contre, j'en ai beaucoup entendu parler de qualité gustative, de lien recréé avec la nature, de qualité du sol, de restauration des écosystèmes.
Bravo pour la persévérance, d'avoir continuer à pousser la normalisation sans financement (si j'ai bien saisi). Tout ça pour la gloire et le logiciel libre, chapeau!
Ou serait-on sans Apple et ses inventions révolutionnaires comme la souris à un seul bouton, ou la disquette qu'il faut mettre à la poubelle pour l'éjecter, je me demande bien!
C'est quand même la base de toute gestion de projet ou gestion de crise que de prévoir plusieurs hypothèses d'évolution de la situation, avec des niveaux de gravités variés et de prévoir un plan adapté à chaque situation.
C'est pas comme si on avait pas 1 an et demi de gestion de crise derrière nous pour nous apprendre que des scenario plus positifs ou plus négatifs peuvent se produire.
Ensuite, tu prends chaque scenario, tu définis un plan d'action adapté (confinement, passe, limitations, etc) en fonction de la gravité, tu le peaufines pendant un mois en discussion avec les acteurs concernés et tu le votes en permettant un débat. Une fois que tout ça est fait, tu as un plan pour les 3 à 6 mois à venir que tout le monde peut comprendre et auquel chacun peut se préparer.
Au passage, c'est comme ça que ça marche pour toutes les autres catastrophes naturelles. Mais pour le covid, il faut que ce soit SuperMacaron qui nous annonce son plan de lutte sans permettre à personne de s'organiser en avance ni de débattre.
[^] # 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.
[^] # Re: Vérité cruelle
Posté par Philippe F (site web personnel) . En réponse au journal J'ai mangé une pomme. Évalué à 10.
J'ai jamais entendu un jardinier amateur écolo parler de rendement, et surtout comparer ses rendements avec l'industrie agricole. Par contre, j'en ai beaucoup entendu parler de qualité gustative, de lien recréé avec la nature, de qualité du sol, de restauration des écosystèmes.
A mon avis, tu es à côté de la plaque.
# Bravo
Posté par Philippe F (site web personnel) . En réponse à la dépêche FFV1, un format vidéo sans perte et libre, normalisé à l'IETF. Évalué à 10.
Bravo pour la persévérance, d'avoir continuer à pousser la normalisation sans financement (si j'ai bien saisi). Tout ça pour la gloire et le logiciel libre, chapeau!
[^] # Re: C'est pourtant vrai
Posté par Philippe F (site web personnel) . En réponse au journal Keynotes de l'automne : 1, 2 ou 3 ?. Évalué à 7.
Ou serait-on sans Apple et ses inventions révolutionnaires comme la souris à un seul bouton, ou la disquette qu'il faut mettre à la poubelle pour l'éjecter, je me demande bien!
[^] # Re: passe sanitaire == pied dans la porte à un système de crédit social à la Chinoise
Posté par Philippe F (site web personnel) . En réponse au journal [HS] Quand quelqu'un vous parle de liberté.... Évalué à 8.
C'est quand même la base de toute gestion de projet ou gestion de crise que de prévoir plusieurs hypothèses d'évolution de la situation, avec des niveaux de gravités variés et de prévoir un plan adapté à chaque situation.
C'est pas comme si on avait pas 1 an et demi de gestion de crise derrière nous pour nous apprendre que des scenario plus positifs ou plus négatifs peuvent se produire.
Ensuite, tu prends chaque scenario, tu définis un plan d'action adapté (confinement, passe, limitations, etc) en fonction de la gravité, tu le peaufines pendant un mois en discussion avec les acteurs concernés et tu le votes en permettant un débat. Une fois que tout ça est fait, tu as un plan pour les 3 à 6 mois à venir que tout le monde peut comprendre et auquel chacun peut se préparer.
Au passage, c'est comme ça que ça marche pour toutes les autres catastrophes naturelles. Mais pour le covid, il faut que ce soit SuperMacaron qui nous annonce son plan de lutte sans permettre à personne de s'organiser en avance ni de débattre.