# articles

feed_id: http://blog.idleman.fr/?p=3594
title: Bilan 2013, les coulisses du blog
uri: Bilan-2013-les-coulisses-du-blog
url: http://blog.idleman.fr/bilan-2013-les-coulisses-du-blog/
content:
<p>Mazette !! J’ai oublié le bilan 2013 !!</p>
<p>Je sais, encore un billet à catégoriser dans la rubrique “On s’en fou” (c’est fait) mais j’y tiens à mon ptit bilan du blog ça me rappelle d’ou nous sommes partis à défaut de savoir où nous pourront bien foutre les pieds par la suite.</p>
<p><span id="more-3594"></span></p>
<p>Donc ! 2013 !! Je pense que cette année m’a révélée en tant que véritable politicien du web : je n’ai tenu aucune de mes promesses ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>Pour rappel, je vous avais promis fin 2012 du nodeJs à gogo, du raspberry à en faire une indigestion et tout un tas d’autres sujets bavants et baveux.</p>
<p>Au final je n’ai pas branlé grand chose pour changer avec mes 50 malheureux articles en 2013 (ça fait quand même un par semaine ça reste honorable non?)</p>
<p>Bref jusqu’ici pas trop de surprises si ce n’est que malgré tout cela : vous êtes tous les jours plus nombreux à passer dans le coin et ça, c’est super cool de votre part :).</p>
<p>Allez quelques chiffre histoire de me gargariser encore plus et de me vautrer dans ma suffisance tel le félin dans son gourmet gold (tous les chats convulsent devant le paté ou c’est juste le mien ?)</p>
<p><strong>Année 2013 :</strong></p>
<ul>
<li>430 699 visites uniques</li>
<li>Des nouveaux keupains lecteurs du Canada, des états unis, de chine , de Russie, du Bresil, d’Autralie, d’irlande et du Mexique en nombre suffisants pour que ce ne soit pas juste un malentendu en tapant l’adresse du pasteur Kyle Idleman ( sisi je vous assure il existe et visiblement c’est une star, il me bouffe mon référencement ce couillon la :D)</li>
<li>Une moyenne de la visite  de<strong> 4min 44s</strong> ce qui signifie que sois mes lecteurs font de mini crises d’épilepsies au moment d’entrer sur un article, sois le contenu devient presque suffisamment intéressant pour passer plus de 10s dessus (et croyez moi, 10s c’est déjà bien)</li>
</ul>
<p><span style="color: #000000;">Bref vous me filez la larmichette de bonheur chaque années d’avantage, et c’est avec optimisme et une certain incompréhension devant son succès que le blog entre dans sa<strong> 3em année</strong> consécutive d’articles bâclés, de phrases mal agencées et de mots suintants de fautes plus frissonnantes les unes que les autres.</span></p>
<p><strong><span style="color: #000000;">Mais quand je vois ça :</span></strong></p>
<p><a href="media/e771dae8.02.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/02.png"><img class="aligncenter" style="display: inline; border: 0px;" title="02" alt="02" src="media/ee8cff7b.02_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/02_thumb.png" width="350" height="155" border="0" /></a></p>
<p>Je me dis qu’on a quand même le mérite de la quantité à défaut de la qualité <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>Et puis ça ne doit pas tant vous déplaire puisqu’on progresse chaque année un peu plus dans la débauche</p>
<p><a href="media/d09dd199.03.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/03.png"><img style="display: inline; border: 0px;" title="03" alt="03" src="media/0bebee8d.03_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/03_thumb.png" width="355" height="256" border="0" /></a></p>
<p>Et que vous devenez tellement nombreux à commenter que je risque de ne plus pouvoir tenir mon pari de répondre à chaque commentaires quel qu’il soit.</p>
<p>Car croyez moi quand vous rentrez le soir du boulot et que vous voyez ça:</p>
<p><a href="media/0873974d.01.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/01.png"><img style="display: inline; border: 0px;" title="01" alt="01" src="media/93367b8c.01_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/01_thumb.png" width="149" height="62" border="0" /></a></p>
<p>Le plaisir de valider/répondre à ces 101 commentaires en attente (et je ne compte pas les mails qui macèrent dans mon thunderbird compost) n’a d’égal que la flemmardise complète qui me saute à la gorge (franchement entre une partie de league of legend et 101 commentaires à passer en revue vous choisiriez quoi vous ? :D)</p>
<p>Bon et puis mon pari je l’avais fait en 2011 quand vous étiez 5 à me suivre (et encore parce que vous vous étiez perdus pour la plupart).</p>
<p>Mais cessons les apitoiements futiles et revenons en à nos gargarismes! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>L’avantage avec un trafic grimpant c’est qu’on peut se livrer à quelques statistiques sur le succès des navigateurs:</p>
<p><a href="media/72c4abbf.04.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/04.png"><img style="display: inline; border: 0px;" title="04" alt="04" src="media/6af9d670.04_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/04_thumb.png" width="309" height="303" border="0" /></a></p>
<p>(Franchement passer derrière IE c’est pas sympa pour opéra les mecs…)</p>
<p>Ou encore des stats sur le nombre de procrastineurs qui glandouillent sur le blog au boulot à l’heure de la digestion :</p>
<p><a href="media/f495e7d9.05.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/05.png"><img style="display: inline; border: 0px;" title="05" alt="05" src="media/84d1beb3.05_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/05_thumb.png" width="291" height="352" border="0" /></a></p>
<p>(J’ai des noms et ça vas licencier sec! :D)</p>
<p>Concernant les moteurs de recherche pas de surprise, victoire écrasante du géant de la mountain view</p>
<p><a href="media/40339e6f.08.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/08.png"><img style="display: inline; border: 0px;" title="08" alt="08" src="media/94c86325.08_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/08_thumb.png" width="430" height="302" border="0" /></a></p>
<p>C’est triste, mais les alternatives plus respectueuses de la vie privée ont beaucoup de mal à suivre coté performances et restent de ce fait à la traîne sur le classement.</p>
<p>Sachez qu &#8216;en cette nouvelle année 2014 (bien entamée) j’ai décidé de ne plus faire de promesses d’article !</p>
<p>De cette manière je pourrais enfin enchaîner les partie de &#8220;league of&#8221; la conscience légère et peut être (qui sait?) devenir bon à ce jeux sur lequel je me fait périodiquement exploser par le premier venu (comment ça je raconte ma vie?)</p>
<p>bon okay je me concentrerais peut être de temps en temps sur les thèmes qui vous plaisent le plus</p>
<p><a href="media/a682c6fe.07.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/07.png"><img style="display: inline; border: 0px;" title="07" alt="07" src="media/c70ee911.07_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/07_thumb.png" width="390" height="583" border="0" /></a></p>
<p>Mais soyez certains que je continuerais tout aussi bien à troller sur des sujets inintéressants ne concernant que deux ou trois péquins sur le globe (après tout l’idleblog c’était à l’origine mon cahier de brouillons ne changeons pas les bonnes habitudes).</p>
<p>J&#8217;aimerais également me lancer dans quelques scripts payants ( en laissant les actuels gratuits évidemment ) non pas pour financer mes travaux ou encore faire des dons pour contribuer au libre mais parce que je suis une pourriture de capitaliste et que j&#8217;aimerais financer mes dictateurs préférés tout en investissant sur des boites de spam type &#8220;enlarge your penis&#8221; (c&#8217;est vrai que ce genre de titres ça fait rêver, c&#8217;est vendeur non ?).</p>
<p>Plus sérieusement ça serait surtout pour me motiver un peu à avancer, je me refuse toujours à placer des pubs sur le blog ou à écrire des articles sponsorisés j&#8217;aimerais donc trouver un autre moyen de rentabiliser sans abuser (entre 1 et 10€ max la licence) certains de mes projets sur lesquels je passe un temps considérable.</p>
<p>Evidemment c&#8217;est à l&#8217;état de projet et ça n&#8217;insinue pas que d&#8217;autres projets totalement gratuits ne verrons pas le jour.</p>
<p><strong>Sur ces bonnes paroles, un fuck’in-maxi-gros-merci-bisous-papouille à :</strong></p>
<p>Plein de gens en fait !!</p>
<p><a href="http://sebsauvage.net">- Sebsauvage</a>, qui m’a trouvé un jour en train de me parler à moi même sur mon blog minuscule et qui a eu la gentillesse de me faire connaitre.</p>
<p>- Tous les braves types ci dessous qui ont pris en pitié l’Idleblog et m’ont relayés de manière désintéressée ou parce qu&#8217;ils n&#8217;avaient plus de sujet de rédaction</p>
<p><a href="media/952fbe6a.06.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/06.png"><img style="display: inline; border: 0px;" title="06" alt="06" src="media/699eb427.06_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/02/06_thumb.png" width="266" height="646" border="0" /></a></p>
<p>Tous les blogueurs francophones hyper sympa qui rehaussent le niveau du web chaque jour un peu plus (je ne les cite pas j&#8217;ai trop peur d&#8217;en oublier un que j&#8217;adore)</p>
<p>Et surtout merci à vous mes IdleNautes ! Fidèles ou Adultères ! Gentil ou  troll like ! Contributeurs ou simple profiteurs assoiffés de tutos! Qui me comblez tous les soirs avec <span style="text-decoration: line-through;">vos dons</span> vos commentaires, vos compliments, voir vos insultes (tant qu’elles restent constructives) et votre présence régulière dans ce coin du web.</p>
<p>Pour fêter ça j’offre ma tournée aux idlenautes bordelais <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>Allez bon Week end et Kanpai mes bichons!</p>


feed_id: http://blog.idleman.fr/?p=3606
title: Créer un utilitaire ligne de commande sous windows avec du PHP
uri: Créer-un-utilitaire-ligne-de-commande-sous-windows-avec-du-PHP
url: http://blog.idleman.fr/creer-un-utilitaire-ligne-de-commande-sous-windows-avec-du-php/
content:
<p>Il est parfois utile de pouvoir proposer des petits utilitaires en ligne de<br />
commande pour Windows.</p>
<p>Seulement voila, quand on est pas un pro du bat et qu&#8217;on est plutôt habitué a<br />
du langage web, le DOS ça picote.</p>
<p><span id="more-3606"></span></p>
<p>Je vous propose donc une petite archive permettant de créer un utilitaire Windows<br />
en ligne de commande à partir d&#8217;un script PHP.</p>
<p>Il est vrai qu&#8217;on utilise si souvent le PHP dans le cadre d&#8217;un développement web qu&#8217;on en oublie qu&#8217;il peux fonctionner sans serveur http en simple ligne de commande.</p>
<p><strong>Le principe est simple :</strong> l&#8217;archive est composée de 4 fichiers :</p>
<ul>
<li>un fichier app.php qui contient votre code php</li>
<li>un fichier php.exe qui est l&#8217;executable en ligne de commande php</li>
<li>un fichier dll nécessaire au php.exe</li>
<li>un fichier .bat qui sera l&#8217;executable reliant le tout.</li>
</ul>
<p>Votre programme php sera donc appelé depuis al console Windows sous cette forme:</p><pre class="crayon-plain-tag">c:/utilitaire_idle/run.bat -argument1 -argument2 -argument3 etc...</pre><p>Pour servir d&#8217;exemple je vous fournis l&#8217;archive avec un code php d&#8217;exemple<br />
qui vas permettre de crypter/décrypter des fichiers et des dossiers en 256bits en utilisant<br />
que du PHP.</p>
<p>Vous pouvez télécharger l&#8217;archive ici :  <a href="http://blog.idleman.fr/wp-content/uploads/2014/02/PCrypt.zip">PCrypt</a></p>
<p>Pour modifier l&#8217;utilitaire vous n&#8217;avez qu&#8217;a remplacer le contenu du code <strong>app.php</strong> par le votre.</p>
<p>Mon exemple fonctionne avec les arguments suivants :</p>
<p>Exemple de cryptage d&#8217;un fichier :</p><pre class="crayon-plain-tag">run.bat encrypt "clé de cryptage" "C:\fichiers\acrypter.pdf"</pre><p>Exemple de décryptage d&#8217;un fichier :</p><pre class="crayon-plain-tag">run.bat decrypt "clé de cryptage" "C:\fichiers\acrypter.pdf"</pre><p>Exemple de cryptage d&#8217;un dossier :</p><pre class="crayon-plain-tag">run.bat encrypt "clé de cryptage" "C:\fichiers"</pre><p>Algorithme de cryptage utilise le cypher RIJNDAEL 256 bits via la librairie mcrypt</p>
<p>Le programme étant un simple rassemblement d&#8217;exe et une ligne de bat, il est sous licence WTFPL</p>
<p>Ce n&#8217;est pas grand chose, ce n&#8217;est pas révolutionnaire, mais de temps en temps, ça dépanne :).</p>
<p>Bonne soirée ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" /> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3613
title: Leed v1.6 est téléchargeable !
uri: Leed-v1-6-est-téléchargeable
url: http://blog.idleman.fr/leed-v1-6-est-telechargeable/
content:
<p>Hoydihoy compagnons du web profond !!</p>
<p>Vous ne l&#8217;attendiez plus (et c&#8217;est normal parce qu&#8217;il a pris son temps le bougre) : une nouvelle version de leed a pointé le bout de son museau sur <a href="https://github.com/ldleman/Leed">github</a>!</p>
<p><span id="more-3613"></span></p>
<p>Il s&#8217;agit non pas de la V2.0 comme nous l&#8217;avions annoncé mais de la 1.6 qui contient, malgré sa petite montée de version, pas mal de nouveautés.</p>
<p>En effet nous avons décidé, avec les principaux contributeurs de leed que sont <strong>cobalt74</strong> et <strong>sbgodin</strong>, d&#8217;étaler d&#8217;avantage les versions entre la v1.5 et la  v2, essentiellement pour ne pas avaler un trop gros morceaux d&#8217;un bloc.</p>
<p><strong>Au menu pour cette V1.6:</strong></p>
<ul>
<li> Simplification de l&#8217;installation et détection du langage (ou choix manuel) à l&#8217;installation</li>
<li> Internationalisation du noyau et des plugins</li>
<li> Lasy Loading (Chargement et affichage progressif des articles, remplace l&#8217;ancienne pagination)</li>
<li> Possibilité de réinitialiser le mot de passe</li>
<li> Gestion des flux trop verbeux (supprimés de la page de garde)</li>
<li> Auto mise à jour de la base de leed</li>
<li> Plugins installables via des liens symboliques sous Linux</li>
<li> Intégration de nouveaux hooks</li>
<li> Suppression de l&#8217;état des plugins supprimés à la main</li>
<li> Mesures ergonomiques diverses (boutons,menus,informations déplacées/ reformatées)</li>
<li> Case à cocher pour rester connecté</li>
<li> Écran d&#8217;aide pour les raccourcis clavier</li>
<li> Traduction de Leed en Espagnol</li>
<li> Amélioration de l&#8217;intégration des flux RSS ne respectant pas les normes</li>
</ul>
<p>Oep, je vous disais bien que ça faisait un gros morceau <img src="media/0ca6ff4c.icon_razz.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_razz.png" alt=":p" class="wp-smiley" /> </p>
<p>Nous avons également décidé d&#8217;une roadmap pour les prochaines versions dispo ici :<br />
<a href="http://projet.idleman.fr/leed/?page=RoadMap">http://projet.idleman.fr/leed/?page=RoadMap</a></p>
<p>Leed v1.6 est toujours téléchargeable par la :<br />
<a href="http://projet.idleman.fr/leed/?page=T%C3%A9l%C3%A9chargement">http://projet.idleman.fr/leed/?page=T%C3%A9l%C3%A9chargement</a></p>
<p>Merci à tous nos fidèles leedonautes qui utilisent et font quotidiennement vivre le projet.</p>
<p>Mais surtout un enooooorrmme merci baveux aux contributeurs qui se défoncent pour le projet, j&#8217;ai rarement eu une <span style="text-decoration: underline;">dream team</span> pareille aussi bien sur les projets pro que perso, j&#8217;ai nommé :</p>
<ul>
<li><strong>Christophe HENRY</strong> aka Sbgodin (christophe.henry@sbgodin.fr)</li>
<li><strong>Maël ILLOUZ</strong> aka Cobalt74 (mael.illouz@cobestran.com)</li>
<li><strong>Simounet</strong> (contact@simounet.net)</li>
<li><strong>Tom Canac</strong> (contact@tomcanac.com)</li>
</ul>
<p>Et tout ceux que je fais semblant d&#8217;oublier dans l&#8217;unique but de les humilier <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" />  !!</p>
<p>Leed est partis d&#8217;un script monopage sur un bout de ftp poussiéreux, ça me fait tout chaud à mon ptit cœur tout mou de le voir encore vivre et évoluer de cette façon et ce même quand je ne m&#8217;en occupe pas, merci les mecs !!</p>


feed_id: http://blog.idleman.fr/?p=3623
title: NodeJs ~ 04 : Construction d’un mini projet (partie2)
uri: NodeJs-04-Construction-d-un-mini-projet-(partie2)
url: http://blog.idleman.fr/nodejs-04-construction-dun-mini-projet-partie2/
content:
<p>Ce tutoriel fait partie d’une série, <a href="http://blog.idleman.fr/sommaire-nodejs/">cliquez ici</a> pour accéder au sommaire.</p>
<p>Après avoir créé notre serveur http de fortune NodeJs, je vous ai vilement laissé sur votre faim,<br />
je profite donc de ces quelques minutes à moi pour avancer un peu cette partie avec vous.</p>
<p>Aujourd&#8217;hui nous allons nous intéresser à une librairie particulièrement utile permettant d&#8217;exploiter<br />
toute la puissance de NodeJs : j&#8217;ai nommé socket.io, une librairie de gestion des websocket.</p>
<p><span id="more-3623"></span></p>
<h2>Les websocket, quoi qu&#8217;est-ce ?</h2>
<p>Pour faire court, c’est un protocole qui vas nous permettre une communication instantanée entre le serveur et le client, aussi notre chat n’utiliseras pas une fumeuse technique de rafraîchissement ajax tous les x secondes pour vérifier les nouveau messages, tout se fera de manière instantanée.<br />
Ainsi pas d&#8217;échanges inutiles client/serveur, pas de latences,pas d&#8217;attentes synchrones, pas de surcharge useless du navigateur, pas d&#8217;ajax et une structure plus &#8220;propre&#8221;</p>
<p><strong>Pas mal ton truc ! C’est une techno nouvelle que propose nodejs ?</strong></p>
<p>Non, les websockets c&#8217;est assez vieux, ils peuvent être utilisés dans pas mal de langages et sous pas mal de serveurs ^^, c’est juste un peu obscure à utiliser la plupart du temps.</p>
<p><strong>Mais alors on vas se jouer la vie ?</strong></p>
<p>Pas cette fois mon tit pote (parce que par défaut, tu es mon tit pote :p) !! En nodeJs comme en php,python&#8230;["fill here with your favorite langage"] il existe une librairie pour tout.!!</p>
<p>Cette fois c&#8217;est socket.io qui vas nous sauver la mise, en l&#8217;installant nous feront d’une pierre deux coup : apprendre à utiliser une librairie, et simplifier les échanges de notre chat grâce a celle ci.</p>
<p>Prêt ? On se lance !!</p>
<h2>Installation de socket.io</h2>
<p>Comment installer une librairie sous nodejs ? Avec le gestionnaire de packet NPM que nous avons déjà évoqué ! (vous suivez rien bande de gaufres).</p>
<p>On ouvre une console, on se place dans notre dossier hi!</p><pre class="crayon-plain-tag">cd /mon/chemin/vers/hi!</pre><p>&nbsp;</p>
<p>On installe la librairie à l&#8217;aide de la commande &#8220;npm install&#8221; + nom de la librairie à installer (hardcoooore!!)</p><pre class="crayon-plain-tag">npm install socket.io</pre><p>Après tout un tas de baragouin coloré et quelques messages de warning flippants plus tard (oui le gros message &#8220;error&#8221; en rouge sous Windows n&#8217;est pas aussi méchant qu&#8217;il le parait), on se retrouve avec un dossier node_modules dans notre dossier hi, c&#8217;est lui qui contiendra toutes les librairies installées avec npm sur ce projet.</p>
<p>On peut maintenant utiliser socket.io dans notre projet.</p>
<p>Notez qu&#8217;un nombre effarant de librairies sont proposées sur le site de npm, (et son donc installable de la même manière) je vous invite à y faire un tour<br />
ça risque de vite devenir votre &#8220;cave à vin&#8221; du nodejs.</p>
<p>De plus tous le monde est autorisé à transformer sont projet nodejs en librairie et à la proposer à npm n&#8217;hésitez donc pas à contribuer si vous sortez une bafouille réutilisable dans d&#8217;autres projets.</p>
<p>Mais je digresse (&#8220;<em>gresseuhh!!</em>&#8220;), focalisons nous sur socket.io</p>
<h2>Fonctionnement de socket.io</h2>
<p>Tout vas s&#8217;articuler autour d&#8217;un système d’événements, le serveur et le client pouvant chacun &#8220;écouter&#8221; ou &#8220;émettre un événement&#8221;, par exemple :</p>
<p><strong>1.Client :</strong> émet l’événement : &#8220;création message&#8221; avec pour données &#8220;contenu du message&#8221;<br />
<strong>2.Serveur :</strong> écoute l’événement &#8220;création message&#8221; avec pour conséquence l&#8217;émission d&#8217;un autre événement &#8220;envoyer message a tous&#8221; avec pour données &#8220;contenu du message&#8221;<br />
<strong>3.Client :</strong> écoute l’événement  &#8220;envoyer message a tous&#8221; avec pour conséquence l&#8217;affichage de ce message.</p>
<p>Donc en gros on vas &#8220;créer&#8221; un événement avec la fonction &#8220;<strong>emit</strong>&#8221; et on vas &#8220;écouter&#8221; les événements avec la fonction &#8220;<strong>on</strong>&#8220;.</p>
<h2>Installation coté serveur</h2>
<p>On reprends donc le code du précédent tuto,commençons par le code coté serveur :</p>
<p>En début de fichier, on récupère la librairie socket.io qui simplifie les échanges websocket</p><pre class="crayon-plain-tag">io = require('socket.io');</pre><p>Puis on greffe socket.io au serveur http qu&#8217;on à déjà créé (après &#8230;httpServer.listen(69);)</p><pre class="crayon-plain-tag">io.listen(httpServer);</pre><p>Voila, coté serveur on peux déjà commencer à utiliser les événements.</p>
<h2>Installation coté client</h2>
<p>C&#8217;est encore plus simple, il suffit d’appeler une page js de manière traditionnelle</p><pre class="crayon-plain-tag">&lt;script src="/socket.io/socket.io.js"&gt;&lt;/script&gt;</pre><p>Puis quelque part dans notre javascript (disons dans main.js) on initialise la variable</p>
<p>socket qui vas nous permettre d&#8217;utiliser socket.io par la suite</p><pre class="crayon-plain-tag">&lt;script&gt;
var socket = io.connect('http://localhost:69');
&lt;/script&gt;</pre><p></p>
<h2>Utilisation</h2>
<p>On a plus qu&#8217;a placer nos événements comme on le souhaite <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" /> </p>
<p>Pour commencer, créons une écoute d’événement qui vas se déclencher lorsqu&#8217;un visiteur se connecte au serveur<br />
Pour le moment on met juste un message de log qui devrais s&#8217;afficher dans la console serveur quand quelqu&#8217;un se connecte.</p>
<h2>Coté serveur (server.js)</h2>
<p></p><pre class="crayon-plain-tag">io.sockets.on('connection',function(socket){
console.log("Quelqu'un est connecté");
});</pre><p>On relance le serveur pour tester</p><pre class="crayon-plain-tag">node server.js</pre><p>On rafraîchis la page 127.0.0.1:69 et tataaaaa ! On se retrouve avec une connexion dans la console.</p>
<p><strong>Appliquons cette techno à notre chat</strong></p>
<p>Vous l&#8217;aurez compris il nous faudra créer tout un tas d’événements chez le client qui puissent être écouté et traité par le serveur, pour le moment on a un seul événement : &#8220;écoute d&#8217;une connexion anonyme à la page&#8221; mais nous allons devoir en créer d&#8217;autres pour les actions suivantes :</p>
<p>- Connexion (Identification d&#8217;un utilisateur par login + mot de passe)<br />
- Déconnexion<br />
- Envois d&#8217;un message</p>
<p>Mais il faudra également que le serveur créé lui aussi des événements pour informer les autres clients des choses importantes, prenons pour exemple une nouvelle connexion au chat :</p>
<p><strong>1.Client :</strong> l&#8217;utilisateur se connecte avec son login + mot de passe &#8211;&gt; Événement connexion</p>
<p><strong>2.Serveur :</strong> reçoit le login + mdp, teste si il est bon, créé un événement pour<br />
informer les autres clients &#8211;Événement nouveau connecté</p>
<p><strong>3.Clients :</strong> notifie le nouvel arrivé avec un avatar + un message &#8220;xxx s&#8217;est connecté&#8221;.</p>
<p>Bref l&#8217;info n&#8217;est pas a sens unique, le serveur comme les clients ont besoin de communiquer.</p>
<p>Faisons tout de suite un &#8220;annuaire&#8221; des événements reçu et émis de chaque cotés histoire de ne pas nous perdre:</p>
<p><strong>Client</strong><br />
<strong> ======</strong></p>
<p><span style="text-decoration: underline;">&gt; Envoyé</span><br />
- Connexion anonyme à la page<br />
- Identification (login + mot de passe)<br />
- Nouveau message (contenu du message)<br />
- Déconnexion<br />
<span style="text-decoration: underline;">&gt; Reçu</span><br />
- Résultat de l&#8217;identification (succès ou échec)<br />
- Nouvel utilisateur connecté (infos sur l&#8217;utilisateur)<br />
- Nouveau message reçu (infos sur le message, texte, auteur, date&#8230;)<br />
- Déconnexion d&#8217;un utilisateur (info sur l’utilisateur)</p>
<p><strong>Serveur</strong><br />
<strong> =======</strong></p>
<p><span style="text-decoration: underline;">&gt; Reçu</span><br />
- Connexion anonyme à la page<br />
- Identification (login + mot de passe)<br />
- Nouveau message (contenu du message)<br />
- Déconnexion</p>
<p><span style="text-decoration: underline;">&gt; Envoyé</span><br />
- Résultat de l&#8217;identification (succès ou échec)<br />
- Nouvel utilisateur connecté (infos sur l&#8217;utilisateur)<br />
- Nouveau message reçu (infos sur le message, texte, auteur, date&#8230;)<br />
- Déconnexion d&#8217;un utilisateur (info sur l’utilisateur)</p>
<p>Vous l&#8217;aurez constatés les reçu du client sont les envoyés du serveur et réciproquement, ce qui se tient, pas de réception sans émission :), évidemment vous pouvez créer un événement avec personne pour l&#8217;écouter mais c&#8217;est un peu useless :p.</p>
<p><strong>Une dernière petite précision :</strong></p>
<p>La librairie socket.io permet l&#8217;envois d&#8217;un événement a des &#8220;cibles&#8221; particulières, c&#8217;est a dire que vous n&#8217;êtes pas obligés d&#8217;envoyer un événement a tous le monde à chaque fois.</p>
<p><strong>On envoie l’événement à tous le monde sans exception</strong><br />
io.sockets.emit(&#8216;nom_evenement&#8217;,data);</p>
<p><strong>On envoie l’événement uniquement à l&#8217;utilisateur courant</strong><br />
socket.emit(&#8216;nom_evenement&#8217;,data);</p>
<p><strong>On envoie l’événement à tous le monde sauf à l&#8217;utilisateur courant</strong><br />
socket.broadcast.emit(&#8216;nom_evenement&#8217;,data);</p>
<p>Pratique dans certains cas, par exemple pour n&#8217;avertir que l&#8217;utilisateur courant qu&#8217;il à bien été connecté<br />
et pour n&#8217;avertir que les autres qu&#8217;un nouvel utilisateur est connecté.</p>
<p>Assez palabré bande de moules, au turbin !<br />
On vas repartir de nos sources du tuto précédent histoire de ne pas se retaper<br />
toute la partie &#8216;gestion du serveur http&#8217;.</p>
<h2>Partie client</h2>
<p>Dans main.js</p><pre class="crayon-plain-tag">var socket;
$(document).ready(function(){
socket = io.connect('http://localhost:69');
//Au chargement du site, on charge la page d'accueil : home.html
page('home');
});
//Fonction permettant de charger un contenu de page dans la div centrale en ajax
function page(page){
$('.window-page').load(page+'.html',function(){
switch(page){
case 'chat':
//ECOUTE D'EVENEMENTS
socket.on('connected', function (data) {
$('#login-container').fadeOut(200);
info('Je suis connecté !');

$('#chat-avatar').attr('src',data.user.avatar);
for(var key in data.connected){
console.log(data.connected);
var usr =  data.connected[key];
$('#chat-users').prepend('&lt;li id="user-'+usr.id+'"&gt;&lt;img src="'+usr.avatar+'"&gt;&lt;span&gt;'+usr.login+'&lt;/span&gt;&lt;/li&gt;');
}
});
socket.on('new_user', function (user) {
info(user.login+' est arrivé!!');
$('#chat-users').prepend('&lt;li id="user-'+user.id+'"&gt;&lt;img src="'+user.avatar+'"&gt;&lt;span&gt;'+user.login+'&lt;/span&gt;&lt;/li&gt;');
});
socket.on('new_message', function (data) {
message(data);
});
socket.on('left_user', function (user) {
$('#user-'+user.id).remove();
info(user.login+' est partis!!');
});
$('#chat-message').keyup(function(e){
if(e.keyCode==13) send_message();

});
$('#login-container input').keyup(function(e){
if(e.keyCode==13) send_login();
});
break;
}
});
}

//Affichage d'un message dans le chat : on remplis un "template" de message avec les parametres donnés en arguments et on affiche.
function message(message){
var template = $('#chat-message-template').clone();
$('.chat-message-avatar',template).prepend('&lt;img src="'+message.avatar+'"/&gt;');
$('login',template).replaceWith(message.login);
$('message',template).replaceWith(message.message);
$('date',template).replaceWith(message.date);
$(template).removeAttr('id');
$('#chat-messages').prepend(template);
$(template).fadeIn(300);
}
//Affichage d'une infos serveur dans le chat
function info(message){
$('#chat-messages').prepend('&lt;li&gt;&lt;i&gt;&lt;/i&gt; '+message+'&lt;/li&gt;');
}
//Fonction executée lors de l'appuis sur "connexion"
function send_login(){
socket.emit('login',{login:$('#login').val(),password:$('#password').val()});
}
//Fonction executée lors de l'appuis sur entrée dans le champs message de chat
function send_message(){
socket.emit('message',{message:$('#chat-message').val()});
$('#chat-message').val('').focus();
}

//Fonctions permettant d'afficher et de faire disparaitre le préloader à chaques action ajax
$(document).ajaxStop(function() {
$('.preloader').fadeOut(200);
});
$(document).ajaxStart(function() {
$('.preloader').show();
});</pre><p>&nbsp;</p>
<p>Dans index.html</p><pre class="crayon-plain-tag">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Hi!&lt;/title&gt;
&lt;script type="text/javascript" src="/socket.io/socket.io.js"&gt;&lt;/script&gt;

&lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="js/main.js"&gt;&lt;/script&gt;
&lt;link type="text/css" href="css/gui.css" rel="stylesheet" /&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li onclick="page('home');"&gt;&lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li onclick="page('chat');"&gt;&lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li onclick="page('about');"&gt;&lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;section&gt;&lt;/section&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre><p>&nbsp;</p>
<p>dans chat.html</p><pre class="crayon-plain-tag">&lt;h1&gt;&lt;i&gt;&lt;/i&gt; Chat&lt;/h1&gt;
&lt;hr/&gt;
&lt;js&gt;console.log('test');&lt;/js&gt;
&lt;div id="login-container"&gt;
&lt;input type="text" placeholder="Identifiant" id="login"&gt; &lt;input type="text" placeholder="Mot de passe" id="password"&gt; &lt;button onclick="send_login();"&gt;Connexion&lt;/button&gt;
&lt;/div&gt;

&lt;div &gt;
&lt;div&gt;
&lt;img src="media/2d9bc955.default.jpg" data-original-source="http://blog.idleman.fr/nodejs-04-construction-dun-mini-projet-partie2/avatars/default.jpg" id="chat-avatar"&gt;
&lt;textarea type="text" placeHolder="Bafouillez Ici..." id="chat-message"&gt;&lt;/textarea&gt;
&lt;/div&gt;

&lt;ul id="chat-messages"&gt;&lt;/ul&gt;
&lt;ul id="chat-users"&gt;&lt;/ul&gt;

&lt;li style="display:none;" id="chat-message-template"&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span&gt;&lt;login/&gt; &lt;span&gt;- &lt;date/&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;message/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;

&lt;/div&gt;</pre><p>&nbsp;</p>
<h2>Partie serveur</h2>
<p>server.js</p><pre class="crayon-plain-tag">//Récuperation de nos configuration perssonalisées
conf = require('./conf.json');
//Inclusion de la librairie http permettant de créer un serveur web
http = require('http');
//Récuperation de la librairie url qui facilite l'analyse de l'url des requetes reçues
url = require('url');
//Récuperation de la librairie fs qui permet la gestion de fichiers (ecriture, lecture...)
fs = require('fs');

//Création d'un serveur http sur le port spécifié dans conf.json (section http)
//Dès qu'une requetes est reçu sur 127.0.0.1:port, la fonction onRequest est executée
//et prends pour parametre un objet requete (ce qui est recu) et un objet réponse (ce que le serveur vas retourner)
var httpServer = http.createServer(onRequest).listen(conf.http.port);

//Fonction onRequest est executée à chaques requete sur le serveur
function onRequest(request, response) {
//On récupere l'url requise et on la parse pour n'avoir que la partie qui nous interesse
var pathname = url.parse(request.url).pathname;
//On récupère l'extension du fichier requis (html,css,js,jpg...)
var extension = pathname.split('.').pop();
//Si l'utilisateur ne spécifie pas de page, on prend l'index par défaut 'index.html' (spécifié dans conf.json)
if(pathname=='/') pathname = conf.http.index;
//On définis l'entete de réponse au code 200 signifiant : "succès de la requete" et
//on définit le type mime du fichier de retour (image/jpg pour un jpg, text/css pour un css etc..)
//Les types mimes sont définit dans le fichier json conf.
response.writeHead(200, {'Content-Type': conf.http.mime[extension]});
try {
//On lit le contenu du fichier demandé (en ajoutant la racine www spécifiée dans conf.json)
//et on le retour a l'utilisateur
response.end(preprocessor(fs.readFileSync(conf.http.www + pathname)));
}catch(e){
//Si la lecture du fichier à échouée on renvoie un code d'erreur 404
response.writeHead(404, {'Content-Type': 'text/html'});
//on affiche le contenu de la page 404.html (chemin spécifiée dans conf.json)
response.end(e+fs.readFileSync(conf.http.error['404']));
}
}

function preprocessor(src){

test = src.toString().match(/&lt;js&gt;(.*?)&lt;\/js&gt;/);
if(test!=null) eval(test[1]);

return src;
}

//Utilisation de la librairie socket.io sur le port 69
var io = require('socket.io').listen(httpServer,{ log: false });
//Tableau contenant les utilisateurs connectés
var connected = new Array();
//Tableau des comptes utilisateurs (base de donnée utilisateurs)
var users = [
{id:1,login:'valentin',password:'valentin',mail:'valentin@valentin.fr',avatar:'avatars/valentin@valentin.fr.png'},
{id:2,login:'idleman',password:'idleman',mail:'idleman@idleman.fr',avatar:'avatars/idleman@idleman.fr.jpg'},
];

//Tout commence lorsqu'un visiteur se connecte au serveur, un socket personnel lui est alloué
io.sockets.on('connection', function (socket) {
console.log('Nouvelle connexion anonyme');
socket.set('user', {login:'anonymous',password:'',mail:'ano@nymous.com',avatar:'avatars/default.jpg'});
//Si le visiteur anonyme fait une demande d'authentification
socket.on('login', function (data) {
//Si le visiteur possede bien un compte avec ce login et ce password
var user = exist(data.login,data.password);
if(user!=false){
//utilisateur authentifié
console.log("Connexion authentifiée : "+user.login);

//On met a jour la liste des connectés
connected.push({id:user.id,login:user.login,avatar:user.avatar});
//On lie l'utilisateur connecté au socket de manière a pouvoir le récuperer partout
socket.set('user', user, function () {
//On avrtis tous le monde (sauf l'utilisateur) que l'utilisateur est connecté et on leur retournes quelques infos sur lui
socket.broadcast.emit('new_user', {id:user.id,login:user.login,avatar:user.avatar});
//On avertis l'utilisateur qu'il est bien connecté et on lui retourne toutes ses infos de compte
socket.emit('connected', {connected:connected,user:user});
});
}
});

//Lorsqu'un message est envoyé
socket.on('message', function(data) {
//On recupere l'utilisateur lié au socket
socket.get('user', function (err, user) {
console.log("Message envoyé par : "+user.login);
var currentdate = new Date();
var date = currentdate.getDate() + "/"
+ (currentdate.getMonth()+1)  + "/"
+ currentdate.getFullYear() + " @ "
+ currentdate.getHours() + ":"
+ currentdate.getMinutes() + ":"
+ currentdate.getSeconds();
//On renvois son message a tous le monde (lui compris)
io.sockets.emit('new_message', {id:user.id,login:user.login,avatar:user.avatar,message:data.message,date:date});
});
});

//Lorsqu'un socket se déconnecte
socket.on('disconnect', function () {
//On recupere l'utilisateur lié au socket
socket.get('user', function (err, user) {
console.log("Déconnexion : "+user.login);
//On informe ceux qui restent que l'utilisateur est partis
removeConnected(user.id);
socket.broadcast.emit('left_user', {id:user.id,login:user.login});
});
});

});

//Fonction permettant la recherche d'un utilisateur à partir d'un login + mdp, retourne false si rien n'est trouvé
//ou l'objet utilisateur si les login + mdp sont bons.
function exist(login,password){
var response = false;
for(var key in users){
if(users[key].login == login &amp;&amp; users[key].password == password)response = users[key];
}
return response;
}

function removeConnected(id){
for(var key in connected){
if(connected[key].id == id) connected[key] = null;
}
}</pre><p>&nbsp;</p>
<h2>Utilisation</h2>
<p>On peux maintenant tester en lançant le programme:</p><pre class="crayon-plain-tag">node server.js</pre><p>On rafraîchis la page 127.0.0.1:69 sur le navigateur et on laisse la magie du socket opérer</p>
<p>Le compte par défaut est login:idleman password:idleman, vous pouvez en ajouter ou modifier le compte existant dans la page server.js</p>
<p>Notez bien qu&#8217;on utilise ici les sockets pour un simple chat de manière à illustrer le côté &#8220;instantané&#8221; de cette techno,<br />
mais les sockets peuvent servir à bien des choses et vous donner un sacré coup de pouce sur toutes les applications<br />
nécessitant une haute réactivité (statistiques en temps réel, surveillance/monitoring, domotique *sifflotte* et autres&#8230;)</p>
<p>Pour les mauvais élèves, l&#8217;archive du tuto est disponible ICI : <a href="http://blog.idleman.fr/wp-content/uploads/2014/03/nodejs-partie-2.zip">nodejs-partie-2</a>.</p>


feed_id: http://blog.idleman.fr/?p=3643
title: Yana, évolutions, perspectives, explications
uri: Yana-évolutions-perspectives-explications
url: http://blog.idleman.fr/yana-evolutions-perspectives-explications/
content:
<p>Je me rends bien compte que je suis aussi bon en communication qu&#8217;en orthographe <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" />  !</p>
<p>Mais je vais tenter de rectifier le tir avec un petit post permettant de répondre aux question les plus courantes sur mon système yana.</p>
<p><span id="more-3643"></span></p>
<h1>Un rappel pour les cancres du fond</h1>
<p>Pour ceux qui n&#8217;auraient pas suivis (ou qui s&#8217;en foutent simplement), YANA (<strong>Y</strong>ou <strong>A</strong>re <strong>N</strong>ot <strong>A</strong>lone) est une plateforme domotique gratuite, re-distribuable, modifiable, dérivable etc.. permettant de gérer votre domotique (et notamment les p&#8217;tits gadgets que nous construisons nous même dans <a href="http://blog.idleman.fr/sommaire-raspberry-pi-arduino-domotique-robotique-et-pleins-de-trucs-en-ique/">cette section du blog</a>.</p>
<p><span style="text-decoration: underline;">Cette plateforme à deux grosses particularités :</span></p>
<p><strong>Elle est modulaire</strong>: c&#8217;est à dire qu&#8217;elle fonctionne sous la forme de plugins proposés par la communauté</p>
<p><strong>Elle peut être pilotée:</strong> via plusieurs interface différentes: commandes vocales et discussion avec une simili IA, interface web ou encore commandes depuis une application android, il y a même des utilisateurs qui ont bricolés leurs interface en batch.</p>
<p>De la récupération des chaines télé, à la programmation de vos stores électrique en passant par l&#8217;allumage vocal de vos lampes ou encore la récupération de la température de vos plantes vertes (oai oai oai j&#8217;vous ai <a href="http://www.cannaweed.com/topic/166994-automatisation-placard-raspberrypi/page-2?hl=arduino">à l&#8217;œil canaweed</a> :D) tout est possible car chaque plugin peut bénéficier des fonctionnalités graphiques, vocales et événementielles de la plateforme pour piloter un engin.</p>
<h1>Schéma de fonctionnement</h1>
<p>Le système fonctionne donc sous la forme d&#8217;un noyau (le serveur) qui peut accepter un nombre infinis de plugins et peut être interrogé par plusieurs interfaces.</p>
<p>Un schéma valant toutes les explications fumeuses que je pourrais apporter, en voila un encore tout fumant sortis du photofour.</p>
<p><a href="media/22313621.rpi.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/03/rpi.jpg"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="rpi" alt="rpi" src="media/21187720.rpi_thumb.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/03/rpi_thumb.jpg" width="564" height="247" border="0" /></a></p>
<p><strong>Notez les points suivants :</strong></p>
<ul>
<li>Toutes les interfaces communiquent avec le serveur via un flux JSON</li>
<li>Toutes les interfaces récupèrent les commandes vocales du noyau au chargement</li>
<li>Tous les plugins peuvent ajouter des commandes vocales au noyau (ensuite transmises aux interfaces)</li>
<li>Pour connecter une interface au noyau, il est nécessaire d&#8217;avoir le token de sécurité généré de manière unique<br />
lors de l&#8217;installation du serveur.</li>
<li>Le serveur (noyau et ses plugins) est développé en PHP, les interfaces peuvent être développées de plusieurs<br />
manières avec plusieurs langages tant qu&#8217;elles respectent le protocole JSON du serveur</li>
<li>Le serveur doit être installé sur un raspberry PI de préférence (mais peut aussi tourner sous tout environnement web qui se respecte)</li>
<li>Le serveur utilise une base sqlite (fichier unique) et peux fonctionner sous apache, lighttpd ou nginx au choix (pas testé ailleurs)</li>
</ul>
<p><strong>Fonctionnement type d&#8217;une commande vocale:</strong></p>
<p>Une commande vocale est produite par un plugin, distribué par le serveur et récupéré par les interfaces (yana for windows/android&#8230;) au démarrage de celles ci.</p>
<p><strong>Une commande vocale &#8216;type&#8217; contient au moins deux paramètres obligatoires:</strong></p>
<ul>
<li>Le libellé de la commande vocale &#8220;ex : Yana, allume le salon&#8221;</li>
<li>Le type d&#8217;action lié à cette commande (exécuter un son, lancer une requête, ou lancer une commande sur le poste de l&#8217;interface)<span style="text-decoration: underline;">Le cheminement d&#8217;une commande vocale pour allumer une lampe est le suivant:</span></li>
</ul>
<ol>
<li>Ajout de la commande vocale au dictionnaire du serveur par un plugin</li>
<li>Récupération des commandes vocales disponibles par l&#8217;interface à son démarrage</li>
<li>L&#8217;utilisateur énonce sa commande qui est reconnue par l&#8217;interface</li>
<li>L&#8217;interface lance l&#8217;action liée (a savoir une requête vers le serveur) avec le paramètre lampe = on</li>
<li>Le serveur reçoit la commande, l’exécute, et retourne (ou pas) une réponse json</li>
<li>la réponse json est récupérée par l&#8217;interface, si cette réponse contient une action (son, réponse vocale, commande) elle est exécutée (ex : &#8220;Lampe correctement allumée chef !&#8221;</li>
</ol>
<h1>Les interfaces</h1>
<p>Actuellement il existe <strong>trois interfaces</strong> officielles pour communiquer avec le serveur :</p>
<ul>
<li><strong>L&#8217;interface web du serveur</strong> : interface web classique installée par défaut avec le serveur (supportée par idleman)</li>
<li><strong>L&#8217;interface</strong> <strong>vocale pour Windows</strong> : Yana for windows, permet d’exécuter une action en lançant une commande vocale et d&#8217;obtenir une réponse audio également (supportée par idleman)</li>
<li><strong>L&#8217;interface vocale pour android :</strong> Yana for android, idem que pour yana windows mais pour android, tablettes, smartphones etc&#8230; (supportée par novares)</li>
</ul>
<h1>Les dernières modifs</h1>
<p>J&#8217;ai effectué quelques modifs (sur yana-server essentiellement) ces derniers temps sans trop communiquer dessus:</p>
<p><strong>Ajout d&#8217;un gestionnaire d’événement</strong> : permet de programmer certaines actions à certains moment de la journée/du mois/de l&#8217;année.</p>
<p>Ce système fonctionne comme un cron linux (une tâche planifiée sur Windows) et vous permet d&#8217;effectuer une action sur le serveur ou sur une interface à un instant précis.  (ex : ouvrir vos stores tous les matins à 8h). Ce système est voué a évoluer en gestionnaire de scénarios (cf solutions envisagées plus bas).</p>
<p><strong>Ajout des commandes vocales instantanées</strong> : Il s&#8217;agit d&#8217;un paramètre que vous pouvez spécifier lorsque vous ajoutez une commande vocale, ce paramètre vas définir que l&#8217;action de la commande vocale doit être exécutée tout de suite sans consulter le serveur.</p>
<p>Cette commande est utile pour accélérer l’exécution d&#8217;un programme local sur yana for windows par exemple.</p>
<blockquote><p>&#8220;<em>ex : yana lance l&#8217;environnement de développement</em>&#8220;</p></blockquote>
<p>Vas lancer tout de suite notepad++ sans faire de requête sur le serveur (cf Fonctionnement type d&#8217;une commande vocale plus haut).</p>
<p><strong>Ajout d&#8217;un installateur de plugin :</strong> cette fonctionnalité est directement connecté au market et vous permet de rechercher/installer parmi les plugins soumis par la communauté afin d’étendre les fonctionnalités de yana.</p>
<p><strong>Modification graphiques :</strong> Simplification de l&#8217;interface, passage en &#8220;flat design&#8221; type metro ui historie de rester tendance :p.</p>
<p><strong>Migration des paramètres de configurations :</strong> beaucoup de paramètres (nom de la smili IA etc&#8230;) avant sous forme de constantes et modifiable uniquement &#8220;en dur&#8221; dans le code, sont maintenant réglable depuis l&#8217;interface (ou du moins ça ne vas pas tarder). Cette migration risque de foutre dans un premier temps un peu la merde, surtout par rapports aux plugin qui utilisaient consciencieusement ces constantes, mais dans l&#8217;avenir ça vas permettre une meilleure personnalisation de Yana.</p>
<h1>Les plugins à dispositions</h1>
<p>Les utilisateurs de Yana n&#8217;ont pas chaumé!! Ils ont soumis sur le market (<a href="http://market.idleman.fr/yana">http://market.idleman.fr/yana)</a> tout un tas de super trucs !</p>
<p>Déjà 20 plugins disponibles en plus des plugins officiels déjà en place, et il y a de tout :</p>
<ul>
<li><strong>Camera :</strong> Plugin permettant de prendre des photos avec la camera PI depuis l&#8217;interface web</li>
<li><strong>Camera USB :</strong> Plugin permettant de prendre des photos avec une caméra USB depuis l&#8217;interface web (fork du plugin Camera d&#8217;Idleman)</li>
<li><strong>Combo Relay :</strong> Plugin de gestion d&#8217;un combo de deux relais filaires</li>
<li><strong>DHT :</strong> plugin de lecture de sondes DHT (DHT11/DHT22/AM2302) via la lib Adafruit</li>
<li><strong>Dimmer</strong> : Plugin de variateur via pi-blaster (permet de dimmer des led en pwm, ou plus costaud via les composants adaptés)</li>
<li><strong>EMplus manager :</strong> Complément pour la gestion des événement : Activation et désactivation d’événements par groupe</li>
<li><strong>FreeBox :</strong> Commander votre FreeBox via votre Raspberry Pi</li>
<li><strong>Google Agenda :</strong> Ce plugin, après configuration, accède à vos agenda Google pour vous faire la lecture des événements enregistrés. Événements du jour, du lendemain, de l&#8230;</li>
<li><strong>Informations vocales :</strong> Permet la récupérations d&#8217;informations locales ou sur le web comme la météo, les séries TV, l&#8217;heure, la date et l&#8217;état des GPIO</li>
<li><strong>MPD :</strong> plugin de contrôle de musique du lecteur mpc / daemon mpd</li>
<li><strong>Nabaztag</strong> : Plugin de contrôle de NabaztagTag via serveur OpenJabNab.</li>
<li><strong>Personnal Settings :</strong> Plugin de paramètres avancés</li>
<li><strong>Ping :</strong> Ping de surveillance des équipements</li>
<li><strong>Prises GeFOTECH :</strong> Prises GeFOTECH &#8211; 433MHz</li>
<li><strong>Prises SCS :</strong> Plugin pour gérer les prises SCS</li>
<li><strong>Store Radio :</strong> Plugin permettant la Gestion de commande de Store Radio</li>
<li><strong>Température par locaux :</strong> Gestion des capteurs de température</li>
<li><strong>Temperature DS18B20 :</strong> Permet de récupérer la température d&#8217;un capteur de type DS18B20</li>
<li><strong>TvHDMI :</strong> Plugin de gestion des commandes de la TV via HDMI CEC</li>
<li><strong>XBMC :</strong> gestion du lecteur xbmc</li>
</ul>
<h1>Les évolutions envisagées</h1>
<p>On arrive à la section des promesses non tenues <img src="media/0ca6ff4c.icon_razz.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_razz.png" alt=":p" class="wp-smiley" />  !</p>
<p><strong>Scénario :</strong> Améliorer le gestionnaire d’événement pour qu&#8217;il puisse créer une action à partir d&#8217;une autre. Actuellement l&#8217;action<br />
d&#8217;entrée est forcement une informations temporelle (date/heure &#8230;) dans le futur l&#8217;info d&#8217;entrée pourra être une information de capteur, une commande vocale, etc etc&#8230; il sera également possible de créer des combinaisons d&#8217;éléments déclencheurs (causes) et d&#8217;action résultantes (conséquences) ainsi que les actions en cascade (une action en déclenche une autre qui elle même en déclenche d&#8217;autre etc..)</p>
<p><strong>Variables vocales :</strong> Actuellement seules des phrases complètes prédéfinies par les plugins peuvent être reconnues (système plus fiable que la diction au mot à mot), j’aimerais garder ce système tout en le combinant au mode de diction (moins fiable) pour inclure des variables dans les commandes, ex : &#8220;Yana, cherche le mot &#8216;idleblog&#8217; sur wikipedia&#8221; (résultante de la commande &#8220;Yana, cherche le mot &#8216;$variable1&#8242; sur $variable2&#8243;:</p>
<p><strong>Interface vocale google speech pour linux/mac</strong> : Pour le moment il n&#8217;existe pas d&#8217;interfaces vocales installables directement sur le pi, sur linux ou sur mac (ou alors elle existe mais n&#8217;a pas été partagée par son créateur) il est possible d&#8217;en construire une en utilisant le webservice de google speech (moins bien que la librairie de windows utilisée par yana for windows, car google speech passe par le net, mais c&#8217;est mieux que rien), si quelqu&#8217;un à envie de se lancer la dessus je serais ravis de lui filer les infos, c&#8217;est simple à faire mais ça prends un peu de temps et je suis déjà pas mal pris par les reste du développement.</p>
<p><strong>Gestion comportementale de yana :</strong> J&#8217;aimerais approfondir un peu le comportement de yana de manière à la rendre plus &#8220;humaine&#8221; en y intégrant des simulateurs de sentiments, une mémoire et un système de déduction.</p>
<p>Attention je ne me lancerais pas dans l&#8217;intelligence artificielle pure et dure (qui est bien trop complexe pour moi et qui demanderais beaucoup trop de ressources au serveur) mais juste intégrer quelques notions que j&#8217;ai trouvées intéressantes dans ma recherche de thèse (moteur d&#8217;inférence, programmation génétique pourquoi pas, hasard, imagination/créativité avec le système licorne (mélange de concepts existants : licorne = narval + cheval)&#8230;) et pourquoi pas également utiliser le moteur de recherche wolfram alpha search qui est poussé de ce coté la.</p>
<p>Et franchement si j&#8217;arrive à faire tout ça je pourrais déjà mourir heureux <img src="media/0ca6ff4c.icon_razz.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_razz.png" alt=":p" class="wp-smiley" /> </p>
<h1>Comment participer</h1>
<p>Si le projet vous botte, que vous utilisez déjà quotidiennement yana ou que vous êtes simplement pris d&#8217;une intense frénésie de &#8220;bénévolisme&#8221; (oui je néophyse, c&#8217;est tellement drôlastique et puis comme ça, on ne peux plus me reprocher de fautoyer :p) vous pouvez donner un coup de pouce au projet de plusieurs façons :</p>
<p><strong>Les donations :</strong> faire une donation permet de montrer votre intérêt engagé pour le projet, de motiver fichtrement son auteur mais aussi et surtout de me permettre l&#8217;achat de composants pour alimenter ma rubrique de domotique façon &#8220;do it yourself&#8221; et enfin de contribuer aux heures passées dans le code à améliorer la plateforme au lieu de me faire laminer sur league of legend.</p>
<p><strong>Les plugins :</strong> Si vous vous y connaissez un ptit peu en php, c&#8217;est un excellent moyen de contribuer à l&#8217;amélioration de la plateforme.</p>
<p>En proposant un plugin vous pourrez ajouter des fonctionnalités vocales, graphiques et domotiques à yana, enrichir la plateforme et personnaliser votre domotique.</p>
<p>Nul besoin de grosses connaissances, la creation de plugin est documentée ici : <a href="http://projet.idleman.fr/yana/?page=Cr%C3%A9ation%20Plugin">http://projet.idleman.fr/yana/?page=Cr%C3%A9ation%20Plugin</a></p>
<p>N&#8217;hésitez pas à vous appuyer sur les plugins existants pour construire votre brique.</p>
<p><strong>Création d&#8217;interface</strong> : Si vous avez développé une interface (comme novares l&#8217;a fait pour android ou moi même pour windows), n&#8217;hésitez pas à la proposer !</p>
<p>Je suis disponible par mail pour toutes question concernant le protocole JSON à utiliser (un peu de doc existante sur <a href="http://projet.idleman.fr/yana">projet.idleman.fr/yana</a>).</p>
<p>La création d&#8217;interfaces est assez technique et doit être maintenue aussi n&#8217;hésitez pas à demander conseil à novares ou à moi même sur le sujet.</p>
<p><strong>Communiquer :</strong> Si vous êtes blogueur, journaliste spécialisé, ou simple acharné des forums, n&#8217;hésitez pas à parler de yana autour de vous, plus la communauté sera importante, plus le projet vivra et évoluera vite.</p>
<p>Bon voila, j&#8217;ai fait ma part de comm&#8217; du mois là ! Et puis c&#8217;est l&#8217;heure de l&#8217;apero de toute façon ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" />  Si vous avez des questions sur cette partie n&#8217;hésitez pas à blinder les commentaires de manière a ce que je centralise mes réponses sur ce sujet.</p>
<p>Un grand merci à Rémi Sarrailh aka Maditnerd qui m&#8217;aide énormément sur le projet, sur github et un peu partout ou je galère en règle générale :), il a carrément la palme du contributeur puisque sur tous les moyens de contribuer que je viens de vous citer, je crois qu&#8217;il n&#8217;y a que la création d&#8217;interface qu&#8217;il n&#8217;ai pas proposé (et encore je n&#8217;en suis pas certain), ça fait plaisir de trouver des perles comme ça sur le web, ça motive à aller plus loin, plus vite, et dans plus de directions.</p>


feed_id: http://blog.idleman.fr/?p=3653
title: Le bordel de l’info #29
uri: Le-bordel-de-l-info-29
url: http://blog.idleman.fr/le-bordel-de-linfo-29/
content:
<p>Salut bande de putois neurasthéniques !! Vous en avez dl’a chance !! A l’heure ou l’on à enfin trouvé un moyen de <a href="http://photomichaelwolf.com/#tokyo-compression/1">zipper</a> les japonais à l’heure de pointe, à l’heure ou l’ou se pose enfin la question cruciale “que faire pour arrêter de brancher l’<a href="http://www.blog-nouvelles-technologies.fr/archives/46654/nayez-plus-crainte-de-brancher-votre-cable-usb-dans-le-mauvais-sens/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+design-folio+%28Web%2C+Nouvelles+technologies%2C+Mobile%2C+D%C3%A9veloppement+%E2%80%A6%29">usb dans ce putain de mauvais sens</a>?” Bref à l’heure ou <a href="http://www.gizmodo.fr/2014/04/04/dark-vador-ukraine.html">Darth Vader se présente</a> avec ses storm troopers pour la présidentielle d’ukraine, vous êtes peinard dans votre ascenseur muni de <a href="http://www.fredzone.org/airbulb-ampoule-connectee-haut-parleur-640">votre nouvelle lampe bulbe</a> que vous ne quittez jamais (comme on vous comprends) à vous payer une 29èm plâtrée de diarrhée verbale sur ce nouveau bordel de l’info ! (oui, le samedi, c’est fleuri).</p>
<p><span id="more-3653"></span></p>
<p>Comme d’habitude, un sacré retard de bordel sur l’idleblog ! Mais ne vous en faites pas j’ai ait un tri sur le volet, je vous garantis du 100% inutile.</p>
<ul>
<li><a href="http://www.journaldugeek.com/2014/04/04/le-hobbit-version-16-bits">Bilbo le hobbit résumé en 16 bits</a>, on en viendrait presque à souhaiter que le jeux sorte vraiment, je suis un peu nostalgique de ces graphismes et du coté isométrique, ça provoquait des crises d’épilepsies mais mettait tout de suite de l’ambiance</li>
<li><a href="http://www.journaldugamer.com/2014/04/04/xbox-one-enfant-cinq-ans-il-contourne-le-systeme-de-securite-de-la-xbox-one/">Le contrôle parental</a>  de la xbox microsoft piraté par un enfant de 5 ans, je connais un dev qui à du se sentir très seul sur le coup.</li>
<li>Une application smartphone pour faire votre valise vous trouvez ça con ? Moi oui, mais à la <a href="http://graphism.fr/ne-faites-votre-valise-il-une-application-pour">lecture du truc</a> il s’avère que c’est plutôt bien foutu, ça vas déduire en fonction de la météo, du type de voyage (pro/perso), de la destination etc les affaires dont vous aurez réellement besoin et celles qu’il ne faut surtout pas oublier.  Dommage qu’il faille télécharger/installer une app pour ça, le départ en voyage étant occasionnel et ponctuel un site web aurait suffit.</li>
<li>Voila un programme en python capable de traiter un <a href="http://korben.info/utiliser-la-syntaxe-sql-sur-des-fichiers-csv.html">fichier csv à partir de requêtes SQL</a>, je me le garde sous le coude c’est extrêmement intéressant surtout pour migrer les données des clients (souvent au format excel) vers nos nouvelles applications (souvent fonctionnant avec une base sql).</li>
<li>Un <a href="http://enjoycss.com/code/#transition">générateur de css3</a> un peu poussé, pas sûr que ça soit révolutionnaire mais ça donne une bonne idée de ce qui est faisable en css aujourd’hui quel que soit l’élément sur lequel vous souhaitez intervenir.</li>
<li><a href="https://github.com/sdelements/lets-chat">Voila un petit salon de chat</a> self hosted pour les équipes réduites qui m’a l’air prometteur, fonctionne avec des message persistants, l’upload de fichiers en drag &amp; drop est possible l’interface est simple mais pas dégueulasse, fonctionne avec des techno récentes (nodeJs et mongo db) à tester rapidement <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/986bf9a6.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/wlEmoticon-smile.png" />.</li>
<li>Une <a href="http://bootflat.github.io/">librairie type boostrap</a> 100% orientée flat design, le prochain projet je le teste la dessus <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/986bf9a6.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/wlEmoticon-smile.png" /></li>
<li>L’idlegirl bosse sur la nourriture de demain, je lui ai promis de glisser un mot sur le blog pour proposer aux lecteurs <a href="https://docs.google.com/forms/d/1fT5wDshx9u-PrnoamaeQ-RvCiORKROFsC05yxsdeafU/viewform">de remplir son sondage</a>, a vot’ bon cœur msieur dame (ps: votez contre le riz bleu, ça fait faire caca).</li>
<li>Quelqu’un à eu l’idée intéressante de proposer un petit soft <a href="https://www.text2mindmap.com/">permettant de transformer une liste</a> indentée(via de simples tabulation) en carte heuristique. Le concept est interessant si vous faites comme moi pas mal de todo list à l’arrache sur un coin de bloc note et que vous souhaitez une vue plus globale de la montagne de trucs qu’il vous reste à faire <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" alt="Sourire" src="media/986bf9a6.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/wlEmoticon-smile.png" /></li>
<li>En parlant de notes voila un ptit script qui se présente comme l’alternative <a href="https://laverna.cc/">open source à evernote</a> (bon c’est un peu exagéré au regard de ses fonctionnalités mais ça reste une option intéressante pour les puristes du self hosted comme moi.</li>
<li>Le droit de vote ne suffit pas à  définir une démocratie <a href="http://lehollandaisvolant.net/?d=2014/03/21/14/12/36-juste-pour-rappel">selon le hollandais volant</a>, j’ajouterais la reflexion que je me suis faite aux dernières élections : oui surtout lorsqu’on vote inutile au premier tour, et pour le moins horripilant des deux couillons qui restent au second tour, donc on n’a un choix non pris en compte la première fois, et un choix limité a deux options aux antipodes de notre façon de penser au second tour… et ceci tous les 5 ans uniquement. Effectivement la notion de démocratie dans ce système est toute relative.</li>
<li>Si vous ne savez pas quoi faire avec votre fiston par un bel après midi pluvieux ne cherchez plus : <a href="http://www.semageek.com/diy-fabriquer-simplement-un-petit-moteur-educatif/">apprenez lui à construire son propre moteur</a> avec trois bout de ficelle et un trombones à la mac gyver (votre fiston n’aura surement plus cette référence, pourtant indispensable mais bon vous pouvez dévier sur du totally spies ça marche aussi…)</li>
<li>Le <a href="https://github.com/marmelab/gremlins.js">système gremlins.js</a> vous permet de simuler une armée de singes fou effectuant très rapidement quantité d’actions aléatoires sur votre site web pour vérifier qu’il est à toute épreuve, j’aime beaucoup ces systèmes aléatoires, souvent très efficaces, si quelqu’un à eu l’occase de test la librairie je suis intéressé par un retour (info via korben).</li>
<li><a href="http://dribbbox.com/">Dribbbox</a> vous propose un système de portfolio open source auto hébergé, j’attends de voir ce que ça donne sur des images un peu plus grosses que l’exemple, des vidéos etc… mais il faut saluer toute nouvelle initiative dans ce domaine.</li>
<li><a href="https://chat.echoplex.us/">Echoplexus est un logiciel open source</a> permettant le chat IRC, le partage de dessin, l’édition de code en ligne et les appel téléphoniques, le tout sécurisé au maximum (PGP, https etc…) ça m’a l’air fichtrement complet comme biniou, dommage, pas très documenté comme la plupart de ce genre de projets.</li>
</ul>


feed_id: http://blog.idleman.fr/?p=3664
title: PokiPoki : un wrapper bureautique pour le PHP
uri: PokiPoki-un-wrapper-bureautique-pour-le-PHP
url: http://blog.idleman.fr/pokipoki-un-wrapper-bureautique-pour-le-php/
content:
<p>Salut la jeunesse !! <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/215f011f.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/wlEmoticon-openmouthedsmile.png" /></p>
<p>Je profite de ce week end strictement pourri et  de la belle gueule de bois qui me cloue devant le pc pour partager l’un de mes petits projets stupides avec vous :  j’ai nommé pokipoki !</p>
<p><span id="more-3664"></span></p>
<h1>PokiPoki c’est quoi ?</h1>
<p>PokiPoki est un programme en C++ vous permettant de transformer n’importe quel script PHP/site Web, et autres joyeuseté en html5/css3/JavaScript etc… en application bureautique et ce de manière complètement transparente :</p>
<p><a href="media/ac2084be.image.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/image.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/f700a14d.image_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/image_thumb.png" width="552" height="484" border="0" /></a></p>
<h1>Quel est l’intérêt ?</h1>
<p>Les intérêts d’une transformation de script web en application bureautique sont multiples :</p>
<p>- Plus besoin de connaissances particulières pour développer en bureautique en dehors des langages web courants</p>
<p>- Possibilité de porter un script habituellement hébergé par un serveur en locale</p>
<p>- Plus besoin du net pour accéder au script</p>
<p>- Possibilité d’interagir avec le bureau (modifier des clé de registres, notifier dans la barre d’icone, démarrer avec le système d’exploitation, manipuler des fichiers, exécuter des commandes systèmes etc…)</p>
<p>- Possibilité de pousser l’interface graphique du programme bureautique avec un peu de css</p>
<p>etc..etc..</p>
<h1>Ok mais quels avantages par rapport à un wamp ou un easy PHP?</h1>
<p>Premièrement le programme est gratuit, portable, sans installation et exécutable/compilable sur windows, linux et macOs.</p>
<p>Le programme propose d’afficher le script de manière totalement transparente, aucune possibilité de faire la différence avec un programme bureautique standard</p>
<p>Tout est personnalisable à l’aide d’un fichier de configuration json et d’une librairie javascript spéciale : possibilité d’intervenir sur la fenêtres (bordure par défaut ou non,transparence, déplacement, modification de taille, de titre, d’icones, splash screen personnalisé …).</p>
<p><a href="media/898a91e4.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/image1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" alt="image" src="media/1570ee02.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/image_thumb1.png" width="328" height="229" border="0" /></a></p>
<p>Possibilité d’utiliser certaines fonctions du bureau a partir d’une librairie javascript intégrée (ex App.notify(‘hello world’) affichera une notification sur le bureau etc.</p>
<p>Le programme utilise un serveur lighttpd pour fonctionner ce qui le rend rapide et peu consommateur de ressources.</p>
<p>PokiPoki est environ 5 fois plus léger qu’un Wamp traditionnel et respecte une structure claire qui permet simultanément de bien séparer le code web de pokipoki et de personnaliser la partie serveur selon vos besoin.</p>
<p>Par défaut le package ne contient pas MySQL (qui est lourd, consommateur de ressources, long à lancer et peu pertinent sur une application bureautique, utilisez plutôt sqlite ou autres) cependant il est possible d’ajouter le dossier mysql à la racine du programme si vous souhaitez qu’il se lance automatiquement avec ce dernier.</p>
<p>Un binaire pour windows est déjà dispo, un binaire linux ne devrait pas tarder (une fois que j’aurais réinstallé ma VM) en revanche pour MacOs j’aurais besoin d’une âme charitable pour compiler car je ne possède pas de Mac.</p>
<p>&nbsp;</p>
<p>Page projet, doc et téléchargement :  <a title="http://projet.idleman.fr/pokipoki/" href="http://projet.idleman.fr/pokipoki/">http://projet.idleman.fr/pokipoki/</a><br />
N&#8217;hésitez pas à consulter<a href="http://projet.idleman.fr/pokipoki/?page=Tutoriel+pour+commencer"> cette page </a>pour bien commencer.</p>
<p>Bien à vous <img class="wlEmoticon wlEmoticon-smilewithtongueout" style="border-style: none;" alt="Tire la langue" src="media/862841bd.wlEmoticon-smilewithtongueout.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/04/wlEmoticon-smilewithtongueout.png" /></p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=3702
title: Lecteur, j’ai besoin de ton avis…
uri: Lecteur-j-ai-besoin-de-ton-avis
url: http://blog.idleman.fr/lecteur-jai-besoin-de-ton-avis/
content:
<p>Salut les ptits mecs !! (et les mectonnes !! :D)</p>
<p>En attendant la refonte de mon labo, la seconde partie de ma porte domotique et un légendaire coup de motivation pour la rédaction de mon prochain bordel de l&#8217;info je me suis dit que je pouvais peut être vous occuper avec un ptit formulaire de sondage totalement innocent (ou pas) histoire de me faire une idée sur la faisabilité de certaines choses, notamment concernant les tutos domotiques.<br />
<span id="more-3702"></span><br />
Si vous pouviez me donner votre avis la dessus (très rapide, sans inscription et sans blabla) ça serait tip top moumoute !</p>
<p><strong>Le questionnaire est ici :</strong></p>
<p><a href="https://docs.google.com/forms/d/1omuAhvA_mg-r9eqi1JO_HUE-SHIIGhLhRgy1riw4j5k/viewform">https://docs.google.com/forms/d/1omuAhvA_mg-r9eqi1JO_HUE-SHIIGhLhRgy1riw4j5k/viewform</a></p>
<p>n&#8217;hésitez pas à me faire vos commentaire plus bas au cas ou la rigidité du google form vous aurait frustré :).</p>
<p>Bien à vous mes ptit poulets !<br />
Idle</p>


feed_id: http://blog.idleman.fr/?p=3706
title: Snippet #25 ~ PHP: Intégrez une base de donnée dans votre fichier unique d’exécution
uri: Snippet-25-PHP-Intégrez-une-base-de-donnée-dans-votre-fichier-un
url:
http://blog.idleman.fr/snippet-25-php-integrez-une-base-de-donnee-dans-votre-fichier-unique-dexecution/

content:
<p>Voila un ptit snippet que vous n&#8217;aurez l&#8217;occasion d’expérimenter que dans de très rares cas de figures mais qui révèle une particularité significatif du PHP, à savoir sa capacité à se réécrire lui même.</p>
<p><span id="more-3706"></span></p>
<p>En effet le PHP étant un langage interprété la source du script peut être réécrite en cours d’exécution sans que cela pose le moindre problème.</p>
<p>C&#8217;est ce petit exercice que je vous propose avec ce snippet qui permet d&#8217;utiliser le fichier PHP en tant que sa propre base de données.</p>
<p>C&#8217;est à dire que la bas est stockée dans le fichier lui même sous forme compressée.</p>
<p>Dans cette exemple on utilise simplement le snippet pour lire sa base de donnée intégrée, l&#8217;afficher, et y sauvegarder un nouveau &#8220;hello world&#8221;<br />
à chaque exécution de la page.</p>
<p><strong>utilisation :</strong><br />
db() : retourne la base de donnée sous la forme d&#8217;un tableau php (lecture)<br />
db($array) : remplis la base de donnée a partir d&#8217;un nouveau tableau php (écriture)</p>
<p>La base de données est stockée physiquement sous forme compressée dans la variable $database.</p>
<p><strong>Les avantages :</strong><br />
- Ce type de snippet est très utilisé dans les scripts dit &#8220;mono fichiers&#8221; a savoir qui contiennent tout leurs code logiciel dans un seul fichier, ceci permet de rendre le script plus simple à installer/migrer.<br />
- La base étant compressée à l&#8217;aide de gzinflate/deflate, elle peut contenir un grand nombre d&#8217;informations sans prendre trop de poids<br />
- La base étant transportée sous forme de json est de tableau PHP, sa structure est dynamique (donc plus souple, mais c&#8217;est autant un inconvénient qu&#8217;un avantage si vous ne mettez pas en place certains garde fous).</p>
<p><strong>Les inconvénients :</strong><br />
- il est nécessaire de garder la syntaxe exacte &#8220;$database = &#8221;;&#8221; (avec les mêmes espaces etc&#8230;)<br />
- La base étant compressée à l&#8217;aide de gzinflate/deflate, certains caractères spéciaux vont apparaitre dans la variables $database qui risquent de vous empêcher les copier/coller et/ou les modifications de fichiers avec certains encodages</p><pre class="crayon-plain-tag">&lt;?php

//On ouvre la base de donnée sous forme de tableau
$db = db();
//on ajoute quelques données et on affiche la base
@$db['entries'][] = 'hello world '.count(@$db['entries']);
var_dump($db);
//on enregistre la base
db($db);

//A partir d'ici, ne touchez à rien ou tout explose.

//Base de donnée json compressée
$database = '';
//fonction de gestion de base de donnée intégrée
function db($d=false){
    $s = file_get_contents(__FILE__);
    if(!$d){
        preg_match_all('/\$database = \'(.*?)\';/s', $s, $result, PREG_PATTERN_ORDER);
        return $result[1][0]==''?array():json_decode(gzinflate($result[1][0]),true);
    }else{
        file_put_contents(__FILE__,preg_replace('/\$database = \'(.*?)\';/s', '$database = \''.gzdeflate(json_encode($d)).'\';', $s));
    }
}
?&gt;</pre><p>D&#8217;une manière générale cette façon de stocker les données &#8216;en intégré&#8217; est déconseillée, il est préférable d&#8217;utiliser un vrai <a href="http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es">sgbd </a>clairement distinct du code d’exécution.</p>
<p>Cependant dans le cas de programmes ayant besoin d&#8217;être léger en poids et en nombre, portable, et qui ne nécessitent pas de stocker un<br />
trop grand nombre de données, ce petit snippet peut faire l&#8217;affaire.</p>


feed_id: http://blog.idleman.fr/?p=3719
title: Fenix, un gestionnaire de serveur web pour les noobs
uri: Fenix-un-gestionnaire-de-serveur-wb-pour-les-noobs
url: http://blog.idleman.fr/fenix-un-gestionnaire-de-serveur-wb-pour-les-noobs/
content:
<p>Nginx, Apache, Lighttpd … ces mots ne vous disent rien ?  Vous ne voulez pas mettre le nez la dedans ?</p>
<p>Mais sans installer/héberger/configurer tous ces serveur http vous souhaitez tout de même partager vos fichiers simplement sur le web ?</p>
<p>Alors vous serez conquis par <a href="http://fenixwebserver.com/">Fenix</a> : un programme simple, multi OS, permettant de créer en deux clic un serveur web sur le dossier de votre choix, de lui attribuer un port et de le gérer via une petite interface stylée.</p>
<p><span id="more-3719"></span></p>
<p>Typiquement : vous lancez le programme, cliquez sur webserver –&gt; new –&gt; donnez un nom, un port, et un dossier local à publier et c’est bon <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-style: none;" alt="Rire" src="media/be605a0f.wlEmoticon-openmouthedsmile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/06/wlEmoticon-openmouthedsmile.png" /></p>
<p><a href="media/2b8668af.image.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/06/image.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/dd1843e3.image_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/06/image_thumb.png" width="290" height="436" border="0" /></a></p>
<p>Une fois votre serveur ajouté (et démarré) tapez votre adresse ip dans un navigateur suivis du port que vous avez choisis et hop !</p>
<p><a href="media/b76d4058.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/06/image1.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border: 0px;" title="image" alt="image" src="media/1c76f3d8.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/06/image_thumb1.png" width="548" height="253" border="0" /></a></p>
<p>Alors oui ce programme n’est pas une révolution, mais c’est une bonne base pour un gestionnaire de partage simplifié des dossiers/fichiers avec vos potes/familles.</p>
<p>Le gros avantage du soft étant qu’il est développé avec nodejs, les sources sont donc modifiable en javascript/html/jade etc…</p>
<p>Il est possible de modifier l’interface, les fonctionnalités et tout le reste étant donné que c’est plus ou moins un site web wrappé dans un conteneur bureautique (nodeWebkit donc nous parlerons prochainement dans nos tuto nodeJs).</p>
<p>notez que si vous voulez publier ces infos en dehors de votre réseau il faudra utiliser votre ip public (ou ip WAN) que vous pouvez trouver via des sites comme <a title="http://www.mon-ip.com/" href="http://www.mon-ip.com/">http://www.mon-ip.com/</a></p>
<p>Il faudra également débloquer le port que vous utiliserez pour votre serveur sur votre panel de box internet.</p>
<p>Bien a vous,</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=3736
title: eZ Server Monitor, un monitoring simple et léger pour vos machines linux
uri: eZ-Server-Monitor-un-monitoring-simple-et-léger-pour-vos-machines-li
url: http://blog.idleman.fr/ez-server-monitor-un-monitoring-simple-et-lger-pour-vos-machines-linux/
content:
<p>Voila un petit script sans prétention qui mérite d’être cité tant il est simple d’utilisation comme de mise en place (je vous l’accord le nom ne donne pourtant pas cette impression).</p>
<p><span id="more-3736"></span></p>
<p>Ez server monitor est un script développé pour deux version : bash ou web (php) permettant comme son nom l’indique de monitorer à l’aide d’une jolie dashboard, les points importants de votre machine linux.</p>
<p><a href="media/2a9c52b0.esm-web_dashboard-complete.min_.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/esm-web_dashboard-complete.min_.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="esm-web_dashboard-complete.min_" src="media/116822d4.esm-web_dashboard-complete.min__thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/esm-web_dashboard-complete.min__thumb.png" alt="esm-web_dashboard-complete.min_" width="488" height="452" border="0" /></a></p>
<p>Mémoire, services, users, disques, processeur, réseau… tout y passe l’interface web est plutôt agréable à l’œil, et l’interface bash n’est finalement pas aussi dégueu qu’on pourrait s’y attendre voir même fichtrement lisible.</p>
<p><a href="media/03e7b991.esm-sh_dashboard-complete.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/esm-sh_dashboard-complete.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="esm-sh_dashboard-complete" src="media/eb23163d.esm-sh_dashboard-complete_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/esm-sh_dashboard-complete_thumb.png" alt="esm-sh_dashboard-complete" width="492" height="593" border="0" /></a></p>
<p>Une belle solution à tester sur un rpi par exemple…</p>
<p><strong>Esm web</strong> : <a title="http://www.ezservermonitor.com/esm-web/features" href="http://www.ezservermonitor.com/esm-web/features">http://www.ezservermonitor.com/esm-web/features</a></p>
<p><strong>Esm  bash</strong> :  <a title="http://www.ezservermonitor.com/esm-sh/features" href="http://www.ezservermonitor.com/esm-sh/features">http://www.ezservermonitor.com/esm-sh/features</a></p>
<p>&nbsp;</p>
<p>Bonne fin de week end <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="media/7083ab2d.wlEmoticon-smile.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/wlEmoticon-smile.png" alt="Sourire" /></p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3751
title: Raspberry PI ~ 23 : Créer une porte domotique (Partie 2)
uri: Raspberry-PI-23-Créer-une-porte-domotique-(Partie-2)
url: http://blog.idleman.fr/raspberry-pi-23-creer-une-porte-domotique-partie-2/
content:
<p>Ce post est le vingt troisième d’une liste de tutoriels sur le raspberry PI et l’arduino,<a href="http://blog.idleman.fr/?page_id=2166"> cliquez ici</a> pour accéder au sommaire ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" /></p>
<p>Salut bande de bras cassés syndiqués !!</p>
<p>Vu le temps j’espère que vous glandez sur les plages de rio (ou au minimum dans un petit bar à tapas de lacanau) mais je vais quand même tenter ma chance d’attraper un ou deux lecteurs désœuvrés pour la lecture de ce 23em tuto.</p>
<p><span id="more-3751"></span></p>
<p>Aujourd’hui nous allons reprendre notre porte bluetooth du tuto 22 et en faire une vrai porte domotique.</p>
<p>Pour cela il vas nous falloir faire communiquer l’arduino de la porte et le raspberry pi de manière simple, rapide et sécurisée (on parles d’une porte, donc évitons qu’elle ne s’ouvre trop souvent ou pour de mauvaises raisons).</p>
<p>Une fois la porte relié à yana, tout devient possible :</p>
<ul>
<li>Génération de clés par utilisateur sur l’interface yana (et non une clé unique en dur dans le code de l’ardui)</li>
<li>Génération d’un historique des entrées sur l’interface yana</li>
<li>Création de code limités dans le temps ou le nombre d’utilisation ou utilisable uniquement certains jours (par exemple pour la femme de ménage ou le voisin qui viens nourrir les poissons)</li>
<li>Déclenchements de scénarios en fonction de la personne qui entre</li>
<li>etc..etc… tout deviens possible c’est une simple question de code de plugins.</li>
</ul>
<p>Commençons par le traditionnel quart d’heure de honte (8 min en fait).<br />
<iframe width="500" height="281" src="//player.vimeo.com/video/101955210" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe></p>
<p>Dans la vidéo je suis un peu vague sur le &#8220;pourquoi ça marche dans un sens pas dans l&#8217;autre&#8221; il faut dire que c&#8217;est assez vague pour moi également (<del>et aussi que je m&#8217;en fou un peu tant que j&#8217;arrive à mes fins <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></del> ).</p>
<p>Le rpi accepte au maximum du 3.3v sur ses pins, or l&#8217;ardui envoi du 5v, pour faire communiquer les deux il faudrait donc normalement utiliser un convertisseur i2c (qu&#8217;on peux voir sur ma vidéo mais qui n&#8217;est pas obligatoire grâce a notre montage) mais une histoire de résistance de pull up manquante d&#8217;un côté permet de faire communiquer du rpi vers l&#8217;arduino sans qu&#8217;il n&#8217;y ai de dégâts (j&#8217;ai testé pour vous :p)</p>
<p>Je parle également vite fait de &#8220;channels&#8221; j&#8217;ignore si c&#8217;est le terme en vogue, en gros c&#8217;est une adresse de communication choisie (dans ce tuto 0x12) qui permet de superposer plusieurs communications sur des adresse différentes, le rpi peut ainsi communiquer avec plusieurs portes en communiquant sur le canal de chacune.</p>
<h2>Le matériel</h2>
<p>Le matériel est le même que pour le tuto précédent, il vous faut bien entendu votre porte (avec son atmega328 ou son arduino inclus) un rpi à brancher à votre porte et trois fils électriques standard (de préférence un bleu, un vert et un noir), c&#8217;est tout.</p>
<h2>Le montage</h2>
<p>Encore une fois, le branchement est similaire au tuto précédent, il vous faudra simplement relier le port I2C du raspberry PI au port I2C de l&#8217;arduino.</p>
<p>Comme je suis une grosse quiche, il se peut que j&#8217;ai inversé le sda et le scl sur le rpi, si c&#8217;est le cas, n&#8217;hésitez pas à intervertir (ça n&#8217;explosera pas dans tout les cas, au pire ça ne communiquera pas)</p>
<p><strong>Pour cela suivez le schéma suivant :</strong></p>
<p><a href="media/0ebbd9d5.Untitled-Sketch-2_bb_faux.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/Untitled-Sketch-2_bb_faux.png"><img class="aligncenter wp-image-3757 size-large" src="media/21e42f9c.Untitled-Sketch-2_bb_faux-1024x753.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/07/Untitled-Sketch-2_bb_faux-1024x753.png" alt="Untitled Sketch 2_bb_faux" width="625" height="459" /></a></p>
<h2>Le code du raspberry PI</h2>
<p>Avant de mettre en place le code pour le rpi, il y a quelques manipulation à faire pour &#8220;activer&#8221;<br />
la gestion i2c sur le rpi (désactivée par défaut, certainement pour un gain de perfs).</p>
<p>Ouvrez le fichier /etc/modprobe.d/raspi-blacklist.conf en édition</p>
<p><strong>nano /etc/modprobe.d/raspi-blacklist.conf</strong><br />
commentez la ligne<br />
<strong>blacklist i2c-bcm2708<br />
</strong>en placant un # devant</p>
<p>Enregistrez et fermez ce fichier, puis ouvrez le fichier /etc/modules<br />
<strong>nano /etc/modules<br />
</strong><span style="line-height: 1.714285714; font-size: 1rem;">ajoutez y la ligne<br />
</span><strong>i2c-dev</strong></p>
<p>Fermez et enregistrez, installez ensuite l&#8217;utilitaire i2c<br />
<strong>apt-get install i2c-tools</strong><br />
et enfin relancer votre rpi avec la commande<br />
<strong>reboot</strong></p>
<p>Mettez a jour votre yana, le plugin se trouve en natif dans le script</p>
<p>Puis dans l&#8217;interface web yana, allez dans configurations&#8211;&gt;pluging&#8211;&gt;activez le plugin</p>
<h2>Le code de l’arduino</h2>
<p>Comme d&#8217;habitude, branchez l&#8217;arduino (ou l&#8217;atmega) au pc et transférez via l&#8217;IDE arduino <a href="http://blog.idleman.fr/wp-content/uploads/2014/07/porte.txt">le code suivant</a> sur la puce.</p>
<h2>L’application android</h2>
<p>L&#8217;application android est <del>un peu</del> excessivement merdoyante, c&#8217;est toujours la même et je n&#8217;ai pas eu le temps de la débugger,<br />
elle est dispo ici :<br />
<a href="http://idleman.fr/ressources/ANDROID/YanaBluetooth.apk">http://idleman.fr/ressources/ANDROID/YanaBluetooth.apk</a></p>
<h2>L&#8217;utilisation :</h2>
<p>Dans votre application androïde, allez dans &#8220;configuration&#8221;, mettez un code à 4 chiffres/lettres de votre choix<br />
Vérifiez que le nom du périphérique correspond bien a celui de la carte bluetooth votre porte<br />
Vérifiez que la carte bluetooth de votre porte (normalement &#8220;bolutek&#8221; est bien enregistrée dans vos périphériques bluetooth<br />
(si la première fois la carte vous demande un code, c&#8217;est généralement 1234 ou 0000).</p>
<p>Ouvrez le plugin domodoor dans le menu des configurations, et ajoutez un utilisateur à la porte (si vous voulez ajouter un autre utilisateur a la porte, il faudra d&#8217;abord l&#8217;ajouter aux utilisateurs généraux de yana)<br />
et attribuez le même code à 4 chiffre à l’utilisateur que celui que vous avez sur votre téléphone.</p>
<p>Vérifiez que votre montage est bon et qu&#8217;il est sous tension</p>
<p>lancez la commande :<br />
<strong>sudo python /var/www/yana-server/plugins/domodoor/i2c.py</strong></p>
<p>Testez en lançant l&#8217;application android.</p>
<p>Par la suite, il peux être bon de lancer automatiquement le programme <strong>/var/www/yana-server/plugins/domodoor/i2c.py</strong> en tache de fond au démarrage, pour cela vous pouvez utiliser les <a href="http://doc.ubuntu-fr.org/cron">CRON </a>(taches planifiées) de linux, ou encore créer un petit script dans /etc/init.d<br />
(cf la doc d&#8217;ubuntu par exemple).</p>
<p>Comme je suis un type fichtrement cool je vous donne même le script pour lancer ça au démarrage</p>
<p>tapez</p>
<p><span style="color: #666666;">sudo nano /etc/init.d/domodoor</span></p>
<p>Dedans, ecrivez votre commande :</p>
<p><strong>#!/bin/sh</strong><br />
<strong>python /var/www/yana-server/plugins/domodoor/i2c.py</strong></p>
<p>Enregistrez/fermez (ctrl+x puis &#8220;y&#8221;)</p>
<p>Rendez le script executable</p>
<p><strong><span style="color: #666666;">sudo chmod +x /etc/init.d/domodoor</span></strong></p>
<p>Ajoutez le script au boot</p>
<p><strong><span style="color: #666666;">sudo update-rc.d domodoor defaults 80</span></strong></p>
<p>Le programme se lancera maintenant à chaque démarrage.</p>
<p>Notez bien que seul l&#8217;utilisateur &#8220;root&#8221; a le droit d&#8217;utiliser l&#8217;i2c, vous devrez donc lancer le programme i2c.py avec l&#8217;utilisateur root au démarrage.</p>
<h2>Explications sur le fonctionnement</h2>
<p>Lors de son lancement, le programme (en python car il existe une très bonne librairie sous ce langage pour gérer l&#8217;i2c et aussi parce que je me suis fait engueuler par les pro-python comme quoi j&#8217;était un sale sectaire de communiste droggué du PHP <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ) i2c.py lance une boucle qui, toutes les 0.5 secondes vas interroger l&#8217;arduino en lui envoyant le texte &#8220;ping&#8221;, si il reçoit un numero de badge, il lance un fichier php du plugin yana.</p>
<p>Le fichier php  vas verifier dans la base de donnée si le code existe pour un utilisateur, si c&#8217;est le cas il vas tracer l&#8217;entrée dans le log, puis ils retourne la réponse (code coorecte ou pas) au script python.</p>
<p>De son coté l&#8217;arduino interroge en temps réel le capteur blutooth,  si un téléphone se connecte au capteur et lui envois un code, l&#8217;arduino vas stoquer ce code dans une file d&#8217;attente de &#8220;badge a verifier&#8221; et retournera ce code lors du prochain &#8220;ping&#8221; du script python.</p>
<p>Si le script python lui retourne une commande d&#8217;ouverture, l&#8217;arduino vas ouvrir un certain temps (2/3 secondes) son pin relié au relais (qui vas donc s&#8217;ouvrir aussi) ce qui coupe l&#8217;alimentation de la gâche électrique et qui déverrouille la porte.</p>
<h2>Les améliorations</h2>
<p>L&#8217;essentiel des améliorations a faire maintenant se situe du coté de l&#8217;appli android, celle ci étant un peu bugguée et pas encore très pertinente.</p>
<p>L&#8217;idéal serait qu&#8217;elle inclue un &#8220;timer&#8221; qui se connecte au bluetooth une fois par minute, cherche sur le périphérique de la porte est disponible, et ouvre la porte automatiquement si c&#8217;est le cas.</p>
<p>On ouvre qu&#8217;une fois la porte afin d’éviter qu&#8217;elle s&#8217;ouvre non stop qu&#8217;on on est dans l&#8217;appart, mais on continue a checker toutes les minutes la présence de la porte.</p>
<p>Si la porte est indisponible pendant plus de 3 min, on part du principe qu&#8217;on est sortis de l&#8217;appart, la prochaine détection de porte l&#8217;ouvrira donc de nouveau.</p>
<p>Le must du must sera aussi d&#8217;ajouter une serrure RFID a la porte en cas de perte du portable ou de portable déchargé, je ferais peut être une troisième<br />
partie la dessus un de ces 4.</p>


feed_id: http://blog.idleman.fr/?p=3785
title: Emmet, integrez à la vitesse du CSS
uri: Emmet-integrez-à-la-vitesse-du-CSS
url: http://blog.idleman.fr/emmet-integrez-a-la-vitesse-du-css/
content:
<p>Je viens de tomber sur un petit outil fichtrement pratique que je tenais à vous faire partager !</p>
<p><a href="http://emmet.io">Emmet.io</a> est un plugin multi os/multi IDE (sublime text, eclipse, coda, notepad++ etc…) permettant de générer en temps réel votre html (indenté, avec les id, les classes etc) directement via de la syntaxe css.</p>
<p><span id="more-3785"></span></p>
<p>Par exemple taper :</p>
<p><pre class="crayon-plain-tag">div.mainBloc&gt;ul#mainmenu.menu&gt;li.item#item-$*4&gt;span{Hello}</pre></p>
<p>Générera le code suivant (en live si il vous plait) :</p>
<p><a href="media/003e13e2.image.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image.png"><img style="display: inline; border: 0px;" title="image" src="media/95a07dac.image_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb.png" alt="image" width="542" height="392" border="0" /></a></p>
<p>Inutile de dire que pour les habitués de la syntaxe CSS, et pour n’importe qui qui possède quelques notions d’intégrations, c’est un moyen simple de générer un code propre et complet 10 fois plus rapidement qu’en temps normal.</p>
<p>Mais ce n’est pas tout ! L’outil propose une dizaines d’autres fonctionnalités tout aussi bien pensées accessibles par quelques raccourcis permettant tout un tas de trucs comme l’encodage en base 64 d’une image, la  récupération de la taille d’une image, le comment d’un bloc d’instruction, etc etc…</p>
<p>Une petite vidéo avec quelques <a href="http://emmet.io/">démo sur le site de l’auteur.</a></p>
<p>En plus d’être bien pensé et ultra ergonomique, l’outil a été porté sur plus de 15 IDE populaires</p>
<p><a href="media/f96f05b7.image1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image1.png"><img style="display: inline; border: 0px;" title="image" src="media/1b6bd1e0.image_thumb1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb1.png" alt="image" width="437" height="384" border="0" /></a></p>
<p>Sans compter les 7 IDE en lignes ou les 11 IDE supplémentaires ajoutés par la communauté.</p>
<p>A adopter rapidement.</p>


feed_id: http://blog.idleman.fr/?p=3802
title: Du nouveau chez YANA
uri: Du-nouveau-chez-YANA
url: http://blog.idleman.fr/du-nouveau-chez-yana/
content:
<p>Voilà quelques jours que je me suis remis sur les avancées de mon serveur domotique gratuit Y.A.N.A.</p>
<p>Pour rappel celui ci se présente sous la forme d’une plateforme PHP modulaire, qui proposent plusieurs interfaces de communication (page web, interface reconnaissance vocale Windows, interface reconnaissance vocale android…)</p>
<p><span id="more-3802"></span></p>
<p>Le but étant bien entendu de gérer tous les ptits modules domotiques que l’on construit <a href="http://blog.idleman.fr/sommaire-raspberry-pi-arduino-domotique-robotique-et-pleins-de-trucs-en-ique/">dans nos tuto sur le sujet.</a></p>
<p>Voilà quelques nouveautés coté serveur et surtout coté client qui devraient pointer leurs nez sous peu:</p>
<p>&nbsp;</p>
<p><strong>Une nouvelle façon de gérer les pièces : le dashboard</strong></p>
<p><a href="media/20693236.image3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image3.png"><img style="display: inline; border: 0px;" title="image" src="media/cb835294.image_thumb3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb3.png" alt="image" width="531" height="397" border="0" /></a></p>
<p>L’onglet “pièces” est voué a disparaitre au profit d’un système de dashboard multiples, c’est a dire qu’il sera possible d’avoir des “pages” de Dashboard par pièces et d’ajouter/supprimer des widgets de plugins par pièces.</p>
<p>Actuellement la Dashboard est en place mais pas encore tout a fait stable (notamment au niveau des déplacements, j’ai du mal a situer le problème).</p>
<p>&nbsp;</p>
<p><strong>Une meilleure gestion des actions/réactions :</strong></p>
<p><a href="media/7b8ee38e.image4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image4.png"><img style="display: inline; border: 0px;" title="image" src="media/07e9eaba.image_thumb4.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb4.png" alt="image" width="451" height="419" border="0" /></a></p>
<p>&nbsp;</p>
<p>Le module de gestion des scénario est voué à évoluer en interface drap &amp; drop ou vous pourrez placer/paramètres des combos d’actions, et leurs effets associés à l’aide de plusieurs contrôles (valeurs de capteurs, phrases prononcées, variables internes, notions de temps etc…)</p>
<p>Le module est déjà créé mais ne pourras fonctionner correctement qu’avec le nouveau client en cours de préparation.</p>
<p><strong>Le fameux nouveau client : Yana4All</strong></p>
<p><a href="media/b8fbc63a.image5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image5.png"><img style="display: inline; border: 0px;" title="image" src="media/58e0704e.image_thumb5.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb5.png" alt="image" width="544" height="497" border="0" /></a></p>
<p>&nbsp;</p>
<p>Je suis repartis sur une nouvelle version du client. Pour rappel le client actuel permet de faire de la reconnaissance vocale sur vos phrases, communique avec yana-server et vous réponds et/ou execute vos ordres.</p>
<p>&nbsp;</p>
<p>Le nouveau client reprendras exactement les mêmes fonctionnalités mais avec tout de même de très grosses différences qui vont permettre plus d’évolutions :</p>
<p>&nbsp;</p>
<p><strong>Adieu C#, bonjour C++</strong></p>
<p>&#8211; Le client ne sera plus en C# (techno Microsoft) mais en C++ avec la librairie QT, de plus les librairies utilisées pour la reconnaissance et la synthèse vocale seront multiples, ce qui permettra</p>
<p>l’installation de yana client sur Windows, Mac et linux (et donc si tout se passe bien, directement sur le rpi pour ceux qui le souhaitent). J’aimerais mettre en place une gestion intelligente et dynamiques des librairies de reconnaissances/synthèse vocale</p>
<p>qui soit capable de switcher en fonction du système, de la connexion au net etc… afin d’avoir la meilleure disponibilité et qualité possible.</p>
<p>&nbsp;</p>
<p><strong>Gestion par sockets</strong></p>
<p>Le client intégrera un serveur socket ce qui permettra au serveur d’envoyer instantanément des commandes (vocales, console ou son) au client.</p>
<p><a href="media/caad67ec.image6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image6.png"><img style="display: inline; border: 0px;" title="image" src="media/3c34d92a.image_thumb6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb6.png" alt="image" width="868" height="469" border="0" /></a></p>
<p>Outre le gain du coté instantané, le client n’aura plus besoin de checker toutes les minutes les événement du serveur, plus de trafic inutile.</p>
<p>Enfin, la possibilité de se connecter à plusieurs clients en simultané est envisagé, cela permettrais d’envoyer un même ordre sur plusieurs interfaces qui utilisent le système</p>
<p>de socket (ex : parler dans deux pièces différente en même temps, parler sur le téléphone quand l’utilisateur n’est pas chez lui, et dans la maison le reste du temps etc…)</p>
<p>&nbsp;</p>
<p><strong>Interface graphique 100% html/css/javascript</strong></p>
<p>Les développeurs web pourront se faire plaisir avec le système de template 100% web en place, tout est modifiable et fonctionne sensiblement sur les mêmes principes que <a href="http://projet.idleman.fr/pokipoki/">PokiPoki </a>en terme de</p>
<p>conteneur bureautique/web.</p>
<p><a href="media/034736f0.image7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image7.png"><img style="display: inline; border: 0px;" title="image" src="media/a1b2a550.image_thumb7.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb7.png" alt="image" width="860" height="443" border="0" /></a></p>
<p>Taille, titre, splashscreen, déplacement, animation etc… vous n’aurez pas à toucher à autre chose que du web, parole d’Idle <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>En passant si vous êtes intégrateur web et que vous souhaitez bosser sur le template “officiel” n’hésitez pas a me contacter, je vous donnerais l’alpha du logiciel permettant de tester/développer le thème en cours.</p>
<p>&nbsp;</p>
<p><strong>Une structure de fichier c++ plus claire :</strong></p>
<p><a href="media/028af2b7.image8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image8.png"><img style="display: inline; border: 0px;" title="image" src="media/b0a36f02.image_thumb8.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/09/image_thumb8.png" alt="image" width="505" height="298" border="0" /></a></p>
<p>Chaque fichier correspond à une fonction particulière, le projet sera plus simple a maintenir, et a adapter a chaque OS</p>
<p>&nbsp;</p>
<p><strong>Une meilleur stabilité</strong></p>
<p>Actuellement le client C# est très instable chez certains utilisateurs, j’en suis conscient, c’est pourquoi je place une priorité sur la stabilité du nouveau logiciel.</p>
<p>Le nouveau client est actuellement 100% stable et beaucoup plus rapide que l’ancien ce qui laisse présager un produit bien plus finit que l’ancien bien que je n’y ai pas encore intégré le plus important : l’ASR.</p>
<p>&nbsp;</p>
<p>Bien à vous.</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=3811
title: ShareX, redevenez maître de votre écran…
uri: ShareX-redevenez-maître-de-votre-écran
url: http://blog.idleman.fr/sharex-redevenez-maitre-de-votre-ecran/
content:
<p>Mazette (j&#8217;adore ce mot) ! Je viens de tomber sur un p&#8217;tit utilitaire de capture/diffusion au poil, il faut que j&#8217;en parle à quelqu&#8217;un &#8230; ça tombe bien vous êtes là ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Il s&#8217;agit de ShareX qui, comme son nom de l&#8217;indique pas, <del>n&#8217;a rien à voir avec l&#8217;industrie du p0rn <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
</del>est un soft tout ce qu&#8217;il y a de plus respectable.<del><br />
</del></p>
<p>ShareX est un petit soft gratuit sous licence GNU/GPL permettant la capture de l&#8217;écran sous forme d&#8217;images ou de vidéo (alors, déçus bande de vicelards ? :p).</p>
<p><span id="more-3811"></span></p>
<p>Les raccourcis touche sont <span style="text-decoration: underline;">évidemment</span> configurable, il est <span style="text-decoration: underline;">évidemment</span> possible de cropper,redimensionner etc.. les images  à travers un logiciel de votre choix,<br />
d&#8217;envoyer le résultat sur ftp,sftp,http upload, ou par mail, ou dans un fichier, ou dans le presse papier blahblahblah &#8230;</p>
<p>Bref les fonctionnalités de bases de ce type de logiciels sont là, pas de grosses nouveautés par rapport à ses très nombreux concurrents, mais ce petit bijoux fait bien d&#8217;avantage</p>
<p><img class="alignnone" src="media/833f3c4f.ShareX_9.3.1_2014-10-10_10-18-47.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/shareX/ShareX_9.3.1_2014-10-10_10-18-47.png" alt="" width="920" height="501" /></p>
<p>Okay au premier abord ça fait un peu peur cette usine à gaz pleine de boutons, et c&#8217;est peut être le seul truc que je peux reprocher au logiciel :</p>
<p>Il en fait beaucoup trop !!!</p>
<p>Chaque menu du screen donne lui même lieu à des sous menu tout aussi flippants, et ce, sur trois niveau oO.</p>
<p>On se sent tout de suite en présence du fameux <em>syndrome du</em> <em>développeur fou</em> qui souhaite intégrer l&#8217;ensemble du monde informatique dans un seul programme et qui perd de vue l&#8217;objectif initial du soft : faire de la capture .</p>
<p>Cependant pour une fois ça ne semble pas peser sur la stabilité ou les performances dudit logiciel, donc pourquoi pas&#8230;</p>
<p>Le plus intéressant dans ce programme, c&#8217;est certainement la quantité impressionnante de services d&#8217;upload sur lequel il peut se greffer.</p>
<p><img class="alignnone" src="media/4a729163.2014-10-10_10-19-22.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/shareX/2014-10-10_10-19-22.png" alt="" width="162" height="807" /></p>
<p>La fonction qui, pardonnez l&#8217;expression,<em> &#8220;déchire sa grand mère l&#8217;impure&#8221;</em>, c&#8217;est le fait de pouvoir carrément ajouter un service d&#8217;upload &#8220;<strong>custom</strong>&#8221; de manière simple et intuitive.</p>
<p>Dans l&#8217;exemple suivant, j’envoie automatiquement, après chaque capture, mon fichier/vidéo/image ou autre directement <span style="text-decoration: underline;">sur un php perso</span> du blog, avec des données contextuelles comme le<br />
titre de la fenêtre ou l&#8217;user connecté (uniquement à des fins de logs).</p>
<p><img class="alignnone" src="media/01dcf204.2014-10-10_10-19-46.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/shareX/2014-10-10_10-19-46.png" alt="" width="804" height="524" /></p>
<p>Ce petit php maison de 10/20 lignes réceptionne le fichier, enregistre ses infos dans ma base, et retourne l&#8217;url public de celui ci à ShareX qui la place gentiment dans mon presse papier.</p>
<p>On peux ajouter a ce service custom autant de paramètre que l&#8217;on souhaite, comme une clé de connexion pour éviter que tout le monde envois des conneries sur mon blog ou encore des paramètres systèmes (nom du pc, nom du user etc&#8230;) <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Si je trouve mon service custom tellement cool que je souhaite le partager, il m&#8217;est possible de l&#8217;exporter au format json :</p><pre class="crayon-plain-tag">{
"Name": "Blog",
"RequestType": "POST",
"RequestURL": "http://mon-blog.fr",
"FileFormName": "file",
"Arguments": {
"windowTitle": "%t",
"processName": "%pn",
"userName": "%un",
"userLogin": "%uln",
"computerName": "%cn",
"width": "%width",
"height": "%height",
"token": "ma-clé-super-complexe-ici"
},
"ResponseType": "Text",
"RegexList": [
"(.*)"
],
"URL": "$1,1$",
"ThumbnailURL": "$1,1$",
"DeletionURL": ""
}</pre><p>Autre truc plutôt cool même si ça commence à ne plus rien avoir à voir avec la capture: la possibilité de dropper un fichier dans la fenêtre pour upload immédiat au serveur</p>
<p><img class="alignnone" src="media/7e1f66d7.2014-10-10_10-23-04.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/shareX/2014-10-10_10-23-04.png" alt="" width="691" height="407" /></p>
<p>Ou encore la possibilité de gérer des actions et des workflow après une action</p>
<p><img class="alignnone" src="media/3d44e882.2014-10-10_10-23-13.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/shareX/2014-10-10_10-23-13.png" alt="" width="397" height="305" /></p>
<p>Si je devais résumer en quelques pour/contre:</p>
<p><strong>Point fort :</strong><br />
&#8211; Hyper configurable via l&#8217;interface et également via des fichiers json pour ceux qui souhaitent<br />
&#8211; Open source (GNU GPL) et gratuit<br />
&#8211; Pluggable a n&#8217;importe quel service d&#8217;upload (même perso)<br />
&#8211; Gère plusieurs types de fichiers (images, texte, vidéos&#8230;)<br />
&#8211; Permet le screencast (vidéo de l’écran)<br />
&#8211; Permet les captures totales, par fenêtres ou zone ciblées<br />
&#8211; Permet l&#8217;upload rapide de fichiers<br />
&#8211; Retourne l&#8217;url du fichier/capture uploadé direct dans le presse papier<br />
&#8211; Discret et bien pensé au niveau des notifications<br />
&#8211; Rapide et stable<br />
&#8211; Portable</p>
<p><strong>Points faible :</strong><br />
&#8211; Ergonomie des années 80, trop de boutons, menu mal placés, bref pas très intuitif et visuellement lourd<br />
&#8211; Beaucoup de fonctionnalités complétement useless comme un générateur de Qr code (wtf oO), une règle, un client ftp etc etc&#8230; ça mériterait une version &#8216;<em>light</em>&#8216; pour les emmerdeurs de mon espèce qui prônent le minimalisme, une version qui se cantonnerait à la capture et à l&#8217;upload, ou au moins un menu de préférence pour dégager les fonctions inutiles.<br />
&#8211; Semble être disponible uniquement pour windows (seul le binaire windows est dispo en téléchargement) et développé en C# avec le framework de crosoft donc peu de chance que ça se porte un jour sur d&#8217;autres Os.</p>
<p>Une bonne surprise à l&#8217;utilisation en tout cas, à essayer rapidement :).</p>


feed_id: http://blog.idleman.fr/?p=3817
title: Un petit “tempêtage” de tête ?
uri: Un-petit-tempêtage-de-tête
url: http://blog.idleman.fr/un-petit-tempetage-de-tete/
content:
<p>Étant donné le nombre de questions à ce sujet dans les commentaires, je me disais qu&#8217;il pourrait être intéressant de profiter de la cohorte d&#8217;experts que j&#8217;ai la chance de compter dans mes lecteurs pour faire un ptit &#8216;tempetage de tête&#8217; (ou brainstorming si vous y tenez) à propos des solutions de reconnaissance/synthèse vocales existantes et applicables dans un projet informatique<br />
(entre autres, yana).<br />
<span id="more-3817"></span><br />
Ça devrait tout du moins me permettre de centraliser un peu mes recherches et constats concernant cette techno encore peu accessible aux gueux que nous sommes malgré les stupéfiants (mais réservés) progrès de google, apple et microsoft en la matière.</p>
<p>Voilà mon &#8220;<strong>état de l&#8217;art</strong>&#8221; sur le sujet (oui, je me la joue académique cette semaine)</p>
<h2>Besoin</h2>
<p>J&#8217;ai besoin d&#8217;une librairie de reconnaissance et de synthèse vocale intégrable dans une solution domotique (yana)<br />
Cette librairie doit être :</p>
<p>1 &#8211; Portable sur 3 minimum : debian (raspbian), windows, macOs<br />
2 &#8211; Illimitée en nombre de requêtes, permettre l&#8217;écoute/la parole continue<br />
3 &#8211; Si possible ne pas nécessiter le web<br />
4 &#8211; Être gratuite ou low cost avec un cout ponctuel et non cyclique<br />
5 &#8211; Être performante en terme de compréhension de la phrase énoncée, même sur un micro non spécialisé<br />
6 &#8211; Ne pas être limitée en termes, en mots, en nombres d&#8217;expressions, ne pas être dépendant d&#8217;un fichier de phrases &#8220;statiques&#8221;<br />
7 &#8211; Prendre en charge la langue française</p>
<h2>Reconnaissance vocale</h2>
<p>Voyons ce qui existe aujourd&#8217;hui :</p>
<ul>
<li><strong>Windows speech recognition API</strong> : Remplis tous les points sauf le n°1 (disponible sous windows vista et supérieure uniquement), sans ça se serait la solution parfaite</li>
<li><strong>Google speech API :</strong> Remplis tous les points sauf le 2 (il faut une clé, c&#8217;est limité a 50 requêtes par jours) et le 3 (api passant par le web)</li>
<li><strong>Sphinx/PocketSphinx :</strong> Ne remplis pas le n°6 : utilise un système de modèle acoustique, laborieux, lourd, statique. Il en existe un en français mais limité a 10/20 mots non pertinents.</li>
<li><strong>Julius :</strong> Non testé</li>
<li><strong>Simon :</strong> Non testé</li>
<li><strong>SIRI api :</strong> ne remplis pas les point n°4 et n°3, j&#8217;ignore si il existe une limite de requetes quotidienne.</li>
<li><strong>Arduino Easyvr :</strong> ne remplis pas les point 6 et 1 : llimité en nombres de mots et installable sur arduino uniquement.</li>
<li><strong>Android speech :</strong> Respecte toutes les conditions sauf la n°1 : dispo uniquement sous android</li>
<li><strong>Voce (voce.sourceforge.net) :</strong> utilise pocketshpinx /sphinx, donc même problème question francophonie et dynamisme des phrases</li>
<li><strong>API Wit</strong> : https://wit.ai/, fonctionne très bien, bonne pertinence, même pour le français, mais api htp hyper lente (environ 7secondes de retour pour une phrase courte)</li>
</ul>
<p>Pour répondre direct à la question qui revient régulièrement dans les commentaires :</p>
<p>Non, jasper.io (et aussi LISA) n&#8217;est pas une solution de reconnaissance vocale mais un simple CMS qui utilise PocketSphinx et donc qui est inapplicable dans notre système domotique a moins de parler couramment anglais (avec la bonne intonation sinon c&#8217;est mort) à votre maison.</p>
<p>Le plus gros HIC étant que même en combinant les librairies, on n&#8217;arrive pas à quelque chose de concluant dans le monde linux.</p>
<h2>Synthèse vocale</h2>
<p>De ce côté là c&#8217;est déjà plus simple bien que pas encore parfait:</p>
<ul>
<li><strong>Google speech :</strong> en bricolant un peu on arrive a obtenir la jolie voix de google en synthèse vocale, mais on est jamais certains que google verrouille pas ce service sous peu.</li>
<li><strong>Espeak :</strong> Respecte toutes les conditions mais à une voix de canard éraillé très vites agaçante</li>
<li>Windows text to speec API : Respecte toutes les conditions sauf la n°1 : dispo uniquement sous windows</li>
<li><strong>Voxygen :</strong> Voix magnifiques ultra réalistes, mais visiblement pas d&#8217;api/libs à disposition des simples mortels, même en payant.</li>
<li><strong>Android speech :</strong> Respecte toutes les conditions sauf la n°1 : dispo uniquement sous androïde</li>
</ul>
<p>Pour la synthèse je suis actuellement partis sur le combo suivant pour yana4All :</p>
<p>Si l&#8217;OS est windows, on prend l&#8217;api windows (locale, performante, dynamqieu etc&#8230;) sinon&#8230;<br />
On utilise l&#8217;api google speech dans le cas ou l&#8217;on a bien internet, sinon&#8230;<br />
On utilise espeak qui est moche mais qui a le mérite de fonctionner gratuitement partout et en restant locale.</p>
<p>Cette parti est déjà implémentée à yana4All.</p>
<h2>Méthodes alternatives</h2>
<p>&#8211; Trouver une machine pouvant faire tourner Windows a bas coût (à trouver):<br />
&#8211; <strong>Microsoft Sharks Cove</strong> à l&#8217;air de faire tourner du windows 8.1, mais elle coute dans les 300$<br />
&#8211; <strong>hummingboard</strong>, <strong>bananapi</strong>,ne semblent pas pouvoir faire tourner windows<br />
&#8211; <strong>beaglebones</strong> dispose visiblement d&#8217;un &#8220;Windows Embedded BSP&#8221; mais j&#8217;ignore si ça    embarque ce qu&#8217;il faut pour de la reco<br />
&#8211; La <strong>MinnowBoard MAX </strong>semble aussi pouvoir faire tourner Windows mais 178€, 81€ pour l&#8217;entré de gamme qui a l&#8217;air violemment bridée</p>
<p>&#8211; Installer android sur le pi ou trouver une machine low cost capable de faire tourner au minimum android 4.2 (reco locale) et déporter yana sur ce système pour bénéficier du nouveau sdk local d&#8217;android pour la reconnaissance (Si android tourne bien sur le pi SI on peux y placer la version qui embarque le sdk locale de reco/synthèse et SI on peux bien gérer les gpio et autres prérequis de yana) :<br />
&#8211; UGOOS UM2 à l&#8217;air adaptée mais 75€ quand même ça pique un peu&#8230;</p>
<p>&#8211; Trouver un webservice gratuit fiable et rapide (la belle utopie)</p>
<p>&#8211; Utiliser une interface gestuelle plutôt que vocale (kinects, leapmotion, thalmic myo etc&#8230;)</p>
<p>&#8211; Trouver un moyen de faire fonctionner windows speech ou dragon naturally speaking sur linux via wine ou wineHQ</p>
<p>&#8211; <strong>Ajout de jerome :</strong> Enregistrer les phrases a reconnaître et faire une comparaison entre deux fichiers mp3 (la phrase a reconnaître et la phrase énoncée) (cf : <a href="http://en.wikipedia.org/wiki/Acoustic_fingerprint">http://en.wikipedia.org/wiki/Acoustic_fingerprint</a> pour la comparaison par empreintes acoustiques)</p>
<p>&#8211; <strong>Ajout de <span style="font-weight: 600; color: #555555;">YannXplorer</span>:</strong> Acheter un carte <a href="http://www.udoo.org/">Udoo </a>(84€) qui permet d&#8217;installer android 4.3 avec la reco vocale locale, bonne solution mais encore trop cher</p>
<p>&#8211; <strong>Ajout de <span style="font-weight: 600;">raphkun</span>:</strong> Acheter un carte minnowboard-max(99$) qui permet d&#8217;installer windows et sa reco vocale, même argument que pour la udoo.</p>
<p>&#8211; <strong>Ajout de &#8220;ah merde j&#8217;ai oublié le pseudo et je retrouve pas le commentaire&#8221;:</strong>On peux gruger voxygen en chopant le stream audio depuis l&#8217;url :  <a href="http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&amp;text=test&amp;voice=Electra&amp;ts=14030902642">http://www.voxygen.fr/sites/all/modules/voxygen_voices/assets/proxy/index.php?method=redirect&amp;text=test&amp;voice=Electra&amp;ts=14030902642</a> Ca fonctionne mais uniquement jusqu&#8217;au jour ou voxygen verrouillera le service.</p>
<p>Si vous avez des idées, questions, suggestions, insultes&#8230; pour faire avancer le schmilblick, c&#8217;est à vous de &#8220;tempêter du bulbe&#8221; dans les commentaires !  <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3824
title: On recrute un développeur sur bordeaux !
uri: On-recrute-un-développeur-sur-bordeaux
url: http://blog.idleman.fr/on-recrute-un-developpeur-sur-bordeaux/
content:
<p>Vous êtes dans la région bordelaise, vous êtes du genre passionné du dev et vous cherchez un boulot ?</p>
<p>Ça tombe bien dis donc !! Parce qu&#8217;à Sys1, nous recherchons désespérément ce profil pour <del>me supporter</del> me suppléer dans ma lourde tâche de développement en prestation de service.</p>
<p><span id="more-3824"></span></p>
<p>La société Sys1 intervient au niveau réseau et système dans les environnements Microsoft, Linux, VMware et grands systèmes Mainframe.</p>
<p>Nous proposons également des prestations de développements spécifiques à nos clients, je suis actuellement responsable de cette partie et je cherche un développeur passionné pour travailler sous mon encadrement sur nos divers projets.</p>
<p>Je me suis donc dit &#8220;Quel meilleur endroit pour trouver du passionné que sur l&#8217;idleBlog&#8221; ?!</p>
<p>Les missions et technologies abordées sont très variables et dépendent essentiellement du client et du projet en cours, nous recherchons donc quelqu&#8217;un capable de :</p>
<p>&#8211; Se passionner d&#8217;un sujet et aller un peu plus loin que les simples notions de développement apprises à l&#8217;école.<br />
&#8211; S&#8217;adapter à un grands nombres d’environnements / langages informatiques<br />
&#8211; Savoir travailler en groupe, se remettre en question, se plier aux règles (et attention je rigole pas au boulot :p)<br />
&#8211; Etre un minimum sociable, un contact fréquent avec la clientèle et avec les collègues étant inéluctable sur ce poste :).</p>
<p>Nous recherchons si possible un niveau Bac +2 à bac + &#8220;n&#8221; et si possible en alternance, mais le plus important c&#8217;est surtout la passion du dev, donc n&#8217;hésitez pas à postuler même si vous n&#8217;entrez pas tout à fait dans les cases énoncées.</p>
<p>Un gros plus étant la conduite d&#8217;un ou plusieurs projets perso de dev (peu importe la techno) à nous montrer lors de l&#8217;entretien.</p>
<p>Les langages <strong>majoritairement</strong> abordés chez nos clients : PHP (90%) et technologies .NET (C#, asp &amp; co).</p>
<p>Pour le petite avis perso : c&#8217;est une très bonne boite à partir du moment ou vous montrez que vous êtes motivés, beaucoup d’avantages et des missions aussi intéressantes que variées (sur ce point là vous ne serez pas déçu ^^).</p>
<p>Site vous êtes intéressés, vous pouvez postuler sur notre site web : <a href="http://sys1.fr/pages/recrutement">http://sys1.fr/pages/recrutemen</a>t</p>
<p>Bien a vous,</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=3831
title: Le bordel de l’info #30
uri: Le-bordel-de-l-info-30
url: http://blog.idleman.fr/le-bordel-de-linfo-30/
content:
<p>Salut bande de tièdes nouilles instantanées (et vlan!).</p>
<p>Vous en avez dla chance !!</p>
<p>A l’heure ou le divin dispose enfin de <a href="http://korben.info/templeos.html">son propre système d’exploitation</a>, à l’heure ou les <a href="http://www.yzgeneration.com/juste-un-russe-qui-se-fait-tabasser-par-mickey-mouse-et-bob-leponge/">héros de notre jeunesse</a> revienne nous tabasser à grand coup de pompes,  bref à l’heure du <a href="http://vimeo.com/112061208">WTF complet</a>, vous êtes chez vous, peinard, chez belle maman en train de vous gaver de vos plats préférés à outrance (ne niez pas, on a tous la même belle maman)  tout en vous dégustant cette 30em part d’aligot-choucroute-info qui fait au moins autant de bien quand elle re-sort que quand elle rentre (il y a du Baudelaire la dedans…)</p>
<p><span id="more-3831"></span></p>
<ul>
<li>Une librairie JavaScript permettant <a href="http://zencode.in/lining.js/">d’étendre la fonctionnalité CSS</a> de la sélection de lignes, j’ignorais qu’on pouvais étendre simplement et proprement du css avec du JS il vas falloir que j’autopsie ce truc…</li>
<li>Une vidéo marrante sur le <a href="http://korben.info/apprenez-bien-vous-tenir-au-cinema.html">respect au cinéma</a> qu’il est<strong> vital</strong> de dispenser partout autour de vous</li>
<li>Deux films très attendus que sont <a href="https://www.youtube.com/watch?v=ZHA7XEtxRMU">star wars 7</a> et <a href="http://www.youtube.com/watch?v=7nZKYhUjcZs">jurassic world</a> laissent perplexes les geek notamment au niveau des bandes annonces ( un strom trooper black ? Ils sont pas sensé être tous des clones de jango Fett ? (qui est typé mexicain si je ne m’abuse), une <a href="media/ad0019c3.PHOcc5426fa-77e7-11e4-baf2-36a1bd9b8932-805x453.jpg" data-original-source="http://www.lefigaro.fr/medias/2014/11/29/PHOcc5426fa-77e7-11e4-baf2-36a1bd9b8932-805x453.jpg">garde laser pour les sabres laser</a> ? Un droid ballon de foot?  Vivement les <a href="https://pbs.twimg.com/media/B3mUjZ8IAAAuu0K.jpg:large">sabres du star wars 18</a> permettant également l’épilation laser et le mode tire bouchon pour les pique nique entre jedi !!) pour le jurassic world ce sont plutôt les dialogues qui ont l’air fouillés : “Si vous voyez un dinosaure qui vous charge… courrez” (merci pour l’info ça ne me viendrais pas à l’esprit) ou encore le type qui vois des traces de griffes jusqu’en haut de la cage du dino :”Vous croyez qu’il a pu s’échapper ?” (nonon il se faisait juste les griffes…) à défaut d’être réaliste, ça promet d’être marrant :).</li>
<li><a href="http://www.charted.co/">Charted</a> permet de créer instantanément un graphique un peu classe a partir d’une url de CSV, de lien dropbox ou de google spreasheet.</li>
<li>Quoi qu’il advienne dans votre vie, prenez bien soin de vos cuy, <a href="http://vimeo.com/112061208">c’est le médecin</a> qui l’a dit.</li>
<li><a href="http://zzmp.github.io/juliusjs/">JuliusJs</a> est une librairie permettant de faire de la reconnaissance vocale 100% javascript, je vois mal comment ça peux fonctionner sans passer par un webservice quelquonque mais dans le cas ou ça ne le ferais pas ça deviendrait relativement intéressant pour notre section domotique, a creuser.</li>
<li>Une alternative de plus pour procrastiner au <a href="http://korben.info/lire-video-excel.html">boulot sans se faire gauler,</a>  mais bon c’est de l’Excel + VBA, c’est le mal absolu, l’enjeux n’en vaut pas la chandelle <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
<li>Une imprimante bricolée qui permet de créer <a href="http://www.semageek.com/diy-limprimante-qui-imprime-des-documents-qui-sauto-detruise/">des documents qui s’auto détruisent</a>, on peux se questionner sur l’utilité de l’engin à l’ère de l’informatique ou il est possible de transmettre des informations anonymement et en toute sécurité de manière un peu moins laborieuse mais le mécanisme n’en reste pas moins intéressant.</li>
<li>On organise annuellement <a href="http://www.semageek.com/une-course-de-drone-a-la-facon-de-star-wars-pod-racer">des courses de drones façon starwars</a> dans les bois pas loin d’Annecy, il faudra que j’aille voir ça au moins une fois</li>
<li>Aujourd’hui nous en sommes tous conscient, le hack est cinématographiquement très mal représenté, un apt-get upgrade à l’écran qui affiche une centaine de lignes, un ptit tapotage de clavier dans le vide effréné et hop! Le jeune hacker (souvent représenté par un gros cassos anarchiste chaumer au gout vestimentaires plus que douteux) pirate simultanément la nsa, le fbi et le site web de l’ump.  Mais estimez vous heureux, avant le hack au <a href="http://korben.info/le-hacking-au-cinema-dans-les-annees-80-et-90-cetait-pas-triste.html">cinéma c’était ça</a>.</li>
<li><a href="http://astralapp.com/">Astral est une sorte</a> d’agrégateur de flux rss mais orienté github et permettant de référencer tous vos projets préférés uniquement en cliquant sur le boutton “star” de github, il est alors possible de suivre toutes les nouveautés, les commits etc.. de tous vos projets github favorisés de manière simple sur une interface épuré comme de les aime.</li>
<li><a href="http://vuejs.org/">Vue.js</a> est un framework javascript permettant de gérer toutes les vues de votre projet via un template js simple et de manière instantanée, quand on vois l’exemple on se dit “pourquoi pas” mais j’ai peur qu’a l’utilisation ce soit très vite limité voir bloquant a partir du moment on l’on utilise plusieurs techno dans le projet, quelqu’un a t’il déjà essayé ce type de framework sur un projet d’envergure ?</li>
<li>Votre téléphone portable est mort ? Fabriquez en un avec votre <a href="http://www.semageek.com/diy-fabriquer-un-telephone-portable-a-base-de-raspberry-pi">raspberry PI</a></li>
<li>A tous les fans de ragnarok comme moi (juste le meilleur gameplay/univers de tous les temps malgré son ancienneté), un p&#8217;tit géni du code nous à <a href="http://www.robrowser.com/">pondu un client</a> WEB pour jouer direct depuis le navigateur d’une part, pour bidouiller plus simplement le client d’autre part (les clients officiels étant compilé et sans sources dispo)</li>
<li><a href="https://conversejs.org/">Conversejs</a>, un petit chat xmpp open source et exécutable sur les navigateurs, j’en cherchais justement un l’autre juste et j’ai pu constater que ça ne courait pas les rues quelque chose de simple, fonctionnel, online et compatible xmpp.</li>
<li><a href="https://www.humhub.org/">HumHub</a> est un “squelette” open source de réseau social/ portail communautaire très moderne qui vas vous permettre au pire de créer un nouveau facebook, au mieux d’inventer de nouveau types de communautés, je le verrais bien comme une bonne base pour les hacklab, les équipes de dev ect…</li>
<li>Les réalisateurs des ô combien notables cartes arduino se lancent en toute logique dans la création et la vente <a href="http://www.semageek.com/arduino-materia-101-arduino-se-lance-dans-la-commercialisation-dimprimante-3d">d’imprimante 3d arduino</a> (nommée Materia 101), voilà qui devrait remettre un coup de fouet à ce phénomène particulièrement stagnant que représentent les imprimantes 3d, aujourd’hui on à le choix entre une imprimante maison basée sur des plan open sources, généralement peu fiable et qui reste dans les 400$ en matières premières, ou à l’achat d’une usine à gaz à 2000 € qui fonctionnera mieux mais qui est économiquement surdimensionné par rapport a l’utilisation que nous en faisons (a savoir un boitier prototype de temps en temps), si l’arduino est capable de nous proposer le prix du premier associé à la qualité du second, c’est peut être intéressant à suivre.</li>
<li>Autre domaine dans lequel je suis trop pauvre pour bidouiller mais qui vas y passer un jour ou l’autre : les drones ! La fondation linux sort <a href="http://korben.info/fondation-linux-lance-dronecode.html">une plateforme open source</a> pour aider les gueux que nous sommes à gérer ces machines extraordinairement compliquées a faire voler/stabiliser/ne pas exploser contre un mur. A creuser si vous souhaitez concevoir votre propre drone sans avoir de notions complexe de l’aérodynamique.</li>
<li>Nous <a href="http://blog.idleman.fr/on-recrute-un-developpeur-sur-bordeaux/">recherchons toujours un développeur</a> passionné dans la région de bordeaux (faut croire que ça vas pas si mal, ça deviens chaud de trouver des chômeurs !) n&#8217;hésitez pas a postuler même si vous ne rentrez pas forcement dans toutes les cases, on recherche un profil pas un cursus.</li>
<li>Vous avez certainement constaté un léger silence sur le blog (oui, j’entends pas là encore plus long que d’habitude ^^) je suis sûr le point d’acheter une vrai maison rien qu’a moi ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Ce qui me prends du temps et de l’énergie (la vente se passe plutôt de manière mouvementée) mais qui devrait me permettre de m’engager plus sérieusement dans la section domotique de ce blog, avec notamment une application plus concrète des bidouillages actuels pour un environnement de production (bref un truc qui marche plus de 20 minutes sans exploser) la vente se conclus fin décembre, on vas donc pouvoir se taper quelques tutos fun en 2015 si tout se passe bien de mon coté.</li>
</ul>
<p>Bien a vous.</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=3843
title: Yana : refactoring violent des plugins de relais
uri: Yana-refactoring-violent-des-plugins-de-relais
url: http://blog.idleman.fr/yana-refactoring-violent-des-plugins-de-relais/
content:
<p>Voila un bail que je me promettais de tout casser à nouveau sur YANA !</p>
<p>J&#8217;ai enfin pu profiter des jours fériés de noël pour m&#8217;y pencher ! ET notamment sur les plugins de relais radio et filaires qui avaient grand besoin d&#8217;un petit “<strong>refactoring</strong>”.</p>
<p><span id="more-3843"></span></p>
<p><a href="media/5537d6cd.2014122616_01_02YanaServer3.0.6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/12/2014122616_01_02YanaServer3.0.6.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto; border-width: 0px;" title="2014-12-26 16_01_02-Yana Server 3.0.6" src="media/86bfa9f1.2014122616_01_02YanaServer3.0.6_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/12/2014122616_01_02YanaServer3.0.6_thumb.png" alt="2014-12-26 16_01_02-Yana Server 3.0.6" width="551" height="353" border="0" /></a></p>
<p>Rien de bien folichon sur les nouveautés cela dit si ce n&#8217;est quelques petits détails qui perturbaient pas mal d&#8217;utilisateurs :</p>
<ol>
<li>Possibilité de mettre une phrase entièrement custom (plus uniquement allume ou éteins + nom du périphérique), c&#8217;est vrai que <em>&#8216;yana, allume le</em> volet&#8217; ça faisait mauvais genre <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
<li>Les relais radio et filaire ne sont maintenant plus affiché sur l&#8217;onglet pièce (voué a disparaitre) mais sous forme de widget disponible depuis la home</li>
<li>Ajout de la possibilité de mettre une icone sur le relais pour mieux repérer le type (robinet, prise, lampe, store etc&#8230;) 19 icones basée sur l&#8217;excellente police icone &#8220;Font Awesome&#8221; disponibles.</li>
<li>Refactoring complet du code, beaucoup plus propre et utilisant les fonctions d&#8217;aide du cœur YANA (classe de personnalité, class d&#8217;actions, class de gestion GPIO &#8230;)</li>
<li>Une plus belle gueule de manière globale.</li>
</ol>
<p><a href="media/ff1c15d3.2014122616_01_36YanaServer3.0.6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/12/2014122616_01_36YanaServer3.0.6.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto; border-width: 0px;" title="2014-12-26 16_01_36-Yana Server 3.0.6" src="media/1cf7f944.2014122616_01_36YanaServer3.0.6_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2014/12/2014122616_01_36YanaServer3.0.6_thumb.png" alt="2014-12-26 16_01_36-Yana Server 3.0.6" width="460" height="569" border="0" /></a></p>
<p>&nbsp;</p>
<p>J&#8217;invite bien sûr les développeurs de plugins à se baser sur ces nouveaux modèles pour créer leurs futurs plugins, ceux ci étant plus propre et permettant plus de choses que leurs<br />
prédécesseurs en termes structurels et fonctionnels.</p>
<p>Les plugins donnent également un exemple complet d&#8217;utilisation du système de Dashboard et de widget pour une entité.</p>
<p><strong>NB :</strong> Je conseille vivement à ceux qui souhaitent mettre yana à jour de réinstaller la base en même temps, les tables des anciens plugins pouvant interférer avec les nouveaux.</p>
<p>Noyeux Joël bande de moules !</p>


feed_id: http://blog.idleman.fr/?p=3855
title: Entretenir et nourrir sa tranchée
uri: Entretenir-et-nourrir-sa-tranchée
url: http://blog.idleman.fr/entretenir-et-nourrir-sa-tranchee/
content:
<p>Vous vous demandiez peut être où j&#8217;étais passé ce dernier mois,<del> ou alors vous vous en foutiez complétement</del> ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Hé bien (o joie, je vais vous le dire quand même) figurez vous que je suis devenue Papa d&#8217;une belle tranchée de 16m de long sur 70 cm de profondeur !<br />
<span id="more-3855"></span></p>
<p><a href="media/9fed5467.01.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/01.jpg"><img class="aligncenter size-medium wp-image-3857" src="media/985ac525.01-225x300.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/01-225x300.jpg" alt="01" width="225" height="300" /></a><br />
Car oui, quand Eau de la CUB et EDF vous demandent 10 500€ juste pour raccorder l’extérieur de votre terrain en eau/tout à l’égout/électricité, vous décidez curieusement de  creuser vous même votre tranchée intérieure (du terrain jusqu’à la maison), et ça mes amis (je vous l&#8217;ai déjà dit, par défaut vous êtes mes amis), c&#8217;est tout un art !</p>
<p>Moi qui ai fait à peu près toutes les conneries à faire sur le sujet, je pense avoir acquis assez de maitrise pour vous en parler (je sais, vous vous en foutez toujours mais ça me fait de bien d&#8217;en parler, et puis c&#8217;est mon blog j&#8217;fais ce que je veux et je vous empapaoute :D).</p>
<p><strong>N&#8217;élève pas une belle tranchée en bonne santée qui veux&#8230;</strong></p>
<p>Aussi, afin qu&#8217;elle ait le poil soyeux et l’œil vif, je vous donne quelques combines apprises sur le tas (en l’occurrence le tas de terre,  gravats et autres immondices enterrées une centaine d&#8217;année plus tôt sur le terrain).</p>
<p><a href="media/ac909fb9.02.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/02.jpg"><img class="aligncenter size-medium wp-image-3858" src="media/a980f166.02-300x290.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/02-300x290.jpg" alt="02" width="300" height="290" /></a></p>
<p><strong>Pelle et huile de coude ou pétrole et gros engin ?</strong><br />
Il peut être tentant de mettre au monde sa tranchées à l&#8217;aide d&#8217;outils spécialisés comme une mini pelle (petit engin pour creuser louable à la journée à <em>kiloutou</em>) et dans certains cas notamment celui ou vous avez prévu ou grosse longueur de tranchée (50m/100m), ou si celle ci à la peau dure (terre rocailleuse) c&#8217;est très utile.</p>
<p>Dans tous les autres cas, utilisez la pelle, ainsi :</p>
<p>&#8211; Vous ne blesserez pas votre tranchée, notamment son actuel système nerveux (câbles électriques enterrés), sanguin (les tuyaux d&#8217;arrivée d&#8217;eau, de tout à l’égout et d&#8217;eau pluviale existants) ou pire, les tuyaux de gaz (là j&#8217;ai une métaphore qui me vient aussi mais je vais m&#8217;abstenir :D)</p>
<p>&#8211; Vous économiserez la location de la mini pelle qui n&#8217;est fichtrement pas donnée, ainsi que le gasoil nécessaire et autres consommables imprévus.</p>
<p>&#8211; Vous faites moins de bruit, pas de soucis de voisinage</p>
<p>&#8211; Vous vous musclez (ho que oui !)</p>
<p>&#8211; Vous pouvez prendre votre temps, pas besoin de rendre la pelle à 18h00 pile (fermeture de kiloutou), sauf si vous avez loué cette même pelle, auquel cas vous auriez bien mieux fait de l&#8217;acheter.</p>
<p><strong>Quelle taille (profondeur) pour ma tranchée ?</strong></p>
<p>Touts dépends de votre région, des normes imposées par votre mairie ou par les fournisseurs (erdf, eau&#8230;), par chez moi (sud ouest) c&#8217;est visiblement entre 60 et 80 cm de profondeur pour l&#8217;eau/tout à l’égout, et 40 minimum pour l’électricité mais comme c&#8217;est impossible d&#8217;avoir une vraie info, même en demandant à la source, on verra bien le jour du raccordement final :D.</p>
<p>Le but étant que ce soit assez profond pour que le poids de votre voiture puisse passer sans tout péter, et que les tuyaux ne gèlent pas par temps froid.</p>
<p><strong>Petits conseils lors de la conception de votre tranchée :</strong><br />
&#8211; Achetez vous des gants de jardinage (les premiers prix en laine recouvert de vieux caoutchouc à 2€), c&#8217;est le meilleur investissement que vous puissiez faire, vous évitez les mains de paysan a la fin de la journée, pas de risques d&#8217;infections / tétanos, vous pouvez gratter votre tranchée aux endroits ou ça la démange à même la main (et ça arrive souvent de gratter).</p>
<p><a href="media/b7ecb775.gant_jardinage.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/gant_jardinage.jpg"><img class="aligncenter size-medium wp-image-3859" src="media/df79638d.gant_jardinage-300x225.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/gant_jardinage-300x225.jpg" alt="gant_jardinage" width="300" height="225" /></a><br />
&#8211; Si vous sentez un truc qui tire ou un truc dur, même si vous pensez que c&#8217;est une racine, déterrez le rapidement à la main, c&#8217;est peu être une conduite de gaz (boum) ou autre (eau, tout a l’égout, pluie etc&#8230;)</p>
<p><a href="media/101535cb.ginal_640_480_pjpeg_2560063_809859bb66f691887436cf77e0d296e0.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/dyn002_original_640_480_pjpeg_2560063_809859bb66f691887436cf77e0d296e0.jpg"><img class="aligncenter size-medium wp-image-3860" src="media/90aff4de.0_480_pjpeg_2560063_809859bb66f691887436cf77e0d296e0-300x225.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/dyn002_original_640_480_pjpeg_2560063_809859bb66f691887436cf77e0d296e0-300x225.jpg" alt="dyn002_original_640_480_pjpeg_2560063_809859bb66f691887436cf77e0d296e0" width="300" height="225" /></a><br />
&#8211; Placez la terre à minimum 30cm de la tranchée, de cette manière elle ne retombera pas sous forme de boue lorsqu&#8217;il pleuvra; et restera a portée lorsqu&#8217;il faudra reboucher.</p>
<p><a href="media/7d2d6a12.03.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/03.png"><img class="aligncenter size-medium wp-image-3861" src="media/fbcd004a.03-272x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/03-272x300.png" alt="03" width="272" height="300" /></a><br />
&#8211; Si vous avez des passages avec du béton, n&#8217;essayez pas la masse, c&#8217;est rare que votre béton soit assez fin, louez direct un marteau piqueur (poids 10k max sinon vous n&#8217;aurez plus de bras en fin de journée, et électrique pas pneumatique sinon il vous faudra un compresseur en plus),</p>
<p><a href="media/a8ce33a6.main_im.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/main_im.png"><img class="aligncenter size-medium wp-image-3862" src="media/9bb1e81a.main_im-300x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/main_im-300x300.png" alt="main_im" width="300" height="300" /></a></p>
<p>et éventuellement une disqueuse à métal pour découper les fil de métal qu&#8217;il y a parfois dans le béton renforcé.</p>
<p><a href="media/9a530f2c.disqueuse-9558nb-makita-215-1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/disqueuse-9558nb-makita-215-1.jpg"><img class="aligncenter size-medium wp-image-3863" src="media/7e6e433a.disqueuse-9558nb-makita-215-1-300x257.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/disqueuse-9558nb-makita-215-1-300x257.jpg" alt="disqueuse-9558nb-makita-215-1" width="300" height="257" /></a></p>
<p>Notez bien que ces outils sont parfois (souvent) plus rentable à acheter qu&#8217;à louer, à vous de faire le calcul mais vous pouvez compter avec les taxes et autres presque 72€ la journée de location pour un marteau piqueur qui en vaut 150€, au final c&#8217;est rarre de ne l&#8217;utiliser qu’une journée&#8230;<br />
&#8211; Dans ces moments là, rappelez à vos potes tout ce qu&#8217;ils vous doivent et embarquez les avec vous dans cette joyeuse aventure :D.</p>
<p>CA y est, vous êtes l&#8217;heureux papa d&#8217;une jeune tranchée ! (maman participe rarement à la naissance)</p>
<div id="attachment_3865" style="width: 174px" class="wp-caption aligncenter"><a href="media/9dc6d13c.03.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/03.jpg"><img class="wp-image-3865 size-medium" src="media/35a1f822.03-164x300.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/03-164x300.jpg" alt="03" width="164" height="300" /></a><p class="wp-caption-text">I&#8217;m the human emoticon !</p></div>
<p><strong>MAIS ATTENTION !!</strong><br />
Une tranchée demande un entretien soigneux afin de rester en vie ! en l’occurrence, <span style="text-decoration: underline;"><strong>votre pire ennemi</strong></span> sera, et je mâche mes mots :</p>
<h2>CETTE PUTAIN DE CONNASSE DE PLUIE VIOLEUSE DE BÉBÉ PHOQUES !!</h2>
<p><a href="media/22d0717d.Meme-Fu1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/Meme-Fu1.jpg"><img class="aligncenter size-medium wp-image-3866" src="media/1e895b4d.Meme-Fu1-300x215.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/Meme-Fu1-300x215.jpg" alt="Meme-Fu1" width="300" height="215" /></a></p>
<p>La pluie tue, la pluie provoque le cancer des testicules, la pluie est responsable de l’extinction du thon rouges, oui mes frères, la pluie c&#8217;est le mal absolu.</p>
<p>Et vous pouvez compter sur elle pour être de la partie <strong><span style="text-decoration: underline;">pile le jour</span></strong> où vous allez creuser.</p>
<p>Vous l&#8217;aurez compris, si vous ne faite rien de plus, votre tranchée se noiera, vous pourrez peut être la sauver en l&#8217;écumant (pas avec une pompe ça serait trop facile : la terre bouche tous les filtres de pompes entrée de gamme, il vous faudrait une pompe de pro et ça cout un œil, bref c&#8217;est un seau, ou un saladier en ce qui me concerne). Le soucis étant que la terre a tendance a se transformer en boue après&#8230; et vous devrez tout recommencer le jour suivant.</p>
<p><a href="media/22d0717d.Meme-Fu1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/Meme-Fu1.jpg"><img class="aligncenter size-medium wp-image-3866" src="media/1e895b4d.Meme-Fu1-300x215.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/Meme-Fu1-300x215.jpg" alt="Meme-Fu1" width="300" height="215" /></a></p>
<p>Bref, il vous faut prévoir dès le début une couverture pour votre bébé tranchée (oui, une bâche), seulement voilà : <em>une couverture ne suffira pas.</em></p>
<p>Car la pluie, en plus d&#8217;être fourbe, pernicieuse, chafouine et autres vices indescriptibles, est extrêmement lourde.</p>
<p><a href="media/651a2f4e.04.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/04.jpg"><img class="aligncenter size-medium wp-image-3867" src="media/4723b2c1.04-300x236.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/04-300x236.jpg" alt="04" width="300" height="236" /></a></p>
<p>Elle pèsera de tout son poids de Boeing 747 mort sur votre bâche jusqu&#8217;à ce que celle ci s&#8217;écroule tout aussi surement que si vous aviez sauté à pieds joints dessus.</p>
<p>Vous pouvez évidemment border votre tranchée en plaçant de gros galets (ou tout ce qui vous passe sous la main, poubelles, vieux bidet récupéré de la salle de bain, tuiles, gravats) sur les bords de sa couverture, mais cela ne suffira pas non plu..</p>
<p>J&#8217;ignore si je vous l&#8217;ai dit mais : <strong>la pluie est foutrement lourde !</strong>! Vos galets vont se déplacer, et tomber avec la bâche pleine d&#8217;eau, dans la tranchée (yeaaahh).</p>
<div id="attachment_3868" style="width: 235px" class="wp-caption aligncenter"><a href="media/761174ec.05.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/05.jpg"><img class="wp-image-3868 size-medium" src="media/69b61174.05-225x300.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/05-225x300.jpg" alt="05" width="225" height="300" /></a><p class="wp-caption-text">emoticoman II : The return of advanced rebirth prequel of the death</p></div>
<p>Il vas donc falloir mettre en place une &#8220;armature&#8221; pour éviter que la bâche fasse des &#8220;bassines&#8221; d&#8217;eau super lourdes qui emportent le tout dans la tranchée, le but sera donc d’empêcher la couverture (bâche) de bébé tranchée de s&#8217;incurver vers le bas.</p>
<p>Pour cela, récupérez des petites planches de la largeur de la tranchée, placez les en travers tout les 1m ou 2m,</p>
<p><a href="media/2fe21624.06.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/06.png"><img class="aligncenter size-medium wp-image-3876" src="media/a5e29baa.06-194x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/06-194x300.png" alt="06" width="194" height="300" /></a></p>
<p>puis placez vos planches les plus longues sur les petites planches de support afin de créer une sorte de &#8220;pont&#8221; plat tout le long de la tranchée, pont que vous pourrez ensuite recouvrir de votre couverture bordée.</p>
<p><a href="media/8ec2d7a1.07.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/07.png"><img class="aligncenter size-medium wp-image-3875" src="media/8c9b67c9.07-177x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/07-177x300.png" alt="07" width="177" height="300" /></a></p>
<p>Ça y est , votre tranchée est protégée, heureuse, épanouie, et à l’abri de cette fuck&#8217;in pluie maléfique, vous avez alors plus de temps à vous consacrer en tant que parent pour apprécier sa compagnie, ou effectuer d&#8217;autres petites tâches futiles comme acheter le tuyau de <strong>125mm</strong> de diamètre avec une pente de 3% (oui, ça fait 3 cm de pente tous les mètres) que vous allez offrir à votre tranchée afin qu&#8217;elle puisse héberger<del> le transit de vos étrons</del> les eaux usées et autres fluides/matières non identifiés caractérises par le terme &#8220;tout à l&#8217;egout&#8221;.</p>
<p>Vers la fin de sa vie (lorsque vous n&#8217;aurez plus de tuyaux à y placer) ne l’incinérez pas (ça fait mauvais genre auprès des pompiers communaux), enterrez la plutôt en prenant soin de ne pas la blesser avec de gros cailloux, gravats, tuiles &#8230; (oui ce genre de trucs : )</p>
<p><a href="media/ac909fb9.02.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/02.jpg"><img class="aligncenter size-medium wp-image-3858" src="media/a980f166.02-300x290.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/02-300x290.jpg" alt="02" width="300" height="290" /></a>Bref soyez respectueux de votre tranchée, et surtout de ses tuyaux qui se percent très facilement avec ce genre de détritus, un lit de sable fin étant le plus bel enterrement que vous puissiez lui faire.</p>
<p>Amen.</p>


feed_id: http://blog.idleman.fr/?p=3882
title: Yana : ajoutez vos propres commandes sans développer…
uri: Yana-ajoutez-vos-propres-commandes-sans-développer
url: http://blog.idleman.fr/yana-ajoutez-vos-propres-commandes-sans-developper/
content:
<p>On m&#8217;a souvent reproché, et à juste titre je l&#8217;admets, d&#8217;avoir pensé ma plateforme<br />
<a href="http://idleman.fr/yana/">domotique Yana</a> plus pour les développeurs que pour les utilisateurs &#8220;non avertis&#8221;.</p>
<p><span id="more-3882"></span></p>
<p>Il est vrai que certaines customisations qui peuvent paraitre &#8220;basiques&#8221; ne sont, à l&#8217;heure actuelle,<br />
accessibles que par le développement d&#8217;un plugin.</p>
<p>C&#8217;est dans le but de me rattraper en partie sur ce point que j&#8217;ai développé un nouveau ptit plugin consacré exclusivement aux non développeurs et/ou aux développeurs un peu feignasses :D.</p>
<p>Speech commands, comme son nom l&#8217;indique, est un plugin pour yana server permettant l&#8217;ajout de commandes vocales personnalisées depuis l&#8217;administration.</p>
<p><a href="media/e7b186c3.preview.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/preview.png"><img style="display: inline; border: 0px;" title="preview" src="media/50b5bc04.preview_thumb.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/03/preview_thumb.png" alt="preview" width="480" height="182" border="0" /></a></p>
<p>Chacune de ces commandes peut exécuter un &#8220;type&#8221; d&#8217;action lorsque la phrase indiquée est prononcée, les types disponibles sont les suivants :</p>
<p>&#8211; Prononciation d&#8217;une phrase sur yana-client<br />
&#8211; Changer l&#8217;état d&#8217;un port GPIO sur yana-server<br />
&#8211; Exécuter une adresse web depuis yana server vers l&#8217;url indiquée<br />
&#8211; Exécution d&#8217;une commande système sur yana serveur (potentiellement : le raspberry pi sur lequel il est installé)<br />
&#8211; Exécution d&#8217;une commande système sur yana client (potentiellement : le Windows, l&#8217;android ou autre Os sur lequel il est installé)<br />
&#8211; Jouer un bruit sur yana-client (situé dans le répertoire &#8220;son&#8221; de l&#8217;applicatif client)</p>
<p>L&#8217;utilisation et la configuration de ce plugin ne nécessite aucune ligne de code il est donc possible a tout un chacun de customiser<br />
un peu les commandes vocales sans avoir à &#8220;mettre les mains dans le cambouis&#8221;.</p>
<p>Le plugin étant en bêta test actuellement, je ne l&#8217;ai pas encore intégré en natif, cependant vous pouvez le <a href="http://market.idleman.fr">télécharger sur le market yana</a> ou directement depuis la section plugin de votre yana en tapant &#8220;<a href="http://market.idleman.fr/index.php?keywords=speech+commands">Speech commands</a>&#8221; dans le moteur de recherche plugin.</p>
<p>N&#8217;hésitez pas à me faire vos retours de bugs / remarques sur le plugin, bien qu&#8217;il fonctionne  en dev, je n&#8217;ai pas pu le tester en environnement réel à cause de mon déménagement (il faut que je retrouve le carton ou j&#8217;ai planqué les rpi).</p>
<p>Dans l&#8217;absolu, je fusionnerais ce plugin avec le gestionnaire d&#8217;événements, je manque encore de temps pour le faire, mais ce plugin devrait répondre au besoin en attendant.</p>
<p>Papouilles,<br />
Idle</p>


feed_id: http://blog.idleman.fr/?p=3891
title: Yana for iOs est disponible !
uri: Yana-for-iOs-est-disponible
url: http://blog.idleman.fr/yana-for-ios-est-disponible/
content:
<p>De nombreux utilisateurs se sont acharné sur ma boite mail pour me demander une version &#8220;pomme&#8221; de yana <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Étant allergique aux pommes, et n&#8217;en de ce fait jamais eu chez moi, je ne me suis jamais penché sur le sujet.</p>
<p><span id="more-3891"></span></p>
<p>Fort de ce constat, <strong>Gwénolé Roton</strong> et son compère Valentin <strong>Chapoux</strong> (ils sont bien ces valentins! :D) se sont démenés pour nous offrir a tous une version yana iOs (par Gwénolé) et yana Osx (Par Valentin).</p>
<ul>
<li>L&#8217;application i<strong>OS </strong><a href="https://appsto.re/fr/xC-s5.i">est aujourd&#8217;hui sur l&#8217;app store</a></li>
<li>L&#8217;application <strong>OSX </strong>est encore en développement mais visiblement bien avancée</li>
</ul>
<p>Pour l&#8217;application IOs, Gwénolé à s&#8217;est inspiré du code de <strong>Novares</strong> (auteur de yana for Android) et a redéveloppé le tout en Objective C avec la lib de reconnaissance vocale iSpeech (version gratuite) et la synthèse d&#8217;iOS.</p>
<table>
<tbody>
<tr>
<td><a href="media/532aca0e.ios3.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/ios3.jpg"><img class=" size-medium wp-image-3893 aligncenter" src="media/000a7ff6.ios3-169x300.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/ios3-169x300.jpg" alt="ios3" width="169" height="300" /></a></td>
<td><a href="media/d53db4d0.ios2.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/ios2.jpg"><img class=" size-medium wp-image-3894 aligncenter" src="media/ec63490e.ios2-169x300.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/ios2-169x300.jpg" alt="ios2" width="169" height="300" /></a></td>
</tr>
</tbody>
</table>
<p><strong>On y retrouve :</strong></p>
<ul>
<li>Possibilité d&#8217;utiliser IP interne et externe</li>
<li>Détection du réseau local</li>
<li>Gestion du Token de sécurité</li>
<li>Infos perso</li>
<li>Assistant d&#8217;installation</li>
<li>Actualisation des commandes</li>
<li>Listes de commandes a exécuter manuellement</li>
<li>Reconnaissance vocale</li>
</ul>
<p><strong>Et quelques options spécifiques a iOS :</strong></p>
<ul>
<li>Événements</li>
<li>Actualisation des commandes au démarrage</li>
<li>Message de bienvenu</li>
</ul>
<p><strong>Configuration</strong></p>
<p>Pour la configuration, je laisse directement la parole à Gwénolé :</p>
<p><em>&#8220;Au premier lancement de l&#8217;application un assistant de configuration va se lancer, il va demander le sexe de l&#8217;utilisateur, son nom, son prénom, son surnom : ces informations vont être utilisées par Yana pour vous dire bonjour (ex « Bonjour Mr Martin » ou «  Yo idle » etc..).</em></p>
<p><em>Vient ensuite la question sur l&#8217;utilisation de Yana via Internet. Cette option est à activer si votre serveur Yana est configuré pour être utilisé avec votre IP publique depuis n&#8217;importe où</em></p>
<p><strong><em>Un peu de courage, la configuration est bientôt terminée!</em></strong></p>
<p><em>Il nous reste donc à configurer le réseau :</em><br />
<em> Donc on arrive sur une page qui va vous demander le lien interne (votre ip sur votre réseau local), le nom de votre réseau (votre nom du wifi chez vous, et oui Yana s&#8217;en sert pour savoir si vous êtes en local ou si vous êtes ailleurs). Et enfin il nous reste à mettre l&#8217;ip publique, si bien sur vous avez choisi d&#8217;utiliser Yana depuis internet !</em></p>
<p><strong><em>Plus qu&#8217;une page et c&#8217;est prêt !</em></strong></p>
<p><em>La dernière page de l&#8217;assistant permet de dire à Yana ce qu&#8217;elle doit activer, voici les fonctionnalités possible :</em><br />
<em> Les événements</em></p>
<ul>
<li><em>L&#8217;update des commandes au démarrage de l&#8217;application</em></li>
<li><em>Le message de bienvenue</em></li>
<li><em>Le text to speech</em></li>
</ul>
<p><em>Et voila ! La configuration est terminée ! Un petit recap&#8217; pour vérifier et hop vous voila dans la page principale de Yana !</em> &#8221;<br />
<a href="media/4671fd43.ios1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/ios1.jpg"><img class="aligncenter size-medium wp-image-3895" src="media/81e6b9b3.ios1-169x300.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/ios1-169x300.jpg" alt="ios1" width="169" height="300" /></a><br />
<em>&#8220;Ah si ! Vous aurez peut être remarqué que l&#8217;assistant ne vous demande pas le token, il faudra le rentrer directement dans la configuration de Yana, pour ce faire, on clique sur le petit engrenage en haut à droite on va dans « Configuration du système Yana » Dans l&#8217;onglet Identification et on entre notre Token.</em><br />
<em> On retourne sur la page d&#8217;accueil on actualise et hop on a toutes nos commandes !</em></p>
<p><em>Enjoy !</em></p>
<p><em>Je remercie Valentin CHAPOUX pour son travail sur l&#8217;assistant de configuration et sur la partie de configuration de Yana.&#8221;</em></p>
<p>La version osx est dans la tuyaux, quelques screenshots envoyé par Valentin Chapoux histoire de nous faire bavouiller salement sur la moquette :</p>
<p><a href="media/19416a18.osx.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/osx.png"><img class="aligncenter size-medium wp-image-3892" src="media/d4daf379.osx-300x188.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/osx-300x188.png" alt="osx" width="300" height="188" /></a></p>
<p><a href="media/35d3b762.osx3.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/osx3.png"><img class="aligncenter size-medium wp-image-3896" src="media/2299cdb0.osx3-218x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/osx3-218x300.png" alt="osx3" width="218" height="300" /></a></p>
<p><a href="media/e36d6920.osx2.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/osx2.png"><img class="aligncenter size-medium wp-image-3897" src="media/6e5d4e10.osx2-216x300.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/04/osx2-216x300.png" alt="osx2" width="216" height="300" /></a></p>
<p>Évidemment il vas falloir le harceler un peu pour avoir notre bêta, n&#8217;hésitez pas ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Un grand merci à ces deux contributeurs qui se sont démenés, non seulement sur le code, mais visiblement aussi pendant trois mois sur l&#8217;Apple store afin de partager l&#8217;application (ben oui, chez Apple quand on contribue, il ne suffit pas de payer un compte développeur hors de prix, il faut en plus batailler avec les restrictions imposées, c&#8217;est lamentable&#8230;).</p>
<p>N&#8217;hésitez pas à leurs faire vos retours et à leurs payer une tite binouze, ils la méritent bien !</p>
<p>Bien à vous.</p>


feed_id: http://blog.idleman.fr/?p=3904
title: Yana : Mise a jour des pins en fonction du RPI
uri: Yana-Mise-a-jour-des-pins-en-fonction-du-RPI
url: http://blog.idleman.fr/yana-mise-a-jour-des-pins-en-fonction-du-rpi/
content:
<p>Salut bande de pantomime anémiques ! (260 articles et j&#8217;arrive seulement à cours d&#8217;insultes :D)</p>
<p>Un petit message du haut de mes combles, du fond de ma tranchée, de derrière mon muret en parpaing renforcé, bref&#8230; de mes travaux sans fin pour vous annoncer la mise à jour d&#8217;un petit module très attendue par certains d&#8217;entre vous qui<br />
ont la chance de posséder des rpi dernière génération.</p>
<p><span id="more-3904"></span><br />
J&#8217;ai nommé : la Pin Map de la dashboard de yana.</p>
<p><img src="media/e2ae8e72.Sans-titre-1.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/05/Sans-titre-1.jpg" alt="" /></p>
<p>Pour les endormis du fonds qui viennent de se réveiller, Yana est une interface domotique qui s&#8217;installe sur le rapsberry pi et qui permet<br />
tout un tas de truc inutiles et pas très <a href="http://fr.wikipedia.org/wiki/Facteur_d%27acceptation_f%C3%A9minine">WAF compliant</a>, mais très prisés par les nerds de mon espèce <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Jusqu&#8217;ici ce graphe ne prenait en compte que le mapping de mon ancêtre de rpi  et restait relativement simple sur les infos procurées (à savoir une numeroration de pin de 0 à 17 :D).</p>
<p><span style="text-decoration: underline;"><strong>Pour faire court</strong> </span>(oui parce que j&#8217;ai une poutre à péter avant la tombée de la nuit) Voilà les modification apportées :</p>
<ul>
<li>Modernisation du design (Les icônes, les couleurs, les petites fleurs, toussah toussah)</li>
<li>Ajout des fonctions prévues pour les gpio (port spi, uart, i2c etc&#8230;)</li>
<li>Ajout des nom &#8220;natif&#8221;, des numéro wiring pi et des numéro natif</li>
<li>Scanne et switch uniquement les gpio sans rapport avec la tension</li>
<li>Vérifie le modèle et la version du rpi pour en déduire la map de pins</li>
</ul>
<p>Cette dernière modif est la plus importante puisqu&#8217;elle permet aux rpi 2 et autres sorties récentes de montrer le bon nombre de pins avec les bon numeros / fonction / nom etc&#8230;</p>
<p>Comme je ne possède qu&#8217;une version du rpi et que les infos du web sont très contradictoires la dessus, certains mapping peuvent être faux à l&#8217;heure ou j’écris ce post.</p>
<p>Aussi <del>si vous remarquez</del>  quand  vous remarquerez un problème avec votre version, vous pouvez ouvrir le fichier</p>
<p><strong>Classes/System.class.php</strong>  à la ligne <strong>25</strong> et voir/configurer les différents mapping en fonction des versions.<br />
N&#8217;hésitez pas a me soumettre vos mapping corrigé/ajouté je les intégrerais à la version native pour les prochains.</p>
<p>Bien a vous.</p>


feed_id: http://blog.idleman.fr/?p=3917
title: Un nouveau market qui fait le café
uri: Un-nouveau-market-qui-fait-le-café
url: http://blog.idleman.fr/un-nouveau-market-qui-fait-le-cafe/
content:
<p>Depuis quelques jours vous avez pu constater la présence d&#8217;un nouveau market sur <a href="http://market.idleman.fr">http://market.idleman.fr</a></p>
<p>En effet j&#8217;ai sortis le nez  quelques temps du client <strong>yana4All</strong> (je cherche d’ailleurs des alpha testeurs sous windows pour ceux que ça intéresse me contacter) pour me concentrer quelques heures sur cet outil de contribution qui comporte aujourd&#8217;hui pas moins de 48 plugins pour Yana.<br />
<span id="more-3917"></span><br />
C&#8217;est notamment ce nombre bluffant de plugins qui m&#8217;a poussé a améliorer un peu l&#8217;outil de contribution dont la première version avait été fait un peu sans y croire et surtout beaucoup à l&#8217;arrache <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
<a href="media/be7f30e5.01.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/01.jpg"><img class="aligncenter size-full wp-image-3918" src="media/be7f30e5.01.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/01.jpg" alt="01" width="1014" height="671" /></a><br />
Cette nouvelle mouture  devrait donc pallier en parties aux ennooooormes carences de l&#8217;ancien market avec les fonctionnalités suivantes :</p>
<p>Meilleur affichage des plugins dans la home et ajout de fiches plugins</p>
<p><a href="media/29549314.02.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/02.jpg"><img class="aligncenter size-full wp-image-3919" src="media/29549314.02.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/02.jpg" alt="02" width="959" height="634" /></a><br />
Les contributeurs ont maintenant la possibilité de tout modifier sans attendre de validation<br />
Possibilité de contacter un contributeur sans que son mail ne s&#8217;affiche sur le site</p>
<p><a href="media/d411727b.03.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/03.jpg"><img class="aligncenter size-full wp-image-3920" src="media/d411727b.03.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/03.jpg" alt="03" width="831" height="510" /></a><br />
&#8211; Possibilité de commenter un plugins<br />
&#8211; Mini statistiques sur le nombres de téléchargements par plugin et le nombre de commentaires<br />
&#8211; Possibilité d&#8217;ajouter des images sur les plugins<br />
&#8211; Distinction du propriétaire du plugin (la personne qui l&#8217;a soumis sur le market) et de l&#8217;auteur (le(s) développeur(s))<br />
&#8211; Interface semblable a yana (réutilisation du core cms de yana)<br />
&#8211; Gestion des profils etc&#8230;</p>
<p>N&#8217;hésitez pas à faire un tour pour encourager vos plugins favoris et poser vos questions / suggestions à leurs auteurs!</p>
<p>Gros poutou !</p>


feed_id: http://blog.idleman.fr/?p=3927
title: A-Arrgghh…
uri: A-Arrgghh
url: http://blog.idleman.fr/a-arrgghh/
content:
<p>Petite note de service à ceux qui m&#8217;ont envoyé des mails ou des commentaires blogs, de question ou d&#8217;encouragement et à qui je n&#8217;ai toujours pas répondu : promis je ne vous snobe pas, mais je suis complétement submergé par vos ptit messages (que je lis pourtant toujours avec un plaisir immodéré).</p>
<p><span id="more-3927"></span></p>
<p>Pas moins de<strong> 277 mail</strong> non lus et<strong> 142 commentaires</strong> en attente de validations screenshots à l’appui, il vas me falloir une secrétaire cochonne pour traiter tous ces ptits mots avant 2020 <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /> !</p>
<p>Promis, je ne vous oublie pas, je lis tout, si je ne réponds pas tout de suite, c&#8217;est généralement que c&#8217;est beaucoup trop intelligent pour moi et que j&#8217;ai besoin de temps et de neurones disponibles  pour y répondre ^^.</p>
<p>Bien à vous !</p>
<p><a href="media/a9020d89.012.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/012.jpg"><img class="aligncenter size-full wp-image-3930" src="media/a9020d89.012.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/012.jpg" alt="01" width="1173" height="436" /></a><a href="media/63bb70fa.021.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/021.jpg"><img class="aligncenter size-full wp-image-3929" src="media/63bb70fa.021.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/07/021.jpg" alt="02" width="1197" height="603" /></a></p>


feed_id: http://blog.idleman.fr/?p=3952
title: Work in progress
uri: Work-in-progress
url: http://blog.idleman.fr/work-in-progress/
content:
<p>Un petit post rapide pour ceux qui pensent encore que je me touche la nouille pendant ces longs mois d&#8217;absence ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>L&#8217;alpha du nouveau client yana est en bonne voie de parution, une petite vidéo dans le lien ci après&#8230;</p>
<p><span id="more-3952"></span></p>
<p><a href="https://youtu.be/wFf0JdSWV8s">https://youtu.be/wFf0JdSWV8s</a></p>
<p><strong>Au programme :<br />
</strong>Mots personnalisés, lancements de programmes,gestion des émotions, sockets à gogo, interfaces full html5/js/css3, les plugins peuvent instantanément faire parler/réagir le(s) client(s), plus de simplicité pour déclarer les commandes, possibilité de gerer du multi client et de différencier les pièces ou la phrase est reconnue/parlée&#8230;</p>
<p>La syntaxe coté plugin devrait ressembler à ça</p>
<p><strong>Déclaration de la commande :</strong></p><pre class="crayon-plain-tag">$response['commands'][] = array(
    'command'=&gt;$conf-&gt;get('VOCAL_ENTITY_NAME').' montre toi',
    'callback'=&gt;'vocalinfo_show_you',
    'confidence'=&gt;0.8
);</pre><p><strong> Fonction résultante</strong></p><pre class="crayon-plain-tag">function vocalinfo_show_you($text,$confidence,$parameters){
    $cli = new Client();
    $cli-&gt;connect();
    $cli-&gt;image(YANA_URL."/plugins/vocal_infos/img/yana.jpg");
    $cli-&gt;talk("Est ce que tu me trouve jolie?");
    $cli-&gt;disconnect();
}</pre><p>Nb : je recherche un pro du socket pour m&#8217;aider sur le débogage, ainsi qu&#8217;un éventuel dingo du nodejs/nodewebkit pour tenter de mieux encapsuler la partie interface dans un exe sans perte de perfs.</p>
<p>Bon week end à tous !</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=3958
title: Le bordel de l’info #31
uri: Le-bordel-de-l-info-31
url: http://blog.idleman.fr/le-bordel-de-linfo-31/
content:
<p>Salut bande de lésions testiculaires (ça doit piquer ça&#8230;) !Vous en avez dla chance !!</p>
<p>A l&#8217;heure ou votre serviteur noyé dans le béton et l&#8217;enduit tente de rénover sa ruine de maison vous, vous êtes comme des pachas, dans votre fauteuil louis 14 de contrefaçon,à vous saler une<br />
3 em tranche du bordel de l&#8217;info !<br />
<span id="more-3958"></span></p>
<ul>
<li>Le nouveau <a href="http://korben.info/raspberry-pi-zero.html">Raspberry pi &#8220;Zero&#8221; est sortis</a> et coute 5$ (certainement &#8220;traduit&#8221; en 5€ ou plus en Europe par nos cher fournisseurs) et à la taille d&#8217;une petite boite d’allumette.<br />
Inutile de préciser que les possibilités deviennent énorme, bien qu&#8217;a mon sens l&#8217;ajout de quelques arduino soient toujours nécessaire pour traiter les tâches de bas niveau sur un projet domotique ou robotique. Les commandes sont évidemment<br />
saturées et vous ne pourrez probablement pas commencer avant quelques mois.&nbsp;</li>
<li>Julien soulignac (l&#8217;ancien blogueur de Julien et Nel) ouvre un <a href="http://SqliteBlog.fr">service d&#8217;hébergement gratuit</a> et sans pub, les techno disponibles sont SQLITE et PHP, beau projet mais pas facile a maintenir sans revenus, pourvu que ça dure !&nbsp;</li>
<li>Xavier, un ptit génie français du hardware nous a concocté un joli projet <a href="http://www.limifrog.io/">du nom de limiFrog </a>concrètement il s&#8217;agit d&#8217;une &#8220;brique&#8221; connectée, contenant tout un tas de features (écran oled tactile, bluetooth, accéléromètres,pins, batterie lipo, processeur ARM, gyroscope, magnétomètre,micro, capteurs de pression/altitude/distance etc.) pouvant servir de base à n&#8217;importe quel type de projet à travers une API proposé par le Xavier himself.<br />
Quelques exemples d&#8217;utilisation sont disponible sur le site web (smartwatch, robot, punching ball connecté&#8230;) si le projet fais bien baver j&#8217;y vois quand même deux petits inconvénients : pas de wifi (tout passe par le Bluetooth pour des raisons de consommation essentiellement) et le prix peux en refroidir plus d&#8217;un puisque l&#8217;offre la moins évoluée est à pas moins de 70€, le full feature pour 100€.<br />
C&#8217;est cependant un beau projet que vous pouvez soutenir sur <a href="https://www.kickstarter.com/projects/765344573/limifrog-ultra-compact-prototyping-for-iot-and-muc/description">le kickstarter officiel</a>. A noter que l&#8217;on peux faire tourner dessus des os léger type FreeRTOS ou TinyOS&nbsp;</li>
<li><a href="https://rocket.chat/">Rocket.chat</a> est un script de chan instantané (nodejs inside) open source permettant l&#8217;échange et la collaboration avec vos groupes de travail sur une interface moderne et réactive, si le script est relativement awesome, l&#8217;install fait encore perdre quelques cheveux et nécessite un utilisateur avertis ainsi qu&#8217;un bon termos cafeiné.<br />
<strong>nb :</strong> Dans la même veine il y a <a href="http://peps.in/products.html">PEPS </a>je n&#8217;ai pas testé, les screenshots sont encourageant mais l&#8217;install ne se fait visiblement que via docker ce qui peux dérouter encore une fois les non initiés.&nbsp;</li>
<li>Les librairies de <a href="http://jquerymy.com/">data-binding</a> javascript se multiplient ces derniers temps, la plateforme la plus notable étant peut être <a href="https://www.meteor.com/">meteor</a> qui met à disposition tout un tas d&#8217;outils pour développer des application js réactives, modernes et portable. Personnellement j&#8217;ai beaucoup de mal avec ces librairies qui vous enferment dans une architecture particulière, mais il faut reconnaitre que le ratio temps passé/qualité applicative avec meteor est assez bluffant (du moins tant qu&#8217;on reste dans les exemples du getting started)&nbsp;</li>
<li><a href="https://codyhouse.co/gem/stretchy-navigation/">Strechy </a>navigation met à disposition plusieurs types de barres de navigation stylées en rounded flat design, j&#8217;aime beaucoup l&#8217;exemple 3 (https://codyhouse.co/demo/stretchy-navigation/edit.html) qui peut être très utile pour proposer discrètement des options de share/download sur tous types de média, c&#8217;est toujours délicat en terme d&#8217;ergonomie.<br />
Dans le même style de menu un peu fignolé<a href="http://tympanus.net/Blueprints/MultiLevelMenu/"> il y a la solution de blueprint.</a>&nbsp;</li>
<li><a href="http://korben.info/wireshark-2-0-dispo.html">Wireshark 2</a> est sortis, pour les élèves du fond, wireshark un programme foutrement utile puisqu&#8217;il vous permet de tracer les paquets émis et reçu par vos différentes cartes réseau, ce qui est très pratique pour faire notamment du rétro engineering sur certaines applications ou pour savoir  concrètement ce que certains programmes peuvent envoyer à votre insu. Visiblement pas de grosses MAJ sur cette version 2 a part une refonte graphique et une simplification des menu (et yen avait besoin&#8230;).&nbsp;</li>
<li>Petite pensée (tardive, je sais) pour les victimes de Paris, je ne sais pas ce qui est les plus déplorable, l&#8217;acte en lui même ou les gens obscènes qui s&#8217;en emparent pour produire le buzz (médias, internautes qui en font trop) ou pour faire passer une vingtaines de lois castratrices sous couvert d&#8217;assurer la sécurité des français.<br />
Au fond toute cette pub, ce tapage médiatique et politique à outrance qui diffuse la terreur et la parano dans toute la France, c&#8217;est peut être ce que souhaite Daesh, en l’occurrence, ils ne sont jamais déçu&#8230;&nbsp;</li>
<li>Si vous êtes un peu lassé de boostrap mais que vous trouver quand même le concept bien pratique, allez faire un tour du <a href="http://foundation.zurb.com/sites.html">coté de foundation</a> ce framework front-end est de plus en plus évolué et pourrait peut être détrôner un jour le bébé de twitter.&nbsp;</li>
<li><a href="http://una.im/CSSgram/">CSSgram </a>permet d&#8217;appliquer des filtres CSS sympa sans passer à la moulinette instagram, parfois un peu trop orienté réseau sociale quand on veux simplement trafiquer ses photos et les garder pour sois. CSSgram est dispo en ligne ou auto hébergé (simple fichier css).&nbsp;</li>
<li>C&#8217;est quand même génial ce <a href="http://www.zem.fr/devenir-un-super-heros-arduino-mini/">qu&#8217;on peux faire avec un arduino </a>et un peu de temps (j&#8217;ai les ardui, il me manque plus que le temps :D)&#8230;&nbsp;</li>
<li>Un ptit site statique à créer/maintenir pendant la pause café ? Pas envie de coder ? <a href="http://sitecake.com/">Sitecake</a> est un CMS éditable en <strong>WYSIWYG</strong> avec drag &amp; drop a gogo sur un fond de boostrap permettant d&#8217;ajouter en deux clics textes, médias et autres joyeuseries. Ça m&#8217;a l&#8217;air complet mais un peu bugué si vous êtes un rapide du clic.&nbsp;</li>
<li>Fabriquer un télémètre avec un arduino et trois bout de ficelle (au figuré)<a href="http://www.semageek.com/diy-comment-fabriquer-un-telemetre-a-ultrasons-avec-un-arduino"> c&#8217;est par ici </a>que ça se passe !&nbsp;</li>
<li>J&#8217;ignorais totalement que google avait sortis son framework material front end <a href="https://www.google.com/design/spec/components/buttons.html">concurrent a boostrap</a> &#8230; passer à coté d&#8217;un truc comme ça&#8230; je me fais vieux&#8230;&nbsp;</li>
<li>Une tour blanche géante qui recycle l&#8217;air ambiant et compresse la pollution récoltée en petits cubes vendu par la suite comme des bijoux ça vous parait délirant ? <a href="http://www.semageek.com/the-smog-free-tower-la-tour-qui-recyle-la-pollution-de-lair-en-petits-cubes">C&#8217;est pourtant le monde dans lequel vous vivez <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></a> (elle est chouette cette planete !))&nbsp;</li>
<li>Il a beau être en papier, il <a href="http://www.semageek.com/un-robot-animatronic-terminator-t-800-a-echelle-humaine">fout des jetons ce terminator </a> !&nbsp;</li>
<li>Yana4All windows bêta est prêt, il me reste a régler le problème de la rétro compatibilité avec les anciens plugins histoire de ne pas perdre ces 48 fabuleuses contributions à la plateforme domotique. J&#8217;ai l’espoir de trouver une minute ce week end pour régler ce problème et vous proposer la version beta en libre téléchargement dans la semaine prochaine (ouh que je suis ambitieux !)</li>
</ul>
<p>Bien à vous,</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=3965
title: Sys1 recrute du dev en région bordelaise
uri: Sys1-recrute-du-dev-en-région-bordelaise
url: http://blog.idleman.fr/sys1-recrute-du-dev-en-region-bordelaise/
content:
<p>Ma boite recrute un développeur pour des missions C# / Asp.net et PHP.</p>
<p>Le contrat consisterait dans un premier temps en un CDD de 6 Mois sous ma direction (parfois despotique mais j&#8217;y travaille :D) avec d’éventuels débouchés au terme du contrat si tout se passe bien.</p>
<p>De bonnes bases en<strong> C# .NET</strong> sont nécessaires, les connaissances<strong> web/PHP</strong> sont un plus, pour le reste, seule la <strong>passion</strong> et le <strong>sérieux</strong> sont requis :).</p>
<p>Si vous êtes intéressé et en région bordelaise, n&#8217;hésitez pas à postuler sur la section <a href="http://sys1.fr/pages/recrutement">recrutement de Sys1</a>, ou à me contacter directement sur ma boite mail <strong><em>idleman arobase idleman point fr</em></strong>.</p>


feed_id: http://blog.idleman.fr/?p=3970
title: Comment ont il écrit star wars 7 ?
uri: Comment-ont-il-écrit-star-wars-7
url: http://blog.idleman.fr/comment-ont-il-ecrit-star-wars-7/
content:
<p>Si vous avez vu le nouveau star wars 7 sortis récemment en salle, vous avez du vous demander comment les scénaristes de Disney ont pu composer une telle bouse sans s&#8217;immoler par le feu après coup jusqu’à ce que mort (lente douloureuse et la gueule ouverte) s&#8217;en suive <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Hé bien ne cherchez plus car un commentateur allociné a retrouvé le dialogue pré production entre les deux stagiaires scénaristes de star wars 7 (attation spoiler :p)</p>
<p>&#8211; &#8220;Bon les gars, faut introduire un nouveau personnage qui va devenir jedi plus tard, on crée quoi comme background ?&#8221;</p>
<p>&#8211; &#8220;Bah ils ont fait comment dans la guerre des étoiles ?&#8221;</p>
<p>&#8211; &#8220;Ils ont trouvé un mec sans charisme, qui bidouillait un peu la mécanique sur une planète sableuse, et qui voit un droïde arriver, ah oui et il était orphelin.&#8221;</p>
<p>&#8211; &#8220;Ah , sinon j’ai un post-it de walt disney, les lobbys féministe font pression car les personnages combattant sont tous des hommes dans les starwars, donc faudrait mettre une femme. Il faudrait mettre une femme qui commande les hommes, style une femme générale, et aussi une femme qui latte les couille du méchant à la fin. C’est sur le post it. Il est obligatoire dans tous les films sinon on va se faire flinguer&#8221;</p>
<p>&#8211; &#8220;Ah bah dans ce cas on change rien à la recette qui gagne, on a qu’a mettre une femme qui bidouille un peu la mécanique sur une planète sableuse, qui voit un droïde arriver et qui est orpheline. Et pour le général on a qu’à mettre la princesse leia&#8221;</p>
<p>&#8211; &#8220;Super idée ! Bon maintenant les mecs ils faut s’attaquer à l’entourage du héro. Ils faisaient comment dans les précédent ?&#8221;</p>
<p>&#8211; &#8220;Bah ils rencontrent harrison ford et chewbaca, yavait le faucon millenium sur la planète sableuse, et ils s’enfuient lorsque les trooper arrivent et après ils se cachent dans une trappe de contrebande, puis ils arrivent sur un astéroïde ou des animaux chelou se collent sur les parois du faucon millenium.&#8221;</p>
<p>&#8211; &#8220;Bah on a qu’à faire pareil non ?&#8221;</p>
<p>&#8211; &#8220;Bah , on si on fait exactement pareil, on va nous accuser d’avoir copié, faut être un peu original, on a qu’à changer un peu l’ordre.&#8221;</p>
<p>&#8211; &#8220;Ok, donc ils prend le faucon millenium sur la planète sableuse, ils s’enfuient lorsque les troopers arrivent, et après ils se cachent dans une trappe de contrebande PUIS ils rencontre harrisson ford et chewbaca, puis ils ont leur mettra un animal chelou sur le pare-brise du faucon millenium.&#8221;</p>
<p>&#8211; &#8220;Ah ouai pas bête! Bon maintenant, il faut trouver un grand méchant.&#8221;</p>
<p>&#8211; &#8220;ils ont fait quoi dans les précédents ?&#8221;</p>
<p>&#8211; &#8220;ils ont pris un mec habillé tout en noir avec un masque, sur un vaisseau amiral, qui étrangle les membre de son équipage.&#8221;</p>
<p>&#8211; &#8220;Bah on a qu’à faire pareil.&#8221;</p>
<p>&#8211; &#8220;Ah ouai pas bête, par contre dans le scenario original, il porte un masque car il a des problème de brulure au 3eme degré et a du mal à respirer.&#8221;</p>
<p>&#8211; &#8220;Ouai mais on s’en fou, on va pas compliquer l’histoire, on a qu’à dire que le mec porte un masque juste car il veut être fashion, même si il respire très bien. On est walt disney, c&#8217;est des ado qui nous regardent, on a qu’à dire qu’il veut faire comme son idole. D&#8217;ailleurs le protagoniste est un ado boutonneux capricieux aux cheveux longs&#8221;</p>
<p>&#8211; &#8220;ET puis pour son épée, on va être super inventif on va lui faire une garde.&#8221;</p>
<p>&#8211; &#8220;Mais ça sert à rien une garde dans les chorégraphie de sabre laser&#8221;</p>
<p>&#8211; &#8220;Ouai mais on a pas de chorégraphe, yavait pas le budget, on va refaire des combat en mode manche à balais&#8221;</p>
<p>&#8211; &#8220;Ouai donc on s’en fou C’était quoi le twist des épisode précédents ?&#8221;</p>
<p>&#8211; &#8220;En faite luc le gentil est le fils du grand méchant !! ahah bien trouvé non ? Et luc est tenté par le coté obscur de la force&#8221;</p>
<p>&#8211; &#8220;Bah on a qu’à continuer la ligné On va faire le méchant le fils de Leila ! Et lui sera tenté par le coté lumineux de la force ?&#8221;</p>
<p>&#8211; &#8220;Oui mais c&#8217;est pas possible, le coté séduisant est le propre du coté obscur, pas du coté lumineux&#8221;</p>
<p>&#8211; &#8220;On s’en fou !&#8221;</p>
<p>&#8211; &#8220;et c&#8217;est pas possible qu’il ait la force, dans l’épisode 1 avec Anakin ils expliquent bien que le fait d’avoir la force est héréditaire par le père seulement ! c’est donc IMPOSSIBLE qu’il ait la force si c&#8217;est le fils de leia&#8221;</p>
<p>&#8211; &#8220;Mais tu crois vraiment qu’ils vont se souvenir de ça ?&#8221;</p>
<p>&#8211; &#8220;Ah ouai ils sont idiots, on sen fou. Et le deuxième twist ?&#8221;</p>
<p>&#8211; &#8220;Sur une passerelle dans le vaisseau amiral, Darkvador invite luc à le rejoindre du coté obscur et lui annonce qu’il est son père. Puis luc se fait trancher et sombre de la passerelle&#8221;</p>
<p>&#8211; &#8220;Ok donc si on inverse les termes.. Solo annonce à haute voix qu’il est le père du méchant, et l’invite à le rejoindre du coté de la lumière. Puis le méchant tranche son père qui sombre de la passerelle !&#8221;</p>
<p>&#8211; &#8220;Oulah ils sont sacrément con si ils font pas le rapprochement !&#8221;</p>
<p>&#8211; &#8220;Bah oui, je te paris même qu’ils vont applaudir à la fin. Bon.. ça avance, et sur l’intrigue ?&#8221;</p>
<p>&#8211; &#8220;&#8230;&#8221;</p>
<p>&#8211; &#8220;Ok alors dans les précédents, c’était une étoile noire, un astre capable de détruire d’autres planètes de la résistance.&#8221;</p>
<p>&#8211; &#8220;Bah voila, on la tient notre idée !&#8221;</p>
<p>&#8211; &#8220;Attend, on peut quand même pas faire pareil , si ? comment les gens vont faire la différence avec starwars&#8221;</p>
<p>&#8211; &#8220;Bah on fait une étoile noire encore plus grande ! on est walt disney après tout.&#8221;</p>
<p>&#8211; &#8220;Ah ouai et pour le final ?&#8221;</p>
<p>&#8211; &#8220;Comme dans les précèdent on détruit la planète avec des petits chasseurs qui se faufilent à la surface, une fois que le bouclier de l’étoile noire est désactivé.&#8221;</p>
<p>&#8211; &#8220;Ah ouai pas bête, oulah on va aller manger de bonne heure aujourd’hui, on torche le scenar vite fait !&#8221;</p>
<p>&#8211; &#8220;Bon sinon on a répondu au lobby féministe, mais J’ai reçu un mail des association antiraciste, ils vont nous faire chier si ont milite pas pour la diversité&#8221;</p>
<p>&#8211; &#8220;Ah bah on a qu’à en mettre un. Un storm trooper blanc dehors, qui est noire en faite , ça serait drôle non ? ahah ouai mais il va servir à quoi ce storm trooper ?&#8221;</p>
<p>&#8211; &#8220;Bah à la morale de l’histoire, c’est le seul de tous à trouver ça pas bien ce que fait l’empire.&#8221;</p>
<p>&#8211; &#8220;Ouai d&#8217;ailleurs comme c&#8217;est les méchant, pour bien insister on a qu’a représenter l’empire comme l’empire nazi, car ça plait bien aux lobbys cette référence.&#8221;</p>
<p>&#8211; &#8220;On les représente comment ?&#8221;</p>
<p>&#8211; &#8220;Un grand plan avec un grand drapeau rouge derrière, et un mec qui parle fort sur scène&#8221;</p>
<p>&#8211; &#8220;Tu crois que ça va suffire ?&#8221;</p>
<p>&#8211; &#8220;Non, ta raison, on a qu’à faire faire un salut nazi à tous les stormtrooper, ça va claquer&#8221;</p>
<p>&#8211; &#8220;Oh yeah Plopplop Plop, Oh putain mais jy pense, on a fait un starwars et on a pas de Jedi !!!&#8221;</p>
<p>&#8211; &#8220;Oh merde, tes sur ?&#8221;</p>
<p>&#8211; &#8220;Ouai !&#8221;</p>
<p>&#8211; &#8220;Bon, on a déjà presque tout écrit, on en es ou dans le scenario la ?&#8221;</p>
<p>&#8211; &#8220;Bah à la fin, ils sont déjà en train d’attaquer l’étoile noire !&#8221;</p>
<p>&#8211; &#8220;Bon, prend la fille, Et on lui fait acquérir tous les pouvoirs de Jedi en 15Minute, sans avoir besoin d’utiliser les mains., et on lui fait combattre à arme égale avec le grand méchant qui a suivi des année de formation, et elle gagne à la fin.&#8221;</p>
<p>&#8211; &#8220;Mais manier le sabre, ou même apprendre la force, ça fait parti d’une formation jedi de plusieurs année même pour les plus doués !&#8221;</p>
<p>&#8211; &#8220;Ouep mais on a pas le temps !&#8221;</p>
<p>&#8211; &#8220;et le grand méchant jedi il va paraitre faible non ?&#8221;</p>
<p>&#8211; &#8220;Ouai, mais de toute façon il a déjà galéré au sabre contre un storm trooper qui en a jamais manié un de sa vie. Et il fait des caprice d’adolescent à taper contre les meuble dans son vaisseau&#8221;</p>
<p>&#8211; &#8220;Ouai pas très crédible quand même..&#8221;</p>
<p>&#8211; &#8220;On s’en fou, on a plus le temps, la planète va exploser dans 5mn et on avait totalement oublié.&#8221;</p>
<p>&#8211; &#8220;pis ça règle pas le problème du jedi…&#8221;</p>
<p>&#8211; &#8220;il reste combien de minute au film ?&#8221;</p>
<p>&#8211; &#8220;30seconde&#8221;</p>
<p>&#8211; &#8220;Bah vas y, on le fait apparaitre à la fin avec une capuche, comme ça on aura rempli le cahier des charges. Bon sinon j&#8217;ai « faire un film pour les nuls » ya une page d’ingrédient à ajouter, on m’a offert ça à mon anniversaire, regarde par exemple :&#8221;</p>
<p>&#8211; &#8220;lorsque vous voulez faire affronter deux protagoniste sans qu’ils meurent, faites qu’un éboulement ou une catastrophe les sépare.&#8221;</p>
<p>&#8211; &#8220;Bah vas y on le met !&#8221;</p>
<p>&#8211; &#8220;Lorsque vous faite manier un pistolet à une femme, il faut qu’elle se foire, et qu’elle oublie le cran de sureté&#8221;</p>
<p>&#8211; &#8220;Bah vas y on le met !_&#8221;</p>
<p>&#8211; &#8220;Il y en a sur des pistolaser ?&#8221;</p>
<p>&#8211; &#8220;J’en sais rien mais c’est toujours super drôle ! Mec , je viens de relire m’apercevoir, Chewie est bien le dernier de sa race non ?&#8221;</p>
<p>&#8211; &#8220;Ouep, elle a été défoncée dans un épisode précédent&#8221;</p>
<p>&#8211; &#8220;C&#8217;est donc super dur que quelqu’un parle sa langue à part han solo et C3po non ?&#8221;</p>
<p>&#8211; &#8220;Oui c&#8217;est impossible&#8221;</p>
<p>&#8211; &#8220;Et comment fait la nana pour comprendre que chewie lui dit que le mec a insisté pour revenir la chercher sur la planète ?&#8221;</p>
<p>&#8211; &#8220;&#8230;..&#8221;</p>
<p>&#8211; &#8220;En plus de ça un moment il est dit que le sabre laser a choisi la nana, c&#8217;est le stagiaire qui a écrit ça ?&#8221;</p>
<p>&#8211; &#8220;Bah jsais pas un truc avec la force non ?&#8221;</p>
<p>&#8211; &#8220;Mais non ! un sabre laser c&#8217;est juste du métal, alors que les midichlorien, sont que dans les autres être vivant, un sabre laser peut donc pas avoir de volonté ni choisir qui que ce soit !&#8221;</p>
<p>&#8211; &#8220;Ouai mais ça fait « élu » c&#8217;est sympa ! &#8221;</p>
<p>Je crois qu&#8217;il ne manque pas grand chose à ce commentaire à part peut être une mention spéciale pour les doublures atroces, les scènes téléphonées, les transitions bâclées, l&#8217;humour potache et le plagiat plus que douteux, mais la question qui m&#8217;a taraudé tout au long du film et qui continue à me torturer c&#8217;est : que fout donc voldemort (snoke) dans ce film ? <img src="media/96335905.icon_ooh.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_ooh.png" alt="oO" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Je n&#8217;ai pas la prétention ou l&#8217;habitude de faire de la critique cinématographique sur ce blog, mais depuis que j&#8217;ai dépensé à regret deux places gratuites et 2h15 de ma vie j&#8217;ai un sale arrière gout que seul un petit post haineux me permettra d&#8217;évacuer <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /> !</p>
<p>Star wars 7, pour ceux qui ne l&#8217;ont pas vu, ne faites pas la bêtise  d&#8217;y aller, même si c&#8217;est offert, même si on vous finance pour le voir, pour les autres, il faudra apprendre à vivre avec ça.</p>


feed_id: http://blog.idleman.fr/?p=3975
title: Yana4All 0.1 Beta, c’est par ici !
uri: Yana4All-0-1-Beta-c-est-par-ici
url: http://blog.idleman.fr/yana4all-0-1-beta-cest-par-ici/
content:
<p>Çà fait un ptit moment que je promet la sortie d&#8217;un nouveau client de reconnaissance/synthèse et interface vocale pour Yana.</p>
<p>Voilà un ptit moment que je le teste à fond avec deux trois alpha testeurs et bien qu&#8217;il ne soit pas encore 100% stable et aboutis, je me sent l&#8217;obligation de partager la bêta avec vous voir ce que vous en pensez.</p>
<p><span id="more-3975"></span></p>
<p><a href="media/45e26337.08.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/08.png"><img src="media/45e26337.08.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/08.png" alt="" /></a></p>
<p>Concrètement les plus de Yana4All c&#8217;est quoi ?</p>
<p><strong>Plus stable, plus souple</strong></p>
<p>Le programme étant divisé en trois binaires ayant chacun une fonction (écoute, synthèse, et interface graphique) les tâches sont mieux réparties, il est possible d&#8217;utiliser deux fonctionnalités sur les trois, ou même une seule afin d’alléger encore le processus en fonctions de vos besoins.</p>
<p><strong>Plus réactif, plus omniprésent</strong></p>
<p>Les binaires étant relié au serveur par socket (et non plus par http comme autre fois) les échanges se font de manière bi-latérale (ex: php peux dicter une phrase ne temps réel a l&#8217;un des clients) et instantanée, de plus il est possible de multiplier les binaires en fonction de la configuration que vous souhaitez, vous pouvez par exemple placer une synthèses ou une reconnaissance dans chaque pièces, un client transmettant l&#8217;identifiant de sa pièce, il vous est alors possible de parler dans le salon et pas ailleurs, ou de reconnaître que la phrase vient de la cuisine.</p>
<p><strong>Plus customizable</strong></p>
<p>La partie interface graphique est entièrement en html5/css3/javascript, si vous êtes a l&#8217;aise avec le développement web vous pouvez donc la modifier et lui donner le visage de vos envie en utilisant les fonctions d&#8217;api a votre disposition.</p>
<p><strong>Plus à l&#8217;écoute</strong></p>
<p>Vous pouvez maintenant dicter des mots libres en fin de commande ex : yana définit le mot &#8220;&lt;placez votre mot ici&gt;&#8221;</p>
<p><strong>Les plugins compatibles</strong></p>
<p>La syntaxe des plugins pour utiliser yana4all varie légèrement, aussi la plupart des plugins actuels ne sont pas compatibles, vous pouvez cependant regarder les phrases d&#8217;exemples disponibles dans vocalinfo (yana définit le mot &lt;mot&gt;, yana montre toi, yana énerve toi, yana lance le programme etc&#8230;)</p>
<p>J&#8217;essaierais de sortir un plugin 100% voué au client 2 avec une doc claire dans un second temps.</p>
<p><strong>Installation</strong></p>
<p><span style="text-decoration: underline;">Coté serveur</span>, commencez par mettre yana-server à jour</p><pre class="crayon-plain-tag">cd /var/www/html/yana-server (ou /var/www/yana-server en fonction de votre version d'apache)
git pull</pre><p>Puis lancez manuellement le serveur socket (un lancement automatique viendra dans le futur)</p><pre class="crayon-plain-tag">php /var/www/yana-server/socket.php</pre><p></p><pre class="crayon-plain-tag">(ou /var/www/yana-server/socket.php en fonction de votre version d'apache)</pre><p>Si la commande php n&#8217;est pas reconnu, installez php-cli</p><pre class="crayon-plain-tag">sudo apt-get install php-cli</pre><p>Si tout s&#8217;est bien passé, le message suivant devrait apparaître</p>
<p><a href="media/ef37f9fb.01.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/01.png"><img src="media/ef37f9fb.01.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/01.png" alt="01" /></a></p>
<p>Une fois le serveur lancé ne fermez pas la console, cela l’éteindrais, pour une utilisation plus permanente du serveur, vous pouvez créer un cron lançant le serveur en tâche de fond au démarrage.</p>
<p><span style="text-decoration: underline;">Coté client</span>, <a href="http://idleman.fr/ressources/YANA0.1Beta.7z">téléchargez yana4all beta 0.1 ici</a> et dé-zippez le.</p>
<p>Lancez l’exécutable situé dans bin/launcher.exe et suivez les instructions</p>
<p><a href="media/f68b1a9f.02.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/02.png"><img  src="media/f68b1a9f.02.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/02.png"  /></a></p>
<p>&nbsp;</p>
<p><a href="media/ede16508.03.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/03.png"><img  src="media/ede16508.03.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/03.png" /></a></p>
<p><a href="media/ec225bda.04.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/04.png"><img  src="media/ec225bda.04.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/04.png" /></a></p>
<p>&nbsp;</p>
<p>Lancez ensuite les différentes icônes du launcher, notez bien que les trois binaires sont regroupés dans le même dossier mais qu&#8217;ils peuvent fonctionnez en étant dissocié et sur des postes différents tant que vous associez un fichier conf.json correctement configuré a chaque binaire.</p>
<p>En lançant les applications vous devriez voir ça :</p>
<p><strong> Interface (face.exe)</strong></p>
<p><a href="media/e70b471f.07.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/07.png"><img src="media/e70b471f.07.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/07.png" alt="07" width="510" height="467" /></a></p>
<p><strong>Reconnaissance (ear.exe)</strong></p>
<p><a href="media/dc065063.06.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/06.png"><img  src="media/dc065063.06.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/06.png" alt="06" width="502" height="405" /></a></p>
<p><strong>Synthèse (mouth.exe)</strong></p>
<p><a href="media/74b9a411.05.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/05.png"><img  src="media/74b9a411.05.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2015/12/05.png" alt="05" /></a></p>
<p><strong>Coder avec ça</strong></p>
<p>En attendant une doc un peu plus conséquente, vous pouvez vous fier aux exemples du plugin vocalinfo ainsi qu&#8217;au billet<a href="http://blog.idleman.fr/work-in-progress/"> Work in progress </a>pour avec quelques bout de codes compatibles avec le nouveau client.</p>
<p>N&#8217;hésitez pas à me faire vos retours de bugs/features <a href="https://github.com/ldleman/yana-server/issues">sur le github </a>ma boite étant totalement submergée de vos messages je ne peux plus répondre rapidement dessus <img src="media/5ec9caf3.icon_biggrin.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_biggrin.png" alt=":)" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Prochaine étape</p>
<p>Je suis en train de porter le programme sur windows Iot (windows pour raspberry pi) de manière a se passer intégralement de pc.</p>


feed_id: http://blog.idleman.fr/?p=4006
title: [Billet invité] Yana v2 pour Android
uri: Billet-invité-Yana-v2-pour-Android
url: http://blog.idleman.fr/billet-invite-yana-v2-pour-android/
content:
<p><em>Article écrit par <strong>Alexandre Roland</strong></em></p>
<p>Salut bande d&#8217;Idlenaute,</p>
<p>Je vous présente aujourd&#8217;hui la nouvelle application Android pour Yana. Celle-ci fonctionne &#8220;normalement&#8221; parfaitement avec la nouvelle version <a href="https://github.com/ldleman/yana4all-binaires/archive/v1.0.beta.zip">Yana4All 0.1 Beta</a>.</p>
<p><span id="more-4006"></span><strong>Comment ça fonctionne:</strong></p>
<p>Avant même d’installer/ouvrir l&#8217;application sur votre super smartphone il vous faudra lancer le serveur afin que les clients puissent se connecter. Pour se faire taper la commande suivante:</p><pre class="crayon-plain-tag">sudo php /var/www/yana-server/socket.php</pre><p>Vous devriez obtenir le retour suivant:</p><pre class="crayon-plain-tag">[09/01/2016 17:23:03] Server started on 0.0.0.0:9999</pre><p>Voilà, vous êtes fin prêt pour le premier lancement de l&#8217;application.</p>
<p><strong>Installation de l&#8217;application:</strong></p>
<p>Vous pouvez la télécharger directement sur le Play Store en tapant le mot clef Yana v2 (a ne pas confondre avec yana tout court qui est la v1.0 de nover) ou alors en cliquant sur le lien suivant: <a href="https://play.google.com/store/apps/details?id=alexandreroland.yana&amp;hl=fr" target="_blank">Yana v2</a></p>
<p><strong>Voici la page de connexion:</strong></p>
<p><a href="media/c71e99e9.connexion.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/connexion.png"><img class=" wp-image-4014 alignnone" src="media/448a3080.connexion-576x1024.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/connexion-576x1024.png" alt="connexion" width="350" height="622" /></a></p>
<p>Il vous suffit alors de remplir les différents champs disponibles (rien de bien compliqué ^^) puis de cliquer sur connexion.</p>
<p><strong>Voici ce que vous trouverez: </strong></p>
<p><a href="media/b982d9e1.Accueil.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/Accueil.png"><img class="alignnone wp-image-4019" src="media/d3dcb4c6.Accueil-576x1024.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/Accueil-576x1024.png" alt="Accueil" width="300" height="533" /></a></p>
<p><a href="media/807ba4f2.Commande-Vocal.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/Commande-Vocal.png"><img class="alignnone wp-image-4020" src="media/0899830f.Commande-Vocal-576x1024.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/Commande-Vocal-576x1024.png" alt="Commande Vocal" width="300" height="533" /></a></p>
<p><a href="media/6f32cb5d.Voice.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/Voice.png"><img class="alignnone wp-image-4021" src="media/44c7d92c.Voice-576x1024.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/Voice-576x1024.png" alt="Voice" width="300" height="533" /></a></p>
<p>Vous retrouverez les commandes vocales disponible dans Yana en tirant le texte Commandes Vocal vers le haut. Celles-ci sont cliquables afin de ne pas réveiller votre moitié avec votre grosse voix si vous avez besoin de quelque chose en pleine nuit ^^.</p>
<p>Afin de minimiser les problèmes de compréhension un petit algorithme modifie votre demande afin de la faire correspondre systématiquement avec une des commandes vocales disponible dans la liste.</p>
<p><strong>Android Wear:</strong></p>
<p>Une extension pour Android Wear (montre connectée) est également disponible. Elle s&#8217;installera sur votre montre automatiquement en téléchargeant l&#8217;application.</p>
<p><a href="media/20ecb46f.34_39-YANA_Android_Wear_31.jpg-Visionneuse-de-photos-Windows.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/2016-01-11-11_34_39-YANA_Android_Wear_31.jpg-Visionneuse-de-photos-Windows.png"><img class="aligncenter size-full wp-image-4039" src="media/20ecb46f.34_39-YANA_Android_Wear_31.jpg-Visionneuse-de-photos-Windows.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/01/2016-01-11-11_34_39-YANA_Android_Wear_31.jpg-Visionneuse-de-photos-Windows.png" alt="2016-01-11 11_34_39-YANA_Android_Wear_3[1].jpg - Visionneuse de photos Windows" width="433" height="447" /></a></p>
<p>Pour l&#8217;utiliser, lancez l&#8217;application sur votre smartphone, connectez vous, puis laissez la en fond de tâche. Il ne vous reste plus qu&#8217;à dicter vos commandes directement depuis votre montre.</p>
<p>Si vous avez des questions ou des idées d&#8217;amélioration n&#8217;hésitez pas à me contacter via le mail disponible sur<a href="https://play.google.com/store/apps/details?id=alexandreroland.yana&amp;hl=fr_BE"> le Play Store</a>.</p>
<p>Alexandre.</p>
<p><strong>[EDIT Idleman] :</strong> Si la connexion entre android et le rpi ne se fait pas, pensez à vérifier que le port 9999 n&#8217;est pas bloqué par votre firewall ou votre routeur.</p>


feed_id: http://blog.idleman.fr/?p=4068
title: Le bordel de l’info #32
uri: Le-bordel-de-l-info-32
url: http://blog.idleman.fr/le-bordel-de-linfo-32/
content:
<p>Salut bande de <a href="https://www.google.fr/search?q=Condylura+cristata&amp;safe=off&amp;source=lnms&amp;tbm=isch&amp;sa=X&amp;ved=0ahUKEwiavI6h_fHKAhUK0hoKHfQyA7QQ_AUIBygB&amp;biw=1126&amp;bih=508">Condylura cristata</a> enrhumé (mucus party !!!)  ! Vous en avez dla chance !!</p>
<p>A l&#8217;heure du terrorisme, de la crise économique, et de <a href="https://www.youtube.com/watch?v=63K5VMx2BZM">Kendji Girac</a>  (est ce qu&#8217;on peux considérer ça comme une forme de terrorisme ?)</p>
<p>Vous êtes peinard dans <a href="http://www.mobil-home-pod.fr/le-pod/">votre pod</a> (ben ui z&#8217;avez pas vu le prix des maisons ?) à <a href="http://news.radins.com/actualites/eau-ca-se-boit-non-ca-se-mange,18751.html">manger une bonne tranche d&#8217;eau</a> assaisonnée à ce 32em bordel de l&#8217;info</p>
<p>Si vous avez une pressante envie de vous tailler les veines après l&#8217;écoute des infos, c&#8217;est que vous êtes à peu près normal : le climat fou le camps, les dictateurs s&#8217;essaient au nucléaire, les terroristes sont partout, les politiques se comportent comme des enfants de 5ans, la crise économique passe inaperçu grâce au marées de migrants forcé de quitter leurs pays a cause de la famine et de la gue&#8230;     bref,  les infos de ce siècle sont anxiogènes et poussent lentement mais surement à la dépression&#8230; toutes les infos ? Non monsieur, je journal <a href="http://www.le-jbn.com">des bonnes nouvelles </a>résiste encore et toujours à l&#8217;envahisseur, un ptit îlot d’optimisme dans ce monde de brute.</p>
<p><a href="https://github.com/Sonerezh/sonerezh/">Sonerezh </a>est un clone open source de deezer, kiss tout en étant mignon, et en plus c&#8217;est un projet frenchy !! Le projet est encore jeune et quelques bugs surviennent de temps en temps cependant c&#8217;est une belle initiative et l&#8217;ensemble est plutôt cohérent, je ferais peut être un tuto sur l&#8217;installation de ce soft avec goodsync pour la synchronisation bi-directionnelle de vos playlistes locales vers sonerezh.</p>
<p>Il faut bien le reconnaitre, plus les technologies évoluent, plus il devient compliqué d&#8217;installer les soft récents, de plus en plus de prérequis nécessaires :  mongodb, nodejs, docker, meteor, ruby, mariadb&#8230;on s&#8217;y perd parfois un peu&#8230; <a href="https://sandstorm.io/">Sandstorm.io</a> est une plateforme open source vous permettant d&#8217;installer en un clic toutes sortes d&#8217;application gratuites et moderne pour l&#8217;organisation, l’échange, la collaboration etc&#8230; afin de vous composer votre propre cloud.</p>
<p>En parlant de nodeJs justement<a href="http://www.zem.fr/nodejs-creer-un-proxy-prive-en-2-minutes/">, Zem.fr</a> vous propose un petit tuto rapide pour vous bricoler vous même un proxy anonyme sur VPS en 5 minutes avec nodejs.</p>
<p>KanBan est une méthode de travail qui peux s&#8217;apparenter sur certains points avec Agile (ne fuyez pas, je ne parlerais pas d&#8217;agile promis !!), comme toute méthode, il y à du bon et du mauvais, cependant KanBan a inspiré quelques dev pour donner naissance a <a href="https://wekan.io/">WeKan.io</a>, une chouette petite app de todoList boosté aux stéroïdes, relativement chiante a installer (sauf en passant par sandstorm ^^) mais bien pensée, simple et véritablement utile en projet de groupes réduit (0-7 dev)</p>
<p>Besoin de démarrer une distribution linux sur un poste avec simplement votre bitte et votre couteaux ? Avec <a href="http://netboot.xyz/#getting-started">netboot.xyz,</a> plus besoin de clé usb pour booter la distribution de votre choix directement via le &#8220;cloud&#8221;, seul inconvénient (de ce que j&#8217;en ai compris en lisant la diagonale) c&#8217;est qu&#8217;il faut un bios qui accepte la techno iPXE, visiblement c&#8217;est assez courant car assez vieux comme techno (1999-2000 me semble), mais bon en cas de besoin on peux compter sur la fameuse l<a href="https://fr.wikipedia.org/wiki/Loi_de_Murphy">oi de Murphy</a> pour  tomber sur LE bios récalcitrant.</p>
<p>J&#8217;ai beaucoup de mal a changer de client mail, mon ptit Thunderbird étant pour moi irremplaçable quoiqu&#8217;il sort de nouveau, cependant je me laisserais bien tenter par un essai sur ce<a href="https://nylas.com/N1/"> nouveau client mail open source </a>et ultra customisable quand on a quelques notions de dev puisqu&#8217;il intègre un système de plugin de javascript permettant de modifier l&#8217;intégralité de l&#8217;ui et des traitements de mails en amont.</p>
<p>Quel développeur n&#8217;a pas commencé sa carrière avec le rêve de devenir concepteur de jeux vidéo (ne niez pas, ça vous est forcement passé par la tête dans vos naives années post universitaires :p), mais bon, il faut du temps pour apprivoiser un moteur 3d/2d, créer des sprites, un scénario, gérer les règles physiques du monde de jeux, les vues, et vous êtes bloqué sur un projet industriel boooooring (car oui des postes de développeurs de jeux video ça court pas les rues ^^)&#8230; Voilà <a href="http://superpowers-html5.com/index.fr.html">une belle solution d&#8217;assisté </a>pour vous bricoler un ptit game pendant la pause café.</p>
<p>Un site intéressant sur les<a href="http://www.phptherightway.com/"> bonnes façon de développer en PHP</a>, certains points me chafouinent un peu dans la conception mais globalement c&#8217;est cohérent,varié, bien expliqué et on peux y découvrir quelques perles de pattern auxquelles on n&#8217;aurais pas tout de suite pensé.</p>
<p>Les nouvelles techno/langages foisonnent, ces derniers temps et personnellement je m&#8217;y perd un peu (l&#8217;âge sans doute, je rentre progressivement dans la tranche des pré-vieux-cons de l&#8217;informatique) peux ceux qui comme moi sont un peu largués, <a href="http://tutorialzine.com/2015/12/the-languages-and-frameworks-you-should-learn-in-2016/">voici un bel article </a>pour nous remettre dans le droit chemin.</p>
<p>PHP7 est sortis en décembre 2015 (je suis le seul a n&#8217;avoir pas vu passer la v6 ? oO) et <a href="http://www.journaldunet.com/web-tech/developpeur/1152109-php-7-la-future-version-majeure-de-php-au-crible/">serait 2x plus rapide</a> que ses prédécesseurs, a bon entendeurs&#8230;</p>
<p><a href="https://randomuser.me/">Randomuser </a>est une api gratuite, sans clé/licence/comptes nécessaires et permettant de générer aléatoirement des profil de personne (nom, prenom, age, photo&#8230;) de manière cohérente avec possibilité de filtrer par genres, ages etc&#8230; ultra pratique pour alimenter des bases de données comprenant des usagers avec des données de tests. La doc est claire, l&#8217;API est en JSON, c&#8217;est gratuit, sans inscription et en plus ça marche, tout ce que j&#8217;aime !!</p>
<p>Dans le même genre, <a href="http://finda.photo/">10 000 photos libre </a>de droits de bonne qualité et bien triées  (ben oai chuis comme ça mouah !! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /> à</p>
<p><a href="https://try.gogs.io/">Gog </a>à un nom de chiotte (trop facile celle là, j&#8217;invalide) mais permet de se créer en quelques clics un clone self hosted de github. Personnellement je reste sur <a href="https://about.gitlab.com/">gitlab </a>qui est bien plus complet, en revanche gitlab étant une véritable &#8220;douleur au cul&#8221; à installer gog peut devenir une alternative intéressante pour mes prochains serveurs git.</p>


feed_id: http://blog.idleman.fr/?p=4090
title: Gérez vos projets de hack avec HackPoint
uri: Gérez-vos-projets-de-hack-avec-HackPoint
url: http://blog.idleman.fr/gerez-vos-projets-de-hack-avec-hackpoint/
content:
<p>Lorsqu&#8217;on bidouille de l&#8217;électronique et des bouts de codes pour inventer tous un tas de trucs qui <del>ne servent à rien</del> révolutionnent la planète, il est nécessaire de faire de la veille, de tester des versions, d’échanger des infos&#8230; il est alors pénible de s&#8217;apercevoir que ça devient très rapidement un bordel pas possible de sources, de bout de code, de liens vers des composants etc.. à gérer et à partager</p>
<p><span id="more-4090"></span></p>
<p>C&#8217;est à la lueur de ce constat que je me suis développé un petit outil nommé hackpoint.</p>
<p>Hackpoint est une application PHP (gratuite évidemment) avec base sqlite mono-fichier (installation en un clic) permettant de stocker du code, des composants, des readme, des schémas et autres ressources.</p>
<p>Il fonctionne sur la base de &#8220;<strong>Sketch</strong>&#8221; et de &#8220;<strong>Ressources</strong>&#8220;, un sketch étant un projet, une ressources étant un bout de code, un composant électronique, un schéma etc.. lié au sketch.</p>
<p>Il est possible de rendre public en lecture seule un sketch, de l&#8217;intégrer à un blog/forum, d&#8217;exporter ses sketch, d&#8217;en importer directement depuis un autre hackpoint etc..etc&#8230;</p>
<p>Le script est évidemment responsive et sécurisé par identifiant/mdp</p>
<p><img class="aligncenter" src="media/6a8d5ee1.login.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/login.png" alt="login" width="696" height="566" /></p>
<p>Il est possible de créer un sketch de zéro, de forker un sketch existant sur un autre hackpoint (a partir du moment ou celui ci est rendu public) ou d&#8217;importer un sketch au format hackpoint (json compressé):</p>
<p><img class="aligncenter" src="media/95560218.index.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/index.png" alt="index" width="1187" height="565" /></p>
<p>Un sketch se compose d&#8217;un panneau de ressources et d&#8217;une zone de travail permettant d&#8217;éditer/visualiser les ressources.</p>
<p>Les images d&#8217;images peuvent se faire en drag &amp; drop.</p>
<p><img class="aligncenter" src="media/f708826d.schema.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/schema.png" alt="schema" width="1189" height="706" /></p>
<p>Plusieurs types de ressources sont disponible (8 pour l&#8217;instant), chaque type de ressource étant mise en valeur en fonction de son contenu (syntax highlight pour les bout de code, drag &amp; drop pour les images, tableau js pour les composants etc..)</p>
<p><img class="aligncenter" src="media/57a4e6cc.syntaxe.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/syntaxe.png" alt="syntaxe" width="1185" height="707" /></p>
<p>L&#8217;ajout de composant peut se faire directement depuis un sketch ou dans l&#8217;onglet &#8220;composants&#8221;, il est possible d&#8217;y lier une image, une marque, un prix moyen et une url de recherche pour ce composant.</p>
<p><img class="aligncenter" src="media/2ac45fa5.composants.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/composants.png" alt="composants" width="1189" height="710" /></p>
<p><img class="aligncenter" src="media/673974f1.liaison.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/liaison.png" alt="liaison" width="1326" height="760" /></p>
<p>Un sketch contient un panel d&#8217;options permettant de rendre public/privé le sketch, d&#8217;exporter le sketch en format json compressé, d&#8217;intégrer le sketch sur les blogs/forums, de télécharger l&#8217;intégralité des fichiers dans un dossier zippé ou encore d&#8217;envoyer des fichiers brut existants dans le sketch (encore un peu risqué ça ^^)</p>
<p><img class="aligncenter" src="media/972e6606.options.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/options.png" alt="options" width="186" height="85" /></p>
<p><img class="aligncenter" src="media/22da1770.embeded.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2016/05/embeded.png" alt="embeded" width="1323" height="753" /></p>
<p>Hackpoint est disponible <a href="http://cloud.idleman.fr/index.php/s/oTGNsMuBekLbwBC">en version alpha ICI</a>, notez que je cherche activement un logo sympa si quelqu&#8217;un souhaite tenter sa chance :).</p>
<p>Bien à vous.</p>
<p>Idle</p>


feed_id: http://blog.idleman.fr/?p=4206
title: Sys1 recrute du dev en région bordelaise
uri: 2016-06-27-Sys1-recrute-du-dev-en-région-bordelaise
url: http://blog.idleman.fr/sys1-recrute-du-dev-en-region-bordelaise-2/
content:
<p>Ma boite recrute un développeur pour des missions en environnement LAMP (PHP/MYSQL).</p>
<p>Le contrat consisterait dans un premier temps en un CDD et déboucherais sur un CDI si tout roule comme il faut.</p>
<p>Les missions peuvent aller de la création de simples sites web (from scratch ou via wordpress) à des logiciel de gestion interne (logistique, erp, e-commerce, appli purement métier etc&#8230;), l&#8217;essentiel du travail étant fait en agence au sein du pole développement sous ma houlette éclairée <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>De bonnes bases en<strong> <strong>web/PHP</strong></strong> sont nécessaires, les connaissances<strong> C# / .NET</strong> sont un plus, pour le reste, seule la <strong>passion</strong> et le <strong>sérieux</strong> sont requis :).</p>
<p>Si vous êtes intéressé et en région bordelaise, n&#8217;hésitez pas à postuler sur la section <a href="http://sys1.fr/pages/recrutement">recrutement de Sys1</a>, ou à me contacter directement sur ma boite mail <strong><em>idleman arobase idleman point fr</em></strong>.</p>


feed_id: http://blog.idleman.fr/?p=4212
title: Snippet #25 ~ C# : Récupérer un n° de version automatique à chaque build
uri: Snippet-25-C-Récupérer-un-n-de-version-automatique-à-chaque
url: http://blog.idleman.fr/snippet-25-c-recuperer-un-n-de-version-automatique-a-chaque-build/
content:
<p>Quoi de plus barbant que de devoir incrémenter le numéro de version de votre programme à chaque nouveau build?</p>
<p>Le snippet ci dessous vous permet la récupération du numéro de version de votre programme ainsi que du numéro de build sous la forme :</p>
<p><code>V1.0 R1310160959</code></p>
<p><strong>V1.0</strong> : Numéro de version noté dans l&#8217;assembly (version major et minor)<br />
<strong>R1310160959</strong> : Numéro de révision auto généré en fonction de la date ddmmyy + le timestamp du dernier build</p>
<p>Ainsi à chaque génération les 4 derniers chiffres au minimum changeront ce qui vous permet d&#8217;effectuer plusieurs build dans la même journée sans avoir à modifier manuellement quoique ce soit.</p><pre class="crayon-plain-tag">var veVersion = Assembly.GetExecutingAssembly().GetName().Version;
FileInfo fileInfo = new System.IO.FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
String strVersion =  " V" + version.Major + "." + version.Minor + " R" + fileInfo.LastWriteTime.ToString("ddMMyyHHmm");</pre><p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=4215
title: Snippet #27 ~ Javascript : copier dans le presse papier sans flash (et fonctionne sur ie)
uri: Snippet-27-Javascript-copier-dans-le-presse-papier-sans-flash-(et
url:
http://blog.idleman.fr/snippet-27-javascript-copier-dans-le-presse-papier-sans-flash-et-fonctionne-sur-ie/

content:
<p>Si vous avez déjà tenté de copier une valeur dans le press papier depuis le code de votre site web, vous avez vite du constater qu&#8217;il vous est nécessaire de passer<br />
par un flash dégueulasse pour être compatible cross browser ou de vous cantonner à IE clipboard.</p>
<p>Fort heureusement les nouvelles API HTML 5 permettent de passer outre le flash (ou le clipboard API qui fonctionnouille de manière pas folichonne selon le navigateur) à l&#8217;aide de la<br />
fonction <strong>execCommand(&#8216;copy&#8217;</strong>).</p>
<p><span style="text-decoration: underline;">Seuls inconvénients de cette commande :</span></p>
<ul>
<li>Il semble nécessaire que la copy parte d&#8217;un événement utilisateur, cela implique qu&#8217;il faut forcement un click sur un élément vous ne pouvez pas lancer la copie direct</li>
<li>La technique est un peu tricky ça ne se fait pas en une commande</li>
<li>Sous IE, il semble que le site ouvre de temps a autre un prompt demandant l’autorisation à l&#8217;utilisateur de copier (il est quand même possible de cliquer sur oui pour récuperer la valeur dans le presse papier mais ça ajoute bêtement un click)</li>
</ul>
<p><strong>Je vous ai bricolé une petite fonction jquery pour simplifier le point 2 :</strong></p>
<p>L&#8217;utilisation est la suivante :<br />
<pre class="crayon-plain-tag">$('#monBouton').copy("IdleBlog is op!!");</pre></p>
<p>L&#8217;installation se fait en ajoutant la clause suivante dans votre javascript (nécessite Jquery)</p><pre class="crayon-plain-tag">$.fn.extend({    
    copy : function (text) {
        return $(this).click(function () {
            var container = $('&lt;span style="position:absolute;top:-1000px;"&gt;' + text + '&lt;/span&gt;');
            $('body').append(container);
            var range = document.createRange();
            var selection = window.getSelection();
            selection.removeAllRanges();
            range.selectNodeContents(container.get(0));
            selection.addRange(range);
            document.execCommand('copy');
            selection.removeAllRanges();
            container.remove();
        });
    }
});</pre><p>Bien entendu vous pouvez utiliser <a href="http://tutorialzine.com/2016/10/quick-tip-accessing-the-clipboard-with-javascript/">execCommand sans encapsuler ça dans du jquery </a>même si personnellement je pense que si vous n&#8217;utilisez pas du jquery vous <del>ne méritez pas de vivre</del> allez vous prendre un peu plus la tête pour rien.</p>
<p>Bien à vous.</p>


feed_id: http://blog.idleman.fr/?p=4242
title: Snippet #28 ~ Javascript : Récupérer/Modifier les paramètres de la barre d’adresse
uri: Snippet-28-Javascript-Récupérer-Modifier-les-paramètres-de-la
url: http://blog.idleman.fr/snippet-28-javascript-recuperermodifier-les-parametres-de-la-barre-dadresse/
content:
<p>Bonne année 2017 bande de moules! Je vous souhaite plein de bonnes choses mais <del>surtout beaucoup de blé, des putes et des black-jacks</del> et une bonne santé ! (voilà pour commencer l&rsquo;année en finesse!)</p>
<p>Comme je suis un chic type et parce que ça fait longtemps qu&rsquo;on s&rsquo;est pas vu je vous partage une ptite fonction maison pour ne plus se prendre la tête avec la récupération / définition des paramètres de la barre d&rsquo;adresse en javascript.</p>
<p><span id="more-4242"></span></p>
<p>Globalement la fonction permet de récupérer un paramètre avec</p>
<p><pre class="crayon-plain-tag">var valeur = parameter('nomParametre');</pre></p>
<p>De définir un paramètre (ou de le modifier si il existe) avec</p>
<p><pre class="crayon-plain-tag">parameter('nomParametre','valeurParametre');</pre></p>
<p>De supprimer un paramètre avec</p>
<p><pre class="crayon-plain-tag">parameter('nomParametre',false);</pre></p>
<p>La fonction est dispo ci dessous pour javascript et Jquery, je la trouve un peu longue si vous trouvez le moyen de la raccourcir (la fonction, je parle de la fonction&#8230;) n&rsquo;hésitez pas à poster un commentaire.</p>
<p><strong>Fonction Javascript natif</strong></p><pre class="crayon-plain-tag">function parameter(name,value) {
	    var parameters = window.location.href.match(/[\\?&amp;]([^&amp;#]*)=([^&amp;#]*)/g);
	    var data = {};
	    for (var key in parameters) {
	        var couple = parameters[key].substring(1, parameters[key].length).split('=');
	        data[couple[0]] = couple[1];
	    }
	    if (value == null) 
	        return data[name] ? data[name] : null;
	    if (value != false) data[name] = value;
	    var url = '?';
	    for (var key in data) {
	        if (value == false &amp;&amp; key == name) continue;
	        url += key + '=' + data[key]+'&amp;';
	    }
	    window.history.pushState('', document.title, url.substring(0, url.length-1));
}</pre><p>&nbsp;</p>
<p><strong>Extension Jquery</strong></p><pre class="crayon-plain-tag">$.parameter = function (name,value) {
	    var parameters = window.location.href.match(/[\\?&amp;]([^&amp;#]*)=([^&amp;#]*)/g);
	    var data = {};
	    for (var key in parameters) {
	        var couple = parameters[key].substring(1, parameters[key].length).split('=');
	        data[couple[0]] = couple[1];
	    }
	    if (value == null) 
	        return data[name] ? data[name] : null;
	    if (value != false) data[name] = value;
	    var url = '?';
	    for (var key in data) {
	        if (value == false &amp;&amp; key == name) continue;
	        url += key + '=' + data[key]+'&amp;';
	    }
	    window.history.pushState('', document.title, url.substring(0, url.length-1));
}</pre><p>&nbsp;</p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=4263
title: Sys1 recrute du dev en région bordelaise
uri: 2017-03-14-Sys1-recrute-du-dev-en-région-bordelaise
url: http://blog.idleman.fr/sys1-recrute-du-dev-en-region-bordelaise-3/
content:
<p>Une fois n&rsquo;est pas coutume, je cherche un développeur pour des missions variées (essentiellement en environnement Apache / PHP/ MYSQL).</p>
<p>Le contrat consisterait dans un premier temps en un CDD et déboucherais sur un CDI si tout roule comme il faut.</p>
<p><span id="more-4263"></span></p>
<p>Les missions peuvent aller de la création de simples sites web (from scratch ou via wordpress) à des logiciel de gestion interne (logistique, erp, e-commerce, appli purement métier etc&#8230;), l&rsquo;essentiel du travail étant fait en agence au sein de mon pole développement.</p>
<p>De bonnes bases en<strong> web/PHP</strong> sont nécessaires, les connaissances<strong> C# / .NET</strong> sont un plus, pour le reste, seule la <strong>passion</strong> et le <strong>sérieux</strong> sont requis :).</p>
<p>Si vous êtes intéressé et en région bordelaise, n&rsquo;hésitez pas à postuler sur la section <a href="http://sys1.fr/pages/recrutement">recrutement de Sys1</a>, ou à me contacter directement sur ma boite mail <strong><em>idleman arobase idleman point fr</em></strong>.</p>


feed_id: http://blog.idleman.fr/?p=4305
title: Fond de tiroir #1 ~ Générateur de doc javascript monofichier
uri: Fond-de-tiroir-1-Générateur-de-doc-javascript-monofichier
url: http://blog.idleman.fr/fond-de-tiroir-1-generateur-de-doc-javascript-monofichier/
content:
<p>Si vous êtes un développeur dans l&rsquo;âme, vous avez déjà eu à faire à cette problématique de la petite idée de projet que vous avez codé en une aprèm puis que vous n&rsquo;avez jamais eu<del> l&rsquo;envie</del> le temps de retoucher.</p>
<p>Plus le temps passe et plus le nombre d&rsquo;idées qui végètent sans but dans votre placard à projet s&rsquo;accumulent&#8230; A la lumière de ce constat, j&rsquo;ai décidé d&rsquo;ouvrir une petite rubrique pour partager mes fonds de tiroirs, plusieurs n&rsquo;en sont qu&rsquo;aux balbutiements, aussi je les partage sur ce blog avec quelques explications au cas ou quelqu&rsquo;un souhaiterais les ré-exploiter.</p>
<p><span id="more-4305"></span></p>
<p>Mon fond de tiroir du jour est un petit fichier php unique permettant de générer une doc minimaliste au format HTML à partir d&rsquo;un fichier javascript.</p>
<p>Concrètement le PHP parse les commentaires au dessus de chaque fonction javascript et génère une page unique de consultation formatée (nom de la fonction, paramètres, descriptif en commentaire&#8230;).</p>
<p>La mise en forme reste volontairement simpliste de manière a pouvoir faire un copier coller sur word ou autres éditeurs répandus n&rsquo;acceptant pas le javascript/css poussé.</p>
<p><strong>Points forts :</strong></p>
<ul>
<li>Simple d&rsquo;utilisation (simplement deux variables à configurer)</li>
<li>Template html de sortie facile a modifier</li>
<li>Mono fichier</li>
<li>Pas de prérequis autre que PHP</li>
<li>Pas besoin d&rsquo;avoir respecté les normes de commentaires de documentation</li>
</ul>
<p><strong>Points faibles:</strong></p>
<ul>
<li>Codé avec les pied</li>
<li>Doc générée ultra minimaliste</li>
<li>non conforme aux standard de commentaires de docs</li>
<li>Créé a la base pour une feuille de plugins jquery donc pas forcement utile/a adapter ailleurs</li>
<li>Les méthodes statiques sont uniquement définie pour les plugins jquery</li>
</ul>
<p>Le fichier PHP est ici pour ceux que ça intéresse :<br />
<a class="btn btn-primary" href="http://blog.idleman.fr/wp-content/uploads/2017/06/jsdoc.zip"><i class="fa fa-download"></i> Télécharger le bousin</a></p>


feed_id: http://blog.idleman.fr/?p=4328
title: Fond de tiroir #2 ~ Ping des sites web et avertissement par mail
uri: Fond-de-tiroir-2-Ping-des-sites-web-et-avertissement-par-mail
url: http://blog.idleman.fr/fond-de-tiroir-2-ping-des-sites-web-et-avertissement-par-mail/
content:
<p>Pour continuer dans la série de <a href="http://blog.idleman.fr/fond-de-tiroir-1-generateur-de-doc-javascript-monofichier/">mes fonds de tiroirs</a>, je vous propose aujourd&rsquo;hui un simple fichier PHP unique vous permettant d&rsquo;aller vérifier régulièrement que vos sites/applications web sont toujours en ligne et retournent bien une en-tête http 200 (=Tout vas bien), le cas échéant, vous pouvez envoyer un mail et monitorer tout ça sur une simple page de consultation.</p>
<p><span id="more-4328"></span></p>
<p>Le script est en PHP, il utilise une base de donnée sqlite auto généré lors du premier lancement.</p>
<p>Il vous est possible d&rsquo;ajouter autant de site web que vous le souhaitez et d&rsquo;avertir 0 ou plusieurs contacts</p>
<p><img class="aligncenter size-full wp-image-4331" src="media/034dfae8.2017-06-23-10_27_12-EYZ.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_27_12-EYZ.png" alt="" width="1242" height="304" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_27_12-EYZ.png 1242w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_27_12-EYZ-300x73.png 300w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_27_12-EYZ-768x188.png 768w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_27_12-EYZ-1024x251.png 1024w" sizes="(max-width: 1242px) 100vw, 1242px" /></p>
<p>Lorsque le script détecté autre chose qu&rsquo;une réponse 200, il met à jour l&rsquo;espace de visualisation avec la couleur / code / erreur correspondante et envois un mail aux contacts spécifiés</p>
<p><img class="aligncenter size-full wp-image-4332" src="media/5acfd605.2017-06-23-10_24_10-127.0.0.1_eyz.php_actioncron.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_24_10-127.0.0.1_eyz.php_actioncron.png" alt="" width="406" height="185" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_24_10-127.0.0.1_eyz.php_actioncron.png 406w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-10_24_10-127.0.0.1_eyz.php_actioncron-300x137.png 300w" sizes="(max-width: 406px) 100vw, 406px" /><br />
Afin que le script aille vérifier régulièrement les sites que vous aurez enregistré il vous faut mettre en place un CRON(linux) ou une tache planifiée (Windows) qui ira régulièrement exécuter l&rsquo;adresse http://votreserveur<strong>/eyz.php?action=cron</strong></p>
<p>je vous conseille d&rsquo;ajouter un htaccess pour limiter l&rsquo;accès au script, je n&rsquo;ai pas pris le temps de créer une authentification.</p>
<p><strong>Points forts: </strong></p>
<ul>
<li>Le Script tient en un seul fichier</li>
<li>Toutes les erreurs http possibles sont décrites (liste descriptives interne)</li>
<li>Email multiples possible</li>
<li>Installation relativement simple puisque rien à faire</li>
<li>Modification &laquo;&nbsp;Inline&nbsp;&raquo;</li>
<li>Récupère pas mal d&rsquo;infos des serveurs interrogés (temps de transaction, code HTTP, encodage retourné, type/taille de contenu disponible etc&#8230;)</li>
</ul>
<p><strong>Points faibles</strong></p>
<ul>
<li>Pas d&rsquo;authentification (il faut passer par un htaccess)</li>
<li>Prérequis php sqlite nécessaire</li>
<li>Script très peu testé/éprouvé</li>
<li>Nécessite la mise en place d&rsquo;une tâche planifiée/CRON pour faire la vérification automatique</li>
</ul>
<p><a class="btn btn-primary" href="http://blog.idleman.fr/wp-content/uploads/2017/06/eyz.zip"><i class="fa fa-download"></i> Télécharger le bousin</a></p>


feed_id: http://blog.idleman.fr/?p=4336
title: Fond de tiroir #3 ~ Récupération des issues github avec un tag précis
uri: Fond-de-tiroir-3-Récupération-des-issues-github-avec-un-tag-préc
url: http://blog.idleman.fr/fond-de-tiroir-3-recuperation-des-issues-github-avec-un-tag-precis/
content:
<p>Je continue sur la lancé des fonds de tiroirs : voici un script mono-fichier d&rsquo;exemple de récupération des issues github d&rsquo;un dépôt projet pour un certain tag.</p>
<p>J&rsquo;ai initialement créé ce script dans le but de report sur un site particulier les bonnes suggestion github émises par les contributeurs.</p>
<p><span id="more-4336"></span></p>
<p>Le script génère un petit sommaire des topics émis dans la catégories spécifiée et permet d’accéder au contenu du premier post du topic ciblé.</p>
<p><img class="aligncenter size-full wp-image-4338" src="media/710b58d2.2017-06-23-11_36_52-127.0.0.1_yana.suggestions.php_.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-11_36_52-127.0.0.1_yana.suggestions.php_.png" alt="" width="938" height="668" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-11_36_52-127.0.0.1_yana.suggestions.php_.png 938w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-11_36_52-127.0.0.1_yana.suggestions.php_-300x214.png 300w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-11_36_52-127.0.0.1_yana.suggestions.php_-768x547.png 768w" sizes="(max-width: 938px) 100vw, 938px" /></p>
<p><strong>Points forts</strong></p>
<ul>
<li>Pas d’installation/base de donnée nécessaires</li>
<li>Vous pouvez modifier le projet, l&rsquo;utilisateur github ou l tag d&rsquo;issue avec les trois premieres variables du fichier</li>
<li>Pas besoin de clé github</li>
</ul>
<p><strong>Points faibles</strong></p>
<ul>
<li>Moche à vomir</li>
<li>Pas bien finit</li>
<li>Uniquement utile pour les dépôt gérés sur github</li>
</ul>
<p><a class="btn btn-primary" href="http://blog.idleman.fr/wp-content/uploads/2017/06/github.suggestions.zip"><i class="fa fa-download"></i> Télécharger le bousin</a></p>


feed_id: http://blog.idleman.fr/?p=4341
title: Raspberry PI ~ 24 : Créer une multi sonde wifi pour 11€
uri: Raspberry-PI-24-Créer-une-multi-sonde-wifi-pour-11
url: http://blog.idleman.fr/raspberry-pi-24-creer-une-multi-sonde-wifi-pour-11e/
content:
<p>Ce post est le vingt quatrième d’une liste de tutoriels sur le raspberry PI et l’arduino,<a href="http://blog.idleman.fr/?page_id=2166"> cliquez ici</a> pour accéder au sommaire ! <img src="media/888a7fdc.icon_biggrin.gif" data-original-source="http://blog.idleman.fr/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" /></p>
<p>Afin de pouvoir prendre des décisions en domotique, notamment grâce au gestionnaire de <a href="http://yana.idleman.fr/">scénario de yana</a> ou de toute autre centrale domotique, il nous faut des données, en quelque sorte « monitorer » nos pièces, exemple : baisser les stores si il fait trop chaud ou les ouvrir quand il ne fait pas assez clair dans la pièce, détecter les présence pour enclencher certaines actions etc&#8230;.</p>
<p><span id="more-4341"></span></p>
<p>A cet effet je me suis mis sur un projet de sonde <strong>humidité,température,lumière,mouvement</strong> à bas coût et en WIFI histoire de pouvoir simplement récupérer les données de nos pièces.<br />
Une maison standard étant généralement composé de <strong>5 pièces</strong> intéressantes à monitorer (je ne compte pas les toilettes ou le placard à balais :D) le coût de fabrication est d&rsquo;environ 50/60€ pour toute la maison.</p>
<p>J&rsquo;ai nommé ce petit cube sensoriel PROPISE : <strong>PRO</strong>totype de <strong>PI</strong>euvre <strong>SE</strong>nsitif</p>
<p>&nbsp;</p>
<table>
<tbody>
<tr>
<td><img class="aligncenter wp-image-4359 size-full" src="media/71168ddd.IMG_20170308_205654-1.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/11/IMG_20170308_205654-1.png" alt="" width="534" height="420" srcset="http://blog.idleman.fr/wp-content/uploads/2017/11/IMG_20170308_205654-1.png 534w, http://blog.idleman.fr/wp-content/uploads/2017/11/IMG_20170308_205654-1-300x236.png 300w" sizes="(max-width: 534px) 100vw, 534px" /></td>
<td>
<p><figure id="attachment_4350" style="width: 389px" class="wp-caption aligncenter"><img class="wp-image-4350 size-full" src="media/339ba804.2017-06-23-14_04_34-Yana-Server-3.0.6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_34-Yana-Server-3.0.6.png" alt="" width="389" height="276" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_34-Yana-Server-3.0.6.png 389w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_34-Yana-Server-3.0.6-300x213.png 300w" sizes="(max-width: 389px) 100vw, 389px" /><figcaption class="wp-caption-text">Aperçu sur YANA</figcaption></figure></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>Dans le cadre de ce tuto nous utiliseront le capteur <a href="http://yana.idleman.fr/">avec YANA</a>, mais je l&rsquo;ai conçu pour qu&rsquo;il soit simplement adaptable à n&rsquo;importe quel système domotique.</p>
<p>Nous allons voir ensemble comment produire ces petites bêtes mais avant, le traditionnel quart d&rsquo;heure de honte en vidéo !</p>
<p>.<br />
..<br />
&#8230;.</p>
<p>Ah  ! on m&rsquo;annonce à l&rsquo;oreillette q&rsquo;un <del>gros coup de flemme</del> problème technique vous épargnera ce massacre <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (en plus je suis en peignoir, ça fais pas sérieux) ! Passons donc à la réalisation.</p>
<h2>Les Composants</h2>
<p>Habituellement nous utilisons comme « cerveau » du montage une carte arduino ou directement la puce atmega qui se trouve dessus (et qui peux fonctionner dans le reste de la carte avec quelques composants).</p>
<p>La grosse nouveauté par rapport aux tutos précédent consiste à remplacer l&rsquo;habituel arduino par  un composant nommé ESP8266.</p>
<p>L&rsquo;esp8266 étant une puce qui propose les mêmes fonctionnalités de l&rsquo;Atméga/Arduino en mieux:</p>
<ul>
<li>Plus de mémoire pour stocker le code et les données</li>
<li>Compatible avec plusieurs  langages de développement</li>
<li>Vendu avec sa plateforme de développement pour le prix de la puce seule ou presque</li>
<li>Les shields (plug-in) associés ne coûtent rien si vous voulez facilement y ajouter des fonctionnalités</li>
<li>N&rsquo;importe quel pin peux faire de l&rsquo;I2C (protocole de communication sympa)</li>
</ul>
<p>&#8230;et surtout le wifi est intégrée à la puce, tout ceci pour un prix/taille équivalent à savoir environ<strong> 3€</strong> avec les frais de port.</p>
<p><strong>Pompom de la pompomette :</strong> c&rsquo;est compatible avec l’éditeur/syntaxe arduino !</p>
<p>Voila la tronche de cette magnifique petite puce avec une plateforme supplémentaire ajouté (pour le même prix de 3€) l&rsquo;ensemble se nomme <strong>esp8266 witty gizwits</strong>.</p>
<table>
<tbody>
<tr>
<td><img class="size-full wp-image-4344 aligncenter" src="media/262bf442.cb6413a0-561a-d8d4-383a-68451ae9ea84.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/cb6413a0-561a-d8d4-383a-68451ae9ea84.jpg" alt="" width="361" height="361" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/cb6413a0-561a-d8d4-383a-68451ae9ea84.jpg 361w, http://blog.idleman.fr/wp-content/uploads/2017/06/cb6413a0-561a-d8d4-383a-68451ae9ea84-150x150.jpg 150w, http://blog.idleman.fr/wp-content/uploads/2017/06/cb6413a0-561a-d8d4-383a-68451ae9ea84-300x300.jpg 300w" sizes="(max-width: 361px) 100vw, 361px" /></td>
<td><a href="media/e46a145d.gizwits_pinout_67.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/gizwits_pinout_67.jpg"><img class="wp-image-4345 aligncenter" src="media/e46a145d.gizwits_pinout_67.jpg" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/gizwits_pinout_67.jpg" alt="" width="397" height="308" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/gizwits_pinout_67.jpg 1024w, http://blog.idleman.fr/wp-content/uploads/2017/06/gizwits_pinout_67-300x232.jpg 300w, http://blog.idleman.fr/wp-content/uploads/2017/06/gizwits_pinout_67-768x595.jpg 768w" sizes="(max-width: 397px) 100vw, 397px" /></a></td>
</tr>
</tbody>
</table>
<p>La plateforme witty gizwits ajoute un bouton poussoir, une led RGB (rouge vert bleu), un capteur de luminosité et surtout une partie plateforme de programmation détachable histoire de pas se faire chier.</p>
<p>Pour notre projet il ne restera qu&rsquo;à y ajouter un capteur d&rsquo;humidité qui fait également office de capteur de température (j&rsquo;ai nommé le DHT22) et un capteur additionnel de mouvement infrarouge pour le fun.</p>
<p>Il nous faudra bien sur une source d&rsquo;alimentation, ici nous choisissons un simple câble micro USB et son chargeur, vous pouvez piquer celui de votre portable si ebay met trop longtemps à vous livrer <img src="media/0ca6ff4c.icon_razz.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_razz.png" alt=":p" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Dernier petit composant : une résistance  de 4700 Ohm qui vas de paire avec le DHT22 pour ne pas abimer ce dernier.</p>
<p><a href="http://hack.idleman.fr/sketch.php?id=7#resource=33"><small>Voir en taille réelle<small></small></small></a><br />
<iframe width="800px" height="400px" frameborder="0" align="center" src="http://hack.idleman.fr/sketch.php?id=7&amp;embeded=1&amp;sidebar=0#resource=33"></iframe></p>
<h2>Le Schéma</h2>
<p>Rien de bien compliqué sur le câblage, les deux composants à ajouter à l&rsquo;esp nécessitent les mêmes branchements à savoir : un fil sur l&rsquo;alimentation 5v, un fil sur la masse et un fil sur un pin de donnée de l&rsquo;esp afin de communiquer avec lui.</p>
<p>La résistance  de 4700 Ohm doit être connectée à la broche 2 du  le DHT22 et reliée ensuite à l’alimentation.</p>
<p><strong>nb:</strong> sur le schéma mon dht22 est bleu et non blanc, c&rsquo;est parce que j&rsquo;utilise en fait le dht11 (moins précis mais moins cher)</p>
<p><img class="" src="http://hack.idleman.fr/action.php?action=get_resource_image&amp;id=36" width="654" height="782" /></p>
<h2>Le Code arduino</h2>
<p>Voilà l&rsquo;endroit ou ça se complique ! Afin de rendre le plus simple possible l&rsquo;utilisation et l&rsquo;installation de la sonde, j&rsquo;ai du pisser pas mal de code. Je fais en sorte que lors du premier lancement de la sonde, celle ci se mette en hotspot, c&rsquo;est à dire qu&rsquo;elle vas émettre son propre réseau WIFI auquel vous pourrez vous connecter la première fois afin de la configurer.</p>
<p>Une fois la sonde configurée avec les identifiants WIFI de votre réseau domestique, elle désactive son hotspot et se connecte en mode client a votre wifi, ce qui complique un peu la partie code mais qui vous évite d&rsquo;avoir à toucher à la moindre ligne dans celui çi, tout est gérable via une interface web</p>
<p><a href="http://hack.idleman.fr/sketch.php?id=7#resource=34"><small>Voir en taille réelle<small></small></small></a><br />
<iframe width="800px" height="400px" frameborder="0" align="center" src="http://hack.idleman.fr/sketch.php?id=7&amp;embeded=1&amp;sidebar=0#resource=34"></iframe></p>
<h2>Le Code PHP</h2>
<p>Je ne veux pas être sectaire et imposer ma plateforme domotique pour tous les prototype que je créé (mais quand même si à cette étape de mes tutos vous n&rsquo;utilisez toujours pas yana, vous avez raté votre vie !), aussi je vais vous donner deux exemples de récupération des valeurs de la sonde avec et sans l&rsquo;utilisation de YANA parce que quand même suis un chic type ! <img src="media/91b785b7.icon_lol.png" data-original-source="http://blog.idleman.fr/wp-content/themes/twentytwelve/smile/icon_lol.png" alt=":D" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<h3>Avec Yana</h3>
<p>Activez le plugin propise dans la partie réglage et rendez vous coté setting du plugin, vous pouvez ajouter une ou plusieurs sondes (Nommée ici Poolp parce que j&rsquo;ai changé 20 fois de nom depuis sa conception).</p>
<p>Entrez les infos de base de la sonde, cliquez sur enregistrer et suivez le guide d&rsquo;installation sur la ligne qui apparait.</p>
<p><img class="aligncenter size-full wp-image-4349" src="media/4aa0ee1d.2017-06-23-14_04_56-Yana-Server-3.0.6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_56-Yana-Server-3.0.6.png" alt="" width="888" height="641" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_56-Yana-Server-3.0.6.png 888w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_56-Yana-Server-3.0.6-300x217.png 300w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_56-Yana-Server-3.0.6-768x554.png 768w" sizes="(max-width: 888px) 100vw, 888px" /></p>
<p>Une fois la sonde configurée en fonction des instructions du guide vous pouvez vous rendre sur la dashboard et y ajouter le widget propise.</p>
<p><img class="aligncenter size-full wp-image-4350" src="media/339ba804.2017-06-23-14_04_34-Yana-Server-3.0.6.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_34-Yana-Server-3.0.6.png" alt="" width="389" height="276" srcset="http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_34-Yana-Server-3.0.6.png 389w, http://blog.idleman.fr/wp-content/uploads/2017/06/2017-06-23-14_04_34-Yana-Server-3.0.6-300x213.png 300w" sizes="(max-width: 389px) 100vw, 389px" /></p>
<p>Je n&rsquo;ai pas encore relié le gestionnaire de scénario à ce module il s&rsquo;agit pour le moment d&rsquo;un simple affichage, j&rsquo;y travaille sur la version suivante de yana.</p>
<h3>Sans Yana</h3>
<p>Voilà un ptit script fait par dessus la jambe pour récupérer les données envoyées par PROPISE et les stocker à la suite dans un fichier texte, vous pouvez le modifier à votre guise.<br />
<a href="http://hack.idleman.fr/sketch.php?id=7#resource=35"><small>Voir en taille réelle<small></small></small></a><br />
<iframe width="800px" height="400px" frameborder="0" align="center" src="http://hack.idleman.fr/sketch.php?id=7&amp;embeded=1&amp;sidebar=0#resource=35"></iframe></p>
<h2></h2>
<h2>L&rsquo;Utilisation</h2>
<p>Appuyez sur le bouton de reset avant de brancher la sonde, celle ci devrait alors se mettre en hotspot, la lumière RGB s&rsquo;allumera en bleu foncé si tout vas bien.<br />
Vous pourrez alors vous connecter à sa wifi (nommée <strong>PROPISE-XX</strong>) avec le mot de passe « <strong>bananeflambee</strong> » (oui, je sais&#8230;) puis accéder à son interface en tapant dans votre navigateur web l&rsquo;adresse <strong>http://192.168.4.1</strong></p>
<p>Il vous reste ensuite à remplir les identifiant WIFI de votre réseau<br />
Dans le dernier champs, mettre le lien vers le script PHP (ou autre) à qui vous souhaitez que la sonde envois les données, notez que les valeurs entre « <strong>{{}}</strong> » seront remplacé par les données en questions</p>
<p><strong>{{LIGHT}}</strong> : sera remplacé par la lumière de la pièce (en pourcentage)<br />
<strong>{{HUMIDITY}}</strong> : sera remplacé par l&rsquo;humidité de la pièce (en pourcentage)<br />
<strong>{{TEMPERATURE}}</strong> : sera remplacé par la température de la pièce (en degré celcius)<br />
<strong>{{MOUVMENT}}</strong> : sera remplacé par le mouvement de la pièce dans les dernières secondes ( 1 = mouvement, 0= personne)</p>
<p><strong>ex d&rsquo;url:</strong> http://mon.server/monscript.php?light={{LIGHT}}&amp;humidity={{HUMIDITY}}&amp;temperature={{TEMPERATURE}}&amp;mouvment={{MOUVMENT}}</p>
<p>Une fois que tout est enregistré, vous pouvez redémarrer la sonde (débranchez puis rebranchez), elle devrait alors s&rsquo;allumer en vert (indiquant qu&rsquo;elle a bien enregistré les identifiants) puis en blanc clignotant si elle a réussi à se connecter à votre wifi et qu&rsquo;elle envois les données.</p>
<p>A chaque clignotement les données sont envoyées</p>
<h2>Le boitier</h2>
<p>J&rsquo;ai fait imprimer mon boitier, si vous n&rsquo;avez pas d&rsquo;imprimante 3d près de chez vous je vous conseille de la construire en LEGO (si vous êtes riche) ou d&rsquo;acheter une boite de dérivation électrique et de la percer aux bon endroits (<del>si comme moi vous êtes un prolo</del>), ou encore d&rsquo;utiliser des boites de denrées alimentaires, tant que vous restez sur des matières non inflammables :D.</p>
<p><img class="aligncenter wp-image-4362 size-full" src="media/06868f09.2017-11-01-13_39_29-boitier.skp-SketchUp-Make-2017.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2017/11/2017-11-01-13_39_29-boitier.skp-SketchUp-Make-2017.png" alt="" width="894" height="612" srcset="http://blog.idleman.fr/wp-content/uploads/2017/11/2017-11-01-13_39_29-boitier.skp-SketchUp-Make-2017.png 894w, http://blog.idleman.fr/wp-content/uploads/2017/11/2017-11-01-13_39_29-boitier.skp-SketchUp-Make-2017-300x205.png 300w, http://blog.idleman.fr/wp-content/uploads/2017/11/2017-11-01-13_39_29-boitier.skp-SketchUp-Make-2017-768x526.png 768w" sizes="(max-width: 894px) 100vw, 894px" /></p>
<p>Pour ceux qui peuvent faire imprimer, je vous met ci dessous le fichier 3d en <strong>.STL</strong> pour l&rsquo;impression et le fichier sketchup <strong>.SKP</strong> si vous voulez l&rsquo;améliorer.</p>
<p><a href="http://hack.idleman.fr/sketch.php?id=7#resource=40"><small>Voir en taille réelle<small></small></small></a><br />
<iframe width="800px" height="400px" frameborder="0" align="center" src="http://hack.idleman.fr/sketch.php?id=7&amp;embeded=1&amp;sidebar=0#resource=40"></iframe></p>
<p>&nbsp;</p>


feed_id: http://blog.idleman.fr/?p=4428
title: HackPoint V2.0 : l’outil d’aide aux projets DIY
uri: HackPoint-V2-0-l-outil-d-aide-aux-projets-DIY
url: http://blog.idleman.fr/hackpoint-v2-0-loutil-daide-aux-projets-diy/
content:
<p>Salut les <strong>keupains </strong>!!! Ça en fait une paye qu&rsquo;on à pas papoté !!</p>



<p>Mon boulot me draine l&rsquo;âme lentement mais sûrement à tel point que  j&rsquo;ai moins de temps pour partager mes bouts de code avec vous, ça ne m&#8217;empêche pas pour autant de <s>picoler</s> bricoler en cachette. </p>



<p>Je profite donc de cette période de confinement (qui ne change rien puisque je suis un geek et que je ne sortais déjà pas de chez moi avant) pour partager ma version 2 de Hackpoint !</p>



<span id="more-4428"></span>



<figure class="wp-block-image"><img src="media/6eb044a4.app-bg-1024x553.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2020/04/app-bg-1024x553.png" alt="" class="wp-image-4431" srcset="http://blog.idleman.fr/wp-content/uploads/2020/04/app-bg-1024x553.png 1024w, http://blog.idleman.fr/wp-content/uploads/2020/04/app-bg-300x162.png 300w, http://blog.idleman.fr/wp-content/uploads/2020/04/app-bg-768x415.png 768w, http://blog.idleman.fr/wp-content/uploads/2020/04/app-bg.png 1545w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Pour ceux (très peu nombreux j&rsquo;en suis sûr :D) qui n&rsquo;auraient pas suivis la sortie de la v1, Hackpoint est un outil à destination de tout ceux qui aiment bidouiller des projets DIY, perso ou pro, hacklab, fablab ou génie de garage qu&rsquo;il s&rsquo;agisse d’électronique, de menuiserie, de chimie, de dev, <s>de charcuterie</s>&#8230; </p>



<figure class="wp-block-image"><img src="media/dc6b0b3f.screen01-1024x549.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2020/04/screen01-1024x549.png" alt="" class="wp-image-4435" srcset="http://blog.idleman.fr/wp-content/uploads/2020/04/screen01-1024x549.png 1024w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen01-300x161.png 300w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen01-768x412.png 768w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen01.png 1551w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Lorsqu&rsquo;on part sur un projet de 2 semaines à 1 an, sur de multiples technologies (php,js, arduino, c++, python) voir de multiples domaines (dev, electro nique, travail du bois, impression 3d, config réseau / système) on a vite tout un tas de fichiers/liens/mémo qui traînent et un mal fou à organiser tout ce bordel. Hackpoint permet donc de sauvegarder, catégories, présenter et partager des projets qu&rsquo;il s&rsquo;agisse des composants électronique, de la doc, des schémas, des bout de codes divers.</p>



<figure class="wp-block-image"><img src="media/93873d1e.screen02-1024x555.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2020/04/screen02-1024x555.png" alt="" class="wp-image-4436" srcset="http://blog.idleman.fr/wp-content/uploads/2020/04/screen02-1024x555.png 1024w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen02-300x162.png 300w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen02-768x416.png 768w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen02.png 1542w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Le projet contient actuellement les features suivantes :</strong></p>



<ul><li>Gestion du code Arduino</li><li>Gestion des composants</li><li>Gestion du code Javascript</li><li>Gestion du code PHP</li><li>Gestion des images liées (schéma, photos &#8230;)</li><li>Gestion des fichiers liés (stl 3d par exemple,librairies arduino ou c etc..)</li><li>Gestion markdown pour la doc</li><li>Wiki asssocié</li><li>Arborescence de fichiers</li><li>partage de sketch (nom d&rsquo;un projet sur hackpoint)</li><li>Système de plugin permettant aux dev d’ajouter de nouveaux code / fonctionnalités</li><li> Système  de thème graphique</li><li>Gestion des accès, des utilisateurs et des établissement (ex: plusieurs fablab sur un même hackpoint)</li><li>Affichage de la progression d&rsquo;un projet</li><li>Possibilité de sauvegarder un sktech au format zip</li><li>Création de menu custom (ex: liens vers votre eshop Electronique favoris)</li><li>Gestion des logs</li><li>Affichage mise à jour</li></ul>



<figure class="wp-block-image"><img src="media/7362bafd.screen04-1024x581.png" data-original-source="http://blog.idleman.fr/wp-content/uploads/2020/04/screen04-1024x581.png" alt="" class="wp-image-4437" srcset="http://blog.idleman.fr/wp-content/uploads/2020/04/screen04-1024x581.png 1024w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen04-300x170.png 300w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen04-768x436.png 768w, http://blog.idleman.fr/wp-content/uploads/2020/04/screen04.png 1554w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Démo</strong><br>Si vous souhaitez voir des cas d&rsquo;utilisation, vous pouvez vous fier à mon propre hackpoint pour les projets que j&rsquo;ai mis en public : </p>



<p><a href="http://hacking.idleman.fr/index.php">http://hacking.idleman.fr/index.php</a><br></p>



<p> <strong>Téléchargement</strong> <br>Pour télécharger hackpoint, je vous ai créé une magnifique page officielle (j&rsquo;ai tout donné&#8230;) :  <a href="http://hackpoint.idleman.fr/">http://hackpoint.idleman.fr/</a> </p>



<p><strong>Dépôt git </strong><br>Pour les barbus qui n&rsquo;aime pas les vitrines web vous pouvez également passer directement par le dépôt git :  <a href="http://git.idleman.fr/idleman/hackpoint">http://git.idleman.fr/idleman/hackpoint</a></p>



<p>Bien à vous !</p>



<p>Idle </p>


