PROJET AUTOBLOG


le hollandais volant links

Site original : le hollandais volant links

⇐ retour index

ParcoursSup et Informatique en France, consternationnage totalitudineux - <Glazblog/>

vendredi 22 février 2019 à 00:38

En gros, ParcoursSup n’est que la partie émergée d’un iceberg en ruines…


— (permalink)

@Numerama : Les raisins explosent quand ils sont au micro-ondes et on sait enfin pourquoi - Sciences - Numerama

jeudi 21 février 2019 à 18:31

Bon, impossible de commenter (certaines choses ne changent pas)…
Je le fais ici :

fluide composé de molécules gazeuses électriquement neutres, d’ions positifs et d’électrons négatifs.

"neutre", sans le 's' : le gaz est neutre dans la globalité, mais les molécules ne sont _JUSTEMENT PAS_ neutres : ils sont totalement ionisés (donc chargées).

Et c’est bien un gaz : si c’était un liquide (les deux sont des fluides), on parlerait de solution ionique.

Ces « sphères d’eau » réussissent à accroître les micro-ondes de l’appareil.

Pas accroître, mais amplifier, et pas les ondes de l’appareil, mais l’onde piégée dans le raisin.

En fait, les raisins agissent comme une caisse de résonance pour la micro-onde. De la même façon que sur une balançoire, on peut faire monter quelqu’un très haut en ne poussant qu’un tout petit peu (l’astuce est de pousser exactement au bon moment). Ici, chaque oscillation de la micro-onde amplifie l’onde piégée dans le raisin, qui atteint finalement des pics très importants, capables d’ioniser la matière là où elle se concentre.

Si les raisins fonctionnent bien, c’est par leur taille : une caisse de résonance doit avoir la dimension de la longueur d’onde à amplifier.

Or, dans l’eau (le raisin est ~95% d’eau), la longueur d’onde de la micro-onde (après réfraction) est d’environ 1 cm. Avec un melon ou une tomate, ça ne marcherait pas.


— (permalink)

Xi Jinping: Last Week Tonight with John Oliver (HBO) - YouTube

jeudi 21 février 2019 à 17:51

Oui, Trump est en train de couler les USA, ce qui laisse un énorme vide à la tête du monde… et la Chine est *très* contente de prendre cette place : elle a tout ce qu’il faut…


— (permalink)

En Australie, on peut mettre un emoji sur sa plaque d'immatriculation 😮

jeudi 21 février 2019 à 16:05

« chef, on repéré une voiture en excès de vitesse !
– très bien, transmettez à l’unité en moto un peu plus loin. C’est quoi sa plaque ?
– cheeseburger sans cornichon, happy-face black avec des cœurs à la place des yeux et émoji tarte au citron
– … »

Meanwhile, le radar : « ��� en excès de vitesse »


— (permalink)

Formulaire d’admission pour l’enfer | ploum.net

jeudi 21 février 2019 à 15:10
Les systèmes administratifs ont tendance à être peuplés de troglodytes mous du bulbe. La corrélation est observable par tout un chacun, mais je n’ai pas encore réussi à démontrer la causation. Sont-ils recrutés comme étant particulièrement lents et incapables de toute autonomie de pensée ? Sont-ils formés pour le devenir ? Ou bien est-ce une forme de sélection naturelle : toute personne capable d’un minimum de sens analytique, de logique et d’initiative finit par rendre sa démission en hurlant et en s’arrachant les vêtements, généralement au bout de sept à huit jours.

Une autre théorie que j’entretenais jusque là était celle de la création d’emplois. À partir du moment où le but premier d’une société était de créer des emplois, il fallait créer des structures capables d’employer tous les types de profils. Et pour chaque type d’individus, il fallait un emploi qui ne soit pas seulement à sa portée, mais également où il soit le meilleur. Où il excelle et écrase la concurrence. Mécaniquement, les administrations se sont donc épanouies pour employer les gens pointilleux, mesquins, sans imagination et, n’ayons pas peur de le dire, foncièrement bêtes et méchants.

