mardi 1 octobre 2019

Visual Studio toujours synchroniser avec le document actif

Cette option est cachée tout au fond de Visual Studio alors je prends note car j'en ai besoin chaque fois que j'installe une nouvelle version de Visual Studio sur une nouvelle machine.

Voici les explications de Microsoft sur la Boite de dialogue : Outils -> Options -> Projets et solutions -> Général.

Visual Studio 2019 - Boîte de dialogue Options : Projets et solutions > Général

Mais vous pourrez vous rendre que ces explications ne sont pas si claires pour faire ce que l'on souhaite c'est à  dire : 

Suivre les éléments actifs dans l'explorateur de solutions.

Cela se passe dans le Menu Tools (Options in french) -> Projects and Solutions -> General : Track Active Item in Solution Explorer :

Toujours Synchroniser sur l'élément actif dans l'Explorateur de Solution

Il y a bien le bouton Synchroniser dans la barre de la fenêtre Solution Explorer mais au bout d'un moment, j'en ai assez de devoir cliquer tout le temps dessus !

Visual Studio 2022 - Synchroniser avec le document actif

Cette option se trouve au même endroit avec Visual Studio 2022. Mise à jour de cette fenêtre, dans Visual Studio 2022, voici ce que nous obtenons :

Visual Studio 2022 - Synchroniser l'éditeur avec l'Explorateur de solution
Visual Studio 2022 - Synchroniser l'éditeur avec l'Explorateur de solution

Vous remarquez un point d'interrogation en effet le rendu est assez brouillon pour les options qui sont coincées ici.

J'ai eu beau sauver les settings de mon ancien Visual Studio et tenter de les importer dans le nouveau cette options n'est pas sauvegardée à cet endroit.

Hop this can help!

mardi 21 mai 2019

NUnit vs xUnit parmi les modules de Tests Unitaires lequel choisir ?

Je me rends compte que dans mon Visual Studio 2017 Community, je peux instancier les deux types de projets de Tests Unitaires, je suis surpris d'ailleurs, il n'y rien à installer pas même un package nuget ces projets sont déjà là dans mes Templates de Visual Studio.

Tout est là dans Visual Studio pour créer un projet de Tests :

Visual Studio Community .NET Core Tests Unitaires

D'ailleurs, si je prête attention, je vois en fait trois modules de Tests Unitaires. Je trouve que cela fait un peu beaucoup... Comment faire le choix du module de Tests Unitaires pour mon projet, MSTest, NUnit ou xUnit ?

Si maintenant, je fais la même chose, créer un projet de TestsU avec mon Visual Studio Community 2019 :

Visual Studio Community 2019 - Unit Test Projects

Je peux constater que les projets de Tests Unitaire se sont bien étoffés en deux ans entre 2017 et 2019. Il faut distinguer en .NET Framework et .NET Core.

Et peut être que ma question devrait être plus large : Quel module de Tests Unitaires choisir ? Je me rends rapidement compte que cette question fait rage sur Internet.

DEV - NET Core 2: Why xUnit and not NUnit or MSTest
Ils disent que xUnit est plus récent. Ils étaient avec NUnit et sont passé à xUnit car ils n'aiment pas trop l'écriture des tests avec MSTest mais ils ne connaissaient pas la V2 donc peut-être que la V2 de MSTest est meilleure.

Dans les commentaires de cet article je trouve :

.Net Core Unit Test and Code Coverage with Visual Studio Code - DEV Community
Et l'utilisation de Visual Studio Code avec un NuGet package Coverlet et de SonarQube donc finalement Unit Test en ferait plus que les autres framework de Test.

GitHub - coverlet-coverage/coverlet: Cross platform code coverage for .NET
Cross-plateforme code coverage (couveture de code)

Avec deux extensions pour Visual Studio Code :

.NET Core Test Explorer - Visual Studio Marketplace
Coverage Gutters - Visual Studio Marketplace

Sur le site de Microsoft quelques comparaisons :
MSDN - Test Experience Improvements
La comparaison chiffrée des trois frameworks xUnit, NUnit et MSTest v2, et la découverte d'une nouvelle fonctionnalité de Visual Studio, Real Time Test Discovery

MSDN - Moving to real time test discovery in Test Explorer
Là, je ne sais pas trop ce que l'on me demande, à découvrir.

Je note ce lien pour la route :
The Clean Code Blog - First-Class Tests

Une définition judicieuse de tous les types de tests que l'on peut imaginer :

  • Unit Test,
  • Acceptance Test,
  • Integration Test,
  • System Test,
  • Micro-test,
  • Functional Test 

Et c'est très intéressant. La morale à la fin de l'histoire c'est : Keep your tests clean. Treat them as first-class citizens of the system. Il est vrais que des tests qui ne sont pas remis à jour en fonction de l'évolution des spécifications, tombent en désuétude et c'est la catastrophe, il faut impérativement maintenir vos tests à jour.
 
RAYGUN - Unit testing frameworks in C#: Comparing XUnit, NUnit and Visual Studio
Là je suppose que ce qui est appelé "Visual Studio" ce sont les tests MSTests qui sont appelés : "Built-in Visual Studio testing Tools"

Je vous donne la traduction de la conclusion : En conclusion…
Quels que soient le framework de Tests Unitaires que vous utilisez, vous obtiendrez les bases. Cependant, il y a quelques différences que j'espère avoir soulignées afin que vous puissiez choisir celle qui convient à votre projet. Qu'il s'agisse de la commodité du framework de tests unitaires intégré de Microsoft, du statut solide et éprouvé de NUnit ou de la prise en charge moderne des tests unitaires fournie par XUnit, il y a toujours quelque chose qui vous donnera exactement ce dont vous avez besoin !

On peut dire qu'il ne se mouille pas trop dans un choix définitif ... Grrrrr !

Ma Conclusion sur les frameworks de Tests Unitaires

Je sens que je vais lancer avec les Tests Intégrés de Microsoft : MS Tests puisque la V2 est là et que cela semble prometteur. J'aime explorer les nouveautés.

Et en plus, j'ai trouvé un argument de poids ! Ils sont intégrés, c'est à dire que vous lisez le résultats des Tests Unitaires directement dans Visual Studio tandis avec les deux autres framework de tests vous avez les résultats dans une console ... à méditer encore. A murir sérieusement car les Tests Unitaires sont une affaire sérieuse.

