lundi 23 octobre 2017

Retour sur le Google Cloud Summit 2017

La semaine dernière, j'étais présent au Google Cloud Summit de Paris afin de voir quels était les sujets de l'année. Avec environs 3000 inscrits pour cette journée, le cloud de Google arrive à faire bouger les foules malgré des parts de marché plus faible que la concurrence.
La journée a commencé par une plénière d'ouverture.
Plusieurs hauts responsables de Google dont Sébastien Marotte (VP EMEA) étaient présents pour cette keynote d’ouverture.
Alors qu’aujourd’hui environ 5% des workloads sont sur le cloud, Google donne 3 à 5 ans au cloud pour être utilisé par 100% des entreprises. C'est un objectif ambitieux qui malgré l’accélération actuelle semble irréalisable.
Les intérêts du cloud ont été rappelé et Google Cloud envisage de faire de chaque entreprise une entreprise de la donnée. En clair, de moins en moins d’ops, de plus en plus de workloads dans le cloud, des services managés de haut niveau et du machine learning.
Même si beaucoup de DSI espèrent surtout baisser les coups de leur SI, il n'est pas inutile de rappeler que le cloud apporte également de nombreux autres avantages. De plus, le gain financier ne peut être intéressant que si la gestion des services est efficace - sans automatisation et sans l'utilisation des services managés, au revoir les économies. D'après les informations recueillient par les cabinets d'analyses, 45% des dépenses des entreprises dans le cloud sont liée à une mauvaise gestion des ressources.
En juin 2017, Google a obtenu 100 points CloudSpec soit la meilleure note actuelle pour un provider de cloud (selon cloud Spectator). Preuve que Google bien qu'à la traîne niveau adoption, ne traîne pas pour ajouter des services et améliorer son cloud.
Pour ceux qui ont encore des réticences liées à l'utilisation du cloud pour mettre les données de leur entreprise, les datacenters de Google répondent aux exigences de nombreuses certifications.
Une fois passé les informations "classiques" autour du cloud, vient l'heure de la présentation des nouveautés, et cette année, il y en a une: le Machine Learning. Petit à petit nous allons en retrouver dans tous les services et applications Google allant de GCP à Google Suite et même Android et ChromeOS.
C’est sur le machine learning que Google se démarque de leur concurrents AWS, et Azure.
Nous avons eu pour terminer des retours d’expériences de diverses sociétés dont: La redoute, Amadeus et Dailymotion afin de présenter leur utilisation de GCP.
Suite à cela, il y avait des conférences thématiques réparties dans plusieurs salles.
J’ai suivi les conférences autour du devops et surtout de Kubernetes.
La première était présentée par Google et Claranet, il a surtout été question des avantages de l’utilisation de GKE (kubernetes on GCP) par rapport à un cluster kubernetes on premise.
Là encore, beaucoup de machine learning, notamment pour la partie monitoring et définition des alertes.
Parmis les clients de GKE, Objenious (filliale IoT de Bouygues Telecom) a fait part de son retour d’expérience suite à une migration AWS avec beaucoup d’EC2 vers GKE.
GKE n’est pas encore mature, certaines fonctionnalités importantes sont manquantes et les api sont en alpha. Toutefois le service évolue très vite et certaines lacunes sont comblées. Dans la dernière version (1.8), GKE gère l’auto réparation des noeuds, des network policies et le socle peut être basé sur Ubuntu au lieu d’un OS custom basé sur ChromeOS.

La deuxième session est revenue sur cet aspect micro service vers lequel évolue les applications. L’occasion pour Google de rappeler que le Serverless à la mode depuis quelques mois, existait déjà avec des services comme AppEngine depuis plusieurs années.
Nous avons pu voir des démos de machine learning mais également de Cloud Functions (le Lambda d’AWS) avec des interactions via un Google Home. J’ignore si Google Assistant fera son entrée dans les entreprises mais cela permet un bel effet démo.

