#18342

Note : lenteur JS

Rhaaa…

(oui, encore sur le JS)

Les fonctions sur les dates en JS sont pratique. Je parle celles des formats et l’internationnalisation, celle qui quand on lui dit "Fr" nous sort « mercredi 20 février » et quand on lui dit “de” nous sort « Mittwoch, 20. Februar ».

Voyez là :
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toLocaleDateString
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/DateTimeFormat

Mais bordel, qu’est-ce que c’est LENT !!

J’utilise ça pour afficher la date dans mon lecteur RSS.
Bah ça me prenait 700 ms pour afficher ~650 posts.

Vous ne voyez pas le problème : 1 ms par post, c’est pas énorme à première vue. Mais moi si : en mettant la fonction qui définit le format en dehors de la boucle, je ne mets plus que 50 ms pour afficher 650 posts.

Aaah, voilà qui est mieux =).

Donc faut faire comme ça :


var DateTimeFormat = new Intl.DateTimeFormat('fr', {year: "numeric", weekday: "short", month: "short", day: "numeric", hour: "numeric", minute: "numeric"});

feedList.forEach(function(item) {
    …
    …
    li.querySelector('.post-head > .date').textContent = DateTimeFormat.format(item.datetime);
    …
}

Ça semble logique, mais c’est tellement con et je m’en tape la tête contre les murs >_<.

C’est comme vider un nœud de ses éléments :

element.innerHTML = "" // trèèès lent.
// très rapide !
while (elementfirstChild) {
    elementremoveChild(element.firstChild);
}

=_=

https://lehollandaisvolant.net/?mode=links&id=20190220163207

#18333

Note : ffmpeg/avconv

Ces dernières années le développement de avconv et de ffmpeg a été bordélique, en particulier avec les dépôts linux : l’un étant le fork de l’autre, ils sont entrés, sortis, re-rentrés dans les dépôts, etc.
Y a même eu des paquets de compatibilité qui faisaient des alias de l’un vers l’autre.

Aujourd’hui en 2019, c’est ffmpeg qu’il faut utiliser.

Je viens de passer 1 h à essayer de trouver pourquoi je ne pouvais pas utiliser ffmpeg : j’avais fait un alias à moi dans mon .bashrc >_<.

Bref…

Voici un script pour convertir tout un tas de MP4 en MP3. En prime, il déplace tous les MP4 dans un dossier "mp'.old" et affiche une notification quand une vidéo est terminée :


#!/bin/bash

for i in *.mp4;
	do ffmpeg -i "$i" -c:a libmp3lame -ab 320k -vn "$i.mp3";
	notify-send --icon="info" "Conversion terminée" "$i" --expire-time=2000;
	mkdir mp4.old;
	mv "$i" mp4.old/"$i";
done
notify-send --icon="info" "Toutes les conversion sont terminée !" ":-)";

Sous Mint Mate : mettez ça dans un fichier "mp4tomp3.sh" puis dans le dossier ~/.config/caja/scripts. Rendez-le ensuite éxecutable :

cd ~/.config/caja/scripts && chmod u+x *.sh

Ensuite allez dans un dossier avec des vidéos, clic droit > scripts > mp4tomp3.sh et c’est bon =)

(d’autres scripts )

https://lehollandaisvolant.net/?mode=links&id=20190219144906

#18312

Comment partager la connexion Internet 4G d'un smartphone - Tech - Numerama

Par USB est le plus pratique : non seulement ça consomme mois (et ça recharge le téléphone au passage), mais en plus la connexion est plus stable, et ça permet également de partager une connexion Wifi à laquelle seul le téléphone aurait accès, comme par exemple le réseau Free Wifi Secure pour les abonnés Free Mobile (et qui utilise l’authentification SIM).

https://www.numerama.com/tech/140993-comment-partager-la-connexion-internet-dun-smartphone.html

#18302

[astuce] Firefox

