willoblog

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

jeudi 12 novembre 2009

Ubuntu Karmic et Packard Bell EasyNote BG46-P-018

J’ai acheté un Packard Bell EasyNote BG46-P-018 à Noël 2007, et présenté ici.

Après un an d’utilisation, on peut le dire : cet ordinateur avait le seul intérêt à l’époque d’être vraiment pas cher pour un 12 pouces. C’est un Packard Bell, et comme tous les Packard Bell il est assez mal conçu. En particulier, il chauffe beaucoup et son ventilateur, bruyant, est en marche en permanence.

Un certain nombre de problèmes se posaient, et il fallait un peu lutter avec Ubuntu Gutsy (7.10).

Deux ans plus tard, de grands progrès ont été faits :

  • l’affichage en 16/10 fonctionne de suite
  • l’affichage sur un écran externe (j’ai un HP 19 pouces en format 5/4) fonctionne de suite, après un passage dans Préférences/Affichage pour l’activer
  • le son fonctionne de suite
  • la webcam fonctionne de suite et apparaît dans le bon sens (elle apparaissait à l’envers avant)
  • compiz ne pose plus de problème, et le processeur ne tourne pas pour rien même avec l’écran supplémentaire.

Seule ombre au tableau, les boutons « wifi » et « éco » qui des fois s’éteignent. Mais la connexion wifi est pourtant toujours active. Il me semble même qu’elle est plus stable qu’avant.

À noter, pour la webcam, que cela est dû à une modification des drivers. Nombreuses sont les webcams « montées à l’envers » sur les ordinateurs portables. Les fabricants le savent et fabriquent des drivers pour windows qui retournent automatiquement l’image. Sous Linux, il faut que quelqu’un tombe sur le modèle posant problème, le dise aux personnes compétentes pour modifier la liste des webcams concernées dans la librairie correspondante (v4l).
Si un logiciel comme cheese affiche l’image de la webcam à l’endroit, alors c’est gagné. Mais si en essayant avec VLC (souvent avec la commande vlc v4l2:///dev/video0) ou skype l’image est encore à l’envers, vous devez simplement faire précéder systématiquement la commande de LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so, sur la même ligne. Pour skype par exemple, c’est facile à automatiser. Il suffit de créer un fichier /usr/local/bin/skype contenant

#!/bin/bash
 
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype

(tapez gksudo gedit /usr/local/bin/skype dans un terminal, collez-y ce qui précède, enregistrez, et rendez le fichier exécutable en tapant sudo chmod +x /usr/local/bin/skype dans le terminal)
Il sera utilisé à chaque fois que la commande skype sera lancée.

jeudi 29 octobre 2009

SNI, TLS : multiples virtual hosts avec Ubuntu Karmic

Ah, enfin. Ça y est, hourra, depuis le temps que l’on attendait cela, c’est enfin possible : il est enfin possible avec Apache et OpenSSL d’héberger sur un même serveur plusieurs sites sécurisés avec chacun son certificat propre.

J’héberge sur mon serveur plusieurs sites. Deux en particulier ont besoin d’être sécurisés, non pas pour garantir qu’il s’agit de moi (je ne suis pas une banque, personne n’essaiera jamais de se faire passer pour moi), mais parce que ce qui y est écrit est personnel et que je suis un grand parano qui ne veux pas laisser d’accès à des personnes que je ne connais pas.
Comme je veux cependant garantir l’accès de mes sites au plus grand nombre, je cherche à éviter les affichages d’erreurs moches et incompréhensibles des problèmes de sécurité, qui deviennent particulièrement pénibles avec Firefox 3.5. Du coup, deux choses à faire :

  • acheter des vrais certificats, du moins ne pas utiliser des certificats auto-signés. C’est tout à fait contre ma pratique et mes habitudes en informatique, mais il faut se rendre à l’évidence : tous les navigateurs font croire que l’on tombe chez des pirates quand le certificat est auto-signé. C’est très triste d’en arriver là. Néanmoins, ayant trouvé des certificats à pas cher, je me fournis maintenant chez RapidSSL pour des certificats que ne m’ont causé aucun problème.
  • pouvoir séparer les noms de domaine sur mon serveur web.

Le deuxième point paraît simple. Il s’agit pourtant d’une grande impossibilité du chiffrement SSL tel qu’il été conçu à l’origine : le chiffrement est effectué sur l’adresse dès l’envoi de la requête par le navigateur, et le déchiffrement n’a lieu sur le serveur qu’après sélection du certificat pour déchiffrer… La sélection du certificat ne peut donc pas dépendre de l’adresse demandée.
Sous Ubuntu, une solution existait jusqu’à maintenant. Utiliser GnuTLS, qui comme son nom l’indique permet l’utilisation du protocole TLS, dernière évolution de SSL. Pourquoi ? Parce qu’avec TLS, il est possible de balancer en clair l’adresse grâce à l’extension appelée SNI. Problème de GnuTLS, c’est un peu instable et il arrive notamment en cas de requêtes multiples de se voir servi par un mauvais certificat : on retombe sur les messages d’erreur, encore plus dérangeant parce qu’incompréhensibles vu que ça fonctionnait une seconde avant…
Apache, le logiciel serveur, supportait le TLS, mais pas le SNI avec OpenSSL. C’était un bug connu, qui a été réparé début août, mais pour Ubuntu Karmic uniquement. Cette version est installée depuis quelques jours (tout juste avant sa sortie finale, soyons fous…) sur mon serveur, et cela marche comme un charme. Il suffit de mettre dans la configuration générale, par exemple /etc/apache2/ports.conf :

Listen 443
NameVirtualHost *:443

puis dans la configuration de chaque site :

<VirtualHost _default_:443>
  ServerName votredomaine.fr
  SSLEngine on
  SSLCertificateFile /etc/apache2/ssl/votrecertificat.crt
  SSLCertificateKeyFile /etc/apache2/ssl/laclécorrespondante.key
  ...
</VirtualHost>

À noter aussi l’existence d’un autre logiciel serveur, Lighttpd. Il a notamment l’avantage d’être plus léger qu’Apache. Je ne l’utilise pas sur mon serveur plus par inertie, parce qu’Apache est parfaitement configuré, mais je l’utilise sur mon portable pour avoir un serveur web de test avec moi, et je le trouve très bien et très réactif. Je pensais qu’il supportait SNI depuis quelques temps, mais visiblement ce n’est le cas que depuis 5 jours. Bref, le choix est ouvert, comme toujours dans le monde libre.

dimanche 25 octobre 2009

Ubuntu karmic freeze on Asus M2n

Ubuntu Karmic is to be released on thursday, and the release candidate is available since a few days. So I tried to install it on a laptop that I don’t really use daily. I installed from scratch, with the live CD, desktop version.

This is a laptop I bought in May 2004, an Asus M2400n. It almost worked…
First, you have to specify on the live CD boot : acpi=off and nolapic by hiting F6. Then, you have no sound but it will work at the end. Installation works fine, as usual. To first boot after installation, you have to hit shift and escape when Loading GRUB is displayed (it’s very quick), then «e» to edit the first menu item and add the same boot options on the kernel line.

There are three things to do to make the release candidate work (hope this will be fix this week). One on Grub to boot properly, and two big issues with the display.

Modify Grub boot options

New in Karmic : Grub2 is finally used, and the famous /etc/boot/grub/menu.lst doesn’t exist anymore. Some explanations are available within the Internet. All you need to know is that you have to modify /etc/default/grub, and particularly the GRUB_CMDLINE_LINUX_DEFAULT variable to add nolapic. Do not add acpi=off, or you will never ear any sound.
After any modification of /etc/default/grub, you have to do sudo update-grub in order to modifiy the Grub intern files.

Kernel issue

The new kernel display handling (Kernel mode-setting, KMS) may be a little buggy… Anyway, with this method and with Intel graphic chipset like the i855GM in this laptop, it makes Xvideo not available (which results in a very buggy display, CPU high load, and unespected reboot with some softwares or websites). To deactivate KMS, you have to add nomodeset] to the boot options in /etc/default/grub.

