votre avatar

33A20158-2813-4F0D-9D4A-FD05E2C42E48

est avec nous depuis le 13 novembre 2014 ❤️

1718 commentaires

Le 19/10/2022 à 09h 07

Alors qu’il aurait suffit de simplement mettre un GUID pour mettre tout le monde d’accord :D

Le 17/10/2022 à 09h 15


(reply:2099262:NiDé)


Pas de quoi se plaindre… Y’a quelques barbarismes, mais c’est franchement bon comme traduction:




Que peut-on attendre des éditeurs et autres titulaires de droits d’auteur avant de pouvoir demander au fournisseur d’accès de bloquer des sites Internet dans le cadre de la lutte contre les copies piratées ? C’est la question centrale d’un procès entre des éditeurs universitaires d’Allemagne, de Grande-Bretagne et des États-Unis et Deutsche Telekom. La Cour fédérale de justice(BGH) n’a pas donné de réponse définitive dans un jugement annoncé jeudi. Mais ceci est au moins clair : les éditeurs scientifiques, dont Springer-Verlag, qui se réfèrent au paragraphe 7, paragraphe 4, phrase 1 de la loi sur les télémédias, n’ont pas réussi à convaincre Deutsche Telekom de bloquer le réseau contre les bibliothèques fantômes et les moteurs de recherche. pour les livres et articles scientifiques « Lib-Gen » et « Sci-Hub ». Les éditeurs doivent d’abord passer par la procédure judiciaire ardue pour agir contre la publication d’œuvres protégées par le droit d’auteur par “Lib-Gen” et “Sci-Hub”. Et cela via le détour de l’hébergeur suédois, qui met à disposition sur ses serveurs les contenus de “Lib-Gen” et “Sci-Hub” (Az. I ZR 11121).


Le 16/10/2022 à 06h 31

Encore un malade mental.

Bon, alors…



Lorsqu’on écrit un texte, on soigne sa présentation. Ce n’est pas pour éviter de froisser quelques rigides, c’est par simple politesse. La politesse est quelque chose qui se perd.



La grammaire et l’orthographe, elles ne sont pas là pour faire joli. Elles sont là pour que les gens qui lisent le texte puissent lire de manière fluide, car les accords en genre, nombre ou personne (et tout le reste d’ailleurs) sont là pour indiquer au cerveau que ce qu’il lit est cohérent. Des phrases correctement agencées se lisent aisément et fluidement. Des fautes d’accord font buter le cerveau à chaque mot.



Ne pas faire d’effort pour soigner ces points, c’est simplement dire aux gens qui nous lisent “démerdez-vous et faites des efforts pendant la lecture parce que moi je n’ai pas la moindre intention d’en faire pendant l’écriture”.



Moi aussi je fais des fautes, mais au moins je ne me vexe pas quand on me le fait remarquer. J’ai fait plusieurs bourdes dans ce texte en l’écrivant, j’espère que j’ai tout corrigé quand je l’ai relu.

Le 13/10/2022 à 08h 42

A bird in the hand is worth two in the Bush Obama Trump.

Le 10/10/2022 à 07h 17


(quote:2098039:Idiogène)
La divergence du champ magnétique est nulle.


T’imagines la tronche du premier principe de la thermodynamique si ce n’était pas le cas ?

Le 08/10/2022 à 05h 45


(quote:2098028:Idiogène)
Pas clair. On suppose que l’espace-temps est courbe et donc l’effet de marrée ou la limite de roche ne contredisent pas localement non plus la validité de l’équivalence. (si c’était la question)


C’est l’inverse, plutôt, non ? Si le principe d’équivalence n’est pas respecté, alors la relativité générale est fausse puisqu’elle part explicitement de cette hypthèse.




Et que le temps coule de sources sous une douche écossaise,


Ockham était écossais et se rasait sous la douche. Voilà qui explique pourquoi il a énoncé le principe de parcimonie.

Le 07/10/2022 à 14h 58

Si la source créant le champ gravitationnel est a l’infini, le champ est nul en tout point puisque sa magnitude décroît avec le carré de la distance…

Le 07/10/2022 à 07h 20

C’est un peu rassurant de savoir que pour accéder à une machine’il faut un machin quelconque qui tourne sur le PC distant, qu’il soit un daemon, une application lancée pour l’occasion, ou un service de l’OS, non ?



Et quand tout le reste a raté, il reste encore ce bon vieux ftp, ça marche à tous les coups.



Ou alors…



youtube.com YouTube

Le 07/10/2022 à 05h 41

À ma décharge (on est vendredi, je peux) je ne suis pas abonné donc je n’avais pas lu…

Le 06/10/2022 à 08h 01

Désolé, on n’est pas vendredi, mais je ne résiste pas…



Ne faudrait-il pas renommer cette mission en FART plutôt ?

Le 04/10/2022 à 10h 45

Ce truc qui ne sert que pour certains processeurs/chipsets d’il y a 20 ans est quand même imposé à tous les processeurs et cela réduit à la fois leurs perfs et leur efficacité énergétique ?
Ils ont réussi à open-sourcer même les mauvaises pratiques de certains spécialistes du closed-source :bravo:

Manifestement si on lit le diff, le noyau utilise déjà un moyen plus efficace pour les Intel “récents” (ie moins de 15 ans… Ne restent impactés que les AMD dans certains cas de figure (bursts cycliques d’activité)



Par ailleurs, il est difficile par définition d’établir si le logiciel closed-source dont tu parles a le même problème ou si cela y est résolu depuis 10 ans :D

Le 03/10/2022 à 16h 02


(quote:2096809:alex.d.)
Ok, donc les brevets dont il est question dans cet article, toi aussi tu es d’accord pour dire que c’est de l’abus. Tu vois que nous sommes d’accord, finalement.


Ben, évidemment qu’on est d’accord que les brevets sont utilisés abusivement, je n’ai jamais dit le contraire. Comme plein d’autres choses dans la société, ce qui ne veut pas dire que ça ne sert systématiquement à rien, un exemple bateau étant la marijuana qui est le plus souvent utilisée de manière abusive, bien qu’il existe des usages thérapeutiques, et dont les personnes qui en ont besoin éprouvent des difficutlés à justifier.




En pratique, les brevets logiciels, ce n’est pas ça. Cite-moi un seul brevet logiciel qui ait vraiment demandé du développement.


Je n’ai pas d’exemple concret, je l’avoue. Mais on peut imaginer que dans une utopie, l’algorithme complet de compression MPEG soit brevetable, précisément comme tu le dis parce qu’il a fallu travailler à assembler une fft, un détecteur de mouvement, machin, bidule, trouver les bons compromis entre taux de compression et perte de qualité, etc. C’est bien un assemblage de choses qui sont purement logicielles. Et on ne peut pas simplement mettre un droit d’auteur sur la version en C, puisqu’il “suffirait” alors de l’implémenter en Go pour pouvoir l’exploiter sans payer de compensation…



Et puis, c’est quoi un logiciel ? En quoi est-ce différent d’un ASIC par exemple ? Les deux s’expriment par un ensemble d’instructions dans un langage de programmation qui est compilé.




ce n’est pas raisonnable


Je vais finir par croire qu’on ne met pas la même définition sur ce mot. Pour moi, raisonnable = qui fait appel à la raison, dont les choix ont été mûrement réfléchis. Par exemple, refuser d’être payé moins que 10000€ pour une prestation de 5 minutes est raisonnable si elle fait gagner un million à ton client. C’est dommage pour le client qui aurait besoin de la même prestation pour gagner 9000€ mais ça n’en est pas moins raisonnable… Mesquin, mercantile, rapiat si tu veux, mais raisonnable. Que je sache, aucune chambre de l’hôtel de Crillon n’est bradée à 50€ la nuit pour les RMIstes, et pourtant leur modèle économique est raisonnable.



J’ai l’impression que tu n’y mets que la notion de “sans exagration” : je n’ai pas légitimité à demander plus que le SMIC parce que je n’y ai travaillé que 5 minutes…

Le 03/10/2022 à 10h 50


(quote:2096723:alex.d.)
Seulement les brevets logiciels. Un brevet sert à protéger une invention qui a demandé de l’investissement, du développement, et qu’il est légitime de protéger


Expérience de pensée.



En quoi une société qui a investi de l’argent pour développer une solution révolutionnaire mais purement logicielle à un problème de société récurrent aurait-elle moins de légitimité à protéger son investissement qu’une société qui a dépensé une somme identique pour développer une solution à base d’une succession de réactions chimiques ?

Le 03/10/2022 à 10h 32


en revanche, les brevets logiciels concernent pour la plupart des algos qu’un étudiant peut réinventer en 20 minutes
Tu constateras que rien que la liste des brevets nécessaires à l’exploitation de H.264 fait 53 pages.


Je ne vois dans ces exemples que des abus (malheureusement légaux) au concept de brevet…




Tout aussi valable que Steve Balmer qui qualifiait le logiciel libre de cancer.


fr.wikipedia.org Wikipedia

Le 03/10/2022 à 08h 01

C’est quand-même fabuleux cette capacité à savoir écrire mais pas lire… Ou de critiquer mon sens du raccourci tout en ne citant que des parties hors contexte.



Donc je rappelle que notre contentieux porte exclusivement sur l’emploi de “non raisonnable” (et toutes les connotations négatives attachées à ce terme) pour qualifier les agissements du détenteur d’un brevet ou d’un droit.



Évidemment que les brevets sont des contraintes ! Évidemment que breveter “un moyen d’additioner deux nombres” est une hérésie ! Tout comme breveter “un boîtie rectangulaire avec des coins arrondis”. Dans les brevets comme dans pas mal de choses, ce n’est pas l’existence du concept qui est dommageable, mais son abus.



Si un brevet protège une réelle invention, il y a très peu de chances que, comme le dit l’article de la fsf




Every time a programmer develops new software, it is almost inevitable that they will infringe not one, but many patents


Bah non, il est extrêmemement rare qu’une société développe dans son coin, et par hasard, exactement l’algorithme MPEG-2, même à quelques détails d’implémentation près. C’est en tout cas nettement plus rare que les fois où une entreprise d’un pays peu regardant duplique une invention pour inonder le marché de copies à deux balles… Toute ressemblance avec un pays de l’est asiatique serait évidemment fortuite.



La suppression pure et simple de tout brevet / licence / copyright sur le logiciel et lui seul est extrêmement dommageable à l’ensemble des petits éditeurs de logiciels qui sous-traitent des solutions de niche pour de grands groupes qui vendent des solutions hybrides (exemple automates industriels spécialisés qui coûtent 10 millions de $ pièce mais inutilisables sans le logiciel spécialisé de pilotage), et pour qui une licence libre (telle qu’applicable à des logiciels “grand public” comme un OS ou une librairie de chiffrement https) n’est pas adaptée à la réalité du marché (bah non, parce que la “percolation” des licences libres ne s’attaque pas au matériel…), qui est qu’ils sont bien obligés de répercuter les coûts de développement quelque part. Mais bon, je suppose que la réponse “yaka faire payer le support” est la solution qui vient à l’esprit en premier (*). Puis la double licence () C’est marrant, si ça marchait pour le libre, pourquoi a-t-on du pondre en urgence la licence AGPL ?



On va passer sur le fait que le deuxième article (et donc David Balto) ne parle pas des brevets eux-mêmes mais de “Patent pools”, ce qui n’est pas du tout la même chose qu’un brevet ; et notamment dans le cas MPEG ça ressemble plus à un montage mafieux pour abuser des brevets qu’un réel problème avec l’existence même de brevets.



(*) Bah oui, si on fait payer le support, on sera tenté d’écrire un logiciel qui a besoin de support. Évidemment que si on écrit un logiciel de qualité qui n’a pas besoin d’explications pour être utilisé, ben on n’est pas payé. Un modèle économique dans lequel on a plus intérêt à écrire de la merde que des trucs de qualité, ça on peut le qualifier de non raisonnable.



() Mais quelle peut bien être la motivation a fournir une verson libre pour un usage non commercial, vu que par définition le seul usage possible du logiciel est de vendre un équipement industriel au même prix que l’homme qui valait trois milliards ?

Le 02/10/2022 à 06h 17

Puisqu’on parle de raccourci, tu saisis que “ce n’est pas raisonnable d’être incompatible avec le libre” est une opinion qui peut être perçue comme très clivante ? Qu’elle implique grosso modo que le libre détient le monopole de la raison, et que tous les éditeurs qui optent pour un système non libre (comme l’est accessoirement tout le reste de la société) devraient revoir leur copie pour être plus concilants ? Qu’on croirait presque entendre rms ?



Attention, hein, je te reconnais le droit de l’avoir et de l’exprimer. Mais avoue que cette opinion ressemble à l’envie d’imposer une contrainte morale à toute l’industrie du logiciel.



Bref, comme je l’ai dit, cette pratique est certes dommageable pour l’utilisateur final, mais il reste raisonnable de demander une redevance pour utiliser une technologie qui a coûté bonbon en développement, le modèle économique du libre (essentiellement - faire payer le support - oui bon encore un raccourci) s’appliquant plus difficilement sur du firmware que sur des logiciels à large diffusion.



Et ce d’autant plus qu’il n’est même pas certain que l’éditeur réclame quoi que ce soit, si ça se trouve la redevance étant déjà incluse dans le prix du matériel.

Le 01/10/2022 à 08h 10


(quote:2096447:alex.d.)
Incompatible avec le logiciel libre, je n’appellerais pas ça “raisonnable”.


Ah, voici une idée nouvelle, la licence libre devrait percoler aussi dans l’autre sens :fou: . (Remarque préliminaire : je suis pour les logiciels libres et contre les brevets logiciels génériques - mais je suis incapable de décrire toutes les subtilités de mon point de vue en moins de 15 pages).



Un acteur du libre a le pouvoir de contraindre (*) les utilisateurs des produits qu’il fournit, pas de contraindre les fournisseurs des produits qu’il utilise.



Si un “truc” (licence, brevet, interdiction d’exportation, que-sais-je d’autre) est incompatible avec la notion de logiciel libre, c’est au logiciel libre à s’adapter (et potentiellement s’abstenir d’utiliser le truc) et pas l’inverse. C’est dommage certes pour le libre, mais le fournisseur utilise bien ici un modèle économique raisonnable et n’a rien à se reprocher…



Si j’osais une comparaison risquée, je dirais que ça revient un peu à reprocher au métro de Paris d’être payant parce que celui de Vierzon Pyongyang est gratuit. Oui, je sais que ça va partir en sucette.



(*) Je parle évidemment des contraintes quant à la cession des libertés vers les autres utilisateurs. Voir le post 47 de fdorin.

Le 20/09/2022 à 08h 12

Tiens, j’y ai réfléchi un peu est si je devais créer ma propre solution:




  • Tous les mots de passe sont construits avec un préfixe connu, que je dois retenir, et qui n’est pas stocké dans le fichier.

  • Le suffixe est construit comme un entier de 80 bits minimum, représenté en base 62. Je ne peux pas choisir ce suffixe, il est forcé par mon algorithme.



Pour reconstituer le suffixe :




  • Je stocke dans un fichier chiffré une clé de salage.

  • Je demande à l’utilisateur un mot de passe maître.

  • Je hache l’identité du site, le sel et le mot de passe maître. Dix mille fois minimum, bien sûr.

  • Les 80 derniers bits du hash sont mon suffixe, que j’exprime sous forme de lettres et chiffres.

  • Je reconsistue mon mot de passe en préfixant par le préfixe connu.



Si je donne un mauvais mot de passe maître, le hash sera incorrect, mais le déchiffrement ne ratera pas. L’algorithme me proposera donc un mot de passe, mais il sera incorrect. Un attaquant ne peut pas savoir si le mot de passe est correct ou non sans essayer de se logger avec (et il doit en plus connaître mon préfixe). Il ne peut donc pas simplement bruteforcer le fichier en local, il doit essayer le mot de passe sur le site, et il se fera probablement bloquer après x tentatives.



Avis ?

Le 19/09/2022 à 13h 10

J’suis bien conscient de tout ça, mais y a-t-il encore quelqu’un qui ose faire de la crypto sans utiliser un hachage lent pour dériver la clé ?



Mais de fait je n’arrive pas à obtenir une spec à jour de l’algo de chiffrement (j’ai trouvé celui de PDF 1.3, c’est à pleurer - mais bon il était limité à 40 bits par les lois de l’époque). Après, quand je lis “MD5 et RC4 appliqué plusieurs fois” et autres “algorithmes gardés secrets pour plus de sécurité”, je continue à frémir.



Bon, bref, OTAN pour moi, le chiffrement des PDF semble bel et bien daubesque.

Le 19/09/2022 à 09h 57


JnnT a dit:


un document PDF en lecture seule […] a cassé le code en quelques minutes.


J’avoue avoir un peu de mal à comprendre le principe d’un PDF en lecture seule protégé par un mdp (*). Si tu peux le lire, il est donc en clair, et tu peux toujours copier son contenu dans un autre document, même sans connaître le mdp… À mon sens, c’est simplement cette copie du clair dans un autre document initialement vierge que le service en ligne a faite…



(*) Je comprends par contre la notion de signature électronique, qui garantit que le document n’a pas été modifié après qu’il a été signé, mais c’est une toute autre histoire. Et là aussi ça ne t’interdit pas de copier le texte dans un autre document, ça t’interdit juste de te faire passer pour le signataire d’origine.

Le 19/09/2022 à 09h 47


Sustri a dit:


60 pages de mots de passe ??? :fou:


En Comic Sans. Un éventuel attaquant devient malade à la page 3 et vomit sur le reste des pages, les rendant illisibles :D

Le 19/09/2022 à 09h 39


BlackLightning a dit:


Si j’en crois la page Wiki en anglais, c’est simplement de l’AES256. Il n’y a aucun mention sur cipher block ni sur la dérivation de clé. Au vu des performances d’un JTR sur l’AES, ça donne pas très confiance sauf si un vrai mot de passe est utilisé où s’il y a plus derrière du coté du lecteur.


Hmmmm Moui. Si j’en crois Kaspersky,



https://www.kaspersky.com/blog/36c3-pdf-encryption/33827/



Il y a moyen de véroler un pdf pour exfiltrer les informations, encore faut-il convaincre la victime d’ouvrir le fichier vérolé. Encore une fois, ce n’est pas le chiffrement lui-même qui est attaqué, mais tout ce qui tourne autour et qui n’est pas maîtrisé : une fois que le texte est déchiffré en mémoire, un attaquant y a accès par des moyens détournés en injectant du code.



Mais rien ne montre qu’il y a moyen de casser le chiffrement AES lui-même si tout ce dont tu disposes est le pdf chiffré (avec un mot de passe raisonnable, évidemment, pas password01 :D).

Le 19/09/2022 à 08h 45


ilink a dit:


La base de données est chiffrée (bien mieux que votre pdf).


Probablement pas. Le chiffrement d’un PDF n’a pas de raison objective d’être moins bon que celui d’un gestionnaire de mots de passe.



Par contre, c’est tout le reste autour qui risque d’être mieux contrôlé : un gestionnaire de mots de passe, par exemple, va conserver en mémoire (flaggée explicitement comme “ne pas copier dans le fichier de mémoire virtuelle”) le mdp en clair juste le temps de l’exploiter, et garder tous les autres chiffrés. Un PDF sera probablement déchiffré d’un coup et gardé intégralement en mémoire pendant tout le processus d’affichage, avec un risque non négligeable que le texte clair se retrouve dans le fichier de mémoire virtuelle.

Le 19/09/2022 à 11h 08

Alexa peut déjà acheter à notre place vu qu’elle est connectée a notre compte Amazon. Tout ce qu’elle a à faire c’est de nous faire croire qu’on l’a fait nous-même.

Le 18/09/2022 à 14h 14

Bon, ben un coup dans l’eau alors… De mon côté j’essayais de permettre une notation pipe :



Console.In | double.Parse | Math.Sin | Console.Out;


en essayant de redéfinir l’opérateur | :



public static IEnumerable<R> operator | (IEnumerable<T> Source, Func<T,R> Transform)
public static IEnumerable<R> operator | (TextReader Source, Func<string,R> Transform)
public static void operator | (IEnumerable<T> Source, TextWriter Sink)


Mais il y a tellement de restrictions sur la définition d’opérateurs que c’est un échec sur toute la ligne. Je devrais essayer en C++ qui est beaucoup plus permissif avec les opérateurs.

Le 18/09/2022 à 07h 00


fdorin a dit:


Pas de souci. L’échange est constructif donc ça me va ;)


