web2day 2017

Qu'avez-vous prévu dans votre planning les 7, 8, 9 juin 2017 ? Venir visiter notre belle région nantaise et participer au Web2day ?

Vous l'avez peut-être zappé, mais le Web2days 2017 se rapproche à grands pas. Il reste encore des places à la vente, alors n'hésitez pas à passer voir la superbe programmation attendue pour ce festival du Web 100% nantais.

En synthèse, le Web2days, c'est :

  • 3400 participants
  • 260 speakers
  • 196 conférences
  • 25 700 mentions
  • 5 000 000 vues Twitter
  • 17 000 livestream

Parmi les Speakers, du beau monde, de belles sociétés et de belles histoires à raconter ! Notre Korben national y sera même présent ;-)

Comme chaque année, le Web2day lance sont concours de startups, le "Global Challenge". 5 thématiques sont à l'honneur cette année :

  1. Future of Home Automation
  2. Content and Services for Millennials
  3. Connected Things for electric networks
  4. Retail
  5. LegalTech/Fintech

L'ouverture des inscriptions est toute fraîche, vous pouvez vous inscrire depuis les liens référencés dans l'article du blog Web2days.

Si vous souhaitez vous inscrire en simple visiteur, l'achat de places se réalise sur le site officiel de l'événement..

Bon Web2day sur place ou en livestream pour celles et ceux qui ne peuvent pas venir !

bttn

Je vous avais présenté Smiirl, un compteur connecté dans un précédent article, voici Bt.tn un autre objet connecté très simple d'usage lui aussi.

Il suffit parfois d'exceller dans une idée simple pour faire du commerce, voici le bouton Bttn, un bouton connecté qui permet de déclencher des appels à un service sur Internet configurable à chaque fois qu'un appuie est réalisé sur le bouton.

Le concept est très simple et peut répondre à de nombreux cas d'usages :

  • Appel à un service de Taxi.
  • Livraison Deliveroo
  • Envoi d'un SMS
  • Appel d'urgence
  • Aide à domicile
  • ....

À vrai dire, tout ce qui est automatisable sur Internet peut être déclenché par un simple appui sur ce bouton.

Ce bouton connecté est disponible en plusieurs variantes :

  • Fabrication avec ou sans logo.
  • WiFi, GSM ou Sigfox pour les entreprises.
  • Taille normale ou mini
  • Couleur : Noir, bleu, rose, vert, jaune, rouge, blanc

Ce bouton coûte de 69€ jusqu'à 99€ pour le modèle imprimé avec le logo de votre choix. Il vous faudra ensuite payer un abonnement de 1.99 € par mois pour chaque bouton après 2 ans d'utilisation, autant dire qu'un usage personnel n'est pas envisageable à ce prix.

bttn price

La bonne nouvelle est que le Bttn possède de nombreux connecteurs lui permettant d’interagir rapidement avec différents systèmes tels que : IFTT, Twitter, Zapier, Facebook, RSS, email ... Pour vous permettre de configurer facilement votre Bttn, un portail en ligne est mis à disposition des utilisateurs du service : https://my.bt.tn

Voici une vidéo pour découvrir ce bouton connecté dans le détail :

En conclusion, la déclinaison GSM / Sigfox de ce bouton connecté est pratique pour des cas d'usage spécifiques où le WiFi n'est pas présent. Son prix reste abordable à l'achat (pour un objet connecté). Cependant, l'abonnement de 1,99€/mois, autant dire 2€/mois requis après deux années d"utilisation du bouton, va très vite rentre l'objet excessivement cher dans la durée, d'autant plus si vous utilisez la version Wifi qui ne nécessite pas de connectivité particulière pour fonctionner.

smiirl

Connaissez-vous les compteurs connectés Smiirl ? Ce sont des compteurs connectés avec un affichage à palette commercialisés par une startup française.

Deux modèles de compteur sont disponibles en standard, le premier permet de suivre le nombre de followers sur Instagram, le second permet de suivre le nombre de likes sur Facebook, vous avez aussi la possibilité d'utiliser un compteur Smiirl pour afficher vos propres données et de personnaliser le compteur avec votre logo lors de l'achat du produit en ligne. Il faudra pour cela exposer une API REST/JSON (exemple : http://api.smiirl.com/number).

Le prix du compteur varie de 299€ pour le compteur standard à 5 chiffres jusqu'à 349€ pour le compteur personnalisé, soit 50 euros de plus. Comptez un délai de livraison de 3 jours sur des compteurs standards et 15 jours sur les compteurs personnalisés. Si vous avez de gros nombres à afficher, un modèle de compteur à 7 chiffres est actuellement en précommande.

En terme d'installation, la procédure est assez simple, elle est décrite dans la vidéo ci-dessous. Pour la connectivité à Internet, Wifi ou câble Ethernet, c'est vous qui choisissez !

Le compteur réagit au quart de tour, enfin presque, il se met à jour tellement rapidement qu'un petit temps d'attente de 3 secondes a été mis en place par les concepteurs de l'objet pour permettre aux personnes qui ajoutent des likes de voir le compteur tourner.

Smiirl 990x607

Si vous souhaitez utiliser ce type de compteur pour un événement particulier, vous avez aussi la possibilité de louer le compteur auprès d'un distributeur.

En bref, ce compteur IoT est très esthétique, c'est un produit français, c'est un peu cher ... mais sympa ! Pour les bricoleurs, il ne manque plus qu'un connecteur Smiirl sur la plateforme IFTTT ;-)

MySQL

Vous rencontrez de temps à autre cette fameuse erreur fâcheuse "MySQL server has gone away" ? Voici quelques astuces pour résoudre cette erreur ...

Cette erreur a généralement lieu dès lors que vous avez ouvert une connexion MySQL et que la base n'y détecte aucune activité.

Soit votre traitement est trop long, dans ce cas pensez à maintenir des échanges avec la base de données régulièrement via des mysql_ping()

Sinon augmentez la valeur du "wait_timeout" (etc/mysql/my.cnf) de votre base de données à une durée suffisamment haute pour permettre d'éviter à votre base de donnée de fermer trop tôt ses connexions. Mais attention, le changement de ce paramètre peut avoir des conséquences très négatives sur le nombre de connexions ouvertes d'autant plus si celles-ci sont parfois mal fermées par votre applicatif.

# Au bout de 5 minutes d'inactivité la base fermera sa connexion automatiquement
wait_timeout=300

Si cette modification n'est toujours pas suffisante après un redémarrage de votre base données, pensez à augmenter la taille maximale des données pouvant être remontées par MySQL :

max_allowed_packet=64m

La connexion a été perdue probablement parce que la taille des données remontée est supérieure à la taille autorisée par défaut.

docker logo

Vous n'avez pas encore dompté les containers, vous ne savez pas par où commencer ?

Voici une vidéo très simple qui détaille le fonctionnement de Docker et qui explique comment créer son premier container en 12 minutes ...

Une très bonne introduction avant d'aller plus loin dans la construction de containers plus complexes et la découverte de Docker Compose et de Docker Swarm.

tensorflow

Tensorflow est un moteur d'intelligence artificielle Opensource développé par Google. Depuis le mois de février, Tensorflow a fait un grand pas en avant annonçant la première version complètement stable de son produit.

Tensorflow est aujourd'hui utilisé pour de nombreux cas d'usages: détection du cancer de la peau, prévention de la perte de vue chez les diabétiques ... Sur GitHub, vous trouverez pas moins de 8800 repository utilisant Tensorflow.

Tensorflow est développé en C++ et dispose d'une API Python. Des API Java et Go sont aussi à disposition en version expérimentale.

Si vous avez la chance d'avoir une carte graphique récente supportant CUDA 3.0 et supérieur, alors tournez-vous vers l'installation de Tensorflow en mode GPU, la compatibilité des cartes graphiques à Cuda peut être obtenue sur le site de NVidia. N'oubliez pas d'installer CUDA préalablement si votre carte est compatible.

$ pip install tensorflow-gpu  # Python 2.7;  GPU support
$ pip3 install tensorflow-gpu # Python 3.n; GPU support

Si vous n'avez pas de carte graphique compatible, tournez-vous vers une implémentation CPU de Tensorflow qui vous permettra de faire tourner les tutoriaux, mais celle-ci ne vous permettra pas de réaliser de l'apprentissage de manière efficace.

$ pip install tensorflow      # Python 2.7; CPU support (no GPU support)
$ pip3 install tensorflow     # Python 3.n; CPU support (no GPU support)

Une fois Tensorflow installé sur votre ordinateur, clonez le repository Git des models Tensorflow :

$ git clone https://github.com/tensorflow/models.git

Testez la reconnaissance d'image grâce à l'algorithme de classification des images :

$ cd models/tutorials/image/imagenet
$ python classify_image.py

La première analyse déclenche le téléchargement d'un référentiel de connaissance imagenet : L'image analysée est celle d'un panda :

giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca (score = 0.89632) indri, indris, Indri indri, Indri brevicaudatus (score = 0.00766) lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens (score = 0.00266) custard apple (score = 0.00138) earthstar (score = 0.00104)

Vous pouvez maintenant essayer de catégoriser vos propres images, pour cela ajoutez la commande suivante au script de classification :

$ python classify_image.py --image_file monfichier.jpg

Le script vous retournera 5 propositions de classification avec des points de pondération allant de 0 à 1.

Enfin, si vous souhaitez garder précieusement la base de connaissance Imagenet dans un endroit particulier de votre système de fichier, l'argument "--model_dir" vous permet de préciser à l'emplacement des fichiers. Par défaut, la base de connaissance est téléchargée et installée dans le répertoire temporaire de votre ordinateur.

$ python classify_image.py --image_file monfichier.jpg --model_dir ./imagenet

Maintenant que vous arrivez à analyser des images grâce à inception, vous pouvez maintenant passer à l'étape suivante : l'apprentissage des images par Tensortflow. Rendez-vous dans un prochain article !

mugpointnet.jpeg

Vous habitez notre magnifique région nantaise et vous souhaitez découvrir le nouveau Visual Studio Microsoft et le C# 7 ?

Nicolas Mariot propose un Meetup ouvert à tous le 6 avril prochain à l'Epitech Nantes sur ces deux thématiques.

N'hésitez pas à vous inscrire à cet événement, 2 sessions d'une durée de 20 à 30 minutes chacune sont planifiées :

  • Une première assez généraliste présentant les nouveautés de Visual Studio 2017 et de C# 7.
  • Une seconde plus technique présentant les techniques avancées de débogage sous Visual Studio 2017.

Un apéro sera ensuite offert pour permettre de continuer la discussion entre passionnés.

opcache status

Le module PHP OPCache est aujourd'hui utilisé dans la majorité des déploiements de serveurs Web pour permettre d'optimiser l'exécution de scripts PHP. OPCache permet en effet de garder en mémoire le code compilé des scripts PHP évitant ainsi au serveur des compilations inutiles de code source inchangé.

Je vous l'avais détaillé dans un précédent article, OPCache permet de faire des miracles en terme d'optimisation d'IO sur un serveur Web, il permet notamment de cacher tous les fichiers PHP en mémoire et de ne plus demander aucun accès disque pour la vérification de la mise à jour du script PHP. Cette fonctionnalité est indispensable pour des sites de production à fort trafic.

Cependant, savez-vous correctement paramétrer la taille du cache OPCache ? Pas si simple ....

Au-delà de la commande suivante qui permet de configurer le paramètre "opcache.max_accelerated_files", il est compliqué de connaitre avec exactitude la consommation RAM du module.

$ find /path/to/root/of/project -name “*.php” -type f | wc -l

Pour remédier à cette problématique, il existe un script Opensource écrit en PHP qui vous permet de surveiller facilement la consommation mémoire de notre module, ce qui vous permet rapidement d'adapter vos paramètres du module en fonction de vos besoins.

Ce script Opensource s'appelle "opcache-status", il est disponible sur GitHub. Pour obtenir le code source de cette application, il vous suffit de réaliser un "git clone" du repository GIT du projet pour récupérer le code source :

$ git clone https://github.com/rlerdorf/opcache-status.git

Une fois les sources déposées dans votre serveur Web, il vous suffira d'ouvrir votre navigateur à l'URL sur laquelle vous avez déposé le code source de "opcache-status" pour permettre de connaitre l'état de fonctionnement de votre module OPCache et d'adapter ses paramètres en conséquence.