vendredi 25 octobre 2019

Trello et la méthode Kanban et un peu de Slack

Je souhaite relayer ici une vidéo, ce n'est pas coutume mais voici une présentation de la méthode Kanban dans le pédagotube la chaine dédiée à la pédagogie.


https://youtu.be/tfZ5iZ8cfd4

Il est bien précisé que Trello permet de gérer toute sorte de projets et non pas seulement des projets informatiques.

Alors c'est quoi Trello et en quoi cela va nous permettre d'utiliser la méthode Kanban ? Déjà c'est un outil gratuit et c'est toujours intéressant cela permet de découvrir à moindre coût.

Trello Team Playbooks
Trello Team Playbooks

La vidéo nous explique qu'il est classique de lié Trello à Slack car il existe un Addin pour lié Trello et le fameux logiciel Slack.

C'est quoi Trello et à quoi ça sert dans Slack

Alors c'est quoi Slack ?

Je dirais de Slack qu'il s'agit d'un RSE.
Il s'agit d'organiser le travail en équipe, de favoriser les échanges entre les entreprise partenaires tout ceci sent bien le RSE.

Ce que Slack appelle des Canaux, c'est en fait des Projets qui regroupe des équipes de travail.

Trello permet donc d'aller au bout de l'application de la méthode Kanban avec les différentes colonnes et les différentes tâches du projet. Trello permet d'avoir ainsi, en un coup d’œil, une idée de l'avancement du projet.


C'est quoi Microsoft - PowerApps pour les créateurs d'application ?

C'est un peu le coup du "mais on m'aurait pas prévenu" ! Avec Microsoft PowerApps, j'ai l'impression de découvrir la roue et ils ne m'ont pas prévenu. Alors c'est quoi Microsoft PowerApps ?

Microsoft - PowerApps - Vue d’ensemble de la création d’applications dans PowerApps

Quatre composants principaux :
  • applications de canevas
  • applications pilotées par modèle
  • portails
  • Common Data Services
Créer une interface utilisateur comme vous le souhaitez.

Microsoft - PowerApps - Se connecter à PowerApps pour la première fois

Mais là c'est la cata !
Connexion à PowerApps avec Internet Explorer - mdr !
Microsoft - PowerApps - Qu'est ce que PowerApps ?

Ca parait magique, vous créez votre application parfaite avec tout ce dont vous avez besoin dedans en 1 clique.

Je n'ai pas le temps de creuser plus simplement cet outil ne trouve pas le publique qu'il devrait car il est trop compliqué et basé sur SharPoint dont on connait les désavantages.

To Be Continued

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 :

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

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 marre de cliquer tout le temps dessus !

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

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 ?

Et 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.

Sur le site de Microsoft quelques comparaisons :

MSDN - Test Experience Improvements

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

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 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 ... Grrrrr !

Ma Conclusion

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.

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à 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 ;-)



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

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 :

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

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 !