Alternative à Watson Visual Recognition
TL;DR Azure computer vision offre une alternative fiable pour la reconnaissance d’objets dans une image, puisque Watson visual recognition est rendu obsolète par IBM.
Je rollback sereinement la production
TL;DR Après un précédent article argumentant pour des mises en production plus fréquentes, afin qu’elles deviennent une tâche rôdée de la vie de tous les jours, voici une deuxième opportunité pour des installations plus sereines : faciliter le plus possible le retour à la version précédente.
Développer plus rapidement avec des tests unitaires
TL;DR Des tests unitiares bien conçus permettent de gagner du temps et de développer plus vite.
Je mets en production plus souvent
TL;DR Pour déployer en production de façon plus sereine, la meilleure technique reste de répéter régulièrement l’exercice, encore et encore, jusqu’à ce qu’il devienne naturel, pour chaque membre de l’équipe.
Compatibilité descendante
TL;DR Je pense que le web a pour vocation d’être accessible au plus grand nombre. Le langage HTML, par exemple, a intégré la compatibilité descendante dès sa conception. Si un ancien navigateur est incapable d’afficher une balise, il l’ignore simplement et essaie d’afficher le reste du document. C’est ce qui permet à la combinaison
<detail>
/<summary>
de s’afficher de manière acceptable dans un vieux browser.Créer un CSV compatible Excel
TL;DR Pour générer un fichier CSV qui peut-être ouvert sans problème dans les versions récentes de Excel, utiliser l’encodage UTF-16LE et le caractère tabulation comme séparateur.
Mon éditeur de tablatures a 20 ans
TL;DR Tabber, mon éditeur de tablature de guitares (pour Windows) a 20 ans. Il fonctionne encore, sous Windows 10 - et il compile encore, enfin presque (avec un vieil IDE). Pour fêter cet honorable anniversaire, je l’ai à nouveau mis en ligne et publié sur GitHub.
Migrer sur le cloud
TL;DR Quels arguments évoquer avec son architecte préféré ou sa DSI, en parlant d’une éventuelle migration vers le cloud ? Les avantages sont la haute disponibilité de l’infrastructure, sa maintenance simplifiée et l’elasticité. Mais il ne faut pas perdre de vue que ces infrastructures sont publiques et que leur coût final peut être difficile à évaluer.
Configurer un proxy pour WSL
TL;DR Pour se connecter à internet dans le sous-système Linux pour Windows, nous pouvons configurer le proxy http à utiliser à l’aide des variables d’environnement
http_proxy
ethttps_proxy
et grâce à la directiveAcquire::http::Proxy
dansapt.conf
.Configurer un proxy pour Powershell
TL;DR La plupart des commandes Powershell comme
Invoke-WebRequest
ouInvoke-RestMethod
acceptent les paramètres-Proxy
et-ProxyUseDefaultCredentials
pour configurer le proxy http à utiliser lors des appels réseau.Machine Learning sur du code source (partie 3)
TL;DR Après un second article où je présente les étapes de collecte et de première analyse de la donnée présentés dans codelab, dans cette derniere partie je décris la mise en oeuvre du modèle d’apprentissage non supervisé et la manière dont on peut l’évaluer et le présenter.
Machine Learning sur du code source (partie 2)
TL;DR Après un premier article où je décris l’approche utilisée pour lancer des algorithmes de machine learning sur son code source et les étapes à réaliser, dans ce second article je présente les étapes de collecte et de première analyse de la donnée présentés dans codelab organisé par Alex Bezzubov et Hugo Mougard lors du DevFest Nantes 2019.
Machine Learning sur du code source (partie 1)
TL;DR Lancer des algorithmes de machine learning sur son code source permet d’extraire des informations sur la structure des projets et d’améliorer l’outillage de développement. Ce sont les méthodes inspirées du traitement automatique du langage naturel qui semblent donner les premiers résultats. Des briques open-source comme Gitbase ou Babelfish permettent de faciliter les étapes de collection et d’analyse de la donnée. Dans ce premier article, je décris l’approche utilisée et les étapes à réaliser.
Configurer un proxy pour Azure CLI
TL;DR Pour se connecter à Azure via la ligne de commande Windows, nous pouvons si nécessaire définir le proxy http à utiliser via les variables d’environnement
HTTP_PROXY
etHTTPS_PROXY
.Déployer une application Spring Boot avec Azure Devops
TL;DR La plateforme Azure Devops permet de constuire et déployer automatiquement, en continu, une application Java Spring Boot dans le cloud Microsoft. Un fichier
yaml
versionné avec le code source permet de configurer comment un tel déploiement peut être réalisé. Dans ce second article, je décris créér et paramétrer Azure Devops par le code.Exécuter une application Spring Boot sur Azure
TL;DR La ressource de type Application Web (ou App Service) permet de déployer rapidement une application Java Spring Boot dans le cloud Microsoft. La pile de runtime Linux et Java SE est celle qui convient pour ce cas d’utilisation. Pour l’environnement de développement, un plan tarifaire gratuit ou basique est suffisant. Dans ce premier article, je décris comment créer et configurer une telle ressource.
Lancer une commande dans une nouvelle fenêtre avec Powershell
TL;DR
Start-Process "cmd.exe" "/C ..."
permet d’ouvrir une nouvelle console dans une fenêtre à part et d’y lancer automatiquement une commande depuis Powershell.Retrouver un sous-dossier avec Powershell
TL;DR
Get-ChildItem -Recurse
permet de retrouver récursivement le chemin vers un fichier ou un répertoire dans Powershell. On peut l’associer à d’autres commandes afin d’exécuter des traitements sur le résultat de la recherche.Azure Serverless: un retour d'expérience
TL;DR Dans cette présentation vidéo, je décris comment les Azure Functions permettent de déployer rapidement du code métier réagissant à des événements dans le cloud Azure. Je détaille les avantages et les inconvénients de ce type d’architecture.
Le talk est illustré avec différents cas d’utilisation rencontrés lors de la mise en place d’une application serverless pour un client.
Injection de dépendances dans les Azure Functions
Update: Les Azure Functions supportent désormais nativement l’injection de dépendances, grâce à un mécanisme inspiré du
Startup
de .Net Core. Cet article reste néanmoins valide pour les autres cas d’utilisation. /UpdateTL;DR La philosophie fondamentalement statique et procédurale des Azure Functions fait qu’il peut être contre-intuitif d’utiliser des concepts avancés de la programmation objet, tels que l’injection de dépendances.
Cependant plusieurs cas d’utilisation peuvent justifier le recours à ces concepts, pour simplifier l’écriture, les tests et la maintenance.
Heureusement, l’arrivée du support de .Net Core 2.x dans le nouveau runtime des Azure Functions (C#) rend possible l’utilisation des outils du le framework – et donc en particulier l’injection de dépendances.
Web2day 2018
TL;DR Le web2day ce sont des conférences techniques, mais ce sont surtout des présentations sur le design, l’entrepreunariat et aussi des sujets de découverte sur le numérique de manière plus générale.
Ce serait tellement long de résumer l’ensemble des sujets abordés. Pour cette année, j’ai choisi d’orienter mon compte-rendu autour du thème “Quelles compétences pour travailler dans un monde en constante évolution”.
Mooc Machine Learning par Andrew Ng
TL;DR Je viens de terminer le Mooc “Machine Learning” enseigné par Andrew Ng sur Coursera. Ce cours va au delà des traditionnelles initiations au machine learning, en expliquant de manière plus formelle quelques uns des algorithmes existants. Il enseigne surtout une vraie méthodologie, dont les principes sont appliquables à un plus grand nombre de projets, permettant de choisir, paramétrer, évaluer et généraliser des modèles et leurs prédictions.
Calculer la couverture de code d'un projet .Net
TL;DR Avec les outils AltCover et ReportGenerator il est relativement facile de générer des statistiques au format HTML sur la couverture de votre code .Net par les tests unitaires.
dotnet test /p:AltCover=true ReportGenerator.exe -reports:coverage.xml -targetdir:./coverage
Les nouveautés ECMAScript (ES6 → ES2018)
TL;DR Cette présentation vidéo reprend les principales nouveautés d’ECMAScript, depuis Javascript 1.5 jusqu’à ES2018, avec des exemples concrets et des cas d’utilisations possibles.
Liste des données personnelles couvertes par le RGPD
TL;DR L’article 4 du RGPD définit les données à caractère personnel comme “toute information se rapportant à une personne physique identifiée ou identifiable”.
Cette définition est assez vaste et peut couvrir énormément d’aspects. Il n’existe pas vraiment de liste officielle et exhaustive : il convient donc d’avoir une approche prudente lors de la mise en place de traitements concernant les données des individus. Voici néanmoins une tentative d’énumération…
Une app .NET Core sur Docker et Kubernetes
TL;DR .NET Core est un framework open source permettant de créer des applications web avec le langage C#. Dans cet article je présente les étapes de la mise en place d’une API REST avec .NET Core.
Devfest Nantes 2017
TL;DR Voici les conférences que j’ai vues (et appréciées) lors de cette édition. Celles que j’ai préféré : Historique d’Android et Documentation as code, des conférences pas hyper techniques mais bien présentées et avec du contenu. Le reste ci-après.
Créer un fichier sans éditeur
TL;DR Pour créer un nouveau fichier exemple.txt sous bash :
cat <<EOF >exemple.txt Remplacer ce texte par le contenu du fichier EOF
Retour sur Devoxx 2017
Je n’ai pas assisté à l’évènement, mais merci internet, ci-après voici une petite sélection personnelle de conférences.
Human Learnings
Bienvenue sur mon blog technique 👨🏽💻 !
Ce blog utilise le logiciel open source Jekyll avec le thème minima et est hébergé sur Github Pages.
Le code source est disponible sur Github.