Christie Poutrelle a écrit 381 commentaires

  • [^] # Re: Perte de temps

    Posté par  (site web personnel) . En réponse au journal Tout ce qu’il faut savoir sur le langage PHP. Évalué à 1.

    Adieu JavaScript.

  • [^] # Re: Perte de temps

    Posté par  (site web personnel) . En réponse au journal Tout ce qu’il faut savoir sur le langage PHP. Évalué à 1. Dernière modification le 17 juillet 2018 à 11:00.

    Ah oui en fait non !

    De mémoire sur certains benchmarks, et Python faut pas se leurrer, c'est un langage sympa mais c'est lent. Et puis de toute façon tout langage ou on peut faire du pansement de singe est à mettre à la poubelle.

  • [^] # Re: Perte de temps

    Posté par  (site web personnel) . En réponse au journal Tout ce qu’il faut savoir sur le langage PHP. Évalué à 10.

    J'ai lu le code, personnellement, et même joué avec. Il y a une phase de lexing puis de parsing, tu peux le voir notamment grâce aux fichiers de définition de la grammaire:

    Pour le lexer: https://github.com/php/php-src/blob/4887357269107ed669463c4b95bd755fbbb52490/Zend/zend_ini_scanner.l
    Pour le parser: https://github.com/php/php-src/blob/4887357269107ed669463c4b95bd755fbbb52490/Zend/zend_ini_parser.y

    Ensuite cette phase est décorrélée de la Zend engine, qui est devenue une vraie VM à part entière, qui fonctionne avec un bytecode en entrée (les OPCodes, c'est le même mot que pour les autres VM par ailleurs).

    Je pourrais aller plus loin, notamment sur les passes d'optimisation qu'il fait à la compilation, comme le Dead Code Elimination et quelques autres, sur les optimisations basées sur l'utilisation de la stack plutot que la heap faite par la VM etc…

    Pour voir le code du compilateur (partiel) basé sur l'AST produit par la phase de parsing: https://github.com/php/php-src/blob/4887357269107ed669463c4b95bd755fbbb52490/Zend/zend_compile.c

    Après pour voir tout ce qu'elle fait en terme d'optimisation, et bien faut l'analyser ce code, et là ça devient une tâche un peu plus longue que donner quelques liens.

    Toutes ces modifications ont été apportés par PHP 7 à sa sortie, c'est la grosse différence avec PHP 5.x. Pour information l'extension APC qui existe depuis tellement longtemps que j'en oublie mes mots (on l'utilisait depuis PHP 5.3 ici mais ça existe depuis plus longtemps de mémoire) apportait déjà le caching du bytecode au premier hit pour éviter d'avoir justement la phase de parsing à chaque hit. En réalité PHP n'était plus réellement interprété depuis PHP 5 car il passait déjà par la compilation en une suite d'OPCode avant l'exécution (mais à la différence de PHP 7 il n'avait pas de lexer/parser standard, du code custom à la place, pas de REGEX etc..).

    D'ailleurs chose intéressante, elle est très rapide cette VM, j'ai pas de benchmark récents à te montrer, mais bon, vu qu'à chaque version elle gagne 20% de performances brutes sur les benchmarks de Phoronix, et que déjà il y a quelques année elle se montrait plus rapide que la VM de Python (attention, no troll, je suis conscient que les benchmarks se focalisent toujours sur des algorithmes précis, et qui parfois sont mal implémentés dans tel ou tel langage) - ce qui paraît logique sur un certain nombre de cas d'utilisations parce que PHP type statiquement de plus en plus de choses, et là où le dynamisme disparaît, tout devient plus simple à exécuter - Python reste extrêmement dynamique, beaucoup plus que PHP (d'ailleurs il ressemble plus à JavaScript sur ce point).

  • [^] # Re: Autre lien intéressant

    Posté par  (site web personnel) . En réponse au journal Tout ce qu’il faut savoir sur le langage PHP. Évalué à 1.

    Je ne le connaissais pas celui-là ! Merci !

  • # Perte de temps

    Posté par  (site web personnel) . En réponse au journal Tout ce qu’il faut savoir sur le langage PHP. Évalué à 10. Dernière modification le 16 juillet 2018 à 15:14.

    Cet article est plein d'informations qui sont complètement fausses, ou plus d'actualité depuis plusieurs années. Il faut arrêter de propager des fausses informations ! Que l'on aime PHP ou pas (c'est loin d'être le meilleur langage du monde) il faut au moins lui redonner ce qui lui revient.

    PHP est un langage interprété, c’est à dire qu’il est « traduit » par un serveur (externe) pour que la page Internet soit lisible par votre navigateur

    Ohlalalala, déjà rien qu'ici, cette phrase ne veut rien dire. Bon, pour commencer, PHP n'est plus interprété depuis sa version 7, donc quelques années, de plus avant il pouvait ne plus l'être dès lors qu'on installait APC (ce que tout le monde faisait). Tout ce qu'il y a après le mot "interprété" dans cette phrase est incompréhensible.

    En fait, j'ai arrêté de le lire ici. La personne qui a écrit cet article ne doit pas connaître grand chose ni à PHP, ni au web en général.

    En même temps, ça date de 2009. Faut arrêter ce genre de blagues à troll :)

  • [^] # Re: Même si tu n'utilises pas Google, il lit tes mails

    Posté par  (site web personnel) . En réponse au journal Gmail at confidentialité : il semblerait que plein de monde puisse lire vos emails. Évalué à 2. Dernière modification le 04 juillet 2018 à 15:59.

    Bien évidemment, mais d'autres respectent beaucoup plus la vie privée que Google.

  • # Même si tu n'utilises pas Google, il lit tes mails

    Posté par  (site web personnel) . En réponse au journal Gmail at confidentialité : il semblerait que plein de monde puisse lire vos emails. Évalué à 10. Dernière modification le 04 juillet 2018 à 14:35.

    Ce qui me déprime le plus dans l'histoire, c'est que plein de monde puisse lire MES mails, alors que je n'utilise pas Google, et n'ai jamais autorisé Google à le faire. Juste parce que des amis à moi utilisent Google, il peut lire ceux que je leur envoie.

  • [^] # Re: la vitesse d'exécution n'est pas le principal intérêt d'un compilateur à mes yeux.

    Posté par  (site web personnel) . En réponse au journal Pythran 0.8.5 - de l'intérêt des compilateurs. Évalué à 7.

    Mais pas que, la performance peut être liée au fait que justement grâce à l'analyse statique, le compilateur peut supprimer les méta-informations de type, et dénouer les abstractions (par exemple le Rust est langage qui se veut avoir des "zéro-cost abstractions"). Ce n'est malheureusement possible que si le typage est strict et sans ambiguïté possible: en Python ça ne sera juste jamais possible à cause des possiblités de monkey patching. L'un ne va pas sans l'autre en réalité, le typage et l'analyse statique permettent par la preuve formelle de garantir un code sans bug, et la garantie et la prédictibilité de ce qui va être exécuté permet les optimisations.

  • # Atom/Celeron

    Posté par  (site web personnel) . En réponse au message Linux sur Lenovo Flex 10. Évalué à 1.

    C'est un processeur de type atom non ? Il me semble que le support du kernel est pas terrible, et c'est possible que ça ne juste marche pas. Je m'étais renseigné il y a un an, et quasiment aucune tablette/touchpad ne pouvait faire fonctionner correctement linux, dans le meilleur des cas, tu avais quelque chose qui boot mais sans wifi et sans son.

  • [^] # Re: J'ai moinssé ton journal

    Posté par  (site web personnel) . En réponse au journal Pourquoi Facebook ?. Évalué à 3.

    […] qu'il s'agit d'un choix personnel de diffuser une information sur toi. Affirmer aux yeux du monde sur facebook, ici ou ton blog des informations te concernant semble être une liberté fondamentale.
    […] ce genre d'informations permet d'influencer une élection par exemple. Il n'est plus question de savoir quelles seront les implications pour toi de cette diffusion d'information, mais quels seront les impactes pour ton entourage

    Si je suis ton raisonnement, Cambridge Analytica a donc privé les citoyens de leur liberté de partager des informations personnelles. Le vrai problème de fond est non pas qu'une telle utilisation massive des données soit possible, elle le sera fondamentalement toujours au moins techniquement possible, mais que des gens l'aient fait. D'où l'importance que ces gens soient condamnés par la loi pour leurs actes et non simplement pour avoir volé des données.

    Ça n'enlève en rien la responsabilité de Facebook qui a toujours essayer de masquer la réalité de la façon dont ils collectent, stockent pour l'éternité et vendent les données personnelles, qui lui aussi doit payer pour le préjudice porté aux gens, mais ce n'est pas le même.

  • # Mes retours, un peu plus positifs

    Posté par  (site web personnel) . En réponse au journal Thunderbird, mon premier contact est une déception !. Évalué à 4.

    J'utilise Thunderbird depuis à peu près un an, en version beta depuis 2 ou 3 mois, (j'utilisais Gnome Evolution avant) et voici quelques remarques:

    Parfois Thunderbird ne répond plus pendant une minute, sans message. Le sentiment de lenteur est très fréquent, même après avoir désactivé la recherche globale.

    Ça ne m'arrive juste pas.

    Les opérations IMAP plantent parfois, par exemple en déplaçant puis supprimant des messages. Je suppose qu'il lance la seconde commande quand la première n'a pas encore abouti.

    Des fois certaines sont lentes, donc l'UI attend que l'opération se termine pour mettre à jour l'UI (par exemple, ne plus afficher le mail après un déplacement) mais c'est toujours extrêmement rapide à l'usage (ça ne dure jamais plus que quelques secondes). Pour info, tous mes autres clients IMAP ont toujours fait pareil (Evolution, et il y a très longtemps, Sylpheed).

    Pour des répertoires trop remplis, Thunderbird finit par proposer d'arrêter le script JS en cours. Je ne savais pas qu'il y avait du code JS dans Thunderbird, et le message avec un nom de fichier bizarre en ".js" à de quoi faire paniquer certains utilisateurs.

    C'est lié au fait que c'est la même UI que Firefox, et avec la beta il y en a encore plus parce que ça essaye de suivre le train de Photon (la nouvelle UI de Firefox)

    Le filtre statistique anti-spam s'applique sans attendre un volume minimal d'apprentissage, avec des résultats stupides et parfois dangereux.

    Je ne peux pas répondre à ça, je n'ai jamais utilisé de filtre anti-spam côté client, toujours côté serveur.

    Quand Thunderbird pompe 100% d'un cœur, on voit qu'il est monothreadé car toutes les actions rament.

    Je ne pense pas qu'il soit mono-threadé, par contre si c'est comme Firefox, il doit y avoir un thread global pour l'UI, dans le cas où il bug, l'application ne répond plus le temps qu'il reviennent à la normale. Jusqu'avant la version 57, Firefox fonctionnait exactement pareil, et ça sera pareil pour toutes tes applications desktop d'ailleurs: si c'est le thread d'UI qui déconne, t'as l'impression que l'appli est morte. Ceci dit, ça a dû m'arriver en tout et pour tout deux fois.

    À titre de comparaison, Evolution je devais le relancer trois à quatre fois par jour, et effacer manuellement son cache dans le répertoire .config, alors qu'avec Thunderbird, à part en cas de mis à jour, une fois lancé le matin il fonctionne toute la journée (et ce même avec la beta, j'ai jamais eu de bug avec) et cerise sur le gâteau, je n'ai jamais eu à effacer manuellement quelque cache que ce soit.

  • [^] # Re: vie privée, Cloudflare, blague ?

    Posté par  (site web personnel) . En réponse au journal Cloudflare annonce 1.1.1.1, le résolveur DNS orienté grand public et vie privé le plus rapide. Évalué à 2.

    C'est pas faux.

  • [^] # Re: vie privée, Cloudflare, blague ?

    Posté par  (site web personnel) . En réponse au journal Cloudflare annonce 1.1.1.1, le résolveur DNS orienté grand public et vie privé le plus rapide. Évalué à 2.

    D'après les benchmarks, ce n'est pas qu'une question de vie privée, ils sont aussi globalement (parfois beaucoup) plus rapides que tous les autres pour répondre, et ce quelle que soit la position géographique sur la planète (Yandex ne répond bien qu'en Russie, et Google et Quad9 ne semble pas très bien répondre en Afrique ou dans certain coins d'Asie).

  • [^] # Re: Lineage

    Posté par  (site web personnel) . En réponse au journal C'est quoi le telephone intelligent du libriste francais de nos jours?. Évalué à 3.

    Absolument aucune, après la personne qui porte (non officiellement) Lineage pour ce modèle en particulier a mis toutes ses sources sur github, et apporte du support sur les forums XDA, et accepte les contribution, même si ça ne garanti en rien que le binaire final soit bien celui issu de ce code source, ça donne un peu confiance tout de même.

  • [^] # Re: Jolla

    Posté par  (site web personnel) . En réponse au journal C'est quoi le telephone intelligent du libriste francais de nos jours?. Évalué à 2.

    Merci beaucoup!

  • # Lineage

    Posté par  (site web personnel) . En réponse au journal C'est quoi le telephone intelligent du libriste francais de nos jours?. Évalué à 7.

    J'utilise un Galaxy S4 mini+ (le + est important, c'est pas le même CPU que celui sans le +) avec un build non officiel de Lineage. Jusque là j'en suis très content.

    Le modèle est un peu ancien, mais ça devient de plus en plus dur de trouver des modèles qui respectent pour moi les quatre points essentiels suivants:

    • pas trop gros (en dessous de 5" de diagonale),
    • en moyen de gamme (pas un premier prix qui tombe en panne au bout d'un an, mais pas un modèle cher non plus),
    • qui est officiellement supporté par Lineage (et là ça devient compliqué, ce + m'a bien mis dedans),
    • qui tient longtemps en batterie.

    J'ai l'impression même que simplement trouver un modèle de moins de 5" devient complètement impossible aujourd'hui.

  • [^] # Re: Jolla

    Posté par  (site web personnel) . En réponse au journal C'est quoi le telephone intelligent du libriste francais de nos jours?. Évalué à 3.

    Incroyable, j'ai cherché pendant sacrément longtemps, et nulle part sur le site officiel, ni sur duckduckgo je n'ai trouvé un seul lien probant pour installer ou télécharger Sailfish OS, as-tu des ressources à fournir là dessus ? Le site officiel est joli, mais on dirait une sacré boite noire ce truc, impossible de trouver aucune info utile.

  • # TapTempo fait déjà le job

    Posté par  (site web personnel) . En réponse au journal HeartTempo, le cardiofréquencemètre du pauvre qui a quand même un accès Internet. Évalué à 2.

    Perso pour tester ma version de TapTempo je me suis servi de mon rythme cardiaque: un appui sur entrée pour chaque pulsation, c'est pas fiable sur 10 secondes, mais ça le devient au delà - pas besoin de HeartTempo, TapTempo fait déjà très bien le job!

    [Hors-Sujet] D'ailleurs, pour tous les fumeurs ici, ça m'a permis de me rendre compte que mon rythme cardiaque est tombé de 10 ou 20 pulsations minutes au repos depuis que j'ai arrêté de fumer!

  • [^] # Re: ...

    Posté par  (site web personnel) . En réponse au journal Naissance de la Taptempo-Federation. Évalué à 2.

    Ça dépasse tout ce que j'avais pu imaginer.

  • [^] # Re: Questions

    Posté par  (site web personnel) . En réponse au journal Naissance de la Taptempo-Federation. Évalué à 2.

    L'idée ce n'est pas de lancer un concours, mais pour les langages où il y a plusieurs versions, comment imaginez vous le différencier pour l'utilisateur final ? TapTempo-Closure1 vs. TapTempo-Closure2 ?

  • # Questions

    Posté par  (site web personnel) . En réponse au journal Naissance de la Taptempo-Federation. Évalué à 3.

    Peut-on facilement être inclus dans l'organisation GitHub, en tant que développeur ayant partagé sa version de TapTempo ?

    Doit-on aussi donner un nom spécifique à chaque version, pour que les gens s'y retrouvent ? Par exemple j'aimerais bien pouvoir distribuer le mien comme étant la variante PhapTempo (en honneur à PHP).

  • # Oui, mais open source tout de même

    Posté par  (site web personnel) . En réponse au journal Le vrai problème avec toutes ces ré-implémentations de TapTempo c'est .... Évalué à -6.

    Cependant elles sont toutes open source, non dans le sens libre du terme, mais dans le sens ou le code est accessible librement et sa lecture est gratuite et sans conditions.

  • [^] # Re: Monsieur essaye de masquer la réalité

    Posté par  (site web personnel) . En réponse au journal Le débat est clos. Évalué à 2.

    On parle toujours de développement là ? A priori, ça arrive rarement de développer sur une machine de production ou de l'autre côté de la planète non ? Où alors ça peut j'imagine, mais c'est carrément se tirer une balle dans le pied.

    Il y a bien sûr quelques exceptions, comme par hasard le développement sur SAP, mais de toute façon là tu oublie le SSH puisque t'es obligé de passer par leur environnement de développement propriétaire, ou le développement sur certains vieux mainframes, mais c'est très spécifique.

  • [^] # Re: Monsieur essaye de masquer la réalité

    Posté par  (site web personnel) . En réponse au journal Le débat est clos. Évalué à 2. Dernière modification le 15 mars 2018 à 09:46.

    C'est pratique le développement sur des VM de dev

    Je travaille avec des VM de dev depuis plusieurs années, et l'avantage d'une VM locale dans ta propre machine, c'est que tu peux monter facilement un partage de fichier, un NFS ou autre SSHFS (nous on utilise SSHFS après avoir expérimenté NFS, j'ai encore des vieilles VM en NFS par ailleurs) et on utilise les outils de développements de la machine hôte pour le projet dans la VM sur le point de montage de la VM.

    Plein de gens pensent que le SSHFS est lent, mais que nenni, en vrai j'ai un Eclipse branché dessus, et la différence ne se voit pas (un autre avantage des IDE de manière générale est leur bonne gestion du FS, l'indexation efficace, bien que tous ne soient pas égaux la dessus).

    Le mieux du mieux c'est qu'en tant que développeur, je n'ai pas à m'occuper de comment ça marche puisqu'on a un outillage interne qui effectue le déploiement sur nos machines, quelle soit la distribution Linux (et fonctionne aussi avec MacOS). Encore une fois, VIeMacs dans un SSH n'a absolument pas sa place dans cette infra.

    Je tiens à préciser que nos VM peuvent par ailleurs contenir des Docker, et de manière générale sont ISO-prod, contiennent les mêmes outils de déploiement, seul leur dimensionnement (nombre de CPU et RAM) change.

  • [^] # Re: Static ! Ouate !

    Posté par  (site web personnel) . En réponse au journal Portage de TapTempo en PHP. Évalué à 2.

    Je me demande surtout pourquoi tu as mis toutes tes méthodes et propriétés et "static", ça n'a pas de sens: dans ce cas là écrit juste des fonctions, sachant que l'utilisation de namespaces fournit le seul avantage qu'une classe entièrement statique peut t'apporter (c'est à dire grouper dans un même espace de nom tes propriétés et méthodes).

    Après, dans la pratique, dans ce code en particulier c'est pas grave, mais le fait que tout soit statique de manière générale induit un global state, qu'on essaye de toujours éviter car dans un projet plus complexe, ça augmente la surface de potentiels effets de bord, et va plutôt dans le sens inverse de l'immutabilité.