mardi 29 septembre 2020

Outil de Remote Desktop, connexion au bureau à distance avec Myrtille

Voici un outil de connexion au bureau à distance avec rien d'autre qu'un browser web, pas d'installation pas de plugin, pas de d'extension, pas de configuration. Donc assez pratique quand on est en déplacement et assez rare pour le noter ici.

Myrtille provides a simple and fast access to remote desktops

En plus c'est un outil développé avec Visual Studio 2017 donc fort intéressant pour les développeurs que nous sommes. Evidemment, il intègre Docker.

Je projet est particulièrement bien documenté ce qui permet une prise en mains rapide. Il y a module de Trace (Log4Net). Il y a même un installeur Setup MSI pour Windows. C'est donc un projet complet de qualité.

Il faut installer Myrtille sur votre Serveur pour pouvoir l'utiliser. Il y a tout ce qu'il faut est sur le site du GitHub.

cedrozor/myrtille

Voilà, nous avons un exemplaire d'outil de connexion au bureau à distance, une application Web accessible par un browser web sans autre installation à effectuer sur votre machine hôte.

Pour aller plus loin, voici une rapide découverte des sources du projet dans le blog C# .NET :

C#.NET Blog - Myrtille


lundi 28 septembre 2020

Connaissez-vous la stack, la pile logicielle, Grafana, Prometheus, Loki, Jaeger, Cortex, and Graphite ?

Alors voilà un sujet des plus complexes que l'on va démystifier pour tenter de vous, de nous expliquer ce qu'est cette stack logicielle ; Grafana, Prometheus, Loki, Jaeger, Cortex, and Graphite. Alors si l'on connait Grafana et Prometheus mais que sont les autres ? Oui en même temps vous allez me dire que l'on ne connait pas si bien Prometheus.

Pour être franc, celui que l'on connait c'est Grafana. Alors allons y, c'est quoi Prometheus ? Au premier abord on dirait Grafana ... Ce que l'on sait, c'est que Grafana est un fork de Kibana. Kibana est une extension d'affichage pour les données issues de la Suite Elastic search.


Kibana extension de elastic search

Mais alors quand je vois la stack sur la première page de Prometheus :


Stack Prometheus Includes

Je sais pas vous mais moi, je ne me sens pas très bien, un peu envie de vomir ... D'autant que l'on ne retrouve pas, ni Loki, ni Jaeger, ni Cortex, ni Graphite. 

Ce que je peux vous dire, au niveau fonctionnalités c'est que l'on est dans l'univers des connecteurs de données et de leurs afficheurs de données sous forme de graphes.

Ce qui me surprend tout de même c'est que le slogan de Prometheus est un peu identique à celui de Grafana à savoir : Power your metrics and alerting with a leading open-source monitoring solution.

Leading Open Source Monitoring Solution ... Donc Prometheus est une source de données pour Grafana.

Prometheus source de données pour Grafana

Mais on pourrait dire Grafana extension de visualisation des données pour Prometheus.

Poursuivons notre recherche sur cette stack ... avec Jaeger


Monitor and troubleshoot transactions in complex distributed systems

Jaeger permet d'instrumenter votre application. Quant à Loki on dirait d'après le sigle est absorbé par Grafana.

Grafana Labs - Jaeger data source
Grafana nous explique comment ajouter Jaeger comme "data source" afin de pouvoir requêter dans les traces de votre application.

Cortex est absorbé !

Graphite : Grafana vs Graphite

Grafana vs Graphite

Conclusion

Dans cet univers des connecteurs aux données et des afficheurs graphiques pour afficher de beaux tableaux de bord, Grafana se paye la part du lion et le luxe de faire croire qu'il intègre tout le monde alors qu'il est plutôt en train de les absorber en commençant par les connecteurs dont il multiplie le nombre quasiment à l'infini. Et les afficheurs graphiques qu'il supprime en les absorbant.

lundi 21 septembre 2020

Pour les développeurs, j'aborde l'outil NDepend d'analyse statique de vos codes source mais pas seulement.

Pour le développeur expérimenté que je suis, je me dois de vous présenter cet outil NDepend qui parait être une solution intégrée pour Analyser - Analyse des métriques du code - mais également pour déboguer votre code.

Lorsque vous avez à manager des projets importants en termes de lignes de codes en termes d'architecture, vous vous devez d'utiliser un outil d'analyse statique de code comme NDepend qui va vous permettre d'avoir une bien meilleur vision, un vision plus large de plus synthétique de votre projet.

NDepend
NDepend - Managez plus facilement vos projets d'envergure

Au moment de l'installation de l'outil, vous ouvrez votre Visual Studio, vous créez un projet NDepend juste à côté, il se met alors à analyser votre code et à créer des rapports d'analyse de votre code source. Les règles que vous pouvez appliquer sont classées de différents types :

  • Code Quality
  • Object Oriented Design
  • Architecture
  • Dead Code : code mort, code non utilisé
  • Naming convention : convention de nommage

NDepdend vous fournit des outils pour naviguer à travers le code au sein de projet dont l'architecture est complexe. NDepend vous permet donc de réorganiser des projets complexes et de maintenir la qualité de vos projet actuels.

