Le son Dolby Digital, quelque chose de plutôt instable sous Linux

Mon HTPC m’en aura décidément fait voir de toutes les couleurs. C’est avec le son S/PDIF que j’ai eu le plus de trouble, probablement parce que la prise en charge de ce dernier n’est pas aussi bien testée que le son analogique couramment utilisé. J’ai encore une fois cru que la mort de mon système était arrivée.

Tout a commencé quand j’ai mis à jour de Ubuntu 12.04 vers 14.04. Déjà cela a posé des difficultés, car le gestionnaire de mises à jour ne proposait pas Ubuntu 14.04. Il m’aurait fallu, selon ce dernier, installer 12.10, 13.04, 13.10 puis enfin 14.04! Ces mises à jour successives promettaient de prendre un temps interminable. Ce serait probablement moins long de tout formater, installer 14.04 à partir de rien et puis passer un après-midi à copier/coller des identifiants de disques pour reconstruire les points de montage, reconfigurer des logiciels et déboguer. Cela ne me plaisait pas du tout.

Par chance, j’ai trouvé un moyen de faire la mise à jour en ligne de commande. Mais ce n’était pas nécessaire. Selon cette procédure, démarrer update-manger avec l’option -d aurait pu suffire. Malgré tout, la mise à jour se passa bien et ne nécessita pas plus d’intervention manuelle que d’habitude. Ce fut juste affreusement long; cette machine aurait grandement besoin d’un SSD, mais mon plan d’action pour lui en installer un serait long et tortueux. Je voudrais en effet remplacer la configuration à double SSD du Drake par un seul disque plus gros (au moins 256Go), pour la simplifier, puis mettre l’un des SSD de 120Go dans mon HTPC. L’autre SSD, je ne sais pas encore ce que je ferais avec.

Malheureusement, la machine souffrit de plusieurs problèmes après l’opération. D’abord, elle était devenue plus lente. Je me rendis compte par la suite que chaque opération prenait plusieurs secondes, un peu comme sous Windows XP après trois ou quatre ans.  La machine semblait manquer de mémoire, mais je ne pouvais pas la monter à plus de 4Go à cause de la maudite carte mère. Il allait falloir, pour aller au-delà de 4Go, changer la carte mère, le processeur et tant qu’à faire le boîtier pour aller vers un format MicroATX plus petit; ça n’en finirait JAMAIS!

Ensuite, la lecture de fichiers MKV sous XBMC posait des problèmes avec le son: les voix étaient devenues pratiquement inaudibles. La première fois que c’est arrivé, avec Monde Infernal, j’ai cru que c’était le film qui était enregistré ainsi; les gens suivaient avec les sous-titres. Mais un deuxième film, Insomnie, souffrit des mêmes symptômes. Je ne pouvais pas croire qu’il y avait de plus en plus de films qu’il fallait suivre avec les sous-titres. Si c’est ainsi, je devrai, pensai-je, cesser d’écouter la télévision: une autre limite de plus à cause de ma déficience visuelle, cette fois purement artificielle, parce qu’aucun réalisateur n’est obligé de monter des films ainsi! À noter que c’étaient des films achetés sous forme de DVD et traités par MakeMKV, donc pas la peine de supposer que c’était à cause d’une source douteuse de matériel piraté puisque ce n’était pas le cas!

Cela fonctionnait très bien avec les fichiers AVI et les fichiers MKV fonctionnaient sous VLC. Alors il y avait un problème avec XBMC. La première étape me semblait d’obtenir la version la plus récente, 13.1, de XBMC. Pour cela, samedi passé, je suis allé sur le site de XBMC pour découvrir que je devais taper ceci sur le terminal:

sudo apt-get install python-software-properties pkg-config
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install xbmc

Malheureusement, la commande add-apt-repository ne fonctionnait pas, m’indiquant après plusieurs secondes que le dépôt PPA était absent et de vérifier le nom du dépôt. J’ai vérifié plusieurs fois en vain.

J’ai longtemps cherché pour une solution ou une alternative à XBMC: en vain. Il semblait bel et bien falloir convertir tous ces fichiers MKV en AVI, mais qui me dit que dans quelques mois, si je réussissais à mettre XBMC à jour, je n’aurais pas à migrer toute ma base de données vers un autre format, comme OGM, WebM ou MP4? Ça n’en finirait jamais!

C’est hier (19 juin) que j’ai trouvé quelque chose: modifier les fichiers de configuration de APT manuellement pour réactiver la source de paquets XBMC qui a été retirée pendant la mise à jour. J’ai vérifié que APT allait tenter d’obtenir XBMC depuis un dépôt pour Ubuntu 14.04. Puis j’ai tenté une mise à jour avec sudo apt-get update et sudo apt-get dist-upgrade. Tout a bien fonctionné! En temps normal, cette modification manuelle ne devrait pas être nécessaire. Un ami et quelques personnes sur le forum d’Ubuntu ont pu avec succès ajouter le dépôt de XBMC si bien que c’est sans doute un problème local à ma configuration qui n’aurait de solution que la réinstallation complète, à moins de trouver plus tard, par hasard, une solution.

XBMC mis à jour, les problèmes ne s’arrêtèrent pas là. En effet, hier soir, quand j’ai voulu me reprendre pour écouter Insomnie, eh bien j’avais le son, avec les voix, mais plus le 5.1. XBMC s’obstinait à décoder le flux AC-3 5.1 en stéréo et renvoyait ça par S/PDIF à mon ampli. Encore une fois, j’ai dû chercher, chercher, chercher, pendant presque trois heures! Ça a été très frustrant et j’ai bien cru qu’il n’y aurait rien à faire cette fois, pour arranger ça.

XBMC passe à présent par PulseAudio pour produire du son, mais PulseAudio a encore quelques difficultés avec le passage des données AC-3 directement vers la sortie S/PDIF ou, encore pire, HDMI. Dans mon cas, c’était du S/PDIF au moins, mais même avec ça… D’abord, j’ai trouvé cette page qui indiquait d’utiliser Pavucontrol pour activer le passage du AC-3 et du DTS au niveau de PulseAudio. Un redémarrage de XBMC plus tard, je n’avais toujours pas le son 5.1.

Mais pourquoi, nom de Dieu, cela fonctionnait-il parfaitement sous MPlayer et VLC? Eh bien ces deux-là étaient configurés pour envoyer le son directement vers ALSA. J’y avais veillé voilà des mois! Alors peut-on envoyer depuis XBMC directement via ALSA? Oui, ai-je découvert, mais il faut encore passer une foutue option en ligne de commande. Ainsi, comme avec Emacs, je ne pourrais plus démarrer XBMC directement depuis le Bureau; il allait falloir passer par le terminal à chaque fois. Je m’attendais à ce que ce bogue persiste pour plusieurs versions de Ubuntu, donc plusieurs mois, voire un an, alors cela ne me plaisait pas du tout.

Je fis un test avec Totem qui, je sais, utilise PulseAudio. Lui aussi me sortait du son stéréo plutôt que passer le AC-3 directement. J’ai revu plusieurs fois les paramètres sous Pavucontrol. J’ai essayé de configurer XBMC en 2 canaux plutôt que 5.1. Je me suis assuré que sous Totem, la sortie directe AC-3 était activée. RIEN, non absolument RIEN, n’y changeait quoi que ce soit.

Pour me faire fulminer encore davantage, eh bien une réponse à mon post sur le forum d’Ubuntu me suggérait que Linux n’est peut-être pas le meilleur choix pour moi! J’ai bien failli répondre avec un message de désespoir profond qui aurait donné de très mauvaises idées sur moi, mais je me suis ravisé et adouci le ton. Qu’y a-t-il comme alternatives si cette boîte à merde ne convient pas? Tout jeter et acheter un Mac? Tout formater et essayer avec Windows? Juste obtenir le Mac ou la licence de Windows vont me prendre une semaine après quoi je devrai me taper des problèmes de pilotes, de mises à jour qui n’en finiront plus, des caractères minuscules accentués par l’écran 1080p (une TV 4K, pensai-je, on va oublier ça!), beaucoup de transfert de fichiers, et peut-être rien de mieux au bout. En plus je devrai, dans le cas du Mac, avoir deux ou trois disques durs externes qui vont traîner sur mon meuble de cinéma-maison; ça va être laid et je vais inévitablement finir par en faire tomber un par terre. Ça n’a pas de bon sens! Et que dire de la sortie audio du Mac? Faudra que mon père ou quelqu’un d’autre bidouille un fil pour que le minijack puisse envoyer du S/PDIF à l’entrée coax de mon ampli ou que je change mon ampli pour un modèle avec entrée HDMI étant donné que bien entendu, le Mac n’a aucune sortie S/PDIF optique ou coaxiale!

Oui le lecteur blu-ray va régler le problème pour les films, si je cherche à plus finir pour en avoir un avec sortie HDMI mais aussi S/PDIF (puisque mon satané ampli de malheur n’a pas d’entrée HDMI!), mais que vais-je faire pour la musique? Changer ma TV pour un modèle « intelligent » capable de fouiller sur mon réseau pour aller piger des fichiers musicaux sur mon ordinateur dans le bureau? Et si je n’ai pas le goût de payer 1500$ pour une nouvelle TV tandis que l’actuelle me contente très bien, et en plus faire venir chez moi plein de gens qui voudront acheter la vieille TV mise sur Kijiji et la négocier 200$ plus bas, voire davantage?

À bout de nerfs, j’ai fini par faire le test en forçant XBMC à utiliser ALSA directement. Eh bien dès que j’ai démarré le film, de l’affreuse distorsion a commencé à sortir de mes haut-parleurs. Mais ça fonctionne sous VLC et MPlayer!!!! Pas avec XBMC. Il allait ENCORE falloir configurer PulseAudio en mode stéréo analogique de sorte que je n’aurais plus la possibilité d’utiliser YouTube, GrooveShark ou toute autre application Flash. Ça a été bien utile, GrooveShark, pour mettre de la musique la dernière fois que j’ai invité mon frère et ma sœur à souper. Je ne veux pas reperdre cette fonctionnalité! En plus il se pouvait que la configuration de PulseAudio ne suffise pas; j’allais peut-être devoir désinstaller PulseAudio, de sorte que je ne pourrais même plus faire fonctionner YouTube ou GrooveShark en configurant temporairement le son. PulseAudio est aussi une pierre angulaire d’Ubuntu. Le désinstaller va probablement supprimer beaucoup d’autres logiciels et probablement le méta-paquet ubuntu-desktop, ce qui va gêner toute mise à jour future. Vais-je me souvenir, dans deux ans, que je dois réinstaller ubuntu-desktop avant de migrer vers Ubuntu 16.04? Pas sûr! Que va-t-il se passer si j’omets cette étape? Je m’attends à une catastrophe apocalyptique, à l’échelle de la machine ça va de soit bien entendu! C’était vraiment décourageant, ce retour en arrière.

