<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog posts on Sam Debruyn</title><link>https://debruyn.dev/blog/</link><description>Recent content in Blog posts on Sam Debruyn</description><generator>Hugo</generator><language>en-us</language><copyright>© Copyright Debruyn Consultancy</copyright><atom:link href="https://debruyn.dev/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Cooling the Dell Perc H200</title><link>https://debruyn.dev/2025/cooling-the-dell-perc-h200/</link><pubDate>Tue, 17 Jun 2025 09:06:30 +0200</pubDate><guid>https://debruyn.dev/2025/cooling-the-dell-perc-h200/</guid><description>&lt;p&gt;Today I&amp;rsquo;m writing down some advice on cooling a Dell Perc H200 card as this would have saved me some time if this post popped up on Google search when I was looking for it myself.&lt;/p&gt;
&lt;p&gt;I have a custom-built server at home that I use for various tasks, one of which is serving as a NAS with TrueNAS. Since my motherboard didn&amp;rsquo;t have enough SATA ports, I added a Dell Perc H200 RAID controller.&lt;/p&gt;</description></item><item><title>Quick Tip: Fabric Runtime preinstalled packages</title><link>https://debruyn.dev/2025/quick-tip-fabric-runtime-preinstalled-packages/</link><pubDate>Wed, 23 Apr 2025 12:40:34 +0200</pubDate><guid>https://debruyn.dev/2025/quick-tip-fabric-runtime-preinstalled-packages/</guid><description>&lt;p&gt;Today I have a quick tip for you. I thought that I could find the list of preinstalled Python packages &lt;a
 href="https://learn.microsoft.com/en-us/fabric/data-engineering/runtime-1-3" data-umami-event="outbound_link_click" data-umami-event-url="https://learn.microsoft.com/en-us/fabric/data-engineering/runtime-1-3" target="_blank" rel="noreferrer noopener"
 &gt;somewhere on Microsoft Learn&lt;/a&gt;
, but either Microsoft stopped publishing this, or I couldn&amp;rsquo;t find it. So with this tip, you can easily find the list of preinstalled packages in your Fabric Runtime environment.&lt;/p&gt;</description></item><item><title>All the different ways to authenticate to Azure SQL, Synapse, and Fabric</title><link>https://debruyn.dev/2025/all-the-different-ways-to-authenticate-to-azure-sql-synapse-and-fabric/</link><pubDate>Sun, 13 Apr 2025 19:04:37 +0200</pubDate><guid>https://debruyn.dev/2025/all-the-different-ways-to-authenticate-to-azure-sql-synapse-and-fabric/</guid><description>&lt;p&gt;In this post I&amp;rsquo;ll go over all the details on acquiring access tokens to authenticate to any Microsoft SQL engine, including Azure SQL, Azure Synapse and Microsoft Fabric. We&amp;rsquo;ll explore users, service principals, managed identities, and Fabric Workspace Identity.&lt;/p&gt;
&lt;p&gt;Why would you want to do this? Well, if you&amp;rsquo;re looking to get programmatic access to your database / data warehouse, you&amp;rsquo;ll need to authenticate. In 2025, more often than not, you&amp;rsquo;ll be using Microsoft Entra ID to do so and this is where the fun begins.&lt;/p&gt;</description></item><item><title>All Microsoft Fabric icons for diagramming</title><link>https://debruyn.dev/2024/all-microsoft-fabric-icons-for-diagramming/</link><pubDate>Sat, 26 Oct 2024 13:26:42 +0200</pubDate><guid>https://debruyn.dev/2024/all-microsoft-fabric-icons-for-diagramming/</guid><description>&lt;p&gt;Do you often have to draw up diagrams of data flows or data architectures and would you like to use Microsoft Fabric icons in your diagrams? Then this post is for you! I always found it hard to find the right icons I needed, so I&amp;rsquo;ve put them all on this single page for easy access, both as PNG and SVG.&lt;/p&gt;</description></item><item><title>I just took the new Fabric DP-700 Data Engineering Exam: here's what you should know</title><link>https://debruyn.dev/2024/i-just-took-the-new-fabric-dp-700-data-engineering-exam-heres-what-you-should-know/</link><pubDate>Tue, 22 Oct 2024 23:45:03 +0200</pubDate><guid>https://debruyn.dev/2024/i-just-took-the-new-fabric-dp-700-data-engineering-exam-heres-what-you-should-know/</guid><description>&lt;p&gt;I took the new DP-700 exam, released just hours ago in beta, and I’m here to share my experience along with some tips to help you prepare.&lt;/p&gt;</description></item><item><title>Connecting Neon with dbt Cloud</title><link>https://debruyn.dev/2024/connecting-neon-with-dbt-cloud/</link><pubDate>Thu, 02 May 2024 09:06:22 +0200</pubDate><guid>https://debruyn.dev/2024/connecting-neon-with-dbt-cloud/</guid><description>&lt;p&gt;If you&amp;rsquo;re looking to build a simple, serverless data stack, then you might have considered the amazing combo of dbt Cloud with Neon.&lt;/p&gt;
&lt;p&gt;&lt;a
 href="https://neon.tech/" data-umami-event="outbound_link_click" data-umami-event-url="https://neon.tech/" target="_blank" rel="noreferrer noopener"
 &gt;Neon&lt;/a&gt;
 is a fully managed cloud offering with serverless PostgreSQL databases. They separate storage and compute, which makes it easy to scale and manage your data. If your data is not &amp;ldquo;big&amp;rdquo;, then Neon is a great choice.&lt;/p&gt;
&lt;p&gt;&lt;a
 href="https://www.getdbt.com/product/dbt-cloud/" data-umami-event="outbound_link_click" data-umami-event-url="https://www.getdbt.com/product/dbt-cloud/" target="_blank" rel="noreferrer noopener"
 &gt;dbt Cloud&lt;/a&gt;
 is a cloud-based service for running dbt. It&amp;rsquo;s a great way to run dbt without having to manage infrastructure. It features a user-friendly IDE, scheduling, and monitoring.&lt;/p&gt;</description></item><item><title>Fabric: Lakehouse or Data Warehouse?</title><link>https://debruyn.dev/2023/fabric-lakehouse-or-data-warehouse/</link><pubDate>Thu, 19 Oct 2023 10:24:43 +0200</pubDate><guid>https://debruyn.dev/2023/fabric-lakehouse-or-data-warehouse/</guid><description>&lt;p&gt;There are 2 kinds of companies currently active in the Microsoft data space: those who are migrating to Microsoft Fabric, and those who will &lt;em&gt;soon&lt;/em&gt; be planning their migration to Microsoft Fabric. 😅 One question that often comes back is&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Should I focus on the Lakehouse or the Data Warehouse?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let&amp;rsquo;s answer that in this post. I can already tell you this: you&amp;rsquo;re asking the wrong question 😉&lt;/p&gt;</description></item><item><title>Is Microsoft Fabric just a rebranding?</title><link>https://debruyn.dev/2023/is-microsoft-fabric-just-a-rebranding/</link><pubDate>Mon, 02 Oct 2023 10:53:24 +0200</pubDate><guid>https://debruyn.dev/2023/is-microsoft-fabric-just-a-rebranding/</guid><description>&lt;p&gt;It&amp;rsquo;s a question I see popping up every now and then. Is Microsoft Fabric just a rebranding of existing Azure services like Synapse, Data Factory, Event Hub, Stream Analytics, etc.? Is it something more? Or is it something entirely new?&lt;/p&gt;
