Mensuel Shaarli

Tous les liens d'un mois sur une page.

October, 2017

Créer un plugin Sonar - Doc SonarQube

La doc officielle de Sonatype à propos de la création de plugins.

Les Catalans et leur bien étrange independance - YouTube

Ou la destruction de l'Espagne par les européistes.

Ava's Demon

Une trèèèèès longue BD à lire et j'avoue que je vais me faire les 1922 cadres à cette heure. 304 pour aujourd'hui :D

Découvrez comment votre imprimante vous espionne et peut vous dénoncer… Par Olivier Berruyer
thumbnail

Tout est dans le titre. La société panoptique a fait surface depuis plusieurs années déjà et la route sera longue et ardue pour s'en sortir.

#SurveillanceDeMasse

Le lien vers qui possède quel média en France

La carte a été actualisée par Acrimed.

Merci Animal pour le lien

Street Lottery - Volteface

Pour Chlouchloutte (à transférer à Catherine)

AlphaGo Zero: Learning from scratch | DeepMind

La différence entre le machine-learning, le deep-learning et le deep-mind est là.

Le machine learning repose sur le fait qu'un humain tri les données pour que la machine apprenne. Le deep learning suppose que la machine trie tout elle-même mais que l'humain spécialise ses algorithmes (j'ai entendu parlé de "spécialisation du contexte"), le deep-mind consiste à laisser la machine se débrouiller pour tout comprendre de A à Z.

Là, plus aucune intervention humain, l'autonomie est totale, les données ne sont ni triées, ni spécialisées ; aucun algorithme particulier n'est implémenté, cela ressemble à de l'apprentissage qu'un enfant ferait, à ceci près qu'il ne prend plus que quelques heures... (d'où les références au QI d'une IA).

À tout ceux qui ne veulent pas entendre parler du problème de l'IA dans une économie capitalistique : comment les marchés financiers vont-ils vous mettre en concurrence avec l'IA qui ne dort pas, n'est jamais malade, est toujours consciencieuse dans son travail, n'est jamais agressive, n'est jamais triste, n'est jamais démotivée et surtout est capable d'apprendre en quelques heures / jours des techniques et des compétences qui requièrent des années d'apprentissage et une rigueur incroyable pour les humains les plus brillants ?

La réponse est simple l'humain va être mis en concurrence et va perdre. Celui qui détiendra l'IA, détiendra le pouvoir et actuellement l'IA sera détenue par des propriétaires lucratifs, c'est-à-dire les individus les plus riches du monde capable de financer sa conception soit d'en acheter / louer une instance.

Mettez en parallèle l'évolution de la robotique et vous obtiendrez la meilleure force de travail du monde en terme de qualité mais aussi en terme de coûts. Mais rassurons-nous, depuis quelque temps la France s'est mise "En Marche"...

Ce n'est pas mon style de dire cela mais ces mots exprimerons mieux que tout mon sentiment : que Dieu nous garde.

Les différents type MIME pris en compte par LibreOffice / StarOffice

CE qui permettra d'ouvrir vos documents depuis un lien dans une page web.

Macron, Philippe et Villani membres des Young Leaders en 2012 - Matin 9

Pour toi Animal

Fail2ban and LXC containers | hibern8

Un tuto sur le setup d'un fail2ban dans un conteneur LXC

Currying and Partial Application in Kotlin

Définition

Le currying de fonction est la décomposition d'une fonction à n paramètres en n fonctions à 1 paramètre.

Prenons un exemple :

// A) Vous écrivez :
val result:Int = add(1, 2, 3)     // result = 6

// B) Vous souhaitez écrire :
val result:Int = add(1)(2)(3)     // result = 6

Passer de A à B, c'est la currification ou currying en anglais. L'opération inverse s'appelle la décurification.

Remarque :
Dans l'exemple (B), add(1) retourne une fonction qui une fois exécutée avec le paramètre 2 retourne une autre fonction qui prendra le paramètre 3.

Comprendre la frontière entre le matériel et le logiciel - Couleur-Science

Pour JLD.

Protéger son serveur en utilisant Fail2Ban - Le blog de NicoLargo

Un tuto sympa. Je résume les points qui m'intéressent :

Protéger des attaques en SSH :

# SSH
# 3 retry ? > Ban for 15 minutes
[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 900

Protéger des attaques en HTTP :

# Protect against DOS attack
# 360 requests in 2 min > Ban for 10 minutes
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/varnish/varnishncsa.log
maxretry = 360
findtime = 120
action = iptables[name=HTTP, port=http, protocol=tcp]
mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]
bantime = 600
samskivert: Why Maven Sucks: Act I

L'acte II explique comment passer les problèmes de path dans les chemins hard-codé dans les jar.

Réglons le problème du chômage | Grise Bouille

Quel bel article de Grise Bouille dont la première étape est de poser la seule question pour parler du problème : Mais en vrai, on nous parle du problème du chômage... Mais ça veut dire quoi "problème du chômage" en sachant que la caisse de cotisation au chômage (cf. UNEDIC) est excédentaire de 5 milliards d'euros ?

En gros, qui plombe les finances de l'UNEDIC dont les caisses, les allocations et la distribution de l'argent sont parfaitement gérés et dont les coûts de fonctionnement sont les moins élevés au monde.

La suite est dans l'article.

Apple peut rendre inutilisables les iPhone réparés par des réparateurs indépendants, c'est ce que révèle la dernière mise à jour d'iOS

Tout est dans le titre. Je ris tellement à cette annonce. En effet, les consommateurs des produits Apple sont leurs propres bourreaux. Je ne comprends pas que l'on puisse cautionner ce genre de comportement. Pour moi payer c'est voter et les clients d'Apple votent pour la surveillance de masse, ils votent pour l'exploitation humaine, ils votent la réduction de leurs droits face aux corporations...

En d'autres mots, ces gens choisissent la construction d'un monde merdique qui soit systématiquement plus merdique que l'état précédent ; ils optent sciemment, par aveuglement idéologique, à cause du phénomène d'escalade de l'engagement ou tout autre dérive psychologique, cette dégringolade vers une situation où les individus qui ne possèdent pas des millions ne sont plus rien.

Bravo les mecs, encore un petit effort et seule la mort nous délivra. #Bisous

» Brexit : Quand ceux qui ont tout à perdre négocient avec ceux qui n’ont rien à gagner… Par Charles Gave

Encore un article légendaire de Charle Gave. Pour Animal

Dual-boot Windows/Ubuntu : Décalage horaire de l'horloge

Quand vous avez un dual boot, l'horloge de l'OS Linux est en UTC, celle de Windows ne l'est pas. Mécaniquement, Windows retardera d'une à deux heures dès que l'horloge Linux est réglée. Pour corriger le problème faites ceci (sous Linux évidemment) :

sudo gedit /etc/default/rcS

# Puis modifier
UTC=yes

# en
UTC=no
Idiomatic Kotlin. Best Practices.

Un bon résumé des éléments pratiques dans le langage Kotlin. Je vous invite à en juger par vous-même.

How to Docker Compose a developer environment: an open source example

Un tuto sur Docker Compose. Toujours bon à avoir

GitLab-CI runner : setuper son runner en une seule ligne de commande

Voici le script Ansible :

- name: List configured runners
  command: gitlab-runner list
  register: configured_runners
  changed_when: False

- name: Register runner to GitLab
  command: gitlab-runner register >
    --non-interactive
    --url '{{ gitlab_runner_coordinator_url }}'
    --registration-token '{{ gitlab_runner_registration_token }}'
    --description '{{ gitlab_runner_description }}'
    --tag-list '{{ gitlab_runner_tags | join(",") }}'
    --executor '{{ gitlab_runner_executor }}'
    --docker-image '{{ gitlab_runner_docker_image }}'
when: configured_runners.stderr.find('\n{{ gitlab_runner_description }}') == -1

Hors Ansible :

gitlab-runner register \
              --non-interactive \
              --url 'https ://${GITLAB_HOST}:${GITLAB_PORT}/ci' \
              --registration-token 'Yy1YWzcDVyBbc9RNGxsb' \
              --description 'Mon GitLab Runner' \
              --tag-list 'java php nodejs' \
              --executor 'shell'
#              --docker-image '{{ gitlab_runner_docker_image }}'
Benjamin Bayart - JRES - Neutralité du Net - YouTube

Pour toi Lenny.

French American Foundation et les élites politiques Françaises - YouTube

Quels hommes et femmes politiques français était un Young Leader de la French American Foundation... Je précise, par France 2 hein...

#ComplotistePasVrai

Bye bye la neutralité du net

Que se passe-t-il lorsque les fournisseurs d'accès internet peuvent décider du contenu qui passera dans leurs tuyaux... Simplement un forfait "de base" où l'on ne peut rien faire et plein de petits packages en vrac :

  • Un package facebook
  • Un package site de news
  • Un package Peer-2-Peer / Bitorrent
  • Un package Jeux vidéo
  • Un package Youtube / Netflix
  • Un package SSH / FTP
  • ...

Bref, à 5 € le package + 15 € le forfait de base ça fait du bien aux fesses de payer 100 € un accès à internet complètement bridé !

Modern JavaScript Explained For Dinosaurs – Peter Jang – Medium

Une explication montrant l'évolution de la stack JS depuis 2010 et pourquoi autant d'outils ont fait leur apparition depuis.

Tutoriel sur la gestion de l'environnement Bluemix local et de l'environnement Bluemix dédié

Un tutoriel sur Bluemix. Pour toi Animal.

Fastest JSON parser ever

Pour toi Lenny.

SoCcam's Razor: Applying the Single Responsibility Principle using a practical approach

A practical demonstration of how to apply the Single Responsibility Principle

Pour toi Lenny

Case Study: Ivee 3D Editor - Aurelia+Azure+ASP.NET+Redux+ThreeJS

Comment mixer AureliaJS et ThreeJS dans un même projet. Pour toi Lenny, je sais que tu vas en avoir besoin.

Correspondance Temps CPU vs Temps Humain

Explication : l'idée est de voir combien de temps prendraient les différents traitements en proportion si 1 cycle CPU prenait 1 sec à la place de 0.3 ns.

Je traduis (en partie) ci-dessous :

|                |         TYPE D'ACCÈS           | TEMPS CPU | ÉQUIVALENT TEMPS HUMAIN
|----------------|--------------------------------|------------------------------------
|                | 1 cycle CPU                    |    0,3 ns |     1 sec
| Dans le        | Accès cache L1                 |    0,9 ns |     3 sec
| Processeur     | Accès cache L2                 |    2,8 ns |     9 sec
|                | Accès cache L3                 |   12,9 ns |    43 sec
|----------------|--------------------------------|------------------------------------
| Mémoire        | Accès RAM                      |  120,0 ns |     6 min
|----------------|--------------------------------|------------------------------------
| Disques        | Accès SSD I/O                  | 50-150 µs |   2-6 jours
| Durs           | Hard Disk IO                   |   1-10 ms |  1-12 mois
|----------------|--------------------------------|------------------------------------
|                | Internet SF to NYC             |     40 ms |     4 ans
| Réseau         | Internet SF to UK              |     81 ms |     8 ans
|                | Internet SF to Australia       |    183 ms |    19 ans
|----------------|--------------------------------|------------------------------------
|                | OS virtualization reboot       |     4 sec |   423 ans
| Systèmes       | SCSI command time-out          |    30 sec |  3000 ans
| D'exploitation | Hardware virtualization reboot |    40 sec |  4000 ans
|                | Physical system reboot         |     5 min |    32 millénaires
Operating system market share : Linux dépasse OSX !!!

Ohhhhhhh cette nouvelle ! Sur le marché des particuliers, hors tablettes et mobile, Linux devient le second système d'exploitation devant Windows 8 et tous les OSX réunits ! Je pense que 2018 va être le début de gros changements :D

Edit : À ma grande déception, c'était une erreur de calcul qui s'est introduite au moment de la pondération des données. Je suis un peu triste mais je sais que chaque année, nous gagnons quelques pourcents. Le lien relatant l'erreur