27 novembre 2013

Mozilla Plugins registry

Les plugins de Firefox ne sont pas stockés dans un répertoire spécifique mais chaque plugins ajoute des entrées dans la registry pour indiquer où se trouve la dll à charger, pour quels mime-types il doit être invoqué ect. Il est est facile d'ajouter un plugins sans que l'utilisateur de Firefox s'en rende compte.
Des applications très honnêtes font cela (VLC, Adobe, Java ect).
D'autres applications font cela en douce comme  Google Chrome ou Microsoft...

Malheureusement on ne peut que désactiver un plugins. Pour qu'il ne figure plus dans la liste des plugins il faut supprimer ses entrées de la registry. Pour cela il faut lancer regedit et chercher toutes les clefs "MozillaPlugins" et supprimer les entrées correspondant aux plugins indésirables dans chacune de ces entrées:

HKEY_CURRENT_USER\Software\MozillaPlugins
HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MozillaPlugins  (64bits)


Note: Supprimer la clef ne supprime aucun fichier du disque.

Une bonne habitude est de régulièrement visiter: http://www.mozilla.org/en-US/plugincheck/

19 septembre 2013

GNU radio pour Windows

GNU radio est à l’origine une application spécialisée dans le traitement des signaux radio. Son but est de traiter ces signaux de manière logicielle. C’est ce que les anglais appellent « Software Defined Radios : SDR ». Cette approche logicielle à l’avantage d’être plus souple et moins onéreuse que la méthode matérielle. Avec le temps GNU radio est devenu un système de traitement du signal numérique au sens large.

GNU radio inclus une interface graphique « GNU radio compagnon : GRC » qui permet d’interconnecter très facilement les blocks logiciels nécessaires aux traitements d’un signal. Si vous programmez en C++ et python vous pourrez ajouter vos propres blocks à la librairie de GNU radio.

GNU radio est une application open source écrite principalement en python sauf les parties critiques pour les performances qui sont écrites en C++ et utilisent la librairie Boost. GNU radio s’interface avec le matériel (carte son, dongle usb) et est donc en partie lié à l’OS. Son développement se fait principalement sous Linux mais il existe un portage 32 bits vers Windows.


Avant de commencer à télécharger...

* Python existe en deux grandes versions : 2.7.x et 3.x
Beaucoup de librairies ou modules utilisés par GNU radio fonctionnent avec python 3.x, mais pas tous. Par exemple PyGTK et wxPython ne fonctionnent pas avec python 3.x. On doit donc en rester (pour le moment) à python 2.7.x qui est la version de python la plus stable.

* Même remarque pour 32 bits et 64 bits. On doit en rester aux versions 32 bits, même si vous utilisez un Windows 64 bits.

* A l’exception de PyQwt qui requiert les droits d’administrateur pour s’installer dans c:\program-files\Pyqwt5, tous les autre composant s’installent dans le répertoire python qui par défaut est C:\python27 et ne requiert pas les droits admin

Si vous voulez faire simple: Installez tout en étant administrateur et installez python dans son répertoire par défaut C:\Python27. En respectant cela les installations se feront en gardant toutes les options par défaut.


INSTALLATIONS  ~ Ce qui suit a été testé sur XP 32 bits et Seven 64 bits.

Installez les 10 ou 11 logiciels qui suivent dans l'ordre indiquez ci-dessous

Pour info, voici les versions disponibles en sep/2013
soit ~170 Mo à télécharger.

1) Python ~ http://www.python.org/
Download : http://www.python.org/download/releases/
Choisir la version 2.7.x pour win32 la plus récente.
Exemple : python-2.7.5.msi

Important: Ajoutez C:\Python27 au PATH de Windows dés maintenant.


2) NumPy ~ http://www.numpy.org/
Un package python absolument fondamental pour le calcul scientifique.
Download : http://sourceforge.net/projects/numpy/files/NumPy/
Sélectionnez la version supportée par PyQwt (voir plus bas)
Prendre le superpack.
Exemple : numpy-1.7.1-win32-superpack-python2.7.exe


