barmic a écrit 10455 commentaires

  • [^] # Re: Autres exemples rigolos

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 5.

    Je n'ai pas de mal à comprendre pourquoi lodash n'a pas cette popularité. Elle vient avec une façon de penser ou d'organiser son code particulière. Peut être que JS est fonctionnel (il y en a qui disait ça dans un journal précédent), mais beaucoup de développeurs JS ne le voient pas comme ça. Leur imposer une tel organisation, ça ne passe pas.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 7.

    De mon point de vu vouloir gérer les dépendances à partir des paquets de la distrib est peine perdue sortie de C/C++ et (j'imagine, merci de me corriger si ce n'est pas le cas) Java.

    Pour Java, il ne faut surtout JAMAIS vouloir gérer les dépendances par le système en java. JAMAIS, même pas un peu et il n'y a pas d'exception ou de cas particulier.

    Les dépendances sont gérer par ce que l'on appel un classpath. C'est une liste de dossiers ou d'archives jar (des zip) qui sont chargées au démarrage de l'application. Au cas où ça aurait échappé en première lecture, qui sont « chargées au démarrage de l'application ». Donc plus tu en as plus c'est long et lent (le chargement du classpath c'est ce qui consomme le plus au démarrage de la JVM), mais c'est surtout un bon moyen d'injecter une porte dérobée dans une application.

    Donc non, pas de gestion de dépendance système wide en java. Personnellement je préfère fournir un « fat jar » qui inclue les dépendances. Oui ça empêche les admin de faire une mise à jour d'une dépendance sans en parler au dev (comme c'est dommage).

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Dépendances

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 3.

    Tu la trouve où leftpad dans le norme C ? (choisie la version que tu veux, y compris celle en préparation si ça peut t'aider :) )

    Sachant que le code C équivalent est presque identique (on explicite plus les types et on fait une allocation mémoire de la bonne taille plutôt que de concaténer).

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Autres exemples rigolos

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 9.

    Je ne comprends pas pourquoi est-ce qu'un module n'a pas émergé avec un set de fonctions généralistes de ce genre ? Ça permet de tirer qu'une seul dépendance et d'avoir un set cohérent (on peut imaginer qu'elles s'utilisent plus naturellement les unes avec les autres). Bref un peu ce que fait boost en C++ ou guava en java.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Dépendances

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 2.

    Comment est-ce qu'on minifie du code python ? :)

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Dépendances

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 1.

    Tu base tout sur la qualité/l'image ou non du module, pour moi ce genre de réflexion s'approche du « ça n'arrive qu'aux autres ».

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Merci

    Posté par  . En réponse au journal L’homme orchestre, partie 2 : écrire du code (en Java). Évalué à 6.

    Ton retour est super intéressant !

    Mais j'ai quelques remarques :

    Éviter les get/set de vos variables privés (sauf dans le cas ou vous avez besoin de faire un check en entrée ou une transformation en sortie) […]

    Ok.

    […] et remplacez les get/set par un accès direct à la variable.

    Wow ! Non ! Tu expose le fonctionnement de ton objet, c'est vraiment pas génial comme fonctionnement.

    Collection<String> ids = // init
    obj.ids = ids;
    obj.foo();
    ids.clear(); // je viens de faire un clear() sur le champ ids de l'objet obj...
    obj.foo(); // BOUM ! 

    Au contraire on conseil de faire des recopies de sécurité dans les setter, mais le mieux c'est tout simplement d'éviter autant que possible les setters et d'utiliser des fonctions métier.

    Bannir les génériques en cascade comme des Map de List de List Ne pas hésiter à créer des classes pour étaler ses idées simplement, puis tout factoriser dans le moins de classes possible une fois que la logique est là.

    C'est bien. J'ajouterais juste que j'ai tendance à essayer d'utiliser les références les plus abstraites possibles. Mes fonctions prennent souvent des Collection en paramètre par exemple (sauf si j'ai besoin de quelque chose de plus précis).

    D’autre part les Threads servent aussi à monter en performance en faisant des calculs en parallèles, […]

    Pas toujours, bien souvent avoir plus de threads que de CPU n'apporte pas grand chose. Je te propose de regarder la littérature autour de la programmation réactive (en vf il y a ça de pas mal : http://blog.octo.com/jusquou-peut-aller-un-simple-ordinateur-de-bureau-avec-une-application-web-java-reactive/).

    […] mais ça demande d’avoir un très gros niveau technique pour y arriver, car si c’est mal fait, ce ne sera pas plus rapide ou alors ça fera boom !

    Personnellement, j'essaie toujours de bien comprendre l'organisation de mes threads. Lancer des threads via la classe Thread ne devrait AMHA presque jamais être fait par exemple.

    Une fois j’ai remarqué qu’un for sur les caractères d’une chaine avec plein de if allait 11 fois plus vite qu’une petite regex qui m’a pris des heures à écrire. Ça ma mis en rage quand j’ai découvert ça.

    Je ne comprends pas très bien ton exemple, mais est-ce qu'elle était compilée (ça sert à générer la machine à état une bonne fois pour toute ce qui prend pas mal de temps) ? Les regex ont un overead certain, mais sont meilleures quand tu commence à avoir des cas tordus.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 7. Dernière modification le 23 mars 2016 à 17:28.

    Parce qu'on peut très bien prendre le même raisonnement,[…]

    C'est souvent le cas et ça ne me choque pas tant qu'il s'agit de gérer les mises à jour du système et pas de figer le système (et donc de se garder un truc plus maintenu pendant des années).

    Pour le reste, je suis d'accord. Ce que je veux dire, c'est que l'image du pauvre sysadmin qui se fait malmener par les méchants dev qui font n'importe quoi sans avoir la moindre idée de ce qu'est ou ce que fait un sysadmin, c'est un peu surfait.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Dépendances

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 4.

    Non mais t'as vu un peu le code en question[…]

    Ça n'a rien avoir avec le code. Tu as une dépendance vers disons, OpenSSL, ta distrib' décide de virer ta lib, soit tu l'a téléchargée avant soit t'es KO.

    Ce dont tu parle c'est de la multiplication des dépendances liés, comme dis au-dessus, à la pauvreté de la lib standard. Pour pallier à ça je crois que les bibliothèques et les frameworks intègrent chacun un set de fonction de ce genre. C'est palliatif.

    C'est de l'ordre du snippet ici vu qu'il manque de la doc, des tests et que ça ne couvre qu'un cas de figure.

    Il aurait écris des Gio de doc et fait 100 millions de tests le undeploy aurait eu précisément la même conséquence.

    Il faudrait calmer la fougue de ces jeunes devs .js qui se prennent pour les rois du monde et affiche du CTO par-ci et du Co-Founder par là pour des trucs triviaux.

    Vu les projets qui ont cassé, je ne m'aventurerais pas à affirmer que ce sont des « jeunes devs fougueux ». Par contre que JS s'affirme comme un langage de très haut niveau avec une bibliothèque standard plus complète, ça ne me choquerait pas. Il manque probablement un projet à la boost qui soit généraliste et qui ai pignon sur rue.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 9.

    Tu n'avais rien de plus méchant en stock ? ^_^
    Ou alors fouiller un peu le web pour chercher des casseroles.

    Toi, tu es soit un membre pensant être un troll, soit ça ne bouge pas beaucoup chez toi.


    J'ai pas compris, le « ça ne bouge pas beaucoup chez toi », mais maintenir une intégration continue avec installation de la version N, mise à jour vers la version de dev, passage des tests, puis passages des tests de charge (tout en sachant que ce n'est pas ton boulot, c'est rarement chiffré, c'est sensé être lissé dans ton travail quotidien). Ce n'est clairement pas identique au boulot du sysadmin (et ça ne prévient pas forcément des problèmes que peux rencontrer le sysadmin), mais affirmer que les dev n'ont aucune conscience des problématiques d'admin, c'est juste drôle.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Ça semble si bien, et pourtant…

    Posté par  . En réponse au journal Redox OS. Évalué à 8.

    Ça ne répond pas à ce que j'ai dit : on n'a aucune info sur ce qui a été fait, pour un projet qui se veut novateur et qui prétent apporter plein de nouvelles choses, pourquoi partir directement sur du code sans explications ou marche à suivre ?

    Je crois que c'est précisément comme ça qu'est naît git. Pas de présentation de la théorie qu'il y a derrière, on commence par faire du code, on discute via mailling de comment ça fonctionne et une fois que ça fonctionne on documente.

    Plus généralement en science, il n'est pas si choquant de baser une théorie sur l’expérimentation plutôt que l'inverse.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: IPFS à la rescousse

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 5.

    Le problème ce sont les humains qui viennent modifier les repos à tour de bras […]

    Qu'entends-tu pars là ?

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 3.

    Je répondais à ça :

    Rien n'est jamais packagé (par la distribution) dans la bonne version, il faut donc compiler et installer des milliards de dépendances et ce système est bancal.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 10.

    Si tout est packagé proprement[…]

    Quelque soit le système de packaging, « si tout est packagé proprement », généralement ça reste propre ;-)

    Simplement parce que le sysadmin c'est lui qui se tape les install, les upgrades, les migration et pas le développeur.

    Les développeurs ne testent pas ça ? Genre ils codent et commit sans jamais rien exécuté et toi tu dois inventer les procédures d'install/update/migration ? :)

    Si en revanche s'il faut inspecter dpkg, cpan, pecl, npm, en notant les versions particulières ça devient l'enfer.

    C'est le développeur qui indique les versions de ce qu'il utilise.

    Avoir un serveur propre c'est le boulot du sysadmin.

    Non, avoir un serveur propre c'est trivial et à la porté du premier venu. Tu télécharge l'iso de l'OS que tu veux, tu l'installe, tu débranche le câble réseau : t'as un serveur propre.

    Le boulot d'un sysadmin (ou d'un devops) c'est de maintenir un serveur qui fournis les services qu'on lui demande et oui ça demande de faire avec les services qu'on lui demande et oui il y a des fois où tu ne va pas pouvoir t'appuyer sur le travail de ta distrib (parce qu'il existe autre chose que SSH/(S)FTP/SMTP). Et oui ça demande de faire autre chose que juste la commande sortie de la doc de ta distrib'

    Par contre t'es ultra outillé pour le faire quand même entre chef, puppet, ansible, salt, fabric et tout ce qui vient avec la mouvance des plateformes immutables (docker entre autre).

    Donc oui c'est du travail, sinon ce ne serait pas payé ;)

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Dépendances

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 8.

    on peut se poser la question de la fiabilité des projets JavaScript qui dépendent de centaines de modules npm.

    On peut se poser la question pour un projet quelque soit le langage quand les dépendances augmentent.

    Un projet en C aura tout autant de problème que celui en JS si l'une de ses dépendances n'est plus maintenue, casse la compatibilité, a une faille de sécurité, etc

    Le undeploy d'une dépendance n'est qu'un cas particulier de ces problèmes.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 10.

    Sur Debian les paquets sont maintenus très longtemps.

    Non, 5 ans c'est bien, mais ce n'est pas « très longtemps ».

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 10.

    En tant que sysadmin je ne veux pas de node chez moi.

    Ce que je trouve marrant avec certains sysadmin, c'est comment ils priorisent l'esthétisme de leur système au fait qu'elle servent à quelque chose :)

    Si ce n'est pas packagé (et que tu veux à tout prix passer par là) tu peux packager toi-même (ça ne doit pas être si dur si tu le demande à tout le monde) soit demander à packager.

    Le boulot du sysadmin c'est d'avoir un système propre ou de fournir des services aux utilisateurs ?


    Moi en tant que dev, je suis pas fan de js, mais comme je veux avoir une IHM web qui soit un peu réactive (pas de rechargement complet à tous les cliques), j'utilise js. Je vois pas à quoi ça sert de rester camper sur des paradigmes « j'aime pas donc je boude ».

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Trollons

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 7.

    Quelle est la différence avec cpan par exemple ?

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: humpf

    Posté par  . En réponse au journal Goploader, l'envoi de fichier simple et rapide. Évalué à 4.

    L'ancien ça doit être beastie :
    beastie

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: C'est bien dommage

    Posté par  . En réponse au journal C++17 est sur les rails. Évalué à 4.

    Je ne suis pas expert, mais les macros de lisp ne partagent que leur nom avec les macro de C et de C++. Elles ont une analyse du type (après c'est pas binaire, je ne sais pas si le typage est aussi puissant qu'en OCaml ou dans le reste de lisp) et ne passent pas par un préprocesseur, si je ne m'abuse.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Langages

    Posté par  . En réponse à la dépêche Libraries.io sous licence libre. Évalué à 7. Dernière modification le 18 mars 2016 à 13:47.

    Je trouvais le nombre de projets par dépôt ou langages assez étranges (des langages récents ont plus de projets que des langages très établis) et la recherche d'un premier projet m'a expliqué pourquoi : https://libraries.io/rubygems/json_pure (c'est considéré comme du java).

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Facile!

    Posté par  . En réponse au journal Microsoft va porter SQL Server sur Linux. Évalué à 4.

    Ce genre de découpage (que j'ai connu en moins violent dans un sens parce que ce n'était pas ma boite qui faisait l'IT) est juste une abomination (c'est pas contre toi, hein ?). J'ai passé un temps assez insensé à expliquer à des gens dont le boulot consiste à ne pas faire tourner ton application comment l'installer. Outre les temps de cycles incroyables, ça génère énormément d'erreur de la part des exploitants (je pense que tous les exploitants que j'ai rencontré n'avaient rien à faire de comprendre ce qu'ils faisaient).

    (je continue de parler de ceux que j'ai rencontré) ceux qui s'occupent de ça ne veulent aucun changement. Ça se protège derrière l'ITIL, mais l'automatisation à la chef/pupet/ansible ils en veulent pas, alors des concepts comme les infrastructures immutables tu te doute bien que ça les dépasse de plusieurs magnitudes.

    Si j'avais à revivre ça ce serait pour 3 mois maximum… Je suis jeune je n'ai pas d'engagement, d'attache ou autre. Le marché du travail est florissant. J'ai pas envie de me fader des gens dont le seul but est de m'empêcher de faire mon boulot. Je ne fais pas assez de yoga/tai chi pour endurer ça sereinement :)

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Pourquoi pas ? Parce queeeeeee !

    Posté par  . En réponse à la dépêche Swift sous GNU/Linux - Introduction. Évalué à 3.

    QtQuick était pas sensé remplacer QWidget ?

    En attendant ce n'est pas le fait qu'il n'existe pas de CoreGraphics qui empêche OCaml, Haskel, go, rust, lisp ou je ne sais quel autre langage d'être utilisé.

    Le fait de ne pas avoir accès aux bibliothèques graphiques de Windows n'a pas l'air de te gêner pour faire du C++.

    Ça donne vraiment l'impression d'être un caprice « moi je trouve trop joli Core Graphics ! XCode c'est trop bien ! Tant qu'Apple ne me le donne pas comme je veux (sous linux en libre), je boude tout ce qu'ils font ».

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Pourquoi pas ? Parce queeeeeee !

    Posté par  . En réponse à la dépêche Swift sous GNU/Linux - Introduction. Évalué à 3.

    Ça n'a rien avoir. Beaucoup de gens font des UI très bonnes avec du HTML/CSS sans avoir besoin de designer et ce pour desktop comme pour périphériques mobiles. Je ne vois pas pourquoi ça ne serait pas le cas pour des bibliothèques d'UI natives. Sincèrement pour faire du QML tu n'a pas besoin de designer et le code généré par GtkGlade/GtkBuilder est affreux (en lisibilité, je ne sais pas jugé de la performance du truc).

    À titre personnel, je préfère très largement utiliser un DSL (comme QML) que n'importe quel outil graphique. Si vraiment il faut quelque chose c'est un visualisateur du DSL.

    PS : il y a beaucoup d'applications « natives » qui sont en fait du cordova ou du phonegap.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • [^] # Re: Extension

    Posté par  . En réponse au journal Les interfaces tablettes. Évalué à 5.

    Oui et non. Alors je me suis trompé ce matin, c'est userContent.css.

    userContent.css et userChrome.css sont au même endroit et font la même chose (tu peux renommer l'un en l'autre ça ne change rien). Mais userChrome.css est normalement fait pour modifier l'apparence de Firefox et userContent.css le contenu des pages. Comme XUL est sur le départ, userChrome.cssest voué à disparaître, on peut espérer que ce n'est pas le cas de userContent.css.

    Geckozone était la meilleure source d'inspiration pour utiliser ces fichiers (petite pensée pour oTTomar). Geckozone semble avoir eu des soucis on peut trouver ça : https://forums.mozfr.org/viewtopic.php?t=28965 (mais la navigation est compliquée).

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)