&lt;p&gt;I hate clickbait titles as much as you do. So, before we dive in, let me answer the question right away. &lt;strong&gt;No, Fabric is not just a rebranding.&lt;/strong&gt; I would not even describe Fabric as an &lt;em&gt;evolution&lt;/em&gt; (as Microsoft often does), but rather as a &lt;em&gt;&lt;strong&gt;revolution&lt;/strong&gt;&lt;/em&gt;! Now, let&amp;rsquo;s find out why.&lt;/p&gt;</description></item><item><title>My take-aways from Big Data London: Delta Lake &amp; the open lakehouses</title><link>https://debruyn.dev/2023/my-take-aways-from-big-data-london-delta-lake-the-open-lakehouses/</link><pubDate>Mon, 25 Sep 2023 10:20:35 +0100</pubDate><guid>https://debruyn.dev/2023/my-take-aways-from-big-data-london-delta-lake-the-open-lakehouses/</guid><description>Last week I attended Big Data London. Both days were filled with interesting sessions, mostly focussing on one of the vendors also exhibiting at the conference. There are 2 things I am taking away from this conference: Delta Lake has won the data format wars, and your next data platform is either Snowflake, either an open Lakehouse.</description></item><item><title>Fabric end-to-end use case: Analytics Engineering part 2 - Reports</title><link>https://debruyn.dev/2023/fabric-end-to-end-use-case-analytics-engineering-part-2-reports/</link><pubDate>Tue, 19 Sep 2023 20:59:15 +0200</pubDate><guid>https://debruyn.dev/2023/fabric-end-to-end-use-case-analytics-engineering-part-2-reports/</guid><description>&lt;p&gt;Welcome to the fifth part of a 5-part series on an end-to-end use case for Microsoft Fabric. This post will focus on the analytics engineering part of the use case.&lt;/p&gt;

&lt;p&gt;In this series, we will explore how to use Microsoft Fabric to ingest, transform, and analyze data using a real-world use case. The series focuses on data engineering and analytics engineering. We will be using OneLake, Notebooks, Lakehouse, SQL Endpoints, Data Pipelines, dbt, and Power BI.&lt;/p&gt;</description></item><item><title>Fabric end-to-end use case: Analytics Engineering part 1 - dbt with the Lakehouse</title><link>https://debruyn.dev/2023/fabric-end-to-end-use-case-analytics-engineering-part-1-dbt-with-the-lakehouse/</link><pubDate>Mon, 11 Sep 2023 09:59:11 +0200</pubDate><guid>https://debruyn.dev/2023/fabric-end-to-end-use-case-analytics-engineering-part-1-dbt-with-the-lakehouse/</guid><description>&lt;p&gt;Welcome to the fourth part of a 5-part series on an end-to-end use case for Microsoft Fabric. This post will focus on the analytics engineering part of the use case.&lt;/p&gt;

&lt;p&gt;In this series, we will explore how to use Microsoft Fabric to ingest, transform, and analyze data using a real-world use case. The series focuses on data engineering and analytics engineering. We will be using OneLake, Notebooks, Lakehouse, SQL Endpoints, Data Pipelines, dbt, and Power BI.&lt;/p&gt;</description></item><item><title>Fabric end-to-end use case: Data Engineering part 2 - Pipelines</title><link>https://debruyn.dev/2023/fabric-end-to-end-use-case-data-engineering-part-2-pipelines/</link><pubDate>Mon, 04 Sep 2023 09:59:04 +0200</pubDate><guid>https://debruyn.dev/2023/fabric-end-to-end-use-case-data-engineering-part-2-pipelines/</guid><description>&lt;p&gt;Welcome to the third part of a 5-part series on an end-to-end use case for Microsoft Fabric. This post will focus on the data engineering part of the use case.&lt;/p&gt;

&lt;p&gt;In this series, we will explore how to use Microsoft Fabric to ingest, transform, and analyze data using a real-world use case. The series focuses on data engineering and analytics engineering. We will be using OneLake, Notebooks, Lakehouse, SQL Endpoints, Data Pipelines, dbt, and Power BI.&lt;/p&gt;</description></item><item><title>Fabric end-to-end use case: Data Engineering part 1 - Spark and Pandas in Notebooks</title><link>https://debruyn.dev/2023/fabric-end-to-end-use-case-data-engineering-part-1-spark-and-pandas-in-notebooks/</link><pubDate>Mon, 28 Aug 2023 08:58:56 +0200</pubDate><guid>https://debruyn.dev/2023/fabric-end-to-end-use-case-data-engineering-part-1-spark-and-pandas-in-notebooks/</guid><description>&lt;p&gt;Welcome to the second part of a 5-part series on an end-to-end use case for Microsoft Fabric. This post will focus on the data engineering part of the use case.&lt;/p&gt;

&lt;p&gt;In this series, we will explore how to use Microsoft Fabric to ingest, transform, and analyze data using a real-world use case. The series focuses on data engineering and analytics engineering. We will be using OneLake, Notebooks, Lakehouse, SQL Endpoints, Data Pipelines, dbt, and Power BI.&lt;/p&gt;</description></item><item><title>Fabric end-to-end use case: overview &amp; architecture</title><link>https://debruyn.dev/2023/fabric-end-to-end-use-case-overview-architecture/</link><pubDate>Mon, 21 Aug 2023 09:59:15 +0200</pubDate><guid>https://debruyn.dev/2023/fabric-end-to-end-use-case-overview-architecture/</guid><description>&lt;p&gt;Welcome to the first part of a 5-part series on an end-to-end use case for Microsoft Fabric. This post will focus on the architecture overview of the use case.&lt;/p&gt;

&lt;p&gt;In this series, we will explore how to use Microsoft Fabric to ingest, transform, and analyze data using a real-world use case. The series focuses on data engineering and analytics engineering. We will be using OneLake, Notebooks, Lakehouse, SQL Endpoints, Data Pipelines, dbt, and Power BI.&lt;/p&gt;</description></item><item><title>All Microsoft Fabric icons for diagramming (old version)</title><link>https://debruyn.dev/2023/all-microsoft-fabric-icons-for-diagramming-old-version/</link><pubDate>Thu, 17 Aug 2023 15:58:42 +0200</pubDate><guid>https://debruyn.dev/2023/all-microsoft-fabric-icons-for-diagramming-old-version/</guid><description>&lt;p&gt;The below content is the old version of the blog post. It is kept here for reference purposes. The new version can be found &lt;a
 href="https://debruyn.dev/2024/all-microsoft-fabric-icons-for-diagramming/"
 &gt;here&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Right-click and &lt;em&gt;Save Link As&amp;hellip;&lt;/em&gt; on the links below to download the ones you need.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;All graphics and trademarks below are the property and copyright of the Microsoft group of companies. Use them according to the &lt;a
 href="https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks" data-umami-event="outbound_link_click" data-umami-event-url="https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks" target="_blank" rel="noreferrer noopener"
 &gt;Microsoft Trademark and Brand Guidelines&lt;/a&gt;
