mardi 21 février 2012

Installation et utilisation du client serveur NX sur Ubuntu 11.10

Pour lancer depuis un PC (client) des applications sur un autre ordinateur (serveur), il y a la bonne vieille méthode du X forwarding :

Une fois ssh correctement configuré, il suffit sur la machine client de lancer un petit ssh -X user@serveur, et une fois dans le shell ssh, de lancer n'importe quelle application, et magie, son affichage est déporté sur le client, même si elle s'exécute sur le serveur !

Ca fonctionne du tonnerre, mais si vous accédez à un ordinateur par l'intermédiaire d'une liaison un peu faiblarde, ce n'est pas très réactif.

Il existe d'autres méthodes (notamment dans l'ordre de popularité rdp, vnc, xdmcp), mais aucune d'entre elle n'arrive à la hauteur de la solution NoMachine en terme de rapidité d'affichage.

Ci-dessous les détails de l'installation de la solution NX de NoMachine en version Free Edition (open source).
Il existe une version payante qui offre de nombreuses utilisations supplémentaires, mais dans le cadre d'une utilisation personnelle, la version gratuite est largement suffisante.

Installation de la solution NX

Coté serveur
Récupérer les packages sur le site de NoMachine (aller dans NX Free Edition For Linux), et installer dans l'ordre (je ne sais pas si c'est encore valable, mais là aussi, je n'ai pas testé l'installation dans un autre ordre et n'ai jamais rencontré de problèmes) : client, node, server (même pas sûr que le client soit nécessaire, mais bon, je ne suis pas à 5-6 Mo d'espace disque près non plus)
sudo dpkg -i nxclient_3.5.0-7_i386.deb
sudo chmod 755 /usr/lib/cups/backend/ipp
sudo dpkg -i nxnode_3.5.0-7_i386.deb
sudo dpkg -i nxserver_3.5.0-9_i386.deb


Coté client
le client suffit :
sudo dpkg -i nxclient_3.5.0-7_i386.deb
sudo chmod 755 /usr/lib/cups/backend/ipp

Et voilà !!
Dans les applicatons sur le client, une entrée NX Client for Linux est créée, il suffit de donner l'adresse ip du serveur, les informations d'utilisateur, et zou, c'est parti!

Avantages de la solution NX par rapport à du vnc :
C'est beaucoup plus rapide. A titre d'exemple, je suis actuellement dans le train, connecté à internet via mon téléphone, et je viens de réaliser l'installation de la solution, et l'utilisation du client NX est possible (c'est pas du LAN, mais c'est réellement utilisable).
Il est possible de déconnecter une session, et de la réouvrir plus tard, pendant ce temps les applications  lancées auront continué leur travail, à la mode "screen" ou "byobu" (surcouche de screen que je vous conseille fortement).
Coté gestion des sessions, on retrouve les mêmes fonctionnalités que rdp (Accès bureau à distance sous windows), il est possible de lister les sessions, de s'y connecter, de les terminer...

lundi 20 février 2012

Sauvegarder la configuration de plusieurs serveurs linux

Lorsque l'on a plusieurs serveurs linux à gérer, il faut aussi sauvegarder leur configuration. L'idéal étant d'automatiser un maximum de choses possibles, voici ce qui va être mis en place :

  1. Chaque serveur ira tous les jours, télécharger une version d'un script de sauvegarde centralisé, qui contient toutes les commandes permettant de sauvegarder la configuration d'un serveur.
    Ce script étant centralisé, il ne peut contenir que les commandes communes à tous les serveurs, cela permet de n'avoir qu'un script à maintenir.
    Il doit aussi permettre de sauvegarder des éléments spécifiques à chaque serveur.
  2. Pour cela, chaque serveur aura un autre script de sauvegarde local, qui ne contiendra que les commandes de sauvegarde spécifiques. Ces commandes seront appelées par le script général.
Voila pour les principes... En avant pour un exemple de mise en place :




Mise en place du script sur chaque serveur à sauvegarder

  • créer un fichier /root/bin/mmv_sauveSystem.sh
  • ce fichier contiendra le code suivant :
# recupère la dernière version du script centralisé
rsync -v -rlt -z panoramix::Backups/script /root/bin/
# rend le script centralisé exécutable
chmod +x /root/bin/script/saveSystem.sh
# l'exécute
/root/bin/script/saveSystem.sh

  • il suffit ensuite de paramétrer le lancement quotidien de ce script 
    crontab -e
    ajouter la ligne 10 5 * * * /root/bin/mmv_sauveSystem.sh


L'avantage ici, est qu'un script qui sera lancé par tous les serveurs linux est stocké sur un partage nfs, il suffira si l'on veut modifier le script de sauvegarde pour l'ensemble des serveurs, de le modifier à un seul endroit.

Evidemment, sur certains serveurs, il faudra compléter le script de sauvegarde général, par un script spécifique au serveur concerné. Rien de plus simple dans notre cas : le script commun vérifie la présence sur le serveur en cours de sauvegarde, d'un script " /root/bin/mmv_sauvegardes.sh", et le lance s'il existe. C'est donc dans ce script qu'il faudra paramétrer les sauvegardes particulières à chaque serveur, s'il y en a.


Contenu du script de sauvegarde

#!/bin/bash

# Fichier stocké sur le serveur de sauvegarde (\\panoramix\Backup-Siege\script)
# ce fichier est téléchargé toutes les nuits par TOUS les serveurs linux, et est
# ensuite exécuté.
# Cela permet de centraliser dans un seul fichier toutes les opérations de sauvegardes
# communes aux serveurs linux
#
# Il est appelé de la manière suivante depuis les serveurs linux :
#    [root@front1 bin 10:19]# cat /root/bin/mmv_sauveSystem.sh
#    rsync -v -rlt -z 10.1.1.23::Backups/script /root/bin/
#    chmod +x /root/bin/script/saveSystem.sh
#    /root/bin/script/saveSystem.sh
# et crontab -l
# 10 5 * * * /root/bin/mmv_sauveSystem.sh
#

nom=`hostname -s`:`basename $0`
# Send all output to a logfile and supress input
typeset LOG=/var/log/resalys/${nom}.log
[[ -t 1 ]] && echo "Writing to logfile '$LOG'."
exec >> $LOG 2>&1
exec < /dev/null 2<&1

rapport="Erreurs :"

####################################################################################
# Déploiements de mises à jour a une date donnée
####################################################################################

datedujour=`date +"%Y%m%d"`
if [ $datedujour = "20100507" ] || [ $datedujour = "20100508" ] ;
then
       
        # commandes qui ne seront exécutées qu'à une date donnée

fi

####################################################################################
# SAUVEGARDES COMMUNES A TOUS LES SERVEURS LINUX
####################################################################################

# scripts mmv
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde des scripts mmv /root/bin" ;
rsync -v -rlt -z --delete /root/bin/             panoramix::Backups/`hostname -s`/root_bin
[ $? -ne 0 ] && rapport=$rapport" 1"
# crontab de root
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de la crontab root" ;
rsync -v -rlt -z --delete /var/spool/cron/         panoramix::Backups/`hostname -s`/var_spool_cron
[ $? -ne 0 ] && rapport=$rapport" 2"
# configuration de la rotation des logs
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de la config /etc/logrotate.d" ;
rsync -v -rlt -z --delete /etc/logrotate.d/     panoramix::Backups/`hostname -s`/etc_logrotate.d
[ $? -ne 0 ] && rapport=$rapport" 3"
# configurations apaches
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de la config apache /etc/httpd" ;
rsync -v -rlt -z --delete /etc/httpd/             panoramix::Backups/`hostname -s`/etc_httpd
[ $? -ne 0 ] && rapport=$rapport" 4"
# configuration samba
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de la config samba /etc/samba" ;
rsync -v -rlt -z --delete /etc/samba/             panoramix::Backups/`hostname -s`/etc_samba
[ $? -ne 0 ] && rapport=$rapport" 5"
# configuration du systeme de fichiers
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de /etc/fstab" ;
rsync -v -rlt -z --delete /etc/fstab             panoramix::Backups/`hostname -s`/etc_fstab
[ $? -ne 0 ] && rapport=$rapport" 6"
# configuration des exports nfs
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de /etc/exports" ;
rsync -v -rlt -z --delete /etc/exports             panoramix::Backups/`hostname -s`/etc_exports
[ $? -ne 0 ] && rapport=$rapport" 7"
# configuration des demons
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde des /etc/initab" ;
rsync -v -rlt -z --delete /etc/inittab             panoramix::Backups/`hostname -s`/etc_inittab
[ $? -ne 0 ] && rapport=$rapport" 8"
# configuration du resolver (man resolver)
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde du resolver /etc/resolv.conf" ;
rsync -v -rlt -z --delete /etc/resolv.conf         panoramix::Backups/`hostname -s`/etc_resolv.conf
[ $? -ne 0 ] && rapport=$rapport" 9"
# configuration des hotes
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de /etc/hosts" ;
rsync -v -rlt -z --delete /etc/hosts             panoramix::Backups/`hostname -s`/etc_hosts
[ $? -ne 0 ] && rapport=$rapport" 10"

# configuration de l'authentification AD
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de l'authentification AD" ;
rsync -v -rlt -z --delete /etc/krb5.conf         panoramix::Backups/`hostname -s`/etc_krb5.conf
[ $? -ne 0 ] && rapport=$rapport" 11"
rsync -v -rlt -z --delete /etc/nsswitch.conf     panoramix::Backups/`hostname -s`/etc_nsswitch.conf
[ $? -ne 0 ] && rapport=$rapport" 12"
rsync -v -rlt -z --delete /etc/sudoers             panoramix::Backups/`hostname -s`/etc_sudoers
[ $? -ne 0 ] && rapport=$rapport" 13"
rsync -v -rlt -z --delete /etc/pam.d/             panoramix::Backups/`hostname -s`/etc_pam.d
[ $? -ne 0 ] && rapport=$rapport" 14"
rsync -v -rlt -z --delete /etc/security/         panoramix::Backups/`hostname -s`/etc_security
[ $? -ne 0 ] && rapport=$rapport" 15"

