Sébastien Pittet - Virtual World<p>Travaille pour Exoscale, Spéléologue.</p>2024-02-12T15:22:32+01:00Sébastien Pitteturn:md5:b559b4029c344753641d294c5df424eaDotclearOctave Klaba, Economie et Cloudurn:md5:79e56af1bc698db27f536ddab435a3ee2022-12-16T17:59:00+01:002022-12-16T18:04:17+01:00Sébastien PittetVirtual WorldAnnexes sonoresComputing <div style="margin: 0 auto; display: table;">
<video controls="" height="600" preload="auto" width="800"><source src="https://sebastien.pittet.org/public/2022/OVH-Klaba/OctaveKlaba_CloudSouverain.mp4" /></video>
</div>
<p style="text-align: center;">Source (interview complet) : <a href="https://www.youtube.com/watch?v=GRnWBIJb_Oo&t=683s" hreflang="fr" title="Interview Octave Klaba">https://www.youtube.com/watch?v=GRnWBIJb_Oo&t=683s</a></p>Publicité sur Interneturn:md5:bb5da14fe4f801583c6e97b68cd909a22022-09-19T10:00:00+02:002024-01-13T18:50:15+01:00Sébastien PittetVirtual WorldComputing<h3><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.PubInternetHeader_m.jpg" style="margin: 0 auto; display: table;" /></h3>
<h3>Cookies et Third Parties</h3>
<blockquote>
<p>Depuis la visite d'un site web, je suis la cible de publicités sur le sujet.<br />
Comment est-ce possible ? Comment sont-ils au courant ?</p>
</blockquote>
<p>Une connaissance me posait cette question et cela a motivé la rédaction de cet article.</p>
<p><em><strong>Cookies et Third Parties !</strong></em></p>
<p>L'affichage d'une page internet consiste en de multiples requêtes HTTP : une fois le fichier HTML téléchargé (description de la page, du contenu), votre navigateur devra encore télécharger les images et autres composants.</p>
<p>On y trouve notamment les fichiers qui contribuent au côté esthétique/présentation (<a href="https://fr.wikipedia.org/wiki/Feuilles_de_style_en_cascade" hreflang="fr" title="Wikipedia, Cascading Style Sheets">CSS, Cascading Style Sheets</a>) et dynamique (client-side scripting, souvent JavaScript). Par extension, cette technique est également appliquée par des fournisseurs de services, qui proposent d'ajouter leur contenu sur les pages visitées. Ce contenu peut même varier en fonction de votre emplacement géographique sur la planète.</p>
<p>A titre d'exemple, le chargement d'une des pages de ce site internet représente 21 requêtes, pour un total de 363 KB téléchargés (en 267ms).</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/LoadMagicMaze.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.LoadMagicMaze_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Lors du chargement de la page web, il est également possible de créer des "cookies", de petits fichiers stockés sur votre machine qui permettent d'enregistrer des états et vous reconnaître pour de prochaines visites. A ce sujet, lire les <a href="https://fr.wikipedia.org/wiki/Cookie_(informatique)#Pistage" hreflang="fr" title="Wikipedia Cookie Pistage et Tierce partie">paragraphes "pistage" et "tierce partie" de la page Wikipedia dédiée aux cookies</a>. Les cookies permettent en effet de suivre un internaute au fil de ses requêtes sur un site internet. Le profilage est facilité : l'exploitant du serveur web/de l'application vous identifie et journalise vos différents accès, déduit ce qui vous intéresse, en consultant votre parcours (identité, contenu visité, horaires).</p>
<p>La combinaison des deux éléments est clé. La page web contient des appels vers d'autres éléments (externes) qui génèrent leurs propres traces, à leur tour : celles spécialisées dans la publicité, dans la gestion des cookies, et autres services encore. Ces différentes sociétés se lient entre elles par contrat et délivrent chacune leurs spécialités. On les appelle les <strong>"Third Parties"</strong>.</p>
<p>Et il est même possible qu'une des sociétés avec lequel vous contractez, externalise une partie de son propre service. Vous vous retrouvez donc avec un "<strong>Fourth Party</strong>". <strong>Le fournisseur (de pub) d'un de vos fournisseurs (de pub).</strong></p>
<h3>Analysons quelques sites!</h3> <h3>Mon blog, celui que vous lisez à l'instant</h3>
<p>Comme premier exemple simple, que se passe-t-il lorsque vous visitez une page de ce blog, mettons <a class="ref-post" href="https://sebastien.pittet.org/index.php?post/2022/04/12/Magic-Maze">celle consacrée à Magic Maze</a> ? Aucun third party. Les fichiers CSS sont installés sur ce serveur. Ce blog utilise également JQuery 3.6.0 (au moment de la publication), servi également depuis ce serveur web. Les images viennent également de ce serveur. Aucune source externe. C'est le cas le plus simple.</p>
<p>Dans cet exemple de requête, 360KB sont téléchargés sur votre ordinateur, via 11 différentes requêtes HTTP GET. La page HTML déclenche le téléchargement de fichiers CSS, JavaScript, images, etc.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/sebastien.pittet.org.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.sebastien.pittet.org_m.png" style="margin: 0 auto; display: table;" /></a></p>
<h3>https://www.exoscale.com</h3>
<p>Passons maintenant à l'analyse du site d'<a href="https://www.exoscale.com" hreflang="en" title="Exoscale Public Cloud Europe">Exoscale (Public Cloud)</a>, qui communique beaucoup sur le respect de la vie privée. Exoscale revendique une<a href="https://www.exoscale.com/compliance/" hreflang="en" title="Exoscale Compliance"> conformité à 100% avec le réglement Européen RGPD</a>, la loi la plus stricte en matière de protection des données. Voyons ce qu'il en est :</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/Exoscale_request.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.Exoscale_request_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Le graph est un peu plus complet. On note que la grande majorité du contenu est servie depuis le domaine principal exoscale.com ou des sous-domaines associés (stats.exoscale.com). Deux autres sources sont cependant listées (Third parties):</p>
<ol>
<li>fast.fonts.net : téléchargement d'une police de caractère spécifique.</li>
<li>cdn.cookielaw.org : organisation au service du respect des données privées, <a href="https://www.cookielaw.org/about-us/" hreflang="en" title="CookieLaw.org">ils assurent la conformité des cookies avec les lois</a>. Ces derniers dépendent visiblement de geolocation.onetrust.com (Fourth party engagée pour leur "Data Privacy Management Software").</li>
</ol>
<p>Les différents domaines sont évalués et classés par catégories. Ainsi, on remarque que la visite du site www.exoscale.com implique un CDN (=Content Delivery Network) pour délivrer le contenu statique (fonts.net) et 2 domaines liés au "consentement/cookies" (cookielaw.org et onetrust.com). Le reste est délivré via Exoscale (<em>First Party</em>, dans le tableau ci-dessous).</p>
<p><strong>Exoscale dit vrai : traitement très sérieux de la 'privacy' !</strong></p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/Exoscale_pivot.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.Exoscale_pivot_m.png" style="margin: 0 auto; display: table;" /></a></p>
<h3>https://www.qoqa.ch</h3>
<p>L'analyse du site www.qoqa.ch est intéressante, car il s'agit d'un des sites de e-commerce bien connu ici. On remarque que le graphique est plus "étendu" ou plus "développé" que les précédents. Il comporte davantage de composants externes.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/www.qoqa.ch_request.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.www.qoqa.ch_request_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Comme lors de l'exercice précédent, les sources externes ont été catégorisées et décomptées. Le tableau ci-dessous montre que la plupart des domaines sont externes, avec une majorité d'entres eux dédiés à la publicité (40). Lors d'une visite sur le site https://www.qoqa.ch, ce n'est pas moins de 227 requêtes HTTP qui sont déclenchées, sur 51 domaines qui n'appartiennent pas à QoQa. Tout ce matériel représente 1.5 MB de données, scripts et images.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/www.qoqa.ch_pivot.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.www.qoqa.ch_pivot_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Un zoom sur le graphique de Qoqa (extrait) montre que Pinterest, Facebook, Google et doubleclick.net sont désormais au courant de l'article qui vous intéresse. <strong>La société Doubleclick, membre du Groupe Google depuis 2007, est une régie spécialisée dans le ciblage comportemental sur internet.</strong> Dans l'exemple de QoQa.ch, ce sont <strong>28 sociétés actives dans la publicité qui vous surveillent</strong>. <u>CQFD </u>: vous vous intéressez à un article proposé par QoQa, les réseaux sociaux vous proposeront de la publicité ciblée qui revient sur votre "intérêt".</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/qoqa_zoom_request.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.qoqa_zoom_request_m.png" style="margin: 0 auto; display: table;" /></a></p>
<h3>https://www.amazon.com</h3>
<p>D'un site e-commerce bien connu en Suisse romande, on rebondit sur <strong>LE </strong>site du e-commerce mondial : Amazon ! Chez eux, la carte se révèle beaucoup plus grande et comporte quelques constellations. Elle comporte plus de 700 liens.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/www.amazon.com_requests.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.www.amazon.com_requests_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Ci-dessous, je partage le détail des requêtes. La page principale d'amazon est liée avec 16 sociétés actives dans la publicité sur internet. Sans trop de surprise, Amazon nourri surtout ses propres services, sa société Amazon Ads.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/amazon_pivot.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.amazon_pivot_m.png" style="margin: 0 auto; display: table;" /></a></p>
<h3>CNN.com : le joli feu d'artifice !</h3>
<p>Passons désormais sur un site de News bien connu, cnn.com . Wow ! Le graphique prend des proportions étonnantes !</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/cnn_request_map.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.cnn_request_map_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Chez CNN, la catégorie <strong>"First party" représente une proportion inférieure à 10% des domaines questionnés (et nombre de requêtes) !</strong> Lorsque vous visitez ce site internet, vos données sont collectées par un grand nombre d'organisations ! On y dénombre 58 sociétés partenaires, actives dans la publicité. Ils s'intéressent à ce qui vous intéresse. Combiné à votre identité, âge, emplacement géographique, on peut désormais vous présenter du contenu qui vous maintiendra intéressé.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/CNN.com_Pivot.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.CNN.com_Pivot_m.png" style="margin: 0 auto; display: table;" /></a></p>
<h3>https://www.pronhub.com</h3>
<p>Passons un peu de temps sur un autre business, celui consacré au Pr0n. Le revenu dégagé par cette industrie est énorme et je m'attendais personnellement à résultat croustillant. Il n'en est rien, sans doute parce que les sociétés ne souhaitent pas s'afficher avec cette industrie-là. Sans trop de surprise, une large majorité du contenu est servi via un CDN, impérativement requis pour délivrer le contenu vidéo sur toute la planète, sans lag.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/Pr0nHub_request.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.Pr0nHub_request_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p>Le tableau des requêtes montre tout de même que Google est associé, via sa société fille "DoubleClick Ads". La société TrafficJunky est spécialisée dans la publicité Pr0n et affiche fièrement ses statistiques : <em>"TrafficJunky serves 4.6 billion daily ad impressions"</em>. On a donc une industrie parallèle, pour ce vertical spécifique.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/Pr0nhub_Pivot.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.Pr0nhub_Pivot_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p> </p>
<h2>Conclusion</h2>
<p>La motivation de ces quelques recherches provient d'une envie de mieux comprendre et d'expliquer ce qu'il se passe aujourd'hui sur internet. J'espère que le partage de ces quelques exemples donne une première idée sur la question.</p>
<p>La législation européenne sur la protection de la sphère privée (RGPD) a provoqué la mise en oeuvre systématique d'un avertissement sur les cookies, qui poursuit un besoin d'informer, de vous laisser le choix. Malheureusement, la plupart des utilisateurs valident les cookies sans y donner l'attention requise. Finalement, pour faire l'économie de quelques clics, le pistage est accepté. Certaines solutions rendent même votre choix très alambiqué, avec une quasi impossibilité de décliner les cookies de tracking ! Au final, vous êtes systématiquement suivis, pistés au fil des pages visitées.</p>
<p>Le profilage se déroule et les sociétés actives dans la publicité sur internet se livrent une concurrence acharnée en cherchant à être présentes sur un maximum de sites internet. Ceci pour mieux revendre leurs services de publicités ciblées. La statistique ci-dessous (2018) présente <strong>la proporition du trafic web collectée par les "Top trackers".</strong> Google (via DoubleClick) collecte les données de 80% du trafic.</p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2022/internet-advertisements/whotracks.me_tracker_market_share.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2022/internet-advertisements/.whotracks.me_tracker_market_share_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p style="text-align: center;"><em>Source: WhoTracks.me, by Cliqz GBMH.</em></p>
<p>Les données sont ainsi valorisées et sont même utilisées à des fins financières et politiques (cas des élections américaines. Et d'autres sans doute.). A ce sujet, relire les éléments autour de "<a href="https://fr.wikipedia.org/wiki/Cambridge_Analytica" hreflang="fr" title="Wikipedia - Cambrige Analytica">Cambridge Analytica</a>".</p>
<p>Une meilleure attention doit être portée sur le sujet. Pour cela, l'extention "<a href="https://privacybadger.org/" hreflang="en" title="EFF - Privacy Badger">Privacy Badger</a>" devrait être plus largement installée. Il s'agit d'un plug-in gratuit pour votre navigateur, chargée de bloquer l'accès aux Third Parties.</p>
<h2>Outils d'analyse utilisés</h2>
<ul>
<li><a href="https://requestmap.webperf.tools/" hreflang="en" title="Third Party Finder">https://requestmap.webperf.tools/</a> (recherche des Third parties et performances)</li>
<li><a href="https://pagespeed.web.dev/" hreflang="en" title="Analyse de la vitesse de chargement">https://pagespeed.web.dev/</a> (performances)</li>
<li><a href="https://www.webpagetest.org/" hreflang="en" title="Analyse de votre site internet">https://www.webpagetest.org/</a> (performances)</li>
</ul>
<h2>Au service de la privacy</h2>
<ul>
<li>Voir le film <a class="ref-post" href="https://sebastien.pittet.org/index.php?post/2022/07/21/Nothing-to-Hide">Nothing to Hide, sur ce blog</a>.</li>
<li><a href="https://www.eff.org/" hreflang="us" title="Electronic Frontier Foundation">Fondation EFF (Electronic Frontier)</a>, regardez notamment <a href="https://www.eff.org/pages/privacy-badger" hreflang="en" title="Privacy Badger">Privacy Badger, browser plugin</a></li>
<li><a href="https://whotracks.me/" hreflang="en" title="Who Tracks Me">https://whotracks.me</a></li>
</ul>
<p> </p>Nothing to Hideurn:md5:cfca4b2a361975ca104c73c011fd67f22022-07-21T09:00:00+02:002023-08-25T18:18:49+02:00Sébastien PittetVirtual WorldAnnexes sonoresComputingDocumentaire <h3>Un film sur la surveillance et vous</h3>
<p>Ce documentaire gratuit offre une belle opportunité de comprendre que l'argument "Je n'ai rien à cacher" ne fonctionne pas. Chacun doit pouvoir conserver un jardin secret.</p>
<p>Que sont les Meta data ? Que peut-on déduire de vos données ? <strong>L'expérience avec "Monsieur X" vous intéressera certainement !</strong> (autour de 48:00)</p>
<div style="padding:56.25% 0 0 0;position:relative;"><iframe allow="autoplay; fullscreen; picture-in-picture" allowfullscreen="" frameborder="0" src="https://player.vimeo.com/video/218966342?h=e8cd447523" style="position:absolute;top:0;left:0;width:100%;height:100%;"></iframe></div>
<script src="https://player.vimeo.com/api/player.js"></script>
<p><a href="https://vimeo.com/218966342">Nothing to Hide (Italian, Japanese, Portuguese, Spanish and English cc)</a> from <a href="https://vimeo.com/nothingtohide">DeepDocs</a> on <a href="https://vimeo.com">Vimeo</a>.</p>
<p> </p>Ariseurn:md5:bb62bf1661f1947aad2060908295034e2021-12-20T23:12:00+01:002021-12-20T23:12:00+01:00Sébastien PittetVirtual WorldGaming <p>Arise, dont les ambiances m'ont clairement fait penser à <a class="ref-post" href="https://sebastien.pittet.org/index.php?post/2017/05/23/Unravel">Unravel, dont j'avais déjà parlé sur ce blog</a>, est un jeu qui mérite bien un article.</p>
<p><u>Les plus</u>:</p>
<ul>
<li>Bon marché,</li>
<li>Peut se jouer à deux, en mode coopératif,</li>
<li>Paisible, musique calme, scènes magnifiques,</li>
<li>A partager en famille !</li>
</ul>
<p><u>Les moins</u>:</p>
<ul>
<li>demande un peu de patience pour refaire les passages difficiles. Mais les checkpoints sont nombreux, heureusement.</li>
</ul>
<p><u>Le principe</u>:</p>
<p>On nous demande de faire progresser un personnage. Les obstacles seront franchis en remontant ou en avançant dans le temps.</p>
<p><u>Site officiel</u>: <a href="https://arise-game.com/" hreflang="us" title="Arise - the game">https://arise-game.com</a></p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2021/12-december/Arise/Arise.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2021/12-december/Arise/.Arise_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p> </p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2021/12-december/Arise/field_flowers.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2021/12-december/Arise/.field_flowers_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p> </p>
<p><a class="media-link" href="https://sebastien.pittet.org/public/2021/12-december/Arise/blue_space.png"><img alt="" class="media" src="https://sebastien.pittet.org/public/2021/12-december/Arise/.blue_space_m.png" style="margin: 0 auto; display: table;" /></a></p>
<p> </p>
<p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/5IYRGDKI9lU" title="YouTube video player" width="560"></iframe></p>
<p> </p>Mount S3 bucket on your instanceurn:md5:2dff6f765b4b219ccc7456e405996c112020-12-09T11:59:00+01:002020-12-23T09:08:49+01:00Sébastien PittetVirtual WorldComputing<p>At Exoscale, every employee is involved in support activities and you can learn about <a href="https://www.exoscale.com/syslog/importance-of-support/" hreflang="us" title="Exoscale - the importance of support">our motivations if you read this blog post</a>.</p>
<p>This article shares a quick-step-guide given to a customer about mounting a bucket in his instance.</p>
<p> </p> <p>A customer of <a href="https://www.exoscale.com/" hreflang="us" title="Exoscale">Exoscale</a> asked how to mount a S3-bucket in his instance and access it like another folder. Even if it goes beyond the limit of the help we usually provide, I accepted to help as the case was interesting for me.</p>
<p>Here is a quick step-by-step guide for further reference. This was firstly tested on Debian 10 and validated with Ubuntu 20.04 LTS.</p>
<pre ng-bind-html="event.body_urlized">
# upgrade your template
apt-get update -y && apt-get upgrade -y
# install s3fs
apt-get install s3fs -y
# create a password file in ${HOME}/.passwd-s3fs with the right permissions
echo INSERT-YOUR-API-KEY-HERE:API-SECRET-HERE > ${HOME}/.passwd-s3fs
chmod 600 ${HOME}/.passwd-s3fs
# mount your S3 bucket (located in Frankfurt) in /mnt/mybucket
mkdir /mnt/mybucket
s3fs BUCKET-NAME-HERE /mnt/mybucket -o url=<a href="https://sos-de-fra-1.exo.io/" rel="noopener noreferrer" target="_blank">https://sos-de-fra-1.exo.io</a></pre>
<p ng-bind-html="event.body_urlized">I got my bucket available in my OS and could create/delete files, as well as directories.</p>
<p ng-bind-html="event.body_urlized">To get this work, I also checked a couple of internet pages, like:</p>
<p ng-bind-html="event.body_urlized">* <a href="https://github.com/s3fs-fuse/s3fs-fuse" rel="noopener noreferrer" target="_blank">https://github.com/s3fs-fuse/s3fs-fuse</a><br />
* <a href="https://fs-s3fs.readthedocs.io/en/latest/#" rel="noopener noreferrer" target="_blank">https://fs-s3fs.readthedocs.io/en/latest/#</a></p>Windows Subsystem for Linux and SSH configurationurn:md5:e47a33583c31c303e73e964a75c549c82020-03-12T22:35:00+01:002023-11-18T16:39:08+01:00Sébastien PittetVirtual WorldComputing<ul>
<li>
<p>From WSL installation to ssh connectivity with GitHub.</p>
</li>
<li>
<p>Find your files in Windows 10</p>
</li>
<li>
<p>Use Visual Studio Code and the extension Remote - WSL</p>
</li>
</ul>
<p> </p>
<p><img alt="" class="media" src="https://sebastien.pittet.org/public/2020/02-fevrier/wsl_debian_ssh/.install-wsl-windows-10__m.jpg" style="margin: 0 auto; display: table;" />Key commands, provided here to summarize the process, even if you will find plenty of websites on this topic.</p> <h3>Installation WSL on Windows 10</h3>
<pre>
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux</pre>
<p>Then, follow this <a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10" hreflang="us" title="Setup WSL on Windows 10 - Upgrade to WSL 2">quick guide to upgrade WSL v1 to v2</a>. WSL v2 allows you to run Docker.</p>
<p>Reboot, to activate the new feature. Then, from the Windows Store, install 'Debian', 'Ubuntu' or your distribution of choice.</p>
<h3>Where are the files stored in Windows 10 ?</h3>
<p>From the WSL terminal (i.e. in Debian), type : <strong> explorer.exe .</strong> to open your windows explorer in the current directory.</p>
<p>From a Windows terminal, you will find the Debian root here :</p>
<blockquote>
<p><strong>DIR CD C:\Users\%USERNAME%\AppData\Local\Packages\TheDebianProject*</strong></p>
</blockquote>
<h3>Update and install Git</h3>
<pre>
sudo apt update && sudo apt upgrade
sudo apt-get install git
git config --global user.name "Your Name"
git config --global user.email "Your mail address"
git config --global core.editor "nano"</pre>
<h3>Configuration of ssh-agent</h3>
<pre>
# Generate a private key, secure it with a passphrase
<code>ssh-keygen -t rsa -b 4096 -C "<em>your_email@example.com</em>"
# To check the permissions, follow:
</code><a href="https://gist.github.com/grenade/6318301">https://gist.github.com/grenade/6318301</a>
<code># Start your ssh-agent. Ensure you got a PID.
eval $(ssh-agent -s)</code>
<code># Add the priv key to ssh-agent (type the passphrase)</code>
<code>ssh-add ~/.ssh/id_rsa</code>
# Check that your 'identity' is correctly listed and available
<code>ssh-add -l</code></pre>
<h3>Check GitHub connectivity</h3>
<p>Assuming you already stored your public key to your GitHub config.</p>
<pre>
# Attempts to SSH to GitHub
ssh -T git@github.com</pre>
<h3>Visual Studio Code</h3>
<ul>
<li>Setup Visual Studio Code</li>
<li>Install the extension (preview) Remote WSL (see link below) and get the ability to work directly in Code !</li>
</ul>
<h3>If you want to know more</h3>
<ul>
<li><a href="https://docs.microsoft.com/en-us/windows/wsl/about">https://docs.microsoft.com/en-us/windows/wsl/about</a></li>
<li><a href="http://www.unixwiz.net/techtips/ssh-agent-forwarding.html">http://www.unixwiz.net/techtips/ssh-agent-forwarding.html</a></li>
<li><a href="https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh">https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh</a></li>
<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl">https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl</a></li>
</ul>Cyber security threatsurn:md5:8ae5d8f49e560bc95746ad6c5cd4cc0a2019-06-06T09:12:00+02:002023-01-06T14:47:57+01:00Sébastien PittetVirtual WorldComputing <p><strong>Other links:</strong></p>
<ul>
<li><a href="https://ddosmon.net/memcached_amplification_attack" hreflang="us" title="https://ddosmon.net/memcached_amplification_attack">https://ddosmon.net/memcached_amplification_attack</a></li>
<li><a href="https://cybermap.kaspersky.com" hreflang="us" title="https://cybermap.kaspersky.com">https://cybermap.kaspersky.com</a></li>
<li><a href="https://threatmap.checkpoint.com/ThreatPortal/livemap.html" hreflang="us" title="https://threatmap.checkpoint.com/ThreatPortal/livemap.html">https://threatmap.checkpoint.com/ThreatPortal/livemap.html</a></li>
</ul>python-rrdtool setupurn:md5:131532d8d5ded60324d9407b93c030af2018-09-13T02:00:00+02:002023-01-06T14:51:01+01:00Sébastien PittetVirtual WorldComputing<p><a href="https://sebastien.pittet.org/public/2018/08-aout/rrdtool/rrdtool.jpg" title="rrdtool.jpg"><img src="https://sebastien.pittet.org/public/2018/08-aout/rrdtool/.rrdtool_m.jpg" alt="rrdtool.jpg" style="display:table; margin:0 auto;" title="rrdtool.jpg, sept. 2018" /></a></p> <p><em>(Please note that a friend of mine, @vince2<sub> ([twitter|https://twitter.com/vince2</sub>|us|Twitter : Vincent Bernat]), convinced me to use the Linux Debian distribution. This post is also valid with Ubuntu.)</em></p>
<p>For a new application I'm developping, I need to store time-series data and for that I choose to rely on <a href="https://oss.oetiker.ch/rrdtool/" hreflang="us" title="RRDtool">RRDtool</a> and specifically need the <a href="https://pypi.org/project/python-rrdtool/" hreflang="us" title="python-rrdtool">python-rrdtool bindings</a>.</p>
<p>It is possible to install the modules through pip, as explained in the package : <a href="https://pypi.org/project/python-rrdtool/" hreflang="us" title="pypi package rrdtool">https://pypi.org/project/python-rrdtool/</a> .
But this drives me to an error :-/ .</p>
<pre>Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-az_K_M/python-rrdtool/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-vjNAN5-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-az_K_M/python-rrdtool/
</pre>
<p>Therefore, I'm reading the docs and follow the installation steps listed in <a href="https://pythonhosted.org/rrdtool/install.html#installation" hreflang="us" title="Documentation python-rrdtool">the official documentation</a>.</p>
<p>In the documentation, I learn that the requirements are certainly the problem. I also need to install the dependencies : <strong>librrd-dev</strong> and <strong>libpython3-dev</strong>.
Again, I'm getting the same error as tons of developpers (see <a href="https://www.google.com/search?ei=MI9hW9fcM9CzsAeIhbeACg&q=pip+unable+to+install+rrdtool&oq=pip+unable+to+install+rrd" hreflang="us" title="Google Search - unable install python-rrdtool">Google</a>, stackoverflow and others websites).</p>
<p>I'm constantly checking the python available modules from the python prompt with : help('modules') but I can't get rrdtool in the list !</p>
<p>I finally solved the problem by running the command :</p>
<pre>apt-get install build-essential
</pre>
<p>Then, I could :</p>
<ol>
<li>clone the official repository : <strong>git clone https://github.com/commx/python-rrdtool.git</strong></li>
<li>run the setup script : <strong>python setup.py install</strong></li>
<li>check the modules : <strong>help ('modules')</strong></li>
<li>see that rrdtool is now available !</li>
</ol>cron.hourly does not runurn:md5:20bcb70529c18ad84128e1049a2f6be62018-09-11T21:20:00+02:002023-01-06T14:51:10+01:00Sébastien PittetVirtual WorldComputing<p><a href="https://sebastien.pittet.org/public/2018/08-aout/cron/cron-logo.png"><img src="https://sebastien.pittet.org/public/2018/08-aout/cron/.cron-logo_m.png" alt="" style="display:table; margin:0 auto;" /></a></p> <p>I needed to run a script (let's say <em>my-script.sh</em>) on a hourly base and debian distribution provides an easy way to achieve this. We have to store it in the following folder to start it regularly:</p>
<pre>/etc/cron.hourly
</pre>
<p>It was a simple shell script, beginning with :</p>
<pre>#!/bin/sh
</pre>
<p>But... no execution. The logging is poor and I had trouble to solve this issue.</p>
<p><ins>Here are the steps ... and the resolution</ins>:</p>
<p>When adding a job to /etc/cron.hourly ( or .daily, .weekly, etc), <strong>always test afterwards</strong> that run-parts will actually run it by issuing the command:</p>
<pre>run-parts --test /etc/cron.hourly
</pre>
<p>To know more, RTFM about run-parts will give you interesting information:</p>
<pre>man run-parts
</pre>
<p>But, after digging, I could identify the problem:</p>
<pre>giving your script an extension will make it
invalid and result in the job not being run.
This because the only allowed
characters are [a-zA-Z0-9_-]
</pre>Intelligence Artificielle dans Forumurn:md5:8f1e79e814280aeae1b071370d65e87b2017-11-10T09:51:00+01:002023-01-06T14:52:27+01:00Sébastien PittetVirtual WorldComputing <p><a href="https://sebastien.pittet.org/public/2017/11-Novembre/AntoineBlondeau_forum_rts/Antoine_Blondeau_Quote.PNG" title="Antoine_Blondeau_Quote.PNG"><img src="https://sebastien.pittet.org/public/2017/11-Novembre/AntoineBlondeau_forum_rts/.Antoine_Blondeau_Quote_m.png" alt="Antoine_Blondeau_Quote.PNG" style="display:table; margin:0 auto;" title="Antoine_Blondeau_Quote.PNG, nov. 2017" /></a></p>
<p>Hier soir, la RTS a questionné Antoine Blondeau sur le thème de l'intelligence artificielle. L'interview donne de bonnes réponses sur les questions liées à l'avenir de la technologie.</p>
<p><strong>Quelques liens :</strong></p>
<ul>
<li><a href="http://www.rts.ch/info/sciences-tech/technologies/9072307-pour-antoine-blondeau-l-intelligence-artificielle-est-au-service-de-l-homme-.html" hreflang="fr" title="Antoine Blondeau, Forum, RTS">Ecouter le podcast de l'interview</a></li>
<li><a href="https://www.sentient.ai/" hreflang="us" title="Sentient Technoliogies">Site de la société Sentient Technologies</a></li>
</ul>Poor internet performanceurn:md5:2a2b7289773aa680f539e0cd5e2a41512017-08-31T21:54:00+02:002023-01-06T14:52:35+01:00Sébastien PittetVirtual WorldComputing <ul>
<li>Internet Service Provider : Swisscom</li>
<li>Subscription : inOne Internet S (the smallest access available)</li>
<li>Router : internet-box 2</li>
<li>Commercial Profile : 40000 down / 8000 up Kbps</li>
<li>Technical capacity : 40871 down / 10939 up Kbps</li>
<li>Copper line VDSL2 line length : 1132m</li>
<li>Line Attenuationn TX : 35.9 dB</li>
<li>Line Attenuationn RX : 30.5 dB</li>
<li>Signal/Noise ratio TX : 14.7 dB</li>
<li>Signal/Noise ratio RX : 8.1 dB</li>
</ul>
<p><ins>Test protocol</ins> : each hour, an ethernet connected raspberry pi starts a test using <a href="https://github.com/sivel/speedtest-cli" hreflang="us" title="speedtest-cli">speedtest.</a>. The values are stored in a CSV file.</p>
<p><ins>Comments</ins>:
<strong>It seems that changing the router contributes to significantly reduce the internet performance (see chart below).</strong>
I'm paying for 40/8 and <mark>only get an average of 14/2 Mbps</mark>.</p>
<p><a href="https://sebastien.pittet.org/public/2017/08-aout/network-poor-perf/Performance_Decrease.png" title="Performance_Decrease.png"><img src="https://sebastien.pittet.org/public/2017/08-aout/network-poor-perf/.Performance_Decrease_m.png" alt="Performance_Decrease.png" style="display:table; margin:0 auto;" title="Performance_Decrease.png, août 2017" /></a></p>
<p>Data file available: <a href="https://sebastien.pittet.org/public/2017/08-aout/network-poor-perf/speedtest.csv">speedtest.csv</a></p>
<p>And ... yes, as soon as I see a performance improvement, I'll remove this bad post :-) !</p>Unravelurn:md5:19b82fc757433bd0566c69378fd4eabd2017-05-23T19:00:00+02:002017-05-23T19:00:00+02:00Sébastien PittetVirtual WorldGaming<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/1454554798804.jpg" title="1454554798804.jpg"><img src="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/.1454554798804_m.jpg" alt="1454554798804.jpg" style="display:table; margin:0 auto;" title="1454554798804.jpg, mai 2017" /></a></p>
<p><img src="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/Pegi7.gif" alt="Pegi7.gif" style="float:left; margin: 0 1em 1em 0;" title="Pegi7.gif, mai 2017" />Il est rare que j'écrive au sujet de jeux vidéos, le nombre de billets postés à ce sujet reste pauvre <em>(<a href="https://sebastien.pittet.org/index.php?tag/Gaming" hreflang="fr" title="Tag 'Gaming'">voir ici</a>)</em>. Cependant, ce jeu m'a littéralement <strong>embarqué dans une histoire à l'ambiance incroyable</strong> et cela méritait incontestablement un article.</p>
<p>Ceci d'autant que le jeu est vendu à un prix tout à fait abordable (20$), pour les plateformes PS4, <a href="https://www.microsoft.com/fr-ch/store/p/unravel/c11kkhb5h7qj" hreflang="fr" title="Unravel on Xbox One">Xbox One</a> et PC.</p> <p><img src="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/violence.gif" alt="violence.gif" style="float:left; margin: 0 1em 1em 0;" title="violence.gif, mai 2017" />Vous incarnez Yarny, un petit personnage fait de laine rouge, que vous allez guider au travers de paysages de toute beauté (jardins fleuris, marais, bord de mer, ...).</p>
<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/23.05.2017_09-13-23.png" title="23.05.2017_09-13-23.png"><img src="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/.23.05.2017_09-13-23_m.png" alt="23.05.2017_09-13-23.png" style="display:table; margin:0 auto;" title="23.05.2017_09-13-23.png, mai 2017" /></a></p>
<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/23.05.2017_09-17-00.png" title="23.05.2017_09-17-00.png"><img src="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/.23.05.2017_09-17-00_m.png" alt="23.05.2017_09-17-00.png" style="display:table; margin:0 auto;" title="23.05.2017_09-17-00.png, mai 2017" /></a></p>
<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/23.05.2017_09-14-22.png" title="23.05.2017_09-14-22.png"><img src="https://sebastien.pittet.org/public/2017/05-Mai/Unravel/.23.05.2017_09-14-22_m.png" alt="23.05.2017_09-14-22.png" style="display:table; margin:0 auto;" title="23.05.2017_09-14-22.png, mai 2017" /></a></p>
<p>Au fil du chemin parcouru, votre personnage déroule la laine dont il est conçu. Ce fil de laine lui permet d'ailleurs de progresser : le joueur est confronté à quelques puzzles, à la portée de chacun.</p>
<p>La musique (magnifique) contribue fortement à une ambiance nostalgique. Tout comme d'ailleurs l'objectif même du jeu, qui consiste à rassembler les photos/souvenirs de famille.</p>
<p><strong>Une oeuvre de toute beauté. N'hésitez pas une seule seconde.</strong></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/VVLzQMqWER8?rel=0" frameborder="0" allowfullscreen></iframe>
<p><strong>Quelques liens :</strong></p>
<ul>
<li><a href="http://www.unravelgame.com" hreflang="us" title="Unravel Game">Le site officiel du jeu</a></li>
<li><a href="http://www.unravelgame.com/unravel-trial-available.html" hreflang="us" title="Free Trial Unravel">Essayez le jeu gratuitement</a></li>
</ul>Let's test OpenDNSurn:md5:d47eeb1a023992b1be323f4ad6a6180c2017-05-08T20:23:00+02:002017-05-10T20:14:32+02:00Sébastien PittetVirtual WorldComputingIPv6<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/opendns.png" title="opendns.png"><img src="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/.opendns_m.png" alt="opendns.png" style="display:table; margin:0 auto;" title="opendns.png, mai 2017" /></a></p>
<h3>OpenDNS - can this really work?</h3>
<p>This morning, I was at CISCO office for a security training and I was told about OpenDNS (now acquired by CISCO). This is public DNS servers that allow you to filter bad sources, based on their names.</p>
<p>This sounded a bit strange for me. Why trying to protect people by using DNS? Is that really efficient? I ask this question, because DNS is at level7 (application level in OSI model).</p>
<p>I would prefer an IP reputation based system, instead playing with names (as an IP could be registered as multiple names!). But anyway, that's finally one more protection and I decided to give it a try.</p> <h3>Setup is easy</h3>
<ol>
<li>Register on <a href="https://store.opendns.com/get/home-free" hreflang="us" title="OpenDNS signup">https://store.opendns.com/get/home-free</a></li>
<li>Update your home router configuration with DNS server provided</li>
</ol>
<h3>Swisscom router configuration</h3>
<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/swisscom_router.png" title="swisscom_router.png"><img src="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/.swisscom_router_m.png" alt="swisscom_router.png" style="display:table; margin:0 auto;" title="swisscom_router.png, mai 2017" /></a></p>
<p>If you are interested to get some stats back, you have to inform OpenDNS with your static IP.
As I don't pay for that, my provider is dynamically changing it. You will then need to setup a DNS updater client (for Windows, for MacOS).</p>
<p>But I have a Raspberry Pi at home (running Raspbian) dedicated for some experiments and I decided to use it for that pupose. I have to say that I thought to my Synology NAS but finally prefer not to touch it with some configuration changes.</p>
<p><em>EDIT: I discussed this at work and it should exists a Synology feature that could be used to update your IP on OpenDNS.</em></p>
<p>Update package cache and install a Dynamic DNS updater:</p>
<pre>
$ sudo apt-get update && apt-get install ddclient
</pre>
<p>The setup wizard will certainly ask you some parameters. You will be able to fill that in using the extract on my ddclient.conf:</p>
<pre>
# /etc/ddclient.conf
# Update every 10 minutes
daemon=600
protocol=dyndns2
use=web, web=http://myip.dnsomatic.com
server=updates.opendns.com
login=YOUR E-MAIL ADDRESS USE TO REGISTER TO OPENDNS.COM
password=YOUR PASSWORD FOR OPENDNS.COM
NAME OF MY PERSONAL NETWORK (NAMED ON OPENDNS.COM)
</pre>
<p>You can also re-generate the configuration file, using the wizard:</p>
<pre>
$ sudo dpkg-reconfigure ddclient
</pre>
<p>Then, verify/update the configuration:</p>
<pre>
$ sudo nano /etc/ddclient.conf
</pre>
<p>And test your configuration</p>
<pre>
$ sudo ddclient -query
</pre>
<p>(re-) Start the service and check the log</p>
<pre>
$ sudo service ddclient restart
$ tail /var/log/syslog
</pre>
<p>You should see a successful update, depending on the lease duration.</p>
<h3>Settings on OpenDNS.com</h3>
<p>Under the settings, on OpenDNS.com, you will be able to select the level of security, block certain website categories and configure your custom webpage in case of block. A blacklist/whitelist is also possible.</p>
<p><strong>If you want to go with this, I assume you will have to spend your time into tuning it (and building the whitelist). For instance, blocking the webmail will result in blocking all Office365 trafic (mail, onedrive, onenote, etc) :-/ .</strong></p>
<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/settings.png" title="settings.png"><img src="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/.settings_m.png" alt="settings.png" style="display:table; margin:0 auto;" title="settings.png, mai 2017" /></a></p>
<h3>Message to user</h3>
<p>And when you test the access, you should get this kind of webpage:
<a href="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/block.JPG" title="block.JPG"><img src="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/.block_m.jpg" alt="block.JPG" style="display:table; margin:0 auto;" title="block.JPG, mai 2017" /></a></p>
<h3>Statistics and reporting</h3>
<p>Some stats and reporting are also provided. That's really where you understand they know a lot about you, your habits and the web sites your are surfing on. You can disable this part, if not needed.
But it could be interesting to see if some domains are blocked (for security reasons) or what kind of domains you are requesting a lot.
<mark>I discovered that my Samsung TV generates some 'unwanted' trafic, as well as my Philips HUE bridge....</mark></p>
<p><a href="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/OpenDNSstats.JPG" title="OpenDNSstats.JPG"><img src="https://sebastien.pittet.org/public/2017/05-Mai/OpenDNS/.OpenDNSstats_m.jpg" alt="OpenDNSstats.JPG" style="display:table; margin:0 auto;" title="OpenDNSstats.JPG, mai 2017" /></a></p>
<h3>And if my provider is IPv6 enabled (dualstack)?</h3>
<p>Swisscom provides me with IPv6 connectivity (6rd) and <a href="https://www.opendns.com/about/innovations/ipv6/" hreflang="us" title="OpenDNS supports IPv6">OpenDNS supports IPv6, as stated in a community post</a>.</p>
<p>However, I couldn't fully test the service, because my router only allows IPv4 for DNS resolution.</p>
<p>I plan to use my Raspberry to test this very soon.</p>I moved to LetsEncrypturn:md5:a3ddc430f24ecccb69e29c4e6c398eb62017-04-15T17:19:00+02:002020-03-12T22:00:07+01:00Sébastien PittetVirtual WorldComputing <p><img src="https://sebastien.pittet.org/public/2017/04-Avril/certbot/.certbot_m.jpg" alt="certbot.JPG" style="display:table; margin:0 auto;" title="certbot.JPG, avr. 2017" />In December 2016, I wrote a post on this blog about <a href="https://sebastien.pittet.org/index.php?post/2016/12/08/About-StartCom-SSL-free-certificates">StartCom SSL free certificates</a>. StartCom (and WoSign) aren't trusted anymore.</p>
<p>If Internet Explorer and Edge are trusting StartSSL root certificates, this is not the case with Google Chrome. I had to move to another product.
Letsencrypt is the Certificate Authority of choice : they are :</p>
<ul>
<li><strong>free</strong></li>
<li>trusted by most internet browsers</li>
<li>providing even SAN certificates</li>
<li>supported by majors companies</li>
<li><strong>but <em>very short</em> time limited!</strong> <em>(by design)</em></li>
</ul>
<p>This web server is running nginx on debian (Jessie) and is hosted at <a href="https://www.exoscale.ch" hreflang="fr" title="exoscale, a swiss cloud provider">exoscale, a swiss cloud provider</a>.
I installed Certbot (an ACME client to request the certificate and to automotically renew it). It worked like a charm!</p>
<p>Here are some basic steps I needed to do, in order to have it running:</p>
<p>Add the following line in the file /etc/apt/sources.list</p>
<pre>
deb http://ftp.debian.org/debian jessie-backports main
</pre>
<p>Follow the instructions <a href="https://certbot.eff.org/#debianjessie-nginx" hreflang="us" title="Install certbot on Debian Jessie">here</a> (for nginx on debian Jessie). For other configurations, you will find the <a href="https://certbot.eff.org/" hreflang="us" title="Install Certbot on other systems">instructions here</a>.</p>
<p>Then, don't forget to backup :</p>
<ol>
<li>your new nginx configuration file(s)</li>
<li>Letsencrypt directory, under /etc/letsencrypt</li>
</ol>
<p>Lastly, check the cron will run, as specified under:</p>
<pre>
/etc/cron.d/certbot
</pre>
<p>The log files are available in:</p>
<pre>
/var/log/letsencrypt/
</pre>
<p>My config is available in a <a href="https://raw.githubusercontent.com/SebastienPittet/config-files/master/etc/nginx/sites-available/pittet.org" hreflang="us" title="Github - nginx configuration">github repository</a> and the<a href="https://raw.githubusercontent.com/SebastienPittet/config-files/master/etc/nginx/sites-available/pittet.org" hreflang="us" title="Qualys SSL Checker"> last qualys check</a> gave the result A+.</p>
<p><a href="https://sebastien.pittet.org/public/2017/04-Avril/certbot/qualys_rating.jpg" title="qualys_rating.jpg"><img src="https://sebastien.pittet.org/public/2017/04-Avril/certbot/.qualys_rating_m.jpg" alt="qualys_rating.jpg" style="display:table; margin:0 auto;" title="qualys_rating.jpg, mai 2017" /></a></p>
<p><strong>Some links:</strong></p>
<ul>
<li><a href="https://security.googleblog.com/2016/10/distrusting-wosign-and-startcom.html" hreflang="us" title="Distrusting WoSign and StartCom Certificates">Google Security Blog - post about StartCom and WoSign</a></li>
<li><a href="https://blog.mozilla.org/security/2016/10/24/distrusting-new-wosign-and-startcom-certificates/" hreflang="us" title="Distrusting New WoSign and StartCom Certificates">Mozilla Security blog post</a></li>
<li><a href="https://letsencrypt.org/" hreflang="us" title="Let's Encrypt website">Let's Encrypt website</a></li>
<li><a href="https://certbot.eff.org/" hreflang="us" title="Certbot">Certbot</a></li>
<li><a href="https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/" hreflang="us" title="LetSecureMe">Great help to secure your linux server, nginx and letsencrypt</a></li>
</ul>Make sure your Python code is greaturn:md5:e505a721ac050f46d208631bcd89b4de2017-01-10T14:21:00+01:002020-03-12T21:59:46+01:00Sébastien PittetVirtual WorldComputing<p><a href="https://sebastien.pittet.org/public/2017/01-Janvier/python-style-guidance/logo_1_.png" title="logo_1_.png"><img src="https://sebastien.pittet.org/public/2017/01-Janvier/python-style-guidance/.logo_1__m.png" alt="logo_1_.png" style="display:table; margin:0 auto;" title="logo_1_.png, janv. 2017" /></a></p> <p>I just released a <a href="https://sebastien.pittet.org/index.php?post/2017/01/01/Cavelink-how-to-export-your-data">library for Cave-Link</a>, written in Python and a friend of mine submitted an interesting pull request.</p>
<p>He checked my code against some Python style-guidance and automatically did that with the help of two tools:</p>
<ul>
<li>PEP8</li>
<li>Frosted</li>
</ul>
<p>Here are some good links:</p>
<ol>
<li><a href="https://www.python.org/dev/peps/pep-0008/" hreflang="us" title="Python style guidance">Python style guidance</a></li>
<li><a href="https://pypi.python.org/pypi/pep8/1.7.0" hreflang="us" title="PEP8">PEP8</a></li>
<li><a href="https://pypi.python.org/pypi/frosted" hreflang="us" title="Frosted">Frosted</a></li>
</ol>
<p>Depending on your text editor, this could even be directly available for a check. As a Windows user, I'm relying on :</p>
<ul>
<li>Notepad++ (plugin available)</li>
<li>Visual Studio Code (plugin available)</li>
</ul>
<p>Loïc is using vim on Linux (plugin available).</p>
<p>Thank you, Loïc !</p>Cavelink - how to export your dataurn:md5:96bf302ff375a8b03eed292ded9026a62017-01-01T21:47:00+01:002017-01-30T21:34:08+01:00Sébastien PittetVirtual WorldComputingSpéléologie <p><img src="https://sebastien.pittet.org/public/2017/01-Janvier/lcavelink/.Python-logo-notext.svg_t.png" alt="" style="float:left; margin: 0 1em 1em 0;" />Using some free time during the holidays, I created a component to extract Cavelink data, by parsing the webpage. It's written in Python and <a href="https://github.com/SebastienPittet/cavelink" hreflang="us" title="Cavelink Module">available on GitHub</a>.</p>
<p>A cavelink station can be connected with a couple a sensors, to get information from the cave (i.e. temperature, water level). The upper station (surface) can also be connected to a GSM modem to transmit data to the conceptor server.</p>
<p>Felix Ziegler can provide a specific URL to get data, dumped to an HTML page.</p>
<p>The module is then able to parse the webpage and extract the data. You will then be able to store it on your own database.</p>
<p>This module is designed to be included in other application. More to come about this. Stay tuned !</p>
<p><strong>Some Links:</strong></p>
<ul>
<li><a href="http://scnv.ch/index.php/fr/com-joomlaupdate/techniques/niveau-des-siphons" hreflang="fr" title="Spéléo-Club du Nord Vaudois">Spéléo-Club du Nord Vaudois, some Cavelinks and URLs</a></li>
<li><a href="http://www.cavelink.com" hreflang="us" title="Cavelink.com">Official Cavelink website</a></li>
<li><a href="https://github.com/SebastienPittet/cavelink" hreflang="us" title="cavelink, a python module for Cavelink">Repository on GitHub, lcavelink</a></li>
<li><a href="http://zie.ch/" hreflang="de" title="Ingenmieurbüro Ziegler">Ingenieurbüro Ziegler - Conceptor</a></li>
<li><a href="http://www.speleo.ch" hreflang="fr" title="Société Suisse de Spéléologie">Société Suisse de Spéléologie</a></li>
<li><a href="http://www.speleo-cheseaux.ch" hreflang="fr" title="Spéléo-Club Cheseaux">Spéléo-Club Cheseaux</a></li>
</ul>About StartCom SSL free certificatesurn:md5:4f98bb9ae312b79407a411c9642235782016-12-08T21:40:00+01:002016-12-08T23:24:21+01:00Sébastien PittetVirtual WorldComputing <p>This website has its trafic encrypted with a StartCom Free SSL Certificate. As I recently renewed a certificate, I got this information:</p>
<pre>
Notice:
1. Mozilla and Google decided to distrust all
StartCom root certificates as of 21st of October,
this situation will have an impact in the upcoming
release of Firefox and Chrome in January.
Apple's decision announced on Nov 30th of
distrusting all StartCom root certificates as
of 1st of December will have an impact in their
upcoming security update.
2. Any subscribers that paid the validation fee
after Oct. 21st can get full refund by request.
3. StartCom will provide an interim solution soon
and will replace all the issued certificates with
issuance date on or after Oct 21st in case of
requested. Meanwhile StartCom is updating all
systems and will generate new root CAs as
requested by Mozilla to regain the trust in
these browsers.
</pre>
<p>I checked this on the <strong><a href="https://blog.mozilla.org/security/2016/10/24/distrusting-new-wosign-and-startcom-certificates/" hreflang="us" title="Mozilla and WoSign and StartCom Certificates">Mozilla</a></strong> and <a href="https://support.apple.com/en-us/HT204132" hreflang="us" title="Apple and StartCom Free certificates">Apple website</a>. I couldn't find any information on the Microsoft website about this.</p>
<p>After some earches on Microsoft.com, I can link to :</p>
<ul>
<li><a href="http://social.technet.microsoft.com/wiki/contents/articles/36275.microsoft-trusted-root-certificate-program-participants-as-of-november-17-2016.aspx" hreflang="us" title="Trusted Root">Microsoft Trusted Root Certificate Program Participants</a></li>
<li><a href="http://social.technet.microsoft.com/wiki/contents/articles/31633.microsoft-trusted-root-program-requirements.aspx" hreflang="us" title="Microsoft Trusted Root program requirements">Microsoft Trusted Root Program Requirements</a></li>
<li><a href="http://aka.ms/auditreqs" hreflang="us" title="Audit">Microsoft Trusted Root Certificate Program Audit Requirements</a></li>
</ul>
<p><q>I'm planning a move to <a href="https://letsencrypt.org" hreflang="us" title="Let's Encrypt Certificates">Letsencrypt certificates</a>...</q></p>
<p>More information to come.</p>Great Regex websiteurn:md5:52c7f6958fc7ea176440e8af42f2d9cd2016-11-08T09:11:00+01:002016-11-08T09:15:44+01:00Sébastien PittetVirtual WorldComputing <p>There are many website related to RegEx (= regular expressions). But this one helped me a lot because the test feature is not limited to Javascript capabilities (i.e. to test positive & negative lookaround expressions).</p>
<p><img src="https://sebastien.pittet.org/public/2016/novembre/.RegEx_website_m.jpg" alt="RegEx_website.JPG" style="display:table; margin:0 auto;" title="RegEx_website.JPG, nov. 2016" /></p>
<p>If you need some great help in validating things, just go to<a href="https://regex101.com" hreflang="us" title="RegEx 101"> regex101.com</a> !</p>Learning Linuxurn:md5:4f1039878a83dad41846bdbcaa1600162016-11-02T15:31:00+01:002016-11-02T15:33:21+01:00Sébastien PittetVirtual WorldComputing <p>Linux and OpenSource software are driving the cloud technologies. <a href="https://sebastien.pittet.org/index.php?post/2016/07/05/Achievement-Unlocked-%3A-Cloud-Infrastructure">A few examples can be found in this post</a>, where I'm listing the products and technologies considered in the last training I attended.</p>
<p>So, I'm learning Linux, in order to better compare, understand the differences between "Microsoft Cloud OS" suite of applications (including its Cloud service called Azure) and the stack of OpenSource softwares combined.</p>
<p>Today, I found a great picture of my learning curve. I'm (re-) publishing it below.</p>
<p><a href="https://sebastien.pittet.org/public/2016/octobre/LinuxLearningCurve/Linux_Learning_curve.jpg" title="Linux_Learning_curve.jpg"><img src="https://sebastien.pittet.org/public/2016/octobre/LinuxLearningCurve/.Linux_Learning_curve_m.jpg" alt="Linux_Learning_curve.jpg" style="display:table; margin:0 auto;" title="Linux_Learning_curve.jpg, nov. 2016" /></a></p>
<p>I'm seriously thinking to open a new category in this blog to explain my findings et help each other to go faster. This new category could be called "Adventures on Debian Linux".</p>
<p>Stay tuned, some posts are already in preparation.</p>Achievement Unlocked : Cloud Infrastructure !urn:md5:83b664720cc05c3f5e1d3eb13cd0f4ff2016-07-05T23:36:00+02:002016-07-06T07:58:19+02:00Sébastien PittetVirtual WorldComputing <p><a href="https://sebastien.pittet.org/public/2016/juillet/IntroCloudInfra/IntroCloudInfra.PNG" title="IntroCloudInfra.PNG"><img src="https://sebastien.pittet.org/public/2016/juillet/IntroCloudInfra/.IntroCloudInfra_m.png" alt="IntroCloudInfra.PNG" style="display:table; margin:0 auto;" title="IntroCloudInfra.PNG, juil. 2016" /></a></p>
<p>Les infrastructures orientées Cloud sont certainement un thème passionnant et très complexe.
Par intérêt personnel, pour l'envie d'en savoir davantage et pour ne pas rester en arrière, j'ai suivi une formation d'introduction, qui traitait des sujets suivants :</p>
<ul>
<li><strong>Infrastructure as a Service</strong></li>
<li><strong>Platform as a Service</strong></li>
<li><strong>Containers</strong></li>
<li><strong>Micro OSes for Containers</strong> (CoreOS, RancherOS, Atomic Host, VMware Photon, etc)</li>
<li><strong>Container Orchestration</strong> (Docker Swarm, Kubernetes, Mesos, Nomad, Amazon ECS, Google Container Engine, Azure Container Service)</li>
<li><strong>Unikernels</strong></li>
<li><strong>Microservices</strong> thème renforcé par la <a href="http://blog.abarbanell.de/assets/pdf/Microservices-meetup-2016-06-16.pdf" hreflang="us" title="PDF présentation Abarbanell Microservices">présentation de M. Abarbanell</a></li>
<li><strong>Container as a Service (CaaS)</strong> : Docker Universal Control Plane, OpenStack Magnum</li>
<li><strong>Software Defined Network</strong> and Networking for Containers</li>
<li><strong>Software Defined Storage</strong> and Storage Management for Containers (Ceph, Gluster, Docker Volumes)</li>
<li><strong>DevOps and CI/CD</strong></li>
<li><strong>Configuration Management</strong> (Ansible, Puppet, Chef, Salt)</li>
<li>Tools for <strong>Build and release</strong> (Terraform, BOSH)</li>
<li>Tools for <strong>Key-Value Pair Store</strong> (etcd, Consul)</li>
<li>Tools for <strong>Image Building</strong> (Packer, Building Docker image)</li>
<li>Tools for <strong>Debugging, Logging and Monitoring</strong> (Sysdig, cAdvisor & Heapster, Fluentd, Datadog)</li>
</ul>
<p>A l'issue des quelques semaines de formation, j'ai réussi la certification "Linux Foundation". Au delà du certificat, j'ai surtout été sensibilisé à de nouvelles façons de voir les infrastructures informatiques modernes, les outils associés et les méthodes appliquées. La résilience applicative et les concepts de scalability ont maintenant un autre sens pour moi !</p>
<p><a href="https://sebastien.pittet.org/public/2016/juillet/IntroCloudInfra/IntroCloudInfrastructure_LinuxFoundation.pdf">Certificat - examen de fin de cours</a></p>
<p>Super intéressant ! Après cette introduction, il me reste désormais à approfondir le sujet !</p>
<p>Merci aux deux profs, qui ont parfaitement synthétisé cette matière difficile, parfois en comparant les services offerts chez les key-players (Amazon, Microsoft, Google et d'autres).</p>