Skip to main content


Featured Post

Essential Terminologies to start a conversation about the Container Ecosystem

You heard the news - Embracing the world of Micro Services and Containers is essential to help you make your organisation's IT operations more agile, providing immediate operational benefits. Let us have a look at few essential concepts to help you start a conversation with your own internal IT, Developers and Vendors.

Micro services Well, as Martin Fowler put it, "Micro-services - yet another new term on the crowded streets of software architecture”, is what everybody is talking about. In simple terms, Micro service architecture enables packaging (mentally and physically) each unit of functionality into a service, and you can distribute and scale these services independently. In a traditional monolithic web or enterprise application, if you need to change a simple functionality, you have to rebuild and redeploy the whole application. In a Micro service architecture, you can individually deploy and scale services.  Now, this has got multiple advantages. You can scale only th…
Recent posts

Exploring Some Of The Probable C# 6.0 Features

In my last post, we explored how to create a tiny Roslyn app to compile C# code, to test out some of the new C# 6.0 features.

Read it here

Now go ahead and play with some of the preview features. Try things out. Create a file with some C# 6.0 sugar and compile it with our above app. You can explore the language features that are completed in this list, from the Roslyn documentation in CodePlex

Here is some quick code that demos some of the features

1- Support for Primary Constructors and Auto Property Assignments

Primary constructors allow you to specify arguments as part of your class declaration itself. Also, now C# supports assigning to Auto properties. Together, you may use it to initialise classes, as shown below.

//Test.csfile //C# 6.0 may support Primary Constructors and Assignment To Auto Properties using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CSharp6Test { //Feature: Primary Constructors or C…

CSharp6Test // Creating A Tiny Roslyn app To Explore The Features Of C# 6.0

Some of the C# 6.0 Features are exciting. And you can try them out now as the new Roslyn preview is out. You can explore the language features that are completed in this list, from the Roslyn documentation in CodePlex. Some of the ‘Done’ features for C#, based on the documentation there includePrimary constructors   -   class Point(int x, int y) { … }   Auto-property initializers -     public int X { get; set; } = x;  Getter-only auto-properties  -   public int Y { get; } = y;   Using static members  -   using System.Console; … Write(4); Dictionary initializer  -  new JObject { ["x"] = 3, ["y"] = 7 }     Indexed member initializer   -  new JObject { $x = 3, $y = 7 }    
Indexed member access -   c.$name = c.$first + " " + c.$last;   Declaration expressions -   int.TryParse(s, out var x);     Await in catch/finally  -  try … catch { await … } finally { await … }    Exception filters -    catch(E e) if (e.Count > 5) { … }    In this post, we’ll explore.…

Hadoop On Azure / HDInsight– Quick Intro Video On Writing Map Reduce Jobs In C#

Here is a quick intro screen cast on Big Data and creating map reduce jobs in C# to distribute the processing of large volumes of data, leveraging Microsoft Azure HDInsight / Hadoop On Azure, based on my virtual tech days presentation.

ScriptCs Templating Support

If you havn’t yet heard about ScriptCs, it is not too late. Go hereI just checked in a ScriptCs Templating module to integrate Razor and StringTemplate transformations in ScriptCs workflow. ScrtipCs Templating module can apply a Razor or StringTemplate (ST4) template on top of one or more model files (normally an xml file or json file), for scenarios like code generation or templating. Example below. The first bits are template moduleInstall scriptcs. You need to install the nightly build using Chocoloately - cinst scriptcs -pre -source (Refer if you don't understand this) Clone the repo at or download the source code from there. Open the solution and build it in Visual Studio. From the command line create a package: nuget pack -version 0.1.0-alphaIn VS, edit your Nuget package…

CakeRobot - A Gesture Driven Robot That Follows Your Hand Movements Using Arduino, C# and Kinect

Over the last few weekends I’ve spend some time building a simple robot that can be controlled using Kinect. You can see it in action below.
Ever since I read this Cisco paper that mentions Internet Of Things will crate a whooping 14.4 Trillion $ at stake, I revamped my interests in hobby electronics and started hacking with DIY boards like Arduino and Raspberry Pi. That turned out to be fun, and ended up with the robot. This post provides you the general steps, and the github code may help you build your own.
Even if you don’t have a Kinect for the controller, you can easily put together a controller using your phone (Windows Phone/Android/iOS) as we are using blue tooth to communicate with the controller and the robot.

Now, here is a quick start guide to build your own. We’ve an app running in the laptop that is communicating to the Robot via blue tooth in this case that pumps the commands based on input from Kinect, you could easily build a phone UI as well.
And if you already go…

Reactive Extensions Or Rx (More On IEnumerable, IQueryable, IObservable and IQbservable) - Awesome Libraries For C# Developers #2

In my last post – we had a look at Interactive Extensions. In this post, we’ll do a recap of Reactive Extensions and LINQ to Event streams.Reactive Extensions are out there in the wild for some time, and I had a series about Reactive Extensions few years back. How ever, after my last post on Interactive Extensions, I thought we should discuss Reactive extensions in a bit more detail. Also, in this post we’ll touch IQbservables – the most mysteriously named thing/interface in the world, may be after Higgs Boson. Push and Pull sequences are everywhere – and now with the devices on one end and the cloud at the other end, most of the data transactions happen via push/pull sequences. Hence, it is essential to grab the basic concepts regarding the programming models around them.First Things FirstLet us take a step back and discuss IEnumerable and IQueryable first, before discussing further about Reactive IObservable and IQbservable (Qbservables = Queryable Observables – Oh yea, funny name).…