# repositories yum
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde des repository yum" ;
rsync -v -rlt -z --delete /etc/yum.conf         panoramix::Backups/`hostname -s`/etc_yum.conf
[ $? -ne 0 ] && rapport=$rapport" 16"
rsync -v -rlt -z --delete /etc/yum.repos.d/     panoramix::Backups/`hostname -s`/etc_yum.repos.d
[ $? -ne 0 ] && rapport=$rapport" 17"

# scripts utiles
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde de .bashrc et .screenrc" ;
rsync -v -rlt -z --delete /root/.bashrc         panoramix::Backups/`hostname -s`/root_dot_bashrc
[ $? -ne 0 ] && rapport=$rapport" 18"
rsync -v -rlt -z --delete /root/.screenrc         panoramix::Backups/`hostname -s`/root_dot_screenrc
[ $? -ne 0 ] && rapport=$rapport" 19"

# parametrages centreon / nagios
echo `date +"%Y%m%d %H%M%S"`:$nom:" Sauvegarde des paramétrages centreon nagios" ;
rsync -v -rlt -z --delete /usr/local/nagios/etc/         panoramix::Backups/`hostname -s`/usr_local_nagios_etc
[ $? -ne 0 ] && rapport=$rapport" 20"
rsync -v -rlt -z --delete /usr/local/nagios/libexec/         panoramix::Backups/`hostname -s`/usr_local_nagios_libexec
[ $? -ne 0 ] && rapport=$rapport" 21"


####################################################################################
# mise à jour du fichier permettant a centreon de verifier si la sauvegarde est correcte
####################################################################################

# si le rapport contient des erreurs, on indique KO dans le fichier de contrôle
if [ "${rapport}" != "Erreurs :" ] ;
then
    echo `date +"%Y%m%d %H%M%S"`:$nom:"Le rapport contient des erreurs" ;
    echo "ko --- " > /root/bin/dateSauvegarde
    echo $rapport >> /root/bin/dateSauvegarde
else
    echo `date +"%Y%m%d %H%M%S"`:$nom:"Il n'y a pas eu d'erreurs pendant la sauvegarde" ;
    echo "ok" > /root/bin/dateSauvegarde
fi


####################################################################################
# SAUVEGARDES PARTICULIERES AU SERVEUR : lancé après pour pouvoir amender le rapport
#  de sauvegarde precedent si necessaire
####################################################################################

# Si le fichier /root/bin/mmv_sauvegardes.sh existe, on le lance
if [ -f /root/bin/mmv_sauvegardes.sh ] ;
then
    echo `date +"%Y%m%d %H%M%S"`:$nom:"Un script de sauvegarde local existe, on le lance : /root/bin/mmv_sauvegardes.sh" ;
    [ ! -x /root/bin/mmv_sauvegardes.sh ] && chmod +x /root/bin/mmv_sauvegardes.sh
    /root/bin/mmv_sauvegardes.sh
    [ $? -ne 0 ] && rapport=$rapport" 99"
else
    echo `date +"%Y%m%d %H%M%S"`:$nom:"Aucun script de sauvegarde specifique a ce serveur trouve" ;
fi

# copie du fichier de rapport de sauvegarde sur le serveur de sauvegarde
rsync -v -rlt -z --delete /root/bin/dateSauvegarde panoramix::Backups/`hostname -s`/dateSauvegarde

Script spécifique à un serveur donné

Et voici un exemple de script spécifique à un serveur contenant des bases mysql :

#/bin/sh
# mmv_sauvegardes.sh
# script fermant les connexions a la base et lancant le backup de la base et le dbmaintenance
nom=`basename $0`

# Send all output to a logfile and supress input
typeset LOG=/var/log/mmv_sauvegardes.log
[[ -t 1 ]] && echo "Writing to logfile '$LOG'."
exec >> $LOG 2>&1
exec < /dev/null 2<&1

# -----------------------------------------------
# backup des bases
# -----------------------------------------------
echo `date +"%Y%m%d %H%M%S"`:$nom:" DEBUT DU SRIPT DE SAUVEGARDE"

# sauvegarde de glpi
echo `date +"%Y%m%d %H%M%S"`:$nom:" lancement des dumps de glpidb"
mysqldump --add-drop-table --lock-tables -u XXX -pXXX --databases glpidb > /usr/local/lib/backups/mmv_backup_glpi_`date +"%Y%m%d"`.sql

# suppression des anciens fichiers de backup
echo `date +"%Y%m%d %H%M%S"`:$nom:" nettoyage anciens dumps"
find /usr/local/lib/backups/ -type f  -mtime +7 | xargs rm -f

# copie de certains fichiers sur le serveur de sauvegarde
echo `date +"%Y%m%d %H%M%S"`:$nom:" copie glpi sur panoramix"
rsync -v -rlt -z --delete /var/www/html/glpi/ panoramix::Backups/tintin/glpi

