mardi 31 décembre 2013

L'artisan informatique

Voici un petit billet - une réflexion - qui vaut peut être la peine d'être méditée.

Il y a peu, j'ai découvert part hasard la société "JCL Informatique" et son blog.

Ce qui a retenu mon attention, c'est le leitmotiv qui se présente sous la forme de  "L'informatique pour un Artisan".

Je viens de me rendre compte que ce monsieur est dans le vrai quand il parle d’Artisan... plutôt deux fois qu'une.

L'informatique de mon enfance n'est plus. Il est loin le temps où l'on ouvrait nos PCs en sachant ce qu'est ceci ou cela, comment cela fonctionne, à quoi cela sert.
Comment apporter nos améliorations. Ces revues qui décortiquaient le fonctionnement de nos machines.
Il n'y a pas encore 20 ans, nous savions tous ce qu'il y avait dans ces belles boites qu'étaient les ordinateurs et nous savions comment en tirer le meilleur parti.
Il y a 20 ans, nous rendions visite à des gens compétent et discutions de technologie et de matériel. C'était une période riche en savoir... et partage des connaissances.

20 Ans plus tard, ce métier est devenu presque inexistant. Nos jeunes ne savent plus ce qu'il y a dans un pc, une tablette ou un IPhone. Seul l'effet "Whoaw" compte et le reste importe peu. Si ça ne marche plus, ce n'est pas grave... on jette et on rachète un nouveau jouet... principalement parce qu'il est dans le "vent", "top", "trop stylé" ou qu'il dispose d'un bon support publicitaire.
20 ans plus tard, une grande partie de la population achète mais ne sais plus... ne partage plus de savoir... et ne répare plus non plus (c'est tellement facile de racheter une nouvelle imprimante). L'obsolescence programmée est bien intégrée dans les produits, conçu pour être difficile à réparer.
Les grandes chaines de distribution ont tué les petits indépendants du domaine... et rare sont les vendeurs qui sont compétent et savent vraiment ce qu'ils vendent (les chiffres d’abords... le reste est accessoire).

Le petit vendeur informatique dispose lui de connaissances "qui sont en voies de disparition". Il cultive un savoir, un savoir faire et un savoir réparer.
Bref, il devient vraiment un Artisan... au même sens que l'Artisan boulanger ou du Luthier. Et comme pour ces métiers de l'Artisanat, il se fait rare.

Etre Artisan dans un métier de technologie (plutôt de pointe), voila un idée/un concept que je ne me suis jamais imaginé rencontrer de mon vivant.
Voici qui est fait.

dimanche 22 décembre 2013

Tutoriels sur GIT

Voici deux excellents tutoriels sur GIT....

jeudi 12 décembre 2013

Connexion DHCP... c'est quoi tout ces messages DHCPINFORM, DHCPACK, etc sur mon routeur

Si vous avez un routeur Belgacom et des problème de stabilité Wifi, vous avez certainement été jeter un oeil sur la page de configuration pour découvrir des messages comme...

Thu, 12 Dec 2013 12:00:34 GMT DHCP SERVER: DHCPINFORM from 192.168.1.9
Thu, 12 Dec 2013 12:00:31 GMT DHCP SERVER: DHCPACK on 192.168.1.9 to 94:39:e5:12:6f:0b via br0
Thu, 12 Dec 2013 12:00:31 GMT DHCP SERVER: DHCPREQUEST for 192.168.1.9 from 94:39:e5:12:6f:0b via br0
Thu, 12 Dec 2013 12:00:09 GMT DHCP SERVER: DHCPACK on 192.168.1.12 to 04:54:53:29:95:e5 via br0
Thu, 12 Dec 2013 12:00:09 GMT DHCP SERVER: DHCPREQUEST for 192.168.1.12 from 04:54:53:29:95:e5 via br0
Thu, 12 Dec 2013 11:59:23 GMT DHCP SERVER: DHCPINFORM from 192.168.1.10
 
Il faut avouer qu'ils ne sont pas éloquant.
Pour vous aider, vous pouvez consulter l'article "Le Dynamic Host Configuration Protocol (DHCP) - RFC 2131" rédigé en Français et excellent article de vulgarisation.

Source: l'article mentionné
 
De quoi satisfaire votre curiosité.

mercredi 27 novembre 2013

Bonne source d'information sur Harbour

Les développeurs Clipper sous Harbour Apprécierons ces information

Harbour related


MiniGui related


IDEs / Editors of choice
  • xMate Project Manager : The good-old IDE by Andy Wos, bundled with an excellent -and IMO the best Harbour oriented-, source code editor for Harbour developers!
  • HMGS-IDE (open source IDE) : MiniGui oriented IDE, with a good form designer.
  • Notepad++ : Excellent open-source & free (..as in "free speech" and also as in "free beer") source code editor.
  • Harbour IDE : Interesting multi-platform (Qt based) IDE. A very strong tool for Harbour developer.


Tutorials



Alexander Kresin pageA ne vraiment pas rater, la page Harbour/Clipper software development Alexander Kresin qui reprend également un DEBUGGEUR!!!

Source

jeudi 10 octobre 2013

ImageMagick et PowerShell

Voici la fin d'un périple d'automatisation de capture d'image pour notre catalogue :-) ...

Donc, après les découvertes suivantes:
  • la capture d'image automatisée sur un Nikon D5000 et 
  • la découverte d'ImageMagick (voir les deux posts précédents)
Voici un script PowerShell qui:
  • Réduit automatiquement l'image en 3 tailles différentes (600x600, 200x200, 100x100)... 
  • Sélectionne la partie centrale (pour avoir un beau carré)
  • Dégrade la qualité à 93% (le meilleur rapport entre taille et qualité)
prêtes à être intégrées dans notre base de donnée PostGreSql:-)
Le reste se fera en clipper compilé à l'aide d'Harbour Project (compilateur Clipper libre)


