François GUÉRIN a écrit 270 commentaires

  • [^] # Re: Gnome?

    Posté par  (Mastodon) . En réponse au message Gestion de xkb dans XWayland. Évalué à 1.

    Salut,

    J'ai installé gnome-shell, gnome-session et gnome-core (+ gdm3 pour wayland) depuis les dépots de mint, puis désinstallé cinnamon

    …mais ça ressemble effectivement à un bogue dans mint.

    J'ai posté dans le forum de mint fr, mais je n'ai pas eu de réponse pertinente.

    Merci !

  • [^] # Re: Self debug

    Posté par  (Mastodon) . En réponse au message Référencer du code dans une BdD ?. Évalué à 2. Dernière modification le 13 juillet 2020 à 23:12.

    Python en un langage dynamique, tu peux patcher à tout moment le code de ton application, par exemple avec du currying (ajouter des méthodes dynamiquement à un objet)… en cours de fonctionnement !
    Il y a bien un eval en python…

    Autre piste: stocker les procédures python dans des grosses string (genre blob ou text dans la base de données), et utiliser un process.exec(python3 )… si tu mets un shebang à ton code dans la DB, tu peux créer un fichier temporaire avec le contenu de ton champs et l'executer directement avec process.exec - il doit y avoir un équivalent ssh dans paramiko. (ansible fait plus ou moins comme ça).

    Ansible est une bonne piste aussi: ça fait tout ça et bien plus !

    • Tu géres un fichier hosts avec les adresses de et IoT
    • Ansible fait un inventaire des ressources pour toi quand il se connecte
    • Tu peux analyser cet inventaire et voir si il y a des décisions à prendre
    • Tu crées une liste de rôles pour les tâches les plus courantes
    • Ton appli automatise les appels aux procédures selon les besoins

    En plus, tu peux utiliser la base SQLite directement comme liste de hosts !

    Courage !

  • [^] # Re: Raccourci clavier

    Posté par  (Mastodon) . En réponse au journal Silence ! Contrôler le bruit des ventilos du portable. Évalué à 3.

    Ah ouais, ça marche sur mon Clevo N151ZU… Cool !

    … je ne connaissais pas, merci du tuyau !

  • # Intégration Gimp / Blender

    Posté par  (Mastodon) . En réponse à la dépêche Blender 2.8x : la consécration. Évalué à 3.

    Bravo pour cette super dépèche, et pour ce super logiciel qu'est Blender… Et merci pour le super boulot fait sur Gimp !

    …mais il manque un tout petit peu de colle entre les deux : un truc qui permettrai de passer de Blender à Gimp pour éditer les textures : exporter les maps UV dans un calque Gimp, éditer la texture dans Gimp (dans un autre calque), voir le résultat dans Blender (sans le claque UV, hein), éventuellement faire une petite retouche localement avec Blender (un raccord entre 2 objets, par exemple), avec mise à jour +- automatique dans Gimp…

    J'ai trouvé un bout de script python qui est sensé faire ça (enfin, en partie je pense), la partie Blender s'installe bien, mais par contre pas dans Gimp - le paquet gimp-python semble ne plus exister dans ma debian… et du coup, pas de python-fu dans les filtres de Gimp.

    Le plugin;
    https://www.blendernation.com/2012/09/18/blender-gimp-autorefresh/

    … il date de 2012 ! Je veux bien le réécrire en python3, mais il faudrait pouvoir utiliser à nouveau python3 avec Gimp… Après, je ne suis pas un expert de Gimp !

    Un autre truc qui serait vraiment cool, c'est un importer "direct" de XCF dans Blender, avec la gestion des calques, mais c'est une autre histoire…

    Bon, je ne suis pas du tout u pro de Gimp et Blender, juste un développeur python, utilisateur de Blender en amateur.

  • # Le cas des fonctionnaires

    Posté par  (Mastodon) . En réponse au journal Contributions open source en entreprise. Évalué à -2. Dernière modification le 04 mars 2020 à 10:28.

    Les fonctionnaires sont et restent propriétaires du code qu'ils produisent (c'est mon cas). Il n'y a pas nécessité dans leur cas de demander l'autorisation à qui que ce soit.

    L111-1 du Code de la propriété intellectuelle

    "l’auteur d’une œuvre de l’esprit jouit sur cette œuvre, du seul fait de la sa création, d’un droit de propriété incorporelle exclusif et opposable à tous"

    De ce fait, si par exemple le-dit fonctionnaire décide de quitter la fonction publique et de créer une entreprise pour commercialiser les production, libre à lui !

    Dans ce cas, son ancienne administration est "prioritaire" pour continuer à utiliser ce code, mais l'ancien fonctionnaire peut décider de lui faire payer les mises à jour par exemple.

    PS: c'est aussi le cas pour les photographes, vidéastes, profs…

  • # git flow + releases

    Posté par  (Mastodon) . En réponse au message branches GIT. Évalué à 1.

    Salut?

    Je suis également seul dev dans ma structure, j'utilise git flow. Il me permet de jongler avec les différentes features / bugfix…

    Pour le déploiement, j'utilise des tags sur la branche master pour la PROD, et la branche "develop" brute pour la pré-prod (STAGING). La préprop peut casser, mes utilisateurs sont au courant :)

    Le processus de déploiement est "à la demande": j'ai un rôle ansible qui fait le taff quand j'en ai besoin, avec un script maison deploy.sh qui n'est qu'un lanceur pour le rôle ansible.

    Du coup, j'utilise pour mettre en prod :

    • git flow release start <version>
    • Bump version numbers vers > (y compris les vars ansible pour la prod !)
    • git commit (dans la branche release/)
    • git flow release finish
    • ./deploy.sh << Vers la pré-prod
    • ./deploy.sh -m PROD << Vers la prod

    L'avantage de cette approche, c'est que je peux à tous moments pousser vers la staging (branche develop), mais que je ne peux pas pousser "par accident" dans la PROD.

    Le process est à la fois contraignant mais pas trop, et avec le rôle ansible, je n'oublie rien.

    Je déploie environ 20 projets différents avec cette méthode, et j'en suis très satisfait.

    Ah, et j'ai un script python pour faire les montées de version:

    https://pypi.org/project/bump-release/

    Ce script ne fait que mettre à jour les numéros de version dans différents points du projet (main, docs, ansible vars pour récupérer le bon tag quand je déploie), il ne fait rien avec GIT.

    Pour info, je fais quasi exclusivement du Django / python…

  • # Plash Player

    Posté par  (Mastodon) . En réponse à la dépêche Livre « Une Expérience Libre ». Évalué à 4. Dernière modification le 22 janvier 2020 à 14:09.

    Ha, le Flash Player pour lire les extraits, en plus de la préview en police 2, j'adore, et je passe mon chemin !

  • # parallel

    Posté par  (Mastodon) . En réponse au message fichier de sortie sans l'extension du fichier source. Évalué à 1.

    Bonjour,

    L'utilitaire GNU parallel https://www.gnu.org/software/parallel/ permet d'executer le script de conversion et utilsant plusieurs cores / threads.

    Je m'en sert pour traiter des lots de photos…

    Courage !

  • [^] # Re: Firefox sous Wayland sous Arch

    Posté par  (Mastodon) . En réponse à la dépêche GNOME 3.34. Évalué à 8.

    … ça marche sous debian aussi …

  • # pas d'extension dans noms de scripts cron

    Posté par  (Mastodon) . En réponse au message Problème d'exécution script sur crontab. Évalué à -1.

    mv pg-retart.sh pg-restart
    
  • [^] # Re: par le store ou le terminal

    Posté par  (Mastodon) . En réponse au message novice sur linux/unbuntu je ne comprend rien pour installer un logiciel. Évalué à 1.

    Pour ça, tu lances le terminal depuis le menu, il t'affiche une boite avec un texte comme ça:

    <user>@<host> $ 
    

    Pour lancer la commande :

    $ testdisk <le chemin>
    

    Par exemple, si le disque que tu veux tester est sdb :

    $ testdisk /dev/sdb
    
  • [^] # Re: Barrier

    Posté par  (Mastodon) . En réponse au message synergy. Évalué à 3.

    Salut,

    Je suis en train de taper dans l'écran de mon portable depuis le clavier d'un PC fixe… Barrier powa !

    • Passer à X.org pour le serveur graphique sur les machines Client et Server (il semble qu'ils se réveillent pour passer à Wayland depuis que X est passé en mode "maintenance")
    • Désactiver le chiffrement sur le Client et le Server

    Courage !

  • [^] # Re: Site de référence

    Posté par  (Mastodon) . En réponse au journal Générateur de site web statique. Évalué à 5.

    Pour mes projets en python:
    + pelican pour le doc utilisateurs
    + sphinx pour le doc technique

    Les deux sont construites dans des projets différents, via gitlab-ci:
    + <app>/docs pour la doc technique, construite via une directive pages dans gitlab-ci
    + <app-docs> pour la doc utilisateurs, construite via une directive pages dans gitlab-ci

    Bien à vous

  • # ... pas compatible RGPD cette affaire...

    Posté par  (Mastodon) . En réponse au journal OATH et Verizon, faut qu'on parle. Évalué à 10.

    Je ne suis pas sûr de mon coup, mais je pense que ce genre de protique est attaquable auprès de la CNIL comme procédure abusive !

    Le non-consentement doit être le valeur par défaut normalement dans le cadre du RGPD, et donc l'option par défaut…

  • # Enregistrer l'imprimante dans l'OS

    Posté par  (Mastodon) . En réponse au message Installation scanner HP Envy ... . Évalué à 1.

    Salut,

    J'ai une Envy 5440 à la maison, utilisée en réseau, Wifi configuré sur l'imprimante.

    L'impression marche out of the box, avec juste le driver hplip.

    Pour le scan:

    $ sudo apt install libsane-hpaio
    $ hp-setup

    Pour enregistrer l'imprimante comme scanner, je n'ai pas trouvé d'autre moyen.

    Je cherche l'imprimante en mode "Network/Ethernet/Wireless", et je mets l'Ip de l'imprimante…

    Une fois fait, ça marche nickel: impression / scan !

    Courage

  • [^] # Re: et avec ton smartphone ?

    Posté par  (Mastodon) . En réponse au message bluetooth et Marantz-MCR611. Évalué à 1.

    Yep, c'est peut-être un problème de clé…

  • [^] # Re: et avec ton smartphone ?

    Posté par  (Mastodon) . En réponse au message bluetooth et Marantz-MCR611. Évalué à 2.

    J'en sais rien… mais je ne crois pas

    On peut "apairer" (?) plusieurs appareils avec le Marantz, et il reconnais les appareils quand on les connecte.

  • [^] # Re: et avec ton smartphone ?

    Posté par  (Mastodon) . En réponse au message bluetooth et Marantz-MCR611. Évalué à 1.

    ca marche bien avec le smartphone ?

    Oui

    la chaine supporte d'avoir plusieurs appareils connectés en meme temps ?

    J'en sais rien… mais je ne crois pas

    La clé bluetooth est branchée en permanence ?

    Oui

  • # Juste une fonctionnalité qui me fait rester sur X

    Posté par  (Mastodon) . En réponse au journal Le dégonflage des mythes Wayland... dégonflés sur Reddit. Évalué à 9.

    Salut,

    J'aime bien wayland, je trouve qu'il marche super… mais il lui manque une fonctionnalité qui est bloquante pour moi: le partage de clavier / souris entre plusieurs PC.

    [myLife]
    Je m'explique: je suis au boulot, j'ai une machine "de travail", avec un clavier et une souris. J'ai à côté un portable perso, qui me sert à rédiger ces quelques lignes, à consulter de la doc (3ème écran)…

    J'utilise mon clavier "principal" et ma souris pour contrôler ce portable, à travers une appli nommée synergy, forkée récemment en "Barrier", qui marche très très bien… avec X uniquement.

    Tant que Barrier ne supportera pas Wayland, je suis coincé.
    [/myLife]

    Courage !

  • # kidtimer

    Posté par  (Mastodon) . En réponse au message Moyen pour bloquer une session utilisateur sur plage horaire. Évalué à 2.

    Salut,

    Quand j'étais confronté au problème, j'ai utilisé un script jeu de scripts shell nommé kidtimer, qui a très bien fonctionné pendant des années sur le PC en libre service de la maison :

    • configure les plages d'utilisation (ma fille de 10 ans à l'époque de 18 à 20h, mon fils plus agé de 16 à 22h…)
    • configure les durée d'utilisation, avec déconnexion automatique (ma fille: 1H de session, mon fils 2h…)

    De plus, il y a un CLI qui permet d'ajouter du temps "exceptionnellement", de faire un reset de la session…

    https://github.com/JimDunphy/kidtimer

    Bon, maintenant mes enfants sont plus grand, et ils ont tous des ordiphones, le besoin se fait moins sentir… juste on récupére le mobile de la plus petite à 21h30 (15 ans).

    Courage !

  • # SYLK

    Posté par  (Mastodon) . En réponse au journal Feuille de style pour CSV. Évalué à 3.

    Il existe le format de fichier SYLK qui pourrait parfaitement cnvenir à ton usage:

    • import direct dans LO et Excel
    • Formatage/style des données
    • Format textuel

    https://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)

    Courage !

  • # Pas beau du tout...

    Posté par  (Mastodon) . En réponse au message Mon premier code python. Évalué à 3. Dernière modification le 23 janvier 2019 à 18:11.

    Salut,

    Je fais du python au quotidien… et là je suis séché : je n'ai jamais rien lu de si moche !

    • Code illisible
    • Tout est mélangé

    Pour commencer, python dispose d'un mécanisme de namespace qui permet de séparer les trucs dans des distincts:

    • les modules : de simples fichiers python qui permettent de séparer le code, importables.
    • des packages : des dossiers contenant (au moins) un fichier __init__.py, importables.

    Ces 2 trucs permettent de séparer les choses dans des espaces distincts, et éviter les scripts à ralonge.

    Les fonctions et méthodes ne doivent pas dépasser 50 lignes, sinon tu dois découper.
    En plus, tu mélanges des aspects "objet" avec du code procédural : la seule fonction doit être main(*args), protégée :

    def main(*args):
        # your launching code...
        return 0
    
    if __name__ == "__main__":
        sys.exit(main(sys.argv[1:]))

    Ça permet de rendre un script importable, sans qu'il soit executé directement.

    Le main doit retourner un entier, 0 si tout va bien, un autre entier sinon.

    Ensuite, les règles de nommage:

    • les noms de variables en snake-case : truc_machin = "bidule"
    • les noms de classes capitalisées :
    class Clock:
        def __init__(self, **kwargs):
            self.thing = kwargs.get('thing', None) # None by default
            ...
    • les variables privées commencent par un _
    _private = "foo"

    Tu noteras que plutôt que de mettre 20 args à mon __init__, j'utilise l'opérateur splat qui permet de passer un **kwargs, qui est le dictionnaire de tous les paramètres passée, nommés.

    Pour ta question concernant la suppression d'instance, tu as une méthode spéciale __del__(self) qui permet de gérer la suppression d'instance.

    Il faut garder en mémoire qu'une classe permet de fabriquer des instances, et qu'elle peut avoir des méthodes qui permettent de manipuler ces instances…

    Bon courage !

  • [^] # Re: latence

    Posté par  (Mastodon) . En réponse au message Mini-chaine BlueTooth . Évalué à 1.

    Salut,

    Pour la latence, je m'en suis rendu compte : le son a marché une fois pour une vidéo dans vlc, j'ai décalé le son de -1.5s, ça a marché.
    Depuis plus moyen : Le truc, c'est que je peux appairer le BT, le "connecter" (la source apparaît sur la chaine), mais que quand je vais dans les params audio (PA), je ne vois pas le sink…

    Merci et bonne année !

  • # Réglage de l'écran ?

    Posté par  (Mastodon) . En réponse au message Problème couleur carte graphique. Évalué à 2.

    Le bon réglage de l'écran est aussi une piste: plutôt que de bidouiller la config de la carte graphique, peut-être ça serait mieux de commencer par régler l'écran, si c'est possible…

    De quel type est-il ?

    J'ai ici deux écrans Dell, qui ont un rendu des couleurs très différent.

    Ils ont tous deux un menu qui permet de régler ces couleurs, au niveau de l'écran lui-même.

    Courage !

  • [^] # Re: Badges avec photo

    Posté par  (Mastodon) . En réponse au journal Première version stable pour WeasyPrint. Évalué à 3.

    Yep, et en plus mon imprimeur est content :)