Posts

Azure Functions Documentation

Image
I have been working with the Microsoft tech stack for many years now. Like most other developers, I refer to the documentation frequently. I remember seeing excellent, good and bad documentation. However,  I do not recall seeing something similar to the following (see the Note section):

+ Note Working in a console with ASCII art like that makes you look cool.

You gotta to love the new Microsoft!

Source: https://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings

Azure Service Fabric - Application Settings

So far, I got used to store and retrieve the application settings with the following code:

ConfigurationManager.AppSettings[“StorageConnectionString”]
CaseInsensitiveConfigurationManager.AppSettings.Get("StorageConnectionString")
CloudConfigurationManager.GetSetting("StorageConnectionString")

And other variations...

With Azure Service Fabric (ASF) it is a bit more involved, but offers finer granularity over your application settings. The following describes how to store and subsequently retrieve, the application settings in ASF (I added some colors so it will be easier to read. I hope that you are not color blind :-)

Storing values: In ~\ApplicationPackageRoot\ApplicationManifest.xml <Parameters>
  <Parameter Name="StorageConnectionString" DefaultValue=" Your Default Value" />
</Parameters>

The Service Fabric application model enables services to include configuration packages that contain custom key-value pairs that are readable at …

Azure Storage - Blob Copy

Image
You will probably find this post useful, if you need to rename or copy blobs (like virtual machine page blobs or block blobs). If renaming is what you are after, you are out of luck. At the moment, Azure storage does not expose functionality to rename blobs. The workaround is to copy the blob and give it a new name. The good news is that you do not need to download the files locally (blobs can be in the TBs scale) i.e. Azure Blob Storage supports direct copy between subscriptions and even accounts.

Searching the web for documentation and examples can be tedious as newer versions of the Azure storage SDK are not backwards compatible!

The following is a simple code for copying blobs programmatically using the SDK version 7.x:
// Parses a connection string and returns a CloudStorageAccount created from the connection string. var destinationStorageAccount = CloudStorageAccount.Parse(Your Destination Storage Account Connection String); var destinationCloudBlobClient = destinationStorageAcc…

Azure Service Fabric - Book Review

Image
On March 30, 2016 @ Microsoft Build Developer Conference, Azure Service Fabric* became Generally Available. If you are reading this, you are probably excited as well!

If you have been in the software industry for awhile, you probably know that announcing software Generally Available does not always mean that the software is ready for prime time LOL. This might not be the case with Azure Service Fabric, as Microsoft internally has been working with this tech for years before making it available (probably started as research project called Orleans).

A while back, I needed to get myself familiar with Azure Service Fabric, as it was the platform of choice for our green field project. I believe that when starting with a new platform, it is beneficial to use a relevant book as a starting point. A book, in contrast to disparate articles or blog posts, usually provides an overview in digested form. To that end, I picked up Haishi Bai’s book: “Programming Microsoft Azure Service Fabric”.
I…

Microsoft Oxford (Bing) - Speech Recognition - First Impressions

Image
Update: Microsoft Oxford is now called Bing Speech API

Project Oxford exposes a rich API which paves the way for many interesting business opportunities. The following are my observations after kicking the tires with the “Speech Recognition” feature.
My first stop was the code sample library. I found the library comprehensive, with many code samples for the different features that the API exposes. Moreover, it even has support for platforms other than Windows. At the time of writing this post, a speech recognition code sample was available for download on GitHub here. I recommend using it as it is well crafted and approachable. The UI (WPF app) is rudimentary but is just good enough for a jump start. In order to use the API, a key is required and can be generated on the Oxford website. The UI has a button that helps obtaining such a key and even serializes the key for later use. Nice!
Next, I ran the code sample with the provided audio samples. The Speech API got the job done with 100 %…

Is BI + NoSQL = NoGo?

Image
Successful leaders stay ahead of the competition, by making educated decisions based on hard data. In some cases, organization's data is so vast (Big Data), that Microsoft Excel just won’t cut it. If that’s your situation, you will probably want to consider a Business Intelligence (hereafter BI) solution.

One important aspect when evaluating a BI tool, is to check if the BI tool can work well with all data sources in your organization (existing and planned). In this post, we will explore one prevalent data source, the NoSQL database. We will see how well BI tools and NoSQL databases work together. Spoiler alert: there is an Impedance Mismatch between the two.

We can start with a quick introduction to BI and NoSQL as it will help better understand the main problem. The amount of data available for business this days, is vast and growing rapidly year after year. So is the need to transform raw data, into meaningful and digestible information. One that businesses can act upon. So, i…

MongoDB Server specifications

Image
I needed to build a dedicated server to host MongoDB (NoSQL) database for a PoC. In this stage, I did not need to worry about replication. Usually, when I need to build a server for development, I just take one of the unused machines around and convert it to something I can work with (in many cases on top of VMWare). This case was different as I needed to build the server from scratch. What should be the HW specs for such a server?

I couldn’t find any official document describing such a BoM (minimum requirements / system load and the resources needed). One of the searches I made was for a ‘NoSQL database resource calculator’ (similar to the one you have for cloud computing resources like Azure). One that you put in the estimated load (like the number/size of documents/collections/reads/writes) and you get HW recommendations. No luck. I guess it would have been nice to have such a calculator on MongoDB’s site. Not sure how feasible it is though…

After several more searches I found a g…