3) lxml ~ http://lxml.de/
API python pour les librairies libxml2 et libxslt. Les blocks manipulés par GRC sont décrit en XML.
Download : https://pypi.python.org/pypi/lxml/
Example : lxml-3.2.3.win32-py2.7.exe


4) PyOpenGL ~ http://pyopengl.sourceforge.net/
API python pour OpenGL
Download : https://pypi.python.org/pypi/PyOpenGL/
Exemple : PyOpenGL-3.0.2.win32.exe


5) Cheetah template engine ~ http://www.cheetahtemplate.org/
Generateur de code.Utiliser pour convertir en python les schémas logiques de GRC.
Download : https://pypi.python.org/pypi/Cheetah/
Exemple : Cheetah-2.4.4.tar.gz
Ceci n’est pas un exécutable. Il faut le décompresser, et exécuter la commande :
  python setup.py install
On peut ensuite supprimer le répertoire contenant Cheetah.

Si vous êtes attentif vous verrez que l’installation de Cheetat se termine par:
One or more C extensions failed to build.
Performance enhancements will not be available.
Pure Python installation succeeded.
Ceci est normal pour deux raisons:
- Conflit de noms ne se distinguant que par la case dans le même répertoire : Cheetah.h et cheetat.h.
Windows ne faisant pas la différence un seul fichier subsiste sur le disque.
- De toute façon on ne peut pas compiler sous Windows.
Mais rien de grave, on en reparlera plus bas...


6) PyQt ~ http://www.riverbankcomputing.com/software/pyqt/
API python pour utiliser le Framework Qt.
Download : http://sourceforge.net/projects/pyqt/files/PyQt4/
Sélectionner la version supportée par PyQwt (voir plus bas)
Exemple : PyQt-Py2.7-x86-gpl-4.9.6-1.exe


7) PyQwt ~ http://pyqwt.sourceforge.net/
Une extension de Qt pour le tracé de graphiques.
Il faut que les versions installées de NumPy et de PyQt soient en adéquation avec PyQwt.
Mais attention les versions requises par PyQwt sont rarement les plus récentes.
En principe on télécharge PyQwt ici : http://pyqwt.sourceforge.net/download.html
Mais actuellement (sept/2013) la version PyQwt la plus récente est ici : http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqwt
Exemple : PyQwt-5.2.1-py2.7-x32-pyqt4.9.6-numpy1.7.1.exe
Cette version 5.2.1 de PyQwt est conçue pour fonctionner avec
- Python  2.7
- Mode 32 bits
- PyQt  4.9.6  (voir #6)
- NumPy  1.7.1  (voir #2)
Attention :
- Il faut obligatoirement les droits d’administrateur car PyQwt s’installe en partie dans C:\ProgramFiles\PyQwt5
- Si vous avez installé python ailleurs que dans son répertoire par défaut, PyQwt ne le trouvera pas et s’en plaindra. Continuez l’installation puis indiquez le répertoire où  se situe votre python.


8) PyGTK  ~ http://www.pygtk.org/
API python pour utiliser la librairie graphique GTK+.
Download : http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/
Prendre le package all-in-one
Exemple : pygtk-all-in-one-2.24.2.win32-py2.7.msi


9) wxPython ~ http://www.wxpython.org/
API python pour utiliser le framework wxWidgets (écrit en C++)
Download : http://www.wxpython.org/download.php
Ne pas prendre la version ansi, mais unicode.
Example : wxPython2.8-win32-unicode-2.8.12.1-py27.exe


10)  GNU Radio ~ http://gnuradio.org/
Logiciel de traitement de signaux numeriques
Download : http://files.ettus.com/binaries/gnuradio/
Exemple : gnuradio_3.6.4.1_Win32.exe
Il y a toujours un délais de plusieurs semaines (ou mois) entre la disponibilité d'une version sous Linux et sont portage sous Windows.


Environment
Cette variable est deja mise en place pendant l'installation de GNUradio
    GRC_BLOCKS_PATH=C:\Program Files\gnuradio\share\gnuradio\grc\blocks