J’ai songé à la possibilité d’utiliser la liaison S/PDIF pour la musique et une connexion analogique pour l’audio 5.1 dans le cas des films. Malheureusement, je ne suis même pas certain de pouvoir retrouver les trois câbles minijack vers RCA que j’avais achetés pour ça. L’un d’eux est maintenant à l’avant de l’ampli pour permettre de brancher facilement un source audio comme un laptop ou un lecteur MP3. J’aurais bien aimé l’avoir, ce fil-là, quand mon frère a voulu me faire entendre quelques extraits de musique, mais il avait été temporairement réquisitionné pour mon setup de musique. Il en reste peut-être un deuxième derrière le meuble, branché pour qu’un signal analogique de secours se rende de l’ordinateur au système de sons. Le troisième, je ne sais pas où il est! En plus, comme XBMC sert à la fois pour les films et la musique et passe par PulseAudio, je serais obligé de reconfigurer PulseAudio avec Pavucontrol à chaque fois que je voudrais passer entre films et musique. La configuration est pénible, car Pavucontrol ne fonctionne pas très bien avec juste le clavier et les caractères sont encore et toujours un peu trop petits, décidément une véritable gangrène depuis les écrans LCD!!!

Certaines recherches m’ont mené à l’existence d’une bibliothèque A52 qui semble nécessaire pour effectuer le passage AC-3. J’ai alors tenté un sudo apt-cache search a52 et suis tombé sur le paquet libasound2-plugins-extra. Oh, pensai-je, j’avais lu quelque chose au sujet d’instructions pour compiler un plug-in A52 pour ALSA qui était susceptible d’aider PulseAudio pour le AC-3, mais ça semblait pour une vieille version d’Ubuntu. Peut-être le plug-in se trouvait-il dans ce paquet? Je l’ai installé après quoi j’ai redémarré Totem: en vain.

J’ai tenté de revérifier, encore, les paramètres dans Pavucontrol. Eh oui, le AC-3 est toujours coché. Alors pourquoi? Avant de rendre les armes et commencer à planifier plus en détails une solution alternative parce que là j’étais vraiment tanné de me battre avec cette machine qui pose des difficultés depuis son achat en 2009, j’ai tenté un dernier coup avec XBMC. Il y a eu une distorsion de la mort, puis ensuite, comme par miracle, XBMC est retombé sur ses pattes et a commencé à envoyer des données AC-3 à mon ampli! J’ai éteint XBMC et réessayé: ok. Ce matin, j’ai fait un redémarrage complet du système et XBMC fonctionnait toujours avec le AC-3!

Pour les problèmes de performance, j’ai découvert deux coupables: le serveur de Minecraft que je veux garder encore un peu, et Unity+Compiz. J’ai remplacé Unity par LXDE et j’ai eu une bien meilleure performance. J’ai eu quelques difficultés avec la taille des caractères et les touches de raccourci, mais ça semble pas trop mal maintenant.

Problème de pilote pour Fast Track Pro de M-Audio sous Windows 8.1

Hier après-midi, j’ai tenté d’enregistrer des échantillons en provenance de mes deux synthétiseurs en utilisant une interface audio USB Fast Track Pro de M-Audio. L’opération, qui aurait dû être simple, s’est vite transformée en casse-tête. D’abord la connexion physique causa ses propres difficultés. L’interface audio est pourvue de plusieurs connecteurs et boutons qui sont impossible à identifier sans déchiffrer ce qui est écrit en minuscules à côté. À l’avant du boîtier, c’est déjà un peu pénible. En arrière, c’est encore pire. Je n’ai pour le moment trouvé aucune bonne solution à cela, outre mémoriser l’emplacement exact de chaque connecteur et chaque bouton.

Le branchement effectué, j’ai démarré Ableton Live et tenté de là d’établir la liaison audio. Pour ce faire, j’ai configuré le logiciel pour qu’il utilise ASIO, testé que la sortie fonctionnait, puis j’ai configuré une piste audio pour qu’elle prenne une entrée externe en provenance de l’interface audio. J’ai vérifié maintes fois que l’entrée était l’interface audio et le son de la piste était dirigé vers la sortie principale, j’ai activé le monitoring et malgré ça, eh bien aucun son ne sortait de là.

Pour vérifier la connexion physique, j’ai trouvé un réglage très utile sur l’interface audio: un potentiomètre A/B permettant de régler le taux de signal en provenance des entrées renvoyé directement vers les sorties. Cela m’a permis de confirmer que le son passait bien à travers l’interface audio, à un volume audible. Les diodes sur l’interface s’allumaient également.

J’ai alors tenté d’éteindre Live et tester directement avec le Mélangeur de Windows. Pour cela, j’ai activé l’onglet indiquant les périphériques d’enregistrement et observé qu’aucune activité n’avait lieu du côté de l’interface audio. L’interface produisait des données que Windows semblait bêtement ignorer. J’ai essayé longtemps de chercher un moyen de configurer le système pour résoudre cette difficulté. Tout semblait OK. Tout portait à croire que l’interface était défectueuse, mais pourtant, dans ce cas, pourquoi les données passaient-elles correctement dedans?

J’ai testé sous Linux: même phénomène. Je savais par contre que le pilote de cette interface sous Linux n’était pas parfait. Certains ont eu des difficultés avec les entrées audio et j’ai eu des problèmes au début avec les sorties. Alors le test n’était pas entièrement fiable.

Il va falloir rétrograder à Windows 7 pour tester, me répéta une voix intérieure jusqu’à me mettre les nerfs à vif. Une autre voix me disait qu’avec un Mac, j’aurais pu réussir à effectuer un test qui aurait clairement identifié Windows ou l’interface audio. Mais je n’ai pas de Mac, bon sang. J’ai alors pensé que si j’avais conservé mon installation de Mac OS X sur mon ordinateur, ça aurait vraiment pu servir, cette fois. Bon, va-t-il falloir me retaper la configuration d’un Hackintosh pour vérifier mon interface audio? Pendant quelques minutes, j’ai cru que c’était cela qui s’en venait. Je n’avais pas la patience d’attendre des mois que quelqu’un ait le temps de tester cette interface sur une machine Windows 7 ou sur un Mac. Si je n’avais pas trouvé de solution, j’aurais fini par commettre un acte impulsif comme réinstaller Mac OS X (possiblement en formatant tout le second SSD) ou serais allé me chercher un Mac flambant neuf dont j’aurais bien regretté l’achat, après. J’aurais pesté contre la machine à cause des caractères trop petits et me serais senti obligé de la faire fonctionner parfaitement, ce qui m’aurait mis en maudit pendant des fins de semaine entières!

D’abord, j’ai testé sur mon ultrabook. À ma grande consternation, le son se rendait dans la machine et jouait par les haut-parleurs internes! Mais pourquoi? Les deux machines exécutent toutes deux Windows 8.1! Mais l’ultrabook n’avait pas le pilote de M-Audio, seulement celui de Windows. J’ai songé simplement désinstaller le pilote de M-Audio, mais je me doutais que j’allais perdre la prise en charge de ASIO qui va aider pour la latence sous Ableton Live. Alors, on en revient bel et bien à choisir entre rétrograder vers Windows 7 ou migrer mon installation vers un environnement Mac OS X, sur un Hackintosh ou un véritable Mac. Outre les problèmes d’achat (en cas de vrai Mac) ou de configuration (en cas de Hackintosh), le transfert de licence d’Ableton Live allait lui aussi poser des difficultés. J’ai en effet activé le logiciel sur deux machines: une sur mon installation Windows de ma machine principale, une sur mon ultrabook.  Je n’ai pas trouvé de moyen de désactiver Live sur une machine afin de pouvoir transférer l’autorisation sur une nouvelle.

Par chance, j’ai trouvé comment faire mieux! Le gros problème est que le pilote pour la Fast Track Pro, apparemment obsolète, ne se trouve plus directement sur le site de M-Audio. Le site principal de la compagnie redirige sur celui de Avid qui ne contient que des pilotes pour des nouveaux produits. J’ai donc dû faire une recherche sur Google et sélectionner le résultat dont le site ressemblait le plus à un de M-Audio. L’autre fois, j’avais pogné la 6.0.7 trouvé sur m-audio.fr. Hier, j’ai eu la 6.1.12 mais pour Fast Track pas Pro. Cela ne fonctionnait pas du tout: l’interface était prise en charge par le pilote de base de Windows, l’enregistrement fonctionnait, mais je n’avais plus le ASIO. Ensuite, j’ai eu la 6.1.10 pour Fast Track Pro et ça fonctionne ENFIN! Cela m’a permis d’échantillonner et de bénéficier de ASIO sous Ableton Live!

Ainsi, tout est bien qui finit bien. Le démon d’Apple qui m’a tenté de nouveau a été conjuré une fois de plus, renvoyé dans son plan natal où son maître va pouvoir le houspiller à souhait pour son échec; j’espère qu’il n’y ira pas de main morte!

Groovy? Pas sûr…

