WIRLW - CW39 | what I read last week EN
Create solutions - but get your ego out of the way EN
Free Power Apps Developer Plan - Finally EN
The Azure Data Architecture Map EN
Azure SQL Import (bacpac) does not finish EN
Back to custom CMS EN
Back to Wordpress EN
Application Lifecycle Management (ALM) and Power Apps EN
Weekly CW17-2020 EN
Weekly CW16-2020 EN

This is the first post of hopefully a long term series. "WIRLW" stands for "what I read last week" (and maybe watched) and will be a loose collection of things I've read(/watched) in the last week (which you've might have already guessed). This won't be just another collection of links but I will also provide some notes for each link.

  • Elderblog Sutra: 13, published 2022-04-28
    This article is little bit older but Venkatesh Rao philosophizes about what it would mean to the blogging ecosystem if Elon Musk is buying Twitter.
  • Thread by @iximiuz, published 2022-08-28
    Pretty interesting read, seeing many myths about Containers (not the transport ones) being debunked. Key takeaways are:
    • Containers need not have a full Operating System inside them
    • it's possible to run a Container without an image but you probably shouldn't
    • you need Containers to build images
    • Containers are not just a Linux OS but instead a standardized execution environments
    • You can create a bootable Linux from an image. Even though it's possible you shouldn't do it except for your own entertainment.
  • Seeking the Productive Life: Some Details of My Personal Infrastructure—Stephen Wolfram Writings, published 2022-02-21
    This one is reread which just came to my mind the other night. I think it's interesting to see how highly efficient and successful people organize their daily workflow.
  • – Uncertainty, industrious compliance, and the illusion of control, published 2022-09-29
    Florian describes why long term planning almost never makes sense due to the huge amount of external influences which will overthrow your planning. Furthermore he explains why business planning might be flawed just because of the education people received in the past. Pretty interesting approach articulated in this article and why originality might be the solution to the described issues.
  • Google finds culture, not tech, is the biggest predictor of DevOps security outcomes - SiliconANGLE
    Nothing to add here from my side except the following quote:

    While delving deeper, the researchers, to their surprise, found that the most significant predictor of an organization’s software security practices was cultural, not technical. High-trust, low-blame cultures focused on performance were significantly more likely to adopt emerging security practices than low-trust, high-blame cultures focused on power or rules.

If you are working as a consultant, software engineer, or software architect you're often given the task to find a solution for a problem. Most of the time it is a business process/problem from a customer. The customer can be your own employer or a client who asked for your support.

From my point of view, one if not the most important aspect of this is to get your own ego out of the way for finding a solution. But there are also other topics that are also important in this context and go hand in hand with getting your ego out of the way.

Have customer obsession

In the end, it is the customer who will pay your bills. So always keep your customer in mind when trying to find a solution. With this knowledge, it may make more sense to implement a solution that generates less revenue as a first step. However, from the resulting customer satisfaction, it can then become a more satisfied long-term relationship with the customer.

Many roads lead to Rome

There is more than one acceptable solution to solve a problem. It is totally fine when the preferred one was not brought up by you. As already mentioned, get your ego out of the way. It is not a question of being right or wrong, but always of finding the best possible solution.

Agree to disagree

In the end, someone must decide which solution will be implemented. Sometimes it can happen that not all people involved are of the same opinion. In this case, someone must recognize when disagreement is needed to proceed. But also, in this case, you should be sensible to acknowledge when it is not your solution which is the best one for the specific problem.


More often people try to come up with the fanciest solution for a problem. Even though the fancy one might solve the problem it also might be unnecessarily complex. Habitually keep in mind that a solution should be KISS.

Accept things for what they are

Often you will find situations where you need to use some third part tooling. And sometimes things are not useable in a way which you might prefer. I've caught myself more than once trying to then change something about it or build around it to have a way that I personally like. In the end, though, it was always easier to accept and use things the way someone else built them, especially when they provide a fit at around 80 percent. Simply don't waste time on something that doesn't add value in the end.


Frugality is something that often comes to people's minds when they think about not buying a coffee at their favorite café. But from my point of view, it is also something when trying to create a solution. Most of the time it can be done more inexpensively. For this, you need to talk with your customer and see where you agree on a compromise. You simply don't need to create the fanciest solution just to pamper your ego. It is the outcome for the customer which counts.

free developer plan meme

For as long as the Power Platform has existed, developers have wanted a free way to experiment with it.
In 2017, the "Power Apps Community Plan" was introduced. Even though this was free, it unfortunately did not offer all the possibilities that developers would like to play with.

Since this Microsoft Build, we now know that it takes a bit of time for Microsoft to respond to the developers' pleas, but that the wishes are ultimately fulfilled.

And so the Power Apps Developer Plan was introduced yesterday. Compared to the old Community Plan, this offers significantly more functions that can be used.

If you want to use your work or school account instead of your personal account, no problem simply look at this guide: Citizen Dev. Journey - Setting up your Microsoft Power Apps Test Environment | LinkedIn

I've written about the maps of Stephane Eyskens before. I must admit that I did not follow up on the following publishing's by him. Today I just noticed that he added another map to his portfolio.

The Azure Data Architecture Map - Microsoft Tech Community

It is pretty neat that he simply put a link to all of his maps in his most recent post so that one has all information in one place.

Today I was facing the challenge that an import of a BACPAC file did not finish in a reasonable amount of time.

The process simply remained unchanged for about 4 hours in the state you can see in the above screenshot.

After investigating this further I found the money quote in the Microsoft documentation [1].

The Azure SQL Database Import/Export service provides a limited number of compute virtual machines (VMs) per region to process import and export operations. The compute VMs are hosted per region to make sure that the import or export avoids cross-region bandwidth delays and charges. If too many requests are made at the same time in the same region, significant delays can occur in processing the operations. The time that's required to complete requests can vary from a few seconds to many hours.

