You are currently browsing the category archive for the 'Uncategorized' category.

Actuellement à Compiègne pour raison professionnelle (ah ah, comment ça fait tout de suite sérieux) je me prend de passion pour la photo depuis l’achat d’un appareil compact. Pour le plaisir de faire partager mes photos j’ai créé un compte sur flickr (le site wébeudeupointzero avec le nom le plus imprononçable), vous pourrez donc trouver des photos de Compiègne et de ses environs à cette adresse. J’essaye de ne poster que des photos à peu près réussi, vu que je débute et que mon appareil n’est pas un réflex (toujours la fautes au matériel !) j’aimerais tous les refaire autrement mais la flemme et il faut bien apprendre.

Pour vous mettre en appétit (en espérant que ça ne fasse l’effet inverse) :

Ruelle à Margny lès Compiègne.

Ruelle à Margny lès Compiègne de nuit.

J’avais acheté cette appareil pour filmer mes road trips en accéléré, traverser la france d’est en ouest plusieurs fois par an donne envie de faire partager cette expèrience. Le plaisir de voir défiler les paysages : les plaines céréalière, les terres d’élevage de l’ouest, etc. J’ai fait deux-trois tests, avec une images toutes les deux secondes le résultat est correcte. Mais ceci sera pour un prochain billet (wow je fais même du teasing :) .

J’utilise beaucoup en ce moment les conteneurs de la STL et j’ai eu deux petites surprises sur les std::list et les std::set, vous allez voir elle sont encore mieux que celles des Kinder Surprise.

Dans mon code je devais faire le transfert d’éléments d’une liste dans une autre, ce qui donnait quelque chose de ce genre :

list<int> l1;
for(int i=0; i < 10e5; ++i)
   l1.push_back(i);

list<int> l2;
for(int i=0; i < 10e5; ++i)
   l2.push_back(i);

//algo de malade

//copie des éléments de l2 dans l1
for (list<int>::iterator it = l2.begin(); it != l2.end(); ++it)
   l1.push_front(*it);

Si je remplaçais ce code d’une complexité en O(n) par celui utilisant la fonction splice qui elle est en O(1), j’avais tout de même un temps d’exécution plus long ! (note : dans mon cas il était plus long, je ne sais pas si dans cet exemple précis il l’ait, d’ailleurs le code mis n’est là que pour se mettre dans le contexte, je m’amuse rarement à compter deux fois jusqu’à l’infini ;)

l1.splice(l1.begin(), l2);

Quand on sait que splice doit relier la chaine de l2 au début de l1, soit seulement faire quelques modifications de pointeurs, il y a de quoi se poser des questions. En cherchant un peu, j’ai pu constater que la version Debug de Visual Studio s’amuser à avoir un algorithme en o(n) pour effectuer des choses et d’autres dans le but d’aider le debuggage. Bref, lorsqu’on compare la rapidité de deux code il ne faut pas trop faire confiance à ce que disent les chiffres, bien comprendre ce qu’il se passe derrière et, éviter de trop tester la rapidité d’un code par rapport à un autre en mode Debug.

Passons au conteneur set de la STL et sur sa façon de d’éliminer les doublons. J’avais besoin d’une liste d’éléments uniques, je décide donc d’utiliser un set qui fera tout seul le bouleau pour éliminer ceux qui sont égaux. Pour lui permettre d’effectuer sa tâche, on doit lui donner en paramètre une fonction ou un foncteur de comparaison stricte. Par défaut c’est le foncteur less qui est utilisé, qui lui même utilise l’opérateur « < ». Pour ne pas m’embêter j’ai surchargé l’opérateur « < » pour des objets de ma classe mais de façon laxiste : deux objets différents pouvaient donner ceci :

a < b est faux
b < a donne aussi faux
a == b vrai ou faux ?

On a donc deux objets qui semblent égaux mais qui pourtant ne le sont pas, du moins pas de la façon dont je voyais la chose. Effectivement set ne se fie qu’à l’opération de comparaison fourni pour savoir si deux éléments sont égaux,  si bien qu’il m’en éliminait certain non égaux (au sens de l’opérateur « == » ) concidérant qu’ils étaient déjà prèsent. J’ai donc dû recoder un opérateur « < » respectant la régle : « si a < b et b < a alors a et b sont égaux ».

Alors que des millions (milliards ?) d’euros ont était dépensé dans la construction d’un engin qui nous amène tous à la mort (ou pas), j’ai trouvé en faisant une simple recherche sur internet le boson de Higgs, regardez plutôt :

Voila il était juste sur le dos à Higgs son boson !

Voila il était juste sur le dos à Higgs son boson !

Le premier groupe du jour est Subtle avec l’album For Hero: For Fool, du hiphop avec de la guitare, de la basse, de la batterie, des instruments, bref ils touchent un peu à tout ce qui le rend aussi proche du rock inde. Ceux qui ont aimé le dernier album de Saul Williams devrait l’apprécier.

leur MySpace


Le second : Beach House et leur album Devotion. Un couple : la femme à la voix et à l’orgue, l’homme à la guitare ou au clavier donne une musique psychédélique. La voix de la chanceuse passe de l’allure menaçante à la consolation et à la tristess en un rien de temps soufflant le chaud et le froid sur nos pauvres esprits hypnotisé par le piano. Bref à écouté tellement on n’a pas l’habitude d’entendre ce genre de son.

un clip de Heart of Chambers

Et enfin CSS qu’on ne présente plus nous sort leur second album Donkey, résultat du test : pas mauvais mais la prod qui nous semble excellente les premières écoutes, nous donne par la suite l’impression qu’ils auraient dû être plus puissante et plus extravagante. Ça n’en reste pas moins un bon album à mon goût.

Qui dit nouvel ordinateur, dit forcément nouvelle installation de Linux. Voici donc l’extraordinaire histoire d’Olympi et de son compagnon le héron robuste au pays d’Asus, le retour.

(Pour google et pour les badauds je rappelle que mon portable est un Asus M50VM-AS010C.)

Déjà lors de l’installation j’ai dû utiliser l’option « Mode sans échec graphique » avec installation direct, sinon j’avais un gel de l’écran.

Premier démarrage, ouch c’est pas triste :

  • Résolution 800×600, pas de driver nVidia automatiquement détecté
  • Pas de réseau
  • Pas de son en (sortie, j’ai donc pas pu tester le micro :) )
  • Pas de wifi
  • Par contre la webcam marche avec Ekiga
  • Le lecteur de carte SD marche
  • Le lecteur d’empreinte marche

Première étape faire marcher le réseau, comme par hasard c’est le même chipset réseau utilisé que sur mon ancien portable, soit un RTL8111/8168B. Donc on relance ubuntu avec l’option du kernel « pci=nomsi », le réseau est de retour, on en profite pour faire les mises-à-jours, on redémarre et oh joie le réseau marche, le bug a du être réglé dans une nouvelle version du kernel.

Deuxième étape utiliser le driver nvidia. La carte 9600 GS M du portable n’est pas supportée par les drivers des dépôts. On installe donc les derniers driver nVidia disponible sur leurs site en passant par la doc d’ubuntu.org.

Troisième étape le son, et là on tombe sur un os. En effet le portable a une puce Realtek hda-intel ALC 663 et son driver audio n’est disponible dans alsa que depuis la dernière version (1.0.17), version supérieur à celle du paquet d’Hardy.  De plus, pour pouvoir utiliser ce dernier driver il faut un kernel de version 2.6.26 ou plus récent, version aussi non disponible avec Hardy. En voyant cela je décide de passer directement à la prochaine version d’Ubuntu : Intrepid Ibex, elle est certe toujours en alpha, mais elle permettra de résoudre les précédents problèmes.

J’installe l’alpha en version alternate, pour éviter de probables problèmes. Je reboot, j’arrive sur le bureau et on installe toutes les mises à jours (donc déjà le réseau marche lui :) ). On rereboot on installe les drivers nvidia (version 177, il propose aussi la version 173). Ensuite pour régler la luminosité merdique on suit ce qui est marqué ici, ça permettra de désactiver le censeur de luminosité et d’activer les touches pour régler celle-ci.

Pour le son on va pouvoir enfin installer la dernière version du driver alsa en suivant ce qui est mis sur cette page. Pour le fichier /etc/modprobe.d/alsa-base j’ai mis la ligne « options snd-hda-intel model=3stack-dig », et on a enfin du son (ne pas hésiter de mettre le volume au maximum pour l’entendre). Cependant il reste quelque problème : pas son analogique sur la sortie jack S/PDIF (j’ai pas pu tester si il y en avait en numérique) et surtout les hauts-parleurs ne s’éteignent pas lorsqu’on branche un casque. Sinon l’entrée micro marche. Il faudra pas oublier de recompiler le driver alsa à chaque mise à jour du kernel (juste le driver pas besoin pour les utilitaires ou les bibliothèques). Edit : le pilote alsa 1.0.17 est maintenant intégré dans intrepid ibex :) .

Le wifi ne fonctionne pas par défaut, j’ai pas trouvé comment le faire marcher, il semblerait que le driver soit en cours de construction http://www.gossamer-threads.com/lists/linux/kernel/960713. Edit : le kernel 2.6.27 est actuellement en test dans Intrepid, j’ai pu voir qu’il détecté au moins les réseaux wifis, ça avance… :)

La souris Asus livrée avec le portable posséde des cliques latéraux sur la molette, si vous voulez les utiliser pour le défilement horizontal il faut ajouter « Option         “XAxisMapping” “6 7″ » dans la section « InputDevice » de votre xorg.conf. Pour plus de détails ou si vous voulez les utiliser pour autres choses voir la doc d’ubuntu.fr.

Pour résumer voici une liste de ce qui a était testé et qui fonctionne :

  • le réseau filaire
  • le son en entrée et en sortie
  • la webcam
  • le scanneur d’empreinte
  • l’accélération 3D
  • la luminosité
  • certaines touches de fonctions (luminosité, écran LCD éteindre/allumer,  mise en veille)
  • touchpad avec barre pour faire défiler les ascenseurs
  • lecteur de carte SD

Je viens de recevoir un Asus M50VM-AS010C (voir ici pour les caractéristiques exactes), voici mes impressions notées au fil du temps sur celui-ci :

  • Oh qu’il est joli, oh comme il brille, oh comme il va attraper les empreintes de doigts sur le dos de l’écran.
  • Ça à l’air du tout bon pour la connectivité, si ce n’est le port HDMI et VGA sur le bord gauche de l’ordinateur (VGA au fond et HDMI à l’avant).
  • Cool il y a un un bouton mécanique à l’avant gauche pour désactiver/activer le bluetooth et le wifi, pratique quand on est sur batterie.
  • En comparant la taille avec mon ancien : il est de même hauteur, moins profond, plus large et l’écran est moins haut.
  • La sacoche est mieux, avec des poches externes et internes plus grandes et plus accessibles
  • Il livre l’ordinateur avec une lingette pour attraper les poussières de l’écran, sympa.
  • Installation de Windows Vista : c’est toujours un plaisir d’avoir trois fenêtres qui vous agresse lors de la première ouverture de session ¬¬
  • On peut utiliser le lecteur d’empreinte pour s’authentifier au lieu du mot de passe, on a même plus besoin de sélectionner son compte et de taper son mot de passe, on passe le doigt et il ouvre la session directement avec le bon compte. C’est vraiment pratique et rapide à utiliser, dommage que le programme d’Asus pour gérer ça soit en anglais.
  • La souris à LED livrée ne décroche pas (l’ancienne version était inutilisable en jeu) et possède les cliques latéraux sur la molette. − Vais-je continuer à l’utiliser ? − C’est bien parti pour.
  • En bidouillant dans les options de Synaptics et en revenant en fin de compte aux options pas défauts, les touches modales du touch-pad fonctionnent. Leurs utilisations est simples et efficaces, et on peut les configurer.
  • Pffff on installe son clavier bépo, ça ira déjà mieux :)
  • J’adore vista : je lance xchat, le par-feux me demande si il faut le laisser passer, je répond oui, pouf UAC genre « attention c’est bien vous qui voulez configurer le par-feux ? », ça manque de cohérence tout ça.
  • Les enceintes sont correctes (toujours meilleurs que celles de mon ancien portable), mais elles manquent de profondeurs et de graves.
  • Avec les problèmes d’Asus sur certaines séries d’écrans j’avais craint le pire, finalement il est net et précis.
  • Le clavier est bien, pas de problème de frappe, le pavé numérique bien placé. Mais bon, un clavier droit aurait été mieux :p.
  • La webcam possède un miroir et une diode pour indiquer quelle marche.
  • Express Gate :
    • c’est rapide à démarrer
    • c’est couillon de devoir sélectionner la langue et la date à la première utilisation (même si je comprend bien pourquoi ils doivent le faire)
    • il fout une résolution qui n’est pas celle de l’écran ¬¬, pas trouver comment la changer
    • j’ai pas réussi à taper des caractères en Alt-Graph
    • faudra voir si c’est bien à l’usage, genre le matin pour regarder rapidement ses mails
  • En fin de compte elle est pas si nul que ça cette nouvelle skin de Windows XP, hun quoi c’est un nouvelle OS ?
  • Avec Asus Smart Logon il est possible d’ouvrir une session par reconnaissance faciale, pas mal :)

Pour le jeu, voici mes « tests » :

  • Urban Terror est parfaitement fluide (vaut mieux :) )
  • Crysis est jouable en niveau bas + résolution native (1440×900) : en mode faible on a entre 20 et 40 fps et en mode moyen de 10 à 15 fps.
  • pour éviter des problèmes d’affichage en utilisant la touche Caps-Lock j’ai dû désactiver l’affichage du changement d’état en suivant ce qui est marqué .
  • l’ordinateur chauffe peu, pendant une partie de Crysis  de deux heures j’ai du entendre le ventilateur se mettre en marche qu’une seule fois.

Voila pour l’instant, il reste à faire :

  • Installer ubuntu dessus et voir sa compatibilité, je sent que ça va pas être de tout repos :) (edit : effectivement c’est le bordel, pour l’instant j’ai pas de son, et la luminosité est très variable, à suivre…)

Des photos du portable prisent à partir de la webcam du portable. Il y a un logiciel Asus livré pour prendre des photos et des vidéos avec les paramètres qui vont biens.

Sinon Materiel.net offrait en même temps un t-shirt, beau et à ma taille, ce qui est rare pour un vêtement promotionnel.

Vous pouvez poser des questions en commentaires, j’essayerais d’y répondre.

Questions :

  • Benchmark 3D Mark 2006 : 4355 3DMark, CPU Score 2186, SM 3.0 Score 1609, SM 2.0 Score 1754.
  • Dalle et luminosité : Il faut savoir que la luminosité de l’écran est géré par un programme qui l’adapte suivant la luminosité ambiante et la luminosité que veux l’utilisateur. Pour l’instant j’ai pas eu envie de le désactiver (d’ailleurs en cherchant un peu j’ai pas trouvé comment le désactiver, mais bon il y a toujours moyen trafiquer ça) c’est donc qu’il n’y a pas de problème. De plus un ami possesseur de ce même  portable n’y trouve rien a redire.

Cela fait quelque temps que j’ai réussi à résoudre un bug d’affichage. De façon totalement aléatoire j’avais mon écran qui se gelé avec l’impossibilité de retourner sur une console, par contre le curseur pouvait encore bouger. La seul solution propre pour éteindre le PC était de taper une combinaison de touche du genre ALT – Impr-Ecr – K (touche magique du kernel que je me souviens plus très bien).

Un jour, je suis allé acheter du pain à la boulangeri, les tartines à la confiture étaient excellentes avec mon thè chaud. Puis un autre jour, je m’étais mis en tête de résoudre ce problème car, devoir rebooter plusieurs fois par jour ça rappelle de mauvais souvenir windowsien :) (argh 98 !). La solution est donc de lancer le kernel sans le support de l’APIC soit avec le paramètre noapic (désactive l’utilisation de l’APIC) ou moins violent nolapic (j’en sais pas plus :) . Le deuxième et préférable car ça me permt à une clef USB branchée à chaud d’être détectée normalement.

J’ai compris que c’était l’APIC qui posait problème, parce que j’avais remarqué que pendant des gels d’écran qui ne duraient que quelques secondes, j’étais déconnecté du réseau. En regardant de plus près (cat /proc/interrupts ou lspci -v) j’ai vu que ma carte graphique et ma carte réseau partage la même ligne IRQ, qui est justement gérée par l’APIC. L’informatique est toujours pleine de surprise :) .

J’ai pu lire que ce bug provenait d’information du bios qui étaient à la ramasse, et que si possible mettez à jour le bios avant de désactiver l’APIC, c’est toujours mieux de tourner avec une APIC fonctionel semble-t-il. Pour la doc sur les paramètres de l’APIC vous pouvez geter un oeil par là http://www.mjmwired.net/kernel/Documentation/kernel-parameters.txt.

Dans mon billet relatant mon installation d’Ubuntu Hardy j’avais eu un problème avec ma carte ethernet, et j’avais du ajouter une option pci=nomsi au kernel pour avoir le réseau. Je suis retourné voir le rapport de bug sur launchpad se rapportant à se problème, j’ai vu qu’il y avait une solution disponible qui marche chez moi.

J’ai du exécuter la commande proposée dans un autre commentaire, pour avoir un driver fonctionnel, et que le driver r8169 ne soit plus lancé.
commande :

$sudo update-initramfs -c -k all

Le problème ? Le driver du chipset r8169 était utilisé à la place du driver r8168 par le kernel, mais le bug a apparut seulement depuis que l’option msi du noyau est mise par défaut, c’est à dire depuis la 2.6.24. Voila une bonne chose de faite, plus qu’à essayer de résoudre le gel de X causé par le driver nVidia, je pense que là il va falloir s’en remettre aux forces obscures.

Comme promis dans le précédent billet, nous allons voir comment passer d’un dual screen à un mono screen pour jouer.

Voila le principe retenu :

  1. On passe sur une console (comme par exemple CTRL+ALT+F2)
  2. On se log et on tape un alias du genre : startxmonitorY
  3. On passe alors en mono-screen, une session X s’ouvre avec une console ouverte
  4. Vous pouvez lancer le jeux à partir du shell ouvert

Tout d’abord on va manipuler le fichier /etc/X11/xorg.conf, faites-en une sauvegarde, ouvrez le et regardez la section « ServerLayout », dupliquez la en dessous de la première, puis changez son identifiant et le Screen utilisé. Voici ce que ça donne chez moi :

#section orignal
Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "ScreenTwin" 0 0
    InputDevice    "Generic Keyboard" "CoreKeyboard"
    InputDevice    "Configured Mouse"
    InputDevice    "Synaptics Touchpad"
EndSection

#section copié et modifié
Section "ServerLayout"
    Identifier     "SingleScreen24Layout" # ligne à modifier, et nom à noter
    Screen      0  "Screen0" 0 0          # ligne à modifier, et nom à noter
    InputDevice    "Generic Keyboard" "CoreKeyboard"
    InputDevice    "Configured Mouse"
    InputDevice    "Synaptics Touchpad"
EndSection

Maintenant on va créer ce « Screen », la méthode dépend du driver utilisé, mais voici le principe : il faut créer une nouvelle section Screen avec les options qui vont bien pour avoir un affichage sur un seul écran, nommée comme dans la section ServerLayout.

Si vous utilisez un driver nVidia, vous pouvez utiliser l’utilitaire nvidia-settings pour créer un xorg.conf configurer pour le mono-screen. Puis utiliser la section Screen ainsi généré pour le mettre dans votre xorg.conf.

Chez moi ça donne ça :

