mardi 26 mai 2015

Palette des couleur HTML, RAL, PANTONE sur le net

C'est en cherchant la valeur de couleur "BLUE 285" (communiqué par notre imprimeur) afin modifier une image de présentation avec Gimp que je me suis frotté au nuancier.
En furetant un peu, j'ai trouvé l'excellent site RGB.TO.


Ce dernier propose de naviguer dans des nuanciers HTML ainsi que d'autres nuanciers plus répandu dans le monde de la décoration, l'imprimerie et les cosmétiques (à savoir les standards de couleurs RAL, et couleurs PANTONE).
Nuancier Pantone - source: fr.wikipedia.org/wiki/Nuancier

Ce que j'ai particulièrement apprécié dans RGB.TO, c'est l'affichage de l'information de couleur sous de nombeux formats (dont RGB, CSS Style, hexadécimale...)

Différents codifications de la couleur proposé par RGB.TO.
Hormis cette belle présentation de codifications d'une couleur, RGB.TO propose toute une liste de couleurs proches (dans les différents nuanciers, couleurs HTML, couleur complémentaire ou même la couleur WebSafe la plus proche).
Et C'est vraiment un gros plus.


J'ai également apprécier l'interface permettant de naviguer dans les différents nuanciers disponibles sur le site:
Navigation dans l'un des différents nuanciers disponibles.
Une adresse a retenir...

lundi 25 mai 2015

L'estime de soi se cultive aussi dans le regard des autres


L'estime de soi, c'est le regard que l'on porte sur nous. Nous sommes parfois très fiers de nous mais il arrive parfois que l'on ne s'estime pas (voire que l'on ne s'aime pas).

CETTE ESTIME DE SOI que nous cultivons positivement ou cette punition morale que l'on s'inflige lorsque l'on ne s'apprécie pas à sa juste valeur INFLUENCE nos actes, nos projets, nos choix de vie. Elle affecte aussi notre façon de voir l'avenir, nos interactions avec les autres, notre confiance en l'avenir, dans nos capacités et notre confiance dans les autres.

L'estime de soi fait partie intégrante de notre personnalité, résultat de nos expériences et sa "valeur" devrait uniquement être définie par "nous-même".

Cela semble couler de source mais pourtant, il en est rarement ainsi.
L'estime de soi se cultive aussi dans le regard des autres, dans la façon dont ils vont nous voir, nous estimer et nous offrir leurs "retours" à propos de nous.

La façon dont nous allons cultiver notre estime dépend de notre personnalité qui, elle, découle de nos expériences mais surtout de notre éducation. Cela ne revient pas à dire qu'il y a une bonne ou mauvaise éducation pour cultiver l'estime de soi, quoi que.... Par contre, il y a de bons ou moins bons éducateurs/stimulateurs. Il arrive parfois que nos éducateurs soient même destructeurs mais cela dépend de l'histoire de chacun. Ces éducateurs, ce sont nos parents, notre famille, professeurs mais aussi bon nombre de personnes que nous allons rencontrer durant notre vie.

Nous vivons en société et, par conséquent, notre vie est également remplie d'interactions. Ces interactions ont une influence parfois importante sur notre propre estime.
A titre d'exemple, pensez-vous qu'il soit facile, voire possible, d'avoir de l' "estime pour soi" si l'on est constamment rabaissé? Si une personne à qui vous êtes attaché sentimentalement souligne vos défauts plutôt que de mettre en avant vos réussites/avancées? Si des "taquineries" négatives/dégradantes deviennent des vérités à force de répétition? Ces vraies/fausses vérités ou ces actes qui dégradent cette image que l'on a de soi.