This two issues can be simply solved by

sudo sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/s/^\(.*\)"$/\1 nolapic nomodeset"/' /etc/default/grub
sudo update-grub

Intel driver issue

The current Intel driver has also some bugs. With this driver, the display freezes sometimes, very quickly after login, even before. It’s only a display freeze, not a system crash at all (computer is still pingable and ssh-ing still works).
I hope most of these bugs will be quickly solved, but till then we can use the vesa generic driver. It’s not as simple as before, because Xorg has also changed, and the famous /etc/X11/xorg.conf no longer exists… But you can write a new minimalist one, only containing what you want to modify. You can this way write in /etc/X11/xorg.conf:

Section "Device"
  Identifier      "Configured Video Device"
  Driver 	  "vesa"
EndSection

Section "Monitor"
  Identifier      "Configured Monitor"
EndSection

Section "Screen"
  Identifier      "Default Screen"
  Monitor         "Configured Monitor"
  Device          "Configured Video Device"
EndSection

Nothing else to do, the configuration file is automatically read as soon as the system reboots or Xorg restarts.

This way, presently my Asus M2400n works fine. Hope this helps.

lundi 10 août 2009

Utiliser Firefox 3.5 sous Ubuntu

Firefox 3.5 est sorti il y a maintenant plus d'un mois. Il ne sera pas intégré dans Jaunty, la version actuelle d'Ubuntu, ni dans les précédentes. C'est normal, c'est une question de stabilité : aucun logiciel ne peut être intégré dans sa nouvelle version après le gel de la version de la distribution. Même Firefox, aussi important soit-il.

Mais il est pourtant possible d'obtenir Firefox 3.5. Rien de très compliqué, mais on pourra faire les choses de façon expéditive ou méticuleuse... Je vous propose la deuxième.

Avant de commencer, installons

On commence par installer Firefox, qui est disponible en dépôt pour Ubuntu Jaunty, si, si :

sudo aptitude install firefox-3.5 firefox-3.5-gnome-support

Firefox 3.5 est disponible par la commande firefox-3.5, alors que la commande firefox est liée à Firefox 3.0.

ls -l /usr/bin/firefox*
lrwxrwxrwx 1 root root 11 2009-08-04 09:07 /usr/bin/firefox -> firefox-3.0
lrwxrwxrwx 1 root root 32 2009-08-04 09:07 /usr/bin/firefox-3.0 -> ../lib/firefox-3.0.12/firefox.sh
lrwxrwxrwx 1 root root 31 2009-07-21 15:08 /usr/bin/firefox-3.5 -> ../lib/firefox-3.5.1/firefox.sh

Pour les plus vieilles versions d'Ubuntu, Firefox 3.5 n'est pas disponible en dépôt et il faut aller le chercher sur le site officiel, puis le décompresser par exemple dans /usr/local/src :

sudo mv firefox*tar.bz2 /usr/local/src
tar -xjvf /usr/local/src/firefox*tar.bz2

et l'utilitaire se trouve alors à /usr/local/src/firefox-3.5

La mauvaise méthode

Je vous vois venir : c'est facile, il suffit de lier la commande firefox au bon endroit

sudo rm /usr/bin/firefox && sudo ln -s firefox-3.5 /usr/bin/firefox

C'est la mauvaise méthode. Pourquoi ? Au moins deux raisons :

  • Rien ne vous assure que le lien ne sera pas remis à la prochaine mise à jour de Firefox. Il a bien été mis là ce lien, il vient pas de nulle part.
  • Vous allez peut-être regretter d'avoir bousillé votre profil Firefox (voir aussi les explications sur Geckozone). C'est ce qui arrive quand on ne fait pas attention.

Une bonne méthode

Il faut savoir que quand une commande est ordonnée (par vous très souvent), l'interpréteur (souvent bash) va chercher dans certains répertoires les uns après les autres. Ceci est réglé par la variable $PATH, que l'on peut voir dans une console :

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

