woffer 🐧 a Ă©crit 238 commentaires

  • [^] # Re: GO GO GO GO

    Posté par  (site web personnel) . En rĂ©ponse au journal The Go Programming Language. Évalué à 4.

    les goroutines engendrent facilement des "data race" etc
 On est vite refroidi !

    Ah oui, j'oubliai le détecteur de race condition. Pour en avoir détecter plusieurs, c'est vraiment un outil qui est trÚs utile.
    Pour l'activer, il suffit de compiler le binaire avec l'option -race.
    Le détecteur de race condition remonte uniquement des vrais positifs (il peut donc en laisser passer), donc ils faut toujours prendre au sérieux les alertes remontées (elles sont remontées dans la STDERR via une stack trace des deux goroutine impliquées et qd elles ont été créées).

    Autre point, le fait de l'activer, cela va consommer en terme de mémoire et d'usage CPU. Donc, on :
    - doit passer tous ses tests unitaire/microbenching avec le détecteur activé et cela dÚs le début du projet.
    - peut imaginer l'activer sur une partie de votre cluster.

  • [^] # Re: Outils

    Posté par  (site web personnel) . En rĂ©ponse au journal The Go Programming Language. Évalué à 1.

    Je n'ai jamais vérifié comment fonctionne exactement go get mais je pense que d'enlever les imports non utilisés doit aussi faciliter la tùche de l'analyseur pour descendre les sources et ses dépendances.

  • [^] # Re: Juste de la sorcellerie

    Posté par  (site web personnel) . En rĂ©ponse au journal The Go Programming Language. Évalué à 1.

    Jamais testé.
    Mais je pense que les structures implĂ©mentant la fonction des deux interfaces peuvent ĂȘtre vue comme l'une ou l'autre interface.

  • [^] # Re: Outils

    Posté par  (site web personnel) . En rĂ©ponse au journal The Go Programming Language. Évalué à 3.

    La on tape un peu n'importe comment et hop un coup de gofmt Ă  l'enregistrement et on a un code propre comme pas deux.

    J'aime bien le formatage gofmt, mais j’apprĂ©cie beaucoup plus celui de goimports qui va :
    - faire le formatage de "base" de gofmt
    - enlever les imports inutilisés (sinon erreur de compilation)
    - classer par ordre alphanumérique et grouper les dépendances externes

  • [^] # Re: Juste de la sorcellerie

    Posté par  (site web personnel) . En rĂ©ponse au journal The Go Programming Language. Évalué à 2.

    On perd énormément niveau sécurité du typage.

    Ce qu'il faut savoir ce que Go n'est pas vraiment du duck typing car la validation est faite Ă  la compilation et non runtime.
    Donc l'erreur sera détectée à la compilation avec une erreur détaillée.

  • [^] # Re: GO GO GO GO

    Posté par  (site web personnel) . En rĂ©ponse au journal The Go Programming Language. Évalué à 10. DerniĂšre modification le 06 dĂ©cembre 2015 Ă  17:25.

    Je pratique ce langage depuis plus de 2 ans avec un background Java [Spring/Spring Boot] principalement.
    J’apprĂ©cie dans ce langage :
    - Sa simplicité, tout est dans le code, pas besoin d'aller voir un fichier xml pour comprendre le comportement d'un bout de code ou une injection de dépendance (un pique contre Spring)
    - Sa compilation pas de choses mystérieuses/magiques au runtime (un autre pique contre Spring)
    - Sa communauté trÚs réactive/sympathique/compétente
    - Son outillage trÚs complet (profiling cpu/mémoire, formatage de code, fuzzing)
    - Sa concurrence simplissime et performante (c'est un langage monte trĂšs bien en charge) grĂące aux goroutines
    - Un écosystÚme complet avec une multitude de librairies disponibles
    - Un sobriété sur l'usage de la mémoire largement supérieur à Java (pour diverses raisons)
    - La possibilité d'écrire du code (sync.Pool) qui limite l'allocation dynamique de la mémoire, et de le tester via du microbenchmark. Ce permet de limiter l'usage du garbage collector pour avoir des applications vraiment performantes (comme l'indique Brad Fitzpatrick un des gurus de Go dans cette vidéo ou ici)

    Il y a aussi des manques dans ce langage :
    - D'un dĂ©bogueur fiable et multi-plateforme (mĂȘme si cela change avec Delve)
    - Les generics afin d’éviter les insertions de type qui peuvent gĂ©nĂ©rer des erreurs au runtime

    Bref, je pourrais en parler des heures mais le temps me manque :)

  • [^] # Re: Rien de nouveau

    Posté par  (site web personnel) . En rĂ©ponse au journal Fuzzing : Ă©prouver les entrĂ©es de vos dĂ©veloppements. Évalué à 2.

    Effectivement, la simplicité d'utilisation de ces outil et leur disponibilité grùce à leur licence les rendent complÚtement génial.
    On peut facilement imaginer mettre ce genre d'outil dans nos processus d'intégration continue (via un Jenkins ou autres) et les faire tourner toutes les nuits durant nos processus de développement afin de trouver au plus tÎt une partie importante des failles/crashs.

    Comme le mécanisme de corpus est simple à mettre en place mais surtout trÚs efficace. Le mécanisme de fuzzing s'adaptera dans la nuit aux évolutions du logiciel faites dans la journée.

    Bref, j'adore :)

  • [^] # Re: Rien de nouveau

    Posté par  (site web personnel) . En rĂ©ponse au journal Fuzzing : Ă©prouver les entrĂ©es de vos dĂ©veloppements. Évalué à 5.

    C'est une façon de dire que ce n'est pas si efficace que ça ? ;-p

    Je ne connais pas SAGE de Microsoft.
    Par contre, je peux te dire que la stratégie de fuzzing détaillée dans l'article lwn est trÚs efficace.
    J'ai pu la mettre en pratique sur un stack réseau interne écrite en Go, et go-fuzz m'a trouvé tout un tas de d'accÚs en dehors des limites de divers tableaux et surtout une belle boucle infinie avec une belle fuite mémoire en prime.

  • [^] # Re: Golang !!

    Posté par  (site web personnel) . En rĂ©ponse au sondage Quel langage utilisez-vous le plus au quotidien ?. Évalué à 3.

    Effectivement, je ne mettrai pas spécialement la lisibilité de go en avant car c'est surtout une affaire de goût et d'habitude.
    Par contre, la concurrence, son déploiement simple (un seul binaire) sont, pour moi et parmi d'autres choses, des gros avantages.

  • [^] # Re: Article chez Korben

    Posté par  (site web personnel) . En rĂ©ponse au message Commande shell permettant de donner des exemples d'usage. Évalué à 1.

    Merci, c'est ça!

  • [^] # Re: Licence

    Posté par  (site web personnel) . En rĂ©ponse au journal Du xml dans vos outils CLI. Évalué à 0.

    Nope, cela dépend du masque du réseau.
    La rĂšgle est :
    IP rĂ©seau & masque du rĂ©seau doit ĂȘtre Ă©gal Ă  l'IP rĂ©seau

  • [^] # Re: Compatible avec Debian

    Posté par  (site web personnel) . En rĂ©ponse Ă  la dĂ©pĂȘche Sortie d'UltraCopier 0.2 et Catchcopy. Évalué à 2.

    Loin de moi, l'idée de lancer un troll. J'exposais juste un état de fait pour un utilisateur d'une debian à la maison que je suis.
    Je sais bien que debian lenny est sortie en début d'année et que la philosophie debian est d'avoir une branche stable avec des logiciels/librairies éprouvés longuement mais avec un léger coût : la relative obsolescence des paquets. C'est tous.

    Ce post a eu au moins l'avantage de d'avertir le mainteneur (que je salue pour sa réactivité) du paquet SuperCopier afin de lui indiquer que son paquet n'était pas compatible en l'état avec la debian stable c'est à dire lenny.

    Je vais pouvoir tester pour voir exactement ce que ca donne sous Linux (déjà testé sur un windaube...)
  • # Compatible avec Debian

    Posté par  (site web personnel) . En rĂ©ponse Ă  la dĂ©pĂȘche Sortie d'UltraCopier 0.2 et Catchcopy. Évalué à 1.

    Oui mais pas avec Debian Lenny.
    Il semble que le package est compilé avec libqt4-core (>= 4.5.0)
    Sous Debian Lenny, j'ai uniquement la version antérieur, dommage pour moi.
    J'ai pas envie de compiler c'est mon coté débianiste fainéant ;)
    Librement votre