Changing jobs!

Having worked for four years at Atos now, early this year I began feeling like it might be time for something new. In these past four years I’ve learned a lot about how large companies work, having some of Hollands largest as my customers. It’s an intriguing world with it’s own problems, completely different from the small companies I used to work for before this job. Atos also gave me the chance to develop myself, shifting from being a hardcore developer to having more soft skills targeted towards advising customers and guiding them in today’s and tomorrow’s world of technology. For this I’m very thankful, really appreciated all of it.

But as they say, all good things must come to an end and so I’ve decided it was time to move on. Next to saying goodbye to a job, I’ll also be partly saying goodbye to the product I’ve worked with for so many years now. Yes, it’s time to let go of the “SharePoint Architect” title I was given 4 years ago. Never liked the architect part btw but that came with the job… Many projects with many customers and probably even more colleagues later, focusing purely on SharePoint just doesn’t do it for me any more. If you’ve kept track of my previous blog posts you probably noticed a lot more emphasis on Microsoft Azure and this is exactly what I’ll be moving to. I love the pace the Microsoft cloud platform is progressing at and how analysts like Gartner are increasingly confirming that Microsoft is a leader in this space. I’m not going to abandon Office365 completely though as I feel it’s a very important part of the Microsoft cloud offering, especially when combined with all the goodies Azure has to offer. It’s the combination that makes perfect and that allows me to still leverage part of my existing skill set.

So in my next role I’m going to shift focus a bit, focusing on developing solutions for and based on Microsoft Azure with Office365 when applicable. How exactly this will pan out I’ll see in the coming months. I’d love to help out customers in finding their way in all of the things the MS cloud has to offer. Making sure that solutions are future ready and leverage the cloud in the way they should, instead of simply shifting VMs over. Pretty excited about that and you might imagine I can’t wait to start!

In the next few weeks I’ve still got some project handovers to do and there’s a little break coming up. So that new start will be all fresh and spirited! Keep track of my blog or LinkedIn profile for more info! Talk later!

[Azure] Logging out of Azure AD oauth

In a previous post you can read how I used Apache Cordova to create a client application that is linked to my back-end API hosted in Azure. For authentication, I made use of the built in authentication options of the Azure Mobile Apps plugin for Cordova (GitHub).  This plugin simplifies the authentication flow process, which uses server flow in this case. Basically that means that our Web API handles most of the flow by configuring the Microsoft.Azure.Mobile.Server.Authentication NuGet package. There is also client flow, where the flow is handled client-side, for more info on that check out the great blog series by Adrial Hall on Azure Mobile Apps. (more…)

[Azure] Custom Function bindings + notification tags in Cordova apps

Previously I explained how I am using an Azure Notification Hub to send out notifications to a mobile application made with Cordova (read it here). This is cool, but in that scenario every notification was being sent out to every client. This is fine for some situations but in most cases you probably want some mechanism to send out notification to specific devices or a group of people. The most used example is news: you subscribe to a couple of subjects and receive only notifications for messages linked to one of those subjects. This post details how you can achieve this.  (more…)

[Azure] Adding more intelligence to Stream Analytics queries

If you’ve read my previous blog on Azure Stream Analytics, you know how Stream Analytics can be used to process all sorts of incoming data and send the end result to one or multiple outputs. This is particularly useful for ensuring the right data is saved, manipulating the data before saving or only filtering out data in which you’re interested. And that last category is what I used it for: notifications! The query I used previously is not very dynamic, here’s a snippet:

Works, but what if we start adding more sensor values? Hmm, we’d need to change the query each time. Not really what we want to do, right? Time for a better solution.


[Azure] Setting up continuous integration for (existing) Azure Functions

I a previous blog I showed how you might replace your existing Azure WebJobs with Azure Functions. If you’re creating these functions as part of a project, you’re bound to have some sort of source control solution in place and you might want to leverage the possibility to automatically deploy your code (aka continuous integration). Luckily Azure Functions supports this, I’ll detail how to set it up in this blog.  (more…)

[IoT] Aquarium monitor; Sending commands back to your hardware

Let’s start with some awesome news first! All of the sources for this project are now live on GitHub! Which doesn’t mean I’m close to being finished by the way, but it does allow you to take a look and maybe even contribute should you want to. This includes all of the code from the previous blog posts as well, so go over and take a look:

Allright, so let’s get down to what this post is all about: sending commands back to your hardware. (more…)

[O365] Deploying a SharePoint theme / branding using JavaScript only

With provider hosted add-ins being introduced in SharePoint 2013, the world of SharePoint devs shifted to using provisioning schemes to get their stuff in SharePoint sites. And this worked, quite well i might add. You might have read my post on SPMeta2 vs PnP (which is a bit outdated I must add). These provisioning engines allow your to provision “stuff” (files, folders, lists, contenttypes, whatever) to SharePoint. Amongst other things, they have one thing in common: they’re built on top of the CSOM (Client Side Object Model) C# SDK. This means that you are forced to run them as a stand-alone task, or deploy a provider hosted app which includes having a server up and running somewhere. So what if you do not want that?  (more…)

[Column] Waarom 2 kinderen meer dan genoeg is

Alweer een tijdje geleden dat ik op mijn blog een column schreef. Ik weet niet eens zeker of dit stuk wel kwalificeert als column, maar goed. De laatste weken zijn wij thuis steeds bewuster aan het worden rondom wat we “verbruiken” aan eten. Dat begon bij de frisdrank door wat beter te kijken naar het aantal calorieën (jaja, je weet best waarom). Maar al snel ga je dan ook op andere dingen letten.  (more…)

Web API controller hosted in Azure not respecting [AllowAnonymous]

Working on a project, I encountered a situation I couldn’t wrap my head around. The project includes a (rather simple) ASP.NET Web API project which is published to an Azure App Service instance. Up to now, all of the endpoints I was calling I had secured using Azure AD authentication which is a breeze to set-up. But now wanted to make one specific controller available for unauthenticated calls as well. Normally that’s rather simple, you would just add the [AllowAnonymous] attribute to the controller (or specific action) and voila; authentication would not apply to that one. So I did and published this to Azure only to be returned 401 Unauthorized responses. Hmmm.  (more…)

[IoT] Replacing webjob with Azure function

In this blog post I will not be adding any new functionality to my aquarium monitor project. Instead, I’m going to replace already existing functionality. Not because that’s needed, but just because I can 😉 We’ll be looking at replacing our webjob instance using something new which is called Azure Functions.

If you didn’t read it or do not recall, check out the post I wrote on how I implemented notifications. I made use of a webjob to monitor the event hub for incoming notifications (generated by Azure Stream Analytics) and sending those to the notification hub. A few lines of code also constructed the message to send. (more…)