Les onglets avec le popup « Cette page demande de confirmer sa fermeture ; des données saisies pourraient ne pas être enregistrées. » sont chiantes : ça oblige à déplacer le souris au milieu de l’écran quand on veut fermer l’onglet.

Si l’on ferme (comme moi) les onglets en faisant un clic-molette dessus, on peut outrepasser ce popup en cliquant une nouvelle fois avec la molette.

Cela marche aussi quand on ferme l’onglet avec la petite croix, ou avec Ctrl+V : vous avez juste à recliquer sur la croix ou à refaire Ctrl+V.

J’ai découvert ça récemment, mais ça permet de virer ce petit truc chiant des sites web 0.0.

https://lehollandaisvolant.net/?mode=links&id=20190213182114

#18294

French Hollidays .ics

ICS/VCAL c’est au événements (agenda) ce que le RSS est aux blogs.
Ici, c’est un flux ICS (à ajouter à votre agenda) qui contient les jours fériés, fêtes légales et événements légaux en France (donc aussi bien Noël, que la Fête Nationale, ou que le passage à l’heure d’été).

C’est produit par Google, par contre, mais c’est un flux public.

Ils en ont tout un tas : pour chaque pays, déjà, mais aussi les fêtes religieuses (orthodoxes, juives, musulmanes…), les calendriers sportifs, ou celui-là, avec les phases de la lune.

Si vous avez un compte Google, allez dans calendar.google.com et fouillez dans les paramètres, c’est facile à trouver.

Y’en a d’autres là :
https://www.officeholidays.com/ics/index.php (les fêtes, pour les pays de votre choix)
https://www.data.gouv.fr/fr/datasets/le-calendrier-scolaire-format-ical/ (le calendrier scolaire)
https://cantonbecker.com/astronomy-calendar/ (lunaire et astronomique)

ÉDIT :
Seb me signale que Mozilla les propose également : https://www.thunderbird.net/en-US/calendar/holidays/

https://calendar.google.com/calendar/ical/fr.french%23holiday%40group.v.calendar.google.com/public/basic.ics

#18274

Note : astuce formulaires

Dans le genre de trucs chiants, il y a le formulaire avec un « recopiez votre e-mail » où le copier-coller est désactivé.

Une astuce est de remplir le second champ, puis de copier son contenu dans le champ 1. Parfois ça marche.

Autrement, je viens d’en trouver une autre :
– remplissez le premier champ ;
– sélectionnez son contenu ;
– puis drag and drop du texte dans le second.

Sous Firefox, ça copie-colle le contenu du premier dans le second (par contre, sous Webkit (Chrome, Opera, Vivaldi…), ça coupe-colle le contenu du premier dans le second).

https://lehollandaisvolant.net/?mode=links&id=20190207232458

#18261

Retour d’expérience sur l’usage de Redshift - Le blog de Genma

+1

C’est vraiment utile.

Il m’arrive aussi de le désactiver quand je fais des trucs sensibles aux couleurs (design, retouche photo). Et c’est bien à ces moments là, au moment de la désactivation, qu’on voit la différence que ça fait.

Je suis bien content de voir que W10 et Android 7+ intègrent ça nativement maintenant.

https://blog.genma.fr/?Retour-d-experience-sur-l-usage-de-Redshift

#18246

Pure CSS scroll-shadow effect

Ajouter une ombre lors du scroll. Sans JS.

Certaines pages mettent une ombre sous l’entête (qui est fixe) seulement lors du scroll du contenu principal. C’est généralement fait en JS en détectant la position du scroll.

Ici, pas de JS, juste du CSS.

C’est réalisé par une astuce et des pseudo-éléments.

L’ombre est attachée au ::after de l’en-tête.

Quand on scroll le contenu principal, ce qui se passe, c’est que c’est comme une fenêtre coulissante : le contenu qui scrolle en haut est toujours là, juste caché sous l’en-tête et invisible.

