votre avatar

TNZfr

est avec nous depuis le 24 octobre 2011 ❤️

Bio

Oups.
On dirait que quelqu'un ici aime garder ses petits secrets, comme si de par hasard il y avait quelque chose à cacher...
Désolé, ô lectrice de passage, cher lecteur égaré, pas de révélation sensationnelle pour le moment sur ce profil.
Repassez plus tard ?

628 commentaires

une Tesla model S bordeaux en mouvement

Le 16/04/2024 à 08h 07

Mais bien sûr, c'est la faute à la croissance !

C'est juste que le loulou arrive en fin de projet et qu'il n'a rien de nouveau à mettre en route.
Tesla passe en mode exploitation / rentabilité ... le terrain de prédilection des contrôleurs de gestion et autres gardiens du temple.

Espion numérique

Le 12/04/2024 à 21h 03

J’étais évidemment ironique (relis bien : j’avais mis le disclaimer du trolldi)… :troll:

(chut, c'était un appeau pour les conformistes de la bidouille de raymonde :D )

Le 12/04/2024 à 12h 42

Même l’espionnage des GAFAM me dérange.

Le 12/04/2024 à 12h 41

Il faudrait un mode "autiste pur" (plus dur qu'isolement) sur ces dispositifs (toutes marques confondues) pour ne plus être QUE des téléphones quand on le souhaite.

N'importe laquelle des applications peut être corrompue ou dont l'éditeur travaille de concert avec son gouvernement hôte (ce qui revient au même).

On l'a vu avec les NPMs détournés qui minent du Bitcoin, des applications de renseignement comme Pegasus. La liste doit certainement être très très longue.

Un bon gros mode autiste avec zéro application lancée si ce n'est ce qui est nécessaire pour téléphoner et bon gros tas de checksum en tout genre pour vérifier tout ça.

Sinon éteindre le dispositif.


Le problème de la technologie est devenu le même que celui des armes. Ce ne sont pas les armes qui sont dangereuses, c'est le type qui la tient et son intention.

Un post-boomer fera le même constat. Tout les pays sont en guerre perpétuelle et tous les moyens sont bons. On est passé d'un internet du partage à l'internet du saccage.

Dommage.

« internet du saccage »
Merci la nature humaine ... malheureusement.

Logo de Windows 10

Le 12/04/2024 à 12h 52

Oui, Linux est installé de plus en plus et a plus de 4% du marché des OS maintenant :-)

D'ailleurs, il serait intéressant de suivre les parts de marché Linux au fur et à mesure que MS pousse Win11, CoPilot bientôt ... et même lors de l'annonce / sortie de Win12 qui va demander des processeurs plein de TFlops et de NPU pour adultes.

Logo Prime Video

Le 10/04/2024 à 08h 54

Tout le monde est concerné ? ... ou juste les nouveaux abonnés ?

(je me doute de la réponse)

Ecran d'accueil de Disney+

Le 08/04/2024 à 10h 54

Certes. Mais c'est difficile de savoir si
1. c'était spécifique à Netflix = "L'offre Netflix c'est la meilleure pour moi donc j'accepte de payer".
2. c'est une acceptation générale de l'augmentation des tarifs pour la SVOD.
3. ca s'est fait au détriment d'autres abonnements (genre câble/satellite)

J'ai pas trouvé des masses d'études sur le sujet.

Celui qui s'en sort, c'est le 1er à faire la manip' ... les autres vont se ramasser ce que le 1er à éviter.

J'veux dire par là, que quitte à choisir entre D+ et Netflix, je garde Netflix : j'y passe plus de temps ... quand on voit la pauvreté de D+ en terme de renouvellement.

AI IA

Le 08/04/2024 à 09h 37

Et encore une fois : Bonjour la technologie NoBrain !


Un peu d'élitisme dans cette remarque, non ?

La sécurité c'est pour les "pro", et les "pro" n'ont pas besoin qu'on leur dise où est le problème ?
Si on va dans ton sens, ca voudrait dire que les warnings/errors d'un compilateur c'est pour les NoBrain car les développeurs "pro" n'ont pas besoin qu'un outil qui leur dise quelle ligne de code à un problème.

Perso je pense au contraire que la technologie doit justement aider les gens qui n'ont ni les compétences ni le temps/envie d'acquérir ces compétences.

Ce que je trouve dangereux, c'est de ne pas connaitre les limites de la technologie et se laisser convaincre que l'expertise 'humaine" n'est plus nécessaire.

Oui pour faire de la formation et enseigner des concepts complexes à des étudiants ... mais l'IA ne doit pas devenir un outil d'exploitation car les directions en mode gestionnaire-sans-projet-global vont y voir le moyen de maximiser les bénéfices (mise en place de personnel non ou peu qualifié).

Le 03/04/2024 à 08h 42

Et encore une fois : Bonjour la technologie NoBrain !

Le 05/04/2024 à 00h 03

Mouaif, entre les discussions sur la qualité de Win11 et les revenus MS ... je me demande encore pourquoi on en parle ?
Il y a moyen de faire sans les solutions MS tant pour le particulier que pour les entreprises.

Mais bon, il y a un coup de collier à donner pour sortir de l'usine de gavage consumériste de MS ... et ce n'est pas dit que la majorité ait atteint la limite de gavage.

Photo d'un immeuble troué de part en part

Le 04/04/2024 à 23h 51

tu veux dire biométrique ?
Si oui, le biométrique n'est pas de la sécurité : on peut le révoquer mais pas le renouveler.

HWiNFO

Le 31/03/2024 à 09h 43

openSUSE a développé son propre hwinfo, mais en ligne de commande (à utiliser avec l'option --short sinon c'est imbitable).

Sinon, en graphique, t'as hardinfo2. Il y a également CPU-X, mais qui est plus centré sur certains composants.

Merci pour les infos.
Après investigations, j'ai hardinfo tout court à dispo dans KDE Neon. C'est pas mal.

On verra pour hardinfo2 lors de la bascule sur la 24.04 LTS en aout/septembre.
En fait, le paquet DEB est dispo sur leur site ... et mon 7840 est pas mal placé.

Le 29/03/2024 à 18h 51

Et pas de version Linux :/

Le 28/03/2024 à 10h 00

Mouaif, toujours en attente du player ultra ...

Logo de Microsoft Office

Le 27/03/2024 à 10h 39

Les filtres sous Outlook, je ne sais pas comment traiter les mails ayant de plus de X jours. Sous Thunderbird, j'ai cette possibilité. Je trouve les possibilités en terme de filtre bien plus poussé sous Thunderbird

C'est sûr. A la maison, je n'utilise que Thunderbird (en béta) depuis plusieurs années.
La qualité que je trouve à Outlook est par rapport au niveau moyen de qualité des produits MS.
:mrgreen:

Le 21/03/2024 à 17h 09

2024. Heureusement les fanboys sont toujours là pour me rappeler que le problème c'est moi qui utilise mal le logiciel. Que ferais-je sans vos remarques pertinentes pour remettre en cause mon ressenti personnel. Vous savez quoi ? Votre gentillesse me rend humble. Bref...

Pour info, j'utilise Excel au bureau et j'ai Calc installé chez moi... que j'ai tuné à mort pour ressembler à Excel.

Je maintiens que quand je lance Calc, je trouve ca moins pratique. Des trucs à la con comme "supprimer les doublons d'une colonne" ou "définir le multipage pour l'impression/export" me semblent tellement plus pratique dans Excel.

Et il y a aussi un truc dérangeant dans le rendu à l'écran. Je pense que ca vient des marges/espacements des cellules ou du texte dans les cellules. Faudrait que j'investigue un peu plus pour mettre le doigt dessus.

Tu vois, tu reconnais toi même que tu as / es un problème !

Et donc, tu es avec un LO 24.2.1 ?

Le 21/03/2024 à 12h 59

C'est MS lui même qui avait annoncé l'arrêt des licences perpétuelles sur MS Office à la sortie d'Office2021, ne t'en déplaise.

Bien sûr, les grands comptes ont gueulé parce que le tout Office3615 ne répond pas à leur besoins.

Source de cette annonce ?
Ce n'est pas les souvenirs que j'ai gardé de l'époque, j'ai peut-être loupé ce point vu que les grands comptes avec qui je travaille n'utilise qu'à la marge les versions perpetuelles.


Ben quand tu as les détails des négociations grands comptes genre plusieurs dizaines de milliers de licences ... le prix unitaire n'est pas celui d'une PME, c'est au-dessus car dans l'équation il faut tenir compte de l'incapacité des grands comptes à changer rapidement de solution (migration, formations, etc ...). Et MS est tellement ancré dans les fondations des infra de SI, qu'ils peuvent faire ce qu'ils veulent.


Quel rapport avec ta phrase initiale : "un modèle où le prix unitaire des licences augmente avec les quantités prises" ?
BTW, il y a une gamme de produit PME (en dessous de 300 sièges), vs la gamme Enterprise. Donc bien sur que les prix ne sont pas les mêmes. Sans même parler du principe de "level" dans certains types de contrat, qui génèrent des prix différents suivant les quantités.


Ce n'est pas parce que tout le monde fait une c.nnerie que ce n'est plus une c.nnerie. J'observe d'ailleurs que l'euphorie du tout-cloud retombe rapidement dès les premières factures.


C'est une connerie, et c'est pour ça que l'action de MS monte, que les analystes plébicitent ces orientations, et que le marché répond présent. N'hésite pas à écouter les réunions d'investisseurs (earning call), cela remettra en question tes positions, vu les croissances à 2 chiffres annoncées tous les trimestres.

je réagis sur le dernier point : Conformisme quand tu nous tiens !

Les financiers font dire aux chiffres copieusement manipulés ce qu'ils veulent ... et surtout ce que les investisseurs et les prospects veulent entendre. Parce que une fois embarquer dans le manège, y'a un gap entre la plaquette marketing et l'exploitation des solutions achetées. Je peux t'en parler je suis allé voir ce qu'il y a réellement derrière le rideau (quelques certifications et utilisation pratiques pour des grands comptes).

Ce n'est que de la comm' ... Pour illustrer l'idée : a la télé, il n'y a que de la bagnole électrique, et dans la rue ? Après tout dépend de ce qui est important pour toi, ce que te disent tes sens ou ton besoin d'assimilation dans la foule bêlante ?

Le 21/03/2024 à 11h 36

Cette annonce est une manœuvre pour se rattraper aux branches suite aux mécontentements d'un possible arrêt des licences perpétuelles.


"un possible arrêt" qui n'est qu'issu de l'imagination des convaincus anti-MS.
En même temps, mon petit doigt m'a dit que les renégociations de licences MS fonctionneraient suivant un modèle où le prix unitaire des licences augmente avec les quantités prises : un vrai business-model de dealer de drogue.


Un business modèle, où plus tu prends plus c'est cher ? Waow. L'inverse du capitalisme et du principe d'économie d'échelle, l'inverse de ce que tout le moned fait, c'est beau.
A côté de ça, le reste de la stratégie cloud / IA de MS ne satisfait pas non plus.


C'est EXACTEMENT ce que les chiffres disent d'ailleurs, suffit de regarder les différents résultats financiers.
Un autre petit doigt m'a confié que les mises à jour passant, les profils développeurs avaient de plus en plus de mal à « personnaliser » leur poste de travail (comprendre faire des gros détournements techniques pour pouvoir bosser) parce que l'écosystéme MS se rigidifie petit à petit pour ressembler à un modèle Apple et/ou IBM. Bizarrement, les bons développeurs partent pour des boîtes où ont leur laisse le choix de l'écosystème pour travailler.


Oui, on connait les "bons développeurs", pour qui c'est aux autres de s'adapter à eux, et non l'inverse. Les mêmes qui à chaque fois qu'ils doivent récupérer un projet commencent par dire "ah non le code est nul, faut tout recommencer, et en plus j'aime pas ce langage/framework/whatever".
Les équipes de sécurité ont enfin les outils pour s'occuper des populations de développement, et doivent récupérer une dette sécuritaire qui peut avoir plein d'impacts critiques.

Tout test arguments s'entendent ... mais il te manque les infos qui vont bien.

« "un possible arrêt" qui n'est qu'issu de l'imagination des convaincus anti-MS. »

C'est MS lui même qui avait annoncé l'arrêt des licences perpétuelles sur MS Office à la sortie d'Office2021, ne t'en déplaise.
Bien sûr, les grands comptes ont gueulé parce que le tout Office3615 ne répond pas à leur besoins.


« Un business modèle, où plus tu prends plus c'est cher ? Waow. L'inverse du capitalisme et du principe d'économie d'échelle, l'inverse de ce que tout le moned fait, c'est beau. »

Ben quand tu as les détails des négociations grands comptes genre plusieurs dizaines de milliers de licences ... le prix unitaire n'est pas celui d'une PME, c'est au-dessus car dans l'équation il faut tenir compte de l'incapacité des grands comptes à changer rapidement de solution (migration, formations, etc ...). Et MS est tellement ancré dans les fondations des infra de SI, qu'ils peuvent faire ce qu'ils veulent.


« C'est EXACTEMENT ce que les chiffres disent d'ailleurs, suffit de regarder les différents résultats financiers. »

Ce n'est pas parce que tout le monde fait une c.nnerie que ce n'est plus une c.nnerie. J'observe d'ailleurs que l'euphorie du tout-cloud retombe rapidement dès les premières factures.


« *Oui, on connait les "bons développeurs", pour qui c'est aux autres de s'adapter à eux, et non l'inverse. Les mêmes qui à chaque fois qu'ils doivent récupérer un projet commencent par dire "ah non le code est nul, faut tout recommencer, et en plus j'aime pas ce langage/framework/whatever".
Les équipes de sécurité ont enfin les outils pour s'occuper des populations de développement, et doivent récupérer une dette sécuritaire qui peut avoir plein d'impacts critiques.
* »

Tu décris une situation de reprise de projet. Les raisons sont nombreuses : évolution fonctionnelle, dette sécuritaire, dépassement de budget (tu sais les équipes plein de jeunes développeurs sans expérience et sans leader technique pour rester dans l'enveloppe), ...
Les devs expérimentés connaissent déjà ce qui répond au besoin et les tas de m*rde à paillettes ayant une durée de vie de 6 mois et contrairement à ce que tu dis, ce n'est pas par caprice de diva.
Côté sécurité, ben, aujourd'hui la prérogative sécurité est maintenant au-dessus de tous ce que les fonctionnels et les devs peuvent dire. Laisser des trous de sécurité de nos jours a des conséquences importantes pouvant aller jusqu'à l'arrêt complet du SI ... tout ça parce qu'un projet n'a pas voulu se mettre en conformité. Parmi mes clients, il est même question d'arrêter les applications qui ne se mettent pas à jour même si les services utilisateurs n'ont rien à mettre à la place malgré les sommations et les délais de grâce.

Le 21/03/2024 à 09h 55

Tu bosses chez MS ?

Le 21/03/2024 à 09h 54

Autant qu'il est utile de préciser que l'ergonomie de LO est déroutante (et donc moins pratique) quand on est habitué à MO.

Et aussi qu'il est facile de changer la présentation des menus dans LO

(pour le savoir il faut être curieux et laisser ses avis de café du commerce au vestiaire)

Le 21/03/2024 à 09h 51

le problème c'est outlook qui est vraiment bien plus pratique à l'usage quand on est en exchange, jamais réussi à passer sur thunderbird pour me débarrasser d'office

Outlook est peut être le meilleur logiciel que MS ait pu faire.

Le 21/03/2024 à 08h 07

Difficile de te répondre, j'ai mis du temps à me sevrer de MS Office ...

Le 21/03/2024 à 08h 04

Cette annonce est une manœuvre pour se rattraper aux branches suite aux mécontentements d'un possible arrêt des licences perpétuelles. En même temps, mon petit doigt m'a dit que les renégociations de licences MS fonctionneraient suivant un modèle où le prix unitaire des licences augmente avec les quantités prises : un vrai business-model de dealer de drogue.

A côté de ça, le reste de la stratégie cloud / IA de MS ne satisfait pas non plus. Un autre petit doigt m'a confié que les mises à jour passant, les profils développeurs avaient de plus en plus de mal à « personnaliser » leur poste de travail (comprendre faire des gros détournements techniques pour pouvoir bosser) parce que l'écosystéme MS se rigidifie petit à petit pour ressembler à un modèle Apple et/ou IBM. Bizarrement, les bons développeurs partent pour des boîtes où ont leur laisse le choix de l'écosystème pour travailler.

Présentation de l'Epic games Store sur Android et iOS

Le 21/03/2024 à 11h 10

Je suis dans le même cas.
Bien que le lanceur Heroic arrive à démarrer la plupart des jeux ... j'ai moi aussi une grosse préférence pour le service de Steam et de son client Linux natif.

Le 21/03/2024 à 08h 25

Mouais ... moi j'y vois un intermédiaire de plus dans la chaîne.

Ce qui me paraît le plus probable c'est qu'Epic Games a réussi à négocier une part des 30% réclamés habituellement par Apple en leur promettant de la volumétrie et des prix de vente plus élevés.

En résumé : A fuir !

Windows 11

Le 21/03/2024 à 08h 18

Ok pour le correcteur ... mais CoPilot ou pas ?

Logo de Firefox

Le 20/03/2024 à 07h 33

Ah zut ... je viens de passer à la version 125.
:ouioui:

Ferris the crab, unofficial mascot for Rust

Le 11/03/2024 à 10h 36

Le 0 binaire, j'm'en tape. C'est la conversion numérique qui est utilisée après.


La spécification de atoi c'est qu'elle reçoit une string. En C une string est terminée par un NUL. Si ce NUL n'est pas là, rien ne prouve que atoi ne va pas continuer à lire les caractères qui suivent. La spec dit que atoi arrête la conversion, pas nécessairement le scan de la string. Le fait qu'atoi est implémenté par une boucle "while le catactère courant est entre '0' et '9'' est un détail d'implémentation qui est généralement valide sur une architecture X86 ou ARM, mais peut-être pas sur une architecture IBM z9, ou une encore différente qui sortira l'année prochaine. Rien n'interdit à atoi() de continuer à scanner plus loin s'il le désire. Il ne peut pas aller plus loin que le NUL mais rien ne dit qu'il ne va pas aussi lire le caractère qui suit le \n.

Maintenabilité :fou:

Ah oui, je commence à comprendre : tu fais du z-linux ... CàD une implémentation très IBM d'un environnement Linux (j'ai fait aussi de l'AIX et y'a des contextes où c'est pas bon à manger surtout quand il s'agit d'une appli multi-OS).

La maintenabilité justement, c'est en environnement zOS où j'ai pu voir passer les pires trucs pondus par des « barbus-plein-d'XP ».

Dans ce genre de contexte de travail, les documentations projet tiennent sur une page : Cf Machin-pas-loin-de-la-retraite-ou-déjà-parti. Et les DSI derrière qui attendent en embuscade le départ en retraite pour tout décommissionner en urgence afin que cela ne leur pète pas au nez.
Une fois, des vieux programmes Z ont été rachetés à un client et la prise en main des bouzins a été longue et dure. Plusieurs mois de reverse-engenering pour s’apercevoir qu'on aurait plus vite fait de repartir de la page blanche.

La maintenabilité efficace, par ordre de priorité pour moi :
1. Programmation structurée
2. Capacité à comprendre pour un dev extérieur et accessoirement par l'auteur lui-même
3. Cohérence d'écriture globale : va maintenir un source avec 5 ou 6 styles d'écriture différents et avec du C, ça peut faire très vite mal à la tête.
4. Mail et/ou N° de téléphone de la personne qui a l'histoire du programme en tête : mieux vaut demander à un qui sait plutôt qu'à 2 qui cherchent

Le 11/03/2024 à 07h 00

Dans le "t'es content ?" ... il fallait comprendre que je salue tes efforts pour prouver ton point de vue. Je salue également tes capacités de recherche d'un environnement suffisamment vétuste te permettant de prouver tes dires : la version 9.4 de GCC a été mise à jour pour la dernière fois en juin 2021. Pour te dire, même la vieille LTS Ubuntu 22.04 installe de base GCC 11 et propose GCC 12.

Au quotidien, je tourne en GCC 13.

Si tu crois que j'ai "recherché" un environnement vétuste... ben non. J'ai juste pris la première VM que j'avais sous la main (car oui, ma machine principale est sous Windows :eeek2:)
Je reste dans le ton des commentaires qui ont été faits. L'arrogance dont tu me crédites n'est ni plus ni moins que celle avec laquelle tu as entamé les débats.


On pourra se la jouer court de récré, car bizarrement, en relisant nos premiers échanges, je n'ai pas du tout la même interprétation que toi. Je t'avoue qu'après un "script kiddy" et "une médaille en chocolat dans le paramétrage Java", j'ai commencé sans doute à être un peu moins sympa, sans pour autant tomber dans des attaques ad hominem. Je préfère toutefois laisser aux lecteurs se faire leur propre opinion à ce sujet.

Pour ma part, je pense que l'on peut clore la discussion, le tour ayant été fait sur le sujet.

« Si tu crois que j'ai "recherché" un environnement vétuste... ben non. J'ai juste pris la première VM que j'avais sous la main (car oui, ma machine principale est sous Windows) »

Une VM en WSL je suppose ?

Le 10/03/2024 à 22h 52

Il faut que tu comprennes une chose : que ton programme fonctionne ou pas, je m'en fiche totalement (et ceci le plus sincèrement du monde et sans vouloir te manquer de respect).

Ce que j'essaie de te dire (et d'autres aussi), c'est que ton comportement arrogant vis-à-vis de ton programme est une des plaies quant à la sécurité des programmes d'aujourd'hui. Rust (que je n'apprécie pas vraiment, je trouve sa syntaxe illisible) empêche, de par sa conception, les principaux pièges qui constituent la majorité des failles (une étude révélait, par exemple, que la majorité des failles de sécurité dans des programmes C étaient dues à des buffer overflow).

