ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

Planet Ubuntu-fr - Accueil

Fil des billets

mardi, novembre 18 2008

Gravatar de BastNicInstall party Bordeaux : rappel + radio pour les absents via BastNic

Les gens, vous n'avez pas oublier ? Samedi c'est Giroll Party (sans girolles cette année encore ?) !!

logo de la radio GirollMais la particularité de Giroll, c'est qu'en plus d'être une équipe incroyablement sympa (et 'achement moins organisée que celle de #pw2008) nous proposons une radio en ligne :D. Cette radio est évidemment libre, et TOUT LE MONDE PEUT PARTICIPER : Musiciens libristes, compte rendus d'évènements, annonces d'évènements à venir, retour d'expériences, témoignages de néophytes, co***ries, don de chèque...

Pour tous les détails, allez consulter le blog de mon ami Yorick : Radio Giroll remet ça.

Vous pourrez notamment trouver sur le site de Giroll un petit tutoriel sur comment faire pour nous écouter.

Comme disent chaque année les zigotos de la TV : On compte sur vous :D : soyez présent.

ps : illustration devinez de qui ?

Gravatar de CedynamixAdobe Flash bientôt une version 64 bits (enfin) via Cedynamix

Depuis l’acquisition de Macromedia, Adobe a quelque peu amélioré son Player Flash pour Linux et a introduit une mise à jour de la version Linux en phase avec celle de Windows et de Mac OS X. Le développement de Flash Player 10 est passé par plusieurs versions alpha et bêta qui ont toutes apportées leur lot de nouvelles fonctionnalités. La plupart des utilisateurs ont exprimé plus d’une fois leur mécontentement de ne voir Adobe Flash Linux qu’en version 32 bits et Adobe n’avait jamais tenu compte de ces réclamations jusqu’à hier ou ils ont annoncé avoir débuté le développement d’une version 64 bits.

Le site Adobe Labs a publié une version alpha de Flash Player 10 pour systèmes x86_64. Ce plug-in 64-bit de Flash fonctionne donc sans le paquet NSPluginwrapper et sera donc opérationnel avec vos navigateurs Web 64 bits. Les notes de publication pour la version Linux 64-bit peuvent être lues ici.

Il n’y a plus qu’à espérer que Sun fasse de même et sorte une version 64 bits de son plug-in Java, ce qui supprimerait définitivement les deux problèmes majeures qui pouvaient empêcher certains utilisateurs de sauter le pas et de migrer vers un système 64 bits.

Gravatar de RespawnerTransmission, Clutch et Ubuntu Server via Respawner

Depuis un paquet de temps maintenant, j’ai une Dedibox sous Ubuntu Server (actuellement en version 8.04 LTS). Comme je dispose d’une bande passante de 100 Mbit/s et qu’elle n’est pas exploitée au mieux possible, j’ai trouvé intéressant d’en faire profiter quelques utilisateurs des réseaux P2P (torrent). Attention, pas de tipiakage, je reste dans les bornes de la législation. Je compte entre autre participer au seed de notre distribution favorite, de la suite bureautique OpenOffice.org, et j’en passe. N’ayant pas d’interface graphique (pas de serveur X), je me suis immédiatement tourné vers une solution utilisant Transmission (sans l’interface GTK) et Clutch, son interface web dédiée. Comment j’y ai pensé ? J’ai relu ce billet.

Note : il faut avoir un serveur web de type Apache ou Lighttpd d’installé afin que l’interface web fonctionne correctement (pour moi c’est Apache).

Pour mettre en place cette solution, il n’y a rien de complexe. Il suffit de se connecter sur la machine (SSH pour moi) et d’installer les paquets transmission-cli et clutch.
~$ sudo aptitude install transmission-cli clutch

Il faut bien entendu recharger la configuration de Apache (ou autre) pour prendre en compte Clutch.
~$ sudo /etc/init.d/apache2 reload


Une fois que ceci est fait, on a déjà réalisé la plus grosse partie du boulot. J’ai remarqué quelques problèmes avec Clutch une fois l’installation finie. En effet, il est impossible de le recharger et d’y accéder correctement, les torrents ne sont pas téléchargé (tentative de connexion au tracker qui échoue, ou tout simplement ça stagne à 0%). Heureusement, il y a des solutions pour ceci.

Commençons par le problème de reload et d’accès. Ceci est dû à un problème de droit sur les dossiers que Clutch est censé utiliser. En effet, Transmission et Clutch sont lancés par l’utilisateur www-data alors que les dossiers ne sont accessibles complètement que par root, par conséquent un coup de chown suffit.
~$ sudo chown -R www-data:www-data /var/cache/clutch/data
~$ sudo chown -R www-data:www-data /var/cache/clutch/daemon
~$ sudo /etc/init.d/clutch/restart


Normalement ça devrait suffir pour régler le problème de reload, celui d’accès mais aussi le fait que le téléchargement des torrents stagne à 0% malgré la connexion au tracker valide. Si le problème de rechargement n’est toujours pas résolu, il faut alors modifier le script qui s’occupe de ça.
~$ sudo vim /etc/init.d/clutch

On cherche alors start) puis juste avant les ;;, on ajoute ceci.
chown -R www-data:www-data /var/cache/clutch/daemon

On fait aussi la même chose pour le choix restart|force-reload).
On teste ensuite de nouveau le redémarrage de Clutch qui devrait fonctionner sans soucis.
~$ sudo /etc/init.d/clutch restart

Tout administrateur d’un serveur se doit d’avoir configuré un firewall correctement pour éviter certaines attaques. Cependant, ici ça peut poser problème. En effet, il faut autoriser la connexion via le port que le tracker utilise. Comment le voir ? Il faut regarder l’URL et normalement le port y est indiqué. Les URLs sont de la forme http://www.le-site.domaine:port/announce. Il suffit alors d’autoriser l’utilisation du port dans le firewall. Pour moi par exemple,j’ai rajouté ceci dans mon script.
# Torrent Transmission
iptables -t filter -A INPUT -p tcp --dport 51413 -j ACCEPT
# ----
iptables -t filter -A OUTPUT -p tcp --dport 6969 -j ACCEPT
echo - Autoriser Transmission : [OK]


Le port 51413 est celui qui est utilisé par Clutch (voir capture d’écran plus bas) et le port 6969 correspond à celui du tracker Ubuntu et OpenOffice.org. J’ai remarqué qu’il y avait un soucis avec les trackers utilisant le port 80 (celui utilisé par HTTP et donc Apache). Je n’ai pas trouvé comment résoudre ceci encore, si quelqu’un a une solution je suis preneur dans le cas échéant, je vais continuer à chercher.


Une fois le firewall configuré et Clutch opérationnel, on peut normalement accéder à Clutch sans problème via l’adresse http://IP_DU_SERVEUR/clutch/ (bien entendu on peut remplacer l’IP par un nom de domaine). On a alors accès à l’ajout de fichier torrent, à la configuraton de Clutch et on peut surveiller l’avancement en direct.


Par contre, une chose embêtante, tout le monde peut accéder à l’interface web et ajouter, supprimer des torrents. Pour palier à ce soucis, on va utiliser le fichier de configuration de Clutch qui n’est ni plus ni moins qu’un fichier que le serveur web (ici Apache) va lire. On ouvre donc ce fichier.
~$ sudo vim /etc/clutch/clutch.conf

Et il faut décommenter les dernière lignes celles commençant par AuthType, AuthName, AuthUserFile et Require.
  AuthType Basic
  AuthName "Transmission Clutch Interface"
  AuthUserFile /etc/clutch/htpasswd
  Require valid-user