La force de l’administration ce n’est pas qu’elle propose des emplois qui ne nécessitent pas d’être intelligent, il en existe bien d’autres. Non, sa première qualité est qu’elle propose des emplois où faire preuve d’intelligence est un défaut grave. La bêtise et la stupidité deviennent des compétences encouragées et transmises grâce aux prestigieuses « Écoles d’administration ». Au même titre qu’un cul de jatte est incapable de devenir éboueur, un humain intelligent, raisonnable et capable de prendre du recul ne peut en aucun cas prétendre à travailler pour l’administration.

La généralité n’est malheureusement pas tout à fait vraie. L’administration pouvant, parfois, offrir de confortables salaires ou certains avantages afférents, une nouvelle race d’humains s’est créée : des gens capables d’éteindre leur intelligence au moment où leur badge touche la pointeuse. Le soir et le week-end, ils discourent avec élégance, ils lisent, partagent, offrent une vision personnelle fouillée. Mais, une fois la cravate nouée autour du cou afin de couper toute irrigation du cerveau, ils se transforment en œsophage sur patte, engloutissant des litres de mauvais café tout en répétant, le regard vide, d’abscons aphorismes numérotés.

Le but premier d’un employé administratif, c’est d’être là pour toucher un salaire sur ses heures de présence. Durant ces heures, il doit faire le moins possible. Pour justifier qu’il reste encore beaucoup de travail à faire. Moins il fait, plus est grande la probabilité qu’on engage un nouvel agent administratif pour lui tenir compagnie, augmentant de ce fait son importance et son prestige. Car si le travail n’avance pas, c’est bien que le premier employé n’est pas suffisant tout seul. À deux, nos compères pourront passer à la vitesse supérieure et générer du travail à faire. Si la masse de travail ne diminuait pas avec le premier, elle ne fait qu’augmenter avec le second. La boucle est lancée et tout cela est un merveilleux mécanisme pour générer de l’emploi qui est, on l’a dit, le but premier de notre société. Le corolaire est que tout employé qui fera du zèle en faisant diminuer la charge de travail se verra immédiatement tancer, blâmer voire pousser à la démission.

Oh merde.
Il a tout dit.


— (permalink)

The blackest black paint in the world! Black 3.0 by Stuart Semple — Kickstarter

jeudi 21 février 2019 à 14:46

Une peinture plus noire que noire.

Ça se rapproche du Vantablack® (dont je parle là), mais au moins ici y a pas un artiste à la con qui a payé la boîte pour en avoir l’exclusivité.

Ça semble assez impressionnant, je me tâte à en acheter un tube, mais c’est cher :/


— (permalink)

Chers recruteurs | Coderstand

jeudi 21 février 2019 à 14:40

Mer-ci !


— (permalink)

[JS] - Note

jeudi 21 février 2019 à 01:38

Je me note :

En JS, avec element.querySelector(), pour cibler un descendant direct de element, ceci ne marche pas :

element.querySelector('> .class');

Si element possède un id lui-même on peut faire ça :

element.querySelector('#id > .class');

Mais il y a une méthode dédiée :

element.querySelector(':scope > .class');

:scope est censée représenter l’élément sur lequel on utiliser querySelector(). C’est une notation CSS similaire similaire à « :root », et d’ailleurs, à ce jour, il est égal à :root (il n’a pas encore d’autres usages).

C’est censé marcher (même si je n’ai pas réussis sous Firefox).

Sinon, on peut toujours utiliser

element.firstElementChild

(attention, si querySelector() renvoie une nodeList, firstElementChild() renvoie une HTMLCollection.)


— (permalink)

A growing share of Google’s display ads on the web are now built with AMPHTML ads

mercredi 20 février 2019 à 18:57

Oh, ça alors : Google profite d’AMP pour mettre en place de la pub ?!


— (permalink)

How to REALLY make Windows 10 Super Light for Gaming - YouTube

mercredi 20 février 2019 à 18:13

Ah, voilà qui peut m’être utile !

Debloat Windows 10 > https://github.com/W4RH4WK/Debloat-Windows-10
Remove bloat script > https://gist.githubusercontent.com/matthewjberger/2f4295887d6cb5738fa34e597f457b7f/raw/b23fa065febed8a2d7c2f030fba6da381f640997/Remove-Windows10-Bloat.bat

