<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Geeek - Le Blog Geek & High-Tech]]></title><description><![CDATA[Geeek est un blog Geek et High-Tech : Web,  développement informatique, nouvelles technologies, domotique, drones ...]]></description><link>https://www.geeek.org/</link><image><url>https://www.geeek.org/favicon.png</url><title>Geeek - Le Blog Geek &amp; High-Tech</title><link>https://www.geeek.org/</link></image><generator>Ghost 2.30</generator><lastBuildDate>Wed, 18 Sep 2019 12:26:03 GMT</lastBuildDate><atom:link href="https://www.geeek.org/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Ghost : Mon retour d'expérience sur cette plateforme de blog après 5 mois d'utilisation !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://www.geeek.org/migration-du-blog/">Je vous en avais parlé il y a 4 mois</a>, mon vieux blog Geeek.org a subi un relifting technologique complet. Après 14 années passées sur Dotclear, Geeek.org a définitivement migré sur la plateforme Ghost, un CMS léger et innovant en NodeJS.</p>
<p>Le pari à l'époque était risqué, je</p>]]></description><link>https://www.geeek.org/avis-cms-ghost-blog/</link><guid isPermaLink="false">5d73ae4f414b43247c77abd9</guid><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Mon, 09 Sep 2019 21:25:36 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/09/ghost-logo.svg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/09/ghost-logo.svg" alt="Ghost : Mon retour d'expérience sur cette plateforme de blog après 5 mois d'utilisation !"><p><a href="https://www.geeek.org/migration-du-blog/">Je vous en avais parlé il y a 4 mois</a>, mon vieux blog Geeek.org a subi un relifting technologique complet. Après 14 années passées sur Dotclear, Geeek.org a définitivement migré sur la plateforme Ghost, un CMS léger et innovant en NodeJS.</p>
<p>Le pari à l'époque était risqué, je possédais pas moins de <strong>2400 articles</strong> à migrer d'un format Wiki Dotclear à un format Markdown qui est le format supporté par la plateforme Ghost.<br>
Cette migration a été réussie grâce à <a href="https://github.com/ltoinel/Dotclear2Ghost">un script en NodeJS</a> développé spécifiquement pour mes besoins et disponible sur GitHub.</p>
<p>Après 5 mois d'utilisation de Ghost, voici un retour d'expérience sur cette nouvelle plateforme de blog / CMS qui selon moi concurrencera de plus en plus la plateforme <strong>Wordpress</strong> que tout le monde connait aujourd'hui.</p>
<h3 id="latechnologie">La Technologie</h3>
<p>Ghost est un CMS <strong>OpenSource</strong> conçu en NodeJS et fonctionnant pour le coup nativement sur Windows et Linux.<br>
Le projet a démarré en 2013 autour d'un appel à <a href="https://www.kickstarter.com/projects/johnonolan/ghost-just-a-blogging-platform">projet de crowfunding sur Kickstarter</a>. 6 ans plus tard, la version 2 du CMS voit le jour avec un look bien loin des images partagées sur la page du projet Kickstarter de l'époque.</p>
<p><img src="https://www.geeek.org/content/images/2019/09/ghost-kickstarter.jpg" alt="Ghost : Mon retour d'expérience sur cette plateforme de blog après 5 mois d'utilisation !"></p>
<p><a href="https://github.com/TryGhost/Ghost/releases">Les releases de Ghost</a> sont aujourd'hui quasi hebdomadaires, heureusement un script shell fourni par Ghost permet la mise à jour de la plateforme très rapidement.<br>
Ghost s'appuie sur une base de données pour permettre de stocker ses contenus.<br>
Enfin, Ghost est un CMS headless pouvant être intégré directement via des API depuis une application Web de type SPA. Ce qui fait de lui un excellent choix pour héberger des contenus pour des applications Web tierces.</p>
<p><img src="https://www.geeek.org/content/images/2019/09/ghost-features-app-diagram.png" alt="Ghost : Mon retour d'expérience sur cette plateforme de blog après 5 mois d'utilisation !"></p>
<h3 id="linstallation">L'Installation</h3>
<p>L'installation d'un site Ghost est très rapide et automatisée grâce au script shell &quot;ghost admin&quot; qui permet en quelques secondes d'initialiser un nouveau site.</p>
<pre><code class="language-Bash"># npm install ghost-cli@latest -g
$ ghost install local
</code></pre>
<p>Il est nativement multi-sites, cependant chaque site est hébergé sur une base de données dédiée et possède son propre processus node pour fonctionner correctement.</p>
<h3 id="linterfacedecontribution">L'Interface de contribution</h3>
<p>La grande force de Ghost est son interface de contribution qui dépasse les interfaces de nombreux CMS du marché. Celle-ci permet de structurer des articles très rapidement et offre deux principaux modes de rédaction, un mode WISIWIG et un mode Markdown pour les rédacteurs les plus avancés.<br>
Dans le cas de Geeek, j'ai pris le choix de tout rédiger au format Markdown pour permettre une portabilité du contenu si à l'avenir je dois migrer vers une autre plateforme de blog.</p>
<p><img src="https://www.geeek.org/content/images/2019/09/ghost-desktop.png" alt="Ghost : Mon retour d'expérience sur cette plateforme de blog après 5 mois d'utilisation !"></p>
<p>Il est possible de contribuer sur Ghost au travers de 3 solutions :</p>
<ul>
<li>Le portail Web, via son interface d'administration.</li>
<li>Une application mobile Ghost disponible depuis le Market place Android.</li>
<li>Une application PC/MAC qui semble encapsuler les pages d'administration du portail.</li>
</ul>
<p>Ghost fournit un mécanisme de profils sur son portail d'administration qui permet de donner des droits restreints à des contributeurs tiers. Par défaut, quatre niveaux de profils sont proposés : Administrateur, Editeur, Auteur, Contributeur.</p>
<h3 id="leseo">Le SEO</h3>
<p>En termes de SEO, la plateforme est optimisée en fournissant nativement l'ensemble des fonctionnalités nécessaires à un CMS pour être correctement référencé sans plugin aditionnel : SiteMap, Metadata, Microschema ...</p>
<p>Attention cependant au thème graphique que vous choisirez, celui-ci peut-être plus ou moins performant et optimisé pour le SEO.</p>
<p>Pour compléter cette partie SEO, Ghost fournit la capacité à configurer un fichier contenant des règles de redirections pour permettre de ne pas perdre de trafic entrant. Ce fichier contenant les règles de redirection est uploadable depuis l'interface d'administration de Ghost.</p>
<pre><code class="language-javascript">[
{&quot;from&quot;:&quot;^/[0-9]{4}/[0-9]{2}/[0-9]{2}/([^/.]*)(.html|/)?$&quot;,&quot;to&quot;:&quot;/$1/&quot;,&quot;permanent&quot;:true}
]
</code></pre>
<p>Le changement de format d'URL de mes articles imposé par Ghost m'a fait tout de même perdre pas moins de <strong>30% de traffic</strong>. Google n'ayant pas tout à fait indexé l'ensemble des articles avec les nouvelles URL ...</p>
<h3 id="lesplugins">Les Plugins</h3>
<p>Ghost a pris le pari d'interdire les plugins et de permettre à des services tiers comme <a href="https://zapier.com/">Zapier</a> par exemple de pouvoir s'intégrer nativement et permettre ainsi d'enrichir les fonctionnalités de la plateforme.</p>
<p>J'y vois deux avantages à cette stratégie, le premier est la sécurité, la plateforme ne peut pas être corrompue par du code tiers. Enfin, le second avantage concerne les performances, il n'est pas possible de dégrader les performances du CMS au travers l'installation de plugins.</p>
<h3 id="lesperformances">Les Performances</h3>
<p>Ghost dispose nativement d'excellentes performances, ses auteurs l'ont notamment  conçu autour de cela.<br>
Pour aller plus loin en termes de performances offertes par la plateforme, je vous recommande  d'utiliser <a href="https://www.nginx.com/resources/wiki/start/topics/examples/reverseproxycachingexample/">les fonctions de &quot;Proxy Cache&quot; fournies en standard par le serveur Web NGinx</a>. Configuré avec un TTL de quelques minutes, ce cache vous permettra de décharger NodeJS en termes de sollicitations,  réduire la consommation CPU / RAM de votre serveur et ainsi les temps de réponse.</p>
<h3 id="lastabilit">La Stabilité</h3>
<p>J'imaginais avoir plus de plantages sur mon serveur, cela ne s'est pas encore produit. Le SLA du site est aujourd'hui de 100%, le site n'a subi aucune rupture de service malgré les millions de requêtes HTTP par mois. Cette stabilité est d'autant augmentée via l'utilisation de Nginx en reverse proxy du site.</p>
<h3 id="lesthmes">Les Thèmes</h3>
<p>La plateforme ne dispose pas aujourd'hui de centaines de thèmes comme Wordpress. Cependant les dizaines de thèmes proposées sur sa <a href="https://ghost.org/marketplace/">Market Place</a> sont de qualité et peuvent répondre à de nombreux besoins de sites et son mécanisme de templating est très simple à prendre en main.</p>
<h3 id="lesfonctionnalits">Les Fonctionnalités</h3>
<p>Ghost fournit des fonctionnalités minimalistes, la plateforme se restreint à l'essentiel, mais elle le fait bien !</p>
<p>On peut cependant noter l'absence de deux fonctionnalités importantes pour un CMS  :</p>
<ul>
<li><strong>Un moteur de recherche</strong>, afin d'offrir des fonctionnalités de recherche aux visiteurs du site. Cette fonctionnalité est aujourd'hui couverte par les thèmes Ghost qui téléchargent tous les articles en JSON et offrent une fonction de recherche au travers de librairies Javascript telles que Fuze.js. Pour pallier à ce besoin, je me suis appuyé sur ElasticSearch pour indexer les contenus de ma base de données. J'ai décrit cette intégration <a href="https://www.geeek.org/installer-elasticsearch-logstash-site-internet/">dans un précédent article</a>.</li>
<li><strong>Un outil de gestion de bibliothèque de contenus</strong>, l'ensemble des médias publiés sont transmis dans un répertoire horodaté, ce qui rend complexe la réutilisation d'images dans différents articles.</li>
</ul>
<p>Ces deux fonctionnalités aujourd'hui manquantes font probablement partie de la roadmap de la plateforme Ghost aujourd'hui.</p>
<h3 id="conclusion">Conclusion</h3>
<p>Après 5 mois d'utilisation, Ghost est définitivement adopté, malgré sa pauvreté fonctionnelle, il fait très bien ce que j'attends d'une plateforme de blog et offre des thèmes légers et performants.<br>
A contrario de Wordpress qui me donne des allergies cutanées quand j'ouvre le code source des thèmes, Ghost est aujourd'hui est un CMS à étudier de prêt quand on souhaite créer un site Internet rapidement et de qualité.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[💰 Coinbase vous fait gagner 60💲 en cryptomonnaies en répondant à quelques questions !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://www.coinbase.com/join/toinel_p">Coinbase</a> est l'une des plus importantes places de marché de cryptomonnaies (Exchange). La bonne nouvelle est qu'elle distribue gratuitement  <strong>plusieurs dizaines de dollars</strong> en cryptomonnaies si vous répondez à quelques questions.</p>
<p>Avec de la chance, la cryptomonnaie offerte par la plateforme pourra se transformer en plusieurs milliers d'euros d'ici plusieurs</p>]]></description><link>https://www.geeek.org/coinbase-vous-fait-gagner-des-cryptomonnaies-en-vous-informant/</link><guid isPermaLink="false">5d70153a0fe3db22ae1ad0e1</guid><category><![CDATA[Cryptomonnaie]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Wed, 04 Sep 2019 20:32:29 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/09/logo-coinbase.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/09/logo-coinbase.png" alt="💰 Coinbase vous fait gagner 60💲 en cryptomonnaies en répondant à quelques questions !"><p><a href="https://www.coinbase.com/join/toinel_p">Coinbase</a> est l'une des plus importantes places de marché de cryptomonnaies (Exchange). La bonne nouvelle est qu'elle distribue gratuitement  <strong>plusieurs dizaines de dollars</strong> en cryptomonnaies si vous répondez à quelques questions.</p>
<p>Avec de la chance, la cryptomonnaie offerte par la plateforme pourra se transformer en plusieurs milliers d'euros d'ici plusieurs années. Dans le pire des cas, vous n'aurez rien perdu si cette cryptomonnaie disparait de la toile ...</p>
<p>En ce moment vous pouvez empocher <strong>jusqu'à 60 $ USD</strong> en quelques minutes  :</p>
<h3 id="50usddestellarlumensxlm">50 $ USD de Stellar Lumens (XLM)</h3>
<p><a href="https://www.coinbase.com/join/toinel_p">Coinbase</a> vous offre 10 $ USD en répondant à <strong>5 questions</strong> et 40 $ USD en invitant jusqu'à <strong>4 contacts</strong> sur la plateforme Coinbase.</p>
<p>Je vous avais partagé  cette offre dans <a href="https://www.geeek.org/acheter-stellar-lumens-xlm-259/">un précédent article dédié au XLM</a>, à l'époque celle-ci était réservée aux résidents américains. L'offre est désormais active pour les résidents français.</p>
<p>Pour vous faire gagner du temps, voici les réponses aux 5 questions qui vous seront demandées sur le site :</p>
<ul>
<li>Q1: A decentralized protocol that unites the world financial infrastructure.</li>
<li>Q2: Facilitating low cost, universal payments.</li>
<li>Q3: Transactions are fast, inexpensive, and global.</li>
<li>Q4: To issue, exchange, and transfer tokens quickly and efficiently</li>
<li>Q5: It relies on the cooperation of trusted nodes to confirm transactions</li>
</ul>
<h3 id="10usddebasicattentiontokenbat">10 $ USD de Basic Attention Token (BAT)</h3>
<p><a href="https://www.coinbase.com/join/toinel_p">Coinbase</a> offre 3 $ USD en répondant à <strong>3 questions</strong> et 7 $ USD  en <strong>installant le navigateur Brave</strong> sur votre ordinateur.</p>
<p>Pour vous faire gagner du temps, voici les 3 réponses aux questions qui vous seront demandées sur le site :</p>
<ul>
<li>Q1 : There are too many ads and data trackers</li>
<li>Q2 : It is free, open-source web browser built for privacy</li>
<li>Q3 : Users get paid BAT for viewing opt-in ads, and publisher get rewarded when users pay attention to their content.</li>
</ul>
<p>Plusieurs autres Cryptomonnaies sont en liste d'attente pour une distribution gratuite d'ici quelques semaines : Les <strong>DAI</strong> et <strong>EOS</strong></p>
<p>Vous pouvez vous inscrire à aux listes d'attente sur le site de Coinbase pour être informé de l'ouverture de la distribution de ces cryptomonnaies.</p>
<p>Pour encaisser gratuitement cette cryptomonnaie, <a href="https://www.coinbase.com/join/toinel_p">voici un  lien pour vous permettre d'encaisser l'équivalent de 8,94€ en Bitcoin lors de votre inscription</a> 😇</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[OpenData : Découvrez le prix de l’immobilier grâce à Etalab !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Voici une excellente information pour les futurs propriétaires.</p>
<blockquote>
<p>Mercredi 24 avril 2019, la direction générale des finances publiques (DGFiP) a rendu publique l’intégralité des données foncières sur les cinq dernières années, regroupées dans une base de donnée appelée « demandes de valeurs foncières ».</p>
</blockquote>
<p>Ces données foncières utiles pour des futurs</p>]]></description><link>https://www.geeek.org/prix-immobilier-etalab/</link><guid isPermaLink="false">5d66ee2a42710640333755d1</guid><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Wed, 28 Aug 2019 21:30:42 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/08/etalab-prix-immobilier-cover.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/08/etalab-prix-immobilier-cover.jpg" alt="OpenData : Découvrez le prix de l’immobilier grâce à Etalab !"><p>Voici une excellente information pour les futurs propriétaires.</p>
<blockquote>
<p>Mercredi 24 avril 2019, la direction générale des finances publiques (DGFiP) a rendu publique l’intégralité des données foncières sur les cinq dernières années, regroupées dans une base de donnée appelée « demandes de valeurs foncières ».</p>
</blockquote>
<p>Ces données foncières utiles pour des futurs acheteurs et les curieux peuvent être accédées au travers d'un portail offrant une cartographie interactive :</p>
<ul>
<li><a href="https://app.dvf.etalab.gouv.fr/">https://app.dvf.etalab.gouv.fr/</a></li>
</ul>
<p><a href="https://app.dvf.etalab.gouv.fr/"><img src="https://www.geeek.org/content/images/2019/08/etalab-prix-immobilier.jpg" alt="OpenData : Découvrez le prix de l’immobilier grâce à Etalab !"></a></p>
<p>Pour les développeurs, ce portail est OpenSource sous licence Apache, son code source est <a href="https://github.com/etalab/DVF-app">disponible sur GitHub</a>.</p>
<p>Si vous avez des compétences en analyse de données, ces données foncières en OpenData sont aussi publiées sous forme de <a href="https://www.data.gouv.fr/fr/datasets/5c4ae55a634f4117716d5656/">données brutes</a> et de <a href="https://www.data.gouv.fr/fr/datasets/5cc1b94a634f4165e96436c1/">données géolocalisées</a></p>
<p>Vous retrouverez plus d'informations sur <a href="https://www.etalab.gouv.fr/bercy-libere-15-millions-de-transactions-immobilieres-en-ouvrant-la-base-des-demandes-de-valeurs-foncieres">le blog d'Etalab</a>.</p>
<p><strong>Bonne exploration !</strong></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[TabNine : L'autocomplétion propulsée au Deep Learning pour les développeurs]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Après le Devops, le NoOps, l'automation grignote progressivement du terrain grâce aux progrès de l'IA et des infrastructures informatiques sur le Cloud capables de fournir des capacités de calcul suffisantes pour ces nouveaux usages.</p>
<p><a href="https://blog.mozilla.org/press-fr/2019/02/13/ubisoft-sassocie-a-mozilla-en-vue-de-developper-clever-commit-un-assistant-de-programmation-base-sur-lintelligence-artificielle/">Après l'annonce d'Ubisoft il y a quelques mois</a> qui indiquait qu'elle venait de signer un partenariat</p>]]></description><link>https://www.geeek.org/tabnine-autocompletion-deep-learning/</link><guid isPermaLink="false">5d3edc3dac45b32f56609c87</guid><category><![CDATA[Developpement]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Mon, 29 Jul 2019 12:22:01 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/07/tabnine.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/07/tabnine.jpg" alt="TabNine : L'autocomplétion propulsée au Deep Learning pour les développeurs"><p>Après le Devops, le NoOps, l'automation grignote progressivement du terrain grâce aux progrès de l'IA et des infrastructures informatiques sur le Cloud capables de fournir des capacités de calcul suffisantes pour ces nouveaux usages.</p>
<p><a href="https://blog.mozilla.org/press-fr/2019/02/13/ubisoft-sassocie-a-mozilla-en-vue-de-developper-clever-commit-un-assistant-de-programmation-base-sur-lintelligence-artificielle/">Après l'annonce d'Ubisoft il y a quelques mois</a> qui indiquait qu'elle venait de signer un partenariat avec Mozilla pour développer <strong>un assistant de programmation basé sur l’intelligence artificielle</strong> afin d'améliorer la qualité de code, voici TabNine une IA capable de réaliser des propositions d'autocomplétion aux développeurs, ceci sur <strong>22 langages de développement différents</strong>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZStZzgzFwMw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>Selon son auteur, cette IA a été entrainée avec <strong>2 Millions de lignes de code libres sur GitHub</strong>. Elle se repose sur l'utilisation de <a href="https://openai.com/blog/better-language-models/">GPT2</a> d'OpenAI et d'un réseau de neurones de type <a href="https://arxiv.org/abs/1706.03762">Transformer</a>.</p>
<p><img src="https://www.geeek.org/content/images/2019/07/tabnine-plugin.png" alt="TabNine : L'autocomplétion propulsée au Deep Learning pour les développeurs"></p>
<p>TabNine dispose  <strong>d'un plugin</strong> disponible sur différentes plateformes de développement du marché : VS Code, Sublime Text, Atom, Emacs, Vim, Vim (Deoplete).</p>
<p>TabNine offre 2 modèles de licence :</p>
<ul>
<li>Une version freemium limitée à 400KB de code indexé.</li>
<li>Une version payante capable d'indexer 100MB de code disponible sous forme de licence personnelle (49$) et de licence entreprise(99$).</li>
</ul>
<p>TabNine fonctionne actuellement sur un PC de développement, mais nécessite beaucoup de ressources physiques pour pouvoir fonctionner correctement avec un mimum de latence.<br>
Une offre Cloud est actuellement en version d'essai pour réduire les latences de prédiction et offrir encore plus de productivité.</p>
<blockquote>
<p>TabNine est un outil innovant qui deviendra probablement une norme dans les outils de développement du marché d'ici les 5 prochaines années.</p>
</blockquote>
<p>Au-delà de l'augmentation de la qualité de code que peut proposer l'utilisation de cet outil, c'est aussi un outil qui peut permettre d'augmenter la productivité des phases de développement d'un projet.</p>
<p>TabNine est disponible sur <a href="https://tabnine.com">https://tabnine.com</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Malware Android : Comment supprimer le virus Agent Smith ?]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous avez pu lire de nombreux articles aujourd'hui au sujet du fameux Malware <strong>Agent Smith</strong> qui aurait infecté plus de <strong>25 Millions de terminaux Android</strong> ... Vous vous êtes demandé comme moi comment ce malware fonctionne réellement et pourquoi est-il si innovant et comment le supprimer ?</p>
<p>Il suffit pour cela de</p>]]></description><link>https://www.geeek.org/android-comment-supprimer-agent-smith/</link><guid isPermaLink="false">5d27ac230e44d35c0f4ab874</guid><category><![CDATA[Sécurité informatique]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Thu, 11 Jul 2019 22:27:17 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/07/android-agent-smith.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/07/android-agent-smith.jpg" alt="Malware Android : Comment supprimer le virus Agent Smith ?"><p>Vous avez pu lire de nombreux articles aujourd'hui au sujet du fameux Malware <strong>Agent Smith</strong> qui aurait infecté plus de <strong>25 Millions de terminaux Android</strong> ... Vous vous êtes demandé comme moi comment ce malware fonctionne réellement et pourquoi est-il si innovant et comment le supprimer ?</p>
<p>Il suffit pour cela de revenir à la source de l'information et d'arrêter de lire les informations partielles que vous diffusent de nombreux sites de news sur Internet.</p>
<p>La source de la détection de ce malware provient du <strong>cabinet de recherche Check Point</strong> qui décrit précisément comment fonctionne ce malware et qui décrit pourquoi ce malware est si innovant :</p>
<p><a href="https://research.checkpoint.com/agent-smith-a-new-species-of-mobile-malware/">https://research.checkpoint.com/agent-smith-a-new-species-of-mobile-malware/</a></p>
<p>Quatre points intéressants sont à retenir concernant ce malware  :</p>
<ol>
<li>Ce malware <strong>décompile le code DEX</strong> des applications Android pour pouvoir modifier leur comportement dont notamment les fonctions d'affichage de publicités ciblées comme celles de Whatsapp.</li>
<li>Il utilise une <strong>vieille vulnérabilité</strong> connue sous le nom &quot;Janus&quot; et identifiée par GuardSquare (CVE-2017-13156) pour outrepasser les contrôles d'intégrité des APK sur Android en exploitant le boot.dex des applications qui n'est pas pris en compte dans le mécanisme de contrôle d'intégrité des APK sur Android.</li>
<li>Il se multiplie sur le terminal Android en insérant son code dans le boot.dex des applications présentes sur le terminal.</li>
<li>Le seul canal de transmission de ce malware passe par les publicités que celui-ci diffuse sans votre accord sur les applications qu'il infecte.</li>
</ol>
<p><img src="https://www.geeek.org/content/images/2019/07/agent-smith-fonctionnement.png" alt="Malware Android : Comment supprimer le virus Agent Smith ?"><br>
<em>(source : Check Point Research)</em></p>
<p>Pour se prémunir de ce virus, il faut donc :</p>
<ul>
<li>Ne pas télécharger d'applications provenant de store alternatif.</li>
<li>Ne pas installer des applications mobiles poussées au travers de publicités sur des réseaux sociaux.</li>
</ul>
<p>Au-delà des nuisances liées à l'affichage de publicités inopinées, le seul moyen de détecter la présence de ce malware est de vérifier si les signatures des fichiers boot.dex des applications installées sont identiques à leurs originales afin de s'assurer qu'aucune application n'ait été altérée.</p>
<blockquote>
<p>Depuis la publication de la faille de sécurité &quot;Janus&quot; il y a deux ans, de nombreux Antivirus sur Android sont capables d'identifier ce type d'attaque en assurant un contrôle d'intégrité plus avancé que celui proposé par Android.</p>
</blockquote>
<p>Si vous vous êtes fait infecté par ce malware, la solution la plus seine pour retrouver un smartphone Android propre est de réaliser <strong>une réinitialisation d'usine</strong> de votre smartphone Android et d'installer les mises à jour d'Android proposées par votre constructeur si elles existent ...</p>
<p>Vous serez ainsi certain de ne pas garder d'applications vérolées sur votre smartphone. Avant cette action de réinitialisation, assurez-vous d'avoir sauvegardé vos contacts et vos données importantes qui ne seraient pas stockées sur la carte SD de votre smartphone.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Installez gratuitement Nessus pour analyser la présence de menaces sur votre réseau informatique !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Nessus est <strong>le meilleur scanner de sécurité</strong> du marché selon G2. Son seul inconvénient, son prix : 2 785,14 € par an. Nessus est complémentaire à un antivirus, Nessus identifiera des comportements anormaux sur votre réseau alors que votre antivirus se limitera à l'analyse de votre ordinateur.</p>
<p>La bonne nouvelle est</p>]]></description><link>https://www.geeek.org/installer-gratuitement-nessus-essentials/</link><guid isPermaLink="false">5d23adae65b7fb4dcd09eda0</guid><category><![CDATA[Sécurité informatique]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Mon, 08 Jul 2019 21:39:55 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/07/nessus-logo.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/07/nessus-logo.png" alt="Installez gratuitement Nessus pour analyser la présence de menaces sur votre réseau informatique !"><p>Nessus est <strong>le meilleur scanner de sécurité</strong> du marché selon G2. Son seul inconvénient, son prix : 2 785,14 € par an. Nessus est complémentaire à un antivirus, Nessus identifiera des comportements anormaux sur votre réseau alors que votre antivirus se limitera à l'analyse de votre ordinateur.</p>
<p>La bonne nouvelle est que Tenable, la société qui édite ce logiciel, propose <strong>gratuitement</strong> sa solution en version Essentials qui limite le scan de sécurité à 16 adresses IP. Ce qui est normalement suffisant pour la majorité des réseaux personnels et des réseaux de TPE.</p>
<p>Téléchargez l'outil disponible sur Windows, Mac et Linux :<br>
<a href="https://www.tenable.com/downloads/nessus">https://www.tenable.com/downloads/nessus</a></p>
<p>Lors de la phase d'installation, précisez que vous souhaitez utiliser la version Essentials et réalisez une demande de numéro de série dans le formulaire qui vous sera présenté.</p>
<p>Une fois le logiciel installé, exécutez-le !</p>
<p><img src="https://www.geeek.org/content/images/2019/07/nessus-essantials-screenshot.png" alt="Installez gratuitement Nessus pour analyser la présence de menaces sur votre réseau informatique !"></p>
<p>Ce logiciel dispose de nombreuses fonctionnalités de scan, il est capable :</p>
<ul>
<li>D'identifier la structure de votre réseau.</li>
<li>De scanner l'ensemble des ports ouverts sur votre réseau.</li>
<li>D'identifier la présence de malware.</li>
<li>De scanner la présence de failles de sécurité sur une application Web.</li>
<li>D'identifier des failles Spectre, Meltdown, Wannacry ....</li>
</ul>
<p>Pour lancer une analyse, il  suffit de cliquer sur le bouton bleu &quot;New Scan&quot; présent sur le coin droit de la fenêtre et de sélectionner le type d'analyse que vous souhaitez réaliser.</p>
<p>Les seules informations importantes à saisir concernent la plage d'IP à scanner et le nom du test. Une fois ces deux informations saisies, il vous suffira de lancer le scan et d'attendre plusieurs minutes que les premiers résultats s'affichent :</p>
<p><img src="https://www.geeek.org/content/images/2019/07/nessus-essantials-screenshot-resultats.png" alt="Installez gratuitement Nessus pour analyser la présence de menaces sur votre réseau informatique !"></p>
<p>Vous voilà prêt à identifier l'ensemble des failles de sécurité présentes sur votre réseau. N'hésitez pas à laisser un commentaire si cet article vous a été utile.</p>
<p><strong>Bon scan !</strong></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[DeepNude devient Opensource et fait trembler la toile ...]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous avez probablement entendu parler de cette information cette semaine ... <a href="https://twitter.com/deepnudeapp">Un développeur</a> a mis une application se prénommant DeepNude capable de <strong>dénuder des photos de femmes en maillot de bain</strong> grâce à un simple algorithme d'intelligence artificielle.</p>
<blockquote>
<p>Cette application a créé un tsunami sur la toile et fait polémique quant</p></blockquote>]]></description><link>https://www.geeek.org/telecharger-deepnude/</link><guid isPermaLink="false">5d1faccf14b98b5de854549f</guid><category><![CDATA[Developpement]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Sat, 06 Jul 2019 14:31:27 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/07/deepnude-telecharger.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/07/deepnude-telecharger.jpg" alt="DeepNude devient Opensource et fait trembler la toile ..."><p>Vous avez probablement entendu parler de cette information cette semaine ... <a href="https://twitter.com/deepnudeapp">Un développeur</a> a mis une application se prénommant DeepNude capable de <strong>dénuder des photos de femmes en maillot de bain</strong> grâce à un simple algorithme d'intelligence artificielle.</p>
<blockquote>
<p>Cette application a créé un tsunami sur la toile et fait polémique quant à  l'éthique liée à l'usage de l'IA.</p>
</blockquote>
<p>L'application DeepNude a été très rapidement retirée d'Internet par son auteur suite aux nombreux &quot;leakage&quot; de son application payante. Mais attention, l'histoire ne s'arrête pas là, le code source des algorithmes derrière cette application vient tout juste d'être mis en Opensource par son propriétaire sur son compte GitHub :</p>
<p><a href="https://github.com/deepinstruction/deepnude_official">https://github.com/deepinstruction/deepnude_official</a></p>
<blockquote>
<p>UPDATE : Nouveau rebondissement dans cette histoire, l'ensemble des repositories GitHub DeepNude ont finalement été supprimés par GitHub. Celui-ci jugeant que ces algorithmes à caractère &quot;pornographique&quot; n'avaient pas leur place sur sa plateforme.</p>
</blockquote>
<p>Cet algorithme est un cas d'école pour apprendre l'IA et est compréhensible par un développeur débutant.</p>
<p>Il pose cependant de nombreuses questions d'éthiques, car des personnes mal intentionnées pourraient utiliser ce type d'algorithme pour réaliser des &quot;Fake news&quot; ou nuire à la réputation d'une tierce personne.</p>
<p>Mais rassurez-vous (ou pas), la qualité des images produites est médiocre et l'algorithme ne supporte que des images de très faible résolution. Mais j'imagine que cette limitation est temporaire ...</p>
<blockquote>
<p>Avec les nombreux forks de la communauté Github, il est probable que des algorithmes plus sophistiqués emergent sur Internet d'ici les prochaines semaines. Mais aussi probablement des applications mobiles qui viendront mettre la zizanie sur nos plages.</p>
</blockquote>
<p>L'algorithme utilisé se décompose en <strong>7 traitements d'image</strong> et utilise <strong>2 librairies principales</strong> qui sont <a href="https://opencv.org/">OpenCV</a> et <a href="https://github.com/NVIDIA/pix2pixHD">pix2pixHD</a>  :</p>
<ol>
<li>Dress -&gt; Correct [OPENCV]</li>
<li>Correct -&gt; Mask [GAN]</li>
<li>Mask -&gt; Maskref [OPENCV]</li>
<li>Maskref -&gt; Maskdet [GAN]</li>
<li>Maskdet -&gt; Maskfin [OPENCV]</li>
<li>Maskfin -&gt; Nude [GAN]</li>
<li>Nude -&gt; Watermark [OPENCV]</li>
</ol>
<p><img src="https://www.geeek.org/content/images/2019/07/deepnude-download-1.jpg" alt="DeepNude devient Opensource et fait trembler la toile ..."></p>
<p>Le script principal utilise Python3 et a comme dépendances numpy, Pillow, setuptools, six, torch, torchvision, wheel, opencv.</p>
<p>Pour utiliser cet algorithme d'intelligence artificielle sur son PC, voici comment s'y prendre.</p>
<p>Si vous utilisez Windows 10 alors <a href="https://www.microsoft.com/fr-fr/p/ubuntu/9nblggh4msv6?SilentAuth=1">téléchargez Ubuntu sur Windows 10 depuis la market place.</a></p>
<p>Si vous utilisez Linux Ubuntu, voici les commandes d'installation :</p>
<pre><code class="language-bash">$ sudo apt-get install python3-setuptools python3-pip libxrender1 libsm6

$ pip3 install torch torchvision numpy opencv-python pillow six wheel

$ git clone https://github.com/deepinstruction/deepnude_official.git

$ cd deepnude_official

$ mkdir checkpoints

$ cd checkpoints

$ wget -O cm.lib https://github.com/open-deepnude/deepnude-model-3/raw/master/checkpoints/cm.lib

$ wget -O mm.lib https://github.com/open-deepnude/deepnude-model-2/raw/master/checkpoints/mm.lib

$ wget -O mn.lib https://github.com/open-deepnude/deepnude-model-1/raw/master/checkpoints/mn.lib

</code></pre>
<p>Testez l'application, pour cela lancez la commande suivante depuis votre shell bash :</p>
<pre><code class="language-bash">$ python3 main.py
</code></pre>
<p>Par défaut, le programme analyse le fichier png se nommant &quot;input.png&quot; à la racine du programme.<br>
Après l'exécution des 7 étapes d'analyse et de transformation, vous devriez voir obtenir l'image &quot;output.png&quot; dans le même répertoire que le script.</p>
<p><em>Attention, l'algorithme ne fonctionne qu'avec des images de 512px de largeur et 512px de hauteur.</em></p>
<p>Je ne peux que te souhaiter un très bel été et <a href="https://www.geeek.org/rss/">inscris-toi au fil RSS de ce blog pour ne louper aucun nouvel article si ce n'est pas déjà fait !</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Partage ton blog sur ma Blogroll !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><a href="https://www.geeek.org/blogroll/">Ma Blogroll se fait vielle</a>, 15 années déjà ! <a href="https://www.geeek.org/fin-blogs-personnels-249/">Les liens des fabuleux blogs</a> que je lisais il y a quelques années disparaissent petit à petit à chaque fois qu'un site n'est plus maintenu. Ma liste ne demande qu'une chose, être alimentée par des URL de nouveaux blogs sympas.</p>
<blockquote>
<p>Ami lecteur,</p></blockquote>]]></description><link>https://www.geeek.org/blogroll-blogs-high-tech/</link><guid isPermaLink="false">5d1a684bf16ae81289f8b5ae</guid><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Mon, 01 Jul 2019 20:40:19 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/07/su-san-lee-VFT8W5VfHw8-unsplash.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/07/su-san-lee-VFT8W5VfHw8-unsplash.jpg" alt="Partage ton blog sur ma Blogroll !"><p><a href="https://www.geeek.org/blogroll/">Ma Blogroll se fait vielle</a>, 15 années déjà ! <a href="https://www.geeek.org/fin-blogs-personnels-249/">Les liens des fabuleux blogs</a> que je lisais il y a quelques années disparaissent petit à petit à chaque fois qu'un site n'est plus maintenu. Ma liste ne demande qu'une chose, être alimentée par des URL de nouveaux blogs sympas.</p>
<blockquote>
<p>Ami lecteur, je compte sur toi !</p>
</blockquote>
<p>Tu es l'auteur d'un blog High-tech, Dev ou Geek ? <strong>N'hésite pas à partager le lien de ton site en commentaire</strong>, je me ferai un plaisir d'ajouter ton site à ma Blogroll et à t'ajouter à mon compte Feedly.</p>
<p>Si tu es tout simplement lecteur et que tu penses à un site qui mériterait vraiment sa place dans ma blogroll, même punition ! Un commentaire pour dénoncer le site à absolument connaitre et qui ne ferait pas déjà partie de la liste de ma <a href="https://www.geeek.org/blogroll/">ma Blogroll</a></p>
<p>Avec la disparition des classements des meilleurs blogs, il est difficile de trouver des sources de contenus de qualité. J'ai récemment découvert  <a href="https://feedly.com/i/discover/sources/search/topic/technology">la fonction Feedly Discover</a> qui permet d'identifier les meilleurs blogs par catégorie. Malheureusement, seuls les 50 meilleurs blogs sont affichés, au-delà de ce classement seul le bouche-à-oreille fonctionne et les blogroll sont pertinents pour se partager de bonnes URL de blogs.</p>
<p><em>Cette offre s'expirera dans 2 jours, je m'autorise à filtrer les liens en fonction de leur qualité.</em></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Microsoft Azure Cloud : 10 astuces à connaitre absolument !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous utilisez le <strong>cloud Microsoft Azure</strong> ou vous comptez l'utiliser prochainement ? Voici 10 astuces à connaitre absolument concernant ce cloud public !</p>
<h3 id="leguidededveloppementmicrosoftazure">Le guide de développement Microsoft Azure</h3>
<p>L'utilisation d'un cloud public comme Azure Cloud n'est pas anodine dans les choix de conception logiciel, n'hésitez pas à lire le guide de</p>]]></description><link>https://www.geeek.org/10-astuces-cloud-azure/</link><guid isPermaLink="false">5d175b4cf16ae81289f8b4d2</guid><category><![CDATA[Developpement]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Sat, 29 Jun 2019 13:42:27 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/06/microsoft-azure-cloud.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/06/microsoft-azure-cloud.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"><p>Vous utilisez le <strong>cloud Microsoft Azure</strong> ou vous comptez l'utiliser prochainement ? Voici 10 astuces à connaitre absolument concernant ce cloud public !</p>
<h3 id="leguidededveloppementmicrosoftazure">Le guide de développement Microsoft Azure</h3>
<p>L'utilisation d'un cloud public comme Azure Cloud n'est pas anodine dans les choix de conception logiciel, n'hésitez pas à lire le guide de développement Azure proposé gratuitement par Microsoft avant de commencer vos développements. Vous trouverez de nombreuses astuces pour augmenter la résiliance de votre application.</p>
<p><a href="https://azure.microsoft.com/fr-fr/campaigns/developer-guide/">https://azure.microsoft.com/fr-fr/campaigns/developer-guide/</a></p>
<p><img src="https://www.geeek.org/content/images/2019/06/azure-ebook-pages.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="lacalculatriceazure">La calculatrice Azure</h3>
<p>Avant de vous lancer dans la construction d'un environnement Azure, vous pouvez estimer son coût au travers de la calculatrice Azure :</p>
<p><a href="https://azure.microsoft.com/fr-fr/pricing/calculator/">https://azure.microsoft.com/fr-fr/pricing/calculator/</a></p>
<p>Attention, la calculatrice vous fournira une estimation de prix. Soyez vigilant aux coûts de bande passante sortante si vous comptez consommer beaucoup de débit sortant. Enfin, si vous utilisez Log Analytics, soyez vigilant au coût d'ingestion de logs, si votre application est très bavarde vous pourrez vous retrouver avec une facture avec un montant inattendu.</p>
<p><img src="https://www.geeek.org/content/images/2019/06/azure-calculatrice.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="lalatenceducloudazure">La latence du cloud Azure</h3>
<p>La latence du réseau Internet constitue un handicap dans la fourniture de sites et services Internet rapides.<br>
Chaque région Azure possède une latence réseau qui est souvent proportionnelle à la distance à laquelle vous vous situez. Pour connaitre les latences de chaque région afin de vous aider à prendre une décision quant à la localisation des services cloud que vous allez souscrire, vous pouvez rendre sur le site suivant qui vous indiquera région par région les latences réseau observées.</p>
<p><a href="http://www.azurespeed.com/">http://www.azurespeed.com/</a></p>
<p><img src="https://www.geeek.org/content/images/2019/06/azure-latency-test.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="lesservicesdisponiblesdanschaquergionazure">Les services disponibles dans chaque région Azure</h3>
<p>Chaque région Azure n'héberge pas tous les mêmes services. Chaque région a ses spécificités.<br>
Si vous souhaitez utiliser des services PaaS récents, privilégiez les régions &quot;Europe de l'Ouest&quot; et &quot;Europe du Nord&quot;. Ces deux régions hébergent généralement les derniers services Azure et les &quot;public preview&quot;.</p>
<p><a href="https://azure.microsoft.com/fr-fr/global-infrastructure/services/">https://azure.microsoft.com/fr-fr/global-infrastructure/services/</a></p>
<p><img src="https://www.geeek.org/content/images/2019/06/azure-regions.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="formezvousgratuitementaucloudazure">Formez-vous gratuitement au Cloud Azure</h3>
<p>Microsoft met à disposition des formations gratuites en ligne pour vous aider à appréhender les services disponibles. Le site qui héberge ses formations s'appelle Microsoft Learn :</p>
<p><a href="https://docs.microsoft.com/fr-fr/learn/">https://docs.microsoft.com/fr-fr/learn/</a></p>
<p>N'hésitez pas à vous y inscrire et suivre le cursus AZ900 qui est la formation permettant d'appréhender les fondamentaux d'Azure. La certification AZ900 est réalisable à distance à condition de vous isoler dans une salle vide avec un PC équipé d'une caméra.</p>
<p>Pour aller plus loin, la liste des formations Azure disponibles est accessible ici :<br>
<a href="https://www.microsoft.com/fr-fr/learning/azure-exams.aspx">https://www.microsoft.com/fr-fr/learning/azure-exams.aspx</a></p>
<p><img src="https://www.geeek.org/content/images/2019/06/microsoft-learn.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="leprogrammeazureadvisors">Le programme Azure Advisors</h3>
<p>Microsoft dispose d'un programme Azure Advisors qui permet  d'échanger directement avec les équipes produit afin de leur poser des questions pointues. Malheureusement, les nominations à ce programme sont arrêtées pour le moment suite au succès qu'il rencontre :<br>
<a href="https://cloudengineering.microsoftcrmportals.com/nomination/">https://cloudengineering.microsoftcrmportals.com/nomination/</a></p>
<h3 id="lesalarmesdeconsommation">Les alarmes de consommation.</h3>
<p>Si vous utilisez le cloud Microsoft Azure pour vos besoins personnels, n'oubliez pas de configurer une alarme sur les consommations pour permettre de vous notifier dès lors que le montant de la consommation est dépassé. Cela vous permettra de gérer au mieux votre budget et d'identifier un dysfonctionnement au plus vite (logs, bande passante sortante ... etc).</p>
<p><a href="https://docs.microsoft.com/fr-fr/azure/billing/billing-getting-started">https://docs.microsoft.com/fr-fr/azure/billing/billing-getting-started</a></p>
<h3 id="lespacksdicnesazure">Les Packs d'icônes Azure</h3>
<p>Vous devez dessiner <strong>un schéma d'architecture</strong> avec des technologies Microsoft Azure ? <a href="https://www.geeek.org/pack-icones-microsoft-azure-cloud-visio-stencil-powerpoint-png-svg-253/">Des packs d'icônes Azure sont disponibles gratuitement pour Visio et Powerpoint</a> pour vous aider dans la réalisation de vos schémas.</p>
<p><img src="https://www.geeek.org/content/images/softs/icones-azure-cloud.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="comptemicrosoftazuregratuit">Compte Microsoft Azure Gratuit ?</h3>
<p>Lorsque vous vous inscrivez à Microsoft Azure, vous disposez d'un crédit offert de 170€ qui vous permet de souscrire à des services payants.</p>
<p>La bonne nouvelle est que plateforme Azure dispose de <strong>plus de 25 services totalement gratuits</strong> que vous pourrez utiliser pour vos développements sans être facturé un seul centime : 1 000 000 de requêtes sur des &quot;functions&quot; Azure, 100 000 opérations Event Grid par mois ... etc.</p>
<p><a href="https://azure.microsoft.com/fr-fr/free/">https://azure.microsoft.com/fr-fr/free/</a></p>
<p><img src="https://www.geeek.org/content/images/2019/06/azure-services-gratuits.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<h3 id="lesvnementsmicrosoftazurecloud">Les événements Microsoft Azure Cloud</h3>
<p>Microsoft organise de nombreuses sessions de formations gratuites autour de son cloud Azure. Vous trouverez sur la page suivante l'ensemble des événements disponibles auxquels vous pouvez vous inscrire si le sujet vous intéresse :</p>
<p><a href="https://experiences.microsoft.fr/calendrier-technique/">https://experiences.microsoft.fr/calendrier-technique/</a></p>
<p><img src="https://www.geeek.org/content/images/2019/06/microsoft-experience.png" alt="Microsoft Azure Cloud : 10 astuces à connaitre absolument !"></p>
<!--kg-card-end: markdown--><p></p>]]></content:encoded></item><item><title><![CDATA[Antidote : Le remède aux fautes d'orthographe]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Je vous avais présenté il y a 5 années de cela <a href="https://www.geeek.org/logiciel-antidote-avis-021/">le logiciel Antidote en version 8</a>. Je reviens aujourd'hui avec un nouvel article concernant la version 10 d'Antidote éditée par la société Druide.</p>
<p>La version 10 d'Antidote est une version majeure du produit qui intègre plus de <a href="https://antidote.info/fr/antidote-10/nouveautes">120 nouvelles</a></p>]]></description><link>https://www.geeek.org/telecharger-antidote-10/</link><guid isPermaLink="false">5d13c78b53c04f2aae508af4</guid><category><![CDATA[Software]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Wed, 26 Jun 2019 20:29:17 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/06/splashscreen-antidote-2.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/06/splashscreen-antidote-2.png" alt="Antidote : Le remède aux fautes d'orthographe"><p>Je vous avais présenté il y a 5 années de cela <a href="https://www.geeek.org/logiciel-antidote-avis-021/">le logiciel Antidote en version 8</a>. Je reviens aujourd'hui avec un nouvel article concernant la version 10 d'Antidote éditée par la société Druide.</p>
<p>La version 10 d'Antidote est une version majeure du produit qui intègre plus de <a href="https://antidote.info/fr/antidote-10/nouveautes">120 nouvelles fonctionnalités</a>, dont le support de l'anglais.</p>
<p>Si vous écrivez des documents numériques, des emails, des contenus sur le Web, <strong>Antidote est le seul outil efficace</strong> que j'ai trouvé sur le Web pour identifier des erreurs d'orthographe que les outils standards n'arrivent généralement pas à identifier.</p>
<p>Antidote est capable de mettre en exergue des erreurs d'orthographe, de conjugaison, d'accords grammaticaux, de syntaxe irrégulière, de ponctuation, de majuscules et minuscules ...</p>
<p><img src="https://www.geeek.org/content/images/2019/06/screenshot-antidote.png" alt="Antidote : Le remède aux fautes d'orthographe"></p>
<p>Au-delà du correcteur, Antidote c'est aussi des <strong>dictionnaires</strong> et des <strong>guides disponibles</strong> au sein de l'outil pour vous accompagner dans la rédaction de vos documents.</p>
<p>L'une des évolutions majeures de l'outil est client Web disponible au travers d'un simple navigateur :</p>
<p><a href="https://beta.antidote.app">https://beta.antidote.app</a></p>
<h3 id="onaaim">On a aimé :</h3>
<ul>
<li>Le support de l'anglais !</li>
<li>Le correcteur est toujours aussi pertinent dans ses détections.</li>
<li>Les mises à jour régulières du produit, des fonctionnalités continuent à être ajoutées par Druide sur la version 10.</li>
<li>Ses nombreux modules d'intégration disponibles.</li>
</ul>
<h3 id="onamoinsbienaim">On a moins bien aimé :</h3>
<ul>
<li>Le prix de la licence qui est important pour un usage occasionnel, mais justifié pour un usage professionnel.</li>
<li>Les nombreuses fonctionnalités ajoutées sont très techniques et finalement pas forcement visibles de l'interface de l'utilisateur.</li>
</ul>
<p><strong>Antidote 10</strong> est disponible au prix de 119,00€ pour les nouveaux utilisateurs et au prix de 49€ pour les utilisateurs d'une ancienne version. <a href="https://amzn.to/2ZPDQ6O">Vous trouverez sur Amazon une version en réduction à 99€</a>.</p>
<p>Enfin, sachez que le support des langues est vendu sous forme de module, par défaut Antidote supporte qu'une seule lange, la langue supplémentaire vous coûtera 59€.</p>
<!--kg-card-end: markdown--><p></p>]]></content:encoded></item><item><title><![CDATA[TS100 : Probablement le meilleur fer à souder du marché !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous êtes bricoleur ? Je me suis demandé quel est  <strong>le meilleur fer à souder du marché</strong> où du moins celui qui revient le plus dans les recommandations de bricoleurs.</p>
<p>La réponse est dans cet article, il s'agit du <a href="https://amzn.to/2RtmzNK">TS100</a>, <strong>un fer à souder intelligent</strong> capable de fonctionner sur batterie ou</p>]]></description><link>https://www.geeek.org/meilleur-fer-a-souder-ts100/</link><guid isPermaLink="false">5d0d558b9ecab61509580803</guid><category><![CDATA[Drones]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Sat, 22 Jun 2019 16:50:32 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/06/TS100-fer-a-souder.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/06/TS100-fer-a-souder.jpg" alt="TS100 : Probablement le meilleur fer à souder du marché !"><p>Vous êtes bricoleur ? Je me suis demandé quel est  <strong>le meilleur fer à souder du marché</strong> où du moins celui qui revient le plus dans les recommandations de bricoleurs.</p>
<p>La réponse est dans cet article, il s'agit du <a href="https://amzn.to/2RtmzNK">TS100</a>, <strong>un fer à souder intelligent</strong> capable de fonctionner sur batterie ou sur une alimentation USB. Il est doté d'un écran LCD permettant de configurer ses paramètres : température de chauffe, mise en veille ...</p>
<p>On le retrouve à différents prix sur <a href="https://amzn.to/2RtmzNK">Amazon</a> allant de 40€ à 150€, livré avec plus ou moins d'accessoires : <a href="https://amzn.to/2XloGZJ">câble pour batterie</a>, <a href="https://amzn.to/2Fp0Cei">pannes</a>, <a href="https://amzn.to/2IXNg9N">étui en cuir</a>...</p>
<p><a href="https://amzn.to/2RtmzNK"><img src="https://www.geeek.org/content/images/2019/06/TS100-fer-a-souder-2.jpg" alt="TS100 : Probablement le meilleur fer à souder du marché !"><br>
</a></p>
<p>Ce fer à souder possède <strong>un firmware</strong> qui peut être mis à jour très simplement au travers d'un câble USB. Le firmware le plus utilisé sur le TS100 est un <strong>firmware alternatif</strong> développé par un certain &quot;Ralim&quot; sur GitHub. Ce firmware est disponible avec un menu français et est téléchargeable à <a href="https://github.com/Ralim/ts100/releases">sur GitHub</a>.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/WlnpboYfxNk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<p>En ce qui concerne l'étain, celui qui est conseillé le plus souvent pour réaliser de belles soudures, est un alliage d'étain et de plomb avec <strong>une proportion de 60/40 et du flux</strong>. Le plomb ayant une température de fusion plus base que l'étain, cet alliage permet de réaliser des soudures à basse température (190°), ce qui limite les risques de surchauffe des composants se trouvant à proximité de la soudure.</p>
<p>Les bobines d'étain sont les plus pratiques à utiliser et à stocker. J'utilise pour mes soudures, des <a href="https://amzn.to/2N5hHQx">bobines d'étain CKANDAY</a> en 60/40 avec 2% de flux.</p>
<p><strong>Bonnes soudures !</strong></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[The Nabaztag will be back !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous êtes comme moi <a href="https://www.geeek.org/?q=nabaztag">un passionné de lapin connecté</a>? Sachez qu'il ne vous reste plus que quelques heures pour <strong>participer au projet de financement participatif</strong> lancé par Olivier Mével, co-fondateur de Enero et maman du Nabaztag, <a href="https://fr.ulule.com/le-retour-du-nabaztag/">sur la plateforme Ulule</a> pour permettre de le refaire revivre grâce à des composants</p>]]></description><link>https://www.geeek.org/nabaztag-raspberry-pi/</link><guid isPermaLink="false">5d065f6523d8615ac7e14799</guid><category><![CDATA[Domotique]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Sun, 16 Jun 2019 15:38:16 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/06/nabaztag-raspberry.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/06/nabaztag-raspberry.jpg" alt="The Nabaztag will be back !"><p>Vous êtes comme moi <a href="https://www.geeek.org/?q=nabaztag">un passionné de lapin connecté</a>? Sachez qu'il ne vous reste plus que quelques heures pour <strong>participer au projet de financement participatif</strong> lancé par Olivier Mével, co-fondateur de Enero et maman du Nabaztag, <a href="https://fr.ulule.com/le-retour-du-nabaztag/">sur la plateforme Ulule</a> pour permettre de le refaire revivre grâce à des composants <strong>100% Opensource</strong>.</p>
<iframe src="https://player.vimeo.com/video/338044007" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
<p>Le kit électronique (Carte TagTagTag) pour ressusciter son lapin est commercialisé au prix de 70€, il vous faudra compter une 20 aine d'euros supplémentaire pour acheter un Raspberry Pi Zero WH et une carte mémoire.</p>
<p><img src="https://www.geeek.org/content/images/2019/06/kit-nabaztag.jpg" alt="The Nabaztag will be back !"></p>
<p>Sacré Nabaztag ! C'est le phénix des objets connectés, il ressuscite une 3ème fois de ses cendres. <a href="https://fr.ulule.com/le-retour-du-nabaztag/">La campagne Ulule</a> se termine ce soir à minuit. C'est dommage qu'il n'existe pas de kit Nabaztag 100% &quot;Do It Yourself&quot;. Dans tous les cas, c'est une très belle initiative de la part d'Olivier Mével, la campagne a déjà atteint 763 préventes !</p>
<iframe src="https://player.vimeo.com/video/338531776" width="640" height="360" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Intégrez ElasticSearch comme moteur de recherche à votre site Internet]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Le moteur de recherche de votre site Internet ne vous satisfait pas ? Vous souhaitez intégrer un moteur de recherche performant sans devoir modifier le code source de celui-ci ?</p>
<p>Vous pouvez utiliser pour cela <a href="https://www.elastic.co/fr/products/elasticsearch">ElasticSearch</a> pour indexer vos contenus rédactionnels et permettre leur recherche via l'API REST native d'ElasticSearch qui offre</p>]]></description><link>https://www.geeek.org/installer-elasticsearch-logstash-site-internet/</link><guid isPermaLink="false">5cf2848605394712761be679</guid><category><![CDATA[Developpement]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Sun, 02 Jun 2019 20:33:22 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/06/elasticsearch.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/06/elasticsearch.png" alt="Intégrez ElasticSearch comme moteur de recherche à votre site Internet"><p>Le moteur de recherche de votre site Internet ne vous satisfait pas ? Vous souhaitez intégrer un moteur de recherche performant sans devoir modifier le code source de celui-ci ?</p>
<p>Vous pouvez utiliser pour cela <a href="https://www.elastic.co/fr/products/elasticsearch">ElasticSearch</a> pour indexer vos contenus rédactionnels et permettre leur recherche via l'API REST native d'ElasticSearch qui offre de nombreuses options en plus d'être performante.</p>
<p>C'est la solution que j'ai opté pour ce blog, l'ensemble du contenu éditorial est administré au travers de <a href="https://www.geeek.org/migration-du-blog/">la solution de blog Ghost</a> qui ne dispose pas nativement d'un moteur de recherche de contenu. L'ensemble des fonctionnalités de recherche disponibles sur ce site sont désormais déléguées à ElasticSearch.</p>
<p>Cette option n'est pas sans contrainte, elle nécessite d'avoir des ressources disponibles sur votre serveur pour héberger le processus ElasticSearch et Logstash, idéalement 2Go de RAM. Si votre site Internet possède peu de contenus, <a href="https://fusejs.io/">FuseJS</a> peut être un très bon compromis, mais imposera aux visiteurs de votre site de télécharger tout le contenu éditorial de votre site sur leur navigateur.</p>
<p>Voici l'architecture mise en oeuvre  :<br>
<img src="https://www.geeek.org/content/images/2019/06/architecture-blog-elasticsearch-logstash.png" alt="Intégrez ElasticSearch comme moteur de recherche à votre site Internet"></p>
<p>Pour mettre en place une telle architecture, vous trouverez ci-dessous les différentes étapes à suivre.</p>
<p>Le prérequis de cet article est de bénéficier d'un site hébergé avec Nginx et disposant de contenus dans une base MySQL, le tout sur un serveur Linux Ubuntu. Dans l'exemple ci-dessous, j'utilise Ghost comme solution de CMS.</p>
<p><em>Remarque importante : Certaines solutions CMS possèdent des connecteurs natifs à ElasticSearch pour indexer et rechercher des contenus automatiquement, c'est le cas par exemple de Drupal. Sur ce type d'intégration, Logstash n'est probablement pas nécessaire.</em></p>
<h3 id="ajoutezlerepositoryelasticsearch">Ajoutez le repository ElasticSearch</h3>
<p>La première étape consiste à ajouter le repository ElasticSearch à la liste des repository de votre distribution Ubuntu.</p>
<pre><code class="language-bash">$ sudo apt-get install apt-transport-https
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$ echo &quot;deb https://artifacts.elastic.co/packages/7.x/apt stable main&quot; | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list&quot;
</code></pre>
<h3 id="installezelasticsearch">Installez ElasticSearch</h3>
<p>Une fois que le repository d'ElasticSearch a été ajouté à votre distribution, il est temps de faire une mise à jour de votre cache et d'installer le package ElasticSearch.</p>
<pre><code class="language-bash">$ sudo apt-get update
$ sudo apt-get install elasticsearch
</code></pre>
<h3 id="installezlogstash">Installez Logstash</h3>
<p>Une fois ElasticSearch installé, vous pouvez installer Logstash qui se trouve sur le même repository que ElasticSearch.</p>
<pre><code class="language-bash">$ sudo apt-get install logstash
</code></pre>
<h3 id="ajoutezelasticsearchetlogstashaudmarragedevotreserveur">Ajoutez ElasticSearch et Logstash au démarrage de votre serveur</h3>
<p>Assurez-vous que ElasticSearch et Logstash démarreront à chaque redémarrage de votre serveur pour éviter tout arrêt de service.</p>
<pre><code class="language-bash">$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl enable elasticsearch.service
$ sudo /bin/systemctl enable logstash.service
</code></pre>
<h3 id="indexezvoscontenusditoriaux">Indexez vos contenus éditoriaux</h3>
<p>Il est temps maintenant d'indexer vos contenus éditoriaux grâce au connecteur MySQL de Logstash.<br>
Celui-ci aura en charge de vérifier la présence de nouveaux contenus dans <strong>votre base de données</strong> et de <strong>l'indexer directement dans ElasticSearch</strong>.</p>
<p>Pour cela, créez un fichier de configuration Logstash à l'emplacement suivant</p>
<pre><code class="language-javascript">$ sudo vim /etc/logstash/conf.d/mon-site.conf
</code></pre>
<p>Ce fichier de configuration permettra d'indiquer à Logstash où se trouvent les articles à indexer.</p>
<p>Indiquez dans la partie <strong>Input</strong> :</p>
<ul>
<li><strong>statement :</strong> Le contenu à indexer qui se traduit par une requête SQL qui retournera toutes les données qui seront stockées dans le document d'ElasticSearch.</li>
<li><strong>tracking_column :</strong> Le champ que doit utiliser Logstash pour identifier les nouveaux contenus.</li>
<li><strong>schedule :</strong> La fréquence d'indexation des contenus, ici toutes les nuits à 1h du matin.</li>
<li><strong>jdbc_driver_library :</strong> Le driver Java MySQL que vous pouvez <a href="https://dev.mysql.com/downloads/connector/j/">télécharger ici</a> et que vous pourrez positionner par exemple dans le répertoire suivant : &quot;/usr/share/logstash/vendor/mysql/&quot;</li>
</ul>
<p>Dans la partie <strong>Output</strong> :</p>
<ul>
<li><strong>index :</strong> Le nom de la collection à créer.</li>
<li><strong>document_type :</strong> le type de document à indexer.</li>
<li><strong>document_id :</strong> L'identifiant unique de votre article à indexer.</li>
</ul>
<pre><code class="language-javascript">input {
        jdbc {
                jdbc_connection_string =&gt; &quot;jdbc:mysql://localhost:3306/ghost&quot;
                jdbc_user =&gt; &quot;ghost&quot;
                jdbc_password =&gt; &quot;xxxxxx&quot;
                jdbc_driver_library =&gt; &quot;/usr/share/logstash/vendor/mysql/mysql-connector-java-5.1.42.jar&quot;
                jdbc_driver_class =&gt; &quot;com.mysql.jdbc.Driver&quot;
                statement =&gt; &quot;SELECT id,title,plaintext,slug,featured,published_at,updated_at FROM posts WHERE status='published' and updated_at &gt; :sql_last_value&quot;
                use_column_value =&gt; true
                tracking_column =&gt; &quot;updated_at&quot;
                tracking_column_type =&gt; &quot;timestamp&quot;
                schedule =&gt; &quot;0 1 * * *&quot;
        }
}
output {
        stdout { codec =&gt; json_lines }
        elasticsearch {
                hosts =&gt; [&quot;http://localhost:9200&quot;]
                index =&gt; &quot;mon_site&quot;
                document_type =&gt; &quot;article&quot;
                document_id =&gt; &quot;%{id}&quot;
        }
}
</code></pre>
<h3 id="dmarrezlesserviceselasticsearchetlogstash">Démarrez les services ElasticSearch et Logstash</h3>
<p>Démarrez le service d'ElasticSearch dans un premier temps, puis celui de Logstash.</p>
<pre><code class="language-bash">$ sudo /bin/systemctl restart elasticsearch.service
$ sudo /bin/systemctl restart logstash.service
</code></pre>
<h3 id="testezqueleserviceelasticsearchestfonctionnel">Testez que le service ElasticSearch est fonctionnel</h3>
<p>Le service ElasticSearch ouvre par défaut un serveur HTTP en localhost sur le port 9200. Vérifiez que le service est fonctionnel en réalisant un GET HTTP sur la racine du serveur.</p>
<pre><code class="language-bash">$ curl -X GET &quot;localhost:9200&quot;
</code></pre>
<h3 id="configurernginxcommereverseproxydelasticsearch">Configurer NGinx comme reverse proxy d'ElasticSearch</h3>
<p>Afin de rendre le service ElasticSearch accessible depuis votre site Internet, vous allez devoir configurer un &quot;reverse proxy&quot; pour restreindre l'accès aux API ElasticSearch depuis Internet.</p>
<p>Dans la configuration de mon site j'ai créé une &quot;Location&quot; Nginx dédiée au service de recherche qui adresse les API d'ElasticSearch à chaque requête HTTP sur le chemin &quot;/search&quot;.</p>
<p>Pour des raisons de sécurité, j'ai volontairement restreint le chemin du reverse proxy à l'API de recherche de mon index sur ElasticSearch : <a href="http://localhost:9200/mon_site/article/_search">http://localhost:9200/mon_site/article/_search</a></p>
<pre><code class="language-javascript"># Search API delivered by ElasticSearch
location ^~ /search {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Connection &quot;Keep-Alive&quot;;
    proxy_set_header Proxy-Connection &quot;Keep-Alive&quot;;
    proxy_pass  http://localhost:9200/mon_site/article/_search;
    proxy_read_timeout 600;
}
</code></pre>
<p>Après un redémarrage de Nginx, vous devriez avoir accès à l'API de recherche d'ElasticSearch depuis l'adresse suivante : <a href="https://mon-site.com/search">https://mon-site.com/search</a></p>
<h3 id="requterlesapielasticsearchdepuislespagesdevotresite">Requêter les API ElasticSearch depuis les pages de votre site</h3>
<p>L'étape suivante consiste à positionner un formulaire de recherche sur votre site, d'appeler l'API de recherche et d'afficher les résultats dans une liste dynamique.</p>
<p>Pour cela j'utilise la fonction suivante inspirée du <a href="https://themeforest.net/item/nurui-multipurpose-ghost-blog-theme/22243886">thème de Nurui</a> que j'ai mis en oeuvre sur ce blog.</p>
<pre><code class="language-javascript">function blogSearch() {

    // Construction de la requête de recherche où a est le formulaire de recherche
    var t = '/search?q='+a.value+'&amp;size=20&amp;default_operator=AND',
    s = new XMLHttpRequest;
    s.open(&quot;GET&quot;, t, !0);

    // Dès que l'API a retourné un résultat au navigateur
    s.onload = function() {
        var f, t;

        // Si ElasticSearch répond correctement
        if (s.status &gt;= 200 &amp;&amp; s.status &lt; 400){

            f = JSON.parse(s.responseText);
            i.innerHTML = f.hits.total.value;

            // Pour chaque résultat remonté par ElasticSearch 
            f.hits.hits.map(function(e) {
                    var t = new Date(e._source.published_at).toLocaleDateString(document.documentElement.lang, {
                            year: &quot;numeric&quot;,
                            month: &quot;long&quot;,
                            day: &quot;numeric&quot;
                        }),
                    n = document.createElement(&quot;h4&quot;);
                    n.textContent = e._source.title, n.innerHTML += '&lt;span class=&quot;search-date&quot;&gt;' + t + ' - Match ' + Math.round(e._score * 10) + '%&lt;/span&gt;', e._source.featured &amp;&amp; (n.innerHTML += '&lt;span class=&quot;search-featured&quot;&gt;' + searchFeaturedIcon + &quot;&lt;/span&gt;&quot;);

                    var s = document.createElement(&quot;a&quot;);
                    s.setAttribute(&quot;href&quot;, &quot;/&quot;+e._source.slug), s.appendChild(n), o.appendChild(s)
                })
            }
        }
    }
}
</code></pre>
<p>Cet exemple de code est <strong>à adapter</strong> en fonction de vos besoins. Dans le cadre de ce site Internet, voici comment ce code est intégré:<br>
<a href="https://www.geeek.org/?q=domotique">https://www.geeek.org/?q=domotique</a></p>
<p>Comme vous le remarquerez dans la requête HTTP réalisée à ElasticSearch, seulement 20 résultats sont demandés et l'opérateur 'AND' est utilisé comme opérateur par défaut.</p>
<h3 id="configurerlesearchactionpourlesmoteursderecherche">Configurer le SearchAction pour les moteurs de recherche</h3>
<p>Pour permettre aux moteurs de recherche de connaitre la présence de ce moteur de recherche et surtout permettre de le proposer aux visiteurs de votre site. Vous pouvez le déclarer au travers <a href="https://schema.org/SearchAction">d'un snippet JSON LD SearchAction</a>.</p>
<pre><code class="language-javascript">&lt;!-- Search JSON-LD --&gt;
&lt;script type=&quot;application/ld+json&quot;&gt;
{
  &quot;@context&quot;: &quot;https://schema.org&quot;,
  &quot;@type&quot;: &quot;WebSite&quot;,
  &quot;url&quot;: &quot;https://www.mon-site.com/&quot;,
  &quot;potentialAction&quot;: {
    &quot;@type&quot;: &quot;SearchAction&quot;,
    &quot;target&quot;: &quot;https://www.mon-site.com/?q={search_term_string}&quot;,
    &quot;query-input&quot;: &quot;required name=search_term_string&quot;
  }
}
&lt;/script&gt;
</code></pre>
<p>Si votre site possède un traffic important, un moteur de recherche que vous avez mis en place sera proposé directement à vos visiteurs  depuis les pages de résultats de recherche.</p>
<p>Pour que cela fonctionne, il faudra vous assurer qu'une recherche est exécutée sur votre site dès lors que le paramètre &quot;q&quot; est passé en paramètre de votre page.</p>
<p>Vous pouvez pour cela utiliser le code suivant :</p>
<pre><code class="language-javascript">// On récupère les paramètres en GET de la page.
const urlParams = new URLSearchParams(window.location.search);