Hier, je me suis dit que ça vaudrait la peine d’essayer d’utiliser le langage de programmation Groovy pour un projet chez Nuance. J’estime que cela va me permettre de générer et manipuler du XML plus facilement et m’éviter de répétitives constructions. Plutôt qu’écrire du code pour effectuer la même opération sur chaque item d’une liste, classifier des items selon certains critères afin de pouvoir appliquer un traitement spécifique à chaque classe d’items, ouvrir des fichiers, etc., je pourrai me concentrer davantage sur la logique du programme et éviter de perdre plein de temps à écrire de la poutine répétitive et déboguer. Eh bien pour le moment, c’est exactement tout le contraire! Voici pourquoi.

  • Cette journée a mal commencé avec un problème de connexion de mon écran. Mon laptop de Nuance est relié chez moi à mon écran par un adaptateur mini-HDMI vers HDMI, un fil HDMI qui va dans un commutateur HDMI, puis un fil HDMI vers DVI qui va dans l’écran. Eh bien je n’avais plus d’image. Pourtant, mon ordinateur personnel, lui aussi raccordé au commutateur et allumé pour des raisons qui importent peu ici, affichait le bureau d’Ubuntu. C’est arrivé à quelques reprises et j’ai dû débrancher et rebrancher le câble mini-HDMI. Eh bien en vain cette fois. Cela a fini par fonctionner en essayant avec un autre adaptateur mini-HDMI! Je ne sais pas encore si c’est vraiment l’adaptateur, car mon Raspberry Pi a aussi, hier soir, refusé d’afficher en HDMI. C’est donc peut-être le foutu commutateur si bien qu’il faudrait idéalement que je remplace mon écran par un doté de plusieurs entrées HDMI. Mais les écrans d’ordinateur ont pour la plupart une seule entrée DVI ou HDMI.
  • L’installation de mon environnement Groovy a posé des difficultés. Je n’ai eu aucun mal à installer Groovy lui-même, à mettre en place le plugin Groovy pour Eclipse, mais après, les problèmes ont commencé. Je me suis vite rendu compte qu’il valait mieux créer un nouveau projet distinct dans Eclipse pour cette nouvelle tâche, pas seulement pour éviter d’introduire des difficultés dans les builds à cause de Groovy mais aussi par souci de séparation correcte du code. Sans cela, Eclipse indiquait que le compilateur Groovy du projet, dicté par le fichier POM de Maven, ne correspondait pas au compilateur utilisé par défaut dans Eclipse. Il fallait alors modifier les propriétés du build, dans Eclipse, et il n’y avait pas de synchronisation avec le fichier POM de Maven, donc modifier le fichier POM risquait de nécessiter de refaire le paramétrage du build, et toute personne désireuse de consulter mon code dans Eclipse aurait elle aussi à paramétrer le build.
  • Trouver comment configurer mon fichier POM pour que Maven puisse gérer mon satané projet Groovy n’a pas été une mince affaire. Le plugin GMaven qui semblait devoir faire ce travail est discontinué, sans aucune alternative convainquante pour le remplacer! Le seul candidat est un plugin Groovy-Eclipse-Compiler qui me semble un joli hack utilisant le compilateur d’Eclipse en arrière-plan pour compiler du Groovy! Mais bon, c’est tout ce qu’on a alors on essaie. Eh bien il me fallut copier/coller plusieurs blocs de code dans mon fichier POM et ça ne fonctionnait même pas pour les raisons suivantes!
  • Eclipse s’est d’abord plaint qu’il y avait deux installations de Groovy dans le classpath. J’ai dû exclure celle en provenance d’un projet dépendant; c’était la 1.8 et je voulais partir avec la 2.0. Après, eh bien encore cette erreur de correspondance du compilateur: mon projet voulait Groovy 2.1, Eclipse avait la 2.0! Il m’a fallu utiliser une version antérieure de Groovy-Eclipse-Compiler, et trouver le bon numéro de version a demandé des recherches à plus finir.
  • Après tous ces efforts, eh bien Eclipse est devenu affreusement lent et gelait à tout bout de champ. Cela a fini par des erreurs à propos de mémoire insuffisante puis un plantage. Par chance, le comportement était plus normal après le redémarrage d’Eclipse.
  • Ensuite, le développement a véritablement commencé. D’abord, le plugin Groovy d’Eclipse souffre de problèmes lorsque vient le temps de proposer des noms de classes, méthodes et propriétés. Parfois, il trouve un nom, parfois pas, et c’est très arbitraire. Par exemple, j’avais une variable de type String (chaîne de caractères), et Groovy avait l’information à propos du type (à noter que ce n’est pas toujours le cas vu la nature dynamique de Groovy). Eh bien Eclipse localisait la méthode toLowerCase() mais pas toUpperCase()! La complétion de noms de classes fonctionnait parfois, mais elle n’ajoutait pas toujours l’importation nécessaire si bien qu’après coup, j’avais des erreurs indiquant que la classe récemment référencée n’était pas trouvable, devais sélectionner sa référence et appuyer sur CTRL-SHIFT-M pour ajouter l’importation. Ça fonctionnait parfois, parfois pas, il fallait alors appuyer plusieurs fois!
  • D’autres difficultés surgirent en raison de ma connaissance embryonnaire du langage Groovy. Par exemple, je me suis emmêlé les pinceux avec la notation pour construire un tableau associatif. Il ne faut pas utiliser [a:b, c:d]; ça ne va pas fonctionner, le compilateur va se plaindre de l’absence des variables b et d. Il faut plutôt utiliser [a: »b », c: »d »] ou encore [« a »: »b », « c »: »d »]. Mais pourtant, GroovySH va bêtement afficher [a:b, c:d] si on lui demande de montrer le tableau! Déclarer une variable de type List<?> ne fonctionnait pas: il fallait que j’utilise simplement List; en Java, cela déclenche un avertissement comme quoi c’est un type brut. Mais si je déclarais List[] ou List<?>[], eh bien j’avais un avertissement à propos du type brut! Il faut utiliser des listes au lieu des tableaux ou bien ne pas déclarer de type du tout. Mais je trouve ça plus clair de donner le type, surtout pour les arguments d’une fonction!
  • J’ai été bien choqué quand j’ai voulu créer une classe avec des champs et y générer des accesseurs, car la fonction d’Eclipse pour le faire n’était pas disponible en Groovy. Je me suis alors rappelé qu’il existe des annotations pour indiquer à Groovy de générer ces accesseurs automatiquement. Eh bien je n’arrivais pas à retrouver ces annotations dans la documentation et des recherches sur Internet me donnèrent à des indices pour bâtir une transformation d’AST personnalisée permettant de le faire!!! Bon sang! Par chance, il suffisait de déclarer mes champs sans modificateur d’accès pour que Groovy ait l’intelligence de les traiter comme des propriétés et alors définir les accesseurs.
  • Outre les problèmes syntaxiques, il y a aussi eu des difficultés d’API. Jusqu’à ce que je trouve la documentation du GDK, indiquant quelles méthodes Groovy ajoute à Java, je n’arrivais pas à savoir facilement comment appliquer une transformation sur tous les items d’une liste (collect peut le faire), s’il était possible d’ouvrir un fichier texte en UTF-8 avec un seul appel de méthode plutôt que construire le FileInputStream, puis le InputStreamReader, et enfin le BufferedReader, etc..
  • J’ai aussi eu des difficultés avec le débogueur qui s’est remis à se plaindre chaque fois que je définissais un point d’arrêt conditionnel. J’avais beau vérifier et revérifier l’expression de la condition, tout était OK. Pourtant, j’avais cette maudite erreur. J’ai encore été obligé de modifier le code temporairement après quoi le point d’arrêt fonctionnait, mais Eclipse n’arrivait pas à trouver le code source de la classe, dans un projet importé par dépendance Maven qui était pourtant dans mon espace de travail Eclipse! Il m’a fallu indiquer l’emplacement explicitement puis j’ai enfin pu déboguer le code. C’est possible que ce soit ça qui ait brisé les points d’arrêt conditionnels.
  • J’ai eu des erreurs d’exécution à la pelle! Le code compilait, semblait beau, mais à l’exécution, j’avais des problèmes à propos de méthodes ou de propriétés inexistantes. Cette fois-ci, ce n’était pas Groovy, ni Maven, ni Eclipse mais bien mon code; il fallait corriger les petites erreurs. Certaines erreurs ont été difficiles à corriger, surtout celles qui ont surgi quand je me suis mis à utiliser le MarkupBuilder de façon un peu exotique pour construire mon XML de façon dynamique. Oh là là! La documentation de Groovy n’explique pas très bien comment fonctionne le builder; c’est un fichier en progression. Mais pourquoi placer une page sur un site web pour simplement écrire, pendant deux ans, work in progress ou coming soon? Je ne me souviens plus exactement d’où j’ai eu les indices pour comprendre ce qui se passe, peut-être dans le chapitre sur les DSL de Groovy in Action. Le problème ici était que mon fichier XML n’était pas statique: je devais générer un élément <task> pour chaque tâche de mon application et y injecter des attributs au besoin, pas toujours tous les attributs! Par chance, la chose a été possible et peut être étendue pratiquement à l’infini.

En bref, quelle galère! On se demandera si tout ceci a valu le coup. Je me le demande moi aussi. Je pense que l’apprentissage de Groovy aura une utilité si bien que je prévois continuer cette exploration. Je ne saurais pour le moment mesurer la contribution exacte de Groovy, Eclipse et Maven dans cette expérience plutôt déplaisante.

Il faut garder à l’esprit que j’ai eu beaucoup de difficultés avec Eclipse, incluant des problèmes avec la complétion de noms de classes et de méthodes, les points d’arrêt conditionnels qui boguent parfois mais au moins pas de plantages, pas sous Windows en tout cas. Sous Linux, j’en ai déjà eu à plus finir. Pourtant, les alternatives à Eclipse sont plutôt limitées: NetBeans qui ne gère même pas bien le fichier POM de notre projet chez Nuance, IntelliJ dont la version gratuite est bridée (on ne sait JAMAIS quand on tombera sur un blocage demandant la version payante!!!) et puis les éditeurs de texte comme Notepad++, Emacs, Vi, etc. Ces éditeurs sont excellents, je ne peux que l’avouer, mais ils ne suffisent pas à la tâche pour gérer un gros projet Java ou Groovy avec plusieurs classes.

La vengeance des pingouins!