Mais celle là, vous devez l’ajouter à la main:
    PYTHONPATH=C:\Program Files\gnuradio\lib\site-packages

Rappel: Avec un Windows 64bits les applications 32 bits sont dans: "Program Files (x86)"

Si jamais...
En cas de besoin (car il n’est pas rare de déjà les avoir sur sa machine) les bibliothèques de Visual C++ 2010 sont dispo chez Microsoft : http://www.microsoft.com/en-us/download/details.aspx?id=5555

Executer GNUradio companion (enfin !)
Double cliquer sur le script python
    C:\Program Files\gnuradio\bin\gnuradio-companion.py
ou
    C:\Program Files (x86)\gnuradio\bin\gnuradio-companion.py

Ecran d’accueil de GNU radio Companion
Si vous êtes attentif vous verrez dans la console le message suivant :
You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames options as it is painfully slow with the Python version of NameMapper ect..
Rien de grave. C'est juste la conséquence de ce qu'on a vu pendant l’installation de Cheetah.

NB: Cette console est à surveiller pendant l’exécution GRC car c'est là que l'on trouve les détails des éventuelles erreurs.

Comprendre et apprendre
Pour comprendre comment GNU radio companion fonctionne commencez par  puis ici.
Il y a aussi ce tuto de 5 videos HD-720p.

Des exemples sont dans C:\Program Files\gnuradio\share\gnuradio\examples
Mais si vous voulez pouvoir les utiliser sans être admin, il faudra les copier ailleurs.

Si vous n'avez pas de sources réelles pour alimenter GNU radio vous pouvez trouver des fichiers ici :
http://signals.radioscanner.ru/base/
http://crawdad.cs.dartmouth.edu/


11) USRD Hardware Driver (UHD)
Driver pour les périphériques USRD (Universal Software Radio Peripheral).
Ceci ajoutera de nouveaux blocks logiciels pour communiquer avec les périphériques USRD.
Exemple : uhd_003.005.003-release_Win32.exe

Pendant l’installation sélectionnez l’option “add UHD to the system PATH for all user”, sinon vous devrez faire l’ajout de la variable UHD_PKG_DATA_PATH à la main.

Exemples de périphériques USRD : https://www.ettus.com/product/category/USRP-Bus-Series
Plus d’info sur UHD : http://ettus-apps.sourcerepo.com/redmine/ettus/projects/uhd/wiki


QRV ?...

07 juin 2013

MySQL setup

Voici un rapide mémo pour la configuration de base de MySQL.

Avec Fedora on installe et démarre MySQL en 3 commandes (en root) :
 # yum install mysql-server
 # systemctl start mysqld
 # systemctl enable mysqld


Par défaut MySQL attend les connexions sur le port 3306. Pour changer cette valeur éditer le fichier /etc/my.cfg et ajouter (ou modifier) le paramètre 'port' dans la section [mysqld]
[mysqld]
port=1234
Puis redémarrer
 # systemctl restart mysqld

Notes:
- Dans ce qui suit "www.example.com" està remplacer par le nom de votre serveur.
- On va utiliser le user root de MySQL mais ce n'est pas le root du serveur. 

- Ce qui suit peut être fait par n'importe quel utilisateur.

> mysql -u root
 

-- etape 1: lister les users existants:

mysql> select user,host,password from mysql.user;
+------+-----------------+----------+
| user | host            | password |
+------+-----------------+----------+
| root | localhost       |          |
| root | www.example.com |          |
| root | 127.0.0.1       |          |
| root | ::1             |          |
|      | localhost       |          |
|      | www.example.com |          |
+------+-----------------+----------+


-- etape 2: supprimer les users inutiles:

mysql> delete from mysql.user where user='root' and host='::1';
mysql> delete from mysql.user where user='';

mysql> select user,host,password from mysql.user;
+------+-----------------+----------+
| user | host            | password |
+------+-----------------+----------+
| root | localhost       |          |
| root | www.example.com |          |
| root | 127.0.0.1       |          |
+------+-----------------+----------+


-- etape 3: donner un mot de passe au user root de MySQL:

mysql> set password for root@localhost=password('secret');
mysql> set password for root@'127.0.0.1'=password('secret');
mysql> set password for root@'www.example.com'=password('secret');

mysql> select user,host,password from mysql.user;
+------+-----------------+-------------------------------------------+
| user | host            | password                                  |
+------+-----------------+-------------------------------------------+
| root | localhost       | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
| root | www.example.com | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
| root | 127.0.0.1       | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
+------+-----------------+-------------------------------------------+


La valeur de la colonne 'password' change suivant le mot de passe. Ici on voit le codage de 'secret'.

-- pour autoriser root à se connecter à MySQL via le réseau :

mysql> update mysql.user set host="%" 
       where user="root" and host="www.example.com";
mysql> flush privileges;


mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
| root | %         | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
| root | 127.0.0.1 | *14E65567ABDB5135D0CFD9A70B3032C179A49EE7 |
+------+-----------+-------------------------------------------+


mysql> quit

ATTENTION:
% matche tout host, sauf localhost !
Donc l'entrée avec localhost n'est pas redondante avec l'entrée %

On se reconnecte et là il faut utiliser l'option -p puisque root a maintenant un mot de passe.
>mysql -u root -p
Enter password:    <-- entrer le mot de passe ('secret' dans notre example)

-- utiliser MySQL
mysql> quit


Après cela on peut tout faire en ligne de commande, avec phpMyAdmin ou MySQL Workbench.

27 mai 2013

Raspberry Pi & Arch Linux

Voici les premiers pas pour configurer un raspberry pi en utilisant Arch Linux ARM.
IMPORTANT: Utiliser une alimentation de 1 Ampère (1000 mA) minimum. Celle vendue sur le site de Raspberry fait 1200 mA. Eviter les chargeurs de téléphones, ou le port USB d'un autre ordinateur.
Il existe plusieurs distrib linux utilisables sur un raspberry pi.
On les trouve ici: http://www.raspberrypi.org/downloads

Ce qui suit est valable pour Arch Linux ARM.
J'ai choisi cette distrib car je n'ai pas besoin d'interface X.

Le compte root de cette image Arch Linux ARM est root/root
Attention le clavier par défaut est anglais ! Donc, la premiere chose à faire, avant de changer le mot de passe root, est de passer en clavier francais.


A) CLAVIER FANCAIS

1) Verifier les keymaps disponible
  find /usr/share/kbd/keymaps/ -name fr*

2) Tester le meilleur mapping pour votre calvier
  loadkey fr-pc
ou
  loadkey fr-latin1
ect...

3) Quand on a trouvé le bon mapping éditer /etc/vconsole.conf  et mettre à jour la variable KEYMAP
KEYMAP=fr-pc
ou
KEYMAP=fr-latin1
ect...

Voir aussi: https://wiki.archlinux.org/index.php/KEYMAP

4) Changer le mot de passe root:  passwd

5) rebooter pour verifier que c'est OK :  reboot

Avec Arch linux le reboot prend 15 secondes !


B) RESEAU

Par defaut la config réseau de Arch Linux utilise DHCP, ce qui n'est pas pratique pour un serveur.

1) Donner une adresse IP statique à l'interface eth0 :
Arch utilise  systemd  pour controler le demarrage du systeme.
Dans  /etc/systemd/system/multi-user.target.wants  on trouve le fichier
  netcfg@ethernet-eth0.services
qui est en fait un alias de /usr/lib/systemd/system/netcfg@.service

Si on regarde ce fichier on voit que la configuration est faite par:
  /usr/bin/netcfg check-iface %i
%i represente ce qu'il y a après le @ dans le nom du fichier, dans notre cas "ethernet-eth0"

Voir aussi: https://wiki.archlinux.org/index.php/Netcfg

2) Editer  /etc/network.d/ethernet-eth0

CONNECTION='ethernet'
DESCRIPTION='A basic static ethernet connection using iproute'
INTERFACE='eth0'
IP='static'
ADDR='192.168.0.2'
GATEWAY='192.168.0.1'
DNS=('8.8.8.8' '8.8.4.4')