Dans la vie, il a principalement 3 groupes de personnes que nous allons rencontrer. Les personnes qui vous font "grandir", les indifférentes et celles qui détruisent.
  • Le groupe des indifférents est le plus répandu, nous les rencontrons régulièrement ici et là, les contacts n'apportent rien mais surtout n'enlèvent rien. Des gens que nous croiserons une fois ou de temps en temps, sans atome crochu et sans animosité... ainsi va la vie.
  • Les gens qui vous "font grandir" sont rares mais reconnaissables à ceci qu'une simple conversation vous rend terriblement bien. Il y a ce "je ne sais quoi" et ces discours positifs qui font que l'on se sent bien en leur compagnie et encore mieux après. A les côtoyer régulièrement, ce type de personnalité vous booste littéralement. Ils vous incitent à la réflexion, mais ne vous proposent/imposent pas leurs solutions. En leur compagnie, vos choix sont vôtres sans jugement.
    En fait, ces gens ont de l'intérêt sincère pour vous, vos aventures, réussites et cela stimule votre propre estime. Ils vous donnent l'envie de devenir meilleur ou, du moins, vous n'aurez pas le sentiment d'avoir à vous protéger en leur compagnie.
  • Le groupe des destructeurs est malheureusement répandu et ils ont vite fait de souligner vos manquements, vous déstabiliser, faire naître le doute dans vos certitudes, vous faire culpabiliser à tour de bras. A votre place, "ils" auraient fait autrement... Pas de réflexion pour vous, vous sentez bien que votre approche n'est forcément pas la bonne à leurs yeux (Nous sommes dans le jugement).
    Votre relation avec un destructeur est souvent familiale, hiérarchique ou assimilée. 
    Les côtoyer est anxiogène, source de tensions internes (On voudrait s'éloigner mais on ne le peut pas! On voudrait parler ouvertement mais on ne le peut point), de frustration, rarement content de soi, d'attente de reconnaissance qui ne vient jamais... bref, pas un terrain favorable à la culture de l'estime de soi.
J'ai eu cette chance d'avoir eu deux vies amoureuses.

La première vie était proprement destructrice, à la fin de mon mariage j'étais convaincu d'être un asocial. Il est vrai qu'à force de me le faire répéter, cela a même fini par devenir une fausse vérité. Je croyais même "ne pas aimer les gens". Au bout de nombreuses années, je suis sorti de cette aventure avec une piètre estime de moi, de mes compétences et une vision assez pessimiste de la vie et de l'avenir.

Ma deuxième vie tombe clairement sous le groupe de ces personnes qui "font grandir". Je n'ai pas peur de dire que ma deuxième épouse était un véritable miroir. Dans son regard, je pouvais voir cette vraie image de moi, sans critique destructrice. Elle m'a montré qui j'étais, mes compétences et cette personne sociale, ouverte et agréable à vivre.
A ses côtés, j'ai cultivé mon estime de moi... et j'espère qu'elle a pu cultiver/enrichir la sienne au moins autant que ce qu'elle m'a apporté.
J'offre simplement le meilleur de moi même, accueillant et bienveillant. Les perspectives d'avenir sont d'ailleurs toutes différentes... la vie et l'avenir se construit.
Dans cette deuxième vie, j'ai eu l'occasion de rencontrer d'autres personnes qui "font grandir", nous nous croisons rarement mais cela reste des moments d'une grande richesse sur le plan humain. Une vie remplie de messages positifs.  

Conclusion
L'estime de soi est importante car elle conditionne notre attitude face à notre propre avenir.
Il faut donc veiller à cultiver son "estime de soi" et faire en sorte que les personnes que nous côtoyons puissent cultiver la leur.
Bref, il faut être bienveillant. 

dimanche 17 mai 2015

Linux - Les permissions sur les fichiers et gestion des utilisateurs

Préambules
Utiliser une système Unix/Linux est devenu relativement simple. Des distributions comme Ubuntu ou Linux Mint facilitent grandement la prise en main par des Néophytes.

Il n'en reste pas moins que Linux/Unix ne sont pas seulement des systèmes multitâches mais aussi des systèmes multi-utilisateurs. Cela signifie que plusieurs utilisateurs peuvent utiliser un même ordinateur en même temps en mode graphique, en telnet, ssh. Il est même possible de démarrer un programme graphique à distance en indiquant que l'affichage se fait sur le système distant.

Un système multi-utilisateur c'est bien mais il ne faudrait pas que ce que fait un utilisateur puisse planter l'ordinateur... ou qu'il puisse avoir accès à des informations auxquelles il n'aurait pas droit.

C'est la qu'intervient la gestion des permissions, héritée de Unix et toujours d'application aujourd'hui.

Le système de permissions
Le mieux pour découvrir le système de permission c'est de se pencher sur la commande ls -l  qui liste les fichiers avec leurs permissions.

Admettons que nous avons le fichier xfile.mp3, nous allons lister ses permissions.

[domeu@dom-pc ~ $] ls -l xfile.mp3
-rw-rw-r-- 1 domeu domeu 1097374 Sep 26 18:48 xfile.mp3

Décortiquons l'information:
  • - : Le premier caractère indique s'il s'agit d'un fichier (-) ou d'un répertoire (d)
  • rw-rw-r-- : Les permissions (r: read=lecture, w: write=écriture, x=execution) mais nous y revenons ci-dessous.
  • 1 : indique le nombre de liens vers le fichier
  • domeu : propriétaire du fichier (dit owner). L'utilisateur est domeu.
  • domeu : groupe auquel appartient le fichier (ici le groupe est celui de l'utilisateur mais pourrait être dialout, adm, plugdev, etc).
  • 1097374 : La taille du fichier
  • Sep 26 18:48 : La date de dernière modification du fichier
  • xfile.mp3 : le nom du fichier
Les droits d'accès au fichier:
Les droit d'accès sont repris sous forme de regroupement de 3 lettres rwx indiquant respectivement que le droit de lecture (r) est activé, d'écriture (w) est activé ou d'exécution (x) est activé. Lorsqu'un droit est activé, la lettre est visible sinon elle est remplacée par un tiret.

La description reprends 3 groupes de 3 lettres.
  • rw- : Premier groupe de 3 lettres. Indique les droits du propriétaire du fichier.
    L'utilisateur domeu peut lire (r), écrire (w) mais ne peut pas exécuter le fichier.
  • rw- : Deuxième groupe de 3 lettres. Indique les droits des utilisateurs attachés au groupe du fichier (groupe "domeu" dans ce cas).
    Les utilisateurs du groupe "domeu" peuvent lire (r), écrire (w) mais pas exécuter le fichier
  • r-- : troisième groupe de 3 lettres. Indique le droit des autres utilisateurs.
    lecteur (r) uniquement. Les droit w et x ne sont pas disponibles. 
Droit d'accès sur répertoire:
Il est utile de faire remarquer que le droit 'x' (exécution) à une signification différente dans le cas d'un répertoire. Dans le cas d'un répertoire, x autorise la lecture du contenu du répertoire.

Examinons un autre cas:
ls -l /bin/bash
-rwxr-xr-x 1 root root 316848 Feb 27  2000 /bin/bash

Le premier "-" indique que c'est une fichier.
Ensuite, "rwx" indique de l'utilisateur "root" peut lire (r), écrire/modifié (w) et exécuter (w) le fichier.
Le groupe suivant "r-w" indique de tout utilisateur du groupe "root" peut lire et exécuter le fichier (mais pas le modifier, seul l'utilisateur root à ce droit).
Le troisième groupe, également "r-w", signifie que tous les utilisateurs du système peuvent lire le fichier et l'exécuter.

Changer les permissions d'un fichier
La commande chmod permet de modifier les permissions sur un fichier.
Il y a deux façons de modifier les droits sur un fichier mais nous allons nous attacher à la méthode la plus répandue.

Il est facile de concevoir les droits d'accès comme des bits.
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx --- --- = 111 000 000

Pour les différentes valeurs possibles, nous retrouvons:
rwx = 111 en binaire = 7
rw- = 110 en binaire = 6
r-x = 101 en binaire = 5
r--- = 100 en binaire =4

Grâce à cela, nous pouvons représenter les 3 groupes de permissions rwx pour le propriétaire, group et autres) à l'aide de 3 chiffres consécutifs.
Ainsi 600 donne les droits rw- pour le propriétaire, rien pour le groupe et rien pour les autres utilisateurs.

l'instruction serait alors:
chmod 600 le_fichier

Voici quelques séries de valeurs des permissions les plus répandues sur les fichiers:
  • 777 - (rwxrwxrwx) aucune restriction. tout le monde peut tout faire. Cette configuration n'est pas souhaitable.
  • 755 - (rwxr-xr-x) le propriétaire du fichier peut le lire, l'écrire, l'exécuter. Tous les autres peuvent le lire et l'exécuter. Cette configuration est habituelle de pour les programmes utilisés par tous les utilisateurs.
  • 700 - (rwx------) seul le propriétaire du fichier peut l'utiliser. Les autres ne peuvent rien faire avec. Cette configuration est utiliser pour les programmes utilisables uniquement par l'utilisateur (et que les autres ne peuvent pas voir où utiliser).
  • 666 - (rw-rw-rw-) tous les utilisateurs peuvent lire et écrire dans les fichiers (mais pas les exécuter). Si vous rencontrez des problèmes de permissions, cette option sera vous tirer facile d'un mauvais pas. Attention, cela reste quand même très permissif.
Changer les permissions d'un répertoire
Comme précisé plus avant dans l'article le "x" à une signification différente lorsqu'il s'agit d'un répertoire.
Comme un répertoire ne s'exécute pas, le "x" sera utilisé pour permettre l'accès au contenu du répertoire (comprenez "lire ce qu'il y a dedans").

Voici quelques séries de valeurs des permissions les plus répandues sur les répertoires:
  • 777 - (rwxrwxrwx) aucune restriction. tout le monde lister le contenu du répertoire, créer ou effacer des fichiers. Cette configuration n'est pas souhaitable.
  • 755 - (rwxr-xr-x) le propriétaire à tous les droits. Les autres utilisateurs peuvent lister le contenu et lire les fichiers. Par contre, les autres utilisateurs ne peuvent pas écrire/effacer des fichiers. Cette configuration est typique pour les répertoires que vous voulez partager avec d'autres utilisateurs.
  • 700 - (rwx------) le propriétaire à tous les droits. Les autres utilisateurs n'ont aucun droit. Cette configuration est pratique pour les répertoires qui doivent reste disponibles uniquement pour le propriétaire.
Changer le propriétaire d'un fichier
Nous l'avons vu, le propriétaire du fichier est quelqu'un de particulier.
Il est donc intéressant de pouvoir modifier/changer le propriétaire d'un fichier/répertoire... c'est ce que fait la commande chown.

Cette instruction se fait en mode super utilisateur, il faut donc utiliser un sudo pour changer le propriétaire d'un fichier.

sudo chown nouveau_propriétaire le_fichier

Changer le groupe d'un fichier
Le propriétaire d'un fichier n'est pas le seul à disposer de droit particulier, il y a aussi le groupe.
En associant des utilisateurs à un groupe donné, vous pouvez leur donner un droit d'accès particulier sur un fichier ou répertoire (même si il n'en est pas propriétaire).
Par exemple, ce serait le cas si l'on voulait autoriser l'accès sur des données comptables pour tous les personnes du service comptabilité.

Pour changer le groupe d'un fichier/répertoire, l'on utilise la commande chgrp.
Tout comme chown, il faut être super utilisateur pour modifier cette information (il faut donc utiliser un sudo).



sudo chgrp nouveau_groupe le_fichier


Les utilisateurs et stockage des utilisateurs
Gestion multi-utilisateurs c'est bien, assignation des permission c'est cool mais faut-il encore savoir comment créer des utilisateurs.
J'ai trouvé l'article The Complete Guide to “useradd” Command in Linux vraiment très bien fait, en voici l'essence.  

Création d'un utilisateur:
pour créer un utilisateur, il faut utiliser la commande useradd et passwd (pour assigner son mot de passe).

$ sudo useradd minty
$ sudo passwd minty
Changing password for user minty.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.


Lister les utilisateurs
Les informations utilisateurs sont stockés dans le fichier /etc/passwd
En inspectant le contenu de ce fichier, nous apprenons plein de choses intéressantes:

more /etc/passwd

Contenu de /etc/passwd
Nous y retrouvons les informations suivantes (en dernière ligne):
  • minty - nom de l'utilisateur
  • x - le mot de passe, toujours 'x' car il est stocké dans le fichier encrypté /etc/shadow
  • 1001 - cette première valeur est l'UID (identification de l'utilisateur)
  • 1001 - cette seconde valeur est le GUI (identification du groupe, par défaut, chaque utilisateur dispose de son propre groupe).
  • (vide) - cette zone vide contient une information sur l'utilisateur (commentaire comme le prénom+nom de l'utilisateur). Cette zone peut être remplie au moment de la création de l'utilisateur ou remplie par la commande finger.
  • /home/minty - répertoire 'home' de l'utilisateur.
  • (vide) - cette dernière zone contient la commande shell. Cette dernière peut être précisée au moment du useradd (par exemple: /bin/bash) mais peut également être /usr/sbin/nologin (pas de login possible mais ssh autorisé, plus d'info sur nologin ici) ou /bin/false (l'utilisateur ne peut pas se logger)
