PROJET AUTOBLOG


le hollandais volant links

Site original : le hollandais volant links

⇐ retour index

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 là)


— (permalink)

Prison avec sursis et 1 800 euros à payer pour 223 films téléchargés en P2P - Next INpact

mardi 19 février 2019 à 14:22

Comment ne pas trouver ça absurde :
– un DVD : 10 à 20 € le film
– 223 films et payer 1 800 € : 8 € le film.


— (permalink)

The Scorpion That Turned Into Copper! - Rock Seeker

mardi 19 février 2019 à 14:16

La fossilisation, c’est quand un ĂȘtre vivant (enfin, mort du coup) se retrouve Ă  la merci des Ă©lĂ©ments : chaque atome organique de son corps finit par ĂȘtre remplacĂ© par des minĂ©raux inorganiques, en prĂ©servant plus ou moins sa structure biologique (organes, etc.).

Ici, un environnement riche en cuivre a permis de remplacer, atome par atome, son corps par des atomes de cuivre. Résultat, le scorpion est devenu 100% cuivre.


— (permalink)

Prime Macron : la quasi-totalité des grands groupes ont répondu présent

mardi 19 février 2019 à 13:12

Repartager la thune d’une boüte à ceux qui font tourner la boüte est toujours une bonne chose : ce n’est que justice.

Pour rebondir sur ça :

Ce ne sont pas les salariés des grands groupes français qui en ont le plus besoin. Or ce sont eux qui vont trÚs majoritairement la toucher.

Ça pourrait Ă©ventuellement en ĂȘtre autrement, si les boĂźtes qui font le plus de bĂ©nĂ©fices payaient des impĂŽts qui sont ensuite redistribuĂ©s directement ou indirectement Ă  ceux qui en ont besoin


100 milliards d’euros d’évasion fiscale par an, ça reprĂ©sente plus d’un smic par habitant français (pas par foyer, par habitant).

100 milliards d’euros d’évasion fiscale par an, ça permet aussi de combler la dette en 15~20 ans, et donc de virer peu Ă  peu la CRDS (et donc de bĂ©nĂ©ficier Ă  tous les travailleurs).


— (permalink)