Bon... C'est WTF, c'est pour Chlouchloutte... Je cite : "trois plus trois"
Bernard Blier résume le travail selon Marcon en 45 second. Ce fût réalisé il y a 40 ans, en 1967 dans Un Idiot à Paris
Lisez les deux premiers commentaires : https://twitter.com/mathildeboireau/status/871487529614180352
Ah l'application du législatif par ordonnances directement par l'Exécutif... Que c'est bon, que c'est doux... Que c'est chaleureux... Je pense que chaque français ayant voté pour Macron était pour :
Côté travail :
- Les réductions des droits des salariés face au droit des employeurs.
- Le droit des entreprises à faire prévaloir leurs conventions internes sur le droit du travail (Macron 1 - Montesquieu 0).
- Suppression des contreparties obligatoires des employeurs (repos & rémunération) en cas d'heures sup' par exemple.
- L'augmentation du temps de travail de nuit.
- Le travail de nuit qui ne commence plus à 21h mais à 1h du matin... Quand les bars ferment en gros. (Rappel, vous étiez payés au moins 120% en travail de nuit + RTT, là c'est bye bye pour 4h par jours, les baristas, serveurs, DJ, personnels de ménages, chauffeurs... doivent dire merci).
- Élargissement du CDD (augmentation voire suppression de la durée maximal d'un CDD et augmentation du nombre de renouvellement si suppression de la durée impossible) - celui-là avouez qu'il est lol.
- Changement des conditions de rupture des CDI à l'avantage de l'employeur (nan en fait c'est celui-là qui est lol).
- Réduction de la prime de précarité.
Côté santé :
- Réduction de la protection des mineurs.
- Réduction des obligations contre les risques (chimiques, biologiques, sonores...).
Côté salaire :
- Destruction du salaire conventionnel (ou uniformisation des SMIC vers le bas).
Côté emploi :
- Remise en question des points suivants (négociés les années précédentes par les syndicats) :
- Impossibilité de diminuer la rémunération en dessous de 120% du minimum conventionnel ;
- Obligation de prévoir des efforts des dirigeants et actionnaires ;
- Impossibilité de prévoir une durée dépassant 5 ans ; …
- Plafonnement des indemnités de licenciement
- Référendum d'entreprise possible pour l'employeur à présent
Et j'en passe (en fait il y en a trop, lisez l'article vous comprendrez).
Qui disait à l'UPR que la dernière GOPE allait être le programme de Macron ?
Utiliser les caractères d'unicode à la place des fonts-awesome pour réduire la taille de vos pages web.
D'où vient l'appellation en anglais. Chlouchloutte te connaissant comme je te connais, tu risques de t'en fiche, par Animal, ça peut l'intéresser de comprendre d'où vient l'expression uppercase et lowercase en anglais... Des imprimeurs qui utilisaient des lettres en plomb pardi !
via Animal
Je résume : en quoi les micro-services sont peut-être de la brave merde. Autrement dit, une architecture micro-service est-elle nécessaire à tous et s'applique-t-elle pour tous ?
Ou comment le pouvoir vainqueur a-t-il réécrit l'histoire. Édifiant ? Navrant ? Non pas étonnant en fait.
Comment sécuriser son serveur avec SSL et TLS (surtout TLS 1.2)
J'adore la phrase de fin :
Dans tous les cas, nous sommes baisés. Ce sera soit Idiocracy, soit Demolition Man.
J'adore le commentaire de Neko : "La surprise est totale."
Ce n'est pas faute d'avoir prévnu (T_T).
Je copie-colle :
Petit tuto de ce que j'ai fait l'autre jour :) https://framapiaf.org/@mitsu/550072
Comme vous le savez, la DHT (Distributed Hash Table) est le mécanisme décentralisé utilisé par les logiciels Bittorrent pour échanger les informations sur les torrents, ainsi que les sources et pairs.
Ainsi lorsqu'on lance son logiciel Bittorrent, celui-ci va servir de relais pour une "branche" de la DHT. Ce qui permet donc de collecter des infohash qui circulent (rattachés ou non à un torrent authentique), et avoir un aperçu de ce qui est échangé sur le réseau.Étape 1: la collecte. Pour ce faire, j'ai configuré qBittorrent pour qu'il utilise le port UDP 51515 pour les connexions DHT. Peu importe le port, c'est juste pour ne pas avoir trop de pollution par la suite.
Étape 2: lancer Wireshark et le faire écouter la carte réseau, avec un filtre de capture: "port 51515"Laisser tourner quelques temps :) En 10 minutes vous aurez déjà pas mal de données à vous mettre sous la dent.
Étape 3: dans Wireshark appliquer un filtre d'affichage pour ne garder que les paquets contenant des infohash: "udp contains 5f:68:61:73:68:32:30:3a"
(5f:68:61:73:68:32:30:3a étant la valeur hexa pour le texte UTF-8 "_hash", on aurait pu faire un filtre sur le tag entier "info_hash" mais c'est pas nécessaire)
Ensuite, cliquez sur Edit > mark all displayed packets.
Et enfin: File > Save as (en ne sélectionnant que les paquets marqués)Étape 4: exporter la payload des paquets en hexadécimal brut. Simple ligne de commande: tshark -r fichier.pcapng -Tfields -e data >> fichier.txt
Étape 5: extraire les infohash. Voilà la commande: cat fichier.txt | grep -o -P "5f6861736832303a.{0,40}" | sed 's/5f6861736832303a/magnet:?xt=urn:btih:/' | sort -u >> infohash.txt
(détail: on prend le contenu brut, on vise la séquence hexa correspondante à "_hash" et on inclut les 40 chiffres hexadécimaux suivants, puis on remplace la séquence par le schéma pour avoir des liens magnet, que l'on trie pour supprimer les doublons, et on sort le résultat)Étape 6: récupérer les .torrent correspondants aux infohash, sachant qu'il y a beaucoup de spam sur le réseau: vous n'aurez peut-être qu'une poignée de fichiers .torrent. Pas grave. Commande:
aria2c --bt-save-metadata --bt-metadata-only --enable-dht6=true --dht-entry-point='dht.transmissionbt.com:6881' --dht-entry-point6='dht.transmissionbt.com:6881' --max-concurrent-downloads=3 --timeout=40 --bt-stop-timeout=30 --dht-file-path=dht.dat --dht-file-path6=dht6.dat --input-file=infohash.txtDétail: Aria2 est un puissant logiciel de téléchargement. Ici, on indique en paramètre que l'on ne veut que les .torrent (pas les fichiers partagés eux-même), maxi 3 simultanés pour ne pas être rejetés par les liens DHT, en utilisant les fichiers de relais DHT du répertoire courant (vous voudrez peut-être utiliser Aria2 pour télécharger un torrent populaire, de sorte à créer ces fichiers de "voisins" dans la DHT).
Et voilà ! Vous obtiendrez des fichiers .torrent, dont vous pourrez afficher le contenu avec aria2c -S *.torrent
Libre à vous de les utiliser ensuite pour créer votre propre The Pirate Bay, de manière complètement autonome, avec uniquement des torrents effectivement échangés sur le réseau ^^Merci Mitsu
Un bien belle citation d'un PDG milliardaire sur ce qu'est, pour lui entendons-nous, la mondialisation :
Je définirais la mondialisation comme la liberté pour mon groupe d’investir où il veut, le temps qu’il veut, pour produire ce qu’il veut, en s’approvisionnant et en vendant où il veut, et en ayant à supporter le moins de contraintes possibles en matière de droit du travail et de conventions sociales.
Percy Barnevick ancien P-DG de ABB
I loled.
Bien joué
De mon côté j'ai trouvé cette réponse à ce lien:
if you browse the hg repository you find that the organization is the following one: there are different repositories for different versions and there is one repository for the "dev
version" at http://hg.openjdk.java.net/jdk8u/jdk8u you find the current stable version that is tagged jdk8u60-b12 so every new commit in this branch represent the current
jdk8u60 stable version. if you want to grab the dev version of the same jdk you have to clone the repository at http://hg.openjdk.java.net/jdk8u/jdk8u-dev/
Il semble donc que le répo jdk8u soit un répo de DEV mais rien ne dit que le jdk8 ne soit pas lui non plus un répo de DEV. Bref, une gestion de conf gérée avec les pieds. Du grand Oracle !
Edit : Je suis tombé sur cet autre post de Stack Overflow contenant ce commentaire :
The latest JDK8 OpenJDK Java Class Library source code can be found here: http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/tip/src/share/classes/
For JDK8 updates, see the jdk8u Mercurial project (thanks to Eric Wang for pointing this out).
Mais j'ai du mal de comprendre le principe qui dit que pour la version d'origine on a un répo, mais qu'il existe un autre répo pour les updates uniquement !?
(o_Ô) dafuq ?
Rappelez-vous :
- L'argent liquide protège votre vie privée.
- L'argent liquide limite l'activité spéculative à cause du principe de montant de réserve.
- Sans argent liquide, plus de risque de bankrun puis de bankrout pour les banques, donc activités open-bar pour elles.
- Sans argent liquide, la saisie de 10% à 15% de votre argent sur vos comptes devient possible (comme le suggère le FMI et la Commission Européenne pour faire rembourser la dette française de force - alors que celle-ci ne devrait pas exister sans la perte de la création monétaire ex-nihilo que détenait l'État).
L'article traitant du sujet sur LME
Merci Animal, c'était mon lol du jour
Bon, je dois refaire du Webpack pour mettre à jour le build d'un tool de la boite. Comme j'ai eu beaucoup de peine à retrouver comment et quoi faire, voici un bref résumé des trucs et astuces à connaître sur Webpack.
Comment concaténer des fichiers JS inter-dépendants ?
Principe : mon fichier JS (Main.js) importe d'autres fichiers JS (cf. le mot-clef require de TypeScript / ES6). Et ces fichiers JS importent également d'autres fichiers. L'idée ici est d'avoir un Webpack qui parcours le graphe des dépendances en analysant le code afin de produire un et un seul fichier JS qui n'inclut que ce dont mon application se sert.
Contenu du fichier webpack.conf.js :
module.exports = {
entry: {
Car : './src/Main.js' // Charge ce fichier ainsi que tous ceux dont il dépend via le mot-clef 'require'.
},
output: {
path: './target',
filename: 'merged-file.js'
}
};
Comment créer un bundle de fichiers JS qui n'ont aucune dépendance entre-eux ?
Principe : j'ai plein de libs écrites en JavaScript avec mes petites mimines (ou pas), ces librairies n'ont aucune dépendance entre-elles, cependant je souhaiterais les concaténer dans un gros bundle de sorte à minimiser le nombre de requêtes réseau.
Contenu du fichier webpack.conf.js :
module.exports = {
entry: [
'./src/Car.js', // La liste des fichiers à concaténer
'./src/Vehicule.js'
],
output: {
path: './target',
filename: 'merged-file.js'
}
};
Comment créer plusieurs bundles de fichiers JS qui n'ont aucune dépendance entre-eux ?
Principe : je reprends les fichiers JS du point précédent à ceci près que je souhaite créer plusieurs bundles, un pour chaque types de véhicules par exemple.
Contenu du fichier webpack.conf.js :
module.exports = {
entry: {
four-wheels : [
'./src/Car.js',
'./src/Vehicule.js'
],
two-wheels : [
'./src/Bike.js',
'./src/Vehicule.js'
]
},
output: {
path: './target',
filename: '[name].bundle.js',
chunkFilename : '[id].bundle.js'
}
};
Comment minifier mes bundles JS ?
Principe : mes fichiers JS sont gros et je souhaite supprimer le maximum d'espace, les commentaires, réduire le nom des fonctions, variables & Co de sorte à fournir le plus petit fichier possible.
Contenu du fichier webpack.conf.js :
var webpack = require("webpack");
module.exports = {
entry: [
'./src/Car.js',
'./src/Vehicule.js'
],
output: {
path: './target',
filename: 'app.minified.js'
},
plugins: [
new webpack.optimize.UglifyJsPlugin({minimize: true})
]
};Le problème vient du power management de la carte (me concernant), en effet l'énergumène s'attelait à passer la carte en mode économie d'énergie - ce qui est une très bonne chose pour la batterie de mon ordinateur portable - sauf que le power management exécute cette opération aussitôt que la connexion wifi est inactive et met plusieurs minutes à renvoyer le courant électrique dans la carte wifi de telle sorte qu'il faille redémarrer la bête (ou a minima les modules network-manager & co). Bref inutilisable.
Voici la solution qui réduit le temps d'usage sur batterie mais corrige le problème :
sudo iwconfig wlp2s0 power off
Voilà