fearan a écrit 7448 commentaires

  • [^] # Re: pouvoir exhorbitant...

    Posté par  . En réponse au journal Chaque été depuis 9 ans, Altran enclenche une procédure de licenciement contre un délégué syndical. Évalué à 6.

    Car c'est connu qu'un patron qui souhaiterait se débarrasser d'un employé

    Y a une procédure à respecter, dont des indemnités à payer, et ce qui passe aux prud'hommes généralement a un petit accident de procédure.

    Je connais quelqu'un qui est venu à son entretien préalable au licenciement avec un avocat, officiellement pour insuffisance professionnelle, mais bon le vrai motif c'est qu'il avait refusé de faire des heures sups; curieusement y a plus rien eu de reproché, et il est toujours en poste.

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

  • [^] # Re: pouvoir exhorbitant...

    Posté par  . En réponse au journal Chaque été depuis 9 ans, Altran enclenche une procédure de licenciement contre un délégué syndical. Évalué à 9.

    …après cette lecture: je me demande juste ce qu'il se passe après, est-ce que la personne peut/doit réintégrer l'entreprise?

    Généralement, après un licenciement abusif les prud'hommes peuvent demander la réintégration du salarié.

    les procédures abusives ne sont aucunement punies ?

    Avant quand y'avait une grosse déconne de la part de l'entreprise il pouvait y'avoir de gros dédommagement, mais depuis peu c'est plafonnée pour permettre aux entreprises d'évaluer les risques financier lorsqu'ils tentent de virer un gars.

    Globalement, il faudrait rendre les preneurs de décision (ou exécutant) responsable lors d'exaction de ce genre, car typiquement les plus pénalisé sont les collègue du monsieur qui vont voire leur entreprise pénalisé. (en plus de pourrir l'ambiance)

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

  • # yep

    Posté par  . En réponse au journal Le quiz c++ de l'été - Débriefing. Évalué à 4.

    Au turbin, c'est encore plus exacerbé par notre tendance à utiliser les shared_ptr

    Chez nous c'est la même, je lutte tous les jours pour que les collègues arrêtent cette hérésie

    Plus d'une fois on tombe sur du code

    f(shared_ptr<Truc> truc)
    {
       [...]
       truc->machin()
    }

    Le tout sans aucun contrôle sur l'existence de truc ( if (truc) par exemple )

    Je parle même pas d'un quelconque const qu'on pourrait avoir

    shared_ptr<const Truc>

    Attention hein je ne suis pas contre l'utilisation des shared_ptr, je suis contre leur utilisation systématique.

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

  • [^] # Re: Au niveau binaire

    Posté par  . En réponse au message POKER :determiner si une main est une couleur ou non. Évalué à -1.

    en même temps coder en python, l'intérêt est limité ;)

    Blague à part en C j'aurais plutôt codé la couleur sur un char

    • les 4 premier bits : la couleur (masque)
    • les 4 suivants le chiffre de la carte

    ou à la rigueur sur 4 octets

    • les 4 premier bits : la couleur (masque)
    • les 13 derniers bits la valeur de la carte (et oui, on est à 17 bits, ce qui ne passe pas dans un short;

    Si on tiens au masque de bit pour que ça tienne dans un short, il faut considérer que l'absence de marqueur est une couleur, mais adieu les jeux de tarots.

    En python, il vaut mieux jouer avec des classes ou des paires ('T',7), voire utiliser des Enums https://docs.python.org/3/library/enum.htm , utiliser des caractères c'est moche

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

  • [^] # Re: Godbolt

    Posté par  . En réponse au journal Le quiz c++ de l'été. Évalué à 2.

    Vi et faut aussi faire gaffe à ce que la comparaison ne soit pas plus longue que la copie; sinon on perd un peu l'intérêt du schmilblick.

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

  • [^] # Re: Godbolt

    Posté par  . En réponse au journal Le quiz c++ de l'été. Évalué à 5. Dernière modification le 24 août 2018 à 09:58.

    Ici y a rien de sorcier, dans le cas de la copie du paramètre pour le stocker ensuite, en C++11, on va avoir (copie + déplacement), en pré c++11 on aura 2 copie; dans les deux cas le résultat est strictement identique.

    Le cas du passage de référence et plus taquin mais on aurait exactement le même problème en pointeur nu, ou en référence sans shared_ptr; si la ressource est désallouée par un autre thread on a une référence sur nulle part (ou un pointeur sur nulle part)

    tout ça pour ce qui est essentiellement des micros optimizations impossible à mesurer pour la majorité des cas d’usages.

    c'est ce qui permet de retourner un conteneur de plusieurs dizaines de milliers d'éléments (potentiellement complexe) sans passer par des pointeurs (du point de vue codeur).

    Presque tous les autres langages passent par référence, mais pas toujours; si tu veux qu'on parle des truc marrant de java ou python, justement sur le passage de paramètre

    • Comment changer une String, un int, ou un Float passé en paramètre d'une fonction en java ? Alors que la quasi totalité des objets ça se fait sans se poser de question.
    • Pourquoi ce p* de paramètre par défaut en python change à chaque appel ?

    Toujours de ce qui en découle, hormis quelques objets, il est impossible de filer un objet en paramètre ou retour d'une fonction (ou d'un objet) et d'être certain qu'il ne va pas être modifié; Alors tu as bien les ImmutableList, mais c'est du runtime. La seule solution c'est de passer par des copies… Là où une const& fait parfaitement l'affaire.

    On en arrive à ce genre de truc http://www.javapractices.com/topic/TopicAction.do?Id=15 ; devoir faire des copies inutiles, des constructions d'objets des allocations…

    Le c++ n'est pas parfait, loin de là, il permet de faire des grosses boulettes, mais je ne connais aucun langage permettant facilement le choix entre copie/référence, const/mutable (y a pas que ça mais c'est le fil du thread)

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

  • [^] # Re: Godbolt

    Posté par  . En réponse au journal Le quiz c++ de l'été. Évalué à 5.

    Justement imagine que tu passe ton shared_ptr par copie, puis que tu le stock dans ton objet, tu as 2 copie (avec comptage de référence); certes avec les opérateurs de déplacement y a des chances qu'on ait pas la deuxième copie, mais en pre-c++11 (version boost) on a pas cette mécanique.

    Si tu le passes par références pour le stocker tu n'as qu'une seule copie.

    Cependant il faut bien faire attention lorsque l'on joue avec du multithread

    https://stackoverflow.com/questions/3310737/should-we-pass-a-shared-ptr-by-reference-or-by-value

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

  • [^] # Re: Un temporaire en plus

    Posté par  . En réponse au journal Le quiz c++ de l'été. Évalué à 2.

    Mais une référence de type A

    Oui évidemment, c'était clair dans mon esprit, mais peut être mal retranscrit. Le passage d'un shared_ptr ne doit se faire que lorsqu'il y a un partage sur la possession d'un pointeur et uniquement dans ce cas, ce qui normalement est assez rare.

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

  • [^] # Re: Un temporaire en plus

    Posté par  . En réponse au journal Le quiz c++ de l'été. Évalué à 3. Dernière modification le 23 août 2018 à 16:44.

    Je dirais plutôt :

    si g n'a pas besoin de posséder la variable ET qu'elle peut être nulle, alors un pointeur nu fait l'affaire
    si g n'a pas besoin de posséder la variable ET qu'elle est forcément définie alors un passage par référence est largement préférable

    Ne pas oublier de mettre des const lorsque c'est possible.

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

  • [^] # Re: Les avantages de C++ ne sont pas bien différentes avec Rust

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 1.

    La gestion de la mémoire en C++ est dangereuse particulièrement car l'utilisation correcte du RIAA est à la charge du développeur

    Oh trop dur faut trouver un développeur qui réfléchit… Même java se rends compte que l'absence de cette fonctionnalité est gênante et se mette à avoir du try with ( Closable… )

    Mais merde quoi, faut que les gens soient un minimum formés; et quand on fait une liste pour stocker les messages entrant, il faut à un moment se poser la question de fréquence, taille et nombre qu'on stock. C'est une problématique qui n'est pas nouvelle; mais j'ai l'impression qu'avec la grande quantité de RAM à pas cher on omet de contrôler ce détail.

    En c++ tu écrivais un new, il fallait nécessairement se poser la question du delete, et ça pouvait vite tourner au cauchemar pour peu que la suite pouvait péter des exceptions en cour de route, et encore… un dev avisé pouvait se servir d'auto_ptr

    maintenant c'est encore plus simple avec uniq_ptr.

    La RAII, c'est un peu fermer ta connexion quand tu n'en a plus besoin (coucou les finally, closable maintenant), et merci aux ftp limités à 5 connexions, c'est aussi ces même mécanisme qui te permettent d'avoir un logger sax qui va pas te laisser un xml invalide (ou faux) parce que tu as pété là où tu ne le pensais pas.

    Et c'est loin d'être les seuls exemples, mais un mauvais codeur trouvera toujours le moyen de faire de la merde; et s'il ne se pose déjà pas les bonnes questions faut peut être en changer ;)
    Par contre effectivement avoir un Warning : you used new operator, this is so old school, serait pas mal

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

  • [^] # Re: Conclusion?

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 5.

    Bof on est pas obligé de se farcir toute la complexité du langage du premier coup aussi hein ;)

    On peut se limiter à un sous ensemble, et agrandir ce sous ensemble avec le temps et la pratique; cependant certains reflexes sont difficile à perdre ou à prendre; le pire étant de prendre un langage à syntaxe proche, mais fondamentalement différent.

    J'ai vu beaucoup trop de codeur venir de java et faire du c++ comme s'ils étaient en java.

    • Et que je te met un new à la place d'une variable locale
    • et que je ne fait que du shared_ptr parce que c'est trop compliqué de réfléchir un minimum
    • et que je t'écris un singleton qui te renvoie un putain de shared_ptr
    • et que je fais un find suivit d'un insert dans une map pour ajouter s'il n'est pas déjà la…
    • et que je ne te met pas les const sur les getter ou const ref ou…
    • et que je te réécris la même fonction avec un je de paramètres différent parce que j'ai pas pensé aux paramètres par défaut…

    Et j'en passe

    Et j'ai parlé de la gestion des const?

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

  • [^] # Re: Détail

    Posté par  . En réponse au journal Google + Commission Européenne = KABOUM. Évalué à 4.

    c'est marrant ça me rappelle le fonctionnement de Microsoft à la grande époque; pour la pré-installation de Windows.

    Pour le point 1, si je me souviens bien, sur mon GS2, c'était le navigateur moisi de samsung qui était fourni par défaut. Je comprends parfaitement que dans ces conditions ils imposent un navigateur potable, c'est une question d'image (par contre ils auraient pu faire un choix au démarrage, comme MS l'a fait pendant un temps) ; par contre y a un paquet de services qui n'ont pas à être imposés (tous les google play).

    Les points 2 & 3 sont inadmissible

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

  • # je demande au grand méchant

    Posté par  . En réponse au journal Recherche sur DLFP. Évalué à 10.

    avec une précision : "site:linuxfr.org"

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

  • [^] # Re: whaou

    Posté par  . En réponse au message Problème de script SHELL. Évalué à 2.

    le soucis c'est que lorsque tu chope un espace la variable ne récupère rien ;)

    tu peux donc tester

    while read -n1 character; do
    echo "[$character]"
    if [ -z "$character" ]
    then
     echo "Espace"
    else
     echo autre
    fi
    done

    j'ai toujours tendance à 'encadrer' mes variable dans mes trace de debug dans ce cas précis tu aurais de suite vu le soucis

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

  • # whaou

    Posté par  . En réponse au message Problème de script SHELL. Évalué à 7.

    1er problème :

    Tester des script en tant que root. JAMAIS!!!

    2eme problème :

    il faut rajouter un espace entre tes [[ et le "$character" sinon tu cherches à appeler la commande "[[4" qui n'existe pas.

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

  • [^] # Re: Tu ne peux donc plus participer à aucune projet ayant un historique fiable

    Posté par  . En réponse au journal Gitlab.com interdit de supprimer ou modifier ses informations personnelles. Évalué à 2. Dernière modification le 28 mai 2018 à 09:10.

    Et aupassage je rappelle que la license GPL oblige à mettre les code sources à disposition pendant 10 ans quand on distribue un programme. Donc si tu es contributeur à un projet sous GPL tu es déjà obligé d'assurer de la perrenité…

    La disponibilité des sources n'a rien à voire avec la pérénité d'une adresse mail, tu peux très bien filer le code source en même temps que le programme. Hop, plus besoin de conserver un quelconque serveur pendant 10 ans. Tu peux aussi distribuer ton code uniquement et laisser les utilisateurs le compiler;
    Bref c'est un problème orthogonal à l'impossibilité de changer une adresse mail.

    C'est sympa d'expliquer le pourquoi, mais ça ne règle pas le problème.

    En revanche Nud explique l'existence du .malmap qui permet de palier à ce problème; je n'ai donc plus d'objection.

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

  • [^] # Re: Tu ne peux donc plus participer à aucune projet ayant un historique fiable

    Posté par  . En réponse au journal Gitlab.com interdit de supprimer ou modifier ses informations personnelles. Évalué à 1.

    absolument rien n’empêche de mette "blabla blabla@example.com".

    Super pratique pour être contacté… Sans oublier ceux qui font ça avec leur adresse pro, changement de boite => changement compte.

    tu peux associer une adresse email "virtuelle" à un compte, et voila.
    Ca serait parfois plus pratique (genre on change d'adresse)

    Je serai curieux de savoir quel est la proportion de gens ici à savoir le faire, et s'ils sont capable d'en assurer la pérennité sur plus de 15 ans.

    C'est un choix, oui, reste à savoir si on a envie de changer ça, ou si l'actuel ne convient finalement pas mieux, c'est un débat, mais qui n'est pas lié au RGPD à mon avis.

    Le fait de mettre comme partie intégrante des données des informations à caractère personnel, et se cacher derrière une impossibilité technique pour refuser tout changement/suppression me parait non seulement douteux, mais aussi dangereux. Il suffirait qu'un procès décrète qu'il faut obligatoirement supprimer ces référence et c'est le repo qui va perdre en cohérence.

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

  • [^] # Re: Tu ne peux donc plus participer à aucune projet ayant un historique fiable

    Posté par  . En réponse au journal Gitlab.com interdit de supprimer ou modifier ses informations personnelles. Évalué à 4.

    sans avoir besoin de passer par un annuaire centralisé.

    L'annuaire pourrait être fournis en même temps que le repos git; comme le code, et l'association se faire par le client.

    Si je prends comme exemple ma première adresse mail c'était en IUT; puis très vite caramail, ma troisième un truc sur hotmail pour msn. Aucune des deux première n'est active aujourd'hui, quant à la troisième j'y retourne moins d'une fois par an.
    J'en ai eu 2 autre à l'université.

    J'ai aussi une adresse sur un serveur perso, mais j'utilise plus vraiment.

    J'ai aussi une adresse datant d'avant le rachat de ma boite, perdu encore une fois.

    J'en ai eu une associé à mon compte yahoo, perdu aussi.

    Bref la seule qui a traversé les ans c'est celle de gmail, et j'essaye de limiter son emprise.

    Une adresse de courriel c'est un peu comme ton adresse postale, ça change…

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

  • [^] # Re: Tu ne peux donc plus participer à aucune projet ayant un historique fiable

    Posté par  . En réponse au journal Gitlab.com interdit de supprimer ou modifier ses informations personnelles. Évalué à 2.

    GitLab ne fait que mettre noir sur blanc le principe d'historique fiable.

    que le nom de l'auteur et son adresse de courriel fasse parti du commit me semble superflu; ce serait mieux si c'était un identifiant, et que cet identifiant soit rattaché aux informations personnelles; en cas de demande de suppression de compte, on supprime les données personnelles et on garde l'identifiant.

    Ça permet même de mettre ces données à jours ; dingue ça.

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

  • # j'ai plus simpe ;

    Posté par  . En réponse au journal Défragmenter une partition FAT32 sous Linux …. Évalué à 4.

    copie
    suppression (ou reformatage)
    déplacement ;)

    Bon cela nécessite d'avoir de l'espace disponible, mais c'est simple :P

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

  • [^] # Re: Gag

    Posté par  . En réponse au journal [MaVie] La grosse gaffe du jour ..... Évalué à 2.

    rm avec l’option '-i' par défaut n’incite qu’à acquérir le réflexe d’ajouter '-f' automatiquement

    pour toi peut être, chez moi non. si je veux court-circuiter le -i je fait \rm, et la mécanique de devoir préciser -f ou \ incite fortement à relire deux fois la commande, quitte à faire [ctrl]-[c] [flèche haut] [ctrl]-[a] [\] [return]

    Je recommande d'ailleurs le \ cela évite justement ton cas de figure.

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

  • [^] # Re: Gag

    Posté par  . En réponse au journal [MaVie] La grosse gaffe du jour ..... Évalué à 3.

    Une des raisons pour lesquelles je peste contre les distribs qui ne mettent pas rm -i en alias de base à rm. ça n'évite pas toujours les conneries mais ça aide pas mal.

    Pour cette même raison j'ai tendance à faire un rm d'un ficher nouvellement crée pour vérifier la présence de la question lorsque je sur en distant où une machine que je ne connais pas (oui un alias rm fonctionne aussi, mais un mauvais réflexe est dur à perdre ;)

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

  • [^] # Re: Blame the victim

    Posté par  . En réponse au journal [MaVie] La grosse gaffe du jour ..... Évalué à 2.

    utiliser rmdir à la place de rm -rf pour un dossier vide ;P

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

  • [^] # Re: Est-ce qu'on a le droit de ne pas s'inquiéter?

    Posté par  . En réponse au journal Le filtrage à la source. Évalué à 4.

    En fait le problème il est là.

    Tu sors l'exemple d'un morceau que tu juges digne d'être protégé, et tu l'étends à la totalité du code produit.

    Si tu veux voire jusqu'où les dérive du droit d'auteur va voir ici

    https://pitchfork.com/news/57774-jay-zs-run-this-town-copyright-infringement-lawsuit-thrown-out/

    Par ailleurs ton postula que deux codes sont fatalement différent est faux, j'ai des exemples sous mes yeux dans mon projet, et l'un des morceau est une fonction antérieur à la seconde portion de code, si la deuxième personne avait eu connaissance de la fonction, il l'aurait utilisé (on est pas payé à la ligne). L'exemple sur std::swap est assez parlant, la différence est du à une nouveauté du langage, qui est la move sémantic datant de c++11.

    Moi ce que je crains de ces conneries c'est le risque de la fin du code libre et de l'entraide entre les développeurs, le début de code avec des noms de variables à rallonge pour éviter une éventuelle détection.

    "Ah mais si on ne peut plus recopier du code c'est la fin du monde

    Non, c'est on ne peut plus coder, prends l'exemple que j'ai donné sur le for, cherche dans google, avec les guillemets, regarde le nombre de résultat à l'espace près, et après tu va prétendre que tous le monde à copié les uns sur les autres? Réfléchit un minimum à ce que ton automate de détection de copie soit capable de faire pour être un minimum pertinent.

    par exemple la séquence

    b.addActionListener( 
         new ActionListener() {    
           @Override 
           public void actionPerformed(ActionEvent e) {

    est très fréquente, selon les styles automatique tu peux l'avoir entre 2 et 4 lignes.

    Avec les dérive de la détection auto de youtube (chant d'oiseau ou bruit blanc par exemple), désolé de ne pas applaudir, quelque chose qui va prétendre que mon code, ma production est celle d'un autre.

    Toujours dans les exemple de 3/4 lignes qui vont faire tilter ton détecteur, encore java, un GridBagLayout, ou plus globalement tout ce qui se fait à coup de builder, tous les import (java/python) / include (c/c++)

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

  • [^] # Re: Est-ce qu'on a le droit de ne pas s'inquiéter?

    Posté par  . En réponse au journal Le filtrage à la source. Évalué à 4.

    Pas de bol, ça n'est pas l'implémentation de std::swap, qui utilise std::move

    Oups désolé de faire du C++ pré C++11, un manque de pratique :P;

    Ces filtres servent à empêcher l'upload de matériel protégé par le droit d'auteur

    justement soit il font plus que de la bête comparaison et ils sont inutiles si je copie comme un vandale du code le réarranger est trivial, un peu comme inverser une vidéo sur youtube ou la ralentir, c'est encore plus facile (shift-f6->refactor->rename)

    Prends ta souris, rajoute une trompe, grossis 1000 fois, et tu as un éléphant, donc une souris ressemble vachement à un éléphant.

    Si je prends Harry Potter, et que je renomme tous les personnages/lieux, ça reste Harry Potter.

    Les implémentations de patron de conception, sont toutes proche voire identique au renommage près.

    mais pourquoi tu lui inventes des contraintes;

    c'est pas une contrainte c'est le minimum pour que ça serve à quelque chose.

    Ensuite pour une raison de dérive usuelle des droit d'auteur je suis contre ce genre d'approche, déjà qu'on doit déjà se battre contre les troll de brevets, si on doit en plus se farcir les trolls de snipet de code, on est pas sorti de l'auberge; des chants d'oiseau se sont fait dégommer par youtube par exemple.

    Après, il y a peut-être quelques copieurs-colleurs fous qui mouillent un peu ;

    Je connais très peu de dev qui ne posent aucune question à google, les forum d'entraide entre développeur sont une ressource essentielle; si demain le gars qui vient de répondre sur SO se fait jeter son commit parce-que le gars qu'il vient d'aider a fait son commit avant, il réfléchira à deux fois avant d'aider.

    Et contrairement à toi, je ne pense pas qu'un calcul de somme, de moyenne, un tri ou autre brique élémentaire de code ne doive être monopolisé.

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