N'hésitez pas à participer à laisser votre commentaire en dessous.

Have great fun with tests!

mercredi 15 mai 2019

Solution Open Source pour remplacer Microsoft Exchange (Outlook)

Quelle solution Open Source existent si l'on ne souhaite pas utiliser la messagerie collaborative Outlook ? D'abord, je pensais que Microsoft Exchange c'était plutôt pour parler du Serveur de mails.

Blog-Syloé - 4 solutions open source pour remplacer Microsoft Exchange
Oui, je souhaitais simplement exercer mon droit de réponse, en profitant peut être un peu du flux généré par cette question d'abord posée sur le Blog Syloé. Je trouve la formulation de cette question particulière  tendancieuse mais il est vrai que ce sont des Linuxien alors il ne sont pas habitués à l'Open Source de Microsoft. Il faut les éduquer ;-)

Outlook est une messagerie collaborative et gratuite sur Internet une licence est nécessaire si et seulement si vous souhaitez installer l'application de poste sur votre Ordinateur. Effectivement si vous souhaitez installer la partie serveur d'emails sur l'un des ordinateur de votre société il vous faudra vous acquitter d'une licence Microsoft Exchange.

La solution proposée en contre partie m'intéresse, on parle de Zimbra

https://www.zimbra.com/email-server-software/
Zimbra server d'emails

Si je regarde un peu ce logiciel en effet ce serait une serveur d'entreprise d'emailling collaboratif donc une véritable alternative à "Microsoft Exchange" mais pas à Outlook que vous pouvez utiliser gratuitement sur Internet.

Mise à jour en septembre 2020, j'ai décidé de ne plus payer ma licence Microsoft Office. Ma licence a expirée au début je pouvais continuer d'utiliser MS Outlook et puis un beau jour plus rien les fonctionnalités étaient toutes invalides ... bref j'ai installé Thunderbird. Ça fonctionne super bien et cela remplace avantageusement Oulook pour poste.

Pendant que j'y suis, j'ai installé Libre Office qui fonctionne pas mal du tout non plus. Je n'aurais pas dit cela, il y a une dizaine d'années.

mardi 9 avril 2019

Intelligence Artificielle en Langage Pyhton

Je cherche les meilleurs outils le chemin le plus directe pour faire mon initiation à l'intelligence artificielle et je cherche les mots clefs "machine learning python" il me semble avoir trouvé la mine d'or et son filon.

https://wiki.python.org/moin/PythonForArtificialIntelligence
Python For Artificial Intelligence
C'est notre sujet du moment avec ce prix Alan Turing obtenu par un français Yann LeCun et ses confrères Yoshua Bengio et Goeffray Hinton sur le développement du deep Learning.

C'est le moment de prendre quelques notes et de découvrir un peu plus ce qu'est l'intelligence artificielle.

Makina Corpus - Initiation au Machine Learning avec Python
Les différentes techniques pour faire réfléchir nos machines :
  • Logique floue
  • Algorithmes génétique
  • Data mining
  • Inférence bayésienne
  • Agents intelligents
  • Réseaux de neuronnes
  • Apprentissage automatique
L'arrivée du Big Data a propulsé un nouveau domaine de l'IA l'apprentissage automatique.

Python - PythonForArtificialIntelligence
Voici une liste de librairies en langage Python qui concerne l'Intelligence Artificielle, quatre types de rubriques : General AI, Machine Learning, Langage naturel et traitement de texte, Réseau Neuronal.

C'est la mine d'or de l'algorithmie liée au machine Learning, même si quelques liens sont cassés ...

Wikipédia - List Of programming languages for artificiel intelligence
On sort du Python et on fait le tour de tous les langages qui peuvent nous permettre de programmer quelque chose en IA.

Wikipédia - Calcul des prédicats
J'aime bien cette page car elle me rappelle les cours en programmation que j'avais à l'Université. Des termes et des concepts indispensables y sont décrit.

lundi 8 avril 2019

C'est quoi un Ingénieur d'Intégration Continue

L’intégration continue est un concept qui se base sur l’analogie avec une usine automatisée. Sauf qu’au lieu de construire des voitures, on construit un logiciel. Un logiciel est modifié sans cesse et pour sécuriser son processus de fabrication, il faut automatiser le plus possible sa fabrication.

En 2013, j'écrivais déjà un article sur l'intégration continue : Outils d'Intégration Continue

Attention l'intégration continue s'entend souvent sur multiplateformes une partie des développements viennent de Windows et peut être qu'une autre partie vient de Linux, il faudra évoquer CMake.

Pour découvrir rapidement CMake :

Alexandre Laurent - Développez.com - Utiliser CMake pour compiler un projet

Etape par étape, je vais détailler les outils correspondants au métier de l'Ingénieur d'intégration continue. Dans les équipes de développement une personnes est dédiée à l'intégration continue. C'est ce qui différencie un développement artisanal d'un véritable développement professionnel. 

Alors quelles sont les spécificités de ce métier ? Quelles sont les nouveautés de ces dernières années.

Ingénieur d'intégration continue définition de poste

Je débute par une définition de poste voilà ce que je propose :

Collaborer avec les experts techniques R&D (architectes logiciel et experts métier) et les utilisateurs (équipes de qualification des produits) pour comprendre les exigences métier et identifier les solutions d’intégration et déploiement automatisés et de validation automatique de nos produits logiciels.

Il s'agit bien sûr d'une très grosse société au sein d'une très grosse équipe. Là on se rend compte que l'intégration continue n'a pas pu être mise en œuvre, il faut donc un facilitateur.

Et l'on donne l'outil Jenkins

Nous y voilà, nous avons une parfaite connaissance d'MSBuild on y ajoute les Outils d'Intégration Continue et au dessus de tout ça l'outil Jenkins va nous permettre de faire quoi ?

https://jenkins.io/solutions/c/
Jenkins Documentation Use-cases - C/C++

Jenkins Définition

Jenkins est un serveur d'automatisation open source autonome qui peut être utilisé pour automatiser toutes sortes de tâches liées à la création, au test, à la livraison ou au déploiement de logiciels.

Jenkins Installation

Jenkins est une application web à laquelle on accède par localhost une fois installée.

Jenkins - Getting started with the Guided Tour

