Mensuel Shaarli

Tous les liens d'un mois sur une page.

July, 2017

Faire de son Pi une borne (Raspberry Pi Kiosk mode) Jessie Version
5 open source alternatives to Trello | Opensource.com

Des alternatives à trello avec des exemples de GUI de boards Kanban.

Pour toi Chlouchloutte

16 Kotlin Tips for Android Development - Savvy Apps

Quelques trucs & astuces pour Kotlin

Raspberry : liste des actions à faire pour sécuriser sa Raspbian

Utilisateur

** Changer le mot de passe par défaut

  • Remplacer/Renommer l'utilisateur pi par un autre

Serveur SSH

  • Changer le port par défaut (22) en autre chose
  • Interdire les connexions SSH à root
  • Mettre une clef RSA d'au moins 4096 (à partir de janvier 2017)
  • Si possible white-lister les IP autorisées
  • Mettre en place un fail2ban
  • Désactiver toutes les formes d'authentification non supportées

Pare-feu

  • Refermer tous les ports (REJECT)

OS

  • Interdire l'écriture dans /tmp aux utilisateurs (à l'exception de deux exécutant des services)
  • Tenir sa Raspbian à jour (apt upgrade)
  • Exécuter un contrôle d'intégrité périodique (calcul de hash régulier pour s'assurer que les fichiers n'ont pas été modifiés)

    ## Le script qui fait le taf (chopé sur internet) :
    
     #!/bin/bash
     /bin/mount /dev/fd0 /mnt/floppy
     trap "/bin/umount /dev/fd0" 0 1 2 3 9 13 15
     if [ ! -f /usr/bin/md5sum ] ; then
        echo "Cannot find md5sum. Aborting."
        exit 1
     fi
     /bin/cp /usr/bin/md5sum /mnt/floppy
     echo "Calculating md5 database"
     >/mnt/floppy/md5checksums.txt
     for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
     do
        find $dir -type f | xargs /usr/bin/md5sum >>/mnt/floppy/md5checksums-lib.txt
     done
     echo "post installation md5 database calculated"
     if [ ! -f /usr/bin/sha1sum ] ; then
        echo "Cannot find sha1sum"
             echo "WARNING: Only md5 database will be stored"
     else
        /bin/cp /usr/bin/sha1sum /mnt/floppy
        echo "Calculating SHA-1 database"
        >/mnt/floppy/sha1checksums.txt
        for dir in /bin/ /sbin/ /usr/bin/ /usr/sbin/ /lib/ /usr/lib/
        do
           find $dir -type f | xargs /usr/bin/sha1sum >>/mnt/floppy/sha1checksums-lib.txt
        done
        echo "post installation sha1 database calculated"
     fi
     exit 0
  • Rendre les fichiers critiques immutables avec chattr +i
  • Désactiver / Supprimer les services inutiles
The Seven Types of SQL Joins – TeamSQL

Types de requêtes SQL avec la requête en dessous de son schéma pour mieux la comprendre.

Rapide, simple, efficace, pertinent.

Quelques IP à bannir... - Korben
thumbnail

Voici les adresses IP de la HADOPI et de KeyPeer et ce qu'il faut ajouter à un script au démarrage pour être tranquille :

iptables -A OUTPUT -d 85.159.236.252 -j REJECT
iptables -A OUTPUT -d 85.159.236.253 -j REJECT
iptables -A OUTPUT -d 85.159.236.254 -j REJECT
iptables -A OUTPUT -d 85.159.232.81 -j REJECT
iptables -A OUTPUT -d 85.159.232.82 -j REJECT
iptables -A OUTPUT -d 85.159.232.83 -j REJECT
iptables -A OUTPUT -d 193.107.240.1 -j REJECT
iptables -A OUTPUT -d 193.107.240.2 -j REJECT
iptables -A OUTPUT -d 193.107.240.3 -j REJECT
iptables -A OUTPUT -d 193.107.240.4 -j REJECT
iptables -A OUTPUT -d 82.138.81.211 -j REJECT
Cinnamon Spices
thumbnail

Un site simple et joli pour récupéré des thèmes Cinnamon

Heureusement, Marine Le Pen n'a pas été élue
Citation Alexis de Tocqueville sur l'anarchie

L'égalité produit, en effet, deux tendances : l'une mène directement les hommes à l'indépendance et peut les pousser tout à coup jusqu'à l'anarchie ; l'autre les conduit par un chemin plus long, plus secret, mais plus sûr, vers la servitude.

Alexis de Tocqueville

5 alternatives à T411 - FunInformatique - Oros links - Shaarli | Orangina Rouge

Je forward au cas où cela intéresserait certains.

The Evolution of Trust

Comment fonctionne la confiance ?

À vrai dire, j'en ai fait baver à mon associée vendredi soir et si j'avais eu un peu plus confiance, je pense que la situation sérieuse qui est sur le point de se démêler tout seule n'aurait eue aucun impact négatif si j'avais su garder confiance. Ce petit site se pose à moi comme une piqûre de rappel efficace et didactique.

Je pense que cela va intéresser pas mal de monde.

L’obsession du service client chez Captain Train // Speaker Deck

