J'ai été un plus loin que ce document qui je connais depuis quelques années.
C'est toujours agaçant de se faire moinser par des gens qui ne comprennent pas ce qu'ils font.
Si ton nombre rentre dans la mantisse, tu as aucun soucis de plus que tu n'en aurais avec un entier. Point à la ligne. C'est si compliqué à comprendre ?
Les arrondis round-to-even te répartissent au mieux les erreurs de calcul garanti à 1/2 LSB par calcul. C'est sûr que si tu t'amuses à mélanger des nombres énorme et tout petit, ton nombre ne rentre plus dans la mantisse et l'exposant rentre en jeu avec toutes les annulations de bits qui vont avec.
Ensuite, les nombres IEEE, c'est de la "grosse merde", car ce n'est pas un corp, ni un anneau, tu ne peux pas faire des maths avec. C'est beaucoup plus simple de faire l'inverse : raisonner avec des nombres ayant un range et une précision à mapper sur des nombres flottants.
Il y a bien des gens qui font des comptes avec excel sachant qu'excel rajoute une couche intermédiaire de sérialisation/déserialisation vers du décimal (pour rappel 0.1 ne s'exprime pas en nombre flottant).
C'est le fait que la mantisse est de 54 (je n'ai pas mis ce chiffre par hasard…) ou 24 bits qui te fait perdre des bis de précision, et cela n'a rien à voir avec le min et le max. Les arrondis de calcul sont assez bien maitrisés.
Faire une architecture correct et simple, ou recoder une fonction qui existe déjà pour aller plus vite, ce n'est pas la même démarche. Pas du tout.
Si tu recodes String.split, alors que tu n'utilises cette fonction uniquement pour lire une configuration à l'init, cela ne sert à rien. Par exemple.
_"Quand ton produit est à taille humaine, on est tout à fait capable d'estimer "au pif" si telle ou telle solution est viable et de le POCé/testé en quelques minutes si on a besoin de chiffre." _
Sauf pour le gros grain, mais une fois ton archi faite, en général les estimations aux doigts mouillés des "bottlenecks" de performance, sont en général fausses.
"Si tu n'as plus junior devant ton nom tu sais aussi commencer à estimer ce qui va coûter cher ou non et le mesurer corriger ASAP pour ne pas cumuler des choses non-rattrapables."
En général, ceux qui disent ça, n'ont plus "junior" devant leur titre, mais par encore "senior" ou "expert".
Je confirme, il y a 2 moyens de gagner du temps :
- avoir une bonne archi (ne pas faire 2 fois le même boulot couteux, éviter un parcours exponentiel.)
- hacker (refaire les trucs à la main, …)
Le 1er se fait en amont, avec des gains monstrueux à la clef (x1000). Le 2ième te fait gagner x10 maxi.
En général, les optimisations prématurées ne font rien gagné du tout, et rajoutent des bugs. C'est plus difficile de faire marcher un truc le plus simplement du monde (== moins de code, moins de bug, plus petit,…), que de le faire aller plus vite ensuite.
Franchement, dans le cycle de dev, l'optimisation en temps arrive à la toute fin, et en général, on a pas le temps, sauf si cela devient une "feature".
L'optimisation a aussi un coup de maintenance (code peu lisible, plus gros, etc…). Et souvent, cela ne vaut pas le cout d'optimiser. Le seul moyen de savoir si cela vaut le cout, c'est de faire des mesures (donc à la fin d'un dev).
« ABC: Always Be Coding » est à rapprocher d'un autre article sur le même sujet, mais qui donne des conseils à ceux qui pose des questions.
L'auteur de cette article propose de savoir écrire les yeux fermé des algo comme A*, des parcours de graph et autre algo de trie. La facilité de faire cela serait un bon moyen d'être embauché.
Mais quel informaticien écrit en moyenne par mois, de tel algo ? Personne ou presque. Un codeur passe son temps à architecturer du code, prévoir plus ou moins l'avenir, revoir les besoins du "clients", debuguer. Mais certain aucun temps à faire ce genre d'exercice.
Concernant les structures de données, il ne sert à rien d'avoir des collections complexe pour des tailles inférieurs à 100. Le O(1) cache souvent un cout fixe énorme, il ne faut pas jeter trop vite les bon vieux tableaux ou liste chainé.
L'article parle de "team work" et que MS serait aller bien plus loin que les autres. En sachant tout cela, je ne comprends plus comment il serait possible pour une boite française un peu sensible, d'utiliser un seul logiciel ou service US.
Un bug subtile à la openbsd (de mémoire) a peu de chance d'être détecté. De plus, comment être sûr que le binaire qui tourne est le même que celui compilé ? Il est possible de faire des diff telquel ? Une backdoor ajouté par un compilateur, cela a été aussi déjà fait il y a longtemps. Et avec les méthodes de mise à jour en ligne, comment être sûr qu'une backdoor n'est pas ajouté en même temps ?
Les caches de µops étaient utilisé dans le Pentium 4, mais plus maintenant, cela prendre trop de place (sauf gestion de boucle).
Si ARM ne fait pas quelques intructions spécialisées pour tout ce qui est couteux (controlleur DRAM dans le cpu, instruction pour les hash, la compression, la crypto), ils se feront manger par intel.
La consomation statique est gérée depuis longtemps : on coupe tout (horloge et alimentation). Les téchniques sont connues. Le vrai défi c'est la consommation max à 100%, quand on navigue sur internet ou joue a Angry Bird.
En effet, Texas instrument avait ses propres usines orienté basse consommation, mais aujourd'hui utilise une fab coréenne comme tout le monde presque, sauf intel. Ils ont ainsi perdu leur avance sur la consommation.
L'avantage est tellement énorme de rester compatible PC, que jamais intel ne fera l'erreur d'inventer encore un nouveau truc. ARM n'a pas vraiment de définition d'architecture d'ordinateur, il suffit de voir les drviers linux de plateforme arm, pour le comprendre.
Le x86 peut contenir des sortes de vliw internes, c'est un peu loin des RISC.
"C'est aussi quelque chose de primordial à saisir pour appréhender les obstacles qu'a le x86 à franchir pour la basse consommation,"
Le seul problème de intel est son inertie interne, c'est tout. Le x86 a par exemple une densité de code très élèvé, supérieur à l'arm. C'est un avantage énorme pour l'efficacité du cache de code.
Intel a sorti, il y a 5 ans, un cpu qui consommait en sommeil autant qu'un ARM à 100%. Aujourd'hui, le dernier soc intel (medfield) consomme moins, soit moins de mips par watt qu'un arm.
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 2.
J'ai été un plus loin que ce document qui je connais depuis quelques années.
C'est toujours agaçant de se faire moinser par des gens qui ne comprennent pas ce qu'ils font.
Si ton nombre rentre dans la mantisse, tu as aucun soucis de plus que tu n'en aurais avec un entier. Point à la ligne. C'est si compliqué à comprendre ?
Les arrondis round-to-even te répartissent au mieux les erreurs de calcul garanti à 1/2 LSB par calcul. C'est sûr que si tu t'amuses à mélanger des nombres énorme et tout petit, ton nombre ne rentre plus dans la mantisse et l'exposant rentre en jeu avec toutes les annulations de bits qui vont avec.
Ensuite, les nombres IEEE, c'est de la "grosse merde", car ce n'est pas un corp, ni un anneau, tu ne peux pas faire des maths avec. C'est beaucoup plus simple de faire l'inverse : raisonner avec des nombres ayant un range et une précision à mapper sur des nombres flottants.
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 2.
Il y a bien des gens qui font des comptes avec excel sachant qu'excel rajoute une couche intermédiaire de sérialisation/déserialisation vers du décimal (pour rappel 0.1 ne s'exprime pas en nombre flottant).
"La première sécurité est la liberté"
[^] # Re: Partout pareil
Posté par Nicolas Boulay (site web personnel) . En réponse au journal L'Open Source chez OVH. Évalué à 10.
Mais c'est la crise mon bon monsieur, on ne peut pas tout avoir, sur les 10 junior exploité, il y en a qu'1 ou 2 qui partent…
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à -6.
C'était purement gratuit. Java doit avoir le même genre de performance que "gcc -O0" et encore, tant que le garbage collector n'entre pas en compte.
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 0.
C'est le fait que la mantisse est de 54 (je n'ai pas mis ce chiffre par hasard…) ou 24 bits qui te fait perdre des bis de précision, et cela n'a rien à voir avec le min et le max. Les arrondis de calcul sont assez bien maitrisés.
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à -4.
Si tu as sur ton compte de quoi faire des overflow à 54 bits, cela commence à faire pas mal…
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à -3.
Si tu as d'énorme besoin de perf, tu ne commences pas par coder en java, et pourtant tout le monde le fait.
"La première sécurité est la liberté"
[^] # Re: Sécurité du DES
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à 3.
Ou dans le générateur aléatoire dans le cas de crypto à clef publique…
"La première sécurité est la liberté"
[^] # Re: non-libre
Posté par Nicolas Boulay (site web personnel) . En réponse au journal une mise en demeure de la part de TF1, pour l'auteur de Captvty. Évalué à 4.
Je pense que les restrictions géographique peuvent être vu comme un DRM, et donc un proxy contourne ce genre de DRM.
Faut-il encore que ce DRM soit "efficace".
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 4.
Faire une architecture correct et simple, ou recoder une fonction qui existe déjà pour aller plus vite, ce n'est pas la même démarche. Pas du tout.
Si tu recodes String.split, alors que tu n'utilises cette fonction uniquement pour lire une configuration à l'init, cela ne sert à rien. Par exemple.
_"Quand ton produit est à taille humaine, on est tout à fait capable d'estimer "au pif" si telle ou telle solution est viable et de le POCé/testé en quelques minutes si on a besoin de chiffre." _
Sauf pour le gros grain, mais une fois ton archi faite, en général les estimations aux doigts mouillés des "bottlenecks" de performance, sont en général fausses.
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 2.
"Si tu n'as plus junior devant ton nom tu sais aussi commencer à estimer ce qui va coûter cher ou non et le mesurer corriger ASAP pour ne pas cumuler des choses non-rattrapables."
En général, ceux qui disent ça, n'ont plus "junior" devant leur titre, mais par encore "senior" ou "expert".
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 5.
Je confirme, il y a 2 moyens de gagner du temps :
- avoir une bonne archi (ne pas faire 2 fois le même boulot couteux, éviter un parcours exponentiel.)
- hacker (refaire les trucs à la main, …)
Le 1er se fait en amont, avec des gains monstrueux à la clef (x1000). Le 2ième te fait gagner x10 maxi.
En général, les optimisations prématurées ne font rien gagné du tout, et rajoutent des bugs. C'est plus difficile de faire marcher un truc le plus simplement du monde (== moins de code, moins de bug, plus petit,…), que de le faire aller plus vite ensuite.
"La première sécurité est la liberté"
[^] # Re: Intérêt de la chose
Posté par Nicolas Boulay (site web personnel) . En réponse au journal A quand la prochaine secousse sismique dans le monde High-Tech ?. Évalué à 2.
y'a pas de "finger gesture" pour remplacer le bouton "home" ?
"La première sécurité est la liberté"
[^] # Re: Intérêt de la chose
Posté par Nicolas Boulay (site web personnel) . En réponse au journal A quand la prochaine secousse sismique dans le monde High-Tech ?. Évalué à 2.
Envois ton cahier des charges au fabricant du Qooq, cela pourrait les intéresser :)
Par contre, ne néglige pas les possibilités de livre un peu plus dynamique qu'un simple texte : animation, mini application, etc…
"La première sécurité est la liberté"
[^] # Re: quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 7.
Franchement, dans le cycle de dev, l'optimisation en temps arrive à la toute fin, et en général, on a pas le temps, sauf si cela devient une "feature".
L'optimisation a aussi un coup de maintenance (code peu lisible, plus gros, etc…). Et souvent, cela ne vaut pas le cout d'optimiser. Le seul moyen de savoir si cela vaut le cout, c'est de faire des mesures (donc à la fin d'un dev).
"La première sécurité est la liberté"
[^] # Re: Et tu aurais voulu qu'ils fassent quoi d'autre ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à -3.
eglibc n'est pas glibc, il est question de code static, ce qui est rare.
"La première sécurité est la liberté"
# quelques points
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #29. Évalué à 10. Dernière modification le 17 juillet 2013 à 10:21.
« ABC: Always Be Coding » est à rapprocher d'un autre article sur le même sujet, mais qui donne des conseils à ceux qui pose des questions.
L'auteur de cette article propose de savoir écrire les yeux fermé des algo comme A*, des parcours de graph et autre algo de trie. La facilité de faire cela serait un bon moyen d'être embauché.
Mais quel informaticien écrit en moyenne par mois, de tel algo ? Personne ou presque. Un codeur passe son temps à architecturer du code, prévoir plus ou moins l'avenir, revoir les besoins du "clients", debuguer. Mais certain aucun temps à faire ce genre d'exercice.
Concernant les structures de données, il ne sert à rien d'avoir des collections complexe pour des tailles inférieurs à 100. Le O(1) cache souvent un cout fixe énorme, il ne faut pas jeter trop vite les bon vieux tableaux ou liste chainé.
"La première sécurité est la liberté"
[^] # Re: Et tu aurais voulu qu'ils fassent quoi d'autre ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à 3.
Un logiciel se vérifier ? Comment ? Le moindre logiciel MS semble prendre des Go sur disque, comment vérifier ?
"La première sécurité est la liberté"
[^] # Re: Et tu aurais voulu qu'ils fassent quoi d'autre ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Microsoft : pbpg a-t-il eu une attaque ? "Votre vie privée est notre priorité". Évalué à 2.
L'article parle de "team work" et que MS serait aller bien plus loin que les autres. En sachant tout cela, je ne comprends plus comment il serait possible pour une boite française un peu sensible, d'utiliser un seul logiciel ou service US.
"La première sécurité est la liberté"
# D'ou vient le nombre minimal ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Comment fonctionne Bitcoin. Évalué à 2.
Dans l'opération :
HASH ( bloc + nonce ) < XXX
D’où vient le XXX ? qui décide de sa valeur basse ?
"La première sécurité est la liberté"
[^] # Re: Bof
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Espionnage sous Linux ou délire paranoïaque ?. Évalué à 4.
Un bug subtile à la openbsd (de mémoire) a peu de chance d'être détecté. De plus, comment être sûr que le binaire qui tourne est le même que celui compilé ? Il est possible de faire des diff telquel ? Une backdoor ajouté par un compilateur, cela a été aussi déjà fait il y a longtemps. Et avec les méthodes de mise à jour en ligne, comment être sûr qu'une backdoor n'est pas ajouté en même temps ?
"La première sécurité est la liberté"
[^] # Re: p2p-wars ?
Posté par Nicolas Boulay (site web personnel) . En réponse au message Je retrouve pas... un texte sur linux, le LL et tout ça, en parodie de StarWars. Évalué à 4.
Surtout surtout, ne commencez pas à lire ! Vous allez perdre 3 jours de votre vie.
"La première sécurité est la liberté"
[^] # Re: Je maintiens qu'il y a une partie qui n'est pas terrible
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 7.
Les caches de µops étaient utilisé dans le Pentium 4, mais plus maintenant, cela prendre trop de place (sauf gestion de boucle).
Si ARM ne fait pas quelques intructions spécialisées pour tout ce qui est couteux (controlleur DRAM dans le cpu, instruction pour les hash, la compression, la crypto), ils se feront manger par intel.
La consomation statique est gérée depuis longtemps : on coupe tout (horloge et alimentation). Les téchniques sont connues. Le vrai défi c'est la consommation max à 100%, quand on navigue sur internet ou joue a Angry Bird.
"La première sécurité est la liberté"
[^] # Re: Je maintiens qu'il y a une partie qui n'est pas terrible
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 6.
En effet, Texas instrument avait ses propres usines orienté basse consommation, mais aujourd'hui utilise une fab coréenne comme tout le monde presque, sauf intel. Ils ont ainsi perdu leur avance sur la consommation.
L'avantage est tellement énorme de rester compatible PC, que jamais intel ne fera l'erreur d'inventer encore un nouveau truc. ARM n'a pas vraiment de définition d'architecture d'ordinateur, il suffit de voir les drviers linux de plateforme arm, pour le comprendre.
"La première sécurité est la liberté"
[^] # Re: Je maintiens qu'il y a une partie qui n'est pas terrible
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 4.
Le x86 peut contenir des sortes de vliw internes, c'est un peu loin des RISC.
"C'est aussi quelque chose de primordial à saisir pour appréhender les obstacles qu'a le x86 à franchir pour la basse consommation,"
Le seul problème de intel est son inertie interne, c'est tout. Le x86 a par exemple une densité de code très élèvé, supérieur à l'arm. C'est un avantage énorme pour l'efficacité du cache de code.
Intel a sorti, il y a 5 ans, un cpu qui consommait en sommeil autant qu'un ARM à 100%. Aujourd'hui, le dernier soc intel (medfield) consomme moins, soit moins de mips par watt qu'un arm.
"La première sécurité est la liberté"