.&lt;/strong&gt; &lt;em&gt;I don&amp;rsquo;t work for Microsoft, I merely list them here for usage in software architecture diagrams demonstrating the usage of Microsoft Fabric and related technologies.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Let Fabric teach you how to code with Data Wrangler</title><link>https://debruyn.dev/2023/let-fabric-teach-you-how-to-code-with-data-wrangler/</link><pubDate>Wed, 09 Aug 2023 10:22:38 +0200</pubDate><guid>https://debruyn.dev/2023/let-fabric-teach-you-how-to-code-with-data-wrangler/</guid><description>&lt;p&gt;I&amp;rsquo;m going to be honest with you. I&amp;rsquo;m bad at writing Pandas data transformation code. Throughout the years I mostly focussed on the Spark APIs in Scala and PySpark, SQL, dbt, and some others, but I find the Pandas APIs usually just confusing and hard to read. I don&amp;rsquo;t like the black box magic and lock-in of low-code solutions either. Did you know that Microsoft Fabric has the perfect middle ground for this? It&amp;rsquo;s called Data Wrangler. Let&amp;rsquo;s dive in!&lt;/p&gt;</description></item><item><title>How to use service principal authentication to access Microsoft Fabric's OneLake</title><link>https://debruyn.dev/2023/how-to-use-service-principal-authentication-to-access-microsoft-fabrics-onelake/</link><pubDate>Tue, 01 Aug 2023 10:28:11 +0200</pubDate><guid>https://debruyn.dev/2023/how-to-use-service-principal-authentication-to-access-microsoft-fabrics-onelake/</guid><description>&lt;p&gt;Microsoft recently added support to authenticate to OneLake using service principals and managed identities. This allows users to access OneLake from applications without having to use a user account. Let&amp;rsquo;s see how this works.&lt;/p&gt;</description></item><item><title>A closer look at Microsoft Fabric pricing, billing, and autoscaling</title><link>https://debruyn.dev/2023/a-closer-look-at-microsoft-fabric-pricing-billing-and-autoscaling/</link><pubDate>Wed, 26 Jul 2023 09:17:06 +0200</pubDate><guid>https://debruyn.dev/2023/a-closer-look-at-microsoft-fabric-pricing-billing-and-autoscaling/</guid><description>&lt;p&gt;If you&amp;rsquo;re considering using Microsoft Fabric, you&amp;rsquo;re probably thinking &amp;ldquo;How much is this going to cost me?&amp;rdquo; Continue reading to learn how Microsoft might have just created the most compelling data platform offering available today.&lt;/p&gt;</description></item><item><title>Migrating Azure Synapse Dedicated SQL to Microsoft Fabric</title><link>https://debruyn.dev/2023/migrating-azure-synapse-dedicated-sql-to-microsoft-fabric/</link><pubDate>Tue, 18 Jul 2023 23:04:37 +0200</pubDate><guid>https://debruyn.dev/2023/migrating-azure-synapse-dedicated-sql-to-microsoft-fabric/</guid><description>&lt;p&gt;If all those posts about Microsoft Fabric have made you excited, you might want to consider it as your next data platform. Since it is very new, not all features are available yet and most are still in preview. You could already adopt it, but if you want to deploy this to a production scenario, you&amp;rsquo;ll want to wait a bit longer. In the meantime, you can already start preparing for the migration. Let&amp;rsquo;s dive into the steps to migrate to Microsoft Fabric. Today: starting from Synapse Dedicated SQL Pools.&lt;/p&gt;</description></item><item><title>Connect to Fabric Lakehouses &amp; Warehouses from Python code</title><link>https://debruyn.dev/2023/connect-to-fabric-lakehouses-warehouses-from-python-code/</link><pubDate>Tue, 11 Jul 2023 09:14:24 +0200</pubDate><guid>https://debruyn.dev/2023/connect-to-fabric-lakehouses-warehouses-from-python-code/</guid><description>&lt;p&gt;In this post, I will show you how to connect to your Microsoft Fabric Lakehouses and Warehouses from Python.&lt;/p&gt;</description></item><item><title>Preparing a migration to Microsoft Fabric: from Azure Synapse Serverless SQL</title><link>https://debruyn.dev/2023/preparing-a-migration-to-microsoft-fabric-from-azure-synapse-serverless-sql/</link><pubDate>Tue, 04 Jul 2023 11:16:45 +0200</pubDate><guid>https://debruyn.dev/2023/preparing-a-migration-to-microsoft-fabric-from-azure-synapse-serverless-sql/</guid><description>&lt;p&gt;If all those posts about Microsoft Fabric have made you curious, you might want to consider it as your next data platform. Since it is very new, not all features are available yet and most are still in preview. You could already adopt it, but if you want to deploy this to a production scenario, you&amp;rsquo;ll want to wait a bit longer. In the meantime, you can already start preparing for the migration. Let&amp;rsquo;s dive into the paths to migrate to Microsoft Fabric. Today: starting from Synapse Serverless SQL Pools.&lt;/p&gt;</description></item><item><title>Microsoft Fabric's Auto Discovery: a closer look</title><link>https://debruyn.dev/2023/microsoft-fabrics-auto-discovery-a-closer-look/</link><pubDate>Wed, 28 Jun 2023 09:00:00 +0200</pubDate><guid>https://debruyn.dev/2023/microsoft-fabrics-auto-discovery-a-closer-look/</guid><description>&lt;p&gt;In &lt;a
 href="https://debruyn.dev/tags/fabric/"
 &gt;previous posts&lt;/a&gt;
, I dug deeper into Microsoft Fabric&amp;rsquo;s SQL-based features and we even &lt;a
 href="https://debruyn.dev/2023/exploring-onelake-with-microsoft-azure-storage-explorer/"
 &gt;explored OneLake using Azure Storage Explorer&lt;/a&gt;
. In this post, I&amp;rsquo;ll take a closer look at Fabric&amp;rsquo;s &lt;strong&gt;auto-discovery&lt;/strong&gt; feature using Shortcuts. Auto-discovery, what&amp;rsquo;s that?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fabric&amp;rsquo;s Lakehouses can automatically discover all the datasets already present in your data lake and expose these as tables in Lakehouses (and Warehouses).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cool, right? At the time of writing, there is a single condition: the tables must be stored in the Delta Lake format. Let&amp;rsquo;s take a closer look.&lt;/p&gt;</description></item><item><title>Exploring OneLake with Microsoft Azure Storage Explorer</title><link>https://debruyn.dev/2023/exploring-onelake-with-microsoft-azure-storage-explorer/</link><pubDate>Tue, 20 Jun 2023 09:30:57 +0200</pubDate><guid>https://debruyn.dev/2023/exploring-onelake-with-microsoft-azure-storage-explorer/</guid><description>&lt;h2 id="recap-onelake--delta-lake"&gt;Recap: OneLake &amp;amp; Delta Lake&lt;/h2&gt;
&lt;p&gt;One of the coolest things about &lt;a
 href="https://www.microsoft.com/en-us/microsoft-fabric/" data-umami-event="outbound_link_click" data-umami-event-url="https://www.microsoft.com/en-us/microsoft-fabric/" target="_blank" rel="noreferrer noopener"
 &gt;Microsoft Fabric&lt;/a&gt;
 is that it nicely decouples storage and compute and it is very transparent about the storage: everything ends up in the OneLake. This is a huge advantage over other data platforms since you don&amp;rsquo;t have to worry about moving data around, it is always available, wherever you need it.&lt;/p&gt;</description></item><item><title>Welcome to the 3rd generation: SQL in Microsoft Fabric</title><link>https://debruyn.dev/2023/welcome-to-the-3rd-generation-sql-in-microsoft-fabric/</link><pubDate>Thu, 15 Jun 2023 20:15:11 +0200</pubDate><guid>https://debruyn.dev/2023/welcome-to-the-3rd-generation-sql-in-microsoft-fabric/</guid><description>&lt;p&gt;&lt;img src="fabric_header.jpeg" alt="Fabric header"&gt;&lt;/p&gt;
&lt;p&gt;While typing this blog post, I&amp;rsquo;m flying back from the &lt;a
 href="https://dataplatformnextstep.com/" data-umami-event="outbound_link_click" data-umami-event-url="https://dataplatformnextstep.com/" target="_blank" rel="noreferrer noopener"
 &gt;Data Platform Next Step&lt;/a&gt;
 conference where I gave a talk about using &lt;a
 href="https://www.getdbt.com/" data-umami-event="outbound_link_click" data-umami-event-url="https://www.getdbt.com/" target="_blank" rel="noreferrer noopener"
 &gt;dbt&lt;/a&gt;
 with &lt;a
 href="https://learn.microsoft.com/en-us/fabric/" data-umami-event="outbound_link_click" data-umami-event-url="https://learn.microsoft.com/en-us/fabric/" target="_blank" rel="noreferrer noopener"
 &gt;Microsoft Fabric&lt;/a&gt;