La suite consiste à créer des pipeline des canaux de livraison continue. L'objectif de Jenkins est de pouvoir enchaîner les différentes étapes pour construire tester et déployer l'application.

Vous maîtrisez un outil comme Jenkins vous êtes un Ingénieur d'Intégration Continue.

Vous avez maintenant tout le loisir de vous former à Jenkins. Je voudrais aborder une notion importante de Jenkins c'est Blue Ocean dit comme ça c'est flou mais Blue Ocean vient se mettre au dessus de Jenkins et permet de repenser l'expérience utilisateur de Jenkins. Blue Ocean est un éditeur de pipeline.

En suite, je pense faire un tour du côté de ce site :

Continuous Integration with MSBuild and Jenkins – Part 1

Et puis un petit retour sur la doc Jenkins et l'intégration de MSBuild Plugin pour l'intégration continue sur plateforme Windows :

Jenkins - MSBuild Plugin

Car MSBuild cela je connais bien :

MSBuild - Outils d'intégration continue

Donc un Ingénieur d'intégration continue ce serait quelqu'un qui maîtrise aussi bien MSBuild que Jenkins. Ce blog est donc l'outil pour devenir un Ingénieur d'Intégration Continue.


mardi 2 avril 2019

Comment traduire un logiciel développé en Java en langage C#.NET ?

C'est la question que l'on me pose aujourd'hui alors en tant que consultant, je vais trouver la réponse et cela ne m'a pas l'air si simple. Je connaissais un outil de transfert du langage Visual Basic en C# mais de Java en C# ... je ne vois pas encore alors creusons la question.

Pour aller du langage Visual Basic en C# : Telerik - Code Converter

Oui les bons mots clefs sont : Converter ou Translator et je trouve un site en ligne qui fait à peut prêt tout :

https://www.carlosag.net/tools/codetranslator/
Traduire d'un langage de programmation dans un autre C#, Java, VB.NET, TypeScript
En suite il y a des solutions payantes pour quelques centaines de dollars pourquoi se priver :


https://www.tangiblesoftwaresolutions.com/order/order-java-to-csharp.html
Translater du soft écrit en Java vers du C#
Et voilà, on a fait le tour de la question très rapidement en trouvant des outils en ligne gratuits qui peuvent permettre de prendre en main une partie automatique de la traduction et pour aller plus vite certainement avec un outil payant.

Quant à moi je crois que je apprendre le Java ;-)



vendredi 8 mars 2019

ZDNet - Outil de reverse engineering sous licence libre Ghidra

Vous connaissez Ghidra ? La National Security Agency a publié Ghidra, un outil de reverse engineering sous licence libre utilisé depuis plus de 10 ans en interne. ZDNet - Ghidra

L'existence de Ghidra a été initialement rendue publique via Wikileaks en mars 2017 mais il a fallut attendre la déclassification du logiciel deux ans plus tard. Les formats binaires pris en charge sont très nombreux on retrouve dans la liste un nombre impressionnant de micro-processeurs.

https://ghidra-sre.org/
Outil de reverse engineering de la NSA

Il existe une alternative nommée IDA Pro mais elle vaut des milliers de dollars par an. IDA Pro est un désassembleur et débogueur pour Windows Linux ou Mac OS. C'est le standard en matière d'analyse de code hostile.

NSA sous GitHub - Ghidra
NSA sous GitHub - Ghidra 

Cet outil est maintenant un logiciel Open Source sous Github :


Ghidra est en Java, il faut avoir installé le Java Development Kit 11. Mais a priori l'installation de cet outil n'est pas plus compliqué que de dézipper l'archive.

Au cas cela disparaisse moi je prends des notes et je l'ai téléhargé ... LoL ...

mercredi 27 février 2019

C'est quoi l'outil de partage de fichiers Dropbox

Vous connaissez forcément OneDrive, l'outil de partage de fichiers intégré à l'OS de Windows de Microsoft. Alors Dropbox c'est la même chose ou c'est mieux ?

https://www.dropbox.com/business/tour
Dropbox Business
Je dirais tout simplement que c'est le même principe de base concernant le partage des fichiers Dropbox amène au dessus de cette couche fonctionnelle tout ce qui est gestion de groupe collaboration entre équipes.

J'ajoute que si vous êtes seul OneDrive suffit ;-) si votre équipe grossie passez à Dropbox c'est un excellent outil collaboratif de partage du travail.

Concept marketing la sécurité

Ils écrivent : Préservez la sécurité de votre entreprise
Protégez-vous contre les fuites de données des fuites et les attaques malveillantes. Dropbox Business vous offre une sécurité et une durabilité haut de gamme sans les coûts élevés et la gestion complexe d'un serveur de fichiers, d'un FTP ou d'une solution NAS.

Mais attention, il n'y a pas de sécurité absolue sur Internet ... à voir avec le temps si certains clients de Dropbox ne se sont pas fait attaqués et voler leurs données.

Pour terminé avec Dropbox

La page de comparaison des différentes solutions cela permet d'avoir une liste de toutes les fonctionnalités et le tarif :

Dropbox - Choisissez la solution qui vous convient
Avec Dropbox Business accédez à une collaboration plus sûre et efficace simplifiez-vous la tâche en vous offrant un emplacement centralisé pour accéder à vos fichiers et les partager.

mardi 26 février 2019

Encore quelques Tutos sur Git - Bitbucket et les workflows

Je découvre les Workflows de Git avec Gitflow et je trouve les tutoriels d'Atlassian intéressants, bien faits, clairs. Alors je prends des notes car cela me semble très intéressant pour la suite.

Workflow Gitflow | Tutoriel Git d'Atlassian

Git-flow est un wrapper Git.

Il faut Installer git-flow et lancer la commande : git flow init

Elle créé des branches pour nous faciliter les tâches de développement collaboratif.

Du coût dans Bitbucket, on trouve plein d'aides sur Git même si vous avez déposé vos Repos dans Github toute cette aide peut être intéressante.

Utilisation d'une branche Git pour merger un fichier

De SVN à Git – Préparation de la migration

Basic Git commands

Autrefois, Git était connu pour nécessiter un apprentissage de longue haleine. Cependant, les mainteneurs Git n'ont cessé d'apporter des améliorations, comme des valeurs par défaut sensibles et des messages d'aide contextuels, pour rendre le processus d'intégration plus agréable.