Dans la vidéo, il gagne ~500 Mo de mémoire vive, ce qui sur un PC de jeu n’est pas anodin.

L’ensemble peut aussi être appliqué sur les PC pas trop puissants ou anciens.

Par contre, dans tous les cas, ne faites pas tout ça à la légère.


— (permalink)

Note : lenteur JS

mercredi 20 février 2019 à 16:32

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);
}

=_=


— (permalink)

Olivier SITRUK sur Twitter : "Hier a une manif contre l’antisémitisme dans le Var, à droite mon père ( président de la communauté juive de Draguignan) , à gauche le mufti du var, ils ont échangé leurs signes extérieurs de croyants et ça les fait se marrer. C’est ça la France.… https://t.co/2QGPysqAYT"

mercredi 20 février 2019 à 15:55

:-)


— (permalink)

Grumpy Website

mercredi 20 février 2019 à 13:55

Je ne sais pas si vous connaissais ce site, mais il râle tous les jours contre les « petits trucs pourris » dans le design sur le web (mais parfois aussi ailleurs).

Il râle sur des détails, mais il faut dire qu’il a très souvent raison.


— (permalink)

Découvrez le World Wide Web comme en 1990 – Korben

mercredi 20 février 2019 à 13:49

Le nav (en ligne) : https://worldwideweb.cern.ch/

Tiens, à l’époque ils n’avaient PAS DE PUB… ni de popup… ni de trackers sur les sites.


— (permalink)

路地裏のにゃん吉 (@nyankichi5656) • Instagram photos and videos

mardi 19 février 2019 à 16:49

Un photographe japonais de chats. Des chats partout \o/

Mention pour celle là : https://www.instagram.com/p/BUhMS6UDuEz/ :D


— (permalink)

Note : rapidité d’affichage d’un lecteur RSS

mardi 19 février 2019 à 15:48

Je maintiens toujours mon propre lecteur RSS. C’est cool et ça me permet de faire face à des problèmes parfois incongrus pour des petits projets.

Déjà, faut savoir que ma connexion est pourrie (<2 Mo/s) et que je ne souhaite pas encombrer mon serveur de requêtes trop lourdes. Pour le moment, mon lecteur RSS tourne donc en local.
Si je met ça en ligne, ça me prendrait beaucoup de temps pour ne serait-ce qu’ouvrir le lecteur RSS.

Certains lecteurs RSS font une requête à chaque ouverture d’un post ou d’un site. C’est impensable pour moi : je ne veux pas attendre 3 secondes à chaque clics.

Depuis le début, l’ensemble des flux RSS "non lus" sont envoyés au navigateur. Généralement, ça fait entre 2 et 3 Mo, mais comme c’est en local, c’est instantané.

Je cherche à améliorer ça.

Je suis aussi sur le point de transformer mon lecteur RSS en PWA (application mobile en HTML/JS/CSS). Pour ça, je dois scinder l’interface de l’application des données. Vu que je bosse intégralement en JSON, c’est très simple.

Concernant la vitesse, en quelques lignes de JS j’ai ma page qui s’affiche et une fois chargée, fait une requête vers le serveur avec les données. C’est pas plus lent qu’avant (mais je fais un pas de plus vers la PWA).

Là où je m’interroge, c’est comment accélérer ça encore plus ?

Sur les 3 Mo transférés, la plus grande partie provient du contenu des articles, le reste étant plutôt des méta-données : date, ID, nom du flux et le titre de l’article.

J’essaye donc :
– à l’affichage de la page, l’interface s’affiche.
– Pendant ce temps, une première requête qui récupère titre + métadonnées et qui suffisent pour afficher les flux dans une liste.
– une seconde requête est ensuite faite qui récupère le contenu des articles et les attache à la liste principale.

La première requête suffit pour afficher la liste des flux : l’utilisateur peut commencer à lire les titres et à trier visuellement les articles qu’il souhaite lire (du moins, perso je fonctionne comme ça).
Pendant qu’il repère les articles qu’il va lire, la page récupère le contenu des articles (2,5 Mo).

