10:08 <debnet> Bonjour !
10:13 <mdk> o/
10:14 <debnet> Automate cellulaire aujourd'hui pour l'AoC.
10:15 <mdk> ooohhhh ♥
10:15 <mdk> j'ai pas démarré encore
10:16 <mdk> Mais j'ai lu "A new kind of science", alors si je galère sur cet exo, je brule le livre !
10:24 <debnet> :D
10:38 <asyd> debnet: cellulaire ?
10:38 <debnet> @asyd Tu connais pas ? Genre jeu de la vie.
10:39 <entwanne> https://fr.wikipedia.org/wiki/Automate_cellulaire
10:43 <asyd> ah oui ok
11:19 <mdk> Jour 11 terminé, plus compliqué que prévu, apprendre à lire un sujet tout ça …
11:20 <asyd> ah oui adventofcode faut bien lire le sujet :)
11:21 <debnet> Déjà fini @mdk ?
11:21 <debnet> J'ai pas encore eu le temps de m'y mettre !
11:22 <mdk> "déjà", j'ai mis plus de temps que j'aurai voulu
11:22 <mdk> ça m'a pris 58 minutes !
11:22 <debnet> Tu les mets sur GitHub ?
11:22 <mdk> Pas au fur et a mesure, mais a noel oui je pousserai
11:23 <mdk> J'ai perdu du temps : j'ai cru qu'il falait regarder "8 sièges dans les 8 directions" (faire une belle étoile) pour la partie 1 (apprendre à lire tout ça)
11:23 <mdk> donc j'ai tenté avec numpy et np.diag pour extraire de belles diagonales de 17 de long autour du siège
11:24 <mdk> Pour au final jeter le code :P
11:24 <debnet> Ah t'as utilisé numpy. ^^
11:25 <debnet> J'essaye de le faire sans, mais ma partie 1 met presque 2 secondes à s'exécuter. :')
11:25 <mdk> oui, je n'ai pas d'occasion de l'utiliser souvent, alors quand je vois une occasion, je le sort, ça m'apprend des choses
11:26 <mdk> oh t'en fais pas, vu que j'ai utilisé numpy comme une quiche (en fait je fais du Python pas du numpy …) ça met autant de temps que toi
11:27 <mdk> j'ai un peu "jetté l'éponge numpy" quand j'ai vu que j'avais mal compris l'énoncé, j'ai fait mes accès à la rache j'ai même un yield þ
11:27 <entwanne> ouais j'ai relu plusieurs fois avant de comprendre ce qu'ils appelaient les voisins
11:27 <mdk> debnet: quand j'ai des directions a prendre en compte j'aime beaucoup ce genre de chose : https://wyz.fr/0W-GV
11:27 <debnet> Ah j'ai fait ça aussi. xD
11:27 <entwanne> Ahah, je fais pareil mais en générant cette liste à partir de range+product
11:28 <debnet> Oh ?
11:28 <entwanne> [(dx, dy) for dy, dx in product(range(-1, 2), repeat=2) if (dx, dy) != (0, 0)]
11:29 <debnet> Ah ah. :D
11:29 <mdk> propre
12:11 <debnet> @mdk Meh. https://github.com/debnet/AdventOfCode2020/blob/master/Day11.ipynb
12:56 <pmp-p> @debnet t'a rien pour l'éxécuter directement en ligne ton ipynb ?
12:57 <debnet> Y a plein de solutions, genre Collab. Mais pourquoi cette question ?
12:58 <pmp-p> on m'a demandé comment exécuter panda3d pour une visualisation scientifique dans le browser
12:58 <pmp-p> j'ai demandé au gars si jupyter tournait dans le browser ou dans un serveur loué il a pas su me répondre
12:59 <pmp-p> et donc je me demdandais comment les gens font "tourner" un ipynb sans rien
13:00 <pmp-p> ( si c'est un serveur loué ben spa dur t'envoie l'image du rendu et pis c'est tout issue fermée )
13:00 <debnet> Bah un notebook intègre ses résultats normalement.
13:01 <pmp-p> précalculé ?
13:01 <debnet> Si t'as pas besoin d'exécuter le notebook, tu peux extraire le HTML/images du rendu.
13:01 <debnet> Y a des outils pour faire ça.
13:01 <debnet> Globalement c'est ce que fait GitHub.
13:02 <Mindiell> pourquoi les gens veulent tout faire dans les navigateurs ? :o/
13:03 <pmp-p> Mindiell: je pense qu'il voulait laisser l'utilisateur changer des parametres
13:03 <pmp-p> et genre envoyer ça par mail
13:06 <pmp-p> y a meme un type qui voulair python dans un .html car il a pas d'internet ni le droit d'installer des programmes, mais il a un navigateur pour intranet
13:17 <mdk> pmp-p: https://jupyter.org/binder
13:17 <mdk> pmp-p: https://nbviewer.jupyter.org/
13:46 <Mindiell> y a pas de python portable ? :/
14:12 <mdk> portable dans quel sens ?
14:14 <mdk> Mindiell: si tu cherche côté Python dans le navigateur il y a tout plein de pistes, regardes les travaux de pmp-p, Pyodide, Brython, ...
14:15 <Mindiell> portable dans le sens un exe sur une clef
14:16 <mdk> Mindiell: mais donc "portable" dans le sens "Windows uniquement" ?
14:17 <Mindiell> mdk: logiquement oui
14:17 <Mindiell> portable dans le sens "transportable" et sans installation
14:17 <mdk> Alors vu ma connaissance de Windows je vais m'abstenir de répondre :]
14:17 <Mindiell> mais dans mon souvenir, tu peux le décompresser/insstaller sur la clef et ça juste fonctionne
14:17 <Mindiell> j'avais essayé/fait avec succès IIRC
14:18 <mdk> Là où je me demande comment Windows va gérer c'est du côtés des bibliothèques partagées (sqlite, openssl, ...)
14:18 <Mindiell> c'est à dire ?
14:18 <misc> bah, windows a une API stable :p
14:46 <mdk> debnet: https://github.com/JulienPalard/AdventOfCode2020/blob/master/day11.py j'ai publié finalement, vu que tout le monde publie, pas besoin d'attendre noel pour éviter les "tricheurs" :p
14:48 <Mindiell> youhou ! Je vais pouvoir tricher !
14:48 <Mindiell> merci <3
14:48 <mdk> Mindiell: y'a déjà des centaines de repos avec les solutions dans tout plein de langages þ
14:48 <Mindiell> Y a que ton code python qui m'intéresse :oP
14:49 <mdk> Par contre PROMIS je ne push qu'après les 100 premiers.
14:49 <Mindiell> Je ne lis même plus les problèmes depuis le 7, donc ça me dérange pas ;o)
15:16 <debnet> @mdk Je viens de regarder ton code. :)
15:16 <debnet> Numpy c'est de la triche. :D
15:16 <debnet> Je ne suis pas mécontent d'avoir utilisé un dictionnaire pour représenter la grille.
15:17 <debnet> Ca n'autorise à ne garder que les sièges vides ou pas.
15:17 <debnet> Memory efficient!
15:19 <entwanne> j'ai hésité à faire un dictionnaire, mais au final je n'y gagnais rien
15:20 <entwanne> mon optimisation c'est d'éviter de recalculer les voisins alors qu'on les connaît déjà, donc je mets en cache
15:20 <entwanne> https://github.com/entwanne/advent-of-code-2020/blob/master/d11.py
15:22 <mdk> entwanne: c'est pas bête le cache, moi je reparcourre a chaque fois les 8 directions a la recherche du prochain siège, ça doit pas etre super du tout
15:23 <mdk> debnet: et bof "numpy c'est de la triche" si on l'utilise bien, je ne l'ai pas bien utilisé
15:23 <entwanne> j'ai divisé par 2 le temps de calcul avec le cache
15:23 <mdk> pas mal !
15:24 <debnet> Le cache je n'y ai pas pensé !
15:24 <debnet> Je suis bête !
15:28 <debnet> En fait dans mon algo j'ai rien à mettre en cache surtout.
15:29 <entwanne> après mon traitement du cache est un peu moche : je pourrais d'abord calculer les places possibles dans un set si besoin puis itérer dessus dans tous les cas, mais je perdais un peu en perf
15:29 <debnet> Tu mets combien de temps pour la partie 1 et 2 ?
15:31 <entwanne> 1,5s, mais c'est difficilement comparable entre machines je pense
15:31 <debnet> C'est vrai.
15:46 <entwanne> mais si tu veux tu peux tester pour voir, j'ai mon fichier python et mon input dans le dépôt
16:49 <debnet> @entwanne Je me suis amusé à mettre transonic pour rigoler. :D
16:49 <debnet> C'est pas mal fast. x)
16:49 <debnet> J'ai pas essayé sur Pypy encore.