Logo journal du hacker middle
  1. 1

    Bonjour salim.

    Tu omets effectivement pas mal de passages de l’article juste pour critiquer.

    Avant l’exemple :

    printf("%d", (5,3) );
    

    Il est également précisé :

    L’instruction suivante, bien qu’inutile est tout à fait valide :

    En fait, j’ai gardé cette ligne car pour quelqu’un qui vient d’un langage de haut niveau, elle afficherait un tuple ! Elle est ici pour introduire une syntaxe pas un exemple d’utilisation réel.

    Le if est effectivement un peu maladroit mais entre temps, il y a un exemple très courant d’utilisation dans une boucle for que tu as habilement ignoré. De même pour la boucle while suivante.

    Je ne commenterais pas l’utilisation de la ternaire.

    En programmation, les tableaux sont conventionnellement indexés en utilisant la syntaxe tab[i]. L’équivalence est admise car elle a un sens intrinsèque dans la conception du langage C. L’identificateur de tableau tab est converti en un pointeur constant sur le premier élément du tableau : on accède à une structure de donnée.

    Je cite l’article.

    Cet opérateur n’a pas grand-chose à voir avec les tableaux en fait.

    Son nom est subscript operator et s’applique à des pointeurs (car il ne peut s’appliquer à des tableaux directement à cause de la conversion vers un pointeur). C’est un problème lié au langage mais voilà le fait est là. Et sa définition est (*((E1)+(E2))) avec ce que cela implique, je pense que l’article est claire à ce niveau là.

    Pour moi, ce code est totalement incompréhensible (ou vraiment incroyable, avec mes rudiments du C).

    Oui c’est assez incroyable. L’instruction en elle même est peu utilise mais l’obscurcissement final est tel que je me devait de le notifier au lecteur.

    Au cours de ma lecture du livre « Le guide complet du langage C » de Claude Delannoy, je ne me souviens pas de ce genre de notation (?).

    Ce n’est pas tout à fait une référence … Sa première édition était très souvent imprécise (à la limite du faux) sur certains points. Je ne l’avais pas apprécié du tout. Encore une fois, le but de l’article est de présenter des syntaxes absentes des cours conventionnels.

    Mon niveau n’est pas suffisant pour me faire une idée de ce qui est valide ou pas dans le reste de l’article. Je reste sceptique.

    Je t’invite à vérifier par toi même. Comme tu as vérifié pour l’équivalence qui te semblait fautive mais qui en fait est tout à fait exacte.

    Le but de l’article est présenter des syntaxes du langage méconnues. Forcément, ça fait un peu bizarre, incongrue mais je pense avoir bien vérifié tous les points avant de l’avoir publié et que mis à part les exemples qui sont parfois tordus et pas très utilise (mais là encore, c’est pour présenter une syntaxe !). Je pense qu’il va être difficile de s’attaquer au fondement de l’article même.

    1. 1

      Hello PengouinPdt, merci pour le complément d’info.

      C’est toujours délicat lorsqu’il s’agit de conseiller un outil pour des néophytes. De mon côté c’est cavif qui fait le taff, mais la CLI est souvent impensable sans accompagnement préalable. Pour ce qui est d’avoir mozjpeg dans Gimp, c’est prévu et ça devrait remplacer l’usage de libjpeg, de manière invisible pour l’utilisateurice lambda, ce qui me semble être une bonne chose.

      Quant à ton point sur la qualité de l’image, certes une compression destructrice est, destructrice, après libre à chacun·e de se faire son idée. Je trouve que pour un affichage sur un écran d’ordinateur, sans zoomer dessus, le jpeg standard 75 est largement suffisant dans beaucoup de cas. Bien évidemment si l’objectif est de faire une galerie photo, ça me semble être un mauvais choix.

      Merci pour ton avis :D

      1. 1

        C’est un module en plus pour NGINX ?

        1. 2

          Merci pour cet article où je découvre que Gimp peut sauvegarder aussi dans les formats que sont webp et avif.

          Je me sers de Gimp pour avoir des images de cartographies. J’ai cherché à savoir si créer une image au format JPG, en qualité 80 % permettait d’avoir un poids convenable sans trop de dégâts. J’ai fait des tests avec une génération de la même image en Q=100 et utilisé, pour comparaison, d’autres outils de “destruction”.

          Personnellement, je trouve qu’une qualité en deçà de 80, on pert sérieusement et si l’image est “complexe” (dans le type d’informations qu’elle renferme, beaucoup de couleurs, de détails, etc.), on se rend compte assez vite de la dégradation.

          Pendant un temps, j’utilisais l’outil en ligne Optimizilla, et donc je m’en suis servi à ce moment là pour comparer aussi avec “ses” sorties. Il ne s’en sort pas “vainqueur”, loin s’en faut…

          Mozjpeg est l’outil qui permet vraiment de garder de la qualité, tout en ayant une Q=80, et un poids + léger.

          Idem pour une démarche concernant les formats webp et avif. C’est l’outil “convert” d’Image magick qui s’en sort le mieux. (il existe cavif - qui est pertinent -, avifenc, la lib webp, qui a des sous lib spécifiques à JPG/PNG d’un côté et GIF de l’autre)

          Bref, ce n’est pas parce qu’un outil est “couteau suisse”, qu’il s’en sort le mieux. :p

          Merci pour l’info. Voilà.

          1. 1

            Globalement je suis d’accord avec toi, même si c’est faisable. D’ailleurs je l’ai vu chez un client, ils faisaient du ansible en mode pull, leurs vms étaient poussées directement avec ansible d’installés, et toute les heures elles allaient chercher leurs propres configuration.

            1. 3

              Je pense surtout que la demande de base est complétement infondée (j’ai le mot idiot en tête). Après, si on te paye pour faire le taff, tant mieux pour toi Pourquoi je trouve ça infondé ? On te demande de remplacer dans une recette de cuisine, une carotte par un chou. Spoiler : t’auras pas le même gout

              • Puppet fait de la conformation : tu lui décris CE QUE TU VEUX sur le serveur.
              • Ansible fait de l’orchestration : tu lui donnes des opérations à effectuer.

              Typiquement, puppet va te conformer le fichier A. Quelqu’un te modifie (erreur ou intention, légtitiment ou pas) le fichier A… ll va perdre sa modification au prochain run de l’agent. Question : tu vas vraiment lancé toutes les 30 minutes les playbooks ansible sur l’ensemble de ton parc ? Perso, je l’ai jamais vu. Résultat : Fichier A sera modifié et jamais remis à son état initial.

              Vala pour ma remarque ( et je redis : aucune critique sur toi, si le client paye… tant pis pour son choix, tant mieux pour ton compte bancaire)

              1. 2

                Personnellement, j’ai paramétré Nginx, pour qu’il diffuse si possible mes images Avif, Webp, JPG|PNG. C’est simple à gérer et je contente tout le monde, dont ma BP : p

                J’ai écrit en son temps des articles utiles sur mon espace de documentation, publié ici, mais ça, c’est une autre histoire. ;)

                1. 1

                  Merci pour les conseils ;)

                  1. 1

                    Même si ce n’est qu’une fois, les utilisateurs n’ont pas à la subir ! À toi de réorganiser ton code pour proposer l’information autrement, par exemple, un lien vers une page explicative, lien qui apparaît en fin de page, ou sur un menu contextuel placé à D ou à G, dans une balise aside, etc. Avoir du soutien plus actif? ce n’est pas à moi qu’il faut le demander, vu que je m’en fiche perso, même pour mes propres articles - un lecteur les lit tant mieux, un autre non; ce n’est pas grave, loin s’en faut.

                      1. 2

                        Tiens, j’ai sorti mon article sur le sujet: https://trolliet.info/blog/038-tailleimage/

                        1. 1

                          Eh bien, c’est même pas si vrai que ça en plus je trouve…

                          • Si tu veux changer de mdp sur un site, tu va devoir incrémenter un “compteur” (-c 2, -c 3, …) lors de la génération du mdp.
                          • Si un site n’accepte pas le “format” des mdp générés par Spectre, il faut lui en spécifier un nouveau en argument (-t …).

                          Donc ça fait des paramètres dont il faut se souvenir pour pouvoir retrouver ses mdp, il faut les stocker quelquepart (sinon ça devient ingérable), donc pas si “stateless” que ça

                          1. 1

                            Un des avantages est quand même le fait que tu ne peux pas perdre de base de données de mot de passe. Pas de fichiers à backup.

                            Mais tous les désavantages ne font pas le poids à mon goût…

                            1. 1

                              Je pense justement que c’est une fausse bonne sécurité, le fait de générer les mots de passes comme le fait Spectre. En fait après réflexion, je n’y vois même aucun avantage, que des inconvénients (ceux que j’ai cité, mais aussi ceux présentés sur Hacker News).

                              C’est toujours intéressant de faire une analyse de risque au plus proche du réel pour voir les différences.

                              Par exemple, tu dis préférer générer tes mdp que les stocker en local. Quel est le risque d’un vault local ? Qu’un malware sur ton PC récupère tes mdp. Mais alors ce malware est déjà installé sur ton PC, avec un keylogger pour récupérer le master password de ton vault local (pour récupérer les mdp qui sont dedans). Quel avantage apporte Spectre ? Le keylogger arrivera aussi à enregistrer le master password de Spectre et donc dériver l’ensemble de tes mdp. (il pourra aussi récupérer ton presse-papier, ton clavier (keylogger), ton historique bash, … tout, quelque-soit le gestionnaire). Donc, aucun avantage à Spectre.

                              Par contre des inconvénients, on peut en lister beaucoup…

                              Le sujet est super intéressant, ça me donne des bonnes idées pour d’autres projets, mais jamais je ne m’autoriserais à utiliser ce gestionnaire :-/

                              1. 1

                                Même si cela paraît être plus sécurisé qu’un gestionnaire de mot de passe, cela n’est pas le cas.

                                Un gestionnaire de mot de passe implique de respect deux critères de sécurité :

                                • ce que je possède avec le coffre fort numérique
                                • ce que je sais avec le mot de passe du coffre fort

                                La fuite d’un des deux éléments ne met pas en péril la confidentialité des données contrairement à l’usage du protocole spectre ou la possession du mot de passe suffit à mettre en péril les secrets.

                                De plus, la compromission d’un mot de passe généré par spectre peut mettre en péril l’entièreté des mots de passe chiffrée avec la clé maitresse car la personne peut bruteforcer la clé maitresse en jouant le protocole spectre en offline. Ce qui lui permet de débloquer les mots de passe de tous les autres logins chiffrés avec elle.

                                1. 2

                                  Hello,

                                  En fait, oui, c’est un peu subjectif, car une histoire récente, une application pour un client qui avait une très mauvaise expérience utilisateur, car des fichiers PNG de 10Mo (sans transparence) était envoyé, et a l’époque, il n’y avait de recompression de l’app, car comme vous, j’optimise mes images avant de les envoyer, le problème, c’est que quand on es dans le monde de la Tech, on ne se rend pas compte que les gens, n’en savent pas autant que nous sur le sujet.

                                  Bonne journée :)

                                  1. 1

                                    C’est vrai :).

                                    Le fait est que dans mon domaine d’activité, mes clients ont plus de 90% d’iPhone et de mac, hors Safari (comme toujours, ne le prends pas en compte)

                                    Également, il n’est pas encore pris nativement en compte dans des choses comme liip_imagine_bundle, je n’ai pas cherché si il est pris en charge dans la librairie imagine.

                                    Merci d’avoir pris le temps de commenter

                                    1. 1

                                      Commentaires super intéressants, ça fait plaisir, merci @BarbossHack !

                                      En effet, bien que j’utilise cet outil depuis depuis +2 ans maintenant il est décevant de voir la faible maintenance du projet.

                                      Il est cependant possible d’utiliser leur algorithme open-source sur d’autres projets (ex : https://github.com/bkueng/qMasterPassword)

                                      Je ne suis pas du tout un expert en cryptographie, pour le moment, je me dis qu’entre stocker mes mots de passe sur un logiciel (local ou remote) et utiliser un générateur open-source comme Spectre j’ai fait mon choix :)

                                      Je viens de trouver des informations supplémentaires intéressantes sur Hacker News : https://news.ycombinator.com/item?id=9788597

                                      1. 3

                                        Sur le papier ça a l’air cool, mais plusieurs points qui vont vraiment me freiner à utiliser un truc du genre :

                                        • l’apk android n’est plus maintenue depuis 2 ans, et pas publiée sur le playstore (t’a même du fournir un lien de webarchive)

                                        • aucun audit de sécu, du coup on ne sait pas s’il serait par exemple possible d’arriver à deviner le “Master password” à partir de plusieurs couples “username/ndd/password” … quand on s’amuse avec la crypto comme ça, c’est hyper cool, mais ça demande vérification extérieure, et la: rien

                                        • tu te retrouve bloqué sur ce gestionnaire de mdp, impossible de switcher pour un autre (ou très, très compliqué)

                                        • après avoir lu le “technical paper”, quid du changement de mot de passe pour un compte d’un site ? je n’ai pas testé le gestionnaire, mais ça n’a pas l’air possible de changer de mot de passe… quelle est la procédure en cas de leak d’une bdd ?

                                        1. 1

                                          Ouaip surtout que non le png n’est pas forcément lossless, il a plusieurs options pour avoir un mode lossy où il est effectivement très efficace.