fearan a écrit 7241 commentaires

  • [^] # Re: chauve qui peut

    Posté par  . En réponse au journal "Tant pis, ce seront nos enfants qui paieront". Évalué à 2.

    Tu peux aussi ajouter le cas du dirlo qui se barre avec la caisse.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Liberté de l'utilisateur

    Posté par  . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 2.

    Crée ton optional avec levée d'exception si tu y accède alors qu'il n'existe pas, ou utilise value_or pour avoir une valeur avec du sens; je ne vois pas vraiment ce que l'on peut faire de mieux.

    Il vaut mieux lire l'interface exposée ici pour se faire une idée.

    http://en.cppreference.com/w/cpp/experimental/optional

    pour son exemple

    std::optional<D> foo(Arg arg)
    {
        auto fResO = f(arg);
        if(!fResO)
        {
            return std::optional<D>{}; // un optional vide
        }
    
        auto fRes = fResO.value();
    
        auto gResO = g(fRes);
        if(!gResO)
        {
            return std::optional<D>{}; // un optional vide
        }
    
        auto gRes = gResO.value();
    
        return std::optional<D>{h(gRes));
    }

    Je me contenterai de

    std::optional<D> foo(Arg arg)
    {
      try{
        return make_optional(h( g( f(arg).value() ).value())) ;
       }
       catch(Machin e)
       {
        return std::optional<D>();
       }
    }

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # Mauvaise connaissance du c++

    Posté par  . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 5.

    Cependant, rien ne force le développeur à gérer les exceptions et rien n'indique à celui-ci qu'une fonction peut lancer une exception, si ce n'est une lecture scrupuleuse de la documentation. Certains langages, comme Java, proposent un système d'exception qui force le développeur à gérer celles-ci ou à les propager explicitement à la fonction appelante.

    Pour la stl, les exceptions sont rare uniquement si tu le réclame, optional à un option de construction qui lui permet de jeter une exception lorsque tu utilisas values() si tu lui réclame.

    Tu as aussi le value_or() qui permet d'avoir une valeur par défaut si on a rien. C'est pareil avec les ios, les dynamic_cast, les conteurs (at() au lieu de operator[]… )

    Le fait d'avoir le choix est une bonne chose, je ne compte pas le nombre de

    Machin ma = null ; 
    try{
      ma=pouet() ;
    }catch(ExceptionMachin ignored){}
    }catch(ExceptionBidule ignored){}
    }catch(ExceptionTruc ignored){}

    que je croise en java pour devoir gérer le fait que l'on sait qu'on a pas d'exception dans ce cas précis, mais qu'on doit faire comme si. Avec en prime le fait que le compilo pense que ma peut être null, ce qui peut faire chier au niveau de certaines annotations, donc faut encore en rajouter…

    Heureusement depuis java 7 on peut cumuler les catch (catch ExecptionMachin|ExceptionTruc|ExceptionBidule|ExcetionCasseCouille|ExcetptionJeDepasseLaLigneDe120Caractere|ExceptionJenAiEncore e)

    Le code java est pollué par de la gestion de truc qui n'arrivent jamais, et le jour où ça arrive, c'est tellement ignoré que ça passe à la trappe; j'ai une préférence pour faire un printstacktrace, au cas où.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: C++ et exceptions

    Posté par  . En réponse au journal Gestion de l'erreur - C++ - std::optional. Évalué à 3. Dernière modification le 05 septembre 2016 à 10:04.

    tu peux aussi ajouter les dynamic_cast T& qui te jettent une exception std::bad_cast, alors que les dynamic_cast T* vont te renvoyer un pointeur null dans le cas où ce n'est pas possible.

    En c++ on a le choix et c'est bien. Je déteste devoir parsemer mon code de try/catch pour une gestion qui peut s'agrémenter de if ou ?;

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Peucrédible

    Posté par  . En réponse au journal Un ransomware tout à fait déloyal ... et inquiétant. Évalué à 2.

    Hou Hou, j'ai souvenir d'un client qui était venu nous voire justement pour trouer la sécurité (pas trop quand même, juste un tunnel ssh) pour faire fonctionner un morceau de l'appli, mais qui en raison de la politique de sécurité de l'entreprise, ne pouvait pas fonctionner. Le temps de mettre à jour la config, il a bien fallu passer autour. (Le problème des grosses entités, faut que ce soit validé par tous les n+[1-3], avec le risque que quelqu'un qui n'y connait rien bloque la procédure, ensuite demander au gestionnaire du réseau (qui est encore une autre entreprise), de mettre à jour la conf…

    Bref t'en as pour 6 mois de procédure pour avoir ta mise à jour de configuration, le tout pour une passerelle qui va durer 8 mois; donc si on respecte la procédure, 2 mois d'activité.

    Évidemment si une personne s'était penché sur la problématique avant la mep, on aurait pu faire la demande avant, mais le dev pensait que ça allait passer par les chemins habituels, pas de bol, on lui a spécifié ce détail pas longtemps avant le rendu :P.

    Ah je vous avais dit que chez ce client faut se battre pour avoir les spec avant le début du développement (et encore quand c'est pas à nous de les rédiger à partir d'une expression du besoin).

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Question ...

    Posté par  . En réponse au journal Un ransomware tout à fait déloyal ... et inquiétant. Évalué à 5.

    Oui d'où l’intérêt pour certains services de prendre les sous et ne pas rendre les données (on peut imaginer pareil avec des otages, mais c'est plus limite coté éthique); et bien médiatiser le tout. Lorsque les gens seront persuadés à 99% de ne pas pouvoir récupérer leur données le business s'écroulera tout seul.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Peucrédible

    Posté par  . En réponse au journal Un ransomware tout à fait déloyal ... et inquiétant. Évalué à 7.

    Perso j'ai une nette préférence pour fail2ban avec une limite à 10 tentatives. De toutes façons les bots se plantent sur les logins (seul un login peut facilement être devinable, et c'est pas dans les premier testés)

    Le changement de port à tendance à bloquer lorsqu'on passe par des firewall un peu psychopathe qui limitent les ports de destination.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Duff's device

    Posté par  . En réponse au journal Switch, chaîne constante et c++. Évalué à 2.

    je suis pour laisser le compilo gérer ce genre d'optimisation comme un grand; Ensuite ça illustre assez bien le fonctionnement d'un switch/case en C/C++.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Quel est le but ?

    Posté par  . En réponse au journal Bienvenue en Musulmanie !. Évalué à 4.

    Desproges se contentait pas de balancer des conneries, il les travaillait ses récits.

    Aujourd'hui il serait incapable de diffuser ses chroniques de la haine ordinaire.

    On en arrive à l'éternelle question de de qui distingue une blague juive d'une blague anti-sémite, sauf qu'avec l'ère d'internet, ce n'est plus que celui qui raconte qui change la donne.

    Désormais, il faut faire de l'humour aseptisé, ne jouer sur les clichés que si l'on fait parti de la population visée par le cliché, et lorsqu'on touche un autre cliché, on a intérêt à être un humoriste reconnu, et encore ce n'est pas toujours suffisant.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Bein ouais ... c'est bien connu !

    Posté par  . En réponse au journal Tout le monde déteste les flics !. Évalué à 5.

    ça ressemble à du remplacement automatique à l'aveugle. (Bah oui généralement on écrit comme on parle, par la suite il est obligé de rajouter des circonvolution artificielle qui rendent son texte ridicule. );

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: 100% des poulets français sont donc pro-FN ???

    Posté par  . En réponse au journal Tout le monde déteste les flics !. Évalué à 2.

    effectivement le Gorafi a besoin de clown, il peut donc faire l'affaire o/

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 3.

    Mais regarde ta version bash, tu trouves ça pratique et simple?

    Pratique non, simple oui.

    (sinon pour ceux que ça intéresse, y a encore une autre solution mixant perl et bash :

    perl -lpe '$_=hex' file.txt | \
    paste -d" " - file.txt  | \
    sort -n | \
    cut -d" " -f 2-

    trouvé ici (en même temps que la question originale ) http://ask.systutorials.com/813/how-sort-file-hexadecimal-numbers-linux-using-sort-command (Mai 2014)

    Manque encore une réponse python et awk, qui s'y colle.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 3.

    oh un truc comme ça alors :

    cat val.txt| while IFS=" " read hex reste ; do RES[16#$hex]="$hex $reste"; done && printf "${RES[*]}"

    ou si tu veux en perl (je pense qu'il y a moyen de faire plus simple, mais j'ai la flemme de chercher)

    perl -we 'print sort { hex((split / /,$a)[0]) <=> hex((split / /,$b)[0]) } <>' val.txt

    selon la version de perl il faudra potentiellement utiliser les bigint

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Pas logique ou militant licence MIT

    Posté par  . En réponse au journal Faut-il défendre la GPL devant les tribunaux ?. Évalué à 2.

    Ben justement, je répond que oui, et vous demande de contre-argumenter si vous pensez que non.

    J'ai vu pas mal de restau afficher pique-nique interdit, avec assez souvent un serveur ou un cuistot qui vient le rappeler aux pique-niqueur, leur demander d'acheter au moins une consos s'ils veulent rester.

    Généralement soit ils achètent, soit ils partent; jamais je n'ai vu débarquer la police, et même si le gars appelait la police pour gérer le soucis, vu le temps qu'elle mettrait à se déplacer, les contrevenant aurait déjà dégagés (fini de manger).

    Pas que j'approuve le choix de ne pas faire respecter la licence, juste que je trouve ta foi en l'être humain particulièrement déplorable, en plus d'être inexacte.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: curieux

    Posté par  . En réponse au message purger le cache RAM après archivage et zippage de gros dossiers. Évalué à 2. Dernière modification le 26 août 2016 à 16:17.

    dans ce cas il faut le mettre au dernier moment avec le minimum de |

    typiquement tar zcvf - $dir | throttle -M10 > $destdir/dir.tar.gz

    histoire de compresser dès le début et avoir le throttle sur le flux réel et pas avant compression; mais là encore on a aucune garantie que le tar s'est bien déroulé

    si tu peux écrire le fichier en local (quitte à monter un volume en loop ou sur un disque temporaire), tu peux créer le fichier en local puis le déplacer sur le volume distant, de préférence avec rsync sans passer par le nfs

    tar zcvf /chemin/temporaire/${dir}.tar.gz $dir && rsync -e ssh --remove-sent-files  --bwlimit=KBPS /chemin/temporaire/${dir}.tar.gz user@seveurNFS:/chemin/destination/sur/le/serveur 
    
    # au pire tu peux aussi donner le chemin destination remplacer 
    user@seveurNFS:/chemin/destination/sur/le/serveur par  $destdir/${dir}.tar.gz,

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: sync ?

    Posté par  . En réponse au message purger le cache RAM après archivage et zippage de gros dossiers. Évalué à 2. Dernière modification le 26 août 2016 à 15:43.

    attention tu mixes 2 commandes :)

    tar cvf machine > destination

    et

    tar zcvf destination machin

    donc déjà ça ne va pas marcher (il manque la destination à la première commande; et ensuite tu gzip 2 fois (z) ;)

    et je ne vois toujours pas l'intérêt de throttle mais je n'ai pas toutes les infos ;)

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: bof

    Posté par  . En réponse au journal Faut-il défendre la GPL devant les tribunaux ?. Évalué à 10.

    C'est pour cela qu'il faut respecter l'étape 1, c'est obligatoire, même si la grosse boite le fait sciemment; cela permet lors de l'étape 2, de le montrer, puis lorsqu'on arrive à l'étape 3 d'avoir un poids et une communauté plus importante derrière soi.

    De même le juge sera plus à l'écoute si tu montres que tu as essayé de réglé le problème à l'amiable.

    Bref quoi qu'il arrive, toujours essayer l'arrangement à l'amiable; le juge est censé être le dernier recours.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # curieux

    Posté par  . En réponse au message purger le cache RAM après archivage et zippage de gros dossiers. Évalué à 2.

    j'ai un doute sur l'utilité di throttle, tant que tu ne joues pas sur le réseau, ça ne devrait pas trop poser de problèmes, j'ajouterai que ta commande joue avec 3 pipe | throttle | (je considère throttle comme un pipe), là ou un tar zcvf $dirdst/$dir.tar.gz $dir suffirait (mais on a pas le throttle; mais là encore si c'est pour la capacité de destination, il n'est pas au bon endroit
    tar zcvf $dir | throttle -M 10 > $dirdst/$dir.tar.gz

    Et si c'est tar qui n'a pas l'option z, tar cvf $dir | gzip | throttle -M10

    enfin j'aurais tendance à préférer l'usage de la commande tout en un (tar zcvf ) pour la simple et bonne raison que

    true | true | false
    va donner un $? à faux
    alors que
    false | true | true
    va donner un $? à vrai, or le tar aura foiré (incomplet).

    Quant au cache, je ne vois pas trop duquel tu parles, si c'est celui qui est affiché par la commande free, c'est normal qu'il soit plein, et ça ne fait pas planter la machine.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # bof

    Posté par  . En réponse au journal Faut-il défendre la GPL devant les tribunaux ?. Évalué à 10. Dernière modification le 26 août 2016 à 11:46.

    je suis plus partisan de la réponse à étape :

    • Prise de contact et explication (en restant modéré et poli)

    Si pas de réponse ou réponse négative

    • Rappel du respect de droit d'auteur envers le contrevenant, et mise en place du pilori (ie faire un post sur un blog bien fréquenté et filer le lieu au vil pirate)

    Si toujours rien

    • Lancement de la procédure judiciaire, avec copie de la mise en demeure sur des sites susceptible d'être clients de l'entreprise, avec lien vers l'article précédemment publié pour montrer qu'on a essayé d'être aimable.

    Normalement ça devrait permettre un règlement à l'amiable, sans aller jusqu'au procès.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 2.

    Oui enfin là on attends toujours ton exemple de comment faire en PS; comme il semblerai que tu ais agrégé des sources hors contrôle, je doute que tu puisse t'affranchir du parsing du texte pour le convertir en objet comme tu dis avec le risque de te planter lors de la rédaction de la desserialisation ou sérialisation; j'ajouterai que si pour trier un bête fichier texte sur une clé hexa, je dois écrire 5 lignes, c'est qu'il y a une couille quelque part.

    et ensuite tu peux faire les traitement que tu veux de manière simple et sûre,

    Qu'entends tu par simple et sure? Pour prendre exemple sur le c++ ou le java c'est pas le fait qu'un langage soit objet à typage fort qui le rend simple ou sûr; à moins de blinder ton parseur, il est très probable que l'on trouve des solutions pour l'envoyer dans les choux, et là on se heurte au premier problème, si ça devient trop gros/compliqué, on passe par du perl/c/c++/python/ruby…

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 1. Dernière modification le 26 août 2016 à 09:42.

    quand je fais du shell, je connais le format à l'avance, c'est généralement un enchainement de commandes; si c'est pour traiter des fichiers textes, j'aurais tendance à utiliser perl ou python; pour ton exemple simple, le shell suffit.

    sed -r 's/^/0x/' < val3.txt | sort -g -k1

    tu n'es vraiment pas allé cherché loin.

    je m'amuses à devoir traiter des données qui sont le résultat d'opérations sur un fichier reçu d'une boite externe histoire de sortir des stats.

    et comment fais-tu la différence entre un nombre en octal/décimal/binaire/hexadécimal?

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 2.

    faut arrêter un minimum la mauvaise foi, pas que je critique ta religion, j'ai aussi tendance à la pratiquer, mais tu as demandé explicitement 0xaef, notation hexadécimale facilement reconnaissable; dans l'exemple que tu donnes.

    Rajoute un 0x en début de chaque ligne tu auras le résultat escompté.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 3.

    sort -g ?

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Tu vends du rêve

    Posté par  . En réponse au journal Microsoft: Powershell libéré. Évalué à 2.

    faire du tri avec le formattage texte…

    sort -n ?

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • [^] # Re: Powershell et cURL - mauvaise volonté

    Posté par  . En réponse au journal PowerShell sur Linux. Évalué à 7.

    tout comme les politiques

    Au vu du résultat, je serai plus pour mettre les politiques au salaire médian, ils pourraient garder les pieds sur terre, et essayer d'améliorer le médian afin d'améliorer leur salaire :P.

    Bien les payer pour éviter la corruption avait un sens (et encore) quant les sommes en jeu étaient encore à dimension humaine, mais aujourd'hui les sommes en jeu sont immense et le salaire d'un centaine de député rentre dans les miettes des sommes en jeu.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent