chatbot-snapshot.png

Il y a environ 15 ans, je m'amusais à déployer un chatbot sur le canal #France sur le réseau IRC d'Undernet. Ce chatbot avait comme pseudonyme Loana et entretenait des discussions assez douteuses avec des inconnus du Net. J'ai décidé de le déconnecter d'Internet le jour où ce chatbot commençait à avoir des rendez-vous amoureux...

J'avais utilisé à l'époque une implémentation Opensource d'un chatbot AIML récupérée depuis la page de téléchargement du programme A.L.I.C.E. Depuis cette époque, j'avais un vieux rêve qui était de faire parler mon robot et qu'il comprenne le son de ma voix ...

En 15 ans, les technologies ont bien évolué, les solutions de "Text to speech" et "Speech to text" fonctionnement parfaitement aujourd'hui. J'ai donc réinstallé un chatbot sur mon serveur, je suis partie cette fois de Program-O, un chatbot Opensource développé en PHP sur la base des spécifications AIML de la fondation A.L.I.C.E.

Program-O s'installe très simplement, il vous faudra une base MySQL pour faire fonctionner ce programme et un serveur PHP. Pour construire la base de connaissance du chatbot, je vous conseille très fortement de reprendre les deux sets de fichiers AIML mis à disposition par Jean-Louis Campion et Siewlan Tan.

Par défaut, l'import des fichiers AIML posera quelques problèmes au niveau du format du XML, j'ai mis quelques dizaines de minutes pour corriger l'ensemble des fichiers, vous trouverez les fichiers corrigés sur mon projet sur GitHub dans le répertoire AIML.

Une fois le Program-O opérationnel avec les bons fichiers AIML importés, vous pourrez jouer avec l'extension Chrome que j'ai développée pour faire du TTS et du STT. Cette extension Chrome peut être récupérée sur mon repository GitHub. Pour pouvoir utiliser cette extension, il vous faudra la charger via l'option "Charger une extension non empaquetée" disponible sur la page Extensions de Chrome lorsque le "Mode développeur" est activité.

extensions chrome

Pour que l'extension puisse pointer vers votre propre instance de Program-O, n'oubliez pas de modifier la ligne 64 du fichier main.js avec l'URL de votre chatbot et le fichier manifest de l'extension Chrome pour autoriser l'extension à réaliser des requêtes HTTP vers votre serveur.

Vous voilà avec un chatbot qui parle français et qui est complètement Opensource... On regrettera juste le module Javascript chrome.tts soit spécifique à Chrome et ne soit disponible seulement via une extension.

Amusez-vous bien !

NB : Le chatbot semble rencontrer quelques soucis lorsqu'il ne détecte pas le micro de votre ordinateur.

funky-bears.jpg

J'ai récemment fait la découverte des Funky Bears, ce sont des figurines originales en résine produites en quantité limitée.

Il en existe de différentes couleurs, réalisés par différents artistes, leur seul point commun est leur forme qui ne change pas selon les collections. Ces figurines sont l'un des derniers héritiers en date du mouvement "Art Toy" apparu à la fin des années 1990 dans la ville de Hong Kong sous l'impulsion d'artistes tels que Michael Lau, Kaws, Futura 2000 ou encore James Jarvis.

Les Funky Bears sont commercialisés en trois tailles différentes : 30cm et 50cm de hauteur et en version porte-clef. Leur prix varie entre 6€ et 95€, ces Funky Bears ne sont pas encore cotés sur le marché de l'art, mais peut-être que d'ici 50 à 100 ans ces petites statuettes auront une cote non négligeable sur le marché des objets d'art vintage de 2100 ;-)

Vous pouvez les trouver aujourd'hui dans plus de 600 points de vente, 90 modèles de Funky Bears ont été créés par des artistes depuis 2011 et plus 40 000 Funky Bears ont été adoptés depuis la création de la marque.

Pour décorer mon bureau, j'ai adopté un Funky Bear Super-Héro de 50cm qui a pris aujourd'hui toutes ses aises avec mes petits robots Android.

funky bear geek

Si vous cherchez un objet décoratif coloré pour votre salon, votre chambre ou votre bureau, ces Funky Bears sont très sympathiques.

Pour vous, lecteurs du blog, le code "geeek15" vous permettra d'obtenir 15% de réduction sur toute la boutique en ligne Funky Bears.

lego-moins-cher

Vous être un AFOL débutant, mais vous ne le savez pas encore ? Vous souhaitez acheter des LEGO au meilleur prix ? Voici 2 astuces qui vous permettront de faire quelques économies :

Le comparateur d'offres

Je viens de faire la découverte ce week-end d'un comparateur d'offres LEGO : avenuedelabrique.com Le site fonctionne comme n'importe quel comparateur du Web à la différence qu'il ne référence que des produits LEGO.

Avenuedelabrique possède aujourd'hui :

  • 32 marchands partenaires
  • 1960 produits LEGO différents au catalogue
  • 8111 prix référencés

Si l'envie vous prend d'aller acheter un set neuf, n'hésitez pas à faire un tour sur ce site pour identifier le magasin en ligne le moins cher. Ce qui est incroyable, c'est de voir qu'un set LEGO peut être commercialisé sur certains magasins 3 fois plus cher que l'offre la moins chère du marché.

L'achat au kilo

Le marché d'occasion cache de belles offres, vous pouvez trouver des lots de LEGO vendus au kilo sur des sites comme Leboncoin ou bien Ebay.

Le kilo de LEGO se vend autour de 10€ sur le marché de l'occasion, cela peut varier en fonction des types de pièces incluses dans le kilo et notamment la présence de mini-figurines. Vous trouverez de nombreuses offres sur les sites d'annonce en ligne, faites cependant attention à la qualité des LEGO achetés et assurez-vous bien que le lot ne contient pas de Mega Block.

Si le lot a bien été conservé, il est fort probable que vous puissiez refabriquer les sets d'origine sur la base des plans téléchargeables depuis Internet.

starter-kit-dirduino-uno.jpg

Je viens de faire la découverte de DIRobots, une boutique en ligne française proposant un kit Arduino complet à un prix intéressant : 39€ au lieu de 52€

Le kit est composé de 197 éléments et d'un Arduino Uno R3 qui vous permettront de réaliser de nombreux montages différents :

  • 1x Carte DIRduino UNO R3
  • 1x Afficheur LCD 2 lignes 16 caractères
  • 1x Télécommande infrarouge
  • 1x câble USB
  • 1x Platine d'expérimentation sans soudure (breadboard) 830 points
  • 65x Câbles Mâle/Mâle
  • 20x Résistances 220 Ohms
  • 20x Résistances 1 kOhms
  • 20x Résistances 4.7 kOhms
  • 20x Résistances 10 kOhms
  • 1x LED RGB (cathode commune)
  • 10x LEDs rouges 5mm
  • 10x LEDs vertes 5mm
  • 10x LEDs jaunes 5mm
  • 1x Récepteur infrarouge
  • 2x Mini boutons poussoirs
  • 1x Capteur de lumière ambiante (photorésistance)
  • 1x Capteur d'inclinaison
  • 1x Capteur de température LM35
  • 1x Double pont-H (L293D)
  • 1x Buzzer
  • 1x Hélice de ventilateur
  • 1x Moteur
  • 3x Potentiomètres 10 kOhm
  • 1x Mini servomoteur 9g
  • 1x Support 6 piles AA avec un jack de connexion

Ce kit est fournit avec un 15 tutoriaux que vous pouvez télécharger librement sur la page Web de DIRobots.

  • Tutoriel n°1 : Réaliser une première expérimentation avec la carte Arduino. Celle-ci consiste à faire clignoter une LED.
  • Tutoriel n°2 : Réaliser un programme permettant de faire clignoter une LED pour signaler un SOS en morse.
  • Tutoriel n°3 : Réaliser un feu de circulation avec un bouton permettant aux piétons de demander le passage du feu au rouge pour leur donner la possibilité de passer en toute sécurité.
  • Tutoriel n°4 : Utiliser la génération d’un signal PWM pour faire varier l’intensité lumineuse d’une LED
  • Tutoriel n°5 : Utiliser la génération de trois signaux PWM pour illuminer une LED RVB (LED multicolore contrôlable en rouge, vert, bleu) avec des couleurs variées.
  • Tutoriel n°6 : Utiliser un buzzer pour générer le son d’une alarme.
  • Tutoriel n°7 : Utiliser le composant LM35 pour effectuer une mesure de température. Une alarme sonore se déclenche si cette température excède un certain seuil.
  • Tutoriel n°8 :Utiliser un capteur d'inclinaison pour détecter le basculement de la platine d’expérimentation.
  • Tutoriel n°9 : Simuler un allumage automatique de lumière en fonction de la luminosité ambiante.
  • Tutoriel n°10 : Effectuer un premier contrôle d’un servomoteur.
  • Tutoriel n°11 : Contrôler le positionnement d’un servomoteur avec un potentiomètre
  • Tutoriel n°12 : Contrôler une LED RVB au moyen de 3 potentiomètres.
  • Tutoriel n°13 : Contrôler un moteur en vitesse en fonction d’un potentiomètre. La puissance est gérée par le composant L293D
  • Tutoriel n°14 : Allumer et éteindre une LED au moyen d’une télécommande infrarouge.
  • Tutoriel n°15 : Afficher “Hello World” sur un afficheur 2 lignes -16 caractères

J'ai testé le kit, le matériel fourni est globalement de bonne qualité, la platine d'expérimentation est large et avec une bonne finition contrairement à la majorité des kits que l'on peut trouver sur le marché. L'ensemble de la documentation est en français et les plans de montage sont en vectoriel, l'utilisation du zoom permet d'éviter des erreurs de montage ;-)

Le kit est livré dans une boite en plastique de rangement vous permettant de classer tous les composants sans risque de perte ou de casse. Les résistances sont annotées avec leur capacité pour éviter les inversions.

starter kit dirduino uno box

Si vous souhaitez apprendre à utiliser l'Arduino Uno, ce starter kit offre un bon compromis en terme de qualité / prix. Il peut être commandé en ligne sur le site DIRobots.

Pour l'ensemble des lecteurs de mon blog, le code GK_6PC vous permettra d'obtenir 6% de réduction sur votre commande en ligne jusqu'au 30 avril 2016.

Happy hacking !

pingendo-header.png

Vous êtes à la recherche d'un outil gratuit pour maquetter rapidement des sites Web basés sur le framework Bootstrap ?

Voici Pingendo, un fabuleux outil gratuit permettant de créer d'incroyables portails Web Bootstrap en quelques minutes.

L'outil est à la fois disponible sous forme d'application native pour Windows, Linux et Mac mais aussi sous la forme d'un portail Web dans le cadre de la V4 en version Alfa intégrant Bootstrap V4.

pingendo screenshot

Pingendo vous permet à la fois d'ajouter des composants rapidement via l'utilisation du glisser/déposer, il offre aussi un certain nombre d'accélérateurs via l'onglet "section" disposant de sections de page complètes. La version 3 de l'outil dispose d'un éditeur LESS / CSS permettant d'étendre la feuille de style de Bootstrap, la version 4 de l'outil intègre quant à elle SASS en remplacement de LESS.

Il faudra attendre encore quelques jours, voire quelques semaines pour pouvoir télécharger la version 4 de Pingendo utilisable en mode déconnecté sur PC. En attendant, vous pouvez vous amuser à créer un site Web rapidement via la version 3 de Pingendo accessible en libre téléchargement sur le site Web de Pingendo.

De nombreuses fonctionnalités planifiées ou en cours d'implémentation peuvent être suivies sur la page Trello de Pingendo :

  • Intégration de plugins
  • Support natif d'AngularJS
  • Intégration de Github
  • Intégration de thèmes gratuits
  • ...

Tout cela est très prometteur, vous retrouverez plus d'informations sur le site Web Pingendo.

Bon téléchargement !

stackshare_logo.png

Vous vous demandez comment les développeurs ont fait pour que la plateforme 500px puisse délivrer 500To de photos haute résolution et comment Wix supporte 60 Millions de clients ? La plateforme Stackshare.io vous dévoile toutes les stacks logicielles utilisées sur le Web.

Le concept de la plateforme est simple, c'est en quelque sorte un site de recettes dans lequel les frameworks et logiciels sont des ingrédients et les stacks sont des plats cuisinés. Tout le monde peut y partager sa stack logicielle préférée et y décrire son usage, l'ajout de nouveaux frameworks et logiciels sont quant à eux soumis à validation.

stackshare screenshot

On y découvre une multitude d'idées intéressantes en navigant dans l'onglet "Stack", de grands groupes comme Airbnb, Dropbox, Pinterest, Stackovervlow y dévoilent les composants qui permettent à leur plateforme de fonctionner en production. Tout cela est très enrichissant et permet de découvrir de nouvelles solutions assez peu connues sur le marché européen.

J'ai profité de cette plateforme pour détailler la stack logicielle utilisée par mon blog : http://stackshare.io/ltoinel/geeek-org

L'outil Dotclear que j'utilise pour bloguer est en cours de validation par Stackshare.io et devrait probablement être visible courant de semaine prochaine.

Faites de bonnes trouvailles sur Stackshare !

TeckNet_PowerZen.jpg

Vous avez probablement vu de nombreux projets d'onduleurs exotiques pour Raspberry Pi sur Internet. Malheureusement, ils sont généralement commercialisés très cher et ne sont pas simples à obtenir en France.

Je suis tombé sur quelques sites indiquant qu'il était possible d'utiliser un simple chargeur USB portable comme onduleur pour Rapsberry Pi. Cette vidéo détaille le principe de fonctionnement :

La batterie ne pouvant pas communiquer d'information au Rapsberry Pi pour indiquer que le courant s'est coupé, le Raspberry Pi utilise l'état de sa connexion réseau pour identifier une perte éventuelle de courant. C'est simple et efficace !

En cas de coupure de courant, votre Rapsberry Pi peut fonctionner de manière autonome quelques heures, voire plus de 24h en fonction du nombre de périphériques USB connectés.

La batterie qui ressort souvent des tests trouvés ici et est la TeckNetPowerZen 9000mAh qui est commercialisée à moins de 20€ et qui offre de très bonnes performances par rapport aux besoins en énergie du Raspberry Pi. Il faut être vigilant, car certaines batteries ne sont pas capable de passer d'un mode charge à un mode décharge de manière continue sans coupure de quelques secondes.

Il faudra bien penser à remplacer le dispositif au bout de quelques années, en fonction du nombre de charges et de recharges que celui-ci aura subies. D'ici là, cet investissement de 20€ protégera votre Raspberry Pi des coupures de courant. Accompagné d'un modem 3G, votre Raspberry Pi pourra même vous transmettre un SMS pour vous prévenir de la coupure de courant à votre domicile.

nerf_strongarm_elite_blaster.jpg

Vous chercher à obtenir les meilleurs performances avec votre Nerf Elite Strongarm ?

Voici une vidéo complète qui synthétise l'ensemble des astuces possibles pour améliorer les performances de son Nerf Elite Strongarm. Les modifications effectuées dans cette vidéo permettre au Nerf d'envoyer des projectiles à plus de 30 mètres.

Le ressort présenté dans cette vidéo peut être trouvé sur Amazon au prix de 10,90€

Attention, les modifications réalisées transforment pour le coup le Nerf en réel arme ...

wring-screenshot.png

J'ai découvert, grâce à Korben, un outil en ligne de commande très puissant pour extraire des contenus de pages Web .

Cet outil est développé en Javascript et se prénomme Wring. Il s'installe de la manière suivante si vous avez déjà NodeJS d'installé sur votre PC :

$ npm install --global wring

Son usage est très simple, pour extraire les numéros gagnants du dernier tirage de l'Euromillions sans aller sur le site Web de la FDJ, il vous suffira de taper la commande suivante :

// Retourne les  5 numéros du tirage
wring text "https://www.fdj.fr/jeux/jeux-de-tirage/euromillions/resultats" ".euro_num"

En enrobant un peu, voici un petit script qui extraira la date du tirage et l'ensemble des numéros sortis, étoiles comprises :

#!/bin/bash

URL="https://www.fdj.fr/jeux/jeux-de-tirage/euromillions/resultats"
wring text $URL .dateTirage
echo "-----------------"
wring text $URL .euro_num
echo "-----------------"
wring text $URL .euro_num_c

Pour générer un fichier CSV contenant l'ensemble des résultats de l'Euromillions par date, il vous suffira d'inscrire le script suivant dans un Cron :

#!/bin/bash

URL="https://www.fdj.fr/jeux/jeux-de-tirage/euromillions/resultats"
DATE=`wring text $URL .dateTirage`
NUMS=`wring text $URL .euro_num|tr '\n' ';'`
STARS=`wring text $URL .euro_num_c|tr '\n' ';'`

echo "$DATE;$NUMS;$STARS" > resultats.csv

Vous pouvez trouver de nombreux autres usages plus utiles à Wring notamment via les options eval / html et shot fournies par cet outil.

L'essayer, c'est l'adopter !

monptitvoisinage-logo.png