Ajouter des groupes à un utilisateur
Il est possible d'ajouter un ou plusieurs groupes pour un utilisateur. Cela se fait à l'aide de l'instruction.

useradd -G admins,webadmin,developers minty

Plus d'information sur l'utilisateur
La commande id permet d'obtenir plus d'information sur l'utilisateur courant (ou l'utilisateur désigné dans la commande)

$ id minty
uid=1001(minty) gid=1001(minty) groupes=1001(minty)


Ajouter un groupe
Nous avons pas mal parlé des utilisateurs, des groupes et des droits.
Il manque encore une commande, celle qui permet de créer un groupe.

groupadd nom_du_groupe

Il ne reste plus qu'a ajouter ce groupe pour les utilisateurs concerné.

useradd -G nom_du_groupe minty
  
Ressources

Portée des variables - debogage facile avec execfile()

Bonjour,
Juste un petit article pour aborder/rappeler deux points intéressant en Python

La portée des variables
Aussi appelé "variable scope" en anglais. Sujet assez bien connu en général mais l'on fini toujours par tomber dans une cas particulier.

J'ai récemment voulu assigner la valeur d'une variable globale (objet d'accès à API PrestaShop) depuis une fonction d'initialisation...
Il m'aura fallut faire un peu de lecture pour comprendre que je devais la redéfinir comme "global" dans ma fonction pour pouvoir en assigner la valeur et que cette valeur persiste hors de la fonction.

api_point = None 

def init():
  global api_point # indiquer que api_point est global
                   # et donc hors de la portée de cette fonction

  # lecture des parametres
  ...

  # Création de l'objet qui restera accessible sur le 
  # une portée globale.
  api_point = PrestaAPI( ...parametres... )

def print_info()
  api_point.dump_connexion_info()


Une petite lecture fort intéressante se trouve ici

execfile() pour faciliter le débogage en Python
A la base, execfile() est une fonction Python qui permet de charger un fichier Python et de l'exécuter.
Pratique pour exécuter un autre module à la volée depuis votre programme, j'ai surtout trouvé cette fonction très utile pour faire du débogage depuis Python en mode interactif.

En effet, certain soft sont suffisamment complexe et déboguer la couche d'accès est parfois complexe. Plutôt que de mettre beaucoup de point d'arrêt ici et là, il est possible de
  1. Créer un script python minimal (juste ce qu'il faut pour accéder aux éléments principaux, par exemple basic.py)
  2. De démarrer python en mode interactif (démarrer simplement le python)
  3. Puis de faire un execfile('basic.py') pour charger et exécuter votre script de base.
Cette méthode relativement simple permet d'avoir accès a toutes vos structures en mode interactif, vérifier les données, les objets, etc.
Les instructions dir() et type() seront également vos meilleurs amis.

Simple et redoutable d'efficacité.

lundi 4 mai 2015

Git - faire des undo, des corrections ou enlever des commit

Un petit aide mémoire vraiment pas mal sur Git

Pour la petite histoire, j'avais fait une modification par erreur sur une copie locale et du coup, je ne pouvais plus faire de mise-à-jour du code depuis Git.

La réponse est simple (mais expéditive)

git reset --hard


Par la suite, je pouvais faire une mise-à-jour du code depuis git (bien pratique lorsque l'on prend une copie avec un git clone).

git fecth
git pull