C’était mon intention et je suis ravi que tu le prennes ainsi.




:eeek2: Ah non, pas ça. Pas ce genre d’ignominie !!! Absence de déclaration et changement de type :craint: L’amateur de typage fort que je suis ne peut approuver.


Affirmatif. Ce ne serait évidemment disponible que dans le REPL (ou via une option dans le csproj, comme les types nullables - désactivé par défaut évidemment). Ne pas pouvoir redéfinir une variable ou fonction dans le REPL quand on s’est trompé serait une limitation trop forte…




Ca par contre, c’est une idée qui me plait :yes: Souhaites-tu le proposer comme idée sur le dépôt dédié à ça ? Ou puis-je le faire ?


Vas-y. Je ne suis pas coutumier de la procédure (envoie-moi le lien de l’item pour que je puisse monitorer l’avancement)




Si cela peut te rassurer, je pense qu’il sera bientôt possible de pouvoir utiliser C# directement en tant que langage de script. Avec .NET 6, on a vu apparaitre les “top-levels statements”, permettant d’écrire un hello world en une seule ligne.


Je suis fan des top level statements en effet, et j’ai beaucoup d’utilitaires que j’écris pour être utilisés par un dotnet run.




Roh, XML n’est pas un langage de programmation ? Heureusement qu’il y a HTML et CSS pour rattraper le coup (ironie inside :D)


