Skip to main content


Showing posts from October, 2018

Features branching strategy using Git and Azure DevOps

Let’s talk about different branching strategies that can be used when you use Git. Let’s assume that you are working on a project where based on what clients need (and pay) you shall be able to provide a specific list of features. Each client can decide what feature he wants to buy and use. The code is hosted inside Azure DevOps where you have a private Git repository. The solution is designed in such a way that you have a CORE layer, that it is common for all features. Because of the project complexity and how the solution is designed you cannot isolate each feature in a separate location. It means that the implementation of each feature can be found across the projects, in 2-3 different locations. A good approach that you can have is to create a branch for your CORE layer. Once this layer is stable for each feature, you can create a new branch from the CORE layer. The most significant advantage of this approach is the ability to merge different features at the moment when

HTTP 409 code when you use CreateIfNotExists with Azure Tables

A few days ago I took a look over Application Insights information that I have on one of my websites that are hosted as a Web App inside Microsoft Azure. In the last weeks I’ve made some improvements, and in theory, I should not have any errors reported by the Web App. Taking a look on the Application Insights, I notified a 409 error that was repeating pretty often. It seems that the HTTP Error is thrown each time when a new user session is an initiate, and some information is read from the Azure Table. POST azurestorageaccountname/Tables 409 The error was pretty odd initially, mainly because from the user flow and functionality, all things were on the right track. No errors reported on the UI, and the application behaved as expected. The 409 error represents reported at the moment when an entity already exists, for example when an Azure Table already exists. Looking closer on the call stack I notified that the error happens each time when ‘CreateIfNotExists’ method on the table w

IoT Home Automation | Alarm System Integration

In the last post related to home automation and IoT solution we talked about a simple watering system - In this post, we talk about how you can integrate the alarm security system and what is the approach that I used in the end. From the hardware perspective, I have an alarm system based on Paradox Magellan MG5050 with a K35 Keyboard and REM15 remote controls. On top of this, I have an additional module for messages - PCS 250 Mission To connect the alarm system to ESP8266 in such a way that I could arm and disarm the house using the ESP8266. First approach – Zone 8 To be able to control from an external device the Paradox board, you could, in theory, define a zone that can be used to arm or disarm the system. It can be confirmed using zone 8 (Z8) in combination with temper feature. Because I’m not a power user of Paradox systems, I was not able to configure it, just triggering the alarm system for