# ----------------------------------------
# Configuration
$srcfolder = "C:\Stock\Input\CatPhoto.in"
$destfolder = "C:\Stock\Input\CatPhoto.in"
$im_convert_exe = "C:\Program Files (x86)\ImageMagick-6.8.7-Q16\convert.exe"
$src_filter = "pict_*.jpg"
$dest_ext = "jpg"
# Image source = 4282 x 2848, target = ? x 600 (to be cropped at 600x600) 
# Width=903 <-- data-blogger-escaped-final="" data-blogger-escaped-height="600" data-blogger-escaped-source=""> ratio = 4.746 => Width for Height = 600 => 4282 / 4.746 => 903px
# Intermediate image would be resized to 903x600 BEFORE croping to 600x600
$optionsCatImage = "-resize 903 -crop 600x600+151+0 -quality 93" 
$optionsCatThumb = "-resize 302 -crop 200x200+51+0 -quality 93"
$optionsCatMiniThumb  = "-resize 150 -crop 100x100+25+0 -quality 93"
$logfile = "c:\Stock\Input\CatPhoto.in\convert_image.txt"
# ----------------------------------------

$fp = New-Item -ItemType file $logfile -force
$count=0
foreach ($srcitem in $(Get-ChildItem $srcfolder -include $src_filter -recurse))
{
    $srcname = $srcitem.fullname

    # Construct the filename and filepath for the output
    $partial = $srcitem.FullName.Substring( $srcfolder.Length )
    $destCatname = $destfolder + $partial.replace( "pict_", "cat_" )
    $destThumbname = $destfolder + $partial.replace( "pict_", "thumb_" )
    $destMiniThumbname = $destfolder + $partial.replace( "pict_", "mini_" )
    $destCatname= [System.IO.Path]::ChangeExtension( $destCatname , $dest_ext )
    $destThumbname= [System.IO.Path]::ChangeExtension( $destThumbname , $dest_ext )
    $destMiniThumbname= [System.IO.Path]::ChangeExtension( $destMiniThumbname , $dest_ext )
    $destpath = [System.IO.Path]::GetDirectoryName( $destCatname )

    # Create the destination path if it does not exist
    # if (-not (test-path $destpath))
    # {
    #     New-Item $destpath -type directory | Out-Null
    # }

    #--- CAT IMAGE ---
    # Perform the conversion by calling an external tool
    $cmdline =  "& `""+$im_convert_exe+"`""+ " `"" + $srcname  + "`" " + $optionsCatImage + " `"" + $destCatname + "`" "
    echo $cmdline
    invoke-expression -command $cmdline    

    # Get information about the output file    
    $destitem = Get-item $destCatname

    # Show and record information comparing the input and output files
    $info = [string]::Format( "{0} `t {1} `t {2} `t {3} `t {4} `t {5}", $count, 
 $partial, $srcname, $destCatname, $srcitem.Length ,  $destitem.Length)
    echo $info
    Add-Content $fp $info

    $count=$count+1

    #--- CAT THUMB ---
    # Perform the conversion by calling an external tool
    $cmdline =  "& `""+$im_convert_exe+"`""+ " `"" + $srcname  + "`" " + $optionsCatThumb + " `"" + $destThumbname + "`" "
    echo $cmdline
    invoke-expression -command $cmdline    

    # Get information about the output file    
    $destitem = Get-item $destThumbname

    # Show and record information comparing the input and output files
    $info = [string]::Format( "{0} `t {1} `t {2} `t {3} `t {4} `t {5}", $count, 
 $partial, $srcname, $destThumbname, $srcitem.Length ,  $destitem.Length)
    echo $info
    Add-Content $fp $info

    $count=$count+1

    #--- CAT MINI THUMB ---
    # Perform the conversion by calling an external tool
    $cmdline =  "& `""+$im_convert_exe+"`""+ " `"" + $srcname  + "`" " + $optionsCatMiniThumb + " `"" + $destMiniThumbname + "`" "
    echo $cmdline
    invoke-expression -command $cmdline    

    # Get information about the output file    
    $destitem = Get-item $destMiniThumbname

    # Show and record information comparing the input and output files
    $info = [string]::Format( "{0} `t {1} `t {2} `t {3} `t {4} `t {5}", $count, 
 $partial, $srcname, $destMiniThumbname, $srcitem.Length ,  $destitem.Length)
    echo $info
    Add-Content $fp $info

    $count=$count+1
    
}