La troisième session portait sur l’utilisation de Kubernetes pour les devs. C’est Zenly qui a fait son retour d’expérience: 12 clusters, 200 pods et plus de 2000 noeuds. Tout ça pour seulement 2 ops. Preuve que l’administration système va être complètement déléguée aux géants du cloud. Pour Zenly, la solution de départ était du Docker+systemd sur des machines EC2. Pour diverses raisons liées à l’entreprise, une migration vers GCP a été engagée et validée en seulement 3 semaines.
Pour ceux qui veulent en savoir plus sur les conteneurs, Google a publié un article sur Borg (leur système interne de gestion des conteneurs) qui a servi de base à Kubernetes:

Ensuite je suis passé sur la partie Gestion de Prod avec une conférence sur les fameux SRE (Site Reliability Engineer) de Google. Il a été question de définition de SLA, SLI, SLO, de la manière de gérer les incidents mais également du CRE (Customer Reliability Engineering). Le CRE, se sont des ingénieurs de Google qui peuvent venir chez le client pour analyser la gestion de sa production et apporter des améliorations. Pour les clients intéressés, Google permet même d’avoir des équipes de Prod mixtes entre des Googlers et des employés du client.

Dans le hall, de nombreux partenaires Google Cloud étaient présents, beaucoup avait misé sur le Google Home pour attirer les foules.

Nul doute que GCP devrait augmenter ses parts de marchés dans les années à venir. Certains avantages liés au pricing de la plateforme en fond un bon concurrent à AWS.

vendredi 25 avril 2014

NurseHelper et autres applications infirmières

    Le site OnlineLpnToRn a publié récemment un article sur les nombreuses applications existantes sur mobile et qui peuvent venir en aide aux infirmières et dans certains cas, à d'autres personnes du milieu médical.

    Parmi cette liste se retrouve NurseHelper, mon application développée depuis un peu plus de 6mois.
Cette liste est intéressante car elle permet de se rendre compte à quel point la technologie s’immisce un peu partout et peut venir assister les gens dans leur travail.

    Vous pouvez retrouver la liste des applications sur le site OnlineLpnToRn. Plus de 100 applications y sont répertoriées. Elles sont classées par catégories: générique, pédiatrie, médicaments, anatomie, etc

mardi 29 octobre 2013

Python 3 et requêtes web derrière un proxy

Dans le cadre du projet Luchiana, mon intelligence artificielle a besoin de se connecter à internet pour récupérer des informations. Dans certains cas, un proxy peut se trouver entre l'IA et internet. J'ai donc développé un petit module permettant d'accéder à internet à travers un proxy.

import urllib.request
import ssl


