PROJET AUTOBLOG


le hollandais volant

Site original : le hollandais volant

⇐ retour index

Détruire la mythe de la batterie qui se charge en 3 secondes

lundi 4 février 2019 à 22:14

recharger un PC
Actuellement, le principal problème des appareils électriques comme les téléphones et les voitures électriques, c’est l’autonomie et le temps de charge. Aussi, si le temps de charge était réduit à quelques secondes, un gros problème serait déjà résolu.

Malheureusement, ça ne sera jamais le cas.

C’est une question de débit d’énergie électrique, autrement dit de puissance. Aujourd’hui, la majorité des téléphones sont rechargés avec de l’USB, en général sous 5 volt et 1 ampère (5 V/1 A), soit 5×1 = 5 W de puissance.

Une batterie Li-ion de 3 000 mAh contient 11,1 Wh d’énergie. Ça signifie, qu’il faudrait 1 h pour recharger le téléphone sous 11,1 W. Avec la puissance de l’USB, il faut donc 11,1 Wh ÷ 5 W = 2,22 heures (2 h 15 environ — en réalité il faut un peu plus, à cause des circuits internes et des pertes, comme l’échauffement).

Le truc maintenant : si on veut diviser le temps de charge par 2, 5 ou 10, alors il faut augmenter la puissance par 2, 5 ou 10.

Réduire le temps de chargement à 3 secondes revient utiliser un facteur de 2 700 (car 2 700 × 3 secondes correspondent à 2 h 15 minutes). La puissance, devra-t-elle être multipliée par 2 700.

De 5 W, on passera à 13 500 W. Cette puissance est celle de 18 chevaux (des « chevaux-vapeur »).

C’est une puissance considérable : la plupart des maisons sont équipées pour 6 000 W ou 9 000 W (des kVA en fait, mais c’est pas le sujet). Recharger un téléphone, même pendant seulement 3 secondes fera sauter les plombs chez vous, vous évitant de brûler votre maison avec une puissance trop important traversant votre installation électrique.

Et ça, c’est simplement pour recharger un téléphone de 150 grammes.
Pour une voiture électrique contenant environ 900 kilos de batteries, la puissance requise pour la recharger en 3 secondes serait celle d’une ville de 30 000 habitants.

C’est ridicule.

Alors oui, on peut essayer de faire mieux que 45 minutes, et réduire ça à 30 voire 15 minutes (ce qui serait déjà pas mal), mais guère au-delà. Déjà parce que votre maison ne le supporterait pas, mais votre téléphone non plus. Déjà que la charge « rapide » en USB-C est mauvaise et chauffe votre appareil, alors une puissance encore plus grande… n’en parlons pas.

image d’en-tête de James Chao

Oui, j’avais déjà fait un article sur la question, mais j’espère que celui-ci est plus clair.

À propos des propositions sorties du débat sur « la parole aux Français »

samedi 26 janvier 2019 à 13:54

Mon avis rapide sur ça :

Prison ferme pour les fraudeurs fiscaux, impôt sur la nationalité, retour de l'ISF... les propositions faites dans l'émission «La parole aux Français» | www.cnews.fr

Élargir la liste des produits de première nécessité et abaisser leur TVA à 0% (88% des téléspectateurs de l'émission se sont prononcés en faveur)

+1

En particulier pour la « women-tax » comme on l’appelle parfois.

Retour de l'impôt sur la fortune avec des tranches plus élevées et une exonération pour les personnes investissant dans les PME (77% des téléspectateurs de l'émission se sont prononcés en faveur)

+1
J’aurais dit « davantage de tranches », plutôt, pour un truc plus progressif (voire continu).

