ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

Planet Ubuntu-fr - Puf

Fil des billets

mercredi, janvier 27 2010

Gravatar de KagouYahoo sponsorise Canonical via Kagou

Yahoo sponsorise Canonical, le résultat en est que le moteur par défaut qui sera installé sous Firefox ainsi que la page d'accueil de ce même navigateur utiliseront le moteur de recherche de Yahoo par défaut à la place de celui de Google. Cela a été annoncé par Rick Spencer qui précise que quelques clicks suffiront à remettre Google par défaut et que cet accord va emmener une rentrée d'argent qui servira à payer les développements d'Ubuntu.

La question que je me pose est celle-ci : Ubuntu à reçu l'accord de Mozilla afin de distribuer le navigateur avec son icône et son nom, c'est à dire Firefox (ce qui n'est pas le cas de Debian). Mozilla a signé un accord afin que ce soit Google par défaut sous Firefox. Donc au final, Mozilla ne va-t-elle pas remettre en cause son autorisation d'utiliser la marque Firefox dans la distribution Ubuntu ?

jeudi, janvier 21 2010

Gravatar de CreaoneUtiliser bpython au sein de django pour Ubuntu via Creaone

Django logo bugSuite au commentaire de Narbonne sur l'article d'hier "Quelques outils utiles pour django" je livre aujourd'hui la rapide manipulation permettant d'utiliser bpython avec django. Bpython est un terminal python avancé. En temps réel il colore, indente, propose les méthodes liées aux objets courants, via l'introspection. Il contient un historique, et des commandes rapides pour enregistrer et "pastebiner" le contenu du terminal sans le quitter. Bref on gagne du temps.

Attention, l'ensemble des manipulations qui vont suivre peuvent rendre votre système d'exploitation Ubuntu instable. L'utilisation du compte admistrateur (commande sudo...) suscitent des risques pour lequel je décline toute responsabilité.

Installer bpython dans Ubuntu

Il existe trois méthodes, je vous livre ici la plus rapide, la plus simple, et la plus sûr pour votre système:

  • Depuis un terminal, tapez : sudo aptitude install bpython

Utiliser bpython dans django

  • Créer dans votre dossier personnel le fichier ~/.pythonrc et placer dans celui-ci :
try:
  from django.core.management import setup_environ
  import settings
  setup_environ(settings)
  print 'Importation de la configuration django'
  try:
    exec_strs = ["from %s.models import *"%apps for apps in settings.INSTALLED_APPS ]
    for x in exec_strs:
      try:
          exec(x)
      except:
          print 'Echec de l'importation pour %s' %x
    print 'Importation des modèles django'
  except:
    pass
except:
  pass
  • Editer, toujours depuis votre dossier personnel, le fichier /.pythonrc@@
  • Enfin relancer votre terminal (un onglet de guake dans mon cas)

bpython pour django

Via cette manipulation, bpython devient une alternative très intéressante vis à vis du couple "shell_plus + ipython".'' Billet conçu d'après l'article Using python shell ..''

EDIT: Sur IRC , Alexis propose le snippet bpython

mercredi, janvier 20 2010

Gravatar de CreaoneQuelques outils utiles pour django sous Ubuntu - "Debugging" via Creaone

Django logo bugTravaillant désormais depuis plus de neuf mois avec le framework django sur le prochain logiciel Opquast, je me permets, aujourd'hui, de fournir très modestement quelques retours d'expérience. Naturellement, toutes les étapes, les logiciels présentés ci-dessous sont compatibles avec la distribution Ubuntu. Pour MacOsX de simples adaptations semblent suffisantes, enfin pour Windows je vous laisse canoter. Cet article présente l'ensemble des outils me permettant de "débugger", tester plus rapidement du code "django / python". Attention, l'ensemble des manipulations qui vont suivre peuvent rendre votre système d'exploitation Ubuntu instable. L'utilisation du compte admistrateur (commande sudo...) suscitent des risques pour lequel je décline toute responsabilité.

Le terminal python de base

De base, Django fournit un outil, certes basique mais ô combien utile, le "TERMINAL". Ce dernier se lance via la commande python manage.py shell, uniquement si django est installé . Via l'interpréteur intéractif, le shell ou terminal, vous pouvez tout tester, instanciation de classe, concaténation de chaine, boucle for, conditions... Très rapidement on se rend compte qu'il manque : la coloration syntaxique pour s'y retrouver, un historique des commandes précédemment tapées, les bons imports initiaux, l'indentation automatique, la complétion. Bref on est face au bon vieux terminal type MS-DOS (allez, ...en un peu mieux).

Installation ipython

Il manque l'indentation automatique, l'historique, la complétion des objets, la coloration, aucun problème installez ipython via synaptic ou via la bonne vieille commande habituelle sudo aptitude install ipython. Aucune configuration supplémentaire l'interpréteur python est automatiquement "amélioré" tout comme l'interpréteur django, en effet ce dernier repose sur celui de python.

Mise à jour de django shell vers django shell_plus

  1. Télécharger le pack contenant shell_plus à l'adresse django-command-extensions
  2. Dézipper l'archive précédemment récupérés
  3. Via un terminal, tapez la commande sudo python setup.py install (cela fonctionne si django a été installé de la même manière, ou est situé dans /usr/local/lib/python2.6/dist-packages/)

Shell_plus

Au lancement de la commande l'ensemble des modules déclarés dans votre fichier de configuration settings.py sont automatiquement chargés, voir screenshot ci-dessus. On gagne un temps incroyable

Connaître les attributs et les méthodes d'un objet

Cette solution est très simple, mais pour l'instant je n'ai pas trouvé mieux.

  1. Démarrez un terminal django : python manage.py shell_plus
  2. Instancier votre objet : article = Article()
  3. Saisissez article. puis appuyer sur la touche "Tabulation de votre clavier", le terminal liste ainsi l'ensemble des attributs, méthodes disponibles

Shell plus , listing des attributs

Guake : Un terminal toujours sous la main

Enfin pour aller plus loin, je vous renvoie à l'installation de l'excellent terminal guake via sudo apt-get install guake. Guake via le raccourci "F12" est disponible depuis n'importe quel bureau, hautement pratique, surtout si comme moi, vous utilisez plusieurs bureaux.

dimanche, janvier 10 2010

Gravatar de Rom1Installer une application .apk sur Android à partir d’un PC via ®om

J’expliquais, lors de mes premières impressions d’Android 2 sur le Motorola Milestone, qu’il était impossible d’installer un fichier .apk sans accepter les conditions d’utilisation du market ni configurer un compte gmail.

C’est en fait possible, grâce à l’outil adb du SDK Android, à partir la connexion USB de l’ordinateur.

Configurer le téléphone

Pour que l’outil d’installation puisse fonctionner, il faut activer l’option Paramètres > Applications > Développement > Débogage USB sur le téléphone.

Configurer l’ordinateur

Il faut télécharger Android SDK.

Sous GNU/Linux (plus précisément Ubuntu 9.10, adaptez selon votre distribution), voici comment l’installer et permettre la reconnaissance du Motorola Milestone (plus d’infos ici) :

sudo tar xzf android-sdk_r04-linux_86.tgz -C /opt
sudo ln -s /opt/android-sdk-linux_86/tools/adb /usr/bin
echo 'SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"' | sudo tee /etc/udev/rules.d/51-android.rules
sudo /etc/init.d/udev reload

Vous pouvez maintenant brancher votre téléphone sur le PC en USB. Pour vérifier que tout fonctionne :

$ adb devices
List of devices attached
040140621600C00D	device

Installer une application

En ligne de commande

Pour installer une application à partir de l’ordinateur, rien de plus simple :

$ adb install -r ConnectBot-svn-r466-all.apk
2343 KB/s (642578 bytes in 0.267s)
	pkg: /data/local/tmp/ConnectBot-svn-r466-all.apk
Success

(-r permet d’écraser si l’application est déjà installée)

À partir d’un gestionnaire de fichiers

Vous pouvez ensuite ajouter la possibilité d’installer les .apk graphiquement à partir de votre gestionnaire de fichiers. Si vous utilisez nautilus, vous pouvez jouer avec nautilus-actions :

Voici la commande de mon action nautilus (j’ouvre un xterm pour avoir le résultat de l’installation, si vous avez mieux, n’hésitez pas) :

xterm -T adb -e 'cd "%d" && /usr/bin/adb install -r "%f"; sleep 5'

Conclusion

J’ai réinitialisé mon téléphone, il n’a plus de compte gmail associé et je n’ai pas accepté les conditions du market, ce qui ne m’empêche donc plus d’installer les applications dont j’ai besoin.

Même pour ceux qui veulent garder leur compte ou utiliser le market, c’est quand même plus rapide d’installer un .apk grâce à un clic-droit, « installer » à partir du gestionnaire de fichiers plutôt que de copier le .apk sur la carte SD, débrancher le câble USB, aller dans une appli qui va chercher le fichier et cliquer sur « installer ».

mercredi, janvier 6 2010

Gravatar de Rom1Trier ses mails directement sur le serveur (procmail) via ®om

Dans la continuité des articles consacrés à l’auto-hébergement des mails, je vais présenter quelque chose que je voulais mettre en place depuis un moment : le tri du courrier directement sur le serveur.

Introduction

Lorsqu’on est abonné à des mailing-lists ou qu’on reçoit des notifications de forums ou de blogs, il est inconcevable de garder tous ses mails dans un seul et même dossier, et impensable de les déplacer manuellement (à moins de passer 30 minutes par jour à les trier). Un tri doit être mis en place automatiquement, en se basant sur les en-têtes des mails reçus.

J’utilisais jusqu’à maintenant les filtres de messages de mon client mail, Evolution, mais ça n’était pas forcément approprié :

  • d’une part c’est très long avec un compte IMAP (les dossiers étant gérés côté serveur), car le client doit récupérer localement les nouveaux messages du serveur et les analyser ; s’il faut en déplacer un, il doit demander au serveur de le copier de la boîte de réception vers le dossier destination adéquat, puis demander de le supprimer de la boîte de réception, et enfin récupérer le messages déplacé… Rien que ça !
  • d’autre part, lorsqu’on accède à ses mails à partir de plusieurs endroits (par exemple le client mail, le webmail et le téléphone portable), il devient évident que ce ne peut pas être le rôle des clients de trier les messages…

C’est donc au serveur de placer les mails dans le bon dossier dès la réception. C’est ce que procmail permet de faire.

Les dossiers IMAP

Les dossiers IMAP sont des dossiers physiques contenus dans ~/Maildir (le répertoire des mails) qui respectent une structure particulière :

  • leur nom commence par « . » (ce sont des dossiers cachés) et les sous-dossiers « logiques » sont séparés par des « . » (par exemple, si je veux un dossier a contenant un sous-dossier b, le répertoire physique sera ~/Maildir/.a.b) ;
  • ils contiennent 3 sous-dossiers physiques : cur, new et tmp.

Pour les créer, il suffit d’utiliser maildirmake ou maildirmake.dovecot, à partir du répertoire ~/Maildir :

maildirmake.dovecot .forums.ubuntu-fr
maildirmake.dovecot .forums.developpez

pour obtenir l’arborescence suivante :

|-- .forums.developpez
|   |-- cur
|   |-- new
|   `-- tmp
`-- .forums.ubuntu-fr
    |-- cur
    |-- new
    `-- tmp

Il est également possible de les créer graphiquement grâce à un client mail.

Configuration de postfix

Il faut indiquer à postfix que procmail va s’occuper de trier les mails, en lui précisant dans /etc/postfix/main.cf :

mailbox_command = /usr/bin/procmail

Il faudra ensuite recharger la configuration :

sudo /etc/init.d/postfix reload

Définir les règles de tri

Tout se passe dans le fichier (à créer) ~/.procmailrc, qui contient deux parties : la définition des variables et la définition des « recettes » (les règles de tri).

Les variables

Pour les variables, copiez simplement ceci (en décommentant les 2 premières lignes si vous voulez des logs).

#VERBOSE=yes
#LOGFILE=.procmail.log
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=Maildir/
DEFAULT=./

Les recettes

Les recettes sont écrites sous la forme suivante :

:0 [drapeaux] [ : [verrou_local] ]
<zéro ou plusieurs conditions (une par ligne)>
<exactement une ligne d'action>

Les conditions commencent toutes par « * », suivie d’une expression régulière. Pour qu’une recette exécute l’action définie, il faut que le mail en question valide toutes les conditions.

Pour faire simple, nous allons simplement créer des règles qui déplacent des mails dans des dossiers. Pour définir une telle action, il suffit d’écrire le nom du dossier, en terminant la ligne par / (très important, cette convention indique à procmail que le dossier est au format maildir).

Un exemple étant plus parlant, voici une règle qui déplace toutes mes notifications de blog dans un dossier blog :

:0
* ^From: .*<wordpress@blog\.rom1v\.com>$
.blog/

Résultat

Au final, voici un extrait de mon fichier ~/.procmailrc (je n’ai pas mis toutes les règles, c’est juste pour donner quelques exemples) :

#VERBOSE=yes
#LOGFILE=.procmail.log
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=Maildir/
DEFAULT=./

:0
* ^From: .*<wordpress@blog\.rom1v\.com>$
.blog/

:0
* ^Reply-To: .*<[0-9]+@bugs\.launchpad\.net>$
.bugs.launchpad/

:0
* ^From: .*<dev\.null@ubuntu-fr\.org>$
.forums.ubuntu-fr/

:0
* ^List-Id: <april\.april\.org>$
.ml.april/
samedi, janvier 2 2010

Gravatar de Rom1Ajouter l’authentification SMTP sur un serveur mail via ®om


Ce billet vient compléter mon premier billet concernant l’installation d’un serveur mail sur Ubuntu Server.

Objectif

La configuration de postfix présentée dans mon premier billet limitait (dans un but de sécurité) l’envoi d’un mail à une personne distante qu’à partir du réseau local (ou une liste de réseaux prédéfinis). Cela est parfait lorsqu’on envoie toujours les mails de chez soi, avec au besoin la possibilité d’envoyer un mail de n’importe où grâce au webmail.

Mais l’utilisation du SMTP à distance devient utile lorsqu’on veut envoyer un mail à partir de chez un ami avec son client mail (plus pratique pour les pièces jointes par exemple), et cela devient carrément indispensable lorsqu’on veut écrire des mails à partir de son téléphone de n’importe où (sans IP fixe).

Ne plus restreindre l’utilisation du SMTP au réseau local implique évidemment de rajouter une couche d’authentification…

Je vais donc décrire comment mettre en place une authentification SMTP-AUTH « en clair » (bien sûr encapsulée dans une connexion chiffrée TLS, déjà configurée si vous avez suivi le premier tuto) qui correspond au login et mot de passe de l’utilisateur système. Il a été écrit pour une installation sur Ubuntu Server 9.10, il faudra donc peut-être l’adapter légèrement si vous utilisez autre chose.

Configuration de SASL

Il faut installer le paquet sasl2-bin :

sudo apt-get install sasl2-bin

et ajouter l’utilisateur postfix au groupe sasl :

sudo adduser postfix sasl

Ouvrez ensuite /etc/default/saslauthd, remplacez :

START=no

par :

START=yes

et remplacez la dernière ligne par :

OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"

Démarrez le service :

sudo /etc/init.d/saslauthd start

Configuration de postfix

À la fin de /etc/postfix/main.cf, rajoutez :

# SASL
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

Dans ce même fichier, vous pouvez également supprimer le réseau 192.168.0.0/24 de la variable mynetworks (si vous l’aviez rajouté).

Créez le fichier /etc/postfix/sasl/smtpd.conf contenant :

pwcheck_method: saslauthd
mech_list: plain login

Rechargez la configuration de postfix :

sudo /etc/init.d/postfix reload

Voilà, tout est prêt.

Configuration du client mail

Dans votre client mail, indiquez que le serveur SMTP requiert une authentification, de type CLAIR (ou PLAIN), et précisez votre compte utilisateur à utiliser.

dimanche, décembre 20 2009

Gravatar de Rom1Tricher dans les jeux en modifiant la mémoire à chaud via ®om

Il y a longtemps, sur la première PlayStation, j’avais acheté un Action Replay qui permettait de modifier la mémoire à chaud pour « tricher » ou changer le comportement d’un jeu.

Il est possible de faire la même chose sous GNU/Linux grâce à scanmem, qu’il faut installer :

sudo apt-get install scanmem

Nous allons le tester sur Gnometris (le Tetris-like intégré à Gnome) pour exploser le record.

Lançons le jeu, et récupérons son pid :

$ gnometris &
[1] 30814

Démarrons scanmem avec comme paramètre le pid de Gnometris :

sudo scanmem 30814

(oui, il faut être root pour lire et écrire la mémoire des autres programmes lancés, c’est plutôt rassurant)

On obtient un joli prompt :

0> 

Il va falloir tout d’abord trouver où se trouve en mémoire la variable à modifier (celle qui contient le score courant). Pour cela, c’est très simple, vu que le score est affiché à l’écran, il suffit d’indiquer à scanmem sa valeur. Pour l’instant, mon score est de 0, je rentre donc 0 :

0> 0
info: 01/126 searching   0x621000 -   0x623000...........ok
info: 02/126 searching  0x1f9d000 -  0x2f4e000...........ok
…
info: 125/126 searching 0xe83f9000 - 0xe83fa000.ok
info: 126/126 searching 0xdab4b000 - 0xdab67000.ok
info: we currently have 12352024 matches.
12352024> 

Il y a donc 12352024 variables dans la mémoire utilisée par Gnometris qui sont à 0 (pas étonnant).

Je joue un peu, histoire de faire évoluer le score… tac tac tac tac… Voilà, j’ai 100 points (j’ai fait 2 lignes), je tape donc 100 :

12352024> 100
info: we currently have 36 matches.
36> 

Il y a 36 variables qui étaient à 0 tout à l’heure et qui sont à 100 maintenant. Je rejoue, je fais 1 ligne, j’ai 140 points, je tape donc 140 :

36> 140
info: we currently have 1 matches.
info: match identified, use "set" to modify value.
info: enter "help" for other commands.

Voilà, j’ai trouvé la variable qui contient le score, maintenant je peux la modifier :

1> set 12345678
info: setting *0x22e38f0 to 0xbc614e...

Rien ne se passe dans le jeu, c’est normal : pour Gnometris, le score n’a pas pu changer, le label de l’interface graphique contenant le score n’a donc pas été rafraîchi. Il suffit de gagner quelques points pour s’apercevoir que la modification a bien été prise en compte :

Ça fonctionne bien évidemment sur tous les programmes, mais c’est plus intéressant pour les jeux :-)

dimanche, décembre 6 2009

Gravatar de Rom1Créer un serveur HTTP en 10 secondes sur Ubuntu grâce à Python via ®om

python-logo

Il suffit d’aller dans le répertoire à partager et d’exécuter :

$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Le répertoire sera chrooté et accessible sur http://localhost:8000.

Par défaut, le port 8000 est utilisé, mais on peut le changer :

$ python -m SimpleHTTPServer 1234
Serving HTTP on 0.0.0.0 port 1234 ...

Pour les ports inférieurs à 1024, il faut être root :

$ sudo python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...

Si le port correspondant est ouvert sur le routeur, il sera également accessible de l’extérieur. Pratique pour partager rapidement du contenu…

samedi, décembre 5 2009

Gravatar de KagouEn direct de l'Ubuntu Party de Toulouse via Kagou

Organisée par Ubuntu-fr et Toulibre la Ubuntu Party de Toulouse en est à sa première année d'existence. J'ai eu le privilège de faire partie de la première édition et aujourd'hui je reviens comme simple visiteur.

Je retrouve les mêmes personnes, Sylvain Garcia, Christophe Sauthier (Huats), Olivier Porcheron, Thomas Petazzoni et beaucoup d'autres personnes dans le staff qui gère l'évènement. Au menu, 2 séries de conférences, l'une plus générale et l'autre plus technique se tiennent en parallèle, preuve que cette journée veut toucher une plus large palette de personnes. Après un repas rapide au Khebab du coin l'après midi commence à 13H.

La première conférence à laquelle j'ai assisté est celle de Nicolas Barcet, employé de Canonical, il a présenté l'utilisation de Linux et des logiciels libres dans le monde des serveurs. La présentation a eu un grand succès, la salle étant pleine (environ 100 personnes). Le personnage est fort sympathique et connait son sujet sur le bout des doigts. Il est à noter qu'un sondage vient d'être mis en ligne par Nicolas afin de l'aider à appréhender l'évolution du monde des serveurs.

Deuxième conférence dans la salle du bas et je retrouve Nicolas avec Christophe qui se renvoient la balle afin de présenter Ubuntu à un auditoire très attentif. Je dénombre environ 180 personnes de tout age dont une proportion non négligeable de filles (serait ce l'effet Christophe ? ;) ).

Un passage dans la salle dédiée aux installations d'Ubuntu permet de confirmer le succès de cette partie. Beaucoup de gens sont là avec leur PC et pas mal attendent avec patience et bonne humeur leur tour. Un grand bravo aux volontaires qui se plient en quatre afin que le visiteurs puissent repartir heureux.

Gravatar de gontchoIl est arrivé mon Koala ! via Emmanuel Gontcho


Une pochette d'Ubuntu - Karmic Koala

C’était hier qu’un facteur est venu me déposer à domicile mon paquet contenant des cds d’Ubuntu.

Grande joie et deux petites déceptions : je n’ai pas reçu très exactement ce que j’avais demandé. Au lieu de deux versions desktop (32 bits + 64 bits) et deux versions server (32 bits + 64 bits), j’ai reçu quatre versions desktop. Bon, ça fera la joie des autres. Ensuite, le facteur n’était pas censé rapporter le courrier chez moi. Il devait le déposer à l’adresse postale indiquée sur le colis. Mais, il a préféré le livrer à domicile pour me rançonner 1,90$. Bon, l’important ce que cette fois le courrier a pris moins d’un mois pour me parvenir, contrairement aux autres fois.

Le temps que je le teste, grand courage à l’équipe Ubuntu.