Ah oui vous trouvez ?! Lol, Il y a trop d'outils annexes, on ne sait plus quoi utiliser pour rationnaliser Git.

Comparaison de workflows

Voilà et bien d'autres informations sur le site Bitbucket d'Atlassian.

jeudi 21 février 2019

Outil pour s'organiser en utilisant la méthodologie Scrum

Connaissez-vous un outil pour vous organiser en utilisant la méthodologie Scrum ? Non, alors découvrons ensemble l'outil logiciel scrumwise pour bien utiliser la méthodologie Scrum :

https://www.scrumwise.com/
scrumwise

Et d'abord son message marketing :

L'outil agile le plus simple que vous trouverez. Scrumwise vous permet de vous concentrer sur votre projet, en vous donnant des résultats plus rapides, un meilleur travail d'équipe et une meilleure communication.

Et à part cela ?

Il semble que la communication sur cet outils soit bien moderne sur le site le bouton le plus facile à cliquer c'est "Free try now" ce qui ne signifie pas que c'est le meilleur outil ...

Les fonctionnalités :

Equipes et rôles

Créez des équipes et attribuez des rôles. Gardez une trace de la vitesse de votre équipe et travaillez sur plusieurs fuseaux horaires. Discutez avec les membres de l'équipe, faites des annonces et partagez des fichiers.

Gestion des arriérés

Créez des backlogs et organisez-les à l'aide de listes, de balises et de filtres. Utilisez des épopées pour garder un aperçu de haut niveau des choses. Divisez le travail en morceaux gérables à l'aide de sous-tâches et de listes de contrôle.

Gestion des versions

Planifiez efficacement les rejets à long terme, en prévoyant les dates de diffusion en utilisant les vitesses et le taux de combustion prévus. Savoir si vous êtes sur la bonne voie ou non.

Sprint management

Organisez les sprints de manière visuelle en répartissant le travail entre vos équipes. Voir quelle équipe est sur-affectée et faire des ajustements à la volée. Gérez les vacances, les allocations partielles et le travail de fin de semaine.

Tableaux de tâches

Concevez vos propres tableaux de tâches faciles à utiliser, où tout se met à jour en temps réel. Chaque élément du carnet de commandes a sa propre ligne dans le tableau, ce qui permet de garder facilement les sous-tâches ensemble.

Graphiques de Burndown

Visualisez vos progrès dans les tableaux de burndown, en tenant automatiquement compte des vacances et du travail du week-end, quel que soit le fuseau horaire de l'équipe.

Conseils Kanban

Utilisez des tableaux Kanban lorsque vous n'avez pas besoin de sprints pour créer un tableau pour chacun de vos flux de travail. Mélangez Scrum et Kanban librement, pour une flexibilité totale.

Suivi du temps

Suivez le temps de facturation et de comptabilité et obtenez des journaux de temps détaillés pour des personnes individuelles, des sprints, des équipes et des périodes calendaires. Exporter au format CSV ou copier directement dans des feuilles de calcul.

Le Prix ?

Entre 9 et 7,50 dollars / mois / utilisateur

Alors pourquoi s'en priver d'autant que vous pouvez essayer gratuitement ...

Dashboard Scrumwise

Voilà, vous connaissez d'autres outils de ce type pour s'organiser en méthodologie Scrum ?

N'hésitez pas à faire votre commentaire.

mercredi 9 janvier 2019

C'est quoi l'industrie 4.0 ?

L'industrie 4.0 qu'est ce que cela implique ? Certaines normalisations, certains concepts acceptés par tous et quoi encore ? Des protocoles de communication communs. Venez, on va trouver la réponse.
 
L'industrie 4.0 une révolution
L'industrie 4.0 une révolution

Bien sûr, on parle d'IoT mais aussi beaucoup de blabla sur le dessin on voit que l'industrie 4.0 se sont les machines qui discutent entre elles soit à l'intérieur de l'usine mais cela peut être aussi d'usine à usine.

Pour nos amis anglais notons qu'ils appellent cela la smart factories. Pour la standardisations et les normalisation il s'agit du standard "OPC UA" particulièrement adapté aux communications entre machines.

Autres protocoles IEC 62264 (intégration des systèmes entreprise-contrôle)
IEC 61512 (conception et la spécification des systèmes de contrôle des procédés de fabrication batch)

Pour la communication entre eux des objets de l'industrie 4.0, on parle de technologie RFID. OPC UA sert de protocole de communication.

La prochaine norme 5G vise à répondre à l'industrie 4.0.

Protocole OPC UA

Il important que les équipements puissent communiquer et fonctionner en bonne intelligence quelque soit le fabricant, dans l'usine 4.0, il ne faut pas de format propriétaire mais un protocole ouvert unifié et Open Source.

OPCUA permet de dispatcher des commandes grâce à l'exécution de méthodes et permet de spécifier des événement et de recevoir des notifications.

L'OPC UA a été implémenté dans différents langage de programmation C++, C#, Java. L'OPC UA implémente le design pattern de l'observer qui permet de s'abonner à des notifications. Il implémente également le classique Client/Serveur.

Lorsqu'un appareil est compatible OPCUA il suffit de la connecté sur le réseau Ethernet de l'usine et il est immédiatement opérationnel sans autre manipulation à effectuer.

OPC Unified Architecture

Implémentations en langage C++




lundi 7 janvier 2019

C'est quoi OpenCL ? Langage de programmation Open Computing Language.

Ce n'est pas tous les jours que l'on découvre un nouveau langage de programmation alors quant on me parle d'OpenCL, je m'empresse d'aller voir ce que c'est que ce nouveau langage de programmation.

Langage de programmation OpenCL
Le langage OpenCL c'est comme du C

OpenCL ou Open Computing Language, c'est la combinaison d'une API et d'un langage de programmation dérivé du C et comme son nom l'indique "open" c'est un standard ouvert, open source (quoi que Apple en dépose une marque ...). Ce langage informatique est conçu pour programmer des systèmes parallèles hétérogènes comprenant un CPU multi-cœur et un GPU, il est créé en juin 2008.

Le langage OpenCL est à l'intersection des mondes CPU parallèles et GPU programmables.

Initialement conçu par Apple pour collaborer avec AMD, Intel et Nvidia autrement dit tout le monde.
AMD décide de supporter OpenCL et DirectX 11

