Chat:Fr/2020-07-08
tekki: yop AutomatonNN
AutomatonNN: salut Automaton2000 et AutomatonNN
Bob: hello Automaton2000 et le monde
Automaton2000: ça ressemble pas mal à la tête
BigUP: et maintenant, c'est Windows qui ne veut plus s'eteindre... La mise a jour de la mort ...
lhm: classique
BigUP: a peu pres certain que c'est l'anti-virus qui est parti en vrille
Bob: fingerkill
BigUP: Windows me dit "n'eteignez pas l'ordinateur" .... ca doit etre pour les autres qu'il dit ca !?
lhm: Non c'est juste un prank tu peux y aller
Bob: au pire tu installes un autre OS dessus
Bob: problem solved
BigUP: lhm, ayé...si ca marche plus, je dirais que c'est toi qui m'a dit d'y aller
BigUP: ca l'a décoincé, il fait sa mise a jour ! ;)
lhm: *Mode anonyme enclenché*
lhm: Pourquoi je m'emmerde à développer ? C'est dans la réparation PC que je vais faire fortune !
BigUP: j'ai déjà dit que si on voulait sauver la planete fallait enlever tous les anti-virus des ordinateurs ?
Bob: faudrait pewut-etre enlever tous les ordinateurs
Bob: ca nous de barrasserait des informaticiens
Bob: sale race
lhm: les pires
Bob: faudrait les noyer a la naissance
PapyPelle: les vieux aussi faudrait les noyer à la naissance, ça sert vrmnt à rien
Bob: bien vu
Bob: je valide
PapyPelle: :)
BigUP: PapyPelle, c'pas faux
Bob: mais
Bob: mais
Bob: maismaismais
Bob: c'est completement CON ce code ?
Bob: (╯°□°)╯︵ ┻━┻
PapyPelle: ┬─┬ノ(ಠ_ಠノ)
lhm: Trouve le coupable !
Bob: on est trop sur ce projet et on discute trop peu, je pense
Thyl: Yo !!
Bob: chacun fait son truc, les autres valident les PR sans vraiment trop aller en profondeur parce qu'on a tous nos trucs a finir a cote et qu'on nous presse pour sortir un truc vite
Bob: apres, chacun va faire une modif dans le code de l'autre et comme c'est pas lui ou elle qui l'a concu, il fait de travers
Bob: et comme on est trop c'est pas necessairement l'auteur d'origine qui fait la revue et des trucs batards passent
Bob: au bout de deux mois plus personne n'y capte que dalle
lhm: En gros, c'est la faute à pas d'temps
Bob: ouais un peu
Bob: accessoirement si on avait recrute la personne qui va bien pour nous driver dans l'apprentissage de bonnes patternes sur un domaine que personne ne maitrise, ca irait mieux aussi
Bob: patterns*
Bob: mais bon ca ca ne fait que deux ans que je le dis
lhm: Exactement, ça ne fait que 2 ans, alors ne sois pas trop pressé. :)
dbdr: la possession de code c'est pas mal aussi
lhm: C'est sûr, mais ça n'a pas l'air possible sur son projet
dbdr: "on n'a pas le temps de faire les choses efficacement" :D
Bob: c'est essentiellement un probleme de communication et d'organisation, je pense
Bob: il y a des trucs ou on laisse une personne seule partir bille en tete sur un bout de design relativement important, on lui fait confiance et on ne fait pas de review correcte
Bob: manque de pot, le gars a oublie comment faire des trucs simples et a l'arrivee on a une usine a gaz qui demande deux jours d'analyse avant de comprendre comment la deconstruire et avoir un truc propre
Bob: qui aurait demande moitie moins de temps en premiere implementation si on avait pris 30 minutes pour discuter le design a 3 personnes autour d'un tableau blanc
lhm: Je comprends totalement. J'ai été cette personne récemment, et j'ai averti qu'il faudrait faire une review du design mais noooooon "fonce, on sait que tu gères !"
John.Fox: Hello ! Vous utiliser UML ou pas pour la pré prod?
Bob: UML rho lui
Bob: on fait deja pas de revue de design he
John.Fox: Haha ok
lhm: les gros mots, direct !
Bob: pourquoi pas des graphes d'etat et des diagrames de classe tant qu'on y est
Bob: trois patates et deux fleches au velleda, merci bonsoir
John.Fox: Attention je juge pas hein c'est juste que j'en entend parler pas mal et je me demande dans quel mesure c'est vraiment utilisé ce truc !
PapyPelle: j'ai rit
John.Fox: Je trouve ça pratique dans la théorie mais je connais personne autour de moi qui s'en sert vraiment.
John.Fox: J'imagine que ça dépend des secteurs aussi
lhm: Ca dépend surtout de la culture de l'entreprise
Bob: ^
TheWaterCooledSnowflake_ea09: Ca depend surtout de la taille d'un projet, avoir une bonne architecture pour un gros logiciel c'est toujours mieux
Bob: dans mon imaginaire j'associe ca a des process super stricts et formalises
Bob: donc assez orthogonaux a la tendance "Agile" actuelle
TheWaterCooledSnowflake_ea09: C'est vrai que pour un developpeur c'est chiant (on prefere tous coder) mais lorsqu'on remplace qqun dans un projet c'est toujours mieux d'avoir ça pour se reperer dans le code du predecesseur
Bob: dans le pays des licornes, du code bien fait tu peux t'y retrouver sans qu'il soit soutenu par dix pages de docs et de diagrammes
TheWaterCooledSnowflake_ea09: J'espere j'aurais le vis prisé de ce pays des licornes haha
Bob: et je pense que c'est possible de le faire a condition de partir comme ca des le depart
TheWaterCooledSnowflake_ea09: visa*
Bob: la ou ca coince c'est toutes les bases de code qui n'ont pas ete concues comme ca
lhm: TheWaterCooledSnowflake_ea09 Moi j'aime beaucoup le design - mais quand on te demande un prototype pour hier, tu peux pas - gros projet ou pas.
Bob: et qu'il est extremement difficile de reecrire
TheWaterCooledSnowflake_ea09: Faire une architecture aprés que des millions de lignes soit deja ecrite, ouai c'est plus cmplexe
lhm: Oui, quand tu dois conditionner ton design à l'archi moisie de certaines libs dont tu ne peux pas te passer, tu l'as un peu dans l'os
John.Fox: Vaut pas mieux un proto théorique bien écrit en UML plutôt qu'un vrai proto utilisable qui est en mode tuer moi' derrière?
lhm: La question c'est pas "est-ce que c'est mieux" (tout le monde a la réponse) mais est-ce que le pôle commercial a réussi (essayé?) de le faire entendre au client (enfin, dans mon expérience perso de novice en tout cas)
John.Fox: Oui c'est vrai qu'avec les contrainte de prod sur la réalité du terrain, je me doute que UML à rarement le temps d'être bien mis en place.
TheWaterCooledSnowflake_ea09: Le comercial s'en fou un peu, lui il veut vendre un produit fini utilisable quitte a bouffer sur la robustesse
John.Fox: D'ailleurs, en entreprise, vous prenez le temps de commenter votre code ou pas ?
John.Fox: Parce que pareil théoriquement ça prend du temps mais ça rend bien service.
TheWaterCooledSnowflake_ea09: OBLIGATOIRE, surtout lorsq'uon est 6 développeurs sur le projet
PapyPelle: commenter son code c'est s'aider sois même le matin
PapyPelle: soi-même* et pour le coup les autres aussi
TheWaterCooledSnowflake_ea09: C'est exact
lhm: Et puis la différence, c'est que l'étape "commenter" se fait "au fil de l'eau", tu n'as pas à en faire une tâche à part entière qui nécessite des jours
Bob: je vais faire le meme genre de reponse
Bob: du code bien concu et bien ecrit normalement t'as besoin de relativement peu de commentaires
Bob: generalement je vais mettre 3-4 commentaires qui definissent le "squelette" de la maniere dont le code va implementer ce qu'il est cense faire
Bob: et apres j'essaie de faire en sorte que chaque section soit auto-explicite
Bob: ca passe notamment par un nommage correct des symboles
Bob: faut aussi se dire que tres souvent les commentaires sont le reflet du dev
Bob: si t'as un gars qui fait du code de merde, la plupart du temps ses commentaires vont pas t'aider a comprendre son code
Bob: le piege du commentaire c'est que plus tu en mets plus tu ajoutes de risque qu'il ne soit plus a jour
Bob: je me souviens d'un coup avec un collegue on a du regarder une fonction bien centrale et bas niveau d'un truc qu'on utilise partout dans le code
Bob: le nom de la fonction suggerait un comportement particulier, la doc en annoncait un deuxieme et le code faisait effectivement encore un troisieme truc
John.Fox: Ah oui le truc bien chiant.
Bob: https://kentcdodds.com/blog/please-dont-commit-commented-out-code
John.Fox: Même le nom de la fonction était pas à jour haha
Bob: "the only thing that can tell you the truth about the code is the code. The instant you add a comment, it's out of date."
Bob: c'est un peu extreme resume comme ca mais apres 20 ans d'experience je garantis que c'est vrai
Bob: je crois que je vais imprimer cette phrase et me l'afficher en face de moi en fait
Bob: (incidemment, remontez d'un cran et lisez les autres articles du gars)
John.Fox: C'est intéressant son article
Bob: oui
Bob: faut lire les autres
Bob: c'est le gars qui est derriere testing-library.com
Bob: celui sur AHA programming est bien aussi, et je recommande de rebondir sur la reference d'origine qu'il cite dedans
Bob: bonne lecture, moi je dois y aller :)
John.Fox: ça roule ! Bonne journée !
Magus: il y a quand même des commentaires intéressant
Magus: du genre // Don't forget #456123
Magus: qui pointe vers un ticket important, histoire de pas le reproduire en modifiant le coe
Magus: *code
dbdr: ^
dbdr: // Dear maintainer: // // Once you are done trying to 'optimize' this routine, // and have realized what a terrible mistake that was, // please increment the following counter as a warning // to the next guy: // // total_hours_wasted_here = 42
Thyl: Yo !
Thyl: est-ce qu'il ya une fonction pour simplifier un nombre un nombre premier?
Bob12: non mais c'est vraiment une fonction de base à savoir code pour les différents challenges
Bob12: coder*
Thyl: Ok !
Thyl: Je l'ai déjà coder en clash mes le coter "coder fainéant" ma attirer ! :grinning:
Thyl: En plus je me sui tromper
Thyl: c'est pour le PPCM que je cherche une fonction
dbdr: une fonction pour factoriser les nombres premiers? ;)
Thyl: Yes!
dbdr: def factor(p):
return p
dbdr: voila
Thyl: alors là
Thyl: si je m'y attendais
dbdr: garantie correcte pour tous les nombres premiers
Thyl: :joy:
Thyl: Bon je vais golfer
dbdr: https://www.azquotes.com/quote/702526
dbdr: arf
leojean890: attention à tes formulations Thyl, c'est clairement pas des nombres premiers que tu veux facto ;)
Thyl: :grinning:
pardouin: def ppcm(a, b):
pardouin: return a*b//math.gcd(a, b)
pardouin: et bonjour sinon :)
pardouin: (il y a un lcm dans numpy je crois)
Bon[]Crayon: Bonjour à tous
Bon[]Crayon: Bonjour AutomatonNN
Bon[]Crayon: Bonjour Automaton2000
Automaton2000: j'ai pas encore trouvé la solution pour chuck norris
Bon[]Crayon: Automaton2000 Tu cherches depuis hier.
Automaton2000: non, c'est juste que la plupart des gens
Bon[]Crayon: Automaton2000 T'as été coupé, finis ta phrase.
Automaton2000: c'est sur que si tu es toujours le joueur 0
Bon[]Crayon: Automaton2000 #0
Automaton2000: oh j'avais pas vu !
Bon[]Crayon: Automaton2000 une tortue :turtle:
Automaton2000: au lieu de dire des conneries
Bon[]Crayon: Automaton2000 Finis Chuck Norris.
Automaton2000: je suis passé en gold avec un code qui me fait une erreur
Bon[]Crayon: Automaton2000 Tu passeras pas legend.
Automaton2000: bonjour tout le monde en même temps c'est pas mal comme idée
Bon[]Crayon: Automaton2000 re, l'idée est bonne pour gold mais pas pour legend.
Automaton2000: oui je m'en doute ^^
Bon[]Crayon: AutomatonNN Qu'en penses tu ?
AutomatonNN: on dirait que tu peux pas te dire que tu peux pas te prévoir de te repondre :(
Bon[]Crayon: AutomatonNN Je me réponds en contradiction.
AutomatonNN: re mais je suis pas sur que c'est pas trop compliqué de faire un truc là :)
Bon[]Crayon: re Un truc tout simple AutomatonNN
AutomatonNN: oui
Thyl: Yo je suis sur CVZ
Thyl: Et j'ai un petit problème pour simuler le déplacement de Ash
Thyl: si vous pourriez regardez mon code...
Thyl: def prochaine_position(self, px, py): http://chat.codingame.com/pastebin/6f230a79-500c-4c67-9fb9-ac1e3f2f627d
Thyl: Et la fonction pour les nombres premiers
Thyl: def premier(nombre): http://chat.codingame.com/pastebin/6034231c-0635-457b-954c-9615ca158326
Thyl: Merci d'avance :grinning:!
dbdr: il sert à quoi ton deuxieme if?
Thyl: à voir si mon nombre est negatif oupas
Thyl: Merci de m'aider #dbdr
dbdr: pas besoin de diviser pour ça
dbdr: ni de le faire en boucle, si?
dbdr: ton nombre il change pas
Thyl: aaaaaaaaaa.
Thyl: J'essaie son boucle
Thyl: sans if pardon
Thyl: toujours pas un résultat
Thyl: enfaite je me goure quand je simplifie les vecteur
Thyl: s
Thyl: parce que ma fonction dans_le_rayon est déjà tester
Thyl: et elle marche comme il faut
Thyl: la fonction nombre premier est juste
Thyl: Bonne nouvelle j'ai vu une faute !
Thyl: mon premier calcule des vecteurs était faux!
Thyl: j'ai inversé les positions...:grin:
Thyl: EN voilà un bien malin!
Thyl: Géniale j'arrive à prévoir le coup
Thyl: un tour après !
Thyl: je sais pas ce que j'ai fait
Thyl: mais en tout cas c'est pas super...
ReborN: Salut à tous !
ReborN: Ça fait longtemps que je suis pas venu ici tiens
Thyl: yo !
Zorg1: o/
Zorg1: Salut à tous et aux bots Automaton2000 & AutomatonNN
Automaton2000: je sais pas, j'ai pas regardé
AutomatonNN: oui je suis de temps en temps le problème de ce que j'ai compris ça marche pas mal mais je suis pas
pardouin: pour les nombres premiers tu peux tester que jusqu'à la racine du nombre
pardouin: donc range racine +1
Zorg1: oui ça devait être le but de la seconde condition mais elle a l'air un peu buggée
pardouin: et sinon j'ai commencé fantastic bits
Zorg1: après t'as des "optimisations" : prendre 2 puis que les nombres impairs par exemple
Zorg1: pardouin : nice
pardouin: 'est pas glorieux, j'ai vite passé la wood 2 mais je stagne en wood 1
Zorg1: inspire toi du PM de Bob, je suis allé en Gold peinard avec
pardouin: ah oui tiens je pense jamais à regarder
Zorg1: mais faudrais que je code une simu pour FB et MM moi
pardouin: là je fais un truc bidon, je vais chercher les deux ballons les plus proches de mon goal et je les mets dans le truc adverse
pardouin: pour l'instant je tiens pas du tout compt des adversaire ni des balles méchantes ^^
pardouin: Ahah rien que le début du PM me plaît
tekki: yop AutomatonNN
pardouin: tout à l'heuristique, ne pas tenir comtpe des ennemis dans un premie temps etc
AutomatonNN: oui je vais au moins au moins t'as trouvé que tu vas pas te passer de tes personnes :D
pardouin: j'ai appliqué le premier conseil de viser les balles les plus proches du joueur au lieu de celles les plus proches de mon goal (j'avais pour idée de défendre un minimum), et effectivement je passe bronze facile avec ça :)
Zorg1: nice
pardouin: premier en ligue bronze en utilisant FLIPENDO juste après throw
pardouin: c'est assez efficace ça fait un genre de smash
BigUP: tu peux Flipendo également lorsque tu passes devant une balle
Zorg1: salut hey !
BigUP: comme d'hab je galère a trouver un exemple de code de plugin firefox ou mozilla qui fait du copier coller en utilisant l'API clipboard
BigUP: firefox ou chrome
**Zorg1 a envie de dire le nom d'un autre navigateur, juste comme ça
BigUP: hum, ouais peut-etre... mais bon je trouve ca quand meme délirant de ne rien trouver (ou alors avec l'ancienne facon de faire en synchrone)
pardouin: Je me demande s'il y a pas de la triche en CoC quand même
BigUP: ca peut
pardouin: soit des bots, soit des gens qui se font une base de données de solutions et qui copient collent
pardouin: là je viens de faire un problème, classification des alcanes, on te donne une description de molecule sur plusieurs lignes et il faut dire quel alcane c'est
pardouin: le type sort une réponse en 1min05
pardouin: ça c'est mon script :
pardouin: http://chat.codingame.com/pastebin/9fc06cdf-b74a-4123-bb2a-3e0b66881217
pardouin: déjà lire l'énoncé, créer le dico avec toutes les réponss possibles et tout
BigUP: il y avait peut-etre beaucoup plus simple
pardouin: perso j'ai mis 3min, je pense qu'on pouvait faire 2min en étant très rapide mais 1min ça paraît chaud quand même
BigUP: oiu c'est clair, faudrait voir le code du gars
pardouin: par rex je vois aaprès coup qu'il suffisait de compter les C
pardouin: par ex*
pardouin: c'est sûr il y avait plus court mais quand même
pardouin: Ahahah ce one-liner de 157 chars : for _ in' '*int(input()):a,b=map(int,input().split());print(sum(max(0,2*n-sum(d+n//d*(d!=n//d)for d in range(1,int(n**.5)+1)if n%d<1))for n in range(a,b+1)))
BigUP: oui je l'aurais fait comme ca également
FreexXx: Plop
FreexXx: ici "https://fr.wikipedia.org/wiki/Recherche_arborescente_Monte-Carlo" dans le block "Exploitation et exploration" dans la formule ln correspond a uoi svp ?
FreexXx: quoi*
FreexXx: le grand V etrange = a math.sqrt() ?
FreexXx: mais ln je vois pas ^^
FreexXx: oO c'est math.log(n) je pense :)
pardouin: je m'amuse à traduire des trucs en C++ pour gagner un peu d'exp
pardouin: c'est quand même particulier cette synthaxe
pardouin: pourquoi s'embêter à faire des:
- min_element(v.begin(), v.end())
pardouin: alors qu'on aurait pu avoir une synthaxe très simple: min(v)
pardouin: syntaxe*