D'abord on cherche dans /usr/local/sbin, puis dans /usr/local/bin, puis... Donc si un firefox se trouve dans /usr/local/bin, celui de /usr/bin ne sera jamais lancé ! Et /usr/local/bin a comme grand avantage de ne pas être écrit par le système (d'où le « local », pour l'écriture locale de l'administrateur). Il suffit donc de faire :

sudo ln -s /usr/bin/firefox-3.5 /usr/local/bin/firefox

Et on pourra avoir Firefox 3.5 avec firefox ou Firefox 3.0 avec /usr/bin/firefox.

Mais la deuxième objection reste toujours valable...

La gestion des profils

Le mieux est de créer deux profils, parce que Firefox 3.5 peut ne pas fonctionner exactement comme la version précédente, et parce que les extensions elles aussi connaissent des versions différentes, compatibles ou non avec les différentes version de Firefox. Pour chaque utilisateur, vous pouvez avoir accès au Gestionnaire de profils par firefox -P. Alors vous pouvez créer ou supprimer un répertoire. Je suppose que celui utilisé jusqu'à maintenant (par Firefox 3.0) est default. Créez-en un nouveau, en le nommant par exemple F3-5 (le point serait gênant). Puis fermez.

Les profils Firefox peuvent être choisis au démarrage du logiciel de deux façons. Avec firefox -P, le Gestionnaire de profils permet ce choix en mode graphique. Avec firefox -P default ou firefox -P F3-5 dans notre cas, on peut choisir directement sans fenêtre supplémentaire le profil voulu.

Nous pouvons donc créer deux lanceurs, que l'on mettra par exemple dans /usr/local/bin/firefox-3.0 :

#!/bin/sh
 
/usr/bin/firefox3.0 -P default $* &

et dans /usr/local/bin/firefox-3.5 :

#!/bin/sh
 
/usr/bin/firefox-3.5 -P F3-5 $* &

Après un

sudo chmod +x /usr/local/bin/firefox*

les commandes firefox-3.0 et firefox-3.5 sont maintenant transformées : ainsi, elles ne peuvent plus lancer le mauvais profil... Il ne reste plus qu'à lier firefox à celle que l'on souhaite :

sudo ln -s firefox-3.5 /usr/local/bin/firefox

(supprimez /usr/local/bin/firefox si vous l'aviez créé précédemment).

On y est presque : derniers détails

Vous venez d'ouvrir Firefox 3.5, et vous vous rendez compte d'une chose abominable : l'interface est en anglais !
No problemo. Après avoir regardé le numéro exact de votre version dans le menu « Aide -> À propos de Mozilla Firefox » (du genre 3.5.x), il suffit d'installer par simple téléchargement l'extension qui va bien, que vous pourrez trouver sur le site de mozilla.org en choisissant là votre 3.5.x puis linux-i686 -> xpi -> fr.xpi. Elle ne s'installe que dans votre profil actuel, le F3-5 (on retrouve l'intérêt de ne pas avoir le même profil pour les deux versions).

Mais où sont passés tous vos mots de passe, vos historiques, vos entrées de formulaires, vos habitudes ?
Facile : fermez le Firefox ouvert, et copiez d'un profil à l'autre les fichiers qui vont bien :

