Pierre a écrit 133 commentaires

  • # Ca ne doit pas venir de windows uniquement.

    Posté par  . En réponse au message Process finished with exit code -1073741819 (0xC0000005). Évalué à 3 (+2/-0).

    Bonjour,

    Je viens tester sans soucis le 2eme code en exemple sur Windows avec un environnement virtuel Python 3.10 dans un Notebook et dans Spyder.

    Pour le 1er code, la classe ne fait rien de spécial, par contre l'appel objet=maclasse(self.dataframe) me semble étrange a moins qu'il soit fait depuis une autre classe d'objet sinon ce devrait simplement être objet=maclasse(dataframe).

    J'ai beaucoup utilisé pandas pendant quelques mois, au début j'avais parfois des problèmes liés aux droits utilisateurs. En passant sur un environnement virtuel je n'ai plus eu de soucis.

  • [^] # Re: Un grand classique, mais toujour aussi long à résoudre

    Posté par  . En réponse au message Advent of Code 2023 : Jour 10. Évalué à 1.

    J'avais aussi commencé par une fonction récursive, mais elle ne dépassait la limite de recursion, je l'ai remplacé par une simple boucle while.

    inputs = open(f'input_d10.txt').read()
    
    grid=[]
    for y,l in enumerate(inputs.strip().split('\n')):
        if 'S' in l:
            start = l.find('S'), y
        grid.append([*l])
    
    H,W = len(grid)-1, len(grid[0])-1
    
    pipes = {
        '|': ((0,1),(0,-1)), 
        '-': ((1,0),(-1,0)),
        'L': ((0,-1),(1,0)),
        'J': ((0,-1),(-1,0)),
        '7': ((-1,0),(0,1)),
        'F': ((1,0),(0,1)),
        '.': ((0,0),(0,0))
    }
    
    dirs = {s:{i:o, o:i} for s,(i,o) in pipes.items()}
    
    
    def loop(dx,dy,x,y):
        l, path = 0, []
        while 1:
            if l and (x,y) == start:
                return l, path
            path.append((x,y))
            nx, ny = x+dx, y+dy
            if nx<0>ny or nx>W or ny>H:
                return None
            d = [(ndx,ndy) for dxy in map(dirs.get,grid[ny][nx]) 
                 for (ndx,ndy) in dxy if (nx+ndx,ny+ndy)==(x,y)]
            if not d:
                return None
            ndx, ndy = dirs[grid[ny][nx]][d[0]]
            dx, dy, x, y, l = ndx, ndy, nx, ny, l+1
    
    
    ll, path = 0, []
    s = ''
    for p in pipes:
        x,y = start
        dx, dy = pipes[p][0]
        grid[y][x] = p
        if lp:=loop(dx,dy,x,y):
            if lp[0]>ll:
                ll, path = lp
                s = p
    
    part_1 = ll // 2
    print(f"{part_1=}")
    
    
    part_2 = 0
    x,y = path[0]
    grid[y][x] = s     
    path = set(path)
    prev_l = '.' * (W+1)
    
    for y,l in enumerate(grid):
        inside = 0
        for x,c in enumerate(l):
            if ((x,y) in path and (c=='|'  or 
                (c in 'JL' and prev_l[x] in '|7F'))):
                inside ^= 1
            elif (x,y) not in path:
                part_2 += inside
        prev_l = l
    
    print(f"{part_2=}")
  • [^] # Re: j'ai adoré

    Posté par  . En réponse au message Advent of Code 2023 : Jour 10. Évalué à 1.

    Pour la partie 2, cela m'a rappelé un problème que j'avais résolu sur CodingGame par remplissage de zones, mais ce n’était pas très efficace, le plus simple est de considérer uniquement les traversées de tuyaux :

    À chaque ligne on commence à l'extérieur de la boucle
    Si on traverse un tuyau | de la boucle on entre à l’intérieur de la boucle jusqu’à la prochaine traversée.
    le point un peu délicat est de considérer les autres type de traversée de tuyaux

        ligne précédente #      | |   |       |
        on entre ici     # ~~>  L-J   L-7   F-J   F-7  ~~>
                         #              |   |     | |
    dans/hors la boucle  #     0110  0111  0001  0000
    
  • # Python pas classieux mais avec des set

    Posté par  . En réponse au message Avent du Code, jour 3. Évalué à 3.

    #! /usr/bin/python3
    
    fichier = 'input_day_3'
    
    def priority(c):
        return 26*c.isupper() + (ord(c)&31)
    
    items_p = badges_p = grp_size = 0
    badges_set = set()
    
    with open(fichier,'r') as f:
        while line := f.readline().strip():
            # part 1
            l = len(line) // 2
            items_p += sum(priority(c) for c in {*line[:l]} & {*line[l:]})
            # part 2
            if not badges_set:            
                badges_set = {*line}
            else:
                badges_set &= {*line}
            grp_size += 1
            if grp_size % 3 == 0:
                badges_p += priority(badges_set.pop())
    
    
    print(items_p, badges_p)
  • # Commentaires en vrac

    Posté par  . En réponse au message Un démineur pour apprendre.... Évalué à 6.

    Bonjour

    J'ai remarqué que la forme int(x/v) est souvent utilisée alors que x est déjà un entier, dans ce cas il vaut mieux utiliser la division entière : x//v

    Il y a plusieurs constructions de conditions qui ne sont pas facile à lire, par exemple dans la fonction draw_case de demineur-g:

    if connu :
        if bombe :
            txt = "*"
        else :
            if nbalentours < 1 :
                txt = " "
            else :
                txt = str( nbalentours )[0]
    else :
        if drapeau < 1 :
            txt = "X"
        else :
            if drapeau < 2 :
                txt = "P"
            else :
                txt = "?"
    

    on peut ici utiliser des elif plutôt que des if imbriqués et des == à la place des < pour améliorer la lisibilité

    if connu and bombe:
        txt = "*"
    elif connu:
        txt = " " if nbalentours==0 else str(nbalentours)
    elif drapeau == 1:
        txt = "P"
    elif drapeau == 2:
        txt = "?"
    else:
        txt = "X"
    #la dernière partie pourrait juste être (drapeau ne peux valoir que 0,1 ou 2)
    #else:
    #   txt = "XP?"[drapeau]
    

    La fonction explorer renvoie False si ont sort de la grille ou si on sort normalement de la fonction, elle renvoie True si on est sur une bombe, mais il me semble que la valeur renvoyée n'est jamais utilisée, de plus le test pour savoir si la case est sur la grille peut être simplifié en utilisant le dictionnaire de la grille if case not in cases:

    La syntaxe cases[(ligne, colonne)] être remplacée par cases[ligne, colonne], c'est le signe , qui défini le tuple pas les parenthèses (sauf pour le tuple vide ())

  • # Réponse partielle

    Posté par  . En réponse au message À la recherche d’un Forum anglophone. Évalué à 1.

    Bonjour,

    Je ne connais pas de site anglophone équivalent à ZDS , mais pour "jouer" avec du code dans un navigateur j'avais utilisé https://www.codeabbey.com/ qui propose plus de 200 problèmes classés par difficulté, par contre c'est moins joli que CodinGame, le site à aussi un forum mais il ne me semble pas très actif.

  • [^] # Re: Unlock?

    Posté par  . En réponse au journal Deux petit jeux dans le navigateur pour mieux réchauffer la planète. Évalué à 2.

    Je ne passais pas le premier niveau quand j'ai remarqué que la difficulté par défaut était sur Hard, en la passant en normal on a 2 fois plus de temps et ça passe sans problèmes.

  • [^] # Re: 10 Gigabits Ethernet

    Posté par  . En réponse au message rallonge fibre optique. Évalué à 3.

    Bonjour,

    Le materiel pour effectuer des soudures coûte effectivement un bras (>6000€ pour ceux qu'on utilise), par contre ce qui est présenté sur: (https://michael.stapelberg.ch/posts/2020-08-09-fiber-link-home-network/) sont des kits de câblage rapide qui sont abordables mais pas toujours simple à mettre en oeuvre quand on a pas l'habitude.
    Quand il n'y pas de problèmes de passage des connecteurs il préférable d'utiliser les raccords comme celui que Neox a mis en lien, la pertes d'une seule connection est négligeable dans une ligne optique (0.5dB dans le pire des cas) pour plus de 10dBm de marges normalement.
    Par il faut bien faire attention aux connecteur choisis, la fibre des FAI est de type monomode avec généralement des connecteurs de type SC-APC (comme le raccord de Neox), alors que les cartes réseaux sont souvent prévues pour des fibres multimodes et connecteurs LC.

  • [^] # Re: filtre

    Posté par  . En réponse à la dépêche G’MIC 1.6.8 : c’est déjà Noël pour les traiteurs d’images !. Évalué à 2.

    Hugin, prévu pour réaliser des panoramiques, à un outil qui permet de réaliser des fusion d'images : enfuse (page un peu ancienne les options ont evolué) permet aussi de fusionner les images sur des critères d’exposition avec un rendu "naturel" (la fusion en contraste permet aussi de faire du focus stacking).
    Il y a dans kde et les plugins Kipi une interface graphique qui utilise enfuse pour réaliser ce genre de montage et il doit y avoir d'autre GUI qui réalisent cette fonction.

  • # Truc perso

    Posté par  . En réponse au message Vitesse de ventilateur CPU. Évalué à 1.

    J'ai ce problème de façon récurrente une ou deux fois par trimestre, que ce soit sur linux ou windows ne change rien.
    La solution que j'applique consiste a débrancher le pc et appuyer sur le bouton de démarrage, je ne sais pas exactement ce que ça fait (vider des condos, réinitialiser un capteur,…?) mais le ventilateur revient à une vitesse normale.

  • [^] # Re: attaquer la racine du mal

    Posté par  . En réponse au message Config /etc/hosts. Évalué à 1. Dernière modification le 16 novembre 2013 à 20:04.

    J'ai donc essayé d'affecter la même ip aux 2 cartes réseau, mais cela est refusé par la box , et je ne trouve pas d'autres possibilités de réglage sur la partie DHCP de la box (Box sfr)

  • [^] # Re: des propositions....

    Posté par  . En réponse au message OCR pdf vers pdf. Évalué à 5.

    Je ne l'ai pas essayé mais la description de Paperwork semble correspondre à ce que tu demande.

  • # Tester pyBar

    Posté par  . En réponse au message Logiciel de simulation mécanique. Évalué à 2.

    Pour linux on trouve opencacade qui permet de faire de la simulation mécanique mais ce logiciel me semble un peu lourd pour ce que tu cherches à faire.

    Et je viens de découvrir pyBar destiné au calcul de poutres en 2D , ce qui s'adapte facilement à des calculs d'équerres.
    Notes que pour le lancer j'ai du modifier /usr/bin/python en /usr/bin/python2 dans la ligne 10 du script de lancement pyBar, parce que j'ai python3 qui est appelé par défaut.

  • [^] # Re: Sérieux ?

    Posté par  . En réponse au journal Privé de bac à cause d'un logiciel propriétaire. Évalué à 8.

    Juste en regardant le compte créé en 2007 , et un premier journal en 2009 http://linuxfr.org/users/patatarte/journaux/hs-le-droit-des-femmes-et-la-libert%C3%A9-dexpression , je trouve que c'est pas mal pour un élève de 4ème il mérite surement son bac 4 ans plus tard même si il a triché…..

  • [^] # Re: J’hésite

    Posté par  . En réponse au sondage Quelle est votre suite bureautique principale ou préférée ?. Évalué à 3.

    J'ai choisi celle qui m'est imposée au travail parce que celles qui sont installées sur les pc de mon domicile ne me servent vraiment pas beaucoup.
    Un peu d'optimisme : mes enfants utilisent OpenOffice ou LibreOffice au collège et non la suite de Microsoft, et pour les travaux qu'il doivent réaliser à la maison les professeurs leur demandent des fichiers odt.

  • [^] # Re: Un autre logiciel ?

    Posté par  . En réponse au message Rawtherapee 4.0.10 : Pb de vignettage avec FZ45. Évalué à 1.

    c'est bien ce dont je parlais , vignetage = coin assombris et pas la déformation de focale, c'est pour ca que j'ai indiqué l'onglet Géométrie de photivo car ca ne me semblais pas très logique de chercher cette option à cet endroit.

  • # Un autre logiciel ?

    Posté par  . En réponse au message Rawtherapee 4.0.10 : Pb de vignettage avec FZ45. Évalué à 3.

    Le fait que Rawtherapee reconnaisse la provenance du fichier RAW est normal, car le nom de l'apn est inscrit dans les informations exif au moment de la prise de vue, par contre cela ne veux pas dire que le logiciel connait spécifiquement l'appareil photo et ses caractéristiques de prise de vue.

    Il y a une base de données sur les optiques d'apn ( Lensfun ) qui est utilisée pour corriger certains défauts des objectifs, par contre ton appareil ne semble pas être dans la liste de ceux qui sont connu.

    Tu peux essayer photivo qui à lui aussi un outil pour le vignetage (onglet géométrie) , les réglages sont différents de ceux de Rawtherapee ils te conviendront peut être mieux.

  • [^] # Re: Je viens de tester avec Firefox 19.0.2

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 4.

    Je viens de retester avec la version Nightly 23.0a1 , toujours dans les mêmes conditions de jeu,c'est maintenant à 30-35 fps. C'est encore 3 fois moins rapide que Sauerbraten mais ça a doublé par rapport au 1er essais.

    Puis j'ai changé de carte , je suis passé sur 2 tower (pour admirer les reflets sur l'eau), qui est beaucoup plus grande , et dans ce cas la je fus surpris de voir les fps augmenter à 40-45 , ce qui est parfaitement jouable, le fait d'activer les effets (même ceux marqué comme lent) ne change pas grand chose à la vitesse du jeu, j'ai donc ajouté plusieurs bots et là j'ai vu des ralentissements des que les bots étaient proche de moi, ça passait a 30 fps voir un peu moins.

  • [^] # Re: Je viens de tester avec Firefox 19.0.2

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 5.

    Effectivement avec l'option layers.acceleration.force-enabled à true, j'ai une légère accélération , le jeu tourne entre 20 et 25 fps, 25% de gain en fps c'est pas mal.

  • # Je viens de tester avec Firefox 19.0.2

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 8. Dernière modification le 03 avril 2013 à 20:01.

    Je viens de lancer le jeux sur une machine raisonnable (pour moi) : archlinux à jour, I5 2.9Ghz et une carte nvidia GT 530 avec le pilote Nouveau.
    J'ai utilisé la config par défaut du jeux en basse résolution (800x600) et un bot, j’obtiens 15à 20fps donc c'est à peu près utilisable contre un bot mais surement pas contre un humain, j'ai essayé brièvement en 1600x1200 ca variait entre 5 et 9 fps.
    Puis j'ai joué à Sauerbraten en 1600x1200 et beaucoup plus d'effets activé sur une carte plus grande avec beaucoup de bots j'ai toujours plus de 100 fps.

    Ça ne se compare pas encore au jeu d'origine, mais c'est quand même très loin devant ce qu'un jeu flash peu faire.

  • # photivo

    Posté par  . En réponse au message Logiciels libres (multi-plateformes) pour la photo. Évalué à 4.

    http://photivo.org/photivo/ est un logiciel de traitement des raw (mais pas uniquement) multiplate-forme (linux, win, mac), très complet; de plus la succession d’application des filtres et effets est aisée a prendre en main, et les résultats sont vraiment impressionnant par rapport au temps passé à effectuer les réglages de traitement.

  • [^] # Re: RàB

    Posté par  . En réponse au journal Pour l'emploi d'un vocabulaire correct. Évalué à 3. Dernière modification le 08 octobre 2012 à 14:02.

    Alors, l'avis des clampins qui ne résident pas en pays civilisé (les pays civilisés s'arrêtant au nord de Toulouse et à l'est de Montpellier), je n'en ai rien à branler.

    Ce n'est pas très sympa d'assimiler la population d'un petit quart sud-ouest de la France à des barbares.

    Tant de mépris m'a fait arrêter la lecture a ce niveau du commentaire ….

  • # Quelques pistes

    Posté par  . En réponse au message problème de son avec MATE. Évalué à 1. Dernière modification le 05 octobre 2012 à 18:33.

    quelques déboires qui peuvent se régler en jouant avec le mixer.

    Le volume réglé a zéro par défaut.
    Plusieurs cartes son détectée par le système et celle configurée par défaut ne convient pas.
    Une carte sont avec avec du dolby 7.1 ou un truc du genre et les HP ne sont pas branchés sur la bonne sortie.

    Sinon c'est très juste comme informations pour ton problème.

  • [^] # Re: Bronsonisation

    Posté par  . En réponse au journal Prix Hugo & Rosny aîné, and the winners are.... Évalué à 1.

    Malheureusement il n'a pas été assez connus de son vivant pour être bronsorisé, pourtant il doit être un des seul auteur que je connaisse à faire de la SF d'action non violente (pour les héros du moins), rien que pour ça il l'aurait mérité.

    PS: Dans le Cochon tout est bon alors mangez en ……

  • # economiseur BSOD

    Posté par  . En réponse au message Recherche photos/screenshots. Évalué à 2.

    Il y a quelques années j'utilisais un économiseur d'écran qui proposait une série de d’écrans BSOD issus de nombreux OS différent,

    IL est peut être possible d'extraire les images de l'archive : http://packages.debian.org/sid/xscreensaver-screensaver-bsod