Oliver a écrit 243 commentaires

  • [^] # Re: Une retouche trop rapide

    Posté par  (site web personnel) . En réponse à la dépêche Python — partie 3 — Installation de Python et de paquets. Évalué à 3.

    Oups, merci lolop pour ta relecture. Je me suis précipité à soumettre la dépêche aux modérateurs car la rentrée s'acchève bientôt et que nous avons d'autres dépêches Python dans le tuyau…

    J'en profite pour un appel à contributions : nous avons besoin de votre aide pour completer/relire/corriger les dépêches Python en courses de résaction. 🤩 Merci 😘

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Prévenir vaut mieux que guerir

    Posté par  (site web personnel) . En réponse à la dépêche Python — partie 3 — Installation de Python et de paquets. Évalué à 3. Dernière modification le 23 septembre 2019 à 04:04.

    Avant de démarrer un nouveau projet, une seule commande:
    python -m venv .venv

    Pourquoi pas. 😊
    C’est une information à rajouter dans la prochaine dépêche. Tu veux bien nous donner un coup de main ? 🙏

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # La prochaine dépêche explique en détail Pyenv

    Posté par  (site web personnel) . En réponse à la dépêche Python — partie 3 — Installation de Python et de paquets. Évalué à 2. Dernière modification le 23 septembre 2019 à 04:00.

    Oui, tout à fait. À l’origine, nous avions prévu de présenter pyenv dans cette troisième dépêche. Mais cette dépêche commençait à être très longue. Alors, nous avons déplacé le chapitre pyenv dans la dépêche suivante qui traite des environnements virtuels. Pour les curieux : https://linuxfr.org/redaction/news/python-pour-la-rentree-2019-partie-4-environnements-virtuels-et-conteneurisation#toc-outil-pyenv

    Pourrais-tu rajouter une explication de l'utilisation pyenv avec virtualenv ?

    Ne pas hésiter à vérifier l’exactitude de la prochaine dépêche et nous aider à améliorer sa qualité. Merci 😉

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # La prochaine dépêche Python traitera de virtualenv

    Posté par  (site web personnel) . En réponse à la dépêche Python — partie 3 — Installation de Python et de paquets. Évalué à 6.

    Oui, nous abordons virtualenv, venv, pipenv, pyenv… dans la prochaine dépêche.
    Par contre, le lien en fin de dépêche pointe sur la partie 6. 😵
    Pour nous donner un coup de main sur la partie 4, voici le lien correct :
    https://linuxfr.org/redaction/news/python-pour-la-rentree-2019-partie-4-environnements-virtuels-et-conteneurisation
    Merci de nous suggérer une meilleur organisation des chapitres/parties si cela ne semble pas pertinent. 😎

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # TomTom et l'implémentation VFAT de Linux

    Posté par  (site web personnel) . En réponse à la dépêche exFAT dans le noyau Linux ? Microsoft a (enfin) dit oui !. Évalué à 6. Dernière modification le 20 septembre 2019 à 01:45.

    antistress écrivait en 2010

    En mai 2007, Microsoft a poussé sa logique un peu plus loin en annonçant dans une interview donnée au magazine Fortune qu'ils considéraient que GNU/Linux violait 235 brevets de Microsoft. Et récemment ils ont prouvé que ce n'était pas de vaines menaces : la société a poursuivi TomTom en justice pour avoir fait usage de l'implémentation du système de fichiers VFAT existant dans le noyau Linux sans en avoir acquis les droits.

    Tout cela ne peut être balayé d'un revers de main. Il s'agit de déclarations et d'actions faites au plus haut niveau de cette société. Utiliser les brevets pour diviser et conquérir la communauté du Logiciel Libre est une part fondamentale de leur stratégie d'entreprise.

    Je me méfie de cette société qui raquette avec ses brevets logiciels et qui influence nos politiciens pour que les ordinateurs soient vendus avec Microsoft Windows en standard. Non, Windows n'est pas LE standard !

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # Possible partage avec ZesteDeSavoir.com ?

    Posté par  (site web personnel) . En réponse à la dépêche Lancement de Formatux v2 : supports de cours GNU/Linux libres. Évalué à 7.

    Bonjour,

    C’est chouette d’avoir partagé les supports de cours sous licence libre.
    Il m’arrive aussi de rédiger des articles pédagogiques (notamment en C++ et plus récemment sur Python). Pour le moment, uniquement sur LinuxFr.org, mais je me suis souvent dit que je devrais aussi publier sur Zeste de Savoir. Avez-vous aussi pensé à partager vos supports de cours sur cet autre site ?

    Pour info, voici comment Zeste de Savoir se définit :

    un site de partage de connaissances où vous trouverez, gratuitement et sans publicité :

    • une bibliothèque, comprenant des tutoriels et articles de tous niveaux ;
    • une tribune, où se trouvent les billets écrits par les membres ;
    • et des forums d’entraide.

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Grumpy

    Posté par  (site web personnel) . En réponse à la dépêche Python — partie 2 ―Python 2. Évalué à 3.

    Merci pour ta précision. 👍
    J’ai aussi eu une information similaire de la part d’un développeur qui travaille chez Google YouTube : pour la perf, des outils en C++, des scripts sont restés en Python (avec migration vers Python3), et aussi des logiciels porté vers Go. À prendre avec des pincettes, n’ayant pas pu vérifier…

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Propagande /usr/bin/env ?

    Posté par  (site web personnel) . En réponse à la dépêche Python — partie 2 ―Python 2. Évalué à 2.

    Oui, mon intention était d’expliquer les avantages d’utiliser #!/usr/bin/env python{2|3} dans ses propres scripts et pourquoi les scripts systèmes utilisent plutôt #!/usr/bin/python{2|3}

    Et puis, j’ai dû faire un autre truc (context switching) et j’ai zappé la rédaction de ce paragraphe. 😬 Et quand j’ai relu rapidement la dépêche avant de la soumettre, je n’ai pas remarqué ce paragraphe à peine entamé. 😵

    Merci pour les commentaires sur ce sujet, je ne connaissais pas précisément ce que recommandaient les différents standards. Merci raphj pour ta perspicacité. 😊

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: De mon temps

    Posté par  (site web personnel) . En réponse au journal Les temps changent !! Qui l'aurait cru il y a 20 ans ?. Évalué à 4. Dernière modification le 06 septembre 2019 à 18:31.

    Oui à l'époque on lisait slashdot.org, pas zdnet.com

    slashdot.org se réfère à l'article sur zdnet.com

    https://news.slashdot.org/story/19/09/05/1720205/free-software-advocate-richard-stallman-spoke-at-microsoft-research-this-week

    Free Software Advocate Richard Stallman Spoke at Microsoft Research This Week (zdnet.com) 83
    Posted by msmash on Thursday September 05, 2019 @01:25PM
    Garabito writes:

    Free Software advocate Richard M. Stallman gave a talk at Microsoft Campus yesterday. Stallman was invited by Microsoft Research. Stallman's talk was related—as most of his talks—with Free Software, Privacy and the GPLv3. He also had a list of small requests to Microsoft: "make Github push users to better software license hygiene, make hardware manufacturers to publish their hardware specs, make it easier to workaround Secure Boot." While Microsoft has changed its attitude toward Open Source Software in the last years, this does not mean RMS has made peace with Microsoft: "If you're wondering whether Stallman's distaste for Microsoft has lessened over the years, his personal home page makes it clear that it has not".

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Saisonnalité du Java et du C++

    Posté par  (site web personnel) . En réponse à la dépêche Python pour la rentrée 2019 — partie 1 ― Popularité. Évalué à 6. Dernière modification le 05 septembre 2019 à 18:20.

    Oui, nous remarquons une baisse de la proportion de la consultation concernant Java et C++ dans la totalité du trafic web StackOverflow. Ces baisses se répètent simultanément à la même période de l’année pour ces deux langages :

    • baisse de courte durée et de petite amplitude qui coïncide avec les vacances décembre/janvier
    • baisse de plus longue et de plus grande amplitude qui coïncide avec les vacances d’été

    De façon un peu imperceptible, nous pouvons remarquer une saisonnalité contraire pour le C# et le JavaScript.

    Pas pour le Python, ni le PHP.

    Personnellement, j’en conclus :

    • Java et C++ se sont des langages utilisés par des salariés pendant leurs heures de travail
    • JavaScript et C# semblent être davantage utilisés par des hobbyistes, étudiants, stagiaires…
    • Python et PHP semblent être utilisés par tous : salariés, hobbyistes et les autres…

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Utilisation de Python par un profane

    Posté par  (site web personnel) . En réponse à la dépêche Python pour la rentrée 2019 — partie 1 ― Popularité. Évalué à 3. Dernière modification le 04 septembre 2019 à 16:53.

    (pas vu de zone de discussion sur la page de rédaction)

    La zone de discussion ne se voit pas sur un petit écran (ou une fenêtre pas très large). Si tu peux, met la fenêtre en plein écran, tu verras la zone de discussion à droite. Avec un smartphone, peut-être en mode paysage… Au pire, tu scrolles tout en bas de la page, et tu auras la zone de discussion.

    Ne serait-il pas mieux de présenter d'abord les bonnes façons de faire, et ensuite seulement les autres façons que l'on peut trouver indiquées sur le Net (et pourquoi elles sont moins bonnes) ?

    Oui c'est une très bonne idée. Souhaites-tu t'occuper de modifier l'ordre actuel des sections ? Je t'en prie, considère que c'est aussi ta dépêche. On peut déplacer certains chapitres dans une autre dépêche à paraître ultérieurement si tu penses que c'est pertinent. 😃

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Utilisation de Python par un profane

    Posté par  (site web personnel) . En réponse à la dépêche Python pour la rentrée 2019 — partie 1 ― Popularité. Évalué à 4.

    Justement la partie 2 de cette série de dépêche va un peu parler de Python 2.
    N'hésitez pas à compléter/corriger la partie 2 avant sa publication:
    https://linuxfr.org/news/python-pour-la-rentree-2019-partie-2/
    Merci   💚 🐍

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Qt ça aide bien

    Posté par  (site web personnel) . En réponse à la dépêche Moi, expert C++, j’abandonne le C++. Évalué à 2.

    Merci vpinon, je ne connaissais pas Craft dont son dépôt de code source montre une forte activité du projet.

    Finalement, il y a vraiment beaucoup de solutions de build et de gestionnaire de paquet dans l'écosystème C++ !

    Est-ce que ce projet mériterait d'être listé sur la page Wikipédia des outils de construction logicielle ?
    https://en.wikipedia.org/wiki/List_of_build_automation_software

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Python websockets

    Posté par  (site web personnel) . En réponse à la dépêche Moi, expert C++, j’abandonne le C++. Évalué à 3. Dernière modification le 09 juin 2019 à 17:36.

    Bonjour Bluelambda,

    Effectivement, le module Python websockets continue d’évoluer au point de nécessiter les dernières versions de Python, notamment en utilisant les async et await.

    Comme je disais dans mon article :

    Pour ne pas réinventer la roue, je cherche alors une solution qui implémente déjà la fonctionnalité Souscription/Publication […]

    Par exemple, l’implémentation websocket du projet Python Socket. IO gère la Souscription/Publication avec une notion de rentrer dans une pièce (souscrire) et sortir d’une pièce (dé-souscrire).

    Un autre exemple, wampy est une des implémentations websocket qui respecte le standard WAMP et qui propose également la fonctionnalité Souscription/Publication.

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # sprint d'un jour

    Posté par  (site web personnel) . En réponse à la dépêche Moi, expert C++, j’abandonne le C++. Évalué à 3.

    Quand on fait des sprints d’un jour, on s’organise très différemment : on ne cherche pas à caser dans la journée toutes les réunions d’un sprint traditionnel de quelques semaines. Le sprint d’un jour est bien plus souple :-)

    Un exemple :

    • le matin, un clavardage (chat) avec les différents acteurs (dont un ou des utilisateurs finaux) pour se fixer le ou les objectifs de la journée ;
    • à chaque commit, un test est exécuté et si aucune régression n’est trouvée, c’est publié directement à un ou des utilisateurs ;
    • le ou les utilisateurs finaux peuvent vérifier la nouvelle version ;
    • à n’importe quel moment, développeurs et utilisateurs peuvent s’appeler ou clavarder pour éclaircir un aspect selon leurs disponibilités ;
    • en fin de journée, un dernier clavardage permet de faire un débriefing de la journée, si besoin on prévoit une réunion plus formelle pour résoudre une problématique plus complexe.

    Exemples d’objectif pour la journée :

    • un dév. réécrit une partie du code afin de simplifier les développements futurs
    • un utilisateur réfléchit à un test complet de bout en bout (end to end) à destination de l’intégration continue
    • un dév. investigue un bogue avec l’aide d’un utilisateur final
    • un utilisateur final met à jour le manuel d’utilisation

    Je rajoute un autre aspect qui ne fait pas partie du sprint d’un jour :

    Idéalement, on travaille dans un esprit de respect des uns vers les autres.
    Personne ne ressent d’intimidation ou de l’hésitation quand il/elle s’exprime.
    Chacun dit ce qu’il/elle pense être utile au projet.
    Et personne ne bloque l’idée d’un(e) autre.
    Ainsi personne n’est obligée de faire un truc en sous-marin.

    Dans le sprint d’un jour, c’est difficile de travailler en sous-marin, donc il faut absolument adopter pleinement le respect mutuel.

    On peut décider unilatéralement d’abandonner son objectif de la journée pour aider un collègue qui rencontre une difficulté, ou car on n’est plus convaincu de la pertinence de l’objectif… À côté de l’objectif principal, chacun peut librement s’atteler à d’autres tâches, en toute transparence avec l’équipe (d’où l’importance du respect mutuel).

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # La liste des logiciels libres de compta est maintenue sur le wiki de l'April

    Posté par  (site web personnel) . En réponse au journal Logiciel comptable et ergonomie. Évalué à 8. Dernière modification le 04 avril 2019 à 05:54.

    Salut,

    Je m'étais posé une question similaire en 2017 pour mon activité professionnelle en tant qu'indépendant.
    Et puis, j'ai pris mon courage à deux mains et j'ai mis à jour le wiki de l'April :
    https://wiki.april.org/w/Comptabilite#Les_logiciels_sous_licence_libre

    J'ai finalement opté pour le logiciel Dolibarr (PHP/MySQL) que j'ai installé sur mon hébergement mutualisé (détails sur mon journal Hébergement mutualisé). Il est possible de l'installer en local sur une de tes machines ou de payer l'hébergement/maintenance. De plus, le sympathique mainteneur principal de Dolibarr, Eldy (Laurent Destailleur) s’investit beaucoup dans la communauté des logiciels libres.

    Pourquoi avoir choisi Dolibarr ? Un peu par hasard, car j'ai rencontré un expert comptable qui m'a proposé de me former à Dolibarr (il ne connaissait pas les autres logiciels libres de compta). Sinon, Tryton et Noalyss me paraissent bien aussi…

    Notons une distinction entre logiciels libres qui me semble importante :

    1. Les logiciels communautaires dont les auteurs jouent le jeu de l'ouverture et accueillent les nouveaux contributeurs ;
    2. Les logiciels dont l'aspect "open source" est juste un argument commercial et dont le développement est verrouillé.

    Par conséquent, les logiciels libres suivant sont dans cette seconde catégorie :

    • OpenConcerto car pas accès aux commits intermédiaires entre deux versions (dépôt de code source privé) ;
    • Odoo Community Edition (OpenERP) car les décisions ne sont pas communautaires et les contributions externes peuvent être supprimées mais introduites dans la version non-libre (signature d'un CLA) ce qui s'est déjà passé pour la version 7 ;
    • et cinq autres logiciels moins connus mais listés sur le wiki de l'April : Openbravo, Compiere, SQL-Ledger, compta.libremen.com et ERP5.

    Notons la très longue liste des logiciels abandonnés, un peu comme le phénomène de la disparition des dinosaures ou le changement climatique actuel qui a pour conséquence la disparition de très nombreuses espèces.

    J'espère que dans le lot, tu trouveras la (ou les) application(s) qui répondent à tes exigences.   :-D

    Édition de dernière minute : La liste sur le wiki de l'April n'est pas complète, car il manque les applications de compta disponibles sur téléphone/tablettes (il y en a quelques unes sur F-Droid). Ne pas hésiter à compléter le wiki de l'April.

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # Python Build Reasonableness

    Posté par  (site web personnel) . En réponse au journal Quelques bonnes pratiques Python pour 2019. Évalué à 4. Dernière modification le 03 avril 2019 à 05:32.

    Pour éviter de passer du temps à réaliser des tâches répétitives à chaque version, l'équipe de OpenStack les a automatisées dans un script qui est devenu en 2010, le module pbr pour Python Build Reasonableness (avec sagesse). Ce module a énormément évolué en s'adaptant aux évolutions de Python sur dix ans (150 contributeurs).

    Installation

    sudo apt install python3-pbr        # v4.2.0 (Ubuntu 18.10)
    
    # ou une version bien plus récente:
    
    python3 -m pip install --user pbr   # v5.1.3

    Fonctionnalités

    • Récupère automatiquement la version à partir du tag Git et la passe à setuptools (setup.py) ;
    • Réplique les dépendances du fichier requirements.txt vers setuptools (install_requires) ;
    • Maintient la liste des AUTHORS à partir du git log ;
    • Génère le ChangeLog en cherchant les mots feature, api-break, deprecation et bugfix dans le git log ;
    • Délègue à reno la gestion des Release Notes ;
    • Gère le fichier MANIFEST.in ;
    • Lance les tests via tox (déprécié) ;
    • Lance sphinx pour produire la documentation.

    Avant

    ├── nom_du_module_python/
    ├── AUTHORS
    ├── CHANGES
    ├── LICENSE
    ├── MANIFEST.in
    ├── README.md
    ├── RELEASENOTES.txt
    ├── requirements.txt  # dependance_1 dependance_2...
    └── setup.py
        ║
        ╚═╡ from setuptools import setup, find_packages
          │ from os import path
          │
          │ setup(name = "nom_du_module_python",
          │     version = "1.0.0",
          │     author = "Michel Martin",
          │     author_email = "m.martin@example.com",
          │     description = "Une courte description",
          │     long_description = open(path.join(path.dirname(__file__), 'README.md'), encoding='utf-8').read()long_description_content_type = "text/markdown",
          │     license = "AGPL",
          │     packages = find_packages(exclude=["test.*"]),
          │     install_requires = ["dependance_1", "dependance_2", "dependance_3", "dependance_4"],
          │ )

    Après

    ├── nom_du_module_python/
    ├── LICENSE
    ├── README.md
    ├── requirements.txt
    ├── setup.cfg
    │   ║
    │   ╚═╡ [metadata]
    │     │ name = nom_du_module_python
    │     │ description = Une courte description
    │     │ description-file = README.md
    │     │ author = Michel Martin
    │     │ author-email = m.martin@example.com
    │     │ license = AGPL
    │
    └── setup.py
        ║
        ╚═╡ from setuptools import setup
          │
          │ setup(setup_requires = ["pbr"],
          │     pbr = True,
          │ )

    Bon, c'est vrai, depuis setuptools-30.3.0 (déc. 2016) on peut remplacer setup.py par setup.cfg. Cependant, le Python Packaging Authority recommande d'utiliser principalement le setup.py. Néanmoins, des projets comme tox utilisent principalement setup.cfg.

    Distinction entre install_requires et requirements.txt

    Le module pbr permet d'éviter de gérer en double la liste des dépendances : pbr spécifie le paramètre install_requires à partir du fichier requirements.txt. Mais, sémantiquement, ces deux listes ont deux objectifs différents :

    • Le paramètre install_requires du fichier setup.py (ou setup.cfg) est inséré dans le livrable et ne précise pas toujours la version des dépendances, du moins l'intervalle des versions pour lequel le livrable est censé être compatible ;
    • Le fichier requirements.txt est fourni à pip pour installer des versions précises pour lesquelles l'application a été validée.

    De plus, requirements.txt peut contenir des arguments de la ligne de commande pip comme --index-url https://pypi.python.org/simple/ afin d'indiquer explicitement à partir de quel dépôt télécharger les dépendances. Les développeurs utilisent souvent ce fichier pour avoir les mêmes dépendances et éviter de perdre du temps avec une incompatibilité absconse.

    En résumé, install_requires définit les dépendances compatibles (pour la livraison) et requirements.txt spécifie les versions validées (pour le déploiement). Pour plus de détail sur cette sémantique, lire le coup de gueule de Donald Stufft (2013, en anglais). Lire aussi la documentation officielle (en anglais).

    Cependant, dans la pratique, ces deux listes sont souvent gérées de la même façon, donc autant mutualiser les efforts.   :-)

    Futur

    Actuellement, pbr n'est pas encore compatible avec le fichier pyproject.toml (PEP-517 et PEP-518) et ne prend pas en charge les alternatives à setuptools comme flit et poetry (découplage entre empaquetage et installation). Mais les développements sont prévus d'après la description du module :

    As Metadata 2.0 and other modern Python packaging PEPs come out, PBR aims to support them as quickly as possible.

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # Autres astuces non mentionnées dans mon journal

    Posté par  (site web personnel) . En réponse au journal Quelques bonnes pratiques Python pour 2019. Évalué à 5.

    Quelques autres astuces intéressantes dans l'écosystème Python que j'ai oublié de mentionner dans mon journal.

    Règles du code source

    Bien que de nombreux développeurs sont d'accords pour respecter la PEP-8, on a tous nos préférences pour telle ou telle nuance. Par exemple, personnellement j'apprécie lire des valeurs alignées comme ceci :

    capitaine = { 'age':    42,
                  'nom':    'Grant',
                  'bateau': 'Britannia' }

    Mais ce n'est pas l'avis de tous et chacun a de bons arguments. Par conséquent, du temps précieux est consacré à convaincre/négocier sur tel ou tel aspect. Et puis, avec la rotation naturelle de l'équipe (turn-over), les décisions du passé ne conviennent pas toujours à la nouvelle équipe ! La preuve que l'on y passe du temps, mon bout de code ci-dessus va être repris dans un commentaire plus bas.

    Pour mettre tout le monde d'accord, économiser son temps et éviter les polémiques/frustrations, utilisons black. C'est un script python tout-en-un de 4000 lignes qui décide/réécrit tout seul vos fichiers Python. L'absence de fichier de configuration évite tout marchandage. Son objectif est de réduire le diff entre deux commits (minimiser le nombre de lignes modifiés).

    Mon code ci-dessus devrait être converti en : (pas testé)

    capitaine = {
        "age": 42,
        "nom": "Grant",
        "bateau": "Britannia",
    }

    Tests unitaires

    Historiquement, nous avons unittest. D'autres alternatives intéressantes : nose et pytest. Ce dernier permet d'écrire très simplement ses tests unitaires sans avoir à implémenter une classe :

    def incremente(x):
        return x + 1
    
    def test_incremente():
        assert incremente(3) == 4

    Analyse statique de code

    Quelques outils intéressants :

    • mypy
    • pylint
    • flake8

    Annotation de type

    Comme Spack nous le signalait en 2014 et récemment amélioré par Python 3.7, nous pouvons aider l'analyse statique du code source Python en spécifiant les types attendus :

    import typing
    
    def ajoute(valeur: int, lst: typing.Sequence[int]) -> typing.List[int]:
        ret = []
        for elem in lst:
            ret.append(elem + valeur)
        return ret

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Vote

    Posté par  (site web personnel) . En réponse au message Fermeture du compte. Évalué à 2.

    Tu as raison dark_star.

    D'un autre côté, Linuxfr.org n'est pas aussi ergonomique que des sites modernes comme StackOverflow, Discourse… et ne le sera jamais vu le peu de personnes qui ont la motivation (et le temps) de s'en occuper. D'ailleurs je n'ai jamais contribué au code source du site, j'ai juste créé quelques Suivis.

    Peut-être que le système de notation de Linuxfr.org pourrait davantage gratifier les bons messages, et éviter que ceux qui se font moinser se sentent sanctionnés… c'est une réflexion, je n'ai pas d'idée comment s'y prendre…

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • # Copier ses contacts depuis Android avec DAVx⁵

    Posté par  (site web personnel) . En réponse à la dépêche Synchronisation Thunderbird–Android. Évalué à 7.

    J'ai un peu de temps libre en ce moment, alors je m'attelle à franchir une étape importante de ma dégoogelisation : avoir un téléphone Android sans utiliser les applications Google non-libres, les fameuses GApps.

    Depuis quelques années, avec grande satisfaction, j'utilise un moteur de recherche alternatif (DuckDuckGo), je visionne/télécharge/écoute des vidéos YouTube avec NewPipe et MusicPiped, et j'utilise aussi PeerTube. C'est l'étape la plus facile.

    Ces jours-ci, c'est une toute autre bataille : trouver une alternative à Google Maps, aux contacts synchronisés, à l'agenda partagée, aux SMS archivés, la liste des tâches… (hébergés sur les serveurs de Google en accès direct par la NSA)

    Côté serveur, j'ai pris NextCloud sans comparer. N'hésitez pas à partager vos autres solutions… Pour l'hébergement, j'ai installé le NextCloud familial chez online.net pour 2,39 € TTC mensuel (nom de domaine et 150 Go d'espace de stockage). Attention, le service client est de piètre qualité, très peu de fonctionnalités, mais ce n'est pas cher. La sauvegarde automatique est facturée 3,59 € TTC mensuel, donc un petit script pour archiver régulièrement, via FTP uniquement. D'autres hébergement économiques ?

    Côté téléphone, j'ai commencé à m'habituer à OsmAnd~. Mais je compte tester d'autres logiciels de navigation. Quelles sont vos expériences ? recommandations ? J'utilise également Simple Contacts, Etar, Fennec, Klar, Gadgetbridge, KDE Connect, Telegram, Tutanota, Aurora, Blokada… Des suggestions ?

    Oups, le titre de mon commentaire est Copier ses contacts depuis Android avec DAVx⁵. Parlons donc de comment migrer ses contacts depuis Google vers NextCloud, ou de façon plus générique depuis un fournisseur d'e-mails vers votre serveur personnel (ou CHATONS).

    DAVx⁵ (anciennement DAVdroid) est l'application conseillée pour synchroniser ses contacts entre Android et NextCloud. Et pas seulement NextCloud : DAVx⁵ gère de très nombreux serveurs CardDAV.

    Mais la documentation de DAVx⁵ n'est pas très explicite :

    […]

    Your contacts in the "Local addressbook" […] can't be synchronized by DAVx⁵ because they're not assigned to a DAVx⁵ account.

    To move the contacts […] :

    • export your Android contacts from your local account (Contacts / Export to .vcf file) and import them into your DAVx⁵ account (Contacts / Import from .vcf file), or
    • use software like Copy Contacts to copy/move contacts between accounts, or
    • export your contacts from your Android device and import them to your CardDAV service (not recommended).

    Do not use the .vcf files exported by Android's Contacts app for any other purpose than importing again to the same Android Contacts app! Those .vcf files are using an ancient vCard format (vCard 2.1) and contain syntax errors. There are good chances that contacts will be corrupt when you try to import these .vcf files anywhere else.
    […]

    Traduction personnelle :

    […]

    Vos contacts du "Carnet d'adresse local" […] ne peuvent pas être synchronisés par DAVx⁵ car ils ne font pas partie du compte DAVx⁵.

    Pour copier les contacts […] :

    • exporter les contacts Android du compte local (Contacts / Exporter vers .vcf) et importer les dans votre compte DAVx⁵ (Contacts / Import depuis .vcf) ; ou
    • utiliser une application comme Copy Contacts entre deux comptes ; ou
    • exporter vos contacts depuis votre appareil Android et importer les dans votre serveur CardDAV (non recommendé).

    Ne pas utiliser le fichier .vcf exporté par l'application Android Contacts pour toute autre utilisation que de l'importer à nouveau par la même application Android Contacts ! Ces fichiers .vcf utilisent un vieux format vCard (2.1) et contiennent des erreurs de syntaxe. Il y a de fortes chances que suite à l'importation de ces fichiers .vcf, les données de vos contacts soient corrompues.
    […]

    Le fichier .vcf fournit par l'application Android, ou celui fournit par l'application web contacts.google.com ne peut être importé par NextCloud. C'est un bug connu et Google ne l'a jamais corrigé. Ce n'est pas le porte-monnaie des utilisateur de Google qui le finance, mais leur données. Alors à quoi bon corriger un bug qui facilite l'évasion des données ?

    Ce bug ne semble pourtant pas insurmontable, et quelques personnes indiquent comment ils s'en sont sortis.

    La méthode recommandée peut paraître bizarre : avec une application Contacts sur l'appareil Android, faire un export vers un fichier vCard, puis importer ce même fichier à nouveau avec la même application. Oui, c'est bien cela : l'export se fait à partir du compte Google, et l'import à destination du compte DAVx⁵.

    Des applications peuvent effectuer cette copie automatiquement (sans avoir à exporter/importer un fichier à la main), mais je n'en ai pas trouvé de libre…

    C'est dommage que DAVx⁵ ne simplifie pas la tâche. L'application DAVdroid / DAVx⁵ existe depuis de très nombreuses années, mais les développeurs n'ont pas pu/voulu fournir une option pour copier les contacts d'un compte vers un autre, ou même gérer la synchronisation entre deux comptes… Toutes les applications Android de Contacts ont accès aux contacts des comptes Google… non ?

    Comme l'auteur du journal l'explique, il y d'autres solutions pour copier ses contacts depuis Google comme en passant par Thunderbird ou Evolution.

    En écrivant ce commentaire, je suis tombé sur un article en anglais qui traite du même sujet :
    https://ownyourbits.com/2017/12/30/sync-nextcloud-tasks-calendars-and-contacts-on-your-android-device/

    Bref, la voie est libre, mais semée (volontairement) d'embûches…

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Des dons, des dons

    Posté par  (site web personnel) . En réponse au sondage Mes contributions financières à des projets libres s’élèvent à…. Évalué à 7. Dernière modification le 09 février 2019 à 14:49.

    J'ai commencé en 2007 à faire des dons avec Wikipédia et une adhésion à l'April.

    Aujourd'hui, plus de 10 plus tard, mes revenus ont augmentés et mes plus grandes contributions financières sont 2000 € chaque année à Framasoft (car déduction) et 3000 € à ZeMarmotte/GIMP.

    Je contribue avec mon temps (comme la rédaction de dépêches libres et développements sur des outils libres, coup de main install party). Mais aussi financièrement.

    Vive le libre, soutenons le 😃

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Cabinet comptable compatible avec le Libre

    Posté par  (site web personnel) . En réponse au journal Devenir un indépendant libre. Évalué à 4.

    La dernière fois que je me suis intéressé à OpenConcerto, j'en avais conclu deux points :

    1. Le module de Paye n'est pas libre contrairement à ce que la description du logiciel laisse penser sur de nombreux sites Web. Est-ce de la désinformation volontaire ? Bien que OpenConcerto soit 100% libre (open source), cela ne concerne pas forcément les modules additionnels.

    2. De plus, ce n'est pas un logiciel communautaire car pas d'accès aux commits intermédiaires entre deux versions, et rien ne semble être fait pour bien accueillir des contributeurs externes.

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: N95

    Posté par  (site web personnel) . En réponse à la dépêche Systèmes d’exploitation pour téléphones — partie 1 : premières initiatives ☎😍. Évalué à 2.

    Oui, le N95 était un téléphone avant-gardiste, merci pour la précision.

    J’ai l’impression que tu proposes de mentionner dans la dépêche que le N95 peut être considéré comme le premier smartphone, et qu’il utilisait une version non-libre de Symbian. Ce qui m’embête, c’est que le sujet de la dépêche sont les systèmes d’exploitation (plus ou moins) libres pour n’importe quel type de téléphone GSM (classique ou smartphone). Donc, on ne traite pas uniquement des smartphones. Et on mentionne les systèmes d’exploitation non-libres uniquement si cela permet de mieux comprendre la dépêche. D’ailleurs, je ne vois pas comment faire référence au N95 tout en apportant une plus-value à la dépêche…

    Néanmoins, n’hésite pas à proposer ton idée d’amélioration sur le dépôt Git de ton choix :

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Palm webOS

    Posté par  (site web personnel) . En réponse à la dépêche Systèmes d’exploitation pour téléphones — partie 1 : premières initiatives ☎😍. Évalué à 2.

    Merci nathanaelh pour ton témoignage.

    Quels étaient les trois modèles de téléphones que tu as eu ? Je te pose la question car j'ai l'impression que tes téléphones étaient sous "Palm OS" et non "Palm webOS"

    Est-ce que cette dépêche t'a donné envie de tester LuneOS ?

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)

  • [^] # Re: Et Eelo ?

    Posté par  (site web personnel) . En réponse à la dépêche Systèmes d’exploitation pour téléphones — partie 1 : premières initiatives ☎😍. Évalué à 4.

    Merci de nous donner un coup de main sur la partie Android (en cours de rédaction) dont Eelo /e/ est présenté :

    https://linuxfr.org/news/systemes-d-exploitation-pour-telephones-partie-3-android

    Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)