Hier à ma fête, j’ai eu plusieurs cadeaux de mon frère et sa blonde exploitant la thématique des pingouins, le symbole du système d’exploitation Linux. Eh bien faut croire que les pingouins n’ont pas beaucoup aimé (moi j’ai bien aimé, pourtant!), car ils se sont vengés hier soir et aujourd’hui. Voici comment, une vraie histoire d’horreur.

  • XBMC, mon lecteur multimédia sur mon HTPC Linux, a planté deux fois hier soir. Ça gelait et plus aucun contrôle ne répondait. Il fallait alors que je bascule sur la console texte et que je tue XBMC de façon brutale. En plus, la saisie de mon mot de passe trop complexe est devenu problématique, demandant entre trois et quatre essais chaque fois! J’ai fini par en mettre un plus simple, vraiment tanné de me faire embêter par ça!
  • Mon serveur de Minecraft, sous Linux, a eu des ratés parce que je pensais l’avoir mis à jour à FTB Unleashed 1.1.7 tandis qu’il exécutait toujours 1.1.3. Le client, désynchronisé, se plaignait, n’arrivant plus à établir la connexion vers le fabuleux univers de Taowa. Remettre la version recommandée ne produisait aucun effet, car il faut croire que le lanceur FTB conservait des parties de la nouvelle version plutôt que tout réinstaller.
  • FTB Launcher, le client me donnant accès à Taowa, il a fini par m’afficher un bel écran vide et plus rien ne fonctionnait. La touche ALT-F4, devenue pratiquement inopérante à présent, ne faisait plus rien encore une fois. Cliquer sur le X non plus, il fallait vraiment tuer le processus de force, encore. Ensuite, j’ai été obligé de tout réinstaller, en exécutant le lanceur dans un autre répertoire, et après, eh bien j’avais un écran noir à chaque démarrage de Minecraft. Ainsi, Ubuntu ne permet PLUS d’exécuter Minecraft, probablement encore une mise à jour qui a brisé le pipeline graphique. Ils ont brisé le pipeline pour la Intel HD4000, rendant le jeu saccadé pratiquement plus jouable, et voilà que c’est fait pour NVIDIA aussi. Faudra que j’endure ou tente ma chance avec une carte ATI, mais je n’ai rien à faire de plusieurs cartes graphiques PCI Express remisées pour incompatibilité arbitraire.
  • Une tentative d’installation de Linux Mint 16 édition Cinnamon en lieu et place de Ubuntu qui pose de plus en plus de difficultés aussi absurdes qu’imprévues a été une véritable catastrophe: pointeur de souris vraiment trop petit, options d’accessibilité pour agrandir les caractères ayant à peine un effet, l’interface graphique a gelé sans raison, me forçant à tout redémarrer, puis un plantage du programme d’installation au moment de marquer la partition principale de Mint pour formatage! Bref, ça ne fonctionne pas du tout! Le seul point positif est qu’aucune perte de données ou de configuration n’est à déplorer suite à ce court et désagréable essai, car le système n’a infligé aucun dommage à mes partitions.

On dirait bel et bien que Linux, désormais, est confiné aux machines virtuelles, aux serveurs sans écran (capacités graphiques instables) et aux appareils mobiles (genre Android). Il est possible que seules certaines cartes graphiques soient parfaitement prises en charge et que leur marque varie dans le temps.  Par contre, un problème de pilote graphique peut certes expliquer XBMC instable, Minecraft ne fonctionnant plus et le plantage de l’interface de Mint, mais pas la défaillance du programme d’installation de Mint.

Pour la défaillance de l’installeur de Mint, peut-être est-ce l’EFI, peut-être est-ce le SSD, peut-être est-ce le Ivy Bridge, peut-être n’est-ce rien de tout ça. Je ne sais pas et étant donné que l’interface de Mint m’a vraiment déplu, ça ne sert à rien de le savoir.

Les interfaces graphiques régressent, en plus. On assiste à une perte progressive de contrôle: plus moyen de changer la taille du pointeur de la souris (Ubuntu, Mint), plus moyen de grossir les caractères (Mac OS X, peut-être Mint), plus moyen de configurer les couleurs et la transparence (Windows 7+, probablement Mac OS X, peut-être même Ubuntu et Mint!).

Plutôt que travailler sur la personnalisation, eh bien les éditeurs de systèmes d’exploitation préfèrent rajouter davantage d’applications de base qui ne font rien et qui doivent, une par une, être substituées par des logiciels tiers. À quoi bon améliorer Paint si personne de sérieux ne s’en sert, le remplaçant par Paint.net, Gimp ou, « mieux » encore, par Photoshop? À quoi bon améliorer Wordpad si les gens le remplacent par Notepad++, Word ou, mieux encore, LibreOffice? Pourquoi améliorer Internet Explorer si personne ne s’en sert, le troquant pour Chrome ou Firefox?

L’utilisateur de Mac fera la même chose, troquant Mail pour l’interface web de GMail, plus flexible et plus portable. Il délaissera iMovie pour s’en aller vers Final Cut. Il abandonnera vite Garage Band pour le remplacer par Audacity ou un logiciel audio professionnel comme Pro Tools de Avid ou Live de Ableton. Puis un jour, il voudra essayer le dernier jeu et délaissera Mac OS X complètement pour balancer un Windows sur son beau MacBook flambant neuf. C’est triste!

L’utilisateur Linux, de son côté, remplacera progressivement les applications de GNOME ou de Unity par d’autres: Totem sera abandonné au profit de MPlayer, VLC ou XBMC, GEdit pour Vi ou Emacs, Banshee pour Audacious ou autre chose, etc. Au moins avec Ubuntu, on peut obtenir toutes ces alternatives depuis le gestionnaire de paquets: pas besoin de visiter des dizaines et des dizaines de sites (quoique Ninite peut beaucoup aider sous Windows!) et surtout, pas besoin de débourser un centime pour ces alternatives.

Mais il n’en demeure pas moins qu’à cause de l’intégration de tous ces petits jouets, le cœur même du système, ses fondements, sa flexibilité, en souffrent, parce que les éditeurs se concentrent sur la mauvaise cible.

Aero: une plaie pour certains déficients visuels sous Windows 7

L’une des choses qui m’a le plus choqué quand j’ai essayé Windows Vista voilà quelques années a sans doute été le faible contraste entre les éléments sélectionnés dans un menu et ceux non sélectionnés. Cela rendait pratiquement impossible la navigation dans les menus avec le clavier. À tout moment, je perdais de vue quel élément était en surbrillance et devais soit recommencer la navigation depuis le début, soit utiliser le souris pour cliquer sur l’élément à activer. Combiné à d’autres problèmes, cela a fini par me forcer à supprimer Windows Vista.

Eh bien, ce problème est revenu me hanter lorsque je suis passé à Windows 7. J’y ai perdu un nombre incalculable d’heures de frustrantes recherches sur Google sans trouver de réelle solution. La cause de ce problème est le nouveau gestionnaire de fenêtres Aero qui utilise un moteur de thèmes totalement différent de celui de Windows XP et, malheureusement, très difficile à personnaliser! Les couleurs, les caractères, les éléments graphiques, sont tous fixes et les modifier demande énormément d’efforts et d’ingénierie inverse.  Eh oui, il n’y a aucune documentation officielle au sujet du format de thèmes. Pire encore, les thèmes sont signés de telle sorte qu’en principe, seul Microsoft peut en fournir de nouveaux!

Par chance, les choses se sont enfin améliorées sous Windows 8. Il est tentant de s’arrêter là et se dire qu’il suffit de mettre à jour vers Windows 8. C’est facile à dire pour une machine personnelle sur laquelle on a un contrôle total, mais il en va tout autrement dans une entreprise où tous les ordinateurs exécutent la même version de Windows!

Alors voici les solutions que j’ai trouvées à cet épineux problème. Vous verrez, il n’y en a aucune de parfaite!

  1. Désactiver Aero en changeant l’affichage pour un des thèmes classiques. C’est bien entendu la solution la plus simple, mais c’est aussi la plus désagréable. Sans Aero, on n’a plus l’aperçu des fenêtres et la touche ALT-TAB se contente d’afficher de minuscules icônes plutôt que les aperçus des applications. Pire encore, on fait un saut de dix ans en arrière avec une apparence générale qui date non pas de Windows XP mais bien de Windows 2000! C’est choquant en soit et ce l’est mille fois plus quand on sait qu’on en est restreint à ça parce qu’on ne voit pas comme tous les autres.
  2. Installer un logiciel qui va dessiner par-dessus les bordures et menus de Windows pour leur donner un nouveau look. Le plus connu d’entre eux est sans nul doute WindowsBlind.  Ce logiciel permet certes de personnaliser un grand nombre d’aspects de l’affichage des fenêtres, menus, icônes, etc. Les coûts en performance qu’il impose sont sans doute minimes sur les machines modernes. En contrepartie, il n’est pas gratuit. Je pourrais certes me le procurer pour usage personnel, mais cela ne réglerait que le cas de ma machine chez moi qui, de toute façon, ne souffre plus de ce mal depuis que je l’ai mise à jour vers Windows 8. Une requête d’achat de WindowsBlind serait difficile à justifier auprès de mes employeurs quand il existe une solution simpliste consistant à désactiver Aero!
  3. La solution de la machine virtuelle, bien que radicale, est toujours une option. Je pourrais installer, sous VirtualBox, une distribution quelconque de Linux. Une copie d’Ubuntu dans un environnement VirtualBox m’affranchirait d’autres problèmes irritants comme les fichiers verrouillés par des applications récalcitrantes, mais elle imposerait un surcroît de travail pour la configuration et la maintenance d’un second environnement.
  4. Le thème Accessible Aero résoud presque parfaitement le problème! Malheureusement, l’appliquer est un véritable rituel de magie noire qui réussit parfois, parfois pas! En effet, depuis le Service Pack 1 de Windows 7, chaque application du thème a posé de nouveaux problèmes. Pire encore, si je passe vers le thème régulier, il arrive que je ne peux plus revenir vers le thème modifié!

Dans cet article, je vais décrire ce que je sais de ce thème, comment je l’ai appliqué et quoi faire quand cela échoue.

UXPatcher

D’abord, le thème ne fonctionne pas par défaut, car il ne répond pas aux spécifications de Microsoft. Pour le rendre compatible, il faut patcher certaines bibliothèques DLL du système d’exploitation pour le laisser passer. Cela demande d’obtenir les privilèges d’administrateur et, comme toute patch qui se respecte, ce n’est en principe pas sans risque pour l’intégrité du système.

Bon alors supposons que vous êtes administrateur. Alors installez UXTheme MultiPatcher. Celui fourni avec Accessible Aero s’est mis à moins bien fonctionner depuis le Service Pack 1. J’ai eu plus de chance avec un autre. Gardez une copie de l’exécutable; il va parfois falloir le réinstaller! Chaque installation et désinstallation demande un redémarrage du système, alors il va vous falloir vous armer de patience si vous ne possédez pas un SSD.