Pas mieux. Ah si, YAML qui a les mêmes soucis…




Maintenant, on peut reprocher beaucoup de chose à Microsoft, mais ils font un travail assez incroyable sur la compatibilité. Donc, à mon avis, à cause de cela, cela ne sera pas demain la veille que cela changera :frown:


Je tape sur le clou: Powershell n’avait aucune compatibilité à maintenir, c’était une occasion en or.




Le C#iste que je suis approuve. Mais je préférerai quand même du brainfuck (ou du Ook histoire de pimenter les choses et que cela soit plus verbeux :pastaper: )


Personnellement j’avais opté pour COBOL.



ALTER PROJECT TO INCLUDE PACKAGE NAMED "Microsoft.Extensions.Linq"
WITH VERSION ABOVE OR EQUAL TO MAJOR 3 MINOR 4 RELEASE 0
WHENEVER ANY FILE CONTAINS REFERENCE TO "Microsoft.Databases.Postgres"
UNLESS PACKAGE NAMED "React.Dot.Net" IS ALREADY INCLUDED.
STOP RUN.

Le 17/09/2022 à 19h 22

On est d’accord qu’on n’a pas les mêmes attentes. Je vais m’autoriser à continuer à exposer les miennes.




Tu veux sans doute dire PowerShell ;)


