<?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[Ciurlik.com]]></title><description><![CDATA[Le blog Tech de Yohann Ciurlik]]></description><link>https://www.ciurlik.com/</link><image><url>https://www.ciurlik.com/favicon.png</url><title>Ciurlik.com</title><link>https://www.ciurlik.com/</link></image><generator>Ghost 4.32</generator><lastBuildDate>Wed, 06 May 2026 03:18:48 GMT</lastBuildDate><atom:link href="https://www.ciurlik.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Un environnement de développement local avec Caddy]]></title><description><![CDATA[<h3 id="architecture-via-services-manag-s">Architecture via services manag&#xE9;s</h3><p>Il est de plus en plus courant de concevoir des <strong>architectures full services manag&#xE9;s</strong>. Les avantages sont nombreux : s&#xE9;curit&#xE9;, r&#xE9;duction des co&#xFB;ts d&apos;exploitation, gestion simplifi&#xE9;e, rapidit&#xE9; de d&#xE9;ploiement,</p>]]></description><link>https://www.ciurlik.com/un-environnement-de-developpement-local-avec-caddy/</link><guid isPermaLink="false">5f2427824fcb6f6755056d87</guid><category><![CDATA[Développement]]></category><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Fri, 31 Jul 2020 15:43:36 GMT</pubDate><media:content url="https://www.ciurlik.com/content/images/2020/07/caddy.png" medium="image"/><content:encoded><![CDATA[<h3 id="architecture-via-services-manag-s">Architecture via services manag&#xE9;s</h3><img src="https://www.ciurlik.com/content/images/2020/07/caddy.png" alt="Un environnement de d&#xE9;veloppement local avec Caddy"><p>Il est de plus en plus courant de concevoir des <strong>architectures full services manag&#xE9;s</strong>. Les avantages sont nombreux : s&#xE9;curit&#xE9;, r&#xE9;duction des co&#xFB;ts d&apos;exploitation, gestion simplifi&#xE9;e, rapidit&#xE9; de d&#xE9;ploiement, scalabilit&#xE9;, ... </p><p>Chez AWS par exemple, on peut d&#xE9;ployer des services de type API REST via <strong>Elastic Container Services</strong> (ECS) ou <strong>Elastic Kubernetes Services</strong> (EKS), les exposer via une <strong>API Gateway</strong> pour g&#xE9;rer la s&#xE9;curit&#xE9; via l&apos;IdP de l&apos;entreprise en OAuth2, d&#xE9;ployer la partie Frontend dans un bucket <strong>S3</strong> et utiliser un<strong> RDS Aurora</strong> pour la base de donn&#xE9;es. Aucun serveur n&apos;est d&#xE9;ploy&#xE9;, pas de machine &#xE0; g&#xE9;rer. On ajoute une touche de <strong>CloudFront </strong>et de <strong>Certificate Manager</strong> pour g&#xE9;rer l&apos;acc&#xE8;s en HTTPS et le tour est jou&#xE9; ! </p><p>G&#xE9;n&#xE9;ralement on d&#xE9;veloppe les services en local puis on les d&#xE9;ploie sur un environnement d&apos;int&#xE9;gration dans le Cloud. Pour certains services c&apos;est assez simple : la base de donn&#xE9;es peut &#xEA;tre locale, le contenu statique du front servi par <a href="https://www.npmjs.com/package/serve">npm-serve</a> ou express, les services via express ou docker... </p><h3 id="int-gration-du-fournisseur-d-identit-open-idc-de-l-entreprise">Int&#xE9;gration du fournisseur d&apos;identit&#xE9; Open IDC de l&apos;entreprise</h3><p>Pour les autres et notamment les API, cela devient vite difficile de r&#xE9;aliser les tests et de d&#xE9;velopper des interactions en local sur son poste de d&#xE9;veloppement d&#xE8;s lors que l&apos;on utilise des briques de l&apos;entreprise. Par exemple : un service qui r&#xE9;cup&#xE8;re les informations de l&apos;utilisateur authentifi&#xE9;. Il est difficile de connecter son environnement local sur le fournisseur d&apos;identit&#xE9; (Identity Provider - IdP) de l&apos;entreprise. Seules solutions :</p><ul><li><strong>R&#xE9;cup&#xE9;rer des tokens d&apos;authentification</strong> (p.ex. AccessToken JWT) de l&apos;IdP pour les utiliser localement. C&apos;est fastidieux...</li><li><strong>Connecter l&apos;IdP avec un environnement local</strong>. C&apos;est compliqu&#xE9;... </li></ul><p>C&apos;est ce dernier cas qui nous int&#xE9;resse. G&#xE9;n&#xE9;ralement, on utilise localhost ou 127.0.0.1 pour acc&#xE9;der &#xE0; notre API. Avec express en NodeJS par exemple, on acc&#xE9;derait &#xE0; notre service via http://127.0.0.1:3000/api/users/me. Inutile de vous dire qu&apos;il n&apos;est pas viable de ne pas utiliser le HTTPS m&#xEA;me en local. Premi&#xE8;rement par ce que ce n&apos;est pas une bonne pratique d&apos;avoir un environnement de d&#xE9;veloppement diff&#xE9;rent des autres environnements : cela am&#xE8;ne des probl&#xE9;matiques de s&#xE9;curit&#xE9; (CORS, CSP, HSTS, ...) et que c&apos;est g&#xE9;n&#xE9;ralement un pr&#xE9;requis pour s&apos;int&#xE9;grer &#xE0; un IDP.</p><h3 id="caddy-2-pour-simuler-un-environnement-local">Caddy 2 pour simuler un environnement local</h3><p>C&apos;est ici que <a href="https://caddyserver.com/"><strong>Caddy</strong></a> intervient. Caddy, actuellement dans sa version 2, est un serveur Web production-ready avec gestion du HTTPS par d&#xE9;faut. Il est &#xE9;crit en Go et est sous licence Apache 2.0. L&apos;avantage de Caddy par rapport &#xE0; Apache ou Nginx voir <a href="https://containo.us/pricing/">Traefik</a>, est qu&apos;il ne n&#xE9;cessite qu&apos;un binaire et un simple fichier Caddyfile pour le configurer. </p><p>La configuration est encore plus simple qu&apos;un Nginx. Par exemple, pour servir des fichiers en HTTPS, il suffit de faire : </p><figure class="kg-card kg-code-card"><pre><code> caddy file-server --domain example.com</code></pre><figcaption>Servir des fichiers via HTTP avec Caddy</figcaption></figure><p>Une configuration plus pouss&#xE9;e passe par l&apos;&#xE9;criture d&apos;un <a href="https://caddyserver.com/docs/caddyfile/concepts">fichier Caddyfile</a> dont la syntaxe ressemble &#xE9;troitement &#xE0; du JSON mais sous forme de blocs d&apos;options. Dans notre cas, voici la configuration qui nous int&#xE9;resse : </p><figure class="kg-card kg-code-card"><pre><code class="language-json">www.dev.company.com {
  	tls webcert.crt webcert.key

	reverse_proxy localhost:5000 {
		header_up Host                {host}
	    header_up Origin              {host}
	    header_up X-Real-IP           {remote}
	    header_up X-Forwarded-Host    {host}
	    header_up X-Forwarded-Server  {host}
	    header_up X-Forwarded-Port    {port}
	    header_up X-Forwarded-For     {remote}
	    header_up X-Forwarded-Proto   {scheme}
	}
}