La patch installée, on peut passer à l’étape suivante.

Installation de Accessible Aero

Cette étape est très simple. Il suffit de télécharger Accessible Aero et de suivre les instructions données. Cela consiste simplement à copier deux fichiers à des emplacements précis.  Encore une fois, les droits d’administrateur sont nécessaires pour écrire dans ces répertoires.

La copie effectuée, il suffit en théorie de modifier le thème courant. Si tout va bien, Accessible Aero va apparaître dans la liste des thèmes et l’activer va donner un meilleur contraste entre les éléments de l’interface. Sinon, eh bien passez à la section suivante.

Que faire en cas de problèmes

Eh bien, il y en a eu des problèmes, et j’estime qu’il y en aura encore! Voici la liste de ceux que je connais.

  1. Si le thème Accessible Aero n’apparaît pas dans la liste des thèmes offerts, il faut vérifier encore et s’il est bien absent, eh bien il se peut que les fichiers aient été copiés au mauvais endroit. Jusqu’à présent, les choses ne sont pas allées plus loin dans cette direction. J’ai toujours réussi à voir le thème dans la liste.
  2. Si l’activation du thème semble désactiver Aero, passant au mode classique, c’est qu’il y a un problème avec UXTheme Patcher. Il semble que certaines mises à jour de Windows inhibent la patch. Il faut alors désinstaller et réinstaller UXTheme Patcher, puis prier pour que ça fonctionne à nouveau!
  3. Parfois, l’activation du thème fait en sorte que tous les caractères dans le menu Démarrer et l’Explorateur deviennent minuscules. Cela semble un bogue dans le thème en relation avec la mise à l’échelle. J’ai réussi à le contourner en désactivant la mise à l’échelle (Clique droit sur le Bureau, Personnalisation, Affichage, Standard à 100%). J’ai ensuite passé au thème Aero officiel, tenté en vain de réactiver Accessible Aero, été obligé de réinstaller UXTheme Patcher, activé Accessible Aero avec succès puis remis la mise à l’échelle à 150%. Croyez-moi, ça ne rend pas de bonne humeur faire ça au début d’une journée de travail! Mais au moins ça a fonctionné, alors ça a partiellement compensé pour la peine.
  4. Parfois, il peut arriver qu’on ait envie ou besoin de repasser au thème Aero usuel, pour faire des captures d’écran que l’on veut fidèles au look original de Windows ou pour impressionner un ami en lui montrant la différence entre les deux thèmes. Évitez cela, ça n’en vaut vraiment pas le coup, car il arrive plus souvent qu’autre chose qu’il sera impossible de revenir à Accessible Aero. Lorsque cela se produit, il faut encore réinstaller UXTheme Patcher!

Bon, c’est tout, en espérant que je ne découvrirai pas de nouvelles failles et que surtout ça serve à quelques autres.

D’une petite recherche pour donner un coup de main vers la mort de mon serveur Minecraft

Aujourd’hui, j’ai été victime d’une chaîne de bogues qui a mené à la paralysie de mon serveur Minecraft. Ce qui devait être une courte recherche personnelle a dégénéré en une série de problèmes qui n’en finissaient plus de s’enchaîner. Par chance, j’ai réussi à ressusciter ma machine et tout fonctionne maintenant correctement!

Il y avait deux personnes que je pouvais tenter d’aider pour des problèmes d’ordinateur. L’une d’elle utilisait Windows si bien que j’ai investigué la possibilité d’établir une connexion via l’assistance à distance. Si la personne réussissait à démarrer l’application d’assistance intégrée à Windows, ai-je découvert, et si elle m’envoyait, par l’entremise de cette application, une invitation par courrier électronique, je pourrais accepter l’invitation et une connexion s’établirait entre ma machine et la sienne. De cette façon, je pourrais voir l’écran de la machine à examiner et établir un diagnostic préliminaire, voire même résoudre le problème sans avoir à me déplacer!

Pour la deuxième personne, ce serait moins simple, car elle utilisait un Mac. Il m’est passé par la tête de recréer mon Hackintosh pour pouvoir tenter un partage de l’écran via iChat, mais j’ai eu trop de problèmes avec ce Hackintosh pour vouloir en arriver là. J’ai songé m’acheter un Mac Mini, la série la moins chère de la famille Macintosh d’Apple, pour remplacer le Salvator vieillissant dans le rôle de serveur Minecraft, pour établir cette liaison iChat et pour faire d’autres tests au besoin plus tard. Mais le coût de la machine pour les fonctionnalités que j’obtenais me dissuada d’emprunter cette voie. Pour le même prix, je pourrais me monter un Core i7 avec 16Go de mémoire et un SSD! J’ai examiné la possibilité de créer une instance Amazon EC2 que j’activerais de façon intermittente pour faire des tests, mais aucun résultat concluant n’existe au sujet de l’installation d’un Mac OS X dans le nuage de Amazon.

Mais cette investigation au sujet de EC2 et cette idée de Mac Mini viennent peut-être d’une intuition: je percevais que la mort du Salvator approchait… Et qu’en est-il de migrer mon serveur Minecraft sur une instance EC2? J’y ai pensé, mais il m’en aurait coûté 500$ par année à moins de rendre l’instance intermittente: mon ami ou moi devraient démarrer le serveur pour jouer et l’arrêter ensuite. J’envisageais bien sûr explorer cette voie et espérais que le démarrage ou l’arrêt seraient simples et qu’il serait possible d’accorder à mon ami la permission de le faire. Juste pour le merveilleux silence que l’extinction de ce vieux coucou me procurerait dans mon bureau lors de mes journées de travail, ça en vaudrait le coup!

Par chance, il y avait une solution bien plus simple et beaucoup moins coûteuse pour aider mon amie: TeamViewer. Il suffisait que mon amie installe ça sur son Mac, me transmette l’identifiant généré par le logiciel et je pourrais alors établir la liaison. Mais il se pouvait que ça ne fonctionne pas du premier coup si bien que j’ai voulu faire un test avant de proposer cette stratégie.

Pour ce faire, j’ai installé TeamViewer sur ma machine principale au moment où elle exécutait Windows 8. Il me fallait ensuite une deuxième machine sur laquelle installer TeamViewer, mais tous mes ordinateurs secondaires (mon serveur de Minecraft et mon HTPC) exécutaient Linux. Pas de problème: il y a une version Linux de TeamViewer! J’ai téléchargé et tenté d’installer ça: eh non, encore des problèmes! Le système de paquetages APT indiquait qu’il manquait une dépendance pour installer TeamViewer, à savoir lib32asound2J’ai tenté de l’installer: en vain. Il ne semble pas possible d’installer ce paquet .deb de TeamViewer sous Ubuntu 13.10! Certains ont réussi en utilisant la version 32 bits au lieu de 64 bits tandis que d’autres se sont rabattus sur une version .tar.gz du logiciel.

Au moment où je voulais tenter l’installation 32 bits, eh bien tout le système figea et plus rien ne répondait. Au début, la souris ne bougeait même plus, puis elle finit par bouger, mais je ne pouvais cliquer nulle part. Choqué, j’ai tenté de basculer vers une console pour redémarrer X.Org: encore en vain. Le système a fini par cracher des messages d’erreur à propos du pilote Nouveau qui ne pouvait pas mettre en standby certains canaux. Nouveau est un pilote open source pour les cartes graphiques de marque NVIDIA.

J’ai fini par établir une liaison SSH vers la machine puis forcer un redémarrage de X.Org: en vain. Eh oui! J’avais affaire à une défaillance dans un module du noyau, pas seulement un logiciel fonctionnant incorrectement! Choqué, il me fallut me résoudre à tout redémarrer et donc éteindre mon instance de Minecraft. Par chance, mon ami avec qui je partage le monde imaginaire de Taowa n’était pas en train de jouer à ce moment-là.

La machine mit plus d’une minute avant d’enfin terminer la fermeture d’Ubuntu et entamer le retour au POST, puis le démarrage. Là, j’ai eu l’interface graphique. X.Org semblait fonctionner, mais je savais bien que le pilote Nouveau, qui a causé des problèmes sur le Drake, finirait par frapper de nouveau. J’ai alors voulu installer le pilote de NVIDIA.

Malheureusement, l’application listant les logiciels et pilotes n’affichait rien par rapport à NVIDIA. Il m’a donc fallu y aller à la main et exécuter sudo apt-get install nvidia-current. Malheureusement, une super longue installation et un redémarrage plus tard, l’écran était noir et le resta un bon bout. Tout semblait foutu, impossible de récupérer l’affichage. Tenter d’exécuter sudo nvidia-x-config ne donna aucun résultat. En plus, toute tentative de redémarrer ou installer quelque chose prenait un temps fou sur cette vieille carlingue!

J’ai bien cru que c’était fini. À présent Ubuntu sera trop instable pour exécuter de quoi. Je pouvais certes tenter de réinstaller, mais une mise à jour risquait d’encore tout briser ou rendre le système propice aux plantages. Et encore une fois, je manquais de temps et devais tout laisser ça en plan pour aller dîner puis m’entraîner au gym.

Pendant que je dînais, je me suis dit que si je devais tout réinstaller, j’opterais pour Ubuntu 12.04 qui, au moins, est plus stable. Pour cette machine, cela suffirait amplement. Mais avant, j’allais tenter un sudo apt-get dist-upgrade pour m’assurer que les plus récents noyaux étaient bien installés.

Après le dîner, je l’ai tenté en vain; cela ne changea absolument rien puisque tout était déjà à jour. J’avais éteint l’ordinateur ne fonctionnant plus le temps de dîner. J’ai trouvé que le bureau était bien plus silencieux sans ces deux ventilateurs tournant en permanence. En plus, quand j’ai rallumé le vieux coucou, le ventilateur du bloc d’alimentation m’a fait un bruit de vieille carlingue. C’était arrivé plusieurs fois par le passé, mais cette fois, le grondement dura près de cinq minutes avant d’enfin cesser! C’était plus long que les fois précédentes.

