Mensuel Shaarli

Tous les liens d'un mois sur une page.

May, 2017

Uppercase & lowercase – HTeuMeuLeu

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 !

SSL and TLS Deployment Best Practices · ssllabs/research Wiki · GitHub

Comment sécuriser son serveur avec SSL et TLS (surtout TLS 1.2)

franceinfo sur Twitter : "Emmanuel Macron a décidé de saisir le Parlement pour prolonger l'état d'urgence (qui arrive à échéance le 15 juillet) jusqu'au 1er novembre https://t.co/Z7YQufx0CO" - Nekoblog.org :: Marque-pages

J'adore le commentaire de Neko : "La surprise est totale."

Ce n'est pas faute d'avoir prévnu (T_T).

What version of openjdk8 do I get to build update 131, same as oracle's latest? jdk8/jdk8u? - Stack Overflow

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 ?

Rag'n'Bone Man - Skin (Live at State Of The Ark Studios) - YouTube
Votre wifi est instable sous Mint avec une carte intel

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à

Comment j'ai quitté Google et plaqué Microsoft
searx - un moteur de recherche qui ne stock pas vos données

Mais qui s'appuie sur Google.

JSFuck - Write any JavaScript with 6 Characters: []()!+

JavaScript, a cause notamment ses nombreuses erreurs de conception, permet de coder dans une syntaxe turing complète avec 6 caractères seulement : ( ) [ ] + et !

Ou comment uglifer votre code de manière extraordinaire.

Retour sur le jugement majoritaire (et l’élection présidentielle) | Science étonnante

Oh tiens... Sans le vote utile c'est Mélenchon qui aurait gagné... Tiens tiens tiens

La Relève et La Peste

Le "vrai" programme de Macron... Tiens ça me rappelle la stratégie de la Blitzkrieg de Fillon...

Pour toi Animal

Babymetal - Entre Metal et JPop

Le groupe fait du Kawaï-Metal... Voilà que je vire otak' moi.

Mistigune est sympa, je vais écouter les autres chansons.

Une palette de couleur pour le blog
A quelle retraite François Hollande aura-t-il droit ?
Complete List of Macro Keywords for the NetBeans Java Editor

La liste complète des mots-clefs de NetBeans pour fabriquer vos macros :