Il s'agit donc d'un outil d'analyse statique de code dont on connait un autre représentant SonarQube, voici donc un article pour aller plus loin :

NDepend vs SonarQube : Pourquoi ne pas les intégrer ensemble ?
Forcément les choses se compliquent encore un peu, puisque l'on est dans une démarche d'intégration continue grâce à la Stack GitHub, AppVeyor, NDepend, NGrok, SonarQube.

Voici comment intégrer un outil comme NDepend dans une démarche de "conitinus delivry" (de livraison continue) :

NDepend Sonarqube
Continus Delivry 

Cet article est mal traduit en français mais il est très complet dans une démarche DevOps de scripting de la totalité des étapes. Dans cet article il y a une multitude d'outils utilisés, Resharper JetBrains, AppVeyor, Bamboo, GitLab

Donc le moyen de procéder avec ces stacks devops de développement, c'est de faire une matrice 3D, fonctionnalités recherchées, outils correspondants, compétences dans l'équipe. Ainsi cette matrice vous permettra d'utiliser une pile adéquate.

vendredi 18 septembre 2020

Grâce à Kuzzle, Qwant publie les données des objets connectés, alors c'est quoi Kuzzle ?

On n'arrête pas le progrès ! Maintenant nous savons presque tous que Qwant est un moteur de recherche français possible pour browser l'Internet. Peu connu, mais en développement constant, il tend à se faire connaitre car son créneau c'est le respect des données personnelles.

Le Business modèle de Qwant ce n'est pas de vous "tauper" votre email, votre age, votre genre pour vous spammer de publicités. Mais alors Kuzzle c'est quoi par rapport à Qwant ?

Kuzzle - Open source backend for Iot and Mobile apps 

Je ne sais pas si vous êtes comme moi, mais franchement je supporte assez peu l'idée d'essayer un truc dont je ne sais même pas à quoi il sert ! Donc le bouton "Try Kuzzle" ce n'est pas encore pour moi.

Et comme je suis un peu timide également, le bouton "Request a demo" franchement, je n'ai pas envie de me retrouver face à un commercial qui va essayer de me convaincre que son truc c'est le truc qu'il me faut ! Alors que ce truc, je ne sais toujours pas ce que c'est.

Bref, je trouve ce marketing bien agressif alors que je souhaite simplement savoir à quoi peut bien servir Kuzzle ? Je cherche donc un autre bouton, alors essayons "Use Cases" pour découvrir ce que les utilisateurs peuvent bien faire de ce truc Kuzzle.

A quoi sert Kuzzle dans Qwant ?
Kuzzle in action - Case Studies

Avec toujours les boutons Try ou Request et franchement je n'ai pas avancé. Mais je vois sur la droite : "Smart Cities (Qwant IoT)" on dirait bien que c'est cela qui m'intéresse, essayons.

Là on me dit, en anglais :

Qwant opted to use Kuzzle IoT backend solution to collect real-time data from connected devices. When users search for up-to-date information available from IoT and open data sources on Qwant search engine, the results will be generated by the Kuzzle backend.

Je vous passe la traduction, vous avez compris.

Kuzzle et Qwant
Kuzzle - Use Cases - Smart Cities (Qwant IoT)

Il s'agit donc de pouvoir donner à l'utilisateur qui le recherche sur Qwant, des informations sur la qualité de l'air en Californie par exemple grâce à des capteurs dispersés en Californie.

En très gros Kuzzle est une sorte de Cloud pour l'open data où Kuzzle est capable de traiter des quantités massives de données ... Et de les monitorer pour les remonter à l'utilisateur.

Nous avons des capteurs quelques part qui s'occupent de mesurer la qualité de l'air. On peut imaginer qu'ils sont en réseau (IoT LoRa, Sigfox, ...) que Kuzzle se connecte à ce réseau pour Cloudifier ses données afin de présenter sous forme d'APIs qui pourront être utilisées par Qwant.

Il y a une interface de monitoring de données dans tout cela dont voici la présentation :

Kuzzle - Cluster http/rest/websocket/socket/io
Kuzzle - Cluster http/rest/websocket/socket/io

Il y a un module d'analyse statistiques. Et sinon la commande pour installer Kuzzle est la suivante :

$ bash -c "$(curl https://get.kuzzle.io/)"

Ça n'a pas l'air si sorcier ;)

For Developers - Getting Started
Sinon, j'aurais bien une dernière question à laquelle j'aimerais trouver une réponse ... vous vous en doutez ... Mais pourquoi ce nom ? Et les deux z, c'est pour jouer au scrabble ?

Kuzzle - Docs
Peut-être la page où commencer, Kuzzle aspire à se développer en communauté open source tout est là pour bien commencer. C'est plein de bonnes pratiques et d'exemples à suivre.

Bon, pour l'instant je n'ai pas un besoin immédiat de Kuzzle mais je prends note que cette solution existe. Ce qui m'avait attiré pour effectuer cette recherche c'est IoT + Qwant et donc la mise en place de Kuzzle c'est Qwant qui s'en charge.