À ça, j’ajoute un masque : ce masque est un ::before sous la partie qui scrolle. Le ::before scrolle avec la page.
Quand la page est en haut, le ::before est visible (pas masqué). Quand la page scrolle, le ::before est caché.

Ensuite, il suffit d’utiliser les bons z-index : le masque est au dessus de l’ombre, mais en dessous de l’en-tête. Comme ça, quand il est visible, il masque l’ombre.
Quand on scroll, le masque disparaît sous l’en-tête et l’ombre devient visible.

https://codepen.io/lehollandaisvolant/pen/QYdzzm?editors=1100

#18230

[MÀJ] - Céline Sageaux sur Twitter : "Danger vs. risque…" - twitter - Le Hollandais Volant

Par rapport à mon poste sur la différence risque/danger, Yves m’envoie le lexique normalisé (oui y a des définitions officielles pour ça).

Je cc/cv tout ça ici :

- Danger
- - Source potentielle d’un dommage (ISO/IEC Guide 51)
- Dommage
- - la définition des dommages est relative au domaine auquel s'applique la gestion du risque; par exemple :
- - - Conséquences défavorables pour la santé lié à un problème qualité ou de non disponibilité d’un médicament (ICH Q9, dans le cadre de la gestion du risque qualité en pharma)
- Gravité
- - Mesure des conséquences possibles d’un danger
- Risque
- - Combinaison de la probabilité d’apparition d’un dommage et de sa gravité (Guide ISO/IEC 51).
- - - - Dans le domaine pharmaceutique et des dispositifs médicaux, on ajoute à cette combinaison la détectabilité ; c'est-à-dire :
- - - - - Risque = probabilité d'occurrence x gravité x détectabilité
- Détectabilité
- - Capacité à mettre en évidence ou identifier un danger.

Ce à quoi il ajoute :

Remarque

- La version française des textes de l'ISO concernant la gestion du risque ont été maladroitement traduites, car les termes "assessment" et "evaluation" ont été intervertis en Français (vive les faux amis et les traducteurs sans expérience dans le domaine concerné).
- L'utilisation rigoureuse des termes devrait conduire aux équivalences suivantes :
-- Assessment
--- Évaluation
-- Evaluation
--- Appréciation
- Les dictionnaires professionnels (e.g. Robert & Collins) disent la même chose : la première traduction de "Evaluation" (EN) n'est pas "Évaluation" (FR) mais bien "appréciation".
- D'ailleurs, lorsque l'on fait un "supplier assessment" ont fait une "évaluation du fournisseur" et non pas une "appréciation du fournisseur".
- J'ai été confronté au problème lorsque j'ai fait la traduction de GAMP 5 en Français. J'ai dû ajouter une remarque liminaire à ce sujet. Malheureusement, l'ansm n'en a pas fait de même dans la version française des BPF
https://lehollandaisvolant.net/?mode=links&id=20190127163758

#18220

Linkzilla: 2 astuces méconnues dans VLC

Super la première astuce pour télécharger des vidéos youtube !

Ouvrir un flux réseau > lancer la vidéo > puis aller dans "outils > information sur les médias" > récupérer l’URL en bas > l’ouvrir dans le nav > clic droit, enregistrer sous en mettant "mp4" en extension.

https://link-zilla.blogspot.com/2019/01/2-astuces-meconnues-dans-vlc.html

#18208

I Nearly Lost All Of My Data! - Kev Quirk

Un NAS qui grille.

On peut bien avec 4×1 To en RAID 5 + une clé USB, si le NAS grille, l’ensemble est mort.

Heureusement, ici, seul le circuit du NAS est mort : les données sont encore intactes sur le disque dur, et les disques eux-mêmes semblent intactes aussi. Par contre l’auteur a flippé car le NAS était son seul dispositif « sous la main » pour brancher du RAID 5, ce qui soulève un autre problème : apprenez à exploiter vos sauvegardes, et soyez-sûr que les sauvegardes soient fonctionnelles (rien de pire que vouloir restaurer une sauvegarde et se rendre compte que la dernière sauvegarde a foiré).