abbrev-debug-line                   Debug Filename and Line Number
adjust-caret-bottom                 Move Insertion Point to Bottom
adjust-caret-center                 Move Insertion Point to Center
adjust-caret-top                    Move Insertion Point to Top
adjust-window-bottom                Scroll Insertion Point to Bottom
adjust-window-center                Scroll Insertion Point to Center
adjust-window-top                   Scroll Insertion Point to Top
all-completion-show                 Show All Code Completion Popup
annotations-cycling                 Annotations Cycling
beep                                Beep
build-popup-menu                    Build Popup Menu
build-tool-tip                      Build Tool Tip
caret-backward                      Insertion Point Backward
caret-begin                         Insertion Point to Beginning of Document
caret-begin-line                    Insertion Point to Beginning of Text on Line
caret-begin-word                    Insertion Point to Beginning of Word
caret-down                          Insertion Point Down
caret-end                           Insertion Point to End of Document
caret-end-line                      Insertion Point to End of Line
caret-end-word                      Insertion Point to End of Word
caret-forward                       Insertion Point Forward
caret-line-first-column             Insertion Point to Beginning of Line
caret-next-word                     caret-next-word
caret-previous-word                 caret-previous-word
caret-up                            Insertion Point Up
collapse-all-code-block-folds       Collapse All Java Code
collapse-all-folds                  Collapse All
collapse-all-javadoc-folds          Collapse All Javadoc
collapse-fold                       Collapse Fold
comment                             Comment
complete-line                       Complete Line
complete-line-newline               Complete Line and Create New Line
completion-show                     Show Code Completion Popup
copy-selection-else-line-down       Copy Selection else Line down
copy-selection-else-line-up         Copy Selection else Line up
copy-to-clipboard                   Copy
cut-to-clipboard                    Cut
cut-to-line-begin                   Cut from Insertion Point to Line Begining
cut-to-line-end                     Cut from Insertion Point to Line End
default-typed                       Default Typed
delete-next                         Delete Next Character
delete-previous                     Delete Previous Character
documentation-show                  Show Documentation Popup
dump-view-hierarchy                 Dump View Hierarchy
expand-all-code-block-folds         Expand All Java Code
expand-all-folds                    Expand All
expand-all-javadoc-folds            Expand All Javadoc
expand-fold                         Expand Fold
fast-import                         Fast Import
find-next                           Find Next Occurrence
find-previous                       Find Previous Occurrence
find-selection                      Find Selection
first-non-white                     Go to First Non-whitespace Char
fix-imports                         Fix Imports
format                              Format
generate-code                       Insert Code
generate-fold-popup                 Generate Fold Popup
generate-goto-popup                 Generate Goto Popup
generate-gutter-popup               Margin
goto                                Go to Line...
goto-declaration                    Go to Declaration
goto-help                           Go to Javadoc
goto-implementation                 Go to Implementation
goto-source                         Go to Source
goto-super-implementation           Go to Super Implementation
in-place-refactoring                Instant Rename
incremental-search-backward         Incremental Search Backward
incremental-search-forward          Incremental Search Forward
insert-break                        Insert Newline
insert-date-time                    Insert Current Date and Time
insert-tab                          Insert Tab
introduce-constant                  Introduce Constant...
introduce-field                     Introduce Field...
introduce-method                    Introduce Method...
introduce-variable                  Introduce Variable...
java-next-marked-occurrence         Navigate to Next Occurrence
java-prev-marked-occurrence         Navigate to Previous Occurrence
jump-list-last-edit                 Last edit
jump-list-next                      Forward
jump-list-prev                      Back
last-non-white                      Go to Last Non-whitespace Char
make-getter                         Replace Variable With its Getter
make-is                             Replace Variable With its is* Method
make-setter                         Replace Variable With its Setter
match-brace                         Insertion Point to Matching Brace
move-selection-else-line-down       Move Selection else Line down
move-selection-else-line-up         Move Selection else Line up
org.openide.actions.PopupAction     Show Popup Menu
page-down                           Page Down
page-up                             Page Up
paste-formated                      Paste Formatted
paste-from-clipboard                Paste
redo                                Redo
reindent-line                       Re-indent Current Line or Selection
remove-line                         Delete Line
remove-line-begin                   Delete Preceding Characters in Line
remove-selection                    Delete Selection
remove-tab                          Delete Tab
remove-trailing-spaces              Remove Trailing Spaces
remove-word-next                    remove-word-next
remove-word-previous                remove-word-previous
replace                             Replace
run-macro                           Run Macro
scroll-down                         Scroll Down
scroll-up                           Scroll Up
select-all                          Select All
select-element-next                 Select Next Element
select-element-previous             Select Previous Element
select-identifier                   Select Identifier
select-line                         Select Line
select-next-parameter               Select Next Parameter
select-word                         Select Word
selection-backward                  Extend Selection Backward
selection-begin                     Extend Selection to Beginning of Document
selection-begin-line                Extend Selection to Beginning of Text on Line
selection-begin-word                Extend Selection to Beginning of Word
selection-down                      Extend Selection Down
selection-end                       Extend Selection to End of Document
selection-end-line                  Extend Selection to End of Line
selection-end-word                  Extend Selection to End of Word
selection-first-non-white           Extend Selection to First Non-whitespace Char
selection-forward                   Extend Selection Forward
selection-last-non-white            Extend Selection to Last Non-whitespace Char
selection-line-first-column         Extend Selection to Beginning of Line
selection-match-brace               Extend Selection to Matching Brace
selection-next-word                 selection-next-word
selection-page-down                 Extend Selection to Next Page
selection-page-up                   Extend Selection to Previous Page
selection-previous-word             selection-previous-word
selection-up                        Extend Selection Up
shift-line-left                     Shift Line Left
shift-line-right                    Shift Line Right
split-line                          Split Line
start-macro-recording               Start Macro Recording
start-new-line                      Start New Line
stop-macro-recording                Stop Macro Recording
switch-case                         Switch Case
to-lower-case                       To Lowercase
to-upper-case                       To Uppercase
toggle-case-identifier-begin        Switch Capitalization of Identifier
toggle-comment                      Toggle Comment
toggle-highlight-search             Toggle Highlight Search
toggle-line-numbers                 Toggle Line Numbers
toggle-non-printable-characters     Toggle Non-printable Characters
toggle-toolbar                      Toggle Toolbar
toggle-typing-mode                  Toggle Typing Mode
tooltip-show                        Show Code Completion Tip Popup
uncomment                           Uncomment
undo                                Undo
word-match-next                     Next Matching Word
word-match-prev                     Previous Matching Word
Ruptures, ZAPPING N°3 : UE contre Démocratie... On a testé pour vous ! - YouTube

via Animal

Enough with the microservices | Adam Drake

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 ?

Entre "Idiocracy" et "Demolition Man", quel est celui qui reflète le mieux notre société ?

