Le blog du Gentil Démon

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

dimanche 21 février 2010

De plus en plus déçu par Linux

Cela fait maintenant 7 ans que j'utilisais Linux exclusivement. Si je trouve que c'est un environnement de travail (en tant que développeur) agréable, j'arrive malheureusement à une autre conclusion sur mon ordinateur personnel. Mon père, ma compagne utilise Linux (Ubuntu) que je maintiens pour eux et en sont contents. Et tant mieux! Une machine Linux est certainement beaucoup plus simple pour moi à maintenir qu'une machine Windows :) Je suis sûr que mon père ne télécharge pas de joli virus en .exe sur son ordinateur, du moins, si il le fait, ça ne fera pas trop de dégâts ;)

Cependant, tout n'est pas rose. J'ai failli m'arracher les cheveux sur l'installation d'une imprimante, finalement, faire la mise à jour de la distribution m'a sauvé, mais c'est un peu pénible d'en arriver à ça juste pour une imprimante. Je ne compte pas les problèmes de wifi que j'ai eu l'année dernière sur les portables que nous avons ma compagne et moi. J'ai également eu de gros problèmes de performances avec les drivers video Intel. Enfin, si l'on s'en tient au problème matériel, sur mon dernier portable, un Acer Aspire 1810TZ, je dois désactiver dans le bios l'AHCI si je souhaite démarrer linux en moins de 3 minutes...

J'écris ce billet depuis Windows 7. Après avoir essayé et réessayé de faire du montage video sous Linux avec Pitivi, Kdenlive, Avidemux, et autres, j'en ai eu marre des plantages, des problèmes d'incohérence de temps et d'images. C'est ainsi que j'ai essayé le logiciel pour Windows fourni avec la caméra : Total Media Extreme Showbiz. Le nom est très caricatural, mais le logiciel est simple et efficace pour fusionner et/ou découper les videos issues de la caméra, en .mp4 H264/AAC. Le manque de fonctionnalités est évident, mais je n'ai même pas réussi à faire la même chosesous Linux!! Je n'ai pas encore essayer de le faire fonctionner avec Wine. Mais la suite est pire, le meilleur logiciel gratuit que j'ai trouvé pour faire le montage video final est Windows Live Movie Maker!

J'ai redécouvert le calvaire du Dual-Boot... Lorsque je suis sous Windows, je dois passer par le webmail pour lire mes mails (tout l'inconvénient d'utiliser un client mail lourd habituellement), je n'ai pas accès à mes fichiers Linux. Le pire, c'est que je dois aller dans le bios à chaque fois que je change de système pour modifier le réglage du disque dur (PCI vs AHCI)!!

Le développement logiciel est quelque chose de long et compliqué, j'en sais quelque chose. Si je suis pour le Logiciel Libre, je constate malheureusement que celui-ci ne peut s'imposer partout, le développement bénévole fait sur le temps libre a ses limites. Et il n'est pas toujours facile de trouver un business model compatible avec le logiciel libre, n'en déplaise à certains!

mardi 16 février 2010

Réinstallation de Grub 2

L'installation de Windows a toujours fait sauter le contenu du MBR et la dernière édition, Windows 7, ne fait pas exception à la règle.

Ainsi, si vous installez/ou finissez l'installation constructeur de Windows sur un ordinateur après avoir installé Linux, Windows ne manquera pas de corrompre le chargeur de démarrage.

Voici comment réinstaller le chargeur de démarrage grub 2 (dans mon cas, installé par Ubuntu 9.10) :

ATTENTION : ces manipulations doivent être adaptées pour fonctionner sur votre ordinateur. Elles ne fonctionneront pas/n'auront pas le résultat voulu si elles sont tapées bêtement.

  1. Démarrer l'ordinateur sur un live-CD/live-USB d'une distribution linux
  2. Ouvrir un terminal et passer super utilisateur avec su ou sudo -s -H (en fonction de la distribution)
  3. Monter votre partition racine (le '/' de votre distribution installée sur disque dans /mnt)

    mount /dev/sda5 /mnt

    Attention, chez moi la parition est /dev/sda5, mais ça dépend des partitions que vous avez créées. Vous pouvez essayer de repérer la bonne partition (en fonction de sa taille) avec parted ou gparted.

  4. Remonter les systèmes de fichiers virtuels dans /mnt

    mount --bind /dev /mnt/dev
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
  5. Effectuer un changement de racine dans le terminal

    chroot /mnt /bin/bash

    A partir d'ici, les commandes que vous taperez s'exécuteront dans l'environnement de votre distribution installée sur disque.

  6. Réinstaller grub dans le MBR du premier disque

    grub-install (hd0)

Et voila, il n'y a plus qu'à redémarrer :)

mardi 13 octobre 2009

Clé USB 3G sous Linux, le nouveau cauchemar ?

L'installation d'une clé USB 3G sous Linux (testé sous Ubuntu 9.04) ne pose pas de gros problème, mais il est clair que ça ne s'invente pas!!

Lors du branchement de la clé Huawei E1552 (offre Bouygues), celle-ci est reconnu comme un simple clé USB avec stockage en lecture seule. On a ainsi accès au pilote pour Microsoft Windows, aux manuels, ...

Après avoir surfé sur les différents forums et trouvé plusieurs moyens pour l'utiliser, voici le plus simple et celui qui a le moins d'inconvénient de mon point de vue:

1/ Installation d'udev-extras

sudo apt-get update && sudo apt-get install udev-extras

2/ Ajout d'une règle Udev pour que la clé n'utilise pas le pilote usb-storage mais le pilote pour clé 3G

echo 'SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"' | sudo tee  /etc/udev/rules.d/45-huawei1550.rules

Attention, ici, plusieurs valeurs sont "hard-codés" et pourraient devoir être changées suivant la révision matérielle de votre clé. Ces paramètres sont cependant également valables pour la clé Huawei E1550, ça a l'air donc assez stable à ce niveau.

3/ Configuration de la connexion

On (re)branche la clé, quelques secondes après, Network-Manager devrait vous proposer de la configurer.

Ensuite, lorsque vous la rebrancherez, après quelques longues secondes, Un réseau à large bande devrait apparaître dans la liste des réseau disponible de Network-Manager (entre les éventuelles réseau(x) filaire(s) et réseau(x) sans fil). On clique, on rentre le code PIN, et l'Internet est à vous :)

samedi 12 septembre 2009

Reprise des randonnées rollers sécurisées du Jeudi soir à Rennes

Après plus d'un an sans randonnées rollers officielles le jeudi soir à Rennes, la reprise a enfin eu lieu!

La préfecture exigeait en effet une voiture en tête de cortège en plus de la voiture balai. C'est maintenant chose faite et les randonnées reprennent :) Nous étions une soixantaine jeudi dernier pour un parcours de 21km.

Pour nous rejoindre, le rendez-vous a lieu le jeudi à 20h30 sur le Mail Anne-Catherine, près du Boulevard de la Tour d'Auvergne. Départ vers 20h45.

Merci à Rennes Rollers!

lundi 7 septembre 2009

Allers et retours au Garage de l'Arrivée à Rennes

Le 18 Août, je récupérais ma voiture (206 HDI) au Garage de l'Arrivée à Rennes.

J'avais déposé celle-ci le matin en révision pour les 200 000 km et pour un problème de poulie vilebrequin qui faisait un bruit d'enfer car elle avait du jeu. Elle a fini de se détacher quelques centaines de mètres avant d'arriver au garage me laissant seulement le "doux" bruit du moteur, le voyant de batterie allumé au tableau de bord, et l'absence nouvelle de direction assistée. La poulie vilebrequin se trouve à la "sortie" du moteur et entraîne l'alternateur grâce à une courroie (la courroie d'alternateur).

Cette poulie avait déjà été remplacée en 2006 dans un autre garage Peugeot à Rennes...

Premier bilan de cette journée du 18 Août, révision + changement des disques et plaquettes de frein avant + poulie d'alternateur = 737 euros.

À peine reparti du Garage de l'Arrivée, un bruit se fait entendre à l'avant, côté conducteur. Bruit qui existait sans doute déjà avant mais que je n'avais jamais remarqué, probablement à cause du bruit croissant que faisait la poulie vilebrequin avant de se détacher.

Retour au garage, le garagiste l'essaie, ah oui, il y a un bruit. La voiture retourne dans l'atelier, et effectivement il y a un jeu au niveau d'une biellette. La pièce est changée dans la foulée et on ne me fait pas payer la main d'œuvre. Il y en avait pour 10 minutes environ, mais tout cela m'aura bien fait perdre une bonne demi-heure.

Aujourd'hui, ma compagne utilisait ma voiture, et a été obligée de retourner au garage. La courroie d'alternateur était complètement déchiquetée et ne faisait plus son office. Le garage a pris la réparation à ses frais, la moindre des choses de mon point de vue si on tient compte du dérangement.

N'ayant donné aucun papier à ma compagne certifiant la réparation, j'ai appelé le Garage de l'Arrivée pour qu'il m'envoie un papier et faire part de mon insatisfaction sur 3 points :

  1. sortir du garage avec un bruit sur une voiture pour laquelle on a demandé une révision, ça ne me paraît pas acceptable.
  2. le garage ne m'a pas signalé que le feu anti-brouillard arrière ne fonctionnait pas (c'est un problème de connecteur qui ne tient que quelques km après l'avoir rebranché). Norauto lors de ma dernière vidange (oui, je suis feignant :p) au moins me l'avait signalé. Certes il m'avait dit que l'ampoule était grillée et c'était donc trompé de diagnostic, mais au moins, le travail de vérification était fait.
  3. et enfin, ce problème de courroie qui intervient très peu de temps après une réparation touchant directement à cette zone.

Le Garage de l'Arrivée, j'aimerai bien ne plus avoir besoin d'y revenir!

vendredi 17 juillet 2009

Jouons avec les unsigned int en C

Mixer des entiers signés (int) et non signés (unsigned int) en C ou C++ est une bonne manière de se tirer dans le pied...

Petite démonstration :

#include <stdio.h>
 
int main()
{
  int ref = -6;
  int a = 4;
  unsigned int b = 4;
 
  int x = 0;
  unsigned int y = 0;
 
  if (ref + a == ref + b)
    printf("ref + a == ref + b\n");
 
  printf("ref + a = 0x%x\n", ref + a);
  printf("ref + b = 0x%x\n", ref + b);
 
  if (ref + a > x)
    printf("ref + a > x\n");
  if (ref + b > x)
    printf("ref + b > x\n");
 
  if (ref + a > y)
    printf("ref + a > y\n");
  if (ref + b > y)
    printf("ref + b > y\n");
 
  if (ref + a > 0)
    printf("ref + a > 0\n");
  if (ref + b > 0)
    printf("ref + b > 0\n");
}

Enregistrons le tout dans un fichier nommé test.c, puis compilons avec la commande suivante :

$ g++ -Wall -Wextra test.c -o test
test.c: In function ‘int main()’:
test.c:12: attention : comparaison entre des expressions entières signée et non signée
test.c:20: attention : comparaison entre des expressions entières signée et non signée
test.c:23: attention : comparaison entre des expressions entières signée et non signée

Notons les jolis avertissements qui s'affichent pour les lignes 12, 20 et 23 et testons maintenant l'exécution :

$ ./test 
ref + a == ref + b
ref + a = 0xfffffffe
ref + b = 0xfffffffe
ref + b > x
ref + a > y
ref + b > y
ref + b > 0

Le test (ref + a == ref + b) retourne vrai, et en effet, comme on peut le voir en dessous, la représentation binaire (ici en hexadécimale) est identique dans les 2 cas. Tous les autres tests auraient dû échouer : -6 + 4 == -2, ce qui est inférieur à 0. On est tous d'accord ;)

Et pourtant, à chaque fois qu'un entier non signé était présent dans l'expression evaluée, le résultat s'explique mais est pour le moins surprenant. 4 résultats surprenants, mais seulement 2 avertissements correspondants...

Bon débuggage...

PS : l'avertissement à la ligne 12 concerne l'évaluation de ref + a == ref + b.

mercredi 17 juin 2009

chroot debian dans archlinux

Voici un petit howto rapide pour installer un chroot debian dans une distribution linux n'utilisant pas de paquets .deb.

Ce document est basé sur http://www.debian.org/releases/stable/hppa/apds03.html.fr dans lequel j'ai trouvé certains manques.

On télécharge debootstrap dans le répertoire /tmp/deb :

$ mkdir /tmp/deb
$ cd /tmp/deb
$ wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.13_all.deb

Puis on décompresse le fichier .deb :

$ ar -x ./debootstrap_1.0.13_all.deb
$ tar xzf data.tar.gz

Il faut ensuite se connecter en tant que root avec sudo -s ou su, puis :

# cd /tmp/deb
# export DEBOOTSTRAP_DIR=/tmp/deb/usr/share/debootstrap/
# usr/bin/debootstrap --arch i386 lenny /path/to/debian_lenny_chroot/ http://ftp.fr.debian.org/debian

Et voilà, on a un beau chroot Debian dans /path/to/debian_lenny_chroot/ :)

Plus qu'à se connecter à l'intérieur :

# chroot /path/to/debian_lenny_chroot/ /bin/bash

Puis on configure 2, 3 petits trucs :

# apt-get install locales
# adduser test
# su - test

lundi 1 juin 2009

L'utilité des grosses roues en roller...