Le RAID 5, ça permet d’avoir 4 × 1 disque, avec une redondance de données telles que 3 disques suffisent. On est donc large si un disque meurt. L’ensemble offre donc une redondance, en plus d’un espace de stockage supérieur à 1 disque, et des perfs meilleures. C’est un compromis assez équilibré, mais ce n’est pas le meilleur choix en terme de sécurité des données.

À l’inverse, en RAID 1, tous les disques sont miroirs les uns des autres. Si on a 4 disques, on peut en tuer 3 et les fichiers seront toujours là.

Bon par contre si tout ça est dans un NAS, ça pose toujours problème : si le NAS lui-même crame, est volé ou est détruit… les données sont perdues.

==

En ce qui me concerne, je fais des backup manuels de mes fichiers. Le fait que ce soit manuel ne change rien : ce qui compte c’est ça :

Règle 1 – faire au moins 2 sauvegardes (en plus des données de travail, donc 3 copies au total).
Règle 2 – conserver au moins 1 sauvegarde ailleurs (au travail, chez vos parents, des amis, dans un cloud quelconque).

La règle 1 donne plus de sécurité : avoir 3 copies, ça permet d’être protégé même si une copie venait à manquer. Le but étant, bien-sûr, de ne jamais se retrouver avec une seule copie des fichiers. Si une copie est perdue, on commande tranquillement un nouveau disque, sans paniquer.

La règle 2 permet de faire face à une perte physique d’une sauvegarde : incendie, vol, vandalisme… Si votre maison brûle, vos données sont à l’abris. J’imagine que si ça arrive (sans le souhaite à quiconque) on a autre chose en tête… jusqu’au moment où on se rend compte que tous nos contrats d’assurance / contacts / etc. sont sur un disque dur ^^.

Enfin, j’ajouterais quelques autres très :
– prenez des supports (clés, disques…) de marque différentes. Si un disque s’avère avoir un défaut d’usine, l’autre ne l’aura pas.
– prenez des supports de type différents. Ça va peut-être un peu loin, mais en cas d’attaque nucléaire ou d’orage solaire particulièrement intense, l’impulsion électromagnétique peut altérer un disque dur ou un support flash. Pas un DVD.
– ne laissez pas vos disques branchés : non seulement ça les use, mais aussi ça les met à la merci du réseau électrique : une coupure et hop, le NAS saute. On n’est pas non plus à l’abri d’un voisin qui bricole des trucs et qui envoie des fréquences parasites dans le réseau électrique, ni d’un orage solaire ou de la foudre qui provoque des altérations dans le signal électrique du réseau. Brancher tout ça sur un onduleur peut s’avérer utile, mais il reste alors l’usure.
– Sauvegardez régulièrement. Pas besoin de tout sauvegarder tout le temps : vos films / photos sont en sécurité une fois que vous les avez sauvegardés. Par contre, vos fichiers Word ou Excel où vous faites vos comptes sont tout le temps modifiés.

Et :
– si vous stockez des trucs dans le cloud (peu importe lequel), chiffrez vos données : c’est très simple avec GPG. Mais par contre… n’oubliez pas de sauvegarder aussi votre clé GPG quelque part (perso je propose de l’enregistrer dans un QRCode imprimé).

(lien via Angristan)

https://kevq.uk/i-nearly-lost-all-of-my-data/

#18207

Note

Dans PHP, si vous avez un tableau associatif dont les clés sont numériques, certaines fonctions comme array_reverse() font réindexer le tableau une fois le reverse() effectué.

Si les clés sont une chaîne, elles sont conservées (le tableau est simplement inversé).

Donc si vous avez ça :

array(4 => "quatre", 8 => "huit");

Vous obtiendrez ça :

array(0 => "huit", 1 => "quatre");

Et non pas :

array(8 => "huit", 4 => "quatre");