. DP Next Step was the first conference focussed on Microsoft data services right after the announcement of Microsoft Fabric so a lot of speakers were Microsoft employees and most of the talks had some Fabric content.&lt;/p&gt;
&lt;p&gt;&lt;img src="fabric.png" alt="Microsoft Fabric logo"&gt;&lt;/p&gt;
&lt;p&gt;Fabric Fabric Fabric, what is it all about? In this post I&amp;rsquo;ll go deeper into what it is, why you should care and focus specifically on the SQL aspect of Fabric.&lt;/p&gt;</description></item><item><title>Filling the gaps in your code with the Terraform azapi provider for Azure</title><link>https://debruyn.dev/2022/filling-the-gaps-in-your-code-with-the-terraform-azapi-provider-for-azure/</link><pubDate>Mon, 04 Jul 2022 16:28:43 +0200</pubDate><guid>https://debruyn.dev/2022/filling-the-gaps-in-your-code-with-the-terraform-azapi-provider-for-azure/</guid><description>&lt;p&gt;&lt;img src="terraform-azure.png" alt="header"&gt;&lt;/p&gt;
&lt;p&gt;The cloud is just someone else&amp;rsquo;s computer and to manage that we prefer to use Infrastructure as Code (IaC). dataroots believes that IaC can benefit any team working with cloud resources and most often &lt;a
 href="https://www.terraform.io/" data-umami-event="outbound_link_click" data-umami-event-url="https://www.terraform.io/" target="_blank" rel="noreferrer noopener"
 &gt;Terraform&lt;/a&gt;
 is &lt;a
 href="https://registry.terraform.io/namespaces/datarootsio" data-umami-event="outbound_link_click" data-umami-event-url="https://registry.terraform.io/namespaces/datarootsio" target="_blank" rel="noreferrer noopener"
 &gt;our tool of choice&lt;/a&gt;
 there. As a data &amp;amp; cloud engineer focusing on Microsoft Azure, that is true for me as well. However, there have been a couple of hick-ups along the road.&lt;/p&gt;</description></item><item><title>Some interesting takeaways from this year's Techorama</title><link>https://debruyn.dev/2022/some-interesting-takeaways-from-this-years-techorama/</link><pubDate>Thu, 09 Jun 2022 16:37:50 +0200</pubDate><guid>https://debruyn.dev/2022/some-interesting-takeaways-from-this-years-techorama/</guid><description>&lt;p&gt;&lt;img src="header.jpg" alt="header"&gt;&lt;/p&gt;
&lt;p&gt;Last week was a busy week for fans of the Microsoft technology stack like myself. Microsoft hosted its yearly developer conference, Microsoft Build, announcing &lt;a
 href="https://aka.ms/build-2022-book-of-news" data-umami-event="outbound_link_click" data-umami-event-url="https://aka.ms/build-2022-book-of-news" target="_blank" rel="noreferrer noopener"
 &gt;lots of exciting updates&lt;/a&gt;
 to new and existing Azure services. In the meantime, the Belgian community of Microsoft technology users gathered in Kinepolis Antwerp for this year&amp;rsquo;s edition of Techorama.&lt;/p&gt;</description></item><item><title>Setting up your machine for local Terraform provider development</title><link>https://debruyn.dev/2020/setting-up-your-machine-for-local-terraform-provider-development/</link><pubDate>Wed, 19 Aug 2020 18:27:09 +0200</pubDate><guid>https://debruyn.dev/2020/setting-up-your-machine-for-local-terraform-provider-development/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been developing &lt;a
 href="https://terraform.io" data-umami-event="outbound_link_click" data-umami-event-url="https://terraform.io" target="_blank" rel="noreferrer noopener"
 &gt;Terraform&lt;/a&gt;
 providers, you might have upgraded your machine to use the newly released Terraform 0.13. This version introduces a lot of changes related to where providers can be found.&lt;/p&gt;
&lt;p&gt;Before version 0.13 you would just put the binary of your provider in &lt;code&gt;~/.terraform.d/plugins&lt;/code&gt; and you could start using your provider. There is a lot more to it in Terraform 0.13 and newer.&lt;/p&gt;</description></item><item><title>Installing the Azure Event Hubs Python SDK on Raspberry Pi OS 64-bit</title><link>https://debruyn.dev/2020/installing-the-azure-event-hubs-python-sdk-on-raspberry-pi-os-64-bit/</link><pubDate>Tue, 11 Aug 2020 22:16:24 +0200</pubDate><guid>https://debruyn.dev/2020/installing-the-azure-event-hubs-python-sdk-on-raspberry-pi-os-64-bit/</guid><description>&lt;p&gt;Since we&amp;rsquo;re going through some heat waves in Europe, I thought it might be interesting to start measuring the humidity, temperature and pressure in my apartment. To do so, I decided to use my Raspberry Pi 3 and the Pi Sense HAT running a Python script constantly sending measurements to an Azure Event Hub.&lt;/p&gt;</description></item><item><title>Debugging a Terraform provider</title><link>https://debruyn.dev/2020/debugging-a-terraform-provider/</link><pubDate>Wed, 05 Aug 2020 22:13:55 +0200</pubDate><guid>https://debruyn.dev/2020/debugging-a-terraform-provider/</guid><description>&lt;p&gt;While contributing to a couple of &lt;a
 href="https://github.com/databrickslabs/terraform-provider-databricks" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/databrickslabs/terraform-provider-databricks" target="_blank" rel="noreferrer noopener"
 &gt;Terraform providers&lt;/a&gt;
 I often found the need to set some breakpoints in the provider code and inspect what was going at runtime.&lt;/p&gt;
&lt;p&gt;However, debugging Terraform providers is not that easy apparently&amp;hellip; I found a way to do this VS Code, but feel free to &lt;a
 href="https://twitter.com/s_debruyn" data-umami-event="outbound_link_click" data-umami-event-url="https://twitter.com/s_debruyn" target="_blank" rel="noreferrer noopener"
 &gt;drop me a line&lt;/a&gt;
 if you have some other tips &amp;amp; tricks and I&amp;rsquo;ll update this post.&lt;/p&gt;</description></item><item><title>Easy localization in Flutter with continuous integration</title><link>https://debruyn.dev/2019/easy-localization-in-flutter-with-continuous-integration/</link><pubDate>Tue, 18 Jun 2019 22:08:59 +0200</pubDate><guid>https://debruyn.dev/2019/easy-localization-in-flutter-with-continuous-integration/</guid><description>&lt;p&gt;Did you know &lt;a
 href="https://flutter.dev/" data-umami-event="outbound_link_click" data-umami-event-url="https://flutter.dev/" target="_blank" rel="noreferrer noopener"
 &gt;Flutter&lt;/a&gt;
 has built-in support for l10n, also known as localization? I&amp;rsquo;ve been searching for an easy way to localize my app, but most of the blog posts I&amp;rsquo;ve found rephrased &lt;a
 href="https://flutter.dev/docs/development/accessibility-and-localization/internationalization" data-umami-event="outbound_link_click" data-umami-event-url="https://flutter.dev/docs/development/accessibility-and-localization/internationalization" target="_blank" rel="noreferrer noopener"
 &gt;the official documentation on internationalization&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://antistatique.net/sites/default/files/large-article/l10n-i18n.png" alt="l10n"&gt;&lt;/p&gt;
&lt;p&gt;I live in Belgium where we have 3 official locales: Flemish (&lt;code&gt;nl_BE&lt;/code&gt;), Belgian French (&lt;code&gt;fr_BE&lt;/code&gt;) and German (&lt;code&gt;de_BE&lt;/code&gt;). L10n is the process of supporting multiple locales. This mainly relates to translated resources and formatting differences. I18n (internationalization) means that you also support different countries and cultures (e.g. different timezones, understanding that seasons are not the same everywhere in the world, different symbols&amp;hellip;). A great app in Belgium should be localized for at least Dutch and French.&lt;/p&gt;</description></item><item><title>Create App Previews with the iOS Simulator</title><link>https://debruyn.dev/2018/create-app-previews-with-the-ios-simulator/</link><pubDate>Mon, 29 Oct 2018 14:38:56 +0000</pubDate><guid>https://debruyn.dev/2018/create-app-previews-with-the-ios-simulator/</guid><description>&lt;p&gt;I don&amp;rsquo;t always have a ton of iOS devices lying around when I submit iOS apps to &lt;del&gt;iTunes&lt;/del&gt; App Store Connect.&lt;/p&gt;
&lt;p&gt;So I take my screenshots on the simulators. At the time of writing Apple requires screenshots made with an iPhone 8 Plus and an iPad Pro. You can optionally add screenshots from an iPhone XS Max. Apple then downscales them to all other iPhones or you can add screenshots for the other models yourself.&lt;/p&gt;</description></item><item><title>Tips for developing Android JobScheduler Jobs</title><link>https://debruyn.dev/2018/tips-for-developing-android-jobscheduler-jobs/</link><pubDate>Wed, 17 Oct 2018 08:01:27 +0100</pubDate><guid>https://debruyn.dev/2018/tips-for-developing-android-jobscheduler-jobs/</guid><description>&lt;p&gt;If your app has to sync some data in the background, you&amp;rsquo;ll definitely want to use the &lt;a
 href="https://developer.android.com/topic/performance/scheduling" data-umami-event="outbound_link_click" data-umami-event-url="https://developer.android.com/topic/performance/scheduling" target="_blank" rel="noreferrer noopener"
 &gt;Android JobScheduler API&lt;/a&gt;
 to schedule a background job.&lt;/p&gt;