def connectProxy(type):
    proxy_info = {
    'user' : 'nom d utilisateur',
    'pass' : 'mot de passe',
    'host' : "ip ou nom du proxy",
    'port' : port # or 8080 or whatever
    }

    proxy_support = urllib.request.ProxyHandler({type : "http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info})
    opener = urllib.request.build_opener(proxy_support, urllib.request.HTTPHandler)

    # install it
    urllib.request.install_opener(opener)

Ensuite il suffit de faire un import Proxy dans votre projet et d'appeler la fonction avec un Proxy.connectProxy("typeConnection")
Le type de connection peut être https ou http selon les sites auxquels vous souhaitez accéder.

mardi 10 septembre 2013

Luchiana - Présentation de l'architecture logicielle

Après la présentation de l'architecture physique et matérielle, voici la présentation de l'architecture logicielle.
    Côté client, c'est simple. Il y a la partie principale, l'interraction avec l'utilisateur. Ce module s'appuis sur le module Audio pour la reconnaissance et la synthèse vocale si ces options sont activées. Sinon le module peut fonctionner en solo. Il repose également sur un module de gestion des connexions. C'est un client TCP asynchrone semblable à celui dont j'ai publié le code précédemment. Ce module de connexion s'appuie sur un module Sécurité qui permet de chiffrer ou déchiffrer le contenu échanger entre le client et le serveur.

    Côté serveur, c'est un peu plus complexe. L'idée est d'avoir un module par type d'action. Un module web permettant de rechercher sur internet, d'envoyer des maisl ou de tweeter, un module Math pour toutes les opérations mathématiques, un module TankBot pour l'intéraction avec mon TankBot et un module System pour l'interaction avec le système linux du Raspberry. On retrouve également les modules de connexion avec le serveur TCP et le module de sécurité pour le chiffrement des communications.
    L'essentiel du travail est réalisé par un module nommé Cerveau. Il se charge d'analyser la phrase donnée par l'utilisateur. Il cherche dans sa base de connaisance l'action ou la réponse associée.
La base de connaissances ressemble à de l'AIML.

Voici un exemple:
comment/appelles/?;Je m'appelle Luchiana./Mon nom est Luchiana.
Cette ligne signifie: si une phrase contient "comment", "appelles" et un "?" alors réponds aléatoirement: "Je m'appelle Luchiana." ou "Mon nom est Luchiana."
La partie précédent le ";" est ainsi celle relative à l'entrée de l'utilisateur. Celle qui suit le ";" est la réponse.
Les réponses peuvent également être ou nécessiter des commandes/actions:
donne|quelle/date/?;bash;date +%d-%m-%Y;Nous sommes le %OUT%
Ici on voit apparaitre le "|". Il signifie que l'un des deux mots qui l'entourent doivent être présent. On voit également "bash;date +%d-%m-%Y" qui signifie que le Cerveau doit exécuter cette commande avant de répondre. Le résultat remplacera le %OUT% dans la réponse.

Luchiana - Présentation de l'architecture physique

Voici une petite présentation de l'architecture de Luchiana. Pour rappel, Luchiana est un projet personnel d'intelligence artificielle. Le but est de pouvoir lui parler, lui poser des questions et même lui faire réaliser des actions comme l'envoie de mail ou encore contrôler la lumière de l'appartement.

La solution se base sur un code en python hébergé sur un raspberry pi. J'utilise le mode client/server.



D'un point de vue physique, c'est très simple. On retrouve la box pour l'accès à internet et qui permet au raspberry d'être accessible de l'extérieur et sur le réseau. Ensuite les différents éléments (lampes, volets, télé, ...) sont reliés au raspberry via les pins GPIO. Sur ces pins on peut brancher des emetteurs infra-rouge, ondes radio etc. J'ai également branché sur la prise jack un émetteur radio TankBot.

Les clients sont au nombre de 3: 
- un client web permettant la discussion en mode texte
- un client en ligne de commande avec reconnaissance et synthèse vocale
- un client Android avec reconnaissance et synthèse vocale.


lundi 9 septembre 2013

Elementary OS Luna

Juste une petit article pour présenter mon bureau et la distribution que j'utilise: Elementary OS.

Elementary OS est une distribution basée sur Ubuntu. Elle se veut simple, rapide et élégante. L'équipe de développement a créé quelques logiciels comme Music, Gaia, Pantheon-Terminal, etc
A l'origine, le projet Elementary était un thème d'icônes, puis un thème gtk. Désormais, il s'agit d'une distribution à part entière qui utilise Pantheon, son propre shell.
Par défaut on a un bureau géré par Pantheon avec Wingpanel ( la barre du haut) et Plank (le dock minimaliste).

mardi 18 juin 2013

Droidconfr

BugDroid Francais
Pour la première année, la Droidcon a eu lieu en France. 2 jours totalement dédiés a Android sous toutes ses formes. Beaucoup d'annonces et de démonstrations ont eu lieu. On a principalement pu voir:
-Genymobile qui a présenté son émulateur Android basé sur une image x86 et qui ajoute des fonctionnalités de gestion de la batterie de l'émulateur ou encore le GPS. L'émulateur prend aussi en charge open GL et offre de très bonnes performances
-Intel a annoncé un nouveau smartphone x86 a moins de 300€ avec de très bon résultats sur Antutu (>30000)
-Motorola a présenté sa suite RhoMobile permettant de développer en cross plateforme.
-Alcatel a mis a disposition sur son stand des tablettes et smartphones et surtout un smartphone sous Firefox Os
-Alain Regnier, consultant sur les solutions google a par ailleurs fait une conférence sur les Google Glasses. Il a présenté le hardware ainsi qu'une démo de quelques applications.

Cette droidcon a rassemblé beaucoup de monde et a été un réel succès. Merci aux organisateurs et aux intervenants d'avoir proposé un événement Android en France.

jeudi 16 mai 2013

Google IO13: Les nouveautés Compute Engine


Alors que ce déroule en ce moment à San Francisco la Google IO, on a appris il y a quelques jours que Google allait changer l'OS par défaut disponible sur sa plateforme IaaS, Google Compute Engine. Auparavant, l'OS était Google Compute Engine Linux, un Linux modifié par Google pour coller à sa plateforme. Désormais, ce sera donc Debian, la distribution communautaire qui sera proposée. 

Debian comme os par défaut pour le cloud Google


A côté de cela, c'est à la suite de la keynote d'ouverture que l'on a appris l'ouverture à tous les développeurs de Compute Engine.
De plus, le support du php a été ajouté à AppEngine afin de toucher plus de développeurs.
Google cloud storage devrait aussi être de la partie courant 2013.

App Engine and Compute Engine news features

Avec ces nouveautés, Google espère clairement rattraper voir dépasser Amazon sur son terrain et il faudra suivre les annonces au cours de l'année du côté de Mountain View pour savoir ce qui se trame aujourd'hui dans l'antre du géant.

mardi 23 avril 2013

Publier une application Android sur le Play Store

Après avoir publié quelques applications sur le Windows Store et sur le Windows Phone Store, je viens de publier ma 1ere application Android. Il s'agit d'une application sur Tintin. Je vais en profiter pour vous expliquer comment publier une application sur le Play Store.

Une fois votre application terminée et testé sur votre téléphone ou sur l'émulateur, vous allez devoir l'exporter en apk. Pour cela, faites un clic droit sur votre application et choisissez "Export Android Application".

mercredi 17 avril 2013

CIAC une solution pour construire son cloud - Introduction

Depuis quelques temps je travaille sur CIAC et au vu des différents projets à venir, ça sera même le sujet de mon mémoire. Mais qu'est-ce que CIAC? 
C'est un acronyme pour Cisco Intelligent Automation for Cloud. Il s'agit d'une solution pour construire un cloud privé, public ou hybride. Elle se compose d'un portail Cisco Cloud Portal (CCP) appelé aussi Cisco Service Portal (CSP) et d'un orchestrateur Cisco Process Orchestrator (CPO) anciennement Tidal Enterprise Orchestrator (TEO). Le portail est propulsé par le moteur Newscale et tourne donc sur un serveur d'applications java comme JBoss ou Weblogic.

lundi 15 avril 2013

Des onglets sous Android

J'avais besoin de la gestion des onglets pour une application Android (sortie prévue dans la semaine). Le problème c'est que le sdk ne permet la gestion native des onglets qu'à partir d'Ice Cream Sandwich (api level 14). Au vu de la répartition actuel des versions d'Android, il n'est pas judicieux d'exclure Gingerbread.
Heureusement, il y a toujours des développeurs pour remédier au problème et j'ai donc utiliser ActionBarSherlock. Il s'agit d'une bibliothèque java à ajouter à votre projet.
Pour l'utiliser rien de plus simple, il suffit de faire étendre votre classe principale (MainActivity).

jeudi 3 janvier 2013

Reconnaissance Vocale sous linux

Après de nombreuses recherches et de nombreux essais, j'ai enfin réussit à avoir une reconnaissance vocale en français sous linux. J'ai donc testé CMU Sphinx, Simon et Julius. Ces solutions bien qu'intéressantes sont complexes à mettre en oeuvre et surtout sont très mauvaises en français. Pour ceux qui veulent une reconnaissance vocale en anglais en revanche, j'ai trouvé Sphinx très performant. En français, j'ai donc utiliser l'API Google Speech. Cette API n'est pas officiellement disponible au public. Elle sert à la reconnaissance vocale intégré dans Chrome depuis quelques versions. Toutefois elle est accessible facilement via des scripts.

mardi 11 décembre 2012

Désormais sur le Windows Store

Dans le cadre du concours App hero 2, je me suis mis au développement sous Windows 8. N'étant pas un grand fan du C#, j'ai pris l'option de développer en WinJS. C'est vraiment très sympa de pouvoir faire toute une appli en js. Msdn est une bonne ressource, on y trouve de nombreux exemples et informations ainsi que le sdk à télécharger qui lui aussi contient une multitude d'exemples. Les possibilités sont très étendue et on peut vraiment faire de bonnes applis très simplement.
J'ai été très agréablement surpris en découvrant que Windows 8 gére le html5 et le css3 dans les applications Modern UI. C'est une belle avancé de la part de Microsoft qui est réputé à la traine en matière de nouvelles technologies.
Le seul problème que j'ai rencontré: la non gestion des url raccourcis. En effet dans une de mes applications actuellement en validation je récupére le RSS d'un site. Ce dernier contient des urls raccourcis vers des images. Ces liens ne sont pas fonctionnels comme tel. Sans doute une question de sécurité.
En attendant mes autres applications, vous pouvez déjà retrouver l'application officielle de ce blog sur le Windows Store.
N'hésitez pas à faire des retours.
RSS Florent Pied sur le Windows Store

mardi 13 novembre 2012

Client Serveur Tcp en python

Aujourd'hui, je vais vous montrer comment réaliser simplement un client et un serveur tcp en python.

Tout d'abord, voici le code du client:
import socket

def sendMsg(s,msg):
    s.send(bytes(msg,'utf-8'))

def receiveMsg(s):
    rec=s.recv(1024).strip()
    return rec.decode('utf-8')

s = socket.socket()
host = socket.gethostname()
port = 9999
s.connect((host,port))
rec=receiveMsg(s)
print(rec)
while True:
    text=input(">")
    if text == "quit":
        s.close()
        quit()
    sendMsg(s,text)
    rec=receiveMsg(s)
    print(rec)

dimanche 7 octobre 2012

Python et les anagrammes - Benchmarks

J'ai voulu faire une fonction de recherche des anagrammes pour un mot donné en entrée. J'ai utilisé pour cela plusieurs méthodes afin de comparer les résultats. Mon but était de générer uniquement les anagrammes qui sont des mots du dictionnaire. J'ai pour cela récupérer un fichier texte contenant tous les mots de la langue française, quelques 336 531 lignes et donc autant de mots.
Je vous propose ici les résultats avec 6 méthodes différentes basées sur le même algorithme de départ. (vous pouvez en retrouver sur le site du zéro).

La première méthode consiste à rechercher tous les anagrammes d'un mot et de comparer les résultats avec le fichier dictionnaire.
Pour la deuxième méthode, j'ai découpé le fichier dictionnaire en 26 parties, chaque partie contenant les mots commençant par une lettre différente. Ainsi le nombre de fichier lu sera égal aux nombres de lettres distinctes dans le mot, ce qui réduit le nombre de mot à comparer.
J'ai ensuite repris ces deux méthodes en stockant les fichiers de dictionnaire en RAM(tmpfs).
Pour les deux dernières méthodes, j'ai voulu testé les performances avec une base NoSQL: mongodb.
La 5ème méthode c'est donc: une table mongodb avec tous les mots.
La 6ème méthode comporte 26 tables mongodb.

samedi 22 septembre 2012

Notifications en Python

Après les mails, voyons les notifications gtk en python. Elles sont simples à mettre en place et sont un petit plus. Maintenant que vous savez checker vos mails, vous pourrez être averti lorsque vous en recevez.

Il convient d'abord d'initialiser la librairie pynotify.
try:
    import gtk
    import pynotify
    pynotify.init( "monApplication" )
except:
    print "Vous n'avez pas pynotify"

Une fois cette vérification faite, vous pouvez créer votre fonction de notification comme la suivante:

jeudi 20 septembre 2012

Python et Gmail

Durant l'écriture de mon intelligence artificielle, j'ai voulu lui rajouter une interaction avec les mails. Je voulais que mon IA puisse envoyer et recevoir des mails. En python rien de plus simple.

Pour vérifier vos mails gmail, 8 lignes de code suffisent, cette fonction retourne le nombre de mails non lu dans votre boite de réception:
import imaplib
def checkGmail():
    obj = imaplib.IMAP4_SSL('imap.gmail.com','993')
    obj.login('monmail@gmail.com','monMotDePasse')
    obj.select()
    rep=obj.search(None,'UnSeen')
    nb=len(str(rep[1]).split(" "))
    return nb

mardi 18 septembre 2012

Legends of Code - concours de programmation

D2-SI, le Green Code Lab et GreentIT.fr présentent leur premier concours de programmation: Legends of code

Vous trouverez toutes les informations nécessaire sur le site.
Ce que je peux déjà vous dire c'est qu'il y a 4000€ mis en jeu et que le concours à lieu le 17 novembre dans les locaux de D2-SI à Paris
Le but de ce concours est de réunir 40 développeurs issus de dernière année d'école d'ingénieur.
Par équipe de 2, et pour une durée de 11h, les participants devront développer un programme correspondant au sujet donné. La grande nouveauté de ce concours, c'est le côté Green. En effet les développeurs seront jugés sur leur code mais également sur la consommation énergétique de ce dernier.

Ce concours permet de sensibiliser les développeurs juniors aux bonnes pratiques du développement Green.


mercredi 11 juillet 2012

Elementary Luna

Il y a deux ans, j'ai découvert le projet elementary. A l'origine il ne s'agissait que d'un thème gtk créé par DanRabbit. Et puis face aux diverses contraintes qu'apporte une distribution et les choix fait en interne, il a été décidé de créer une distribution Elementary OS. Jupiter fut la première version, j'avais d'ailleurs fait un article lors de sa sortie sur le labo-linux. Il s'agissait principalement d'une Ubuntu remaniée, les logiciels fournit par défaut étaient différents et on avait par défaut le thème gtk et le thème d'icone d'elementary. J'étais alors membre de l'équipe en tant que traducteur, testeur. Aujourd'hui, le projet est de créer une distribution basée sur Ubuntu mais utilisant des applications refaites ainsi qu'un envirronnement de bureau dédié.

dimanche 24 juin 2012

Retour du Salon Solution Linux



J'étais mardi 19 juin au salon solution linux. J'ai tout d'abord suivi les deux keynotes de SUSE et Microsoft.


      Philippe Desmaison, directeur technique de SUSE a commencé par une retrospective historique. Il a rappelé les racines allemandes de SUSE et l'histoire assez instable de cette société. Aujourd'hui, SUSE c'est 700 collaborateurs réparti dans 43 pays. SUSE a de nombreux clients et se place en tête sur certains secteurs, c'est le cas de l'aérospatiale, la grande distribution et l'automobile. Les deux principaux constructeurs automobiles français sont d'ailleurs clients depuis plusieurs années. Depuis 2011, SUSE est à nouveau une entreprise autonome. 
Fort de sa distribution SLES/SLED, SUSE a su se faire un nom et tisser de nombreux partenariats notamment avec Microsoft, SAP et VMWare. L'appliance vsphere ainsi que SAP sont désormais livrés sur SLES.
En tant qu'acteur majeur du monde libre, SUSE participe aussi au projet Open Stack et va d'ailleurs sortir SUSE cloud.