Patrick Nicolas a écrit 105 commentaires

  • [^] # Re: Comportement indéfini

    Posté par  . En réponse au journal C++, surcharge d'opérateur, ordre d'évaluation. Évalué à 6.

    Indéfini avant C++17.

    À partir de C++17 c'est défini d'après https://en.cppreference.com/w/cpp/language/eval_order

    Règle 16) Every overloaded operator obeys the sequencing rules of the built-in operator it overloads when called using operator notation
    Et 20) In every simple assignment expression E1=E2 and every compound assignment expression E1@=E2, every value computation and side-effect of E2 is sequenced before every value computation and side effect of E1

    m.size() est évalué en premier, puis m[1]. Le bon résultat est celui retourné par gcc 9.

  • # PARTUUID

    Posté par  . En réponse au journal initrd est mort, bon débarras. Évalué à 4.

    Pourquoi ne pas utiliser un UUID pour root ?

    D'après https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183 c'est parfaitement utilisable, avec un PARTUUID.

    Le rootfstype n'est pas nécessaire, le kernel trouve bien ce qu'il faut.

    Et bonus, avec un EFI on peut même se passer de grub.

  • [^] # Re: j'ai du mal à comprendre

    Posté par  . En réponse au journal L'ordinateur qui a effacé cinq voix. Évalué à 5.

    Avec ce système un électeur peut prouver quel est son vote, il est donc possible de vendre sa voix.

    Si le vote en clair n'est pas accessible, on ne peut pas vérifier et recompter.

  • [^] # Re: This is javaaa

    Posté par  . En réponse à la dépêche Fim 1.1.0. Évalué à 1.

    Je n'aime pas les pratiques en java:
    les abstractions qui ne font que compliquer la lecture, les interfaces n'ayant qu'une seule implémentation, les factory pour créer tout type d'objet
    l'utilisation systématique de getters/setters publics, qui exposent l'implémentation d'un objet

    Je n'aime pas les libs java:
    Il faut souvent créer 2 ou 3 objets intermédiaires pour des opérations simples comme la lecture de fichier
    Les interfaces graphiques ne s'intègrent pas facilement dans un environnement donné
    La distribution passe par la copie de .jar

    Je n'aime pas le langage java:
    Le langage ne connaît que les pointeurs, qui peuvent toujours être nuls
    Il n'y a pas de concept de "const" ou de fonctions pures
    La gestion des ressources doit être faite manuellement (sauf la mémoire), et sans destructeurs

  • [^] # Re: À suivre?

    Posté par  . En réponse au journal C++ Core Guidelines. Évalué à 1.

    Les lambdas permettent de définir du code ayant une portée du bloc en cours.
    C'est utile par exemple dans les fonctions asynchrones, si je donne une fonction pour le retour (std::function si possible), un lambda peut contenir le contexte.

    En tant que prédicat c'est aussi très flexible, on peut exprimer ce que l'on veut sans le mettre dans l'interface de l'objet.

  • # entrée standard et arguments

    Posté par  . En réponse au message Python / (linux) shell : interfacer l'un avec l'autre. Évalué à 8. Dernière modification le 22/09/15 à 14:33.

    Que je sache, grep n'ouvre les fichiers que depuis ses arguments en ligne de commande. Ici il va donc chercher un fichier {} et un ;
    La syntaxe que tu essayes d'utiliser est celle de find, c-à-d find commande {} \;, c'est find qui va lancer commande en remplaçant le {} par le fichier en cours.

    Pour des fichiers sans espace, on peut simplement utiliser grep string $(./script.py)
    Avec cette syntaxe le shell va d'abord exécuter ce qui est entre $() et passer la sortie de ce programme comme arguments pour la commande grep.

    Une solution plus générale est d'utiliser xargs (la page de man décrit tout ce qui est possible) pour lancer une commande pour chaque ligne de l'entrée standard.

  • [^] # Re: NVidia ou Intel

    Posté par  . En réponse au message Carte graphique supportée "de base" pour poste de travail Debian Jessie. Évalué à 3.

    Depuis plusieurs années tous les processeurs Intel intègrent une partie graphique (depuis 2011 et les processeurs Sandy Bridge). AMD vend un peu des deux, mais la majorité intègre bien une « carte » graphique.

    Il n'y a que pour les jeux que l'on peut vouloir une carte dédiée maintenant, et les drivers libres AMD ou Intel sont en général très bons.

  • [^] # Re: J'ai pas très bien compris

    Posté par  . En réponse au journal Grsecurity : le patch stable réservé aux sponsors. Évalué à 3.

    En effet le premier lien (atomiccorp) vend directement le logiciel, pas du matériel, les patchs sont téléchargeables sur https://atomicorp.com/downloads/
    Le deuxième (prometheus) vend le produit du premier et les autres sont des hébergeurs.

  • [^] # Re: J'ai pas très bien compris

    Posté par  . En réponse au journal Grsecurity : le patch stable réservé aux sponsors. Évalué à 5.

    Si le sponsor veut vendre du matériel qui utilise ce kernel, il doit fournir les sources.

  • [^] # Re: Remarques

    Posté par  . En réponse au journal Résolution naïve d'un jeu de société. Évalué à 1.

    Effectivement c'est pas aussi direct.
    La taille acceptable du nombre de situations permet de terminer l'exploration si on atteint une situation qui a déjà été atteinte. On peut donc continuer à explorer jusqu'à ce que la solution soit trouvée ou toutes les branches se terminent sur une position déjà parcourue.

  • [^] # Re: Remarques

    Posté par  . En réponse au journal Résolution naïve d'un jeu de société. Évalué à 2.

    Le nombre de situations possibles est égal au nombre de cases puissance le nombre de pions (moins en réalité puisqu'ils ne peuvent pas se superposer).
    On est donc à 4*109, il est donc possible de mémoriser les situations déjà visitées et donc déterminer si une situation est atteignable.

  • [^] # Re: Raciste

    Posté par  . En réponse au journal Peut-on accepter la téléphonie mobile ?. Évalué à 4.

    J'ai cité ces deux exemples parce que ce sont deux des acteurs majeurs dans l'informatique et la téléphonie mobile et qu'ils ont des antécédents d'espionnage.

  • [^] # Re: C++ / Modèle Objet

    Posté par  . En réponse au journal [Bookmark] Qt fête ses vingt ans. Évalué à 7.

    Pour fonctionner, Qt utilise un préprocesseur (moc), qui va générer du code. Si on compile directement le fichier cpp, ça ne marchera pas.

    Il n'existe actuellement pas d'alternative en C++ standard, par exemple pour appeler une fonction par son nom.

  • [^] # Re: YakaFokon : ouvrir le courrier du voisin

    Posté par  . En réponse au journal Adoption du projet de loi relatif au renseignement en première lecture. Évalué à 2.

    Le but est de faire l'un puis l'autre. L'analyse du comportement à partir des métadonnées permet de déterminer des cibles, dans mon exemple aucun des contenus n'est lu. Une fois une cible déterminée tous les moyens sont autorisés, pour la cible et ses contacts.

    La loi dit aussi que ce ne sont pas seulement les terroristes qu'il faut surveiller. La protection des intérêts économiques (espionnage industriel), la défense de la forme républicaine des institutions (tout mouvement politique qui propose autre chose que la Veme république) rentrent dans le cadre.

  • [^] # Re: YakaFokon : ouvrir le courrier du voisin

    Posté par  . En réponse au journal Adoption du projet de loi relatif au renseignement en première lecture. Évalué à 1.

    Quand on parle de surveillance généralisée la priorité est donnée sur les métadonnées.
    Un bot aura du mal à faire la différence entre un commentaire ironique ou un sérieux, à s'adapter aux changements de la structure de la page (par exemple si des parties sont chargées dynamiquement, si des variantes mobiles ou régionales ont une structure différente, faire la différence entre la pub et le contenu, lier le contenu à un utilisateur et j'en passe certainement).

    Avec des métadonnées je sais que les présumés terroristes se connecte à l'IP X, puis chargent une ressource de 1ko sur l'IP Y suivie de 5ko sur cette IP Y. Il n'y a pas besoin de savoir ce que sont les sites ou les contenus sur ces adresses mais ce schéma est associé à un comportement suspect.
    Ensuite la nouvelle loi permet d'établir une surveillance ciblée sur la personne ayant ce comportement, ses proches et ses contacts.

  • [^] # Re: YakaFokon : ouvrir le courrier du voisin

    Posté par  . En réponse au journal Adoption du projet de loi relatif au renseignement en première lecture. Évalué à 2.

    Même en https il y a la taille du paquet, le lien temporel avec les autres paquets http/https et la durée du flux https.
    Rien qu'avec ces métadonnées on peut estimer si tu as juste vu un bouton j'aime sur une page ou si tu as effectivement cliqué dessus.

  • # Réaction ?

    Posté par  . En réponse au journal Adoption du projet de loi relatif au renseignement en première lecture. Évalué à 2.

    Comme beaucoup ici, je trouve ce vote scandaleux.
    Ce qui m'étonne est qu'il y ait si peu de réaction, pourquoi n'y a-t-il pas ou peu de manifestations pour soutenir la liberté, comme après les attentats ?

    Si il y en a de prévues, où sont-elles organisées ?

  • # Intérêt des hautes résolutions

    Posté par  . En réponse au message Recherche config ultraportable bien prise en charge par Linux. Évalué à 2.

    Je n'ai pas de recommandation sur les ultraportables du moment (j'utilise un Samsung 11" mais il n'est plus produit).

    Concernant l'écran, les résolutions très élevées sont utiles pour afficher du texte. C'est courant sur les tablettes et téléphones, la lecture est plus agréable.

  • [^] # Re: Un projet n'est pas que du C++

    Posté par  . En réponse au journal Gestionnaire de dépendances en C++. Évalué à 1.

    gérer le paramétrage de la configuration
    Qu'est-ce que tu entends par là ?

    Le système doit permettre de sélectionner des parties optionnelles, que ce soit pour choisir les fichiers à compiler ou des paramètres supplémentaires au compilateur. Et aussi les chemins à utiliser, pour l'installation et l'exécution.

  • [^] # Re: Un projet n'est pas que du C++

    Posté par  . En réponse au journal Gestionnaire de dépendances en C++. Évalué à 2.

    make permet de tout faire, mais il est difficile de garder un Makefile lisible dès qu'on a plusieurs modules, quelques options de compilation.

    De manière générale le problème est celui de la lisibilité des fichiers et leur apprentissage. J'ai l'impression de perdre beaucoup de temps dès que je dois faire quelque chose de plus.
    Et finalement on a toujours quelque chose à apprendre : générer la documentation, les fichiers de traduction, utiliser des outils pour son toolkit (moc), générer des sources et d'autres seront plus créatifs.

    Ce que je veux, mais je ne sais pas comment y parvenir est un système qui soit aussi générique qu'un Makefile, simple à prendre en main, robuste, facile à lire, capable de gérer les tous les outils de génération (pas seulement les compilateurs).
    En attendant j'utilise cmake ou les autotools.

  • # Un projet n'est pas que du C++

    Posté par  . En réponse au journal Gestionnaire de dépendances en C++. Évalué à 2.

    Je voudrais que le système pour construire mon projet puisse faire beaucoup de choses
    - gérer le paramétrage de la configuration
    - générer des fichiers source à compiler
    - permettre de construire des ressources autres que les exécutables, comme des images générées, de la documentation, des fichiers de configuration
    - s'intégrer à des outils pour faire des paquets pour les distributions

    Et encore dans mon cas je voudrais pouvoir compiler des parties différentes du projet avec des chaînes de compilation différentes (emscripten pour une part, natif pour l'autre).

  • [^] # Re: Comparaison ?

    Posté par  . En réponse au journal Journal Bookmark #2. Évalué à 4.

    Il ne s'agit pas de supprimer les pointeurs, mais de les rendre moins dangereux.
    Les "smart pointers" sont des objets qui encapsulent un pointeur pour offrir certaines garanties, ils existent depuis longtemps par la bibliothèque boost, et maintenant directement dans le standard avec C++11.

    Un unique_ptr représente la propriété exclusive d'un pointeur, quand l'objet unique_ptr est détruit, l'objet vers lequel il pointe l'est également. Il n'est pas possible de le copier, il faut explicitement le déplacer. Du coup un objet contenant un unique_ptr ne pourra par défaut pas être copié et on évite le problème spécifique de l'article.

    Un shared_ptr représente la propriété partagée d'un pointeur, on peut en faire des copies et lorsque la dernière est détruite l'objet pointé est détruit.

    En C++ le compilateur ne va jamais prouver que le code ne fait pas d'erreur, mais les outils permettent si ils sont utilisés correctement de lever des alertes ou erreurs de compilations en cas de mauvais usage.

  • [^] # Re: Jolla et le libre

    Posté par  . En réponse au journal Fiche produit Microsoft - N900. Évalué à 6.

    Les kernels Android sont généralement issus de fork avec des modules ajoutés n'importe comment par les constructeurs. Rien n'est fait pour faire intégrer le support dans le kernel officiel, il n'y a donc aucun support sur le long terme (c'est à dire plus de 2 mois environ).
    De plus ces kernels demande souvent une version précise du compilateur pour fonctionner, des paramètres très spécifiques du chargeur de démarrage et ne sont testés qu'avec une seule configuration.
    On est donc dépendants du système d'exploitation fourni avec l'appareil et du bon vouloir du fabriquant.

    Si demain Firefox OS décide qu'il faut utiliser une fonctionnalité du kernel 3.18 pour une raison quelconque, il sera impossible de faire la mise à jour sur un téléphone.

    Pour ce qui est de la liberté des utilisateurs, voyons les réponses par rapport à la définition de la FSF:
    0. la liberté d'exécuter le programme, pour tous les usages ;
    Certaines APIs ne sont accessibles que par les programmes installés de base avec le système, et rien ne force un téléphone sous Firefox OS à permettre de flasher avec son propre OS

    1. la liberté d'étudier le fonctionnement du programme et de l'adapter à ses besoins ;
      Idem, la tivoization est possible

    2. la liberté de redistribuer des copies du programme (ce qui implique la possibilité aussi bien de donner que de vendre des copies) ;
      Ici ça a l'air bon

    3. la liberté d'améliorer le programme et de distribuer ces améliorations au public, pour en faire profiter toute la communauté.
      Idem, c'est bon

  • [^] # Re: Jolla et le libre

    Posté par  . En réponse au journal Fiche produit Microsoft - N900. Évalué à 1.

    Firefox OS est basé sur Android (pour le kernel et les pilotes graphiques du moins) et ne pousse pas les utilisateurs à être libres. Il ne remonte pas non plus de grandes contributions au reste de l'écosystème, Jolla participe au développement de Qt et un peu toutes les briques qu'ils utilisent.

    Ubuntu touch n'est pas encore réellement disponible, l'approche semble être celle d'avoir une Ubuntu complète avec une interface adaptée, ce qui serait plutôt bon. Il y a par contre un gros problème d'image vis-à-vis du libre : la réputation de non contribution et la décision de développer Mir au lieu de Wayland.

  • [^] # Re: Débuggage

    Posté par  . En réponse au message Exercice shell script. Évalué à 3.

    Il existe aussi (du moins en bash) la commande set -x
    Lorsque ce mode est activé, bash va afficher toutes les commandes avant de les exécuter.