Redémarrer la machine n’eut aucun effet. Avant d’entreprendre la réinstallation, j’ai essayé sudo apt-get install –reinstall nvidia-current. En examinant les messages de plus près, j’ai constaté qu’il y avait une ligne indiquant que le module NVIDIA n’avait pas pu être compilé, car il manquait les sources du noyau. J’installai alors linux-headers-generic et, pour être sûr, build-essentials. Cela compila le module et ressuscita mon système! J’ai alors pu redémarrer le serveur Minecraft avant de partir pour le gym!

Suite à cette mauvaise expérience, j’ai abandonné le test avec TeamViewer, car il n’avait plus aucune valeur. Même si ça fonctionne parfaitement entre mes deux machines, il se peut que ça échoue lamentablement avec mon amie. Peut-être la version Mac de TeamViewer ne fonctionne pas bien, peut-être le Mac est derrière un pare-feu, peut-être le routeur de mon amie va bloquer l’accès, ou peut-être même ce sera le mien qui le fera. Je ne suis pas du tout certain que mon amie persistera avec de multiples essais; elle laisserait peut-être tomber.

Par chance, ces connaissances sur l’administration à distance seraient utiles pour d’autres cas de figure et TeamViewer n’est pas le meurtrier de mon serveur Minecraft. Le plantage qui a eu lieu n’a rien à voir avec TeamViewer; ça aurait pu arriver n’importe quand.

Une mise à jour vers Windows 8.1 rock’n’roll qui en fait baver!

Hier matin, j’ai commis la stupide erreur de tenter une mise à jour vers Windows 8.1 sur l’ultrabook de Nuance. J’avais des problèmes avec Windows Update qui n’arrivait pas à aller chercher les mises à jour. Après un mois, le système commençait à se plaindre qu’il ne pouvait trouver de mises à jour et m’invitait à intervenir. Le seul contournement que j’ai trouvé consistait à accéder à l’application Windows Update pour ensuite cliquer sur Check online for updates. Le problème, c’est que la configuration téléchargée par Nuance pour les mises à jour ne fonctionnait pas.

J’ai envoyé une requête au support technique de Nuance et reçu, après quelques temps, une réponse m’offrant deux moyens de résoudre le problème. La première solution consistait à retirer l’ultrabook du domaine, effectuer les mises à jour, puis remettre la machine dans le domaine. Je ne savais pas du tout comment procéder pour faire cela et me doutais bien qu’il me faudrait un mot de passe administrateur pour remettre la machine dans le domaine!

La deuxième solution: mettre à niveau vers Windows 8.1. J’avais déjà effectué l’opération avec succès sur mon ordinateur personnel. Il n’y avait eu que de petits problèmes mineurs. L’opération était gratuite… en théorie. Elle m’a par contre coûté beaucoup de temps et beaucoup de stress…

Windows Store qui bogue

Alors hier matin, je travaillais chez moi et j’ai démarré la mise à jour en tâche de fond. Pour cela, je suis allé sur le Windows Store et cherché, cherché, cherché: pas de référence à Windows 8.1! Bon, l’installation de Windows 8 n’est pas compatible. Une petite recherche sur Google plus tard, j’ai appris que je pouvais démarrer la commande wsreset pour réinitialiser la cache de Windows Store. Je l’ai fait et voilà que Windows 8.1 est apparu! J’ai amorcé son téléchargement et son installation.

Quelques temps plus tard, le système m’a balancé un message me demandant de redémarrer la machine. J’ai reporté le redémarrage, voulant attendre le meeting de 10h30 pendant lequel je n’aurais pas besoin de l’ultrabook qui pourrait alors effectuer la mise à jour. Le message est revenu une dizaine de minutes plus tard puis, vers 10h, la machine a redémarré en sauvage, laissant tout mon travail en plan! Je n’étais pas très content, car j’avais encore des difficultés avec une fonctionnalité supposée en place depuis des mois! En fait, je m’étais simplement trompé dans le nom d’un paramètre; il n’y avait pas de régression à déplorer.

La mise à jour s’est bien passée, mais ça a été un peu long. Par contre, après, le système a souffert de plusieurs séquelles qui ne sont pas encore toutes guéries.

Plus de VPN

D’abord, la connexion au VPN ne fonctionnait plus du tout. Si je démarrais l’utilitaire de Cisco pour établir le lien, le programme m’indiquait qu’il devait être réinstallé. J’ai été choqué de constater que je ne disposais sur l’ultrabook d’aucune copie du programme d’installation! Sans le VPN, je n’avais pas accès au serveur Git pour le partage du code source, au serveur JIRA pour la gestion des bogues, au serveur SharePoint pour la gestion de documents et au pipeline NLU nécessaire au test de l’application! J’étais à peu près bloqué! Je pouvais par chance accéder à Lync pour la messagerie instantanée, Outlook pour les courriers électroniques et The Voice (plateforme fondée sur Jive) pour l’échange d’informations.

J’ai alors tenté d’allumer mon ordinateur sous Ubuntu et de là, établir une liaison VPN. J’ai dû installer le plugin VPNC qui manquait, pour permettre à NetworkManager d’établir la liaison avec un VPN de Cisco. J’ai indiqué à NetworkManager le nom du serveur VPN, mon nom d’utilisateur, le nom du groupe et son mot de passe, puis j’ai fait une tentative. Le système m’a demandé mon mot de passe que j’aientré.

Soit dit en passant, obtenir le mot de passe du groupe n’est pas simple. Il m’a fallu, voilà quatre ans, l’extraire du profil VPN utilisé par le client sous Windows. Un utilitaire que j’ai oublié m’a permis de le décrypter, ensuite de quoi je pouvais l’entrer sous Ubuntu.

Cette manœuvre a fonctionné à quelques reprises par le passé, mais pas ce matin-là. J’avais beau tout essayer: rien n’y faisait. Ça sentait le bogue, car tous mes paramètres étaient corrects. Choqué, je me suis juré de planifier le remplacement de Ubuntu, devenu instable et imprévisible, par quelque chose d’autre comme Fedora. C’est seulement hier soir que j’ai trouvé qu’il fallait entrer Nuance comme domaine dans les options avancées pour que ça fonctionne enfin!

Par chance, je disposais d’une copie de l’utilitaire VPN sur mon ordinateur personnel, je ne sais pas exactement pourquoi! Cela m’a sauvé, car sans cela, j’aurais été obligé de partir de chez moi en catastrophe pour me rendre au bureau.

Juste transférer l’utilitaire a posé des difficultés. La liaison SMB ne fonctionnait pas, encore une fois, et je n’avais ni le temps ni le goût de figurer pourquoi. Je ne pouvais donc pas me brancher sur ma machine en utilisant \\drake. De toute façon, un autre ordinateur chez Nuance possède le nom de Drake, ce qui m’empêche d’atteindre ma machine personnelle par son nom. Je me refuse à renommer une machine; c’est un peu comme une entité qui a été baptisée. J’aurais peut-être pu réussir à l’atteindre avec \\192.168.1.60, mais je n’y ai pas pensé. En effet, je lui ai donnée une IP statique en l’associant à mon adresse MAC au niveau de mon routeur.

Puisque SMB ne fonctionnait pas, je me suis rabattu sur sftp. Ben non! Il n’est pas disponible depuis Git Bash; il m’aurait fallu installer toute la grosse patente de bastringue de Cygwin pour pouvoir l’avoir. Bon, à bien y penser, j’aurais pu réussir avec FileZilla, mais en fin de compte, c’est scp qui est venu à bout du travail, de peine et de misère, car il m’a fallu trouver le chemin exact du fichier et le copier/coller.

Bon, la chose faite, j’ai démarré l’utilitaire qui s’est plaint encore: il fallait désinstaller le client existant. Je l’ai fait, j’ai réinstallé, mais pour je ne sais pas quelle raison, Windows 8.1 a perdu la possibilité de se brancher à Internet. Je ne pouvais plus accéder à quoi que ce soit! Même une recherche sur Google échouait. La machine, maintenant coupée de tout, serait complètement inutilisable pour travailler. Si je ne trouvais pas une solution, il ne me restait plus qu’à partir pour le bureau ou me monter en catastrophe un setup de travail sur le Drake… ah bien non, le VPN ne fonctionnait plus sous Ubuntu! Il m’aurait fallu installer ça sous Windows 8, alors. Mais peut-être le client VPN sous Windows 8.1 allait sur ma machine aussi faire sauter l’accès à Internet!

Avant de céder à la panique, j’ai tenté un redémarrage: en vain. J’ai tenté d’établir un branchement wi-fi, me disant que la carte réseau USB avait peut-être rendu l’âme. Je pouvais certes établir la liaison, mais le système n’arrivait pas à obtenir d’adresse IP. Je ne sais pas comment j’ai fini par penser à désinstaller le client VPN, mais j’ai fini par le faire et ça a restauré ma connexion vers Internet. J’ai redémarré la machine pour que toute trace du client défectueux soit effacée, puis j’ai retenté l’installation. Là, j’avais le client VPN ET l’accès à Internet! J’ai alors pu établir la liaison vers le réseau interne de Nuance! Fiou!

Par contre, il y avait un hic. Chaque recherche web prenait plusieurs secondes tandis qu’elle était instantanée sur ma machine personnelle. Cela affectait TOUT accès vers Internet, incluant le site d’Oracle pour l’API de Java, Google, etc. J’ai déjà eu ce problème par le passé. Il se produisait systématiquement quand je démarrais le client VPN depuis une connexion wi-fi. L’utilisation d’un dongle USB vers Ethernet a résolu le problème, à moins que j’aie bidouillé le profil VPN et ne m’en souvienne plus.

C’est seulement vendredi, 22 novembre, que j’ai trouvé un moyen de résoudre le problème de lenteur excessive de la connexion Internet. Pour cela, il m’a fallu cliquer du bouton droit sur l’icône réseau dans la zone de notification et choisir quelque chose comme Open network and sharing center. De là, j’ai cliqué sur le libellé pour accéder aux options des cartes réseau. Il faut ensuite accéder à la barre de menu, la façon la plus simple étant d’utiliser la combinaison de touches ALT-F. De là, j’ai pu accéder à l’option Advanced settings du menu Advanced.

Il y a là une liste ordonnée des interfaces réseau. Comme l’installation du client VPN a eu lieu après celle du pilote wi-fi et Ethernet, l’adaptateur virtuel de Cisco se trouvait en premier. Il suffisait de le déplacer en fin de liste pour que l’adaptateur réseau Ethernet ait précédence, ce qui redonna la vitesse d’accès à Internet!