Une petite étude marketing rapide Trends de l'intérêt du terme kuzzle :

C'est quoi Kuzzle ?

L'intérêt du terme kuzzle, se trouve principalement en Languedoc Roussillon.

Voilà, nous venons de découvrir rapidement ce que fait Kuzzle dans l'univers de l'IoT par l'intermédiaire de Qwant !

mardi 15 septembre 2020

Corriger l'erreur AdSense - Risque de perte de revenus liés au fichier ads.txt

Pour éviter une perte importante de vos revenus, vous pensez que c'est important de corriger cette erreur et vous avez raison. J'ai ce message dans Google Adsense depuis des mois et cela me gène de rester ainsi. J'ai tenté maintes fois de cliquer sur le bouton "Corriger maintenant" sans résultat probant.

Donc je vais prendre le problème à bras le corps et vous trouver la solution. Lorsque j'accède à l'url :

https://www.mondomaine.com/ads.txt

Du site qui m'appartient, je vois bien le contenu du fichier ads.txt avec les bons numéros ! Alors je ne comprends pas pourquoi AdSense me renvoi encore ce message :

Risque de perte de revenus - Vous devez corriger les problèmes liées au fichier ads.txt pour éviter une importante baisse de vos revenus.

Corriger l'erreur AdSense - Risque de perte de revenus liés au fichier ads.txt
Corriger l'erreur AdSense - Risque de perte de revenus liés au fichier ads.txt

Si vous êtes comme moi, acharné sur cette erreur pensant qu'il n'est pas normal de gagner qu'un centime par jour avec AdSense et que cette erreur en est peut être la source comme le laisse entendre ce message. Vous allez lire tout un tas de littérature sur ce sujet sur Internet sans jamais trouver la bonne solution.

Je vous précise mon contexte, c'est que j'utilise Blogger et que j'ai mon domaine que j’appellerais mondomaine.com. Pour ajouter à la difficulté vous avez remarqué en ce moment Blogger veut changer de peau mais ce n'est pas encore gagné.

Notamment au niveau de l'adresse du blog, configurée ainsi dans l'ancienne interface :

Fig1 - Corriger l'erreur AdSense - Risque de perte de revenus liés au fichier ads.txt

Notez que cela n'est pas évident évident ! Mais cela ne suffit pas non plus ! A priori l'erreur porte sur mondomaine.com et non sur www.mondomaine.com donc je lis des dizaines de pages sur comment rediriger une requête mondomaine.com vers www.mondomaine.com pour tous les types de serveur Internet, Apache, IIS et j'en passe ...

Mais cela ne suffit pas, je me tape le guide d'insertion du fichier ads.txt mais cela ne suffit pas ...

Quand, je trouve la bonne réponse dans la page suivante :

Aide Blogger - Définir un domaine personnalisé

L'étape 3 est facultative mais je vais quand même la tenter ...

Corriger l'erreur AdSense - Risque de perte de revenus liés au fichier ads.txt

Mon fournisseur d'hébergement et de nom de domaine est NAMEBAY mais je pense que vous trouverez l'équivalent chez tous les hébergeurs. Donc vous allez chez votre hébergeur de nom de domaine.

Après ça, il ne vous reste plus qu'à résoudre une problématique : l'Aide de Blogger parle de configurer une redirection vers un "domaine nu" encore une énigme ... Cette énigme peut être résolue en remarquant que dans la configuration de votre site Blogger, il y un lien vers :

téléchargez le fichier de paramètres DNS

Corriger l'erreur AdSense - Risque de perte de revenus liés au fichier ads.txt

Ce que je fais pour vous livrer son contenu :

@ 3600 IN A 216.239.32.21
@ 3600 IN A 216.239.34.21
@ 3600 IN A 216.239.36.21
@ 3600 IN A 216.239.38.21

Donc on peut y voir qu'un "domaine nu" c'est simplement le caractère "@" ...

Je vais chez NAMEBAY configurer tout ça :

Rediriger mondomaine.com vers www.mondomaine.com

Maintenant quand j'accède à l'url :

https://mondomaine.com

Je suis bien redirigé vers :

https://www.mondomaine.com

En quand j'accède à l'url :

https://mondomaine.com/ads.txt

Je vois bien le contenue du fichier ads.txt de la forme :

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

où pub-0000000000000000 correspond à votre référence éditeur

Il faut attendre, un certain temps que les dns se mettent à jour que le site AdSense ce rende compte que le fichier ads.txt est bien là derrière "mondomaine.com" et le tour est joué :

l'Erreur AdSense - Risque de perte de revenus liés au fichier ads.txt est corrigée !

Voilà, nous venons de corriger l'erreur AdSense : Risque de perte de revenus - Vous devez corriger les problèmes liés au fichier ads.txt pour éviter une importante baisse de vos revenus. Mais ce n'était pas de la tarte.

Elle est pas belle la vie !

Mise à jour en février 2021

Cette histoire est toujours d'une complexité sans nom ! La preuve, j'ai créé récemment un nouveau nom de domaine que je cherche à coller à un site blogger et je retrouve le même problème.

