Blog de Adrien Sulpice

Aller au contenu | Aller au menu | Aller à la recherche

dimanche 15 avril 2012

Screen, un multiplexeur de terminaux

Screen permet de créer des terminaux virtuels. Ces terminaux sont des démons, vous pourrez donc en lancer plusieurs sur votre serveur, vous déconnecter et vous y reconnecter plus tard sans que les tâches que vous aurez lancées soient fermées.

Pour l'utilisation, je vous renvoie directement sur la section utilisation de la doc d'Ubuntu : http://doc.ubuntu-fr.org/screen#uti...

Sources :

Prompt git

Dominik Schoeler a proposé une façon de customiser son prompt assez élégamment pour les utilisateurs de git. Si le répertoire dans lequel vous vous trouvez est un dépôt git, il va vous afficher l'état du dépôt en vert s'il est clean et en rouge s'il ne l'est pas ainsi que la branche courante sur laquelle vous vous trouvez.

Voici quelques exemples de l'auteur

Pour faire cela, il suffit de changer la variable PS1. J'ai ajouté cette ligne dans mon .bashrc. Vous pouvez le modifier. Si vous voulez plus de détails et d'autres prompts, allez voir le lien de la source.

export PS1='`if [ $? = 0 ]; then echo "\[\e[32m\]✔"; else echo "\[\e[31m\]✘"; fi` \[\e[00;30m\]\u\[\e[01;30m\]:`[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "\[\e[31m\]" || echo "\[\e[32m\]"`$(__git_ps1 "(%s)\[\e[00m\]")\[\e[01;34m\]\w\[\e[00m\]\$ '

Sources :

Brider bande passante et cpu d'un processus

Parfois il est utile de limiter l'utilisation de la bande passante ou l'utilisation du CPU pour un processus. Pour cela, c'est très simple, il suffit d'utiliser cpulimit et trickle

Pour le CPU :

cpulimit -e process -l 40

Ceci limitera à 40% l'utilisation CPU du processus "process".

Pour la mémoire :

trickle -u 50 -d 100 programme

Ceci limitera l'utilisation de bande passante en upload (option -u) à 50ko/s et en download (option -d) à 100ko/s.

Pour une limitation plus fine et sur plus de critères, vous pouvez aller voir du coté de ulimit 2.

Sources :

vendredi 8 avril 2011

Bash, générer un mot de passe aléatoire

Slt, pour générer un mot de passe aléatoirement avec Bash c'est très simple, il suffit d'utiliser la commande pwgen. N'oubliez pas d'utiliser l'option -s pour qu'il soit plus sécurisé et l'option y si vous voulez plus de caractères spéciaux. je trouve le -s suffisant personnellement. Soit :

pwgen -s

lundi 14 mars 2011

WidgetFormJQueryI18nDate : Un sélecteur de date avec JQuery totalement internationalisé pour symfony

Slt, j'ai passé une partie de mon après-midi à chercher comme arriver à avoir un champ date avec Symfony en utilisant les calendriers de JQuery et qu'y soit réellement traductible.

J'ai fini par trouver un code sur trac ici : http://trac.symfony-project.org/attachment/ticket/8625/sfWidgetFormJQueryI18nDate.class.php

