Azure KeyVault - How to download my password protected pfx?

Today I discovered a feature of the Azure KeyVault certificate store.

We have a bunch of Azure Function Apps that have a certificate attached to them in order to connect to the shared KeyVault. I added a new Azure Function App and needed to upload the PFX so that Azure Function would have access to the KeyVault too. I thought this would be as simple as downloading the certificate through the Azure Portal and re-uploading to to my Azure Function App, but Microsoft for some reason strips the password from the certificate, and a password is required when uploading through the portal.

Read More

Application Authentication with Microsoft Graph

I have never attempted to use any Office365 or SharePoint APIs in my career to this point. The difficulty involved in figuring out exactly what I needed to do to retrieve and post some data to Office365 was much higher than I anticipated. This was because almost every tutorial I encountered, or quick start option within Office365 was aimed at user centric applications. My application did not have user input, it was an automated task. I also found out half way through this task that there are two distinct ways to create Azure AD applications that require wildly different approaches to use.

The struggle to figure out how it all fits together is what inspired this post, so I can use this for future reference if I need to complete a task like this again.

Read More

Using Microsoft Flow

Recently the office has been competing for the top relic time in levels on Crash Bandicoot N-Sane trilogy. Due to many reasons, we ended up with an Excel Spreadsheet to store and compare our times with each other. I found myself wanting to know when the data in that spreadsheet had changed. I have wanted to try out using Microsoft Flow for quite a while, and decided that this was the perfect opportunity to get my data rather than manually checking the file for changes.

Read More

Xamarin - Set Mac Up as Build Agent

When creating an application for IOS, it is required that you use the Apple build tools; which are only availble on OSX. This can become a burden if your main development machine is a Windows machine, and you are only using a Mac to create your IOS application. In this post I go over the steps to set your Mac up as a build agent for your Windows machine and discuss the benefits doing this will open up for your development workflow.

Read More

Posh Git On Mac

I have recently purchased a Mac in order to create some IOS apps. This is the first time I have used Apple products outside of basic use in school many years ago. I have started installing various development tools that are available to get me going. One thing that I found was missing was my beloved Posh-git. Posh-git is a great powershell extension on Windows that makes seeing what is happening in git much easier. I want that same functionality on the Mac.

Read More

Azure Sentiment Analytics - How Negative Am I?

Recently I was given the feedback that I am quite negative in the office. I was not surprised by this feedback as I have noticed it in myself too, and I want to do something about it.

I have a goal to be more positive in 12 months time, but the problem with that goal is that it is pretty hard to measure, it will just be about perspective of others around me without any “concrete” proof.

In order to have some fact behind whether or not I achieve my goal, I going to attempt to use Azure Sentiment Analysis on my social media and emails for the next 12 months.

In this post, I discuss what I am intending to measure and what I have set up with Azure to help me measure it.

Read More

Azure Function Error - The function runtime is unable to start

Doing some work on an existing Azure Function that was created by someone else; I ran into to an issue in the Azure portal where I would get the error: The function runtime is unable to start. It turns out it was to do with IP restrictions set up before I took this over. Here is the process I took to find the issue and what was required to resolve it.

Read More