Vous n'êtes pas sans avoir remarqué que l'interface Blogger a été modifiée avec pas mal d'améliorations dans le style dans l'ergonomie. 

Dans le outils pour webmaster les choses ont évoluées la Google Search Console prend plus de place entre AdSense et Analytics

Comment valider une propriété de site dans le Search Console

Dans Blogger -> Paramètres ->Général

Nous n'avons plus la "Fig1 - Corriger l'erreur AdSense". Nous avons maintenant :

Erreur - Risque de perte de revenus liés au fichier ads.txt

La question est maintenant où se trouve la ligne avec "google-site-verification" que l'on pouvait trouver dans "Fig1 - Corriger l'erreur AdSense" ? Vous savez sans doute également que pour suivre les erreurs, les performances de votre site Google privilégie maintenant la Google Search Console.

Vous "Ajoutez la propriété" de votre site dans la Google Search Console et vous faites :

Paramètres -> Validation de la propriété

Corriger l'erreur AdSense - google-site-verification

Ou se trouve la clef googlehosted.com ?

Mon souci, c'est l'enregistrement DNS suivant :

xxxxxxxxxxx CNAM gv-xxxxxxxxxx.dv.googlehosted.com

Que je ne retrouve nul part et donc je ne sais pas vérifier si c'est le bon, je reste avec la doc google sur ce sujet :


"Ces informations varient en fonction de chaque personne et sont propres à votre blog et à votre compte Google." 

Ok mais on les trouve où ?

Solution

On a appris à faire plein de choses, à jouer avec un nom de domaine personnalisé, il y a également le problème de l'https qui se règle très bien dans blogger.

Il faut vérifier que le fichier ads.txt est accessible depuis 

https://votrenomdedomaine.com/ads.txt

et

https://www.votrenomdedomaine.com/ads.txt

Si ce n'est pas le cas, cochez la case Redirection du domaine :

Blogger - Redirection du domaine

Franchement... j'ai encore le problème sur ce nouveau site et je cherche encore je suis dègue dègue dègue !

Il me semble que LA solution consisterait à recommencer l'indexation du site par AdSense car le souvi se trouve dans googlehosted.com qui a disparue dans le nouvelle interface blogger ... Mais je ne me résigne pas totalement à tout supprimer, je vais attendre le voir si j'ai quand même des revenus sur ce site...

Ils le disent lorsque l'on fait des manipulations de DNS chez sont hébergeur, on doit attendre "un peu" de quelques minutes à quelques heures... Et le problème à disparu ... 



dimanche 30 août 2020

Comment s'y retrouver dans le code de Grafana

Sans parler de devenir un développeur de la communauté Open Sources Grafana, non je souhaite simplement faire une plongée dans le code source pour avoir une meilleure vue cette plateforme et de son développement.

Communauté Open Source Grafana sur GitHub


Moi la première chose que j'ai découverte avec stupéfaction c'est que Grafana est écris en langage Go !  Je l'avoue je suis en admiration devant cette communauté. Car je suis un utilisateur de AdSense et de tous ces graphiques parce que je suis un développeur curieux j'ai toujours poursuivis un projet de "dahboard" afficher de superbes graphiques à partir des données.

Matlab est sans doute le premier outil avec lequel j'ai joué pour afficher des graphiques. Mais avec Grafana on atteint un sommet mais alors qu'elle est l'organisation, la structure des codes source de cette application.

Sinon, il y a bien sûr Excel qu'il ne faut pas dénigrer car il est fort efficace pour tout tas de graphiques c'est une première approche un peu simpliste mais fun pour découvrir ce métier que j'appelle data-analyste.

En même temps c'est bine joli l'open source et Grafana en est un exemple parfait les sources sont publiques certes ! Mais alors pour installer une plateforme ... accrochez vous ! Il faut clairement être spécialiste pour installer un container Docker dans Windows 10 oui c'est l'OS que j'affectionne, bref, ils vous propose moyennant finances de vous instancier une plateforme dans leur cloud.

Si vous installez la plateforme de base, certes vous pourrez faire des choses mais les plugins seront payants. Voilà le tour est joué vous êtes ficelé. 

Grafana Create an account

Vous voyez que vous ne pourrez faire un essai gratuit mais que vous êtes obligé d'entrer vos informations de facturation car l'objectif est de vous facturer l'utilisation de cet outil fantastique.

Mais qui a dit que l'opensource c'est gratuit, certainement pas moi. Et quand je vois le travaille produit par la communauté, je me dis qu'ils font bien de procéder ainsi.

Les différents types de codes

Grâce à Github, je vois :

Grafana - TS 57 % - JS 5,4 % - Go 26 % 

La constatation que Grafana est en Go !

En langage Go

C'est le répertoire pkg

Grafana - Langage Go

Il y a du monde et de très bonnes explications dans le fichier README.md. Il s'agit du Backend de Grafana. 

Et bien oui c'est l'avantage de l'opensource on sait comment c'est fait. Il faut que la documentation soit suffisante pour qu'un développeur par lui même puisse étudier le code et venir renforce l'équipe. Donc la documentation est de qualité.

En langage TypeScript

