Tips du jour sous CVS : changer l’utilisateur

Ayant travaillé dans une session différente de la mienne, j’ai eu des difficultés à me synchroniser sous CVS après avoir rapatrié les sources dans ma machine, cvs se borne à synchroniser sous la session utilisé pour le checkout.
Un rapide coup d’oeil dans le manuel ne m’a pas apporté de réponse sur la façon de « switcher » l’utilisateur. Ce dernier étant enregistrée dans CVS/Roots, il suffit d’éditer ce fichier pour modifier la session, mais il faut le faire pour chaque répertoire synchronisé. J’ai commencé à réfléchir à une solution avec awk/sed, mais n’étant pas un habitué de l’édition de console j’ai consulté mon ami Google et la solution je l’ai trouvé ici, avec une ligne de commande utilisant sed :
find . -name Root -exec sed -i 's/oldserver/newserver/' {} \;

Je pense quand même qu’il me faut intégrer une utilisation « basique » de sed, ça rend bien service :)

Publié dans Développement, Informatique, Script shell et utilitaires associés | Marqué avec , , | Laisser un commentaire

Win7 : svchost chargeant la CPU, Windows Update Bloqué au téléchargement

J’écris ce billet en espérant que cela puisse aider d’autre.
Les symptômes que j’avais observés et qui étaient liées :

  • une consommation constante de ma CPU par svchost.exe. (50% sur un Athlon x2)
  • Windows Update qui bloquait sur la mise à jour : 0% au téléchargement.
  • La version courte de la résolution :

  • Télécharger chez Microsoft la dernière version de Windows Update.
  • Redémarrer
  • Lancer les mises à jour qui doivent s’exécuter
  • Redémarrer.
  • Et ce jusqu’à ce que Windows Update n’affiche plus de mises à jour à exécuter
  • Vous constaterez peut-être que TrustedInstaller.exe mouline a son tour mais c’est temporaire, il fait du ménage.

    Pour ceux qui souhaitent savoir si il y a d’autres possibilité ou comment j’ai trouvé cette solution :
    Je l’ai vu avec System Explorer qui affiche en permanence la consommation CPU dans l’icône de notification.
    Je n’ai pas trouvé le moyen de voir qui utilisait ce process avec « System Explorer », mais le gestionnaire de tâche le fait via la procédure suivante :

  • lancer le gestionnare (clic droit barre des tâches)
  • sur l’onglet processus, afficher « tous les processus utilisateur » en cliquant sur le bouton associé.
  • trouver le processus svchost qui consomme, clic-droit et « accéder » aux services.
  • La j’ai trouvé les services suivants associés au processus (ils sont surlignés) :

  • AeLookupSvc
  • Appinfo
  • BITS
  • iphlpsvc
  • LanmanServer
  • MMCSS
  • ProfSvc
  • Schedule
  • SENS
  • ShellGWDetection
  • Themes
  • Winmgmt
  • wuauserv (windows update)
  • En arrêtant wuauserv je n’avais plus de consommation CPU. Ce n’est pas une résolution de problème mais on peut diagnostiquer comme suivant : les symptômes sont liés au seul problème de blocage de Windows Update.

    Sur le WEB je n’ai rien trouvé de concluant donc je suis allée plus loin dans le diagnostic, en cherchant à comprendre comment était utilisé ce service. Ni le gestionnaire ni les autres outils ne détaillent l’activité des processus, mais « Process Monitor » le fait.
    Et la je constate des logs abusifs dans un fichier CBS.log qui le rendent énorme (> 250 Mo), je n’ai plus souvenir qui écrivait mais j’ai relié ça au reste.

    En fait c’est avec la recherche sur ce dernier point que je suis tombé sur le forum de Microsoft Windows qui proposait plusieurs solutions :

  • un fixit de Windows Update qui n’a pas marché ,
  • le téléchargement de la dernière version de Windows Update qui lui a pu reprendre les mises à jour de Windows.
  • EDIT : Finalement j’ai trouvé un billet de blog dont la résolution du problème est semblable à celle que j’ai mis en oeuvre, avec des liens plus à jour.
    Il s’agit notamment de télécharger la mise à jour KB3172605

    Publié dans administration, Informatique | Marqué avec , , | Laisser un commentaire

    Ubuntu/Debian Configurer son clavier en AZERTY ou autre…

    Il m’arrive parfois de télécharger des VM toutes prêtes pour des cibles PowerPC, ARM.
    Dernièrement une Debian pré-installée sans environnement graphique. L’inconvénient est que systématiquement le clavier configuré est un QWERTY.

    Le réflèxe est souvent d’utiliser la commande loadkeys pour avoir le clavier dans la console. Il y a quelques inconvénients à ça :

  • il faut trouver où sont stockés les fichiers de configuration (pas évident quand notre clavier ne répond pas comme attendu)
  • une fois le clavier configuré il faut encore le paramétrer pour une configuration au démarrage
  • La solution Debian est plus conviviale, elle prévoit un paquet keyboard-configuration – sûrement pré-installé- qui vous permet de reprendre la configuration du clavier avec les commande suivantes :
    # dpkg-reconfigure console-data
    # dpkg-reconfigure keyboard-configuration
    # service keyboard-setup restart

    Pour aller plus loin, voir la page wiki de Debian qui complète ce billet.

    D’autre pas je confirme la configuration du clavier d’un Mac Book Pro dans une une VM debian que l’on trouvera sur askubuntu.
    Important : j’ai eu beau redémarrer le service les changements n’étaient pas pris en compte, il vous faut redémarrer la machine pour cela.

    Publié dans Script shell et utilitaires associés | Laisser un commentaire

    Freebox TV (multiposte) sur une clé Android

    Récemment j’ai voulu installer pour ma compagne une télé dans la cuisine.
    Malheureusement nous sommes trop mal placés pour utiliser une antenne.
    J’ai eu l’idée d’utiliser le multiposte de free avec une clé HDMI Android.

    Mais laquelle choisir ? J’ai failli prendre la clé de Google mais jai craqué pour cet appareil vendu sur , vendu quasiment au même prix (40e) et livré avec une télécommande. Ma copine n’étant pas smartphone, je voulais avoir un moyen classique pour choisir le chaînes.

    Appareil installé, j’ai eu la déception de constater que VLC n’était pas utilisable (à cause de l’interface, la télécommande à ses limites), et laggait sur la première chaîne affichée.

    En cherchant un peu j’ai testé cette solution présentée en vidéo sur . Et là ça fonctionne du tonnerre !! Le contrôle avec la télécommande est même très conviviale. Merci IPTV.

    Publié dans Informatique, Vie pratique | Laisser un commentaire

    bash : ‘quasi’ équivalent de basename et direname

    Je ne sais pourquoi je ne trouvais pas le binaire ‘direname’ dans ma distrib avec la completion automatique. Ca marche maintenant, j’ai du loucher.

    Du coup pour mon script j’ai cherché un autre moyen de récupérer un nom de répertoire à partir du nom de fichier complet.

    J’ai eu droit à une piqûre de rappel sur la substitution bash :

  • la lecture du guide avancé de script bash traduire m’a aidé à mettre en place une solution naïve mais suffisante.
  • Cette page donne directement le remplacement de basename et dirname, en détaillant les limitations.
  • Publié dans Développement, Informatique, Script shell et utilitaires associés | Marqué avec , , , | Laisser un commentaire

    CVS : Résolution de fichier en conflit avec xxdiff

    But : résoudre un fichier en conflit avec un éditeur graphique sous Linux (Ubuntu).

    Problématique
    : les fichiers en conflits sont parfois difficiles à éditer avec un simple éditeur de texte, une vue à deux panneaux aide un peu. Cependant après un update cvs écrit les différences dans un seul fichier. Un outil comme meld ne peut plus servir.

    Présentation sommaire de l’outil xxdiff : un outil graphique de comparaison de fichier classique comme winmerge / meld (windows / Linux), tortoiseCVS.
    il a très peu de dépendance (une lib Qt quand même) donc il peut convenir pour une distribution légère.
    Il est porté sous Mac OS X, Windows,…
    Je trouve les menus quelques peut déroutant.

    Remarques :

  • si votre environnement est basé sur KDE vous pouvez utiliser cervisia.
  • si vous travaillez avec Eclipse je vous conseille d’utilise le plugin CVS dédié à Eclipse qui gère les conflits.
  • Si vous éditez votre code sous windows je vous recommande d’utiliser tortoiseCVS combiné avec winmerge.

  • Essai

    Voici un exemple de fichier en conflit :

    Some merged text.
    <<<<<<< cvs_conflict_sample.c
    I added this.
    =======
    This line added in main branch.
    >>>>>>> 1.2
    Some finetext.

    Taper la commande suivante pour éditer le fichier :
    xxdiff --unmerge cvs_conflict_sample.c

    Vous avez alors la vue suivante :
    xx_diff1

    La fusion est réalisée par la séquence répétée suivante :

  • view->next différence
  • global-> select right and next
  • Dans l’exemple ci-dessous j’ai choisi de conserver la partie de gauche :
    xx_diff2

    Dès lors que vous avez choisi toutes les modifications à conserver il faut choisir la commande file-> »save as original » pour remplacer le fichier en conflit, ou « save as merged » pour sauvegarder dans une copie.

    Publié dans Développement, Informatique | Laisser un commentaire

    Pthread : étendre les droits de changement de priorité à des groupes d’utilisateur

    Pour des développements embarquées RT il m’arrive de porter des logiciels ‘threadés’ et ordonnancés une police FIFO.
    La modification des priorités s’appliquent alors. Celle-ci est par défaut une opération réservée à l’utilisateur ‘root’.
    Souvent, sur la plateforme cible l’utilisateur root est le seul utilisateur donc l’opération se réalise en toute transparence.
    Mais lors de tests unitaires souvent lancé sur des plateformes PC l’opération est refusée et sort une erreur explicite.

    Le premier réflexe est de lancer un programme avec ‘sudo’, mais il faut être un utilisateur avec pouvoir ce qui n’est peut-être pas permis par votre DSI, et ce n’est pas très pratique dans le cadre de tests automatisés.
    Il est possible de configurer votre machine pour étendre ce privilège à un utilisateur ou un groupe d’utilisateurs, comme le décrit ce billet chez IBM.

    Publié dans Développement, Informatique | Laisser un commentaire

    Changer la batterie de votre brosse a dent Braun triumph

    Votre brosse à dents tombe en rad toutes les deux utilisations ? non non ne la jetez pas ! Changez la batterie !

    Il faudra quand même un peu mettre la main à la patte car la bestiole ne sort pas comme ça.
    Et un peu de matériel :

  • un fer a souder (450°)
  • de la tresse a déssouder
  • un clé torx T-6 ou un tournevis de précision
  • une clé plate
  • Il suffit d’acheter une batterie de rechange, comme ici sur amazon

    Attention il y a deux tailles 42 et 49 mm et plusieurs diamètres ! Il vaut mieux démonter la brosse pour mesurer la pile et commander la bonne. Celle de taille supérieure ira aussi mais il faudra faire une petite adaptation.

    Voilà un tuto en ligne avec photos et vidéo.

    Perso j’ai galéré à démonter la collerette bleue mais elle s’enlève vraiment.
    Ma brosse est du type 3738, j’ai une batterie de 42 mmm.

    Il me reste à faire un tour au bureau pour la déssouder et commander la batterie de rechange…. Affaire à suivre.

    Edit : j’ai donc déssoudé la batterie, ayant une petite pointe j’ai du mettre la chauffe à fond (450°) pour retirer les pattes !

    Pour replacer la nouvelle batterie, vous faites comme sur la vidéo, mais personnellement j’ai trouvé plus simple de procéder comme suivant :

  • avec un cutter et une pince vous affiner les pattes pour qu’elles passent pas les trous de la plaque, sans que ça dépasse trop de la zone à souder.
  • Vous mettez en place la batterie sans l’enfoncer avec son ‘cul’ plutôt vers le fond de la batterie
  • insérez seulement les pattes dans les trous et pliez-les au niveau de la zone à souder pour qu’elles retiennent la batterie.
  • avec un tournevis plat pliez légèrement les pattes sous la piles, c’est important pour la suite
  • enfoncez la batterie, les pattes vont se plier correctement sous elle
  • avec le tournevis insistez sur le pliage autour de la plaque.
  • Enfin je soude les pattes.
    On remonte tout.

    Jusque là l’appareil ne s’allumait pas, mais la tension sur la batterie était de 0.9V au lieu de 1.2V, donc j’ai lancé la charge. après quelques seconde l’écran s’initialise et la charge se lance.

    Voilà c’est terminé.

    Publié dans Vie pratique | Laisser un commentaire

    Scanner un QR Code avec une Machine Linux

    Le QR code n’est pas réservé au Smartphone il est très facile de scanner un QR code sous PC.
    Comment ? La réponse avec cet article chez reddit.

    Il suffit d’utiliser la commande console suivante :
    import :- | zbarimg :-

    Très facile à tester avec un générateur de code en ligne, comme QR Code Generator

    J’ai testé : lorsque la commande est lancée, la commande est en attente et mon curseur s’est transformé en croisillon. Je m’attendais à sélectionner une zone mais ça n’a pas marché. Par contre si je me contente de cliquer sur la zone d’affichage du code alors j’ai bien dans la console le contenu affiché.

    Publié dans Internet | Laisser un commentaire

    gpsim : installer le simulateur PIC pour avoir le support graphique (Uuntu 12.04)

    gpsim est un simulateur de uC PIC, multi-plateforme.

    Sur une Ubuntu 12.04 (Precise), gpsim vient sans le support de l’interface graphique, car le paquet gtk+extra est déclaré obsolète.

    Pour avoir une version de gpsim avec le support graphique il nous faut donc en compiler une.
    Et tant qu’à faire autant en installer une récente.

    Télécharger le tarball sur le site .
    Installer les dépendances : sur ma machine il me manquait libreadline6-dev, libpopt-dev. Pour gtk+extra on ne va pas lancer la compil mais simplement ajouter le dépot dédié avec les consignes donné dans la page du site .

    C’est partit pour un « configure ».
    La compilation plante sur un projet « example » (extras/dht11/examples/), j’ai édité le makefile pour supprimer l’option qui spécifiait le fichier lkr. Puis j’ai relancé la compilation.

    L’installation par défaut dans ‘/usr/local’ me convient, je ne sais toujours pas faire de package deb.

    Je vérifie avec un ldd que le binaire link avec les bons fichier (j’ai le path /usr/local/lib ajouté dans ldconf).

    Et c’est bon.

    Publié dans Développement | Laisser un commentaire