jeudi 25 octobre 2012

Compter le nombre de package 32 bits

La commande ci-dessous permet de connaitre les packages 32 bits qu'il y a d'installé.

rpm -qa --qf '%{name}.%{arch}\n' | grep 'i[356]86$'

Il peut être intéressant de connaitre les packages 32bits lorsqu'on utilise une distribution 64bits.

Sous SUSE 12.2 64 bits, je n'ai que 2 packages 32 bits: master-boot-code et xf86-video-geode.

Il faut faire attention, un seul package 32bits peut avoir beaucoup de dépendance.

vendredi 19 octobre 2012

La sauvegarde avec rsync


Rsync est un outil qui peut être utilisé afin d'effectuer des sauvegardes. Il permet de synchroniser une source et une destination.

Je vais expliquer comment se servir de rsync afin de sauvegarder son arborescence sous Linux, inclure et exclure certain répertoire.

À titre d'exemple, le répertoire personnel contient les répertoires

Téléchargement
Musique
Bureau/
Modèles/
Public/
Vidéos/

en plus des répertoires invisibles

.Skype
.mozilla
.teamviewer
.kde
.local4

Rsync pour sauvegarder son répertoire personnel

# répertoire à sauvegarder
BDIR=/home/$USER

#destination
DEST=/media/verbatim

# donnée à exclure
EXCLUDES=/home/$USER/bin/exclude.txt

#donnée à inclure
INCLUDES=/home/$USER/bin/include.txt

#a signifie de garder les permissions(utilisateur, group), la date et les liens symboliques
#r signifie de copier les répertoires et leurs sous-répertoires
#v signifie d'affiché à l'écran ce qui est copié
rsync -arv --delete --prune-empty-dirs --include-from=$INCLUDES --exclude-from=$EXCLUDES  $BDIR $DEST

Fichier include.txt

