Random Access Memories.

Read about the technology that I’m working with and whatever interests me.


Tagging Git History from Azure DevOps Release pipelines

In order to generate a tag in git that marked the commit of the source code that was actually released to my Production Environment. I create this small powershell command that is able to mark the commit using the Azure rest API. The benefit of this approach is that I don’t need to clone the repository in my Release pipeline and no external components or dependencies are required.

Read More

How-to use Google Assistant to control AudioStation on your home NAS

Like many folks who own a Synology NAS I watched with envy as folks in the Alexa universe received love from the development team at Synology to command and control playback of the media that they had placed into the AudioStation app, while those of us within the Google verse got nada. Time to take matters into my own hands. google_assistant

Read More

Canvas App can’t see ModelDrivenFormIntegration.Item at App Start

I started working on a canvas app using the Microsoft Power Platform. My application is placed on a Model driven form as a custom control. It was supposed to integrate with data provided by the Model Driven form and then prompt the user to either edit or create the data, presenting a separate screen for each task. At first I thought that the OnDataRefresh event would fire at the time that the model driven data finished loading in the background. It turned out that it isn’t possible to navigate to another screen from within the OnDataRefreshAction, so I needed to come up with another way.

Read More

Passing parameters to Power Automate from CanvasApp

Recently while developing a CanvasApp using the Microsoft Power Platform I came across an error message at the point that I was calling a Power Automate workflow. The workflow had been working up until this point but I added a new parameter, and now things weren’t working.

Read More

How to implement the Queue Collector within an Azure function

Whilst working with Azure functions you may come across a situation where you need to return multiple items to a queue, it isn’t immediately obvious how to do that. Placing a message on the queue from within an Azure Function typically involves placing the attribute [return: Queue("function2Queue")] on the main function body. But to add many messages you must add a parameter decorated with [Queue("function1Queue")] ICollector<__type__> to the definition of the Run method.

Read More

Validate JWT Token signed with RS256 for use within Microsoft Dynamics 365 CRM

How to secure an external web API call for use within Microsoft Dynamics 365 CRM Portals. With the April 2019 release of Microsoft Dynamics a new feature was added that provides an endpoint that can be used to obtain secure access tokens that contain user identity information. The addition of this feature provides a solution that can be used to call external Web API’s on behalf of the user that is logged into the CRM application. JWT diagram

Read More

Bluetooth connected Navigation display

The goal of this project is to create a low cost display that can be mounted to the handlebars or fairing of any motorcycle to provide a display of the riders route navigation. GPS navigation is performed via an app running on the users smart phone. Directions are communicated over Bluetooth from the the phone to the display module discussed below. The display is designed to be minimally distracting and provides the following information to the rider: screen shot 1

Read More

.Net Library for DLS & NTS Survey systems used in Western Canada

Working with Oil and Gas well location data in Western Canada is challenging due to the prevalence of many different identifier types that are used to represent the location of a given well, we have DLS, NTS & UWI. I developed a library that contains types that represent the various grid systems. These types perform validation of input values to ensure that the values are valid. The types can also perform conversion between geographic locations and the survey system locations. dls_map

Read More