Une fois que c’est fait, on enregistre et ferme (le populaire :wq). Et on va créer le fichier contenant les logins et mots de passe (chiffrés).
~$ sudo htpasswd -c /etc/clutch/htpasswd nom_utilisateur

L’option -c permet de créer le fichier. Pour rajouter par la suite un utilisateur, on utilisera.
~$ sudo htpasswd /etc/clutch/htpasswd nouvel_utilisateur

Enfin pour terminer, on redémarre Clutch et Apache.
~$ sudo /etc/init.d/apache2 restart
~$ sudo /etc/init.d/clutch restart


Maintenant, l’accès à l’interface web de Transmission est sécurisée. Il ne reste qu’à en profiter.

Source : http://recurser.com/code/wiki/clutch/Getting_Started

Gravatar de KagouLes mugs ubuntu-fr sont là ! via Kagou

  • Ils sont en plastique recyclé ( Grande Bretagne made from recycled plastic) -> +1
  • ils passent dans le micro-ondes ou au lave-vaisselle ( Grande Bretagne ready for microwave or dishwasher) -> +1
  • Ils sont magnifiquement beaux ( Grande Bretagne sooOo cute) -> +1 (un très grand merci à la copine de didrocks pour le graphisme)
  • les manchots les adorent ( Grande Bretagne tux love it) -> +1
  • et ils sont disponibles ( Grande Bretagne Available now !) -> +1

Les gens de la Ubuntu Party de Toulouse/Blagnac ont pu les voir et les acquérir ;) … Heureusement tout un lot de mugs a pu passer à travers et ils seront, d'après mes sources, dans les parages d'une autre Ubuntu Party à Paris le 29-30 novembre 2008, à bon entendeur :-)

IMG_1255.jpg

IMG_1254.jpg

IMG_1253.jpg

lundi, novembre 17 2008

Gravatar de racoon97Installation du jeu TA Spring sous Ubuntu via racoon97

Il existe depuis plusieurs mois un dépot dédié à l’installation de Spring sous Ubuntu 7.10 (Gutsy) et  8.04 (Hardy) .  Si vous possédez une version plus ancienne, il est vivement recommandé de faire une mise à jour de votre distribution pour pouvoir profiter de ce jeu magnifique. Pour ceux qui ne le connaissent pas, regardez les vidéos suivantes : http://taspring.racoon97.net/blog/videos/

Vous devez posséder au minimum les éléments suivant pour pouvoir jouer à Spring :

- Le moteur du jeu : Spring

- Un centre de contrôle : Springlobby

- Au moins un mod

- Au moins une carte

Actuellement, le dépot Ubuntu contient tout ces éléments sauf certains mods et cartes que vous devrez installer manuellement, mais vous le verrez ce n’est pas compliqué : ce sont juste des fichiers à télécharger et à copier dans un répertoire dédié.

Installation

Important ! Avant tout, veuillez désinstaller toute trace d’une installation précédente de Spring, y compris le répertoire ~/.spring.

Pour installer le moteur du jeu, le centre de contrôle utilisateur (lobby) et les cartes, veuillez suivre les installations ci-dessous selon votre niveau, débutant ou utilisateur avancé :

Installation en mode graphique. (Utilisateur débutant)

Allez dans  Système > Administration > Sources de logiciels puis cliquer sur l’onglet “Logiciels de tierces parties”. Cliquez sur le bouton “Ajouter…” et faîtes un copier-coller de la ligne suivante en fonction de votre version d’Ubuntu :

NE FONCTIONNE PAS SUR INTREPID !

Ubuntu 8.04 “Hardy Heron”:

deb http://ppa.launchpad.net/spring/ubuntu hardy main

Ubuntu 7.10 “Gutsy Gibbon”:

deb http://ppa.launchpad.net/spring/ubuntu gutsy main

Cliquer sur le bouton “Fermer” une petite fenêtre apparaitra, cliquez sur le bouton “Actualiser”.

Une fois terminé les fenêtres utilisées se fermeront automatiquement, il suffira ensuite d’aller dans Système > Administration > Gestionnaire de paquets Synaptic de cliquer sur le bouton “Rechercher” et de taper spring . Sélectionner tous les paquets commença par spring- ,  faites un click droit puis “Sélectionner pour installation”, terminer en cliquant sur le bouton “Appliquer” dans la barre d’outils de Synaptic. L’installation de Spring commence… faites-vous un café pour patienter : il y plusieurs dizaines de Mo à télécharger.

Installation en mode console (Utilisateur avancé uniquement, mais plus rapide)

Tapez alt-F2 pour ouvrir un terminal puis entrez la commande suivante :

gksudo gedit /etc/apt/sources.list.d/springproject.list

Copier-coller la ligne suivante dans l’éditeur (selon votre version d’Ubuntu) :

Ubuntu 7.10

deb http://ppa.launchpad.net/spring/ubuntu gutsy main

Ubuntu 8.04:

deb http://ppa.launchpad.net/spring/ubuntu hardy main

Enregistrer votre fichier puis fermer l’éditeur puis revenez à votre terminal et tapez :
sudo apt-get update
sudo apt-get install spring spring-lobby-springlobby spring-maps-default -y
sudo apt-get install spring-maps-smallsupreme spring-maps-default spring-maps-1v1
sudo apt-get install spring-maps-deltasiege spring-maps-teamplay
sudo apt-get install spring-maps-kernelpanic spring-maps-hunterw

Ajout mods originaux

Poursuivons l’installation avec l’ajout des mods originaux (OTA et XTA, ces mods sont quasi indispensables car ils sont la base des mods les plus joués sur Internet :

wget http://ipxserver.dyndns.org/games/spring/mods/xta/base-ota-content.zip

Par défaut, le répertoire ~/spring/base n’existe pas créez-le avant tout :

mkdir ~/spring/base

Décompresser le contenu base-ota-content.zip dans le répertoire ~/spring/base :
unzip -d ~/spring/base base-ota-content.zip

Lancement du jeu

Pour lancer le jeu (via Springlobby) allez dans Applications > Jeux > Spring Lobby.

Vous aurez probablement besoin d’autre mods qui ne sont pas disponibles via les dépots, mais ils sont facilement installables en un clic de souris. Lire cet article pour connaître la procédure.

Aide et support

Pour mieux utiliser et configurer le jeu visiter le wiki en français. La documentation est très complète et mise à jour continuellement par les contributeurs.

Pour avoir de l’aide complémetaire, n’hésitez pas à visiter le forum en français. Une équipe motivée et compétente est présente pour répondre à vos questions.

Vous pouvez également vous connecter sur le canal IRC #taspring-fr du réseau Freenode pour avoir de l’aide en temps réel. Des membres y sont connectés et peuvent vous aider. C’est également un point de rendez-vous pour les joueurs francophones. On y discute aussi de stratégie et de tactiques diverses et bien d’autres choses encore. Ce jeu étant multiplateforme, les joueurs de tout horizons sont bienvenus, aussi bien sous Windows que sous Linux.

Gravatar de KagouC.R. de la Ubuntu Party à Blagnac du 15 novembre 2008 via Kagou

Comme annoncé précédemment, je me suis fait violence pour vaincre mon coté loup solitaire et je suis sorti rencontrer des personnes faites de chair et de sang ;)

Après une arrivée en avance chez christophe, petit à petit l'équipe ubuntu-fr se constitue avec sylvain, lionel, pierre et moi même. C'est dans ces moments là que l'on découvre que la photo de sa page sur launchpad n'explique pas pourquoi j'arrive tout juste au niveau de l'épaule de christophe ou pourquoi une capuche bleue n'est pas très flatteur ;) Bref l'ambiance est sympa, je découvre tout le monde et après un repas, direction Odyssud afin d'y rencontrer les gens de Toulibre et de s'installer. La première personne que je rencontre m'interpelle, et lorsqu'il se présente bien évidemment je fait le lien. C'est thomas Petazzoni dont je vois la tête fréquemment sur le planet de l'April (Adhérez !), car en plus de faire parti du C.A. de l'April (Adhérez je vous dit !), il s'occupe de Toulibre avec toute une bande de personnes dont je n'ai pu hélas retenir les noms mais qui sont tous et toutes oh combien sympathiques !

Allez on scotche les affiches (voir même un hub au plafond ;) ), on pose les PC, on s'organise et déjà des gens arrivent, nous regardent et attrapent des exemplaires de Linux Pratique généreusement offert par Diamond Éditions pour les feuilleter en attendant. Arrive le moment où il faut bien se lancer. Un "Je peux vous aider ?" et c'est parti. C'est du quasi non-stop, j'ai pu juste m'échapper pour faire quelques photos. Les gens, de tout âge (de 20 à 60 pour ma part), se montrent tous gentil et curieux. Je réponds de mon mieux et concrétise 2 installations dont une avec wubi (une première pour moi). J'espère avoir répondu à leurs interrogations. Je fais également de mon mieux pour ne pas casser du Microsoft, mais ce sont eux qui le font ;) On parle de Mandriva, de KDE/Gnome/Fluxbox, pas de sujets tabous, je discute même pas mal de l'esprit communautaire et du monde du libre. Et déjà arrive le moment de demander à tout le monde de terminer car il nous faut quitter les lieux. Pendant tout ce temps là, je rate les conférences, mais lorsque j'arrive à m'échapper pour photographier lionel, je vois une salle de 100 places remplie à fond. C'est donc un très grand succès de ce coté là aussi. On range le matos et on fait le point sur nos ventes de cd/t-shirts et aussi de nos nouveaux mugs en plastique recyclé et c'est là aussi une bonne journée pour l'association.

On termine la soirée dans un restaurant où l'ambiance chaleureuse nous fait passer de très bons moments et nous nous séparons en nous promettant de ne pas en rester là et de nous revoir rapidement pour une prochaine Ubuntu party... Un grand merci à tous ceux que j'ai rencontré et qui m'ont fait passer une excellente journée. À très bientôt !

dimanche, novembre 16 2008

Gravatar de CedynamixUbuntu ARM pour avril 2009 via Cedynamix

Canonical a annoncé officiellement qu’il mettrait à disposition des utilisateurs à partir d’avril 2009 (certainement le 13 jour de la sortie de Ubuntu 9.04 Jaunty Jackalope), une version de Ubuntu compiler pour l’architecture ARM. On parle de l’architecture ARMv7 composé des architectures Cortex-A8 et Cortex-A9. Les processeurs ARM sont utilisés dans des dispositifs portables comme les ultra-portables ainsi que dans une vaste gamme d’appareils légers qui permettent de se connecter à Internet. Mais c’est entre surtout un sérieux concurrent pour Intel qui domine actuellement le marché.

Le fait que Canonical décide de supporter la plate-forme ARM est tout à fait en harmonie avec la philosophie actuelle de Ubuntu qui est de se concentrer sur le “digital lifestyle” (mode de vie numérique) de ses utilisateurs, dans laquelle elle envisage une gamme de périphériques connectés entre eux de façon totalement transparente.

“C’est un développement naturel pour Ubuntu, poussés en plus par une forte demande de la part des fabricants utilisant une technologie ARM”, a déclaré Jane Silber, COO de Canonical. Unir la grande communauté des développeurs de logiciels libres pour travailler autour de la plate-forme ARM permettra de s’assurer une optimisation complète de la distribution Ubuntu élargissant par la même occasion le choix donné aux consommateurs recherchant le meilleur système d’exploitation possible en rapport avec leur mode de vie numérique.

Ubuntu, bien sûr, n’est pas le premier projet open source à travailler avec ARM - l’équipe du noyau Linux, le projet Debian, GNOME ou encore la communauté Mozilla ont publié des versions spécifiques et continuent de travailler sur les plateformes ARM, mais Ubuntu en suivant ce mouvement rajoute une corde de plus à son arc pour réaliser son projet d’offrir Ubuntu à tous peu importe la plateforme utilisée.

Je ne me rends pas bien compte de l’impact de cette nouvelle, car je ne vois pas la part que représente ARM sur le marché. Alors, un petit sondage ne fera pas de mal qui utilise des appareils équipés d’une architecture ARM ?

samedi, novembre 15 2008

Gravatar de GenerationLinuxTrucs et astuces pour Gnome. via Génération Linux

Ce billet a pour but de vous montrer quelques petits trucs pour Gnome.

Depuis Gnome 2.24 vous avez du remarquer qu'il y a une icône d'accessibilité dans la zone de notifications gnome. Pour l'enlever il faut aller dans :

Systeme > Préférences > Clavier > Accessibilité puis décocher la 1ere case ("Permettre l'activation et la désactivation des fonctionnalités d'accessibilité par des raccourcis clavier").

Cacher des fichiers sans les renommer : Il suffit de créer un fichier ".hidden" dans le dossier et d'entrer les noms des dossiers et fichiers, un par ligne. Il seront donc cachés sans avoir à être renommés.

Quelques raccourcis clavier :

Bureau

  • Alt-F1 : Ouvrir le menu principal
  • Alt-F2 : Lanceur d’applications

  • Ctrl+Alt+L : Verrouiller l’écran
  • Ctrl+Alt+Suppr : Quitter


Nautilus
  • Maj+Ctrl+N : Créer un nouveau dossier
  • Ctrl+T : Ouvrir un nouvel onglet
  • F2 : Renommer fichier ou dossier

  • Alt+Entrée : Propriétés fichier ou dossier

  • Ctrl+1 : Vue mode icônes
  • Ctrl+2 : Vue mode liste
  • Ctrl+3 : Vue Compacte
  • /!\ Dans Ubuntu il faut utiliser Shift+Ctrl !

  • Ctrl++ : Augmenter zoom
  • Ctrl+- : Diminuer zoom
  • Ctrl+0 : Taille normale
  • Maj+flèche droite : Ouvrir le dossier (mode liste)
  • Maj+flèche gauche : Fermer le dossier (mode liste)

  • Ctrl+A : Sélectionne tout
  • Ctrl+S : Sélectionne avec un motif
    Exemple *.jpg sélectionnera tous les fichiers se terminant par .jpg. "?" permet de désigner 1 caractère et 1 seul, alors que "*" permet de sélectionner 0 ou plus caractères.
  • Ctrl+H : Affiche les fichiers cachés

  • Ctrl+W : Ferme l'onglet en cours, si il n'y a qu'un onglet ferme la fenêtre
  • Ctrl+Maj+W : Ferme toutes les fenêtres Nautilus
  • Ctrl+R : Actualise les fenêtres Nautilus

  • Alt+flèche haut : Dossier parent (Navigation)
  • Alt+flèche gauche : Précédent
  • Alt+flèche droite : Suivant

  • Alt+Origine (la flèche en diagonale) : Dossier Personnel

  • Clic milieu sur un dossier : ouvrir dans un nouvel onglet.

Rendre le menu transparent :

Si vous utilisez Compiz Fusion vous pouvez avoir la transparence sur n'importe quel programme et donc le menu déroulant de gnome.

Ouvrez le gestionnaire de configuration de Compiz Fusion.

Puis allez dans Accessibilité => Opacity, Brightness et Saturation.