C'est la publique app autrement dit l'application front en Angular.

Grafana - Langage TypeScript applcation Angular

Ce sont les deux principaux langages des fonctionnalités de Grafana. A partir de là il y a tout ce qu'il faut comme documentation d'installation pour installer une machine de développement et rejoindre la communauté. Ils sont déjà plus de 1200 !

Ils font même de la politique, oui il y a un document indiquant comment doit se passer l'intégration d'une nouvelle ressource dans la team et les votes associés dans un document de GOVERNANCE.md (Gouvernance).

Set up your development environment

Avec un répertoire devenv : une aide à l'installation de votre environnement de développement qui commence par l'installation de Docker

Des scripts d'installation.

Grafana en action

Voici les métrics autour de Grafana, Wikimedia metrics :

Grafana Wikimedia Metrics

Voilà, Grafana est un très bon exemple à suivre en matière de communauté open source, ils sont en plein succès alors il faut les observer puisque les publications sont nombreuses et tenter de les suivre mais là aussi ils sont nombreux.

lundi 24 août 2020

C'est quoi Grafana ?

C'est incroyable le nombre d'outils dans le Développement Logiciel et le DevOps ! On parle alors de stack quand les uns s'appuient sur les autres, comme dans un empilement. Ici je découvre la stack Grafana, Jenkins, Kubernets, Cosmos. A quoi sert Grafana et qu'elle est la place de Grafana dans tout ça ?

Grafana Labs - Dashboard anything. Observe everything.

Grafana est une communauté de développeurs énorme, aujourd'hui il y a 1 213 contributeurs.

Grafana on Github
Grafana on Github

J'installe rapidement sur mon Windows l'exécutable serveur et je lance mon browser à l'adresse localhost:3000 ça marche tout seul.

Gafana - Install on Windows

Mais Grafana n'est pas tout seul c'est un éco-système qui intègre par exemple Graphite :

Utilisation de "Graphite" dans Grafana

Voici comme Grafana s'intègre dans l'Azure de Microsoft pour la création de Pipeline :

Microsoft - Pipeline CI/CD pour les charges de travail basées sur les conteneurs

Place de Grafana dans la Stack d'outils DevOps
Place de Grafana dans la Stack d'outils DevOps

Dans le cadre de cette Architecture DevOps, Grafana permet de visualiser les alertes et de mieux comprendre les mesures.

On y voit à l'oeuvre la stack : Visual Studio Code, GitHub, Jenkins, Kubernetes, Azure, Azure Monitor, Grafana. Moi je pourrais dire à peu prêt à quoi servent toutes ses briques mais vous avouerez que ça fait une belle pile !


Je poursuis ma découverte par les fundamentals de Grafana. L'angle de l'architecture devops que j'ai choisi pour la découverte de Grafana n'est pas le plus facile mais on a là la meilleure utilisation de Grafana intégré dans une stack DevOps :

Grafana fundatmentals

Pour les prérequis, il me faut Docker, Docker Compose et Git, rien de moins ...
Pour Docker, il faut Hyper-V.

Install de Hyper-V pour Windows

En cliquant sur "Add features".

The processor does not have required virtualization capabilities

Bref, pour moi ça va s'arrêter là ! Bon je trouve une VM avec Hyper-V capabilities, je lance l'installe de Docker ...


Stack Grafana - C'est pas gagné !

Bon, bas pour moi, malheureusement ça s'arrête là ... Grafana !

Autres outils du même genre ... c'est incroyable de voir l'émergence de tant d'outils. Si je trouve un article sur Grafana on va me parler de :

Prometheus

Kibana

Grafana Open Source

Si c'est OpenSource, alors il doit y avoir des sources sans doute sous github, voici donc :

GitHub - Grafana Labs

Là on est dans l'antre de la communauté Grafana ...

Grafana Create Free Cloud Account

Et on peut aller créer ses propres tableaux de bord en créant un compte au sein de Grafana Cloud :

Création d'un Tableau de Bord avec Grafana
Création d'un Tableau de Bord avec Grafana

C'est magnifique cette application écrite en langage Go et Angular.

Un mot de l'équipe Grafana, toujours sur GitHub :

Grafana - Team Members

Le créateur c'est Torkel Ödegaard qui à démarré Grafana en 2014 en partant de Kibana et en faisant un "fork" (une branche depuis le code source).

Mais bon ça ressemble à notre solution qui est toute fois beaucoup plus simple ... et la notre est en C# .NET avec ASP.NET Core Framework, c'est un peu mieux que du Go !

GitHub - DataMonitoring - Universal Dashboard

CQFD !

vendredi 21 août 2020

Un tour rapide de la Base de Données MongoDB

Cherchons à savoir ce que peut nous apporter MongoDB, alors que l'on connait déjà SQL Server, Oracle, MySQL, PostgreSql. Qu'apporterait de plus MongoDB ?


Je suis interpellé par l'article suivant :

mongoDB The database for modern applications

C'est curieux ces modes marketing ! Aujourd'hui, si vous désirez être "trendy" que je traduirai par être dans la tendance, il faut être "moderne" et là, vous pouvez jeter tous vos concurrents à la benne à ordures ...

