François GUÉRIN a écrit 270 commentaires

  • # Django templates rocks

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

    Salut,

    J'utilise Django depuis quelques années (8 ?) sur plein de projets, souvent de type 'CRUD+'. J'ai une base de templates que je réutilise de projets en projets, que je réadapte au besoin, à base de de bootstrap 4, et çà fait bien la taff… Je ne travaille pas pour des clients, mais pour une collectivité, çà simplifie le design…

    L'un des grands intérêts des templates django, c'est de pouvoir réutiliser des parties de templates - {% extends "base.html" %} - et de pouvoir aussi inclure des morceaux - {% include "piece_of_code.html" %}… Ah, et les filters / templatetags sont super cool aussi !

    Pour les interaction "Ajax", j'utilise Vue.js qui permet de créer des composants intégrables simplement dans les templates django, et j'utilise django rest framework (DRF) côté backend. Les composants permettent de faire des actions sur la DB sans recharger toute la page.

    Çà marche bien aussi !

    J'ai aussi un site en Wagtail (l'intranet de ma boîte), avec 30000 pages dedans, çà fait le taff. On vient de recruter une nouvelle webmaster pour ce site, 2 jours de formation lazy et c'est bon, elle est autonome. Le gros avantage de wagtail, c'est son interface d'administration super facile à utiliser pour les non-informaticiens—quasi 0 questions une fois qu'ils ont compris comment faire une recherche !

    Côté front, j'use et j'abuse du cache, des index dans la base de donnée, le site est très rapide !

    J'utilise Celery pour tout un tas de tâches qui prennent du temps, pour les cron…

    J'ai fait un SPA basé sur django, avec VueJS + DRF aussi !

    Bref, les SPA c'était à la mode, enfin un peu moins maintenant, mais on peut faire plein de trucs avec "plein de pages HTML" aussi !

    Bon, par contre, je fais çà depuis 8 ans à peu près !

    Courage !

  • # Pour quelle techno ?

    Posté par  (Mastodon) . En réponse au message architectures de code. Évalué à 7.

    La bonne question, c'est pour quel type de projet ?
    Çà va conditionner sur quel framework vas-tu développer !

    Django

    Django propose une structuration des projets assez stricte

    + project/
      + settings.py
      + urls.py
      + wsgi.py
    
    + application/
      + admin.py
      + models.py
      + views.py
      + templates/application
      + urls.py
      + tests.py
      + ...
    

    On peut ajouter autant d'application qu'on veut, çà permet de découpler pas mal. Chaque application a son "namespace" dans la base de données.

    Chacun de ces fichiers a un rôle bien précis, et peut de toutes façon se transformer en module en remplaçant le fichier par un dossier avec le même nom + __init__.py.
    tu peux trouver plein d'applis complémentaires pour ajouter des fonctionnalités à ce que propose django "de base".

    Du coup, à base d'imports relatifs + abus de __all__, tu peux faire croire à tes imports qu'ils sont dans le module principal.

    Pour Django, le modèle de développement n'est pas MVC mais MTV : model / template / view. La partie "Controler" est répartie entre les models et les views, il y a des astuces pour faire en sorte que çà le soit pas trop le boxon, mais en général on retrouve bien ses petits.

    Django propose "de base" la gestion des utilisateurs / groupes / permissions, une interface d'admin paramétrable, la gestion des migrations de la base de données, des templates…

    Et si tu veux faire du REST, tu as django-rest-framework

    Flask

    Flask a quant à lui une démarche très différente : tu fais ce que tu veux, il ne t'impose rien ! Du coup, tu n'as pas d'ORM, pas d'admin, pas de gestion des utilisateurs ni des sessions… juste des routes et les fonctions associées.

    Il y a bien sûr des tas de plugins qui te permettent d'inclure ces fonctionnalités !

    Il y a aussi des applis plus touffues développées sur Flask, mais le principe reste le même : tu as les clés en main.

    Et sinon ?

    J'utilise pour ma part beaucoup django, pour les applis "classiques" type CRUD ou similaires, et flask si je n'ai pas besoin de base de données, par exemple pour faire un utilitaire Web.

    Ah, et j'ai aussi un gros intranet qui tourne avec Wagtail, une surcouche de django, qui fait très bien le taff : admin du CMS jolie et pratique, assez couple à mettre en place (1 mois de boulot ?), et la possibilité d'inclure des application django de façon transparentes pour des trucs "à côté" du CMS.

    Il y a plein d'autres framework web à base de python, surtout que celui-ci a le vent en poupe, mais je ne pratiques que ces 2 là, car ils correspondent bien à mes besoins…

    Ah, aussi, si tu es dans une boîte, fais toi offrir une licence PyCharm, les trucs à base de VSCod(uim) sont largement en dessous ! En prime, le support de Flask et Django dans pycharm est très bon !

  • # De Have Maan

    Posté par  (Mastodon) . En réponse au message [ HS ] A la recherche d'un estaminet/grange a proximité de l'ex frontiere franco belge. Évalué à 2.

    … Du côté de Bailleul, à Dranouter…

    Ta description correspond bien, même si je n'y suis pas retourné depuis quelques années.

    mais dans le coin, il y en a plein de tout aussi sympa !

  • # Debian + Mint

    Posté par  (Mastodon) . En réponse au message Quelle est votre distribution linux préférée ?. Évalué à 1.

    Debian sur ma machine de boulot et sur mon portable perso (Bookworm), Bullseye ou Buster sur les serveurs (migration > Bullseye programmée "cet hiver").

    Au passage, migration d'apache 2 vers nginx pour mes serveurs web…

    Linux Mint pour les amis, famille, connaissances…

  • [^] # Re: Moi aussi

    Posté par  (Mastodon) . En réponse au journal J'ai regardé Don't Look Up. Évalué à 10.

    Maman !?

    Maman ?…

  • [^] # Re: data

    Posté par  (Mastodon) . En réponse au journal Compter automatiquement les mots prononcés sur les chaînes d'information continue. Évalué à 5.

    … en regardant vite fait, tu peux utiliser auto_now_add pour mettre automatiquement un timestamp dans ton entrée "dateTime" de la table Word, tu n'a plus à te soucier de la date de création de ton champs :)

  • [^] # Re: merci pour tout ca marche

    Posté par  (Mastodon) . En réponse au message accès aux fonctions iapws. Évalué à 1. Dernière modification le 13 novembre 2021 à 14:18.

    Super que çà marche !

    La bonne méthode serait plutôt d'utiliser un virtualenv si tu veux construire une application dessus.

    Avec Jupyper, tu peux utiliser les fonctions directement dans un navigateur.

    $ mkdir proj
    $ cd proj
    $ python3 -m venv ./venv # Crée le virtualenv
    $ . venv/bin/activate    # Active de virtualenv
    (venv)$ pip install iapws
    (venv)$ pip install jupyter-notebook
    (venv)$ jupyter-notebook # Lance un processus serveur local et lance un onglet dans le navigareur

    Tu pourras alors accéder au namespace iapws (dans la page jupyter):

    >>> from iapws import iapws97
    >>> res = iapws97._Foo(200)
    >>> print(res)

    L'avantage, c'est que tu peux enregistrer le notebook, pour le ré-ouvrir plus tard…
    Tu peux évidemment construire ne app aussi !

    Courage !

  • # J'ai trouvé le code !

    Posté par  (Mastodon) . En réponse au message accès aux fonctions iapws. Évalué à 3.

    En fait, c'est assez simple…

    $ mkdir proj 
    $ cd proj
    $ git clone https://github.com/jjgomera/iapws.git .
    $ python3
    >>> from iapws import iapws97
    >>> foo = iapws97._PSat_P(100)
    <value>

    C'est pas plus compliqué que ça :°)

    Courage !

  • # Où est le code source ?

    Posté par  (Mastodon) . En réponse au message accès aux fonctions iapws. Évalué à 3.

    D'une façon générale, en python, les fonctions et méthodes qui commencent par un underscore le sont pour les marquer comme "privée", même si ce concept n'existe pas dans le langage.

    "Nous sommes entre adultes consentants" IL S'AGIT DE CONVENTIONS

    Les méthodes de la forme __<name>__ sont des méthodes spéciales du langage, qui par exemple définissent le constructeur (__init__) les opérateurs (__add__)…

    Pour le cas particulier de la bibliothèque iapws, il faudrait voir le code source et la doc !

    J'ai un peu regarder le site, bah je n'ai pas trouvé grand chose d'exploitable !

    Courage !

  • # Modifier le .bashrc et ajouter des .desktop

    Posté par  (Mastodon) . En réponse au message Lancer binaire depuis ~/.local/bin. Évalué à 1. Dernière modification le 08 novembre 2021 à 20:08.

    Salut,

    Modifier ton .bashrc

    $ nano ~/.bashrc

    Quelque part dans le fichier, tu trouveras sans doutes une ligne du genre :

    export PATH=/usr/bin:/usr/local/bin:...

    Tu peux ajouter le dossier .bin/local dedans:

    (le plus simple est d'ajouter une ligne dans le .bashrc, voir d'utiliser un autre fichier .bash_path qui contient toutes les customisations de $PATH, sourcé dans le .bashrc)

    export PATH=/usr/bin:/usr/local/bin:...`  
    export PATH=$PATH:~/.local/bin # J'ajoute le ~/.local/bin au $PATH 

    Tu enregistres et recharge le .bashrc :

    $ . .bashrc

    Ensuite tu peux vérifier que les éxécutables présents dans le ~/.local/bin sont biens pris en charge depuis n'importe quel point, depuis un terminal.

    $ ls ~/.local/bin
    spotify truc
    $ spotify
    ... se lance...

    Ajouter l'application dans le menu

    Le format des fichiers .desktop est commun à tous les DE principaux.

    Tu peux utiliser alacarte (de Gnome), une appli dédiée, qui permet de généner (et enregistrer au bon endroit) ces fichiers en GUI.

    Il est parfois nécessaire de marquer les .desktop en éxécutable pour que ça marche…

    $ cd .local/share/applications/
    $ chmod +x foo.desktop

    L'application devrait apparaître dans le menu…

    Courage !

  • # apt purge

    Posté par  (Mastodon) . En réponse au message Instalation Syslog-ng impossible (DEBIAN). Évalué à 2.

    Bonjour,

    Il est recommandé d'utiliser plutôt :

    # apt purge syslog-ng

    pour s'assurer que le paquet est totalement supprimé, y compris ses fichiers de config.

    Si çà ne marche pas, tu peux faire :

    # apt install

    qui va tenter de remettre le truc en état…

    Courage !

  • # GitLab ?

    Posté par  (Mastodon) . En réponse au message Équivalent de XL Release et XL Deploy. Évalué à 7.

    Salut,

    J'utilise un gitlab installé dans mon infra de boulot, et je peux y générer les étapes que tu décris par "CI": Continuous Integration.

    Je crée un fichier .gitlab-ci.yml à la racine de mon repo, dans lequel je déclare mes étapes de lint / tests / build, il est déclenché à chaque commit. Si il y a un tag (une release), je peux faire des trucs différents: par exemple déployer une package sur pypi…

    Il y a aussi la notion d'artifact, qui te permets de récupérer une archive, par exemple un truc déployable.

    Je ne suis pas fan de la branche "release", les développements sont sur une branche "develop" et les tags sont dans "master". J'utilise gitflow pou gérer les features / release / bugfix…

    Courage !

  • [^] # Re: PUB : Intérêt pour CImg ?

    Posté par  (Mastodon) . En réponse au journal Astico2D. Évalué à 3. Dernière modification le 03 septembre 2021 à 09:40.

    … l'informatique est un éternel recommencement …

  • [^] # Re: Où placer ses environnements virtuels et comment les nommer ?

    Posté par  (Mastodon) . En réponse à la dépêche Python — partie 7 — Environnements virtuels. Évalué à 3.

    … je fais pareil, je ne suis pas très fan non plus des venvs dans un dossier commun - Quand on a 40 projets python environ, c'est plus facile de retrouver ses petits effectivement. De plus, c'est plus facile de recréer un venv localement, en cas de montée de version de python par exemple.

    Courage !

  • # Django-extensions

    Posté par  (Mastodon) . En réponse au journal Graph my database. Évalué à 1.

    Salut,

    Je travaille au quotidien avec Django, il y a une appli très utile qui s'appelle django-extensions, il fait ça très bien depuis au moins 6-7 ans, en utilisant graphviz aussi.

    … du coup, à chaque fois qu'on me parle de graphes, je sors plot / graphviz !

    Courage !

  • # Nouveau paquet debian

    Posté par  (Mastodon) . En réponse à la dépêche Sortie de 0 A.D. Alpha 24 « Xšayāršā ». Évalué à 4.

    Bonjour,

    Je joue de façon épisodique à 0ad, et j'adore ce jeux… principalement en mode solo.

    C'est beau, c'est jouable : super boulot !

    Quand la nouvelle mouture sera-t-elle dans les dépots debian (testing/sid)?

    Merci encore !

  • [^] # Re: Bienvenue

    Posté par  (Mastodon) . En réponse au message Premier pas d'un débutant. Évalué à 1.

    Exactement pareil pour moi, j'aurai pu rédiger ce commentaire…

  • [^] # Re: dans mon labo …

    Posté par  (Mastodon) . En réponse au journal De l’inanité des solutions de travail in-da-cloud. Évalué à 6.

    Je suis dans cette situation, le seul utilisateur de Linux dans un parc de 1500 machines à vu de nez… Bah j'ai pas eu de VPN, même si je suis admin de quelques serveurs, de plusieurs applications importantes de ma boite… Pendant le premier confinement, j'ai embarqué ma machine pro (sans rien demander à personne) pour bosser sur un projet un peut compliqué et surtout long à mettre en œuvre. Je n'avais pas accès aux serveurs du boulot. Pas de pannes, mes applis tournent !

    Par contre, pour ce pseudo-confinement, les services fonctionnent normalement - plein d'interventions à faire sur les serveurs, une migration d'appli… rien que je puisse faire de chez moi.

    Au pire, j'aurai pu récupérer un PC sous Windows, pas admin dessus, hein ! - J'ai fait bondir le RSSI en demandant mine de rien si je pouvais faire un pont VPN Ethernet -> WiFi vers mon Nunux préféré, ça ne l'a pas fait rigoler…
    Je ne sais même pas si il a entendu parler de WSL 2.

    Bon, j'ai pas touché un Windows de près depuis au moins 10 ans, et de loin je n'y comprends rien : c'est quoi toutes ces icônes en vrac en haut du navigateur de fichier ? moi, je veux juste aller au dossier précédent !

    Le plus drôle, c'est que je branche tous les jours mon PC perso dans le LAN de la boîte, que je m'en sert quand je fais des démos, comme 3ême écran, pour lire la prose des moules de LinuxFR… mais depuis chez moi, j'ai pas le droit.

    J'ai pris la seule décision qui me permet de continuer à travailler : Pas de télétravail, tout seul dans un bureau.
    C'est un peu dur, mais je peux continuer à bosser  !

    Courage !

  • # Système de fichier ?

    Posté par  (Mastodon) . En réponse au message Liens Physiques et Espace Disque. Évalué à 1.

    Bonjour,

    De mémoire, les liens physiques sont très intimement liés au système de fichier sous-jacent. Par exemple, ils sont supportés par EXT3 / EXT4, mais peut-être pas en NTFS…

    Regarde donc le système de fichier ds ton NAS… mais sinon c'était effectivement une bonne idée !

    Après, l'OS du NAS se trompe peut-être sur l'espace occupé pas ton fichier ! Ça dépends de la façon dont il compte…

    Courage !

  • # Ça plante violement

    Posté par  (Mastodon) . En réponse au journal Rolling - Besoin de vous pour tester l'éxecution du client graphique !. Évalué à 2.

    ./rollgui 
    [wayland-client error] Attempted to dispatch unknown opcode 0 for wl_shm, aborting.
    Abandon
    

    Debian testing + GNOME/Wayland

  • [^] # Re: Pari de pascal

    Posté par  (Mastodon) . En réponse à la dépêche Soutenez les quatre propositions de l’April à la mission sur la politique publique des codes sources. Évalué à 7. Dernière modification le 06 novembre 2020 à 22:44.

    Salut,

    Dans la comptabilité publique, il y a 2 types de dépenses :

    • L'Investissement : construire des écoles, construire une nouveau parking, refaire des routes, acheter des logiciels, du matériel informatique : c'est politiquement payant, c'est le bien. Une "bonne" dépense est un investissement.
    • Le fonctionnement : payer le personnel, lui donner du papier pour travailler, louer des copieurs, louer les licences d'une suite bureautique ou de graphisme : c'est bien moins gratifiant en terme électoral…

    Par exemple, votre serviteur est une "mauvaise" dépense : je suis développeur dans une collectivité territoriale, je coute de l'argent, on ne peut pas dire "30000 d'investissement dans une solution informatique pour…" mais 3 mois à payer à un fonctionnaire. À noter que je ne touche pas les 30000 € en traitement, même pour 3 mois de travail… Par contre, c'est ce qu'est vendu l'équivalent commercial de la dernière application que j'ai développé…

    Voilà pourquoi les logiciels développés en interne sont du fonctionnement et pas de l'investissement.

    Courage !

  • [^] # Re: De l'engouement pour Python

    Posté par  (Mastodon) . En réponse à la dépêche Python dépasse Java en popularité selon l’indice TIOBE de novembre. Évalué à 10.

    Salut,

    J'ai découvert python il y a 7/8 ans, je cherchais à l'époque un framework web pour des développements internes, à base de brassage de données dans des DB (import / export, recherche, CRUD…), je suis alors tombé sur Django. À l'époque, j'avais fait du C# essentiellement, un tout petit peu de Java et de PHP. La solution devait être libre (je suis fonctionnaire, donc pas de budget).

    Je n'était pas spécialement fan du PHP de l'époque, je n'y ai pas trop touché, et puis c'était l'époque où les soucis de jeunesse du PHP commençaient sérieusement à se faire sentir (autour de la version 5, de mémoire, "00001" == 1 est vrai, ordre les params de fonctions en dépit du bon sens, pas d'objets qui tienne la route…par exemple).

    Mes critères alors étaient d'avoir un ORM (je sortais d'un truc où le seul endroit où je pouvais coder c'était dans les requêtes SQL, si si, j'ai fait une appli de gestion de stocks comme ça…), la gestion des sessions, des utilisateurs…

    Je sais que depuis PHP a évolué, mais bien connaître une Framework est un vrai avantage en terme de productivité ! De plus la doc de Django était très bonne à l'époque, et c'est toujours le cas !

    Je me suis donc retrouvé à coder du python comme ça, et depuis je n'ai pas arrêté. Je fais toujours du Django et certaines applications que j'ai développé à l'époque tournent toujours ! Ma plus vieille doit avoir 7 ans, il y a toujours des utilisateurs dessus (c'est trucs métier pour quelques utilisateurs, dans un LAN : pas beaucoup de risques de sécurité, donc maintenance minimale). De fil en aiguille, on se retrouve à écrire des scripts "jetables" en python, ils tournent toujours plusieurs années plus tard…

    La migration de python 2.7 vers python 3.5 s'est faite petit à petit, appli par appli, merci Gunicorn et les Virtualenvs. La solution mod_wsgi pou Apache de l'époque était globalement mono-interpréteur (Tu choisissais 2.7 ou 3.5 pour le serveur, et basta)

    Donc en fait, je suis arrivé au python comme ça, et depuis ça ne me lâche plus.
    J'apprécie sa souplesse, à son écosystème, à pypi, même si il faut faire super gaffe à ses dépendances quand on déploie une nouvelle version de son appli. J'ai encore du boulot sur le sujet !

    Donc voilà comment on se met à faire du python et à aimer ça :)

    J'ai découvert par la suite la communauté autour du python, elle est super acceuillante et vraiment très sympa, très ouverte.

    J'ai d'abord choisi un Framework, j'ai appris le langage sur le tas, j'ai amélioré les compétences petit à petit.

    Voilà comment on se met à aimer python.

    Courage !

  • # liquidprompt

    Posté par  (Mastodon) . En réponse au sondage Votre invite de commande de shell…. Évalué à 1.

    J'ai un peu essayé starship, mais je ne supporte pas le fait qu'il passe à la ligne entre le prompt et la commande.

    Du coup, je suis revenu dare-dare à liquidprompt.

    Je le déploie aussi sur mes serveurs, je passe un peu de temps devant leur console, parfois…

  • # Tu tiens le bon bout

    Posté par  (Mastodon) . En réponse au message Montage d'un dashboard avec Grafana sous Linux (Supervision)? . Évalué à 3.

    Salut,

    J'utilise Grafana + influxdb pour monitorer mes serveurs.

    • influxdb se charge de récupérer les métriques et de nourrir une base de données basée sur le temps, sur le(s) serveur(s) que tu veux monitorer.
    • telegraf les transmet au serveur de graphe,
    • grafana ne fait que dessiner des graphes à partir de ces données.

    Il existe des recettes "toutes faites" pour monitorer des serveurs linux avec influxdb et des tutos en pagaille.

    C'est un petit peu velu comme sujet, mais c'est interressant !

    Bon courage !

  • [^] # Re: Gnome?

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

    Retaper la commande à chaque reboot n'est pas une option pour ma fille… Je vais rester sur Xorg

    Merci !