[{"data":1,"prerenderedAt":311},["Reactive",2],{"navigation":3,"index":204},[4,192,200],{"title":5,"_path":6,"children":7,"icon":191},"Blog","/posts",[8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,101,104,107,110,113,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,176,179,182,185,188],{"title":9,"_path":10},"Testing your API with REST Client","/posts/testing-your-api-with-rest-client",{"title":12,"_path":13},"HTML templating in Xamarin","/posts/html-templating-in-xamarin",{"title":15,"_path":16},"Goodbye Azure Portal, Welcome Azure CLI","/posts/welcome-azure-cli",{"title":18,"_path":19},"Coming across Gitpod","/posts/gitpod",{"title":21,"_path":22},"Handle token retrieval while querying an API","/posts/delegating-handler",{"title":24,"_path":25},"Clean up your local git branches.","/posts/cleaning-git-branches",{"title":27,"_path":28},"Automate configuration of Teams Tab SSO with PowerShell.","/posts/teams-sso-powershell",{"title":30,"_path":31},"How to do a technology watch? - Part 1","/posts/technology-watch-part1",{"title":33,"_path":34},"How to do a technology watch? - Part 2","/posts/technology-watch-part2",{"title":36,"_path":37},"You almost no longer need Key Vault references for Azure Functions.","/posts/azure-functions-custom-configuration",{"title":39,"_path":40},"How to do a technology watch? - Part 3","/posts/technology-watch-part3",{"title":42,"_path":43},"Forget DevOps, the future is already here!","/posts/devops-future",{"title":45,"_path":46},"Week 9, 2021 - Tips I learned this week","/posts/w09-2021-tips-learned-this-week",{"title":48,"_path":49},"Week 12, 2021 - Tips I learned this week","/posts/w12-2021-tips-learned-this-week",{"title":51,"_path":52},"Week 14, 2021 - Tips I learned this week","/posts/w14-2021-tips-learned-this-week",{"title":54,"_path":55},"Once upon a time in .NET","/posts/once-upon-a-time-in-dotnet",{"title":57,"_path":58},"Install your applications with winget","/posts/winget-import",{"title":60,"_path":61},"Customize your applications when installing them with winget","/posts/winget-override",{"title":63,"_path":64},"Week 22, 2021 - Tips I learned this week","/posts/w22-2021-tips-learned-this-week",{"title":66,"_path":67},"How to connect to an Azure SQL Database from C# using Azure AD","/posts/sqlclient-active-directory-authent",{"title":69,"_path":70},"Producing packages for Windows Package Manager","/posts/wingetcreate",{"title":72,"_path":73},"4 tips about GitHub Actions environment variables and contexts","/posts/github-actions-var-and-context",{"title":75,"_path":76},"AzureWebJobsStorage, the secret you don't need in your Function App.","/posts/azure-functions-without-azurewebjobsstorage",{"title":78,"_path":79},"ASP.NET Core - Lost in configuration","/posts/lost-in-configuration",{"title":81,"_path":82},"Week 39, 2021 - Tips I learned this week","/posts/w39-2021-tips-learned-this-week",{"title":84,"_path":85},"Week 41, 2021 - Tips I learned this week","/posts/w41-2021-tips-learned-this-week",{"title":87,"_path":88},"Migrating and open-sourcing my blog","/posts/migrating-blog",{"title":90,"_path":91},"Week 45, 2021 - Tips I learned this week","/posts/w45-2021-tips-learned-this-week",{"title":93,"_path":94},"Organize your GitHub stars with Astral","/posts/astral",{"title":96,"_path":97},"Pulumi with an Azure Blob Storage backend","/posts/pulumi-azure-backend",{"title":99,"_path":100},"IaC Hot Reload with Pulumi Watch","/posts/pulumi-watch",{"title":102,"_path":103},"Week 2, 2022 - Tips I learned this week","/posts/w02-2022-tips-learned-this-week",{"title":105,"_path":106},"Week 3, 2022 - Tips I learned this week","/posts/w03-2022-tips-learned-this-week",{"title":108,"_path":109},"Week 5, 2022 - Tips I learned this week","/posts/w05-2022-tips-learned-this-week",{"title":111,"_path":112},"How to provision an Azure SQL Database with Active Directory authentication","/posts/sqldatabase-active-directory-authent",{"title":114,"_path":115},"Why will I choose Pulumi over Terraform for my next project?","/posts/pulumi-vs-terraform",{"title":117,"_path":118},"Week 19, 2022 - Tips I learned this week","/posts/w19-2022-tips-learned-this-week",{"title":120,"_path":121},"Week 20, 2022 - Tips I learned this week","/posts/w20-2022-tips-learned-this-week",{"title":123,"_path":124},"Keeping secrets secure when using API Clients","/posts/http-clients-secrets",{"title":126,"_path":127},"What made me want to be a developer?","/posts/be-a-developer",{"title":129,"_path":130},"What can we do when stuck with a programming problem?","/posts/get-unstuck",{"title":132,"_path":133},"How did I automate the setup of my developer Windows laptop?","/posts/automate-developer-machine",{"title":135,"_path":136},"Discussion about API clients","/posts/http-clients",{"title":138,"_path":139},"Week 46, 2022 - Tips I learned this week","/posts/w46-2022-tips-learned-this-week",{"title":141,"_path":142},"When Pulumi met Nuke: a .NET love story","/posts/when-pulumi-met-nuke",{"title":144,"_path":145},"A year of learning and sharing - Dev Retro 2022","/posts/2022-retro",{"title":147,"_path":148},"Perform Dynamic Execution of an npm Package","/posts/pnpm-dlx",{"title":150,"_path":151},"Manage multiple Node.js versions","/posts/pnpm-env",{"title":153,"_path":154},"Introducing the Vue.js CI/CD series","/posts/vuecicd-introduction",{"title":156,"_path":157},"Execute commands using your project dependencies","/posts/pnpm-exec",{"title":159,"_path":160},"Vue.js CI/CD: Continuous Integration","/posts/vuecicd-ci",{"title":162,"_path":163},"Who is using pnpm?","/posts/pnpm-who-is-using",{"title":165,"_path":166},"Create an Azure-Ready GitHub Repository using Pulumi","/posts/azure-ready-github-repository",{"title":168,"_path":169},"Deploying to Azure from Azure DevOps without secrets","/posts/ado-workload-identity-federation",{"title":171,"_path":172},"Effortlessly Configure GitHub Repositories for Azure Deployment via OIDC","/posts/scripting-azure-ready-github-repository",{"title":174,"_path":175},"Playing with the .NET 8 Web API template","/posts/playing-with-dotnet8",{"title":177,"_path":178},"Another year of sharing and learning - Dev Retro 2023","/posts/2023-retro",{"title":180,"_path":181},"Week 4, 2024 - Tips I learned this week","/posts/w04-2024-tips-learned-this-week",{"title":183,"_path":184},"Using dependency injection with Azure .NET SDK","/posts/azure-sdk-di",{"title":186,"_path":187},"Having Fun With IT Event Calendars","/posts/it-event-calendars",{"title":189,"_path":190},"Call your Azure AD B2C protected API with authenticated HTTP requests from your JetBrains IDE","/posts/http-clients-oauth2","i-heroicons-newspaper",{"title":193,"_path":194,"children":195,"icon":199},"Goodies","/goodies",[196],{"title":197,"_path":198},"My Git Cheat Sheet","/goodies/gitcheatsheet","i-heroicons-gift-solid",{"title":201,"_path":202,"icon":203},"About","/about","i-heroicons-user-circle-solid",{"_path":205,"_dir":206,"_draft":207,"_partial":207,"_locale":206,"title":208,"description":209,"navigation":207,"hero":210,"roles":226,"sections":258,"cta":299,"_id":306,"_type":307,"_source":308,"_file":309,"_extension":310},"/","",false,"Alexandre Nédélec's personal website","Techwatching.dev is the personal website of Alexandre Nédélec, developer.",{"title":211,"description":212,"links":213},"Hi, I'm Alexandre","Welcome to my personal website.",[214,220],{"label":215,"to":6,"size":216,"color":217,"icon":218,"trailing":219},"See my blog","xl","black","i-heroicons-arrow-right-20-solid",true,{"label":221,"icon":222,"size":216,"color":223,"to":224,"target":225},"Check the code","i-simple-icons-github","gray","https://github.com/TechWatching/techwatching.dev","_blank",{"title":227,"description":228,"items":229},"Who am I?","I write code, but that's not all I do.",[230,235,239,244,249,253],{"title":231,"description":232,"icon":233,"to":234,"target":225},"Developer","I'm primarily coding in C# and TypeScript but I'm interested in other languages too.","i-heroicons-code-bracket-20-solid","https://github.com/TechWatching",{"title":236,"description":237,"icon":238,"to":6},"Blogger","I write technical articles on my blog, sharing what I learn throughout my journey as a developer.","i-ph-pen-nib-fill",{"title":240,"description":241,"icon":242,"to":243,"target":225},"Teacher","I teach a software engineering optional course about DevOps practices at my former graduate engineering school, the ENSEIRB-MATMECA.","i-ph-chalkboard-teacher","https://enseirb-matmeca.bordeaux-inp.fr/fr",{"title":245,"description":246,"icon":247,"to":248},"Speaker","When I get the chance, I give talks at developer conferences and meetups.","i-ph-microphone-stage","/speaking",{"title":250,"description":251,"icon":252},"Eternal learner","Learning, especially in IT, is a never-ending journey that I'm happy to take. I want to keep learning to become a better developer.","i-heroicons-academic-cap",{"title":254,"description":255,"icon":256,"to":257,"target":225},"Meetup organizer","I created the Microsoft Tech Group Bordeaux with some friends in early 2024. We organize meetups about Microsoft related technologies.","i-simple-icons-meetup","https://www.meetup.com/mtg-bordeaux/",[259,281],{"title":260,"description":261,"id":262,"align":263,"image":264,"features":268},"I'm a Puluminary.","Since 2022, I have been part of the Puluminaries community program that recognizes members of the Pulumi community. Pulumi is the technology that made me love Infrastructure as Code and I truly believe that IaC should be:","puluminary","right",{"src":265,"alt":266,"to":267,"target":225},"puluminary-badge.png","Puluminary badge.","https://www.pulumi.com/community/puluminaries",[269,273,277],{"name":270,"description":271,"icon":272},"Easy to learn, use, and be productive with","Infrastructure development should be done using the same practices as software development (programming languages, tools, libraries, tests...).","i-heroicons-cog",{"name":274,"description":275,"icon":276},"Up to date with main cloud providers' resources and features","The infrastructure we provision needs to be able to benefit from the latest resources, innovations, security improvements.","i-heroicons-check",{"name":278,"description":279,"icon":280},"Secure by default","Secrets encryption should be built-in (wherever sensitive data may be, in the configuration, in the the state or in the outputs).","i-heroicons-lock-closed",{"title":282,"description":283,"align":284,"id":285,"image":286,"features":290},"Microsoft Tech Bordeaux","I am one of the co-creators and organizers of the meetup group MTG:Bordeaux, which is part of MTG:France. If you live in or are visiting Bordeaux, come say hi.","left","mtg-bordeaux",{"src":287,"alt":288,"to":289,"target":225},"coonelé.png","A racoon holding a cannelé.","https://www.meetup.com/mtg-bordeaux",[291,295],{"name":292,"description":293,"icon":294},"Tech meetups","Talks about latest technologies (Microsoft and non-Microsoft) and experience feedback from various speakers.","i-ph-brackets-curly-bold",{"name":296,"description":297,"icon":298},"Networking","A community open to everyone and a good place to network.","i-ph-chats-circle-bold",{"title":300,"description":301,"links":302},"Contact","If you have any questions or would like to discuss anything, don't hesitate to drop me a line.",[303],{"label":304,"size":216,"color":217,"to":305},"Let's talk","/contact","content:0.index.yml","yaml","content","0.index.yml","yml",1716749595137]