Remise à plat et examen des niches fiscales (93% des téléspectateurs de l'émission se sont prononcés en faveur)

Gros +1.

Ce matin je vois passer qu’en Europe, c’est 800 milliards de fraude. Rapporté aux 350 millions d’habitants de l’UE, ça fait ~2 500 €/an par personne sur lequel les gens s’assoient en Europe à cause de l’évasion fiscale.

2 500 €/an, c’est comme si tout le monde s’asseyait sur un 1 à 2 mois de salaire.

Mise en place de l'impôt sur la nationalité

J’ai bondi en lisant ça (« faire payer un impôt par les étrangers ? »), mais en fait c’est juste faire payer les gens qui vivent à l’étranger. En gros, si tu es Français vivant ailleurs, tu payes un impôt.

Dans les deux cas, j’aurais tendance à dire non : les impôts doivent être payés sur les revenus et là où ils sont générés.

Si un étranger vient ici, il paye son impôt ici.
Si un Français va ailleurs, il paye son impôt ailleurs. J’ai pas de problème avec ça.

Donc −1.

Suppression de la CSG pour les retraités qui perçoivent moins de 2.000 euros par mois (86% des téléspectateurs de l'émission se sont prononcés en faveur)

À voir pour où placer la barre, mais +1.
Je ne suis pas non plus convaincu de la pertinence de faire payer une CSG à des gens qui ont déjà contribué toute une vie active (qui est faite pour ça). La retraite, on la leur doit. Ce n’est pas un revenu, c’est leurs économies.

En revanche, faire payer des charges sur les autres revenus qu’ils se font à côté, oui, et au même taux que n’importe quel revenu (mais c’est probablement déjà le cas).

Revalorisation des retraites (91% des téléspectateurs de l'émission se sont prononcés en faveur)

+1

Instauration d'un prix plancher pour les matières premières agricoles en tenant compte des coûts de production des agriculteurs (95% des téléspectateurs de l'émission se sont prononcés en faveur)

+1

Mais ça, ça vient aussi de l’hégémonie des supermarchés qui font ce qu’ils veulent.

Si l’offre des « paniers hebdomadaires de légumes » (par exemple) était plus important et pas aussi orienté « hipster » (pardonnez l’expression, mais c’est l’image que ça donne), peut-être que ça irait mieux.

Ces paniers ne sont pas chers : c’est moins cher qu’en supermarché et souvent meilleurs (et souvent aussi bio, local et de saison). Donc peut-être que les supermarchés s’aligneraient s’ils perdent tous leurs clients.

Établir une peine de prison ferme (3 ans) pour les fraudeurs fiscaux (88% des téléspectateurs de l'émission se sont prononcés en faveur)

Gros +1
Y a pas de raison que celui qui vole un bout de pain fasse 1 an de taule mais celui qui vole 5 millions ne le fasse pas simplement parce qu’il porte une prison #carlosGhosn #rendsLArgent

- Augmentation du SMIC à 1 800 euros bruts par mois (soit 1 382 euros nets)

Pas sûr.
Plus d’argent n’est pas forcément mieux que baisser le prix des choses. Si on réglementait déjà les loyers (et qu’on forçait les proprios à faire la maintenance de leurs bâtiments, accessoirement) et qu’on baisse le prix des choses utiles, c’est une solution qui profiterait à aussi bien, et à davantage de monde.

Faudrait plutôt faire du Smic une exception et revaloriser la valeur du travail (en obligeant genre 25 % des bénéfices à être redistribués à ceux qui la produisent : les employés ; là aussi, pourquoi pas par paliers sur le bénéfice).

Le CICE réservé aux TPE-PME (92% des téléspectateurs de l'émission se sont prononcés en faveur)

Pas d’avis.

Création d'un ministère pour les retraités (71% des téléspectateurs de l'émission se sont prononcés en faveur)

Encore un ministère ?
Faudrait plutôt des élus qui représentent réellement leurs administrés et qui soient en contact avec eux, les écoutent et les représentent eux plutôt que leur parti politique.

Limiter à 25 le nombre d'élèves par classe

+1.

Pour conclure : il y des idées, dont des bonnes.
Malheureusement, Macron a déjà dit qu’il ne reviendrait pas en arrière sur ce qu’il a déjà fait : donc les 3/4 de ces points iront directement à la poubelle à l’Élysée.

[Programmation] break & continue pour accélérer les scripts

samedi 26 janvier 2019 à 10:54

i
Parfois il suffit d’un rien pour accélérer des scripts, et comme ça ne coûte rien et que ça peut rendre service, il faut s’en servir.
Aujourd‘hui, l’astuce est toute bête, mais je ne la voit pas tant que ça non plus, d’où mon partage.

break

Quand on fait une boucle (for, while…) sur un tableau ou une liste, par exemple pour trouver un élément particulier du tableau, on peut gagner beaucoup de temps en sortant du tableau une fois qu’on a trouvé le résultat.

Ainsi, au lieu de ça :


// soit $array un tableau de 1 000 éléments
for (var i=0, len=array.length; i<len ; i++) {
    if (array[i] === recherche) {
        console.log('élément trouvé : ' + i);
    }
}


On peut faire ça :

// soit $array un tableau de 1 000 éléments
for (var i=0, len=array.length; i<len ; i++) {
    if (array[i] === recherche) {
        console.log('élément trouvé : ' + i);
        break;
    }
}


Où est l’optimisation ?
Il est avec le break : étant donnée qu’ici on recherche un élément du tableau en particulier, une fois qu’on l’a trouvé, il est inutile de perdre du temps de chercher dans les éléments qui suivent. Par conséquent, on va utiliser break pour sortir de la boucle for dès qu’on a rempli la condition.

Un élément recherché dans un tableau se trouve en moyenne à la moitié du tableau (parfois au début, parfois à la fin, mais en moyenne, au milieu). Du coup, en moyenne, on gagne 50 % de temps de calcul.

Une autre solution plus adaptée dans le cas des conditions, mais moins flexible je trouve, pourrait être de faire avec while :


// soit $array un tableau de 1 000 éléments
var flag = false, i=0;
while (array[i] && !flag) {
    if (array[i] === recherche) {
        console.log('élément trouvé : ' + i);
        flag = true;
    }
    else {
        i++
    }
}


Perso je préfère utiliser for plutôt que while, mais ce dernier fonctionne aussi. En JS, il existe aussi .forEach, .each, for of, for in, tous pour leur propres application, mais on peut parfois utiliser break aussi (même si ça dénaturerait un peu le forEach, qui ne serait alors pas pertinent).

Notez que le gain de temps/énergie/temps processeur devient vite non-négligeable lorsque l’on commence à imbriquer plusieurs boucles for les unes dans les autres. Imbriquer 2 boucles de 1 000, ça fait 1 000 000 de tests à effectuer. Si les tableaux ne sont (virtuellement) plus que de 500, alors on réduit le temps de calcul de 75 % (plus que 250 000 calculs).

Bref, dès que vous le pouvez, sortez de la boucle et gagnez du temps.

À retenir : le break permet de sortir de la boucle. Son comportement est un peu différent du continue que voici.

continue

continue permet de sortir de l’itération courante dans une boucle, c’est pratique si l’on souhaite sortir de l’itération sans ajouter un if/else supplémentaire.

C’est utile, si je souhaite effectuer plusieurs calculs sur des éléments du tableau, mais que je dois exclure certains éléments.

Imaginons que l’on ait un tableau (de 1 000 éléments) d’objets "personne" et que seuls certains d’entre-eux ont renseigné leur âge. Pour ceux-là, et uniquement ceux-là, on souhaite vérifier si c’est leur anniversaire. Pour les autres, on ne fait rien.

Plutôt que de faire ça :


for(var i=0, len=array.length; i<len ; i++) {
    if (array[i].birthday !== undefined) {
        if (array[i].birthday === today) {
            console.log('Bon anniversaire !);
        }
    }
}


On peut faire ça :


for(var i=0, len=array.length; i<len ; i++) {
    if (array[i].birthday === undefined) {
        continue;
    }
    if (array[i].birthday === today) {
        console.log('Bon anniversaire !);
    }
}


Ici, si l’anniversaire n’est pas défini, on sort de l’itération en cours et l’on passe à la suivant : inutile d’effectuer les autres tests.

Ok, ici, c’est le gain est nul, mais dans certains cas il ne l’est pas.
Un exemple concret où je l’utilise c’est dans mon lecteur RSS : une fois que les éléments sont marqués comme lu, je ne souhaite plus les voir affichés, mais comme ils sont toujours sur la liste des éléments, il faut les ignorer.
Plutôt que d’utiliser un if/else ou un switch, j’utilise ça :

if (this.eventsList[i].action == "deleteEvent") continue;


Ça tient en une seule ligne, c’est discret et ça ne gêne pas la lecture du code.
D’autant plus que si l’élément n’est pas à supprimer, il peut avoir plusieurs autres .action
D’un point de vue « lecture du code », je préfère utiliser le if/else pour quand je dois effectuer une action dans les deux cas. Si je n’ai qu’un seul cas à traiter, je ne prends que if.
Si j’ai tous les cas à traiter (>2) je prends un switch, et si j’ai n-1 cas à traiter, je mets un continue au début, plutôt qu’un if suivi d’un gros else
Chacun ses façons de faire, mais j’apprécie celle-ci parce qu’elle réduit les niveaux d’indentation et le nombre de blocs indentés, qui rendent parfois le code difficile à suivre.


Conclusion

On peut décrire break et continue comme l’équivalent des return dans une fonction (si on ignore le fait que return renvoie un résultat en plus de terminer la fontion). Return a pour effet de terminer la fonction et renvoyer un résultat.
Break et continue ne retournent pas de résultat, mais terminent le code en cours :



Comme j’avais expliqué dans mon article sur la prog récemment, il n’y a pas qu’une seule façon de faire, mais si le but est de faire un code rapide et moins gourmand en ressources, il n’y a pas 36 solutions : il faut réduire l’empreinte CPU, et ça, ça passe surtout par le nombre de calculs qu’il doit effectuer (et dans une moindre mesure, le type de calculs, mais ça ça sera pour une autre fois).

image d’en-tête de Jun OHWADA

Aux sites qui ne veulent pas de l’indexation par Google

jeudi 17 janvier 2019 à 17:21

meme thumb up rage face
Comme tu sembles perdu dès que ça touche à Internet, laisse-moi t’aider, je suis là pour ça !

Tu as un site de presse sur lequel tu publies tes beaux articles ?
Tu ne veux pas que Google indexe tes beaux articles ?

Voici la solution, très simple :

User-agent: Googlebot
Disallow: /

Enfin, dernière chose, maintenant que Google ne vient plus te « voler » : tu arrêtes de nous casser les couilles avec une taxe à la con simplement parce que t’es un incompétent qui ne sait pas lire la documentation.

Merci.

PS : voir le premier commentaire ci-dessous.
PPS : voir le seconde commentaire ci-dessous.

Mon grain de sel sur le #GrandDebat

dimanche 13 janvier 2019 à 23:00

On dirait que le grand débat est ouvert, et Macron demande l’avis de la population :

C’est pas l’endroit, mais je commence ici avec quelques idées.
Il n’est pas exclu que j’envoie tout ça un jour à ma mairie (même si, j’avoue être très pessimiste sur la prise en compte de tout ça, non pas seulement pour mes idées, mais surtout que, d’expérience, les élus à tous les niveaux sont connus pour ignorer l’avis d’un citoyen de base).

Bref, voici mon grain de sel…

Le premier sujet porte sur nos impôts, nos dépenses et l'action publique.

Je propose qu’on commence par des mesures simples. Pas forcément les plus importantes, mais elles auront (j’en suis sûr) pour impacte de réduire les tensions actuelles :

Quand tout le monde sera logé à la même enseigne, on pourra discuter sur des ajustements d’impôts, de taxes, qui impacteront alors tout le monde sans exception. Pas avant.

Le deuxième sujet sur lequel nous devons prendre des décisions, c'est l'organisation de l’État et des collectivités publiques.

Beaucoup de choses ont déjà été faites avec la fusion des régions.

Je n’ai pas trop de recul sur ces points, si ce n’est que j’ai toujours été pour l’idée d’un système fédéral, avec une politique régionale adaptée à chaque région (et donc forcément moins uniforme entre les régions). Le rôle de l’État sera de garantir un juste financement des différentes régions.

La transition écologique est le troisième thème, essentiel à notre avenir.

Si j’exclue mon avis selon lequelle je considère l’avenir de l’humanité comme déjà foutue (l’économie et la finance ont eu raison de la survie à long terme de notre espèce. Tout ce qu’on peut faire, c’est laver notre conscience), je propose ce qui suit.

Pour ma part, il faut cesser le production d’électricité à base d’énergie fossile. En France déjà, et surtout inciter le monde à nous imiter. Les énergies fossiles sont une solution simple mais sales.

Les énergies renouvelables sont importantes et serviront de source d’ajustement dans un premier temps, avant que le parc ne soit réellement productif. À court et moyen terme, l’essentiel ne pourra venir que du nucléaire (seule source d’énergie assez puissante pour couvrir les besoins).

Une éducation devra être faite autour du nucléaire pour la démystifier.
Une renationnalisation des centrales devra être effectuée pour que l’énergie redeviennent un bien commun, sans besoin de rémunérer des investisseurs privés, et où la sécurité reprendra la première place devant la rentabilité.

Les filières du thorium seront prises au sérieux. La recherche sur la fusion sera prise au sérieux également.

L’important travail autour de la mise à niveau maisons, immeubles, etc. sur le plan des économies d’énergie (isolation, etc.) devra être poursuivi. On s’améliore sans cesse, mais il faut continuer à améliorer l’existant. La meilleure solution pour réduire notre empreinte carbone est encore de réduire le gâchis et les pertes actuelles.

Les pompes à chaleurs, par exemple, permettent de produire 2x, 3x, 4x plus de chaleur en hiver que ce qu’elles ne consomment en courant (2 000 W, 3 000 W, 4 000 W de chaleur pour 1 000 W électrique consommé !).
Ce genre d’installation très économes devrait remplacer les radiateurs « grille pain » dans toutes les nouvelles habitations.

ÉDIT : Damien me signale que le chauffage électrique « grille-pain » est interdit dans les maisons neuves depuis 2005, et que les pompes-à-chaleur (ou bois, ou solaire) sont obligatoires depuis 2012. Sur des maisons neuves. C’est une très bonne nouvelle, également pour la facture EDF.

Du coup, je met à jour : si l’écologie est vraiment plus importante que le fric, qu’on fasse en sorte d’installer des PAC dans les vieilles maisons : le gain sur la facture ne peut-être que bon (perso, je divise facilement ma facture annuelle par 2, mon appartement très mal isolé étant entièrement électrique…).