echo `date +"%Y%m%d %H%M%S"`:$nom:" copie des dumps sur panoramix"
rsync -v -rlt -z --delete /usr/local/lib/backups/ panoramix::Backups/tintin/bases

echo `date +"%Y%m%d %H%M%S"`:$nom:" FIN DU SCRIPT"






samedi 18 février 2012

Désactiver le pavé tactile sur un portable


Sur certains ordinateurs portables, on dispose à la fois d'un pavé tactile et d'un "batonnet" (stick) entre les touches G et H.

Lorsque l'on écrit au kilomètre (si si ça m'arrive), le pouce va parfois effleurer le pavé tactile, et pouf, le curseur de la souris se déplace, et on écrit ailleurs que prévu... Très très très embêtant :-)

Touchpad Indicator est un utilitaire qui permet d'éviter de perdre du temps.

Pour l'installer (fonctionne aussi sous kde), il suffit de... l'installer :


sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator

Il n'y a plus qu'à le lancer, une petite icone se logera dans la liste des icônes, vous permettant de configurer l'utilitaire :


Et voila!

Configuration de thunderbird pour le développement d'extension

Le développement sur mon pc portable est assez difficile vu la taille de l'écran, j'ai donc dû réinstaller l'environnement de développement pour thunderbird sur mon PC fixe.
Voici les différentes étapes pour mettre en place un environnement de développement d'extension Thunderbird. Ces informations sont (plus) détaillées sur le MDN

Créer un profil de développement

lancer TB avec le choix des profils :
/usr/bin/thunderbird -no-remote -P dev

Faire "Créer un nouveau profil". (l'appeler dev) Cela permettra de bidouiller Thunderbird sans modifier le comportement du profil par défaut.

Modifier certaines préférences de TB

Aller dans Options / Préférences / Avancé / Editeur de configuration. Pour les préférences n'existant pas, il faut les créer.

  • javascript.options.showInConsole = true. Envoie les erreurs sur la console
  • nglayout.debug.disable_xul_cache = true. Supprime le cache XUL pôur éviter de relancer thunderbird à chaque modification des XUL (ça marche moyen chez moi)
  • browser.dom.window.dump.enabled = true. Permet d'utiliser dump() pour écrire dans la console
  • javascript.options.strict = true. ça, ça se passe de commentaires
  • devtools.chrome.enabled = true. This enables to run JavaScript code snippets in the chrome context of the Scratchpad from the Tools menu. Don't forget to switch from content to chrome as context.
  • extensions.logging.enabled = true. This will send more detailed information about installation and update problems to the Error Console.
  • nglayout.debug.disable_xul_fastload = true. normalement inutile car permettait de contourner un bug corrigé depuis, mais par prudence on le garde
  • dom.report_all_js_exceptions = true. See Exception logging in JavaScript for details.

Installer des extensions qui vont nous faciliter la vie

En l'occurence, voici ce que j'ai installé... J'essayerai d'écrire quelques mots sur l'utilisation de chacune de ces extensions.

  • Console2
  • DOM inspector
  • Event Spy
  • Extension TEst
  • Javascript Debugger

En enfin... Faire un lien vers votre répertoire de développement

Créer un fichier pointeur vers l'espace de développement dans le répertoire "extensions" du profil utilisé pour le dev:

Fichier ~/.thunderbird/vnltdsp0.default/extensions/toodledoSend@cmege.fr
Contenu : /home/cmege/Documents/01.Perso/Developpement/Geany/ToodledoSend/

Bien, maintenant on est paré, c'est parti pour le développement !

jeudi 16 février 2012

Mise à jour de GLPI en 0.8.5

GLPI (Gestion Libre de Parc Informatique) est un excellent logiciel open source, qui permet de gérer toute la partie support d'un service informatique.

Il dispose des fonctionnalités principales suivantes :
  • Gestion du parc : inventaire des machines, imprimantes, matériels variés
  • Gestion des incidents : suivi des déclarations d'incidents des utilisateurs, et de leur résolution
  • Et d'un tas d'autres fonctions (remontée automatique de l'inventaire par couplage avec des logiciels comme OCS Inventory, est complètement multi-entités...) mais je vous laisse découvrir sa puissance directement sur le site web du projet 
Bref, je ne veux pas vous faire la publicité de ce logiciel, mais uniquement indiquer la manière de mettre à jour une version.
En l’occurrence, nous allons passer de la version 0.8.2 à la version 0.8.5. Avant tout, vérifiez que vos sauvegardes quotidiennes (vous en avez, bien sûr) ont correctement fonctionné, notamment en ce qui concerne la base de données...
Bien, on se retrousse les manches et on y va :
  1. Petite sauvegarde du répertoire existant
    -> cd /var/www/html
    -> on vérifie que l'on a assez de place pour notre sauvegarde
    -> df -h (donne la place restante)
    -> du -hs glpi (donne la taille du répertoire glpi)
    -> cp -R glpi gpli-0.8.2 (recopie le répertoire glpi)
  2. Mise à jour avec la version suivante (ici téléchargée dans /tmp)
    -> tar xvzf glpi-0.80.5.tar.gz (on décompresse la nouvelle version)
  3. Changement du propriétaire des répertoires
    -> chown -R apache:apache glpi
  4. Et voila! Il ne reste plus qu'à se connecter à glpi, et suivre les instructions pour la mise à jour de la base de données

lundi 26 septembre 2011

La virgule du pavé numérique sous LibreOffice Calc

Au bout de quelques jours d'utilisation, ça m'énerve : calc ne converti pas le point du pavé numérique en virgule, il faut à chaque fois utiliser la virgule à coté du N.

J'ai enfin trouvé la solution (il suffisait de chercher un peu...) : cela fonctionne sous Ubuntu 11.04, mais je pense que cela marche aussi sur toute distro avec gnome.

Dans les préférences du clavier (bouton démarrer, préférences du système, clavier), aller dans les options de l'agencement (onglet agencements, bouton options), et dans "COmportement de la touche de suppression du clavier numérique", choisir "Touche obsolète avec virgule".

Et voilà!

jeudi 22 septembre 2011

Toodledo Sync : Manuel d'utilisation

Vous êtes sur la page de documentation pour l'extension ToodledoSync pour Thunderbird.

If you are looking for an english documentation, please look here.

Comment ça marche

L'extension utilise une fonctionnalité de Toodledo : il est possible d'envoyer des tâches par mail. Le sujet de tels mails a sa propre syntaxe, et cette extension ne fait "que" modifier le sujet d'un mail pour se conformer à cette syntaxe, vous permettant ainsi d'oublier cette syntaxe, et d'éviter des erreurs en tapant vous même le sujet.

Configuration initiale

1) Votre compte Toodledo

Il faut activer la fonctionnalité  "Email import/export" (Outils,  Plus..., Email Import/export). Vous aurez ainsi une adresse mail du type  'letters.numbers@toodledo.com'
Cela vous permet alors d'envoyer des mails à cette adresse, qui seront convertis en tâches. Il y a une syntaxe spéciale pour le sujet des mails, permettant de définir dans quel dossier, contexte... la tâche sera créée (et plus, comme l'échéance, la durée...)

