Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 91 sur 182 PremièrePremière ... 41818384858687888990919293949596979899101141 ... DernièreDernière
Affichage des résultats 2 701 à 2 730 sur 5432
  1. #2701
    Les pire c'est OSX en tout cas.
    Comme de par hasard.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  2. #2702
    C'est la sélection naturelle, seuls les meilleurs utilisateurs restent.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."

  3. #2703
    Citation Envoyé par Tramb Voir le message
    Les pire c'est OSX en tout cas.
    Comme de par hasard.
    On dit MacOS maintenant.

    Mais ce batard m'a mis à jour Xcode automatiquement il y a peu.
    Sauf qu'après la màj je ne pouvais plus lancer Xcode car non compatible avec la version courante de MacOS, il fallait la version mineure suivante.
    C'est la faute à Arteis

  4. #2704
    Citation Envoyé par rOut Voir le message
    C'est la sélection naturelle, seuls les meilleurs utilisateurs restent.
    Pense à la majuscule.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  5. #2705

  6. #2706
    Est-ce que Kali Linux est dangereux? Le gouvernement britannique a apparemment cru bon de mettre en garde les parents contre la nocivité de Linux et Kali Discord

    https://linuxreviews.org/Wondering_W...cy%22_Can_Help

  7. #2707
    Citation Envoyé par Ultragreatsword Voir le message
    Est-ce que Kali Linux est dangereux? Le gouvernement britannique a apparemment cru bon de mettre en garde les parents contre la nocivité de Linux et Kali Discord

    https://linuxreviews.org/Wondering_W...cy%22_Can_Help

    j'avais lu à droite à gauche une news (un peu grosse mais peut être pas complètement fake) qui parlait du gouvernement (à priori britanique ?) qui aurait sorti une liste permettant aux parents de savoir si leur enfant est possiblement un hacker. Pardon, un cracker, pour être exact (un hacker ne fait rien de mal, même si on a oublié la différence entre les deux termes).
    Grosse merdo ça sortait des inepties telles que : si votre enfant a fait CA, c'est un dangereux pirate et il faut l'aider à s'en sortir :
    - il gagne des sous avec de la cryptomonnaie
    - il n'a pas d'amis et passe tout son temps devant son PC
    - il a des pseudos cheloux (enfin... de geek ou fan de manga quoi)
    - il parle sans arrêt de hacking, backdoor, etc
    Bref, le genre de truc complètement ouf dans lequel se retrouvent 90% des ados gamers.
    Il ne manquait que "écoute du métal" ou "regarde Doctor Who" pour caractériser les terroristes.

    Si ce n'est pas une pauvre blague de l'internet ou d'un politicien un peu bêbête, j'imagine que c'est lié. J'ai du voir ce torchon en passant rapidement sur developpez.com, donc niveau crédibilité on repassera
    Dernière modification par gros_bidule ; 19/02/2020 à 10h29.

  8. #2708
    Citation Envoyé par gros_bidule Voir le message
    si votre enfant a fait CA, c'est un dangereux pirate et il faut l'aider à s'en sortir :
    - il gagne des sous avec de la cryptomonnaie
    - il n'a pas d'amis et passe tout son temps devant son PC
    - il a des pseudos cheloux (enfin... de geek ou fan de manga quoi)
    - il parle sans arrêt de hacking, backdoor, etc
    Ouf, j'étais à deux doigts d'en être un... quoique Tintin et les mangas, c'est un peu pareil, non ?

  9. #2709
    Je suis rageance.

    Je suis en c++11/14/17 avec ou sans boost, et je n'arrive pas à trouver de manière portable d'effectuer des opérations simples sur le système de fichiers, sachant que je vais devoir livrer sous W10 en plus de Linux.
    En particulier, je veux juste savoir si j'ai le droit d'écrire dans un répertoire, pour le moment.

    J'arrive à consulter de manière assez fine les droits avec filesystem de c++17, mais ça ne m'est pas très utile car il faut dépatouiller les permissions entre les différents groupes d'utilisateurs (cas typique, des répertoires système sont en rwx/r-x/r-x avec root en créateur).

    La fonction qui existe et fait exactement ce que je veux: acces(), déclarée dans unistd.h

    Code:
    bool
    is_folder_writable(const char *str) {
        if(access(str, W_OK) == 0) {
            return true;
        } else {
            return false;
        }
    }
    Comme la doc l'indique bien, elle répond à la seule question: "le mec qui lance le process peut-il écrire à l'endroit indiqué?"

    Y-a-t-il un équivalent portable à cette fonction?

  10. #2710
    Essayer d'écrire et catch l'exception si elle se présente ?
    C'est pas une solution spécifique à C++ (que je ne connais pas) mais je finis souvent par faire ça (en bash et python).

  11. #2711
    Citation Envoyé par vectra Voir le message
    Je suis rageance.

    c++11/14/17
    https://en.cppreference.com/w/cpp/fi...em/permissions

    Code:
    #include <fstream>
    #include <bitset>
    #include <iostream>
    #include <filesystem>
    namespace fs = std::filesystem;
     
    void demo_perms(fs::perms p)
    {
        std::cout << ((p & fs::perms::owner_read) != fs::perms::none ? "r" : "-")
                  << ((p & fs::perms::owner_write) != fs::perms::none ? "w" : "-")
                  << ((p & fs::perms::owner_exec) != fs::perms::none ? "x" : "-")
                  << ((p & fs::perms::group_read) != fs::perms::none ? "r" : "-")
                  << ((p & fs::perms::group_write) != fs::perms::none ? "w" : "-")
                  << ((p & fs::perms::group_exec) != fs::perms::none ? "x" : "-")
                  << ((p & fs::perms::others_read) != fs::perms::none ? "r" : "-")
                  << ((p & fs::perms::others_write) != fs::perms::none ? "w" : "-")
                  << ((p & fs::perms::others_exec) != fs::perms::none ? "x" : "-")
                  << '\n';
    }
    int main()
    {
        std::ofstream("test.txt"); // create file
     
        std::cout << "Created file with permissions: ";
        demo_perms(fs::status("test.txt").permissions());
     
        fs::permissions("test.txt",
                        fs::perms::owner_all | fs::perms::group_all,
                        fs::perm_options::add);
     
        std::cout << "After adding o+rwx and g+rwx:  ";
        demo_perms(fs::status("test.txt").permissions());
     
        fs::remove("test.txt");
    }
    C++ 17 FTW .
    La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!

  12. #2712
    Ben je l'ai vu, mais comme dit dans mon exemple, je n'arrive pas à le mettre en pratique.
    Lorsque je lance un process avec l'user vectra et que je donne un répertoire genre /lib64 avec les droits '755' mais l'user 'root', il me retourne bien '7' pour l'user...
    Sauf que je ne suis pas root ni dans son groupe, et donc il me dit que je peux écrire mon fichier dans /lib64, ce qui évidemment ne se vérifiera pas expérimentalement!

    drwxr-xr-x 2 root root 4,0K août 5 2019 lib64/
    J'ai peut-être raté un truc, mais je suis bloqué quand-même...
    La fonction access, bien que deprecated, va vérifier si c'est l'owner du processus qui a bien le droit d'écriture.

  13. #2713
    Citation Envoyé par vectra Voir le message
    Ben je l'ai vu, mais comme dit dans mon exemple, je n'arrive pas à le mettre en pratique.
    Lorsque je lance un process avec l'user vectra et que je donne un répertoire genre /lib64 avec les droits '755' mais l'user 'root', il me retourne bien '7' pour l'user...
    Sauf que je ne suis pas root ni dans son groupe, et donc il me dit que je peux écrire mon fichier dans /lib64, ce qui évidemment ne se vérifiera pas expérimentalement!



    J'ai peut-être raté un truc, mais je suis bloqué quand-même...
    La fonction access, bien que deprecated, va vérifier si c'est l'owner du processus qui a bien le droit d'écriture.
    Est ce que tu as les ACL d'activé sur ton OS linux? (getfacl <le path>)
    La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!

  14. #2714
    Alors oui, d'après ce tuto:

    https://doc.ubuntu-fr.org/acl

    Mais pour préciser, le but de ma quête est de produire un code qui marchera 'tel quel' sur une cible W10 en plus de Linux.

  15. #2715
    Ce que je voulais dire :
    Est ce que ton user linux à les droit sur le dossier sur lequel tu fais des tests via les ACL (d'ou le getfacl). Si tel est le cas alors il est peut être normal que le système te dise que ton user à les droits.
    La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!

  16. #2716
    Ah pardon!
    Donc, non...

    />getfacl /lib64/
    getfacl : suppression du premier « / » des noms de chemins absolus
    # file: lib64/
    # owner: root
    # group: root
    user::rwx
    group::r-x
    other::r-x

    />cat > /lib64/toto
    bash: /lib64/toto: Permission non accordée

  17. #2717
    Ça sert à quoi en fait d'avoir les permissions owner/group/others quand tu ne sais pas qui tu es ou qui est le owner/group du fichier ?

    En portable et sans bibliothèque supplémentaire, je vois rien d'autre que d'essayer d'écrire comme le suggère Nattlefrost. Ou alors tu écris ta propre fonction portable avec deux implémentations linux/windows.

  18. #2718
    Citation Envoyé par Nattefrost Voir le message
    Essayer d'écrire et catch l'exception si elle se présente ?
    C'est pas une solution spécifique à C++ (que je ne connais pas) mais je finis souvent par faire ça (en bash et python).
    Nan mais ouais, en fait, c'est largement la solution la plus simple possible.
    Je trouvais ça un peu naïf que de faire un fopen en écriture, surtout qu'il faut effacer derrière, mais c'est encore le plus direct. Y'a aucun jugement de valeur ici, c'est juste que je voulais voir ce qu'avait dans le ventre la nouvelle norme.

    - - - Mise à jour - - -

    Citation Envoyé par Cwningen Voir le message
    Ça sert à quoi en fait d'avoir les permissions owner/group/others quand tu ne sais pas qui tu es ou qui est le owner/group du fichier ?

    En portable et sans bibliothèque supplémentaire, je vois rien d'autre que d'essayer d'écrire comme le suggère Nattlefrost. Ou alors tu écris ta propre fonction portable avec deux implémentations linux/windows.
    He ben en fait, s'il y avait une lib vraiment portable qui faisait ça, cela pourrait m'intéresser en théorie.
    Ca me semble assez fou qu'il n'y ait rien de tout prêt et normalisé pour tester ce genre de besoins, qui me semble quand-même assez vital: "puis-je écrire ici"?

  19. #2719
    Citation Envoyé par vectra Voir le message
    Ca me semble assez fou qu'il n'y ait rien de tout prêt et normalisé pour tester ce genre de besoins, qui me semble quand-même assez vital: "puis-je écrire ici"?
    Sous Windows c'est de la convention, tu n'a pas le droit d'écrire dans le répertoire d'installation, ton application doit toujours écrire dans %AppData% (commun à l'usager) ou %ProgramData% (commun à la machine). A partir de là on se pose forcément beaucoup moins de questions.

  20. #2720
    Pareil pour Linux, on peut écrire dans $XDG_DATA_HOME, $XDG_CONFIG_HOME, $XDG_CACHE_HOME, $XDG_RUNTIME_DIR.

    La seule bibliothèque que j'utilise qui propose un test portable c'est qt, et c'est pas une dépendance qu'on ajoute à la légère.

  21. #2721
    Eh ben en fait, ce projet est justement en Qt.
    En un sens, j'aurais dû commencer par là, mais c'est une bonne chose à savoir que je ne suis pas prêt à me débrouiller avec la std.

    Oui clairement, ça rallonge un peu le CMake

  22. #2722
    Citation Envoyé par Mr Slurp Voir le message

    C++ 17 FTW .
    Pour la déconne, il y avait déjà des choses similaires sur boost.
    Je viens de retrouver ça dans mon code:

    Code:
    bool
    vectrautil::path_writeable_cpp11_p(const boost::filesystem::path &p)
    {
      std::ostringstream o;
      o << std::oct << boost::filesystem::status(p) . permissions();
      size_t len = o . str() . size();
      if ( ! (len == 3 || len == 4)) return false;
      size_t pos = (len == 3) ? 0 : 1; // il peut y avoir un sticky bit à 1 en première position
      return (o . str()[pos] == '7');
    }

  23. #2723
    Citation Envoyé par vectra Voir le message
    Pour la déconne, il y avait déjà des choses similaires sur boost.
    Rien de très étonnant :
    This library is directly based on boost.filesystem, which is currently available on more compilers and platforms than this experimental technical specification.
    https://en.cppreference.com/w/cpp/experimental/fs
    La programmation est une course entre le développeur, qui s’efforce de produire des applications à l’épreuve des imbéciles, et l’univers qui s’efforce de produire de meilleurs imbéciles... L’univers a une bonne longueur d’avance !!!

  24. #2724
    Bon, en tous cas, c'est débloqué et mes idées un peu dépoussiérées

    Merci pour vos lumières

  25. #2725
    Bon ça y est, même mon code fait la promotion de Doom Eternal

    Code:
    Dynamic assertion `nb_hits == 1` failed in /home/[redacted].hpp line 666: <too many or no corresponding planes>
    Réalisé à l'instant sans trucage

  26. #2726
    Tu devrais ajouter des "assert(__LINE__ != 666);" pour éviter ce problème.

  27. #2727
    Salut les devs. Vous êtes bien tous confiné chez vous ? De la bonne remote desktop connection en fibre ou en mousse ?

    Il y a longtemps que je n'ai pas posé de question de comptoir par ici. Alors en voici une:
    que pensez-vous des tests quand leur mise en place devient plus fastidieuse et complexe que le code métier ?

    Je me pose cette question car sur un projet assez récent nous avons décidé de jouer les tests à fond, par en TDD, mais simplement en s'astreignant à une bonne couverture de code.
    Il s'agit d'un backend assez classique en Java, avec SpringBoot + JPA. Il y a en plus quelques services qui vont appeler d'autres services tiers en différentes technos (un coup SOAP, un coup REST, un coup une API propriétaire, un coup un FTP des familles, etc).
    Si tester les service Spring est assez simple et propre avec peu de mock et une db en mémoire, en revanche tester l'intégration avec les services tiers devient assez vite un gloubi-boulga dégueu avec des mocks compliqués et autres simulations de services externes.
    Du coup les tests deviennent imbitables, car trop complexes, trop verbeux, trop fragiles, trop dangereux. On ne sait plus très bien ce qui est vraiment testé au final ! Et quand un test se met à déconner c'est très compliqué de comprendre qu'est-ce qui ne va pas.
    Souvent l'intégration avec ces systèmes tiers est dure à tester pour plein de raisons: pas d'environnement de test, pas de possibilité de remettre certaines données à zéro, pas d'accès aux données, nécessité d'avoir des enrobages techniques (retry, pool de connection), etc

    Perso j'essaie de bien séparer le business de la couche "de liaison technique" avec les systèmes tiers, mais si je veux tester jusqu'au bout, je termine toujours avec des tests très moches pour cette "intégration".

    Vous faites comment pour faire ce genre de tests d'intégration ? Comment vous faites pour éviter d'avoir des tests alambiqués plein de mocks et de simulations de services tiers pourries pour tester vos intégrations ?

  28. #2728
    Déjà avant de faire des tests d'intégration, faire des tess unitaires qui fonctionnent bien. Ensuite les tests d'intégration sur ce que vous maîtrisez de bout en bout (j'ai découvert très récemment un bug avec mockito sur les tests d'intégration d'ailleurs...) Et ensuite vous pourrez vous attaquer au plus chiant. My2cents

  29. #2729
    ba oui, c'est un peu ce que nous faisons: des tests unitaires simples quand c'est possible. Par contre pour ces tests chiants et dangereux, là je ne vois pas trop de solution élégante.

  30. #2730
    Pour les Data Access Layers, je ne mock pas, je pointe sur lesdits services directement (mocker reviendrai à écrire ce que tu pense que le service fait, mais sans en avoir la garanti).
    Si pas possible, rendre les DAL les plus propres possibles, les tester extensivement à la main et essayer ne plus jamais y toucher.

    Tout ce qui est au dessus des DAL par contre, là c'est en contrôle et mocké proprement, mais tout ce qui cause à l'extérieur, je le laisse causer à l'extérieur (avec processus d'initialisation/nettoyage avant et après le test si nécessaire, bien évidemment).

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •