Autoblog du Hollandais Volant

Ce site n'est pas le site officiel lehollandaisvolant.net.
C'est un blog automatisé qui réplique les articles de lehollandaisvolant.net

Partager la culture est un devoir, pas un crime

Thu, 14 Feb 2019 19:18:02 +0100 - (source)

un livre brûlant
Lire :

Imaginez :

Quels seront les livres qui vont être dé-écrit le mois prochain, et que nous auront le plaisir de ne plus pouvoir trouver nulle-part (sauf au marché noir) ?

Débile, non ?

Bah voilà : les connards du #copyreich font ça avec les films, les séries, la musique, et en fait toute la culture numérique.

Certains écrits ou représentations datant de 3 000 ans nous parviennent jusqu’à aujourd’hui, malgré le fait qu’ils soient sur un support de bois, de peau de bête ou d’os. Combien d’écrits et de représentations ne seront plus là, 3 000 ans dans le futur, à cause de ces salopards qui décident que ça doit rester leur propriété et ne surtout pas le diffuser si ça ne les enrichit pas ?

C’est sûrement pas grâce eux que l’on sait lire les hiéroglyphes et les textes anciens, ou qu’on a accès à toute la culture passée.
Vous imaginez si Champolion avait dit « Au nom d’Hadopi, la pierre de rosette est à moi, je ne vous dirais pas ce qu’elle contient ! ».

Dans ces conditions, le « marché noir » numérique est seul garant de la diversité culturelle, d’aujourd’hui et de demain.

Partager des films, de la musique, des livres… ce n’est pas un crime. C’est un devoir Humain : c’est assurer la pérennité de l’histoire de notre espèce. C’est l’Histoire qui garantit à notre civilisation le progrès et l’empêche de faire les mêmes erreurs plusieurs fois.

image de collective nouns


Les trucs qui me font détester votre site web en 2019

Sat, 09 Feb 2019 13:37:05 +0100 - (source)

Comme le veut désormais la tradition sur ce site, vu que je surfe pas mal sur le net et que je fais également dans le webmastering et le codage de sites web, voici une liste de pratiques de merdes qu’on trouve sur les sites web et qui m’énervent.

Mon premier article du genre date de 2014. J’ai refait une mise à jour en 2017, et me voilà désormais prêt pour en refaire un pour 2019.

Les notifications

le popup de demande de notification
Non, je veux pas de notifications à outrance.

Le HTML5 apporte plein de possibilités aux concepteurs de sites. L’une d’elles est l’ajout de notifications : un site web, un onglet peut ainsi envoyer une notification au navigateur et même au système. La notif s’affiche alors avec le reste des notifs du système.

Je le dis ici : non, je ne veux pas que votre site me notifie de quoi que ce soit. Je suis assez grand pour regarder l’onglet quand j’en ai envie. Et un popup qui me demande l’autorisation pour pouvoir afficher des notifs, c’est chiant car ça finit de toute façon systématiquement sur « ne jamais activer les notifications sur ce site ».

Rendez-nous plutôt les flux RSS ! C’est comme ça qu’on veut rester au courant des nouveautés de votre site. Ça marche très bien, le RSS.

(Et @Mozilla (et les autres navigateurs) : pitié, utilisez l’outil de notification du SYSTÈME, pas votre truc perso. Sous Mate, Firefox ne respecte pas Notify-OSD et c’est moche).

La géolocalisation

le popup de demande de localisation
Non, tu n’as pas à savoir où je vis.

Ok, celle-ci ne date pas de cette année, mais de plus en plus de site le demandent quand-même, et c’est généralement de façon totalement illégitime : que Google Maps ou OpenStreetMaps me le demande, ok, c’est normal. Mais ton blog personnel, non. Je viens ici pour lire ce que tu a à dire. Toi t’as pas besoin de savoir à 5 mètres près où je vis.

Les bots de hotline

le chatbot de la sncf
Oui ! J’ai une question : tu peux te casser, je suis en train réserver un billet de train, ok ?

Vous arrivez sur un site quelconque et un popup s’ouvre avec un soi-disant opérateur qui vous parle : « Bonjour, en quoi puis-je vous aider ? ». C’est particulièrement vrai pour les sites des SAV, de certains FAI, mais aussi quelques marchands en ligne.
Ils ne sont pas nouveaux, et à l’heure où je publie cet article ils sont moins présents (et moins pourris aussi), mais ils ne remplacent pas encore un formulaire bien foutu.

Un autre truc qu’ils ne remplaceront pas, c’est un humain à qui parler. On s’en fiche de votre chatbot. On ne veut pas parler à un robot. Si votre site est merdique au point que même vous vous savez qu’on aura besoin d’aide, je vous conseille plutôt de virer votre équipe de web-dév pour en recruter un autre.

Si votre site est merdique, la priorité est de le rendre plus accessible, pas de nous tenir la main pour contourner la merde.

À la place, mettez plutôt une page de contact (qui fonctionne) ou un e-mail / numéro de téléphone en bas de la page. C’est beaucoup plus efficace et vos utilisateurs vous remercieront.

Les sites qui stockent les mots de passe en clair

Ça ne se voit pas tout de suite, mais quand on s’inscrit sur un site, votre pseudo et votre mot de passe doivent être stockés quelque part. Comme ça, on peut se connecter la prochaine fois et le site vous reconnaît.
Il arrive que vous oubliez votre mot de passe. Dans ce cas, on utilise une fonction « mot de passe oublié » et le site enclenche une procédure de restauration du mot de passe. Si le site est bien fait, il envoie un lien sur votre boîte mail. En cliquant dessus, votre mot de passe (celui que vous avez oublié) est effacé de la base de donnée du site et vous êtes invités à en entrer un nouveau.

Si le site est mal foutu, alors l’ancien mot de passe vous est renvoyé par e-mail.

À première vue, vous renvoyer le mot de passe peut semble plus pratique et plus rapide. En réalité, il s’agit là d’une très mauvaise pratique.

En effet, ça signifie que le site peut connaître votre mot de passe : donc qu’il est stocké en clair dans la base de données, virtuellement à la vue de n’importe qui. La solution est alors de créer un « hash » du mot de passe (en gros, un code produit à partir du mot de passe, mais avec lequel retrouver le mot de passe est impossible). Comme ça, quand on se connecte, on recalcule le hash et c’est lui qu’on compare à ce qui se trouve dans la base de données. Comme ça, le site ne connaît pas votre mot de passe, et les administrateurs et les pirates non plus. C’est beaucoup plus sécurisé et c’est la bonne méthode aujourd’hui.

Sauf qu’en 2018, il y a toujours des sites qui stockent des mots de passe en clair… Et ça devient très grave. Même la CNIL condamne ces pratiques…

Les sites qui interdisent certains caractères dans le mot passe

C’est symptomatique du point précédent : si l’on stocke correctement un mot de passe, on le fait sous la forme d’un hash (donc une chaîne alpha numérique, empreinte du mot de passe). N’importe quel caractère peut être donné, ça finit toujours en hash.

Si l’on n’utilise pas un hash, alors oui il faut vérifier que le mot de passe ne va pas corrompre la base de données (et encore, avec les requêtes préparées, ce problème ne devrait plus en être un).

Quoi qu’il en soit, si je veux mettre @%£*ע#$☢☹⚠ dans mon mot de passe, je devrais pouvoir le faire. Quant à mettre une limite afin que les néophytes ne se trompent pas, ça revient à tirer tout le monde vers le bas.

Ça serait comme forcer tout le monde à boire de la purée ou de la bouillie sans aucun allergène sous prétexte que certains ne peuvent plus mâcher ou ne peuvent pas tout manger.

Éduquez plutôt les internautes, au lieu de faire un compromis sur la sécurité. À vous de voir : est-il plus probable que Mme Michu se trompe de mot de passe à cause de vous, ou que la CNIL vous tombe sur le dos avec 500 k€ d’amende pour un défaut dans votre sécurité ?

Les sites qui t’envoie un mail à chaque fois que tu te connectes

Certains sites t’envoient un mail à chaque fois que tu te connectes dessus. Si d’un point de vue sécuritaire ça peut paraître louable, ça fait surtout pas mal de spam.

En particulier, c’est ce que fait OVH Telecom, quand je me connecte à leur interface. Déjà, je me connecte depuis chez moi (donc avec l’IP qui m’est attribué), donc a priori ça ne devrait pas être frauduleux. Aucun moyen de désactiver ça, et aucun moyen de me mettre sur liste blanche. Mais surtout, c’est juste un e-mail pour me dire « vous vous êtes connectés » : il n’y a pas de 2FA ni rien.

Je ne vois pas trop l’utilité dans ce cas : si un pirate cherche à changer mon mot de passe, c’est à ce moment-là qu’il faut m’envoyer un e-mail (éventuellement avec un lien pour le changer).

Les e-mails de connexion qui arrivent en retard

Certains sites, que ce soit pour changer ton mot de passe ou justement confirmer une connexion, t’envoie un e-mail avec un lien de connexion. Ça c’est bien seulement si l’e-mail arrive dans les 30 secondes après avoir voulu se connecter.

S’il faut attendre ne serait-ce que 5 minutes, alors ça devient vite très chiant (oui on est la génération pressée, désolé).

Bien-sûr, je ne parle pas d’un grand site français qui met jusqu’à 4 heures pour envoyer un e-mail

Les pop-up pour le pistage

i
Encore heureux que tu respectes mon choix, connard !

Les navigateurs prévoient une fonction qui permet de spécifier au site visité qu’on ne souhaite pas être pisté. C’est plus ou moins respecté par les sites, mais ça a le mérite d’exister.

Certains sites n’ont pas vraiment compris les principes de base du « ne pas faire chier l’utilisateur » et qui affichent alors un joli pop-up en JS « Vous avez demandé à ne pas être pisté. OK/Annuler ». Suivi d’un second pop-up « Nous respectons votre choix. OK/Annuler ».

Ces popup sont bien-sûr bloquants et mettent en avant l’onglet en question (donc si t’étais en train de lire un truc dans un autre onglet, t’es dérangé).

Conseil aux pages-web :

i
(cf ce mème)

Respectez l’utilisateur et son choix. C’est son choix, vous respectez, point.

Les pop-up RGPD

Comme si les pop-up pour s’inscrire, pour follower, pour donner l’e-mail, pour accepter les cookies, pour demander la géolocalisation, pour confirmer le pas-de-pistage, pour demander de désactiver la pub, pour recommander Chrome, pour nous dire d’activer Flash… ne suffisaient pas, désormais il y a le RGPD.

C’est le règlement qui oblige les sites à nous demander la permission pour utiliser certains cookies. Au fond c’est une bonne chose, mais encore une fois, la façon dont c’est implémenté par les différents sites fait que c’est une entrave constante à la navigation.

Non seulement ces popup sont très chiants, mais surtout ils ne servent à rien : dans 90 % du temps, ils ne présentent qu’un bouton pour tout accepter (chose qu’ils veulent) et jamais pour tout refuser (choser qu’ils craignent) ; et comme nous on veut lire le putain d’article, on est obligé de tout accepter et au final le RGPD n’aura servi à rien. Enfin si : maintenant en cas de problème, le site pourra se défausser sur nous : « ah, mais mon bon monsieur, vous avez accepté et maintenant votre numéro de téléphone est dans la nature ».

(Et à vrai dire, ça fait plutôt double emploi avec la fonction déjà présente dans mon navigateur pour bloquer le pistage, et celui pour bloquer les cookies tiers, mais c’est un problème d’incompétence de nos élus).

Les mesures anti-scroll

J’ai déjà parlé des mesures anti-clic-droit l’an dernier, et des mesures visant à capturer les événements qu’on produit en faisant des raccourcis claviers (Alt, Shift, etc.). Jusqu’à récemment je n’avais encore pas vu un autre truc : une méthode qui m’empêche de produire un « clic-molette » sur la page, pour scroller très vite tout en bas ou tout en haut.

Du coup, sur une page de 3km, je vois obligé de faire fumer la molette manuellement. C’est ridicule : arrêtez de capturer les événements par défaut !

Laissez notre souris et notre clavier tranquilles, à la fin ! Si vous voulez utiliser des raccourcis clavier, il existe déjà un truc pour ça (les accesskey). C’est ensuite le navigateur qui fait en sorte que ça n’entre pas en conflit avec les autres raccourcis claviers.


Ce blog a 10 ans \o/

Thu, 07 Feb 2019 07:31:05 +0100 - (source)

photo d’un gâteau
Juste pour vous annoncer que ce site a désormais 10 ans (et selon la légende de ce vaisseau, j’ai le droit de passer une journée sur terre, après 10 ans en mer :p).

Ce site a débuté le 7 février 2009.

À l’époque ce n’étaient que quelques pages HTML très très moches (le blog n’était pas même là : il est venu quelques mois plus tard seulement). J’étais encore étudiant quand j’ai commencé, je sortais de lycée, en réalité. Beaucoup de choses se sont passées depuis, mais je suis toujours là.

Je ne vais pas tout raconter (ça serait trop long, et pas sûr que ça intéresse), mais je tenais à marquer le coup avec un petit article, et surtout à vous remercier : vous faites partie de ce blog, de cette aventure. Beaucoup d’articles sont venus de choses que vous m’avez partagé (par e-mail, sur Twitter, etc.) et j’ai appris plus que jamais en interagissant avec vous tous. Merci pour tout ça.

Malgré quelques passages à vide en ces dernier temps, j’ai repris un peu ce blog en main. À vrai dire, je me suis beaucoup investit sur mon blog scientifique, pour lequel j’ai beaucoup écrit.

Je compte bien essayer de maintenir le cap : partager ce qui me tient à cœur, que ça plaise ou non.
La plupart d’entre-vous ont compris cela : je discute souvent avec certains à propos de ce que j’écris (ils se reconnaîtront) et on échange nos avis, ceux qui convergent et ceux qui divergent : c’est un vrai plaisir.

J’ai aussi fait des erreurs, mais je travaille dessus. Vous êtes nombreux à avoir l’œil vigilant et beaucoup me remontent les conneries que je poste quand ça arrive : merci pour ça aussi, non seulement vous me corrigez, mais vous participez également à réduire l’information fausse qui circule et ça c’est un bien important, pour aujourd’hui mais aussi pour « demain ».

Autrement, ce site, c’est, à ce jour :

Enfin, pour en savoir plus sur le site, c’est là (ou ) et pour quelques trucs sur moi, c’est là (ou au besoin).

Bref, bon anniversaire le Le Hollandais Volant, et on lève l’ancre pour les 10 années qui viennent, toujours sans pub ni mouchards (mais avec une page tipeee) ?

ÉDIT :
Au fait, voilà à quoi ressemblait le site par le passé le thème de mon site.

Et pour ceux qui sont curieux de savoir comment ça se passe de l’autre côté, le blog tourne avec un CMS maison ; et écrire un article ressemble à ça.

image d’en-tête de Will


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

Mon, 04 Feb 2019 22:14:59 +0100 - (source)

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 »

Sat, 26 Jan 2019 13:54:28 +0100 - (source)

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

Sat, 26 Jan 2019 10:54:36 +0100 - (source)

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

Thu, 17 Jan 2019 17:21:55 +0100 - (source)

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

Sun, 13 Jan 2019 23:00:00 +0100 - (source)

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…).


Localhost et HTTPS

Mon, 07 Jan 2019 22:57:47 +0100 - (source)

Le site web accessible depuis l’adresse « http://localhost » correspond à la boucle local : si votre ordinateur est accessible sur le port 80 dans votre navigateur, alors le site qui s’affiche correspond à votre ordinateur.

Ceci est vrai pour chaque internaute : par conséquent, obtenir un certificat SSL/TLS pour localhost est impossible (vu que le certificat sert justement à identifier un site unique).

Généralement, on utilise localhost pour avoir un serveur sur son propre ordinateur, pour pouvoir coder en local, par exemple. Aussi, il est parfois nécessaire d’avoir du https en local (surtout maintenant que les navigateurs considèrent tous les sites sans https comme dangereux).

Pour ça : mkcert.

Ce petit programme très simple va créer un certificat, non pas auto-signé (ce que les navigateurs n’aiment pas), mais signé par votre certificat personnel ! Par conséquent, les navigateurs le verront toujours comme valide !

Pour activer tout ça sous Apache, sous Linux Mint, on va :

Télécharger mkcert

Ça se passe ici. Perso je prends le fichier binaire directement (ici) : je prends le mkcert-v1.2.0-linux-amd64 et je l’enregistre sous le nom « mkcert » dans le dossier « ~/.mkcert ».

En ligne de commande ça donne (on crée le dossier, on récupère le fichier, on le marque comme exécutable) :

mkdir ~/.mkcert && cd ./.mkcert
wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.2.0/mkcert-v1.2.0-linux-amd64
chmod +x mkcert

Mkcert a aussi besoin de certutils, un outil tiers, qui (sous Linux Mint) se trouve dans les dépôts :

sudo apt install libnss3-tools

Produire un certificat

Là, c’est tout con, on va produire un certificat avec mkcert. Juste deux commandes.

On créer un certificat local, puis on l’applique à un certificat pour localhost :

./mkcert -install
./mkcert localhost

Cela va créer deux fichiers, localhost.pem et localhost-key.pem

Activer le HTTPS dans Apache

Ensuite, on active le site HTTPS (sur le port 443) dans Apache.

On active SSL :

sudo a2enmod ssl

On configure le site dans le fichier de conf (remplacez xed par gedit sur Ubuntu) :

sudo xed /etc/apache2/sites-available/default-ssl.conf

Trouvez la ligne suivante :

DocumentRoot /var/www/html

Et mettez-y la racine de votre site (perso c’est /var/www).
Allez ensuite sur la ligne où l’on désigne les certificats, puis remplacez les chemins vers les chemins des deux fichiers créés par mkcert (attention, mettez bien le chemin complet, sans le « ~/ », donc avec /home/$user ») :

SSLCertificateFile	/etc/ssl/certs/ssl-cert/snakeoil.pem
SSLCertificateKeyFile /etc/ssl/certs/ssl-cert/snakeoil.key

SSLCertificateFile	/home/timo/.mkcert/localhost.pem
SSLCertificateKeyFile /home/timo/.mkcert/localhost-key.pem

Enregistrez le fichier et fermez Xed (ou gedit).

Activer le site

Il reste à activer le site dans Apache.

cd /etc/apache2/sites-available/

sudo a2ensite default-ssl.conf

Puis on relance le service Apache. Selon que vous utilisiez systemd ou pas, c’est l’un ou l’autre de ces deux commandes (prenez la première qui fonctionne) :

sudo systemctl restart apache2

sudo service apache2 restart

Si tout s’est bien passé, votre site est désormais actif sur le port 443, en HTTPS, et avec un certificat détecté comme valide (en vert et sans erreurs) : localhost:443 :

le site localhost est bien en vert avec le cadenas
Voilà voilà !

Sources de l’info


Les taxes et impôts ne sont pas le problème

Mon, 07 Jan 2019 12:50:12 +0100 - (source)

photo d’une annexe du palais de versailles
L’impôt tire son nom du fait qu’un peuple « s’impose » le fait de donner une partie de son revenu à l’État, en échange de quoi l’État s’occupe de la maintenance des infrastructures qui profitent à tout le monde : écoles, routes, hôpitaux, services publics, pompiers, police…

Avec les taxes, l’impôt constitue une rentrée d’argent pour l’État, qui sert ensuite à faire fonctionner tout le pays. Je pense que tout le monde sait ça, ou au moins peut le comprendre.

Vu tout ce qui se passe en ce moment (gilets jaunes, etc.) on peut penser que les gens ne veulent plus payer tout ça. Du moins, il s’agit de l’image que les médias à la con nous montrent, et celui que les politiciens veulent nous donner du mouvement contestataire.

À mon avis (toujours), personne ne voudrait retirer leur salaire :

Ni qu’on retire le financement :

Bref, au fond, l’impôt est basé sur un consentement à participer, selon ses moyens à maintenir le pays dans un bon état.