The documentation also states that an import will be cancelled if it is not processed within four days.

Unfortunately the Azure portal does not offer an option to cancel an import out of the box. For this you need to use the PowerShell (inside the portal). You can find a detailed description for this here.

To speed things up you can perform this import using your local SQL Server Management Studio (SSMS). For this simply refer to the necessary steps in [3] specifically section »Importing a data-tier application in SQL Server Management Studio«. Of course this is only an option if your internet connection is sufficient for the amount of data that needs to be moved. If not you can still deploy an Azure VM and run the import process from there.


  1. Import and export of a database takes a long time - Azure SQL Database | Microsoft Docs
  2. How to cancel Azure SQL Database Import or Export operation - Microsoft Tech Community
  3. An introduction to Data-Tier applications in SQL Server - WayBack

As you might have noticed I haven't published anything since the last entry where I mentioned that I switched back to WordPress.

Being a technical person I really don't like the experience of putting content into WordPress. Meanwhile I've been trying to get around this by faciliating the wp cli which didn't work out very well for me.

Therefore I decided to get back on track to create a custom CMS. This time in Python. For storing content I followed an approach which I was inspired by Aaron Pericki.

Moreover I looked into IndieWeb and therefore I decided to split content into different types like notes, articles and bookmarks. Due to this the feed structure of this site will change a little bit. You can find all details for feeds here.

If nothing is changed in the Feed Reader, all content will show up in this default feed (/feed) in the future.

After I switched to Hugo as the generator for this page before some time ago, I often asked myself if a comment function could lead to a higher degree of interaction. Of course, this question is difficult or even impossible to answer afterwards. Anyway, the page is now run by WordPress again.

All URL patterns used so far should still work. If not, please leave a comment.


This article will explain how to apply Application Lifecycle Management (ALM) in Azure DevOps for Power Apps. It will be shown how to set up the required Azure DevOps environment. Furthermore, it will be described how source code/Power Apps can be versioned, quality assurance can be performed and subsequently artifacts delivered to the production environment.

The history of the article is longer. The first draft was already written by me in 2019. In the meantime I have worked on it again and again. What finally kept me from publishing it was, in my opinion, not yet "finished" tooling of the "Microsoft Power Platform Build Tools for Azure DevOps - Power Platform | Microsoft Docs". The originally available tooling (Azure DevOps Extension) is still available now but has been marked as "DEPRECATED" since the jump to version 0.3.7. Already since the jump from version 0.1.16 to version 0.3.6 the original tooling has been fundamentally revised/improved.

In version 0.1.16, the access credentials (user name/password) had to be stored in plain text to set up the connection. Since version 0.3.6 this authentication can finally be setup using Service Principals.

Authentication methods Figure: Authentication methods

The old (not recommended) method (yellow) is still available. So the transition to the new option (green) is seamless, even for users who have already used previous versions of BuildTools or have not yet set up Service Principals. When changing to or starting with the current version of the Build Tools, you should always be using Service Principals.

Two versions are available in the Visual Studio Marketplace: 1. Power Platform Build Tools - Visual Studio Marketplace
2. (DEPRECATED) PowerApps BuildTools - Visual Studio Marketplace

As described above, this extension [2] is now marked as "DEPRECATED", so only [1] should be used.
The tools currently available for Azure DevOps are basically a wrapper around the SolutionPackager for D365 Customer Engagement (CRM).

The final architecture, for the integration of Azure DevOps and Power Platform, will look like the following on an abstract level.

Architecture overview Figure: Architecture overview

Microsoft itself suggests two different approaches for ALM in conjunction with the Power Platform. [^1] In this article the first variant is described, where only the source code is versioned, but not the packed solutions. In the context of classical software development this is also the normal way, because usually only source code and not compiled binaries are versioned.

Read more

Weekly CW17

When you try to focus on one technology, such as Microsoft Azure, as I do, you often forget to think outside the box. Due to the current situation, Google has made all online training materials for the Google Cloud currently available for 30 days free of charge.

Google Cloud learning resources at no cost for 30 days | Google Cloud Blog

Really a good possibility to extend your own knowledge and to look beyond your own nose, if you have not had any contact with GCP before.

If you have had contact with databases as a developer, ask why things are the way they are and what needs to be considered to prevent problems. »Things I Wished More Developers Knew About Databases« is a longer article, but a really good one.

There are several ways to get started using Microsoft Graph. One possible good one is »A Lap around Microsoft Graph Toolkit in Day 1 - An Overview of Microsoft Graph Toolkit«.

Developers who are starting to get involved with Power Apps are often surprised that OOTB there are no popup dialogs in Power Apps. But not everyone needs to reinvent the wheel. Therefore you should use components that have already been developed by others. »Canvas Power App Modal Dialog (Popup) - Power Platform Community« shows one possible way.

Weekly CW16

Julie Lerman wrote a very detailed article about the Entity Framework Core 3.0 with »Entity Framework Core 3.0: A Foundation for the Future«. Very interesting to read why the Entity Framework team has laid the foundation for further innovations with this version.

Uncertain which asynchronous messaging solution in Azure is the right one for a specific requirement? Then you should read the documentation »Asynchronous messaging options in Azure« from Microsoft to get a good overview of all available options.

If you want to start running an ASP.NET Core application in a container then you will often have basic questions about how to start it. Greg Roe has published a two-part article that explains exactly that. * »Hosting and ASP.NET Core API in a Container Part 1 of 2 - Building the Container« * »Push to ASP.NET Core API Container to Azure Container Registry Part 2 of 2«