Session: Azure Serverless App Services @ Singapore

July 5, 2016 Azure, Developer Hub, Sessions No comments , ,

On 18th July, I and my friend Faizal (both Azure MVPs in Singapore) will be holding a session as part of Azure User Group in Singapore. In this meetup, we will talk about Serverless Architecture and how Logic Apps and Azure Functions add up to a Serverless App Service architecture for your Business and SaaS applications

The session will demonstrate how integration of existing SaaS applications can be achieved and how event driven serverless programming can be done on Azure. This will be Level 300 talk with more references to architecture than just demos.

The session is completely free, so you can RSVP at below link


Date/Time: 18th July 19:00 SGT
Venue: Microsoft Singapore, Level 22, 22CF12

PS: As part of .NET User Group, we also have a guest MVP Eriawan join us to give an excellent introduction to F# and drive community engagement to the wonderful functional language. So please join his session at 7pm SGT

1Gig-Tech (#33) – TorchNet, SemVer, Serverless Arch, Planner

June 26, 2016 1Gig Tech No comments , , , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 16 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • Semantic Versioning 2.0.0
    Summary Given a version number MAJOR.MINOR.PATCH, increment the: MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes.
  • Serverless Architectures (Mike Roberts)
    Serverless is a hot topic in the software architecture world. We’re already seeing books, open source frameworks, plenty of vendor products, and even a conference dedicated to the subject.
  • Essential .NET – Dependency Injection with .NET Core (Mark Michaelis)
    In my last two articles, “Logging with .NET Core” (, and, “Configuration in .NET Core” (, I demonstrated how .NET Core functionality can be leveraged from both an ASP.NET Core project (project.json) and the more common .NET 4.
  • A Simple, Fast & Reliable CDN
    HTTP/2, origin shield, RESTful API, real-time stats, instant purge and many more awesome features crafted with love for you. Built on IP Anycast and on our latency based routing technology for best performance and scalability. Developed for lightning speed.
  • Centralized Workflow
    Transitioning to a distributed version control system may seem like a daunting task, but you don’t have to change your existing workflow to take advantage of Git. Your team can develop projects in the exact same way as they do with Subversion.
  • Synchronising Visual Studio Code extensions
    These finally allow an official mechanism to script extension installs, making it easier to maintain a consistent development environment across machines. This is the bash script I use to install a set of extensions to both the stable and insiders channels of VS Code.
  • Microsoft Planner ready for showtime (Planner Team)
    Today marks the general availability of Microsoft Planner. Over the next several weeks, Planner will roll out to all eligible Office 365 customers worldwide. This includes Office 365 Enterprise E1–E5, Business Essentials, Premium and Education subscription plans.
  • Robots & Humans (Euan Davis)
    The rise of artificial intelligence (AI) and robotics has both excited and concerned the general public in equal measure.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


1Gig-Tech (#32) – Prefix.IO, MSBuild, dotnetConf, SQL Server 2016

June 6, 2016 1Gig Tech No comments , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 7 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • dotnetConf 2016
    We have been working on a great set of sessions. Check out some of the speakers we have lined up. For the complete agenda, click here. Immerse yourself in the world of .NET and join our live stream for 3 days of free online content June 7 – 9 featuring speakers from the .
  • Raspberry Pi with cloud vision at Google I/O (Liz Upton)
    Matt visited Google I/O yesterday, and sent back some pretty incredible pictures. This event looks more like a music festival than a tech conference. He was sending pictures and excited snippets of text back to Pi Towers all through the event, and then, when he got home, shared this video.
  • Interactive Azure Platform Big Picture
    Developer Services Visual Studio Team Services Azure DevTest Labs* VS Application Insights* HockeyApp Developer Tools Management & Security Azure Portal Scheduler Automation Log Analytics Key Vault Secur

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


1Gig-Tech (#31) – SonarLint, AMQP, Code Coverage, Hybrid Cloud

May 15, 2016 1Gig Tech No comments , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 7 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


1Gig-Tech (#30) – Azure Stream Analytics, IoT, ThinScript, NuGet

April 24, 2016 1Gig Tech No comments , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 15 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • Azure Stream Analytics and Power BI general availability (Ryan CrawCour)
    Today we are pleased to announce the general availability of the integration between Azure Stream Analytics and Power BI. With this capability you are able to create interactive real-time dashboards for streaming data from devices, sensors, infrastructure and even your business applications.
  • Typing with pleasure (editor)
    In this article I examine human- and machine aspects of typing latency (“typing lag”) and present experimental data on latency of popular text / code editors.
  • ThinScript Compiler Demo
    ThinScript is an experimental programming language that compiles to both WebAssembly and JavaScript. It’s meant to be a thin layer on top of WebAssembly that makes it easier to work with: no dependencies and fast compile times.
  • What Has Microsoft Done For You Lately? (Cody Lindley)
    Thanks to some influencial dialog with Rey Bango and Christian Heilmann I recently stopped and reflected upon Microsoft. What I realized is Microsoft isn’t just talking about change – they have actually changed. Just take a look at Github and I think you’ll see what I am talking about.
  • Hjson, the Human JSON
    A configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. Tweet Glad you asked. Actually you don’t need to do that!
  • NuGet 3.4.2 Release Notes
    NuGet 3.4.2 was released on April 8, 2016 to address several issues that were identified in the 3.4 and 3.4.1 release.
  • Modern software is built on APIs.
    Create and send any HTTP request using the awesome Postman Builder. Requests are saved to history and can be replayed later. Manage and organize your APIs with Postman Collections for a more efficient testing and integration workflow.
  • Azure IoT at //build 2016 (Sam George)
    We just wrapped up an incredible week at //build 2016, and we’d like to thank all of the developers, customers and partners involved for making this such a great event.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


WiFi connectivity – Spark Core vs Particle

April 4, 2016 IoT, Particle No comments , , ,

Over the last few days I have been struggling to get my Spark and Particle Photon connected to my home WiFi seamlessly.

The Particle board connects to WiFi instantly. When I tried connecting my Spark Core, it fails continuously. Spark Core would always blink GREEN and would never get connected to my home WiFi.

I tried flashing the lastest software using dfu-util

particle flash --usb cc3000_1_14

It did not connect. I tried connecting using Mobile Hotspot (using LG G4 Android), Home WiFi and Xiaomi USB Access Point. Particle Photon Board was able to connect to all of them successfully; Spark Core could only connect to Mobile Hotspot. This meant that there were some settings in the other two WiFi that were creating issue.

Finally, the electronics engineer in me took up the challenge and I started reading the datasheet of both boards. Below are the findings and the way to fix this

Particle Photon Board

  • Uses Broadcom BCM43362 chipset that works with IEEE 802.11 b/g/n device classes at 2.4GHz (single band)
  • Connects well with Channels 1-13 (tried by myself)

Spark Core Board

  • Uses CC3000 chipset that works with IEEE 802.11 b/g device classes at 2.4 GHz (single band)
  • Connects well with Channels 1-11

The Fix

With this knowledge, I tried to analyze my home WiFi connecting using 3 different WiFi connections

  • Home WiFi (AzTech repeater) using mixed mode 802.11 b/g/n at 2.4GHz was using Channel 12. I changed the channel to Channel 5 and rebooted the router but it still used Channel 12. This was because the repeater was connected to DLINK router (main router) that was broadcasting on Channel 12.I manually configured to use mixed mode 802.11 b/g/n with Channel 10. A restart of modem and Spark Core could finally connect to main router. A restart of repeater was required to have Spark Core connect successfully to the repeater network.

Spark Core


  • Xiaomi USB Access Point: I could not manage to connect using this even with Channel 1. I believe this uses 802.11 n mode.

WiFi Analysis

For this analysis, I used WiFi Analyzer on Windows Store. This application displayed all key information required to troubleshoot this.

After fixing the router, WiFi analyzer output looks like,



So in a nutshell,

Spark Core needs 2.4Ghz 802.11b/g CH 1-11 whereas Photon works with 2.4GHz 802.11b/g/n CH1-13

PS: I had posted the problem on Community forum and troubleshooted this problem. Detail steps also available at:

1Gig-Tech (#29) – BASH, Azure Functions, VS2015, Windows10

April 3, 2016 1Gig Tech No comments , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 16 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • BASH Running in Ubuntu on Windows
    Windows provides developers with a familiar Bash environment. This environment will allow users to: Windows is running Ubuntu user-mode binaries provided by Canonical. This means the command line utilities are the same as those that run within a native Ubuntu environment.
  • Introducing Azure Functions
    Data is everywhere. It’s in the Cloud, on-premises, and is increasingly proliferating across Internet-connected devices. Organizations are working to unlock the value in that data, and are asking their developers to respond with highly-scalable solutions built on ever-compressed timetables.
  • Visual C++ for Linux Development (Marc Goodner)
    Today we’re making a new extension available that enables C++ development in Visual Studio for Linux. With this extension you can author C++ code for Linux servers, desktops and devices. You can manage your connections to these machines from within VS.
  • Run Bash on Ubuntu on Windows (Mike Harsh)
    Since we started planning and building Windows 10, we’ve been talking to a lot of you about what you would like to see in Windows to make it a great place for you to build awesome apps, sites and services for all platforms and all devices.
  • Visual Studio 2015 Update 2
    Today, we are happy to announce the release of Visual Studio 2015 Update 2. This release focuses on stability and on responding to the feedback we’ve received on RTM and Update 1.
  • NPM Worm Vulnerability Disclosed (Alex Blewitt)
    The NPM project has formally acknowledged a long-standing security vulnerability in which it is possible for malicious packages to run arbitrary code on developer’s systems, leading to the first NPM created worm.
  • Myrtille
    Welcome to Myrtille! Myrtille is a simple yet efficient way to connect an RDP server through a web browser. It requires only a simple browser (no plugin, extension, application or configuration whatsoever). Thus, it works straight from any web device (including touch pads and mobiles).
  • The MEAN Stack
    What is the MEAN stack? (0:47) MEAN is a collection of JavaScript-based technologies — MongoDB, Express.js, AngularJS, and Node.js — used to develop web applications. From the client and server sides to databases, MEAN is a full-stack development toolkit.
  • Less vs Sass? It’s time to switch to Sass (Sam)
    The Sass vs. LESS argument has been done to death. In this series I’ll talk about why Sass really is the best, why you should start using Sass if you haven’t already, how to get started using Sass and Problems with pre-processors, alternatives to Sass and CSS4.
  • Using Docker to run Node.js on a Raspberry Pi
    At, I get to learn about a lot of really interesting emerging technologies in my day to day work. But I don’t always get to explore them myself in depth. This past weekend, I set aside some time to do just that.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


1Gig-Tech (#28) – Docker, MongoDB, SemanticUI, GPU .NET

March 26, 2016 1Gig Tech No comments

Welcome to 1Gig Tech update!

In today’s edition, there are 24 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • Google Nik Collection
    NVIDIA GeForce 8 Series, GeForce 9 Series, GeForce 100 Series, GeForce 200 Series, GeForce 300 Series, GeForce 400 Series, GeForce 500 Series, ATI Radeon HD2000 Series, Radeon HD3000 Series, Radeon HD4000 Series, Radeon HD5000 Series, Radeon HD6000 Series.
  • Less Tutorial for Beginner : Understanding Less
    You may have heard or tried before or you know basic and willing to grow your LESS knowledge. Here I am going to make a complete tutorial for less. As this is the starting point, let’s understand what is less and why do we need this awesome preprocessor instead of plain css.
  • The Ten (10) Best Node.js Productivity Tools, Plugins, and Libraries
    Every engineer worth his/her salt should have a set of awesome tools to help increase productivity. engineers are no exception. We would like to share one such set of tools, plugins, and libraries that Node.js streamers use on on a daily basis. IO.
  • Free Learning
    Register for an account and access leading-edge content on emerging technologies.
  • Brand new Docker Machine for Azure
    We are very excited to announce a new Azure driver for Docker Machine. Docker Machine is a tool that lets you create virtual machines with Docker on your laptop or on cloud providers and manage them.
  • MongoDB Data Master Bootcamp
    MongoDB has quickly become one of the most popular NoSQL database solutions available, and will quickly enhance your ability to handle data with ease. With a document-based approach, MongoDB lets professionals model data however they prefer.
  • Development With A Dot – Using MEF in .NET Core
    For those who don?t know, the Managed Extensibility Framework (MEF) is alive and well, and has been ported to .NET Core as Microsoft.Composition (source here). Not all of MEF has been ported, just …
  • GPU Computing on .NET at Speed of CUDA C++ (dani)
    In the last post we gave a sneak preview of the upcoming Alea GPU version 3. Alea GPU version 3 sets completely new standards for GPU development on .NET. The highlights of the new version are:
  • Top 7 terminal emulators for Linux
    Are you a system administrator, Linux power user, or just spend a lot of time at the command line? Then chances are, your choice of terminal emulator says something about you.
  • Simplify Your Applications with Asynchronous Processes (Peter Vogel)
    With the right tools, creating an asynchronous application can give you not only a more responsive application that makes better use of your multi-core computer, it can also make your application simpler. Really, asynchronous applications should be your default choice.
  • Keep Track of What Your Code Really Did (Peter Vogel)
    When it’s important to know what path your application took when processing data, a log of that path can be helpful. And, when you need to make a decision in your code based on an earlier decision, that internal path can make your code both simpler and easier to understand.
  • Improving Development with TypeScript (Long Le, MSDN Author)
    What does the world look like in TypeScript? What do you gain or lose by coding in TypeScript versus ES6? In case you’ve been pondering this question, today we’ll do a deep dive to help you sort the answer. The best way to illustrate this is with code, so let’s dive right into it.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


Session – Internet of Things – Devices and Azure Telemetry (Azure Florida Association)

March 24, 2016 Azure, IoT, Sessions No comments , ,

I am really excited to share my upcoming session on Internet of Things – Devices and Azure Telemetry organized by Azure Florida Association.

The session will be online on GotoWebinar and in one hour I will cover range of topics on Internet of Things.

Date: 30 March 2016 9:00 PM SST (UTC+8)
Duration: 1 hour

What’s on the plate?

The topic of “Internet of Things” pops up in almost every geek world and yet it’s the term that has been misinterpreted the most. This session will cover what’s Internet of Things and the various IoT devices in the market, their inter-communication and how these devices can send telemetry to the Azure world to generate real time analytics and business insights

Register yourself for this free session at Register : Internet of Things – Devices and Azure Telemetry

Watch online at:

The event page is available on Azure Florida Association portal

Raspberry PI to Detect Network Bandwidth (using NodeJS)

March 21, 2016 IoT, NodeJS, Raspberry PI No comments , ,

Couple of weeks ago I did an experiment on my Raspberry PI 2 to detect the speed of my ISP using a lot of Shell scripts. The end result was quite satisfying as I could post a tweet like the one below to let my ISP know that the Internet speed at my home wasn’t good enough. I had few follow-ups with my ISP’s support team and now the Internet speed is quite good

I thought over it to automate this and I had two options – cron jobs or move this to more managed code like NodeJS. I tried multiple libraries and finally nailed on npm library speedtest-net.

var speedTest = require('speedtest-net');
var test = speedTest({ maxTime: 5000 });
test.on('testserver', function (server) {
        pingTime = server.bestPing;

test.on('data', function (data) {
         var downloadSpeed = + ' Mbps';
         var uploadSpeed = data.speeds.upload + ' mbps';

         console.log("Download speed", downloadSpeed);
         console.log("Upload speed", uploadSpeed);

test.on('error', function (error) {

The next step was to send a tweet to Twitter. I had two options to this – use Twitter API or adopt IFTTT platform. I preferred IFTTT as it gives me options to trigger an event and associate any action for the event. So I could, today choose, to tweet the speed and could tomorrow also have it emailed or routed to another channel.

I created an API key on IFTTT Maker Channel and created a Recipe with Trigger Channel as Maker. Event Name (as shown in below screenshot) defines the event that your code will invoke








As part of “THAT” action, I selected my Twitter Channel to Tweet the event data. Maker Channel allows us to send 3 values “Value1”, “Value2” and “Value3”

With this, I was ready to wire code to send my Network Speed to Twitter. I changed my NodeJS code to use NPM library node-ifttt-maker as below,

var IFTTT = require('node-ifttt-maker'),
         ifttt = new IFTTT('my-ifttt-maker-api-key');
var minDownloadSpeed = 50; // 50% of promised speed 100 Mbps?

// Send Alert only when speed is less than min download speed
        if ( < minDownloadSpeed){     
                event: 'speedtest',
                method: 'POST',
                params: {
                    'value1': data.server.location,
                    'value2': downloadSpeed,
                    'value3': uploadSpeed
            }, function (err) {
                if (err) {
                } else {

When the speed test completes (i.e. “data” function) it sends a POST request to IFTTT Maker Channel with relevant information and the Maker Channel routes it to the preferred channel (in this case Twitter). With no code change, you can change the output to Email, Facebook, GitHub, Google Drive, OneDrive, etc.

Now you can run this NodeJS code to monitor your network.

With this, running at regular intervals (not too often though) you can monitor your network speed and decide when to stream Netflix. That’s how I get a seamless streaming experience.

Caution: Ethernet Ports have a bandwidth defined. Raspberry Pi (as of 20 March 2016) does not support Gigabit Ethernet so before tweeting in public check the max bandwidth your IoT device supports and do not try this over WiFi as WiFi speeds may be slower.

Follow on Feedly