François GUÉRIN a écrit 270 commentaires

  • [^] # Re: mount + chown sur le point de montage

    Posté par  (Mastodon) . En réponse au message Comment "préparer" un disque utilisable par un simple user ?. Évalué à 1.

    Ça monte ?

    Alors, c'est que ça doit être bon :)

    Courage !

  • # mount + chown sur le point de montage

    Posté par  (Mastodon) . En réponse au message Comment "préparer" un disque utilisable par un simple user ?. Évalué à 6.

    Salut,

    Tout est dans le titre…

    mount /dev/<ton disque> /media/multimedia  # par exemple...
    chown -r <user>:<group> /media/multimedia

    N'hésite pas à mettre ton disque dans /etc/fstab

    Courage !

  • [^] # Re: Roooh

    Posté par  (Mastodon) . En réponse au message Mini logiciel de connexion besoin d'aide sur mon code. Évalué à 1.

    Super ! Merci !

  • [^] # Re: Roooh

    Posté par  (Mastodon) . En réponse au message Mini logiciel de connexion besoin d'aide sur mon code. Évalué à 2. Dernière modification le 13 juillet 2023 à 09:25.

    Werkzeug est un serveur WSGI, utilisé pour le débogage de Flask par exemple - on ajouterai dans ce cas une grosse lib dans les dépendances pour n'utiliser qu'une toute petite fonction…

    La seule librairie hashlib serait beaucoup plus adaptée - d'ailleurs c'est ce qui est utilisé par Werkzeug pour faire hashing / salage…

    Cette lib a l'énorme avantage de faire partie de python !

    Courage !

  • [^] # Re: De l'informatique pas dans l'informatique

    Posté par  (Mastodon) . En réponse au sondage Public de LinuxFr. Évalué à 2.

    … c'est mon cas !

  • # Outil de développeur ?

    Posté par  (Mastodon) . En réponse au message Request Get Server Apache. Évalué à 2.

    Salut,

    Tu devrais regarder dans les outils de développement de ton navigateur préféré les requêtes qui sont effectivement envoyées au serveur, à savoir dans FFox l'onglet "Réseau".

    En effet, l'input sans name lance une fonction JS qui fait sans doutes de la magie…

    Autre piste, scrapper à l'ancienne avec beautifulsoup4, qui permet de parser du HTML relativement simplement ?

    Courage !

  • # Trop de requêtes sur leur serverus

    Posté par  (Mastodon) . En réponse au message Mais pourquoi pip search ne fonctionne plus ?. Évalué à 3.

    Salut,

    Ça fait un moment que pip search a été bloqué, pour atténuer la charge des serveurs de pypi.

    https://www.theregister.com/2021/05/25/pypi_search_error/

    … il te reste la recherche sur le site pypi (que tu peux scrapper ?)

    Courage !

  • # Pillow

    Posté par  (Mastodon) . En réponse au message traitement par lot images pour incruster sur fond vert. Évalué à 1.

    Salut,

    … ça doit pas être compliqué à coder avec Pillow, non ?

  • [^] # Re: la CNIL !

    Posté par  (Mastodon) . En réponse au journal [Trolldi] La Startup Nation ne peut pas tout faire. Pas même s'empêcher de s'auto-troller.. Évalué à 9.

    … plainte déposée !

  • # Un script maison que j'utilise (avec python)

    Posté par  (Mastodon) . En réponse au message Aide pour commande. Évalué à 2.

    Salut,

    J'ai fait ce script pour redimentionner automatiquement des images - il s'agit de portraits à insérer dans un annuaire, mais c'est adaptable, hein !

    https://gitlab.com/frague59/resize

    Il utilise opencv pour localiser les visages, il est parallélisé…

    Courage !

  • # Et les collectivités territoriales ?

    Posté par  (Mastodon) . En réponse à la dépêche Le poste de travail Linux : un objectif gouvernemental ?. Évalué à 10.

    Salut à tous,

    Là, on parle des services de l'état, mais pas des collectivités territoriales, ce qui représente pas mal de monde aussi. (5.47 millions de fonctionnaires quand même)

    Elles sont indépendantes dans leur gestion de leur parc informatique, et le plus souvent, sauf anecdotes, pas glorieux…

    • Pas ou peu de moyens dédiée (sous effectifs)
    • Un parc vieillissant à base de PC 1er prix
    • Un personnel (DSI, hein…) pas ou peu formé
    • Une palanquée de progiciels "métier", achetés sur étagère, le plus souvent cher et compliqués, sous utilisés
    • … sans parler des petites communes, où le seul technicien sait changer un tonner d'imprimante, mais c'est à peu près tout !

    Je travaille dans une telle collectivité (ville de 97 000 habitants), le parc est vieux et a un taux de renouvellement à 20 ans !

    Une migration partielle vers des postes GNU/Linux pour les plus vieux serait le moyen de garder des postes anciens qui ne passent plus les MàJ de M$, mais le plus gros bloquage est à la DSI, où peu de gens sont formés / sensibles / compétents…

    Bref, il y a encore du boulot !

    Courage !

  • [^] # Re: En mode 10 minutes

    Posté par  (Mastodon) . En réponse au message Avent du Code, jour 1. Évalué à 1.

    time python3 ./event_01.py
    real    0m0,045s
    user    0m0,036s
    sys     0m0,009s
  • # En mode 10 minutes

    Posté par  (Mastodon) . En réponse au message Avent du Code, jour 1. Évalué à 1.

    #!/usr/bin/env pyhon3
    import sys
    from typing import Tuple
    from pathlib import Path
    
    
    INPUT_FILE = Path(__file__).parent / 'input.txt'
    
    def get_max_idx(elves) -> Tuple[int, int]:
        _max_value = max(elves)
        return elves.index(_max_value), _max_value
    
    
    def main(*args):
        """Main application entry point"""
    
        elves = []
    
        with INPUT_FILE.open("r") as fi:
            accumulator = 0
            while row := fi.readline():
                row = row.strip()
                if row:
                    accumulator += int(row)
                else:
                    elves.append(accumulator)
                    accumulator = 0
    
        max_value = max(elves)
        print(max_value)
    
        accumulator = 0
        for _ in range(3):
            idx, value = get_max_idx(elves)
            accumulator += value
            elves.pop(idx)
    
        print(accumulator)
    
        return 0
    
    
    if __name__ == "__main__":
        sys.exit(main(sys.argv[1:]))
  • # Super !

    Posté par  (Mastodon) . En réponse à la dépêche Des nouvelles de WeasyPrint, ou comment développer du libre à (presque) plein temps. Évalué à 7.

    Salut,

    J'utilise WeasyPrint au quotidien pour générer des PDF divers et variés (carte pro, rapports, documents divers…) et c'est un super outil, qui s'intègre bien dans l'écosystème django !

    J'avais remarqué le changement de domaine de la doc et la nouvelle charte graphique des documentations… elle est très chouette d'ailleurs ! (je veux bien la piquer pour les docs techniques)

    Merci pour tout le travaille que vous faîtes, on devrai se croiser d'ici quelques mois !

    Courage !

  • # Une autre utilisation d'Ellipsis

    Posté par  (Mastodon) . En réponse au journal python: ellipsis operator (...). Évalué à 4.

    Quand on souhaite annoter un tuple dont on ne connait pas la longueur a priori, on peut l'utiliser aussi…

    from typing import Tuple, Sequence
    
    def ma_func(foo: Tuple[str,...]) -> Sequence[int]:
        """Get the length of each items of a Tuple, as a Sequence."""
        output = [len(item) for item in foo]
        return output

    Et je l'utilise aussi pour les classes abstraites ! (et j'abuse des annotations…)

  • # Pas lancé dans le virtualenv ?

    Posté par  (Mastodon) . En réponse au message Résolution de problème paquet debian. Évalué à 1.

    Salut,

    Quand tu exécutes l'appli, tu n'as pas activé le virtualenv, du coup python s'appuie sur ce qui est dans les libs "de base" du système, et ne trouve pas les bonnes dépendances…

    *À noter qu'il s'agit d'une installation "de tests", pas de prod ! *

    Quand tu fais l'installation avec git clone, c'est une installation locale de l'application, qui va chercher les dépendances dans le système (/usr/lib/python3/dist-packages/) et pas dans les dépendances installée par pip install, dans le venv.

    Pour démarer le service "en dév", tu dois activer le virtualenv:

    $ . venv/bin/activate
    $ ./manage.py migrate
    $ ./manage.py runserver

    (Il s'agit des commandes "de base" pour lancer une appli django en local, je ne connais pas etbase_server du tout…)

    Courage !

  • # DWService

    Posté par  (Mastodon) . En réponse au message Un script de prise en main à distance. Évalué à 2.

    Merci à tous de vos réponses !

    J'ai installé le client DWService sur l'ordinateur de mon papa, et j'ai pu en prendre le contrôle à distance, ce qui était le but de la manœuvre…

    Merci à papap de sa proposition !

  • [^] # Re: Console ou IHM ?

    Posté par  (Mastodon) . En réponse au message Un script de prise en main à distance. Évalué à 1.

    Merci pour tes réponses !

    J'utilise linux pour au travail et chez moi, pas de soucis avec SSH…

    Je souhaitait prendre la main en mode "bureau", pour faire les opérations d'administration à distance (mises à jour, explications de logiciel…)

    Je vais essayer de faire fonctionner big blue button, qui permet le partage d'écran
    + son. (j'en profite, je suis sur place)

    Sinon, je ferai un NAT sur le routeur pour le SSH / RDP.

  • # Bah en fait t'as trouvé...

    Posté par  (Mastodon) . En réponse au message Débutant cherche documentation. Évalué à 3.

    Salut,

    C'est effectivement la commande help() qui permet d'avoir de l'info sur les fonctions / méthodes de python.

    Tu peux également utiliser un IDE, comme PyCharm Community par exemple, pour faire des scripts un peu plus touffus.

    Il intègre l'aide en ligne à partir de la même source que celle utilisée pas help(), à savoir les docstrings.

    Courage dans ta découverte du Python !

  • [^] # Re: Clevo

    Posté par  (Mastodon) . En réponse au message que valent les constructeurs de pc portables indépendants?. Évalué à 2. Dernière modification le 08 juillet 2022 à 18:14.

    Bonjour,

    J'ai un portable LDLC qui est en fait un Clevo re-brandé (N150ZU), j'en suis très content.

    https://clevo-europe.com/default_zone/fr/html/Prod_Notebook_EpureI3ZUR_Details.php

    • Des problèmes de déconnexion WiFi intempestives, sur le carte Intel 6294.
      C'est sans doutes plutôt un problème chez Intel que chez Clevo, d'ailleurs…

    • J'ai cramé le NVMe assez rapidement, il a été remplacé très vite par LDLC (c'est un composant de chez eux).

    Du coup, comme il y avait un emplacement HD vide, j'y ai mis un SSD, que j'utilise comme disque principal, le NVMe me sert de backup.

    • À noter une charnière un peu branlante, mais j'en prend soin.

    Courage !

  • [^] # Re: revoir l'archi

    Posté par  (Mastodon) . En réponse au message combien d'instances django/react en meme temps sur un petit serveur?. Évalué à 2.

    J'héberge pas mal d'applis django sur des serveurs debian, voici comment je procède :

    Pas de docker avec des virtualenv et gunicorn pour la partie WSGI.

    /var/www/<vhost>/
      src/    # Les sources du projet
      venv/   # Le virtual env
      log/    # Logs
      var/    # Les fichiers de conf gunicorn
      media/  # Fichiers uploadé pour Django 
      static/ # Fichiers statiques de django (pas de node sur le serveur, déployés par git) 
    

    Les applis sont accessibles par des virtual hosts, à travers nginx ou apache, selon les serveurs.

    La communication entre le serveur web et django passe par un socket unix, à un emplacement "bien choisi", par exemple /run/django/<vhost>.socket

    Les logs sont redirigés par le fichier de conf nginx / apache dans le dossier de log de l'appli.

    Courage !

  • # pip + venv + prompt

    Posté par  (Mastodon) . En réponse à la dépêche Environnement moderne de travail Python. Évalué à 2.

    Bonjour,

    Je développe des applications en python au quotidien, et voici comment je procède

    • Pour les outils "de base" pour le développement (black[d], isort, flake8, pytest)
      shell
      $ pipx install <application>

    • Pour les environnements par projets
      shell
      $ cd Projects/<mon_projet>/
      $ python3 -m venv --prompt <mon_projet> ./venv
      $ . venv/bin/activate
      (mon_projet)$

      (Une évolution récente de liquidprompt permet d'afficher le prompt du venv.
      https://github.com/nojhan/liquidprompt/issues/708

  • # pre-commit

    Posté par  (Mastodon) . En réponse au message application de convention d'écriture. Évalué à 1. Dernière modification le 12 mai 2022 à 14:05.

    Bonjour,

    Je n'y connais pas grand chose en c++, je fais du python…

    Par contre, j'use et j'abuse du formateur black et du linter flake8 (avec d'autres trucs), que j'ai mis dans un .pre-commit-config.yaml

    À chaque fois que je "commit" du code, le pre-commit s'execute, et m'affiche les éventuels problèmes… en fait, pas très souvent, car du coup je connais les trucs à ne pas faire en codant pour éviter de le bloquer.

    Je ne réponds pas à ta question sur quel formateur utiliser, mais comment l'utiliser :)

    Courage !

    PS: çà serait un bon sujet de stage pour un bébé ingé, ton formateur :)

  • [^] # Re: Django templates rocks

    Posté par  (Mastodon) . En réponse au message django templates : quelles ressources libres?. Évalué à 1.

    … la réponse à propos du choix, bah c'est pour quoi faire ?

    Pour ma part, j'ai testé il y a longtemps django CMS, mais je n'ai pas été convaincu.

    Je n'ai pas testé Mezzanine (ou je ne m'en souviens plus), mais j'utilise activement Wagtail, dont je suis très content !

    Tu dois garder en tête que le Django est un framework de dévelopement, qui te donne des outils pour faire tourner des applications, qui utilisent une base de données.

    Il te fourni des services : l'ORM, la gestions des utilisateurs / groupes / permissions…

    Je fait des applis de métier, qui correspondent aux besoins de mes utilisateur : par exemple la gestion des objets trouvée - déclarations pour les citoyens, gestion des stocks pour les agents qui s'en occupe, moteur de recherche sur les objets…

    Pour çà, Django est super bien (avec quelques extensions en plus) !

    Je gère un intranet avec ~ 30000 pages avec Wagtail, c'est un autre usage de Django, avec une sur-couche pour gérer la partie CMS.

    Le développement de ces 2 types de projets est assez différent !

    Pour unicorn, je n'ai pas de pistes, mais si c'est du JS / node, tu auras quand même les 3000 dépendances, le JS moderne est comme çà en 2022 !

    • linter
    • bundler
    • polyfill

    Et hop, tu les as !

  • [^] # Re: Django templates rocks

    Posté par  (Mastodon) . En réponse au message django templates : quelles ressources libres?. Évalué à 3.

    En complément :

    Ce qui est important dans mon expérience, c'est que django ne va pas pour tous les projets. Il a un domaine où il "brille" : les base de données un peu complexe, toutes les applications pré-existantes qu'on peu installer dans son projet, mais qui rajoutent des dépendance - on a intérêt à être sûr du projet, pour ne pas se retrouver avec une dépendance non maintenue 2 ans plus tard…

    Par contre, côté front en JS, c'est vraiment la plaie !

    3000 paquets dans le dossier node_packages, des dépendances qui tombent comme des mouches, le maintenance est à la fois difficile et chronophage…

    Pour la partie déploiement, j'utilise ansible. J'ai un rôle que j'utilise sur TOUS mes projets.

    Courage !