All posts by Callon Campbell [MVP]


UofTHacks VI Recap


This past weekend I got the opportunity and had the pleasure of participating in my first hackathon at the UofTHacks VI, which was at the University of Toronto campus from January 18th to the 20th at the Bahen Centre for Information Technology. The event consisted of over 500 hackers, and spanned 36 hours, and would ultimately prize 3 winners.


An event, typically lasting several days, in which a large number of people meet to engage in collaborative computer programming. We look past this traditional definition of a hackathon and take it to new heights. UofTHacks is the University of Toronto’s annual hackathon. At UofTHacks, we bring people together to make new friends, learn new things, and bring new ideas to life.

I was participating as a Microsoft sponsor. This meant I was available to help mentor the students who had questions on Microsoft Azure or anything for that matter, and provide them with an insider perspective of how things work in the industry. I also then got to be a judge for the Microsoft prize which was based on projects that leverage Microsoft Azure services.

It was a lot of fun to work with these students as they had such drive and passion for what they worked on. The judging aspect was probably the best part as I got to take a look at over a dozen projects and see what they built, why they built it, how they built and then where would they take it next. Almost all the projects had real world applications and some even created business plans as part of their sales pitch.

Some of the big sponsors at the event were Microsoft, Google, IBM, Interact, Intel, Standard Library, ChainSafe, Lyft and SmartCar, plus many others.

As for the Microsoft prize, it was 4 Xbox One X 1TB consoles. This was presented to team Blink who created an application that would sit in your car and monitor the drivers eyes for signs of fatigue, drowsiness, or any other impairment. They leveraged the Microsoft Custom Vision Service and built their own data model that consisted over 250 images they gathered from the event of peoples eyes. They eyes were that of different ages, different skin colors, with and without glasses. They also retrained this model a number of times over the course of the 36 hour event, including the morning of judging session when the room had different lighting conditions. Their was a mobile and server components of the app that would send out SMS alerts to the registered emergency contact in the event impairment was detected and also alert emergency services. It was a well put together hack that had a clear application for issues we encounter today.

Here are some pictures of the event


This might of been my first hackathon but it definitely won’t be my last. I will keep an eye out for something more suited for the working developer that is maybe limited to a day, otherwise I hope to come back next year and help these students out and see what they create.



Team Blink – A machine learning eye detection app which determines if the driver of a smartcar is impaired & alerts 1st responders

Personal Development

2018 Year in Review


Happy New Year everyone! To kick off the new year I’d like share with you what happened in 2018, what it meant to me, and where I plan on going in 2019.

I started 2018 off on the home stretch towards my first Microsoft MVP Award for the Azure award category. I was getting close and my mentor Sim said I needed to get out into the community and do more speaking engagements in. In 2017 I started to speak at local user groups when I started on my Microsoft MVP journey. So in 2018 I needed to go all in with lining up more speaking engagements, and in total for the year I managed to do 13 technical talks that covered all things Azure, Azure DevOps, Serverless, Azure Functions, Logic Apps, Event Grid messaging and finally a little AI with Microsoft Cognitive Services. I also participated at not one but two Global Azure Bootcamps (Mississauga and Kitchener/Waterloo). I won’t lie, it was tiring sometimes and in one month I squeezed in 3 talks. However it was a lot of fun to work on this part of my professional development, and I made a lot of new friends and expanded my professional network and I learned a lot!

I also got to attend my first Microsoft Build conference. This was a conference I’ve always watched from my desk at work and/or in the evenings at home to catch up on the recorded sessions, and I’ve always wanted to go their in person and take in the experience first hand. Sure you can watch it for free from home or at work, but its the experience and the people you get to meet in person that make all the difference. This year work decided to send me to Build and it was a dream come true. I travelled to Seattle with my son and met up with my Dad. While I was at the Build conference, my dad and son got to spend some quality time together and the three of us got to have fun in the evenings. After taking in the keynotes I went directly to the technology hall and engaged with the product teams to soak in as much as I could. I got to talk to my “super heroes”…the people I’ve always looked up to and admired for their passion in technology, who work at Microsoft and love what they do, and are just cool and down to earth.

Crunching the Numbers

I published 69 posts and have at least 11 drafts that never made it out.

I had 34,232 views by 26,430 visitors.

My most popular day for views was Wednesday and the most popular time was at 1:00 pm.

My top post was “How to Enable Dark Theme for SQL Server Management Studio”.

My top referrers were through Google search, Twitter and Medium.

My visitors came from all parts of the world. The top 10 in order were the United Stated, United Kingdom, India, Canada, Australia, Germany, Brazil, Netherlands, France, and Poland.

My Twitter followers grew from 221 to 680.

I also setup another blog on Medium where I re-blog my posts to expand my reach. What’s interesting is that Medium is a great place to write articles, and they bring in a lot of traffic. So my tip to anyone setting up a blog in 2019…take a look at Medium. You may still want to go and create your own website or host your blog on, but I would seriously consider incorporating Medium into your portfolio of services to use.

Top Moments of 2018

