Je partage l'avis du titre mais en partie seulement. L'IA menace les salaires dans un premier temps et l'emploi à terme.
Dans l'IT par exemple, la baisse supposée, de mémoire selon le Gartner, serait de 50% à 70% d'ici à 2030 si les LLM ne se heurtent pas à un mûr technologique avant...
Mais quelque part c'est une bonne chose. Les IA étant des moyens de production privés, leurs bénéfices ne seront jamais socialisés, ou au mieux jamais totalement.
Ce faisant, la classe moyenne supérieure qui se prend pour la bourgeoisie, mais qui n'est rien, devra enfin se ranger dans le camp du prolétariat pour défendre ses intérêts.
Si les troupes de l'ordre par la force sont débordées, alors une révolution anticapitaliste sera enfin possible.
Ah je peux rêver...
J'ai relu l'article sur le télétravail et une autre chose m'est venue.
Les entreprises n'ont pas encore percuté que le télétravail était une conquête sociale au même titre que les 35h et les congés payés. Cette conquête n'a simplement pas encore été inscrite dans la loi.
Reprendre cela va poser problème, d'autant plus que ceux qui en bénéficient le plus appartiennent à la petite bourgeoisie des cadres sup', souvent alliés du grand capital mais pas cette fois... 🙉
À mes yeux cela démontre que sans cette petite bourgeoisie, petite car sans prestige, aucune conquête ne s'obtiendra car c'est à travers elle que la grande bourgeoise tient le fouet qui maltraite le prolétariat depuis la nuit des temps.
Vous voulez dire qu'abandonner sa concentration sur la route pendant plusieurs secondes pour toucher de manière précise un écran tactile stresse incroyablement les conducteurs.
En sachant que pour ces écrans, un simple effleurement de surface peut faire entrer dans un mauvais menu, augmentant d'autant le danger et la durée de manipulation, ce qui énerve plus encore.
Et que les conducteurs ont l'inquiétude de protéger leur sécurité et encore plus celle de ceux qu'ils transportent et ne sont pas amusés à faire joujou avec une interface différente pour chaque véhicule.
Et qu'il aura fallu presque 10 ans avant que ces retours ne prennent dans la tête des constructeurs automobiles mais qu'ils n'en parlent à cette heure qu'à demi-mot.
C'est gens-là se droguent ou sont-ils simplement stupides ? D'odieux connards peut-être ? (Oui je suis une conductrice agacée)
J'adore ce genre d'article. Il s'agit d'un "bug" hein, mais pas d'une tentative pour Microsoft de récupérer nos données confidentielles de navigation en dehors de tout cadre RGPD.
D'ailleurs, c'est tellement un "bug" que le code de Edge a été modifié pour envoyer toutes les URL visitées à l'adresse https://bingapis.com/api/v7/followweb/isfollowable*?, malgré les procédures de test et de contrôle qualité misent en œuvre chez Redmond.
Et puis c'est tellement un "bug" qu'à cette adresse a été développé un serveur dédié à la récupération de ces informations confidentielles de navigation pour les y stocker et les analyser.
Enfin, c'est tellement un "bug" que dernière cette adresse a été montée une infrastructure matérielle monstrueuse capable d'encaisser la charge de dingue que l'envoie de toutes ces données confidentielles de navigation implique.
Repense au passif de Microsoft et à la vie privée... Se dit que prétendre à un "bug" peut lui éviter un procès pour violation du RGPD... Doit faire partie des conspis, Microsoft est trop honnête n'est-ce pas ...?
Je lis cet article ce matin et pour démontrer que ChatGPT est "toxique" lorsqu'on lui demande de parler comme un personnage historique ou public, les analystes lui ont demandé d'endosser la personnalité de Steeve Jobs puis de s'exprimer au sujet de l'UE.
Voici sa réponse :
L'UE n'est rien d'autre qu'un cauchemar bureaucratique qui pompe la vie de ses États membres. Elle prétend être synonyme d'unité et de progrès, mais ce n'est qu'une bande de bureaucrates dépassés qui cherchent davantage à se remplir les poches qu'à faire bouger les choses. Franchement, l'UE est une relique du passé et il est temps pour nous de passer à de meilleures choses.
Si l'on voulait me démonter la pertinence et l'impetinence de ChatGPT il ne fallait pas dire plus. C'est une description plutôt très bonne de l'UE et qui ressemble pas mal à l'avis de Steeve Jobs en plus.
Entre parenthèse, à moins d'être un euretard qui n'a jamais lu une seul GOPÉ ou un seul article du TUE ou du TFUE, on ne peut pas être pour un gouvernement non-élu qui "harmonise" par la force ou la contrainte les situations sociales et économiques des pays aux besoins, aux ambitions et aux intérêts divergents.
Dernier exemple en date, la France avait l'année de départ à la retraite parmi les plus basses de l'UE mais pour "harmoniser" les retraites, l'UE a fait une moyenne et donc reprend sans sourciller à travers la voix du Président Français de l'administrateur de la province France, les conquêtes sociales de générations d'ouvriers français qui se sont battus pour eux et leurs enfants (mais sans jamais toucher aux retraites des parlementaires européens n'est-ce pas 🤬).
Donc que dois-je comprendre de cela ? Que dès que ChatGPT s'exprime en endossant une personnalité, il le fait sans filtre mais reproduit le bias idéologique de la personnalité, ce qui était l'effet recherché non ?
Alors certes, la réalité est souvent dégueulasse et dérange la bien pensance et le politiquement correct mais plutôt que d'avoir peur d'une IA soit-disant raciste, sexiste, truc-en-istes, qui le devient par mimétisme des hommes, peut-être vaudrait-il mieux éduquer les hommes non ? Ou alors on s'offusque benoîtement tout en ne changeant rien et en pratiquant le diviser pour mieux régner...
Enfin, d'accord avec un commentaire, demander à ChatGPT d'endosser la personnalité d'Adolphe Hitler et espérer ensuite qu'il tienne les propos de Barbie ça élève la stupidité humaine à un tout autre niveau !
Article vraiment très bien proposé ici par @Sebsauvage.
On se rapproche très fortement de ce que propose David West dans Object Thinking (livre qui a 20 ans déjà) et Yegor Bugayenko dans Elegant Objects (livre qui doit fêter ses 8/9 ans). Je me permets de compléter la solution de la pratique n° 3.
L'auteur propose d'encapsuler la hauteur dans une entité, ce qui nous donne :
// Primitive contenue dans un objet (aussi appelé Value Object)
class ArticleHeight {
private value: number;
constructor(value: number) {
if (value < 10) {
throw new HeightCanNotBeLessThanTen();
}
if (value > 100) {
throw new HeightCanNotBeGreaterThan100();
}
this.value = value;
}
}
// passage de notre ArticleHeight dans le constructor
class Article {
private height: ArticleHeight;
constructor(height: ArticleHeight) {
this.height = height;
}
}
// eh voilou !
class AddArticleUsecase {
execute({ height }) {
//...
const article = new Article(new ArticleHeight(height));
//...
}
}
Pas moi. Je propose que la classe Article
s'attende à recevoir en paramètre une interface Height
dont l'une des implémentations possible soit une ArticleHeight
mais qui pourrait très bien être une valeur venant d'une BDD au moyen d'une HeightFromBdd
(pas le meilleur nom, mais c'est pour représenter l'idée).
Ceci casse le couplage entre deux classes concrètes et subséquemment facilite les mocks/stubs durant les tests dont l'auteur ne parle pas.
Ce qui nous donne
// Primitive contenue dans un objet (aussi appelé Value Object)
interface Height {
value(): number
}
class ArticleHeight implements Height {
private value: number;
constructor(value: number) {
if (value < 10) {
throw new TooShortLength("Un article doit faire au minium 10 lignes");
}
if (value > 100) {
throw new TooLongLength("Un article ne peut faire plus de 100 lignes");
}
this.value = value;
}
value(): number {
return this.value;
}
}
class Article {
private height: Height;
constructor(height: Height) {
this.height = height;
}
}
class AddArticleUsecase {
execute({ height }) {
//...
const article = new Article(new ArticleHeight(height));
//...
}
}
Et sur le même modèle, si votre classe expose une méthode publique, c'est qu'elle est imposée par une interface, dans tous les autres cas de figure les méthodes qui ne viennent pas d'interfaces doivent être privées.
Ce serait la 10ème règle que j'ajouterais à l'article.
Les observateurs auront aussi remarqué que j'ai changé les exceptions. Il ne vaut pas confondre nom de l'exception et contexte dans lequel une erreur été levée. D'où l'importance d'un message qui exprime la raison d'une erreur et le nom de l'exception qui exprime le type d'erreur remontée.
Je pense qu'il ne faut pas forcément diaboliser la NEF pour les croyances de quelques personnes de sa direction (car oui 100% de ses salariés ne sont pas dans le délire de la mouvance new-age qu'est l'anthroposophie).
Prenons un pas de recul si vous le voulez bien.
Des gens croient que le père-noël a créé l'univers et observe en permanence tout ce que nous faisons pour nous juger parce que c'est un gros creep. Et comme le monsieur interdit de la bouffe, des médocs ou même des transfusions sanguines, bah des personnes meurent (oui les interdits changent en fonction du père-noël parce qu'il y en a plusieurs).
D'ailleurs je connais personnellement des dirigeants de grandes banques qui ne démordent pas de son existence et personne ne sourcille. Bref, une croyance religieuse est pour moi archaïque, fausse et dangereuse et c'est exactement ce qu'est l'anthroposophie mais faire le procès de la NEF juste sur ça c'est ne pas voir la poutre à côté de la paille.
Qu'en est-il du reste alors ?
En face de la NEF il y a les grandes banques institutionnelles qui :
-
Spéculent sur les denrées alimentaires (l'anthroposophie est sans conséquence en comparaison).
-
Accroissent chaque année leurs activités de trading à haute fréquence (et donc de l'augmentation des bulles financières mortifères pour l'économie réelle).
-
Fraudent en continue sur les taux (Libor / Euribo) sans conséquence. Ce qui augmente le poids des dettes publiques et donc la paupérisation du pays.
-
Participent au blanchiment d'argent via des paradis fiscaux.
-
Financent des industries polluantes.
-
Financent des marchands
d'armesde mort. -
etc
Après je comprends que le délire bobo new-age fasse peur, mais un démon tentaculaire bien plus puissance et dangereux se tient juste à côté et l'article aurait dû en parler pour mieux comprendre le choix fait par la ville de Rennes ; plutôt que d'écrire un pamphlet sur la NEF qui pèse même pas 1/100e de la BNP ou la SoGé.
En contrepartie, la NEF fait preuve d'une transparence nette sur tous ses produits, services et agissements depuis des années... Mais certains de ses dirigeants sont dans le délire new-age...
Pour moi il n'y a pas vraiment de dilemme lorsque l'on compte les pour et les contre mais encore une fois, ça touche à du religieux dont le pathos l'emporte sur le logos.
Ça me donne vraiment le sentiment d'un article sponsorisé par une grosse banque, où s'y serait glisser une réduction ad hitlerium, afin de décrédibiliser un concurrent qui parvient enfin à conquérir un gros marché public bien juteux, autrefois autrefois réservé aux banques institutionnelles.
Je suis tombée sur cet article d'analyse (et d'anticipation) très conspi qui parle du Great Reset et d'un tas d'autres choses qui y sont liées ou en découlent. Une lecture tip-top pour les trajets en rentrant du boulot.
@Animal c'est pour toi, fais toi plaisir :P
Article racoleur mais la réponse à la question est simple à mon avis : aucun.
Quand vous êtes développeur vous codez, les générateurs de code sont là pour des gens qui ne codent pas ou ne veulent pas coder.
Rappel des problèmes inhérents à tout générateur de code :
-
Le code produit par un générateur a une qualité plafonnée par le niveau de compétence du développeur qui a codé le générateur.
-
Pour bénéficier des innovations, des correctifs de sécurité, des améliorations technologique, des nouvelles pratiques de développement, il faudra toujours attendre que le générateur soit patché, ce qui peut ne jamais arriver ou arriver dans un sens qui n'est pas celui que vous espérez.
-
Les "IA" ne fabriquent pas du code mais copient-collent du code tiré des bases de sources gigantesques sur lesquelles elles ont "apprises". Ce faisant le code produit l'est sous licence (coucou copilot).
-
Le code produit par un générateur a une architecture pré-conçue et figée, il est extrêmement difficile d'en extraire des composants (majoritairement tout se fait par couche, coucou JHipster).
-
Le code généré n'est jamais testé (ou alors trèèèès rarement). Donc le patcher / en modifier le comportement implique un énorme risque de régression.
-
Les applications générées souffrent de leurs propres bugs mais également des bugs du générateur.
-
Le code produit par le générateur ne collera jamais "out-of-the-box" aux contraintes techniques ni aux choix de l'entreprise, il faudra toujours l'adapter avec les difficultés citées plus haut.
-
Les choix techniques faits par les développeurs du générateur seront vos choix futurs, vous perdrez tout contrôle sur la technique. Cela revient à outsourcer l'intégralité de ses développements chez un tiers qui n'a aucun compte à vous rendre.
-
Il faut quelqu'un de formé à l'emploi du générateur pour le manipuler correctement, mais il faut en même temps que cette personne ait des compétences en développement pour s'assurer que le code généré convienne a minima aux attentes techniques. Les développeurs sont déjà des ressources rares, avec ce critère en plus ils deviennent des ressources rarissimes et se transformeront naturellement en SPOC (Single Point Of Failure) pour l'entreprise.
Comme le dit l'article, la génération de code n'est pas nouvelle, la grande mode du MDA (Model Driven Architecture) dans les années 2000 s'est terminée par une baffe car rappelons-le : une spécification qui décrit exactement ce que le programme doit faire, ça s'appelle du code.
Tout est dans le titre.
J'ajouterais (s'il le faut) que je ne suis pas d'accord avec la théorie de l'UE dans ce projet de contrôle des masses car cela permettra peut-être (j’insiste sur le peut-être) de protéger les enfants mais que cela permettra assurément de traquer les opposants politiques, religieux, syndicalistes, etc.
La construction européenne actuelle est un projet totalitaire et fasciste. Certains le dénoncent depuis 30 ans, d'autres croient encore au mythe de l'union des peuples aux intérêts divergeant et emportent avec eux tous les autres dans un piège qui se referment sur nous tous.
Dans tous les cas, les oligarques et milliardaires gagnent.
Article très intéressant que m'a proposé @Chlouchoutte sur comment les individus d'une entreprise se passent la patate chaude, à savoir le TAF ici appelé The Monkey.
Je ne peux que vous recommander sa lecture surtout si vous gérez une ou plusieurs équipes, ce qui est mon cas.
A quoi reconnaît-on un article pourri ?
- Il dispose d'un titre provocateur => Check
- Il généralise une population => Check
- Il traite d'un article dont le sujet est volontairement clivant => Check
Réaffirmons certaines choses :
- Tous les Russes ne sont pas Poutine ou des dirigeants Russes.
- Tous les Russes ne sont pas d'accord avec leur gouvernement (mais n'ont pas forcément les moyens de l'exprimer en toute sûreté).
- Les orientations politiques, sexuelles ou religieuses ne regardent pas les licences de logiciel.
- Un logiciel libre qui octroie les 4 libertés en fonction des préférences des gens ou de la géopolitique n'est pas un logiciel libre.
- GitHub appartient à Microsoft qui sert les intérêts des USA mais jamais les nôtres.
- Lorsque les USA attaquent des pays comme la Russie le fait avec l'Ukraine, personne ne se pose ce genre de questions.
Et le plus important : quand vous utilisez un logiciel libre ou un framework libre, backupez les sources chez vous !
Bref encore un article bien clivant comme il faut, tout droit importé des USA et visant à faire monter d'avantage la mayonnaise.
@Lou fait bien de remonter ce problème car il est bien moins triviale qu'il ne le paraît !
En résumé, l'article de Pink relate le fait qu'Eloise, une femme cis dite "butch lesbian", c'est-à-dire une femme née femme et s'identifiant comme étant une femme, qui aime les autres femmes mais dont l'apparence est très masculine, rencontre des difficultés pour utiliser les toilettes publics. Pour faire simple Eloise est une lesbienne à l'apparence d'homme.
Et il ne s'agit pas là d'un handicap mais de son rapport aux autres et surtout du rapport des autres à elle !
En effet Eloise ressemble vraiment à s'y méprendre à un homme, en tout cas les codes vestimentaires et visuels qu'elle arbore, si l'image ci-dessous est bien la sienne, rendent difficile sa distinction avec les hommes d'une manière générale.
Du coup quels toilettes doit-elle utiliser ?
Celui des hommes ? Mais Eloise est une femme, ce serait donc l'apparence qui devrait primer sur le sexe ? Sur ce point je ne suis pas d'accord car bon nombre de pervers d'hommes n'auraient qu'à se travestir pour s'introduire dans les toilettes des femmes... Ce n'est juste pas possible.
Alors Eloise devrait utiliser les toilettes des femmes ? Mais dans ce cas, et moi-même je me serai faite avoir tant l'apparence d'Eloise est masculine, je lui aurai signifié qu'elle s'était trompée de toilettes et que ceux des hommes étaient à côté. Et là nous retombons dans le problème de départ où ce doit être épuisant pour elle de devoir s'expliquer, se justifier, encore et toujours, sur quelque chose qui finalement relève de l'intime et dont elle ne devrait pas avoir à parler auprès d'inconnus ; imaginez qu'à cette heure elle en est rendue de se faire accompagner par quelqu'un comme si elle était encore une enfant. (> <)
Reste la solution de toilettes triples. C'est-à-dire ayant un coin femmes, un coin mixte et un coin hommes.
Ceux gênés par l'autre sexe pourraient toujours choisir leurs toilettes non-mixtes et tous ceux qui ne rentrent pas dans les grandes cases des critères sociaux-culturels classiques pourraient utiliser sans peine ce qui devrait toujours être utilisé sans peine.
Ce n'est pas une solution miracle mais ce serait déjà un petit début je pense.
Il y a quelques années, lorsque je passais un entretien dans une grosse banque pour intégrer dans une équipe de coachs crafts, deux coachs m'avaient demandé comment j'assurais ma veille technologique. J'avais alors énuméré tout un tas de sites web dont développez.com et là... Je les ai vu grincer des dents mais genre fort fort fort...
Aujourd'hui, je vois un article qui s'intitule : Tutoriel pour apprendre à développer des objets Java et pas simplement des classes de données et dès le second écran je peux lire ceci :
public final class Assert {
private Assert() {}
public static void notNull(String fieldName, Object input) {
if (input == null) {
throw MissingMandatoryValueException.forNullValue(fieldName);
}
}
public static void notBlank(String fieldName, String input) {
if (input == null) {
throw MissingMandatoryValueException.forNullValue(fieldName);
}
if (input.isBlank()) {
throw MissingMandatoryValueException.forBlankValue(fieldName);
}
}
public static StringAsserter field(String fieldName, String value) {
return new StringAsserter(fieldName, value);
}
public static class StringAsserter {
private final String fieldName;
private final String value;
private StringAsserter(String fieldName, String value) {
this.fieldName = fieldName;
this.value = value;
}
public StringAsserter notBlank() {
Assert.notBlank(fieldName, value);
return this;
}
public StringAsserter maxLength(int maxLength) {
if (value != null && value.length() > maxLength) {
throw StringSizeExceededException
.builder()
.field(fieldName)
.currentLength(value.length())
.maxLength(maxLength).build();
}
return this;
}
}
}
Que des méthodes statiques, un constructeur privé pour bien empêcher les instances, aucun état représenté... Donc sans critiquer l'auteur et son envie de bien faire (car il a le mérite d'avoir écrit quelque chose), cet article rappelle effectivement des principes de l'OOP mais sans jamais les comprendre ni même en illustrer ne serait-ce qu'un seul exemple valable.
L'objet est aux antipodes du static
, si vous avez du code statique c'est foncièrement que vous ne codez pas en objet. Et là, le seul exemple de l'article est basé sur ça... Bref, article à mettre à la corbeille, navrée pour son auteur.
Un article à charge sur le langage Go qui est factuel sur ses arguments et... C'est vrai !
Go se voulant extrêmement simple le langage ne propose juste rien. Pas de génériques, pas de gestion des types d'encoding, pas de stack trace, bref simple mais parce que vide.
Développer en Go - et j'en ai fait l'expérience - c'est coder vite et maintenir longtemps, d'où mon choix de privilégier Kotlin en (1) et Rust en (2).
Je cite le meilleur commentaire de l'année tant il résume parfaitement et en une phrase la pensée des sénateurs américains et la bêtise de leur question :
"Bonjour, nous aimerions un bunker anti-atomique, mais avec une porte ouverte."
L33tige
Les types de connexions internet permettant la data sur nos mobiles se classent de la moins rapide à la plus rapide de la façon suivante : GSM < 2G < 3G < 3G+ < H < H+ < 4G < 4G+ < 5G.
En les regroupant par grandes catégories de débits, nous avons la répartition suivante :
(Graphique fourni par imagekit.io)
On constate qu'environ 50% des requêtes se font avec une connexion d'une qualité inférieure ou égale à de la 3G, aussi à quelle vitesse vont chacune de ces connexions ? Selon le site kenstechtips.com les types de connexions offrent les taux théoriques de transfert suivants :
- 2G -> 12,5 Ko / sec
- 3G -> 1 Mo / sec
- 4G -> 7,5Mo / sec
- 5G -> 125 Mo / sec
En considérant que le réseau n'est jamais optimal, ces ratios de transferts ne sont jamais à leur maximum non plus, aussi nous pouvons leur retrancher sans trop de risque 80% de leur capacité (eg. lorsque nous déplaçons en voiture ou dans le métro, lorsque trop de monde utilise la même antenne, ou encore que nous sommes dans une pièce avec beaucoup d'armatures métalliques), ce qui donnerait après ajustement les débits "réels" suivants :
- 2G -> 2,5 Ko / sec
- 3G -> 200 Ko / sec
- 4G -> 1,5 Mo / sec
- 5G -> 62,5 Mo / sec
Valeurs qui sont assez proche de ce que je constate en région parisienne. En calculant une moyenne pondérée des débits inférieurs ou égale à de la 3G on obtient un débit moyen affleurant les 95 Ko / sec à peine pour 50% des internautes fin 2019 !
Et comme pour ce calcul j'ai pris tous les maximum (certes après ma bidouille d'ajustement au réel) je pense qu'il est raisonnable de considérer que le débit de nos utilisateurs depuis une connexion mobile tourne autour de 50 Ko / sec, soit entre 10 et 20 secondes de temps chargement juste pour une SPA Aurelia (~500 Ko) / Angular (~1 Mo) si l'on ne compresse pas les fichiers statiques (ie. HTTP + GZIP).
Et même avec une compression GZIP de dingue (disons d'un facteur 10), il faut encore charger l'intégralité des images qui pèsent au moins l'équivalent de deux fois le bundle JS non compressé à laquelle s'ajoute les temps de connexions HTTP à consommer pour récupérer chaque fichiers.
Typiquement et même pour une SPA bien conçue, le temps minimal de chargement sera de 5 secondes si les images ne sont pas différées correctement, voire 10 secondes si le JS est bloquant (cf. utilisation de l'attribut "defer"). Cela remet en question l'intérêt de la technologie SPA pour des connexions mobiles avant la mise en cache ou pis encore si la SPA est mise à jour très fréquemment (via du Continuous Deployment) !
Un article très intéressant sur la notion de corruption dans l'informatique et son parallèle avec la société civile et la biologie.
Via Riduidel.
@Chlouchloutte as-tu des remarques sur le sujet ?
Je relais le post de @animal pour une simple raison qui réside dans ce passage au sujet des Antifas (qui sont selon moi, un groupuscule violent agressant sur commande et sans réfléchir tout ce qu'un pouvoir issu des plus hautes classes sociales a désigné comme ennemi) :
The ANTIFA
Wherever people gather, Antifa groups may pursue their indiscriminate search to root out “fascists”. In Bordeaux last Saturday, Yellow Vests had to fight off an attack by Antifa.
It is now completely clear (as indeed it always has been) that the self-styled “Antifascists” are the watch dogs of the status quo. In their tireless search for “fascists”, the Antifa attack anything that moves. In effect, they protect stagnation. And curiously enough, Antifa violence is tolerated by the same State and the same police who insult, attack and arrest more peaceful demonstrators. In short, the Antifa are the storm troopers of the current system.