OpenCL 1.1 est publiée en juin 2010 par le Khronos Group

Xilinx

On retrouve OpenCL dans la programmation de Xilinx (FPGA) Circuit Logique Programmable associé à l'IDE Eclipse :

Xilinx - Familiar Embedded C/C++/OpenCL Application Development Experience

Xilinx - SoC

SDSoC Environment Demo

SoC : Single or Dual-core
MPSoC : Dual or Quad-core
RFSoC : Quad-core ARM

Les dernières news sur toutes ces technos concernant le Langage OpenCL :

LinuxGizmos - 16nm Zynq SoC mixes Cortex-A53, FPGA, Cortex-R5

Xilinx - Zynq UltraScale+ MPSoC Product Advantages


Microsoft DirectX

C'est quoi Microsoft DirectX 11, j'en parle souvent avec la librairie OpenGL, en disant que si le langage C++ existe encore c'est parce que de telles librairies existent et ne sont pas traduites dans d'autres langages. car le langage C++ est la manière la plus efficace pour adresser c'est librairies.

Librairies Microsoft Windows

Developpez.net - Affichage des résultats du sondage: Quels API 3D préférez vous ?

Wikipédia - Comparison of OpenGL and Direct3D

C'est donc des librairies de fonctions qui permettent de dessiner sur l'écran ...

Direct3D : est un sous-ensemble de DirectX une librairie graphique pour dessiner en 3D

DirectX : ensemble de librairies, n'adresse pas seulement les graphismes mais aussi le son, la mise en réseau et le multimédia.

DirectX est sur Intel tandis qu'OpenGL est sur AMD. DirectX ne fonctionne que sous Windows et X
Box. Si vous avez besoin de développer pour plus que Windows OpenGL est la solution.

C'est quoi le Deep Learning ?

Il faut que je fasse un article pour présenter simplement ce qu'est le Deep Learning (ou apprentissage profond) en quoi on parle également à propos du Deep Learning de l'Intelligence Artificielle.

Il faut commencer par le "neurone formel" avec sa fonction d'activation qui est l'unité élémentaire en en mettant plusieurs on fabrique un "réseaux de neurones artificiels".


https://fr.wikipedia.org/wiki/Neurone_formel
Neurone avec fonction d'activation à seuil

On parle de "Perceptron" à rétroaction. Alors nous les électroniciens on connait bien la "boucle de rétroaction" en prenant une petite partie du signal de sortie on vient corriger l'entrée, elle sert dans l'industrie sous le nom de servomoteur pour stabiliser la vitesse des machine à vapeur.

Boucle de rétroaction
Boucle de rétroaction

Pour moi la rétroaction c'est "l'apprentissage" dans le sens ou l'on vient corriger ce que l'on a déterminé.

Réseau neuronale à rétroaction
Réseau neuronale à rétroaction

Avec un début d'algorithme :

Règle d'apprentissage du perceptron

Le perceptron de Frank Rosenblatt est très proche de la règle de Hebb, la grande différence étant qu'il tient compte de l'erreur observée en sortie.
Cette fonction est recommandée lorsque la tangente hyperbolique (tanh) est utilisée comme fonction d'activation.

W'(i) = W(i) + Alpha( Y(t)-Y ) * X(i)

avec :
W'(i) = le poids i corrigé
Y(t) = sortie attendue
Y = sortie observée
Alpha = le taux d'apprentissage
X(i) = l'entrée du poids i pour la sortie attendue Y(t)
W(i) = le poids i actuel

C'est trois systèmes sont constitutifs du réseau neuronale a apprentissage, c'est le début du Deep Learning on le conçoit alors presque entièrement quand on arrive au "Perceptron multicouche" :

Perceptron multicouche
Perceptron multicouche

Et surtout l'algorithme de rétropropagation présenté sur cette page dont je prends note ici.

Algorithme de rétropropagation

  1. Présentation d'un motif d'entraînement au réseau.
  2. Comparaison de la sortie du réseau avec la sortie ciblée.
  3. Calcul de l'erreur en sortie de chacun des neurones du réseau.
  4. Calcul, pour chacun des neurones, de la valeur de sortie qui aurait été correcte.
  5. Définition de l'augmentation ou de la diminution nécessaire pour obtenir cette valeur (erreur locale).
  6. Ajustement du poids de chaque connexion vers l'erreur locale la plus faible.
  7. Attribution d'un blâme à tous les neurones précédents.
  8. Recommencer à partir de l'étape 4, sur les neurones précédents en utilisant le blâme comme erreur.
Voilà j'ai fait un tour rapide bien plus rapide qu'en lisant toutes les pages de Wikipédia pour aller directement au but le Deep Learning. Il reste des notions à préciser. ce que je ferais plus tard.

Des cas concrets soit disant mais franchement cet article n'est pas terrible :

Forbes - 10 Amazing Examples Of How Deep Learning AI Is Used In Practice?

Pour aller beaucoup plus loin, je vous conseille mais c'est en anglais :

Deep Learning in Neural Networks: An Overview

Promis, un jour je vous ferai un résumé.

Bon année 2019 !

vendredi 28 décembre 2018

Avertissement Système! Votre système de sécurité Windows est endommagé !

C'est incroyable le moteur de recherche Bing sur la page d'accueil d'Internet Explorer 11 est devenu incompatible avec Windows 7 ! Ce matin j'ouvre mon Internet Explorer pour Windows 7 c'est à dire en vérité Internet Explorer 11, le dernier IE qui fonctionne sous Windows 7.

J'ai devant moi la page d'accueil du moteur de recherche Bing et je me dis que c'est véritablement de la Daube en barre, des pubs, des articles racoleurs stupides, des articles inutiles, des fenêtres de Pub qui changent toutes seules et essayent d'attirer mon attention pour que je clique sur un devis en ligne pour trouver une mutuelle moins chère ! Quelle Daube ! Et je me dis que je vais changer ma page d'accueil pour y mettre le moteur de recherche Google.

Alors que je suis là, dans la contemplation de ce désastre devant cette page stupide, une fenêtre surgissante m'indique :

Avertissement Système! Votre système de sécurité Windows est endommagé !

Il ne manquerait plus que ça ! Voici la page d'accueil de mon Internet Explorer 11 sous Windows 7 :