Un exemple de Pitch Deck / Speaker Deck / Pitch Elevator (un peu plus) très complet de la part de Captain Train

Oiseau Lyre - YouTube

C'est autant flippant / navrant que ça fait rigoler.

Pour Animal et Chlouchloutte

Comment mettre en place un reverse proxy avec Nginx

Concept

Vous avez un nom de domaine (genre localhost) et vous souhaitez rediriger le sous-domaine http://scm.localhost vers le serveur local qui tourne sur le port 8001 et http://ci.localhost vers le port 8002.

Voici comment faire avec Nginx :

  • Le fichier est à créer dans /etc/nginx/site-available
  • Puis il faut créer un lien symbolique dans /etc/nginx/site-enable pointant vers votre fichier de conf.
## Redirige le sous-domain SCM vers le port 8001
server{
    server_name scm.localhost;

    location / {
        proxy_pass http ://127.0.0.1:8001; # ATTENTION : j'ai ajouté un espace entre http et :// car mon parseur Markdown déconne
    }
}

## Redirige le sous-domain CI vers le port 8002
server{
    server_name ci.localhost;

    location / {
        proxy_pass http ://127.0.0.1:8002; # ATTENTION : j'ai ajouté un espace entre http et :// car mon parseur Markdown déconne
    }
}
Big Data : définition, applications et outils

Un bon article expliquant ce qu'est le big data et les différents types de base de données à utiliser en fonction des problématiques.

Haché un mot de passe en SHA-512 avec sel en Python
# N.B : le $6$ dans le sel signifie utiliser l'algorithme SHA-512. $5$ c'est SHA-256 par exemple
# Et le sel doit finir par Salt$
python -c 'import crypt; print crypt.crypt("MON_MOT_DE_PASS", "$6$MON_SELSalt$")'
6 Strong Signs You Have Narcissistic Abuse Syndrome - YouTube

Je pense que cette vidéo pourra aider certains à se protéger des pervers narcissiques.

Des tricks pour créer des conteneurs Docker (from scratch)

Pour toi Animal

TÊTU | Sexe entre potes hétéros : "on n’est pas gay si on ne lui touche pas les testicules"

Oh mon Dieu... Je ne sais pas comment le prendre. Par contre, Chlouchloutte, tu vas être morte de rire !

GitHub - bluezio/ipwebcam-gst: Simple shell script for using IP Webcam as a V4L2 webcam / sound source

Utiliser son mobile Android comme webcam HD en USB

Tiens... Que se passe-t-il quand on associe Machine Learning et Vidéo surveillance de masse ?

Il faut faire tourner ce lien.

Google échappe à un redressement fiscal record en France - Business - Numerama

Voilà voilà... Ajoutez à cela la libre circulation des capitaux et des marchandises, ainsi que ma petite société paie des impôts en France parce qu'elle n'a pas les moyens de défiscaliser, il devient clair que :

  • que vous soyez une personne morale ou physique
  • dès que vous êtes quelques part dans la classe moyenne en rapport à votre type de personne
    => C'est vous qui paierez tout !

Voilà. Sinon Google, j'ai déjà commencé à dire bye bye à tes produits, content que tu ne te rémunères plus avec moi.

Prochain look demi-saison pour Chlouchloutte
alanloff on Twitter: "Libéraliser le transport ferroviaire est une très mauvaise idée.Si vous avez un doute, demandez aux britanniques.

Ahhhh la privatisation des transports en commun, je dois dire qu'il était temps !

De pauvres milliardaires ne pouvaient pas gagner encore plus d'argent au détriment des pauvres qui avaient fuit les loyers surélevés des métropoles et qui prenaient les transports en commun chaque jour pour aller travailler. Et maintenant ces pauvres milliardaires qui ne souhaitaient faire que du profit finalement, vont enfin pouvoir se nourrir normalement sur ce secteur dont l'importance relève de la stratégie et de l'indépendance nationale.

Ouf, j'ai bien cru que l'oligarchie de Bruxelles ne parviendrait plus à vampiriser la France avec l'arrivée de Macron au pouvoir. Je suis rassurée :D Merci au Président que tous les médias nous vantent comme étant l'homme le plus intelligent de France, Manu t'es trop fort :D

P.S : à tous les cons, c'est ironique, ça va augmenter les prix, détériorer la qualité du service (qui n'est déjà pas mirobolante) et rendre la France dépendante d'un prestataire extérieur sur son réseau de transport ferroviaire qui est juste quelque chose de vital pour l'économie du pays.

Comment réussir dans un monde d'é...

Je cite :

Mes passages préférés :