2) Coté Thunderbird

Après l'installation de l'extension ToodledoSync, allez dans les préférences et paramétrez les champs suivants :

     - l'adresse mail générée au point 1
Pour ma part, j'ai défini dans mon carnet d'adresse que ce mail s'appelait "TODO", c'est plus rapide à taper. Si vous faites la même chose, il faut entrer dans ce champ la valeur exacte que Thunderbird mettra dans le champ "To:". Pour mon cas, cela ressemble donc à "TODO <letters.numbers@toodledo.com>" (dans les guillemets)
     - une liste de contextes
Comme toutes les listes de cette extension, elle est optionnelle. Si vous n'utilisez pas les contextes dans votre implémentation de Toodledo, vous pouvez cocher la case "Cacher les contextes", ils ne vous dérangeront plus.
Cette liste doit contenir, évidemment, la même liste de contextes que celle de votre compte Toodledo. Je sais que saisir deux fois la même information est une aberration, mais il faut bien que je garde quelque chose à faire pour les prochaines versions...
Vous pouvez réordonner la liste, le premier élément sera celui qui sera choisi par défaut.
TIP : Vous pouvez aussi définir un contexte ne contenant qu'un espace. Cela permet par exemple de le placer en haut de la liste, et ainsi par défaut de ne pas définir de contexte pour vos nouvelles tâches. (saisissez un espace, cliquez sur "Ajouter", puis cliquez sur "Monter" jusqu'à ce qu'il soit le premier de la liste).
TIP : Pour renseigner plusieurs contextes rapidement, vous pouvez utiliser la manipulation suivante : saisir le nouveau contexte, taper <TAB>, taper <Entrée> (ou <Return>), taper <SHIFT>+<TAB> pour revenir dans la boite de saisie, et recommencer l'opération.

     - Autres listes (dossiers, objectifs...)
Le fonctionnement est strictement le même que la liste des contextes, seul le contenu change.


Comment utiliser l'extension

Rédigez un nouveau mail (ou transférez-en un)

Si le champ "Pour:" de ce mail est le même que celui paramétré dans l'extension, une zone va apparaître au dessus du sujet, dans laquelle vous pourrez choisir les éléments à ajouter à votre tâche.

Quelques mots sur la date d'échéance

La date d'échéance utilise une syntaxe particulière : vous pouvez utiliser des valeurs comme (en anglais uniquement, c'est Toodledo qui gère) ; "today" "tomorrow" "next week" "next month" "Next thursday" "5/12/2011"
Cette syntaxe permet ainsi de définir une valeur par défaut dans les préférences, par exemple Next month.

Quelques mots sur la "durée"

Ici aussi, une syntaxe spéciale existe : 30min, 4hours... Vous pouvez définir une durée par défaut dans les préférences.