Votre système de sécurité Windows est endommagé !
Win Erx03 - Votre système de sécurité Windows est endommagé !

J'ai été redirigé automatiquement vers une page nommée  : "Win Erx03" on dirait un ransomware c'est catastrophique cet Internet Explorer 11 pour Windows 7.

Solution Ransomware Win Erx03 Windows 7 IE 11

Bien sûr NE FAITES SURTOUT PAS la mise à jour, c'est une arnaque. On vous prédit que tous vos fichiers seront supprimés au bout de X secondes, C'EST FAUX c'est un canular. Pas drôle !

Faites simplement : Dans le Gestionnaire des Tâches de Windows -> Bouton droit sur l'application Internet Explorer -> Fin de tâche

Internet Explorer Win Erx03 - Solution

Si une fois ne suffit pas, en effet ce processus essaye de se relancer, recommencez, Internet Explorer 11 fini par se fermer !
Ouf !

Je vous laisse une page complète sur ces sujets d'installe de paramètre navigateur :

PCrisk - Arnaque Microsoft System Security Alert

Faites attention quand même, je ne suis pas sûr que : "Réinitialiser vos paramètres Internet Explorer" ne vous laisse pas plus dans le caca que de ne rien faire. 

En effet, souvenez-vous, les paramètre IE sont tellement ... comment dire ... merdiques à configurer ... il faut maîtriser la chose.

Marre de ces bêtises, je pars à la plage !

jeudi 20 décembre 2018

Comment configurer OpenVPN dans l'Azure Cloud ?

Je cherche à utiliser le logiciel OpenVPN pour me connecter à ma passerelle VPN que j'ai créé dans l'Azure Cloud de Microsoft. Comment faire ? J'ai maintenant réussi à configurer OpenVPN sur mon poste hôte mais si je ne créé pas de passerelle VPN dans l'Azure je ne vois pas comment me connecter à ma machine virtuelle Azure.

Configurer des clients OpenVPN sur la passerelle VPN Azure (préversion)

Je me dis que si je créé une passerelle dans l'Azure, je n'aurais plus qu'à configurer mon client pour qu'il se connecte à ma machine virtuelle à travers la passerelle.

Alors allons-y.

Tout logiquement cet article me mène à :

Configurer OpenVPN pour la passerelle VPN Azure de point à site (préversion)

Qui me ramène à la première étape :

Configurer une connexion point à site sur un réseau virtuel à l’aide d’une authentification par certificat Azure native : Portail Azure

Avec le joli dessin :
Connexion VPN Point à Site
Connexion VPN Point à Site
L'essentiel dans cette page c'est l'explication donnée tout en haut :

Pour connecter un client individuel à un réseau virtuel Azure, la connexion VPN point à site permet de se connecter à un réseau virtuel à partir d'un emplacement distant.

La connexion P2S est une alternative au VPN de site à site lorsque il y a nombre restreint de clients qui se connectent au réseau virtuel.

Les connexion P2S ne nécessite pas de périphérique VPN ou pas d'adresse IP publique. La connexion P2S crée la connexion VPN vie SSTP (Secure Socket Tunneling Protocol) ou IKEv2.

Créer un VPN de Point à Site

On a vu deux types d'authentifications :
  • Certificat Azure Native
  • Domaine Active Directory
Je choisie Certificat Azur Native je me dis que AD il faut installer un serveur Radius ... plus compliqué ...

A chaque fois on peut faire avec le Portail Azure ou PowerShell


mercredi 19 décembre 2018

OpenVPN - Comment configurer votre VPN ?

Vous venez d'installer Open VPN et vous cherchez à configurer rapidement votre VPN (Virtual Private Network) entre la machine server sur Internet et votre post de travail.

C'est quoi un VPN
C'est quoi un VPN ?
Après l'installation, on remarque la commande installée : "Generate a static OpenVPN key".

Pour générer une Clef (une key) dans le répertoire : C:\Program Files\OpenVPN\config
Utilisez l'exécutable : Generate a static OpenVPN key
Cliquez dessus et voilà le fichier key.txt créé dans le répertoire "config".

Open VPN generate a key
Maintenant, il va falloir temporiser, la compréhension de tout le système OpenVPN va prendre du temps. Ce que l'on comprend assez vite c'est que la configuration du VPN va se faire "à la mano" en modifiant des fichiers de samples du répertoire "sample-config" et en allant les placer dans le répertoire "config".
 
sample-config -> config

Le client c'est votre machine hôte et le server la machine virtuelle sur laquelle vous cherchez à vous connecter en VPN.

J'ai un exemple de VPN configuré avec OpenVPN et dans cet exemple il y a trois fichiers dans le répertoire "config"
  • .p12
  • .ovpn
  • .key
Il s'agit d'un VPN sous Windows. Pour ma part j'ai beau lire les fichiers du répertoire "sample-config", je sens que je vais avoir besoin d'un peu plus de documentation.

Alors il y a bien cette documentation sur le site OpenVPN :


OpenVPN 2x HOW TO - Introduction
OpenVPN 2x HOW TO - Introduction

Il y a pourtant marqué introduction malgré tout c'est un peu costaud comme doc ... d'ailleurs si vous prenez le temps de lire l'Intended Audience :

INTENDED AUDIENCE
This HOWTO assumes that readers possess a prior understanding of basic networking concepts such as IP addresses, DNS names, netmasks, subnets, IP routing, routers, network interfaces, LANs, gateways, and firewall rules.

Bon, en gros vous devez être administrateur réseaux.

Connexion VPN en mode Static Key

Si on n'est pas administrateur réseau comment se dépatouiller ?
Il y a bien le chapitre :

Static Key Mini-HOWTO

C'est tentant, d'autant que l'on a vu comment générer une clef static, ça parait facile. Les restrictions de ce mode de configuration "Limited scalability — one client, one server" ne me posent pas de problème pour l'instant.

1 - Copier la clef statique dans le client et dans le server (en utilisant un canal sécurisé) bon ...
2 - Modifier les machines pour qu'elles soient dans le même domaine.

J'ai beau chercher :

disabling NCP mode (--ncp disable) because not in P2PM client or server mode