Exactement ! La contrainte de pouvoir utiliser C# dans un REPL dans le but essentiel de configurer un Windows aurait eu des effets bénéfiques sur la syntaxe du langage, pour le rendre encore plus fluide.



Par exemple autoriser à préfixer un nom de variable par $ pour pouvoir l’assigner et la réassigner sans la déclarer. Même changer son type…



Par exemple pouvoir utiliser une variable nommée \( dans une expression, qui transformerait cette expression en lambda sur la variable \) - En linq pouvoir faire



.Where ($.size > 0) 


au lieu de



.Where (f => f.size > 0)




bash


Contrairement à ce que j’ai pu laisser penser, je ne suis pas particulièrement amoureux de la syntaxe bash non plus, là aussi c’est un foutoir sans nom, comme tous les langages de script shell en général évidemment.



Je me désole que l’intention de Powershell était de donner un coup de pied dans la fourmilière, mais qu’on s’est contenté d’un dépoussiérage minimal. Tiens, par exemple, dans ton exemple “simple” justement, le répertoire destination est construit en concaténant des strings, le truc universellement reconnu comme étant une source d’arrachage de cheveux (dois-je rappeler ces Windows qui cessent de marcher parce qu’un batch a malencontreusement créé un fichier “c:\Program” en voulant créer un fichier dans “c:\Program Files\” ???).




  • Que se passe-t-il quand on essaie de déplacer un fichier qui n’a pas d’extension ? Si ça se trouve il les met dans un sous-répertoure nommé “null”…

  • Tu es sûr que les double-quotes dans l’expression Trim ne doivent pas être précédées d’un escape ? L’expression est elle-même dans une string double-quotée…

  • Pourquoi le paramètre -Path n’est-il pas lui aussi dans des double quotes ?

  • Tu es sûr que ça marche si l’extension contient des espaces ?



Toutes ces choses ancillaires sont clarifiées et inambiguës dans la version C#. C’est dommage de s’arrêter à la moitié du chemin dans l’objectification. En pratique tu manipules certes des objets, mais toujours en passant des strings comme paramètres ; c’est ballot, c’est justement là que les langages de script contiennent le plus de bugs en cas de paramètres vides ou contenant des espaces. Ca aurait été l’occasion de faire ça proprement.




Pourquoi privilégier le C# à un autre langage ?


Je ne privilégie pas C# à un autre langage. Je privilégie un vrai langage de programmation, n’importe lequel à du XML dans lequel on a fait entrer des structures conditionnelles au forceps.



Tout ce que tu dis de XML (et qui est très juste, évidemment) serait tout aussi valable si on avait choisi un autre langage structurant. Un gars qui écrit sont projet en F# doit de toute façon “comprendre” la structuration de son fichier projet qui est déjà dans un autre langage que celui qu’il utilise pour le code, donc en pratique ça ne change rien. Et puis j’ai proposé C#, pas APL ou Malbolge :D

Le 17/09/2022 à 14h 01

Et pour compléter une argumentation déjà longue,



en.wikipedia.org Wikipedia



Que je traduis très librement par




Tout programme qui se veut configurable finit par inclure une syntaxe absconse pour régler un problème qui est déjà réglé par un langage de programmation existant.


Le 17/09/2022 à 13h 50


fdorin a dit:


Que reproches-tu à la syntaxe ? La syntaxe “classique” pointée est utilisable.



Il existe des syntaxes complexes pour gérer les cas complexes, notamment lorsqu’il y a des collections, où la notation pointée est insuffisante.


Pourquoi la notation pointée serait-elle insuffisante ? En C# tu as de collections et tu les manipules en notation pointée via les extensions Linq, et rien ne t’empêche d’ajouter des extensions pour exécuter une même fonction sur tous les éléments (je pourrais écrire une fonction Cos qui s’applique sur un itérable de flottants et renvoie un itérable de flottants qui sont les cosinus des éléments…)



Pourquoi gérer le même problème par deux méthodes différentes ? Pourquoi ne pas ajouter les petits détails qui manquent à la syntaxe C# pour la rendre encore plus “fluent” sur les collections ?




C’est-à-dire ? Car je ne vois pas du tout de quel problème tu parles…