MongoDB est une base de données sous forme de documents au format JSon. Alors là, on a une différence notable par rapport aux autres systèmes de base de données, je dirais une différence disruptive ;)

Le format JSON étant parfaitement ouvert cela signifie que vos datas vont pouvoir être traitées par MongoDB comme par d'autres outils classiques qui travaillent au format JSon et ça, c'est une réelle différence d'avec les autres solutions de bases de données que l'on pourrait dire fermée.

Alors existe t-il d'autres bases de données sous forme documents ? Et bien nous arrivons directement chez AWS (Amazon Web Service) avec une compatibilité MongoDB :

AWS - Qu'est ce qu'une base de données de document ?

Vous comprenez maintenant pourquoi vous ne cesser d'entendre parler de plus en plus de MongoDB. Les bases de données document existent depuis toujours mais aujourd'hui nous avons le format JSon qui est adopté par l'ensemble des acteurs et poussé par Amazon vous imaginez le plaisir qu'ils ont à tailler des croupières aux autres acteurs du marché.

Pour ceux qui souhaite utiliser mongoDB sous windows :

MogoDB - Install On Windows

Donc, si vous optez pour le format document avec vos BD, vous allez très certainement vous faire avaler par AWS et son Cloud.

Pour aller plus loin sur le classement des différents types de Base de données, la découverte des avantages et des inconvénients, je vous propose un article aussi complet que possible :

cartelis - Choisir le bon type de base de données pour son projet d’entreprise

Voilà, avec cela, nous avons fait le tour de mongoDB, ce n'est ni nouveau, ni une révolution, c'est simplement une solution développée par des gens qui ne voulaient ni de MS SQL, ni d'Oracle ni d'une autre solution existante mais qui souhaitait développer leur propre solution.

lundi 17 août 2020

C'est quoi l'outil collaboratif Umbreon

Vous savez que j'affectionne particulièrement les applications collaboratives alors aujourd’hui il s'agit de découvrir Umbreon une plateforme collaborative qui permet de lancer une rétrospective en mode agile afin de consulter, de rapprocher vos équipes.

La période est propice à l’émergence de plateforme permettant le travail à distance et c'est une très bonne chose. Voici une plateforme permettant l'animation de réunions, de brainstorming, de rétrospectives,  de votes à distance, et plus encore en mode Agile.

Umbreon - Plateforme collaborative pour animer vos équipes en modes Agile

Le site de présentation est très pro en mode responsive vous allez devoir vous inscrire pour tenter un essai gratuit. Un petit wizard rapide vous accueil à votre inscription sur la plateforme. Et vous pouvez créer votre première activité.

Pour ma part je choisie le "scrum master poker" :


Ajouter une légende

Je créé une story voyage à New York en expliquant qu'il s'agit d'estimer s'il on croit que le voyage va pourvoir se dérouler dans de bonnes conditions.