Personne ne peut être contre ça sans également être pour l’idée de ne plus profiter de tout ce que l’État fournit en retour.

Non. Le problème n’est pas l’impôt.

Mais…

Quand certains, sous prétexte qu’ils touchent des milliards, se permettent de ne pas payer leurs impôts grâce à l’évasion fiscale (100 milliard par an) et que l’État en est complice par son inaction, on peut, sous ces conditions, se demander si tout le monde est bien soumis à l’impôt et aux mêmes lois.

Le problème est là.

Quand on voit, par ailleurs, les élus toucher des salaires annuels à 6 chiffres, défiscalisés, tout en dormant sur leur lieu de travail où ils vont et d’où ils partent quand ils veulent, le tout avec chauffeur, logement, avion, hôtel, secrétaire payés sur les fonds publics, on se demande si ce n’est pas de l’argent jeté par les fenêtres, alors qu’en bas, le moindre centime est précieux.

Le problème est là.

Quand on voit que les mêmes élus cités plus haut se plaignent de ce même salaire à 6 chiffres défiscalisé (trop faible selon eux), et qu’ils sont obligé de manger des pâtes plusieurs fois par mois — entre deux pains aux chocolats à 0,10 € – ou qu’ils n’arrivent plus à payer la garde de leur enfants sans une augmentation de 25 % après seulement 1 an de travail (tel que décrit plus haut) alors que les gens normaux sont parfois au même salaire de misère depuis 30 ans à travailler de 7h à 19h tous les jours, on se demande sur quelle planète ils vivent, ces élus.

Le problème est là.

Quand on voit que la République dépense des millions d’euros pour que sa majesté le Sir Macron puisse offrir un service en porcelaine, des rideaux et un tapis à sa majesté Dame Macron, alors que des dizaines de milliers de personnes dorment dehors sur un bout de carton, on se demande pourquoi on appelle ce type encore « notre représentant ».

Le problème est là.

Quand on voit que certains députés, toujours les mêmes, sont en grande partie sous le coup d’une poursuite judiciaire, n’arrivent pas à justifier des dépenses, mentent, insultent, menacent ou juste tabassent des gens, on se demande si le prérequis pour être député est le CV ou le casier judiciaire.

Le problème est là.

On est gouverné par des gens qui ne savent pas vivre. Qui ne connaissent pas la vie des français « moyens ». Qui vivent dans leur monde, d’or et de diamants, un monde où ils ne payent rien. Qui n’ont jamais eu un autre travail que celui d’élu payé par le contribuable (et qui viennent ensuite faire des leçons aux soi-disant « assistés »).
On est gouverné par des gens qui laissent passer 100 milliards d’euros et ferment les yeux dessus, mais qui continuent quand-même de taper sur les plus pauvres (chômeurs, etc.), de faciliter le licenciement, de détruire le service public, de défoncer nos droits et acquis sociaux qui permettent justement aux plus pauvres de parfois — non pas vivre — mais survivre.
On est gouverné par des gens qui considèrent l’argent comme illimité et pour laquelle la réponse est systématiquement « le contribuable ».

Dans ces conditions là, le problème n’est pas l’impôt et les taxes : c’est ce qui en est fait.

Si on ne dilapidait pas des milliards en salaires honteusement élevé pour des gens qui ne savent rien de la France et de ses habitants, si l’État appliquait à lui-même les « efforts » qu’il demande de faire à chacun, si sa majesté le Sir Macron cessait de nous prendre pour des cons et commençait par donner l’exemple de ce qu’est la vie en 2019 en France dans un contexte d’austérité, d’efforts pour l’économie et le climat, on n’en serait peut-être pas là.

Et si il s’avère que le gouvernement demande, dans ce contexte, encore une fois de plus, aux gens plus honnêtes, plus économes, plus responsables et plus pauvres qu’eux de devoir s’acquitter d’une nouvelle taxe, oui, le vase déborde et c’est normal.

Références :

image d’en-tête de Eos Clio


Powered by VroumVroumBlog 0.1.31 - RSS Feed
Download config articles