J'ai pas de leçon à donner à un projet comme pypy mais j'aurai plutôt fait un miroir fermé sur GH avec message disant "viendez sur notre forge" (gitea, gitlab, forgejo younameit) quitte à proposer un social login GH pour les contributeurs qui ne veulent pas créer un nouveau compte.
Je dirai que ce qui se rapproche le plus est le serveur libre de jeu de carte que je vais auto-héberger et jouer avec mes amis.
Mais si il faut coder, pas de soucis. J'aimerai juste ne pas partir de rien et ne pas passer à côté d'un projet FOSS auquel je pourrais contribuer au lieu de ramer seul.
De très loin aussi. Mais quand je vois ce qui sort, je me dis que le plus fort, c'est pas le législateur mais les lobbies et des fois le lobby des consommateurs.
Posté par steph1978 .
En réponse au message Advent of Code, jour 14.
Évalué à 2.
Dernière modification le 16 décembre 2023 à 02:22.
importsysI=sys.stdin.read().splitlines()G=[list(l)forlinI]R=len(G)C=len(G[0])defrotate(G,F):forrinrange(R):forcinrange(C):F[c][R-1-r]=G[r][c]deftilt(G):forxinrange(C):foryinrange(R):ifG[y][x]=="O":forjinrange(y-1,0-1,-1):ifG[j][x]=='.':G[j][x]="O"G[j+1][x]="."else:breakscore=lambda:sum((R-y)*row.count('O')fory,rowinenumerate(G))cache={}F=[['?'for_inrange(C)]for_inrange(R)]# pre-allocate saves 10% time (no GC)end=1_000_000_000i=0whilei<end:i+=1forjinrange(4):tilt(G)ifi==1andj==0:print(score())# part 1rotate(G,F);F,G=G,Fh=''.join(''.join(row)forrowinG)ifhincache:period=i-cache[h]skip=(end-i)//periodi+=skip*periodcache[h]=iprint(score())
Avec un lib de gestion des polygone, j'ai fini par trouver pour la partie 2.
Mais un peu l'impression de tricher et de sortir le bazooka.
Le code pour la partie 1:
importsysI=sys.stdin.read().splitlines()G=[list(l)forlinI]W=len(G[0])H=len(G)# look for SS=Noneforyinrange(H):if(x:=I[y].find("S"))>-1:S=(x,y)breakD={'u':{'|':(0,-1,'u'),'F':(1,0,'r'),'7':(-1,0,'l'),},'r':{'-':(1,0,'r'),'J':(0,-1,'u'),'7':(0,1,'d'),},'d':{'|':(0,1,'d'),'L':(1,0,'r'),'J':(-1,0,'l'),},'l':{'-':(-1,0,'l'),'L':(0,-1,'u'),'F':(0,1,'d'),},}N=1x0,y0=SP=(x0+1,y0,'r')# start at S and go rightfor_inrange(100_000):x,y,d=PN+=1z=G[y][x]ifz=='S':breakdx,dy,nd=D[d].get(z)P=(x+dx,y+dy,nd)print(N//2)
J'ai bien brûlé du CPU avant de comprendre qu'il fallait pas tout faire tourner en même temps mais juste calculer le nombre d'étapes de chaque fantôme puis de prendre leur PPCM.
Après une partie 1 torchée en cinq minutes, j'ai eu la flemme d'écrire les algo d'intersection. J'avais laissé de côté.
Puis j'ai quand même tenté en brute force (vraiment crassouille d'itérer sur une range de plusieurs millions). Mais en compilant le programme, réponse en 7 minutes.
J'aurai fait ça à l'ouverture du challenge, j'aurai tapé le top 100 :D
importsys(t,r)=(int(sys.argv[1]),int(sys.argv[2]))print(# i : time of charging, between 0 and t# v = i # speed in m/s# d = v * (t-i) # distance = speed * remaining timesum(i*(t-i)>rforiinrange(t)))
je pensais que ça allait coincer pour la partie 2, car ça sentait le gros chiffre pour exploser le cpu ou la mémoire.
mais il n'est est rien.
donc son mobile poll une URL et si elle a un truc à envoyer c'est le mobile qui l'envoie.
roo, malin
faut rester sous le radar de l'opérateur parce que t'es pas sensé utiliser ton forfait pour un usage pro mais j'imagine que la barre de détection est haute.
[^] # Re: backup
Posté par steph1978 . En réponse au lien Pypy passe à Git + Github. Évalué à 3.
C'est vrai.
J'ai pas de leçon à donner à un projet comme pypy mais j'aurai plutôt fait un miroir fermé sur GH avec message disant "viendez sur notre forge" (gitea, gitlab, forgejo younameit) quitte à proposer un social login GH pour les contributeurs qui ne veulent pas créer un nouveau compte.
[^] # Re: Besoin de précisions
Posté par steph1978 . En réponse au message faire des jeux de cartes en ligne. Évalué à 4. Dernière modification le 03 janvier 2024 à 00:39.
Je dirai que ce qui se rapproche le plus est le serveur libre de jeu de carte que je vais auto-héberger et jouer avec mes amis.
Mais si il faut coder, pas de soucis. J'aimerai juste ne pas partir de rien et ne pas passer à côté d'un projet FOSS auquel je pourrais contribuer au lieu de ramer seul.
# backup
Posté par steph1978 . En réponse au lien Pypy passe à Git + Github. Évalué à 7.
Triste constat de réalité : difficile d'échapper à l'hégémonie de GH pour attirer des contributions.
Pensez juste à backuper le project GH. Je parle pas du repo en lui même qui est par nature décentralisé mais des issues, PR, discussions, wiki.
Trop de repo ont été retirés par GH sur une décision arbitraire de MS/GH ou du gov US.
[^] # Re: Eur0p3 4 Ev3r
Posté par steph1978 . En réponse au lien Japan to crack down on Apple and Google app store monopolies - OSnews. Évalué à 2.
De très loin aussi. Mais quand je vois ce qui sort, je me dis que le plus fort, c'est pas le législateur mais les lobbies et des fois le lobby des consommateurs.
[^] # Re: Détail du staff actuel et passé
Posté par steph1978 . En réponse au lien p3ter reprend la direction de PluXml après l'intérim de bazooka07 + v5.9 RC dispo à fins de test !. Évalué à 2.
Perturbant ce "About" qui ne dit pas ce que le logiciel fait.
C'est un CMS ou un SSG, c'est ça ?
[^] # Re: le bit de poids faible
Posté par steph1978 . En réponse au lien la manière la plus efficace de déterminer si un nombre est pair. Évalué à 3.
Je sais pas si ça valait une vidéo mais la blague est marrante.
[^] # Re: oui mais
Posté par steph1978 . En réponse au lien Kyber, le nouveau projet open source de Jean-Baptiste Kempf (VLC). Évalué à 4. Dernière modification le 27 décembre 2023 à 21:41.
En gros c'est VNC probablement en plus efficace.
[^] # Re: On aime les range, youpi, youpi !
Posté par steph1978 . En réponse au message Advent of Code, jour 19. Évalué à 2.
J'avais fait la partie 1.
Mais ton code est tellement clean, j'ai repris tel quel :)
[^] # Re: J'ai un peu honte...
Posté par steph1978 . En réponse au message Advent of Code, jour 18. Évalué à 2.
Tout pareil, mas dès la première partie.
Ce jour m'a permis de découvrir shapely.
Qui permet aussi de beau tracés:
# python en 44 LoC, 110ms et 10MB RAM
Posté par steph1978 . En réponse au message Advent of Code, jour 14. Évalué à 2. Dernière modification le 16 décembre 2023 à 02:22.
[^] # Re: Pourquoi des dictionnaires ?
Posté par steph1978 . En réponse au message Advent of Code, jour 15. Évalué à 2. Dernière modification le 16 décembre 2023 à 00:10.
Pour économiser 40 lignes de code ?
[^] # Re: En express aujourd'hui
Posté par steph1978 . En réponse au message Advent of Code, jour 15. Évalué à 2.
Tu m'évites un copier-coller :) Aux noms des variables près, j'ai exactement le même code.
Reposant aujourd'hui :)
[^] # Re: désolé, c'est pas ma marotte
Posté par steph1978 . En réponse au lien Vous n’écoutez pas assez de contrebasson. Évalué à 2.
C'est plus mon œil qui est lésé là :D
Bon je taquine, c'était plus une blague sur ton pseudo et le fait que ça n'a pas grand chose à voir avec Linux et le logiciel libre.
Mais sinon, j'ai regardé la vidéo (sur invidious quand même). Oui, ça déchire.
# désolé, c'est pas ma marotte
Posté par steph1978 . En réponse au lien Vous n’écoutez pas assez de contrebasson. Évalué à 4.
.
[^] # Re: Une solution assez élégante, je trouve.
Posté par steph1978 . En réponse au message Advent of Code 2023 : Jour 10. Évalué à 2. Dernière modification le 10 décembre 2023 à 15:40.
Chapeau pour l'astuce du doublement
[^] # Re: j'ai adoré
Posté par steph1978 . En réponse au message Advent of Code 2023 : Jour 10. Évalué à 2. Dernière modification le 10 décembre 2023 à 15:17.
Avec un lib de gestion des polygone, j'ai fini par trouver pour la partie 2.
Mais un peu l'impression de tricher et de sortir le bazooka.
Le code pour la partie 1:
Sinon, c'est joli
# j'ai adoré
Posté par steph1978 . En réponse au message Advent of Code 2023 : Jour 10. Évalué à 2.
Le labyrinthe de tuyaux change des labyrinthe classique.
Cela m'a pris un peu (trop) de temps d'encoder les déplacements. Mais au final, ça se fait.
Par contre la partie 2, je ne vois pas du tout comment procéder.
[^] # Re: Résolution péripatéticienne...
Posté par steph1978 . En réponse au message Advent of Code 2023 : Day 9. Évalué à 2.
Chapeau pour avoir fait le challenge depuis le phone. Moi qui passe par le PC pour un message de plus de trois lignes, j'aurai souffer.
# recursion
Posté par steph1978 . En réponse au message Advent of Code 2023 : Day 9. Évalué à 3.
Pour ma part, le jour le plus facile depuis le début
[^] # Re: Découpage d'intervalles en Python
Posté par steph1978 . En réponse au message Advent of Code 2023 : Day 5. Évalué à 2.
Je crois que tu réponds à ta propre question. Au lieu de tourner pendant 10 minutes, cela aurait tourné pendant une poignée de secondes.
# sans PPCM, t'est cuit
Posté par steph1978 . En réponse au message Advent of Code 2023, day 8. Évalué à 1.
J'ai bien brûlé du CPU avant de comprendre qu'il fallait pas tout faire tourner en même temps mais juste calculer le nombre d'étapes de chaque fantôme puis de prendre leur PPCM.
En 20 lignes de python:
[^] # Re: Découpage d'intervalles en Python
Posté par steph1978 . En réponse au message Advent of Code 2023 : Day 5. Évalué à 2. Dernière modification le 08 décembre 2023 à 16:09.
Je te confirme.
Après une partie 1 torchée en cinq minutes, j'ai eu la flemme d'écrire les algo d'intersection. J'avais laissé de côté.
Puis j'ai quand même tenté en brute force (vraiment crassouille d'itérer sur une range de plusieurs millions). Mais en compilant le programme, réponse en 7 minutes.
J'aurai fait ça à l'ouverture du challenge, j'aurai tapé le top 100 :D
# en mode brute, et c'est passé
Posté par steph1978 . En réponse au message Advent of Code 2023, day 6. Évalué à 2. Dernière modification le 08 décembre 2023 à 16:02.
j'ai énuméré toutes les unités de temps.
je pensais que ça allait coincer pour la partie 2, car ça sentait le gros chiffre pour exploser le cpu ou la mémoire.
mais il n'est est rien.
[^] # Re: excusez ma naïveté
Posté par steph1978 . En réponse au journal Périphérique d'authentification TOTP. Évalué à 4.
donc son mobile poll une URL et si elle a un truc à envoyer c'est le mobile qui l'envoie.
roo, malin
faut rester sous le radar de l'opérateur parce que t'es pas sensé utiliser ton forfait pour un usage pro mais j'imagine que la barre de détection est haute.
[^] # Re: excusez ma naïveté
Posté par steph1978 . En réponse au journal Périphérique d'authentification TOTP. Évalué à 4.
parce qu'il faut donner son numéro de téléphone et moi, je veux pas.
pour éviter de se faire voler son compte.