There is a problem in your selection of --ifconfig endpoints [local=40.89.154.136, remote=192.168.1.28].  The local and remote VPN endpoints must exist within the same 255.255.255.252 subnet.  This is a limitation of --dev tun when used with the TAP-WIN32 driver.  Try 'openvpn --show-valid-subnets' option for more info.

Il me semble que dans ce cas, c'est l'instruction OpenVPN :

>dev tun

qui est remise en cause et je ne pourrais pas l'utiliser car mes deux machine ne sont pas dans le même subnet ...

Quand je pense que cela fonctionnait tout seul sur mon ancienne machine ...
Allons voir comment sont configurés le "Centre réseau et partage".

Windows - Réseau et Internet
Windows - Réseau et Internet

Il y a une nouvelle "Connexion au réseau" installée par l'install d'Open VPN comme un driver souvenez vous, on nous a demandé d'acquiescer l'installation d'un Driver TAP. C'est peut être en allant regarder la configuration de cette connexion que l'on va comprendre comment configurer notre VPN.

https://github.com/OpenVPN/openvpn/
OpenVPN tap-windows
OpenVPN tap-windows

TAP-Windows pas de doc !? Snif

OpenVPN HowTo Install

Voici la quintessence de la doc ...

VPN avec connexion par pont ou connexion par routage ?

Le routage est probablement le meilleur choix, plus efficace, plus facile à configurer, meilleur contrôle sélectif des droits d'accès.

Voici les fonctionnalités qui nécessitent un Pontage :
  •  le VPN doit pouvoir gérer des protocoles non IP tels que IPX,
  • vous exécutez des applications sur le VPN qui reposent sur des diffusions réseau (telles que des jeux en réseau local), ou
  • vous souhaitez autoriser la navigation sur les partages de fichiers Windows sur le VPN sans configurer de serveur Samba ou WINS.

Numérotation des sous réseaux privés

La configuration d’un VPN implique souvent la mise en réseau de sous-réseaux privés situés à des emplacements différents.

L'IANA (Internet Assigned Numbers Authority) a réservé les trois blocs suivants de l'espace d'adressage IP pour les internets privés (codifiés dans la RFC 1918):

10.0.0.0
10.255.255.255
(10/8 prefix)
172.16.0.0
172.31.255.255
(172.16/12 prefix)
192.168.0.0
192.168.255.255
(192.168/16 prefix)

Il faut sélectionner des adresses minimisant la probabilité de conflit d'adresses IP ou de sous-réseau. Les conflits à éviter sont les suivants :
  • des conflits provenant de différents sites sur le VPN utilisant la même numérotation de sous-réseau LAN, ou
  • connexions d'accès à distance depuis des sites utilisant des sous-réseaux privés en conflit avec vos sous-réseaux VPN.
Par exemple, supposons que vous utilisiez le sous-réseau populaire 192.168.0.0/24 en tant que votre sous-réseau LAN privé. Vous essayez maintenant de vous connecter au VPN depuis un cybercafé qui utilise le même sous-réseau pour son réseau WiFi. Vous aurez un conflit de routage car votre machine ne saura pas si 192.168.0.1 fait référence à la passerelle WiFi locale ou à la même adresse sur le VPN.

Le VPN doit pouvoir identifier les sous-réseaux de manière unique. Il faut éviter les adresses 10.0.0.0/24 ou 192.168.0.0/24 comme adresse de réseau local privé. Les meilleurs candidats sont les sous-réseaux au milieu du vaste réseau 10.0.0.0/8 netblock (par exemple, 10.66.77.0/24).

Et pour éviter les conflits de numérotation IP entre sites, utilisez toujours une numérotation unique pour vos sous-réseaux LAN.

Try 'openvpn --show-valid-subnets' option for more info.

Encore quelques infos afin de pouvoir configurer les sous-réseaux que l'on va mettre en connexion grâce au VPN.

openvpn --show-valid-subnets
OpenVPN - openvpn --show-valid-subnets

Sous forme texte plus pratique :

C:\Program Files\OpenVPN\bin>openvpn --show-valid-subnets
On Windows, point-to-point IP support (i.e. --dev tun) is emulated by the TAP-Windows driver.  The major limitation imposed by this approach is that the --ifconfig local and remote endpoints must be part of the same 255.255.255.252 subnet. 
 
The following list shows examples of endpoint pairs which satisfy this requirement.  Only the final
component of the IP address pairs is at issue. As an example, the following option would be correct:
    --ifconfig 10.7.0.5 10.7.0.6 (on host A)
    --ifconfig 10.7.0.6 10.7.0.5 (on host B)
because [5,6] is part of the below list.
[  1,  2] [  5,  6] [  9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]
 
La solution va passer par le configuration du driver réseau TAP-Windows

OpenVPN - TAP-Windows Adapter V9
OpenVPN - TAP-Windows Adapter V9

Considéré ce driver comme une carte réseau donc :

Driver TAP- Windows
Configuration du Driver TAP- Windows

Pour le DNS, j'ai choisi :

208.67.222.222
208.67.222.220

Grâce à l'utilitaire DNSBench


https://www.grc.com/dns/benchmark.htm
Utilitaire DNS Benchmark

OpenVPN Troubles

Sur le Server, je n'ai pas réussi à obtenir une connexion avant de la renommer comme dans à la page suivante :

Windows: issue: netsh command failed: returned error code 1

Étonnant non ?

NETSH: command failed - now OK
NETSH: command failed - now OK

Remarquez le nouveau nom : Ethernet VPN et la connexion est OK !

Attention : Il faut lancer OpenVPN GUI en mode Administrateur

Don’t forget to enable IP Forwarding on the OpenVPN server machine - On Windows

Your computer appears to be correctly configured, but the device or resource (DNS server) is not responding

Method 3: Use the Ipconfig command-line tool. To do this, follow these steps:

1 - Select Start, type command prompt in the Search Programs and files box, press and hold (or right-click) Command Prompt, and then select Run as administrator.
2 - At the command prompt, type the following commands. Press Enter after each command.
>ipconfig /flushdns
>ipconfig /registerdns
>ipconfig /release
>ipconfig /renew

Configuration d'un réseau virtuel dans l'Azure

Configurer des clients OpenVPN sur la passerelle VPN Azure (préversion)
C'est le terme préversion qui fait peur, cela fonctionne t-il ?

Configurer une connexion point à site sur un réseau virtuel à l’aide d’une authentification par certificat Azure native : Portail Azure
Ca se complique ...