Voici de quoi avait l’air ma fenêtre de paramètres avancés après le correctif, qui relève presque du tour de magie!

image001

 

 

La dernière fois, j’avais installé le client VPN après avoir établi une liaison wi-fi si bien que l’interface de Cisco se trouvait en haut de la liste. J’ai branché un adaptateur Ethernet vers USB seulement plus tard, ce qui a installé un nouveau pilote. L’interface réseau USB s’est alors retrouvée en haut de la liste, ce qui a résolu le problème quand j’utilisais l’adaptateur Ethernet vers USB. Là, ma solution est parfaite, fonctionnant en théorie sur wi-fi, mais je n’ai pas encore testé.

Plus d’accès à Outlook

Ensuite, j’ai eu des difficultés avec Outlook 2010. Le logiciel gelait complètement chaque fois que je tentais de répondre à un courrier électronique! Il ne revenait pas à la vie; il fallait le fermer de force puis le redémarrer. Je finis par me rendre compte avec désarroi qu’il gelait aussi quand je tentais d’envoyer un nouveau message! Je n’étais pas complètement bloqué, car au pire, je pouvais utiliser le courriel Web en attendant d’aller au bureau le lundi suivant, mais ça allait moins bien.

Quelques recherches m’ont mené sur la piste d’un potentiel problème de connexion. Comme de fait, Outlook affichait Trying to connect dans le coin inférieur droit. C’était probablement depuis la panne d’Internet causée par le client VPN, car j’avais reçu quelques courriers électroniques après la mise à jour que je n’avais pas encore regardés. J’essayais justement de répondre à l’un d’eux lors du premier gel d’Outlook.

J’ai tenté de réviser les paramètres de connexion et fini par trouver un bouton Repair que j’ai utilisé pour rafistoler la connexion Exchange. Après quelques étapes de vérification, Outlook avait fini la réparation. Je ne me rappelle plus si j’ai dû redémarrer Outlook ou pas, mais un moment donné, il a réussi à se connecter au serveur. La connexion rétablie, je pouvais répondre à mes messages! Fiou!

Ce rétablissement est arrivé à temps, car il y avait un bogue prioritaire de latence à traiter. Ce problème m’a occupé le reste de la journée! J’ai par chance trouvé une solution simple qui va améliorer les choses sans tout casser en contrepartie!

L’anti-virus estropié

Vers la fin de la journée, j’ai découvert que Symantec Endpoint Connection, l’anti-virus utilisé chez Nuance, rapportait souffrir de problèmes. J’ai démarré son interface de contrôle qui m’a proposé de redémarrer les services éteints. Je l’ai fait, ça  a presque fonctionné, mais il y avait du trouble avec le pare-feu. Il semblait falloir réinstaller l’anti-virus! Bon, pas de problème, on va le retrouver sur le site de IT. Je l’ai eu, l’ai téléchargé, puis j’ai tenté l’installation.

Eh bien le programme d’installation se fermait dès le début avec un stupide message d’erreur indiquant qu’il y avait des problèmes de compatibilité. Aucun moyen de savoir quels problèmes il y avait et comment les contourner. Tenter de démarrer en mode de compatibilité Windows 8 et même Windows 7 ne donna aucun résultat, encore. Décidément, le mode de compatibilité est de la frime; ça ne fonctionne pratiquement jamais.  Selon mes recherches sur Google, il fallait installer la version 12.1 RU4 tandis que IT fournit la 11! J’étais donc bloqué.

Lundi, 18 novembre, à moins que ce ne soit mardi, j’ai eu l’idée d’accéder à \\bigiron, un emplacement réseau chez Nuance qui fournit aux employés certains logiciels. J’y ai trouvé une version 12 du Symantec Endpoint Connection. Cette fois, je pouvais démarrer le programme d’installation. J’ai tenté de procéder à une réparation, mais cela n’a absolument rien changé. Il fallait essayer de désinstaller puis réinstaller, mais, encore un autre problème me barra la route: il fallait un mot de passe pour procéder à l’installation.

Refusant de me laisser démonter, rendu chez moi le soir venu, j’ai fouillé un peu sur Internet et trouvé des parades pour contourner le mot de passe! Certains articles proposaient des manipulations dans la base de Registre tandis que d’autres se référaient à un logiciel nommé Cleanwipe, disponible uniquement auprès du support technique de Symantec, et permettant de désinstaller complètement le logiciel. J’ai bien cru qu’il allait me falloir obtenir ce logiciel-là, car aucune des manipulations de base de registre ne fonctionnait. Elles se référaient à des clés inexistantes que j’en vins à tenter de créer, mais j’obtenais des erreurs lorsque j’essayais.

Par chance, je suis tombé sur un article dont le lien ne fonctionne plus aujourd’hui (décidément, il y a une tendance généralisée à tout désactiver et supprimer sur Internet, peut-être tous ces serveurs en PHP et en ASP.NET qui sont trop fragiles). Pour réussir à désinstaller le produit, j’ai double-cliqué sur le bouclier, ce qui a démarré l’interface du logiciel. J’ai cliqué sur Help puis Troubleshoot. De là, j’ai abouti à une zone permettant d’exporter et importer un fichier de politique de sécurité.

J’ai exporté la politique, ce qui a produit un fichier dans le format XML. J’ai altéré ce fichier avec un éditeur de texte pour configurer l’attribut uninstallPassword ou quelque chose du genre sur 0, puis j’ai réimporté la politique modifiée. Ensuite, le programme de désinstallation m’a permis de supprimer l’anti-virus défectueux!

J’ai redémarré la machine pour être bien certain que toute trace soit effacée, puis j’ai procédé à la réinstallation. Cela s’est bien passé et, après ça, le pare-feu fonctionnait correctement!

Est-ce mieux pour Windows Update?

Plus ou moins! J’ai donc effectué tout ça pour pas grand-chose. D’abord, Windows Update est difficile d’accès: taper cela dans l’interface Metro ne donne même pas de référence vers l’application. Il m’a fallu taper updates pour enfin avoir Check for updates et l’application, encore, ne fonctionnait pas. Il me disait de réessayer. J’ai cliquer pour accéder à Windows Update et lui au moins me disait qu’aucune mise à jour n’était disponible, plutôt que cracher une erreur comme sous Windows 8.

Autres problèmes

J’ai encore eu ce filigrane à propos de SecureBoot. Par chance, la petite patch que j’avais trouvée l’autre fois a fonctionné de nouveau, me débarrassant de ce mineur défaut.

Le clavier tueur de laptop

Jeudi passé, Frédéric, un ami de mon frère m’a parlé d’un problème qu’il éprouvait avec son laptop Aspire 5750-6604 de Acer. Depuis quelques temps, plusieurs touches de son clavier ont cessé de fonctionner. Ensuite, le jour même où sa garantie prenait fin, eh bien la machine n’allumait plus du tout! Bon, il aurait dû se prévaloir de la garantie avant, au moment où des touches avaient cessé de fonctionner, mais ce qui est anormal pour un ne l’est pas toujours pour un autre.

Lorsque j’ai eu le laptop devant moi, la machine n’était pas en très bon état. Si je l’allumais, l’ordinateur affichait le logo d’Acer puis se mettait à pousser des bips d’agonie incessants! La première chose que nous avons d’un commun accord tentée consistait à brancher un clavier USB sur le laptop malade. L’ami de mon frère ne disposait pas d’un tel clavier tandis que j’en avais un.

Avec le clavier USB, je pouvais aller un peu plus loin: amorcer Windows 7 plutôt que figer après le logo d’Acer! Mais la machine bloquait presqu’aussitôt, ne parvenant jamais à afficher le logo de Microsoft. Elle se mettait alors à biper comme une folle et rien ne pouvait l’arrêter à part une pression continue sur le bouton de mise sous tension.

Me doutant bien qu’il n’y aurait rien à faire avec ça, j’ai commencé à ausculter le boîtier dans le but de l’ouvrir pour en sortir le disque dur, mais même cela m’était impossible, car je ne disposais pas du modèle mental correspondant à ce laptop particulier. Sans ce modèle, je n’avais aucune façon sûre de trouver comment accéder au disque dur sans risquer de tout briser le boîtier de la machine. Plus je regardais ça, plus il me semblait évident qu’il allait falloir démonter la machine complètement pour accéder au disque. Certains laptops mal conçus exigent en effet un tel désassemblage!

Comme je manquais de temps puisque je voulais aller nager, nous avons convenu de remettre les investigations à plus tard. Frédéric est reparti avec la machine, avec en tête de l’amener chez Future Shop où ils pourraient peut-être la désassembler et atteindre le saint Graal qu’était apparemment devenu ce disque dur bien enfoui.

Mais têtu comme je suis, je ne pouvais pas en rester là! De retour de la piscine, je suis donc parti à la chasse en utilisant comme base le numéro de modèle du laptop que j’avais pris soin de noter de la plus moderne des façons: en photographiant la fiche technique avec mon téléphone. J’ai obtenu plusieurs pistes à partir de cela:

  • Le moyen d’accéder au disque dur. Il suffisait d’ôter deux vis pour pouvoir retirer un capot et le disque était là.
  • Une vidéo YouTube montrant exactement le même problème et quelqu’un qui l’avait résolu en retirant la touche Del du clavier qui s’était bloquée.
  • La possibilité que ce soit le ventilateur à CPU
  • Des instructions pour remplacer le clavier
  • Le moyen de remplacer le ventilateur à CPU

C’est ce maigre, très maigre indice, à propos de la touche Del, qui nous a mené, lentement, péniblement, vers la solution! J’estime que peu de gens auraient pu s’y rendre, car les symptômes s’apparentent davantage à un bogue de carte mère qu’un problème de clavier! Ma théorie était que le clavier défectueux envoyait constamment des signaux à la carte mère, qui se mettait alors à capoter et bloquait tout. Si je pouvais débrancher le clavier, me dis-je, je pouvais faire cesser cette interférence et rendre la machine à nouveau fonctionnelle, à condition de lui adjoindre un clavier USB ou acheter un nouveau clavier compatible avec le laptop.

