<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Michaël’s coding thoughts</title><description>I&apos;m a software architect for Info Support in the Netherlands. I try to blog my experiences working on a diverse set of technologies I encounter while working on a variety of projects. My specialties are dotnet, C#, Azure, Microsoft 365, Java, Dapr, DevOps, sharing knowledge and presenting.</description><link>https://blog.hompus.nl/</link><language>en-us</language><atom:link href="https://blog.hompus.nl/feed.xml" rel="self" type="application/rss+xml"/><item><title>PowerPoint shapes have ten lock settings the UI hides from you</title><link>https://blog.hompus.nl/2026/03/20/hidden-shape-lock-settings-in-powerpoint/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/03/20/hidden-shape-lock-settings-in-powerpoint/</guid><description>Every shape in PowerPoint can be locked in ten different ways: disallow movement, resizing, rotation, selection, text editing, and more. But the PowerPoint UI barely exposes any of them.&lt;br/&gt;In this post I show where those locks live in the PPTX XML, how Designer and the built-in unlock option use them, and how I built an app to control them individually.</description><pubDate>Fri, 20 Mar 2026 13:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>PowerPoint</category><category>Designer</category><category>Slide Design Unlocker</category><category>Open XML</category><category>Office</category></item><item><title>Hidden PowerPoint SmartArt layouts you can only find through Designer</title><link>https://blog.hompus.nl/2026/02/26/hidden-powerpoint-smartart-layouts/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/26/hidden-powerpoint-smartart-layouts/</guid><description>The SmartArt gallery in PowerPoint for the desktop does not show every layout that exists. Some only appear through Designer suggestions, and others are tucked away in the web version of PowerPoint.&lt;br/&gt;In this post I catalog every layout I have found that is missing from the desktop SmartArt menu, show what each one looks like, and provide a downloadable PPTX file with copy-and-paste-ready diagrams.</description><pubDate>Thu, 26 Feb 2026 11:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>PowerPoint</category><category>SmartArt</category><category>Designer</category><category>Microsoft 365</category><category>Office</category></item><item><title>After the 12 chapters: keep your arc42 docs alive</title><link>https://blog.hompus.nl/2026/02/25/arc42-after-the-12-chapters/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/25/arc42-after-the-12-chapters/</guid><description>The arc42 template is a great structure, but structure alone does not keep documentation alive. In my talk I end with the practical part: where to store the docs, how to review them, how to avoid drift, and how to use agents as guardrails. This post captures those &quot;after the template&quot; slides in a form you can actually use.</description><pubDate>Wed, 25 Feb 2026 19:30:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Workflow</category><category>Markdown</category><category>Agents</category><category>ADR</category><category>Architecture</category></item><item><title>arc42 chapter 12: Glossary</title><link>https://blog.hompus.nl/2026/02/24/arc42-chapter-12-glossary/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/24/arc42-chapter-12-glossary/</guid><description>Chapter 12 builds shared language. It explains the terms, abbreviations, and domain concepts used throughout the architecture document, so readers do not have to guess what words mean or how the team uses them.&lt;br/&gt;In this article I explain what belongs in chapter 12, what to keep out, a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Tue, 24 Feb 2026 18:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Glossary</category><category>Domain</category><category>Terminology</category><category>Architecture</category></item><item><title>arc42 chapter 11: Risks and technical debt</title><link>https://blog.hompus.nl/2026/02/23/arc42-chapter-11-risks-and-technical-debt/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/23/arc42-chapter-11-risks-and-technical-debt/</guid><description>Chapter 11 keeps uncomfortable truths visible. It records the risks and technical debt that can still bite you later, so they do not stay hidden in someone&apos;s head or scattered across chat logs.&lt;br/&gt;In this article I explain what belongs in chapter 11, what to keep out, a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Mon, 23 Feb 2026 21:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Risks</category><category>Technical Debt</category><category>Risk Management</category><category>Architecture</category></item><item><title>arc42 chapter 10: Quality requirements</title><link>https://blog.hompus.nl/2026/02/19/arc42-chapter-10-quality-requirements/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/19/arc42-chapter-10-quality-requirements/</guid><description>Chapter 10 turns quality goals into testable quality scenarios. It helps you move beyond vague words like &quot;fast&quot; or &quot;secure&quot; by describing concrete situations, expected responses, and measurable targets. ISO/IEC 25010 and Q42 can help as a structure and inspiration, but the real value is iteration: refine goals, learn from reality, and tighten scenarios over time.&lt;br/&gt;In this article I explain what belongs in chapter 10, what to keep out, a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Thu, 19 Feb 2026 19:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Quality</category><category>ISO25010:2023</category><category>Q42</category><category>Scenarios</category><category>Architecture</category></item><item><title>arc42 chapter 9: Architectural decisions</title><link>https://blog.hompus.nl/2026/02/18/arc42-chapter-9-architectural-decisions/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/18/arc42-chapter-9-architectural-decisions/</guid><description>Chapter 9 is your decision timeline. It records the important architectural choices you made along the way, so you can see what was decided, why, and which options were not picked. This chapter often starts small, but it grows as the system grows.&lt;br/&gt;In this article I explain what belongs in chapter 9, what to keep out, a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Wed, 18 Feb 2026 20:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>ADR</category><category>Decisions</category><category>Architecture</category></item><item><title>arc42 chapter 8: Cross-cutting concepts</title><link>https://blog.hompus.nl/2026/02/17/arc42-chapter-8-cross-cutting-concepts/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/17/arc42-chapter-8-cross-cutting-concepts/</guid><description>Chapter 8 is the patterns and practices chapter. It captures the reusable concepts that keep your domain code lean and your runtime scenarios readable: security, resilience, observability, integration rules, and other &quot;plumbing&quot; that should be consistent.&lt;br/&gt;In this article I explain what belongs in chapter 8, what to keep out, a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Tue, 17 Feb 2026 19:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Cross-cutting concepts</category><category>Patterns</category><category>Practices</category><category>Architecture</category></item><item><title>arc42 chapter 7: Deployment view</title><link>https://blog.hompus.nl/2026/02/16/arc42-chapter-7-deployment-view/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/16/arc42-chapter-7-deployment-view/</guid><description>This post is about chapter 7: Deployment view, the last chapter in the &quot;How is it built and how does it run&quot; group. Chapter 7 answers: where do your building blocks run, in which environments, and with which settings? This chapter turns &quot;it works on my machine&quot; from tribal knowledge into shared documentation. No more guessing which settings matter or where things actually run.</description><pubDate>Mon, 16 Feb 2026 21:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Deployment</category><category>Infrastructure</category><category>Configuration</category><category>Docker</category><category>PlantUML</category><category>Architecture</category></item><item><title>arc42 chapter 6: Runtime view</title><link>https://blog.hompus.nl/2026/02/11/arc42-chapter-6-runtime-view/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/11/arc42-chapter-6-runtime-view/</guid><description>Chapter 6 describes runtime behavior: how building blocks collaborate in the scenarios that matter, including alternatives, exceptions, and the bits that tend to hurt in production. It is also the third chapter in the &quot;How is it built and how does it run&quot; group.&lt;br/&gt;In this article I show what belongs in chapter 6, what to keep out, a flexible structure you can copy, plus a small example from Pitstop.</description><pubDate>Wed, 11 Feb 2026 22:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Runtime</category><category>Scenarios</category><category>Diagram</category><category>BPMN</category><category>PlantUML</category><category>Architecture</category></item><item><title>arc42 chapter 5: Building block view</title><link>https://blog.hompus.nl/2026/02/10/arc42-chapter-5-building-block-view/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/10/arc42-chapter-5-building-block-view/</guid><description>Chapter 5 turns strategy into structure using white-box decomposition. It describes the static building blocks of your system, their responsibilities, and the most important dependencies, without diving into runtime flows.&lt;br/&gt;Learn what belongs in chapter 5, what to keep out, and get a copy/paste template plus a real example from Pitstop.</description><pubDate>Tue, 10 Feb 2026 19:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Building blocks</category><category>Components</category><category>PlantUML</category><category>White-box</category><category>System design</category><category>Architecture</category></item><item><title>arc42 chapter 4: Solution strategy</title><link>https://blog.hompus.nl/2026/02/09/arc42-chapter-4-solution-strategy/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/09/arc42-chapter-4-solution-strategy/</guid><description>Chapter 4 opens the &quot;How is it built and how does it run&quot; group. It is where goals, constraints, and context from the first three chapters start to shape the design through a small set of guiding decisions.&lt;br/&gt;In this article I show what belongs in chapter 4, what to keep out, how to handle open strategy questions, and a flexible structure you can copy, plus a small example from Pitstop.</description><pubDate>Mon, 09 Feb 2026 18:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Strategy</category><category>Trade-offs</category><category>ADR</category><category>Architecture</category></item><item><title>arc42 chapter 3: Context and scope</title><link>https://blog.hompus.nl/2026/02/04/arc42-chapter-3-context-and-scope/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/04/arc42-chapter-3-context-and-scope/</guid><description>Chapter 3 draws the boundary of your system. If it is unclear what is inside and outside, integrations and expectations will break first.&lt;br/&gt;In this article I show what belongs in chapter 3, what to keep out, and a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Wed, 04 Feb 2026 19:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Context</category><category>Interfaces</category><category>OpenAPI</category><category>AsyncAPI</category><category>PlantUML</category><category>Architecture</category></item><item><title>arc42 chapter 2: Architecture constraints</title><link>https://blog.hompus.nl/2026/02/03/arc42-chapter-2-architecture-constraints/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/03/arc42-chapter-2-architecture-constraints/</guid><description>Chapter 2 lists the non-negotiables that shape your design space. If you do not write these down early, they will still exist, but they will surprise you later.&lt;br/&gt;In this article I show what belongs in chapter 2, what to keep out, and a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Tue, 03 Feb 2026 19:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Constraints</category><category>ADR</category><category>Governance</category><category>Architecture</category></item><item><title>arc42 chapter 1: Introduction and goals</title><link>https://blog.hompus.nl/2026/02/02/arc42-chapter-1-introduction-and-goals/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/02/arc42-chapter-1-introduction-and-goals/</guid><description>Chapter 1 sets the direction for the entire architecture document. If you do not know why you are building this and who it is for, you cannot design it properly.&lt;br/&gt;In this article I show what belongs in chapter 1, what to keep out, and a minimal structure you can copy, plus a small example from Pitstop.</description><pubDate>Mon, 02 Feb 2026 21:30:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Goals</category><category>Stakeholders</category><category>Quality</category><category>Architecture</category></item><item><title>The Art of Simple Software Architecture Documentation (with arc42) - a practical series</title><link>https://blog.hompus.nl/2026/02/01/arc42-practical-series/</link><guid isPermaLink="true">https://blog.hompus.nl/2026/02/01/arc42-practical-series/</guid><description>After my &quot;The Art of Simple Software Architecture Documentation&quot; talk, a surprising number of people asked for the slides because they saw the deck as a reference guide.&lt;br/&gt;This post is the starting point: why arc42 works so well, how I approach it in practice, and what each of the 12 chapters looks like when you fill them in for real.</description><pubDate>Sun, 01 Feb 2026 20:50:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>arc42</category><category>Documentation</category><category>Templates</category><category>Architecture</category></item><item><title>The best .NET PDF generator was hiding in your browser all along</title><link>https://blog.hompus.nl/2025/08/18/playwright-pdf-generation-in-dotnet/</link><guid isPermaLink="true">https://blog.hompus.nl/2025/08/18/playwright-pdf-generation-in-dotnet/</guid><description>Generating PDFs in .NET is often painful—low-level drawing APIs, rigid libraries, and pricey licenses all get in the way.&lt;br/&gt;Playwright flips the script: design with plain HTML and CSS, then export directly to PDF. This walkthrough shows how to load a template, replace placeholders at runtime, and generate a styled PDF with Playwright in .NET.</description><pubDate>Mon, 18 Aug 2025 22:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Playwright</category><category>PDF</category><category>CSS</category><category>C#</category></item><item><title>Replacing WordPress Plugins with Astro: Code Highlighting, Recent Posts &amp; External Links</title><link>https://blog.hompus.nl/2025/02/10/replacing-wordpress-plugins-with-astro-code-highlighting-recent-posts-external-links/</link><guid isPermaLink="true">https://blog.hompus.nl/2025/02/10/replacing-wordpress-plugins-with-astro-code-highlighting-recent-posts-external-links/</guid><description>As I continue migrating from WordPress to Astro, I am rebuilding key plugin features without third-party dependencies.&lt;br/&gt;In this post, I will show how I replaced syntax highlighting, recent post widgets, and external link management using Astro’s flexible ecosystem.</description><pubDate>Mon, 10 Feb 2025 22:30:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>WordPress</category><category>Astro</category><category>Migration</category><category>Static Site</category><category>Plugins</category><category>Syntax Highlighting</category><category>Recent Posts</category><category>External Links</category><category>Azure</category></item><item><title>Replacing WordPress Plugins with Astro: Acronyms, Meta Tags &amp; Tag Clouds</title><link>https://blog.hompus.nl/2025/02/03/replacing-wordpress-plugins-with-astro-acronyms-meta-tags-tag-clouds/</link><guid isPermaLink="true">https://blog.hompus.nl/2025/02/03/replacing-wordpress-plugins-with-astro-acronyms-meta-tags-tag-clouds/</guid><description>Moving from WordPress to Astro meant rethinking how I implemented various features that were previously handled by plugins. In this post, I explain how I replaced key WordPress plugin functionalities in Astro, including acronyms, metadata, and tag clouds.</description><pubDate>Mon, 03 Feb 2025 22:30:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>WordPress</category><category>Astro</category><category>Migration</category><category>Static Site</category><category>Plugins</category><category>Acronym</category><category>Meta</category><category>Tag</category><category>Cloud</category><category>Azure</category></item><item><title>Migrating from WordPress to Astro: How I Moved My Blog Content</title><link>https://blog.hompus.nl/2025/01/27/migrating-from-wordpress-to-astro-how-i-moved-my-blog-content/</link><guid isPermaLink="true">https://blog.hompus.nl/2025/01/27/migrating-from-wordpress-to-astro-how-i-moved-my-blog-content/</guid><description>After 15 years of blogging with WordPress, I decided to take the plunge and migrate my blog to Astro. This post outlines how I moved my content, step by step, and the tools I used to make the transition.</description><pubDate>Mon, 27 Jan 2025 21:30:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>WordPress</category><category>Astro</category><category>Migration</category><category>Static Sites</category><category>Azure</category></item><item><title>Why I Switched from WordPress to Astro: Faster, Cheaper, and Greener</title><link>https://blog.hompus.nl/2025/01/20/why-i-switched-from-wordpress-to-astro-faster-cheaper-greener/</link><guid isPermaLink="true">https://blog.hompus.nl/2025/01/20/why-i-switched-from-wordpress-to-astro-faster-cheaper-greener/</guid><description>For years, WordPress was my go-to platform for blogging, but it was time for a change—one that aligns better with my values, both environmentally and financially.&lt;br/&gt;In this post, I share the reasons behind my decision to move to an Astro app deployed on Azure Static Web Apps.</description><pubDate>Mon, 20 Jan 2025 21:31:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>WordPress</category><category>Azure</category><category>Astro</category><category>Sustainability</category><category>Costs</category><category>Azure</category></item><item><title>2022, My year as a speaker</title><link>https://blog.hompus.nl/2022/12/31/2022-my-year-as-a-speaker/</link><guid isPermaLink="true">https://blog.hompus.nl/2022/12/31/2022-my-year-as-a-speaker/</guid><description>In the past few years, I have presented multiple sessions all around the world, although mostly virtual. Presenting for a live crowd was something I only did inside The Netherlands before.&lt;br/&gt;With restrictions being lifted during 2022, new opportunities presented themselves and I was able to be in front of a live audience again, even outside the country!</description><pubDate>Sat, 31 Dec 2022 13:27:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Conference</category><category>Speaking</category><category>Azure</category><category>C#</category></item><item><title>Quick PowerPoint tip: Switch between emoji and text rendering</title><link>https://blog.hompus.nl/2022/06/28/quick-powerpoint-tip-switch-between-emoji-and-text-rendering/</link><guid isPermaLink="true">https://blog.hompus.nl/2022/06/28/quick-powerpoint-tip-switch-between-emoji-and-text-rendering/</guid><description>When adding emoticons to your PowerPoint slides, sometimes the rendering might not be as expected.&lt;br/&gt;For example, PowerPoint renders the emoticon only in a textual, monochrome variant on the slide.&lt;br/&gt;So, how can we influence this behavior?</description><pubDate>Tue, 28 Jun 2022 14:32:40 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Emoticon</category><category>PowerPoint</category><category>Quick</category><category>Unicode</category><category>Office</category></item><item><title>Quick PowerPoint tip: Stack emoticons</title><link>https://blog.hompus.nl/2022/06/27/quick-powerpoint-tip-stack-emoticons/</link><guid isPermaLink="true">https://blog.hompus.nl/2022/06/27/quick-powerpoint-tip-stack-emoticons/</guid><description>Learn how to stack emoticons in PowerPoint to create engaging and visually appealing slide titles. Bring your presentations to life with this quick and easy tip!</description><pubDate>Mon, 27 Jun 2022 15:53:37 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Design</category><category>Emoticons</category><category>PowerPoint</category><category>Presentations</category><category>Slide Titles</category><category>Tips</category><category>Office</category></item><item><title>My Advent of Code 2021</title><link>https://blog.hompus.nl/2022/01/03/my-advent-of-code-2021/</link><guid isPermaLink="true">https://blog.hompus.nl/2022/01/03/my-advent-of-code-2021/</guid><description>I recently joined the Advent of Code 2021. During the first 25 days of December, the challenges made me (re)discover many possibilities with C#, some that are long available but maybe not that well known.&lt;br/&gt;I share my code and list of concepts that might inspire you to discover a feature you were not aware of yet!</description><pubDate>Mon, 03 Jan 2022 16:11:10 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Advent of Code</category><category>Code</category><category>CSharp</category><category>GitHub</category><category>C#</category></item><item><title>Using Private Link with a Failover Group for Azure SQL Database</title><link>https://blog.hompus.nl/2021/04/27/using-private-link-with-a-failover-group-for-azure-sql-database/</link><guid isPermaLink="true">https://blog.hompus.nl/2021/04/27/using-private-link-with-a-failover-group-for-azure-sql-database/</guid><description>In a previous article I described how to configure an Azure SQL database failover group for high availability across multiple regions.&lt;br/&gt;But what if you want to limit network traffic to a database in this failover group to only your private networks?&lt;br/&gt;In this article I show how to make a SQL database failover group reachable via the Private Link service and make sure the database stays reachable after a failover.</description><pubDate>Tue, 27 Apr 2021 15:32:11 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Availability</category><category>Azure</category><category>CLI</category><category>Database</category><category>Failover</category><category>Primary</category><category>Secondary</category><category>SQL</category><category>Virtual Network</category><category>VNet</category><category>Azure</category><category>SQL</category></item><item><title>Pixcel: Convert an image into Excel pixel art</title><link>https://blog.hompus.nl/2021/02/08/pixcel-convert-an-image-into-excel-pixel-art/</link><guid isPermaLink="true">https://blog.hompus.nl/2021/02/08/pixcel-convert-an-image-into-excel-pixel-art/</guid><description>Last week I received an invitation for a social work meeting about &quot;Pixel art in spreadsheets&quot;.&lt;br/&gt;I thought: &quot;How hard can it be&quot;.&lt;br/&gt;Well, it is about 25 lines of C# 9.0 hard! 😁</description><pubDate>Mon, 08 Feb 2021 16:24:39 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>EmguCV</category><category>EPPlus</category><category>Fun</category><category>Open Source</category><category>OpenCV</category><category>Pixel Art</category><category>Pixels</category><category>C#</category><category>Office</category></item><item><title>Create an Azure SQL Database Failover Group with the Azure CLI</title><link>https://blog.hompus.nl/2021/01/30/create-an-azure-sql-database-failover-group-with-the-azure-cli/</link><guid isPermaLink="true">https://blog.hompus.nl/2021/01/30/create-an-azure-sql-database-failover-group-with-the-azure-cli/</guid><description>With an Azure SQL Database, Microsoft is already providing high availability with an SLA of at least 99.99%. But if you want to prevent to be affected by a large regional event or want to meet regulatory demands to be able to execute failovers to another region, enabling a failover group is the solution for you.&lt;br/&gt;In this article I will show you how to create a SQL database failover group in two regions using the Azure CLI.</description><pubDate>Sat, 30 Jan 2021 15:35:39 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Availability</category><category>Azure</category><category>CLI</category><category>Database</category><category>Failover</category><category>Primary</category><category>Redundant</category><category>Secondary</category><category>SQL</category><category>Azure</category><category>SQL</category></item><item><title>Using the OpenCV VideoCapture class with the name of a Camera</title><link>https://blog.hompus.nl/2021/01/04/using-the-opencv-videocapture-class-with-the-name-of-a-camera/</link><guid isPermaLink="true">https://blog.hompus.nl/2021/01/04/using-the-opencv-videocapture-class-with-the-name-of-a-camera/</guid><description>To capture images in my applications, I use the VideoCapture class of the EmguCV library, an OpenCV wrapper for .NET.&lt;br/&gt;To choose a specific camera, you need to supply an index value. But getting this number is not straightforward, and as this number can change over time, it might break your application in the future.&lt;br/&gt;So, what if we could use the actual name of the camera instead of the index value?&lt;br/&gt;In this article I will show how to achieve this.</description><pubDate>Mon, 04 Jan 2021 12:25:09 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Camera</category><category>dotnet</category><category>EmguCV</category><category>GitHub</category><category>Image Processing</category><category>NuGet</category><category>OpenCV</category><category>VideoCapture</category><category>C#</category></item><item><title>Add Azure Active Directory authentication to an App Service from an Azure DevOps Pipeline</title><link>https://blog.hompus.nl/2020/11/25/add-azure-active-directory-authentication-to-an-app-service-from-an-azure-devops-pipeline/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/11/25/add-azure-active-directory-authentication-to-an-app-service-from-an-azure-devops-pipeline/</guid><description>Azure App Services make it quite easy for you to add one or more authentication providers to your application. But how do you add Azure AD as a provider using Infrastructure as Code?&lt;br/&gt;In this article I will show you the steps of deploying and securing an Azure App Service with AAD authentication using an Azure pipeline.</description><pubDate>Wed, 25 Nov 2020 11:44:13 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>AAD</category><category>Active Directory</category><category>AD</category><category>ARM</category><category>Azure</category><category>CLI</category><category>DevOps</category><category>IaC</category><category>Infrastructure as Code</category><category>Pipelines</category><category>Azure</category></item><item><title>Manage Azure AD applications from an Azure DevOps Pipeline</title><link>https://blog.hompus.nl/2020/11/11/manage-azure-ad-applications-from-an-azure-devops-pipeline/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/11/11/manage-azure-ad-applications-from-an-azure-devops-pipeline/</guid><description>A lot of people prefer to manage their infrastructure as code. Some infrastructures might require an App Registration in an Azure AD. So, why would we not apply the IaC practice here as well?&lt;br/&gt;An Azure pipeline might stop you, stating “Insufficient privileges to complete the operation”. So, this is not possible, or is it?&lt;br/&gt;In this article I will show you how to make an Azure pipeline in charge of apps in your Azure AD.</description><pubDate>Wed, 11 Nov 2020 13:09:22 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>AAD</category><category>AD</category><category>Azure</category><category>CLI</category><category>DevOps</category><category>IaC</category><category>Infrastructure as Code</category><category>Pipelines</category><category>Azure</category></item><item><title>Three episodes about Machine Learning and Xbox achievements at dotnetFlix</title><link>https://blog.hompus.nl/2020/10/19/three-episodes-about-machine-learning-and-xbox-achievements-at-dotnetflix/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/10/19/three-episodes-about-machine-learning-and-xbox-achievements-at-dotnetflix/</guid><description>I had the honor to be a guest at the dotnetFlix channel, hosted by Sander Molenkamp and Edwin van Wijk. I share more on the techniques, frameworks and libraries I have used and I finish with a demonstration of the finished application.&lt;br/&gt;As there was so much to share, it did not fit in a single episode, so we recorded three parts!</description><pubDate>Mon, 19 Oct 2020 09:59:35 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CSharp</category><category>EmguCV</category><category>EPPlus</category><category>ImgHash</category><category>Machine Learning</category><category>ML.NET</category><category>ONNX</category><category>OpenCV</category><category>Tesseract OCR</category><category>C#</category><category>Machine Learning</category></item><item><title>Speaking about machine learning and Xbox achievements</title><link>https://blog.hompus.nl/2020/10/11/speaking-about-machine-learning-and-xbox-achievements/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/10/11/speaking-about-machine-learning-and-xbox-achievements/</guid><description>A couple of my recent articles were about machine learning and image classification in C#. These posts were the results of a pet project on which I was working. I will be speaking about this project at a couple of events in the coming weeks.</description><pubDate>Sun, 11 Oct 2020 07:24:04 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CSharp</category><category>dotNed</category><category>Machine Learning</category><category>ML.NET</category><category>ONNX</category><category>Presenting</category><category>Speaking</category><category>Xbox</category><category>C#</category><category>Machine Learning</category></item><item><title>Get all prediction scores from your ONNX model with ML.NET</title><link>https://blog.hompus.nl/2020/09/25/get-all-prediction-scores-from-your-onnx-model-with-ml-net/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/09/25/get-all-prediction-scores-from-your-onnx-model-with-ml-net/</guid><description>Recently I wrote an article about getting all prediction scores from your ML.NET model. So, when we want to do this for an ONNX model we have loaded with ML.NET, that should work the same, right?&lt;br/&gt;Not really. Depending on the version of ML.NET, the data types of the downloaded Azure Custom Vision ONNX model are very hard to map on the .NET data types we use.&lt;br/&gt;In this article I will show how we can get the labels and scores from an ONNX model prediction in C#.</description><pubDate>Fri, 25 Sep 2020 14:05:28 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CSharp</category><category>Custom Vision</category><category>Machine Learning</category><category>ML.NET</category><category>ONNX</category><category>Prediction</category><category>C#</category><category>Machine Learning</category></item><item><title>Get all prediction scores from your ML.NET model</title><link>https://blog.hompus.nl/2020/09/14/get-all-prediction-scores-from-your-ml-net-model/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/09/14/get-all-prediction-scores-from-your-ml-net-model/</guid><description>When predicting with an ML.NET model you trained yourself, you might be interested in just more than the highest scoring label. But how do you get the other labels and their corresponding scores?&lt;br/&gt;In this article I will show how to you can get these values.</description><pubDate>Mon, 14 Sep 2020 13:41:27 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Machine Learning</category><category>ML.NET</category><category>Model</category><category>Prediction</category><category>Scores</category><category>C#</category><category>Machine Learning</category></item><item><title>YAML properties as Scalar or Sequence? Or both?!</title><link>https://blog.hompus.nl/2020/08/17/yaml-properties-as-scalar-or-sequence-or-both/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/08/17/yaml-properties-as-scalar-or-sequence-or-both/</guid><description>YAML is a data serialization standard that is intended to be human friendly. For example, it reduces the use of delimiters quite drastically compared to other formats like JSON.&lt;br/&gt;Some YAML file authors might push the boundary for readability even further by having a property where the value can be a sequence with zero or more values, or just a scalar if there is only a single value. Reducing the number of delimiters someone has to read or write even further.&lt;br/&gt;How can this work with C#, a strongly typed language?</description><pubDate>Mon, 17 Aug 2020 12:51:34 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CSharp</category><category>YAML</category><category>YamlDotNet</category><category>C#</category></item><item><title>When your ML.NET training data does not fit: ‘The asynchronous operation has not completed’</title><link>https://blog.hompus.nl/2020/08/05/when-your-ml-net-training-data-does-not-fit-the-asynchronous-operation-has-not-completed/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/08/05/when-your-ml-net-training-data-does-not-fit-the-asynchronous-operation-has-not-completed/</guid><description>When you have created a machine learning model, you will retrain that model when new data is available. But when I recently added a couple of images to the training set of my own ML.net model, I was faced with the following exception:&lt;br/&gt;System.InvalidOperationException: &apos;The asynchronous operation has not completed.&apos;&lt;br/&gt;The application did work for weeks, so what has changed? And more importantly, how to fix this situation?</description><pubDate>Wed, 05 Aug 2020 16:15:12 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CSharp</category><category>dotnet</category><category>Exception</category><category>Machine Learning</category><category>ML.NET</category><category>C#</category><category>Machine Learning</category></item><item><title>Remove docker images from a Container Registry using PowerShell</title><link>https://blog.hompus.nl/2020/07/27/remove-docker-images-from-a-container-registry-using-powershell/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/07/27/remove-docker-images-from-a-container-registry-using-powershell/</guid><description>When using a Docker Registry, like hub.docker.com, you will not often want to delete a published version of an image. You cannot know if someone, somewhere in the world is using that specific version.&lt;br/&gt;But when using a repository as part of your CI/CD pipeline, you might have lots of versions that are not used by anyone anymore. So, what if you want to clean the repository automatically?&lt;br/&gt;In this article, I will show how the delete images by tag, using PowerShell and the Docker Registry HTTP API V2.</description><pubDate>Mon, 27 Jul 2020 12:48:02 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Container Registry</category><category>PowerShell</category><category>Azure</category><category>PowerShell</category></item><item><title>Trick Bamboo’s MSTest parser when we skip running our tests</title><link>https://blog.hompus.nl/2020/07/07/trick-bamboos-mstest-parser-when-we-skip-running-our-tests/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/07/07/trick-bamboos-mstest-parser-when-we-skip-running-our-tests/</guid><description>I use the MSTest Parser task in a Bamboo build plan to add a report of tests that were executed and their outcome. But sometimes you want to skip running tests. For example, you are focusing on other changes in your CI/CD pipeline and want to keep the feedback loop as short as possible.&lt;br/&gt;The problem is, if you don&apos;t run any tests, the parser task will fail. There are no configuration settings to influence this behavior or to disable the task conditionally. I could disable the task manually, but that would affect all other branches at the same time.&lt;br/&gt;So, I found it was time to create a quick work around.</description><pubDate>Tue, 07 Jul 2020 11:57:40 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Bamboo</category><category>CI/CD</category><category>MSTest</category><category>PowerShell</category><category>Task</category><category>Work around</category><category>PowerShell</category></item><item><title>Classify a Bitmap with your downloaded Custom Vision ONNX model</title><link>https://blog.hompus.nl/2020/06/19/classify-a-bitmap-with-your-downloaded-custom-vision-onnx-model/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/06/19/classify-a-bitmap-with-your-downloaded-custom-vision-onnx-model/</guid><description>The Custom Vision service is one of the Azure Cognitive Services that is provided by Microsoft. With custom vision, you can train a model with your own image data. The portal provides a Prediction API for the trained model to classify an image you supply.&lt;br/&gt;There can be reasons why you might not want to use the online REST endpoint and you could prefer an offline model.&lt;br/&gt;To work with machine learning in .NET, we can use ML.NET. There are several tutorials how to use this framework. But none of them combine the use of the Bitmap class with a downloaded ONNX model from the custom vision portal.&lt;br/&gt;In this article I will walk through the steps to set up an application to classify bitmaps using a custom vision model with ML.NET.</description><pubDate>Fri, 19 Jun 2020 14:38:56 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Cognitive Services</category><category>CSharp</category><category>Machine Learning</category><category>ML.NET</category><category>ONNX</category><category>Azure</category><category>C#</category><category>Machine Learning</category></item><item><title>Unable to find an entry point named ‘OrtGetApiBase’ in DLL ‘onnxruntime’ with Microsoft.ML.OnnxTransformer 1.5.0</title><link>https://blog.hompus.nl/2020/06/11/unable-to-find-an-entry-point-named-ortgetapibase-in-dll-onnxruntime-with-microsoft-ml-onnxtransformer-1-5-0/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/06/11/unable-to-find-an-entry-point-named-ortgetapibase-in-dll-onnxruntime-with-microsoft-ml-onnxtransformer-1-5-0/</guid><description>When trying to have an application work with an ONNX model I downloaded from the Microsoft Custom Vision portal, I got the following exception:&lt;br/&gt;TypeInitializationException: EntryPointNotFoundException: Unable to find an entry point named &apos;OrtGetApiBase&apos; in DLL &apos;onnxruntime&apos;.&lt;br/&gt;Searching for the error online did not yield any solutions. After solving the problem, I wanted to share the solution for anyone else running into the same exception.</description><pubDate>Thu, 11 Jun 2020 06:55:46 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Cognitive Services</category><category>Custom Vision</category><category>Exception</category><category>Machine Learning</category><category>ML.NET</category><category>ONNX</category><category>C#</category><category>Machine Learning</category></item><item><title>Using URI’s in YAML with YamlDotNet</title><link>https://blog.hompus.nl/2020/06/01/using-uris-in-yaml-with-yamldotnet/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/06/01/using-uris-in-yaml-with-yamldotnet/</guid><description>Recently, I was using a YAML file for storing some data for a pet project. To work with this YAML in a .NET application, I use the excellent YamlDotNet library by Antoine Aubry.&lt;br/&gt;One of my properties was a URL. Deserializing went fine, but when serializing back to a YAML file, things were not going as intended.&lt;br/&gt;In this short article, I will explain how I did fix this.</description><pubDate>Mon, 01 Jun 2020 05:00:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CSharp</category><category>dotnet</category><category>URI</category><category>YAML</category><category>YamlDotNet</category><category>C#</category></item><item><title>Link an Azure Web App to a Container Registry using ARM templates</title><link>https://blog.hompus.nl/2020/05/22/link-an-azure-web-app-to-a-container-registry-using-arm-templates/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/05/22/link-an-azure-web-app-to-a-container-registry-using-arm-templates/</guid><description>Using Docker images for your Azure web app is not brand-new functionality. But if you want to deploy your container-based web app using ARM templates and use your own Azure container registry, you might discover it&apos;s not as straightforward as you might think.&lt;br/&gt;In this article we will walk through the steps how we can make a connection to the container registry. In the end we will also make sure we do not have to pass along the password during the deployment.</description><pubDate>Fri, 22 May 2020 11:30:19 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ARM</category><category>Azure</category><category>Container Registry</category><category>Linux</category><category>Template</category><category>Web App</category><category>Azure</category></item><item><title>Advanced Lockdown Lecture: OAM &amp; Dapr</title><link>https://blog.hompus.nl/2020/05/20/advanced-lockdown-lecture-oam-dapr/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/05/20/advanced-lockdown-lecture-oam-dapr/</guid><description>These times should not prevent us from sharing knowledge and keep learning about great new technologies. For this, Info Support organized the lockdown lectures.&lt;br/&gt;I was honored to take part in this series and have people learn about the Open Application Model (OAM) and the Distributed Application Runtime (Dapr).&lt;br/&gt;Here I share with you the recording and slides.</description><pubDate>Wed, 20 May 2020 16:28:46 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Dapr</category><category>Lecture</category><category>OAM</category><category>Presenting</category><category>Slides</category><category>Architecture</category><category>Azure</category></item><item><title>ARM Template User-defined Functions: Build a Storage Account Connection String</title><link>https://blog.hompus.nl/2020/05/19/arm-template-user-defined-functions-build-a-storage-account-connection-string/</link><guid isPermaLink="true">https://blog.hompus.nl/2020/05/19/arm-template-user-defined-functions-build-a-storage-account-connection-string/</guid><description>When working with ARM Templates, chances are you have set a value that was a Storage Account Connection String. For example as the value of an appsetting, or as a secret in Azure Key Vault, which I did as an example in a previous blog post.&lt;br/&gt;However, this does not result in the most maintainable and readable piece of JSON. Even worse if you have multiple connection strings in the same template.&lt;br/&gt;In this article I will show that adding a User-Defined Function to our template can improve on this.</description><pubDate>Tue, 19 May 2020 12:52:58 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ARM</category><category>Azure</category><category>Connection String</category><category>Function</category><category>Storage Account</category><category>Template</category><category>Azure</category></item><item><title>WordCamp Nijmegen 2018: sharing my slides</title><link>https://blog.hompus.nl/2018/09/03/wordcamp-nijmegen-2018-sharing-my-slides/</link><guid isPermaLink="true">https://blog.hompus.nl/2018/09/03/wordcamp-nijmegen-2018-sharing-my-slides/</guid><description>This weekend I was speaking at WordCamp Nijmegen about the possibilities of hosting a WordPress site using Microsoft Azure. I’m sharing my Dutch slides here, and soon I hope to add the recording for WordPress TV in this post as well.</description><pubDate>Mon, 03 Sep 2018 19:17:40 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Presenting</category><category>Slides</category><category>Speaking</category><category>WordPress</category><category>Azure</category></item><item><title>‘docker run’ throws “exec user process” errors</title><link>https://blog.hompus.nl/2018/01/24/docker-run-throws-exec-user-process-errors/</link><guid isPermaLink="true">https://blog.hompus.nl/2018/01/24/docker-run-throws-exec-user-process-errors/</guid><description>When recently creating a Linux Docker image using Docker for Windows, I ran into a couple of vague errors. Searching online for the error messages, weren’t any solutions. But luckily some suggestions put me on the right track.&lt;br/&gt;In this post I write about the solutions I found.</description><pubDate>Wed, 24 Jan 2018 15:48:41 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Charset</category><category>Docker</category><category>Docker Desktop</category><category>Linefeed</category><category>Unicode</category><category>Windows</category><category>Docker</category><category>Windows</category></item><item><title>TechDays 2017: sharing my slides</title><link>https://blog.hompus.nl/2017/10/12/techdays-2017-sharing-my-slides/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/10/12/techdays-2017-sharing-my-slides/</guid><description>Today I presented a session, in Dutch, titled &apos;Gebruik Azure Key Vault in je applicaties en zorg dat niemand achter je geheimen komt&apos; during the TechDays 2017 event. The presentation is about using Azure Key Vault to improve security of your solutions.&lt;br/&gt;I’m sharing my slides and code, so you can start improving the security of your solutions and deployments using Azure Key Vault, the Azure Key Vault Configuration Provider and Azure Key Vault Storage Account Keys.</description><pubDate>Thu, 12 Oct 2017 14:09:28 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Key Vault</category><category>Presenting</category><category>Speaking</category><category>TechDays</category><category>Azure</category></item><item><title>Bing for business – Part 2: People search</title><link>https://blog.hompus.nl/2017/09/28/bing-for-business-part-2-people-search/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/09/28/bing-for-business-part-2-people-search/</guid><description>This will be my second post about Bing for business: “the new intelligent search experience for Office 365 and Microsoft 365, which uses AI and the Microsoft Graph to deliver more relevant search results based on your organizational context”.&lt;br/&gt;In this post, we will be focusing on “People Search”.</description><pubDate>Wed, 27 Sep 2017 22:49:13 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Bing</category><category>Bing for business</category><category>Office 365</category><category>Preview</category><category>Search</category><category>Microsoft 365</category></item><item><title>Bing for business – Part 1: Branding</title><link>https://blog.hompus.nl/2017/09/25/bing-for-business-part-1-branding/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/09/25/bing-for-business-part-1-branding/</guid><description>At the Ignite conference keynote Microsoft announced Bing for business. Winvision is one of the partners participating in the current preview.&lt;br/&gt;With the public announcement of Bing for business, I’m now allowed to show you what the service is offering our company.&lt;br/&gt;In the coming days I will be posting about several parts of Bing for business, starting with “branding”.</description><pubDate>Mon, 25 Sep 2017 21:39:42 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Bing</category><category>Bing for business</category><category>Office 365</category><category>Preview</category><category>Search</category><category>Microsoft 365</category></item><item><title>Adding Application Logging (Blob) to an Azure Web App Service using PowerShell</title><link>https://blog.hompus.nl/2017/05/29/adding-application-logging-blob-to-a-azure-web-app-service-using-powershell/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/05/29/adding-application-logging-blob-to-a-azure-web-app-service-using-powershell/</guid><description>The other day I wanted to configure Application Logging on Blob Storage for a Web App Service and found out this needs a SAS URL. And this is something an ARM template can’t provide for you.&lt;br/&gt;In this post, I will walk you through the necessary PowerShell code to run.</description><pubDate>Mon, 29 May 2017 13:48:03 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ARM</category><category>Azure</category><category>PowerShell</category><category>SAS</category><category>Template</category><category>Web App Service</category><category>Azure</category><category>PowerShell</category></item><item><title>“Missing” Azure APIs when adding permissions to an Azure AD app</title><link>https://blog.hompus.nl/2017/03/25/missing-azure-apis-when-adding-permissions-to-an-azure-ad-app/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/03/25/missing-azure-apis-when-adding-permissions-to-an-azure-ad-app/</guid><description>When I recently was configuring an Azure AD application, I couldn’t assign the delegated permissions for an Azure SQL Database. It did cost me a full day to find out the Azure Portal user interface has an unexpected user interaction when it comes to selecting APIs.&lt;br/&gt;In this post, I’ll explain how you can find all APIs available for your application.</description><pubDate>Sat, 25 Mar 2017 11:57:15 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>AD</category><category>App</category><category>Azure</category><category>Portal</category><category>UI</category><category>Azure</category></item><item><title>Add secrets to your Azure Key Vault using ARM templates</title><link>https://blog.hompus.nl/2017/03/20/add-secrets-to-your-azure-key-vault-using-arm-templates/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/03/20/add-secrets-to-your-azure-key-vault-using-arm-templates/</guid><description>Azure Key Vault is a great resource to store your secrets like passwords, connection strings, certificates, etc. and access them programmatically. A great feature is to add or update your secrets during deployment so you do not have to manage your secrets manually.&lt;br/&gt;In this article, I will explain how you can add secrets to an Azure Key Vault using ARM templates.</description><pubDate>Mon, 20 Mar 2017 15:33:05 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ARM</category><category>Azure</category><category>Key Vault</category><category>secrets</category><category>templates</category><category>Azure</category></item><item><title>Create Virtual Applications and Directories in your Azure Web App using ARM templates</title><link>https://blog.hompus.nl/2017/03/13/create-virtual-applications-and-directories-in-your-azure-web-app-using-arm-templates/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/03/13/create-virtual-applications-and-directories-in-your-azure-web-app-using-arm-templates/</guid><description>When I start on a project that uses Azure resources, one of the first things I do is build the infrastructure and automate the deployment using VSTS or TFS.&lt;br/&gt;In this post I‘ll explain how you can extend Azure Web Apps with Virtual Applications and Virtual Directories using ARM templates.</description><pubDate>Mon, 13 Mar 2017 15:17:22 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ARM</category><category>Azure</category><category>Template</category><category>TFS</category><category>Virtual Application</category><category>Virtual Directory</category><category>VSTS</category><category>Azure</category></item><item><title>PowerShell script: ConvertFrom-SiteMap</title><link>https://blog.hompus.nl/2017/02/11/powershell-script-convertfrom-sitemap/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/02/11/powershell-script-convertfrom-sitemap/</guid><description>The other day I needed to get the URLs for all pages in my blog for some PowerShell scripting I wanted to do. Like most websites, this blog has a sitemap and I wanted to use that as a source.&lt;br/&gt;As I couldn’t find any existing PowerShell scripts on the web that I could use, I just wrote one myself.&lt;br/&gt;Now I like to share this script with you.</description><pubDate>Sat, 11 Feb 2017 22:46:48 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>cmdlet</category><category>PowerShell</category><category>sitemap</category><category>PowerShell</category></item><item><title>dotNed Saturday 2017: sharing my slides</title><link>https://blog.hompus.nl/2017/02/08/dotned-saturday-2017-sharing-my-slides/</link><guid isPermaLink="true">https://blog.hompus.nl/2017/02/08/dotned-saturday-2017-sharing-my-slides/</guid><description>Last month I gave my session, in Dutch, titled Serious Request, Azure als schaalbaar platform during the dotNed Saturday event.&lt;br/&gt;I’m sharing my slides so you can start building awesome, secure, scalable, performing and monitorable web platforms using Azure.</description><pubDate>Wed, 08 Feb 2017 17:43:41 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>dotNed</category><category>PowerPoint</category><category>Presenting</category><category>Serious Request</category><category>Slides</category><category>Speaking</category><category>Azure</category></item><item><title>Speaking at dotNed Saturday 2017 – Serious Request, Azure as scalable platform</title><link>https://blog.hompus.nl/2016/12/31/speaking-at-dotned-saturday-2017-serious-request-azure-as-scalable-platform/</link><guid isPermaLink="true">https://blog.hompus.nl/2016/12/31/speaking-at-dotned-saturday-2017-serious-request-azure-as-scalable-platform/</guid><description>I’m invited to speak at dotNed Saturday, the Dutch .NET community event.&lt;br/&gt;My session, is called “Serious Request, Azure als schaalbaar platform” and I’ll be talking about my experiences using Azure to build a high available, secure and scalable platform for digital donations. This platform is used during “3FM Serious Request”, the annual charity event organized by the Dutch radio station 3FM for the Dutch Red Cross.</description><pubDate>Sat, 31 Dec 2016 11:24:13 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>dotNed</category><category>Presenting</category><category>Serious Request</category><category>Speaking</category><category>Azure</category></item><item><title>Storing entities on Azure blob storage from a sandboxed CRM plug-in</title><link>https://blog.hompus.nl/2016/12/14/storing-entities-on-azure-blob-storage-from-a-sandboxed-crm-plug-in/</link><guid isPermaLink="true">https://blog.hompus.nl/2016/12/14/storing-entities-on-azure-blob-storage-from-a-sandboxed-crm-plug-in/</guid><description>This post will be about a new sample of using “Sandboxable”.&lt;br/&gt;We will walk through the steps to create a Microsoft Dynamics CRM plug-in that on deletion of any record, stores the deleted data as a file on Azure blob storage.</description><pubDate>Wed, 14 Dec 2016 08:53:46 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Blob</category><category>CRM</category><category>NuGet</category><category>Plugin</category><category>Sandbox</category><category>SDK</category><category>Azure</category><category>C#</category><category>Dynamics CRM</category></item><item><title>Sending a message to an Azure queue from a sandboxed CRM plug-in</title><link>https://blog.hompus.nl/2016/11/25/sending-a-message-to-an-azure-queue-from-a-sandboxed-crm-plug-in/</link><guid isPermaLink="true">https://blog.hompus.nl/2016/11/25/sending-a-message-to-an-azure-queue-from-a-sandboxed-crm-plug-in/</guid><description>A while back I&apos;ve introduced Sandboxable. It&apos;s a means to use NuGet packages that normally are not available for code that runs with Partial Trust.&lt;br/&gt;In this post, we will walk through the steps to create a Microsoft Dynamics CRM plug-in that will add a message to an Azure queue.</description><pubDate>Fri, 25 Nov 2016 06:58:11 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>CRM</category><category>NuGet</category><category>Plugin</category><category>Queue</category><category>Sandbox</category><category>SDK</category><category>Azure</category><category>C#</category><category>Dynamics CRM</category></item><item><title>Introducing Sandboxable: use your favorite (Azure) NuGet packages in a sandbox environment</title><link>https://blog.hompus.nl/2016/07/13/introducing-sandboxable-use-your-favorite-azure-nuget-packages-in-a-sandbox-environment/</link><guid isPermaLink="true">https://blog.hompus.nl/2016/07/13/introducing-sandboxable-use-your-favorite-azure-nuget-packages-in-a-sandbox-environment/</guid><description>I would like to introduce to you Winvision’s first open source project: Sandboxable.&lt;br/&gt;Sandboxable enables your project to utilize functionality provided by other (Microsoft) libraries that normally are not available in a Partial Trust environment like the Microsoft Dynamics CRM sandbox process.&lt;br/&gt;The project offers modified NuGet packages that will run with Partial Trust.</description><pubDate>Wed, 13 Jul 2016 14:08:37 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>CRM</category><category>NuGet</category><category>Open Source</category><category>Plugin</category><category>SDK</category><category>Azure</category><category>C#</category><category>Dynamics CRM</category></item><item><title>Attending the Microsoft Build 2016 conference</title><link>https://blog.hompus.nl/2016/03/30/attending-the-microsoft-build-2016-conference/</link><guid isPermaLink="true">https://blog.hompus.nl/2016/03/30/attending-the-microsoft-build-2016-conference/</guid><description>This week I’ll be attending the Microsoft Build 2016 conference in San Francisco.&lt;br/&gt;Lots of news to be expected for developers covering the many technologies Microsoft is putting on the market.</description><pubDate>Wed, 30 Mar 2016 06:07:34 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>BUILD</category><category>Conference</category><category>Microsoft</category><category>Visual Studio</category><category>Windows</category></item><item><title>My road to MCSD: Universal Windows Platform</title><link>https://blog.hompus.nl/2016/02/11/my-road-to-mcsd-universal-windows-platform/</link><guid isPermaLink="true">https://blog.hompus.nl/2016/02/11/my-road-to-mcsd-universal-windows-platform/</guid><description>Recently I got certified by Microsoft as Solutions Developer for the Windows Universal Platform by taking two exams that are currently in beta. Because the exams are in beta there is not much guidance to be found online. I noticed during the exams I was being tested on skills not mentioned on the Microsoft Learning web site.&lt;br/&gt;In this post I’ll cover these differences and how I prepared for the exams so it’ll be easier for you to get certified.</description><pubDate>Thu, 11 Feb 2016 15:36:59 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Certification</category><category>Exam</category><category>MCSD</category><category>UWP</category><category>C#</category><category>Windows</category></item><item><title>JSON on a diet… how to shrink your DTO’s – Part 2: Skip empty collections</title><link>https://blog.hompus.nl/2015/12/04/json-on-a-diet-how-to-shrink-your-dtos-part-2-skip-empty-collections/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/12/04/json-on-a-diet-how-to-shrink-your-dtos-part-2-skip-empty-collections/</guid><description>This is the second part in a series of posts about reducing the amount of data transferred between ASP.NET Web API or Azure Mobile App Service and the (mobile) client.&lt;br/&gt;In this post we will squeeze a little bit more from our DTOs (Data Transfer Objects).</description><pubDate>Fri, 04 Dec 2015 17:19:03 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ASP.NET</category><category>Collections</category><category>DefaultValue</category><category>JSON</category><category>JSON.NET</category><category>Mobile App Service</category><category>Web API</category><category>C#</category></item><item><title>Highlight your Selected Pivot Header in a Universal Windows Platform app</title><link>https://blog.hompus.nl/2015/11/18/highlight-your-selected-pivot-header-in-a-universal-windows-platform-app/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/11/18/highlight-your-selected-pivot-header-in-a-universal-windows-platform-app/</guid><description>Not long ago I wrote a blog post about Responsive Pivot Headers in Universal Windows Platform apps. Paul responded to this post asking how to change the background of the selected item, just like the example I posted on top of the post.&lt;br/&gt;It&apos;s a great question and I&apos;m sorry I didn&apos;t cover this part so the pivot looks more like the example image.&lt;br/&gt;An omission I want to correct with this blog post.</description><pubDate>Wed, 18 Nov 2015 18:50:50 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Pivot</category><category>UWP</category><category>Xaml</category><category>C#</category><category>Windows</category></item><item><title>JSON on a diet… how to shrink your DTO’s – Part 1: Default Value Handling</title><link>https://blog.hompus.nl/2015/11/06/json-on-a-diet-how-to-shrink-your-dtos-part-1-default-value-handling/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/11/06/json-on-a-diet-how-to-shrink-your-dtos-part-1-default-value-handling/</guid><description>These days JSON is used a lot. For storing data, for storing settings, for describing other JSON files, and often for transporting information between server and client using DTOs (Data Transfer Objects).&lt;br/&gt;Recently I was monitoring the data transferred from one of my own Web API controllers to a mobile app. I discovered the amount of data transferred was way more then expected. This inspired me try to reduce the size of the transferred data. In this and following blog posts I will describe the different options you can use and combine.&lt;br/&gt;You can download the source code at the end of my article.</description><pubDate>Fri, 06 Nov 2015 14:08:38 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ASP.NET</category><category>DefaultValue</category><category>JSON</category><category>JSON.NET</category><category>Mobile App Service</category><category>Web API</category><category>C#</category></item><item><title>Hyper-V VM’s missing in Windows 10 (Insiders Build, Slow Ring)</title><link>https://blog.hompus.nl/2015/10/20/hyper-v-vms-missing-in-windows-10-insiders-build-slow-ring/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/10/20/hyper-v-vms-missing-in-windows-10-insiders-build-slow-ring/</guid><description>My PC just got upgraded to the latest Windows 10 Insiders build (slow ring, build 10565) and suddenly a couple of VMs were missing from the Hyper-V Manager.&lt;br/&gt;I first suspected the security settings on the directories were the problem, but my changes didn&apos;t fix anything. After browsing around the internet, I found a couple of fixes that might help you if you have the same problem.</description><pubDate>Tue, 20 Oct 2015 07:03:15 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Registry</category><category>Hyper-V</category><category>PowerShell</category></item><item><title>Responsive Pivot Headers in Universal Windows Platform apps</title><link>https://blog.hompus.nl/2015/09/04/responsive-pivot-headers-in-universal-windows-platform-apps/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/09/04/responsive-pivot-headers-in-universal-windows-platform-apps/</guid><description>For a Universal Windows App I wanted to implement a Pivot. Reading the guidelines for tabs and pivots by Microsoft I got inspired by the examples given. However, no code samples are supplied so there is no indication how to actually create this in your own Xaml app.&lt;br/&gt;In this blogpost I will show the different steps to get the basics done and I will supply the source code for you to use.</description><pubDate>Fri, 04 Sep 2015 16:31:48 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>AdaptiveTrigger</category><category>RelativePanel</category><category>Responsive</category><category>UWP</category><category>Xaml</category><category>C#</category><category>Windows</category></item><item><title>Updated pull-down-to-refresh panel to work after navigating</title><link>https://blog.hompus.nl/2015/06/18/updated-pull-down-to-refresh-panel-to-work-after-navigating/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/06/18/updated-pull-down-to-refresh-panel-to-work-after-navigating/</guid><description>I received a couple of comments on my article about making the pull-down-to-refresh work with a Windows Phone virtualizing list control. The problem was that the functionality stopped working after navigating away from the page containing the ItemsControl. Today I committed the code to GitHub to fix this issue.</description><pubDate>Thu, 18 Jun 2015 12:32:06 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ListBox</category><category>Performance</category><category>ScrollViewer</category><category>Silverlight</category><category>WP8</category><category>WP8.1</category><category>Xaml</category><category>C#</category><category>Windows Phone</category></item><item><title>Get the Entity Type Code using JavaScript only (not using remote services)</title><link>https://blog.hompus.nl/2015/05/28/entity-type-code-using-javascript-only/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/05/28/entity-type-code-using-javascript-only/</guid><description>Every Microsoft Dynamics CRM developer has faced this problem: How to get the entity type code for your custom entity in JavaScript. If you need the entity type code for the current form there are several supported ways to get it. But when you want the entity type code for a different custom entity, you are in trouble. The SDK has no real solution for this, and hard-coding is no option as the numbers can change per deployment.&lt;br/&gt;Digging through the client side object model I found a nice, although still unsupported, treasure which works with CRM 2011 and up, including the latest installment: 2015 update 1.</description><pubDate>Thu, 28 May 2015 07:12:15 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CRM</category><category>Dynamics</category><category>Entity Type Code</category><category>Entity Type Name</category><category>JavaScript</category><category>Dynamics CRM</category></item><item><title>Make pull-down-to-refresh work with a Windows Phone virtualizing list control</title><link>https://blog.hompus.nl/2015/02/04/make-pull-down-to-refresh-work-with-a-windows-phone-virtualizing-list-control/</link><guid isPermaLink="true">https://blog.hompus.nl/2015/02/04/make-pull-down-to-refresh-work-with-a-windows-phone-virtualizing-list-control/</guid><description>The other day I was working on a Windows Phone app. I wanted to add a &quot;pull down to refresh&quot; panel to a large list of images. Just like the Facebook and Twitter apps have.&lt;br/&gt;As Microsoft does not provide this functionality in their default controls I started searching the web if somebody else has build something like this already.&lt;br/&gt;I found a blog post by Jason Ginchereau where he provided this functionality for Windows Phone 7.&lt;br/&gt;In my app I use an ItemsControl with a VirtualizingStackPanel to prevent memory issues. After I added the PullDownToRefreshPanel control to my list and started testing it on my phone, I ran into some issues.&lt;br/&gt;In this blog post I will describe my contributions to fix these 2 issues and I will supply the source code for you to use.</description><pubDate>Wed, 04 Feb 2015 18:30:31 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ListBox</category><category>Performance</category><category>ScrollViewer</category><category>WP8</category><category>WP8.1</category><category>Xaml</category><category>C#</category><category>Windows Phone</category></item><item><title>Backup your Azure SQL Database to Blob Storage using code</title><link>https://blog.hompus.nl/2013/03/13/backup-your-azure-sql-database-to-blob-storage-using-code/</link><guid isPermaLink="true">https://blog.hompus.nl/2013/03/13/backup-your-azure-sql-database-to-blob-storage-using-code/</guid><description>With Windows Azure we can use Windows Azure SQL Database service (formerly known as SQL Azure) when we need a Relational Database. Microsoft offers a 99.9% monthly SLA for this service. But Microsoft doesn&apos;t provide you with the service to restore your data to a moment back in time when you (accidentally) delete of corrupt data.&lt;br/&gt;To have a backup in time I wrote some code to allow a Worker Role to backup my Windows Azure SQL Database every hour. Most solutions you find online are relying on the REST Endpoints but the address of the endpoint is different depending on which datacenter your database is hosted. I found a different solution where you only need the connection string to your database using the DacServices.</description><pubDate>Wed, 13 Mar 2013 15:11:30 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Azure</category><category>Backup</category><category>DAC</category><category>Database</category><category>SQL</category><category>Worker Role</category><category>Azure</category><category>SQL</category></item><item><title>Speaking at the Dutch Techdays 2013</title><link>https://blog.hompus.nl/2013/03/12/speaking-at-the-dutch-techdays-2013/</link><guid isPermaLink="true">https://blog.hompus.nl/2013/03/12/speaking-at-the-dutch-techdays-2013/</guid><description>I am invited to speak at the Techdays 2013 in the Netherlands. The event is held on the 7th &amp; 8th of March at the World Forum in Den Haag.</description><pubDate>Tue, 12 Mar 2013 06:55:31 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Presenting</category><category>Serious Request</category><category>Slides</category><category>Speaking</category><category>TechDays</category><category>Azure</category></item><item><title>DotNed Podcast: “Michaël Hompus over Serious Request en Windows Azure”</title><link>https://blog.hompus.nl/2013/02/25/dotned-podcast-michael-hompus-over-serious-request-en-windows-azure/</link><guid isPermaLink="true">https://blog.hompus.nl/2013/02/25/dotned-podcast-michael-hompus-over-serious-request-en-windows-azure/</guid><description>dotNed is the Dutch .NET user group and organizes several meetings each year for the .NET community. Maurice de Beijer interviewed me about my experiences using Windows Azure to build a high available and scaling platform for 3FM Serious Request.</description><pubDate>Mon, 25 Feb 2013 16:49:07 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>dotNed</category><category>podcast</category><category>Serious Request</category><category>Speaking</category><category>Azure</category></item><item><title>Filtering on a tinyint with Entity Framework</title><link>https://blog.hompus.nl/2013/01/21/filtering-on-a-tinyint-with-entity-framework/</link><guid isPermaLink="true">https://blog.hompus.nl/2013/01/21/filtering-on-a-tinyint-with-entity-framework/</guid><description>When writing .NET code to access a SQL database we often rely on the Entity Framework (EF). The EF makes it very easy to retrieve data from the database by generating a SQL Query for us. But we should not trust it blindly, as the EF can also generate a bad query.&lt;br/&gt;It will return the correct data yes, but at what performance cost?</description><pubDate>Mon, 21 Jan 2013 13:57:32 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CAST</category><category>Contains</category><category>LINQ</category><category>tinyint</category><category>C#</category><category>SQL</category></item><item><title>Provisioning a default layout and content when adding a wiki page</title><link>https://blog.hompus.nl/2012/06/07/provisioning-a-default-layout-and-content-when-adding-a-wiki-page/</link><guid isPermaLink="true">https://blog.hompus.nl/2012/06/07/provisioning-a-default-layout-and-content-when-adding-a-wiki-page/</guid><description>Recently I was challenged with the task to set the layout and content of a wiki page when a new page is added to a team site. As I&apos;m used to work with SharePoint publishing the task sounded easy, but I was wrong.</description><pubDate>Thu, 07 Jun 2012 13:07:58 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Events</category><category>SharePoint 2010</category><category>SharePoint Foundation</category><category>Wiki</category><category>SharePoint</category></item><item><title>Migrating a catch-all maildir to Office 365</title><link>https://blog.hompus.nl/2012/05/18/migrating-a-catch-all-maildir-to-office-365/</link><guid isPermaLink="true">https://blog.hompus.nl/2012/05/18/migrating-a-catch-all-maildir-to-office-365/</guid><description>I&apos;ve been running my own mail server at home for years. But it requires a reliable connection and some maintenance once in a while. And of course it always breaks when I&apos;m on the other side of the world.&lt;br/&gt;To free myself of that burden I decided to make the move to Office 365. However I discovered there is no way to set my account as a catch-all account. This is not possible at all!&lt;br/&gt;So I made my own scripts to add all email addresses I used in the past as an alias on my mailbox.</description><pubDate>Fri, 18 May 2012 15:49:12 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Catch-All</category><category>Maildir</category><category>Office 365</category><category>Microsoft 365</category><category>PowerShell</category></item><item><title>Make your browser cache the output of an HttpHandler</title><link>https://blog.hompus.nl/2011/03/11/make-your-browser-cache-the-output-of-an-httphandler/</link><guid isPermaLink="true">https://blog.hompus.nl/2011/03/11/make-your-browser-cache-the-output-of-an-httphandler/</guid><description>Recently I worked on an HttpHandler implementation that is serving images from a backend system. Although everything seemed to work as expected it was discovered images were requested by the browser on every page refresh instead of caching the browser them locally. Together with my colleague Bert-Jan I investigated and solved the problem which will be explained in this post.</description><pubDate>Fri, 11 Mar 2011 13:30:36 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>200</category><category>304</category><category>Cache</category><category>HTTP</category><category>HttpHandler</category><category>If-Modified-Since</category><category>Last-Modified</category><category>C#</category></item><item><title>Translating URLs using Alternate Access Mappings from code</title><link>https://blog.hompus.nl/2011/02/23/translating-urls-using-the-alternate-access-mappings/</link><guid isPermaLink="true">https://blog.hompus.nl/2011/02/23/translating-urls-using-the-alternate-access-mappings/</guid><description>With SharePoint it&apos;s easy to configure multiple zones for your SharePoint Web Application. For example you have a Publishing Web Site with two zones.&lt;br/&gt;After the content is published it&apos;ll also be available on the anonymous site and most of the URLs will be automatically translated to corresponding zone URL.&lt;br/&gt;There are however some places this is not the case.</description><pubDate>Wed, 23 Feb 2011 16:48:22 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Alternate Access Mapping</category><category>Anonymous</category><category>SharePoint 2007</category><category>SharePoint 2010</category><category>URI</category><category>WSS 3.0</category><category>SharePoint</category></item><item><title>Configure people picker over a one-way trust using PowerShell</title><link>https://blog.hompus.nl/2011/01/17/configure-people-picker-over-a-one-way-trust-using-powershell/</link><guid isPermaLink="true">https://blog.hompus.nl/2011/01/17/configure-people-picker-over-a-one-way-trust-using-powershell/</guid><description>In a previous post I have written about Using the people picker over a one-way trust. In this post I use STSADM commands as there are no other ways to configure this. A downside of the STSADM command is your domain password being visible on the command prompt in clear text for everybody to read, or to retrieve from the command line history.&lt;br/&gt;SharePoint 2010 introduces several cmdlets to replace the “old” STSADM commands. Microsoft has posted an overview of the STSADM to Windows PowerShell mapping. However the commands for configuring the people picker are not available.</description><pubDate>Mon, 17 Jan 2011 18:16:47 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>cmdlet</category><category>People Picker</category><category>SharePoint 2010</category><category>stsadm</category><category>Trust</category><category>PowerShell</category><category>SharePoint</category></item><item><title>Joining an IQueryable with an IEnumerable</title><link>https://blog.hompus.nl/2010/08/26/joining-an-iqueryable-with-an-ienumerable/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/08/26/joining-an-iqueryable-with-an-ienumerable/</guid><description>With the introduction of LINQ the difference between writing code for accessing a lists of objects in memory and accessing a list of data in an external data source like SQL is vanishing. Combining a in memory with a external list in a single query was not yet possible. With the introduction of .NET Framework 4.0 this has changed.</description><pubDate>Thu, 26 Aug 2010 15:33:55 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Contains</category><category>IEnumerable</category><category>IQueryable</category><category>Join</category><category>LINQ</category><category>C#</category><category>SQL</category></item><item><title>Keeping your SharePoint 2010 development databases small</title><link>https://blog.hompus.nl/2010/06/22/keeping-your-sharepoint-2010-development-databases-small/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/06/22/keeping-your-sharepoint-2010-development-databases-small/</guid><description>With SharePoint 2010 the amount of databases on your SQL server has grown quite a bit. By default most of these databases have their recovery model set to &apos;FULL&apos;. After some time you will discover you&apos;re running out of space.</description><pubDate>Tue, 22 Jun 2010 12:55:40 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>SharePoint 2007</category><category>SharePoint 2010</category><category>Shrink</category><category>SQL</category><category>Transaction Log</category><category>TSQL</category><category>SharePoint</category><category>SQL</category></item><item><title>Using the people picker over a one-way trust</title><link>https://blog.hompus.nl/2010/06/01/using-the-people-picker-over-a-one-way-trust/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/06/01/using-the-people-picker-over-a-one-way-trust/</guid><description>When you have a SharePoint farm and you want to use accounts from another domain you need a partial (one-way) or a full (two-way) trust between those domain.&lt;br/&gt;A full trust is not always desirable and there your problem begins. After setting up the one-way trust you can authenticate with an account from the trusted domain, but the SharePoint People Picker doesn&apos;t show any accounts from this domain.&lt;br/&gt;It has been documented by others before, but as I ran into this recently I&apos;ll give my summary how I fixed this.</description><pubDate>Tue, 01 Jun 2010 13:04:56 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Domain</category><category>People Picker</category><category>SharePoint 2007</category><category>SharePoint 2010</category><category>Trust</category><category>WSS 3.0</category><category>SharePoint</category></item><item><title>Make your PowerPoint Presentation look good on a wide screen projector</title><link>https://blog.hompus.nl/2010/04/16/make-your-powerpoint-presentation-look-good-on-a-wide-screen-projector/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/04/16/make-your-powerpoint-presentation-look-good-on-a-wide-screen-projector/</guid><description>The other day I attended a meeting where the presenter switched from a PowerPoint slide to demonstrate an application. When he made the switch it was quite obvious the beamer was setup to only display the 4:3 slides to the maximum of the white screen. Since his desktop was in a 16:10 resolution the application was falling of the screen on both sides.&lt;br/&gt;While I was preparing a presentation myself I wanted to be sure my presentation would be in the same resolution as my desktop as I would be switching between my slides and Visual Studio.</description><pubDate>Fri, 16 Apr 2010 09:33:48 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>16:10</category><category>16:9</category><category>4:3</category><category>Aspect Ratio</category><category>Beamer</category><category>Black bars</category><category>HD</category><category>PowerPoint</category><category>Presenting</category><category>Slide</category><category>Office</category></item><item><title>Using the Surface SDK with Visual Studio 2010</title><link>https://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/04/14/using-the-surface-sdk-with-visual-studio-2010/</guid><description>With the launch of Visual Studio 2010 this week a lot of people will start upgrading to the new version. After the installation was complete I noticed the Surface project and item templates were not available.&lt;br/&gt;In this post I explain how to get the entries in Visual Studio 2010.</description><pubDate>Wed, 14 Apr 2010 12:45:34 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Installer</category><category>Vista</category><category>Visual Studio 2008</category><category>Visual Studio 2010</category><category>Windows 7</category><category>x64</category><category>x86</category><category>Surface</category><category>Visual Studio</category></item><item><title>Microsoft releases Linux Integration Services for Hyper-V 2.1 Beta</title><link>https://blog.hompus.nl/2010/04/01/microsoft-releases-linux-integration-services-for-hyper-v-2-1-beta/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/04/01/microsoft-releases-linux-integration-services-for-hyper-v-2-1-beta/</guid><description>Today the Microsoft Virtualization Team announced the availability of the new beta version of the Linux Integration Services for Hyper-V.&lt;br/&gt;In this post I will try the new features.</description><pubDate>Thu, 01 Apr 2010 14:20:32 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CentOS</category><category>Clock</category><category>Hyper-V</category><category>Integration Components</category><category>Linux</category><category>Hyper-V</category></item><item><title>Could not load type IDataServiceUpdateProvider when using REST with SharePoint 2010</title><link>https://blog.hompus.nl/2010/03/26/could-not-load-type-idataserviceupdateprovider-when-using-rest-with-sharepoint-2010/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/03/26/could-not-load-type-idataserviceupdateprovider-when-using-rest-with-sharepoint-2010/</guid><description>I wanted to use the new REST services in SharePoint 2010.&lt;br/&gt;But when I navigated to the ListData.svc service. I got the following error: “Could not load type &apos;System.Data.Services.Providers.IDataServiceUpdateProvider&apos; from assembly &apos;System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&apos;.”</description><pubDate>Fri, 26 Mar 2010 10:00:06 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ADO.NET</category><category>Atom</category><category>Data Services</category><category>OData</category><category>REST</category><category>SharePoint 2010</category><category>Vista</category><category>WCF</category><category>Windows 7</category><category>Windows Server 2008</category><category>Windows Server 2008R2</category><category>SharePoint</category></item><item><title>Microsoft extends support for WSS 3.0, SharePoint 2007 and Project Server SP1</title><link>https://blog.hompus.nl/2010/03/24/microsoft-extends-support-for-wss-3-0-sharepoint-2007-and-project-server-sp1/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/03/24/microsoft-extends-support-for-wss-3-0-sharepoint-2007-and-project-server-sp1/</guid><description>Today the news broke Microsoft has extended the support for installations of Windows SharePoint Services 3.0 SP1, Microsoft Office SharePoint Server 2007 SP1 and Project Server 2007 SP1.</description><pubDate>Wed, 24 Mar 2010 16:44:40 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2007</category><category>SharePoint 2007</category><category>SP1</category><category>Support</category><category>WSS 3.0</category><category>Project Server</category><category>SharePoint</category></item><item><title>Localizing the Microsoft Surface Shell</title><link>https://blog.hompus.nl/2010/03/22/localizing-the-microsoft-surface-shell/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/03/22/localizing-the-microsoft-surface-shell/</guid><description>The Microsoft Surface is a Windows Vista computer running the Microsoft Surface Shell. This shell is by default localized for US English. It is possible to localize for other locales, but there is no configuration screen to set the desired localization. This post will summarize the different steps to localize the Surface shell.</description><pubDate>Mon, 22 Mar 2010 15:17:36 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Date</category><category>Formatting</category><category>Localization</category><category>SDK</category><category>Shell</category><category>Simulator</category><category>Time</category><category>x64</category><category>x86</category><category>Surface</category></item><item><title>Installing the Microsoft Surface SDK on Windows 7 x64</title><link>https://blog.hompus.nl/2010/03/03/installing-the-microsoft-surface-sdk-on-windows-7-x64/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/03/03/installing-the-microsoft-surface-sdk-on-windows-7-x64/</guid><description>If you want to develop for the Microsoft Surface you need a Surface device, but using the device to develop is not always practical, specially when there are more developers than Surface devices. The solution for this is to install the Surface SDK on you local development machine. This post will address some limitations you have to work around.</description><pubDate>Wed, 03 Mar 2010 16:22:49 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CorFlags</category><category>Orca</category><category>SDK</category><category>Vista</category><category>Windows 7</category><category>x64</category><category>Surface</category></item><item><title>Prevent hardcoded SharePoint IDs in your code</title><link>https://blog.hompus.nl/2010/02/05/prevent-hardcoded-sharepoint-ids-in-your-code/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/02/05/prevent-hardcoded-sharepoint-ids-in-your-code/</guid><description>Now and again I come across code with hardcoded SharePoint IDs in it. Or scary loops matching a field, list or property name. SharePoint provides some classes containing the out of the box IDs, you only have to know they exist. I made an overview so nobody has to hardcode those pesky GUIDs, ContentTypeId&apos;s or property names.</description><pubDate>Fri, 05 Feb 2010 11:44:39 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ContentType</category><category>Feature</category><category>Field</category><category>Publishing</category><category>SharePoint 2007</category><category>SharePoint 2010</category><category>SharePoint 2013</category><category>User Profile</category><category>WSS 3.0</category><category>SharePoint</category></item><item><title>Prevent user to recall or delete a timesheet after approving</title><link>https://blog.hompus.nl/2010/02/02/prevent-user-to-recall-or-delete-a-timesheet-after-approving/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/02/02/prevent-user-to-recall-or-delete-a-timesheet-after-approving/</guid><description>Working on a Project Server project we discovered it&apos;s quite easy to get issues with data integrity when users start retracting and deleting timesheets. After discussing the issue with Microsoft they gave us a workaround which solves our problem.</description><pubDate>Tue, 02 Feb 2010 12:49:30 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Microsoft</category><category>Project Server 2007</category><category>PSI</category><category>Timesheet</category><category>Project Server</category></item><item><title>Calling a SharePoint Web Service from Silverlight over HTTP and HTTPS</title><link>https://blog.hompus.nl/2010/01/27/calling-a-sharepoint-web-service-from-silverlight-over-http-and-https/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/27/calling-a-sharepoint-web-service-from-silverlight-over-http-and-https/</guid><description>The past couple of weeks I&apos;m working with Silverlight controls embedded in SharePoint 2007. For one of the controls I need to retrieve the data using the Search Query Web Service. This was working perfectly in the development environment. But when deploying the control to the production environment it didn&apos;t work.</description><pubDate>Wed, 27 Jan 2010 10:52:58 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>BasicHttpBinding</category><category>HTTP</category><category>HTTPS</category><category>Query</category><category>Search</category><category>SharePoint 2007</category><category>Silverlight</category><category>WCF</category><category>Web Service</category><category>C#</category><category>SharePoint</category></item><item><title>MySitePublicWebPartPage throws NullReferenceException with August Cumulative Update</title><link>https://blog.hompus.nl/2010/01/15/mysitepublicwebpartpage-throws-nullreferenceexception-with-august-cumulative-update/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/15/mysitepublicwebpartpage-throws-nullreferenceexception-with-august-cumulative-update/</guid><description>With the introduction of the August Cumulative Update for SharePoint 2007 (KB973399) we encountered “System.NullReferenceException: Object reference not set to an instance of an object.” on all pages inheriting from MySitePublicWebPartPage.</description><pubDate>Fri, 15 Jan 2010 12:27:31 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CU</category><category>Exception</category><category>MySite</category><category>ProfilePropertyImage</category><category>SharePoint 2007</category><category>SharePoint</category></item><item><title>WSS 3.0, SharePoint 2007 and Project Server SP1 support ends soon</title><link>https://blog.hompus.nl/2010/01/11/wss-3-0-sharepoint-2007-and-project-server-sp1-support-ends-soon/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/11/wss-3-0-sharepoint-2007-and-project-server-sp1-support-ends-soon/</guid><description>Stefan Goßner reminds us of the fact that support for WSS 3.0 SP1, SharePoint 2007 SP1 and Project Server SP1 will soon end.</description><pubDate>Mon, 11 Jan 2010 16:26:39 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2007</category><category>SharePoint 2007</category><category>SP1</category><category>SP2</category><category>Support</category><category>WSS 3.0</category><category>Project Server</category><category>SharePoint</category></item><item><title>Correcting time drift with CentOS on Hyper-V</title><link>https://blog.hompus.nl/2010/01/08/correcting-time-drift-with-centos-on-hyper-v/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/08/correcting-time-drift-with-centos-on-hyper-v/</guid><description>I was having trouble with the clock in my Linux Hyper-V VMs. The time was constantly drifting forward. Using NTP only slowed the drift a bit down but often NTP gave up after several days.</description><pubDate>Fri, 08 Jan 2010 11:34:58 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CentOS</category><category>Clock</category><category>grub</category><category>Linux</category><category>NTP</category><category>VM</category><category>Hyper-V</category></item><item><title>Running CentOS 5.x on Hyper-V</title><link>https://blog.hompus.nl/2010/01/07/running-centos-5-x-on-hyper-v/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/07/running-centos-5-x-on-hyper-v/</guid><description>I’m running Linux in Hyper-V VMs since the launch of the Windows Server 2008 RTM. It was quite complex to get performance and support for the network drivers. Recently with the launch of Windows Server 2008 R2 there are also new Linux Integration Components which also work for 2008 RTM. Here is the list of steps to install CentOS with these components.</description><pubDate>Thu, 07 Jan 2010 15:31:47 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>CentOS</category><category>Integration Components</category><category>LIC</category><category>Linux</category><category>Windows Server 2008</category><category>Windows Server 2008R2</category><category>Hyper-V</category></item><item><title>Remote Desktop Client doesn’t use stored credentials</title><link>https://blog.hompus.nl/2010/01/06/remote-desktop-client-doesnt-use-stored-credentials/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/06/remote-desktop-client-doesnt-use-stored-credentials/</guid><description>Learn how I solved the problem of the Remote Desktop Client not using stored credentials due to a local policy setting, and simplified my RDP connections.</description><pubDate>Wed, 06 Jan 2010 18:54:30 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Credentials</category><category>GPEdit</category><category>NTLM</category><category>RDP</category><category>Remote Desktop</category><category>Windows</category><category>Windows</category></item><item><title>Blog now running on WordPress</title><link>https://blog.hompus.nl/2010/01/06/blog-now-running-on-wordpress/</link><guid isPermaLink="true">https://blog.hompus.nl/2010/01/06/blog-now-running-on-wordpress/</guid><description>After having major, and unsolvable, problems with MovableType (MovableType was causing segfaults in Perl) for over half a year I finally switched to WordPress for hosting my blog.</description><pubDate>Wed, 06 Jan 2010 16:01:24 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Blog</category><category>Plugin</category><category>WordPress</category></item><item><title>MOSS 2007 – C# Protocol Handler errors fixed</title><link>https://blog.hompus.nl/2009/07/09/moss-2007-c-protocol-handler-errors-fixed/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/07/09/moss-2007-c-protocol-handler-errors-fixed/</guid><description>On CodePlex you can find the “MOSS 2007 - C# Protocol Handler” project. When working with the code I discovered 2 issues which I both fixed. Both solutions are summarized here.</description><pubDate>Thu, 09 Jul 2009 17:44:24 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Buffer</category><category>CodePlex</category><category>Exception</category><category>Protocol Handler</category><category>SharePoint 2007</category><category>x64</category><category>x86</category><category>C#</category><category>SharePoint</category></item><item><title>SharePoint 2010 and Project Server 2010 system requirements</title><link>https://blog.hompus.nl/2009/05/12/sharepoint-2010-and-project-server-2010/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/05/12/sharepoint-2010-and-project-server-2010/</guid><description>As announced yesterday by Microsoft the Office 2010 products will be 64bit only. Well no surprise there, we already knew that. But they went even further: Windows Server 2008 and SQL Server on 64bit is a must for ensuring the best performance possible.</description><pubDate>Tue, 12 May 2009 00:14:28 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2010</category><category>SharePoint 2010</category><category>SQL Server 2005</category><category>SQL Server 2008</category><category>Windows Server 2008</category><category>Windows Server 2008R2</category><category>x64</category><category>Project Server</category><category>SharePoint</category></item><item><title>Generate integer lists using LINQ</title><link>https://blog.hompus.nl/2009/03/25/generate-integer-lists-using-linq/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/25/generate-integer-lists-using-linq/</guid><description>I was working on some old code which created three DropDown controls with hours, minutes and seconds. I wanted to LINQify it using the LINQ Range method.</description><pubDate>Wed, 25 Mar 2009 13:35:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>IEnumerable</category><category>LINQ</category><category>Range</category><category>C#</category></item><item><title>SharePoint Incremental Crawl takes much longer after adding or removing a user</title><link>https://blog.hompus.nl/2009/03/23/sharepoint-incremental-crawl-takes-much-longer-after-adding-or-removing-a-user/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/23/sharepoint-incremental-crawl-takes-much-longer-after-adding-or-removing-a-user/</guid><description>It is a sad and known fact that having lots of ACLs in your SharePoint database has a negative effect on the performance of your site. What I did not know yet was that changes to the ACL will impact you incremental crawls.</description><pubDate>Mon, 23 Mar 2009 07:15:38 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>ACL</category><category>Crawl</category><category>Incremental</category><category>Performance</category><category>Search</category><category>SharePoint 2007</category><category>SharePoint</category></item><item><title>Recording Converter for Microsoft Office Live Meeting 2007</title><link>https://blog.hompus.nl/2009/03/13/recording-converter-for-microsoft-office-live-meeting-2007/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/13/recording-converter-for-microsoft-office-live-meeting-2007/</guid><description>This week I gave a presentation at Winvision and recorded it in Microsoft Office Live Meeting 2007. The resulting recording is a webpage with multiple streams: desktop video, presenter video and audio. The problem is that the codec used doesn&apos;t work on x64 systems or Windows 7 (Server). Watching the separate streams isn&apos;t really an option because there is no audio included in the video streams. But I got lucky as it seems Microsoft has released a new tool called “Recording Converter for Microsoft Office Live Meeting 2007” only last month.</description><pubDate>Fri, 13 Mar 2009 13:32:34 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Converter</category><category>Live Meeting</category><category>Office</category><category>Recording</category><category>Windows 7</category><category>WMV</category><category>x64</category><category>Office</category></item><item><title>Access Denied when crawling mysite / people on localhost with a different hostname</title><link>https://blog.hompus.nl/2009/03/12/access-denied-when-crawling-mysite-people-on-localhost-with-a-different-hostname/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/12/access-denied-when-crawling-mysite-people-on-localhost-with-a-different-hostname/</guid><description>I have a clean install on the latest and greatest: Windows Server 2008, SQL Server 2008 and MOSS 2007 SP1 with all updates. Everything works fine, except the search crawl gave Access Denied errors on http://mysite and sps3://mysite. This post explains how I fixed the problem.</description><pubDate>Thu, 12 Mar 2009 21:55:34 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Crawl</category><category>Exception</category><category>Local loopback</category><category>MySite</category><category>regedit</category><category>Search</category><category>SharePoint 2007</category><category>Windows Server 2008</category><category>SharePoint</category><category>Windows</category></item><item><title>Working with URL’s in SharePoint</title><link>https://blog.hompus.nl/2009/03/09/working-with-urls-in-sharepoint/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/09/working-with-urls-in-sharepoint/</guid><description>While working on a project with some existing code I noticed the developer did write large portions of code to get from an URL to a SPList. He probably didn’t know some of the hidden gems in SharePoint.</description><pubDate>Mon, 09 Mar 2009 18:58:04 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>SharePoint 2007</category><category>SPUrlUtility</category><category>SPUtility</category><category>URI</category><category>C#</category><category>SharePoint</category></item><item><title>“CS0122: ‘x’ is inaccessible due to its protection level” but you don’t want to go public</title><link>https://blog.hompus.nl/2009/03/04/cs0122-x-is-inaccessible-due-to-its-protection-level-but-you-dont-want-to-go-public/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/04/cs0122-x-is-inaccessible-due-to-its-protection-level-but-you-dont-want-to-go-public/</guid><description>Sometimes you have to split your code into different assemblies. For example when I created a custom Admin Page which inherits from WebAdminPageBase (Microsoft.SharePoint.ApplicationPages). The problem with Microsoft.SharePoint.ApplicationPages is that it&apos;s not deployed to the GAC. When compiling you will get the following message: “CS0122: &apos;foo.bar.x&apos; is inaccessible due to its protection level”&lt;br/&gt;Now you have only one choice: make x public. Or maybe not?</description><pubDate>Wed, 04 Mar 2009 10:00:16 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Exception</category><category>Internal</category><category>InternalsVisibleTo</category><category>public key</category><category>sn</category><category>C#</category><category>SharePoint</category><category>Visual Studio</category></item><item><title>Using LINQ with the MOSS UserProfileManager</title><link>https://blog.hompus.nl/2009/03/03/using-linq-with-the-moss-userprofilemanager/</link><guid isPermaLink="true">https://blog.hompus.nl/2009/03/03/using-linq-with-the-moss-userprofilemanager/</guid><description>Lately I am working a lot with LINQ and al types like LINQ to XML, LINQ to XSD, LINQ to objects, etc. Today I had to build some functionality in SharePoint where I had to split users in 2 groups based on a profile property in their User Profile. In this post I will show you how I did this.</description><pubDate>Tue, 03 Mar 2009 20:40:17 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>LINQ</category><category>ProfileManager</category><category>SharePoint 2007</category><category>User Profile</category><category>C#</category><category>SharePoint</category></item><item><title>Project Conference 2007</title><link>https://blog.hompus.nl/2007/10/31/project-conference-2007/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/10/31/project-conference-2007/</guid><description>I am currently at the Project Conference 2007 in Seattle and by visiting the sessions and talking to the people at Microsoft developing the solution I got a lot of answers for things I could not find on the web or in the SDK.</description><pubDate>Wed, 31 Oct 2007 13:18:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Certification</category><category>Conference</category><category>Project Server 2007</category><category>Project Server</category></item><item><title>Pitfall: Using the SiteData Web Service to get the Site GUID</title><link>https://blog.hompus.nl/2007/09/07/pitfall-using-the-sitedata-ws-to-get-the-siteguid/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/09/07/pitfall-using-the-sitedata-ws-to-get-the-siteguid/</guid><description>When you want to use the PSI interface you need to have a PSContextInfo Class. Inside a Project Server Event this will be provided so you don’t need to worry about it’s contents. But outside the Event you will need to create one from scratch.</description><pubDate>Fri, 07 Sep 2007 14:50:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2007</category><category>PSI</category><category>PWA</category><category>WSS 3.0</category><category>Project Server</category></item><item><title>An addition to the Project Server 2007 SDK (Part 2)</title><link>https://blog.hompus.nl/2007/09/07/an-addition-to-the-project-server-2007-sdk-part-2/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/09/07/an-addition-to-the-project-server-2007-sdk-part-2/</guid><description>I was browsing through the Project Server 2007 TimePeriodDataSet.TimePeriodsRow members and found the following empty entries I could fill.</description><pubDate>Fri, 07 Sep 2007 12:16:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2007</category><category>SDK</category><category>Project Server</category></item><item><title>MSI Installer Application Folder from code</title><link>https://blog.hompus.nl/2007/09/07/installer-application-folder/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/09/07/installer-application-folder/</guid><description>To deploy our code, we create MSI installers using Visual Studio. One problem I encountered is that there is no property available in code to know where the user has chosen to install the application.</description><pubDate>Fri, 07 Sep 2007 11:35:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Installer</category><category>MSI</category><category>C#</category><category>Visual Studio</category></item><item><title>Using app.config with Project Server Events</title><link>https://blog.hompus.nl/2007/09/04/using-appconfig-with-project-server-events/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/09/04/using-appconfig-with-project-server-events/</guid><description>When building custom Project Server Event Receivers the result is a dll file. Using app.config and the ConfigurationManagement class will not work. Well actually, it’s possible!</description><pubDate>Tue, 04 Sep 2007 14:50:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Configuration</category><category>Events</category><category>Project Server 2007</category><category>C#</category><category>Project Server</category></item><item><title>Textbox “Process Accounts with Access to the SSP” doesn’t exist</title><link>https://blog.hompus.nl/2007/09/04/textbox-process-accounts-with-access-to-the-ssp-doesnt-exist/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/09/04/textbox-process-accounts-with-access-to-the-ssp-doesnt-exist/</guid><description>I had a lot of trouble using impersonation with the PSI web services in Project Server 2007. I found some posts on the web suggesting that you need to add the account to the “Process Accounts with Access to the SSP” textbox, but guess what? That box was nowhere to find!</description><pubDate>Tue, 04 Sep 2007 13:23:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2007</category><category>SSP</category><category>stsadm</category><category>WSS 3.0</category><category>Project Server</category></item><item><title>An addition to the Project Server 2007 SDK</title><link>https://blog.hompus.nl/2007/08/31/an-addition-to-the-project-server-2007-sdk/</link><guid isPermaLink="true">https://blog.hompus.nl/2007/08/31/an-addition-to-the-project-server-2007-sdk/</guid><description>Currently I&apos;m working on a project which uses Microsoft Project Server 2007. However, the SDK is poorly documented.</description><pubDate>Fri, 31 Aug 2007 09:39:00 GMT</pubDate><language>en-us</language><dc:creator>Michaël Hompus</dc:creator><category>Project Server 2007</category><category>PWA</category><category>SDK</category><category>Project Server</category></item></channel></rss>