Dans Opacities, rajoutez une entrée et dans windows rentrez dropdownmenu et mettez une valeur entre 0 (transparent) et 100(opaque) pour régler l'opacité.

Changer l'écran de verrouillage (lock-screen):

Il est possible de changer l'apparence de l'écran de verrouillage de gnome :

Trouvez un thème sur gnome-look.

Pour l'installer tout est expliqué sur le site mais pour les anglophobes voila la procédure:

1. Décompressez les fichiers dans /usr/share/gnome-screensaver/.

Pour une archive .tar.gz : sudo tar -xvzf archive.tar.gz -C /usr/share/gnome-screensaver/

2. Ouvrez gconf-editor (Alt+F2, puis tapez gconf-editor ) et changez l'entrée apps/gnome-screensaver/lock_dialog_theme de 'default' par le nom du thème (précisé dans le README ou dans sur le site dans la procédure d'installation)

3. Appréciez!

Pour revenir au theme par defaut : remettez 'default' dans gconf-editor (étape 2).

Si vous souhaitez garder le thème par défaut, mais changer le fond d'écran du lock-screen il faut modifier l'image background-default.jpg qui se trouve dans /usr/share/pixmaps/background/gnome/

Pour la changer :

Sauvegarder l'image d'origine :

sudo cp /usr/share/pixmaps/background/gnome/background-default.jpg /usr/share/pixmaps/background/gnome/background-default.jpg.save

puis copier une autre image :

sudo cp /votre/image /usr/share/pixmaps/background/gnome/background-default.jpg

Et voila!

Pour revenir à l'image d'origine :

sudo cp /usr/share/pixmaps/background/gnome/background-default.jpg.save /usr/share/pixmaps/background/gnome/background-default.jpg

Gravatar de RespawnerRéalisation du paquet Debian pour notre application via Respawner

Lors du billet précédent, nous avons réalisé un générateur de mot de passe en Java avec une interface GTK+. Maintenant, nous allons enfermer tout ça dans un joli paquet Debian afin de diffuser et d’installer plus facilement notre application. Nous allons aussi en profiter de l’installation du paquet pour créer une entrée dans le menu GNOME, ce qui est toujours utile et plus sympa à voir.

Tout d’abord, nous allons commencer par modifier un peu notre programme. En effet, une fois installé, le chemin du dossier data ne sera pas le même que nous utilisions auparavant. Pour cela, on va faire simple. On va commencer par modifier le script shell permettant de lancer le programme. On commence par enlever son extension .sh qui ne sert pas à grand chose et qui va faire tâche une fois que ce script va se retrouver avec tous les autres déjà présents. Enfin on change les 2 premières lignes non commentées par celles-ci.
CLASSPATH=${CLASSPATH}:/usr/share/password-generator/data/gtk-4.0.jar
CLASSPATH=${CLASSPATH}:/usr/share/password-generator/passgenerator.jar


Maintenant, au tour des chemins qui se trouvent dans le code Java. Pour les modifier, on va créer une variable globale contenant le chemin, il ne restera ainsi qu’à concaténer le nom d’un fichier en cas de besoin. On ouvre alors le fichier PasswordGenerator.java. On ajoute tout de suite après la première accolade ceci.
public static final String DATA_PATH = "/usr/share/password-generator/data/";

On enregistre, puis on ouvre le fichier GtkInterface.java. On ajoute l’import suivant.
import static generator.PasswordGenerator.DATA_PATH;

On change la valeur du champ GLADE_FILE par celle-ci DATA_PATH + "PasswordGenerator.glade". Puis on cherche la ligne :
icon = new Pixbuf("./data/lock-logo.png");
Pour la remplacer par celle la.
icon = new Pixbuf(DATA_PATH + "lock-logo.png");

Il ne reste alors qu’à enregistrer.

Il faut maintenant compiler notre application. Pour ceci, on utilise le script Ant. Il faut donc que Ant soit installé (voir ce billet si ce n’est pas le cas). On se rend dans le dossier contenant le projet et on compile.
~$ cd workspace/PasswordGenerator
~/workspace/PasswordGenerator$ ant clean dist


On trouve alors un fichier passgenerator.zip dans le dossier build créé. On le récupère et le met dans notre répertoire perso. On en extrait tous les fichiers.
~$ unzip passgenerator.zip

Pour former un paquet Debian, il faut que l’on respecte une arborescence entre dossiers et sous-dossiers bien précise. Toujours dans le répertoire personnel, on crée le dossier password-generator.
~$ mkdir password-generator

Ce dossier doit contenir 2 sous-dossiers nommés respectivement DEBIAN et usr.
Commençons par nous intéresser au dossier DEBIAN et à son contenu. Il faut tout d’abord le créer et l’utiliser.
~$ mkdir password-generator/DEBIAN && cd password-generator/DEBIAN

A l’intérieur on va y déposer 3 fichiers : control, postinst et postrm.
Le fichier control permet de décrire le paquet : dépendances, description, nom, auteur et mainteneur du paquet… Voici son contenu pour nous.
Package: PasswordGenerator
Version: 1.0
Section: base
Priority: optional
Architecture: all
Depends: bash, sun-java6-jre
Maintainer: Guillaume Mazoyer <respawneral@gmail.com>
Description: Password generator written in Java and using GTK+.


Vous pouvez changer le nom du mainteneur du paquet, je ne vous en voudrais pas ^^. On remarque comme dépendances bash et sun-java6-jre (pour la JVM). On comprend vite comment ce fichier est utilisé une fois que l’on tente d’installer le paquet avec Gdebi.
Pour ce qui est de postinst et postrm, ce sont en fait 2 scripts. postinst est le script lancé après installation du paquet et postrm est le script exécuté après suppression du paquet. On va les utiliser entre autre pour créer le lanceur dans le menu GNOME et le supprimer. Dans la même veine, il est possible de créer les fichiers preinst et prerm qui correspondent aux scripts lancés avant installation et avant suppression.

Le fichier postinst va contenir ceci.
#!/bin/bash
LAUNCHER="/usr/share/applications/passgenerator.desktop"
touch $LAUNCHER
echo "[Desktop Entry]" > $LAUNCHER
echo "Name=Password Generator" >> $LAUNCHER
echo "Name[fr]=Générateur de mot de passe" >> $LAUNCHER
echo "Comment=Generate your passwords" >> $LAUNCHER
echo "Comment[fr]=Générez vos mots de passe" >> $LAUNCHER
echo "TryExec=passgenerator" >> $LAUNCHER
echo "Exec=passgenerator" >> $LAUNCHER
echo "Icon=gnome-lockscreen" >> $LAUNCHER
echo "Terminal=false" >> $LAUNCHER
echo "Type=Application" >> $LAUNCHER
echo "Categories=Utility;" >> $LAUNCHER
echo "MimeType=text/plain;" >> $LAUNCHER
echo "Password Generator successfully installed."


Et postrm lui contiendra ce code.
#!/bin/bash
LAUNCHER="/usr/share/applications/passgenerator.desktop"
rm $LAUNCHER
echo "Password Generator successfully uninstalled"


On crée le launcher et on le supprime ni plus ni moins.
A ce moment précis, les informations du paquet ainsi que le comportement d’installation et de suppression sont définis.

Il ne reste plus qu’à organiser correctement le contenu du dossier usr. Ce dernier va contenir 2 sous-dossiers nommés respectivement bin et share. A l’intérieur de bin, on mettre le script shell de lancement de notre programme (passgenerator). Le répertoire share lui va contenir un sous-répertoire nommé password-generator dans lequel on trouvera un dossier doc (contenant la documentation à réaliser comme vous le souhaitez), le dossier data et notre fichier JAR (passgenerator.jar). Ainsi lors de l’installation de notre paquet, le contenu de usr/bin ira dans /usr/bin (du système) et celui de usr/share ira de la même façon dans /usr/share (du système. On doit obtenir une arborescence comme celle-ci.

On n’oublie pas de rendre exécutable les scripts.
~/password-generator$ chmod 755 DEBIAN/post*
~/password-generator$ chmod 755 usr/bin/passgenerator


Il ne nous reste plus qu’à “packager” ceci. Pour cela, on se place dans le répertoire personnel. Et on utilise dpkg-deb.
~/password-generator$ cd ~
~$ dpkg-deb --build password-generator


On obtient alors le fichier password-generator.deb. On peut l’installer grâce à Gdebi ou encore avec la commande suivante.
~$ sudo dpkg -i password-generator.deb

Gravatar de RoozeecLes CD Ubuntu 8.10 arrivent dans les boites aux lettres via Roozeec

Ca y est, les CD Ubuntu 8.10 arrivent dans les boites au lettres en ce moment.

Les pochettes ont changé de design avec notamment la version Ubuntu écrit en très gros caractère contrairement aux autres éditions.

Merci Ubuntu.

vendredi, novembre 14 2008

Gravatar de Asher256Wana : configurer le modem LG LDU-800 sous GNU/Linux via Asher256

BaynJ'ai reçu plusieurs courriels à propos de la configuration du LG LDU 800, le modem 3G de Wana et j'ai décidé d'écrire cet article au lieu d'envoyer la même réponse à tous ceux qui m'ont contactés !

Comme le driver est disponible d'office sous GNU/Linux, le LG LDU-800 est automatiquement détecté ! La méthode pour le configurer afin qu'il se connecte à l'Internet de Wana est assez simple : il vous suffira de modifier un fichier de configuration (celui de wvdial), comme ce qu'on a fait il y a quelques mois avec le Huawei E-325 de Wana.

Prêts ? Alors allons-y par étapes !

Attention : même si configurer le LG LDU-800 de Wana pouvait être résumé en trois lignes, j'ai préféré être un peu plus exhaustif, pour faciliter la compréhension des manipulations au plus de personnes que possibles ;-) .

1. Devenez l'administrateur de votre système GNU/Linux

Toutes les commandes qu'on va lancer dans ce tutoriel se feront en tant qu'administrateur (root), dans un terminal (xterm, gnome-terminal, konsole, etc.).

Donc lancez un terminal et basculer en mode root avec sudo ou su.

Si vous êtes dans une distribution comme Ubuntu :

sudo -s

Sinon, lancez celle-ci :

su -l

(une fois votre mot de passe root accepté, vous pouvez vérifier si vous êtes administrateur avec la commande : "id -u")

2. Modifiez le fichier de configuration de wvdial, pour ajouter les informations du LG LDU-800 de Wana

Ouvrez le fichier /etc/wvdial.conf avec votre éditeur de texte préféré (gedit, kwrite, nano, pico, vi, etc.). Dans notre cas, nous utiliserons nano :

nano /etc/wvdial.conf

Après cela, collez dans ce fichier ce contenu :

[Dialer Wana]
Modem = /dev/ttyACM0
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analogic Modem
ISDN = 0
Phone = #777
New PPPD = yes
Username = wana
Password = wana
Baud = 460800

NB : Par défaut, tous les clients de Wana ont le nom d'utilisateur et le mot de passe "wana". Si ce n'est pas le cas, n'oubliez pas de modifier les lignes Username = wana et Password = wana.

3. Connectez vous enfin à Wana, grâce au LG LDU 800 !

Une fois que le contenu du fichier /etc/wvdial.conf sera sauvegardé, lancez la connexion Internet avec la commande :

wvdial wana

Si tout se passe bien, vous serez connecté après quelques secondes !

NB : Vous pouvez arrêter la connexion avec les touches Ctrl et C.

Astuce : les déconnexions intempestives

Si vous êtes dans une zone où il y a beaucoup trop de déconnexions, vous pouvez faire en sorte que la connexion du LG LDU 800 se refasse après chaque déconnexion, en lançant cette commande, au lieu du simple "wvdial wana" :

while true; do wvdial wana; done

Soucis les plus courants

« wvdial lance la connexion et me donne une adresse IP mais je n'arrive toujours pas à aller sur des sites ! »

Cela vient probablement de votre DNS, qui n'a pas encore été défini. Pour corriger cela, mettez dans le fichier /etc/resolv.conf :

nameserver 212.217.0.1

Gravatar de traafAPRIL : Campagne d'adhésion 2008 via traaf

En tant que membre de l'April (Association pour la Promotion et la Recherche en Informatique Libre) depuis presque un an maintenant, je me dois de relayer la nouvelle campagne d'adhésion.



L'April, c'est quoi ?

Si l'on se réfère à la page http://www.april.org/fr/association/,

l'April est depuis 1996 un acteur majeur de la démocratisation et de la diffusion du logiciel libre et des standards ouverts auprès du grand public, des professionnels et des institutions dans l'espace francophone. Elle veille aussi, dans l'ère numérique, à sensibiliser l'opinion sur les dangers d'une appropriation exclusive de l'information et du savoir par des intérêts privés.

L'April a pour objectifs de :

  • Promouvoir le logiciel libre dans toutes les sphères de la société ;
  • Sensibiliser le plus grand nombre aux enjeux des standards ouverts et de l'interopérabilité ;
  • Obtenir des décisions politiques, juridiques et réglementaires favorables au développement du logiciel libre et aux biens communs informationnels ;
  • Favoriser le partage du savoir et des connaissances.

L'April, c'est aussi :

L'April, c'est qui ?

L'April, c'est plus de 2500 adhérents. L'objectif (très ambitieux) de cette campagne est d'atteindre les 5000 adhérents avant la fin de l'année, c'est pourquoi je la relaie.

Actuellement, le compteur est à :

http://www.april.org/barre-progression/progbar.php

Au moment de la rédaction de ce billet, 2557 individus, 191 entreprises, associations et organisations ont déjà adhéré. Comme vous le voyez, l'essentiel des troupes est composé de particuliers, comme vous, comme moi, vous percevrez le message subtilement adressé à votre inconscient.

Un plus grand nombre d'adhérents permettra à l'April, qui à déjà su s'imposer comme un interlocuteur incontournable, d'accentuer sa légitimité et ses moyens d'action.

Promouvoir et soutenir le logiciel libre

Ils en parlent :

Au passage :

Pas encore convaincu par les logiciels libres ?

Si vous êtes Breton, Arnaud de Brest organise avec le soutien d'INFINI, FINIX, Archipel du libre et le PLM guérin une install-party le 22 novembre de 10h à 19h. C'est l'occasion de découvrir le célèbre concurrent de windows le système Gnu/LINUX ainsi que les logiciels libres .
À 14h, ils vous présenteront la suite éducative Gcompris.
À 15h, ils vous proposeront de découvrir quelques logiciels pour gérer la photo.
Vers 16 h, ils vous expliqueront la philosophie des logiciels libres
et enfin vers 17h venez avec vos questions pour le spip-apéro. Pendant toute la journée, vous pouvez venir avec votre pc pour vous faire installer le système GNU/linux.

Ci-joint l'affiche de l'évènement.

brest install party 22 novembre 2008

Gravatar de GenerationLinuxPrésentation de Xfmedia, un lecteur multimedia très léger via Génération Linux

Je vais vous présenter un lecteur audio assez peu connu mais tellement pratique, j'ai nommé Xfmedia. Xfmedia est réputé pour sa faible consommation en ressources (mémoire et CPU). Je le comparerais également aux lecteurs plus connus afin de voir le réel gain de performances.


I. Présentation

J'utilise actuellement une machine assez ancienne (amd 1800+, 512mo de ram) et lance (par habitude) beaucoup de programmes à la fois (Firefox avec toujours beaucoup d'onglets, Gimp, Transmission, OpenOffice, ...). J'aime travailler (ou jouer) avec de la musique, je lance donc, en plus de tout ces programmes, un lecteur audio pour écouter mes albums préférés (auparavant j'utilisais Totem).