Je trouve un lien, pour inviter des anonymes, à venir voter à ma story "Voyage à New York". Je peux inviter à voter ... (maj le lien a disparu, c'est bien normal avec le temps mais vous pourrez le faire avec votre compte).

C'est ludique graphique, ça manque peut être de "title" pour expliquer ce que l'on peut faire en cliquant sur les boutons au sein d'une activité. Mais de l'aide est là et cela permet de comprendre comment les concepts Agiles ont été implémentés au sein de la plateforme. C'est très intéressant.

Je comprends que je ne peux voir les votes qu'une fois que tous les participants ont estimé la story ...

C'est plein d'activités différentes à tester ...

Je vous propose de découvrir sur le site Umbreon :

Rétrospective - Retour à l'école
C'est un cas d'utilisation complet qui permet de comprendre les possibilités concernant cette activité de Rétrospective avec vos équipes en mode collaboratif.

N'hésitez pas à laisser votre commentaire.

vendredi 7 août 2020

TeamViewer - Comment accéder à distance en remote desktop avec Team Viewer

Pour des raisons de sécurité vous devez vous interdire de vous connecter aux ordinateurs distants en utilisant le simple RDP de windows par défaut car il est sujet à de nombreuses attaques.

En tous les cas, voici un post très bien fait et complet sur la sécurisation du RDP.

deltasight - Sécuriser un serveur RDP sur le port 3389

Alors TeamViewer est prêt à vous aider ... Il suffit de l'installer sur l'ordi source et sur l'ordi cible de relever l'ID et le Mot de passe de l'ordi cible et de se connecter à partir de l'ordi source.

Vous obtenez l'écran suivant :

Team Viewer - Se connecter à distance

Seulement, je ne pige pas encore pourquoi mais avec une Machine Virtuelle Azure, il me faut être connecté sur la machine virtuelle pour que TeamViewer me propose de me connecter. Ce qui ne m'arrange pas car je souhaitai pourvoir invalider la connexion RDP ... J'espère que vous me suivez ce n'est pas simple.

Si je me déconnecte de la Machine Virtuelle, je clique simplement sur la fermeture de la fenêtre de Remote Desktop Connection, alors que la machine est encore en fonctionnement et que TeamViewer s'exécute au sein de cette machine et bien je ne peut pas me connecter ...

TeamViewer - VM Azure connexion impossible

Je ne comprends pas encore pourquoi ...

Je viens d'installer également Team Viewer sur une autre machine à laquelle je souhaite accéder et je remarque une case qui m'oblige à créer un compte Team Viewer, je m'exécute.

Team Viewer - Assign to account
 
Du coup j'accède à la console de gestion de mon compte d'utilisateur :

Team Viewer - Console de gestion
Team Viewer - Console de gestion

Je vois mes deux machine celle sur laquelle je travaille et celle à laquelle je souhaite me connecter.

A partir de là, j'ai pu à peu prêt tout faire sauf que j'ai toujours le même problème, il me faut être déjà connecté en RDP à la machine pour accéder avec TeamViewer ce qui n'a pas de sens.

Par hazard en cliquant à gauche à droite je découvre le bouton : "Contrôle à distance en utilisant le mot de passe" :

Team Viewer - Contrôle à distance en utilisant le mot de passe

Et là ça y est pas besoin de mettre connecté en RDP. Je dirais que c'est l'authentification windows qui n'accepte pas un utilisateur avec une connexion sans mot de passe. Donc quand vous êtes coeecté en RDP vous avez entré votre mot de passe vous pouvez alors vous connecter avec Team Viewer.

Sinon il faut utiliser la Connexion à distance en utilisant le mot de passe. Il y a vraiment plein d'autres possibilité de collaborer avec Team Viewer.

CQFD !








mercredi 5 août 2020

C'est quoi le langage Go ?

Je connaissais le jeu de Go et j'adore c'est un jeu que je préfère aux échec car comme le dit Lao-tseu aux échecs vous ne pouvez être que gagnant ou perdant alors qu'au Go c'est bien plus subtile ... Il était important pour moi, en tant que programmeur, d'évoquer ici le Langage Go et d'en avoir une connaissance minimum.

Mais alors le langage Go ? C'est quoi ! Je travaille dans la programmation depuis toujours alors un nouveau langage c'est intéressant. Mais j'ai l'impression qu'aujourd'hui les grands acteurs du digital créent un langage à chaque fois qu'ils ont une problématique à résoudre. C'est un peu le sens de la vidéo que j'ai écouté sur le site et le problème qu'ils ont eu avec le C++.

Wikipédia - langage Go

C'est un langage créé par Google pour de la programmation système. Avec le Go Langage, la gestion de la mémoire est assurée par un ramasse-miettes ...

Exemple de langage Go dans GitHub avec la communauté open source Grafana, c'est 26% de Go Langage (Go Lang) :

https://github.com/grafana/grafana/search?l=go

Et le site officiel du Langage Go :

Site Officiel du langage Go

Pour les novices que nous sommes, une première page à lire attentivement sur le Langage de programmation en langage Go :

Go Effective Go
Et une remarque amusante, il me semble, sur les semicolons "{". Ils ont trouvé le moyen de vous obliger à la mettre en bout de ligne et non au commencement d'une nouvelle ligne. Sempiternelle guéguerre entre ceux qui écrivent "façon java"

if () {
}

et ceux qui écrivent "façon C"

if ()
{
}

En Go la "façon C" n'est pas autorisée, Amusant ! Non ?

En cherchant un peu plus, je trouve que le Go s'appelait Golang ... c'est Disney qui possède le nom de domaine go.com, Google n'a pas eu le choix que de changer de nom de domaine et de choisir un autre nom pour son langage le Go Lang.

Le langage Go est open source : golang/go

Et maintenant, j'aimerais trouver un IDE voir un compilateur pour le langage Go ...

Je trouve un éditeur pour le langage Go chez JetBrains : GoLand

JetBrains - IDE GoLand pour le langage Go
JetBrains - IDE GoLand pour le langage Go

Quelques Info sur cet IDE : GoLand documentation
Là j'ai l'impression que vous pouvez démarrer la programmation en Go.

Un petit conseil de curieux, chez JetBrains, il n'y a pas que le langage Go, ce site JetBrains est une mine d'or pour tous les outils de développement ...

Je trouve encore cette page sur le langage Go :

Je suis un dev - Comprendre le Go en 5 minutes
L'essentiel sur la genèse du langage Go, ses créateurs, leurs objectifs.

golandbot.com - Golang tutorials series
Quelques exemples et des tutoriels, ont est à la racine du Golang

https://youtu.be/cN_DpYBzKso
Une conférence d'un des trois créateurs Rob Pike sur le sujet : Concurrence n'est pas Parallélisme et donc la cause de la naissance du langage Go.

http://www.usingcsp.com/cspbook.pdf
Je mettrais ici aussi un lien vers le livre de Tony Hoare - Communicating Sequential Processes qui est certainement la raison pour laquelle le Go à vu  le jour. Dans une conf Rob Pike nous intime l'ordre,  si on ne l'a pas encore lu de cesser tout le reste et de rentrer chez soi le lire alors ...

Et puis l'avenir du Langage Go :
The Go Blog - Toward Go 2

Bon, ben voilà, je ne connaissais pas ce langage Go, je ne savais même pas que Docker est écrit en Go  ... comme quoi, on apprend toujours.

mardi 4 août 2020

C'est quoi Azure DevOps ?

Je connais Azure, le cloud de Microsoft. DevOps c'est un ensemble de techniques de programmation donc les deux ensembles cela doit vouloir dire : Techniques de programmation dans l'Azure ... ?

Microsoft Azure DevOps
Planifiez plus intelligemment, collaborez mieux et livrez plus rapidement avec un ensemble de services de développement modernes.

C'est quoi Azure DevOps ?
C'est quoi Azure DevOps ?

C'est parce que je trouve ce terme dans la lecture d'une annonce pour l'emploi et qu'il m'interpelle car je ne suis pas certain de savoir parler d'Azure DevOps que je creuse pour trouver ce que c'est plus précisément ...

Finalement on me propose de démarrer rapidement en me loguant, je me logue ... et je tombe sur mon bon vieux Team Foundation Server, le bon vieux TFS d’antant qui comme toute chose se retrouve maintenant dans l'Azure et qui s'est appelé un moment Azure Team ... Donc c'est tout simplement le Gestionnaire de Codes Sources de Microsoft ... (comme github ou gitlab).

Si vous faites du développement logiciel vous savez ce qu'est un gestionnaire de code source un outil qui vous permet de développer vos codes en équipes de n'avoir qu'une source dans laquelle tous les contributeurs viennent commiter (ranger, sauver) leurs codes.

Là, je vous montre comment utiliser GitHub dans Visual Studio.

Bref, rien de très nouveau sous cette nouvelle appellation ...

Azure DevOps c'est ce bon vieux TFS à la mode Azure

Azure DevOps c'est donc Team Foundation Server dans le Cloud avec un peu de gestion de projet façon Agile autour ..

Et pour aller plus loin, je trouve ceci :

Microsoft - Concevoir un pipeline CI/CD à l’aide d’Azure DevOps

Avec un joli graphique pour expliciter des différentes étapes du développement d'un projet :

Processus DevOps au sein de l'Azure Cloud de Microsoft

C'est plein de bon trucs de DevOps à la sauce Microsoft. Avec pour moi la brique la moins connue c'est certainement Azure Application Insights l'outil d'optimisation de performances pour les applications Web à creuser absolument.

Azure Application Insights

Je détaille cette brique qui me semble être la plus récente, la moins connue. Si vous installez un petit package d'instrumentation (SDK) Azure Application Insights instrumentalise votre application pour la superviser. Des données de télémétries ont alors dirigées vers un ressource Azure Application Insights.

Azure DevOps - Application Insigths
Azure DevOps - Application Insigths

Les Insights sont "Des conseils d'optim" afin d'optimiser le fonctionnement de vos applications.

Voilà, nous avons maintenant une  meilleure vision de ce qu'est l'Azure DevOps sans avoir à lire les dizaines et les dizaines de pages de la documentation Microsoft for dummies.

mercredi 15 juillet 2020

Azure Cloud - Quel est véritablement le prix de cette solution ?

J'utilise maintenant Azure Cloud depuis quelques mois. J'utilise une machine en ligne pour développer cela me permet d'avoir ma machine "Administrative" à la maison et ma machine de développement en ligne à laquelle je me connecte pour développer.

C'est une formule tout à fait satisfaisante, me machine de développement me coûte environ 100€ / mois ce que je considère comme étant un prix raisonnable. Si j'achète une machine physique elle me coûtera environ 1500 € et sera obsolète dans deux ans.

Seulement ce matin Azure me propose une recommandation gratuite : une économie de 558 $ / an ...

Azure Cloud - Recommandations cost management
Azure Cloud - Recommandations cost management

En cliquant sur Coût -> Recommandations Azure me préconise de faire une réservation ...

Tableau de bord > Machines Virtuelles > Réservations

Ce n'est pas parfaitement simple, ce que je comprends c'est que si je réserve la machine que je paye actuellement à l'utilisation, si je la réserve pendant trois ans je vais faire une économie. Mais je ne suis pas certain de ce que je viens de comprendre à quoi cela tient-il cette incompréhension ? Je crois que c'est parce qu'Azure me présente de nouveaux concepts commerciaux.


Tableau de bord > Machines Virtuelles > Réservations

Et franchement je ne sais pas très très bien de ce que je viens de faire ici, je me retrouve avec trois réservations, il y en a une que j'ai réussi à supprimer et une autre qui n'est utilisé qu'à 0% ce qui n'est pas beaucoup vous en conviendrez.

Mise à jour août 2020,  Il me semble que Azure vous connait ;-) disons qu'il observe vos pratiques pour vous faire des préconisations et je viens de transformer mon abonnement de "Paiement à l'utilisation" à "Dev/Test - Paiement à l'utilisation" et il me semble que je fais une économie d'environ 35 %. Mais pourquoi Azure me propose une telle préconisation ...

Donc il faut être vigilant, faire attention, ne pas hésiter à passer du temps pour optimiser son parc dans l'Azure.

Have fun! Even with mask!