@Timo je pense qu'Elon Musk veut démontrer aux annonceurs que le nouvel algorithme de Twitter n'a pas de biais idéologiques ou politiques pour les rassurer (au regard de sa posture idéologique personelle qui peut faire peur).
Si c'est la cas, alors c'est plutôt malin et lucide de sa part.
Edit : correction de fautes.
@Lou : merci d'avoir pris le temps de me lire et me répondre.
Mon exemple était mal conçu car c'est moi qui y ait introduit un biais basé sur la couleur, mea maxima culpa. Aussi permet-moi d'amender légèrement ton résumé qui est très bien formulé :
Basiquement Antichesse dit « Ce n'est pas raciste, c'est juste que la chaîne de décision qui a mené au développement de cet algorithme considère les riches comme la population par défaut et n'en a rien à foutre des pauvres. »
Ce qui est la définition même des inégalités de classes en fait.
Après je ne connais pas la topologie des USA en termes de répartition des richesses en fonction de la couleur, de la religion ou encore du sexe et de l'âge, mais il y a fort à parier que les noirs ne fassent pas partie des plus riches en moyenne (outil des mathématiques qui écrase/déforme forcément le réel).
Je sais que je l'avais déjà dit mais je crois autant au "racisme systémique" qu'en "la main invisible du marché". Ce sont des leurres qui détournent le regard des "vrais" problèmes :
- Concentration de tout (pouvoir, richesse, célébrité, réseau, influence, etc).
- Absence totale de démocratie (le droit d'élire remplace le droit de voter les lois).
- Corruption partout où elle est nécessaire (pour pérenniser les deux points précédents).
Le prisme construit à partir de la notion de racisme systémique, dès qu'il s'appose devant notre regard, nous empêche de percevoir une caste cosmopolite dans laquelle couleur de peau, religion, orientations politique ou sexuelle n'ont pas d'importance et qui pourtant décide du sens du monde : celle qui se partage l'argent.
Les plus grandes avancées n'ont jamais été réalisées par des luttes blancs vs noirs mais bien par des luttes riches vs pauvres. Le combat doit être vertical et non horizontal et le comprendre collectivement fera la différence entre guerre civile et révolte AMHA.
Un exemple simple : admettons que l'algorithme dont nous parlions soit "raciste", admettons que l'organisation de l'entreprise était telle qu'elle ne pouvait mener qu'au développement d'un tel algorithme. Que se passerait-il alors si nous découvrions que chacune des personnes ayant contribué directement ou indirectement à ce logiciel était noire ? Ou à défaut que parmi ces personnes il existait un ensemble de "non-blancs" non négligeable voire majoritaire ? Dans ce cas de figure, la thèse du racisme systémique ne fonctionnement pas, par contre l'analyse marxiste/trotskiste fonctionne encore et toujours...
Le seul problème systémique en lequel je crois s'appelle le capitalisme, c'est-à-dire le droit d'accumulation illimité ; et si j'y crois c'est parce que ce dernier est inscrit noir sur blanc dans nos textes de loi.
J'interviens actuellement avec @Animal chez un client qui tire 200 Mo de jars pour exposer une simple API REST dont la principale activité se résume à de vulgaires CRUD operations... Comptez en plus 200 Mo de JVM + Tomcat pour la faire tourner et je ne sais combien de Go pour la base Oracle. Le bouzin met 1h40 à builder sur la CI pour vous donner un ordre de grandeur de l'immondice.
Mais pourquoi vous parler de cela ? Donnez-moi le code de l'application jugée "raciste" que je puisse l'analyser, car aucun logiciel ne se résume à "un simple algo". Les softs d'aujourd'hui sont des imbroglio de frameworks où des aspects (au sens Aspect Oriented Programming du terme) sont injectés au runtime en permanence.
Donc à moins que dans le code il y ait quelque chose du type :
if (person.isBlack()) {
treatment.rejected(person)
}
else {
treatment.granted(person)
}
cet algo soit disant raciste a très peu de chance d'être raciste.
Je subodore que comme toujours, l'horreur a été codée avec les pieds, que les tests ont été joués à la main sur des use-cases on ne peut plus standards du type "patient blanc, 50 ans, foie malade" et que les use-cases aux limites du type "patient noir, xxx" n'ont jamais été testés car a priori jugés trop chers et redondant, ou au motif que la population noire états-unienne n'est pas suffisamment importante aux USA pour justifier un investissement particulier (ô joie de cette saloperie de capitalisme).
Ajoutez des critères économiques parfaitement crédibles dans une anti-nation comme celle de l'oncle Sam comme un filtre du type "80% des noirs états-uniens n'ont pas l'assurance santé leur permettant de se faire soigner" et hop, tout un pan de la population est exclue sur un critère débile car les clients patients ne pourront jamais payer leur intervention ; donc pourquoi s'embêter avec eux alors, s'écrit un économiste néo-libéral au fin fond de l'open-space ?
J'affabule à votre avis ? Je divague ? Il y a 4 ans, chez Vidal, sur une application interne écrite en Java/Scala, les use-cases de tests pour identifier des maladies en fonction des symptômes étaient (accrochez-vous) : homme, 40 ans, enceinte, etc.
Oui oui vous avez bien lu : un homme enceinte, comme scenario standard... Mais comment est-ce possible vous dites-vous ? Évident pourtant, parce que c'était plus rapide à jouer, parce que pour chaque méthode/fonction cela représentait moins de valeurs à saisir, moins de variables à initialiser, moins de choses à mocker. Alors les non-développeurs qui crient au scandale, qui disent "l'algo est raciste" et mieux encore qui s'exclament "non c'est le développeur qui est raciste" vous êtes complètement à côté de la plaque je pense.
Nous sommes des plateaux entiers à écrire et modifier à l'arrache des centaines de milliers voire parfois des millions de lignes de code (c'est typiquement le cas où j'interviens avec @Animal en ce moment). Les "algos" comme vous dites commencent dans un endroit du code et souvent se terminent dans deux où trois autres applications qui ne sont même pas écrites avec les mêmes technos. On est trèèèèèès loin des petits scripts bash/python/PHP croquignolets comme tout que vous avez eu la chance de lire ou d'écrire.
En résumé nous savons que :
- Une application médicale buggait dès que le patient était noir.
- Des équipes ont identifié ce problème gravissime qui a certainement tué des milliers de personnes.
- Demain, les développeurs qu'ils soient blancs, noirs ou rose bonbon n'écriront pas plus de TU car ils s'en tapent.
- Aucune sanction pour mise en danger de la vie d'autrui ou assassinat par négligence caractérisée ne pèsera sur l'éditeur du logiciel (mais les SJW auront bien gueulé ce qu'il fallait sur Twitter, ouf l'honneur est sauf).
- Dans quelques temps, une autre "application raciste" fera à la fois la une et la joie des journaux dans un pays où la notion de race humaine existe (ce qui n'est pas le cas en France).
Bref, je note l'article à Torchon/20 et je pense être gentille.
Brihx merci pour le lien. Par contre le coup des fonctions de dérivation de clefs qui doivent êtres rejouées n-fois pour éviter le brut-force j'ai toujours trouvé cela stupide et je m'explique.
Le but d'augmenter le nombre d'itérations est de ralentir l'algorithme de hash/crypto afin de se protéger des attaques de type brut-force. Or la puissance de calcul augmentant sans cesse avec le temps, plus les générations de CPU passent et plus il faut augmenter ce nombre d'itérations, ceci encore et toujours, jusqu'à consommer tout le pétrole sur terre pour le calcul d'un simple hash...
Sinon, on arrête de coder comme des profs de math débiles et on ajoute un Thread.sleep(1000)
après le calcul du hash. Comme ça et quoi qu'il arrive, le check d'un mot de passe prendra toujours au moins 1 seconde quelque soit le CPU derrière, évitant ainsi les attaques du type brut-force, et en plus ça évite de contraindre un algo à utiliser un proc à 100% pour rien et ainsi de exposer son service à des attaques de type DDos.
Après ce n'est pas le rôle des matheux de coder efficace, c'est à nous (les IT) de comprendre ce qu'il faut faire et de bien le faire.
Edit : oubliez BLAKE2... J'avais lu en diagonale puisque le site explique que BLAKE3 est encore plus rapide !
Je recherchais un algorithme de hachage qui soit optimisé pour des machines 64 bits, aussi sécurisé que SHA-512 voire SHA-3 mais surtout aussi rapide que MD5. Il semblerait que nous ayons notre silver bullet : BLAKE2.
L'algo est déjà implémenté dans Bouncy Castle, et je compte bien faire joujou avec pour tester la bête.
Et juste pour vous rappeler que le dossier de Jeffrey Epstein témoignait du fait que tous les dirigeants de la planète sont complices d'un trafic pédophile international et qu'absolument aucun média n'en parle #Epstein.
Des algorithmes à base d'arbres permettant de mettre en oeuvre des systèmes de prises de décisions via programmation par contraintes.
Pour comprendre certains algorithmes à la base de l'IA.
Un tuto pour comprendre les algorithmes RSA et ECC. Slide très sympa
Plein de petits algos pour se faciliter la vie entre POO et PF.
=> A adapter en Kotlin
Un soft de recompression de PNG / JPEG avec data lost less et qui reste compatible de IE6 à Firefox 52+ en gérant la transparence, MÊME SOUS IE6 !!!
Pas mal Chlouchloutte, c'est une trouvaille !
Je suis en train de me remettre au parser / lexer. Cette article (enfin ce cours en PDF) reprendre à partir de la page 47 les techniques de réductions d'automate à état fini qui peuvent parser des grammaires hors contexte.
Je le bookmark pour mémoire.
Quel est la meilleure fonction de hachage à utiliser pour des hashmap ?
Comparaison de la sécurité des différentes technologies de hachage.
Nouvel algorithme de compression non destructif :
- Compressant mieux que le 7z (le plus performant en termes d'espace disque sur le marché).
- Compressant aussi vite que la zlib (le plus rapide du marché).
- Décompressant plus vite que la zlib (toujours le plus rapide du marché).
Animal #spourtoua (^__^)
Je suis certaine que tu vas aimer (et m'en reparler).