&lt;p&gt;There are a &lt;a
 href="https://github.com/firebase/firebase-jobdispatcher-android#comparison-to-other-libraries" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/firebase/firebase-jobdispatcher-android#comparison-to-other-libraries" target="_blank" rel="noreferrer noopener"
 &gt;few helpful libraries&lt;/a&gt;
 that make this task easier, but you can get away with using the JobScheduler API itself.&lt;/p&gt;</description></item><item><title>Optimize memory usage in Xamarin apps</title><link>https://debruyn.dev/2017/optimize-memory-usage-in-xamarin-apps/</link><pubDate>Fri, 02 Jun 2017 16:32:42 +0200</pubDate><guid>https://debruyn.dev/2017/optimize-memory-usage-in-xamarin-apps/</guid><description>&lt;blockquote&gt;
&lt;p&gt;This post has been translated to Russian by &lt;a
 href="https://twitter.com/g0rdan" data-umami-event="outbound_link_click" data-umami-event-url="https://twitter.com/g0rdan" target="_blank" rel="noreferrer noopener"
 &gt;Denis Gordin&lt;/a&gt;
. You can read the Russian version on the Russian website &lt;a
 href="https://habrahabr.ru/post/330854/" data-umami-event="outbound_link_click" data-umami-event-url="https://habrahabr.ru/post/330854/" target="_blank" rel="noreferrer noopener"
 &gt;TechMedia&lt;/a&gt;
. Thanks, Denis!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Xamarin is amazing in how it allows .NET developers to write apps for Android, iOS, MacOS&amp;hellip; in C#. But that amazing capability comes with a prize and even the most simple apps can suffer from high memory usage. Let&amp;rsquo;s find out what happens and what we can do about it. The majority of my examples are based on Xamarin.Android, but you&amp;rsquo;ll quickly notice how this also applies to Xamarin.iOS.&lt;/p&gt;</description></item><item><title>A few common issues with .csproj files in Xamarin apps</title><link>https://debruyn.dev/2017/a-few-common-issues-with-.csproj-files-in-xamarin-apps/</link><pubDate>Thu, 25 May 2017 21:21:16 +0200</pubDate><guid>https://debruyn.dev/2017/a-few-common-issues-with-.csproj-files-in-xamarin-apps/</guid><description>&lt;p&gt;Usually you don&amp;rsquo;t need to manually edit .csproj files for your apps and most developers don&amp;rsquo;t even know what&amp;rsquo;s going on inside this file. However, sometimes you might run into issues related to this file where Visual/Xamarin Studio can&amp;rsquo;t help you.&lt;/p&gt;
&lt;h2 id="the-case-of-the-missing-references"&gt;The case of the missing references&lt;/h2&gt;
&lt;p&gt;At my current client our solution consists of more than 10 projects:&lt;/p&gt;</description></item><item><title>Diagnosing memory issues with the Xamarin profiler</title><link>https://debruyn.dev/2016/diagnosing-memory-issues-with-the-xamarin-profiler/</link><pubDate>Sun, 04 Sep 2016 16:29:47 +0200</pubDate><guid>https://debruyn.dev/2016/diagnosing-memory-issues-with-the-xamarin-profiler/</guid><description>&lt;p&gt;The Xamarin profiler is a must-have tool for every Xamarin developer. The profiler comes with a Xamarin business or enterprise license and is available as a standalone installer at &lt;a
 href="https://www.xamarin.com/profiler" data-umami-event="outbound_link_click" data-umami-event-url="https://www.xamarin.com/profiler" target="_blank" rel="noreferrer noopener"
 &gt;xamarin.com/profiler&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;To get started, make sure a debug version of your app is installed on a device or a simulator (works both for Android and iOS). Another way to start the profiler is to open the profiler via &lt;em&gt;Run &amp;gt; Start Profiling&lt;/em&gt; in Xamarin Studio or &lt;em&gt;Analyze &amp;gt; Xamarin Profiler&lt;/em&gt; in Visual Studio. Choose the &lt;em&gt;Memory&lt;/em&gt; profiling template, make sure the correct app/activity is selected and press the red record button to start profiling.&lt;/p&gt;</description></item><item><title>Creating a Xamarin.iOS binding project for dummies</title><link>https://debruyn.dev/2016/creating-a-xamarin.ios-binding-project-for-dummies/</link><pubDate>Mon, 29 Aug 2016 11:10:40 +0200</pubDate><guid>https://debruyn.dev/2016/creating-a-xamarin.ios-binding-project-for-dummies/</guid><description>&lt;h2 id="what-you-need"&gt;What you need&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Experience with Xamarin.iOS&lt;/li&gt;
&lt;li&gt;Xamarin Studio for Mac&lt;/li&gt;
&lt;li&gt;An empty binding project (just create a new project in Xamarin Studio)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="a-very-short-intro-to-objective-c-for-c-developers"&gt;A very short intro to Objective-C for C# developers&lt;/h2&gt;
&lt;p&gt;Oh god, Obj-C, the most incomprehensible programming language in the app dev world. You simply can&amp;rsquo;t create an iOS binding project without some very basic knowledge of Obj-C. So here goes, an intro to Obj-C for C# developers.&lt;/p&gt;</description></item><item><title>Fix common binding errors with MVVM Light on Xamarin</title><link>https://debruyn.dev/2016/fix-common-binding-errors-with-mvvm-light-on-xamarin/</link><pubDate>Tue, 22 Mar 2016 20:02:53 +0100</pubDate><guid>https://debruyn.dev/2016/fix-common-binding-errors-with-mvvm-light-on-xamarin/</guid><description>&lt;p&gt;There isn&amp;rsquo;t much documentation available for &lt;a
 href="http://www.mvvmlight.net/" data-umami-event="outbound_link_click" data-umami-event-url="http://www.mvvmlight.net/" target="_blank" rel="noreferrer noopener"
 &gt;MVVM Light&lt;/a&gt;
 when it comes to Xamarin.Android and Xamarin.iOS. There are several overloads for the &lt;code&gt;SetBinding&lt;/code&gt; method and using the wrong overload causes &lt;code&gt;TargetInvocationException&lt;/code&gt; or &lt;code&gt;TargetException&lt;/code&gt; like &lt;a
 href="http://stackoverflow.com/q/35197870/1592358" data-umami-event="outbound_link_click" data-umami-event-url="http://stackoverflow.com/q/35197870/1592358" target="_blank" rel="noreferrer noopener"
 &gt;this one&lt;/a&gt;
