Tu nous fais un bel homme de paille. Les gens sérieux qui font du C++ utilisent tous C++11 de nos jours
C'est quoi la définition de sérieux ? Si je prends mon entreprise, où on parle quand même de développeurs qui gagnent leur vie en écrivant du code … on peut penser qu'il s'agit de gens sérieux non ? Et pourtant, côté C++, on est loin du C++11. Je pense même pas que la plupart des mes collègues immédiats connaissent le sigle. Si je leur montre un bout de code avec des lambdas et des templates, ils ne comprendront juste rien. On fait de la carte programmation pour carte à puce, ce qui veut dire beaucoup de C, un peu d'assembleur, un peu de JavaCard, et un peu de Python pour nos tests.
Aujourd'hui un collègue développeur a vu mon écran et m'a demandé pourquoi je regardais un forum sur le jeu de Go. Il n'avait jamais entendu parlé du langage…
On utilise un peu de Python mais le seul qui est installé sur leurs postes, c'est Python 3.1 . Et je ne m'avance pas à utiliser des syntaxes avancées de Python (décorateurs, getter/setters, comprehensions, …) si je ne veux pas les perdre en route.
Je tiens donc à souligner la grande distance qu'il y a entre des passionnés qui suivent les évolutions de l'informatique et des entreprises qui restent avant tout consommatrices d'outils en l'état.
(GCC utilise par défaut C++14, tout comme Clang, et même MSVC utilise du C++ moderne par défaut).
Côté Visual Studio, on utilise la version … 2011 Professional. Et je crois pas que C++11 soit bien supporté dans cette version. :-)
Les nouvelles fonctionnalités apportent non seulement de la lisibilité, mais également des constructions nécessaires pour faire du code performant (comme la sémantique de déplacement). Tu peux refuser de les considérer mais tu passes à côté de l'essentiel quand tu fais du C++.
Il y a pas de refus de ma part. C'est juste que le C++, globalement, je ne l'utilise pas. Et je sais que c'est un langage complexe, dont la complexité ne fait que grandir au cours du temps.
Déjà, j'avais noté que le C++ de mon époque était plus complexe que ce que mon cerveau pouvait encaisser en une seule fois. Je sais que je ne me hasarderai pas à lever une exception en C++ sans relire un bouquin entier sur le sujet tellement il y a de façon de mal le faire.
Alors maintenant, de savoir que la complexité du langage a augmenté (ce que je vois quand je lis des exemples dans quelques journaux, je comprends juste rien), ça me motive pas vraiment à m'y mettre. Après, si j'avais un boulot qui l'exige, je me lancerai à fond dedans avec plaisir.
Paradoxalement, j'ai fait pas mal de Qt/C++. Et je bénis Trolltech/Nokia/Digia/Qt d'avoir rendu le C++ utilisable même par des gens peu experts en la matière.
Hum… Certaines choses comme l'une des règles du Zen of python : « There should be one-- and preferably only one --obvious way to do it ». Ne vont pas vraiment dans ce sens.
Tu pourrais être plus explicite ? Je ne vois pas en quoi le fait de favoriser "une façon évidente et si possible unique" de faire une tâche nuit à l'expressivité du langage. Au contraire, si il y une façon évidente et unique de faire une tâche, tout le monde va utiliser cette façon et l'intention du programmeur sera claire.
J'ai tendance à toujours le comparer à perl qui a la règle parfaitement inverse, le TMTOWTDI.
Cette règle a été écrite (à mon avis) en réaction à Perl qui a en effet le TMTOWTDI. Et côté Perl, je vois ça plus comme un constat qu'il existe mille et une façon de faire une tâche que comme quelque chose que le créateur de langage a volontairement instillé dans la conception.
Hum… Je n'ai pas trop cette sensation (encore une fois je peux me planter). Quand je vois les exemples de serge_sans_paille je ne vois pas de boiller plate justement.
Tu n'a pas réagi sur mon exemple pourtant ? C++, c'est pas le langage où quand on veut faire une classe copiable, il faut définir 4 méthodes différentes ? Mais pas de boiler-plate hein ?
Les constructions nouvelles du langage apportées dans C++11 et consorts sont certainement bien pratiques, mais dans les faits, elles sont très récentes dans l'histoire du langage (si on prend 1985 comme date de première visibilité, on est à 34 ans d'existence alors que le C++11 n'est là que depuis 8 ans). Elles restent encore peu connues, apportent leurs propres problèmes de lisibilité et de compréhension. Côté lisibilité, on repassera. Ça ajoute en plus énormément à la complexité du langage.
J'ai du mal à voir C++ et expressivité dans la même phrase, et Python dans la catégorie "inexpressivité". Pour le reste du commentaire, je suis plutôt d'accord.
J'exprime mon désaccord sur les deux points:
Python est au contraire un langage très expressif, le programmeur peut manifester son intention en très peu de lignes de code. Le boiler-plate code en Python est quasiment inexistant.
A l'opposé, à chaque fois que j'utilise la STL en C++, mes yeux pleurent, je me dis que 120 colonnes pour une ligne, c'est bien peu quand tu veux manipuler une structure un tant soit peu élaborée.
Allez, au hasard, parcourons une map/un dict de string vers des paires de string en Python et en C++ et inversons les paires:
En Python:
# on parcours le dictionnaire, k est la clé, v est la valeurfork,vind.items():# v est une paire, on peut accéder aux deux éléments et les inverserd[k]=(v[1],v[0])
En C++:
// on parcours le dictionnaire/map avec un iterateur, it.first est la clé, it.value est la valeurfor(map<string,pair<string,string>>::iteratorit=d.begin();it!=it.end();it++){// la paire est dans it.second, c'est elle qu'il faut inverserd[it.first]=make_pair(it.second.second,it.second.first);}
En terme d'expressivité et lisibilité, je trouve que la version Python s'en sort beaucoup beaucoup mieux.
Et encore, il aurait été de bon ton d'expliciter l'instanciation de make_pair<> .
Alors, certes, en C++11, on peut faire plus compact en utilisant des auto et surement avec d'autres trucs (lambda ? foreach ?). Mais tout le monde ne les connait pas.
On peut aussi faire bien plus compact en Python mais on tombe sur le même problème: la syntaxe des Python compréhensions est peu connue (par exemple, aucun de mes collègues de travail ne connait): d = { k:(v[1],v[0]) for k,v in d.items()}
M****, je viens de faire un calcul avec mon mot de passe par erreur. Tu crois que Microsoft est déjà au courant ?
Ça me rappelle KDE il y a fort longtemps où je ne sais plus pour quelle situation, tu pouvais te retrouver à copier ton mot de passe dans le presse-papier. Et tu voulais le coller quelque part mais si tu faisais pas attention, tu faisais un click du milieu dans Konqui, qui prenait automatiquement le contenu du presse-papier et essayait de le traiter en tant qu'url et si ça ne passait pas, il lançait une recherche sur google avec. En un clic souris du milieu, tu balançais ton mot de passe sur google. Nice :-)
Et c'était considéré comme une super feature par le développeur :-)
J'en reçois seulement depuis quelques semaines, comme vous.
Détail intéressant, une version de ce SCAM me dit qu'il connait mon mot de passe et affiche dans le mail … mon mot de passe. C'est assez flippant sur le coup.
Il dit aussi qu'il a mis un tracker dans l'email, ça par contre, j'ai vérifié, c'est pas le cas.
Après quelques recherche, j'ai découvert que c'était mon mot de passe linkedin, connu probablement suite à cette fuite (merci au passage à Ihavebeenpowned qui m'a fait découvrir cela).
Evidemment, je suis un geek consciencieux, j'utilise des variantes de mon mot de passe suivant les sites où je vais. Mais ça reste flippant!
Du coup, je me lance dans une campagne de remise à plat de mon mot de passe de référence. Je vais le passer à 16 caractères, et passer la partie variable à deux ou trois lettres…
Le problème, c'est que les gens ne se fient plus aux journalistes…
La plupart des informations sont maintenant véhiculées par les réseaux sociaux, seule la première ligne de l'article est lue, l'émotion est le seul angle d'analyse de ce qui est dit. Si en plus l'information va dans le sens du poil du lecteur, il y a encore moins d'analyse qui est faite.
Pour ne pas s'enfoncer dans une route délétère, on pourrait quand même sauter un jour de temps en temps, genre quand la somme des décimales de la date au carré (jour-mois-année complète) est divisible par 13.
En plus des aspects déjà cité, j'aime bien la pratique d'un art martial pour socialiser. Ca m'a permis de rencontrer des gens très sympas, qui sont en dehors de mon milieu social habituel. Notamment, il y a un bon mélange des classes sociales dans les différents clubs où j'ai pratiqué et ça fait du bien de changer d'horizon. Ca s'applique bien sur à peu près n'importe quelle activité à un prix abordable.
Sinon, je pense que beaucoup d'arts martiaux ne permettent pas vraiment de combattre un adversaire agressif (par exemple, c'est le cas de l'aikido que je pratique pourtant avec grand plaisir) mais ça donne déjà une posture. Le fait de pratiquer la rencontre d'un "agresseur" et d'un défenseur en cours donne une certaine confiance en soi qui fait qu'en cas de situation réelle, on sera légèrement moins stressé. Quelqu'un qui n'a pas peur attire aussi moins l'envie de tabasser: les délinquants préfèrent s'en prendre à des faibles.
J'ai beaucoup de plaisir à pratiquer l'aikido malgré son irréalité martiale. Ce que j'aime bien c'est:
- une petite plongée dans une autre culture, la culture japonaise martiale légèrement médiévale
- la souplesse des mouvements qui m'entretient. On apprend à rouler pour se dégager d'une prise (et non pas à chuter brutalement comme au judo). A chaque fois que j'ai mal au dos, un bon cours d'aikido me remet toutes les vertèbres en place et je me sens bien.
- je trouve les chorégraphies de l'aikido très jolies.
- la connaissance du corps humain est aussi très intéressante. L'être humain vue en tant qu'un ensemble d'aritculation est assez marrant à manipuler.
- j'adore faire joujou avec les armes. Se retrouver en face d'un sabre en bois (bokken) est très impressionnant et réveille tout de suite un mélange de peur et de tension combative. Manipuler le baton en bois est très marrant. Si en plus, ça permet de se défendre un jour, pourquoi pas. En attendant, c'est un peu comme apprendre à jongler.
Cette année, je change de discipline pour quelque chose de plus combatif: le Yoseikan Budo. C'est aussi d'inspiration japonaise, et ça intègre des notions de karaté, judo, boxe, aikido, de lutte et de pratique d'armes. On fait des combats d'armes avec des armes en mousse, on rigole comme des gamins.
Bizarre, le titre parle de travailler en "indépendant" et tu ne parles pas du seul statut qui correspond le mieux à la définition d'un indépendant: la profession libérale.
Contrairement aux autres forme d'entreprenariat que tu cites, tu n'es pas rattaché à une structure, et tu n'es pas obligé de créer une structure d'entreprise juste pour t'héberger toi.
Concrètement, tu ne crées pas d'entreprise avec des statuts, tu n'es pas salarié non plus, c'est ta propre personne qui devient une entreprise avec un SIRET. Tu peux même (c'est fortement déconseillé) mélanger tous tes revenus et tes dépenses privées avec tes revenus pros, la seule obligation étant de possèder un compte dédié à ton activité professionnelle.
En terme d'administratif et de comptabilité, c'est plutôt simple. Tu dois t'affilier à un Association de Gestion Agrée (AGE) qui va vérifier vite fait tes comptes à l'année.
Il n'y a pas de notions de dividendes ou de salaire: tout ce que tu perçois comme revenu professionnel t'appartient. Tu déclares à la fin de l'année un bénéfice qui est taxé il me semble de façon proche d'un dividende.
J'ai exercé sous ce statut pendant une année et j'ai trouvé ça plutôt léger en terme d'administratif, et plutôt rentable en terme de conversion montant facturé / net dans ma poche.
Par contre, tu es un peu livré à toi-même ce qui peut être un peu angoissant vis à vis des administrations. Il faut bien choisir son AGE pour être bien conseillé.
A noter que si tes clients ne te payent pas trop, tu peux être auto-entrepreneur. Mais les montants des rémunérations dans l'informatique dépassaient lorsque j'avais tenté l'aventure les plafond de la micro-entreprise.
Le burn-out emmène vers une dépression, qui elle peut s'installer beaucoup plus durablement que la charge de travail / pression / complications qui ont conduit au burn-out. C'est donc assez sournois, les conséquences persistent longtemps après que les causes aient disparues.
Je parle malheureusement d'expérience…. 2 ans après un burn-out professionnel, je sens que je ne suis plus capable de gérer le niveau de responsabilité professionnelle que je gérai auparavant. Je ne suis pas sur que je pourrai de nouveau le faire dans ma vie.
nous avons eu la chance incroyable ma femme et moi d'avoir autour de nous des formateurs et formatrices expérimentés principalement en la personne de nos parents, grands-parents et de quelques amis proches. Expérimentés mais discrets, nous laissant faire nos propres expériences et nos propres choix et donc quelquefois nos propres erreurs. Suggérant, plutôt que de d'imposer un schéma rigide et définitif du genre : "de mon temps c'était comme ça".
Je crois donc que c'est d'abord le cercle familial et amical proche qui apporte cette "formation".
C'est clairement une chance exceptionnelle que tout le monde n'a pas pour des raisons très très variées.
Et en plus, tous ceux qui lisent ce message viennent d'être tracés par BFM TV, une des incarnations du mal capitaliste. Et oui, l'image de Neo est stocké sur le site de BFM…
C'est vrai que c'est pénible de devoir importer des modules juste pour avoir sous la main la classe pour l'annotation. La première fois que je l'ai fait, ça m'a fait un import circulaire, j'ai cru que j'allais m'arracher les cheveux !
Je te rejoins aussi sur le fait que ça surcharge pas mal les entêtes de fonctions, qui étaient plus facile à lire sans, surtout quand tu as des valeurs par défaut.
Cela dit, malgré ces deux inconvénients, je suis très content de les utiliser. Dès que la base de code grossit, qu'il y a plusieurs développeurs dans l'équipe, dès que le projet prend de l'age, les annotations créent beaucoup de valeur car elles vérifient la cohérence globale de ton programme. Ce que ne font pas les docstring.
Les docstrings ont d'autres inconvénients:
- parfois, elles sont pas là
- parfois, elles sont pas assez précises (elles oublient de préciser le type de retour, …)
- parfois, la fonction a évolué mais le développeur pressé a oublié de la mettre à jour
Mais surtout:
- les docstrings ne vérifient pas le type des données avec lesquelles la fonction est appelée
- les docstrings peuvent contenir une erreur, genre elles disent qu'on peut passer une liste ou un tuple mais en fait, seule une liste fonctionne.
Comme j'essaie de le montrer dans la présentation, les annotations permettent d’attraper pas mal d'erreur et obligent à clarifie son intention.
J'utilise ecosia et lilo. Ils sont-traitent la recherche soit à Bing, soit à Google. Par contre, ils profitent de l'argent récolté pour mener des projets écologiques ou d'économie solidaire.
Il me semble qu'ils filtrent mes coordonnées personelles ce qui limite un peu le mal. En tout cas, quitte à utiliser internet et griller du Co2, autant que ce soit pour des gens qui essaient un minimum de le compenser…
Si tu veux rester dans la mouvance Weboob, il faut te trouver un meilleur nom.
Je te propose: Contenteub. En français, ça passe très bien. Pour l'anglais, j'ai pas d'idée mais avec des boob et du gros contenu, on doit bien pouvoir trouver un jeu de mot à la con !
Avec l'achat de Skype par Microsoft, c'était pareil. Le jour même où la transaction était actée, Skype a connu une des plus grosses pannes de son histoire, avec indisponibilité globale pendant plusieurs heures. Ca n'a rien à voir qu'y disaient aussi…
Même si j'utilisais TkInter, je ferai le choix d'un packaging en .exe . Le packaging est un aspect fondamental de la distribution d'un programme. Dans l'univers Python, PIP est le minimum vital et tout ce qu'on peut fournir en plus participera à facilité d'installation et donc la popularité d'une programme.
TkInter est petit certes, mais pour faire une vue à la Excel avec nombre de lignes illimitées sur le fichier de donnée, j'ai peur qu'il soit un peu court. C'est pour ça que Qt assure bien, on peut faire des applis assez haut niveau avec très peu de code.
Je l'ai utilisé une ou deux fois contre mon gré et je ne regrette pas Qt.
En cadeau, un snapshot de SxTool pour voir de quoi je parle.
Pour la deuxième partie, c'est tout à fait possible, c'est ce dont je parle à la fin du journal. J'essaierai de faire un test dans ce sens un de ces quatre et de vous faire un retour.
Attendez, imaginez un peu ce qu'on aura sous licence libre dans 35 ans ! Linux va pouvoir aller se rhabiller.
Cela dit, on peut critiquer, mais Apple a-t-il fait le moindre geste de ce type pour ses soft proprio obsolètes ? Peut-on trouver le code source de l'OS de l'Apple II ?
Waouh… Je suis d'accord avec toi, c'est gravement foireux.
J'ai jamais rencontré un seul de ces problèmes, pour moi, tout a toujours marché comme décrit dans la documentation donc je vois ça plutôt le côté rose de PIP.
Par exemple, si tu utilisais intensément le QListView en Qt3 (l'affichage en arbre), il n'a pas d'équivalent direct en Qt4/5 suite au passage à l'architecture modèle/vue de Qt. Et l'API modèle/vue bien que assez bien conçue, ne permet pas de contrôler aussi bien le widget d'affichage que ne le permettait QListView.
Dans ce cas précis, il faudrait carrément refondre l'application pour fonctionner dans le nouveau modèle. De plus, celui-ci est plus complexe à appréhender (je me souviens d'une remarque de David Faure à ce sujet d'ailleurs).
[^] # Re: Expressivité
Posté par Philippe F (site web personnel) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 3.
C'est quoi la définition de sérieux ? Si je prends mon entreprise, où on parle quand même de développeurs qui gagnent leur vie en écrivant du code … on peut penser qu'il s'agit de gens sérieux non ? Et pourtant, côté C++, on est loin du C++11. Je pense même pas que la plupart des mes collègues immédiats connaissent le sigle. Si je leur montre un bout de code avec des lambdas et des templates, ils ne comprendront juste rien. On fait de la carte programmation pour carte à puce, ce qui veut dire beaucoup de C, un peu d'assembleur, un peu de JavaCard, et un peu de Python pour nos tests.
Aujourd'hui un collègue développeur a vu mon écran et m'a demandé pourquoi je regardais un forum sur le jeu de Go. Il n'avait jamais entendu parlé du langage…
On utilise un peu de Python mais le seul qui est installé sur leurs postes, c'est Python 3.1 . Et je ne m'avance pas à utiliser des syntaxes avancées de Python (décorateurs, getter/setters, comprehensions, …) si je ne veux pas les perdre en route.
Je tiens donc à souligner la grande distance qu'il y a entre des passionnés qui suivent les évolutions de l'informatique et des entreprises qui restent avant tout consommatrices d'outils en l'état.
Côté Visual Studio, on utilise la version … 2011 Professional. Et je crois pas que C++11 soit bien supporté dans cette version. :-)
Il y a pas de refus de ma part. C'est juste que le C++, globalement, je ne l'utilise pas. Et je sais que c'est un langage complexe, dont la complexité ne fait que grandir au cours du temps.
Déjà, j'avais noté que le C++ de mon époque était plus complexe que ce que mon cerveau pouvait encaisser en une seule fois. Je sais que je ne me hasarderai pas à lever une exception en C++ sans relire un bouquin entier sur le sujet tellement il y a de façon de mal le faire.
Alors maintenant, de savoir que la complexité du langage a augmenté (ce que je vois quand je lis des exemples dans quelques journaux, je comprends juste rien), ça me motive pas vraiment à m'y mettre. Après, si j'avais un boulot qui l'exige, je me lancerai à fond dedans avec plaisir.
Paradoxalement, j'ai fait pas mal de Qt/C++. Et je bénis Trolltech/Nokia/Digia/Qt d'avoir rendu le C++ utilisable même par des gens peu experts en la matière.
[^] # Re: Expressivité
Posté par Philippe F (site web personnel) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 2.
Tu pourrais être plus explicite ? Je ne vois pas en quoi le fait de favoriser "une façon évidente et si possible unique" de faire une tâche nuit à l'expressivité du langage. Au contraire, si il y une façon évidente et unique de faire une tâche, tout le monde va utiliser cette façon et l'intention du programmeur sera claire.
Cette règle a été écrite (à mon avis) en réaction à Perl qui a en effet le TMTOWTDI. Et côté Perl, je vois ça plus comme un constat qu'il existe mille et une façon de faire une tâche que comme quelque chose que le créateur de langage a volontairement instillé dans la conception.
Tu n'a pas réagi sur mon exemple pourtant ? C++, c'est pas le langage où quand on veut faire une classe copiable, il faut définir 4 méthodes différentes ? Mais pas de boiler-plate hein ?
Les constructions nouvelles du langage apportées dans C++11 et consorts sont certainement bien pratiques, mais dans les faits, elles sont très récentes dans l'histoire du langage (si on prend 1985 comme date de première visibilité, on est à 34 ans d'existence alors que le C++11 n'est là que depuis 8 ans). Elles restent encore peu connues, apportent leurs propres problèmes de lisibilité et de compréhension. Côté lisibilité, on repassera. Ça ajoute en plus énormément à la complexité du langage.
[^] # Re: Expressivité
Posté par Philippe F (site web personnel) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 5.
J'ai du mal à voir C++ et expressivité dans la même phrase, et Python dans la catégorie "inexpressivité". Pour le reste du commentaire, je suis plutôt d'accord.
J'exprime mon désaccord sur les deux points:
Python est au contraire un langage très expressif, le programmeur peut manifester son intention en très peu de lignes de code. Le boiler-plate code en Python est quasiment inexistant.
A l'opposé, à chaque fois que j'utilise la STL en C++, mes yeux pleurent, je me dis que 120 colonnes pour une ligne, c'est bien peu quand tu veux manipuler une structure un tant soit peu élaborée.
Allez, au hasard, parcourons une map/un dict de string vers des paires de string en Python et en C++ et inversons les paires:
En Python:
En C++:
En terme d'expressivité et lisibilité, je trouve que la version Python s'en sort beaucoup beaucoup mieux.
Et encore, il aurait été de bon ton d'expliciter l'instanciation de make_pair<> .
Alors, certes, en C++11, on peut faire plus compact en utilisant des auto et surement avec d'autres trucs (lambda ? foreach ?). Mais tout le monde ne les connait pas.
On peut aussi faire bien plus compact en Python mais on tombe sur le même problème: la syntaxe des Python compréhensions est peu connue (par exemple, aucun de mes collègues de travail ne connait):
d = { k:(v[1],v[0]) for k,v in d.items()}
[^] # Re: télémétrie
Posté par Philippe F (site web personnel) . En réponse au journal Microsoft publie sous licence MIT les sources de la calculatrice de Windows. Évalué à 6.
M****, je viens de faire un calcul avec mon mot de passe par erreur. Tu crois que Microsoft est déjà au courant ?
Ça me rappelle KDE il y a fort longtemps où je ne sais plus pour quelle situation, tu pouvais te retrouver à copier ton mot de passe dans le presse-papier. Et tu voulais le coller quelque part mais si tu faisais pas attention, tu faisais un click du milieu dans Konqui, qui prenait automatiquement le contenu du presse-papier et essayait de le traiter en tant qu'url et si ça ne passait pas, il lançait une recherche sur google avec. En un clic souris du milieu, tu balançais ton mot de passe sur google. Nice :-)
Et c'était considéré comme une super feature par le développeur :-)
[^] # Re: Passionnant
Posté par Philippe F (site web personnel) . En réponse au journal Hacker du dimanche. Évalué à 5.
J'en reçois seulement depuis quelques semaines, comme vous.
Détail intéressant, une version de ce SCAM me dit qu'il connait mon mot de passe et affiche dans le mail … mon mot de passe. C'est assez flippant sur le coup.
Il dit aussi qu'il a mis un tracker dans l'email, ça par contre, j'ai vérifié, c'est pas le cas.
Après quelques recherche, j'ai découvert que c'était mon mot de passe linkedin, connu probablement suite à cette fuite (merci au passage à Ihavebeenpowned qui m'a fait découvrir cela).
Evidemment, je suis un geek consciencieux, j'utilise des variantes de mon mot de passe suivant les sites où je vais. Mais ça reste flippant!
Du coup, je me lance dans une campagne de remise à plat de mon mot de passe de référence. Je vais le passer à 16 caractères, et passer la partie variable à deux ou trois lettres…
[^] # Re: Comment "démasquer" un faux visage
Posté par Philippe F (site web personnel) . En réponse au journal Cette personne n'existe pas. Évalué à 6.
Le problème, c'est que les gens ne se fient plus aux journalistes…
La plupart des informations sont maintenant véhiculées par les réseaux sociaux, seule la première ligne de l'article est lue, l'émotion est le seul angle d'analyse de ce qui est dit. Si en plus l'information va dans le sens du poil du lecteur, il y a encore moins d'analyse qui est faite.
Saloperie de société de moutons !!!
[^] # Re: LA solution
Posté par Philippe F (site web personnel) . En réponse au journal [HS] Etes-vous pour rester à l'heure d'été ou à l'heure d'hiver ?. Évalué à 6. Dernière modification le 18 février 2019 à 11:27.
Pour ne pas s'enfoncer dans une route délétère, on pourrait quand même sauter un jour de temps en temps, genre quand la somme des décimales de la date au carré (jour-mois-année complète) est divisible par 13.
Après, c'est juste une habitude à prendre…
# Socialiser
Posté par Philippe F (site web personnel) . En réponse au journal Les arts martiaux. Évalué à 7.
En plus des aspects déjà cité, j'aime bien la pratique d'un art martial pour socialiser. Ca m'a permis de rencontrer des gens très sympas, qui sont en dehors de mon milieu social habituel. Notamment, il y a un bon mélange des classes sociales dans les différents clubs où j'ai pratiqué et ça fait du bien de changer d'horizon. Ca s'applique bien sur à peu près n'importe quelle activité à un prix abordable.
Sinon, je pense que beaucoup d'arts martiaux ne permettent pas vraiment de combattre un adversaire agressif (par exemple, c'est le cas de l'aikido que je pratique pourtant avec grand plaisir) mais ça donne déjà une posture. Le fait de pratiquer la rencontre d'un "agresseur" et d'un défenseur en cours donne une certaine confiance en soi qui fait qu'en cas de situation réelle, on sera légèrement moins stressé. Quelqu'un qui n'a pas peur attire aussi moins l'envie de tabasser: les délinquants préfèrent s'en prendre à des faibles.
J'ai beaucoup de plaisir à pratiquer l'aikido malgré son irréalité martiale. Ce que j'aime bien c'est:
- une petite plongée dans une autre culture, la culture japonaise martiale légèrement médiévale
- la souplesse des mouvements qui m'entretient. On apprend à rouler pour se dégager d'une prise (et non pas à chuter brutalement comme au judo). A chaque fois que j'ai mal au dos, un bon cours d'aikido me remet toutes les vertèbres en place et je me sens bien.
- je trouve les chorégraphies de l'aikido très jolies.
- la connaissance du corps humain est aussi très intéressante. L'être humain vue en tant qu'un ensemble d'aritculation est assez marrant à manipuler.
- j'adore faire joujou avec les armes. Se retrouver en face d'un sabre en bois (bokken) est très impressionnant et réveille tout de suite un mélange de peur et de tension combative. Manipuler le baton en bois est très marrant. Si en plus, ça permet de se défendre un jour, pourquoi pas. En attendant, c'est un peu comme apprendre à jongler.
Cette année, je change de discipline pour quelque chose de plus combatif: le Yoseikan Budo. C'est aussi d'inspiration japonaise, et ça intègre des notions de karaté, judo, boxe, aikido, de lutte et de pratique d'armes. On fait des combats d'armes avec des armes en mousse, on rigole comme des gamins.
# Et la profession libérale ?
Posté par Philippe F (site web personnel) . En réponse au journal Devenir un indépendant libre. Évalué à 10.
Bizarre, le titre parle de travailler en "indépendant" et tu ne parles pas du seul statut qui correspond le mieux à la définition d'un indépendant: la profession libérale.
Contrairement aux autres forme d'entreprenariat que tu cites, tu n'es pas rattaché à une structure, et tu n'es pas obligé de créer une structure d'entreprise juste pour t'héberger toi.
Concrètement, tu ne crées pas d'entreprise avec des statuts, tu n'es pas salarié non plus, c'est ta propre personne qui devient une entreprise avec un SIRET. Tu peux même (c'est fortement déconseillé) mélanger tous tes revenus et tes dépenses privées avec tes revenus pros, la seule obligation étant de possèder un compte dédié à ton activité professionnelle.
En terme d'administratif et de comptabilité, c'est plutôt simple. Tu dois t'affilier à un Association de Gestion Agrée (AGE) qui va vérifier vite fait tes comptes à l'année.
Il n'y a pas de notions de dividendes ou de salaire: tout ce que tu perçois comme revenu professionnel t'appartient. Tu déclares à la fin de l'année un bénéfice qui est taxé il me semble de façon proche d'un dividende.
J'ai exercé sous ce statut pendant une année et j'ai trouvé ça plutôt léger en terme d'administratif, et plutôt rentable en terme de conversion montant facturé / net dans ma poche.
Par contre, tu es un peu livré à toi-même ce qui peut être un peu angoissant vis à vis des administrations. Il faut bien choisir son AGE pour être bien conseillé.
A noter que si tes clients ne te payent pas trop, tu peux être auto-entrepreneur. Mais les montants des rémunérations dans l'informatique dépassaient lorsque j'avais tenté l'aventure les plafond de la micro-entreprise.
[^] # Re: depression ou burnout
Posté par Philippe F (site web personnel) . En réponse au journal Mes activités open sources / libres récentes. Évalué à 8.
Le burn-out emmène vers une dépression, qui elle peut s'installer beaucoup plus durablement que la charge de travail / pression / complications qui ont conduit au burn-out. C'est donc assez sournois, les conséquences persistent longtemps après que les causes aient disparues.
Je parle malheureusement d'expérience…. 2 ans après un burn-out professionnel, je sens que je ne suis plus capable de gérer le niveau de responsabilité professionnelle que je gérai auparavant. Je ne suis pas sur que je pourrai de nouveau le faire dans ma vie.
[^] # Re: un art de vivre plutôt qu'une formation
Posté par Philippe F (site web personnel) . En réponse au journal une formation à être parent. Évalué à 3.
C'est clairement une chance exceptionnelle que tout le monde n'a pas pour des raisons très très variées.
Je te rejoins sur le reste.
[^] # Re: Non
Posté par Philippe F (site web personnel) . En réponse au journal Téléphone mobile : suis-je paranoïaque ?. Évalué à 2.
Et en plus, tous ceux qui lisent ce message viennent d'être tracés par BFM TV, une des incarnations du mal capitaliste. Et oui, l'image de Neo est stocké sur le site de BFM…
[^] # Re: Les annotations
Posté par Philippe F (site web personnel) . En réponse au journal PyParis 2018, c'était bien!. Évalué à 3. Dernière modification le 26 novembre 2018 à 12:17.
C'est vrai que c'est pénible de devoir importer des modules juste pour avoir sous la main la classe pour l'annotation. La première fois que je l'ai fait, ça m'a fait un import circulaire, j'ai cru que j'allais m'arracher les cheveux !
Je te rejoins aussi sur le fait que ça surcharge pas mal les entêtes de fonctions, qui étaient plus facile à lire sans, surtout quand tu as des valeurs par défaut.
Cela dit, malgré ces deux inconvénients, je suis très content de les utiliser. Dès que la base de code grossit, qu'il y a plusieurs développeurs dans l'équipe, dès que le projet prend de l'age, les annotations créent beaucoup de valeur car elles vérifient la cohérence globale de ton programme. Ce que ne font pas les docstring.
Les docstrings ont d'autres inconvénients:
- parfois, elles sont pas là
- parfois, elles sont pas assez précises (elles oublient de préciser le type de retour, …)
- parfois, la fonction a évolué mais le développeur pressé a oublié de la mettre à jour
Mais surtout:
- les docstrings ne vérifient pas le type des données avec lesquelles la fonction est appelée
- les docstrings peuvent contenir une erreur, genre elles disent qu'on peut passer une liste ou un tuple mais en fait, seule une liste fonctionne.
Comme j'essaie de le montrer dans la présentation, les annotations permettent d’attraper pas mal d'erreur et obligent à clarifie son intention.
# Ecosia et lilo
Posté par Philippe F (site web personnel) . En réponse au sondage Mon moteur de recherche préféré est. Évalué à 2.
J'utilise ecosia et lilo. Ils sont-traitent la recherche soit à Bing, soit à Google. Par contre, ils profitent de l'argent récolté pour mener des projets écologiques ou d'économie solidaire.
Il me semble qu'ils filtrent mes coordonnées personelles ce qui limite un peu le mal. En tout cas, quitte à utiliser internet et griller du Co2, autant que ce soit pour des gens qui essaient un minimum de le compenser…
# Contentoob ?
Posté par Philippe F (site web personnel) . En réponse au journal scraplap, pour mouler offline. Évalué à 7.
Si tu veux rester dans la mouvance Weboob, il faut te trouver un meilleur nom.
Je te propose: Contenteub. En français, ça passe très bien. Pour l'anglais, j'ai pas d'idée mais avec des boob et du gros contenu, on doit bien pouvoir trouver un jeu de mot à la con !
Allez, --> []
[^] # Re: ...
Posté par Philippe F (site web personnel) . En réponse au journal Github m. Évalué à 0.
Avec l'achat de Skype par Microsoft, c'était pareil. Le jour même où la transaction était actée, Skype a connu une des plus grosses pannes de son histoire, avec indisponibilité globale pendant plusieurs heures. Ca n'a rien à voir qu'y disaient aussi…
[^] # Re: Taille déraisonnable
Posté par Philippe F (site web personnel) . En réponse au journal Réduire la taille des exécutables générés avec PyInstaller. Évalué à 2.
Je veux bien juste pour voir à quoi ça ressemble. Ecris-moi à phil.fremy (chez) free.fr .
Merci en tout cas de regarder, je vais voir si je peux retravailler le .spec comme le tien.
[^] # Re: tkInter ?
Posté par Philippe F (site web personnel) . En réponse au journal Réduire la taille des exécutables générés avec PyInstaller. Évalué à 3. Dernière modification le 16 octobre 2018 à 20:26.
Même si j'utilisais TkInter, je ferai le choix d'un packaging en .exe . Le packaging est un aspect fondamental de la distribution d'un programme. Dans l'univers Python, PIP est le minimum vital et tout ce qu'on peut fournir en plus participera à facilité d'installation et donc la popularité d'une programme.
TkInter est petit certes, mais pour faire une vue à la Excel avec nombre de lignes illimitées sur le fichier de donnée, j'ai peur qu'il soit un peu court. C'est pour ça que Qt assure bien, on peut faire des applis assez haut niveau avec très peu de code.
Je l'ai utilisé une ou deux fois contre mon gré et je ne regrette pas Qt.
En cadeau, un snapshot de SxTool pour voir de quoi je parle.

[^] # Re: go
Posté par Philippe F (site web personnel) . En réponse au journal Réduire la taille des exécutables générés avec PyInstaller. Évalué à 3.
Pour la deuxième partie, c'est tout à fait possible, c'est ce dont je parle à la fin du journal. J'essaierai de faire un test dans ce sens un de ces quatre et de vous faire un retour.
[^] # Re: go
Posté par Philippe F (site web personnel) . En réponse au journal Réduire la taille des exécutables générés avec PyInstaller. Évalué à 10.
En même temps, Go fait quand même beaucoup moins de choses que Qt… C'est plus facile d'être compact.
[^] # Re: MS-DOS ... 2 ?
Posté par Philippe F (site web personnel) . En réponse au journal Le code source de MS-DOS 1.25 & 2.0 déposé sous licence MIT sur github. Évalué à 3.
On est loin de la licence MIT mais c'est déjà bien…
[^] # Re: MS-DOS ... 2 ?
Posté par Philippe F (site web personnel) . En réponse au journal Le code source de MS-DOS 1.25 & 2.0 déposé sous licence MIT sur github. Évalué à 2. Dernière modification le 01 octobre 2018 à 14:36.
Attendez, imaginez un peu ce qu'on aura sous licence libre dans 35 ans ! Linux va pouvoir aller se rhabiller.
Cela dit, on peut critiquer, mais Apple a-t-il fait le moindre geste de ce type pour ses soft proprio obsolètes ? Peut-on trouver le code source de l'OS de l'Apple II ?
[^] # Re: dict et OrderedDict
Posté par Philippe F (site web personnel) . En réponse à la dépêche Sortie de Python 3.7. Évalué à 3. Dernière modification le 17 septembre 2018 à 11:25.
Waouh… Je suis d'accord avec toi, c'est gravement foireux.
J'ai jamais rencontré un seul de ces problèmes, pour moi, tout a toujours marché comme décrit dans la documentation donc je vois ça plutôt le côté rose de PIP.
[^] # Re: Spam ?
Posté par Philippe F (site web personnel) . En réponse au journal Nouveau coup de tonnerre attendu. Évalué à 6.
Je trouve qu'il a de plus en plus de mal à être crédible. Soit c'est la lassitude, soit que Apple a vraiment plus rien à dire…
[^] # Re: dict et OrderedDict
Posté par Philippe F (site web personnel) . En réponse à la dépêche Sortie de Python 3.7. Évalué à 7.
Par exemple, si tu utilisais intensément le QListView en Qt3 (l'affichage en arbre), il n'a pas d'équivalent direct en Qt4/5 suite au passage à l'architecture modèle/vue de Qt. Et l'API modèle/vue bien que assez bien conçue, ne permet pas de contrôler aussi bien le widget d'affichage que ne le permettait QListView.
Dans ce cas précis, il faudrait carrément refondre l'application pour fonctionner dans le nouveau modèle. De plus, celui-ci est plus complexe à appréhender (je me souviens d'une remarque de David Faure à ce sujet d'ailleurs).