dimanche 21 octobre 2012

Découvrir un DataCenter Google en streetview et en vidéo

Je serais content quand cela sera aussi disponible pour le Data Center Belge (près de Mons)

View Larger Map

Aimez-vous Python? Vous aimerez Raspberry PI!

Aimez-vous Python?
Oui... ca tombe bien, nous aussi.
Nous avons justement trouvé un SoC (System On Chip=Ordinateur sur une Puce) qui se programme en Python! Abordable, Hackable, Linux Based, Python Programming... <3 <3 <3 <3 <3 <3 <3

Il y a quelques semaines, MCHobby à commencer à commercialiser Raspberry-PI.

Le Pi dispose d'un OS Linux (wheezy Raspbian... dérivé direct de Debian) et se programme en... Python.
Disposant d'un port d'entrée/sortie, d'un disque SD, d'une connectique ethernet et USB, Raspberry se trouve être un excellent environnement pour developper et faire fonctionner des applications embarquées écrites en Python.

Raspberry PI disponible chez MC Hobby

Il est vraiment simple de prendre le contrôle de Raspberry en SSH (c'est prévu "out-of-the-box").
raspberry PI dispose également d'une sortie HDMI, il est donc possible de le raccorder sur un moniteur DVI-D avec un clavier et souris.
Cela ne signifie pas que vous êtes limités à la ligne de commande... Wheezy Raspbian est suffisamment puissant pour faire tourner l'environnement graphique XCFE et un editeur Python avec une bonne fluidité.

Comme c'est une machine Linux à base de Debian, les possibilités et champs d'application sont vraiment large.
Pour les hacker, vous apprendrez qu'il est également possible d'overclocker un Raspberry-Pi à 1 Ghz... et très facilement même.

Ce week-end nous nous sommes penché sur les possibilités du port GPIO avec le Cobbler d'AdaFruit.
PI Cobbler + extra
Disponible chez MC Hobby

Le moins que l'on puisse dire c'est que nos tutoriels français ont littéralement explosés sous les découvertes (que nous documentons bien évidemment).


mardi 2 octobre 2012

Mondial Relay - Error 97 - PrestaShop

Voila une erreur apparue sur www.mchobby.be qui a bien faillit me rendre chèvre.

Durant le processus de sélection d'un moyen de transport Mondial Relay, PrestaShop affichait le message d'erreur suivant:

There is an error number : 97
Details : Clé de sécurité invalide
 
Quand ont sait pourquoi, c'est "en fin de compte" assez simple a corriger.
Cette erreur 97 est produite parce que le "Code Postal" et "Ville" mentionnées ne sont pas compatible.
 
Comprenez: La combinaison CP + Ville n'existe pas dans la DB de Mondial Relay. Et cela peut être une question de caractères comme dans l'exemple qui nous concerne. 

La fiche client contenait:

En fait, 7021 correspond exactement à "Havré" et non à "Mons (Havré)".

Une fois la fiche client corrigée... plus d'erreur 97 :-)

MountVol et lecteur USB plus reconnu

Si vous essayez la commande

mountvol z: /D
ou
mountvol z: /P

vous constaterez vite que le volume n'est plus reconnu (gloups!).
Le périphérique USB est bien visible dans "périphérique et imprimante" mais il n'y a plus de lecteur pour accéder aux fichiers.

Cela arrive parce qu'il n'y a plus de lettre assignée au volume.
Le plus simple est de réassigner manuellement une lettre par l'intermédiaire du gestionnaire de disque (clique droit sur la partition puis "ajouter lettre")

Le plus gros problème c'est de trouver le gestionnaire de disque dans les méandres de Windows Seven.
Le raccourcis c'est:
(touche <Windows> + <R>, tape diskmgmt.msc puis <Entrer>)

RemoveDrive
Pour pouvoir éjecter un lecteur USB en toute sécurité, il faut utiliser un utilitaire disponible sur le NET.
Il s'appelle RemoveDrive et fonctionne parfaitement sans heurt.

RemoveDrive V2.3.3 - Safe removal of drives

Disponible http://www.uwe-sieber.de/drivetools_e.html

Cobian Backup et Multiple disque USB

Cobian Backup est un excellent logiciel de backup open-source... l'un des meilleurs sans être une usine à gaz!
Même après des années d'utilisation j'en reste pleinement satisfait.

Il y a cependant une ombre au tableau.
Si l'on peu utiliser plusieurs disques USB pour faire des backups (disons 1 disque différent par jour), il est impossible d'avoir une lettre de volume unique pour tous ces lecteurs.
On a pas non plus la certitude que l'on aura toujours la même lettre pour un lecteur lorsuq'il est rebranché plus tard.

C'est ennuyant parce que Cobian Backup est intimement lié à la lettre d'identification du volume.

Il reste alors deux solutions possibles:
  1. Créer une tâche Cobian Backup par disque de backup (en assignant une lettre différente à chaque lecteur)... une approche pas vraiment "pro"
  2. Utilise un batch qui essaye de re-mapper le lecteur sur une lettre choisie arbitrairement (par exemple Z:)... nettement plus pro
MapDrive.bat
Dans le billet "Usb drivers / Subst solution", j'ai trouvé un batch qui teste l'existence d'un fichier pour détecter le lecteur backup.
Une fois le lecteur détecté, il utilise l'instruction MountVol pour remonter le lecteur sur une lettre arbitrairement choisie.

Hé bien... chapeau bas! Voici une méthode simple et élégante.

@echo off
rem ********************************************************
rem changes disk drive letter based off file test

rem     File/dir To Test For
rem     ex   E:\backup.tag   = backup.tag
rem     ex2  E:\iPod_Control = iPod_Control

SET TEST=backup.tag


rem    Drive to Move To

SET DEST=Z:

rem    Media Name
rem    ex Backup or "USB STICK"

SET NAME=GGBackup

rem ********************************************************

echo Testing Destination %DEST%
if exist %DEST%\%TEST% goto good
if exist %DEST% goto fail_inuse
echo Finding %NAME%

set DRV=E:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=F:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=G:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=H:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=I:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=J:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=K:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=L:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

goto fail


:found
echo Found  %NAME% At %DRV%
echo Moving %NAME% To %DEST%

FOR /F "delims=" %%x IN ('MOUNTVOL %DRV% /L') DO SET DF=%%x

IF "%DF%"=="The system cannot find the file specified." GOTO failmap

echo.
echo Unmapping Drive %DRV%
MOUNTVOL %DRV% /D
echo Remapping Drive %DEST%
MOUNTVOL %DEST% %DF%

echo.
Echo Testing %DEST%
if exist %DEST%\%TEST% goto good
echo Faild Test
echo %NAME% Status Unknown
goto end

:good
echo.
echo %NAME% Is Properly Located At %DEST%
goto end

:failmap
echo Failed To Reassign Found Drive
goto end

:fail_inuse
echo %DEST% Is Inuse And Not Target Drive
echo Remap Failed
goto end

:fail
echo %NAME% Not Found
goto end


:end

Ce qu'il y a de vraiment bien avec ce batch, c'est que "Cobian Backup" peut l'exécuter juste avant la tâche de backup :-)))

RemoveDrive
N'essayez pas de démonter votre clé USB avec mountvol, vous allez avoir une sacré surpris!!!
MountVol est un peu trop radical et le périphérique n'est plus remonté lorsqu'il est rebranché (voir l'autre article publié ce jour).

Pour démonter un Volume en toute sécurité, il faut utiliser le programme RemoveDrive qui fonctionne à merveille.
RemoveDrive peut être trouvé ici http://www.uwe-sieber.de/drivetools_e.html

UnMapDrive
Sur base du premier script, ce dernier à été modifié pour appeler la commande RemoveDrive.exe au lieu de MountVol.
Il teste l'existence d'un fichier (backup.tag) et démonte ensuite le volume.

C'est une version vite fait... mais un bon début ;-)
@echo off
rem ********************************************************
rem changes disk drive letter based off file test

rem     File/dir To Test For
rem     ex   E:\backup.tag   = backup.tag
rem     ex2  E:\iPod_Control = iPod_Control

SET TEST=backup.tag


rem    Drive to Move To

SET DEST=Z:

rem    Media Name
rem    ex Backup or "USB STICK"

SET NAME=GGBackup

rem ********************************************************

echo Testing Destination %DEST%
if exist %DEST%\%TEST% goto good
if exist %DEST% goto found
echo Finding %NAME%

set DRV=E:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=F:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=G:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=H:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=I:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=J:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=K:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

set DRV=L:
echo testing %DRV%
if exist %DRV%\%TEST% goto found

goto fail


:found
echo Found  %NAME% At %DRV%
echo Moving %NAME% To %DEST%

rem FOR /F "delims=" %%x IN ('MOUNTVOL %DRV% /L') DO SET DF=%%x

rem IF "%DF%"=="The system cannot find the file specified." GOTO failmap

echo.
echo Unmapping Drive %DRV%
removedrive.exe %DRV%
goto end

:good
echo.
echo %NAME% Is Properly Located At %DEST%
echo Unmapping Drive %DEST%
c:\dev\removedrive.exe %DEST%
goto end

rem :failmap
rem echo Failed To Reassign Found Drive
rem goto end

:fail
echo %NAME% Not Found
goto end


:end