Le pire, c'est que non seulement tu n'arrêtes pas de dire que ton programme est bien pensé, mais qu'en plus, tu te montres plutôt méprisant (pour ne pas dire insultant) envers celles et ceux qui ne seraient pas d'accord avec toi.

Du coup, je ne peux qu'abonder dans le sens du commentaire 14 de Stephane Bortzmeyer (sauf le côté virilisme que je n'ai pas trop compris dans son propos), où, désolé de te le dire, ton comportement est l'archétype même de ceux qu'il dénonce.

Dans le "t'es content ?" ... il fallait comprendre que je salue tes efforts pour prouver ton point de vue. Je salue également tes capacités de recherche d'un environnement suffisamment vétuste te permettant de prouver tes dires : la version 9.4 de GCC a été mise à jour pour la dernière fois en juin 2021. Pour te dire, même la vieille LTS Ubuntu 22.04 installe de base GCC 11 et propose GCC 12.
Au quotidien, je tourne en GCC 13.

« Le pire, c'est que non seulement tu n'arrêtes pas de dire que ton programme est bien pensé, mais qu'en plus, tu te montres plutôt méprisant (pour ne pas dire insultant) envers celles et ceux qui ne seraient pas d'accord avec toi. »
Je reste dans le ton des commentaires qui ont été faits. L'arrogance dont tu me crédites n'est ni plus ni moins que celle avec laquelle tu as entamé les débats.