Je ne vous fait pas de dessin, il arrive que mon ordinateur rame à mort... Après être passé sous Xfce, je me suis dit, je vais tester un lecteur audio plus léger afin d'améliorer quelque peu les performances de ma machine. Après quelques recherche, je tombe sur un logiciel qui me semble parfait dans mon cas : Xfmedia. Pourquoi parfait ? Parce qu'il est réputé pour être très léger et à été conçu pour Xfce... Donc je me suis dit, ok je l'essaye !

Xfmedia est un lecteur multimédia léger et simple développé pour l'environnement de bureau Xfce. Il est basé sur le moteur Xine et interfacé en GTK+ ; il s'intègre donc très bien dans les environnements GNOME et Xfce. Xfmedia est construit de façon à gérer et jouer très simplement des listes de lecture de fichiers musicaux et vidéo.
Ce petit logiciel n'intègre pas de fonctionnalité avancée. Il se contente jouer des fichiers multimédia, de gérer des listes de lecture, de même que de modifier les meta-tags des fichiers musicaux.
(source doc Ubuntu)

Je vous précise que je n'ai pas testé la fonction vidéo, pas par flemme mais j'utilise pour cela VLC qui me convient très bien.

II. Installation

C'est plutôt simple, il vous suffit de taper cette commande dans un terminal :

apt-get install xfmedia

Cela installera les packages xfmedia ainsi que xfmedia-dev.


Pour ceux qui veulent pouvoir le gérer avec une télécommande, lancez plutôt cette commande :

apt-get install xfmedia xfmedia-remote-plugin

Je n'ai malheureusement pas de télécommande et ne pourrais donc pas tester ce plugin.


III. Utilisation et paramétrage de base

Sélectionnez le ou les fichiers que vous souhaitez lancer puis clic droit, Ouvrir avec un autre programme (de mémoire) et choisissez Xfmedia.

C'est tout, Xfmedia se lance avec la playlist des fichiers précédemment sélectionnés.

Notez l'interface simpliste du lecteur : les traditionnels boutons de navigation, morceau précédent et suivant, play/pause, stop. Les boutons du bas gèrent la playlist et sont, dans l'ordre : Ajout d'un fichier dans la playlist (avec beaucoup de choix d'ajout, voir illustration ci-dessous), Suppression d'un fichier de la playlist, monter ou descendre un élément, lecture aléatoire, lecture en boucle, commencer une nouvelle playlist, ouvrir une playlist et enregistrer la playlist existante.

C'est tout pour ce qui est de la lecture des fichiers audio.

Maintenant, vous voyez sur mes screenshots que dans ma playlist s'affiche les noms des fichiers tels qu'ils sont dans Thunar.
Je dis ça car, par défaut, ce n'est pas cela qui s'affiche. Par défaut, c'est le nom de l'auteur et le titre de la musique qui s'affiche (via les tags des fichiers).
Cela ne me plaisait pas du tout car j'ai beaucoup de fichiers musicaux sans tag. Il m'était donc impossible de voir quelle chanson était en train de tourner et quelle était la suivant... Suis-je bien clair ?

Pour simplifier, un petit screenshot :

Pour modifier l'affichage de la playlist, rendez-vous dans le fichier de configuration de Xfmedia : ~/.config/xfmedia/settings.xml

La ligne à modifier est celle-ci :

<setting name="playlist_format" type="1" value="(%p) %t" />

que vous devez remplacer par celle-ci :

<setting name="playlist_format" type="1" value="%f" />


IV. Comparaisons

Le but original de cette "migration" était d'économiser quelques ressources pour ma vieille machine. Voici donc un petit comparatif de Xfmedia avec les deux lecteurs multimédias les plus utilisés (enfin je pense) : Totem et Rhythmbox.

J'ai testé la consommation CPU et mémoire grâce au logiciel top. Voici les résultats (c'est une moyenne):

  • Totem
    • Consommation CPU : 17%
    • Consommation mémoire : 8%
  • Rhythmbox
    • Consommation CPU : 6%
    • Consommation mémoire : 8.5%
  • Xfmedia
    • Consommation CPU : 2%
    • Consommation mémoire : 6%
  • Mplayer
    • Consommation CPU : 5%
    • Consommation mémoire : 5%
Les chiffres parlent d'eux mêmes :)


Ainsi se termine ce test, j'espère vous avoir fait envie d'essayer ce petit logiciel. A bientôt
jeudi, novembre 13 2008

Gravatar de Poupoul2Grand Public, non merci via Poupoul2

On voit régulièrement fleurir, dans les forums consacrés au Logiciel Libre, des souhaits de voir ce même logiciel obtenir une grande reconnaissance de la part du Grand Public. Conséquemment ou concomittamment, on voit également apparaître tous les reproches du monde adressés aux constructeurs, aux distributeurs ou aux vendeurs qui ne joueraient pas le jeu en n'acceptant pas, qui l'affichage clair des prix des licences Windows, qui en ne vendant aucun matériel nu, qui encore en ne vendant que du Windows et pas de GNU/Linux, qui en étant finalement de véritables salauds fondus dans le système marchand et roulant pour leur seul intérêt et pas pour celui de ceux qui veulent bien les écouter.

Par reconnaissance, on entend large diffusion et large adoption. Pour ce qui est de la diffusion, c'est déjà le cas pour certains logiciels : Firefox, avec ses défauts réels ou supposés, en est le digne représentant, comme d'autres tels que Thunderbird, OpenOffice.org ou VLC. Pourtant, certains autres ne parviennent pas à percer et on se demande bien pourquoi. Les distributions GNU/Linux telles qu' Ubuntu, Fedora ou Mandriva, sont aujourd'hui relativement simples à installer. Elles bénéficient d'une documentation très importante et qui s'enrichit jour après jour, couvrent tous les besoins fonctionnels de ce même Grand Public, sont faciles à personnaliser et à utiliser. On n'y arrive pas ? Ce ne sont pas les install parties, les sites d'entraide tels que Parrains Linux qui manquent. Avec un tout petit effort, on pourrait même en arriver à se rencontrer en vrai (IRL, comme dirait l'autre). Même s'il arrive qu'on rencontre des problèmes à l'installation ou à l'utilisation, force est de constater qu'on ne peut pas dire si le volume de problèmes est plus important avec une distribution GNU/Linux qu'avec Windows ou MacOS. Cette difficulté est d'autant plus grande que ce même Grand Public, tout englué dans les propositions tape-à-l-oeil des vendeurs, n'a sans doute jamais installé Windows (qui se révèle parfois retors pour ceux qui ont eu à tenter l'expérience un jour).

