#!/bin/python3defintlen(nb):l=0whilenb>=1:nb=nb/10l+=1returnldefispart(puzzle,line,col,n):try:ifpuzzle[line][col-1].isdigit():return0exceptIndexError:passtry:foriinrange(1,5):ifpuzzle[line][col+i].isdigit():n=n*10+int(puzzle[line][col+i])else:breakexceptIndexError:passforjin[1,-1]:foriinrange(-1,intlen(n)+1):try:ifpuzzle[line+j][col+i].isdigit()==Falseandpuzzle[line+j][col+i]!=".":returnnexceptIndexError:passforiin[-1,intlen(n)]:try:ifpuzzle[line][col+i].isdigit()==Falseandpuzzle[line][col+i]!=".":returnnexceptIndexError:passreturn0defisgear(puzzle,line,col,j):try:ifpuzzle[line][col].isdigit()==False:return0exceptIndexError:return0ifj!=-1:try:ifpuzzle[line][col-1].isdigit():return0exceptIndexError:passstart=0foriinrange(-1,-5,-1):try:ifpuzzle[line][col+i].isdigit():start-=1else:breakexceptIndexError:breakp=ispart(puzzle,line,col+start,int(puzzle[line][col+start]))returnpdefsolve1(puzzle,testing=False):s=0forlineinrange(len(puzzle)):forcolinrange(len(puzzle[line])):ifpuzzle[line][col]==".":continueelifpuzzle[line][col].isdigit():p=ispart(puzzle,line,col,int(puzzle[line][col]))s+=piftestingandp!=0:print("The part ",p," at ",line,";",col," is ok.")iftesting:print(s)returnsdefsolve2(puzzle,testing=False):s=0forlineinrange(len(puzzle)):forcolinrange(len(puzzle[line])):ifpuzzle[line][col]=="*":ng=0g=[0,0,0]foriin[1,0,-1]:forjin[1,0,-1]:g[ng]=isgear(puzzle,line+i,col+j,j)ifg[ng]!=0:ng+=1ifng==3:breakifng==3:breakifng==2:iftesting:print("Gear at ",line,";",col," with parts ",g[0],";",g[1])s+=g[0]*g[1]eliftesting:print("Gear at ",line,";",col," but with ",ng," parts.")iftesting:print(s)returnstest1="""467..114.....*........35..633.......#...617*...........+.58...592...........755....$.*.....664.598.."""result1=4361test2=test1result2=467835defsolve(short=False):print("----Part 1----")ifshort==False:ifsolve1(test1.split("\n"),testing=True)!=result1:print("Not working.")returnFalseelse:print("Maybe working?")withopen("input.txt",'r')asfile:lines=file.read().split("\n")s1=solve1(lines)print(s1)print("----Part 2----")ifshort==False:ifsolve2(test2.split("\n"),testing=True)!=result2:print("Not working.")returnFalseelse:print("Maybe working?")withopen("input.txt",'r')asfile:lines=file.read().split("\n")s2=solve2(lines)print(s2)returns1,s2if__name__=="__main__":fromsysimportargvtry:ifargv[1]=="--summary"orargv[1]=="-s":solve(short=True)exceptIndexError:solve()
C'est en effet une trĂšs bonne piste, mais je ne pourrais pas l'utiliser. En effet, je n'ai pas la main sur le proxy et la box derriĂšre lesquels je suis, et l'administrateur est trĂšs trĂšs trĂšs frileux sur l'ouverture des ports.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Python
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023, day 7. Ăvalué à  1.
C'est trÚs trÚs trÚs louche : on est un jour impair et la difficulté est raisonnable. Nous sommes trahis.
POur aujourd'hui, j'ai défini deux classes Hand et HandJoker trÚs semblables et qui ont certains opérateurs surchargés pour pouvoir utiliser la fonction
sorted()
.AprÚs les avoir triés dans des listes par catégories, ont les tris et on récupÚre le score.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Python et math
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023, day 6. Ăvalué à  1.
TrĂšs clairement un exos de math qui pourrait ĂȘtre donnĂ© Ă des secondes, il fallait que ça tombe le jour oĂč je n'avais pas le temps avant le soir.
Ma solution :
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Python sans brûlage de CPU ni explosion de RAM
Posté par alberic89 đ§ . En rĂ©ponse au message [Doublon] Advent of Code 2023 : Day 5. Ăvalué à  1.
Au début, je m'étais dit naïvement :
AprĂšs m'ĂȘtre fait rappeler Ă l'ordre par mon OOM Killer, j'ai mis en place une solution plus simple qui applique directement les modifications aux numĂ©ros de graine et se souvenant s'il a dĂ©jĂ modifiĂ© cette valeur (pour Ă©viter de changer 3 fois par Ă©tape les numĂ©ros).
La partie 2 m'a donnée beaucoup plus de fil à retordre, car ce n'est pas simplement :
Mais l'OOM Killer proteste encore une fois, m'obligeant à finalement essayer de gérer des intervalles plutÎt que des valeurs. AprÚs beaucoup de débuggage et d'arrachage de cheveux, j'ai fini par trouver la recette qui s'exécute instantanément.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Python sans brûlage de CPU ni explosion de RAM
Posté par alberic89 đ§ . En rĂ©ponse au message [Doublon] Advent of Code 2023 : Day 5. Ăvalué à  1. DerniĂšre modification le 05 dĂ©cembre 2023 Ă 16:01.
Une solution dont je ne suis pas peux fier, puisquâelle est Ă©conome en ressource et prend moins d'une seconde Ă terminer. Et j'ai enfin commencĂ© Ă utiliser la POO :
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Python
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023 : Day 1. Ăvalué à  2.
J'ai vérifié avant et avait fais quelques tests dans la premiÚre partie, il n'y a pas de zéro. Et si c'était le cas, il suffirait d'ajouter une ligne au dictionnaire.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Simple et rapide
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023 : Day 4. Ăvalué à  1.
Une solution simple mais efficace :
J'ai trouvé le problÚme étonnamment simple, j'y suis arrivé du premier coup pour les deux parties.
Et contrairement à beaucoup de monde ce jour-là , cette solution est presque instantanée à l'exécution, de l'ordre de 0.01 sec.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Python
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023 : Day 3. Ăvalué à  1. DerniĂšre modification le 04 dĂ©cembre 2023 Ă 20:49.
Voici ma solution du jour :
J'ai passé beaucoup de temps à essayer de comprendre pourquoi diable les test fonctionnaient mais pas l'input ! La réponse était dans ma fonction pour récupérer la taille d'un entier :
Avec
while nb > 0
au lieu dewhile nb >= 1
. Mais les données de test fonctionnaient, c'était incompréhensible.Et oui, je suis un grand adepte du
try ... except
quand je code vite et crade.L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# C'était trop simple... je suspecte un piÚge !
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023 : Day 2. Ăvalué à  1.
Ma solution en Python :
C'était presque simple aujourd'hui, c'est suspect.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Python
Posté par alberic89 đ§ . En rĂ©ponse au message Advent of Code 2023 : Day 1. Ăvalué à  1.
Ma solution :
AprÚs quelques essais en remplaçant avant de traiter, je me suis rendu compte que le plus simple était de reprendre intégralement la logique de la partie 1 en vérifiant une chaine plutÎt qu'un nombre.
Et c'est plutĂŽt propre.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: J'y retourne !
Posté par alberic89 đ§ . En rĂ©ponse au journal Advent of code 2023. Ăvalué à  2.
Salut,
Le leadboard LinuxFR 2023 est-il déjà crée ou pas ?
On pourrait aussi essayer de faire comme l'année derniÚre, un journal par jour.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Les mails, c'est compliqué....
Posté par alberic89 đ§ . En rĂ©ponse au journal IncompĂ©tence Web. Ăvalué à  4.
Et parce qu'il faut toujours rire de l'incompétence : https://grisebouille.net/reglons-le-probleme-du-chomage/
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Il est loin le temps des cassettes (92-93)
Posté par alberic89 đ§ . En rĂ©ponse au journal IA, fais-moi Ă©couter ce que j'aime ?. Ăvalué à  5.
Petit point libriste : il existe une alternative libre à Shazam nommée Mousai qui fait partie du GNOME Circle, qui existe en version mobile et dont voilà le dépÎt git.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: 100patates
Posté par alberic89 đ§ . En rĂ©ponse au journal Il est temps que la communautĂ© internationale fasse un choix. Ăvalué à  3.
Pour ceux qui ont