. It&amp;rsquo;s also possible that your bindings don&amp;rsquo;t update anymore after you set one binding using an incorrect syntax.&lt;/p&gt;</description></item><item><title>Setting up a Raspberry Pi as a git server for Windows clients</title><link>https://debruyn.dev/2016/setting-up-a-raspberry-pi-as-a-git-server-for-windows-clients/</link><pubDate>Wed, 02 Mar 2016 14:40:08 +0100</pubDate><guid>https://debruyn.dev/2016/setting-up-a-raspberry-pi-as-a-git-server-for-windows-clients/</guid><description>&lt;p&gt;Sometimes you&amp;rsquo;re not allowed or you don&amp;rsquo;t want to publish source code on GitHub, Bitbucket etc. In this post, I&amp;rsquo;ll explain how you can set up a Raspberry Pi (or any other Linux server) as a git repository server and how you can configure Windows clients for that server. We&amp;rsquo;ll automate everything from authentication to creating and deleting repositories.&lt;/p&gt;</description></item><item><title>Dependency injection with Autofac and MVVM Light in Xamarin</title><link>https://debruyn.dev/2016/dependency-injection-with-autofac-and-mvvm-light-in-xamarin/</link><pubDate>Mon, 22 Feb 2016 18:59:37 +0100</pubDate><guid>https://debruyn.dev/2016/dependency-injection-with-autofac-and-mvvm-light-in-xamarin/</guid><description>&lt;h2 id="you-gotta-have-mvvm"&gt;You gotta have MVVM&lt;/h2&gt;
&lt;p&gt;A developer and his tools are inseparable. We all like &lt;a
 href="https://sites.google.com/site/unclebobconsultingllc/getting-a-solid-start" data-umami-event="outbound_link_click" data-umami-event-url="https://sites.google.com/site/unclebobconsultingllc/getting-a-solid-start" target="_blank" rel="noreferrer noopener"
 &gt;SOLID&lt;/a&gt;
 and every (.NET) developer has his or her favourite dependency injection tool. There is &lt;a
 href="http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx" data-umami-event="outbound_link_click" data-umami-event-url="http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx" target="_blank" rel="noreferrer noopener"
 &gt;a lot&lt;/a&gt;
 to choose from. I like Autofac because of the way it handles modules, the lifetime of a type and how it registers types.&lt;/p&gt;</description></item><item><title>Run Docker on Hyper-V with Docker Machine</title><link>https://debruyn.dev/2015/run-docker-on-hyper-v-with-docker-machine/</link><pubDate>Sun, 11 Oct 2015 23:43:40 +0200</pubDate><guid>https://debruyn.dev/2015/run-docker-on-hyper-v-with-docker-machine/</guid><description>&lt;p&gt;Docker is awesome, right? And thanks to &lt;a
 href="http://boot2docker.io" data-umami-event="outbound_link_click" data-umami-event-url="http://boot2docker.io" target="_blank" rel="noreferrer noopener"
 &gt;boot2docker&lt;/a&gt;
 Windows users were no longer left out of the fun.&lt;/p&gt;
&lt;p&gt;Still, setting everything up could be a PITA and you had to install Oracle VirtualBox to use it as Docker containers were actually run inside of a VM (which was the purpose of boot2docker). If you use Hyper-V regularly, you&amp;rsquo;ll notice that you can&amp;rsquo;t have it both ways. Scott Hanselman &lt;a
 href="http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx" data-umami-event="outbound_link_click" data-umami-event-url="http://www.hanselman.com/blog/SwitchEasilyBetweenVirtualBoxAndHyperVWithABCDEditBootEntryInWindows81.aspx" target="_blank" rel="noreferrer noopener"
 &gt;figured out a way&lt;/a&gt;
 to make switching between the two a little bit less painful, but you still had to reboot your machine if you wanted to use VirtualBox.&lt;/p&gt;</description></item><item><title>How to fix common Hyper-V errors on Windows 10</title><link>https://debruyn.dev/2015/how-to-fix-common-hyper-v-errors-on-windows-10/</link><pubDate>Sun, 11 Oct 2015 22:38:46 +0200</pubDate><guid>https://debruyn.dev/2015/how-to-fix-common-hyper-v-errors-on-windows-10/</guid><description>&lt;p&gt;This short post is more of a note to myself for when I run into the same problem. I just wasted an hour on it so I guess that justifies it.&lt;/p&gt;
&lt;p&gt;So, what happened? I wanted to check out the new &lt;a
 href="https://docs.docker.com/machine/" data-umami-event="outbound_link_click" data-umami-event-url="https://docs.docker.com/machine/" target="_blank" rel="noreferrer noopener"
 &gt;Docker Machine&lt;/a&gt;
 with Hyper-V support, but the Hyper-V Manager told me it could not connect to my local computer.&lt;/p&gt;</description></item><item><title>Docker image for Hugo builds (with Wercker)</title><link>https://debruyn.dev/2015/docker-image-for-hugo-builds-with-wercker/</link><pubDate>Mon, 31 Aug 2015 18:56:39 +0200</pubDate><guid>https://debruyn.dev/2015/docker-image-for-hugo-builds-with-wercker/</guid><description>&lt;p&gt;This blog is built with &lt;a
 href="http://gohugo.io" data-umami-event="outbound_link_click" data-umami-event-url="http://gohugo.io" target="_blank" rel="noreferrer noopener"
 &gt;Hugo&lt;/a&gt;
, which allows me to use some great CI tools like &lt;a
 href="http://wercker.com" data-umami-event="outbound_link_click" data-umami-event-url="http://wercker.com" target="_blank" rel="noreferrer noopener"
 &gt;Wercker&lt;/a&gt;
. The first part of writing a &lt;em&gt;wercker.yml&lt;/em&gt; is picking a build container.&lt;/p&gt;
&lt;p&gt;A build container on Wercker is the environment in which your build or deploy steps run. Wercker used to build its own containers for that, but they&amp;rsquo;ve moved away from that approach to Docker containers. You can use all kinds of Docker containers, but most people just use one available publicly on &lt;a
 href="https://registry.hub.docker.com/" data-umami-event="outbound_link_click" data-umami-event-url="https://registry.hub.docker.com/" target="_blank" rel="noreferrer noopener"
 &gt;Docker Hub&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Experiences with Windows 10 on a new Dell XPS 13 (2015)</title><link>https://debruyn.dev/2015/experiences-with-windows-10-on-a-new-dell-xps-13-2015/</link><pubDate>Wed, 26 Aug 2015 07:51:16 +0200</pubDate><guid>https://debruyn.dev/2015/experiences-with-windows-10-on-a-new-dell-xps-13-2015/</guid><description>&lt;h2 id="ordering-a-new-workhorse"&gt;Ordering a new workhorse&lt;/h2&gt;
&lt;p&gt;Windows 10 RTM &lt;a
 href="dinoclippy.jpg" title="awesome wallpaper"
 &gt;has been out&lt;/a&gt;
 for about a month now after little less than a year of public &lt;a
 href="https://insider.windows.com/" title="Insider program" data-umami-event="outbound_link_click" data-umami-event-url="https://insider.windows.com/" target="_blank" rel="noreferrer noopener"
 &gt;Insider preview&lt;/a&gt;
 builds. The motherboard of my old, trusty, Asus laptop was slowly dying and the Dell XPS 13&amp;rsquo;s thinness and battery life looked very attractive. I decided to go for it and order a Dell XPS 13 (2015), without the touch screen. I hate dirty fingerprints on a screen and the better battery life of the version without the touch screen seemed like a better deal. I also ordered a &lt;a
 href="http://accessories.us.dell.com/sna/productdetail.aspx?c=us&amp;amp;l=en&amp;amp;s=dhs&amp;amp;cs=19&amp;amp;sku=470-abhh" title="Dell adapter" data-umami-event="outbound_link_click" data-umami-event-url="http://accessories.us.dell.com/sna/productdetail.aspx?c=us&amp;amp;l=en&amp;amp;s=dhs&amp;amp;cs=19&amp;amp;sku=470-abhh" target="_blank" rel="noreferrer noopener"
 &gt;USB 3 -&amp;gt; HDMI/VGA/Ethernet/USB 2 adapter&lt;/a&gt;
 from Dell.&lt;/p&gt;</description></item><item><title>Wercker step to minify static resources</title><link>https://debruyn.dev/2015/wercker-step-to-minify-static-resources/</link><pubDate>Sat, 25 Jul 2015 17:01:17 +0200</pubDate><guid>https://debruyn.dev/2015/wercker-step-to-minify-static-resources/</guid><description>&lt;p&gt;I recently blogged a lot about &lt;a
 href="https://debruyn.dev/2015/an-introduction-to-hugo-a-static-site-generator/"
 &gt;static websites&lt;/a&gt;
 and &lt;a
 href="https://debruyn.dev/2015/continuous-integration-with-hugo-and-wercker/"
 &gt;continuous integration&lt;/a&gt;
