56,966 blogs · [ { "id": "01a0bb42-139a-71dd-b4c2-698e085eea9a", "title": "AI in the Shadows - Rethinking Authority and Accountability", "url": "https://www.johndehavilland.com/posts/2026-09-15-ai-in-the-org/", "published_at": "2026-09-15T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff070d5582a", "title": "The Robot Army Grows", "url": "https://www.johndehavilland.com/posts/2026-08-25-the-robot-army-grows/", "published_at": "2026-08-25T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07173e251", "title": "When the Model Stops Being the Advantage", "url": "https://www.johndehavilland.com/posts/2026-08-24-when-the-model-stops-being-the-advantage/", "published_at": "2026-08-24T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0725395a4", "title": "Critical Thinking in the Era of AI", "url": "https://www.johndehavilland.com/posts/2026-07-12-critical-thinking/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff072c0e47e", "title": "Work Trend Index Report 2026 - My Notes", "url": "https://www.johndehavilland.com/posts/2026-05-05-workplace-trends/", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0731724d3", "title": "Microsoft Vibe Voice", "url": "https://www.johndehavilland.com/posts/2026-04-30-vibe-voice-open-source/", "published_at": "2026-04-30T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07360e4c8", "title": "When AI Goes Rogue - Of Consequences and Human Ambition", "url": "https://www.johndehavilland.com/posts/2026-04-27-when-ai-goes-rogue/", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07395faab", "title": "Image Gen with OpenAI GPT-Image-2", "url": "https://www.johndehavilland.com/posts/2026-04-22-image-gen-with-open-ai/", "published_at": "2026-04-22T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff073d12d7d", "title": "The Rise of the Anti-hero App", "url": "https://www.johndehavilland.com/posts/2026-02-09-the-rise-of-the-antihero-app/", "published_at": "2026-02-09T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff074b9d9c0", "title": "A Look at Deloitte's Tech Trends 2026", "url": "https://www.johndehavilland.com/posts/2026-01-11-deloitte-tech-trends/", "published_at": "2026-01-11T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0751d0707", "title": "UI Components for AI", "url": "https://www.johndehavilland.com/posts/2025-12-29-ai-ui/", "published_at": "2025-12-29T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07554c53b", "title": "Running AI Models Locally Could be Game Changing", "url": "https://www.johndehavilland.com/posts/2025-12-05-running-ai-locally/", "published_at": "2025-12-05T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0759d04c7", "title": "AI Eats The World - My Thoughts", "url": "https://www.johndehavilland.com/posts/2025-12-03-ai-eats-the-world-commentary/", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff076261100", "title": "Don't let the word-prediction engines fool you.", "url": "https://www.johndehavilland.com/posts/2025-08-19-dont-let-the-word/", "published_at": "2025-08-19T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff076b1f9ee", "title": "Beyond Summarization - Using AI to Deepen Understanding", "url": "https://www.johndehavilland.com/posts/2025-07-31-beyond-summarization/", "published_at": "2025-07-31T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff076bdbb4a", "title": "Rewriting Teamwork - How AI is Reshaping Collaboration", "url": "https://www.johndehavilland.com/posts/2025-07-07-rewriting-teamwork-ai/", "published_at": "2025-07-07T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff077888df8", "title": "From Prompts to Agents - Understanding the 4 Levels of AI Patterns", "url": "https://www.johndehavilland.com/posts/2025-07-01-from-prompts-to-agents/", "published_at": "2025-07-01T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff078403660", "title": "Model-Context-Protocol (MCP) Explained, Simply.", "url": "https://www.johndehavilland.com/posts/2025-06-16-explain-mcp/", "published_at": "2025-06-16T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0785ca7de", "title": "UK Government AI Insights with M365 Copilot", "url": "https://www.johndehavilland.com/posts/2025-06-05-copilot-findings/", "published_at": "2025-06-05T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff078ca72e2", "title": "8 Tips Plus A Bonus To Supercharge Your Development With ChatGPT", "url": "https://www.johndehavilland.com/posts/2023-01-18-8x-developers/", "published_at": "2023-01-18T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07928e67b", "title": "Inbox Zero - Efficiently Efficient", "url": "https://www.johndehavilland.com/posts/2023-01-10-inbox-zero-/", "published_at": "2023-01-10T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff079be8bec", "title": "The Beauty of Low Code", "url": "https://www.johndehavilland.com/posts/2023-01-05-the-beauty-of-low-code/", "published_at": "2023-01-05T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff079e19ea1", "title": "Platform Engineering - the new paradigm", "url": "https://www.johndehavilland.com/posts/2022-12-24-platform-engineering/", "published_at": "2022-12-24T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07a77091d", "title": "3 Interesting Finds and Some Thoughts", "url": "https://www.johndehavilland.com/posts/2022-05-13-thought-of-the-week/", "published_at": "2022-05-13T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07abc84e8", "title": "What On Earth Is Moldable Development", "url": "https://www.johndehavilland.com/posts/2022-04-08-moldable-development/", "published_at": "2022-04-08T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07b89b6bc", "title": "What is a NFT?", "url": "https://www.johndehavilland.com/posts/2021-11-14-what-is-a-nft/", "published_at": "2021-11-14T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07c380871", "title": "The Metaverse, explained, kind of", "url": "https://www.johndehavilland.com/posts/2021-10-27-metaverse-explained/", "published_at": "2021-10-27T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07d21be89", "title": "Live Video Broadcast and Mixing in Azure with Teams", "url": "https://www.johndehavilland.com/posts/2020-11-15-virtual-control-room-azure/", "published_at": "2020-11-15T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07d9f5262", "title": "Some Thoughts on Mary Meeker's Internet Trends 2019", "url": "https://www.johndehavilland.com/posts/2019-06-12-mary-meeker-internet-trends/", "published_at": "2019-06-12T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07dc4e49b", "title": "Using Apache Drill to Access Parquet Files in PowerBI", "url": "https://www.johndehavilland.com/posts/2019-06-10-parquet-files-with-powerbi/", "published_at": "2019-06-10T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07e95602a", "title": "How AI Is Aiding Repression", "url": "https://www.johndehavilland.com/posts/2019-01-17-ai-aiding-repression/", "published_at": "2019-02-03T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff07f4ee033", "title": "AI and the Art of Lying", "url": "https://www.johndehavilland.com/posts/2018-08-22-ai-and-the-art-of-lying/", "published_at": "2018-08-22T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff080088546", "title": "Prepare for Exam 70-774 - Performing Cloud Data Science with Azure Machine Learning", "url": "https://www.johndehavilland.com/posts/2018-04-13-tips-for-exam-70-774/", "published_at": "2018-04-13T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff080a9d5e8", "title": "Building A Great Data Lake (or How to Avoid a Data Swamp)", "url": "https://www.johndehavilland.com/posts/2018-04-02-building-a-great-data-lake/", "published_at": "2018-04-02T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff080fbaea3", "title": "Blockchain Explained Simply", "url": "https://www.johndehavilland.com/posts/2018-03-16-blockchain-explained-simply/", "published_at": "2018-03-16T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff081a141ba", "title": "Demystifying The Ways to Use R in the Microsoft Ecosystem", "url": "https://www.johndehavilland.com/posts/2018-02-25-demystifying-the-ways-to-use-r/", "published_at": "2018-02-25T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0825c0c89", "title": "Getting Started with Deep Learning", "url": "https://www.johndehavilland.com/posts/2018-02-17-getting-started-with-deep-learning/", "published_at": "2018-02-17T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08277c62e", "title": "Seamless Migration to Azure SQL Database with the Database Migration Service", "url": "https://www.johndehavilland.com/posts/2017-12-02-seamless-migration-to-azure-sql-db/", "published_at": "2017-12-02T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08347807a", "title": "A Lap Around Some Machine Learning Frameworks", "url": "https://www.johndehavilland.com/posts/2017-10-26-a-lap-around-machine-learning/", "published_at": "2017-10-26T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff083fec2a2", "title": "The Secrets of Magic or Using PROSE to transform JSON", "url": "https://www.johndehavilland.com/posts/2017-10-19-the-secrets-of-magic/", "published_at": "2017-10-19T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08406b42a", "title": "Azure Machine Learning Workbench", "url": "https://www.johndehavilland.com/posts/2017-09-25-azure-machine-learning/", "published_at": "2017-09-26T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0846ec68a", "title": "Using Azure Event Grid to Monitor Deployments", "url": "https://www.johndehavilland.com/posts/2017-08-18-azure-event-grid-track-deployments/", "published_at": "2017-08-18T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08505dfa9", "title": "Using Azure Custom Decision Service To Drive Recommendations", "url": "https://www.johndehavilland.com/posts/2017-07-26-decision-service-for-recommendations/", "published_at": "2017-07-26T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff085fd2bf8", "title": "Using AMQP with Azure Service Bus and Python", "url": "https://www.johndehavilland.com/posts/2017-07-05-python-servicebus-amqp/", "published_at": "2017-07-05T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff086d2cfdf", "title": "Creating Context with Microsoft QNAmaker", "url": "https://www.johndehavilland.com/posts/2017-06-08-context-in-qnamaker/", "published_at": "2017-06-08T00:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff087129e69", "title": "How To Build a Bot with Azure", "url": "https://www.johndehavilland.com/posts/2017-04-13-build-a-bot-with-azure/", "published_at": "2017-04-13T05:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0871eb360", "title": "How To Scale Azure SQL Data Warehouse in Azure Data Factory", "url": "https://www.johndehavilland.com/posts/2017-03-06-scale-sql-dw-in-data-factory/", "published_at": "2017-03-06T05:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0877c0b68", "title": "Using Azure Functions to extract named entities from news articles", "url": "https://www.johndehavilland.com/posts/2016-08-15-named-entity-recognition-azure/", "published_at": "2016-08-14T05:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff088051e35", "title": "Extracting data out of Excel Files using Azure Batch and Azure Data Factory", "url": "https://www.johndehavilland.com/posts/2016-05-20-extracting-data-from-excel-files-in-azure-datafactory/", "published_at": "2016-05-14T05:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0886c3a60", "title": "Using Azure Batch to unzip large number of files", "url": "https://www.johndehavilland.com/posts/2016-04-23-using-azure-batch-to-unzip-large-number-of-files/", "published_at": "2016-04-23T05:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0894c6c11", "title": "Using Azure Functions to clean up Azure Data Factory", "url": "https://www.johndehavilland.com/posts/2016-04-20-using-azure-functions-to-clean-up-azure-data-factory/", "published_at": "2016-04-20T05:00:00+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0897e5d9b", "title": "Using Azure Resource Manager templates for deploying Drupal 7", "url": "https://www.johndehavilland.com/posts/2015-10-04-arm-templates-for-drupal/", "published_at": "2015-10-05T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0899ed11d", "title": "Azure Resource Manager template apiVersion", "url": "https://www.johndehavilland.com/posts/2015-09-10-azure-arm-template-apiversion/", "published_at": "2015-09-11T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff089c64bba", "title": "Using Azure Data Factory To Count Word Frequency In Tweets", "url": "https://www.johndehavilland.com/posts/2015-06-22-using-azure-data-factory-to-count-word-frequency-in-tweets/", "published_at": "2015-06-23T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08a4de7b4", "title": "Migrating from AWS to Azure using Azure Site Recovery", "url": "https://www.johndehavilland.com/posts/2015-06-02-migrating-from-aws-to-azure/", "published_at": "2015-06-03T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08a5b93e6", "title": "Sync Git master with fork", "url": "https://www.johndehavilland.com/posts/2015-04-10-syncing-git-master-with-fork/", "published_at": "2015-04-11T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08b57e968", "title": "Netflix IMDB Chrome Extension", "url": "https://www.johndehavilland.com/posts/2015-01-07-netflix-imdb-chrome-extension/", "published_at": "2015-01-08T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08b9fc503", "title": "Not Just Code Monkeys", "url": "https://www.johndehavilland.com/posts/2014-12-21-not-just-code-monkeys/", "published_at": "2014-12-22T04:26:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08c2a7441", "title": "Planning Poker Made Easy", "url": "https://www.johndehavilland.com/posts/2014-11-26-planning-poker-made-easy/", "published_at": "2014-11-27T00:53:56+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08d0c5225", "title": "Panel Jumping On Collapse", "url": "https://www.johndehavilland.com/posts/2014-08-20-bootstrapaccordianpaneljumpingoncollapse/", "published_at": "2014-08-20T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08d7d880b", "title": "Remove Git Repo Configuration and History", "url": "https://www.johndehavilland.com/posts/2014-08-12-removegitrepoconfigurationandhistory/", "published_at": "2014-08-12T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08d81cd81", "title": "BREACH Attack", "url": "https://www.johndehavilland.com/posts/2014-07-26-breachattack/", "published_at": "2014-07-26T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08e1469aa", "title": "SSL and Web Security", "url": "https://www.johndehavilland.com/posts/2014-07-14-sslandwebsecurity/", "published_at": "2014-07-14T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08f010c28", "title": "Visual Studio Test Controllers Cross Domain", "url": "https://www.johndehavilland.com/posts/2014-01-25-visualstudiotestcontrollerscrossdomain/", "published_at": "2014-01-25T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff08f9187ab", "title": "Update to the Hacker News App", "url": "https://www.johndehavilland.com/posts/2014-01-19-updatetothehackernewsapp/", "published_at": "2014-01-19T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff090767e25", "title": "JavaScript Allonge", "url": "https://www.johndehavilland.com/posts/2013-12-11-javascriptallonge/", "published_at": "2013-12-11T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0912b5533", "title": "Cleaning up IIS Virtual Directories with PowerShell", "url": "https://www.johndehavilland.com/posts/2013-09-21-cleaningupiisvirtualdirectorieswithpowershell/", "published_at": "2013-09-21T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff091545deb", "title": "Creating a Windows 8 Application", "url": "https://www.johndehavilland.com/posts/2013-09-09-creatingwin8app/", "published_at": "2013-09-09T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff0919300fb", "title": "Learning Node", "url": "https://www.johndehavilland.com/posts/2013-09-01-learningnode/", "published_at": "2013-09-01T19:39:55+00:00" }, { "id": "01a0878f-4763-7281-9b34-cff091fdea99", "title": "Learning Git", "url": "https://www.johndehavilland.com/posts/2013-07-21-learninggit/", "published_at": "2013-07-21T19:39:55+00:00" } ] posts Claim your blog
Back to johndehavilland.com
Blog · corpus.blog/blogs/johndehavilland.com/posts

johndehavilland.com

johndehavilland.com

2026

2025

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013