cd ./mozilla/firefox/*.default
cp -a bookmarks.html cert8.db content-prefs.sqlite cookies.sqlite downloads.sqlite formhistory.sqlite key3.db signons3.txt urlclassifier3.sqlite urlclassifierkey3.txt ../*.F3-5

À noter que signons3.txt, contenant vos mots de passe, sera transformé en signons.sqlite désormais. Il restera les extensions à réinstaller, ce que vous pouvez éventuellement vous éviter en recopiant le répertoire extensions. Peut-être qu'il est intéressant de temps en temps de se demander de quelles extensions on a vraiment besoin (je vous conseille fortement Adblock Plus, Flashblock ; Firebug pour les développeurs et TabMixPlus pour ceux qui aiment bien avoir pas mal d'onglets ouverts).

jeudi 6 août 2009

Environnement de développement

Comme les articles d'aujourd'hui vous en ont surement persuadés, vous aurez compris que j'ai passé un premier mois de vacances à réaliser un grande partie des projets qui me tournaient dans la tête et que je n'ai pas eu le temps de creuser d'avantage cette année (parce qu'on ne l'imagine pas au début, mais une vie de prof débutant ne laisse pas beaucoup de temps pour le reste). La todo-list commençait à se faire longue et j'ai été bien content de pouvoir enfin m'y atteler sans plus penser au boulot.

Mais ceux qui me connaissent vous diront que je passe, on va dire « pour raison familiale », beaucoup de temps loin de chez moi. Et personnellement, j'ai commencé à m'intéresser à l'informatique à partir du moment où j'ai eu internet. J'associe mon plaisir de ce loisir à ma navigation sur le net, à lire de la doc pour être sûr de ce que je fais, à perdre mon temps sur des détails techniques qui permettent la compréhension d'effets de bord insoupçonnés (ça c'est mon côté chercheur :) ). À tel point que je me demande comment on faisait avant. Et que cela me manque quand ce n'est plus possible.

Être loin de chez soi n'est pas un problème. ssh, rsync (et mon script de sauvegarde) et sshfs font que l'on peut maintenant travailler sur un ordi distant comme si l'on était dessus (avoir une console, c'est bien, mais avoir ses fichiers dans le navigateur de fichiers et pouvoir les éditer avec l'éditeur classique en double-cliquant dessus sans temps de latence, c'est vraiment génial).

Mais pour pouvoir développer, en particulier des sites web, dans le train, c'est une autre affaire. Ma solution est d'avoir un serveur sur mon portable. Et finalement c'est très simple. J'ai choisi, pour changer de mon apache configuré aux petits oignons et que je commence à bien comprendre, un serveur censé être plus light : lighttpd. Finalement, sans aucune configuration, tout fonctionne du premier coup. Facile, il suffisait de taper :

sudo aptitude install lighttpd php5-cgi mysql-client mysql-server php5-mysql

On peut y ajouter le gestionnaire de bases mysql développé par Sun, mysql-query-browser, mais je l'essaie depuis environ un mois et je n'en suis pas convaincu. Il ne vaut pas PhpMyAdmin, dont je me passe néanmoins en utilisant à la roots le client mysql en console. Il n'y a plus qu'à incanter des lignes magiques dans des fichiers et peupler /var/www/.

À partir de là, au moins on peut faire du php/mysql et vérifier si cela fonctionne bien. Mais il manque les docs. Et quand on fait du php, on sait tout l'intérêt de la doc de php.net, complète et bien faite. Alors du coup, maintenant je ne sors plus jamais sans mes docs :-)

  • documentation php à télécharger et à dézipper
  • documentation JQuery à télécharger et à dézipper, qui est assez bluffante
  • documentation mysql à télécharger et à dézipper (prendre le « HTML page/chapter »)

SyntaxHighlighter, php et scripts Bash

Bon, troisième post de la journée sur le sujet, après les deux premiers. Petits trucs et astuces pour pouvoir afficher des scripts bash comme cela est réalisé sur mon site.

Pour le transcript, deux problèmes

Balises malgré elles

SyntaxHighlighter transforme tous les chevrons « < » et « > » en entités html correspondantes, respectivement « &lt; » (less than) et « &gt; » (greater than). Ce ne serait pas grave s'il ne le faisait pas seulement pour presque tous les chevrons... Or il cherche à détecter automatiquement les balises (ce qui n'est pas très malin dans du code bash d'ailleurs, ce qui fait que mon adresse mail par exemple était comprise comme une balise, dégradant quelque peu la suite de l'affichage. Total : il faut le faire pour lui.
Au départ, j'avais choisi d'utiliser readline en php, à savoir

<pre class="brush: bash">
<?PHP  @readline('compil'); ?>
</pre>

Mais transformer les chevrons à l'avance n'est pas beaucoup plus compliqué :

<pre class="brush: bash">
<?PHP  echo str_replace('<','&lt;',str_replace('>','&gt;',file_get_contents('compil'))); ?>
</pre>

Vous aurez remarqué que du coup, dès que le fichier est modifié, c'est le code de la dernière version qui s'affiche. Zéro maintenance (le fichier compil est un lien symbolique vers /usr/local/bin/compil sur mon serveur).

Décidément, ces chevrons...

Et c'est à ce moment que l'on relit un peu ce qui s'affiche à l'écran, et qu'on se rend compte que plein de chevrons (mais pas tous) sont restés à l'état d'entités html. Alors qu'en enlevant l'influence de SyntaxHighlighter, on obtient bien le résultat attendu. Il m'aura fallu quelques minutes pour me souvenir que lt et gt, sont des mots-clés en bash, justement pour des tests numériques plus grand/plus petit (ouais, tout est lié). Un grand dilemme se pose alors. Soit on laisse comme ça, et le code affiché est faux. Soit on s'arrange pour ne jamais avoir de chevrons (ce qui est impossible quand on a besoin de redirections). Soit on commente les mots-clés gt et lt dans le fichier de définition shBrushBash.js, et tant pis pour leurs rares apparences en tant que tests, où ils ne seront pas colorés comme il faut. J'ai choisi cette dernière solution.

Pour l'aide

Ah, là ça se corse. Au départ j'avais recopié telle quelle la réponse de compil -h. Je me suis dit alors « mais si t'as une coquille dans l'aide ou que tu la modifies, il faudra revenir ici... au secours ». Alors j'ai trouvé un moyen. Après plusieurs tâtonnements et hésitations sur la meilleure fonction php entre exec, system et passthru, j'ai opté pour

<pre class="aide">
$ compil -h
 
<?PHP 
exec('[ ! -e compil.help -o compil -nt compil.help ] && compil -h | tr -d "\033" | sed -e "s/\[1m/<b>/g" -e "s/\[0m/<\/b>/g" > compil.help');
@readfile('compil.help'); ?>
</pre>

Explication : la dernière commande lit et affiche un fichier compil.help. On va donc y mettre l'aide. Problème, j'utilise un formatage à base de caractères bizarres qui permettent de mettre en gras du texte en console. On prend donc le résultat de compil -h, on en vire donc le caractère bizarre (grâce à la commande tr -d), puis on identifie le début et la fin des mises en gras, que l'on remplace de façon moche mais fonctionnelle par des balises de formatage html.
Le début est un test, qui permet d'exécuter la commande seulement si compil.help n'existe pas ou est plus ancien que compil. Cela semble fonctionner à peu près correctement.

Scripts

Ah, depuis le temps que j'ai envie d'ouvrir cette page sur mon site. Hé bien voilà, c'est fait : les scripts que j'ai passé un certain à écrire sur les quelques dernières années sont enfin en ligne, sous licence libre bien entendu. J'attendais sûrement de pouvoir utiliser un bon logiciel de coloration syntaxique. Maintenant que j'ai trouvé mon bonheur...

Pour l'instant, seuls 5 scripts sont présents :

  • compil que j'utilise très souvent, à chaque compilation d'un fichier latex. Sachant que c'est dans ce langage que je tape les exercices pour mes élèves, c'est très souvent. Il peut être lancé en mdoe non-intéractif, ce qui me permet de l'utiliser au sein de texmaker via le raccourci de compilation rapide, un simple appui sur la touche F1.
  • mp3cover que j'utilise à chaque fois que je m'achète un nouvel album et que je le passe en mp3 sur mon lecteur Samsung YP-P2
  • mp3resample que j'ai utilisé à une époque pour passer du bitrate variable de bonne qualité dans lequel j'encode habituellement mes mp3 pour mon ordi, à un bitrate constant un peu moins élevé (128 kbps) qui permet à la fois de gagner de la place sur le lecteur mp3 et de certainement vider un peu moins vite ses batteries. Je ne le fais plus depuis quelques temps, par flemme.
  • m3utospl que j'ai écrit récemment et que je n'ai pas encore vraiment eu le temps d'utiliser réellement. Il ne me manque que des playlists m3u à créer avec mon logiciel de lecture sur mon pc.
  • sauvegarde enfin, le plus utile, utilisé sur 3 pc de façon quotidienne pour faire des sauvegardes justement les uns sur les autres la nuit. Mais je l'ai récemment amélioré, et je m'en sers maintenant pour mettre à jour mes répertoires contenant des mp3 à travers 2 ordinateurs et sur mon lecteur mp3, via des fichiers de configuration différents...

Mais bientôt les rejoindront d'autres scripts que j'utilise tout autant, en particulier

  • redimensionner qui permet de redimensionner en grand nombre de photos et de vidéos (mais il faut que j'améliore le support des vidéos, c'est pas encore ça), que j'utilise dès que j'ai de nouvelles photos à mettre en ligne (via la GaleriePhotos, forcément)
  • retouche-video qui permet de réencoder de façon dégradée et légère des vidéos. Je m'en sers beaucoup pour mes vidéos de vacances que je mets à disposition de mes amis tout au long de l'année, pour gagner de la bande passante (typiquement, division d'un facteur 3 du poids des fichiers)...
  • webcam que j'avais écrit pour créer un flux vidéo bidirectionnel, provenant de webcams. L'intérêt par rapport à skype ou msn ? Le flux est acheminé par vlc via un tunnel ssh : l'image n'est pas visible par un tiers, contrairement à msn ou skype. On ne vous l'avait pas dit ? ;-p J'ai actuellement un petit soucis, depuis les dernières version de vlc des arguments ont changé et je n'ai pas eu le temps de voir cela. Il faut aussi que j'arrive enfin à ajouter le son. Bref, plus tard.

Vous aurez remarqué mon inventivité en termes de noms.

lundi 15 juin 2009

Java, hardy et amd64

Ceux qui ont essayé le savent : il est a priori impossible d'utiliser une applet java dans la machine virtuelle java de Sun sur un ordi d'architecture AMD64 sous Ubuntu. Certes, d'autres implémentations de machines java, en particulier la prometteuse (si j'ai bien compris) et 100% libre OpenJDK, mais je préfère encore pour quelques temps utiliser la machine de chez Sun, en attendant que les derniers petits problèmes soient résolus. Il semble, par exemple, que la déclaration d'impôts (mon seul usage annuel d'usine à gaz java...) ne soit pas optimal par OpenJDK.

Non, au temps pour moi : il était impossible. C'est depuis quelques mois possible, sous Jaunty uniquement (sortie en avril dernier). La raison à ce problème : Sun n'avait pas cru bon de fabriquer un plugin de navigateur pour les architectures 64 bits.

Le problème, c'est que le paquet essentiel, sun-java6-plugin, n'est disponible dans les dépôts que pour Jaunty. Heureusement, des téméraires ont testé, et pas de problème, ça fonctionne. J'ai testé sous Hardy et sous Intrepid, ça a l'air de fonctionner.

Deux possibilités donc pour installer tout ça (sous Hardy ou Intrepid):

adresse="http://fr.archive.ubuntu.com/ubuntu/pool/multiverse/s/sun-java6/";  for paquet in jre plugin bin; do fichier=`wget -q -O - $adresse | sed -n "/amd64\|all/s/.*\">\(sun-java6-$paquet.*.deb\)<.*/\1/p" | tail -n 1`; sudo wget -P /usr/local/src/ $adresse$fichier; done