. There was still one step missing in my continuous integration cycle: &lt;strong&gt;minification&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a
 href="http://wercker.com/" data-umami-event="outbound_link_click" data-umami-event-url="http://wercker.com/" target="_blank" rel="noreferrer noopener"
 &gt;Wercker&lt;/a&gt;
 is a great CI tool and it allows you to create custom build steps that can be reused in several projects. So I created a build step to minify HTML, CSS and JS files.&lt;/p&gt;</description></item><item><title>Wercker step to validate Hugo themes</title><link>https://debruyn.dev/2015/wercker-step-to-validate-hugo-themes/</link><pubDate>Wed, 15 Jul 2015 13:21:45 +0200</pubDate><guid>https://debruyn.dev/2015/wercker-step-to-validate-hugo-themes/</guid><description>&lt;p&gt;So last week, I created &lt;a
 href="https://debruyn.dev/2015/material-lite-theme-for-hugo/"
 &gt;a material design theme&lt;/a&gt;
 for &lt;a
 href="https://gohugo.io" data-umami-event="outbound_link_click" data-umami-event-url="https://gohugo.io" target="_blank" rel="noreferrer noopener"
 &gt;Hugo&lt;/a&gt;
, a static site generator that I&amp;rsquo;m &lt;a
 href="https://debruyn.dev/tags/hugo/"
 &gt;quite fond&lt;/a&gt;
 of](/tags/hugo/).&lt;/p&gt;
&lt;p&gt;As I &lt;a
 href="https://debruyn.dev/2015/continuous-integration-with-hugo-and-wercker/"
 &gt;discovered Wercker&lt;/a&gt;
, an awesome CI tool, I went looking for a way to automatically validate themes.&lt;/p&gt;
&lt;p&gt;There wasn&amp;rsquo;t any, so I simply wrote a build step for &lt;a
 href="http://wercker.com" data-umami-event="outbound_link_click" data-umami-event-url="http://wercker.com" target="_blank" rel="noreferrer noopener"
 &gt;Wercker&lt;/a&gt;
. The build step validates a Hugo theme using &lt;a
 href="https://github.com/spf13/HugoBasicExample" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/spf13/HugoBasicExample" target="_blank" rel="noreferrer noopener"
 &gt;an example site&lt;/a&gt;
. It also checks if you included some files required for a future Hugo themes site.&lt;/p&gt;</description></item><item><title>Continuous integration with Hugo and Wercker</title><link>https://debruyn.dev/2015/continuous-integration-with-hugo-and-wercker/</link><pubDate>Tue, 14 Jul 2015 12:45:28 +0200</pubDate><guid>https://debruyn.dev/2015/continuous-integration-with-hugo-and-wercker/</guid><description>&lt;h2 id="why"&gt;Why?&lt;/h2&gt;
&lt;p&gt;Who doesn&amp;rsquo;t love &lt;a
 href="https://pages.github.com/" data-umami-event="outbound_link_click" data-umami-event-url="https://pages.github.com/" target="_blank" rel="noreferrer noopener"
 &gt;GitHub Pages&lt;/a&gt;
? It&amp;rsquo;s the easiest way to create a simple website about a repository and you can even use &lt;a
 href="http://jekyllrb.com/" data-umami-event="outbound_link_click" data-umami-event-url="http://jekyllrb.com/" target="_blank" rel="noreferrer noopener"
 &gt;Jekyll&lt;/a&gt;
 to start blogging.&lt;/p&gt;
&lt;p&gt;As I recently switched from Jekyll to &lt;a
 href="http://gohugo.io" data-umami-event="outbound_link_click" data-umami-event-url="http://gohugo.io" target="_blank" rel="noreferrer noopener"
 &gt;Hugo&lt;/a&gt;
, I needed a new way to enable continuous integration for my blog.&lt;/p&gt;</description></item><item><title>Material-lite theme for Hugo</title><link>https://debruyn.dev/2015/material-lite-theme-for-hugo/</link><pubDate>Mon, 13 Jul 2015 08:00:00 +0200</pubDate><guid>https://debruyn.dev/2015/material-lite-theme-for-hugo/</guid><description>&lt;p&gt;Last week, &lt;a
 href="https://debruyn.dev/2015/an-introduction-to-hugo-a-static-site-generator/"
 &gt;I wrote a post&lt;/a&gt;
 about how awesome &lt;a
 href="http://gohugo.io" data-umami-event="outbound_link_click" data-umami-event-url="http://gohugo.io" target="_blank" rel="noreferrer noopener"
 &gt;Hugo&lt;/a&gt;
 is and why I switched from Jekyll to Hugo.&lt;/p&gt;
&lt;p&gt;Then, a few days later, Google released an awesome template called &lt;a
 href="http://getmdl.io" data-umami-event="outbound_link_click" data-umami-event-url="http://getmdl.io" target="_blank" rel="noreferrer noopener"
 &gt;Material Design Lite&lt;/a&gt;
. It&amp;rsquo;s basically Google&amp;rsquo;s famous &lt;a
 href="https://www.google.com/design/spec/material-design/introduction.html" data-umami-event="outbound_link_click" data-umami-event-url="https://www.google.com/design/spec/material-design/introduction.html" target="_blank" rel="noreferrer noopener"
 &gt;Material Design&lt;/a&gt;
 in HTML, CSS and JavaScript instead of in &lt;a
 href="https://www.polymer-project.org" data-umami-event="outbound_link_click" data-umami-event-url="https://www.polymer-project.org" target="_blank" rel="noreferrer noopener"
 &gt;Polymer&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>An introduction to Hugo, a static site generator</title><link>https://debruyn.dev/2015/an-introduction-to-hugo-a-static-site-generator/</link><pubDate>Wed, 08 Jul 2015 14:50:29 +0200</pubDate><guid>https://debruyn.dev/2015/an-introduction-to-hugo-a-static-site-generator/</guid><description>&lt;h2 id="a-good-blogging-platform"&gt;A good blogging platform&lt;/h2&gt;
&lt;p&gt;What makes a good blogging platform really good? Well, that depends on the blogger. Programmers would need different features than make-up bloggers. As a programmer, I need to be able to easily integrate pieces of code with syntax highlighting in my posts and I&amp;rsquo;d prefer writing them in my favourite text/code editor instead of in a WYSIWYG editor.&lt;/p&gt;</description></item><item><title>Geocoding addresses in Talend Open Studio for Data Integration</title><link>https://debruyn.dev/2015/geocoding-addresses-in-talend-open-studio-for-data-integration/</link><pubDate>Sat, 18 Apr 2015 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2015/geocoding-addresses-in-talend-open-studio-for-data-integration/</guid><description>&lt;p&gt;Last week I had to geocode the addresses in a dataset using Talend. Geocoding is adding coordinates to addresses. This way you can easily visualize your data on a map.&lt;/p&gt;
&lt;p&gt;I experienced problems when I tried to download some plugins from Talend Exchange but I found &lt;a
 href="http://datacatalyst.blogspot.be/2011/01/custom-google-geocoder-using-talend.html" data-umami-event="outbound_link_click" data-umami-event-url="http://datacatalyst.blogspot.be/2011/01/custom-google-geocoder-using-talend.html" target="_blank" rel="noreferrer noopener"
 &gt;this blog post&lt;/a&gt;
 about geocoding without the use of a plugin. The blogpost wasn&amp;rsquo;t very clear so I decided to write a step-by-step explanation which you can find below. In this guide, we will be using the &lt;a
 href="https://developers.google.com/maps/documentation/geocoding/" data-umami-event="outbound_link_click" data-umami-event-url="https://developers.google.com/maps/documentation/geocoding/" target="_blank" rel="noreferrer noopener"
 &gt;Google Geocoding API&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Natively boot Windows with a virtual HDD</title><link>https://debruyn.dev/2015/natively-boot-windows-with-a-virtual-hdd/</link><pubDate>Sun, 25 Jan 2015 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2015/natively-boot-windows-with-a-virtual-hdd/</guid><description>&lt;p&gt;A few days ago &lt;a
 href="https://insider.windows.com" data-umami-event="outbound_link_click" data-umami-event-url="https://insider.windows.com" target="_blank" rel="noreferrer noopener"
 &gt;Microsoft released a new build for Windows 10&lt;/a&gt;
 and I wanted to give it a try. However, I didn&amp;rsquo;t want to resize my partitions or overwrite my Windows 8.1 partition.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Well, then install it in a VM!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then I wouldn&amp;rsquo;t have access to all of my RAM and CPU, so that wasn&amp;rsquo;t a solution either. However, I found the ideal solution.&lt;/p&gt;</description></item><item><title>Queue for MessageDialog in Windows RT</title><link>https://debruyn.dev/2014/queue-for-messagedialog-in-windows-rt/</link><pubDate>Wed, 20 Aug 2014 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2014/queue-for-messagedialog-in-windows-rt/</guid><description>&lt;p&gt;When I write Windows Store applications, I use MessageDialog a lot.