Un pipe sert à connecter deux manipulations ensembles (transmettre la sortie standard d’un programme vers l’entrée standard d’un autre). La notation pointée permet d’accéder directement aux propriétés et méthodes d’un objet.


La notation pipe permet de relier entre eux deux cmdlets qui se veulent indépendants, mais en pratique le cmdlet récepteur doit être un minimum au courant de ce qu’il reçoit.



Imaginons que j’aie une commande Get-Machins (qui renvoie des machins) et Get-Bazars (qui renvoient des bazars) et que ces deux choses soient écrits par des personnes indépendantes. Imaginons maintenant que les machins et les bazars puissent tous deux être frobulés. Avec une notation pipe, je vais être obligé d’avoir deux cmdlets avec des noms différents Frobulate-Machins et Frobulate-Bazars :



Get-Bazars | Frobulate-Bazars
Get-Machins | Frobulate-Machins


tandis qu’avec une notation pointée, le typage va désambiguer naturellement les deux fonctions malgré qu’elles ont le même nom. Je ne risque pas de me tromper en appliquant la mauvaise fonction de frobulation. Je n’ai pas besoin de répéter le type.



Bazars.Get(...).Frobulate()
Machins.Get(...).Frobulate()



J’ai l’impression de lire les propos d’une personne restée dans les années 90-2000. Microsoft a quand même bien changé et parler de non-aboutissement me semble plus refléter d’un aveuglement idéologique que d’une réelle argumentation… :craint:


Non, frustration. À chaque problème similaire, chaque produit basé sur .Net vient avec une solution ad-hoc plutôt que d’une fois pour toutes exploiter un tronc commun. Microsoft possède une solution simple propre et efficace à un nombre incroyable de cas et s’obstine à ne pas l’utiliser: c#



C# possède une syntaxe homogène qui permet d’exprimer des conditions, des boucles, des filtres, des extractions, des transformations de tous types de données possibles et imaginables.



Ben non, pour les fichiers csproj on réinvente des tags xml conditionnels, des ItemGroups, au lieu d’écrire



if (Target.Platform == Platforms.X64) {



Packages.Include("System.Text.Json");
Packages.Include("System.Text.Xml");


}



qui serait 1000 fois plus lisible.



Ben, non, pareil pour Powershell, avec des syntaxes ad-hoc pour effectuer des transformations un peu poussées. Si en c# je veux déplacer tous les fichiers d’un répertoire dans un sous-répertoire en fonction de l’extension, je pourrais écrire :



