karotz back

Votre Karotz a perdu la parole depuis un mois suite à un blocage de l'utilisation des API d'Acapela ? Voici une solution alternative aux API de Google Translate pour redonner une belle voix féminine à votre Karotz.

La solution est d'utiliser les API Watson d'IBM qui fournissent une API de Text To Speech de bonne qualité. Malheureusement, cette API ne fournit pas de flux audio MP3, il est nécessaire de réaliser une petite conversion du fichier pour permettre au lapin de le lire grâce à son lecteur madplay.

Pour cela j'ai réalisé un petit bridge simple en PHP qui permet de rendre l'API d'IBM utilisable sur le lapin qui est malheureusement allergique à l'HTTPS ...

Voici le code source du bridge : https://github.com/ltoinel/openkarotz-tts-ibm-watson

Il vous suffit de le déployer sur un serveur Web PHP ayant accès au Web et d'adapter les fichiers tts et tts.inc présents dans les répertoires /www/cgi-bin du lapin. Pour cela, faites un telnet sur le port 23 de votre lapin, authentifiez-vous avec le login "karotz" et modifiez les fichiers grâce à la commande "vi" en suivant les instructions décrites sur le repository Github en n'oubliant pas de réaliser une sauvegarde préalable de ces fichiers.

openkarotz ibm watson

Une fois la modification effectuée, n'hésitez pas à réaliser une purge du cache TTS du lapin via l'interface Web de l'Openkarotz pour vous assurer d'utiliser la nouvelle voix d'IBM Watson et pas les fichiers en cache sur votre Karotz.

Votre lapin parlera désormais grâce à la voix de Renée de l'API TTS d'IBM Watson, il ne vous restera qu'à implémenter le Speech to text et à utiliser les API de conversation d'IBM Watson pour rendre votre lapin aussi intelligent que Jarvis de Mark Zukerberg.

wsdl2phpgenerator

Vous avez déjà intégré des services SOAP en PHP ? C'est complexe et consommateur en temps, l'objet PHP "request" en entrée de la classe SOAPClient doit être construit avec parcimonie, une fois l'intégration du service terminée, le code PHP peut très vite devenir compréhensible si le service est complexe et si celui-ci possède des énumérations. Pour palier à cela et gagner en productivité sur l'intégration de services SOAP dans votre application PHP, la librairie wsdl2phpgenerator peut vous faire gagner un temps précieux.

Pour rappel, l'interface d'un service SOAP est décrite par un document XML qui se prénomme WSDL. C'est un document décrivant les messages d'entrée et de sortie d'un service.

Ce WSDL est :

  • Soit généré à partir du code du développeur développé au niveau du service, on appelle cette méthode de développement "code first" .
  • Soit fabriqué à la main par le développeur puis utilisé pour générer le code source du serveur, on appelle la méthode de développement "contract first".

wsdl

Pour générer un client SOAP dans votre application PHP avec Wsdl2phpgenerator, la méthode est très simple, tout d'abord ajoutez la librairie à vos dépendances de Composer :

$  composer require wsdl2phpgenerator/wsdl2phpgenerator

Fabriquez ensuite le script PHP que vous appellerez manuellement via PHP-CLI pour générer le code source de votre client Webservice :

$generator = new \Wsdl2PhpGenerator\Generator();
$generator->generate(
    new \Wsdl2PhpGenerator\Config(array(
        'inputFile' => 'http://www.webservicex.net/CurrencyConvertor.asmx?WSDL',
        'outputDir' => '/tmp/CurrencyConverter'
    ))
);

Réalisez dans un troisième temps le code qui appellera ce Webservice via les classes générées par Wsdl2phpgenerator:

require '/tmp/CurrencyConverter/autoload.php';

$service = new \CurrencyConvertor();
$request = new \ConversionRate(\Currency::USD, \Currency::EUR);
$response = $service->ConversionRate($request);

echo $response->getConversionRateResult();

Le service généré étend la classe SOAPClient de PHP, un tableau d'options peut être passé en paramètre du constructeur de la classe service générée pour préciser l'URL du WSDL, le timeout du service, le proxy HTTP à utiliser, les informations d'authentification de type Basic Auth ....

Vous retrouverez toute la documentation d'usage de cette librairie sur GitHub..

Une fois que vous aurez testé Wsdl2phpgenerator, plus jamais vous vous amuserez à fabriquer vos SOAPClient manuellement ;-)


Crédits du schéma : Philippe Le Hégaret

Blue Ocean Jenkins

Vous connaissez probablement Jenkins, cet automate OpenSource qui permet de définir une chaîne de compilation, tests et déploiement automatisée ? Jenkins est l'outil OpenSource le plus connu et utilisé aujourd'hui sur le marché. Malheureusement son IHM n'est pas tout le temps simple à appréhender, la configuration de jobs ne se fait pas de manière reproductible entre différents environnements.

Pour répondre à cette problématique, les Pipelines Jenkins ont été introduits dans la version 2 de Jenkins. Ces Pipelines permettent de décrire au sein d'un fichier Groovy l'ensemble des étapes qui seront utiles à la fabrication de votre logiciel. L'avantage avec les Pipelines est qu'il n'est plus nécessaire de configurer des jobs complexes dans Jenkins, cela se fait désormais au travers d'un fichier JenkinsFile présent directement dans votre code source.

Pour bien démarrer avec les Pipelines Jenkins, voici 5 ressources qui vous permettront de bien comprendre cet outil pour vos projets.

1- La présentation des Pipelines Jenkins en vidéo au Devfest

Voici la vidéo de la conférence de Jean-Philippe Briend (CloudBees) qui détaille l'utilisation des Pipelines qui seront au cœur de Jenkins 3 qui sortira l'année prochaine. Cette vidéo est une très bonne introduction de l'utilisation des Pipelines.

2- Installation de Jenkins sur votre environnement Windows

Vous avez vu la vidéo et vous souhaitez tester Jenkins Pipelines ? Une image Docker officielle vous permettra de démarrer un serveur Jenkins très rapidement sur votre environnement Windows :

$ docker pull jenkins
$ docker run -p 8080:8080 -p 50000:50000 jenkins

Une fois l'image démarrée, vous n'aurez plus qu'à vous rendre sur l'URL suivante via votre navigateur http://localhost:8080 pour accéder à l'interface de Jenkins. Si vous utilisez Boot2docker sous Windows, vous devrez utiliser la commande suivante pour connaitre l'IP de votre image Boot2docker afin de pouvoir vous connectez à l'interface d'administration de Jenkins :

$ boot2docker ip

3 - Exemples de Pipelines réutilisables

Des exemples de Pipelines sont mis à disposition sur l'espace GitHub Jenkins. Dans le répertoire "pipeline-examples", vous trouverez de nombreux exemples réutilisables pour votre projet :

  • ansi-color-build-wrapper
  • archive-build-output-artifacts
  • external-workspace-manager
  • get-build-cause
  • gitcommit
  • github-org-plugin
  • ircnotify-commandline
  • jobs-in-parallel
  • load-from-file
  • maven-and-jdk-specific-version
  • parallel-from-grep
  • parallel-from-list
  • parallel-multiple-nodes
  • push-git-repo
  • slacknotify
  • timestamper-wrapper
  • trigger-job-on-all-nodes
  • unstash-different-dir

Parmi ces exemples, vous remarquerez qu'il est possible d'intégrer facilement Slack à votre Pipeline, cela est d'autant plus facile via l'utilisation du plugin Slack pour Jenkins qui dispose de la propre instruction Jenkins Pipelines :

slackSend channel: '#jenkins-latest', color: 'good', message: 'Slack Message', teamDomain: 'beedemo', token: 'token'

4 - La documentation officielle

Une fois votre serveur démarré et un fichier JenkinsFile initialisé, voici les deux ressources très riches le sujet des Pipelines et la structuration du fichier JenkinsFile:

Vous vous posez des questions sur la syntaxe de certaines instructions ? Vous trouverez sur DZONE une Refcardz dédiée aux Jenkins Pipelines. C'est aujourd'hui la seule ressource sur Internet la plus complète pour appréhender la DSL Groovy Jenkins Pipelines. Elle détaille toutes les commandes standards fournies par Jenkins.

5 - Thème Jenkins Blue Ocean