Heureusement, il y a un petit dessin :

Configurer une connexion point à site à l'aide d'une authentification par certificat (classique)
Configurer une connexion point à site à l'aide d'une authentification par certificat (classique)
Documentation sur la passerelle VPN Azure
Je crois qu'il faut commencer par là ...

Seulement on s'éloigne de la connexion en mode "Static Key".

On vient de mettre le doigt dans un gros truc, je reviendrai pour finir, c'est promis !

vendredi 14 décembre 2018

Connaissez-vous la RPA, la Robotic Process Automation ?

Dans son principe la Robotic Process Automation est une technique qui consiste à mettre à la place de l'utilisateur un robot face aux IHMs du Système d'Information. Ceci afin d'automatiser des tâches répétitives.

Soit le robot vient en aide à l'utilisateur, on parlera alors de "RPA Attended", soit le robot s'exécute de façon autonome, on parlera alors de "RPA Unattended".

RPA - Robotic Process Automation
RPA - Robotic Process Automation

La RPA se situe au dessus du scriptage au sens ou le robot attaque directement l'IHM du Système d'Information. Il y a conservation de l'intégrité des données telles qu'elles sont traitées par les utilisateurs alors qu'un script pourrait endommager des données ou ne pas respecter le processus utilisateur.

Je fais l'impasse sur les arguments marketing ce qui m'importe c'est l'intérêt de la solution technique. Après une première recherche sur Internet à la vue de la qualité et de l'agressivité des Sites, c'est sûr, c'est un sujet en vogue en ce moment.

Je vous laisse lire les arguments marketing des premières solutions trouvées sur Internet :

Kofax - Get the Power of Robotic Process Automation

Laserfiche - What is Robotic Process Automation?

Techniquement qu'elle pile d'outil qu'elle Stack ?

Pour réaliser un projet de RPA, il faut mettre en place de outils on parle de UiPath grafiquement on a vu lors d'une démonstration, la possibilité de réaliser un graphe de processus pour enchaîner les opérations nécessaires à la réalisation de la tâche de RPA.

UiPath Solution

Pas de prix, pas de détail sur la solution, on vous propose de : "Démarrer tout suite". C'est embêtant on a peu d'élément pour se faire  une idée de la solution.

Je vous laisse avec les arguments marketing :

UiPath - Robotic Process Automation (RPA)

Donc techniquement de quoi vas t-on avoir besoin pour mettre en œuvre notre projet de RPA ?

Stack Open Source de RPA Robotic Process Automation

python

Le langage, le ciment fédérateur de la stack d'outils

Autolt

AutoIt Scripting Language : AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general Scripting.

https://www.autoitscript.com/site/autoit/
Autolt - Scripting

AutoIt v3 est un langage de script gratuit de type BASIC conçu pour automatiser l'interface graphique Windows et les scripts généraux. Il utilise une combinaison de frappes de touche simulées, de mouvements de la souris et de manipulations de fenêtres / contrôles afin d’automatiser les tâches de manière impossible ou fiable avec d’autres langues (par exemple, VBScript et SendKeys).

Selenium

Set of tools used to automate testing of Web Applications

sikuli

Réaliser vos scripts de façons visuelle

Jenkins

bien connu des développeurs DevOps

JOBScheduler

pourquoi pas

ELK Stack

Faire des logs, des logs, toujours logger pour savoir ce qu'il se passe au sein du SI.

Open RPA

Bon et alors et maintenant ? Si on essayait d'en savoir un plus techniquement en regardant par exemple les solutions Open RPA en opposition aux solutions propriétaires qui oblige à être en relations commerciale avec le fournisseur.

Voici la solution LECSYS :

LECSYS - Open RPA
La RPA (Robotic Process Automation) consiste à remplacer des actions utilisateurs sur l’environnement informatique existant (SI, outils bureautique, web…) par des actions effectuées par un automate.

RPA Exemples et Toturials

Allons encore un peu plus loin avec Guru99 :

GURU99 - RPA Tutorial: What is, Tools and Samples
Une vision industrielle de la Robotic Process Automation avec un exemple concret d'automatisation du traitement des factures. Des explications et des exemples vers les principaux outils comme UiPath, Blue Prism, en anglais.

Conclusion sur la RPA

J'ai maintenant une idée plus fine et je l'espère vous aussi de ce que peut être la RPA (Robotic Process Automation). Je compléterai cet article la prochaine fois que l'on évoquera la Robotic Process Automation.

Ca fait un peu flipper ce concept quand même. Et malgré les arguments marketing que vous pouvez avoir lu, ce n'est pas à mettre dans toutes les mains, il faut une bonne maitrise de la programmation pour réaliser et aller au bout d'un projet réussi de RPA.

N'hésitez pas à commenter apportez votre grain de sel !

vendredi 7 décembre 2018

Quel est le meilleur outil de VPN (Virtual Private Network) gratuit ?

On se fait toujours un monde d'une connexion VPN, quand le manager de l'équipe te dit merci de monter un VPN entre ton poste et la machine "une telle". Je sais pas vous, mais moi je panique un peu. Sans doute car quand j'ai débuté il y a 20 ans monter un VPN ce n'était pas si facile.

Alors quel sont les bons outils pour démystifier le VPN le Virtual Privat Network. Un VPN est un "tunnel sécurisé" à l'intérieur d'une réseau, établit entre deux machines pour leur communication.

Je cherche donc Outils de VPN Gratuits et c'est là le paradoxe, je ne tombe que sur des annonces payantes. C'est à dire que des sites vont payer pour me donner de l'informations sur des outils de VPN Gratuits. Je ne comprends pas bien la logique mais bon...

Les outils de VPN Gratuits
Les outils de VPN Gratuits
Je commence à regarder tous ces outils lesquels sont vraiment gratuit, difficile à dire. En plus je me souviens d'avoir utilisé un outil simple ultra performant que je me permets de vous présenter :

https://openvpn.net/community-downloads/
Outil Gratuit pour établir un VPN
On y trouve un installeur pour Windows :

OpenVPN installer for Windows
Et voilà c'est parti vous voici avec un bon outil pour établir un VPN c'est à dire une connexion sécurisé entre votre machine et une machine du réseau que vous souhaitez atteindre.

Merci qui ?

Have fun!