3) Editer  /etc/conf.d/netcfg

NETWORKS=("ethernet")
WIRED_INTERFACE="eth0"
 

Attention: ne pas éditer /etc/resolv.conf car netcfg l'écrase à chaque demarrage.
  
Voir aussi: https://wiki.archlinux.org/index.php/Network_Configuration

On reboote pour voir si tout s'initialise correctement.
Si tout est ok, on va pouvoir utiliser une session SSH pour se connecter au raspberry.
Note: Pour configurer le daemon ssh (changer le port, desactiver ipv6 ...) c'est dans /etc/ssh/sshd_config


C) CONFIGURATION

(Des)installer les packages (in)utiles. Arch Linux utilise le logiciel "pacman" comme gestionnaire de packages.
  • Mettre à jour la liste des packages dispo : pacman -Syy
  • Mise a jour de tous les packages :  pacman -Syu
  • Voir ce qui est installé :  pacman -Q
  • Installer un package :  pacman -S package_name
  • Supprimer un package :  pacman -R package_name
Si votre raspberry n'est pas 'online' vous pouvez télécharger les packages ici  http://mirror.archlinuxarm.org/armv6h/  et les installer manuellement avec la commande :
pacman -U /path/to/package_name-version-armv6h.pkg.tar.xz
Voir aussi : https://wiki.archlinux.org/index.php/Pacman


D) BACKUP

Une fois tout installé et configuré il est bon de faire une sauvegarde de la carte flash. Une solution trés simple consiste à arreter le raspberry, extraire la carte et en faire une copy physique avec le logiciel (windows)
http://hddguru.com/software/HDD-Raw-Copy-Tool/ Ce logiciel est capable de dupliquer plusieurs types de supports y compris les cartes mémoire. Bien sur il permet aussi de restorer une sauvegarde.



02 avril 2013

Focus stacking avec PhotoShop

Il y a de nombreuses vidéos sur Youtube expliquant comment utiliser Photoshop pour fusionner des photos et faire du focus stacking. Pour les impatients qui n'ont pas le temps de regarder ces vidéos, ceux qui ne supportent pas les musiques de fond agressives ou l'anglais, voici un mémo, avec les noms de menus en français ;-)

On suppose que vous avez déjà fait la prise de vue comme expliqué ici.

1) Menu: Fichier > Scripts > Chargements des fichiers dans une pile...
- Cliquer sur "Parcourir..." et sélectionner les photos (jpg ou raw)
- Sélectionner l'option "Tenter d'aligner automatiquement les images sources"
- Cliquer sur "OK"

Photoshop charge une photo par calque puis les aligne ...

2) Sélectionner tous les calques
Comme pour des fichiers: click sur le premier et shift+click sur le dernier.

3) Menu: Edition > Fusion automatique des calques...
- sélectionner le mode "Empiler les images"
- sélectionner l'option "Tons et couleurs continus"

Photoshop fusionne les calques (les photos) en retenant de chacun la partie la plus nette. Contrairement à des logiciels spécialisés il n'y a aucune configuration possible de ce processus.

4) Menu: Calques > Fusionner les calques.

5) Enfin, recadrer pour éliminer les bords qui ne sont pas droits à cause de l'alignement, peaufiner les couleurs ect... et sauver.

Il y a des variantes au chemin présenté ci-dessus (on peut charger par dossier entier et non par sélection des fichiers, on peut faire l'alignement séparément avec "Menu: Édition > Alignement automatique des calques ..." ect...). A vous d'explorer...

01 avril 2013

Installer Magic Lantern

Il existe une extension open source (et gratuite) du firmware se trouvant nativement dans les appareils photo Canon EOS 5D Mark II, 5D Mark III, 50D, 60D, 500D, 550D, 600D. Cette extension appelée Magic Lanterne, ajoute de nombreux perfectionnements et de nouvelles fonctionnalités aussi bien à la partie audio/vidéo qu'a la partie photo de votre EOS.

Dans un autre post je vous parlerai des extensions HDR et focus stacking. Mais tout d'abord voici comment installer cette extension dans votre 5D mark II ou mark III.

1) Télécharger le zip de Magic Lantern adapté à votre appareil ici: https://builds.magiclantern.fm/