A noter
     - l'extension ne modifiera jamais un sujet si le destinataire "Pour:" n'est pas exactement celui défini dans les préférences.
     - les champs toodledo n'apparaîtront pas non plus dans ce cas.


     - parfois les champs n'apparaissent pas immédiatement, ils n’apparaîtront qu'à la prochaine touche appuyée si "Pour:" est bien l'adresse paramétrée.

J'espère que cette extension vous rendra plus productifs et donc plus heureux!
Christophe

mardi 20 septembre 2011

Toodledo Sync : Manual

Here's the how-to for using the toodledosync extension for Thunderbird.

Si vous recherchez une version française de cette documentation, c'est ici.

How it works 

it uses a toodledo feature : you can send tasks by mail. The subject of this mail has its own syntax, and this extension only modify the subject of a mail to match this syntax, allowing you to forget this syntax, and avoid errors typing a context or folder.

Initial configuration 

Toodledo account

You have to activate the "Email import/export" tool in your toodledo account (Tools, More..., Email Import/export). That will generate an email adress like 'letters.numbers@toodledo.com'. This allows you to send mails to this address, they will be converted to tasks. There is a special syntax for the "subject" of the mail, allowing you to decide in which folder, context the task will be created (and much more, like due date...)

Thunderbird part

You have to install my Toodledosync extension for Thunderbird. In order to use the links between Toodledo folders and mail folders (see below), you'll also have to install Eivind Rovik's "Quicker Filer" extension.

The account tab

This tab contains the following preferences :

     - your Toodledo mail address
In thunderbird, I have defined in my adress book that adress to be "TODO", it's easier to type... So here, I have  something like "TODO <letters.numbers@toodledo.com>" (without the quotes)
     - Lots of self explanatory check boxes
You can choose here to hide / show some fields, depending of your habits. You can also define some default values.
     - A not so self explanatory check box ; "Use doublequotes"
This checkbox is due to a bug found by DeWayne Rosene (many thanks!). The extension added some double quotes to the status (giving $"Next Action") and Toodledo doesn't understand that. So I removed the double quotes in the status, and, in case of problems with the other fields, added this checkbox. You can safely let in unchecked, and if you experiment troubles with fields not recognized in toodledo, check it, AND send me the exact content of the subject that cause problems, and the one that works.

Some Lists Tabs

     - For example : list of contexts
as all the following lists, this is optionnal if you don't use it in your toodledo setting. If you check the checkbox "Hide contexts", you will not be bothered anymore by contexts.
This list has to be, of course, the same list than your toodledo account contexts list. I know that's a pain to have to type it again, but, hey, I have to keep something to do for future versions...
You can reorder the list, the first item in the list will be the default one when you'll have to choose.
TIP : If you define the first one as a space (type a space, then click "add", and click "up" to bring it on top of your list, by default no context will be defined in toodledo.
TIP : To enter lots of contexts quickly, you can use only your keyboard and save the time needed to go to your mouse forth and back : enter a new context, hit , hit (or ), then hit + to come back, and start over.

     - other lists : folders, goals, status, locations, tags
Except from the content, same system than the context list.
A special tab : link between contexts and folders

     In this tab, you can create links between a Toodledo folder, and a Toodledo Context. Just select the folder you want, clic on "update", and choose the associated context. From now on, each time you'll choose that folder in the compose window, the associated context will be selected (you can override that choice).

An other special tab : link between Toodledo folders and Thunderbird folders

     To use this feature, you'll need Eivind Rovik's "Quicker Filer" extension. His extension provides a way to easily select a folder for saving a mail (and other cool features), works really well and provide an excellent autocompletion feature. Eivind Rovik kindly gave me the permission to use it, and that is a real time saver for what we need. You don't have to use his extension, nor configure it, if you just want to use the autocompletion feature in ToodledoSync. To the point : you can associate here, Toodledo folders with your local (or distant/imap) mail folders. Each time you'll send a task to Toodledo in that folder, the sent mail will be placed in the choosen local mail folder.

Now how to use it 

Compose a new mail (or forward one)

if the "To: " field is the mail adress generated in step one, a zone will appear above the subject line, where you can choose folder, context and other fields that will be sent to your toodeldo account to create a task.

A word about "due date"

The "due date" field uses a cool syntax : you can use things like "today" "tomorrow" "next week" "next month" "Next thursday" "5/12/2011"
That syntax allows you to fill a default due date in preferences, like Next month.

A word about "length"

Here again, a special syntax is used : 30min, 4hours... You can also define a default in the extension preferences.

Remember
     - the extension will never modify a subject if the "To: " field is not the same mail address than your toodledo mail adress.
     - the dropdown lists will not appear neither

     - sometimes the fields doesn't appear right after entering the correct "To:" adress. They will appear on the next key press into the compose window.
I hope it will make you more productive and happy !
Christophe

Enhanced by Zemanta

lundi 19 septembre 2011

Ubuntu sur un DELL Latitude E4310

Petit rapport d'installation pour ceux qui se demandent si tout fonctionnera correctement avec un DELL E4310 :

L'installation d'Ubuntu 11.04 ne rencontre aucun problème, et mieux encore, tout fonctionne "out of the box" : touchpad, wifi, luminosité clavier et écran, son...

Les seuls problèmes détectés pour l'instant (après 1 mois d'utilisation)