Vous souhaitez découvrir votre voisinage et enrichir votre réseau de connaissances ? J'ai très récemment découvert MonPtitVoisinage.com, un site Web proposant de mettre en relation voisins, services, associations ...

L'inscription se fait en deux clics, vous pouvez découvrir sur ce portail Web, les actualités de votre quartier, les associations qui y sont présentes, la liste de vos voisins qui sont inscrits et aussi la liste des services et objets que vos voisins partagent. Bref, c'est une mine d'or, d'autant plus que le site commence à avoir de plus en plus d'inscrits. Cela faisait longtemps que j'attendais un site de ce style avec une interface utilisateur agréable, bravo aux 12 personnes de l'équipe !

Le projet est réalisé par des Bretons de Rennes nourris à la galette saucisse, le site a été créé en 2014 et a été soutenu par la Maïf suite à une levée de fond de 1,7 M€. MonPtitVoisinage.com a de beaux jours devant si des partenaires commerciaux s'intéressent à leur projet.

N'hésitez pas à vous inscrire sur leur plateforme pour découvrir les services proposés, c'est gratuit et leurs serveurs sont localisés en France. Si le projet vous séduit, vous avez la possibilité de commander votre kit ambassadeur pour partager l'information à vos voisins et faire grossir votre petit voisinage.

Enfin, si vous êtes développeur, Monptitvoisinage expose une API "Sharing City" permettant d’interagir avec les données du site à partir d'applications partenaires. Différents cas d'usage sont très bien présentés dans la documentation de présentation des API.

monptitvoisinage screenshot

bulletin_euromillions.gif

Vous cherchez à réaliser des statistiques sur les numéros sortis à l'Euromillions ?

Voici un dump SQL des 879 tirages Euromillions que vous pourrez facilement importer dans une base MySQL.

Pour identifier les numéros qui sont les moins tirés au sort, voici un petit exemple de script PHP qui vous permettra de classer les numéros de l'Euromillions par nombre croissant de tirages.

<?php

$hostname = "localhost";
$database = "euromillion";
$username = "monlogin";
$password = "monpass";

// Connexion à la base de données
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
} catch(PDOException $e) {
    echo $e->getMessage();
}

// Prepare Statement
$stmt = $dbh->prepare("SELECT count(*) as occurs FROM resultats where n1=:number or n2=:number or n3=:number or n4=:number or n5=:number");
$numbers = array(); 

// Pour les chiffres de 0 à 50
for ($i=1; $i<=50; $i++){
    $stmt->bindParam(':number', $i);
    $stmt->execute();
    $data = $stmt->fetch();
    $numbers[$i] = $data["occurs"];
}

// On ordone la liste par valeur
asort($numbers);

// On affiche pour chaque numéro, les occurrences 
foreach($numbers as $number => $occurs){
    echo $number. " => " .$occurs."<br/>";
}

Vous pouvez aussi jouer avec le logiciel RapidMiner pour fabriquer de magnifiques graphes que seul vous-même saurez exploiter.

Si jamais ce script fait de vous un millionnaire, n'oubliez pas d'avoir une petite pensée pour Geeek ;-)

virus-informatique-couv.jpg

Aussi incroyable que cela puisse paraître, le Virus Informatique fait son grand retour en kiosque après 10 années d'absence.

Pour les nostalgiques comme moi, vous allez redécouvrir ce magazine d'un autre temps qui n'a pas vraiment changé finalement. Seule la page de vente à distance d'OS/2 Warp et de Turbo-Forth ont disparu du numéro 27 mais ils sont toujours en disponibles en vente en ligne depuis le site Internet acbm ;-)

Pour ceux et celles qui n'ont jamais connu cette époque et qui souhaitent découvrir ce journal, certains articles du numéro 27 peuvent être lus directement en ligne depuis le site ACBM.

On y retrouve du bidouillage, quelques listings de code d'un autre monde et des illustrations humoristiques dont les Bellaminettes de Philippe Bellamy qui ont participé au succès du journal à l'époque. Le journal n'a pas suivi l'inflation des dernières années et est en vente au prix de 2 euros seulement.

Vous pouvez désormais suivre les news du Virus Informatique sur Twitter via le compte ACBM_COM. Si l'idée de rédiger des articles vous vient à l'esprit, vous pouvez envoyer vos articles à la rédaction après avoir suivi les consignes de rédaction.

Bonne chance au Virus pour son grand retour !