CurrentDirectory.Files().MoveTo(f => CurrentDirectory.Subdirectory(f.Extension.TrimStart(“.”))



Il “suffit” ensuite de peaufiner un peu du “syntactic sugar” pour éviter de devoir écrire “currentdirectory” et l’argument de la lambda, et on arriverait facilement à :



Files().MoveTo(Subdirectory($.Extension.TrimStart(“.”))



Ben en syntaxe pipe de Powershell, je n’ose pas imaginer comment on peut bien faire. Ha oui, merci SuperUser.com :



\(extensions = (Get-ChildItem -Path \)sourceFolder -File | Group-Object {\(_.Extension.TrimStart(".")}).Name
foreach (\)
ext in $extensions) {



$targetDir = Join-Path -Path $sourceFolder -ChildPath $ext
robocopy $sourceFolder $targetDir "*.$ext" /MOV /NFL /NDL /NJH /NJS /NC /NS /NP /R:0 /W:0 > $null


}



Euh… “Join-Path -Path -ChildPath” ??? Honnêtement ? C’est de l’aveuglement que trouver ça ridiculement verbeux et inabouti ???

Le 16/09/2022 à 15h 02


fdorin a dit:


Ce qui est rigolo, c’est que les “détracteurs” de PowerShell sont… les utilisateurs de bash ! (et compatible).


Non, je suis détracteur de PowerShell parce que je suis programmeur. Et le programmeur que je suis se désespère de voir un concept puissant (les objets) martyrisé par une syntaxe à la con. Il existe déjà une syntaxe pratique pour manipuler des objets, mais elle est complexifiée à mort parce que Powershell ne sait pas sur quel pied danser et tente de montrer des objets en les traitant à la ligne de commande comme s’il s’agissait de simple collections de records.



On se ramasse des noms de cmdlets à dormir à la rue parce que notamment la notation pipe ne sait pas correctement gérer le polymorphisme.




on peut utiliser toute la puissance du .Net pour développer très facilement ses propres CmdLets


Bah voui, alors pourquoi ne pas une fois pour toutes proposer un langage de programmation cohérent qui permet tout ? Pourquoi devoir jongler d’un côté avec la notation “pipe” et d’un autre la notation pointée pour extraire les données ?



Voilà, c’est ce non-aboutissement typiquement microsoftien que je reproche à Powershell.

Le 15/09/2022 à 14h 32

Non, c’est une blague. En vrai c’est Set-Location, et tu peux utiliser le raccourci cd comme sous bash

De fait j’exagère comme à mon habitude, mais c’est quand-même verbeux dès que tu veux faire quelque chose d’un peu complexe comparé à tout ce qui existe.

Le 15/09/2022 à 13h 34

Microsoft aurai peut être du partir d’un Nix modifié comme l’a fait Apple. Ça aurait fait moins usine à gaz :troll:

Déjà s’ils n’avaient pas pondu powershell et réutilisé bash plutôt ? Mais qui est l’andouille qui a trouvé que taper Change-The-Current-Directory-To –Target=“x’ c’était mieux que cd x

Le 15/09/2022 à 13h 27


(reply:2093578:33A20158-2813-4F0D-9D4A-FD05E2C42E48)


du coup chaque shell à son propre langage, terminologie ?
on peut faire à peu prêt les mêmes choses dans tous les shell mais les invit de commandes pour faire ces choses diffère d’un shell à l’autre ?



Ma seule expérience en shell c’était d’installer des jeux en DOS sur des 490dx et du winget sur PowerShell…..

Oui. Par exemple dans un shell ms-dos tu vas taper “dir” pour avoir la liste des fichiers du répertoire courant, tandis que dans un bash ce sera “ls” pour faire la même chose. Et en powershell c’est encore une autre commande dont le détail m’échappe (Get-Files ?).



Beaucoup de shells offrent cependant des alias, donc taper “dir” dans ms-dos va faire dir, dans un bash ce sera un alias de ls, et dans Powershell ce sera un alias de Get-Files.

Le 15/09/2022 à 11h 52

Une explication (en anglais) par Scott Hanselman pour compléter la réponse de tazvld



https://www.hanselman.com/blog/whats-the-difference-between-a-console-a-terminal-and-a-shell

Le 15/09/2022 à 08h 44


Si un jour de 1983 on m’avait dit que pour afficher du texte 24 par 80 sur un écran il faudrait une carte graphique 2000 fois plus rapide que le super-ordinateur CDC Cyber 170-750 que j’utilisais à l’époque au travers d’une Televideo 910…



:phibee:

Le 12/09/2022 à 12h 00

Je confirme que tu es incapable de comprendre une phrase simple :



J’écris : L’algorithme prend en input la répartition et donne en output un codage.



OlivierJ comprend : *Un algorithme qui ne voit pas les données qu’il traite et ne génère rien.
*
Oui, de fait, il ne sert à rien de discuter avec toi. Tu es convaincu d’avoir raison quitte à déformer tout ce que je dis.

Le 12/09/2022 à 07h 44


OlivierJ a dit:


Eh si c’est un codage, même dans le sens où tu le restreins. Tu l’as même écrit précédemment : « Elle est vraie pour huffmann, MFM, NRZI et consorts ». Chaque lettre ou symbole est toujours codé pareil (ce qui n’est pas le cas pour LZW effectivement).


Est-ce que tu peux au moins essayer de lire ce que j’écris ? L’algorithme de Huffmann prend en entrée une (estimation de) probabilité de chaque symbole et contruit un codage optimal pour cette répartition. Évidemment que le résultat de l’algorithme est un codage ! Mais l’algorithme lui-même n’est pas un codage.



Une fois que l’algorithme a pondu le codage, ce codage peut être appliqué à une ou plusieurs sources (y compris à des sources qui ne suivent pas la répartition - auquel cas l’application du codage ne donnera pas un résultat optimal). Mais l’algorithme lui-même ne voit jamais la suite de symboles à coder, pas plus qu’il ne génère une suite de symboles codés.

Le 09/09/2022 à 14h 52

Héééé non, non, toujours pas. L’algorithme de Huffmann n’est pas un codage. C’est, comme tu le dis si bien un algorithme, qui à partir d’une distribution de fréquences d’une source (vue comme une variable aléatoire discrète) construit un codage entropique optimal pour cette source.



Wikipedia : en.wikipedia.org Wikipedia



The output from Huffman’s algorithm can be viewed as a variable-length code table for encoding a source symbol (such as a character in a file).



Tu te vantes de vouloir utiliser les définitions précises des choses, mais finalement tu te contentes d’approximations.



Allez, je t’offre le Champomy pour la peine.

Le 09/09/2022 à 11h 12

Non, ce ne sont pas des codages. Puisque tu aimes Wikipedia :



Codage
Soit L et M deux langages.
Un codage c de L dans M est un morphisme (pour l’opération { . ) injectif. En d’autres termes, c’est une correspondance entre les mots de L et ceux de M, où à tout mot de L est associé un unique mot de M et tel que le codage de la concaténée soit égale à la concaténée des codages.



Cette propriété n’est pas vraie pour LZW. Elle est vraie pour huffmann, MFM, NRZI et consorts, mais pas pour zip ou png ou FLAC.



Pour dire simple, si je compresse ABCD, la résultante n’est pas AB compressé suivi de CD compressé.



Bref, non, toutes ces méthodes de compression sans perte sont bel et bien des applications bijectives, mais pas des codages.

Le 09/09/2022 à 08h 45


OlivierJ a dit:


Manifestement tu ne connais pas le codage de Huffman ni comment on s’en sert. Il a été inventé spécifiquement pour de la compression de données. Et comme tout algorithme de compression, il ne peut pas tout compresser bien évidemment. Quoiqu’il en soit, il compresse aussi bien du russe que du français.


Ben, non, puisque la répartition des lettres du russe est totalement différente de celle du français. Il existe UN codage de Huffmann qui compresse bien le français et UN AUTRE codage de Huffmann qui compresse bien le russe, mais ce sont deux codages différents. Le codage du français qu, par exemple ne prendrait que 3 bits pour E n’a absolument aucun intérêt pour compresser du russe qui n’a pas cette lettre…




LZW, très astucieux, il n’y a pas de transmission de table explicitement.


LZW n’est pas un codage au sens de la théorie de l’information puisqu’il dépend de l’historique des symboles précédents et devient de ce fait non concaténable. C’est une compression, mais pas un codage. Un simple Huffmann peut aussi se passer de table explicite, en recalculant les distributions tous les X symboles. Mais ce faisant, encore une fois, il cesse d’être un codage puisqu’il dépend du passé.




PS : gzip utilise une combinaison des algorithmes LZ77 et Huffman.


Toujours pas un codage… Et merci de confirmer ce que je dis : huffmann n’est qu’un élément de l’algorithme global de compression.

Le 08/09/2022 à 13h 09


OlivierJ a dit:


Tes phrases ne veulent rien dire.


Non, c’est toi qui as décidé que j’étais un imbécile qui ne sait pas de quoi il parle. Le codage de Huffman, comme tu le dis si bien, ne peut servir à compresser des données que si les données en entrée suivent raisonnablement une répartition donnée. Un codage de Huffmann qui compresse le français ne compressera pas le russe. Le codage de Huffmann à lui seul n’est donc PAS un algorithme de compression.



Donc, par conséquent, pour réaliser un logiciel de compression digne de ce nom, il faut préalablement déterminer la répartition des symboles et en déduire le codage optimal, puis le transmettre au destinataire comme table annexe. Si la résultante du codage proprement dit est bien un code préfixe, il n’en est pas du tout de même pour la table de fréquences (qui rend le codage adaptatif). Cette résultante n’est pas un codage de Huffmann…

Le 08/09/2022 à 09h 20


OlivierJ a dit:


Mais ça n’a rien à voir avec la compression. La compression sans perte restitue les données à l’identique. La production du son ensuite c’est une autre histoire, la compression ça ne concerne pas que des données audio.


Merci de m’expliquer l’informatique, ça me manquait…




Heu, hein ?? (tu racontes des bêtises) Ça me fait penser qu’une des premières techniques de compression de données s’appelle le codage de Huffman.


Le codage de Huffman est un codage au sens strict tant qu’il n’est pas adaptatif… Il n’est donc qu’une partie du processus de compression. Mais bon, on va dire que c’est moi qui n’ai pas compris ce que tu entends par codage.

Le 07/09/2022 à 10h 57


(reply:2091685:Zone démilitarisée)


Je me suis manifestement, et comme à mon habitude, exprimé trop succinctement…



Ce que je veux dire c’est que la chose importante est la qualité de la restitution. Qu’une compression soit avec ou sans perte n’est pas un gage de qualité de restitution dès l’ors qu’elle est appliquée sur des données qui ne sont elles-mêmes que des approximations de la réalité.



Mon exemple FLAC est que malgré qu’il soit désigné comme “sans perte”, rien ne prouve qu’il donne un meilleur rendu qu’une compression d’un signal 192K/24 bits compressé avec perte pour atteindre le même bitrate…



Or donc, mon Petit Larousse Grand Format (sic) 2005 - 100e édition définit le codage comme l’action d’appliquer un code pour transformer un message ou des donnée cen vue de leur transmission ou de leur traitement. Synonyme: encodage. Cette définition informelle ne fait pas mention de la qualité de restitution.



SI par contre on utilise la définition de codage telle que retenue par la théorie de l’information, bien GZIP n’est pas un codage non plus…



Bref “codage” est polysémique et aucune des deux définitions ne convient à ce qu’on tente d’exprimer ici.

Le 07/09/2022 à 08h 28


OlivierJ a dit:


une compression avec perte n’est pas un codage, puisqu’on ne retrouve pas l’original)


Dans ce cas, rien en informatique n’est un codage de l’original. Toute transcription analogique vers numérique implique un certain degré de quantification, qui occasionne une perte. FLAC par exemple est régulièrement appelé un codage sans perte mais c’est techniquement faux, puisqu’il s’appuie sur le format CD qui a déjà perdu une partie du signal.



Il faut juste ensuite définir le niveau acceptable de perte.

Le 03/09/2022 à 05h 54

Heu, le CERN, c’est en Suisse, non ? Donc pas soixante-dix ans, mais bien septante.

Le 02/09/2022 à 08h 59

Dans ce cas, je me lance dans la vente par correspondance de bâches qui ressemblent à des piscines enterrées. Pas cher, 500€. Fifty-fifty :D

Le 02/09/2022 à 08h 52

On est vendredi, prems, je me lance…




IL N’Y A PAS DE MALWARE SUR MAC



:troll:

Le 26/08/2022 à 16h 07


(quote:2090278:Paul Muad’Dib)
Ce n’est pas une question de point de vue, je voulais éditer mon message pour enlever cette partie mais comme on a que 5 minutes pour le faire, trop tard.



Néanmoins nos commentaires semblent aller dans le même sens, je vous invite donc à citer plutôt celui auquel je répondais.



Les Etats-Unis, et plus généralement les Occidentaux, sont loin de pouvoir êtes cités comme des parangons de vertu par rapport à la Chine ou la Russie en effet.


On est parfaitement d’accord. Désolé si mon message semblait vous attaque, je voulais simplement pousser le bouchon encore plus loin que vous.

Le 26/08/2022 à 16h 03


ungars a dit:


Tiens, on commence par un Pass’Chiottes et on fini par une discussion sur un génocide… :reflechis:


Bah oui, quand on met une Saoudienne en prison pour un tweet, la discussion finit par une explication comme quoi c’est normal que les femmes gagnent moins parce que comme elles peuvent tomber enceintes, elles sont moins fiables que les hommes. En faisant le détour obligé par le passe sanitaire, bien sûr :D



Donc là rien de nouveau.

Le 26/08/2022 à 15h 38


(quote:2090266:Paul Muad’Dib)



Donc bon on est peut-être loin d’un génocide


Au niveau point de vue, on peut peut-être demander celui des descendants de Geronimo ?