api.dev.company.com {
  	tls apicert.crt apicert.key

	reverse_proxy localhost:3000 {
		header_up Host                {host}
	    header_up Origin              {host}
	    header_up X-Real-IP           {remote}
	    header_up X-Forwarded-Host    {host}
	    header_up X-Forwarded-Server  {host}
	    header_up X-Forwarded-Port    {port}
	    header_up X-Forwarded-For     {remote}
	    header_up X-Forwarded-Proto   {scheme}
		header_down Access-Control-Allow-Origin       https://www.dev.company.com
	    header_down Access-Control-Allow-Credentials  true
	}
}</code></pre><figcaption>Caddyfile pour un environnement de d&#xE9;veloppement local</figcaption></figure><p>Pour d&#xE9;marrer caddy avec cette configuration, il suffit de lancer caddy dans le r&#xE9;pertoire qui contient la configuration ou de lui sp&#xE9;cifier en ligne de commande via --config. Auparavant, il faudra g&#xE9;n&#xE9;rer les certificats SSL via une commande OpenSSL car les certificats <a href="https://letsencrypt.org/fr/">Let&apos;s Encrypt</a> ne sont pas utilisables en local : </p><figure class="kg-card kg-code-card"><pre><code>openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout webcert.key -out webcert.crt
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout apicert.key -out apicert.crt</code></pre><figcaption>G&#xE9;n&#xE9;ration des certificats SSL en ligne de commande via OpenSSL</figcaption></figure><p>L&apos;id&#xE9;e ici est d&apos;exposer deux services : </p><ul><li><a href="https://www.dev.company.com">https://www.dev.company.com</a> pour acc&#xE9;der au Frontend,</li><li><a href="https://api.dev.company.com">https://api.dev.company.com</a> pour exposer les API REST.</li></ul><p>Les services sont expos&#xE9;s par Caddy de mani&#xE8;re s&#xE9;curis&#xE9;e (HTTPS). Ce dernier proxifie les requ&#xEA;tes vers les diff&#xE9;rents instances de services locaux. A noter que www.dev.company.com et api.dev.company.com doivent rediriger vers 127.0.0.1. C&apos;est faisable en ajoutant des entr&#xE9;es dans le fichier HOSTS local ou en cr&#xE9;ant une entr&#xE9;e A dans les enregistrements DNS du domaine company.com.</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/07/caddy-1.png" class="kg-image" alt="Un environnement de d&#xE9;veloppement local avec Caddy" loading="lazy"></figure><p>Le service ainsi expos&#xE9; via <a href="https://www.dev.company.com">https://www.dev.company.com</a> est compatible avec le fournisseur d&apos;authentification de l&apos;entreprise car il est expos&#xE9; en HTTPS et fait r&#xE9;f&#xE9;rence &#xE0; un vrai domaine et non &#xE0; localhost.</p><p>Caddy est vraiment une alternative &#xE0; un Apache ou Nginx pour du d&#xE9;veloppement local m&#xEA;me si <a href="https://github.com/containous/traefik/">Traefik</a> peut s&apos;av&#xE9;rer plus int&#xE9;ressant d&#xE8;s lors que l&apos;on souhaite disposer d&apos;une infrastructure dynamique &#xE0; base de Kubernetes ou Docker.</p>]]></content:encoded></item><item><title><![CDATA[Raccourcis bureaux virtuels pour  Windows 10]]></title><description><![CDATA[<p>Vous allez me dire que le bureau virtuel ou bureaux multiples n&apos;est pas nouveau. En effet, cela existe depuis pas mal de temps aussi bien sous Linux que sous Mac OS. Depuis Windows 10, c&apos;est aussi en standard.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2020/04/Windows10_multi_desktop-1.png" class="kg-image" alt loading="lazy"><figcaption>Bureaux virtuels sous Windows 10</figcaption></figure><p>Les bureaux virtuels</p>]]></description><link>https://www.ciurlik.com/raccourcis-multi-bureaux-pour-windows-10/</link><guid isPermaLink="false">5ea7e9f34fcb6f6755056d12</guid><category><![CDATA[Software]]></category><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Tue, 28 Apr 2020 10:00:00 GMT</pubDate><media:content url="https://www.ciurlik.com/content/images/2020/04/Windows10_multi_desktop.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.ciurlik.com/content/images/2020/04/Windows10_multi_desktop.png" alt="Raccourcis bureaux virtuels pour  Windows 10"><p>Vous allez me dire que le bureau virtuel ou bureaux multiples n&apos;est pas nouveau. En effet, cela existe depuis pas mal de temps aussi bien sous Linux que sous Mac OS. Depuis Windows 10, c&apos;est aussi en standard.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2020/04/Windows10_multi_desktop-1.png" class="kg-image" alt="Raccourcis bureaux virtuels pour  Windows 10" loading="lazy"><figcaption>Bureaux virtuels sous Windows 10</figcaption></figure><p>Les bureaux virtuels ne sont pourtant pas &quot;simples&quot; &#xE0; utiliser au quotidien. M&#xEA;me s&apos;ils simplifient le travail sur plusieurs applications, l&apos;acc&#xE8;s via les raccourcis clavier n&apos;est pas ais&#xE9;. Il faut d&apos;ailleurs les connaitre pour pouvoir utiliser cet outil. </p><blockquote>Pour acc&#xE9;der aux bureaux virtuels, il suffit de faire <strong>Windows + D</strong>.</blockquote><p>Ce raccourci pourrait suffire pour g&#xE9;rer les applications ouvertes sur les diff&#xE9;rents bureaux mais il n&apos;optimise pas le flux de production. Pour aller plus loin, il existe 10 raccourcis clavier pour g&#xE9;rer au mieux ses fen&#xEA;tres :</p><ol><li><strong>Windows + fl&#xE8;che gauche:</strong> la fen&#xEA;tre occupe la moiti&#xE9; gauche de l&#x2019;&#xE9;cran.</li><li><strong>Windows + fl&#xE8;che droite:</strong> la fen&#xEA;tre occupe la moiti&#xE9; droite de l&#x2019;&#xE9;cran.</li><li><strong>Windows + fl&#xE8;che du haut ou du bas (apr&#xE8;s 1 ou 2) :</strong> la fen&#xEA;tre se place dans le quadrant sup&#xE9;rieur ou inf&#xE9;rieur de l&#x2019;&#xE9;cran.</li><li><strong>Windows + fl&#xE8;che du haut (sans ex&#xE9;cuter les num&#xE9;ros 1 ou 2) : </strong>maximiser la fen&#xEA;tre.</li><li><strong>Windows + fl&#xE8;che du bas (sans ex&#xE9;cuter les num&#xE9;ros 1 ou 2):</strong> minimiser la fen&#xEA;tre.</li><li><strong>Windows + Tab:</strong> afficher tous les bureaux virtuels.</li><li><strong>Windows + Ctrl + D:</strong> cr&#xE9;er un nouveau bureau virtuel.</li><li><strong>Windows + Ctrl + F4:</strong> fermer le bureau virtuel en cours d&#x2019;utilisation.</li><li><strong>Windows + Ctrl + fl&#xE8;che droite:</strong> aller vers le bureau virtuel suivant.</li><li><strong>Windows + Ctrl + fl&#xE8;che gauche:</strong> aller vers le bureau virtuel pr&#xE9;c&#xE9;dent.</li></ol><p>Et si ces raccourcis ne vous plaisent pas ou que vous souhaitez aller plus loin avec les bureaux virtuels, il existe d&apos;autres applications comme <a href="https://docs.microsoft.com/fr-fr/sysinternals/downloads/desktops">Sysinternals Desktop v2</a> ou <a href="https://dexpot.de/index.php?id=dexpot">Dexpot</a>. </p><p>Honn&#xEA;tement, avec un peu d&apos;entrainement, le gestionnaire de bureaux virtuels de Windows 10 fonctionne tr&#xE8;s bien et &#xE0; l&apos;avantage d&apos;&#xEA;tre gratuit en plus d&apos;&#xEA;tre bien int&#xE9;gr&#xE9;. </p>]]></content:encoded></item><item><title><![CDATA[Tamaguino, un clone de Tamagotchi sous Arduino]]></title><description><![CDATA[<p>Le <a href="https://fr.wikipedia.org/wiki/Tamagotchi">Tamagotchi</a> est un petit animal de compagnie &#xE9;lectronique cr&#xE9;&#xE9; en 1996 par Bandai. Nous en poss&#xE9;dions tous un lorsque j&apos;&#xE9;tais au coll&#xE8;ge. Il fallait le nourrir, le laver, et lui donner un peu d&apos;amour pour qu&apos;</p>]]></description><link>https://www.ciurlik.com/tamaguino-un-clone-de-tamagochi-sous-arduino/</link><guid isPermaLink="false">5e948d2d4fcb6f6755056c7c</guid><category><![CDATA[Hardware]]></category><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Sat, 18 Apr 2020 09:01:41 GMT</pubDate><media:content url="https://www.ciurlik.com/content/images/2020/04/thingiverse-nick.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.ciurlik.com/content/images/2020/04/thingiverse-nick.png" alt="Tamaguino, un clone de Tamagotchi sous Arduino"><p>Le <a href="https://fr.wikipedia.org/wiki/Tamagotchi">Tamagotchi</a> est un petit animal de compagnie &#xE9;lectronique cr&#xE9;&#xE9; en 1996 par Bandai. Nous en poss&#xE9;dions tous un lorsque j&apos;&#xE9;tais au coll&#xE8;ge. Il fallait le nourrir, le laver, et lui donner un peu d&apos;amour pour qu&apos;il vive le plus longtemps. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2020/04/image-2.png" class="kg-image" alt="Tamaguino, un clone de Tamagotchi sous Arduino" loading="lazy"><figcaption>Le Tamaogtchi sorti en 1996 et cr&#xE9;&#xE9; par Bandai</figcaption></figure><p>Aloz Jakob, un d&#xE9;veloppeur Serbe, a cr&#xE9;&#xE9; un clone de Tamagotchi sur Arduino : le <strong>Tamaguino</strong>. Cette fois-ci c&apos;est d&apos;un dinosaure qu&apos;il faut s&apos;occuper. </p><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/KLK4Fuo0xwU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>Vous pouvez commencer &#xE0; le prototyper sur un Arduino Uno mais pour aller plus loin et r&#xE9;aliser un mod&#xE8;le autonome sur batterie, il faudra s&#xFB;rement investir dans un Arduino Pro mini et un batterie. &#xA0;Et si vous avez une imprimante 3D &#xE0; la maison, sachez qu&apos;il est possible d&apos;imprimer le boitier : </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2020/04/image-3.png" class="kg-image" alt="Tamaguino, un clone de Tamagotchi sous Arduino" loading="lazy"><figcaption>Boitier du Tamaguino</figcaption></figure><p>Il fournit le code source du programme, les plans hardware et m&#xEA;me les mod&#xE8;les 3D pour imprimer le boitier. Que demander de plus ? Un site pour vous aider au montage ? Des d&#xE9;mos ? Tous est disponible... Il existe m&#xEA;me des portages en cours vers d&apos;autres plateformes :)</p><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://alojzjakob.github.io/Tamaguino/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tamaguino</div><div class="kg-bookmark-description">Tamagotchi clone for Arduino</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://alojzjakob.github.io/Tamaguino/images/icon.png" alt="Tamaguino, un clone de Tamagotchi sous Arduino"><span class="kg-bookmark-author">Tamagotchi clone for Arduino</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://alojzjakob.github.io/Tamaguino/images/ogimage.png" alt="Tamaguino, un clone de Tamagotchi sous Arduino"></div></a><figcaption>Tamaguino sous Arduino</figcaption></figure><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://github.com/alojzjakob/Tamaguino"><div class="kg-bookmark-content"><div class="kg-bookmark-title">alojzjakob/Tamaguino</div><div class="kg-bookmark-description">Tamagotchi pet clone for Arduino. Contribute to alojzjakob/Tamaguino development by creating an account on GitHub.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/favicons/favicon.svg" alt="Tamaguino, un clone de Tamagotchi sous Arduino"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">alojzjakob</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://avatars2.githubusercontent.com/u/17972823?s=400&amp;v=4" alt="Tamaguino, un clone de Tamagotchi sous Arduino"></div></a><figcaption>Source du Tamaguino</figcaption></figure><p></p>]]></content:encoded></item><item><title><![CDATA[Tunnel SSH & Remote port forwarding avec Serveo]]></title><description><![CDATA[<p></p><p>Je vous propose dans cet article de r&#xE9;aliser un tunnel permettant d&apos;acc&#xE9;der en SSH &#xE0; des machines situ&#xE9;es dans un r&#xE9;seau priv&#xE9; derri&#xE8;re un pare-feu en passant simplement par un tiers de confiance.</p><p><strong>Des tunnels SSH et</strong></p>]]></description><link>https://www.ciurlik.com/tunnel-ssh-port-forwarding/</link><guid isPermaLink="false">5dfa7a9d375e2f458ff49c36</guid><category><![CDATA[Développement]]></category><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Thu, 16 Apr 2020 07:56:00 GMT</pubDate><media:content url="https://www.ciurlik.com/content/images/2020/04/image-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.ciurlik.com/content/images/2020/04/image-1.png" alt="Tunnel SSH &amp; Remote port forwarding avec Serveo"><p></p><p>Je vous propose dans cet article de r&#xE9;aliser un tunnel permettant d&apos;acc&#xE9;der en SSH &#xE0; des machines situ&#xE9;es dans un r&#xE9;seau priv&#xE9; derri&#xE8;re un pare-feu en passant simplement par un tiers de confiance.</p><p><strong>Des tunnels SSH et du port forwarding</strong></p><p>Cr&#xE9;er un tunnel SSH pour acc&#xE9;der &#xE0; une machine situ&#xE9;e derri&#xE8;re le pare-feu d&apos;une entreprise depuis l&apos;ext&#xE9;rieur peut vite devenir compliquer d&#xE8;s lors que l&apos;installation d&apos;outils externes n&apos;est pas autoris&#xE9; ou que des ports exotiques sont bloqu&#xE9;s. </p><p>A l&apos;aide d&apos;une commande SSH, nous allons cr&#xE9;er un tunnel de l&apos;ordinateur A vers le serveur. Une fois le tunnel &#xE9;tablie, l&apos;ordinateur B &#xE9;tablie &#xE0; son tour un tunnel vers le serveur. Vu qu&apos;il s&apos;agit de connexions sortantes classiques, elles ne seront pas bloqu&#xE9;es par le pare-feu. Une fois les 2 tunnels &#xE9;tablis, je peux, via une nouvelle commande SSH, me connecter &#xE0; l&apos;ordinateur B depuis l&apos;ordinateur A. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2020/04/TunnelSSH_-Port_Forwarding.png" class="kg-image" alt="Tunnel SSH &amp; Remote port forwarding avec Serveo" loading="lazy"><figcaption>Acc&#xE8;s depuis l&apos;ext&#xE9;rieur via un double tunnel SSH via un serveur externe</figcaption></figure><p><strong>C&apos;est l&#xE0; que Serveo intervient...</strong></p><p>Sereo est un outil qui permet d&apos;exposer des serveurs locaux sur Internet. En utilisant l&apos;utilitaire Serveo &#xA0;en ligne de commande (CLI) et avec l&apos;aide d&apos;un serveur accessible depuis Internet, il est tout &#xE0; fait possible de monter une passerelle d&apos;acc&#xE8;s s&#xE9;curis&#xE9;e pour se connecter &#xE0; distance en SSH. <a href="http://serveo.net/">Serveo</a> est un peu l&apos;&#xE9;quivalent de <a href="https://ngrok.com/">NGRok</a> pour les connaisseurs. A l&apos;instar de ce dernier, Serveo ne n&#xE9;cessite pas l&apos;installation d&apos;un client sur l&apos;h&#xF4;te distant et ne passe pas par le serveur d&apos;un tiers. Avec Serveo, une simple commande SSH suffit pour cr&#xE9;er un tunnel. Seul pr&#xE9;requis : disposer d&apos;un serveur accessible sur Internet pour &#xA0;y d&#xE9;marrer le serveur Serveo.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2020/04/image.png" class="kg-image" alt="Tunnel SSH &amp; Remote port forwarding avec Serveo" loading="lazy"><figcaption>Serveo en ligne de commande</figcaption></figure><p>Serveo s&apos;installe facilement en t&#xE9;l&#xE9;chargeant le CLI via <a href="http://serveo.net/#self-host">http://serveo.net/#self-host</a>. </p><p>Une fois install&#xE9; sur notre serveur our_server.com, il suffit de le d&#xE9;marrer : </p><figure class="kg-card kg-code-card"><pre><code>sudo ./serveo-linux-amd64 -private_key_path=ssh_host_rsa_key -port=2222 -http_port=8080 -https_port=8443</code></pre><figcaption>Un serveur SSH est ainsi disponible sur le port 2222 sur our_server.com</figcaption></figure><p>Ensuite on cr&#xE9;er le tunnel de B vers le serveur our_server.com:</p><figure class="kg-card kg-code-card"><pre><code>ssh -R B:22:localhost:22 yohann@our_server.com -p 2222</code></pre><figcaption>Le port 22 de notre machine interne est expos&#xE9; via du SSH Forwarding</figcaption></figure><p>On se connecte sur le serveur our_server.com sur le port 2222 et on cr&#xE9;e un tunnel de type remote pour rediriger le port SSH 22 de la machine B sur le serveur. Le port 22 de la machine B est alors accessible sur le serveur our_server.com.</p><p>On peut donc se connecter &#xE0; B depuis A via la commande : </p><figure class="kg-card kg-code-card"><pre><code>ssh -o ProxyCommand=&quot;ssh -W B:22 -p 2222 our_server.com&quot; root@B</code></pre><figcaption>On se connecte &#xE0; distance via une simple commande SSH</figcaption></figure><p>Encore une fois, une seule commande SSH suffit pour se connecter &#xE0; B via notre serveur our_server.com</p><p><strong>En conclusion</strong></p><p>La mise en place de ce type de tunnel n&#xE9;cessite une petite gymnastique mais permet de cr&#xE9;er rapidement un tunnel pour acc&#xE9;der &#xE0; une machine dans un r&#xE9;seau d&apos;entreprise via une simple commande SSH.<br>A noter qu&apos;il existe un &#xE9;quivalent open source nomm&#xE9; <strong><a href="https://github.com/antoniomika/sish">sish</a> </strong>mais que je n&apos;ai pas eu le temps de tester. Et vous ?</p><p><strong>T&#xE9;l&#xE9;chargements et informations : </strong></p><ul><li><strong>Serveo </strong>en <a href="http://serveo.net/#self-host">self host&#xE9; </a></li><li>Alternative open source <a href="https://github.com/antoniomika/sish"><strong>Sish</strong></a></li><li>Le bon vieux <a href="https://ngrok.com/product"><strong>ngrok</strong></a></li></ul>]]></content:encoded></item><item><title><![CDATA[Renforcez la sécurité de Windows 10 avec votre Smartphone]]></title><description><![CDATA[<p>Voici une petite astuce pour s&#xE9;curiser votre ordinateur sous Windows 10 &#xE0; l&#x2019;aide du Bluetooth et de votre t&#xE9;l&#xE9;phone mobile. Une option nomm&#xE9;e <strong><strong>Verrouillage dynamique</strong></strong> ou <strong><strong>Dynamic Lock</strong></strong> permet &#xE0; Windows d&#x2019;utiliser les appareils coupl&#xE9;s &#xE0;</p>]]></description><link>https://www.ciurlik.com/renforcez-la-securite-de-windows-10-avec-votre-smartphone/</link><guid isPermaLink="false">5e948a7b4fcb6f6755056c59</guid><category><![CDATA[Software]]></category><category><![CDATA[Sécurité]]></category><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Mon, 13 Apr 2020 15:55:21 GMT</pubDate><media:content url="https://www.ciurlik.com/content/images/2020/04/andrew-mantarro-ynVYoNqnCys-unsplash.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://www.ciurlik.com/content/images/2020/04/andrew-mantarro-ynVYoNqnCys-unsplash.jpg" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone"><p>Voici une petite astuce pour s&#xE9;curiser votre ordinateur sous Windows 10 &#xE0; l&#x2019;aide du Bluetooth et de votre t&#xE9;l&#xE9;phone mobile. Une option nomm&#xE9;e <strong><strong>Verrouillage dynamique</strong></strong> ou <strong><strong>Dynamic Lock</strong></strong> permet &#xE0; Windows d&#x2019;utiliser les appareils coupl&#xE9;s &#xE0; votre PC pour savoir quand vous &#xEA;tes absent. Cette option fait partie du m&#xE9;canisme de s&#xE9;curit&#xE9; <a href="https://privacy.microsoft.com/fr-fr/windows-10-windows-hello-and-privacy">Windows Hello</a> :</p><blockquote>Si vous oubliez de verrouiller votre PC ou votre tablette lorsque vous vous &#xE9;loignez, Windows Hello peut utiliser un t&#xE9;l&#xE9;phone coupl&#xE9; &#xE0; votre appareil pour le verrouiller automatiquement dans les secondes qui suivent le moment o&#xF9; vous sortez de la port&#xE9;e Bluetooth. Pour proc&#xE9;der &#xE0; la configuration, vous devrez utiliser le Bluetooth pour coupler votre t&#xE9;l&#xE9;phone &#xE0; votre PC, puis cocher la case sous Verrouillage dynamique.</blockquote><p>Pour mettre en &#x153;uvre cette option bien pratique et s&#xE9;curiser encore mieux son PC (et &#xE9;viter le croissantage fort connu des ESN), rien de plus simple&#x2026;</p><h2 id="appairer-son-t-l-phone-mobile-smartphone">Appairer son t&#xE9;l&#xE9;phone mobile / smartphone</h2><p>1. Ouvrez le menu d&#xE9;marrer et tapez param&#xE8;tres pour vous rendre dans les param&#xE8;tres Windows :</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/04/image_thumb-4-1.png" class="kg-image" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone" loading="lazy" title="image"></figure><p>2. Rendez-vous dans la section P&#xE9;riph&#xE9;riques &#x2013;&gt; Appareils Bluetooth et autres:</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/04/image_thumb-1.png" class="kg-image" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone" loading="lazy" title="image"></figure><p>3. Ajoutez votre Smartphone en cliquant sur &#x201C;Ajouter un appareil Bluetooth ou un autre appareil&#x201D;</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/04/image_thumb-2.png" class="kg-image" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone" loading="lazy" title="image"></figure><p>4. S&#xE9;lectionnez son mobile et l&#x2019;appairer suivant la proc&#xE9;dure indiqu&#xE9;e. Une fois r&#xE9;alis&#xE9;, le Smartphone devrait appara&#xEE;tre dans la liste des terminaux Bluetooth de votre ordinateur comme suit :</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/04/image_thumb-3.png" class="kg-image" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone" loading="lazy" title="image"></figure><h2 id="activer-le-verrouillage-dynamique">Activer le verrouillage dynamique</h2><p>1. Dans les param&#xE8;tres Windows, choisissez la section Comptes</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/04/image_thumb.png" class="kg-image" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone" loading="lazy" title="image"></figure><p>2. Dans les options de connexion, se rendre au niveau de la section Verrouillage dynamique</p><figure class="kg-card kg-image-card"><img src="https://www.ciurlik.com/content/images/2020/04/image_thumb-5.png" class="kg-image" alt="Renforcez la s&#xE9;curit&#xE9; de Windows 10 avec votre Smartphone" loading="lazy" title="image"></figure><p>3. Cochez la case Autoriser Windows &#xE0; d&#xE9;tecter quand vous &#xEA;tes absent et &#xE0; verrouiller automatiquement l&#x2019;appareil.</p><p>Maintenant, lorsque vous vous &#xE9;loignerez de votre ordinateur avec votre Smartphone, celui-ci se verrouillera de mani&#xE8;re autonome sous quelques secondes. Cependant, l&#x2019;inverse n&#x2019;est pas automatique : vous devrez vous loguer de nouveau pour acc&#xE9;der &#xE0; votre ordinateur. C&#x2019;est toujours un pas de plus vers la s&#xE9;curit&#xE9;.</p>]]></content:encoded></item><item><title><![CDATA[Une API REST pour Generated Photos]]></title><description><![CDATA[<p>Le site <a href="https://generated.photos/">Generated Photos</a> qui permet d&apos;acc&#xE9;der &#xE0; une banque d&apos;image gratuites de plus de 10 000 visages g&#xE9;n&#xE9;r&#xE9;s par une IA lance <a href="https://generated.photos/api">son API REST</a>.</p><p>A l&apos;origine de ce site, un Argentin et une vingtaine</p>]]></description><link>https://www.ciurlik.com/une-api-rest-pour-generated-photos/</link><guid isPermaLink="false">5e05ca80375e2f458ff49ccc</guid><category><![CDATA[Développement]]></category><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Fri, 27 Dec 2019 09:37:47 GMT</pubDate><media:content url="https://www.ciurlik.com/content/images/2019/12/screen.png" medium="image"/><content:encoded><![CDATA[<img src="https://www.ciurlik.com/content/images/2019/12/screen.png" alt="Une API REST pour Generated Photos"><p>Le site <a href="https://generated.photos/">Generated Photos</a> qui permet d&apos;acc&#xE9;der &#xE0; une banque d&apos;image gratuites de plus de 10 000 visages g&#xE9;n&#xE9;r&#xE9;s par une IA lance <a href="https://generated.photos/api">son API REST</a>.</p><p>A l&apos;origine de ce site, un Argentin et une vingtaine de personnes dont, entres autres, des photographes et des data scientists. Pour entra&#xEE;ner et obtenir un mod&#xE8;le viable, ils ont utilis&#xE9;s par moins de 29 000 photos issues de 69 mod&#xE8;les diff&#xE9;rents. Le tout, calcul&#xE9; sur des ressources NVidia.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.ciurlik.com/content/images/2019/12/faces-1.jpg" class="kg-image" alt="Une API REST pour Generated Photos" loading="lazy"><figcaption>Generated Photos Faces</figcaption></figure><p>L&apos;API permet d&apos;acc&#xE9;der &#xE0; la banque d&apos;images de mani&#xE8;re programmatique directement dans vos applications via l&apos;URL : <strong><em>https://api.generated.photos/api/v1/faces?api_key=YOUR_API_KEY</em></strong>.</p><p>Il est possible de passer des param&#xE8;tres pour choisir, par exemple, l&apos;&#xE9;motion, la couleur des cheveux, le sexe, l&#x2019;ethnie ou bien l&apos;&#xE2;ge.</p><p>L&apos;API renvoi un r&#xE9;sultat de ce type : </p><pre><code class="language-javascript">{ 
   faces:[ 
      { 
         id:&quot;5dd09cb3def8b400084dc561&quot;,
         urls:[ 
            { 
               32:&quot;https://images.generated.photos/c3HDiZxu1D_Gqwtty0aXmYiG7u1UU_P9rQNwDF_wrDY/rs:fit:32:32/Z3M6Ly9nZW5lcmF0/ZWQtcGhvdG9zLzA5/OTk4MDcuanBn.jpg&quot;
            },
            { 
               64:&quot;https://images.generated.photos/fvdixqevCLj6eoT8rbkUQDiiRvp6nccjM7lDVHw7P40/rs:fit:64:64/Z3M6Ly9nZW5lcmF0/ZWQtcGhvdG9zLzA5/OTk4MDcuanBn.jpg&quot;
            },
            { 
               128:&quot;https://images.generated.photos/jx1ho14kdbTDsCgncsZXezi4i4uWM1zigaa-GHVO5pQ/rs:fit:128:128/Z3M6Ly9nZW5lcmF0/ZWQtcGhvdG9zLzA5/OTk4MDcuanBn.jpg&quot;
            },
            { 
               256:&quot;https://images.generated.photos/1JcKjAHdJJa-ysgNxQQlf7KM-x6S0KJrbjr-IKF0NLA/rs:fit:256:256/Z3M6Ly9nZW5lcmF0/ZWQtcGhvdG9zLzA5/OTk4MDcuanBn.jpg&quot;
            },
            { 
               512:&quot;https://images.generated.photos/DQ4EKrAPT-e5slG3cXmSw20uJ2AwwhOzJeVnpI9tlMA/rs:fit:512:512/Z3M6Ly9nZW5lcmF0/ZWQtcGhvdG9zLzA5/OTk4MDcuanBn.jpg&quot;
            }
         ],
         meta:{ 
            confidence:0.018248872831463814,
            gender:[ 
               &quot;female&quot;
            ],
            age:[ 
               &quot;young-adult&quot;
            ],
            ethnicity:[ 
               &quot;white&quot;
            ],
            eye_color:[ 
               &quot;blue&quot;
            ],
            hair_color:[ 
               &quot;blond&quot;
            ],
            hair_length:[ 
               &quot;long&quot;
            ],
            emotion:[ 
               &quot;joy&quot;
            ]
         }
      }, 
 [...]
}</code></pre><p>En utilisation gratuite, l&apos;API est limit&#xE9;e &#xE0; 500 appels par mois. Au del&#xE0;, il faudra consulter la grille tarifaire. Il faut compter 100 $, 200 $ et 600 $ respectivement pour 10 000, 25 000 et 100 000 appels par mois.</p>]]></content:encoded></item><item><title><![CDATA[Un nouveau départ]]></title><description><![CDATA[<p>Apr&#xE8;s avoir r&#xE9;dig&#xE9; pas loin de 2 500 articles en tout genre sur mon blog <a href="https://www.spawnrider.net/">Spawnrider.Net</a> entre 2006 et 2017, <strong>j&apos;ai d&#xE9;cid&#xE9; de tout arr&#xEA;ter.</strong> Plus de motivation ni de temps &#xE0; consacrer &#xE0; mon blog. Il</p>]]></description><link>https://www.ciurlik.com/un-nouveau-depart/</link><guid isPermaLink="false">5e020d22375e2f458ff49c5f</guid><dc:creator><![CDATA[Yohann Ciurlik]]></dc:creator><pubDate>Tue, 24 Dec 2019 13:39:20 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1544816565-c199d6f5d2d3?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=2000&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1544816565-c199d6f5d2d3?ixlib=rb-1.2.1&amp;q=80&amp;fm=jpg&amp;crop=entropy&amp;cs=tinysrgb&amp;w=2000&amp;fit=max&amp;ixid=eyJhcHBfaWQiOjExNzczfQ" alt="Un nouveau d&#xE9;part"><p>Apr&#xE8;s avoir r&#xE9;dig&#xE9; pas loin de 2 500 articles en tout genre sur mon blog <a href="https://www.spawnrider.net/">Spawnrider.Net</a> entre 2006 et 2017, <strong>j&apos;ai d&#xE9;cid&#xE9; de tout arr&#xEA;ter.</strong> Plus de motivation ni de temps &#xE0; consacrer &#xE0; mon blog. Il faut dire que r&#xE9;diger des articles de qualit&#xE9; prend du temps... Et le temps je le consacre &#xE0; autres choses : la famille, le travail ou mes autres occupations.</p><p><strong>J&apos;ai pourtant toujours envie d&apos;&#xE9;crire et de partager mes d&#xE9;couvertes</strong>, cr&#xE9;ations ou mes coups de c&#x153;urs. J&apos;ai donc d&#xE9;cid&#xE9; de faire de mon domaine Ciurlik.com, un blog technique essentiellement tourn&#xE9; vers le High-Tech, les gadgets, la domotique, et tout ce que je d&#xE9;couvre au quotidien. C&apos;est aussi un peu la faute de mon tr&#xE8;s cher ami Ludovic de <a href="https://www.geeek.org/avis-cms-ghost-blog/">Geeek.org</a> que j&apos;ai d&#xE9;cid&#xE9; de m&apos;y remettre tout en essayant le CMS <a href="https://ghost.org/">Ghost</a>. Une nouvelle fa&#xE7;on plus &#xE9;pur&#xE9;e et pratique de partager des articles, dans la lign&#xE9;e de Medium, plateforme que j&apos;appr&#xE9;cie beaucoup. Et puis r&#xE9;diger des articles, cela d&#xE9;tend et permet de prendre un peu de recul sur son quotidien. C&apos;est aussi faire l&apos;effort de bien r&#xE9;diger et de prendre de la hauteur pour se faire comprendre et partager vers une large communaut&#xE9;. </p><p><strong>Au programme de 2020 et des ann&#xE9;es &#xE0; venir </strong>: des articles sur mon quotidien, de la domotique, du hardware (arduino, esp8266, m5stack, ...), du Linux, des geekeries et pleins d&apos;autres surprises. Pas d&apos;articles sponsoris&#xE9;s pour des shampoings ou du nsfw pour faire de l&apos;audience. De la pure tech &#xE0; l&apos;&#xE9;tat pur. Pour le rythme, inutile de vous dire que cela d&#xE9;pendra de ma motivation. Mais une chose est s&#xFB;re, ce n&apos;est que le d&#xE9;but ;) A bient&#xF4;t donc pour de nouvelles aventures :)</p>]]></content:encoded></item></channel></rss>