J'adore la phrase de fin :

Dans tous les cas, nous sommes baisés. Ce sera soit Idiocracy, soit Demolition Man.

Une démocratie mondiale de façade. La fin programmée des états….. – Les moutons enragés

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

Sondage de l'UE sur la suppression de l'argent liquide

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

» la Commission européenne engage une procédure d’infraction contre l’Autriche pour des mesures anti-dumping social, par Laurent Dauré - Animal

Merci Animal, c'était mon lol du jour

Webpack - La base pour bidouiller ses fichiers JS

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})
    ]
};
Animal - la Red Hat qui tue

Moi j'aurai donné en exemple cette commande :

sudo yum install nano

Enfin je dis ça, ne dit rien...

Avoir des couleurs dans la console lorsque l'on exécute un script via SSH

Exécuter un script à travers SSH :

# N'affichera aucune couleur
ssh user@host "ls --color=auto"

Exécuter un script à travers SSH avec les couleurs :

# Tout joli et coloré
ssh -t user@host "ls --color=auto"
Un cours très sympa sur comment tunner vos JVM

Et ce lien vers le même site qui parle aussi des changements apportés par Java 8 au niveau de la JVM.

How to build OpenJDK

Un tuto de build fournit par LinuxFromScratch

La loi de 1973 accusée à tort d'être à l'origine de la fin des emprunts gratuits accordés à l'Etat par la Banque de France - AgoraVox le média citoyen

Il faut que j'étudie les sources. Même si je pense que les Conventions entre l'état et les différents organismes et collectivités lui permettait de créer de la monnaie non pas pour lui même mais au moins pour un autre et à taux zéro.

Comment mettre un mot de passe dans le setting.xml de Maven alors que celui-ci contient une esperluette

Copyright : Il s'agit de la trouvaille de Lapinferoce

Pour comprendre

Quand votre Maven doit se connecter un à Nexus vous devez modifier son fichier settings.xml en lui ajoutant les infos qui vont bien. Plus précisément celles-ci :

<server>
    <id>my-wunder-nexus</id>
    <username>my-login</username>
    <password>my-password</password>
</server>

Quel est le problème ?

Il est triple :
1) Vous êtes une feignasse qui a la flemme de chiffrer ses mots de passe.
2) Le XML de Maven interdit le caractère '&' qu'il interprète comme le & de HTML (c'est-à-dire celui pour faire des é, è etc)
3) Ce n'est pas vous qui avez choisi ce mot de passe, il s'agit d'un compte de service et donc, il est très difficilement modifiable.

C'est quoi donc la solution ?

Prenons le mot de passe fictif : TastyPie&43. On remarque clairement l’esperluette qui ne passera pas... Sauf si l'on écrit ceci :

<server>
    <id>my-wunder-nexus</id>
    <username>my-login</username>
    <password><![CDATA[TastyPie&43]]></password>
</server>

Vous avez compris ? En réalité, le fichier settings.xml de Maven est interprété comme un fichier HTML, en conséquence il est possible d'y injecter des data brutes contenant n'importe quoi.

#BeauGoss Lapinferoce

Le graphique résumant qui à voté pour qui au 1er tour

Et l'on nous parlera de Démocratie ! Et ce graphique n'intègre pas ceux qui n'ont pas pu voté, les inscrits en double et les fraudes...

Comment éradiquer 95% des fautes d’orthographe et de grammaire ? - BLOG // Patricia Gallot-Lavallée, Experience designer

Pour Animal parce que c'est dans l'ère du temps !

Après je demeure réservée quant à l'orthographe, je m'explique, la bonne orthographe d'un mot consiste en l'apprentissage parfait de la composition des lettres de ce mot + l'apprentissage des diverses exceptions de notre belle langue (de merde ?). Exemple avec le mot œuf ou encore haricots qui se prononce a-ri-ko mais qui s'écrit hâ-ri-cote m'voyez...

Aussi, je suis plus tournée vers la défense de la grammaire qui implique une logique claire, réfléchie et compréhensible ainsi qu'un vocabulaire basé sur des syllabes (comme l'Espéranto) et pour lequel il n'y a pas d'exception ou encore l'absence de "plusieurs manières de faire le même truc".

Ah oui j'oubliais, il s'agit du français... Une langue pensée avec les pieds et bâtie sur des exceptions, des cas particuliers, bardée d'expressions grecques ou latines ou encore modifiée a posteriori au regard des erreurs des "grands auteurs" parce que c'est plus hype quand une connerie vient d'un homme célèbre.

Et l'on s'étonnera ensuite que les français sont pris pour des cons à l'étranger.