Dans l’ensemble, ça prend peut-être quelques ms de plus pour charger, mais beaucoup moins de temps pour s’afficher : l’interface s’affiche instantanément, par exemple. C’est une question de perception de rapidité.

PS :
Quand je combine le résultat des deux requêtes, je fais deux boucles imbriquées, pour vérifier l’égalité tableau1[i].id === tableau2[j].id.
C’est un super-exemple d’utilisation du « break » dont je parle dans cet article. Une fois qu’il y a une égalité, on sort de la boucle et on passe à l’élément suivant.

Résultat : j’ai 471 éléments RSS à parser, donc 471×471 = 221 841 tours de boucles à faire. Avec le break, je prédisais qu’on gagne environ 50 % de la charge. Ça se vérifie sur cet exemple : le nombre de tours de boucle est de 111 214. Le gain est de 49,86 %. On y est.

En fait, je même beaucoup mieux : comme les deux requêtes renvoie deux tableaux de la même base de donnée rapidement à la suite, il est fort probable que les deux tableaux (triés en SQL) comportent la même indexation (sauf si une mise à jour des données RSS s’est glissée pile entre les deux requêtes).

On peut donc faire ça :


// si les ID sont identique, on ne reboucle pas (les deux tableaux comparent à la position « i »)
if (tableau1[i].id === tableau2[i].id) {
	# code here
}
// autrement, on recherche dans tout le tableau (tableau 1 sur « i », et le tableau2 sur « j »)
else {
	for (var j=0, len2 = _this.feedList.length ; j<len2 ; j++) {
		if (newFeeds[i].id === _this.feedList[j].id) {
			# code here
			break;
		}
	}
}

Dans le cas idéal, on passe à 471 tours de boucle (pour 471 éléments)
… au lieu de 111 214…
… au lieu de 221 841.

C’est bien non ?

PPS :
Finalement, le truc où je fais deux requêtes séparées c’est pas une bonne idée.
Ça marche, et l’idée peut fonctionner ailleurs, mais ici le gain n’est pas aussi important que je pensais. En fait, je viens de voir que les données sont déjà compressées par Gzip/deflate par le serveur (réduisant le poids de 2,5 Mo à 0,6 Mo environ).
Ça reste beaucoup de données, mais même avec une connexion pourrie, le temps que la connexion se fasse et que le serveur exécute la requête, j’en suis déjà à 1/3 du temps. Autant éliminer une des deux requêtes et n’en faire qu’une seule : ça reste plus rapide.


— (permalink)

Installer Une ROM Custom Sur Son Téléphone Android - LineageOS

mardi 19 février 2019 à 15:21

Mh…

Je vois qu’ils supportent le BQ Aquaris X chez LineageOS. Je pourrais éventuellement essayer (j’ai jamais fait ça, pour info).

Je sais que BQ permet de déverrouiller le bootloader, vu qu’ils fournissent leur propre outil pour le faire et qu’il y a un bouton dans les paramètres pour le faire (je ne sais pas si c’est comme ça partout).

(PS : je vois que ce blog, Holory.fr, est tout récent ! Je viens de l’ajouter à mes flux RSS =))


— (permalink)

Le Grand Débat s’installe sur Twitch : 10 ministres discuteront avec des vidéastes - Politique - Numerama

mardi 19 février 2019 à 15:06

Ça devient un peu n’importe quoi le grand débat.

[…]
– Bon, toutes ces news des politiques à la con me dépriment. Je vais aller jouer un peu à ce jeu.
*joue 5 minutes*
*popup sauvage apparaît*
– bonjour, c’est Manu ! Tu as 5 minutes pour voter pour moi au proch… parler #grandDébat ?
– AAAAAAAHHH
[…]

— (permalink)

Le ministre de l'ducation et l'Assemble nationale disent non la priorit au logiciel libre pour l'enseignement scolaire

mardi 19 février 2019 à 15:00

Donner la priorité à un concurrent de notre actionnaire ? Vous n’y pensez pas !


— (permalink)

Note : ffmpeg/avconv

mardi 19 février 2019 à 14:49

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 )


— (permalink)