Cependant ce code contient certains bugs. On ne peut pas sélectionner les jours 8 ou 9 du mois (à cause d'un problème de parseInt qui les interprétait comme de l'octal à cause d'un zéro au début...). Je l'ai signalé à l'auteur mais je le mets ici aussi. J'ai donc mis une correction de ce fichier en pièce jointe. Je l'ai personnellement placé dans le répertoire lib/widget (à créer si besoin est).

Au passage, une petite explication de son utilisation. Pour l'utiliser, rien de plus simple, il prends deux paramètres le path vers un logo pour le lien ouvrant la fenêtre du calendrier et la culture de votre utilisateur comme suit :

<?php
  $this->widgetSchema['date'] = new WidgetFormJQueryI18nDate(
            array('image'=>'path_vers_votre_image_de_calendrier',
                  'culture' => sfContext::getInstance()->getUser()->getCulture(),
    ));

Important : Cette classe a besoin de JQuery et JQuery-ui pour fonctionner. J'ai fait un billet expliquant une installation avec symfony ici : http://www.blog.asulpice.fr.nf/index.php?post/2011/03/14/Installation-de-JQuery-avec-Symfony

Une fois tout ceci fait, ça fonctionne mais les mois du calendrier JQuery sont toujours en anglais. Pour éviter ce problème, il faut des fichiers de langues qui vont les changer. J'ai mis les fichiers de traduction que j'ai trouvés sur ce site (http://keith-wood.name/datepick.html) en pièce jointe. Si vous en voulez plus, allez sur ce site et pensez à remplacer l'identifiant "datepick" par "datepicker" sinon ça ne marchera pas.

J'ai personnellement placé ces fichiers dans le répertoire web/js/jquery_traductions. Pour les inclure et changer la langue, c'est très simple :

<?php
 
  if($sf_user->getCulture() !== 'en')
    use_javascript('jquery_traductions/jquery.date_input.'.$sf_user->getCulture().'.js');

pensez à changer le path si vous ne l'avez pas déjà fait.

dimanche 13 mars 2011

Installation de JQuery-ui avec Symfony

JQuery est une bibliothèque Javascrit très connue. Elle offre beaucoup de fonctionnalités mais je ne m'y connais pas assez pour en dire plus. Si vous voulez en savoir plus rendez vous ici (je n'ai pas lu ce tutoriel, je ne garantis donc pas sa qualité). Une autre librairie a été développée avec celle ci pour faire des effets graphiques et s'appelle JQuery-UI. Vous pouvez aller voir ici pour avoir un aperçu de ses fonctionnalités (sélecteur de date, champs autocomplétés, boites de dialogues, barres de progression, accordéons, progressbar, etc.)

Son installation n'est pas très bien documentée avec Symfony, je fais donc une petite explication.

Étape 1 : téléchargement de JQuery-ui

Rendez-vous tout d'abord ici : http://jqueryui.com/themeroller/

Dans le menu à gauche, dans l'onglet par défaut ("Roll your own") vous pouvez complètement paramétrer les couleurs des widgets, etc. Si vous voulez un thème déjà existant, rendez-vous dans l'onglet "Gallery" qui propose de nombreux thèmes par défaut très corrects. Une fois le thèmes choisit, cliquez sur "download". Une nouvelle page va s'afficher en vous demandant quels éléments vous avez besoin. Si vous ne savez pas, laissez tout coché. Mais si vous savez, sélectionnez le strict minimum car c'est une bibliothèque assez lourde, il vaut donc mieux limiter la taille totale. Cliquez ensuite sur le bouton "dowload" à droite en choisissant la dernière version disponible.

Étape 2 : installation

Une fois l'archive téléchargée, décompressez-la. Ouvrez le répertoire décompressé. Vous y trouverez trois nouveaux répertoires : "js", "development-bundle" et "css"

Deux nous intéressent. "js" et "css". Tout d'abord rendez-vous dans le répertoire "js". Il contient deux fichiers. Un fichier contenant la librairie JQuery et un autre JQuery-ui. Copiez ces deux fichiers dans votre répertoire web/js de Symfony. A chaque fois que vous aurez à utiliser ces bibliothèques, vous devrez inclure ces DEUX fichiers avec la fonction use_javascript() de Symfony.

Maintenant, vous allez avoir besoin des styles et des images. Commençons par les images. Rendez-vous dans le répertoire "css/nom_votre_design/images" de votre répertoire que vous avez décompressé. Copiez toutes les images qui s'y trouvent dans le répertoire "web/images/jquery-ui" de votre répertoire Symfony par exemple.

Rendez-vous ensuite dans le répertoire "css/nom_votre_design". Récupérez le fichier css et copiez-le dans le répertoire "web/css" de Symfony. Dans ce fichier il y a de nombreux liens vers vos images. Par défaut ils ne sont pas corrects pour la configuration que je vous ai donnée. Il faut donc les modifier. Ouvrez le fichier et remplacez toutes les occurrences (avec Ctrl+h pour la majorité des éditeurs de texte) de "url(images/" par "url(../images/jquery-ui/".

Comme pour les fichiers javascript il faudra inclure ce fichier css dans toutes les pages utilisant JQuery.

vendredi 11 mars 2011

Administrer fichiers htpasswd apache en console

Slt, voila une petite commande assez simple à utiliser pour générer des fichiers htpasswd en console. Le nom de la commande ? Ben "htpasswd". Vous tapez :

htpasswd [path_htpasswd_file] [login]

Il va vous demander deux fois le mot de passe et il ajoutera automatiquement l'utilisateur s'il n'existe pas ou mettra à jour le mot de passe s'il existe déjà. Pour supprimer un utilisateur il suffit d'utiliser l'option -D avec le login en argument.

pour plus d'infos, cf le man ;)

mardi 22 février 2011

Ubuntu : boutons de fermeture des fenêtres à droite

Slt, avec les dernières version d'Ubuntu, les boutons de fermeture des fenêtres a été déplacé sur la gauche ce qui a tendance à me déplaire (envie de recopier mac ?) Il est possible de les replacer à droite comme d'habitude avec la commande suivante :

gconftool-2 --set /apps/metacity/general/button_layout --type string 'menu:minimize,maximize,close'

En espérant en avoir aidé un ou deux.

- page 1 de 3