Pour le virilisme, bien vu, je n'avais pas rebondi sur son commentaire.
Disons que le monsieur ferait bien d'aller faire un stage dans une équipe projet au sein d'une ESN pour voir comment ça se passe dans la vraie vie.
Non, tous les devs ne sont pas nuls (y'en a quand même), les conditions de réalisation des projets, par contre, sont pour beaucoup dans la dette technique des applis (et donc les CVEs créées ou non corrigées ...). Dans ces conditions de réalisation, de manière non exhaustive, on y trouve les comptables gérant à date d'échéance, un turn-over de compétition, des affectations de développeurs sur des périmètres dépassant leur niveau d'expérience, un client girouette, etc ...

Le 10/03/2024 à 22h 01

Je me suis amusé à le compiler et à le lancer, histoire de voir. Toi qui est si fier de ton programme, sache qu'il génère 8 warnings avec gcc 9.4 (je croyais qu'il fallait les éviter ? C'est en tout cas ce que tu demandais commentaire 6.31 (je ne l'invente pas).

Et le comble, c'est que ton programme se termine par un beau segmentation fault à l'exécution.

`
Current Minimum Maximum
Core 0 : Khz Khz Khz
Core 1 : Khz Khz Khz
Core 2 : Khz Khz Khz
Core 3 : Khz Khz Khz
Core 4 : Khz Khz Khz
Core 5 : Khz Khz Khz
Core 6 : Khz Khz Khz
Core 7 : Khz Khz Khz

Total : Khz Khz Khz
Average : Khz Khz Khz

Nb Mini :
Nb Maxi :

Extr. Min: Khz Khz Khz
Extr. Max: Khz Khz Khz
Segmentation fault
`