2018 was an awesome year for me and if I had to pick my top 3 moments for they year they would be…

  1. Attending Microsoft Build conference and meeting people like Scott Hanselman.
  2. Being awarded my first Microsoft MVP award in Azure and meeting other MVP’s.
  3. This one is not technology related, but it was special for me. I purchased my first Harley-Davison, a 2018 Fat Boy 115th Anniversary Edition, Milwaukee-Eight 114 engine and I rode it almost every day from April to October – except for the rain days. What a beauty and I can’t wait to ride it in 2019!

What’s to come in 2019

I see 2019 as a year of exciting opportunities and challenges. I will be looking to take some Azure certifications and expanding my knowledge deeper into Azure. I will continue to speak at user groups and at least two conferences…the first is the Microsoft Ignite Tour in Toronto (Jan 10-11), and the the next will be at the Global Azure Bootcamp (Mississauga) in April. There is also a Global DevOps Bootcamp later in the year I will checkout and considering speaking at.

I’m also planning on attending the Microsoft MVP Summit in March, and somewhere between January 1 and March 31, I’ll be looking to do some more presentations around Azure and Azure DevOps towards my Microsoft MVP renewal that happens July 1.

Although I would love to attend the Microsoft Build conference this year if work would send me, I have other activities at that time so I will have to settle for watching it remotely. I will definitely look at going back sometime in the future, possible in 2020? Only time will tell.

Happy New Year, and may you all have a fantastic year!


Moving your Azure Resources to Another Subscription or Resource Group

At some point or another you may  need to move your Azure resources to either another Azure Resource Group or to another Azure Subscription. This is easy to do and is useful when organizing your resources for management or billing scenarios. Before moving any resources it’s best to take a look at the following checklist before moving resources link.

Ok let’s get started. In this example I’ll be moving an Azure Resource Group with a number of services over to another Azure Subscription.

Steps to move resources

Step 1 – Navigate to the resource group you want to move. Go to the Resource groups blade in the Azure portal and then navigate to the particular resource group.


Step 2 – Click on Move button and then select Move to another subscription option.


Step 3 – Next in the resources to move screen, review the resources that are to be moved over which are all automatically selected. Then select the subscription and resource group you want to move target. If the resource group is not already created, you can create it now by clicking on the link to create a new resource group.


Step 4 – Now click on the OK button to start the process. The job will then be validated and then you will see a notification of the movement in progress, followed by a success or failure notification. In the event of a failure, details will be provided on why the resources could not be moved. Usually after working through these issues you can try again.



Step 5 – You should now go to the new resource group you created and verify all the resources are accounted for and that the resources still function as intended.

Step 6 – Finally you want to tidy up and delete the original resource group on the source subscription as it’s now empty and should not be used again. To do this go to the original resource group and click on Delete resource group button. You will be prompted to type in the name of the resource group to confirm you want to continue.



This article covered moving a resource group and all of its resources from one subscription to another. The same process is applicable when moving resources from one resource group to another within the same subscription.



Move resources to new resource group or subscription


Azure Overview Tool

Have you ever wanted to find out if a particular Azure service is in preview or generally available? Fellow Azure MVP Barry Luijbregts created a great website which provides up-to-date status of Azure services.


Azure is constantly changing and is sometimes overwhelming to try and keep up with what’s in preview vs generally available. What is awesome about this website is that it’s more up to date than the other Microsoft sites that try to provide this information.

The website is also open source, and you can check out the source code on GitHub:

I’ve definitely added this site to my bookmarks and look forward to further enhancements. Thanks Barry!




Introducing the Azure DevOps Service Status Portal

Last week Microsoft introduced the Azure DevOps Service status portal which provides real-time insights into the current health of Azure DevOps regional feature status and provides additional details on specific events either current or historical.

When you go to the Azure DevOps Service status portal, the main dashboard shows you a 2-dimensional matrix mapping of the feature with geographic regions as shown below.


To see current or historical events, click on the Status History link where you can filter the results by service type, categories, severity and then date range:


Clicking on a particular event log will take you to the event log page which shows all details about the event, what was affected, when it was resolved, and then any workarounds that users can take if needed.


REST APIs will be coming soon for users looking to build automated solutions to watch the service status.

For service health updates relating to Azure’s global services, please refer to the Azure Status page.

For more information on the new Azure DevOps Service status portal, please refer to the Azure DevOps Service Status documentation.



Azure DevOps Service Status portal

Azure DevOps Service Status documentation


Authenticate Azure DevOps against its own REST API

toon vanhoutte

During Azure DevOps build and release pipelines, you might have the need to consult the Azure DevOps REST API.  This blog explains how you can easily perform the authentication that is required to call that REST API.

Enable OAuth Authentication

First of all, you need to check the option Allow scripts to the OAuth token.  This enables scripts and other processes launched by tasks to access the OAuth token through the System.AccessToken variable.  This setting is somewhere hidden in the Additional options of the Agent Job:


Use the OAuth token inside the script

Within a PowerShell script you can now retrieve the System.AccessToken variable and use it to authenticate against the Azure DevOps REST API.  A simplified example:

#Set authorization headers Write-Host Set authorization headers $headers = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } #Invoke REST API Write-Host Invoke REST API Invoke-RestMethod $url -Method $method -Body $body -Headers $headers -ContentType 'application/json'…

View original post 90 more words


#MachineLearning – Free Ebook [Pattern Recognition and Machine Learning] from Christopher Bishop

via #MachineLearning – Free Ebook [Pattern Recognition and Machine Learning] from Christopher Bishop