La vente liée et les phénomènes associés sont des réponses insuffisantes. Aujourd'hui, de nombreuses machines sont équipées de distributions GNU/Linux en standard. C'est le cas chez Dell, mais aussi pour un très grand nombre de netbooks. Pour autant, peut on estimer que l'adoption de GNU/Linux est satisfaisante ? Assurément non. Tout d'abord parce que le Grand Public est attiré peut-être en premier lieu par ce qu'il voit. Or les machines équipées de distribution GNU/Linux ne sont pas visibles. Le mode de développement collaboratif et communautaire n'y est jamais présenté. Rendez-vous naïvement sur le site de Dell, comportez vous en je-n'y-comprends rien et assurément, vous n'arriverez jamais sur les pages Dell consacrées à Ubuntu. Et quand bien même vous y parviendriez, Dell vous proposera, dans sa grande bonté, un ordinateur de bureau ou un portable équipé du système d'exploitation Microsoft Windows Ubuntu 8.04 (Oui, oui vous avez bien lu). Consultez les magazines dans lesquels des Asus EEEPC ou des MSI WInd sont vendus. Immanquablement, on vous vend du MS Windows Vista Family Premium Mieux qu'avant je-t-embrouille dernière-génération, avec des pépites qui vont décupler votre créativité et alléger votre portefeuille mais ça on ne vous le dit pas, ou éventuellement du Linux. "Du quoi ? Encore un truc qui vient de Chine". Euh ben non, Mandriva, c'est fait chez toi, Grand Public. Ubuntu et Fedora, c'est aussi documenté chez toi par ton voisin, Grand Public. Mais c'est certain, tu ne vois que Linux, alors qu'on te montre toute la magie que tu vas pouvoir tirer de cette merveille noire sur laquelle est inscrit "Vista capable" (mais pas autre chose), et le changement que cette belle mécanique va t'offrir. Ta vie va changer grâce à ça, Grand Public. Ta liberté va encore en prendre un coup au passage.

La vente liée est donc quand même une explication, non pas parce qu'elle est imposée à l'acheteur, mais parce qu'on lui fait briller les yeux, qu'il veut bien l'accepter et qu'il remet ses lunettes de soleil en disant "Boudiou, ça brille". Personne ne met jamais un pistolet sur la tempe de l'acheteur au moment de signer le bon de commande. Certains "révolutionnaires" (encore des beatniks) vont se rebeller en clamant haut et fort que c'est illégal, mais bon, c'est une péripétie pour le vendeur qui finira de toute manière par vendre sa machine. Le remboursement de la licence qu'il vient d'imposer à son acheteur n'est pas son affaire. "Signez là et voyez le constructeur pour le reste mon bon Môssieur, moi, j'ai mon chiffre à faire". Celui qui ne se rebelle pas parce qu'il n'a pas conscience de l'acte qu'il vient de réaliser repartira heureux chez Môman avec sa boite noire sous le bras. Et il n'a conscience de rien le bougre : Ni qu'on vient de lui faire avaler une couleuvre, ni que quotidiennement, on continuera à se moquer de lui, "dans son intérêt exclusivement", en utilisant ses données ou ses historiques de navigation ou son portefeuille "pour mieux répondre à ses attentes", Aux attentes de qui ? De l'acheteur ou de celui qui espère bien vendre par millions sa prochaine version, toute pourrie et liberticide soit elle ?

LA solution n'est pas dans la fin de la vente liée, même si ce phénomène est révoltant pour ceux qui savent déjà. Le salut ne passe que par une prise de conscience du Grand Public. Non pas parce que tous ces quidams vont se mettre à développer, documenter et forumer joyeusement, mais simplement parce que ce revirement de situation imposera aux constructeurs et aux vendeurs une autre vision, celle de leurs clients. Qu'on vende alors gaiement du GNU/Linux et qu'on en profite pour financer des projets libres qui en ont besoin et qui sont construits au bénéfice de leurs utilisateurs, sans tape-à-l-oeil (2 fois dans le même billet, ça y est, je suis aveugle). Ces mêmes constructeurs se frotteront alors les mains de voir partir comme des petits pains des machines sur lesquelles ils n'auront été obligé de payer aucune dîme à qui que ce soit, mais pour lesquelles ils auront réalisé un investissement. Car financer un projet libre, c'est investir, au contraire d'une taxation de fait pour avoir le droit d'utiliser (en faisant là où on t'a dit de faire) un logiciel qui n'a de révolutionnaire que le nom, et qui se moque de son utilisateur. Le problème essentiel reste donc que ce même Grand Public se sent bien dans les discours qu'on lui sert et les belles images qu'on lui montre en le poignardant dans le dos, et qu'il ne veut surtout pas changer de discours parce que ses oreilles sont formatées pour l'entendre et que cette musique est belle et confortable (Quelle proportion d'utilisateurs de Firefox l'ont adopté parce qu'il est libre et pas parce qu'il est gratuit et bourré d'extensions tout aussi financièrement accessibles ?)

Je suis en colère ce soir. Peut être parce que j'ai vendu ma moto et que ça m'attriste. Peut être aussi parce que j'ai parfois l'impression d'être Alonso Quijano face à une forêt amazonienne de moulins (sauf que celle ci est en expansion, au contraire de celle là), des moulins remplis de bêtise, d'égoïsme et d'individualisme. Demain je me réveillerai pour constater que Panurge a encore de beaux jours devant lui. Je ferai une bise sur le front de Sancho Panza, et j'enfourcherai mon canasson...

Gravatar de RespawnerRéalisation d'une application pour son bureau GNOME via Respawner

Lors d’un de mes précédents billets, j’avais expliqué brièvement comment réaliser une application pour l’environnement GNOME avec Glade et l’API java-gnome. Pour cela, nous avions réalisé une application très simple avec un bouton et un label. Aujourd’hui nous allons construire une application complète et vraiment “utile”. Pour ne pas trop compliquer ce billet, j’ai décidé donc que nous allions faire un générateur de mot de passe dont l’algorithme n’est pas très complexe. Voyons ceci dès maintenant.

1 - Utilisation de java-gnome

Je ne vais pas redétailler cette partie, si certain l’on raté, l’explication est dans ce billet.

2 - Le projet

J’utilise Eclipse pour mes projets en Java depuis mes débuts. Je vous propose donc de l’utiliser aussi. Voici l’arborescence du projet après fin du code.

Vu que je ne vais pas détailler chaque partie de mon code je vous propose le téléchargement du projet directement grâce au fichier PasswordGenerator.tar.bz2.

3 - Algorithme du générateur de mot de passe

L’algorithme que l’on va utiliser pour générer le mot de passe n’est pas très complexe à comprendre. Le but est de sélectionner un caractère aléatoirement dans une liste et de l’ajouter à la chaîne de caractères composant le mot de passe. On veut que le mot de passe soit un minimum modifiable, par conséquent, on va pouvoir via notre interface GTK+ sélectionner les types de caractères que l’on souhaite. On en distingue 4 :

  • les majuscules,
  • les minusucules,
  • les chiffres,
  • les caractères spéciaux.

Pour pouvoir réaliser ceci, on ne va donc pas se contenter d’une seule liste réunissant tout l’ensemble mais de 4 listes (en réalité des chaînes de caractères pour ne pas se compliquer la tâche) bien distinctes comportant chacune un type de caractères. Chose important, le nombre aléatoire que l’on va obtenir ne doit pas dépasser la taille de la liste. C’est à dire que si la liste comporte 26 caractères, il ne faut pas tomber sur un nombre supérieur à 26. Pour cela, on va réaliser notre propre méthode de génération de nombre aléatoire en utilisant ce que l’API nous offre déjà. Ce n’est pas très complexe, je vous laisse regarder le contenu du package nommé random.

Maintenant, voici l’en-tête de notre méthode de génération du mot de passe.
    public static String randomPassword(int length, boolean[] use)
