Tags
Tag: accesseur
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: annotations-de-type
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Tag: arbre-de-décision
Posts / Le machine learning, comment ça marche ?
Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?
Tag: architecture
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: argparse
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: assertion
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: ast
Posts / AST pour Python
Si vous voulez récupérer un Abstract Syntax Tree d’un programme Python, vous avez le module ast de Python : https://docs.python.org/3/library/ast.html https://greentreesnakes.readthedocs.io/en/latest/ Mais si vous voulez toutes les informations du code (les commentaires par exemple), il faut d’autres outils plus complets, comme RedBaron : https://redbaron.readthedocs.io/en/latest/. De là à faire des modifications en automatique de votre code Python, il n’y a qu’un pas.
Tag: astral
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: async
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: asyncio
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: automatisation
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: autopep8
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: await
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: base-de-données
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: bio
Posts / Du bon pain maison en moins de 10 minutes !
Vous aimez le pain, mais pas le dur travail du boulanger ? Vous voulez manger du pain bio à moins cher que le pain de supermarché ? Vous n’avez pas de temps libre pour faire du pain ? Voici la solution ! Un pain fait en 10 minutes ! Tout d’abord, ceci est le premier article hors-série. Il ne traite pas de technologie, mais de cuisine !
Tag: black
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: bonne-pratique
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: booléen
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: break
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: bureautique
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: c
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Posts / C de l’art
Oui il est possible de faire de l’art en programmant. En voici un exemple, un joli code source permet de générer un donut animé : k;double sin() ,cos();main(){float A= 0,B=0,i,j,z[1760];char b[ 1760];printf("\x1b[2J");for(;; ){memset(b,32,1760);memset(z,0,7040) ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28 >i;i+=0.02){float c=sin(i),d=cos(j),e= sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c* h*e+f*g+5),l=cos (i),m=cos(B),n=s\ in(B),t=c*h*g-f* e;int x=40+30*D* (l*h*m-t*n),y= 12+15*D*(l*h*n +t*m),o=x+80*y, N=8*((f*e-c*d*g )*m-c*d*e-f*g-l *d*n);if(22>y&& y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]= ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/ printf("\x1b[H");for(k=0;1761>k;k++) putchar(k%80?b[k]:10);A+=0.04;B+= 0.02;}}/*****####*******!!=;:~ ~::==!!!**********!!!==::- .,~~;;;========;;;:~-. ..,--------,*/ Et voici le résultat à l’exécution sur mon PC : Donut en console Si on ajoute de la coloration syntaxique au code source, cela donne :
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Posts / Vous programmez en C ?
Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).
Tag: c++
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Tag: c-embarqué
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Posts / Vous programmez en C ?
Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).
Tag: cache
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.
Tag: chaîne-de-caractères
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: classe
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: co-routine
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: commentaire
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: conteneur
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Tag: continue
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: core-developer
Posts / Raymond Hettinger
Raymond Hettinger est un core developer (ou core dev) de Python. C’est-à-dire qu’il peut changer (committer) le fonctionnement du langage, et ce depuis des dizaines d’années ! Il est aussi formateur en Python, et donne plein de conférences. Je vous conseille de voir toutes les vidéos qu’il a faites, vous y apprendrez forcément quelque chose. Voici quelques-unes de ses vidéos : Beyond PEP8 Transforming code into beautiful, idiomatic Python (attention, c’est du Python 2) Dataclasses: The code generator to end all code generators Modern Python Dictionaries Super considered super Being a Core Developer in Python Et comme Raymond Hettinger le dit :
Tag: couverture
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Tag: css
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Changez l’aspect d’un site : exemple de Wikipédia
J’ai la chance d’avoir un grand écran de PC avec beaucoup de pixels. Mais quand je vois Wikipédia, cela donne : Avant Comme vous pouvez le constater, les lignes de texte sont interminables. À la fin d’une ligne, l’œil cherche avec difficulté où est le début de la ligne suivante. Et les titres sont difficiles à voir. Mon idée n’est pas de rendre Wikipédia jolie, je ne suis pas graphiste.
Posts / C de CSS
Si vous voulez savoir ce que signifie le C de CSS, ou si vous avez des doutes sur les priorités des règles CSS, voici une excellente présentation de la chose, et en particulier, gardez sous le coude l’image-résumé de l’article : The “C” in CSS: The Cascade. Cascading
Tag: css-tricks
Posts / C de CSS
Si vous voulez savoir ce que signifie le C de CSS, ou si vous avez des doutes sur les priorités des règles CSS, voici une excellente présentation de la chose, et en particulier, gardez sous le coude l’image-résumé de l’article : The “C” in CSS: The Cascade. Cascading
Tag: csv
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Tag: cursive_re
Posts / Des expressions régulières lisibles !
J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.
Tag: dataclass
Formations / Dataclass en Python
Les dataclass
sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.
Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité
Tag: datetime
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: deep-learning
Posts / Des réseaux de neurones pour colorer des photos noir et blanc
À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.
Tag: descripteur
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: diagramme
Posts / WaveDrom : les waveforms faciles (diagrammes de timing digital)
Si vous faites régulièrement des diagrammes de timing, et que vous prenez du temps à les dessiner, et encore plus de temps à les modifier pour ajouter ou supprimer les informations manquantes, sachez qu’il existe WaveDrom qui fait cela très bien pour nous. C’est un outil gratuit et open-source (licence MIT) : https://github.com/wavedrom/wavedrom. Vous pouvez l’essayer avec l’éditeur en ligne : https://wavedrom.com/editor.html. Afin d’obtenir le diagramme suivant : Diagramme basique de timing Il faut le décrire sous forme textuelle avec une syntaxe particulière.
Tag: dict
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: dictionnaire
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: dictionnaire-en-compréhension
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: django
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: docstring
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: documentation
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Posts / Rédiger de la bonne documentation pour un projet
Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».
Tag: dunder-methods
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: décorateur
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Posts / Les métaclasses de Python
Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).
Tag: encodage
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: environnement-virtuel
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: excel
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Tag: exception
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: expression-régulière
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Des expressions régulières lisibles !
J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.
Tag: extreme-programming
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: f-string
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: fichier
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: fichier-texte
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Tag: fichiers
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: firefox
Posts / Changez l’aspect d’un site : exemple de Wikipédia
J’ai la chance d’avoir un grand écran de PC avec beaucoup de pixels. Mais quand je vois Wikipédia, cela donne : Avant Comme vous pouvez le constater, les lignes de texte sont interminables. À la fin d’une ligne, l’œil cherche avec difficulté où est le début de la ligne suivante. Et les titres sont difficiles à voir. Mon idée n’est pas de rendre Wikipédia jolie, je ne suis pas graphiste.
Tag: flake8
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: flask
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: fonction
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: fonction-variadique
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: for
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: formation
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Formations / Dataclass en Python
Les dataclass
sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.
Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité
Formations / Packages en Python
Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools
/pip
/venv
mais aussi une méthode plus moderne à base de pyproject.toml
avec Poetry
.
Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Formations / Python et XML
Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).
Découvrez comment Python permet de manipuler simplement les fichiers XML.
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Formations / Communication réseau en Python
Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.
Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Posts / Je publie sur LinkedIn
Je passe à LinkedIn LinkedIn permet de se créer une communauté. Je me suis donc lancé à publier sur LinkedIn. Et je ne publie presque plus ici. Vous pourrez trouver tous mes posts en vous abonnant à mon contenu. Mon profil est directement accessible ici : https://www.linkedin.com/in/vpoulailleau/. J’essaye de publier au moins deux posts par semaine, majoritairement sur du Python. Je vous attends là-bas avec impatience. N’hésitez-pas à commenter les posts, l’interaction est enrichissante.
Posts / Simple is better than complex
Introduction Je vois passer un post sur LinkedIn qui dit : faites le code le plus simple pour afficher : * ** *** **** ***** **** *** ** * Spoiler : ma solution est à la fin et aussi en image. Parmi les réponses que les lecteurs ont fournies (oui, elles ont réellement été proposées), en voici quelques-unes. Solution intuitive pour les débutants 1 2 3 4 for i in range(6): print('*' * i) for i in range(4, 0, -1): print('*' * i) Autre solution moins intuitive, mais compréhensible par les débutants 1 2 3 4 5 for i in range(10): if i <= 5: print('*' * i) else: print('*' * (10 - i)) Solution de la personne payée au nombre de caractères 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def print_row(n): print("* " * n) def print_top_half(n): for row in range(1, n + 1): print_row(row) def print_bottom_half(n): for row in range(n - 1, 0, -1): print_row(row) def print_triangle(n): print_top_half(n) print_bottom_half(n) triangle_height = 5 print_triangle(triangle_height) Solution sans if 1 2 3 4 5 6 def pyramid(height): for num in range(1, 2 * height + 1): print('*' * min(num, 2 * height - num)) pyramid(5) Solution logique, mais difficile à lire au premier coup d’œil 1 print(*(("* " * x) for x in range(1, 5)), *(("* " * x) for x in range(5, 0, -1)), sep='\n') Solution rusée, mais difficile à lire au premier coup d’œil 1 2 3 from itertools import chain print(*(("* " * x) for x in chain(range(1, 5), range(5, 0, -1))), sep='\n') Un peu dans la même idée 1 2 3 4 5 6 7 8 def print_pattern(): counts = list(range(1,6)) # [1, 2, 3, 4, 5] counts += list(range(4,0,-1)) # [1, 2, 3, 4, 5] + [4, 3, 2, 1] strs = list(map(lambda c: print("*" * c), counts)) print("\n".
Posts / Certifié en Python avec une note de 1000/1000
Certification API Society J’ai eu une note de 1000/1000 à une certification Python. Pour tout dire, mon objectif était d’avoir le niveau « Instructeur », ce qui m’autorise à animer des formations préparant à cette certification. Je parle de https://api-society.com/fr/certifications/technologies-numeriques/developpement-logiciel/fondamentaux-python, certification reconnue par l’état (France Compétences : https://www.francecompetences.fr/recherche/rs/6301/). Les objectifs sont d’attester que vous maîtrisez les bases de Python (types de données basiques, if et boucles, fonctions, modules, paquets, programmation orientée objet, et un peu de la bibliothèque standard).
Posts / Unicode, c'est simple sauf quand c'est compliqué
Unicode, le problème Unicode, c’est simple sauf quand c’est compliqué ! Oui, le texte « Python est génial » n’est pas le même que « Python est génial ». Pourtant il s’affiche pareil ! 1 2 3 4 5 6 7 8 9 10 11 from unicodedata import name, normalize texte1 = "Python est génial" texte2 = "Python est génial" print(texte1 == texte2) # False, WTF! print(texte1.encode("utf-8")) # b'Python est g\xc3\xa9nial' print(texte2.
Posts / TDD et Python
TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Tag: formatter
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: gestionnaire-de-contexte
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Tag: getter
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: ghz
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.
Tag: git
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Posts / Première contribution aux logiciels libres
J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.
Tag: github
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Posts / Première contribution aux logiciels libres
J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.
Posts / Des messages d’erreur ou de debug en Python
Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.
Tag: glob
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: graphique
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Tag: guido-van-rossum
Posts / On parle de moi dans un podcast américain sur Python
Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).
Tag: générateur
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Tag: how-to
Posts / Rédiger de la bonne documentation pour un projet
Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».
Tag: html
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Tag: http
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: héritage
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: if
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: indexation
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: informatique-embarquée
Posts / Vous programmez en C ?
Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).
Tag: instance
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: interface-homme-machine
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: isort
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: iter
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Tag: itérable
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Tag: itérateur
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Tag: java
Posts / TDD et Python
TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Tag: javascript
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Tag: journal-dexécution
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Tag: json
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: lambda
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: libreoffice
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: linkedin
Posts / Je publie sur LinkedIn
Je passe à LinkedIn LinkedIn permet de se créer une communauté. Je me suis donc lancé à publier sur LinkedIn. Et je ne publie presque plus ici. Vous pourrez trouver tous mes posts en vous abonnant à mon contenu. Mon profil est directement accessible ici : https://www.linkedin.com/in/vpoulailleau/. J’essaye de publier au moins deux posts par semaine, majoritairement sur du Python. Je vous attends là-bas avec impatience. N’hésitez-pas à commenter les posts, l’interaction est enrichissante.
Tag: linter
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: linux
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: linuxfr
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.
Tag: list
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: liste
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: liste-en-compréhension
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: logging
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Posts / Des messages d’erreur ou de debug en Python
Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.
Tag: logiciels-libres
Posts / Première contribution aux logiciels libres
J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.
Tag: machine-learning
Posts / Des réseaux de neurones pour colorer des photos noir et blanc
À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.
Posts / Le machine learning, comment ça marche ?
Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?
Tag: maison
Posts / Du bon pain maison en moins de 10 minutes !
Vous aimez le pain, mais pas le dur travail du boulanger ? Vous voulez manger du pain bio à moins cher que le pain de supermarché ? Vous n’avez pas de temps libre pour faire du pain ? Voici la solution ! Un pain fait en 10 minutes ! Tout d’abord, ceci est le premier article hors-série. Il ne traite pas de technologie, mais de cuisine !
Tag: markdown
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Tag: math
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: meetup
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: microcontrôleur
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: module
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: modèle-objet
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: multi-threading
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Formations / Communication réseau en Python
Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.
Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.
Tag: multiprocessing
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: métaclasse
Posts / Les métaclasses de Python
Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).
Tag: méthode
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: méthodes-agiles
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: n-uplet
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: next
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Tag: nose
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: openpyxl
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Tag: opérateur
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: orienté-objet
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: os
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: package
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: padpo
Posts / Première contribution aux logiciels libres
J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.
Tag: pain
Posts / Du bon pain maison en moins de 10 minutes !
Vous aimez le pain, mais pas le dur travail du boulanger ? Vous voulez manger du pain bio à moins cher que le pain de supermarché ? Vous n’avez pas de temps libre pour faire du pain ? Voici la solution ! Un pain fait en 10 minutes ! Tout d’abord, ceci est le premier article hors-série. Il ne traite pas de technologie, mais de cuisine !
Tag: parallélisation
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: pathlib
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: pep
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Posts / Vous programmez en C ?
Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: pep-20
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Posts / Simple is better than complex
Introduction Je vois passer un post sur LinkedIn qui dit : faites le code le plus simple pour afficher : * ** *** **** ***** **** *** ** * Spoiler : ma solution est à la fin et aussi en image. Parmi les réponses que les lecteurs ont fournies (oui, elles ont réellement été proposées), en voici quelques-unes. Solution intuitive pour les débutants 1 2 3 4 for i in range(6): print('*' * i) for i in range(4, 0, -1): print('*' * i) Autre solution moins intuitive, mais compréhensible par les débutants 1 2 3 4 5 for i in range(10): if i <= 5: print('*' * i) else: print('*' * (10 - i)) Solution de la personne payée au nombre de caractères 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def print_row(n): print("* " * n) def print_top_half(n): for row in range(1, n + 1): print_row(row) def print_bottom_half(n): for row in range(n - 1, 0, -1): print_row(row) def print_triangle(n): print_top_half(n) print_bottom_half(n) triangle_height = 5 print_triangle(triangle_height) Solution sans if 1 2 3 4 5 6 def pyramid(height): for num in range(1, 2 * height + 1): print('*' * min(num, 2 * height - num)) pyramid(5) Solution logique, mais difficile à lire au premier coup d’œil 1 print(*(("* " * x) for x in range(1, 5)), *(("* " * x) for x in range(5, 0, -1)), sep='\n') Solution rusée, mais difficile à lire au premier coup d’œil 1 2 3 from itertools import chain print(*(("* " * x) for x in chain(range(1, 5), range(5, 0, -1))), sep='\n') Un peu dans la même idée 1 2 3 4 5 6 7 8 def print_pattern(): counts = list(range(1,6)) # [1, 2, 3, 4, 5] counts += list(range(4,0,-1)) # [1, 2, 3, 4, 5] + [4, 3, 2, 1] strs = list(map(lambda c: print("*" * c), counts)) print("\n".
Posts / TDD et Python
TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Posts / Vous programmez en C ?
Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: pep-343
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Tag: pep-517
Formations / Packages en Python
Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools
/pip
/venv
mais aussi une méthode plus moderne à base de pyproject.toml
avec Poetry
.
Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.
Tag: pep-518
Formations / Packages en Python
Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools
/pip
/venv
mais aussi une méthode plus moderne à base de pyproject.toml
avec Poetry
.
Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.
Tag: pep-597
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Tag: pep-8
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: perceptron
Posts / Le machine learning, comment ça marche ?
Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?
Tag: pillow
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Tag: pip
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: podcast
Posts / On parle de moi dans un podcast américain sur Python
Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).
Posts / Python Bytes
Connaissez-vous https://pythonbytes.fm/ ? C’est un podcast génial, américain, hebdomadaire, d’une quinzaine de minutes. Le thème est l’actualité autour de Python, c’est un excellent moyen de se tenir au courant. Pour ceux qui ont des difficultés à écouter de l’américain, ils fournissent des prises de notes par épisodes, par exemple pour l’épisode 101 : https://pythonbytes.fm/episodes/show/101/nobel-prize-awarded-to-a-python-convert. En bref, à consommer sans modération.
Posts / Talk Python To Me
Talk Python To Me est un podcast américain sur Python. Michael Kennedy interviewe différentes personnes de la communauté Python. Le niveau de qualité est très bon. Les épisodes durent 45 minutes à une heure. https://talkpython.fm/ https://talkpython.fm/episodes/all
Tag: poo
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: portée
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: pratique
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Formations / Dataclass en Python
Les dataclass
sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.
Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité
Formations / Packages en Python
Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools
/pip
/venv
mais aussi une méthode plus moderne à base de pyproject.toml
avec Poetry
.
Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Formations / Python et XML
Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).
Découvrez comment Python permet de manipuler simplement les fichiers XML.
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Formations / Communication réseau en Python
Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.
Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.
Tag: processeur
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.
Tag: programmation-par-contrat
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Tag: property
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: pycharm
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: pycoders-weekly
Posts / Des messages d’erreur ou de debug en Python
Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.
Tag: pycon
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Tag: pydocstyle
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: pylama
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: pylint
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: pytest
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: python
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Formations / Dataclass en Python
Les dataclass
sont une des fonctionnalités majeures apparues avec Python 3.7. Elles permettent l’écriture rapide et efficace de classes.
Vous apprendrez à écrire moins de code (et donc moins de tests ou d’efforts de maintenance), tout en améliorant la lisibilité
Formations / Packages en Python
Partagez votre travail avec vos collègues et/ou la communauté en apprenant à utiliser et créer des packages rendant le code distribuable et installable. Vous verrez l’ancienne méthode avec setuptools
/pip
/venv
mais aussi une méthode plus moderne à base de pyproject.toml
avec Poetry
.
Lors de cette formation, vous créerez des environnements virtuels pour y installer vos propres packages.
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Formations / Python et XML
Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).
Découvrez comment Python permet de manipuler simplement les fichiers XML.
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Formations / Communication réseau en Python
Depuis l’apparition d’Internet, la communication réseau est au cœur de notre quotidien.
Découvrez comment exploiter les protocoles de communication réseau les plus classiques (IP, TCP, UDP) avec les sockets et le parallélisme (threads…), le tout en Python.
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Posts / Je publie sur LinkedIn
Je passe à LinkedIn LinkedIn permet de se créer une communauté. Je me suis donc lancé à publier sur LinkedIn. Et je ne publie presque plus ici. Vous pourrez trouver tous mes posts en vous abonnant à mon contenu. Mon profil est directement accessible ici : https://www.linkedin.com/in/vpoulailleau/. J’essaye de publier au moins deux posts par semaine, majoritairement sur du Python. Je vous attends là-bas avec impatience. N’hésitez-pas à commenter les posts, l’interaction est enrichissante.
Posts / Simple is better than complex
Introduction Je vois passer un post sur LinkedIn qui dit : faites le code le plus simple pour afficher : * ** *** **** ***** **** *** ** * Spoiler : ma solution est à la fin et aussi en image. Parmi les réponses que les lecteurs ont fournies (oui, elles ont réellement été proposées), en voici quelques-unes. Solution intuitive pour les débutants 1 2 3 4 for i in range(6): print('*' * i) for i in range(4, 0, -1): print('*' * i) Autre solution moins intuitive, mais compréhensible par les débutants 1 2 3 4 5 for i in range(10): if i <= 5: print('*' * i) else: print('*' * (10 - i)) Solution de la personne payée au nombre de caractères 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 def print_row(n): print("* " * n) def print_top_half(n): for row in range(1, n + 1): print_row(row) def print_bottom_half(n): for row in range(n - 1, 0, -1): print_row(row) def print_triangle(n): print_top_half(n) print_bottom_half(n) triangle_height = 5 print_triangle(triangle_height) Solution sans if 1 2 3 4 5 6 def pyramid(height): for num in range(1, 2 * height + 1): print('*' * min(num, 2 * height - num)) pyramid(5) Solution logique, mais difficile à lire au premier coup d’œil 1 print(*(("* " * x) for x in range(1, 5)), *(("* " * x) for x in range(5, 0, -1)), sep='\n') Solution rusée, mais difficile à lire au premier coup d’œil 1 2 3 from itertools import chain print(*(("* " * x) for x in chain(range(1, 5), range(5, 0, -1))), sep='\n') Un peu dans la même idée 1 2 3 4 5 6 7 8 def print_pattern(): counts = list(range(1,6)) # [1, 2, 3, 4, 5] counts += list(range(4,0,-1)) # [1, 2, 3, 4, 5] + [4, 3, 2, 1] strs = list(map(lambda c: print("*" * c), counts)) print("\n".
Posts / Certifié en Python avec une note de 1000/1000
Certification API Society J’ai eu une note de 1000/1000 à une certification Python. Pour tout dire, mon objectif était d’avoir le niveau « Instructeur », ce qui m’autorise à animer des formations préparant à cette certification. Je parle de https://api-society.com/fr/certifications/technologies-numeriques/developpement-logiciel/fondamentaux-python, certification reconnue par l’état (France Compétences : https://www.francecompetences.fr/recherche/rs/6301/). Les objectifs sont d’attester que vous maîtrisez les bases de Python (types de données basiques, if et boucles, fonctions, modules, paquets, programmation orientée objet, et un peu de la bibliothèque standard).
Posts / Unicode, c'est simple sauf quand c'est compliqué
Unicode, le problème Unicode, c’est simple sauf quand c’est compliqué ! Oui, le texte « Python est génial » n’est pas le même que « Python est génial ». Pourtant il s’affiche pareil ! 1 2 3 4 5 6 7 8 9 10 11 from unicodedata import name, normalize texte1 = "Python est génial" texte2 = "Python est génial" print(texte1 == texte2) # False, WTF! print(texte1.encode("utf-8")) # b'Python est g\xc3\xa9nial' print(texte2.
Posts / TDD et Python
TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Posts / Vous programmez en C ?
Si vous pensez bien programmer en C, ne lisez surtout pas l’article suivant : https://ache.one/articles/bizarreries-du-langage-c Vous risqueriez de comprendre des syntaxes valides comme : 1 printf("%d", 2[tab]); Ou encore : 1 printf("%d", ((int[]){5, 4, 5, 2, 1})[i]); Ou également : 1 2 3 4 void foo(char tab[printf("bar")]) { printf("%zu", sizeof tab); } Et même : 1 printf("%d", a ?5??((tab):>:0); J’entends déjà dire que le C est compliqué, mais personne ne vous oblige à écrire du code compliqué (cela va même à l’encontre de la « philosophie » de Python qui dit entre autres « simple est mieux que complexe »).
Posts / On parle de moi dans un podcast américain sur Python
Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).
Posts / Première contribution aux logiciels libres
J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Posts / Des messages d’erreur ou de debug en Python
Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.
Posts / Rédiger de la bonne documentation pour un projet
Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».
Posts / Des réseaux de neurones pour colorer des photos noir et blanc
À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.
Posts / Le machine learning, comment ça marche ?
Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Posts / Python Bytes
Connaissez-vous https://pythonbytes.fm/ ? C’est un podcast génial, américain, hebdomadaire, d’une quinzaine de minutes. Le thème est l’actualité autour de Python, c’est un excellent moyen de se tenir au courant. Pour ceux qui ont des difficultés à écouter de l’américain, ils fournissent des prises de notes par épisodes, par exemple pour l’épisode 101 : https://pythonbytes.fm/episodes/show/101/nobel-prize-awarded-to-a-python-convert. En bref, à consommer sans modération.
Posts / Des expressions régulières lisibles !
J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.
Posts / AST pour Python
Si vous voulez récupérer un Abstract Syntax Tree d’un programme Python, vous avez le module ast de Python : https://docs.python.org/3/library/ast.html https://greentreesnakes.readthedocs.io/en/latest/ Mais si vous voulez toutes les informations du code (les commentaires par exemple), il faut d’autres outils plus complets, comme RedBaron : https://redbaron.readthedocs.io/en/latest/. De là à faire des modifications en automatique de votre code Python, il n’y a qu’un pas.
Posts / Les métaclasses de Python
Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Posts / Raymond Hettinger
Raymond Hettinger est un core developer (ou core dev) de Python. C’est-à-dire qu’il peut changer (committer) le fonctionnement du langage, et ce depuis des dizaines d’années ! Il est aussi formateur en Python, et donne plein de conférences. Je vous conseille de voir toutes les vidéos qu’il a faites, vous y apprendrez forcément quelque chose. Voici quelques-unes de ses vidéos : Beyond PEP8 Transforming code into beautiful, idiomatic Python (attention, c’est du Python 2) Dataclasses: The code generator to end all code generators Modern Python Dictionaries Super considered super Being a Core Developer in Python Et comme Raymond Hettinger le dit :
Posts / Talk Python To Me
Talk Python To Me est un podcast américain sur Python. Michael Kennedy interviewe différentes personnes de la communauté Python. Le niveau de qualité est très bon. Les épisodes durent 45 minutes à une heure. https://talkpython.fm/ https://talkpython.fm/episodes/all
Tag: python-bytes
Posts / On parle de moi dans un podcast américain sur Python
Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Posts / Des réseaux de neurones pour colorer des photos noir et blanc
À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.
Posts / Python Bytes
Connaissez-vous https://pythonbytes.fm/ ? C’est un podcast génial, américain, hebdomadaire, d’une quinzaine de minutes. Le thème est l’actualité autour de Python, c’est un excellent moyen de se tenir au courant. Pour ceux qui ont des difficultés à écouter de l’américain, ils fournissent des prises de notes par épisodes, par exemple pour l’épisode 101 : https://pythonbytes.fm/episodes/show/101/nobel-prize-awarded-to-a-python-convert. En bref, à consommer sans modération.
Posts / Des expressions régulières lisibles !
J’entends souvent que les expressions régulières ne sont pas lisibles, et c’est effectivement un de leurs gros défauts. Certains disent même qu’elles sont du code qu’on écrit une fois et qu’on ne touche plus ensuite. Mais elles sont tellement puissantes qu’il est difficile de passer à côté. Pour ceux qui veulent des expressions régulières lisibles, en Python, il existe cursive_re (https://github.com/Bogdanp/cursive_re), un générateur d’expressions régulières, que l’on peut combiner ensuite avec le module re de Python.
Tag: ram
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.
Tag: random
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: raymond-hettinger
Posts / Gestionnaires de contexte en Python
Pourquoi cette présentation ? Le but des gestionnaires de contexte est d’écrire moins de code, de faire moins de tests, de faciliter la maintenance et l’évolutivité. Ils s’appliquent à un type d’actions récurrentes décrites ci-dessous. Vous trouverez un exercice corrigé à la fin de cette présentation. Théorie Pourquoi les gestionnaires de contexte ? Les context managers ou gestionnaires de contexte sont apparus dans Python 2.5 avec la PEP 343 il y a une quinzaine d’années.
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Posts / Raymond Hettinger
Raymond Hettinger est un core developer (ou core dev) de Python. C’est-à-dire qu’il peut changer (committer) le fonctionnement du langage, et ce depuis des dizaines d’années ! Il est aussi formateur en Python, et donne plein de conférences. Je vous conseille de voir toutes les vidéos qu’il a faites, vous y apprendrez forcément quelque chose. Voici quelques-unes de ses vidéos : Beyond PEP8 Transforming code into beautiful, idiomatic Python (attention, c’est du Python 2) Dataclasses: The code generator to end all code generators Modern Python Dictionaries Super considered super Being a Core Developer in Python Et comme Raymond Hettinger le dit :
Tag: real-python
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Posts / Les métaclasses de Python
Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: recherche
Formations / Expressions régulières en Python
Les programmeurs manipulent énormément de fichiers textes (code source de leur logiciel, données textuelles issues du web, fichiers CSV, journaux d’exécution…). Les expressions régulières permettent d’accélérer le traitement de ces textes tant au niveau de la recherche d’information que dans l’édition.
Vous gagnerez beaucoup de temps dans la gestion du texte, vous permettant d’ajouter plus de fonctionnalités à votre logiciel.
Tag: redbaron
Posts / AST pour Python
Si vous voulez récupérer un Abstract Syntax Tree d’un programme Python, vous avez le module ast de Python : https://docs.python.org/3/library/ast.html https://greentreesnakes.readthedocs.io/en/latest/ Mais si vous voulez toutes les informations du code (les commentaires par exemple), il faut d’autres outils plus complets, comme RedBaron : https://redbaron.readthedocs.io/en/latest/. De là à faire des modifications en automatique de votre code Python, il n’y a qu’un pas.
Tag: rs-232
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: ruff
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: rust
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: réseau-de-neurones
Posts / Des réseaux de neurones pour colorer des photos noir et blanc
À quoi peuvent servir les gros mots comme réseaux de neurones, machine learning, deep learning ? Par exemple à mettre de la couleur dans des photos noir et blanc ou des dessins noir et blanc. Il « suffit » d’apprendre à l’ordinateur à colorier. Voici le projet DeOldify en Python qui fait ce genre de restauration de photos. Je l’ai découvert par https://pythonbytes.fm/episodes/show/105/colorizing-and-restoring-old-images-with-deep-learning.
Tag: scrum
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: selenium
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: set
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: set-en-compréhension
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: setter
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Tag: shutil
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: simplelogging
Formations / Qualité de logiciel Python
Votre application Python prend de l’ampleur. Maîtrisez la qualité de vos développements avec l’aide d’outils précieux (linters et formatters) vous guidant dans les bonnes pratiques. Apprenez à gérer les erreurs, avec les exceptions et la génération de logs (journaux).
Cette formation met l’accent sur la qualité de code pour éviter la dette technique.
Posts / Des messages d’erreur ou de debug en Python
Je suis un des 40 000 abonnés de https://pycoders.com/, une newsletter hebdomadaire de l’écosystème Python. Au moment de Noël, un nouvel email m’arrive : https://pycoders.com/issues/348. Quelle surprise de voir un de mes projets open-source mentionné dans cette newsletter : https://simplelogging.readthedocs.io/en/latest/readme.html. Ce petit projet a pour but de faciliter l’écriture de messages de debug ou d’erreur, le slogan étant « Logging made simple, no excuse for any debug print call. » et est hébergé sur https://github.
Tag: ssd
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.
Tag: stackoverflow
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Tag: statistics
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: steering-council
Posts / On parle de moi dans un podcast américain sur Python
Oui, c’est un titre racoleur… J’apparais dans l’épisode 160 de Python Bytes Podcast, un podcast que j’écoute régulièrement pour me tenir au courant des nouvelles de l’écosystème Python. J’ai prévenu les animateurs du podcast que Guido van Rossum, le créateur de Python, avait décidé de ne plus faire partie du Steering Council, le comité de direction de Python. Je suis cité en tant que source de l’information (oui, c’est tout 😉).
Tag: structure-de-données
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: subprocess
Formations / Parallélisation des calculs en Python
Comment bénéficier de la facilité de Python pour programmer, tout en ayant accès à toute la puissance de votre ordinateur ou serveur.
Découvrez le multi-threading, le multi-processing et les co-routines pour booster les performances de votre code.
Tag: surcharge
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Formations / Formation Python avancé
Besoin de créer une application conséquente ?
Cette formation permet de réaliser le développement dans un temps réduit en facilitant la maintenance et l’évolutivité du code grâce aux diverses fonctionnalités du langage Python.
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: syntaxe
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: système-dexploitation
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: tableau-de-bord
Formations / Manipulation de fichiers Excel en Python
Excel est omniprésent en entreprise. Découvrez comment Python permet de manipuler des fichiers Excel (*.xlsx) en automatique.
Extrayez des données, générez des rapports, des tableaux de bord. Gagnez du temps libre pour vos autres activités.
Tag: talk-python-to-me
Posts / Le machine learning, comment ça marche ?
Un ordinateur ça peut apprendre ? Oui, ça fait longtemps que les codes postaux des lettres ne sont plus lus par des humains dans les gros centres de tri, un ordinateur a appris à lire. Le machine learning, c’est facile, il suffit de faire un perceptron, ou une régression, ou un arbre de décision… Plein de gros mots réalisables en quelques lignes de Python. Mais en vrai, comment ça marche ?
Posts / Talk Python To Me
Talk Python To Me est un podcast américain sur Python. Michael Kennedy interviewe différentes personnes de la communauté Python. Le niveau de qualité est très bon. Les épisodes durent 45 minutes à une heure. https://talkpython.fm/ https://talkpython.fm/episodes/all
Tag: tdd
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Posts / TDD et Python
TDD, Java, Python Python, c’est mieux que Java, non ? En vrai, ce qui compte c’est qu’une entreprise soit efficace. Libre à elle de choisir ce qu’elle pense être le mieux. Mais j’ai mon avis sur la question 😉 Et là n’est pas l’objet de ce post, que j’ai écrit après avoir visionné https://m.youtube.com/watch?v=yiCpfd-kz3g C’est une vidéo où Michaël Azerhad essaie de nous montrer comment il est possible de coder plus rapidement avec TDD.
Tag: test
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: test-de-validation
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Tag: test-dintégration
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Tag: test-driven-development
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Tag: test-unitaire
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Posts / La conception de www.colorimo.fr
Pourquoi cette présentation ? Ma grande fille, qui vient tout juste de fêter ses 6 ans, s’est lancée dans l’apprentissage de la lecture. Voyant ses difficultés à lire des mots compliqués, j’ai créé un site internet pour aider à la découverte de la lecture. Voici quelques étapes de la conception de www.colorimo.fr. Le concept Sur www.colorimo.fr, un code couleur aide les lecteurs en herbe à déchiffrer les mots. Par exemple, « doigts » ne se lit pas « dohiguetse » mais tout simplement « doi », car « oigts » est en noir, comme tous les sons « oi ».
Tag: tim-peters
Posts / Les métaclasses de Python
Pour se rappeler de comment fonctionnent les métaclasses de Python, voici un bon article : https://realpython.com/python-metaclasses/. Attention toutefois, ils citent Tim Peters l’auteur de la PEP 20 (Zen of Python), la philosophie de Python : Metaclasses are deeper magic than 99% of users should ever worry about. If you wonder whether you need them, you don’t (the people who actually need them know with certainty that they need them, and don’t need an explanation about why).
Tag: tiobe
Posts / Python, le deuxième langage le plus utilisé
Pour la première fois en presque 20 ans, Python devient le deuxième langage de programmation selon l’index TIOBE, un index que beaucoup considèrent comme majeur. Python détrône le Java, et est derrière le langage C, massivement utilisé dans l’embarqué. Le succès de Python a plusieurs origines : C’est un langage facile d’accès : avec peu de notions il est déjà possible de programmer. Python a mis dès le départ l’accent sur la lisibilité.
Tag: tox
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: traduction
Posts / Première contribution aux logiciels libres
J’ai animé un atelier pour aider des étudiants à faire leur première contribution aux logiciels libres sans avoir le besoin d’être expert en codage. L’heure est au bilan. Quoi ? Atelier « première contribution au logiciel libre » (2 ateliers indépendants de 4 heures chacun) Découverte des logiciels libres Pas besoin d’être un expert pour contribuer Participation à la traduction en français de la documentation officielle de Python python/python-docs-fr et docs.
Tag: trey-hunner
Posts / Itérateur, itérable, conteneur, générateur, en Python
Je vois régulièrement des confusions entre les termes itérateurs, itérables, conteneurs, générateurs. Voici le schéma à retenir : Vision globale de l’itération Commençons par la notion d’itérable. Un itérable est quelque chose que l’on peut parcourir avec une boucle for : 1 2 for un_élément in un_itérable: faire_quelque_chose_avec(un_élément) Un conteneur est quelque chose qui contient des valeurs (une liste, un dictionnaire, un set…). Un conteneur est généralement itérable (en tout cas, les listes, dictionnaires et sets le sont).
Posts / Utilisez pathlib au lieu d’os.path ou glob
Régulièrement, en programmant en Python, nous sommes amenés à utiliser des chemins de fichiers, de dossiers, et à les manipuler. Python fournit de quoi les manipuler simplement. Contrairement à de la vieille documentation (et sauf raisons valables), vous n’êtes censés utiliser que la nouvelle API fournie par pathlib. À noter aussi que vous n’avez plus à vous préoccuper des slashs ou anti-slashs selon les systèmes d’exploitation, mettez ce que vous voulez, pathlib s’occupe du reste !
Tag: tuple
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: tutoriel
Posts / Rédiger de la bonne documentation pour un projet
Pas facile de rédiger une documentation qui répond à tous les besoins tels que : appréhender les bases du projet, savoir se débrouiller avoir une documentation exhaustive trouver facilement la méthode pour résoudre les problèmes classiques … La réponse à cette problématique est : il ne faut pas une documentation mais des documentations. C’est ce que nous explique Daniele Procida dans sa présentation « What nobody tells you about documentation ».
Tag: typage
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Tag: typage-statique
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Tag: typing
Formations / Annotations de type en Python
Pour améliorer la maintenabilité du logiciel, les annotations de type sont apparues il y a quelques années en Python (en 2014).
Découvrez comment :
- trouver des erreurs de conception
- documenter le code
- améliorer le comportement des IDE pour gagner en productivité
Tag: unicode
Posts / Unicode, c'est simple sauf quand c'est compliqué
Unicode, le problème Unicode, c’est simple sauf quand c’est compliqué ! Oui, le texte « Python est génial » n’est pas le même que « Python est génial ». Pourtant il s’affiche pareil ! 1 2 3 4 5 6 7 8 9 10 11 from unicodedata import name, normalize texte1 = "Python est génial" texte2 = "Python est génial" print(texte1 == texte2) # False, WTF! print(texte1.encode("utf-8")) # b'Python est g\xc3\xa9nial' print(texte2.
Tag: unittest
Formations / Tests d’une application Python
Vous est-il déjà arrivé de livrer un logiciel avec cette fâcheuse pensée à l’esprit : « Prions pour que cela fonctionne ».
Avec 100 % de couverture de test, vous livrerez désormais votre produit en toute confiance !
Révolues les longues périodes de debug/intégration, venez découvrir comment les tests font prodigieusement gagner du temps. Apprenez à écrire des tests !
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: utf-8
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: uv
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: variable
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: venv
Posts / Oubliez flake8, black ou venv, place aux outils de nouvelle génération !
Meetup Python Bordeaux Après quelques années d’absence, le meetup Python Bordeaux reprend vie : https://www.meetup.com/py-bdx/events/300614701/. Pour cette reprise, je me suis proposé pour faire un talk nommé : Oubliez flake8, black ou venv, place aux outils de nouvelle génération ! Le tout devant une cinquantaine de personnes passionnées de Python. J’y montre l’utilité des environnements virtuels, des linters et formateurs de code. Et je présente de nouveaux outils faits par https://astral.
Tag: visual-studio-code
Posts / Testez votre Python
J’imagine que vous testez déjà votre code, mais voici un site qui rafraîchira la mémoire et affinera les détails : https://realpython.com/python-testing/. En bref à lire et à relire, cela ne fait jamais de mal !
Tag: wavedrom
Posts / WaveDrom : les waveforms faciles (diagrammes de timing digital)
Si vous faites régulièrement des diagrammes de timing, et que vous prenez du temps à les dessiner, et encore plus de temps à les modifier pour ajouter ou supprimer les informations manquantes, sachez qu’il existe WaveDrom qui fait cela très bien pour nous. C’est un outil gratuit et open-source (licence MIT) : https://github.com/wavedrom/wavedrom. Vous pouvez l’essayer avec l’éditeur en ligne : https://wavedrom.com/editor.html. Afin d’obtenir le diagramme suivant : Diagramme basique de timing Il faut le décrire sous forme textuelle avec une syntaxe particulière.
Tag: while
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: wikipédia
Posts / Changez l’aspect d’un site : exemple de Wikipédia
J’ai la chance d’avoir un grand écran de PC avec beaucoup de pixels. Mais quand je vois Wikipédia, cela donne : Avant Comme vous pouvez le constater, les lignes de texte sont interminables. À la fin d’une ligne, l’œil cherche avec difficulté où est le début de la ligne suivante. Et les titres sont difficiles à voir. Mon idée n’est pas de rendre Wikipédia jolie, je ne suis pas graphiste.
Tag: word
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: xml
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Formations / Python et XML
Régulièrement décrié, XML est très puissant et a par exemple été choisi pour les nouveaux formats de documents Microsoft Office (*.docx, *.xlsx…).
Découvrez comment Python permet de manipuler simplement les fichiers XML.
Tag: xml-rpc
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: xml.etree.elementtree
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: xmlrpc
Formations / Formation initiale en Python
Python vous octroie de grands pouvoirs en termes de productivité, d’efficacité et de créativité.
Découvrez ce langage de programmation et devenez autonome sur vos premiers projets.
Cette formation ouvre la voie vers un univers exaltant, passionnant et surtout très utile au quotidien.
Tag: xp
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: xsd
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: xslt
Formations / Formation à la demande
Vous avez un besoin de formation particulier, vous aimeriez avoir une formation sur mesure (Python, C, C embarqué…), ou encore vous souhaitez un mix de formations existantes.
Contactez-nous pour l’élaboration de la formation adaptée à votre contexte.
Tag: yapf
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Tag: zeste-de-savoir
Posts / Un code pythonique
Je m’évertue à le répéter, il faut, en Python, écrire du code pythonique, c’est-à-dire qu’il respecte principalement : La PEP 20 : la philosophie de Python (qui peut s’appliquer à beaucoup de langages de programmation), qui dit, entre autres, de ne pas écrire du code moche. Cela peut sembler évident, mais alors pourquoi certains persistent à écrire du code moche ? La PEP 8 : standard de codage de Python, illustré sur https://pep8.
Posts / Le microprocesseur, ce monstre de puissance qui passe son temps à attendre
Et si vous étiez un microprocesseur surpuissant, comme nous en avons tous dans nos PC ? Qu’est-ce que cela donnerait d’essayer d’accéder à une information ? Imaginez ne pas tourner à 4 GHz, mais à 4 Hz, et prenons l’exemple d’un humain capable de taper 4 touches par seconde sur son clavier. À ce rythme, quel temps est pris selon où se trouve l’information : Dans le cache L1 : le post-it sur le bureau, nous avons besoin d’une seconde Dans le cache L2 : la feuille de papier à côté du clavier, environ 5 secondes Dans le cache L3 : le grand poster affiché au mur, environ 20 secondes Dans un autre cœur de calcul : un autre collègue, environ 2 minutes Dans la mémoire RAM : environ 2 minutes Dans un disque dur SSD SATA, le coursier rapide : environ une journée (vous auriez pu recopier Alice au Pays des Merveilles) Dans un disque dur normal, ou par internet : environ 2 mois (vous auriez pu recopier deux fois l’intégrale du Trône de Fer) Dans l’utilisateur du PC (par exemple : « Cliquez OK pour confirmer ») : environ 30 ans Pour lire l’article complet, c’est par ici : https://linuxfr.