Outils de transformation d'image ... en ligne de commande ou PowerShell

Introduction
Après le shooting automatique d'image pour notre catalogue (voir article précédent), il faut s'attarder un peu sur le traitement d'image.
Difficile de générer un catalogue en ligne ou papier avec des images qui font 4288x2848 qui font 4.8Mb pièce!!!à plus forte raison s'il y a 2500+ produits dans le catalogue préliminaire.

Gimp et Photoshop c'est bien, mais il n'est pas possible d'imaginer le traitement manuel de 2500 prises de vue.
L'utilisation d'un outil en ligne de commande ou OleAutomation pour automatisé le processus est donc primordial... a plus forte raison si le back-end est maintenu en Clipper.

Découvrez ImageMagick
Au cours de mes recherches, j'ai rencontré ImageMagick, une solution libre et franchement incroyable.

ImageMagick® est une suite logicielle pour créer, éditer, composer ou convertir des images bitmap. Il est capable de lire et d'écrire des images dans une variété de formats (plus de 100) incluant DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF.

Utilisez ImageMagick pour des opérations de modification de taille, flip, mirroir, rotation, distortion, cisaillement et transformation d'images, ajuster les couleurs de l'image, appliquer des effets spéciaux, ou dessiner du texte, lignes, polygones, ellipses et courbes de Bézier.

ImageMagick ne fonctionne pas seulement en ligne de commande, mais aussi avec des objets d'automations et de nombreux Wrapper pour de nombreux langages (y compris Python).

Exemple
Voici une image traitée automatique avec ImageMagick.
La source est en 4288x2848 faisant 4.6Mb

Et son traitement à l'aide d'ImageMagick avec la commande suivante:
Réduction de taille (903x600, réduire la largeur à 903 adapte automatiquement la hauteur à 600), qualité (93%) et découpe de 600x600 au centre (donc éliminer les bords droit et gauche)
convert pict_20131010_104548_1.jpg -resize 903 -crop 600x600+151+0 -quality 93 final.jpg


On obtient:

Ressource

mercredi 9 octobre 2013

Récupérer les images d'un appareil photo en PowerShell

Introduction
La société où je travaille va remonter un vrai catalogue informatisé et nous investissons beaucoup de temps dans la structuration des informations... vive les bases de données.
Mais pour faire un catalogue, il faut aussi des images. 
Pourquoi, donc, ne pas essayer d'automatiser la saisie de ces images catalogue directement depuis notre logiciel (nous avons 2500+ produits au catalogue)..

On place l'objet a photographier sur le stand de photographie, on sélectionne l'article dans le programme et ont clique sur le bouton shoot! Prise de photo, traitement d'image (principalement réduction de taille et poids) et stockage peuvent facilement être automatiser pour un travail d'envergure.

Ha oui, pour corser le tout... le soft est maintenu en clipper compilé en 32 bit sous Windows à l'aide d'Harbour Project

Les appareils "moyen de gamme" c'est super
La plupart des appareil photo moyen de gamme sont reconnu comme de vrai lecteurs disques dès qu'il sont branchés en USB. Sur la plupart il est même possible de faire des prises de vues pendant qu'il est branché en USB.
Même, si dans ce cas, il faut faire les prises de vues en poussant sur le bouton, le fait de disposer d'un système de fichier standard est vachement pratique... car un simple "file copy" rempli toutes nos attentes.

Les appareils "haut de gamme" c'est le casse tête
Par contre, les prise de vue seront faite à l'aide d'un Nikon D5000.
Si l'appareil est super et produit des photographies a tomber par terre, les photos ne sont pas accessibles au travers d'un lecteurs.
Si vous branchez le cable USB, Windows reconnait l'appareil et vous pouvez naviguer à la recherche des photographie avec l'explorateur de fichier... faire un copier/coller.

Mais essayer seulement d'écrire un batch ou un programme qui fait un file copy des fichiers jpeg!!!! vous allez voir que les choses se corsent.

Les appareils haut de gamme sont souvent reconnu par Windows et y associe une interface de gestion "plus évoluée"... cela implique souvent la perte de fonctionnalités de base.

La solution se trouve dans l'interface ActiveX WIA.

Qu'est-ce que WIA
WIA signifie Windows Image Acquisition, c'est une interface d'automation qui permettra de capturer et transférer des images depuis différentes sources (Appareil Photo, WebCam, Scanner, etc).
Avec WIA il est même possible de déclencher la prise de vue sur l'appareil.
Vous trouverez probablement assez facilement des informations sur WIA en naviguant sur le net.

WIA et PowerShell
Il est possible d'utiliser WIA avec PowerShell... c'est bien pratique pour récupérer des images stockées sur notre Nikon D5000.
L'exemple MyShotDownloadPict.ps1 ci-dessous fait une capture d'image (prise de vue) puis rapatrie toutes les images dans un répertoire local du PC... finalement, il effaces ces images de la carte SD (pour la séance suivante).

// Script Powershell pour:
// 
// Utiliser WIA Windows Image Acquisition Automation afin de
// prendre commander le shoot d'une photo (avec Nikon D5000) 
// connecté en USB puis transférer toutes les photos (dont le
// shoot) dans un répertoire sur le PC.
// 
// Nécessite l'enregistrement de WIA 
//   RegSvr32 WIAAut.dll
//
// Source: 
//   http://helvick.blogspot.be/2007/08/camera-automation-with-powershell-part_19.html
//   http://msdn.microsoft.com/fr-fr/library/bb469890.aspx
//
$ErrorActionPreference="silentlycontinue"
$WIAManager = new-object -comobject WIA.DeviceManager
if (!$?) {
   write "Unable to Create a WIA Object"
   Eexit
}
$DeviceList = $WIAManager.DeviceInfos
if ($DeviceList.Count -gt 0) {
   $Device=$DeviceList.item($DeviceList.Count)
} else {
   write "No Device Connected"
}
$ConnectedDevice = $Device.connect()
if (!$?) {
   write "Unable to Connect to Device"
   Exit
}
$Commands = $ConnectedDevice.Commands
$TakeShot="Not Found"
foreach ($item in $Commands) {
   if ($item.name -match "take") {
       $TakeShot=$item.CommandID
   }
}


$Pdir="C:\Stock\Input\CatPhoto.In"
new-item $Pdir -itemtype dir
$ICompare="c:\Program Files\ImageMagick-6.3.5-Q16\compare.exe"
$ActiveCamera = $ConnectedDevice

# Fait un shot et télécharge l'image
$ActiveCamera.ExecuteCommand($TakeShot)
# Attendre 1 seconde pour que l'appareil
# Ai le temps d'enregistrer l'image sur la carte
sleep 1

# Télécharger le restant des images éventuellement présente
$iCount= $ActiveCamera.items.Count
Write "Camera has $iCount pictures"
for ($iCount=$ActiveCamera.items.Count;$iCount -gt 0;$iCount--) {
    
    $f=$ActiveCamera.items.item($iCount)
    $fg=$f.Transfer()
    $localFilename = "pict_"+$(get-date -f "yyyyMMdd_hhmmss")+"_$iCount.jpg"
    Write "Saving $localFilename..."
    $fg.SaveFile( $Pdir+"\"+$localFilename )

    # Retire l'image de la carte de l'appareil photo
    $ActiveCamera.items.Remove($iCount)
}

Voici donc un outil d'automatisation que je pourrais appeler depuis mon programme Clipper (ouf!)

jeudi 8 août 2013

PostGreSql performance - Articles d'introduction

Après une étude assez poussée des performance SQL Serveur (cfr mes autres articles), je vais me poser sur les performances de PostgreSql.

A contratio de SqlServeur, au bout de deux ans d'activités intenses sur notre DB PostgreSql je n'ai pas encore eu besoin de me poser sur les problèmes de performances.
Il n’empêche que je vais anticiper un peu cet problèmatique en devenir (c'est le lot de tous les SGBD) avec quelques références appropriées:

Understanding Postgres Performance 
de Craig Kerstiens

Cet article d'introduction met le focus sur:
  • Compréhension du cache et du Hit Rate
  • Comprendre l'usage des indexes
  • Exemple avec "Heroku Dashboard"
  • Index Cache Hit Rate
Voir l'article "Understanding Postgres Performance".

More on Postgres Performance
de Craig Kerstiens
  •  Les "stats" de PostgresSql
  • Quelques query pour extraire des informations pertinentes des stats.
  • Que faut-il optimiser
  • Optimisation
Voir l'article "More on Postgres Performance"

lundi 5 août 2013

Decouvrir Node.js en Français

Juste un petit billet pour référencer une série d'article (un tutoriel) à propos de Node.js

Comme Mathieu le dit si bien:
Node.js, c'est un peu l'outil dont les développeurs web entendent parler tout le temps en ce moment. Il y a ceux qui connaissent (et qui ont l'air de s'éclater en l'utilisant) et il y a ceux qui se disent "Bon, ça serait bien que j'y jette un oeil, mais je ne sais pas par où commencer".
Vous êtes de ceux-là ? Ca tombe bien, je l'ai été moi aussi ! ;)

Ses premières pages représentent vraiment une très bonne synthèse très agréable à lire, la suite doit certainement être tout aussi captivante.

Article à lire donc: "Des applications ultra-rapides avec Node.js" par Mathieu Nebra sur le siteduzero.com.

Voir aussi Node.js sur Wikipedia.

mardi 23 juillet 2013

Faire du SSH depuis Windows

Faire du SSH avec un système Unix est vraiment naturel... ça l'est franchement moins avec Windows qui ne sait pas trop ce que c'est que cette bête là.

La solution réside dans le Tunnelier, un logiciel SSH pour Windows

http://www.bitvise.com/tunnelier

lundi 22 juillet 2013

Conversion YouTube vers fichier audio

J'ai récemment eu besoin de récupére le contenu audio (formation en ligne) d'une vidéo YouTubes.

Déjà pas facile d'avance, je dispose de surcroit d'un système Ubuntu.

Voici les différents éléments à mettre en Oeuvre pour y arriver:
  • Video DownloadHelper (plug in pour FireFox) qui d'appuie sur FFMpeg
  • FFMpeg pour la conversion
  • WinFF interface graphique de FFMpeg... toujours utile pour détecter ce qui n'a pas fonctionné
  • libmp3lame comme encodeur MP3
Voici les liens vers les différents éléments:
  • Installer le paquet libmp3lame0
    sudo apt-get install libmp3lame0
Utilisez le gestionnaire de logiciel pour installer FFWin... cela en vaut vraiment la peine.
 

    samedi 22 juin 2013

    Environnements de développement sous Android

    24/06/2013: Suite au commentaire de Joseph, j'ai ajouté PhoneGap qui semble être une alternative vraiment très intéressante.

    Il existe bien entendu l'environnement de développement recommandé qui est le SDK Android qui s'appuie sur Java et Eclipse... mais aussi d'autres environnements comme SimpleApplication, AndroidScripting, AIR for Android qui peuvent se montrer intéressant a différents niveaux.

    Voici quelques références de choix pour en faire rapidement un petit tour:

    Android SDK
    C'est l'environnement qui fait le plus, le mieux, le plus sérieux, le plus recommandé.... mais aussi le plus "complexe" à prendre en main.
    Le temps et l'énergie à investir est forcement plus importante... mais au final, vous serez aussi mieux récompensé de vos efforts. 
     
    PhoneGap
    PhoneGap présente une approche qui peut déstabiliser mais pourtant vraiment puissante dans sont ensemble.
    PhoneGap propose d'utiliser vos connaissances Html 5, CSS et JavaScript pour faire du développement sur Android, iOS, Bada, etc.
    JavaScript est facile d'apprentissage et Html 5/CSS largement documenter sur le Net. Par le passé, JBoss à déjà prouvé qu'il était possible de construire des applications robustes en javascript.

    Phone Gap supporte de nombreux Frameworks JavaScript 
     Et depuis la version 2, PhoneGap supporte également les PlugIns . Grâce à eux, il existe maintenant des API pour accéder au différents senseurs de la plateforme d'exécution (voir API Référence).

    Organisation structurelle de PhoneGap

    Ce n'est pas tout, Phone Gap dispose d'un environnement de programmation "DW" est capable d'accéder a un service de stockage de données (dit Data API).


    PhoneGap est probablement l'une des alternatives les plus intéressantes à Android SDK.
    Merci à Joseph pour son commentaire décidément très pertinent!!!

    Plus d'informations:
     
    Programming Made Simple
    Un environnement de programmation qui convient visiblement aussi pour android. Il s'agit d'un langage type BASIC simple à apprendre et à utiliser.

    Android Scripting Environnement
    Certainement mon préféré car il permet d'obtenir des résultats rapidement sans devoir investir un temps colossal.
    Permet de faire fonctionner vos scripts en service ou démarré via l'interface  locale.
    Cet environnement permet d'exécuter des scripts Python, Lua et BeanShell.

    Air pour Android
    Environnement poids lourds de Adobe (donc payant) qui permet d'écrire des applications pour iPhone et iOs.

    Son avantage: Adobe AIR est quand même très répandu et il doit être assez facile de trouver de la littérature pour ce produit.
    Paraît-il que la courbe d'apprentissage est plus rapide que celle du SDK...
    Titanium Mobile Application

    Environnement de développement très étendu qui permet de créer des applications pour de nombreux environnement (Windows, Android, BlackBerry, iOs, ...) supportant déjà de nombreux services.

    Je ne sais qu'en penser car l'investissement en temps est visiblement aussi important qu'avec le SDK Android officiel mais celui-ci serait orienté JavaScript et HTML5 (cela n'empêche pourtant pas l'appel des API).

    Par contre, il semblerait avoir été utilisé pour créer 50.000 Apps donc celle de LegoLand! Voir ici les autres "App showcase".

    Plus d'info:

    mardi 7 mai 2013

    Qt-Creator - PyQt4 - Eric

    C'est en lisant un article relatif a Arduino, a savoir "Building a remote controlled Arduino robot based on the Turtle-2WD mobile platform" que j'ai découvert Qt-Creator, PyQt et ERIC par le plus grand des hasard.

    Qu'est-ce que Qt-Creator?
    Selon cet article de Wikipedia, c'est en environnement de développement Qt intégrant un Designer.
    Source: Wikipedia

    Qt Creator est un environnement de développement intégré multiplate-forme faisant partie du framework Qt. Il est donc orienté pour la programmation en C++.
    Il intègre directement dans l'interface un débogueur, un outil de création d'interfaces graphiques, des outils pour la publication de code sur Git et Mercurial ainsi que la documentation Qt. L'éditeur de texte intégré permet l'autocomplétion ainsi que la coloration syntaxique. Qt Creator utilise sous Linux le compilateur gcc; il peut utiliser MinGW ou le compilateur de Visual Studio sous Windows.


    Qt-Creator est en autre utilisé pour créer l'interface de l'article "Building a remote controlled Arduino robot based on the Turtle-2WD mobile platform"
    Source: Building a remote controlled Arduino robot based on the Turtle-2WD mobile platform

    Vous trouverez des liens intéressant sur:
     
    Qu'est ce que PyQt?
    Lorsque l'on apprend que Qt est bien plus qu'un simple framework graphique (voir la description des modules sur la page de RiverBankComputing), il est facile de l'envisager comme alternative pour remplacer notre logiciel vieillissant compilé sous Clipper.
    Etant très orienté Python, je me suis demandé s'il existait un équivalent de Qt-Creator pour Python... et quelques recherches sur le net font vite resurgir le projet PyQt... visiblement stable.

    Selon le site de PyQt:
    PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework and runs on all platforms supported by Qt including Windows, MacOS/X and Linux. PyQt4 supports Qt v4 and will build against Qt v5. PyQt5 supports Qt v5. The bindings are implemented as a set of Python modules and contain over 300 classes and over 6,000 functions and methods.

    Lien intéressant:
    Qu'est-ce que ERIC?
    Eric is a full featured Python and Ruby editor and IDE, written in python. It is based on the cross platform Qt gui toolkit, integrating the highly flexible Scintilla editor control. It is designed to be usable as everdays' quick and dirty editor as well as being usable as a professional project management tool integrating many advanced features Python offers the professional coder. eric4 includes a plugin system, which allows easy extension of the IDE functionality with plugins downloadable from the net.

    Plus d'information sur la page du projet.

    vendredi 3 mai 2013

    Petite réflexion sur "le sens de la vie" et le "savoir"


    Nous avons tous "un savoir", du/des "savoir faire", des connaissances, des aptitudes.
    Souvent, nous ignorons nos capacités car nous regardons nos aptitudes d'un oeil critique, sans réelle considération pour ce qu'elles sont mais surtout nous faisons l'erreur de les considérer individuellement. 
    Il arrive toujours un moment où l'on se demande ce que l'on peut bien faire de sa vie... quelle importance elle peut bien avoir... le sens qu'elle peut avoir....
    C'est le moment où l'on pose un regard très critique sur soi, nos actions, nos buts, notre travail, nos réalisations, nos manquements, etc. Trop sévère vis-à-vis de nous même, nous nous faisons souvent du mal en abordant le problème par le côté obscur.

    La question essentielle n'est pas de savoir ce que l'on veux faire/réaliser pour donner du sens... mais comment tirer parti et combiner tout ce savoir que l'on en nous... comment combiner le tout avec notre expérience personnelle pour créer quelque-chose qui sera nouveau, qui aura forcement un plus, qui aura du sens pour nous car il représente ce que nous sommes, qui aura du sens pour d'autres car nous y apportons notre expérience, notre savoir, notre énergie!
    Le résultat est lumineux... car nous rayonnons de nos efforts et réussites, il nous renforce dans notre estime de nous, nous fera peut-être même remarqué au grand jour... mais surtout cela du sens avant tout pour la personne la plus importante à nos yeux qui est "nous même" (même si nous l'ignorons souvent volontairement).

    Etre créatif, nous avons tous le moyen de l'être ;-)

    lundi 29 avril 2013

    Windows 8 rebute aussi les ados

    Bon nombre d'utilisateurs n'ont pas eu d'autre choix que d'acheter un PC avec Windows 8.
    Windows 8 est loin de faire l'unanimité dans le monde PC où la tentative de convergence des environnements Bureau et Tablettes PC n'est pas accueillit à bras ouvert par tous (surtout les utilisateurs).
    Si un environnement adapté aux tablettes est plein de bon sens, l'imposer dans un environnement des PC desktop (donc de production comme les secrétariats, programmeurs, réceptionnistes, etc) n'est pas une idée que je qualifierais de lumineuse.

    Il est normal de voir une certaine forme de résistance au changement... car le changement n'est pas une situation confortable, il est normal d'y réagir. Les changements radicaux créent des situations où l'adaptation est difficile ou impossible. Le résultat est un rejet en bloc plutôt qu'une adoption progressive.

    Parmi les plus réactif, je suis certain qu'il y a le front "des anciens" qui a du mal de trouver ses repères dans cet environnement en perpétuel évolution... voire en pleine mutation... parlons de "MUTANT" c'est plus réaliste.

    Par contre, ce qui est nouveau, c'est que les apports de Windows 8 sur environnement de Bureau (les PC) rebutent aussi les adolescents!
    Pourtant, il n'y a pas plus souple qu'un Ado pour absorber ou s’enthousiasmer pour une nouvelle technologie.
    Si Windows 8 n'emporte pas leur adhésion... c'est qu'il y a un "vrai problème" de fond.

    Mon beau fils, comme certains de ses amis, n'apprécie ("n'aime pas" pour reprendre ses mots) pas ce nouvel environnement. Lui qui a testé les multiples versions de Windows... d'Ubuntu... d'Android... Et bien il n'aime pas Win 8! Il est pourtant très à l'aise dans ce domaine!

    Microsoft aura réussit à réaliser avec son système d'exploitation la même prouesse qu'avec sa suite Office: Tellement perturber l'environnement que cela provoque de l’urticaire viscéral chez ses utilisateurs!

    Ceux qui ont connu les versions d'offices avant la version 2007 et qui doivent encore se battre avec la version 2010 comprennent fort bien de quoi il est question.

    Déçu par UBUNTU... optez pour Linux Mint 14 (Nadia) !

    Vous êtes en total désaccord avec la politique Ubuntu? le passage en force d'Unity vous dérange? l'interface d'Unity ne vous convient pas ?
    Essayez donc Linux Mint 14 (Nadia)... et vous ne reviendrez plus a Ubuntu.


    Après de longues années de travail sur Windows, celui-ci m'ayant tellement déçu au fil des versions Vista, Seven, WinHargGrrrBrolbrol 8... je me suis tourné vers Linux.
    Après quelques recherches j'ai opté pour Ubuntu... très prometteur à l'époque et résolument orienté vers l'efficacité.

    Aujourd'hui, c'est Ubuntu qui me désespère... au point de le quitter!
    Les avancées vers gnome 3 ne laisse pas tout le monde indifférent... mais imposer Unity sur les desktops, c'est faire la même erreur que Microsoft avec Windows 8.
    Un environnement Desktop de production... et une tablette ce n'est pas la même chose. Essayer de faire converger les environnement est un non-sens.
    Loin d'avoir appris des erreurs de Microsoft, voila que mon OS favori m'impose des modifications dans mon environnement de travail, mes habitudes et le tout en marge de mon utilisation quotidienne. A moi de m'adapter!
    Heureusement... sur Ubuntu 12 il était possible d'activer gnome-classic... avec quelques déboire (le Alt-Tab pour changer d'appli par exemple)

    Lorsque j'ai appris que Gnome-Classic serait abandonné dans les futures release d'Ubuntu, cela a eu l'effet d'un coup de canon. Et j'ai commencé à envisager une alternative...

    Certes une annonce toute récente prétend la sortie d'une double version 14... Ubuntu-Unity et Ubuntu-Gnome-Classic. Mais pour l'heure cette version n'est pas encore disponible... même en beta.

    Mon laptop se faisant vieux et poussif, j'ai fini par faire l'achat d'un matériel plus récent et nettement plus puissant (8 cores).
    J'ai bien entendu viré EFI et Windows 8... mais pas installé Ubunu pour autant!
    J'ai trouvé ma solution dans Linux Mint 14 Nadia élaboré sur une fondation Gnome 2 et Ubuntu.
    J'y ai trouvé toutes mes marques pour continuer mes activités MCHobby sans me demander où trouver telle ou telle fonctionnalité.
    Tous les logiciels nécessaires sont installés... et l'environnement est fluide, cohérent, épuré... bref EFFICACE!
    Après un week-end de grande satisfaction, je peux déjà annoncé que je ne reviendrais pas dans le giron Ubuntu... j'ai trouvé mieux ailleurs.

    lundi 8 avril 2013

    Activer Telnet Client sous Windows 7

    Telnet client n'est pas installé par défaut... mais il est très simple de l'activer

    La solution se trouve ici http://www.libellules.ch/seven_activer_telnet.php

    mercredi 6 mars 2013

    Ville de Soignies demande des informations sensibles et sécurité branlante

    Je viens de passer sur le portail de la ville de Soignies. 
    Partout il existe des personnes ayant de bonnes idées et désirant offrir des services utiles.
    L'histoire du portail Administratif de Soignies est certainement dans cette lignée... sauf qu'il y a un sérieux manque de bon sens/sécurité d'informations sensibles pour l'un des services proposés. Cela me fait franchement froid dans le dos.

    Je me suis donc rendu sur la page suivante "Vie Administrative > Commande de Document"
    Et n'étant pas inscrit, carte d'identité en main je m'apprête à encoder l'information demandée... quand je me rends compte qu'il y a un problème fondamental de sécurité informatique et sécurité de l'information (envoyée au portail et probablement stockée dans une DB).




    La page incriminée se trouve ici
    http://www.soignies.be/fr/vie-administrative/documents-en-ligne.html

    Voici ce que j'ai vu:


    Et voici le courrier "contact" envoyé dans les 5 minutes à l'administration communale de Soignies (en espérant qu'ils réagissent vite).

    <<
    concerne: Sécurité des comptes ouvert sur votre site/saisie d'information sensible.

    Je comptais ouvrir un compte pour demander une copie des actes xxxxxxxxxx. Vous y demandez des informations sensibles (y compris No carte ID, No National, Date Naissance,etc).
    Le site n'est pas en https donc espionnable et l'information est certainement stockée sur un système moyennement sécurisé (autant que l'https requis pour ces infos). En cas de piratage, toute l'information nécessaire a une usurpation d'identité est accessible.
    Projet dangereux! A revoir!
    >>


    Message envoyé à Soignies.be ce 6/03/2013
    Réponse: en attente

    Soignies à beau être une commune, il me semble que la collecte de NNS + No Carte ID et autre information est soumis a une réglementation sévère (et demande d'autorisation spéciale du SPF protection vie privée).
    J'imagine mal ce portail connecté directement sur la DB de l'administration... il dispose donc de sa propre DB... peut-être même en ligne chez un fournisseur de service.
    Si ce formulaire déclenche l'envoi d'un message/mail, je me demande s'il est encrypté? ou passe par un réseau sécurisé?
    Quand on vois que la saisie de l'information ultra-sensible d'identification du cytoyen est faite sur un simple http (non encrypté)... je crains le pire pour le traitement de la chaine d'information.

    dimanche 3 mars 2013

    exit Windows

    Une phrase qui a tout son sens en anglais:

    "In a world without walls and fences, who needs windows and gates ?"

    vendredi 1 mars 2013

    Choisir un "Messaging Protocol" pour ses applications

    L'une des tâches les plus importantes de l'architecte logiciel est de sélectionner les fondations de son application.
    Les applications orientées Cloud et distribuées étant de plus en plus courantes, car elles permettent de répartir les charges, le choix d'un "protocole de messagerie applicatif" est un point critique/sensible de  l'architecture.

    Qui peut dire qu'il en connais les subtilité?
    Parmi les solutions propriétaires, il existe aussi quelques solutions open-source utilisées dans des projets de très grande envergure.

    L'article suivant présente:
    • AMQP - Advanced Message Queuing Protocol
    • MQTT - Message Queue Telemetry Transport
    • STOMP - Simple/Streaming Text Oriented Messaging Protocol ... l'un des seula être "text based"
    • RabbitMQ - Un message broker multi-protocol
    L'article source vous présente une introduction a toutes ces technologies.
    Une source intéressante pour démystifier ces plateformes