Le premier argument, length, qui est un entier, correspond à la taille du mot de passe donc au nombre de caractères qu’il contiendra. Le deuxième argument est un tableau de booléens. Plus précisément, un tableau de 4 booléens qui va nous permettre de savoir quoi mettre dans le mot de passe. Le premier booléen correspond aux chiffres, le deuxième aux majuscules, le troisième aux minuscules et le dernier aux caractères spéciaux.

    StringBuilder password = new StringBuilder();
    String lowerChar = "azertyuiopqsdfghjklmwxcvbn";
    String upperChar = "AZERTYUIOPQSDFGHJKLMWXCVBN";
    String digits = "0123456789";
    String specialChar = "&~#{([-|_\\^@)]=}$%*!:/;.?,<> ";

Voici les suites de caractères à utiliser ainsi que la déclaration de la chaîne password qui va contenir le mot de passe. On utilise un StringBuilder et non un String basique car il va y avoir plusieurs opérations d’ajout d’un seul caractère c’est donc beaucoup plus propre de le faire ainsi que par des concaténation de chaînes.

    for (int i = 0; i < length; i++) {
        int rnd = -1;
        int charSet = Random.nextInt(4);

        if (!use[charSet]) {
            i--;
            continue;
        }
    ...
    }

Voici la boucle qui va générer le mot de passe. On initialise une variable qui s’incrémentera jusqu’à obtenir la valeur de la taille du mot de passe voulue. L’entier nommé rnd correspond à la valeur du nombre aléatoire utilisé pour choisir le caractère et l’entier nommé charSet va servir à sélectionner le type de caractères à utiliser. Ici un nombre entier compris entre 0 et 3 (inclus, le 4 est exclu). Le test avec la condition (!use[charSet]) permet de ne pas utiliser un type de caractères dans le cas ou on n’en voudrait pas. En gros, si la variable charSet prend une valeur qui permettra de sélectionner les chiffres mais que l’on ne veut pas de chiffres, le on rentrera dans le if qui va décrémenter i (pour annuler “l’effet” de l’itération) et lancer une nouvelle itération avec le mot-clé continue.

    switch (charSet) {
        case 0:
            rnd = Random.nextInt(digits.length());
            password.append(digits.charAt(rnd));
            break;

Ici, selon le type de caractères, on va sélectionner le caractère qui va bien et l’ajouter dans le mot de passe. Pour cela, on choisit un nombre compris entre 0 et la taille de la chaîne contenant le caractère puis on l’ajoute. Le case 0 correspond au cas des chiffres, on retrouve d’autres case pour les majuscules, minuscules et caractères spéciaux.

Enfin, après avoir itérer autant qu’il a fallut, on retourne le mot de passe sous forme de String. Rappelez-vous dans notre en-tête de méthode, on a bien spécifier que notre méthode retournait une variable de type String.
    return password.toString();

Vous pouvez retrouver tout ce code (en entier c’est mieux) dans le fichier Password.java.

4 - Réalisation de l’interface GTK+

Pour ce qui est du design même de l’interface, on ne va pas s’embêter et on va utiliser Glade, un outil dans j’ai parlé plusieurs fois et qui permet de réaliser très simplement son interface. Pour ce qui est de la fenêtre que l’on va faire on va gagner du temps et utiliser directement une boîte de dialogue qui comporte déjà 2 parties utiles. A savoir, une partie vide ainsi que une spécialement faite pour y mettre des boutons. Réalisons donc une interface ressemblant à ceci, avec une arborescence identique à celle proposée sur l’image ci-dessous. Le fichier Glade est disponible dans l’archive et se nomme PasswordGenerator.glade.


Une fois l’interface réalisé, il faut maintenant l’exploiter avec le code Java et lui faire réaliser les actions que l’on souhaite. Tout d’abord, qu’est-ce que l’on voit sur cette interface GTK+ ? On remarque qu’il y a 4 checkboxs correspondant à l’utilisation (case cochée, par défaut) ou non (case décochée) des types de caractères. On voit aussi une barre pour choisir la taille du mot de passe (valeur par défaut 8). On sait tous qu’un vrai mot de passe se compose d’au moins 8 caractères avec alternance majuscules, minuscules, chiffres et caractères spéciaux. Enfin, il y a 3 boutons, un bouton Quitter (qui veut tout dire), un Actualiser qui va permettre de générer le mot de passe (qui se situera dans la champ de texte) et un bouton Copier pour copier le mot de passe dans le presse-papier. Tous ces boutons sont des boutons “basiques” dont l’icône, le label et le mnemonic sont déjà définis. Nous allons donc voir seulement les actions associées à ses boutons pour le reste il vous suffira de voir le code ce n’est pas très complexe et il y a des commentaires.

Commençons par le bouton Quitter. Ce dernier a pour effet de terminer le programme. Voilà comment on code ceci.
    // Exit button
    Button exitButton = (Button) _glade.getWidget("exit_button");
    exitButton.connect(new Button.Clicked() {
        @Override
        public void onClicked(Button source) {
            Gtk.mainQuit();
        }
    });

On récupère l’élément bouton et au clic sur ce bouton on applique l’action Gtk.mainQuit() qui termine la boucle lancée par Gtk.main().

Après ceci, occupons-nous du bouton Actualiser qui lancera la génération du mot de passe. Idem on récupère le bouton mais au clic on lui applique une autre méthode que l’on a créé auparavant.
    // Refresh button
    Button applyButton = (Button) _glade.getWidget("apply_button");
    applyButton.connect(new Button.Clicked() {
        @Override
        public void onClicked(Button source) {
            GtkInterface.this.generatePassword();
        }
    });

La méthode generatePassword() va elle vraiment se charger de récupérer un mot de passe et d’actualiser le champ de texte de l’interface.
    private void generatePassword() {
        boolean[] checks = { _digitCheck.getActive(), _upperCheck.getActive(),
                _lowerCheck.getActive(), _specialCheck.getActive() };
        int length = (int) _lengthScale.getValue();

        if (!checks[0] && !checks[1] && !checks[2] && !checks[3])
            this.errorDialog(Languages.ERROR, Languages.CHECKBOX_ERROR);
        else {
            String password = Password.randomPassword(length, checks);
            _passwordEntry.setText(password);
        }
    }

On récupère la longueur du mot de passe. Et là un test, si on a décoché toutes les cases, on signale une erreur à l’utilisateur via une fenêtre spéciale appelée par la méthode errorDialog(String title, String text).

Pour finir, on définit l’action du bouton Copier. On va bien entendu copier le mot de passe dans le presse-papier dans le but de le coller plus tard bien entendu.
    // Copy button
    Button copyButton = (Button) _glade.getWidget("copy_button");
    copyButton.connect(new Button.Clicked() {
        @Override
        public void onClicked(Button source) {
            GtkInterface.this.copyToClipboard(_passwordEntry.getText());
        }
    });

C’est la méthode copyToClipboard(String text) qui va copier le contenu du champ texte dans le presse-papier si bien entendu l’environnement le supporte mais ça ne devrait pas poser de problème. Voici le contenu de cette méthode.
    private void copyToClipboard(String password) {
        try {
            StringSelection selection = new StringSelection(
                    password == null ? "" : password);
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
                    selection, null);
        } catch (IllegalStateException e) {
            this.errorDialog(Languages.ERROR, Languages.COPY_ERROR);
        }
    }


N’oubliez pas surtout de regarder tous les autres fichiers pour comprendre le code et tous les appels de méthodes. Et normalement, après compilation (via le script Ant), Il ne reste qu’à dézipper le fichier .zip généré, donner les droits d’exécution au script shell et le lancer (on peut aussi utiliser le Run de Eclipse). Après tout ceci, on obtient notre joli générateur de mot de passe sans aucun problème.
Si vous avez des questions, besoin de plus d’explication, n’hésitez pas à demander.