2) Vérifier que votre EOS utilise bien la version du firmware pour laquelle Magic Lantern a été conçu. Si ce n'est pas le cas mettre à jour le firmware du 5D mk2 ou du 5D mk3 (le downgrade est possible avec l’appareil en mode Manuel et en utilisant EOS utilities).

Exemple: MagicLantern 5D2.212 fonctionne avec un 5D mk2 équipé du firmware version 2.1.2 de Canon.

NB: Il y a deux versions de ML pour le 5D mk3 suivant que la version installée dans l'appareil est la 1.1.3 ou la 1.2.3 (Toutes les fonctions de ML ne sont pas disponibles avec la version 1.2.3)

3) Mettre une carte CompactFlash (32Go maxi) dans le 5D mk2/mk3 et la formater depuis l'appareil. Bien sur tout sera supprimé sur cette carte !

4) Eteindre le 5D mk2/mk3, retirer la carte, la mettre dans un lecteur de carte relié à un PC ou MAC.

5) Depuis le fichier zip téléchargé contenant Magic Lantern, copier sur la carte fraichement formaté:
- les 2 fichiers : autoexec.bin et 5D2_212.fir ou 5D3_113.fir ou 5D3_123.fir
- et le répertoire ML

6) Éjecter proprement la Compact Flash du PC/MAC, l'insérer dans le 5D mk2/mk3 et mettre l'appareil en marche. Jusque là rien de nouveau, votre appareil photo fonctionne exactement comme avant.

7) Effectuer depuis le 5D mk2/mk3 la même opération que pour une mise à jour normale du firmware :

cliquer sur la ligne indiquant le version actuelle

Cliquer sur "OK". Dans les 15 secondes qui suivent vous obtenez cet écran

8) Arrêter et remettre en marche le 5D mk3/mk2
A première vu, rien n'a changé. Tous les menus de Canon sont là et inchangés. Mais...
a) La version du firmware est maintenant:
(bien sur le suffixe ml-v2.3 dépend de la version de ML)

b) Effleurer le bouton de déclenchement puis appuyer sur la touche 'poubelle'. Vous obtenez le menu de Magic Lantern !

En fait Magic Lantern a très légèrement modifié la configuration en NVRAM du 5D pour qu'il détecte la présence de Magic Lantern sur la carte mémoire. Le firmware original de Canon n'est pas modifié. Si Magic Lantern est présent il est chargé au démarrage de l'appareil et s'attache au bouton 'poubelle'. Si vous changez de carte mémoire (ou ne mettez pas de carte) vous n'aurez pas accès aux fonctions de Magic Lantern, mais votre appareil fonctionnera normalement.

Maintenant que Magic Lantern est sur for EOS 5D mk2/mk3, si vous voulez avoir Magic Lantern sur d'autres cartes mémoire il suffit d'exécuter l'opération (5) pour chaque carte.

IMPORTANT 
A) Pour retirer la carte de l'appareil
    1) éteindre l'appareil (bouton en position off)
    2) ouvrir le volet
    3) ATTENDRE que la led clignote (soit au minimum 5 sec)
   4) éjecter la carte.


B) NE JAMAIS SUPPRIMER LES FICHIERS DE MAGIC LANTERN A LA MAIN.
- Pour supprimer ML d'une carte: utiliser la fonction de formatage intégrée à l'appareil et suivre les instructions.
- Pour supprimer ML de l'appareil: utiliser la fonction de mise à jour du firmware intégrée à l'appareil et suivre les instructions. (Note: réinstaller le firmware d'origine ne supprime pas Magic Lantern de l'appareil.)
Ces deux fonctions ont été modifiées pour gérer la suppression de Magic Lantern.


L'aide est intégrée au logiciel mais est aussi disponible avec un peu plus de détails ici : http://wiki.magiclantern.fm/userguide