+ .kde4/
+ .kde4/share/
+ .kde4/share/apps/
+ .kde4/share/apps/kmail/***
+ .Skype/***
+ .local/
+ .local/share/
+ .local/share/.local-mail.directory/***
+ .mozilla/***

Fichier exclude.txt

- .*
- Bureau/
- Modèles/
- Public/
- Vidéos/

Résultat

Les répertoires
  • Téléchargement
  • Musique
  • .skype
  • .kde4/share/apps/kmail/
  • .local/share/.local-mail.directory
et leurs contenus sont copiés.

Explication

Par défaut, tout est inclus. La liste d'exclusions surcharge cela en enlevant des fichiers, répertoires. La liste d'inclusions surcharge les exclus en incluant certains éléments de nouveau.

- .* signifie exclure tous les fichiers et répertoires invisibles
*** signifie de copie le répertoire et tous ses sous-répertoires et fichiers

Dans l'exemple ci-dessous,
+ .kde4/
+ .kde4/share/
+ .kde4/share/apps/
+ .kde4/share/apps/kmail/***

au niveau de kde4, share, apps, il y a une multitude de répertoire et de fichiers. Afin de pouvoir copié les données de kmail, l'arborescence de .kde4 à .kde4/share/apps/kmail/ doit être spécifié. Cependant, seul les données de kmail seront prises en compte à cause des ***.

Il peut donc être pénible si on désire que copier certains fichiers ou répertoires dans une grosse hiérarchie.

Sachant que les données de kopete sont dans le répertoire  .kde4/share/apps/kopete/ , il serait possible des incluses en ajoutant:  .kde4/share/apps/kopete/***.

Afin de sauvegarder les contacts sous kde, il faudrait faire

+ .local/
+ .local/share/
+ .local/share/contact/***

Nous avons vu au travers de ce billet une façon de sauvegarder son répertoire personnel avec rsync. Il est possible d'affiner notre sauvegarde en incluant ou excluant certains répertoire ou fichier.

dimanche 14 octobre 2012

Toshiba AC100 et Android 4

Toshiba AC100 est un smartbook. Toshiba est la seule grosse entreprise qui a commercialisé un smartbook, malgré que plusieurs autres en aient présenté.



Un smartbook est similaire à un netbook (taille) en plus d'avoir des caractéristiques souvent proche à un mobile (GPS, 3g, processeur ARM, autonomie).

Le Toshiba AC100 utilisait le système d'exploitation Android en version 2.1. Toshiba a effectué une mise à jour Android 2.2. Il a arrêté la commercialisation et le support de cette machine.
L'appareil ayant un bon rapport qualité/prix, la communauté le prit en charge. Il est possible d'installer une version beaucoup plus récente d'Android telle que la 4.1. La rom alternative Cyanogen a été utilisée pour ce portage.

Les procédures citées ont été faites sous Linux.  Sous Windows, il faut télécharger une version de nvflash pour ce système.

Préparation

Télécharger les fichiers:
  • cm_ac100-ota-eng.cm10-beta2.zombah.zip
  • recovery.ac100-cm10_beta2.img
via ce site http://code.google.com/p/cm-paz00/downloads/list

Télécharger le fichier des applications Google de la version CyanogenMod 10.

Le fichier devrait ressembler à: gapps-jb-20120726-signed.zip.

Les fichiers
  • cm_ac100-ota-eng.cm10-beta2.zombah.zip
  • gapps-jb-20120726-signed.zip

doivent être déplacé sur une carte mémoire.

Téléchargez le fichier nvflash et décompressez-le.



Déplacer le fichier recovery.ac100-cm10_beta2.img dans le  répertoire nvflash.

Installation

Fermer votre AC100
Connectez un câble micro USB de L'AC100 à votre ordinateur.
Appuyer sur les touches CTRL et ESC et allumer votre AC100.

L'écran de AC100 devrait être noir et la LED du power devrait être toujours allumée.

Afin de vérifier si votre ordinateur a bien détecté le Toshiba AC100, lancer la commande suivante dans un terminal

lsusb | grep NVidia

Une ligne similaire à celle ci-dessous devrait être affichée.
Bus 001 Device 003: ID 0955:7820 NVidia Corp.

Les chiffres concernant pourraient être différent étant donné qu'il y a différente version du toshiba AC100.

Rendez-vous dans le répertoire nvflash et lancez cette commande:

LD_LIBRARY_PATH=. ./nvflash -w --bl ../prebuilt/fastboot.stock.bin --download 6 recovery.ac100-cm10_beta2.img
Nvflash started
rcm version 0X20001
System Information:
   chip name: t20
   chip id: 0x20 major: 1 minor: 2
   chip sku: 0x8
   chip uid: 0x17006187410021d7
   macrovision: disabled
   hdcp: enabled
   sbk burned: false
   dk burned: false
   boot device: emmc
   operating mode: 3
   device config strap: 1
   device config fuse: 0
   sdram config strap: 1

downloading bootloader -- load address: 0x108000 entry point: 0x108000
sending file: ../prebuilt/fastboot.stock.bin
| 936016/936016 bytes sent
../prebuilt/fastboot.stock.bin sent successfully
waiting for bootloader to initialize
bootloader downloaded successfully
sending file: recovery.ac100-cm10_beta2.img
- 4229120/4229120 bytes sent
recovery.ac100-cm10_beta2.img sent successfully


Redémarrer la machine (appuyer un long moment sur la touche power).

Un menu semblable à celui-ci apparaitra.



Aller dans le menu mounts and storage et effectuer les opérations: format /cache, format/data et format /system.





Lorsque vous cliquez sur format




cliquer sur yes


Aller dans le menu install zip from sdcard , ensuite choose zip from sdcard



Choisissez le fichier: cm_ac100-ota-eng.cm10-beta2.zombah.zip








Cliquer ensuite sur yes



Refaite la même opération pour le fichier: gapps-jb-20120726-signed.zip
    Finalement, choisissez reboot system now du menu.

    Le Toshiba AC100  démarrera sous android 4.1.

    lundi 8 octobre 2012

    L'assurance qualitée avec Sonar

    Sonar est un outil pour gérer la qualité du code source pour différents langages tels que Java, PHP, vb. Il utilise plusieurs logiciels tels que pmd, findbug, covertura... pour y parvenir.

    Ce logiciel permet de détecter la duplication de code, de déceler le manque de documentation, les anomalies potentielles, règle de programmation, ce que couvrent les tests unitaires et la complexité du code.
    Sonar peut s'intégrer à différents outils d'intégration continue tel que Hudson.

    Il intègre sa propre base de données, H2 mais il est recommandé d'utiliser une autre base de données ne serait que pour avoir de meilleure performance.

    Pour la présentation du produit, H2 sera utilisé. De plus aucun serveur d'intégration continue n'est utilisé.
    Télécharger sonar et décompressé l'archive.

    La particularité de ce système est qu'il est très visuel. Il peut aider à mieux identifier où doit être mis du temps afin d'accroître la qualité du projet.

    Démarrage

    Dans le répertoire bin de sonar, sélectionner le répertoire correspondant à votre environnement.

    Cliquer sur le fichier sonar.bat si vous utilisez Windows, sinon sur sonar.sh.

    Le système est alors accessible via un navigateur web: http://localhost:9000

    Projets

    Pour chacun des projets que vous désirez importer, si vous utiliser maven lancez la commande
    mvn sonar:sonar

    La liste des projets importés sera alors affichée dans l'écran de démarrage de Sonar.

    Treemap

    La treemap est une vue 2D. La taille de chaque carrée est une mesure quantitative selon différents critères des catégories: complexité, design, documentation, duplication, test d'intégration, gestion, revue...

    La couleur représentante une mesure qualitative.


    Dashboard

    C'est la vue par défaut d'un projet. Les différentes mesures quantitatives présentées plutôt y sont affichées.

    Hotspot

    La vue hotspot présente les éléments à corriger d'un projet.

    • classes ayant le plus de violations
    • règles avec le plus de violations
    • classes ayant une forte complexité
    • classes ayant le plus de code dupliqué
    • classes le moins documentées


    Time machine

    La vue time machine permet de voir l'évolution du projet. Il est possible de comparer différentes versions du projet. Cette vue est particulièrement importante afin de savoir si le projet s'améliore ou part à la dérive.



    Component

    La vue component donne des informations similaires au dashboard, cependant elles sont données par  module.


    Violations drilldowns

    La vue Violations drilldowns indique les violations du projet en plus d'indiquer leur importance. Il est possible de modifier le degré d'importance des violations. Le nombre d'anomalies par type, le nombre de classes par importance, ainsi que le nombre d'anomalies par classe sont affichés.



    Cloud

    La vue cloud spécifie l'importance à accorder à une classe. La taille du nom de la classe varie en fonction de son importance.

    Le cloud Quick wins affiche les classes qui augmenteront la qualité du code tout en demande peu d'effort. La taille du nom de la classe varie en fonction de sa complexité alors que sa couleur indique sa couverture

    Le cloud Top risk affiche les classes ayant un risque d'erreur. La taille du nom indique la complexité par méthode alors que sa couleur indique le respect des règles.



    Design

    La vue design indique les dépendances entre les différents modules d'un projet. Certaines dépendances sont jugées inappropriées.


    Des plugins gratuit et payant avec plus de fonctionnalités aussi disponibles. Le plugin Refactoring Assessment est par exemple disponible sous ces modes.




    Dans sa version gratuite, des données sont fournies afin de montrer les possibilités de la version payante.  La version payante effectue automatiquement certains traitements.

    Autres plugins

    La puissance de Sonar est en partie due au nombreux plugins existant. Ils permettent d'étendre les fonctionnalités de l'outil. Voici quelques plugins très intéressants que je vous conseille.


    SCM Stats Plugin

    Technical Debt Plugin

    Quality Index Plugin

    SIG Maintainability Model Plugin

    Useless Code Plugin

    Timeline Plugin



    lundi 1 octobre 2012

    Datalogger sous Linux

    Un GPS datalogger sert en autre à enregistrer ses déplacements. Il peut ainsi être utilisé avec un appareil photo numérique afin de géotager
    ses photos. Un logiciel doit être utilisé pour extraire les données du GPS et les synchroniser avec les photos.

    Mis à part quelques exceptions, très peu ne nécessite pas un logiciel pour être utilisé sous Linux.

    L'appareil utilisé est le QSTARZ BT-Q1000X.

    Mettre l'appareil en mode nav et branché le à l'ordinateur.


    dmesg devrait retourner un résultat similaire à


    [329214.428079] usb 2-1: new full-speed USB device number 2 using uhci_hcd
    [329214.584098] usb 2-1: New USB device found, idVendor=0e8d, idProduct=3329
    [329214.584104] usb 2-1: New USB device strings: Mfr=3, Product=4, SerialNumber=0
    [329214.584108] usb 2-1: Product: GPS Receiver
    [329214.584111] usb 2-1: Manufacturer: MTK
    [329215.099104] cdc_acm 2-1:1.1: ttyACM0: USB ACM device
    [329215.102933] usbcore: registered new interface driver cdc_acm
    [329215.102938] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

    Ici, le périphérique est /dev/ttyACM0

    Les droits sur ce périphérique sont
    0 crw-rw---- 1 root dialout 166, 0  1 oct.  20:59 /dev/ttyACM0

    Vous devriez ajouter votre utilisateur au groupe dialout. Autrement, il faudra se connecter en root pour effectuer les commandes ci-dessous.

    Changez l'utilisateur par celui de l'utilisateur de votre choix.
    usermod -g dialout collinm

    gpsbabel

    Lire les données

    gpsbabel -t -w -i mtk -f /dev/ttyACM0 -o gpx -F gps_out.gpx

    Effacer les données

    gpsbabel -t -w -i mtk,erase -f /dev/ttyACM0
     

    En plus de gpsbabel, il est possible d'utiliser mtkbabel car ce dataloger utilise un chip MTK.


    mtkbabel 

    Lire les données

    mtkbabel -p /dev/ttyACM0 -f gpsdata -t -w -c
     
     

    Effacer les données

    mtkbabel -p /dev/ttyACM0 -E

    bt747

    Ce logiciel nécessite d'avoir Java. Il est possible de lancer cette application via java web start ou bien directement en local.

    Ajoutez l'utilisateur désirez sous le groupe lock.
    usermod -g lock collinm

    ou bien   lancer la commande ci-dessous
    chmod 777 /var/lock

    En lançant l'application avec via le site web qui utilise java web start ou bien en lançant le fichier
    run_j2se.sh

    vous devriez avoir la fenêtre suivante.


    Il vous reste plus qu'à cliquer sur le bouton Connecter. Si ça ne fonctionne pas, inscrivez le nom du périphérique directement. Dans ce tutoriel c'était /dev/ttyACM0.

    Cette application permettra de voir toutes les infos de votre GPS, ses données. Il sera possible de voir les données sur une carte. De plus, il sera possible d'exporter les données dans différents formats. Les autres programmes présentés plutôt ont des fonctionnalités similaires. Ce logiciel est cependant plus simple à utiliser.