Double écran sur le dock 

lorsque l'on docke le PC, et que l'on souhaite utiliser deux écrans simultanément, certaines icônes d'application disparaissent (les icônes des applications qui ne se trouvent pas par défaut, dans mon cas, davmail, conduit...).

La solution à ce problème est assez brutale : soit repasser en "ubuntu classic" plutôt qu'utiliser unity, soit n'utiliser qu'un seul écran...

C'est un bug qui est connu, et qui devrait être donc résolu dans la prochaine mouture, unity étant encore assez jeune.

Veille / Hibernation

Un autre problème se produit parfois avec le mode veille : parfois, lorsque l'on sort du mode veille, ubuntu annonce que la batterie est déchargée, et du coup passe en mode hibernation, mais le redémarrage ne fonctionne pas correctement.

Pour l'instant je n'ai pas trouvé de solution à ce problème...

Enregistrer un flux audio

Certaines émissions de france inter sont disponibles en podcast, mais uniquement le dernier épisode.
Lorsque l'on souhaite récupérer les épisodes précédents, le seul moyen que j'ai trouvé, est de lire les anciens épisodes avec le player de france Inter, puis d'enregistrer le son émis par ce player pour pouvoir réécouter les émissions plus tard :

Voici les étapes pour réaliser ce "piratage" :

installer pavucontrol s'il ne l'est pas déjà:
sudo apt-get install pavucontrol

lancer pavucontrol : dans les périphériques d'entrée, sélectionner "afficher tous les
périphériques d'entrée" ; puis choisir "Monitor of Audio interne stéréo analogique".
Décocher "ligne d'entrée analogique". Cela permet de définir que pour les programmes
qui vont enregistrer du son, ils enregistreront depuis la sortie audio interne, plutôt que
depuis l'entrée classique (microphone).

lancer gnome-sound-recorder

ouvrir le site web que vous souhaitez enregistrer, par exemple http://www.franceinter.fr/player/reecouter?play=154163, puis dans gnome-sound-recorder, cliquez sur "enregistrer".

Et voila...

Comment installer un serveur tftp

Un serveur tftp peut être utile parfois pour par exemple, mettre à jour le firmware d'un switch réseau.

tftp (trivial ftp) est un protocole de communication permettant de transférer des fichiers, comme ftp, mais avec moins de commandes et de sécurité.

La création d'un serveur tftp est extrêmement simple, surtout si l'on veut faire du jetable et que les aspects sécurité sont donc secondaires (de toutes façons un serveur tftp n'est pas sécurisé).

1° installer les packages :
sudo apt-get install tftpd tftp xinetd

2° configurer le démon xinet pour qu'il réponde aux requêtes tftp :
sudo gedit /etc/xinetd.d/tftp

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}

3° configurer le répertoire qui va contenir les fichiers

sudo mkdir /tftproot
sudo chmod -R 777 /tftproot
sudo chown -R nobody /tftproot

touch /tftproot/test.txt

4° tester / utiliser

tftp localhost
get test.txt

5° supprimer les paquets et ces moches répertoires pas sécurisés

sudo apt-get remove --purge tftpd tftp xinetd
sudo rm /etc/xinetd.d/tftp
sudo rm -rf /tftproot

Et voila.

dimanche 18 septembre 2011

Erreur Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED)

French version at the end of this post.
This bug is solved with version 1.2, I keep this post for reference.  

(I defined default preferences like that :
user_pref("extensions.toodledosync.settings.goaltab.goalHidden", "true");
so it was defined as a string, and had an error when I tried to retreive a boolean value.)

An error may occur, due to preferences management in Thunderbird. I'll correct that in a future version, but there's an easy workaround (to do one time only). So if you meet an error like :

[Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED)
        [nsIPrefBranch.getBoolPref]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" 
        location: "JS frame :: chrome://toodledosync/content/common.js :: activatePreferences

Close all Thunderbird windows, open your prefs.js file
     windows 7 : C:\Users\votre utilisateur\AppData\Roaming\Thunderbird\Profiles\chiffresetlettres.default\prefs.js
     other windows %APPDATA%\Thunderbird\Profiles\chiffresetlettres.default\prefs.js
     linux /home/votre_utilisateur/.thunderbird/chiffresetlettres.default/prefs.js

Check that you have the 4 following lines : (false/true values are your preferences) :
user_pref("extensions.toodledosync.settings.contexttab.contextHidden", false);
user_pref("extensions.toodledosync.settings.foldertab.folderHidden", false);
user_pref("extensions.toodledosync.settings.goaltab.goalHidden", true);
user_pref("extensions.toodledosync.settings.statustab.statusHidden", true);

If one line is missing, add it, and start Thunderbird again.

Sorry for that...


----

Ce bug est corrigé dans la version 1.2, je laisse ce post pour référence.