Vous voilà prêt pour démarrer votre premier projet Jenkins Pipelines, n'oubliez pas d'installer le plugin Jenkins "Blue Ocean" pour bénéficier de la nouvelle interface Web Jenkins en version beta. Les développements de cette nouvelle interface ne sont pas encore terminés, mais elle offre une représentation visuelle intéressante des Pipelines réalisés.

Cette interface peut être facilement activée via la page d'administration des plugins Jenkins.

Vous voilà prêt, si vous rencontrez des difficultés, un tag "jenkins-pipeline" sur Stackoverflow vous permettra de probablement trouver des réponses à vos questions.

docker logo

Vous utilisez Docker mais vous rencontrez quelques difficultés pour réduire sa consommation boulimique d'espace disque ? Voici 3 commandes pour libérer votre système des nombreux containers inutilisés et gourmands en espace disque.

Supprimer tous les containers arrêtés

Les containers Docker arrêtés ne sont par défaut pas supprimé du système de fichier de l'hôte, pour supprimer définitivement ces containers non utilisés, la commande est la suivante :

docker rm $(docker ps -qa --no-trunc --filter "status=exited")

Supprimer toutes les images intermédiaires non référencées

Des images Docker intermédiaires sont créées lors de la fabrication des images, pour supprimer l'ensemble des images intermédiaires non référencées par des images labellisées, voici la commande à exécuter :

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Supprimer tous les volumes associés à des containers arrêtés

Enfin, si les deux précédentes commandes ne suffisent pas, vous avez la possibilité de supprimer l'ensemble des volumes associés à des images intermédiaires, pour cela, vous pouvez utiliser la commande suivante :

docker volume rm $(docker volume ls -qf dangling=true)

Ces 3 commandes sont normalement suffisantes pour supprimer l'ensemble de l'espace occupé par des containers inutilisés. Vous pouvez les positionner un alias bash pour simplifier leur utilisation, pour cela éditer votre fichier "~/.bashrc" et positionnez l'alias suivant :

alias docker-clean='docker rm $(docker ps -qa --no-trunc --filter "status=exited") && docker rmi $(docker images --filter "dangling=true" -q --no-trunc)'

Il vous suffira d'utiliser la commande "docker-clean" pour libérer votre système des nombreuses images et containers inutiles.

C'est bientôt Noël, il vous manque toujours des cadeaux pour vos proches technophiles ? Vous ne savez pas ce qui leur ferait plaisir cette année ? Voici comme chaque année ma sélection de 5 idées de cadeaux High-Tech tendance pour ce Noël.

Go Pro Hero 5 : La caméra 4K miniature et étanche

Voici la première idée au top de la liste, la toute dernière Go Pro Hero 5 capable de shooter de magnifiques vidéos 4K 100% compatibles avec votre TV 4K achetée l'année dernière. Cette Go Pro équipée d'un écran tactile est actuellement en promo sur Amazon au prix de 406,49€ au lieu de 430€. Elle est étanche jusqu'à 10m sans protection supplémentaire et vous fournira des vidéos à couper le souffle dans toutes les conditions.

go pro hero 5 4K

LaMetric Time : L'horloge Wi-Fi avec applications

Voici un cadeau original, il s'agit d'une horloge Wifi capable d'afficher l'heure mais aussi, et surtout, tout un tas d'indicateurs tiers provenant d'internet. Sa connexion Wifi lui permet de se mettre à jour en temps réel et ainsi d'afficher le nombre de vos followers sur Twitter, la météo ou votre nombre de feeds RSS non lus ... L'ultime gadget des technophiles connectés !

LaMetric Time est issu d'un projet Kickstarter, cette superbe horloge connectée est commercialisée au prix de 165,64 €

lametric

Airy : Le purificateur d'air naturel

En 24 heures, environ 50 mètres cubes d'air passent, par effet de cheminée, dans le système AIRY. Les odeurs, poussières fines et polluants sont filtrés par le substrat. Par polluants, on entend principalement les composés organiques volatils (COV) tels que le formaldéhyde, l'ammoniaque, le toluène, le benzène et le trichloréthylène. Ces substances nocives sont « brisées » par les micro‑organismes présents dans le substrat et transformées en acides aminés et en glucose (sucre) non toxiques. La plante absorbe par ses racines les anciens polluants devenus désormais de précieux nutriments.