Le petit tuto de Marlène Schiappa pour frauder la sécurité sociale | Les ateliers du CFJ
La mémoire de la Commune ou l’histoire écrite par les vainqueurs - Le Vent Se Lève
thumbnail

Ou comment le pouvoir vainqueur a-t-il réécrit l'histoire. Édifiant ? Navrant ? Non pas étonnant en fait.

Collecter des infohash Bittorrent depuis la DHT - Mitsu'liens - Liens Ecyseo

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.txt

Dé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

La destruction du service public (with tweets) · LeGregox · Storify

Tout est dans le titre. Voici comment l'union européenne est en train de nous manger via la privatisation des services publics

Citation du jour - Il n'y a que des esclaves

Vous avez cru jusqu'à ce jour qu'il y avait des tyrans ?
Et bien vous vous êtes trompés !
Il n'y a que des escalves : là ou nul n'obëit, personne ne commande.

Anselme BELLEGARRIGUE

Show Desktop Shortcut - Create - Windows 7 Help Forums

Comment ajouter une icône "Afficher le Bureau" sous Windows 7. Voici le [lien direct}(https://www.sevenforums.com/attachments/tutorials/57574d1269652692-show-desktop-shortcut-create-show_desktop.zip)

Git - git-credential-store Documentation - Animal

Une info complémentaire, si tous tes répos Git sont accessibles avec le même mot de passe, tu peux taper ceci à la place :

git config --global credential.helper store
Est-ce que c'est encore l'état d'urgence ?

Tout est dans le titre.

Animal - Le Hobbit en version courte
Social Media qu'ils disaient...

Animal... Ce post est tristement pour toi (il parle des panneaux publicitaires vidéos en plein rue).

Comment setuper un Slave Jenkins headless sous Linux

Télécharger depuis le slave Jenkins, l'agent présent sur le master Jenkins :

wget http ://yourserver:port/jnlpJars/slave.jar 

La commande à exécuter pour lancer l'agent sur la machine Slave :

java -jar slave.jar -jnlpUrl http ://yourserver:port/computer/slave-name/slave-agent.jnlp
Schema.org sur - Ce qu'il faut faire pour être référencé par Google

Optimisez votre site avec le balisage Article, NewsArticle, Blogposting, Organization, Website de Schema.org pour exploiter les données structurées.

Comment ajouter une entrée dans le menu contextuel de Nemo

Prenons un exemple : vous souhaitez lancer un JAR avec la commande javaw (rappel = la commande javaw fait la même chose que la commande java mais sans afficher de console).

Il faut créer un fichier contenant ci :

Attention, la commande invoquée (ici javaw) DOIT ÊTRE DANS VOTRE PATH !

[Nemo Action]
Name=Lancer le JAR
Comment=Execute un fichier JAR/WAR avec javaw
Exec=javaw -jar %F
Icon-Name=bug-buddy
Selection=Any
Extensions=jar;war;

Où mettre ce fichier ?

Pour qu'il soit accessible à tous les utilisateurs (il vous faudra les droits root) :

## Placez votre fichier ici :
/usr/share/nemo/actions/

Pour qu'il ne soit accessible qu'à vous-même (pas d'élévation de privilèges) :

## Placez votre fichier ici :
$HOME/.local/share/nemo/actions/

Un dernière contrainte ?

Oui, votre fichier DOIT AVOIR L'EXTENSION : .nemo_action

Pour Animal : builder un compact profile de JVM 1.8 pour linux
thumbnail

Tout est dans le titre. L'idée est d'arriver aux choses suivantes :
1) Automatiser le build de OpenJDK 1.8 pour architecture linux x64
2) Arriver à produire de manière automatique trois JVM compactées à partir des profiles 1, 2 et 3 à partir du build d'OpenJDK 1.8 fournit ci-dessus.

Ce répo GitHub montre comment faire.

Les violences policières n'existent pas en 2017

Cette vidéo n'a jamais été filmée, ça ne se passe pas en France, il ne s'agit pas de la police française, ce ne sont pas des adolescents qui sont agressés et ce n'est pas la police française qui fait ça.

Voilà, je ne parlerai même pas de l'impunité #EtatPolicier vs #EtatDeDroit

Monter son serveur Git en local en deux lignes de commande

Pour faire simple voici les deux commandes à utiliser au sein de votre répo.

Pull only :

git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose

Pull / Push :

git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose

Pour Utiliser le répo :

git clone git://127.0.0.1/

Rappel : Le port part défaut du protocol git:// est le 9418

A quel endroit de l'échelle de la maturité êtes-vous ?