PostĂ©Â par woffer đ§ le 27 mars 2016 Ă 15:30. En rĂ©ponse au journal Quelles extensions pour votre Firefox?. ĂvaluĂ©Â Ă Â 0.
Au temps pour moi. OK je sors :)
PostĂ©Â par woffer đ§ le 21 fĂ©vrier 2016 Ă 15:56. En rĂ©ponse Ă la dĂ©pĂȘche Sortie du langage Go en version 1.6. ĂvaluĂ©Â Ă Â 6. DerniĂšre modification le 21 fĂ©vrier 2016 Ă 16:01.
Merci pour cet article.
on peut en lancer des milliers, rĂ©parties automatiquement sur plusieurs threads ou cĆurs.
PlutÎt que de retenir une limite haute pour le nombre de goroutine, il faut plutÎt dire que le nombre de goroutine est rarement le facteur limitant, si c'est goroutine sont en attente par exemple de paquets réseau.
Il y a une vidĂ©o de Rob Pike (que je n'arrive plus Ă retrouver) oĂč il indique qu'il est courant de voir des serveurs de production chez Google avec des centaines de milliers voire des millions de goroutine.
Ce billet de chez Cloudflare montre que leur serveur DNS (Ă©crit en Go) lance 40k goroutines sans souci particulier autres que des stacks montreuse :)
Personnellement, pour certains cas particuliers, il m'arrive de lancer des centaines de milliers de goroutine sans problĂšme.
La taille minimale de la stack d'une goroutine est de 2ko qui est donc bcp plus petite que celle d'un thread.
PostĂ©Â par woffer đ§ le 12 janvier 2016 Ă 17:02. En rĂ©ponse Ă la dĂ©pĂȘche Sortie de WinCompose 0.7.5. ĂvaluĂ©Â Ă Â 2.
Hello, J'utilise synergy au boulot un PC sous Windows (c'est le client synergy) et un PC sous Linux (c'est le serveur), et malheureusement, cela ne fonctionne pas car les touches venant de synergy ne semblent pas capturĂ©es par WinCompose. TristesseâŠ
PostĂ©Â par woffer đ§ le 19 dĂ©cembre 2015 Ă 12:34. En rĂ©ponse au message systemd/journld ne capture pas tous les messages de la STDOUT. ĂvaluĂ©Â Ă Â 1.
AprÚs une rechercher rapide, je pense que c'est la cause de mon pb :http://www.freedesktop.org/software/systemd/man/journald.conf.html#RateLimitInterval= J'essayerai d'ici la fin de semaine et je vous tiens au courant si ça corrige ou pas le pb.
AprĂšs une rechercher rapide, je pense que c'est la cause de mon pb :http://www.freedesktop.org/software/systemd/man/journald.conf.html#RateLimitInterval=
J'essayerai d'ici la fin de semaine et je vous tiens au courant si ça corrige ou pas le pb.
Le problÚme vient bien du mécanisme d'anti-flooding qui limite à 1000 messages par tranche de 30s (c'est la configuration par défaut). Il suffit juste de mettre la clef RateLimitBurst à 0 (sous Archlinux) dans le fichier /etc/system/journald.conf et de redémarrer journald. Et cela fonctionne.
RateLimitBurst
/etc/system/journald.conf
Ce n'est donc pas un problĂšme venant de go.
PostĂ©Â par woffer đ§ le 16 dĂ©cembre 2015 Ă 20:30. En rĂ©ponse au message systemd/journld ne capture pas tous les messages de la STDOUT. ĂvaluĂ©Â Ă Â 1.
PostĂ©Â par woffer đ§ le 16 dĂ©cembre 2015 Ă 20:06. En rĂ©ponse au message systemd/journld ne capture pas tous les messages de la STDOUT. ĂvaluĂ©Â Ă Â 2.
Je viens de demander à la liste de golang nuts https://groups.google.com/forum/#!topic/golang-nuts/0n8EkqakuTc D'aprÚs eux, c'est dû à un mécanisme d'anti-flooding genre 1000 msg par minute.
Savez-vous oĂč je peux trouver ce genre de configuration pour journald/systemd ?
PostĂ©Â par woffer đ§ le 14 dĂ©cembre 2015 Ă 18:31. En rĂ©ponse au sondage Pour le climat je suis prĂȘt(e) Ă .... ĂvaluĂ©Â Ă Â 4.
De toutes les façons, je suis gourmand, donc je mangerais dans tous les cas :)
PostĂ©Â par woffer đ§ le 13 dĂ©cembre 2015 Ă 17:12. En rĂ©ponse au sondage Pour le climat je suis prĂȘt(e) Ă .... ĂvaluĂ©Â Ă Â 7.
Tous mes trajets maison<->travail sont effectués depuis plus d'un an à vélo (et déjà plus de 5600 km au compteur :) )
PostĂ©Â par woffer đ§ le 11 dĂ©cembre 2015 Ă 06:57. En rĂ©ponse Ă la dĂ©pĂȘche The Go Programming Language. ĂvaluĂ©Â Ă Â 3.
Personnellement, j'utilise gb qui fonctionne trÚs bien et surtout ; - ne modifie pas les chemins d'import des dépendances - rassemblement toutes tes dépendance dans répertoire vendor avec un fichier manifest
De plus, son approche workspace me convient beaucoup plus que l'approche GOPATH.
PostĂ©Â par woffer đ§ le 08 dĂ©cembre 2015 Ă 07:31. En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 2.
Ă froid comme ça, je dirais c'est pas bien de mixer un mĂȘme atomic.Value pour des type differents mais ça rĂ©soudra pas ton besoin :) Et si je ne me trompe pas ce n'est pas un probleme de gĂ©nĂ©rique puisque je ne vois pas comment ça aurait rĂ©solu ton problĂšme ici. si jamais tu avais « var value sync.Value<[]byte> » tu ne pourrais toujours pas changer de type (i.e. passer de []byte Ă autre chose). Et dans les 2 cas tu utiliseras 2 variables. Par contre, je suis d'accord avec toi le comportement de atomic.Value est Ă©trange.
Je ne veux pas mixer un mĂȘme atomic.Value avec des types diffĂ©rents mais montrer que c'est possible de le faire par inadvertance (erreur) et que la compilation ne te remontre pas cette erreur qui te pĂ©tera Ă la figure au runtimeâŠ
PostĂ©Â par woffer đ§ le 07 dĂ©cembre 2015 Ă 20:31. En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 1.
A mon avis, tu l'as dans l'os :) (ou faut que j'y réfléchisse plus mais je suis fainéant ce soir :) ) Il faut bien comprendre que dans Go, il y a des trucs bien dégoutant mais aussi des trucs super intéressant. Il faut faire la balance pour voir si ce langage peut répondre à vos problématique/besoins ou pas.
PostĂ©Â par woffer đ§ le 07 dĂ©cembre 2015 Ă 20:06. En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 2.
Merci pour ton analyse je la partage sauf pour les gĂ©nĂ©riques oĂč j'avoue je n'ai pas trĂšs bien compris ton point.
Effectivement, je n'ai pas été assez clair. Je vais donner un exemple trÚs concret avec atomic.Value qui permet de partager une valeur sans aucun lock entre plusieurs goroutine et de façon performante.
A cause d'un manque de gĂ©nĂ©rique, nous sommes obligĂ©s de passer interface{} (qui est le java.lang.Object de go) pour enregistrer/rĂ©cupĂ©rer une valeur. sync.Value.Store est obligĂ© de vĂ©rifier si le type est identique Ă celui enregistrer la premiĂšre fois et te lancera un panic (au runtime) si ce n'est pas le mĂȘme type (voir cet exemple)
J'aurai préféré avoir une truc comme ci-dessous (et d'autant plus si cela ne reste pas au runtime comme Java) :
var value sync.Value<[]byte>
Pour go generate, cela reste pour ma part (c'est mon avis et c'est normal qu'il ne soit pas partagé :) ) une bidouille si tu l'utilises pour combler le manque de generics du langage.
go generate
PostĂ©Â par woffer đ§ le 06 dĂ©cembre 2015 Ă 19:45. 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).
-race
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.
PostĂ©Â par woffer đ§ le 06 dĂ©cembre 2015 Ă 19:10. 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.
go get
PostĂ©Â par woffer đ§ le 06 dĂ©cembre 2015 Ă 18:49. 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.
PostĂ©Â par woffer đ§ le 06 dĂ©cembre 2015 Ă 18:37. 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
PostĂ©Â par woffer đ§ le 06 dĂ©cembre 2015 Ă 17:50. 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.
PostĂ©Â par woffer đ§ le 06 dĂ©cembre 2015 Ă 17:22. 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 :)
PostĂ©Â par woffer đ§ le 30 octobre 2015 Ă 16:36. 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 :)
PostĂ©Â par woffer đ§ le 28 octobre 2015 Ă 09:22. 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.
PostĂ©Â par woffer đ§ le 04 aoĂ»t 2015 Ă 16:05. 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.
PostĂ©Â par woffer đ§ le 18 mai 2015 Ă 14:54. En rĂ©ponse au message Commande shell permettant de donner des exemples d'usage. ĂvaluĂ©Â Ă Â 1.
Merci, c'est ça!
PostĂ©Â par woffer đ§ le 07 novembre 2014 Ă 19:21. 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
PostĂ©Â par woffer đ§ le 16 novembre 2009 Ă 14:56. En rĂ©ponse Ă la dĂ©pĂȘche Sortie d'UltraCopier 0.2 et Catchcopy. ĂvaluĂ©Â Ă Â 2.
PostĂ©Â par woffer đ§ le 14 novembre 2009 Ă 13:29. En rĂ©ponse Ă la dĂ©pĂȘche Sortie d'UltraCopier 0.2 et Catchcopy. ĂvaluĂ©Â Ă Â 1.
[^] # Re: redirection google
PostĂ©Â par woffer đ§ . En rĂ©ponse au journal Quelles extensions pour votre Firefox?. ĂvaluĂ©Â Ă Â 0.
Au temps pour moi. OK je sors :)
# Nombre de goroutine
PostĂ©Â par woffer đ§ . En rĂ©ponse Ă la dĂ©pĂȘche Sortie du langage Go en version 1.6. ĂvaluĂ©Â Ă Â 6. DerniĂšre modification le 21 fĂ©vrier 2016 Ă 16:01.
Merci pour cet article.
PlutÎt que de retenir une limite haute pour le nombre de goroutine, il faut plutÎt dire que le nombre de goroutine est rarement le facteur limitant, si c'est goroutine sont en attente par exemple de paquets réseau.
Il y a une vidĂ©o de Rob Pike (que je n'arrive plus Ă retrouver) oĂč il indique qu'il est courant de voir des serveurs de production chez Google avec des centaines de milliers voire des millions de goroutine.
Ce billet de chez Cloudflare montre que leur serveur DNS (Ă©crit en Go) lance 40k goroutines sans souci particulier autres que des stacks montreuse :)
Personnellement, pour certains cas particuliers, il m'arrive de lancer des centaines de milliers de goroutine sans problĂšme.
La taille minimale de la stack d'une goroutine est de 2ko qui est donc bcp plus petite que celle d'un thread.
# Ne semble pas fonctionner avec synergy
PostĂ©Â par woffer đ§ . En rĂ©ponse Ă la dĂ©pĂȘche Sortie de WinCompose 0.7.5. ĂvaluĂ©Â Ă Â 2.
Hello,
J'utilise synergy au boulot un PC sous Windows (c'est le client synergy) et un PC sous Linux (c'est le serveur), et malheureusement, cela ne fonctionne pas car les touches venant de synergy ne semblent pas capturées par WinCompose.
TristesseâŠ
[^] # Re: il te manque un flush quelque part.
PostĂ©Â par woffer đ§ . En rĂ©ponse au message systemd/journld ne capture pas tous les messages de la STDOUT. ĂvaluĂ©Â Ă Â 1.
Le problÚme vient bien du mécanisme d'anti-flooding qui limite à 1000 messages par tranche de 30s (c'est la configuration par défaut).
Il suffit juste de mettre la clef
RateLimitBurst
Ă 0 (sous Archlinux) dans le fichier/etc/system/journald.conf
et de redémarrer journald. Et cela fonctionne.Ce n'est donc pas un problÚme venant de go.
[^] # Re: il te manque un flush quelque part.
PostĂ©Â par woffer đ§ . En rĂ©ponse au message systemd/journld ne capture pas tous les messages de la STDOUT. ĂvaluĂ©Â Ă Â 1.
AprĂšs une rechercher rapide, je pense que c'est la cause de mon pb :
http://www.freedesktop.org/software/systemd/man/journald.conf.html#RateLimitInterval=
J'essayerai d'ici la fin de semaine et je vous tiens au courant si ça corrige ou pas le pb.
[^] # Re: il te manque un flush quelque part.
PostĂ©Â par woffer đ§ . En rĂ©ponse au message systemd/journld ne capture pas tous les messages de la STDOUT. ĂvaluĂ©Â Ă Â 2.
Je viens de demander Ă la liste de golang nuts https://groups.google.com/forum/#!topic/golang-nuts/0n8EkqakuTc
D'aprÚs eux, c'est dû à un mécanisme d'anti-flooding genre 1000 msg par minute.
Savez-vous oĂč je peux trouver ce genre de configuration pour journald/systemd ?
[^] # Re: Me déplacer un maximum en vélo
PostĂ©Â par woffer đ§ . En rĂ©ponse au sondage Pour le climat je suis prĂȘt(e) Ă .... ĂvaluĂ©Â Ă Â 4.
De toutes les façons, je suis gourmand, donc je mangerais dans tous les cas :)
# Me déplacer un maximum en vélo
PostĂ©Â par woffer đ§ . En rĂ©ponse au sondage Pour le climat je suis prĂȘt(e) Ă .... ĂvaluĂ©Â Ă Â 7.
Tous mes trajets maison<->travail sont effectués depuis plus d'un an à vélo (et déjà plus de 5600 km au compteur :) )
[^] # Re: got get et version
PostĂ©Â par woffer đ§ . En rĂ©ponse Ă la dĂ©pĂȘche The Go Programming Language. ĂvaluĂ©Â Ă Â 3.
Personnellement, j'utilise gb qui fonctionne trÚs bien et surtout ;
- ne modifie pas les chemins d'import des dépendances
- rassemblement toutes tes dépendance dans répertoire vendor avec un fichier manifest
De plus, son approche workspace me convient beaucoup plus que l'approche GOPATH.
[^] # Re: GO GO GO GO
PostĂ©Â par woffer đ§ . En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 2.
Je ne veux pas mixer un mĂȘme atomic.Value avec des types diffĂ©rents mais montrer que c'est possible de le faire par inadvertance (erreur) et que la compilation ne te remontre pas cette erreur qui te pĂ©tera Ă la figure au runtimeâŠ
[^] # Re: Juste de la sorcellerie
PostĂ©Â par woffer đ§ . En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 1.
A mon avis, tu l'as dans l'os :) (ou faut que j'y réfléchisse plus mais je suis fainéant ce soir :) )
Il faut bien comprendre que dans Go, il y a des trucs bien dégoutant mais aussi des trucs super intéressant.
Il faut faire la balance pour voir si ce langage peut répondre à vos problématique/besoins ou pas.
[^] # Re: GO GO GO GO
PostĂ©Â par woffer đ§ . En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 2.
Effectivement, je n'ai pas été assez clair. Je vais donner un exemple trÚs concret avec atomic.Value qui permet de partager une valeur sans aucun lock entre plusieurs goroutine et de façon performante.
A cause d'un manque de générique, nous sommes obligés de passer interface{} (qui est le java.lang.Object de go) pour enregistrer/récupérer une valeur.
sync.Value.Store est obligĂ© de vĂ©rifier si le type est identique Ă celui enregistrer la premiĂšre fois et te lancera un panic (au runtime) si ce n'est pas le mĂȘme type (voir cet exemple)
J'aurai préféré avoir une truc comme ci-dessous (et d'autant plus si cela ne reste pas au runtime comme Java) :
var value sync.Value<[]byte>
Pour
go generate
, cela reste pour ma part (c'est mon avis et c'est normal qu'il ne soit pas partagé :) ) une bidouille si tu l'utilises pour combler le manque de generics du langage.[^] # Re: GO GO GO GO
PostĂ©Â par woffer đ§ . En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 4.
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 woffer đ§ . 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 woffer đ§ . 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 woffer đ§ . En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 3.
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 woffer đ§ . En rĂ©ponse au journal The Go Programming Language. ĂvaluĂ©Â Ă Â 2.
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 woffer đ§ . 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 woffer đ§ . 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 woffer đ§ . En rĂ©ponse au journal Fuzzing : Ă©prouver les entrĂ©es de vos dĂ©veloppements. ĂvaluĂ©Â Ă Â 5.
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 woffer đ§ . 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 woffer đ§ . En rĂ©ponse au message Commande shell permettant de donner des exemples d'usage. ĂvaluĂ©Â Ă Â 1.
Merci, c'est ça!
[^] # Re: Licence
PostĂ©Â par woffer đ§ . 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 woffer đ§ . En rĂ©ponse Ă la dĂ©pĂȘche Sortie d'UltraCopier 0.2 et Catchcopy. ĂvaluĂ©Â Ă Â 2.
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 woffer đ§ . En rĂ©ponse Ă la dĂ©pĂȘche Sortie d'UltraCopier 0.2 et Catchcopy. ĂvaluĂ©Â Ă Â 1.
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