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à cela : 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.

Etape par étape, je détaille les outils correspondants, aujourd'hui c'est un métier authentifié comme tel. Dans les équipes de développement une personnes est dédiée à l'intégration continue.

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 enchainer les différentes étapes pour construire tester et déployer l'application.

Vous maitrisez 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. C'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 :


Donc un Ingénieur d'intégration continue ce serait quelqu'un qui maîtrise aussi bien MSBuild que Jenknis. 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 ;-)