Section "Screen"
    Identifier     "Screen0" # on le nomme de la même façon
                             # que dans la section ServerLayout
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DFP-1: nvidia-auto-select +0+0"
EndSection

#version original
Section "Screen"
    Identifier     "ScreenTwin"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "1"
    Option         "TwinViewXineramaInfoOrder" "DFP-1"
    Option         "metamodes" "DFP-0: nvidia-auto-select +0+0, DFP-1: nvidia-auto-select +1280+0"
EndSection

On a notre xorg.conf de prés, on passe à l’étape d’après qui est de lancer le serveur X pour tester notre fichier. Allez dans une console avec CTRL+ALT+F2, logguez vous, puis tapez la commande suivante qui devra normalenent lancer le serveur X avec un shell d’ouvert (xterm) :

$startx /usr/bin/xterm -- :1 -layout SingleScreen24Layout

Petite explication de la commande :

startx : programme qui lance le server X

/usr/bin/xterm : programme exécuté après que X soit lancé. par défaut ça ouvre votre session gnome/kde/autre

« — » : marque le début des arguments qui seront passé à votre serveur X (xorg dans notre cas)

:1 :  on lance X sur la seconde console graphique

-layout SingleScreen24Layout : l’option -layout permet de préciser le layout à utiliser (par défaut le premier du fichier xorg.conf), on utilisera le nom donné à la section ServerLayout copiée.

Si le serveur ne se lance pas, lisez les logs qu’il vous donne et essayez de corriger le problème, ça peut être qu’un simple problème de nom mal recopié ou quelque chose de bien plus casse tête.

Maintenant qu’on a un fichier xorg.conf fonctionnel on va créer un alias dans le fichier de rc de votre shell préféré (le ficier ~\.bashrc pour bash par exemple), ajoutez cette ligne :

alias startxtruc='startx /usr/bin/xterm -- :1 -layout SingleScreen24Layout'

Vous n’aurez plus qu’a taper startxtruc dans une console pour lancer le server X, puis de lancer le jeu.

J’ai installé il y a quelques jours la nouvelle version d’Ubuntu Hardy sur mon portable Asus A6T. Et j’ai eu deux soucis : pas de réseau ainsi qu’aucun son à la sortie de la prise jack.

J’ai tout d’abord voulu faire une installation à partir de ma Feisty, l’installation c’est bien passé (en dehors du fait que le driver nvidia plantait toutes les dix minutes, ce qui fait que j’ai dû rebooter plusieurs fois pour terminer l’installation…). Mais au reboot de fin d’installation je n’avait plus de réseau, un $sudo dhclient ni fit rien, je reboot pour passer à la précédente version du noyau et là ça marche. Alors je cherche sur le net pour trouver une solution et je tombe sur ce rapport de bug : https://bugs.launchpad.net/ubuntu/+source/linux/+bug/141343 ce rapportant au chipset r8169 de Realtek utilisé dans mon portable. Quelqu’un propose en commentaire de mettre pci=nomsi dans les paramètres du kernel, ce qui marche. Par contre ça sent le contournement de problème plus que ça résolution :/
J’ai donc dans mon fichier /boot/grub/menu.lst les lignes suivantes :

title Ubuntu 8.04, kernel 2.6.24-16-generic
root (hd0,7)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=265b7039-8201-40ea-8143-ed4961ab664c ro quiet splash pci=nomsi
initrd /boot/initrd.img-2.6.24-16-generic
quiet

Ensuite je me suis aperçu que ma prise sortie jack ne faisait pas son boulot la feignasse ! La solution ce trouve ici : http://doc.ubuntu-fr.org:81/audio_intel_hda . Donc un problème avec le HDA d’intel, j’ai ajouté la ligne suivante dans mon fichier /etc/modprobe.d/alsa-base
options snd-hda-intel model=asus
pour trouver quel “model” je devais utiliser j’ai regardé dans ce dépôt au lieu de télécharger les sources juste pour ça.

Mon prochain billet portera sur comment passer du dualscreen à du monoscreen pour jouer, on va trop s’amuser youpi yah !