Le week-end prochain, si la météo est clémente, je participe au Grol Tour. Pour cette randonnée roller de 140 km en 2 jours sur les routes du Golfe du Morbihan et de Belle-Ile, je me suis demandé si il était bien raisonnable de m'embarquer avec des rollers avec des "petites" roues de 80 mm...

Si il y a une dizaine d'année la plupart des rollers in line comportaient des roues de 76 ou 78 mm, celles-ci ont bien grandi depuis! Aujourd'hui, si les rollers de street sont toujours équipés de roues de 56mm environ, on trouve énormément de patins de randonnées avec des tailles de 84, 90 ou 100mm.

Les roues de 76 ou 78 ont quasiment disparus et se retrouvent sur les patins enfants/ados, ou sur les patins de slalom. Les roues de 80 mm se retrouvent sur les patins de freeskate.

Après diverses tentatives infructueuses hier soir pour recomposer une paire de roller en 90 mm avec un chausson dans lequel je suis à l'aise, j'ai eu une révélation!

Les "grosses" roues (90 ou 100 mm) servent à aller plus vite ou à moins forcer pour aller à la vitesse! L'inconvénient étant que le patin est plus difficile long à lancer (et à arrêter). Ces tailles de roues conviennent à une pratique endurante du roller avec un rythme régulier. Du fait de la longueur de la platine, on a aussi plus l'impression d'être sur des rails, d'où la grande stabilité en descente, mais aussi un certain manque de maniabilité à vitesse relativement faible.

Personnellement, j'aime bien foncer, m'arrêter, repartir, etc. J'aime aussi faire le zouave ;) Comme je n'ai pas forcé pour tenir le rythme pour le Grol Tour 2008 (plus court : 110km en 1 journée et 1/2), je me dis que changer de platine et de taille de roues ne fera que m'ennuyer et provoquer des redémarrages plus poussifs! Après tout, ce n'était pas le rythme qui m'a fatigué, mais simplement le fait de rouler 1 journée et 1/2 :)

C'est décidé, je reste en 80 mm :)

samedi 30 mai 2009

À la recherche des .mp3 corrompus...

Dernièrement, j'ai voulu retagguer tous mes mp3 pour que les tags soient tous codés en UTF-8. En effet, j'ai un lecteur mp3 Sony qui utilise normalement l'affreux logiciel Sonic Stage pour le transfert des mp3 dessus. J'utilise à la place le logiciel JSymphonic qui est très bien mais qui se mélange quelque peu les pinceaux entre l'encoding utilisé par le système d'exploitation, celui utilisé par Java, celui utilisé dans les tags...

Par exemple, sur 3 albums de Bénabar, je me retrouvais sur le lecteur avec 3 écritures différentes : Bénabar, B?nabar, B-nabar (avec un carré à la place du -).

J'ai utilisé EasyTag pour "corriger" les tags mais au final, certains mp3 ont été corrompus :(

Comme j'ai une bonne partie des CD correspondants, ce n'est pas trop gênant, le problème c'est de retrouver lesquels sans passer des heures à chercher à la main ;)

Avec la commande file, j'ai pu trouver la différence entre les bons et les mauvais fichiers.

$ file perso/music/Albums\ FR/Junior\ Tshaka/La\ Jungle/01\ -\ Dada\ Wa.mp3
perso/music/Albums FR/Junior Tshaka/La Jungle/01 - Dada Wa.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, Stereo
$ file perso/music/Albums\ FR/Grégoire/Toi_+_Moi/01_-_Ta_main.mp3 
perso/music/Albums FR/Grégoire/Toi_+_Moi/01_-_Ta_main.mp3: Audio file with ID3 version 2.4.0, contains:

Ne restait plus qu'à scripter

#!/bin/sh
files=`find "$1" -name "*.mp3"`
 
IFS=$'\n'
for f in $files; do
    media=`file $f | grep -o 'contains: .*' | cut -d: -f2`
    if [ "$media" == "" ] || [ "$media" == " " ]; then
        echo "$f";
    fi
done

La modification de la variable IFS est nécessaire pour qu'il ne coupe pas les noms de fichiers sur les espaces.

lundi 23 mars 2009

Désactiver les gifs et autres images animées sur le web

Je suis un adepte de l'internet épuré. Certains diraient peut-être même austère ;)

Utilisateur de flashblock et d'adblock, je n'aime pas quand un truc clignote sans raison sur une page web.

Dans la configuration "très" avancée de firefox (accessible par l'url about:config), il suffit de passer l'option image.animation_mode à none pour retrouver la zen-attitude :)

La valeur once est également possible si vous voulez que l'animation se déroule une fois.

- page 1 de 7