Je me suis fait avoir : je voulais une clé unique pour un tableau. Pour ça, j’utilise parfois crc32(), une fonction de hashage relativement rapide.

Sauf que en PHP, crc32() retourne un entier. Mes index ont donc disparus après le reverse().
J’ai dû me rabattre sur md5() pour le hash unique.

J’aurais aussi pu prendre hash('crc32', $i), qui lui retourne une chaîne en hexa.

Fin bref, soyez vigilants.

https://lehollandaisvolant.net/?mode=links&id=20190122172625

#18198

Ugears modèle Autopropulsé - Maquette mécanique à construire En 3D Minuterie: Amazon.fr: Jeux et Jouets

J’avais reçu ce kit pour Noël, je viens de le monter.

Il est sympa à faire et à voir. Je viens de tester là : il reste 22 minutes à tourner (légèrement améliorée — vous me connaissez — pour tirer partie d’un élastique plus long :p). Normalement, il tient environ 10~15 minutes (n’hésitez pas à tendre l’élastique assez fort).

Il existe plein d’autres modèles, une est annoncée pour tourner pendant 5 heures !

Juste quelques conseils :
– soyez vigilant et ne cassez pas les pièces. (il m’est arrivé d’en casser une… J’ai réussis à bricoler une pièce de substitution dans ce qui restait du bois, mais quand-même).
– souvent, vous avez à mettre des tiges de bois (cure-dents) dans d’autres pièces et ça peut forcer : passez de la cire de bougie sur le cure dent : ça permet un enfonçage bien plus facile. Sur ce modèle, ça ne gêne pas du tout : les cure-dents sont assez bien serrés de toute façon. Il y a de la cire fournie, mais autrement, une bougie normale suffit.
– découpez bien les roues dentées. Il ne doit pas rester la moindre écharde de découpe dans les dents. Une fois montée, l’horloge coinçait parfois : ça venait de là.
– si la cire de bougie ne suffit pas sur les dents, un autre corps gras non liquide devrait marcher aussi. L’huile de vaseline (le truc pour les chaînes de vélo) ne marche pas : c’est absorbé par le bois. De la graisse donne en revanche de bon résultats (j’ai pris ce que j’avais, c’était à dire de la graisse lithium Facom : clairement overkill, mais ça marche).
– soyez patients : il m’est venu à l’idée d’ouvrir la fenêtre pour balancer le truc dehors tellement ça me frustrait de ne pas réussir à faire tourner le truc. Faites une pause et vérifiez l’ensemble : dans mon cas, il restait des petits bouts de bois dans les dents des roues dentées. Aussi, une pièce frottait contre une autre : j’ai démonté le truc, décalé une pièce, puis remonté.

Par contre, il y a une petite roue à bas à gauche avec un élastique, et qui empêche la grande roue de revenir en sens inverse. Je l’ai viré : je ne sais pas pourquoi elle est là. Peut-être pour éviter de remonter trop le mécanisme et de péter un truc…

Aussi : si vous avez, prenez des cures-dents plus solides.
Ceux fournis ne sont pas les meilleurs. J’en ai pété un, que j’ai remplacé par un cure-dent à moi et j’ai alors vu que les miens étaient beaucoup plus robustes. Aussi, si vous avez autre chose de rigide (bois, métal…) qui ait le même diamètre et longueur et plus solide, prenez ça.
Les cures-dents sont pointues au bout, donc plus fines et donc plus fragiles. Or, c’est à cet endroit que s’exercent les contraintes mécaniques.

Aussi, l’horloge est mécanique : ça se touche et ça frotte de partout. Elle a par conséquent besoin d’un peu de rodage, au début : si elle coince de temps en temps au début, c’est normal.

Enfin, même si le bois est sympa et pas cher, je préfère tout de même le métal (comme la station Barigo ici) :p

J’envisage de peindre mon horloge avec de la peinture métallique.

https://amzn.to/2T6u39u