It&amp;rsquo;s the easiest way to show a quick informative pop-up message or a question to the user.
However, when you tend to use this quite often, you&amp;rsquo;ll probably run into a problem.&lt;/p&gt;
&lt;p&gt;The Windows Runtime framework doesn&amp;rsquo;t allow you to stack MessageDialogs, queue them etc.
So if you need to display one, you&amp;rsquo;ll have to make sure that no other MessageDialog is already open.
Checking if there is an open MessageDialog is not that easy unless you keep references to all the MessageDialogs you create.
There are a few cases in which this would be annoying.&lt;/p&gt;</description></item><item><title>Workaround for password confirmation with Laravel &amp; Ardent</title><link>https://debruyn.dev/2014/workaround-for-password-confirmation-with-laravel-ardent/</link><pubDate>Sat, 14 Jun 2014 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2014/workaround-for-password-confirmation-with-laravel-ardent/</guid><description>&lt;p&gt;While I was working on a website made with Laravel and Ardent I had to validate a password confirmation field for a user registration. This will not work if you follow the standard documentation.&lt;/p&gt;
&lt;p&gt;This is how your &lt;a
 href="http://laravel.com/docs/validation" data-umami-event="outbound_link_click" data-umami-event-url="http://laravel.com/docs/validation" target="_blank" rel="noreferrer noopener"
 &gt;validation rules&lt;/a&gt;
 in your &lt;a
 href="https://github.com/laravelbook/ardent" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/laravelbook/ardent" target="_blank" rel="noreferrer noopener"
 &gt;Ardent&lt;/a&gt;
 model should look like (users only have an email address and a password):&lt;/p&gt;</description></item><item><title>Using markdown to create any kind of document</title><link>https://debruyn.dev/2014/using-markdown-to-create-any-kind-of-document/</link><pubDate>Mon, 10 Feb 2014 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2014/using-markdown-to-create-any-kind-of-document/</guid><description>&lt;p&gt;A few weeks ago I had to submit the contents of a GitHub repository to my teacher for grading. I wanted to use my readme.md-file while my teacher asked for a Word or a PDF document. Then I discovered this amazing program which converts Markdown to any desirable format!&lt;/p&gt;
&lt;p&gt;Almost every programmer knows Markdown, right? The Markdown syntax is widely used on &lt;a
 href="https://github.com/" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/" target="_blank" rel="noreferrer noopener"
 &gt;GitHub&lt;/a&gt;
 and in &lt;a
 href="https://github.com/github/markup/blob/master/README.md" data-umami-event="outbound_link_click" data-umami-event-url="https://github.com/github/markup/blob/master/README.md" target="_blank" rel="noreferrer noopener"
 &gt;readme-files&lt;/a&gt;
.  Markdown was developed by &lt;a
 href="http://daringfireball.net/projects/markdown/" data-umami-event="outbound_link_click" data-umami-event-url="http://daringfireball.net/projects/markdown/" target="_blank" rel="noreferrer noopener"
 &gt;John Gruber&lt;/a&gt;
 and Aaron Swartz as a tool to convert plain text files in the syntactic language with the same name to HTML.&lt;/p&gt;</description></item><item><title>Secure SSH access with 2-step authentication (extended)</title><link>https://debruyn.dev/2014/secure-ssh-access-with-2-step-authentication-extended/</link><pubDate>Sat, 08 Feb 2014 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2014/secure-ssh-access-with-2-step-authentication-extended/</guid><description>&lt;p&gt;In this quick tutorial I&amp;rsquo;ll show you how to secure SSH access to your Linux server with 2-step authentication. Why did I call this post &amp;rsquo;extended&amp;rsquo;? Because I&amp;rsquo;ll show you how to add extra rules so you don&amp;rsquo;t have to use 2-step authentication from certain locations.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to explain &lt;a
 href="https://support.google.com/accounts/answer/180744" data-umami-event="outbound_link_click" data-umami-event-url="https://support.google.com/accounts/answer/180744" target="_blank" rel="noreferrer noopener"
 &gt;what 2-step authentication is&lt;/a&gt;
. You&amp;rsquo;ll need SSH or CLI access to your Linux device with root rights and a 2-step authentication app on your phone, tablet or PC:&lt;/p&gt;</description></item><item><title>Wake up your computer(s) with a simple email using a Raspberry Pi</title><link>https://debruyn.dev/2013/wake-up-your-computers-with-a-simple-email-using-a-raspberry-pi/</link><pubDate>Sun, 22 Dec 2013 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2013/wake-up-your-computers-with-a-simple-email-using-a-raspberry-pi/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I have a &lt;a
 href="https://www.spotify.com/premium/" data-umami-event="outbound_link_click" data-umami-event-url="https://www.spotify.com/premium/" target="_blank" rel="noreferrer noopener"
 &gt;Spotify Premium subscription&lt;/a&gt;
 but I also have a few CDs which are not available on streaming services. I don&amp;rsquo;t like the whole process of syncing files, that&amp;rsquo;s why I took a Spotify subscription in the first place.  Google offers a solution with &lt;a
 href="https://play.google.com/about/music/" data-umami-event="outbound_link_click" data-umami-event-url="https://play.google.com/about/music/" target="_blank" rel="noreferrer noopener"
 &gt;Play Music&lt;/a&gt;
: you can upload up to 20,000 songs to their servers for free and stream them to all of your devices. I didn&amp;rsquo;t use this because the Google Play Music app was too slow for my previous phone (&lt;a
 href="http://www.android.com/devices/detail/nexus-s" data-umami-event="outbound_link_click" data-umami-event-url="http://www.android.com/devices/detail/nexus-s" target="_blank" rel="noreferrer noopener"
 &gt;Google Nexus S&lt;/a&gt;
). So I decided to put my CDs on a computer and use that computer as a server with &lt;a
 href="http://www.tonido.com/tonidodesktop/" data-umami-event="outbound_link_click" data-umami-event-url="http://www.tonido.com/tonidodesktop/" target="_blank" rel="noreferrer noopener"
 &gt;Tonido&lt;/a&gt;
. This way I could stream my music over the Internet to all of my devices. As a plus I could also put all my photos on this device so that I could show them to friends or family wherever I am.&lt;/p&gt;</description></item><item><title>Connecting Serviio with Telenet's Yelo TV</title><link>https://debruyn.dev/2013/connecting-serviio-with-telenets-yelo-tv/</link><pubDate>Mon, 09 Dec 2013 00:00:00 +0000</pubDate><guid>https://debruyn.dev/2013/connecting-serviio-with-telenets-yelo-tv/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Recently Belgian ISP Telenet &lt;a
 href="http://snap.telenet.be/nieuw/artikel/yelo-tv-getest-en-gekeurd" data-umami-event="outbound_link_click" data-umami-event-url="http://snap.telenet.be/nieuw/artikel/yelo-tv-getest-en-gekeurd" target="_blank" rel="noreferrer noopener"
 &gt;introduced&lt;/a&gt;
 &lt;a
 href="http://telenet.be/nl/yelo-tv" data-umami-event="outbound_link_click" data-umami-event-url="http://telenet.be/nl/yelo-tv" target="_blank" rel="noreferrer noopener"
 &gt;Yelo TV&lt;/a&gt;
. It&amp;rsquo;s the new brand for all of their efforts &lt;del&gt;to &lt;/del&gt;&lt;del&gt;innovate&lt;/del&gt; with television. Yelo TV includes a series of apps for almost every device (except for Windows Phone) and a &lt;a
 href="http://yelotv.be/" data-umami-event="outbound_link_click" data-umami-event-url="http://yelotv.be/" target="_blank" rel="noreferrer noopener"
 &gt;website &lt;/a&gt;
on which you can watch live television, watch recordings or schedule recordings. &lt;/p&gt;</description></item></channel></rss>