Airy est livré avec un livre de 100 pages sur les plantes purifiantes. Ce projet Kickstarter est commercialisé au prix de 79,90€.

airy

Thorkey : porte-clefs organiseur compact

Voici probablement la nouvelle génération de porte-clefs pratiques et élégants. Il vous permettra de stocker l'ensemble de vos clefs dans un seul endroit compact.

Ce porte-clefs en aluminium est actuellement en promo sur Amazon au prix de 19,95€ au lieu 29,99€. Ce porte clef est commercialisé avec différents accessoires tiers comme un ouvre bouteille, un tournevis ... Vous retrouverez sur Amazon de nombreux autres modèles.


organisateur clefs

Leelbox : Casque de réalité virtuelle pour jeux et films compatibles

Je termine par une idée de cadeau originale pour tous les possesseurs de Smartphone, voici le Leebox, un casque de réalité virtuelle pour Smartphone.

Ce casque compatible avec les iPhone et de nombreux Smartphones Android est commercialisé actuellement au prix de 34,99€ au lieu de 99,99€ sur Amazon. Il en existe de nombreux modèles, vous en trouverez pour certains avec un casque audio et pour d'autres avec une manette Bluetooth. Bref, ce petit Gadget accessible est probablement le must-have de ce Noël 2016.

leelbox

Très bons préparatifs de Noël! J'espère que cette liste vous aura donné quelques idées !


Crédits photo cadeau de Noël : mac9416

qui veut gagner une carriere de developpeur

Vous avez malheureusement manqué le DevFest Nantes 2016 qui s'est déroulé il y a quelques jours à Nantes et qui a rassemblé pas moins de 1500 développeurs ?

J'ai une très bonne nouvelle pour vous, l'ensemble des enregistrements vidéos vient d'être publié sur le Net, vous pouvez les voir et les revoir au travers de cette longue playlist Youtube.

Parmi ces vidéos, voici la Keynote de fin extrêmement drôle, qui plaira, je pense, à beaucoup d'entre vous.

Un grand merci à toute l'équipe pour cette superbe session 2016 ! Rendez-vous l'année prochaine pour un événement encore plus grand ;-)

.

a la recherche du tresor perdu livre

À la recherche du trésor perdu est une chasse au trésor réalisée sous la forme d’un livre de 11 énigmes.

Un coffre au trésor a été caché quelque part en France métropolitaine par un mystérieux libraire. Pour retrouver le trésor, décryptez les énigmes du livre qui vous permettront de localiser l’endroit précis où il est enterré...

Il ne vous restera plus qu’à le déterrer pour que le coffre contenant 150 pièces d’or et d’argent et de 50 pierres précieuses (diamants, saphirs, émeraudes, etc.) d’une valeur totale estimée de 50 000 euros vous appartienne !

Pour que le projet puisse se faire, les éditions Trésor ont lancé un financement participatif sur Kiss Kiss Bank Bank. En échange de 20 € vous recevrez le livre des 11 énigmes en avril 2017. Plus de 20 000 € ont d'ores et déjà été collectés, si vous avez l'âme d'un aventurier, n'hésitez pas à participer à ce projet qui se termine dans 8 jours.

Pour participer au financement de ce projet, rendez-vous sur la page de financement participatif de Kiss Kiss Bank Bank.

amazon bon reduction

Amazon enchaîne les offres promotionnelles en ce moment, du 14 au 20 Novembre 2016, si vous achetez un ou plusieurs produits reconditionnés pour un montant supérieur ou égal à 200€, vous pouvez bénéficier d’une réduction immédiate de 50€. Et ceci sans aucune limite sur le nombre de commandes passées ...


Comment bénéficier de cette offre promotionnelle ?

  • Sélectionnez un ou plusieurs produits disponibles sur cette page et éligibles à l’offre, pour un montant de 200€ minimum.
  • S’il existe des offres d’autres vendeurs pour le même produit, sélectionnez l’offre Amazon Offres Reconditionnées.
  • Ajoutez les produits sélectionnés à votre panier et poursuivez la commande: la remise s’applique au moment du paiement.

C'est la bonne occasion de faire quelques économies sur ses courses de Noël ;-)

offres amazon bon reduction