Hier, Frédéric est allé chez Future Shop avec la machine en main. Il a été très déçu et même choqué par la réponse qu’il a eue. Le technicien là-bas ne pouvait rien faire, car la machine n’était plus garantie. Pour lui, le laptop était fini!!! La solution: retirer le disque dur, extraire les données, puis tenter de reformater en activant le logiciel de récupération du système. Si ça échouait, eh bien on change le laptop. Au moins, le technicien a montré à Frédéric comment accéder au disque dur, ce que mes recherches sur Internet m’avaient déjà révélé la veille.

Hier, j’ai rappelé Frédéric après le travail pour lui transmettre mes résultats et nous avons convenu de nous voir pour la tentative d’extraction. J’ai commencé par enlever la batterie, ce qui a demandé un peu de tâtonnement pour trouver comment. Ensuite, retirer le capot s’est très bien passé, mais j’ai eu du mal après à trouver comment ôter le disque dur. Il fallait le faire glisser vers la gauche pour le désengager des connecteurs SATA. La chose faite, je pus sortir le disque dur et le poser sur mon bureau. J’ai branché le disque à mon adaptateur SATA vers USB pour pouvoir accéder à son contenu depuis mon ordinateur, puis j’ai amorcé le transfert de données. Au moins ça serait sauvé.

Mais le transfert a été excessivement long, assez que je me demande si le disque dur ne comporte pas des secteurs défectueux! Par chance, la sauvegarde intégrale qui dort maintenant sur un de mes disques durs fixes pourra le sauver si la panne se propage et le disque devient inutilisable. Le transfert a duré toute la nuit et une partie de la journée aujourd’hui! Il faut dire aussi que mon adaptateur SATA vers USB n’est pas très rapide; il me faudrait idéalement un dock pour disques durs de laptops, si je devais effectuer ce genre de transferts plus souvent.

Le disque dur mis en sûreté, j’ai entrepris de retirer vis après vis pour pouvoir enlever le clavier tel que décrit sur le site trouvé la veille. Eh bien, jamais cela n’a fonctionné. J’ai enlevé quatre vis, puis Frédéric en a trouvé une autre, puis une autre, puis une autre. Il semblait falloir tout démonter, incluant l’écran, pour pouvoir l’avoir. Chaque fois que j’essayais de retirer le clavier, je risquais de tout casser le boîtier, rendant la machine totalement inutilisable!

Choqué, j’ai fouillé sur Internet et tombé sur quelque chose qui m’a presque découragé. La vidéo montrait une personne désassemblant un Acer Aspire avec une étonnante efficacité. Malgré son habileté, il lui a fallu douze minutes pour venir à bout de mettre la machine en morceaux! D’après ce que nous voyions, il allait nous falloir faire de même pour arriver à nos fins! Cela nous aurait pris des jours! Peut-être mon frère aurait une chance de réussir dans un temps raisonnable, peut-être même pas. Peut-être mon père mécanicien aurait des chances, peut-être pas! Je connais un gars, un ancien stagiaire chez Nuance qui étudie à Sherbrooke et vit à Gramby, qui aurait pu réussir.

Après plusieurs tentatives, Frédéric et moi étions d’accord qu’il n’y avait rien à faire avec ça. Il est reparti, me laissant le disque dur pour que la copie de fichiers finisse par finir. J’ai songé brancher le disque directement dans un port SATA plutôt que via USB, mais je n’avais pas de câbles non utilisés pour y arriver. Il aurait fallu que je débranche temporairement un de mes disques durs fixes. Si le transfert n’avait pas abouti cet après-midi, je serais allé chercher le fichu câble SATA en revenant du gym!

Après le départ de Frédéric, je ne pus m’empêcher de faire d’autres recherches. J’ai fini par tomber sur une vidéo montrant exactement comment remplacer le clavier de ce laptop Acer Aspire! Ça semblait possible de retirer le clavier sans dévisser quoi que ce soit!

En revenant du gym aujourd’hui, j’ai rappelé Frédéric et lui ai fait part des développements. Il hésitait à revenir, car ça semblait parti pour un nouvel échec. Il avait du mal à croire que cette fois, ça allait fonctionner. Mais il fallait de toute façon qu’il vienne reprendre son disque dur. Il est donc venu et nous avons tenté ensemble de retirer ce fichu clavier. Pour y parvenir, il fallait enfoncer des touche et désengager des clips avec un tournevis ou n’importe quel objet plat. C’est en fin de compte Frédéric qui a réussi à trouver comment, à partir des indices que j’avais ramassés.

Débrancher le câble reliant le clavier à la carte mère causa aussi problème. J’ai essayé en vain puis un moment donné, Frédéric avait réussi à le déconnecter ou l’arracher je ne sais pas comment exactement. Ça n’a vraiment pas l’air fait fort. Dommage que j’étais trop sous le choc pour prendre une photo. J’ai alors tenté de rallumer la machine. Frédéric était sûr que rien ne se passerait, aucun changement, mais j’ai eu un résultat satisfaisant: aucun bip et un message indiquant qu’aucun périphérique d’amorçage n’était disponible.

J’ai alors remis le disque dur. Puis la machine pouvait amorcer sous Windows 7, comme avant! Eh oui! Il a suffi de débrancher ce fichu clavier pour que le laptop soit de nouveau fonctionnel! Bien entendu, la machine sera dépourvue de clavier intégré, mais elle fonctionnera parfaitement avec un clavier externe et Frédéric pourra toujours acheter, sur Internet, un clavier de remplacement s’il en sent un jour le désir ou le besoin.

Pour redonner une apparence raisonnable à l’ordinateur, nous avons remis en place le clavier, sans le brancher. La machine n’a pas rechigné. Ne recevant plus ce flot incessant de scan codes insensés, l’ordinateur était content et daignait démarrer, comme avant! Le son fonctionnait, l’écran allumait, même le pavé tactile était utilisable. Ce fut une victoire jubilatoire comme on n’en vit qu’à l’enfance!

Bien entendu, mon esprit rigoureux exigerait des tests complets de mémoire et de disque dur avant de conclure que la machine est stable, mais l’exécution de ce genre de tests n’est pas vraiment à la portée de Frédéric. Tant pis, on va mettre ça entre les mains du Destin. Il faut parfois apprendre à céder le contrôle dans la vie.

Un peu de logique, un peu de recherche sur Internet, un peu de courage et la persévérance d’aller jusqu’au bout, tels furent les ingrédients qui sauvèrent ce laptop. Avec toute cette fragile technologie, bientôt il faudra que les jeunes développent cela pour pouvoir faire face à tous ces bogues tous aussi insensés qu’imprévus. Sinon, on en viendra à des machines ne fonctionnant que quelques mois ou la résignation progressive à cesser d’utiliser la technologie.

Hantise passée: un problème épineux mais une solution simple

Cette semaine, chez Nuance, j’ai été confronté à un surprenant problème que je ne parvenais pas à résoudre. Il s’est manifesté de deux façons différentes. Tout d’abord, sous GNU Emacs, les accents ne fonctionnaient plus du tout. Je voulais produire un è en tapant ` puis e: en vain, je n’obtenais que  le e. J’ai eu ce même problème sous Ubuntu 13.10 la fin de semaine dernière, mais c’était après une mise à jour. Là, aucun changement et soudain, plus d’accents! Redémarrer GNU Emacs n’y changeait rien. Par chance, je n’avais pas absolument besoin des accents pour mon travail sous Emacs, contrairement au cas similaire sous Ubuntu.

Deux ou trois jours plus tard, j’avais des difficultés sous Microsoft Excel 2010. Il est installé par défaut sur les machines chez Nuance et il vaut mieux utiliser cela plutôt que LibreOffice pour une meilleure compatibilité avec les fichiers produits par d’autres employés. Malheureusement, Office 2010 a certaines qualités qui manquent à LibreOffice. Bien que le ruban soit une nuisance à prime abord, lorsqu’on sait où sont les icônes, leur accès est plus rapide que fouiller dans de longs menus déroulants. Mais c’est une autre histoire.

Sous Excel 2010, je voulais simplement calculer une somme. J’essayais de positionner mon curseur dans la cellule où je voulais écrire ma somme et au lieu de déplacer le curseur, les flèches du clavier faisaient bouger la fenêtre du chiffrier, un peu comme si j’utilisais les barres de défilement ou maniais la roulette de la souris. Redémarrer le logiciel ne régla absolument rien. Je n’ai pas songé redémarrer la machine, car il y avait d’autres applications activées.

Il a fallu un certain temps pour que je me rende compte que la diode de verrouillage du défilement (scroll lock) était allumée sur le clavier. Désactiver le verrouillage a non seulement rendu leur comportement initial aux flèches du clavier mais ça a aussi arrangé les accents sous GNU Emacs! Cette fonctionnalité de verrouillage du défilement sert à peine, de nos jours, mais elle existe toujours et il faut croire que certaines applications ont décidé d’en tirer parti, parfois de façon surprenante, mais jamais de façon cohérente!

Seconde tentative de Microsoft pour mettre des bâtons dans les roues à Linux!

L’été dernier, Windows 8 a tenté d’évincer Ubuntu sur ma machine en utilisant l’arrêt hybride, aussi appelé FastBoot, qui faisait en sorte que je ne pouvais pas accéder à mes partitions de données NTFS depuis Ubuntu. J’ai dû désactiver FastBoot pour contourner ce « léger » problème.

Voilà qu’aujourd’hui, Microsoft récidive sous Windows 8.1 avec un petit avertissement indiquant que SecureBoot est désactivé, en filigrane  permanent sur le Bureau. Jusqu’à récemment, il n’y avait aucun moyen de s’en débarrasser, à moins de désactiver SecureBoot qui va à coup sûr compliquer, voire rendre impossible, la configuration d’un système à double amorçage. SecureBoot, en effet, oblige tout gestionnaire d’amorçage à être signé numériquement. Pour que cela fonctionne, il faut que l’application UEFI de GRUB et celle de rEFInd soient signés numériquement conformément à SecureBoot. Quelle galère! J’ai déjà assez de difficultés comme ça, inutile de rajouter un problème artificiel là-dedans!

De mois en mois, on s’approche du moment où ce sera plus profitable d’assembler une seconde machine, pour avoir un ordinateur dédié à chaque bon Dieu de système d’exploitation! Mais pas pour aujourd’hui, car Microsoft a publié un correctif désactivant cet agaçant filigrane. FIOU!