(tu m'excuseras, je me suis contenté d'un copier/coller de la console, je n'ai pas envie de m'amuser à héberger une image pour ensuite la coller ici).

Alors, tu peux dire tout ce que tu veux de ton programme, tu ne peux pas lutter contre les faits.

Le plus drôle dans tout ça, c'est que j'ai trouvé un buffer overflow exploitable, et que je voulais justement le compiler/tester pour vérifier, mais que je n'ai même pas eu à le faire, car ton programme plante de lui-même.

J'applaudie, à 2 mains, les 20 ans d'expérience mis avec tant de valeur dans ton commentaire précédent :top:

Ok ... (t'es content ?)

Le 10/03/2024 à 21h 42

Cette approche plus dépouillée sert la maintenabilité.


Désolé de te le dire, mais toi qui défend la maintenabilité à tout va (ça fait plusieurs fois que tu parles de maintenabilité), il y a encore beaucoup de boulot pour que ton programme soit maintenable :
- avoir des conventions cohérentes : un coup de PascalCase, un coup du camelCase, un coup du snake_case
- nommage qui laisse sérieusement à désirer ;
- utilisation de constantes en dure, au lieu de les définir via un #define ou une variable const ;
- utilisation de la virgule au lieu du point virgule pour séparer des instructions (oui, c'est valable en C, je sais, mais cela n'en est pas moins une très mauvaise pratique, surtout pour éviter de définir un bloc d'instructions dans un if ou else par exemple)
Mon code fonctionne car les procédures appelées forment un ensemble.


Comme je te l'ai déjà dit dans un précédent commentaire : ton code fonctionne pour toi, dans ton cas d'utilisation. Mais il est public (tu l'as publié sur github) et tu ne sais pas dans quelles conditions il sera utilisé.

Ton code est du pain béni pour n'importe quel hacker, mais ça, tu n'en as que faire. Pire, tu refuses ne serait-ce que de le concevoir.
PS : surconfiance avec + de 20 ans d'XP sur le sujet ... mais bien sûr. Je dirais plutôt que tu nous fais une crise d'ego universitaire.


Argument d'autorité + attaque ad hominem (encore). Peux-tu rajouter la victimisation la prochaine fois stp, histoire de varier les procédés rhétoriques ?

Ou plus simplement, avoir de vrais arguments pour défendre ton point de vue. Merci d'avance ;)

Mon dieu !
Je n'ai pas utilisé les conventions normées.

Oui, c'est publié sur github et tous les script-kiddies de passage vont l'utiliser pour coller le boxon sur internet parce que c'est pas dans les normes des gardiens de la méthode.

Le 10/03/2024 à 21h 24

Oui, c'est ce que j'ai ajouté en éditant. Mais la discussion portait sur le 0, pas le newline.

Le 0 binaire, j'm'en tape. C'est la conversion numérique qui est utilisée après.

S'il y avait eu utilisation des strings dans un printf par exemple, oui, il y aurait eu un memset.

Le 10/03/2024 à 20h 55

$ nproc
12
$ nproc|od -c
0000000 1 2 \n
0000003

$ nproc|wc -c
3


Donc les 3 caractères sortis par nproc sont : 1 2 et \n (=0x0a)

Pas de 0 "binaire" (comme tu l'appelles) de lu en fin de chaîne quand tu lis ces 3 caractères avec ton fread.

Ce qui suit les caractères lus par le fread est indéterminé. Ce n’est pas pour rien que le fread retourne le nombre de caractères lus.

Par contre, c'est le atoi qui te sauve non pas parce que la chaîne est terminée par un 0 mais parce qu'elle est terminée par un 0x0a et que le atoi s'arrête au premier caractère différent d'un chiffre après avoir détecté le début d'un nombre.
Et ici, si la lecture du pipe s'est bien passée (ce que tu ne vérifies pas), tu auras bien ton nombre.

Et atoi s'arrête aussi sur le newline ... pas uniquement sur le 0 binaire.

Le 10/03/2024 à 20h 13

Houlà... que de certitudes qui ne se basent sur rien d'autre qu'une ignorance crasse... Et quelle belle démonstration du postulat de Dunning Kruger.

Non, passer Buffer à 11 ou une quelconque autre valeur ne changera rien à l'affaire (et je passe sur le fait que tu hard-codes la taille du buffer au lieu d'utiliser une constante...) . Le simple fait que tu le proposes prouve que tu n'as rien compris. Le problème ce n'est pas le fread qui va écrire trop loin, ce n'est pas un buffer potentiellement trop petit, c'est le atoi qui va lire trop loin car rien ne garantit que le buffer sera terminé par un zéro binaire.

Car non, la commande passée à popen ne renvoie pas une string, elle renvoie un stream de bytes que fread va mettre dans la variable Buffer. Mais cela ne constitue pas une "string" au sens C car le stream ne contient pas de zéro binaire en fin, et fread n'en mettra pas. Pour mettre un tel byte nul en fin, il eut fallu faire un truc du genre (de tête et quick-n-dirty, et pas portable car suppose que sizeof(char) == 1, mais obligé vu que tu n'as pas jugé utile de définir un constante pour la taille du buffer) :

Buffer[fread(Buffer,1,sizeof(Buffer)-1,fd)] = '\0';

Note à quel point c'est différent de ce que tu as écrit, notamment il faut lire au maximum 15 éléments de taille 1, et non 1 élément de taille 15 de façon que fread renvoie le nombre de bytes lus histoire qu'on puisse accoler un NUL en fin.

Ou alors... utiliser fgets() ???

Tout ceci prouve que tu n'as jamais écrit du code qui fonctionne autrement que par hasard et sur ta propre machine. Donc, au niveau expérience, évite de voir la paille dans l'oeil de ton voisin, ça t'évitera de passer pour un noob.

Tout ton commentaire ne sert à rien. Dans un exposé universitaire, tu aurais raison mais pas là.

Effectivement, si la commande lancée par le popen aurait retourné un stream sans fin de ligne ni 0 binaire, cela aurait été pris en compte (avec un p'tit memset). Cette approche plus dépouillée sert la maintenabilité. Et ta proposition est juste, mais n'aide pas la maintenance.

Mon code fonctionne car les procédures appelées forment un ensemble.

PS : surconfiance avec + de 20 ans d'XP sur le sujet ... mais bien sûr.

Le 09/03/2024 à 09h 24

Contrôle des pipes : la chaine de caractère finit dans un atoi ... qui sortira une valeur nulle au pire


Heu, non, au "pire" il y a un dépassement de buffer. Ni l'initialisation de l'array de caractères sur le stack ni le fread ne peuvent garantir qu'il y aura bien un byte nul pour terminer la string. S'il y a un byte nul, c'est par chance parce que le stack n'a pas encore réutilisé de l'espace déjà initilalisé par un appel précédent.

char Buffer[16] = "";

ça garantit juste que Buffer[0] est le caractère nul, mais ne dit rien des 15 autres, qui vont simplement récupérer ce qui traîne sur le stack.

En absolu, d'un point de vue purement universitaire et théorique ... tu as raison.

Mais, quand tu regardes ce pourquoi la variable va être utilisée, la plage de valeurs recues est très limitée. A vrai dire, j'aurai pu réduire la taille de la variable car la valeur la plus grande est sur 10 caractères, donc un Buffer[11] aurait fait le job.

Et pour finir avec les strings, la commande donnée au popen retourne une string, donc une série de caractères terminée par un 0 binaire. Du coup, je suis sûr d'avoir une string en bon et dûe forme dans le atoi ...

C'est dingue ce que le manque d'XP et une croyance universitaire crasse peuvent faire dire.

Le 07/03/2024 à 10h 10

Contrôle des pipes : la chaine de caractère finit dans un atoi ... qui sortira une valeur nulle au pire. Et la plupart des programmes qui utilisent des pipes font des appels comme ça : pclose(popen("commande","r")); ... surtout utilisé dans les programmes multi-threadées pour remplacer la fonction system() non compatible avec le multi-threading.


Depuis quand "la plupart des programmes" c'est une justification pour faire quelque chose qui s'apparente à une mauvaise pratique ?

Et puis, pas de bol, je ne parlais pas de ça (du aoti). Je parlais d'aller lire un flux sans même savoir s'il est ouvert correctement ou pas.
Contrôle du système de fichiers : surtout sur une arborescence mémoire montée par le noyau (et donc mécaniquement présente sinon tu n'aurais pas même pu te connecter à la machine).


Il est effectivement impossible d'avoir un programme tournant dans un environnement "sécurisé" comme les conteneurs, un chroot, ou dont l'accès à cette partie du système de fichier est interdite via des règles de gestion fine. De même qu'il est impossible que la limite du nombre de descripteur de fichiers ouverts soit atteinte. Tant de certitude...
Un contrôle de malloc unitaire sur des tailles maîtrisées (dépendant du nombre de cores/threads et non d'un paramètre utilisateur) ... t'es gentil. Tu passerais ton temps à faire des malloc / realloc dans des boucles et/ou des malloc dépendants de paramètres utilisateur (donc potentiellement déconnants), là, oui le contrôle des valeurs retournées est obligatoire.


Es-tu certains à 100% que les appels à malloc soient maitrisés ? Moi non. Le premier dépend de la valeur de retour du programme "nproc" : le premier programme "nproc" trouvé qui sera dans le PATH (c'est ça la faille qui ne dépend pas du langage : utilisation d'un programme sans préciser son chemin absolu, permettant de le substitué très facilement). Ton nproc renvoi 100000000 et boum.

En gros, ton programme, je peux lui faire consommer 4Go très facilement si j'en ai envie. Toujours maitrisé donc ?

De plus, tu sembles considérer des ordinateurs avec une mémoire de plusieurs Go. Sache que Linux tourne sur de nombreux terminaux. Par exemple, des routeurs. Celui que j'ai et sur lequel tourne OpenWRT ne dispose plus que de quelques ko (oui oui, quelques ko !).
Effectivement, tu fais bien d'arrêter ... parce qu'enfoncer les portes ouvertes des « bonnes » pratiques trouvées sur wikipedia, n'importe quel script-kiddie en est capable.


Que d'arrogance.... Que répondre à ça, si ce n'est que tu ne sembles même pas comprendre les bases de la sécurité informatique dans les programmes...
Tu n'as même pas essayé de comprendre l'algo (d'ailleurs personne n'en a parlé) et


En toute honnêteté, on s'en fiche de ton algo. C'est pas le but de la discussion. Le but c'est l'apport d'un langage comme le Rust par rapport au C.
pourquoi les contrôles que tu dénonces manquants ne sont pas nécessaires.


Et moi je maintiens qu'ils sont nécessaires. Pas pour le cas "normal" (on est d'accord la-dessus). Mais un attaquant qui cherche à exploiter une faille n'en à rien à faire du cas normal. Ce qui l'intéresse, ce sont les effets de bords exploitables.

Et désolé de te le dire, mais ton programme, pourtant court, présente de nombreuses failles que ton orgueil refuse de considérer.
Maintenant, puisque tu as trouvé des « failles », je te propose de mettre à jour le bout de code et de nous montrer comment il devrait être.


Pas de souci. Je peux. Où puis-je t'adresser mon devis ?

Bon, tu ne fait qu'effleurer la surface et tu campes sur tes positions.
Tu nous fais le chapitre du programmeur absolu qui ne sait pas contextualiser. Et justement, la contextualisation permet d'ajuster le code avec ce qui est nécessaire. C'est un ensemble. Pour faire tourner une application dans un datacenter la composante plateforme de production est très importante (puissance de calcul, système d'exploitation ...) dans la conception du code.

Je vais faire le vieux con et j'aime pas ça : un programme ne tourne pas tout seul, il lui faut un OS et une machine pour fonctionner. Si tu ne tiens pas compte de ces paramètres, aucun programme ne pourra être dans les clous des règles de programmation, à part HelloWorld, et encore, y'a des fois où certains arrivent à faire de la m*rde avec ce dernier. Mais bon, pour ça, il faut avoir un peu plus de bagages que des formations médailles en chocolat de paramétrage de frameworks en java. Tout le monde sait qu'avec Java, on a pas besoin de machine et de système d'exploitation !

Le 07/03/2024 à 00h 21

Y aussi le COBOL. C'est quasiment de l'assembleur, cela dit.

Mouaif ... en Cobol, tu ne manipules pas les entiers et les flottants en natifs, et encore moins les instructions évoluées du processeur.

Le 06/03/2024 à 23h 59

J'ai regardé ton programme, histoire de m'amuser. Je me considère rouillé en C, dans la mesure où je n'en fais plus depuis fort longtemps. Voici ce que j'ai vu, qu'un langage comme Rust ne laisserait pas passer :
- fonction GetNbCore() : aucune vérification sur l'accès au pipe, ni aucune gestion des erreurs.
- fonction read_freq() :
- idem, aucune vérification quant aux accès au système de fichiers
- pas de vérification de la valeur de retour des appels à malloc
- je ne vais pas dire que la mémoire n'est pas libérée, puisque ton application à juste besoin d'allouer de la mémoire au début une fois pour toute au début de l'application. Une fois qu'on est dans la boucle principale, aucune allocation n'est faite.

Je m'arrête là pour l'analyse. Un attaquant aurait de quoi largement faire avec ce petit programme ^^ Surtout qu'il y a d'autres problèmes (mais pas lié au langage lui-même).

Contrôle des pipes : la chaine de caractère finit dans un atoi ... qui sortira une valeur nulle au pire. Et la plupart des programmes qui utilisent des pipes font des appels comme ça : pclose(popen("commande","r")); ... surtout utilisé dans les programmes multi-threadées pour remplacer la fonction system() non compatible avec le multi-threading.

Contrôle du système de fichiers : surtout sur une arborescence mémoire montée par le noyau (et donc mécaniquement présente sinon tu n'aurais pas même pu te connecter à la machine).

Un contrôle de malloc unitaire sur des tailles maîtrisées (dépendant du nombre de cores/threads et non d'un paramètre utilisateur) ... t'es gentil. Tu passerais ton temps à faire des malloc / realloc dans des boucles et/ou des malloc dépendants de paramètres utilisateur (donc potentiellement déconnants), là, oui le contrôle des valeurs retournées est obligatoire.

Et au jeu des vérifications, j'ai aussi oublié de contrôler l'espace disque disponible (ben oui puisqu'il y a des fopen), les T° CPU / carte mère (ben oui, ça boucle) et l'âge du capitaine.

Effectivement, tu fais bien d'arrêter ... parce qu'enfoncer les portes ouvertes des « bonnes » pratiques trouvées sur wikipedia, n'importe quel script-kiddie en est capable. Tu n'as même pas essayé de comprendre l'algo (d'ailleurs personne n'en a parlé) et pourquoi les contrôles que tu dénonces manquants ne sont pas nécessaires.

Maintenant, puisque tu as trouvé des « failles », je te propose de mettre à jour le bout de code et de nous montrer comment il devrait être. Toutefois, il faut que :
* ça compile sans warning,
* ça reste maintenable CàD compréhensible par quelqu'un qui découvre le code pour la 1ere fois (ça c'est pas simple)
* les perfs ne soient pas dégradées : CàD une conso CPU qui ne polluera pas les mesures.

Enjoy !
(d'où le fameux « keep it simple, stupid ! »)

Le 06/03/2024 à 22h 09

Ce projet est vraiment sensé pouvoir démontrer quelque chose ?
Il ne démontre aucune compréhension spécifique de l'architecture d'un ordinateur. Faire des malloc, utiliser le keyword "register" ou savoir comment récupérer les fréquence du CPU via sysfs ça n'est pas de la compréhension du fonctionnement d'un ordinateur. Tu sais coder en C et utiliser certaines API du système Linux.

La remarque de Stéphane sur le fait d'être un Dieu s'attache plutôt à critiquer la remarque qui était que si tu sais comment l'ordinateur fonctionne, alors il est à ta charge de gérer l'intégrité de la mémoire et que, au final, c'est facile de ne jamais faire de bourde puisque tu sais comment ça fonctionne.

Tu es inhumain si tu es capable de guarantir que tu ne commetras aucune erreur de distraction qui aboutiront à des problèmes de mémoire si tu n'as pas l'assitance d'outils (et il en existe en C aussi).
Là aussi ton projet ne démontre rien, sa complexité est trop basse pour prouver que tu as cette qualité qu'on trouve inhumaine ;)

Fais mieux et après on cause !

Et pour peu que tu aies compris les mécanismes codés ... lire 3 lignes et reconnaître une arborescence linux et un ou 2 mots-clés du langage ne fait pas de toi un critique crédible. Tu as regardé la surface et tu es passé à côté de l'algo.

Le 04/03/2024 à 15h 27

« Normalement, un dev sait comment un ordi fonctionne, sait comment un processus vit en mémoire, sait comment le code et les données sont agencées dans l'espace mémoire du process et sait comment le langage ordonne les données en mémoire. » Ça, ce n'est pas un dev, c'est un Surhomme, voire un Dieu Vivant venu de l'espace. Les devs que je connais sont humain·es et ont des capacités cérébrales finies (d'où l'importance du rapport de la Maison-Blanche, avec lequel je suis d'accord).

Du coup, que penses tu de ce petit programme de monitoring des fréquences CPU en C, écrit le nez au vent sans notes, juste avec le schéma de données en tête ? :D

https://github.com/TNZfr/watchfreq

Edit : Eh bé ... 22 clones du dépôt en 5 heures. :)

Le 04/03/2024 à 09h 37

Ceci dit pourquoi ça serait au langage de porter la notion d'intégrité de la mémoire ?

Normalement, un dev sait comment un ordi fonctionne, sait comment un processus vit en mémoire, sait comment le code et les données sont agencées dans l'espace mémoire du process et sait comment le langage ordonne les données en mémoire.

A quoi bon bouffer des perfs en compil et en execution pour faire des contrôles inutiles dans la mesure où le dev a déjà fait le travail ?
:D

Le 04/03/2024 à 09h 32

Et les perfs ?
Je n'ai jamais entendu parler du fait que Rust serait plus rapide que le C !?

Et pour faire plus rapide que le C, c'est l'assembleur ... et là, les « framework for monkeys » y'en a pas.

Le 04/03/2024 à 09h 29

Un des problème de l'interface chaise-clavier, c'est qu'elle ne fait pas toujours attention à la gestion de sa mémoire. Sauf que C (et C++) n'y font pas pleinement attention non plus. C'est une des problématiques à laquelle Rust tente de répondre : faire des vérifications à ce niveau, dès la compilation.
Ça ne résoud pas tous les problèmes induits par l'interface chaise-clavier mais au moins ces problèmes très "technico-techniques" de gestion de mémoire.

Quite à faire des vérifications à la compil parce que le dev est un légume, dans ce cas, passe directement à l'ADA.

Ce n'est pas bien compliqué de se représenter les cycles de vie de la donnée et de sa représentation en mémoire. Si tu sais faire ça, il est alors possible d'avoir un binaire opérationnel dès la 1ere compil.

Mais bon, aujourd'hui, on apprend à paramétrer des framework et non à programmer.

Microsoft Copilot

Le 07/03/2024 à 10h 19

À la fois, si on part de ce principe,
-> on interdit les couteaux (ou on écrit dessus "les couteaux tuent")
-> on interdit les voitures, perceuses ....
Et aussi les éditeurs de code parce que ils n'ont pas de garde-fou et que l'on peut écrire du code malicieux avec

Pour quel objectif je dirais ?
Est ce que les produits finaux peuvent être mis entre toutes les mains ?
L'utilisateur final doit il être dégagé de toutes responsabilité ? (Chez Apple, c'est ce qu'il se passe)

Est ce que MS se rend compte de l'aspect boite de pandore de copilot ? Le paramètre nature humaine est l'un des plus difficiles à gérer voire le plus difficile. Quand on voit la quantité de code nécessaire pour le contrôle de saisie.

Le 07/03/2024 à 08h 19

Je vois ce que tu veux dire ... mais n moment dans la chaîne humaine, il faut bien un maillon à l'esprit responsable pour éviter ce genre de dérives.

Refiler un outil sans garde-fous à des irresponsables ne peut que générer des problèmes. C'est du niveau « idiocracy »

Le 07/03/2024 à 08h 15

Pas mieux !
Le pire dans l'affaire c'est la demande du service juridique ... :keskidit:

Visiblement, CoPilot doit sortir contre vents et marées, prêt ou pas, avec sous sans âge minimum et surtout le plus vite possible avant qu'il y ait un cadre juridique sur le sujet.

MS n'a pas un comportement responsable avec cette technologie nouvelle où le champ du possible est bien compliqué à périmètrer.

Le 05/03/2024 à 10h 30

A vrai dire, pour faire bouger Tesla, faut taper sous la ceinture du père Musk.
CàD lui plomber les cours de bourse de Tesla en pourrissant X/Twitter et en revendant massivement les actions Tesla. Les fonds d'investissements peuvent reporter leur capitaux sur d'autres valeurs boursières. Ainsi des ventes massives d'actions Tesla feront mécaniquement descendre le cours ... et ça, ça fait sortir le Musk du bois.

Starlink

Le 19/01/2024 à 18h 29

Non, c'est une offre pro ou même pour les FAI.

À la limite à comparer au tarif de collecte Internet en France.

Ben non, c'est l'offre grand public.

Le 19/01/2024 à 16h 35

Si tu as encore de l'électricité.
Linus Torvald a subi une tempête de neige : plus d'électricité ni d'internet pendant 4 ou 5 jours.