Une erreur peut se produire, cela est dû à la gestion des préférences sous Thunderbird.Rien de grave, mais il faut que je revoie le code associé à cela pour l'éviter. Une petite manipulation à faire une fois permet de régler l'erreur :

[Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED)
        [nsIPrefBranch.getBoolPref]"  nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" 
        location: "JS frame :: chrome://toodledosync/content/common.js :: activatePreferences

Fermez toutes vos instances de Thunderbird, ouvrez votre fichier prefs.js (il se trouve dans votre répertoire Thunderbird utilisateur,
 sous windows 7 : C:\Users\votre utilisateur\AppData\Roaming\Thunderbird\Profiles\chiffresetlettres.default\prefs.js
 sous les autres windows %APPDATA%\Thunderbird\Profiles\chiffresetlettres.default\prefs.js
 sous linux /home/votre_utilisateur/.thunderbird/chiffresetlettres.default/prefs.js

Et vérifiez que vous avez bien les 4 lignes suivantes (les valeurs false ou true reflètent vos préférences) :
user_pref("extensions.toodledosync.settings.contexttab.contextHidden", false);
user_pref("extensions.toodledosync.settings.foldertab.folderHidden", false);
user_pref("extensions.toodledosync.settings.goaltab.goalHidden", true);
user_pref("extensions.toodledosync.settings.statustab.statusHidden", true);

S'il en manque une ajoutez la, puis redémarrez Thunderbird.

Désolé pour le souci...

jeudi 8 septembre 2011

Modifier l'adresse ip d'un host en fonction du réseau sur lequel on se trouve

Ce petit truc ne servira pas à tout le monde, mais en ce qui me concerne il me fait gagner quelques secondes tous les jours...

J'ai un serveur de mail pour mon travail, qui est donc accessible depuis l'extérieur par une adresse ip publique. Quand je suis sur le réseau du travail, par contre, il n'est plus accessible par cette adresse ip, mais par son adresse ip du réseau local.

Pour pouvoir me connecter à ma messagerie quelque soit le réseau sur lequel je me trouve, il faut donc que l'adresse ip du serveur change en fonction de ce réseau.

Voila donc la solution :
Imaginons que ce serveur s'appelle serveur.mail.com, qu'en externe il ait l'adresse 123.123.123.123, et qu'en interne, il ait l'adresse 192.168.0.1 :

1) créer un petit script qui va tester sur quel réseau on est et changer la résolution de nom en fonction du resultat :

#!/bin/bash
# pour changer l'adresse ip de [serveur.mail.com] en fonction de si on est dedans ou dehors du réseau professionnel

ping -c 3 192.168.0.1

if [ $? -eq 1 ] ; then
    echo "on est a l'exterieur" ;
    sed -i "s/192.168.0.1 serveur.mail.com/123.123.123.123 serveur.mail.com/g" /etc/hosts ;
else
    echo "on est a l'interieur" ;
    sed -i "s/123.123.123.123 serveur.mail.com/192.168.0.1 serveur.mail.com/g" /etc/hosts ;
fi

2) éditer le fichier /etc/hosts pour initialiser les choses, en ajoutant soit la ligne
123.123.123.123 serveur.mail.com, soit 192.168.0.1 serveur.mail.com

3) Ajouter dans la crontab de l'utilisateur root (sudo crontab -e)

*/5 * * * * /home/moi/bin/[nom du script défini au point 1]

Et voilà... Pas besoin de reconfigurer thunderbird en fonction du réseau où l'on se trouve.


Augmenter le temps des sessions GLPI

GLPI est un logiciel de gestion de parc informatique, excellent.
Par contre, les sessions sont trop courtes, et lorsque l'on part dépanner quelqu'un il faut se reconnecter dans l'interface à notre retour...

Encore quelques secondes perdues tous les jours! Pour augmenter le temps des sessions glpi, le réglage s'effectue non pas dans glpi, mais pour php. Il sera donc valable pour toutes les applications php installées sur le même serveur que glpi :

sudo vim /etc/php.ini

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
; session.gc_maxlifetime = 1440
session.gc_maxlifetime = 3600


Ajouter un fichier de swap temporaire sous linux

Parfois il peut être pratique d'ajouter temporairement un fichier de swap.
Voici la procédure très simple à suivre (évidemment en ligne de commande, gnome-terminal, ou konsole, ou ctrl+alt+F1 sont la base) :

1) créer un fichier vide

(sudo) dd if=/dev/zero of=./file.swap bs=1M count=2048
ici, création d'un fichier de 2Go (2048 * 1M) s'appelant file.swap dans le répertoire courant

2) synchroniser les disques durs

(sudo) sync

3) transformer le fichier en ficher swap

(sudo) mkswap /tmp/file.swap

4) donner les droits

(sudo) chmod -v 600 /tmp/file.swap

5) activer le nouveau fichier de swap

(sudo) swapon /tmp/file.swap

6) vérifier que le swap a bien augmenté

"htop"
ou "swapon -s"
ou "free -mt"

Et voila!