Merci pour ce partage, je n'ai pas grand chose à y redire sauf que c'est bien. Par contre, un point m'a fait pleurer (histoire de religion, goûts et couleurs tout ça).
Après avoir remarqué que nous lisions le code même quand une documentation était disponible, juste pour être sûr au cas où la doc serait erronée ou devenue obsolète, nous avons choisi de tout supprimer. Ainsi nous ne perdons plus de temps à lire la doc avant de lire le code
On dirait un bien mauvais troll.
Chez nous on dit tout l'inverse, du code qui n'est pas documenté est, à mon avis, du code mort. Quand on tombe sur des milliers de lignes de code sans au moins avoir une doc meta qui explique l'architecture de la solution, sans besoin d'aller dans le détail, on passe notre chemin et on ne considère pas que c'est du logiciel libre, on ne considère que c'est pas du logiciel tout court.
Dans les milliards de lignes de code qu'on trouve sur internet, comment veux-tu qu'on s'y retrouve si on a pas au moins un synopsis, un motto, une courte description ? Du code sans doc, c'est comme si il était déjà dans une poubelle.
j'ai eu un compte GMail avant son ouverture officielle, et c'est vrai que c'est super bien ficelé, ce truc. Du coup, c'est difficile de s'en passer. Cependant, comme je n'utilise quasiment jamais aucun autre service de Google
Tu utilises le pire de tous car grâce aux mails de ta maman, ceux de ton ou ta ou tes partenaires, et ceux de ton ou ta meilleure pote, et à ceux de ton patron, Google connaît l'intégralité de ta vie perso depuis longtemps.
uBlock Origin, Privacy Badger, Disconnect, Cookie Auto Delete, HTTPS Everywhere, Decentraleyes, Forget that page
Ça ne sert strictement à rien d'utiliser autant d'extensions pour la privacy, sachant que moulte d'entre elles se croisent et apportent les mêmes features: le result résultat c'est que tu vas ralentir ton browser pour pas grand chose.
Personnellement j'utilise uniquement uBlock origin et Privacy Badger, ça suffit. Privacy Badger n'est finalement même pas utile car lui même implémente un sous-set d'uBlock - je le garde uniquement car j'aime cette démarche ludique et interactive pour le blocage.
La plupart des anti-pubs, enfin ceux qui ne sont pas sponsorisés (adblock c'est honteux) bloquent bien plus que simplement les pubs, et se basent absolument tous sur les mêmes listes et donc aboutissent au même résultat, sauf quand ils whitelist volontairement des fournisseurs de pub pour des raisons pécuniaires (hein adblock).
Une autre fonctionnalité vraiment pas mal de Firefox, c'est les "container tabs" (des onglets d'une couleur différente) qui isolent les cookies, sessions, et site data.
Moi ça rame un maximum, les pages ne s'ouvre pas ou alors très lentement.
C'est étonnant, j'ai un smartphone qui a 4 ans (un Samsung S5 mini+) et j'utilise Firefox depuis toujours - comparé au stock browser Android, il est beaucoup plus rapide, et plante presque jamais.
Pour info, j'utilise une ROM Lineage (0-google) - peut-être, et même sûrement, les ROM constructeur officielles sont en grande partie responsables des lenteurs.
ps : sur un sujet parallèle, faut aussi que je me trouve une bibliothèque php qui permet de générer/lire des gros fichiers XLSX (ou ODS) qui ne souffre pas de fuites mémoire comme PHPExcel (bon outil pour des fichiers pas trop volumineux)
A noter, ça fait longtemps que je ne l'ai pas utilisé, mais à l'époque, utilise XMLReader et XMLWriter m'avait sauvé d'un bon nombre de memory limit exceeded en PHP.
En effet (cf https://secure.php.net/manual/en/xmlreader.requirements.php ) tu as raison - peut-être qu'il utilise l'API plus bas niveau que les autres. Je sais que l'API DOMDocument ainsi que SimpleXML sont basée sur la libxml elle aussi - mais eux parsent les fichiers en entier pour les charger. Je me suis donc trompé :)
Cependant le reste reste vrai, à savoir que XMLReader est basée sur un curseur sur le fichier, et ne le parse pas au complet, de mémoire (à moins que ça ait changé mais ça m'étonnerais) tu peux parser du XML invalide (en théorie je dis bien) avec jusqu'au moment ou tu tombes sur la partie cassée.
C'est absolument vrai, il faut toujours éviter les "premature optimization" - cependant, la performance commence toujours par une architecture logicielle claire et pensée en premier lieu pour les performances. Quand on importe toutes les semaines de centaines de milliers de lignes de gros fichiers XML, la mécanique a sérieusement intérêt à avoir été pensée pour dès le départ.
Par exemple, l'auteur parle de Drupal, et je sais de quoi je parle j'en fais depuis presque 10 ans, et je suis certain que les gens ayant commencé le site ont utilisé les API de Drupal pour injecter le contenu. Cependant, ça devient très vite très compliqué (ça aurait été pareil avec une application Symfony ou Django basée sur un ORM) - où est la barrière que je peux franchir ou pas pour respecter les performances ? Est-ce que j'accepte de contourner les API du logiciel et potentiellement avoir des données obsolète dès leur import (évènements non lancés, listeners non reveillés) où est-ce que j'accepte que ce soit juste lent mais m'assure que tout le monde ai bien sa chance d'intervenir logiciellement au moment de l'injection des donnée ?
La réponse que j'aurais apporté à ce genre de problématique c'est que bien souvent l'outil de base est mal choisi, et dès ce moment, avant même qu'une seule ligne du logiciel existe, ce choix aurait pu permettre d'éviter d'avoir se poser ces questions là.
Puis, pour revenir au XML, utiliser du XPath, sérieusement ? Pour des très gros imports, si tu sais ce que tu fais et que tu connais le schéma, il faut mieux utiliser un lecteur séquentiel, comme l'API XMLReader, qui va juste être incroyablement plus rapide et ne pas consommer de mémoire, là où les implémentations basées sur la libxml2 (c'est à dire toutes en PHP, sauf l'API XML(Reader|Writer)) nécessitent de charger le fichier XML intégralement en mémoire, et en profitent pour passer une phase d'autocorrection du contenu (si si, ça le fait, et même plutôt bien).
Bref, les performances ça se prépare en amont:
éviter les optimisations prématurées permet d'éviter de créer des goulots au niveau des caches, et de rendre illisible une API qui aurait pu l'être,
penser le design logiciel dès le départ pour être taillé pour notre métier, quitte à rendre plus compliqué et plus lent les tâches annexes moins importantes,
bien choisir l'outil de départ,
éviter de tomber dans les pièges classiques/cas d'école.
J'adore lire et écrire en anglais, et j'ai eu des facilités plus jeune car mes parents m'ont fait prendre des cours ludiques dès très jeune, même si eux finalement ne le parlent que très mal.
Comment as-tu fait pour le parler de façon acceptable ?
Avoir eu du vocabulaire dès le départ m'a beaucoup aidé, ensuite, faut pas passer par quatre chemins, mon accent est édifiant tellement il est moche et peu fluide, la seule solution c'est la pratique: il faut voyager ou rencontrer des étranger.
Comment tu fais pour ne pas être stressé avant/pendant un call ?
Je fais pas, en anglais je suis toujours stressé. La seule façon de me calmer est de très bien connaître le sujet pour ne rien louper des subtilités, non de l'anglais, mais du sujet.
Est-ce que tu pourrais être dans l'entreprise où tu es aujourd'hui si tu ne parlais pas anglais ?
En vrai, oui, mais ça serait un gros handicap vu que je contribue à du logiciel libre. Le lire et l'écrire est le strict minimum.
Est-ce que tu as dû te farcir des séries américaines en VO alors que tu détestes ça ?
Je ne déteste pas ça, bien au contraire, je regarde tout en VO y compris le Japonais, le Danois, et le Français (et oui un film français en français est de la VO) [note: je ne parle ni japonais ni danois] - ce que j'aime c'est qu'on entend les vraies voix des acteurs. Les voix en doublage ont toujours une sonorité relative "fausse" et je le sens beaucoup. Si je ne comprends pas, je mets des sous-titres.
Deux avantages ici:
avec les sous titres en français, au mieux ça te familiarise avec les sonorités de la langue, et donc tu es moins perdu le jour ou tu l'entends, c'est plus naturel, même si tu ne comprends finalement pas tout;
avec les sous titres dans la langue d'origine (et donc une transcription, et non une traduction) ça permet de s'améliorer dans la langue extrêmement rapidement, ça associe le visuel des mots à leur sons, et si tu as comme moi une mémoire visuelle, c'est super efficace !
ne te force pas à avoir un accent Anglais hyper classe, ni à parler vite
Très clairement, c'est le meilleur conseil jamais donné: tu auras souvent affaire à des "non native english speakers" (sous entendre des gens qui ne sont pas d'origine anglo-saxonne) et qui auront eux aussi un accent imbuvable. Il faut mieux parler en Giblish (Global English - anglais parlé par les non-natifs; c'est aussi connu sous d'autres noms) et focaliser tes efforts sur ce que tu veux dire plutôt que comment le dire.
Dommage que les autres ne fassent pas pareil, je regrette vraiment que Lenovo ne permette pas de choisir Linux, du coup j'ai gardé le Windows au chaud dans un coin, ça peut toujours me servir.
Quid du prix ? Le site est entièrement en chinois, j'avoue que j'ai du mal à me repérer dedans; quels avantages tires-tu d'avoir les anciens châssis avec du matériel neuf à l'intérieur ?
Par exemple, j'ai un Thinkpad T470 - et OK le prix est probablement plus élevé que sur un modèle équivalent d'une autre marque (genre Asus ou autre) mais en retour j'ai matos qui est proportionnellement plus solide que ses équivalent moins cher (même de bonne marque) et la possibilité d'acheter les pièces détachées (pour remplacer que ce qui casse quand ça casse).
Est-ce que faire confiance à cette entreprise chinoise du coup fourni les mêmes garanties, ou c'est juste pour faire de l’esbroufe ou que aimes réellement beaucoup plus les anciens châssis ?
D'après ce que je lis MONEY peut être casté en float, et si j'ai bien lu la doc, les règles qui s'appliquent sur les calculs dépendent de la locale configurée soit niveau système, soit au niveau de la base, tu n'as donc pas la souplesse que tu souhaites pour gérer plusieurs monnaies différentes.
De plus, stoker seulement en 2 ça veut souvent dire que tu as déjà arrondi tes valeurs calculées pour stoker (par exemple si tu appliques des réductions en % qui peuvent te donner des fractions en résultat).
Si je devais utiliser un type natif de la base, j'utiliserais définitivement un DECIMAL et pas un type money, en tout cas avec PostgreSQL, et surement pas un DECIMAL avec MySQL à cause des cast implicites et des pertes de précision. C'est souvent pour ça que j'ai tendance à conseiller des valeurs en 2 INTEGER et 1 VARCHAR (ou ENUM ou INTEGER) soit le montant, le delta (précision et puissance), et enfin la currency.
A noter que finalement, quand je dis "conseiller", c'est à prendre avec un peu de recul, car ça dépend aussi vraiment du besoin à la base, pour un logiciel de caisse par exemple, tu ne vas gérer qu'une currency et tu stockera toujours tout déjà arrondi puisque tu stockes la somme réellement payée, par exemple dans ce contexte tout ce que je viens de dire semble relativement inutile.
De manière générale, pour le monétaire, je stocke deux INTEGER et non un DOUBLE ni un DECIMAL ni aucun autre type avec précision: le premier INTEGER contient la valeur multipliée par 10la précision - et le second contient la précision.
On calcule et on affiche la précision (2 ou 3 décimales ou autre) selon la monnaie à un moment donné, et tu peux changer globalement la configuration de la précision par monnaie à tout moment dans ton logiciel, les anciennes valeurs stockées ainsi avec la précision à côté sont à l'épreuve du temps.
Problème de cette méthodologie, tu ne peux pas laisser le SQL faire des aggrégats sur les montants si la précision diffère, c'est à la partie logicielle de le faire… Mais la cohérence dans l'espace et le temps à un coût.
Sinon certains SGBD (dont PostgreSQL) ont un type pour le monétaire, mais j'ai jamais testé.
Oui, et je serais toi je ne mettrais pas de partition swap, ni de partition var, juste une pour le boot au cas où ton bios/uefi n'aime pas les trop grosses partitions, et une / avec tout dedans.
Ensuite tu mets ton /home ou comme dit au dessus juste des répertoires de /home.
Le swap, ne fais pas de partition, mais créé toi un fichier à la place, avec un swapon au boot sur le fichier, et mets vm.swapiness à 0 pour demander à ton linux de ne jamais swapper sauf en cas d'extrême nécessité.
Créer plein de partitions sur un poste personnel n'apporte absolument aucune valeur ajoutée, c'est un réflex de vieux adminsys qui n'a pas lieu d'être sur un poste perso. Ça ne t'apporte que des problèmes si jamais tu devais resizer des partitions.
Comme dit plus haut, déjà un simple échappement et validation des entrées/sorties devrait améliorer grandement la chose. Si aussi tu peux placer d'autres sécus comme par exemple, du CSRF ou ce genre de choses ou une authent sur les accès au serveur (ce qui est généralement le strict minimum) ça serait un grand plus.
J'ai pas regardé comment ton JS marche, mais s'il tape directement les scripts PHP directement par leur URL, sans passer par un routeur, tu ne peux pas mutualiser grand chose (je ne parle pas d'aller vers du framework de bourrin, pas forcément besoin, mais a minima il y a besoin de quelque chose ici).
Si j'arrive à trouver le temps, je te filerais quelques hint, mais globalement l'archi n'est pas bonne et les entrées/sorties jamais échappées, déjà corrige ça et t'auras corrigé 90% des potentiels problèmes :)
Je suis allé me balader un peu dans le code, niveau PHP c'est assez oldschool non? Je n'ai pas creusé trop loin mais j'ai déjà vu plusieurs injections potentielles, et il me semble que niveau sécu, c'est carrément 1990 non?
Mais point positif quand même, l'outil à l'air cool, merci.
Depuis pas mal de temps je suis tes journaux, et bien que j'adore ton approche au niveau de l'UI, je n'ai jamais été convaincu, surement à cause d'a priori tout à fait stupides (notamment le fait que banshee plante dès qu'on a plusieurs milliers de titres).
Je viens de tester sur une machine avec un petit moins de 1000 titres et ça à l'air de plutôt bien se comporter, et je suis très agréablement surpris !
C'est un très bon logiciel, très agréable à utiliser, le seul petit bémol pour ma part est que les "menus déroulants" (qui apparaissent quand on clique par exemple sur "listes de lectures") sont un peu petits et on loupe facilement le bon item sur lequel on voulait cliquer… Sinon franchement, rien à redire super boulot.
Ceci étant dit j'envisage de tester sur une autre machine qui emporte avec elle 20 000 et quelques titres pour essayer de mettre le bousin à genoux, si ça marche sans faillir, tu as ma bénédiction pour l'éternité !
# Merci pour ce partage - mais la doc fouque
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Publication de bibliothèques c++ sous licence libre. Évalué à 10. Dernière modification le 15 février 2018 à 14:06.
Merci pour ce partage, je n'ai pas grand chose à y redire sauf que c'est bien. Par contre, un point m'a fait pleurer (histoire de religion, goûts et couleurs tout ça).
On dirait un bien mauvais troll.
Chez nous on dit tout l'inverse, du code qui n'est pas documenté est, à mon avis, du code mort. Quand on tombe sur des milliers de lignes de code sans au moins avoir une doc meta qui explique l'architecture de la solution, sans besoin d'aller dans le détail, on passe notre chemin et on ne considère pas que c'est du logiciel libre, on ne considère que c'est pas du logiciel tout court.
Dans les milliards de lignes de code qu'on trouve sur internet, comment veux-tu qu'on s'y retrouve si on a pas au moins un synopsis, un motto, une courte description ? Du code sans doc, c'est comme si il était déjà dans une poubelle.
[^] # Re: Données personnelles / Smartphone
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Résolution pour 2018. Évalué à 2.
Merci beaucoup pour cette liste, avec F-Droid c'est toujours difficile de séparer le bon du mauvais!
[^] # Re: Pas de résolution
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Résolution pour 2018. Évalué à 3.
Tu utilises le pire de tous car grâce aux mails de ta maman, ceux de ton ou ta ou tes partenaires, et ceux de ton ou ta meilleure pote, et à ceux de ton patron, Google connaît l'intégralité de ta vie perso depuis longtemps.
[^] # Re: Pas de résolution
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Résolution pour 2018. Évalué à 3.
Ça ne sert strictement à rien d'utiliser autant d'extensions pour la privacy, sachant que moulte d'entre elles se croisent et apportent les mêmes features: le result résultat c'est que tu vas ralentir ton browser pour pas grand chose.
Personnellement j'utilise uniquement uBlock origin et Privacy Badger, ça suffit. Privacy Badger n'est finalement même pas utile car lui même implémente un sous-set d'uBlock - je le garde uniquement car j'aime cette démarche ludique et interactive pour le blocage.
La plupart des anti-pubs, enfin ceux qui ne sont pas sponsorisés (adblock c'est honteux) bloquent bien plus que simplement les pubs, et se basent absolument tous sur les mêmes listes et donc aboutissent au même résultat, sauf quand ils whitelist volontairement des fournisseurs de pub pour des raisons pécuniaires (hein adblock).
Une autre fonctionnalité vraiment pas mal de Firefox, c'est les "container tabs" (des onglets d'une couleur différente) qui isolent les cookies, sessions, et site data.
[^] # Re: Navigateur
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Résolution pour 2018. Évalué à 6.
C'est étonnant, j'ai un smartphone qui a 4 ans (un Samsung S5 mini+) et j'utilise Firefox depuis toujours - comparé au stock browser Android, il est beaucoup plus rapide, et plante presque jamais.
Pour info, j'utilise une ROM Lineage (0-google) - peut-être, et même sûrement, les ROM constructeur officielles sont en grande partie responsables des lenteurs.
# Puis-je me permettre de tester avec d'autres langages / vm
Posté par Christie Poutrelle (site web personnel) . En réponse au journal [Humour] vers un monde différent. Évalué à 4. Dernière modification le 18 décembre 2017 à 15:30.
[pounard@guinevere] /home/pounard
[^] # Re: Optimisez la clarté de votre code !
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Optimisez votre code !. Évalué à 2. Dernière modification le 07 décembre 2017 à 17:25.
Utilise https://github.com/box/spout http://opensource.box.com/spout/ c'est très exactement fait pour ça.
[^] # Re: Optimisez la clarté de votre code !
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Optimisez votre code !. Évalué à 1.
Ouais en effet, ça paraît logique.
[^] # Re: Optimisez la clarté de votre code !
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Optimisez votre code !. Évalué à 1. Dernière modification le 07 décembre 2017 à 17:04.
Par exemple https://github.com/php/php-src/blob/6053987bc27e8dede37f437193a5cad448f99bce/ext/dom/document.c#L1473 (ext-dom) va lire le fichier en entier via https://github.com/php/php-src/blob/6053987bc27e8dede37f437193a5cad448f99bce/ext/dom/document.c#L1352 qui utilise http://xmlsoft.org/html/libxml-parser.html#xmlParseDocument - et là je perds mes petits parce qu'apparemment en interne ça utilise un SAX parser, qui n'est pas donc pas supposer charger le fichier en entier.
Alors que XMLReader ici https://github.com/php/php-src/blob/6053987bc27e8dede37f437193a5cad448f99bce/ext/xmlreader/php_xmlreader.c#L884 (ext-xml) utilise http://xmlsoft.org/html/libxml-xmlreader.html#xmlReaderForFile et ce n'est pas précisé dans la documentation si il charge le fichier en entier ou non.
A noter, ça fait longtemps que je ne l'ai pas utilisé, mais à l'époque, utilise XMLReader et XMLWriter m'avait sauvé d'un bon nombre de memory limit exceeded en PHP.
[^] # Re: Optimisez la clarté de votre code !
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Optimisez votre code !. Évalué à 2.
En effet (cf https://secure.php.net/manual/en/xmlreader.requirements.php ) tu as raison - peut-être qu'il utilise l'API plus bas niveau que les autres. Je sais que l'API DOMDocument ainsi que SimpleXML sont basée sur la libxml elle aussi - mais eux parsent les fichiers en entier pour les charger. Je me suis donc trompé :)
Cependant le reste reste vrai, à savoir que XMLReader est basée sur un curseur sur le fichier, et ne le parse pas au complet, de mémoire (à moins que ça ait changé mais ça m'étonnerais) tu peux parser du XML invalide (en théorie je dis bien) avec jusqu'au moment ou tu tombes sur la partie cassée.
[^] # Re: Optimisez la clarté de votre code !
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Optimisez votre code !. Évalué à 8.
C'est absolument vrai, il faut toujours éviter les "premature optimization" - cependant, la performance commence toujours par une architecture logicielle claire et pensée en premier lieu pour les performances. Quand on importe toutes les semaines de centaines de milliers de lignes de gros fichiers XML, la mécanique a sérieusement intérêt à avoir été pensée pour dès le départ.
Par exemple, l'auteur parle de Drupal, et je sais de quoi je parle j'en fais depuis presque 10 ans, et je suis certain que les gens ayant commencé le site ont utilisé les API de Drupal pour injecter le contenu. Cependant, ça devient très vite très compliqué (ça aurait été pareil avec une application Symfony ou Django basée sur un ORM) - où est la barrière que je peux franchir ou pas pour respecter les performances ? Est-ce que j'accepte de contourner les API du logiciel et potentiellement avoir des données obsolète dès leur import (évènements non lancés, listeners non reveillés) où est-ce que j'accepte que ce soit juste lent mais m'assure que tout le monde ai bien sa chance d'intervenir logiciellement au moment de l'injection des donnée ?
La réponse que j'aurais apporté à ce genre de problématique c'est que bien souvent l'outil de base est mal choisi, et dès ce moment, avant même qu'une seule ligne du logiciel existe, ce choix aurait pu permettre d'éviter d'avoir se poser ces questions là.
Puis, pour revenir au XML, utiliser du XPath, sérieusement ? Pour des très gros imports, si tu sais ce que tu fais et que tu connais le schéma, il faut mieux utiliser un lecteur séquentiel, comme l'API XMLReader, qui va juste être incroyablement plus rapide et ne pas consommer de mémoire, là où les implémentations basées sur la libxml2 (c'est à dire toutes en PHP, sauf l'API XML(Reader|Writer)) nécessitent de charger le fichier XML intégralement en mémoire, et en profitent pour passer une phase d'autocorrection du contenu (si si, ça le fait, et même plutôt bien).
Bref, les performances ça se prépare en amont:
# Plutôt à l'aise, même si j'ai un accent atroce
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Votre rapport à l’anglais ?. Évalué à 4. Dernière modification le 05 décembre 2017 à 11:24.
J'adore lire et écrire en anglais, et j'ai eu des facilités plus jeune car mes parents m'ont fait prendre des cours ludiques dès très jeune, même si eux finalement ne le parlent que très mal.
Avoir eu du vocabulaire dès le départ m'a beaucoup aidé, ensuite, faut pas passer par quatre chemins, mon accent est édifiant tellement il est moche et peu fluide, la seule solution c'est la pratique: il faut voyager ou rencontrer des étranger.
Je fais pas, en anglais je suis toujours stressé. La seule façon de me calmer est de très bien connaître le sujet pour ne rien louper des subtilités, non de l'anglais, mais du sujet.
En vrai, oui, mais ça serait un gros handicap vu que je contribue à du logiciel libre. Le lire et l'écrire est le strict minimum.
Je ne déteste pas ça, bien au contraire, je regarde tout en VO y compris le Japonais, le Danois, et le Français (et oui un film français en français est de la VO) [note: je ne parle ni japonais ni danois] - ce que j'aime c'est qu'on entend les vraies voix des acteurs. Les voix en doublage ont toujours une sonorité relative "fausse" et je le sens beaucoup. Si je ne comprends pas, je mets des sous-titres.
Deux avantages ici:
[^] # Re: Ma vie, mon oeuvre
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Votre rapport à l’anglais ?. Évalué à 6.
Très clairement, c'est le meilleur conseil jamais donné: tu auras souvent affaire à des "non native english speakers" (sous entendre des gens qui ne sont pas d'origine anglo-saxonne) et qui auront eux aussi un accent imbuvable. Il faut mieux parler en Giblish (Global English - anglais parlé par les non-natifs; c'est aussi connu sous d'autres noms) et focaliser tes efforts sur ce que tu veux dire plutôt que comment le dire.
# Dommage que les autres ne fassent pas pareil
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Ordinateurs portables Dell sous Linux. Évalué à 0.
Dommage que les autres ne fassent pas pareil, je regrette vraiment que Lenovo ne permette pas de choisir Linux, du coup j'ai gardé le Windows au chaud dans un coin, ça peut toujours me servir.
# Pette question, mais pourquoi (ce n'est pas un troll) ?
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Acheter un Thinkpad moddé, première partie. Évalué à 4. Dernière modification le 27 novembre 2017 à 13:11.
Quid du prix ? Le site est entièrement en chinois, j'avoue que j'ai du mal à me repérer dedans; quels avantages tires-tu d'avoir les anciens châssis avec du matériel neuf à l'intérieur ?
Par exemple, j'ai un Thinkpad T470 - et OK le prix est probablement plus élevé que sur un modèle équivalent d'une autre marque (genre Asus ou autre) mais en retour j'ai matos qui est proportionnellement plus solide que ses équivalent moins cher (même de bonne marque) et la possibilité d'acheter les pièces détachées (pour remplacer que ce qui casse quand ça casse).
Est-ce que faire confiance à cette entreprise chinoise du coup fourni les mêmes garanties, ou c'est juste pour faire de l’esbroufe ou que aimes réellement beaucoup plus les anciens châssis ?
# +1
Posté par Christie Poutrelle (site web personnel) . En réponse au journal A payé. Évalué à 2.
J'ai donné aussi, peu, mais si tout le monde faisait de même, la fondation n'aurait plus rien à craindre.
[^] # Re: Monnaie = danger
Posté par Christie Poutrelle (site web personnel) . En réponse au journal SQL Decimal vs Double. Évalué à 1. Dernière modification le 12 septembre 2017 à 10:35.
D'après ce que je lis MONEY peut être casté en float, et si j'ai bien lu la doc, les règles qui s'appliquent sur les calculs dépendent de la locale configurée soit niveau système, soit au niveau de la base, tu n'as donc pas la souplesse que tu souhaites pour gérer plusieurs monnaies différentes.
De plus, stoker seulement en 2 ça veut souvent dire que tu as déjà arrondi tes valeurs calculées pour stoker (par exemple si tu appliques des réductions en % qui peuvent te donner des fractions en résultat).
Si je devais utiliser un type natif de la base, j'utiliserais définitivement un DECIMAL et pas un type money, en tout cas avec PostgreSQL, et surement pas un DECIMAL avec MySQL à cause des cast implicites et des pertes de précision. C'est souvent pour ça que j'ai tendance à conseiller des valeurs en 2 INTEGER et 1 VARCHAR (ou ENUM ou INTEGER) soit le montant, le delta (précision et puissance), et enfin la currency.
A noter que finalement, quand je dis "conseiller", c'est à prendre avec un peu de recul, car ça dépend aussi vraiment du besoin à la base, pour un logiciel de caisse par exemple, tu ne vas gérer qu'une currency et tu stockera toujours tout déjà arrondi puisque tu stockes la somme réellement payée, par exemple dans ce contexte tout ce que je viens de dire semble relativement inutile.
# Monnaie = danger
Posté par Christie Poutrelle (site web personnel) . En réponse au journal SQL Decimal vs Double. Évalué à 3.
De manière générale, pour le monétaire, je stocke deux INTEGER et non un DOUBLE ni un DECIMAL ni aucun autre type avec précision: le premier INTEGER contient la valeur multipliée par 10la précision - et le second contient la précision.
On calcule et on affiche la précision (2 ou 3 décimales ou autre) selon la monnaie à un moment donné, et tu peux changer globalement la configuration de la précision par monnaie à tout moment dans ton logiciel, les anciennes valeurs stockées ainsi avec la précision à côté sont à l'épreuve du temps.
Problème de cette méthodologie, tu ne peux pas laisser le SQL faire des aggrégats sur les montants si la précision diffère, c'est à la partie logicielle de le faire… Mais la cohérence dans l'espace et le temps à un coût.
Sinon certains SGBD (dont PostgreSQL) ont un type pour le monétaire, mais j'ai jamais testé.
# Série de mon enfance
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Financement participatif pour Magit. Évalué à 0.
Elle voit souvent rouge, avec elle ça bouge, voilà Magit !
[^] # Re: perso...
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Du bon partitionnement entre un SSD et un HDD . Évalué à 4.
Oui, et je serais toi je ne mettrais pas de partition swap, ni de partition var, juste une pour le boot au cas où ton bios/uefi n'aime pas les trop grosses partitions, et une / avec tout dedans.
Ensuite tu mets ton /home ou comme dit au dessus juste des répertoires de /home.
Le swap, ne fais pas de partition, mais créé toi un fichier à la place, avec un swapon au boot sur le fichier, et mets vm.swapiness à 0 pour demander à ton linux de ne jamais swapper sauf en cas d'extrême nécessité.
Créer plein de partitions sur un poste personnel n'apporte absolument aucune valeur ajoutée, c'est un réflex de vieux adminsys qui n'a pas lieu d'être sur un poste perso. Ça ne t'apporte que des problèmes si jamais tu devais resizer des partitions.
[^] # Re: Perso, j'installe pas ça chez moi
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Olcc-NG : un nouveau client de messagerie moderne et efficace. Évalué à 3.
Ouaip, désolé j'ai répondu au mauvais endroit: https://linuxfr.org/users/soulfly_b/journaux/olcc-ng-un-nouveau-client-de-messagerie-moderne-et-efficace#comment-1680865
Comme dit plus haut, déjà un simple échappement et validation des entrées/sorties devrait améliorer grandement la chose. Si aussi tu peux placer d'autres sécus comme par exemple, du CSRF ou ce genre de choses ou une authent sur les accès au serveur (ce qui est généralement le strict minimum) ça serait un grand plus.
J'ai pas regardé comment ton JS marche, mais s'il tape directement les scripts PHP directement par leur URL, sans passer par un routeur, tu ne peux pas mutualiser grand chose (je ne parle pas d'aller vers du framework de bourrin, pas forcément besoin, mais a minima il y a besoin de quelque chose ici).
[^] # Re: Perso, j'installe pas ça chez moi
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Olcc-NG : un nouveau client de messagerie moderne et efficace. Évalué à 1.
Si j'arrive à trouver le temps, je te filerais quelques hint, mais globalement l'archi n'est pas bonne et les entrées/sorties jamais échappées, déjà corrige ça et t'auras corrigé 90% des potentiels problèmes :)
# Perso, j'installe pas ça chez moi
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Olcc-NG : un nouveau client de messagerie moderne et efficace. Évalué à 6.
Je suis allé me balader un peu dans le code, niveau PHP c'est assez oldschool non? Je n'ai pas creusé trop loin mais j'ai déjà vu plusieurs injections potentielles, et il me semble que niveau sécu, c'est carrément 1990 non?
Mais point positif quand même, l'outil à l'air cool, merci.
# Ravivi
Posté par Christie Poutrelle (site web personnel) . En réponse au journal Lollypop 0.9.86 vient de sortir. Évalué à 3.
Depuis pas mal de temps je suis tes journaux, et bien que j'adore ton approche au niveau de l'UI, je n'ai jamais été convaincu, surement à cause d'a priori tout à fait stupides (notamment le fait que banshee plante dès qu'on a plusieurs milliers de titres).
Je viens de tester sur une machine avec un petit moins de 1000 titres et ça à l'air de plutôt bien se comporter, et je suis très agréablement surpris !
C'est un très bon logiciel, très agréable à utiliser, le seul petit bémol pour ma part est que les "menus déroulants" (qui apparaissent quand on clique par exemple sur "listes de lectures") sont un peu petits et on loupe facilement le bon item sur lequel on voulait cliquer… Sinon franchement, rien à redire super boulot.
Ceci étant dit j'envisage de tester sur une autre machine qui emporte avec elle 20 000 et quelques titres pour essayer de mettre le bousin à genoux, si ça marche sans faillir, tu as ma bénédiction pour l'éternité !
[^] # Re: Réaction
Posté par Christie Poutrelle (site web personnel) . En réponse au journal La saga FFmpeg continue. Évalué à -10.
Qui de l'équipe jaune ou de l'équipe rouge va gagner l'épreuve d'immunité ?