la flemme de chercherde légers trous de mémoire, voici qui devrait vous rafraichir :L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succÚs
[^] # Re: Total manque de respect
Posté par alberic89 đ§ . En rĂ©ponse au journal Il est temps que la communautĂ© internationale fasse un choix. Ăvalué à  5.
Gee a aussi fait une BD sur le sujet : https://grisebouille.net/foutez-la-paix-a-ma-bouffe/
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: un outil tiers
Posté par alberic89 đ§ . En rĂ©ponse au message Se connecter Ă un bureau Ă distance Ă travers une connexion mobile. Ăvalué à  3.
Auto-réponse : Apache Guacamole semble pouvoir fournir un service semblable, à explorer plus en détail.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: un outil tiers
Posté par alberic89 đ§ . En rĂ©ponse au message Se connecter Ă un bureau Ă distance Ă travers une connexion mobile. Ăvalué à  1.
Le cas 1 me semble une trÚs bonne idée, je note.
Ne serait-il pas possible, si on voulait pousser le bouchon un peu plus loin, d'imaginer qu'on héberge un service libre semblable à NoMachine chez un Chaton ou autre hébergeur dans ce style ? Je vais chercher.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Ce que j'avais fait à une époque .....
Posté par alberic89 đ§ . En rĂ©ponse au message Se connecter Ă un bureau Ă distance Ă travers une connexion mobile. Ăvalué à  3.
C'est en effet une trĂšs bonne piste, mais je ne pourrais pas l'utiliser. En effet, je n'ai pas la main sur le proxy et la box derriĂšre lesquels je suis, et l'administrateur est trĂšs trĂšs trĂšs frileux sur l'ouverture des ports.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# La suite de l'histoire
Posté par alberic89 đ§ . En rĂ©ponse au message Guichet unique, microentreprise et identitĂ© numĂ©rique. Ăvalué à  3. DerniĂšre modification le 21 novembre 2023 Ă 20:41.
Il y a une suite Ă l'histoire de Gee.
Mais pas de solution pour l'instant.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: IntĂ©rĂȘt ?
Posté par alberic89 đ§ . En rĂ©ponse au lien Compile python libs in your env. Ăvalué à  4.
Le principal avantage est le gain de place, j'imagine que les performances restent les mĂȘmes.
Ăa peut ĂȘtre utile sur des environnements oĂč l'espace disque est limitĂ©, ou bien si tu as des Go de librairies Python (coucou Numpy & Cie) et que tu veux faire du mĂ©nage.
En somme trÚs peu utile dans le cas général. Mais ça prouve qu'on peut compiler du code Python.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: A l 'époque il y avait Term Unit X :
Posté par alberic89 đ§ . En rĂ©ponse au lien Le z80, c'est comique (attention Ă vos zylogmatiques). Ăvalué à  3.
En français, j'ai réussis à avoir les épisodes 1, 2, 4, 6, 7 et 8 de Ubunchu.
En anglais, on peut tous les avoir facilement ici et lĂ .
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Les autres aussi
Posté par alberic89 đ§ . En rĂ©ponse au lien Vous pouvez dire Ă Google si vous refusez que votre site serve Ă entraĂźner ses IA via robots.txt. Ăvalué à  4.
Quelqu'un aurait-il une liste de bots qu'il est bon de bloquer, et pourquoi ?
Je vois que NixCraft en bloque une bonne tripotée, quelqu'un pourrait-il m'aider à comprendre pourquoi ?
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Je ne suis pas sûr que les logiciels libres soient moins consommateurs de ressources CPU/Mém
Posté par alberic89 đ§ . En rĂ©ponse au journal Cailloux, joujoux, bijoux. Ăvalué à  0.
Et la compilation doit-elle ĂȘtre prise en compte ?
Un programme en C a Ă©tĂ© compilĂ© et donc a consommĂ© dĂ©jĂ des ressources importantes avant mĂȘme d'ĂȘtre utilisé ! Il faut donc un certain nombre d'utilisations pour amortir.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: El Psy Kongroo
Posté par alberic89 đ§ . En rĂ©ponse au lien page onlyfans du Conseil EuropĂ©en pour la Recherche NuclĂ©aire. Ăvalué à  3.
Surtout les fans.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
# Se passer d'AppImage
Posté par alberic89 đ§ . En rĂ©ponse au message glibc insuffisante. Ăvalué à  4.
Bonjour,
je suppose que tu as essayé d'utiliser un AppImage, mais que tu n'as pas pu.
N'essaye JAMAIS de toucher à ta glibc, à moins de vouloir tout péter sans possibilité de retour.
Tu as plusieurs solutions :
- Passer à Debian Sid (trÚs déconseillé)
- Essayer d'utiliser l'archive
webcamoid-portable-linux-9.1.1-x64.tar.xz
sur la page https://github.com/webcamoid/webcamoid/releases en l'extrayant et lançant le fichier webcamoid.sh- Compiler toi-mĂȘme le logiciel en suivant les instructions Ă https://github.com/webcamoid/webcamoid/wiki/Build-and-install-in-GNU-Linux-and-FreeBSD (peu recommandĂ©)
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs
[^] # Re: Et le parallélisme ?
Posté par alberic89 đ§ . En rĂ©ponse Ă la dĂ©pĂȘche De Zig et des zags. Ăvalué à  1.
à ma connaissance, Zig n'inclut que ce systÚme dans sa syntaxe, qui est mieux expliquée ici, et en quoi elle permet de faire du parallélisme : https://kristoff.it/blog/zig-colorblind-async-await/
Mais je suppose qu'il existe des tas de librairies C et bientÎt des librairies Zig qui implémentent des fonctions beaucoup plus avancées.
L'informatique n'est pas une science exacte, on n'est jamais Ă l'abri d'un succĂšs