// On extrait le paramètre &quot;q&quot;
const searchQuery = urlParams.get('q');

// Si une valeur est résente
if (searchQuery !== null){

    // On affiche le formulaire de recherche
    t.classList.add(&quot;search-opened&quot;);
    
    // On positionne la valeur du paramètre 'q' dans l'input du formulaire
    a.value = searchQuery;
    
    // On met le focus sur l'input 
    a.focus();
    
    // On lance la recherche 
    blogSearch();
}
</code></pre>
<p><strong>Vous voilà avec un moteur de recherche performant !</strong></p>
<p>N'hésitez surtout pas à réagir à cet article en laissant un commentaire. J'espère que cet article vous a été utile et vous simplifiera l'intégration d'ElasticSearch à votre site Internet.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Envoyez un peu de vous sur Mars !]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous avez toujours rêvé de voyager dans l'espace ? La Nasa vous propose <a href="https://mars.nasa.gov/participate/send-your-name/mars2020">d'envoyer gratuitement votre nom sur Mars</a> au travers d'un rover qui décollera pour  la planète rouge en 2020.</p>
<p>Votre nom sera gravé sur <strong>une puce électronique</strong> qui sera embarquée dans le rover.<br>
Le site a déjà atteint les</p>]]></description><link>https://www.geeek.org/envoyez-votre-nom-sur-mars/</link><guid isPermaLink="false">5ce6fa74a6d3a226449b702c</guid><category><![CDATA[Insolite]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Thu, 23 May 2019 20:10:04 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/05/mars-rover-1.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/05/mars-rover-1.jpg" alt="Envoyez un peu de vous sur Mars !"><p>Vous avez toujours rêvé de voyager dans l'espace ? La Nasa vous propose <a href="https://mars.nasa.gov/participate/send-your-name/mars2020">d'envoyer gratuitement votre nom sur Mars</a> au travers d'un rover qui décollera pour  la planète rouge en 2020.</p>
<p>Votre nom sera gravé sur <strong>une puce électronique</strong> qui sera embarquée dans le rover.<br>
Le site a déjà atteint les <strong>2 797 640 inscrits</strong> dont pas moins de 32000 français.</p>
<p>C'est une belle initiative de la part de la Nasa pour les jeunes mais aussi les moins jeunes, au-delà d'envoyer sur Mars quelque chose qui vous est personnel, votre nom, c'est un bon coup de publicité de la part de la Nasa sur ses missions à venir.</p>
<p>La Nasa compte bien sûr sur votre fidélité, à chaque voyage sur lequel vous vous inscrirez, vous gagnerez des points de grand voyageur !</p>
<p>La conquête spatiale a toujours été une bataille de communication ... Bon, j'arrête et je vous laisse <a href="https://mars.nasa.gov/participate/send-your-name/mars2020">vous inscrire ici</a> et rassurez-vous la loi RGPD n'est pas applicable sur Mars.</p>
<p><img src="https://www.geeek.org/content/images/2019/05/mars2020_rover.png" alt="Envoyez un peu de vous sur Mars !"></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[OBS : Un logiciel de streaming vidéo gratuit]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Vous êtes à la recherche d'une application gratuite pour réaliser des enregistrements / streaming de flux vidéo ? Je vous présente <a href="https://obsproject.com/fr">OBS</a>, <strong>Open Broadcaster Software</strong>, un logiciel Opensource capable d'assembler différents flux vidéos et de diffuser des flux en direct sur la majorité des plateformes de streaming sur Internet : Youtube, Twitch ...</p>
<p><img src="https://www.geeek.org/content/images/2019/05/OBSDemoApp.jpg" alt="OBSDemoApp"></p>
<p>OBS</p>]]></description><link>https://www.geeek.org/logiciel-streaming-video-gratuit/</link><guid isPermaLink="false">5cddc648620de72775ef762b</guid><category><![CDATA[Software]]></category><dc:creator><![CDATA[Ludovic Toinel]]></dc:creator><pubDate>Mon, 20 May 2019 20:44:00 GMT</pubDate><media:content url="https://www.geeek.org/content/images/2019/05/video-streaming.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://www.geeek.org/content/images/2019/05/video-streaming.jpg" alt="OBS : Un logiciel de streaming vidéo gratuit"><p>Vous êtes à la recherche d'une application gratuite pour réaliser des enregistrements / streaming de flux vidéo ? Je vous présente <a href="https://obsproject.com/fr">OBS</a>, <strong>Open Broadcaster Software</strong>, un logiciel Opensource capable d'assembler différents flux vidéos et de diffuser des flux en direct sur la majorité des plateformes de streaming sur Internet : Youtube, Twitch ...</p>
<p><img src="https://www.geeek.org/content/images/2019/05/OBSDemoApp.jpg" alt="OBS : Un logiciel de streaming vidéo gratuit"></p>
<p>OBS fonctionne sur Windows, Mac et Linux et dispose d'une large communauté d'utilisateurs proposant <a href="https://obsproject.com/forum/resources/categories/obs-studio-plugins.6/">des plugins gratuits</a>.</p>
<p>OBS dispose pas moins de <a href="https://github.com/obsproject/obs-studio">13300 étoiles sur GitHub</a> et 2771 forks.</p>
<p>Enfin,  si vous souhaitez vous filmer tout en manipulant votre PC, sachez que <strong>OBS supporte le screencast</strong>. Vous pourrez ainsi mixer les deux flux vidéo ensemble et publier et/ou enregistrer un flux vidéo produit.</p>
<p><a href="https://obsproject.com/fr">OBS</a> est un logiciel à découvrir de toute urgence si vous ne le connaissiez pas !</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>