Ce qui rend possible la coopération, c’est que les acteurs peuvent être amenés à se rencontrer de nouveau
les 4 caractéristiques propres à DONNANT DONNANT :
  1. la bienveillance :

    ne fait jamais cavalier seul en premier
    instaurer une relation de confiance avec les autres stratégies bienveillantes
    profiter de la récompense de la coopération
    dénote un certain optimisme quant à la nature humaine avec l’accueil qui ne se fait pas sur la défensive.

  2. la susceptibilité / assertivité  (capacité à s’exprimer et à défendre ses droits sans empiéter sur ceux des autres) :

    à la première défection du joueur adverse, le rappeler immédiatement à l’ordre
    ne pas trop se faire exploiter
    bonne résistance face aux stratégies provocatrices

  3. l’indulgence :

    punir l’adversaire d’une peine du même ordre
    l’adversaire comprenant que DONNANT DONNANT ne se laissera pas abuser, la coopération peut alors être restaurée
    ce refus d’agressivité intempestive est un plus

  4. la transparence :

    la stratégie est simple et clairement identifiable
    L’adversaire comprend aisément qu’il ne pourra pas l’exploiter mais, qu’il pourra coopérer en toute confiance
    éviter des détours provocateurs peu avantageux en termes de gains
    La réputation a donc une véritable utilité dans la confrontation de stratégies

DONNANT DONNANT dispose donc de caractéristiques qui lui permettent d’imposer la coopération comme meilleure solution : elle est accueillante, digne de confiance et difficilement exploitable. Ces différentes caractéristiques ne lui sont pas exclusives mais, au cours du tournoi, c’est elle qui en proposait la meilleure combinaison.

assertivité : "capacité à s’exprimer et à défendre ses droits sans empiéter sur ceux des autres" source Wikipédia http://ow.ly/njiBP

Unix bash : récupérer le pid d'un script lancé par un script

Récupérer le PID en bash.

## Récupérer le PID du processus courant :
$$ 

## Récupérer le PID de la commande qui vient d'être lancée :
$!
GitHub - go-gitea/gitea: Gitea: Git with a cup of tea

La page contenant la documentation officielle de Gitea. Attention, celle-ci est un répo Git dans lequel des fichiers de conf sont fournis à titre d'exemple. Surprenant mais efficace.

GitHub - Clean Code concepts adapted for JavaScript

Tout est dans le titre. Ce genre d'articles est bon apprendre.

gpu.js - GPU Accelerated JavaScript

Comment utiliser simplement le GPU à la place de CPU dans un navigateur pour exécuter plus rapidement vos calculs parallèles (facteur 5 à 15 quand même).

Java vs. Scala: Why Should I Learn Scala? | Toptal

Je ressors ce post qui date d'il y a 3 ans (septembre 2014) et il faut l'avouer, la communauté Scala semble être vraiment d'une mauvaise foi redoutable !

Qu'est-ce qui me permet de dire cela ? Regardez cet extrait (et il n'est pas le seul) :

// Java:
List<Integer> ints = new ArrayList<Integer>();
for (String s : list) {
    ints.add(Integer.parseInt(s));
}

// Scala:
val ints = list.map(s => s.toInt)

Pour rappel, Java 8 est sorti en MARS 2014, soit près de 6 mois AVANT cet article. Le mec compare encore Java 6 qui passait en support étendu à Scala et non Java 8 qui était ce que le langage savait faire de mieux.

Deux remarques :
1) Le code Java présenté est falacieux puisque le mec instancie sa liste en Java mais pas en Scala histoire de gratter quelques lignes.

2) Que pense-t-il de ce code Java 8:

// En considérant que la variable ints existe, sinon il faut ajouter List<Integer> devant :
ints = list.map((s) -> parseInt(s));

Bref, de la pure mauvaise foi. Cela fait quelques semaines que je me suis mise à Scala et non seulement les arguments de la communauté Scala par rapport à Java 8 ne tiennent pas debout, mais l'ensemble des outils, des libs, des éditeurs, bref l'ensemble de l'éco-système Scala est misérable à côté de Java. Les temps de build sont atrocement longs (et je pèse mes mots, passer de Java 8 à Scala multiplie littéralement vos temps de build par 300 ; de quelques secondes à quelques quarts d'heure). Pis encore, vos libs ne seront plus compatibles d'une version du compilateur à une autre (seriously, un langage ose encore péter la compatibilité du bytecode en 2017 , dafuq les mecs !???)

Enfin, au vu des features de Java 8, il n'y a aucune raison valable de passer de Java 8 à Scala SAUF, si vous êtes un aficionados de la programmation fonctionnelle pure (qui reste une immense connerie d'académiciens AMHA).

En parallèle je suis en train de me mettre à Kotlin, et par rapport à Scala, c'est le jour et la nuit.

La syntaxe est meilleure que Java ET Scala (toujours de mon point de vue, peu de symboles obscur mais des mots-clefs simples et clairs, le paradigme Objet domine mais laisse place de manière pragmatique au paradigme Fonctionnel, les temps de builds sont semblables à ceux de Java 8, la compatibilité avec les versions plus anciennes de Kotlin est garantie et les binaires générés depuis un code Kotlin peuvent être utilisez de Java 6 à Java 8 et vice et versa ; sans parler de l'écosystème, de la doc et des IDE, des outils de build qui sont les mêmes qu'en Java 8.

Bref, je maintiens, Scala est un langage d'académiciens fait par des académiciens pour des académiciens, il est particulièrement difficile de couvrir des besoins industriels sérieusement avec quelque chose d'aussi peu mature.

En espérant en avoir aidé certains et agacé d'autres.