Désinstaller les paquets éventuellement déjà installés

sudo aptitude purge icedtea-gcjwebplugin

Puis installer les paquets téléchargés

sudo dpkg -i /usr/local/bin/sun-java6-*
  • utiliser un dépôt fait plus ou moins pour ça (trouvé à force de chercher, et je remercie la personne en question de m'avoir donné cette idée), le dépôt hardy de ce site. Il suffit alors, après modification de /etc/apt/sources.list, de mettre à jour
sudo aptitude update && sudo aptitude safe-upgrade

et d'installer le bon paquet

sudo aptitude install sun-java6-plugin

Et un redémarrage de firefox plus tard...

Edit : bon en fait pour la déclaration d'impôts, visiblement la signature par certificat ne fonctionne pas simplement. Par contre, la signature simplifiée fonctionne très bien, et du coup je ne suis pas allé voir plus loin...

vendredi 27 mars 2009

Ubuntu 9.04 : compte à rebours commencé

La version beta (version de test, pour les utilisateurs expérimentés uniquement) de la prochaine Ubuntu (attendue pour le 23 avril), à savoir Jaunty Jackalope vient de sortir aujourd'hui. Pour fêter ça, des banières de comptes à rebours sont dispo ici.

C'était la minute inintéressante de la journée. :)

dimanche 1 mars 2009

latex et césures

Suite de mes découvertes latex du weekend : je me suis rendu compte que beaucoup de césures effectuées automatiquement par Latex étaient incorrectes. Après recherche, mon fichier de log contenait désespérément :
Package babel Warning: No hyphenation patterns were loaded for
(babel) the language `French'
(babel) I will use the patterns loaded for \language=0 instead.

Et cela, malgré toutes les options possibles et imaginables à babel, le package latex de traduction. L'erreur était en fait un peu plus haut dans le fichier de log :
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, nohyphenation, loaded.
Il n'y a pas « french » ! La faute à un paquet Ubuntu qui n'est bizarrement pas installé automatiquement, texlive-lang-french.

Il suffisait donc de faire : sudo aptitude install texlive-lang-french. Et après, c'est gagné :
Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, nohyphenation, basque, french, loaded.

latex et virgule

Petite astuce latex que j'ai découverte hier : l'espace qui est systématiquement insérée derrière une virgule, y compris en mode mathématique, est supprimable. Cette espace me gênait beaucoup, juste parce que c'est moche. C'est un format anglais, et c'est typographiquement incorrect en français.

Après quelques recherche, on trouve plusieurs solutions :

  • rajouter des accolades autour de chaque virgule dans les formules mathématiques. Problème, il faut le faire pour chaque virgule concernée. Moi, mes 135 pages sont déjà écrites, c'est impensable.
  • rajouter une macro des packages de traduction, \nombre{}, autour de chaque formule mathématique. Même problème (même si c'est un peu plus simple à gérer en ligne de commande via sed par exemple).
  • simplement utiliser le package icomma. Intérêt : une seule ligne à changer, et après recompilation toutes les espaces indésirables auront disparu !

Pour ceux qui ont du mal à suivre, plus en détail :

  • Disposer du fichier icomma.sty. Sous Ubuntu par exemple, il suffit d'installer le bon paquet, si ce n'est déjà fait : sudo aptitude install texlive-latex-extra
  • dans le préambule de vos sources latex, insérer \usepackage{icomma}

dimanche 4 janvier 2009

Samsung YP-P2 et Ubuntu

Pour Noël, j'ai eu un lecteur mp3 Samsung YP-P2. Il s'agit, comme présenté dans un très bon site dédié, d'un lecteur sorti fin 2007, dont l'interface est entièrement tactile, à l'instar de l'Ipod Touch. L'écran semble un peu moins « précis » que celui de l'Ipod, mais le comportement général est quand-même très agréable à utiliser.

Trois problèmes majeurs :

  • l'utilisation obligatoire du logiciel Samsung
  • le format propriétaire de la vidéo
  • l'affichage des pochettes (ou cover) des albums

Tout écrire ici serait trop long et illisible. J'ai préféré détailler cela dans une page spéciale. Ce n'était en fait pas très compliqué de résoudre ces trois problèmes.

mardi 18 novembre 2008

ufw, gufw

Ceux qui suivent me diront que ce n'est pas une nouveauté. Depuis plusieurs mois maintenant, un nouveau firewall a été introduit par défaut dans ubuntu. Il s'agit de ufw, uncomplicated firewall, interface (en ligne de commandes) à l'éternel iptables, qui en simplifie beaucoup la mise en œuvre (mais c'est plutôt facile, tant les commandes iptables sont incompréhensibles).

Et puis y a des types qui se sont dit (c'était il y a moins de 10 mois !) que ce n'était pas assez simple, et qu'il fallait une interface graphique. Maintenant, Gufw est facilement installable (dans les dépôts), visiblement assez stable et très fonctionnel. En plus d'être "joli", il est super pratique.

J'utilisais depuis plusieurs années Firestarter, qui est à la fois un script de commandes iptables et l'interface qui permet de les modifier. Gros problème de Firestarter, en plus d'avoir un développement arrêté : pas moyen de se protéger sur toutes les interfaces, ce que l'on souhaite typiquement pour un portable connecté une fois sur deux en wifi, une fois sur deux en filaire. La solution, c'était un petit script qui interceptait dans les fichiers lancés par NetworkManager à la connexion, l'interface connectée. Pas très pratique. Maintenant, ufw est lancé au démarrage du PC comme un service, et protège toutes les interfaces de la même façon (c'est réglable d'ailleurs, en fonction de l'IP de destination). Bref, le pied.

Allez. sudo aptitude purge firestarter...

vendredi 31 octobre 2008

New Ubuntu version

Nouvelle version d'Ubuntu sortie hier, nommée « 8.10 » (lire octobre 2008) ou « The Intrepid Ibex » (le bouquetin intrépide), alias intrepid.
Pas un très grand nombre de nouveautés, mais des trucs qu'on attendait depuis très longtemps :

  • les onglets dans Nautilus, ah, enfin, ça va vraiment être génial ça !
  • une session « invité » existante de base, et ça aussi ça change tout : plus besoin de se dire qu'il faut le faire sans en prendre le temps, puisque c'est dispo de suite.
  • le chiffrement des données sur les disques plus facile
  • un Network-manager qui gère plus de possibilités et permet d'avoir un ordinateur connecté avant d'être loggué (ce qui était le cas quand on utilisait l'ancienne méthode avec /etc/network/interfaces).
  • la possibilité de démarrer simplement sur une clé usb, sur n'importe quel ordinateur... C'était déjà le cas avant ? J'avoue ne pas avoir suivi ce point...

Et pour l'essayer, toujours pareil : on peut http://www.ubuntu-fr.org/telechargement, ou http://doc.ubuntu-fr.org/migration_hardy_intrepid.

jeudi 11 septembre 2008

latex (texlive), pdf et fontes horribles

Je viens de trouver la solution d'un problème qui me turlupinait depuis environ 1 an (au moins...).

Mes pdf produits par latex étaient jolis, vus de loin. En se rapprochant de l'écran, pas génial, mais ce n'est pas très grave, les pdf c'est fait pour être imprimé. Plus gênant, beaucoup plus gênant, la sélection de texte étant une vraie plaie, pour ne pas dire que ça faisait n'importe quoi. Dans Evince et dans l'Acrobat Reader d'Adobe, rien à faire. Et je ne parle pas de la recherche de texte... Et le meilleur venait de l'impression : si Acroread n'avait pas grand problème, Evince ramait tellement qu'il en attaquait la plage : saturation du processeur pendant plus de 10 secondes par page, et rendu vraiment abominable sur toutes les imprimantes laser à ma disposition, à peine lisible pour le texte, mais parfait pour les formules et les images. Bref, la fête.

J'ai essayé plein de méthodes pour générer différemment mes pdf. J'utilise couramment ce formidable logiciel qu'est Lyx, avec la compilation via latex+latex+dvips+ps2pdf. La première idée était de changer l'option PDFSETTINGS de ps2pdf, comme indiqué dans la documentation. J'ai réussi à améliorer la qualité des images en réglant cette option à printer, mais rien sur les fontes et l'impression par Evince... Je me suis dit à un moment que c'était Lyx. Depuis, j'ai l'occasion maintenant d'utiliser beaucoup plus du « vrai » latex, avec plein de petits bouts de macros dedans (je m'amuse comme un fou en ce moment :) ), vraiment compilé à la main, et pareil... Au cas où le fautif serait ps2pdf, j'ai essayé pdflatex (que je n'ai pas encore adopté parce que j'ai toutes mes images en ps, fabriquées par le très « original » logiciel de dessin Xfig et l'excellent script fig2ps, qui permet d'avoir simplement des figures avec du texte et des formules latex dedans...). Même résultat.

J'ai donc trouvé la cause de tous ces problèmes. J'imagine que je suis pas le seul à qui ça arrive, mes fichiers tex n'ont rien de particulier, et mes documents lyx sont d'un commun tout juste compensé par la haute valeur ajoutée du contenu scientifique qu'ils contiennent. L'installation d'Ubuntu est récente sur cette machine et sans grande modification. J'ai pourtant mis du temps à trouver. J'espère que des personnes faisant la recherche sur « latex pdf evince impression » ou « latex pdf ubuntu affichage » ou « latex pdf sélection texte » pourront tomber ici...

Le problème venait visiblement de texlive, devenue la distribution latex « officielle » sous Ubuntu depuis Gutsy (tout pile un an), remplaçant petit à petit l'ancienne distribution tetex. Les polices ne sont visiblement pas gérées de la même façon et maintenant (je ne peux pas vérifier comment c'était avant), les lettres sont transformées en images bitmap, à la fois pixellisées (donc moche) et lourdes (donc qui prennent du temps à être envoyées à l'imprimante et de la place sur le disque dur). Deux possibilités pour arranger cela :

  • installer le paquet cm-super, via par exemple sudo aptitude install cm-super. Besoin de rien modifier dans le fichier tex|lyx, les polices moches bitmap utilisées avant (« cm ») seront remplacées automatiquement à la prochaine compilation. Un problème : si dans trois ans vous changez de machine et que vous oubliez que vous aviez installé cm-super, rebelote...
  • rajouter dans le préambule de votre fichier tex l'utilisation du package des polices latin modern : \usepackage{lmodern}. L'inconvénient étant certes qu'il faille modifier vos fichiers actuels, mais l'avantage est qu'ils seront compilés partout pareil. De plus, il paraît (j'y connais rien, c'est ce que j'ai lu) que cette police est un peu plus fidèle aux anciennes polices bitmap que cm-super...

Ce qui est bien, c'est que j'ai un mémoire un peu plus présentable maintenant... :)

jeudi 31 janvier 2008

Lancer totem en fullscreen

J'ai réinstallé récemment l'ordinateur qui me sert de télé/media center. J'ai un certain nombre de fichiers avi, que je regarde de temps en temps. Avant, je faisais ça avec, au choix, vlc, mplayer ou xine. Je me suis décidé à passer à Totem.

Pourquoi Totem ?

Bin simplement parce que c'est le logiciel par défaut de chez Gnome en fait, et donc le truc a priori le mieux intégré à mon environnement. Il est installé par défaut, il ne pause plus de problèmes de codecs comme j'ai toujours eu avant (et qui faisaient que je préférais l'éviter justement). Bref, pourquoi pas...
Autre avantage, il est plus rapide à se lancer que vlc, plus convivial que xine et... bon, ok, rien ne sera jamais mieux que mplayer. :)

Les codecs

Oui, tiens, précisons-le : il suffit d'installer le paquet ubuntu-restricted-extras, et il fait tout le reste... C'est pourtant simple, non ?

Problème : le lancement en plein écran

Moi ce que je veux, c'est juste d'ouvrir de façon systématique mes fichiers en double-cliquant dessus et que ça s'ouvre en plein écran. Je suis flemmard et je ne veux pas appuyer sur F après avoir ouvert le fichier. Avec tous les autres lecteurs, c'est une préférence à régler (dans un menu ou éventuellement un fichier de configuration).

Et là, on tombe sur un os. Impossible de trouver aucune configuration particulière, à part un .gconf/apps/totem/%gconf.xml inutilisable et un .gnome2/Totem/state.ini minimaliste. Le tout est visiblement mal documenté, ou du moins après avoir longtemps cherché je n'ai rien trouvé. Le menu des préférences bien sûr ne sert à rien.

Le man nous dit qu'il existe une option --fullscreen, mais uniquement pour Passer en plein écran une instance existante de Totem. Bon... Mal barrée cette histoire.

Et là, l'idée : créer un fichier /usr/local/bin/totem, qui sera systématiquement lancé à la place de l'original /usr/bin/totem, et y mettre ce qui va bien :

#!/bin/bash
 
[ "$TERM" != xterm ] && /usr/bin/totem $* || /usr/bin/totem "$*" &
sleep 1
/usr/bin/totem --fullscreen

Explications :

  1. On lance /usr/bin/totem avec tous les arguments qu'on lui passe (en particulier, les noms de fichiers). Il faut échapper les noms si on lance totem en console, c'est pour ça que c'est un poil compliqué.
  2. On attend une seconde, le temps que totem ait démarré. Sur une machine qui met un peu plus de temps, il faut rallonger...
  3. On passe en plein écran.

C'est améliorable, je prends toute idée utile...

Edit 10 jours plus tard : J'avais oublié qu'il y a deux façon de prendre tous les arguments d'un script : "$*" concatène tout le monde entre des guillemets, on ne voit plus qu'un «mot»; "$@" met chaque argument entre des guillemets et les sépare par une espace, on voit le bon nombre de «mots». Il suffit donc de faire :

#!/bin/bash
 
/usr/bin/totem "$@" &
sleep 1
/usr/bin/totem --fullscreen

vendredi 11 janvier 2008

Chat vidéo sous Ubuntu

C'est un peu ça aussi les relations à distances : c'est quand même mieux de se parler, et c'est encore mieux de se voir. Et franchement, quand chacun a une webcam mais qu'on ne trouve pas comment les utiliser, c'est ralant.

C'est un fait connu de tous ceux qui ont essayé de « vidéo-chatter » sous Linux : c'est impossible, il y a toujours quelque chose qui ne fonctionne pas.

  • Pidgin (anciennement Gaim - mais quelle idée de prendre un pigeon comme emblème ?), logiciel de messagerie instantannée multiprotocole, utile pour avoir ICQ et MSN dans la même fenêtre, ne supporte pas la vidéo (la légende dit qu'en 2003 on y croyait, mais que finalement la vidéo et la voix ne seront jamais dans Pidgin).
  • Kopete, équivalent pour qui veut bien utiliser les librairies KDE (chez moi, 99Mo pour installer Kopete...), connaît un bug grave depuis quelques mois qui l'empêche de bien envoyer les images de certaines webcams (ça dépend du driver, au moins gspca et uvcvideo sont touchés d'après mes tests).
  • aMSN, clône assumé du logiciel de Microsoft, qui paraît-il fonctionne très bien, est affreusement moche dans les dépôts officiels (problème d'interface et de polices anti-aliasées).
  • Les logiciels SIP ne fonctionne pas tous, sont parfois bloqués par la Freebox sans que l'on comprenne pourquoi, tous les serveurs SIP n'implémentent pas tous parfaitement le protocole, bref, c'est la galère. J'ai quand-même essayé le Wengophone et Ekiga, avec un compte Openwengo et un compte Ekiga, et les résultats ne sont clairement pas au rendez-vous : quand ça marche une fois sur deux, c'est mieux que d'habitude (et je ne parle même pas de la complexité d'Ekiga). Sans compter quand si ça marche, faut convertir toutes les personnes que vous voulez voir à ce protocole qui ne sert qu'à ça...
  • La cerise sur le gâteau, c'est l'énorme m*rdier que c'est d'installer ces foutus drivers de webcams, quand on arrive par un heureux hasard à les trouver. On bidouille des trucs sales qu'on recompile mal pour en mettre (au mieux) plein le /usr/local et le /opt et qu'on ne saura jamais si on les a bien désinstallés...

Bref, j'arrête de me plaindre, car j'ai deux bonnes nouvelles :

  1. La webcam Logitech Quickcam Messenger (046d:08da) est supportée de base sous Ubuntu désormais. Ce qui veut dire qu'il ne sert à rien d'installer aucun driver (sur une Ubuntu Gutsy neuve en tout cas), « on branche et ça marche ». Le driver uvcvideo, installé de base, se charge de la faire fonctionner.
  2. Le logiciel libre est tout-puissant, c'est connu. :-) Quand il y a un problème, il est résolu par quelqu'un qui sait le résoudre. Le aMSN pas-moche est instalable, tout est expliqué en détail sur l'excellent wiki de la communauté francophone. Et au lieu d'utilser des scripts qu'on-sait-pas-ce-que-ça-fait-si-ça-plante, des gens biens ont fait des paquets. C'est simple, c'est propre, c'est facilement désinstallable, et ça marche à tous les coups. au final, il suffit de taper dans une console :
sudo mkdir /usr/local/src/amsn && cd /usr/local/src/amsn # pas obligatoire, mais c'est mieux
sudo wget http://download.tuxfamily.org/amsnskins/packages/ubuntu/amsn-releases/amsn_0.97sapphireR1-0ubuntu1_i386.deb http://download.tuxfamily.org/amsnskins/packages/ubuntu/tcl-tk/tcl8.5_8.5-0ubuntu1_i386.deb http://download.tuxfamily.org/amsnskins/packages/ubuntu/tcl-tk/tk8.5_8.5-0ubuntu1_i386.deb
sudo aptitude install tcltls && sudo dpkg -i *

Et là arrive le bonheur du chat vidéo (vidéo dans les deux sens hein). Bon, certes, il n'y a pas le son. Personnellement, je m'en fous, je suis dégroupé, le téléphone c'est illimité.

samedi 5 janvier 2008

Installation d'Ubuntu sur un portable Packard Bell EasyNote BG46-P-018 (12") (1/2)

J’ai acheté un nouveau portable pour Noël (pas pour moi, pour Amélie en fait). Il s’agit d’un ultraportable. Le choix est restreint sur ce segment, sachant qu’on voulait un portable à la fois léger (2kg max) et puissant (processeur Intel Core 2 Duo T7100 minimum), et le tout sans mettre plus de 1300€.

Lire la suite...

mercredi 19 septembre 2007

Préférences réseau NetworkManager

Je cherchais depuis longtemps comment faire pour désactiver la connexion automatique de mon portable sur un réseau wifi qui n'est pas le mien quand je suis chez moi (il s'y connecte parce qu'il a le même nom qu'un où je me suis connecté un jour).

NetworkManager, le nouveau gestionnaire de connexion adopté par Ubuntu se connecte automatiquement partout comme il faut : il n'est pas prévu pour être tweaké. Mais une possibilité a été laissée néanmoins,uniquement pour la désactivation de la connexion automatique d'un ESSID donné. Deux façons :

  • graphiquement, lancer l'éditeur de configuration (gconf-editor dans une console), puis aller dans system -> networking -> wireless -> networks -> le ESSID en question, cliquer-droit sur la clé bssids et choisir Désactiver.
  • puissance de Linux, on peut faire ça en une ligne en console :
gconftool-2 --recursive-unset /system/networking/wireless/networks/<ESSID>

Trop facile...

mercredi 4 juillet 2007

Histoire de clavier

Juste pour le garder à l'esprit, ça pourrait servir (piqué sur le blog de Damocles, en licence CC-ASA) :

Disposition du clavier français sous Linux

Ça peut toujours servir. Au passage, ceux qui n'étaient pas au courant noteront combien il est facile de taper des accents sous Linux...

- page 1 de 2