Monday, December 21, 2015

Learn R for Data Science Applications and Machine Learning

Hi All,

I am writing this blog post to highlight cool resources to learn programming in R. R language is a widely used programming language for data scientists and engineers who build programmable components in big data solutions.

Here are the resources to get started:

1) Quick-R: the easiest and fastest way to learn R 

2) Official CRAN (Comprehensive R Archive Network) resource: 

3) Introduction to R Programming: Free Course (On-Demand) 

Hope this helps.

Sunday, December 20, 2015

Apache Spark for developers - part 1

In this blog post i am sharing basic understanding concepts of Apache Spark for developers. My target is to educate developers/engineers with no big data experience on what is Apache Spark and the importance of this platform in working with Hadoop big data solutions.

The target developers should have minimum experience in building  business applications or products (desktop, web or mobile) using any OOB language such as: C++. Java or C# developers.

What is Apache Spark? 
Apache Spark is a distributed computation framework for big data. It is an open source platform for processing large amount of data in Hadoop ecosystem solutions.

Because it is a distributed platform, there are important concepts to solidify such as:

1) Any spark application contains a driver program which is the main entry point for the application that executes the main function and executes various parallel operations in a cluster.

2) Spark provides a resilient distributed dataset (RDD) which is a collection of data elements that are partitioned across different nodes in a cluster that can be operated on in parallel.

3) We can persist RDD in memory to allow it to be reused efficiently across parallel operations.

4) RDDs can automatically recover from nodes failures.

Tip: To start working with RDDs in Spark, RDD starts with a file in HDFS or any Hadoop supported file system.

5) Spark supports shared variables in parallel operations. There are two types of shared variables in Spark, the first is broadcast variables and the second is accumulators.

You can write Spark applications in Scala, Python and Java programming languages.

To connect with Spark, you need to have a Spark context object which requires a Spark configuration object. The Spark configuration object contains information about your application.

Spark contains Scala and Python shells where you can write and execute your code against Spark cluster nodes.

More to come in the following posts...

- ME

Tuesday, December 15, 2015

Data Science and Machine Learning Training Course for Free

Hi All,

To get started to learn data science and Machine Learning principals i would strongly recommend to try this free course from Microsoft Virtual Academy (MVA) course:

Some key points from the course:
  • Data science is about using data to make decisions that drive actions.
  • Data science involves:
  1. Finding data
  1. Acquiring data
  1. Cleaning and transforming data
  1. Understanding relationships in data
  1. Delivering value from data
  • Predictive analytics is about using past data to predict future values.
  • Prescriptive analytics is about using those predictions to drive decisions.

Learn more in this course:


Monday, December 14, 2015

Get Started with Apache Spark Resources in HDInsight

Hi All,

I am writing this blog post to share some important Apache Spark framework for starters topics and foundation understanding points..

Apache Spark is an open-source parallel processing framework that supports in-memory processing to boost the performance of big-data analytic applications

Spark processing engine is built for speed, ease of use, and sophisticated analytics. Spark's in-memory computation capabilities make it a good choice for iterative algorithms in machine learning and graph computations. 

You can write applications in Python, Scala and R in Spark clusters. HDInsight contains out of the box notebooks (tools/Dev IDEs) that allows data scientist to write programs in Spark using:

1) Python language using Jupyter , It also supports R, Julia, and Scala
2) Scala language using Zepplein 

Most important libraries for Apache Spark:

1) Spark Sql: A module for structured data manipulation using SQL or DataFrame API.

2) Spark Streaming: A module for building stream processing apps the same way your write batch jobs. It supports Java, Scala and Python.

3) MLLib: A library for machine learning

Some useful links and resources for Apache Spark:

1) Apache Spark homepage:

2) Learning Python:

3) Learning Scala:

HDInsight Apache Spark provides tons of tools out of the box, check out this link to see why would use HDInsight Apache Spark in Azure:

Hope this helps! Enjoy crushing streams of data...

Saturday, December 12, 2015

The best way to test website compatibility issues

Hi All,

I had a chance to attend one of the New York city JavaScript events (JS Open NYC) that was hosted at Microsoft NYC office. I had the opportunity to talk and chat with dozens of open source front end developers about web compatibility and interoperability in modern web design and development.

While i was talking with the event attendees, I introduced new scanning tools that every PM, BA or front end engineer could use to test website compatibility issues.

Microsoft developed tools to scan and test your website for free, below is the website to check all the available tools.

Microsoft Edge Dev Center homepage:

In this website, you have four tools to use. I will go through each one of them in this blog post.

1) Quick Scan tool: (my favorite one for technical analysis)
The best tool to do quick scan to your website, it points out all out of date libraries, layouts and things to change in your website to be compatible with most of modern browsers.


This tool is open source, here is the source code repo in GitHub:

2) Browser Screenshots tool: (my favorite one for UX)
This tool shows you how your website looks like in all browser! very handy and useful.


3) Virtual Machine (VM):
You can download various VMs that have all IE version with different OS options including Linux and Mac. This is a useful tool for internal and intranet sites.


4) Remote App:
A way to test your site using Remote App session on any OS you use.


I also had a discussion about Chakra (The Core Engine for MS Edge). Since Microsoft announce that the core Edge engine is open source (ChakraCore) and it will be available in GitHub on Jan 2016. Check out the official announcement from Microsoft Edge Dev Team:

Hope this helps!

Wednesday, December 09, 2015

Get Started with Apache Storm Resources in HDInsight

Hi All,

I'd like to share some useful resource to get started with Apache Storm in this blog post.
Apache storm is a distributed real-time computational system that allows engineers to process streams of data at scale.

Apache storm is one of the major hadoop ecosystem components, where engineers use it to process the sources of data into hadoop ecosystem.

Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate.

Imagine you need to process endless source of data (such as: Facebook news feed or Twitter feed) and you are going to process this large volume of  information and then store in Hadoop. In this case, you want to build a storm application specifying the topology by defining the sources of information (Spouts)  and how to process this chunk of data (Bolts).

Every Storm application contains a topology, Set of spouts and bolts in addition to a specification file for the topology.

I compiled some useful resources to get started and work with Apache storm:

1) Apache Storm main website: 

2) HDInsight Hadoop documentation in Azure: 

3) SCP.NET, Get started with building .NET apps in C# in Storm:

4) Power of Storm with examples:

5) EDX Free online course (Implementing Real-Time Analytics with Hadoop in Azure HDInsight) :

Hope this helps.

Thursday, December 03, 2015

Working with HBase in Azure

I have published a video on how to work with HBase tables in HDInsight HBase cluster. The video is a walk-through on the basics of CRUD operations in HBase.

The video covers the following topics:
1) How to connect to hbase shell tool.
2) How to create tables in HBase.
3) How to select, insert, update, records in HBase.
4) Understanding create, put, delete, deleteall commands in HBase.

The video is giving a basic "Order" table structure as an example and execute all the above operations to it.

Video Link:


Tuesday, December 01, 2015

HBase introduction in Azure


I have published a new channel9 video about HBase Introduction in Azure. 

This video covers an introduction to HBase in Azure. It covers what is HDInsight clusters, What are the available cluster types. What Microsoft Azure offers as Hadoop ecosystem components. The video focuses on HDInsight HBase cluster type and the need for HBase in Hadoop ecosystem to store NoSQL data and the available tools (such as: hbase shell) and commands to use to manipulate data within HBase tables.
The video covers the column families concept for engineers who come from RDBMS background.
This video helps any engineer with no Hadoop experience to understand what is the role of HBase in Hadoop and big data applications.

Channel 9 video url:


Monday, November 30, 2015

How to migrate console applications to the cloud using Azure WebJobs

Hi All,

This post is to answer a question i frequently receive from developers and architect on what is the best way to take legacy console applications (exe) to the cloud.

I have creates a video that answers the address the following issues & concerns:

1) The challenges of scaling console applications.
2) The available options to migrate console applications to the cloud.
3) How Azure webjobs is a great option for migration light weight backend jobs to the cloud.
4) Scaling up or down web jobs in Azure.
5) Scheduling options for Azure web jobs.

Enjoy watching the video and keep the feedback coming.

Channel 9 Video Url:

Sunday, November 22, 2015

thread 1: signal sigabrt error when running ios app


While i was developing an iOS app using Xcode, After i designed my page by adding few controls to my view. I was getting the following error when i run the app in the simulator:

thread 1: signal sigabrt error when running iOS app

My app didn't have code at all, I just added controls and linked these controls in the ViewController.swift file.

This is how i fixed it:

1) Open your storyboard file.
2) For each control in your view, Open "Connection Inspector" menu and delete all related connections.

3) Clean the project, From the the product menu --> click on Clean.
4) Run your app.

Hope this helps.

Wednesday, November 18, 2015

How to create Outlook apps in Visual Studio 2015

Hi All,

I have been asked on what is needed to create outlook extensions, add-ins or apps. The new standard name from Microsoft  for these extensions is office apps. So in this blog post i will use apps which refer to add-ins or extensions.

With the new app model, All office apps are HTML5 & web based projects. When you create a project in Visual Studio 2015, VS creates two projects in the solution.

The first project is a web app project where you can create all your HTML pages with all required assets (CSS, JS...etc). The second project is an office wrapper project for your web app.  This project is being used to register your app in office client apps or office 365.

The office wrapper project contains information such as: application name, version, company information, end point urls and any required permissions that you need to configure when a user install the Outolook add-in.

Below screen shots shows how to create an Outlook Add-In to show in outlook email messages.

1) Open Visual Studio 2015.
2) From the file menu, click on New project.
3) Under Office/SharePoint, Select Apps from the right pane.

4) Click OK.
5) Visual Studio will prompt which project type you want for your outlook app.

6) Select Mail, Then click Next.
7) Choose where you want the app to appear.

8) Select Read and Compose Email Message, Un-check the rest.
9) Click on Finish.

Below shows how the two projects that have been created in VS 2015.


Wednesday, November 11, 2015

How to execute on your idea

Hi All,

I'd like to share a presentation on how to start executing your idea. This presentation i prepare for startup office hours that i hold on monthly basis.

I have put together this content to answer common questions, challenges and things to expect when you start executing on your startup idea.

This presentation is very useful for entrepreneurs and first time founders on how to get started on executing an idea.

Monday, November 02, 2015

How to open Cordova projects using Xcode

Hi All,

I have created a Cordova Project using CLI commands, and then i was trying to figure out how to open a Cordova project using Xcode to build and run my Cordova projects in the available emulators.

Follow the following steps:

1) Open Xcode.
2) From File menu -> Click on Open.
3) Navigate to the Cordova App folder.
4) Navigate inside platforms folder, and then select ios folder.

5) The project will be loaded inside Xcode.
6) Click on Run and the Cordova app will run in an iPhone emulator.

You will notice that Xcode created (*.xcodeproj) file that you can use to open cordova projects in Xcode.

Hope this helps.

npm ERR! while installing Ionic on OSX

Hi All,

While I was trying to install Ionic framework to start develop cross mobile apps using Ionic, I was getting errors while running the following command:

$ npm install -g cordova ionic

I have El Capitan version 10.11.1 with Node.js version 5.0.0 and npm version 3.3.6.

I tried to uninstall cordova first, then re-install cordova. After that, I tried to install ionic by itself but i was getting the following errors in the terminal window:

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "ionic"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
npm ERR! syscall read

I tried to read more if i am missing any requirements for Cordova CLI in OSX. I found out that XCode contains all OSX SDK tools and dependencies for Cordova apps development in OSX.

Cordova CLI Requirements url for OSX:

So i have decided to install XCode first, and the i re-ran the installation command for Ionic and i was able to create Ionic apps on my OSX dev machine.

So installing XCode on my machine did the trick!

Hope this helps.

Thanks a lot.

Thursday, October 15, 2015

How to enable Ionic Cordova Project template to run Windows 10 mobile apps


If you are using Ionic Framework project template in Visual Studio 2015, You will not be able to develop and build windows 10 apps in Visual Studio 2015 until you do some changes in your project to support that.

I have posted and answered this issue here:

Hope this helps.

Wednesday, October 14, 2015

Ionic framework must to know tips

Hi All,

I am writing this blog post to cover essential Ionic framework commands that every developer should be aware of specially if you are new to Ionic Development using Cordova platform.

Here is my tips that must to know when working with Ionic framework:

1) Ionic is a front-end SDK that is used to create incredible mobile apps based on Cordova framework.

2) To start using Ionic to create mobile apps, Ionic uses npm which uses node.js. So you need to install Node.js to start using npm commands.

3) To install Node.js, here is the installation link:

4) Creating Ionic mobile apps project is a folder based, So before executing the following command you need to make sure that you are in the right directory path structure where Ionic framework creates a folder for the newly created application "app1" :

     ionic start app1

The above command creates a folder named "app1" under the current directory path.

5) All Ionic Framework commands starts with ionic either to create, build or run Ionic mobile apps.

6) You can open Ionic projects using Visual Studio Code by executing the following steps:
     a) From File menu, Click on Open Folder.
     b) Select your Ionic project folder and click on Ok.
You will be able to use Visual Studio as your Development Environment.

7) If you want to run your Cordova project into the browser, Follow these steps:
    a) Open the terminal window, navigate to the project folder.
    b) Type the following:
         ionic serve
    c) A new browser will run for your Ionic Cordova project.

8) How to add Git integration to an existing project in VS Code, check out this reference:

Update [11/2/2015]: Updates for Git integration and how to run Cordova apps in the browser.

Hope this helps.

1) Ionic Framework website:

Tuesday, October 13, 2015

DC Startups join Microsoft Ventures - Join our Equity free program $25k & $500k Azure Credits

Hi All,

I am calling all DC startups who are looking for getting mentorship, grow, get funded and get a great working environment and to join Microsoft Accelerator program.

Microsoft Ventures is a global initiative empowering entrepreneurs around the world on their journey to build great companies. We’re focused on building partnerships with venture funds, angel investors, incubators, accelerators, corporate executives, and at the core startups, as well as run its own accelerators around the world. Our goal and objective is to help scale and grow startups by giving them a great working environment, access to mentors and service providers, free technological tools and connecting them to Microsoft’s customers and business partners. 

The next batch of the program opens on Feb 2016 and it’s going to be themed around Machine Learning and Data Science. We will be targeting startups that are a more mature than previous batches – such that raised $1M-$1.5M, with an existing product and maybe even initial traction.

Having said that, startups that choose to use Azure will enjoy the help of the ML product group in architecting their solutions to the right size and using the cutting edge services Azure ML offers. 
Access to the Microsoft distribution channels – Microsoft Ventures is committed to help startups who have relevant products to our customers and partners get connected to them through our massive distribution channels. In addition, startups will receive assistance in getting set up on the Azure Marketplace allowing the Microsoft sales reps to sell their solutions with higher incentives. 
Free of Microsoft Azure – startups in the program will be automatically enrolled to BizSpark Plus program and be credited for $500K of cloud usage (storage and compute) for 3 years, to be used in their own pace. This allows the startup to focus on the crucial business aspects of their company.

Meet us in person, learn more about the program and benefits. Besides these locations we are evaluating a few more venues so please check out for more details at

Meet us in person on November 4th, 2015 at 1776:

Let me know if you have any questions or would like to get an invite to attend.

Microsoft Azure Tour in Philly - Microsoft Azure Developer Immersion labs

Hi All,

Today we are holding first Azure tour event in Philly this year. Since we have Microsoft Azure Developer Immersion lab during the event and we have limited seating, you will be able to do all labs through the link below.

If you are not able to make it to the event, you will be able to do all labs from the below url:

The link contains all labs, source code before and after the labs.


Saturday, October 10, 2015

Philly Code Camp Event Sessions

Hi All,

Today i am pleased to join the speakers team of Philly DotNet Code Camp (PhillyDotNet.Org) which we have it at Microsoft Technology Center at Malvern, PA on 9-10th Oct 2015.

I am delivering two sessions and below is the details of each session:

1) Developing Cross-Platform Mobile Apps using Apache Cordova

This session will cover how to build cross platform mobile applications using Apache Cordova. Cordova allows web developers to use their existing web development skills to build cross platform mobile apps. Write a single code base in HTML/JS/CSS and deploy your app to iOS, Android and Windows Phone. The session will cover how to use JS libraries such as Ionic, Angular and Backbone to build Apps in Visual Studio 2015 with latest TACO official release v1.0.0 on 10/7/2015.

The session will cover insights on understanding the project structure and best practices in building Cordova apps and it is demo driven!

Session url:

2) Get you site Edge Ready

Microsoft Edge – what are the technical details of Microsoft’s new browser, what’s new in Edge, and what’s the best way to develop for it? This session will go over the technical details of Microsoft Edge. We’ll discuss the value of the browser and how you can make sure your web sites are ready for Edge!

Session url:

Hope you enjoy my sessions, and have fun!

Tuesday, October 06, 2015

Secure sensitive data with SQL Server on Azure

Hi All,

SQL Server 2016 has released a new feature that is called "Dynamic Data Masking" which allows to mask sensitive information to be masked on the fly without a change to a line of code in your application. The video covers the DDM technology, the need for it and how to implement it on SQL DB in Azure. This feature can be implemented either using SQL PaaS (Azure SQL DBs) or IaaS (SQL Server VMs) on Azure.

If you have for example Personal Identification Information (PII), Credit Card Numbers, or Social Security Numbers that you would like to secure from non-authorized view from viewing restricted information to comply with your security policies. DDM is the right feature for you with zero change line of code.

SQL Database Dynamic Data Masking (DDM) limits sensitive data exposure by masking it to non-privileged users. Dynamic data masking is in preview for Basic, Standard, and Premium service tiers in the V12 version of Azure SQL Database.
Dynamic data masking helps prevent unauthorized access to sensitive data by enabling customers to designate how much of the sensitive data to reveal with minimal impact on the application layer. It's a policy-based security feature that hides the sensitive data in the result set of a query over designated database fields, while the data in the database is not changed.

In this video, I cover how to configure DDM feature in SQL Database on Azure using the new Azure portal. How to manage existing masks and how to test out this feature using SQL Server Management Studio (SSMS).

The video covers how to manage multiple users scenario to allow either masked or unmasked data on a SQL database in Azure.

Enjoy the video below.

Channel 9 video link


Monday, October 05, 2015

Identity and Office 365 presentation on DC Cloud Tour Event

Hi All,

I presented a presentation on Cloud Tour event at Microsoft Chevy Chase office in DC metro area. The presentation covered Identity and Azure Active Directory (AAD). I covered how Office 365 uses AAD under the hood to authenticate users and how AAD uses standard protocols such as: OAuth 2.0 to authentication and generate user claims to other applications. The presentation covers how to register apps as a multi-tenant apps and how to set permissions for registered apps.

The presentation covered the following topics:
1) Azure Active Directory (AAD).
2) Office 365 Services.
3) AD Graph API.
4) Registering apps to AAD & Office 365.
5) Build Connected apps using VS 2015 with O365.

Hope this helps.

Azure Data Platform presentation on DC Cloud Tour event

Hi All,

During Azure Cloud Tour in DC, I presented a session about Azure data platform services which includes wide range of services for developers, and architects.

When you build a cloud based solution, you need to have an understanding of the available options to store and secure your data. This presentation covers the following topics:

1) SQL Server Database on Azure as PaaS.
2) SQL Server Database security features such as: Row Level Security, Dynamic Data Masking and Transparent Data Encryption (TDE).
3) SQL Server VMs as IaaS vs PaaS offering.
4) DocumentDB as NoSql option on Azure.
5) Elastic Database Pool for SQL Servers on Azure.
6) Azure Search as enterprise scalable solution.
7) HDInsight Microsoft Hadoop cluster implementation available on Windows and Linux.
8) Data Warehousing as a service on Azure.
9) Data Lake: enterprise wide repository of your data in its original format.

Hope this helps.

Wednesday, September 23, 2015

How to download Azure Publish Settings file

Hi All,

If you are trying to download Azure Publish Settings file and you are not having any luck by using PowerShell command: Get-AzurePublishSettingsFile or the url provided at MSDN article:

Here is the fix:

1) Login with your credentials to Azure portal.
2) Open a new tab in the same browser and paste below url:

Then, you will see the file has started to download, Enjoy!

Tuesday, September 22, 2015

Let's Dev This Tour - DC Oct 1st - Cloud Tour

Build a powerful, enterprise-grade cloud platform using the NEW features of Visual Studio 2015 & Microsoft Azure

Date: Oct 01, 2015 8:30 AM - 5:00 PM
Microsoft Office - Washington, D.C.
5404 Wisconsin Ave Suite 700
Chevy Chase , Maryland 20815
See map and/or driving directions
Please join us for this interactive, full-day training session led by Microsoft experts, created specifically for developers like you.

What am I going to learn?
At this event, you will learn about the latest release of Visual Studio 2015 and Microsoft Azure’s features and services – including Microsoft Azure Virtual Machines, Websites, and Visual Studio’s IntelliTest – that can help you build and move a variety of apps to the cloud. You’ll see how to build websites, mobile applications, and enterprise-class applications.

We’ll give you a free Microsoft Azure pass since you’ll spend most of the day in a hands-on lab environment.

See you all there! bring you computer and let's build software in the cloud!

Sign up now:

Saturday, September 19, 2015

Get started with Windows 10 IoT Core and Azure IoT Services


I had a great opportunity to present a workshop at hardware hacking event through #HardwareWeekend in DC.

The hardware hackathon was the first time for me to join the maker community and present the powerful features of Windows 10 IoT Core and Azure IoT sevices.

An amazing number of submitted projects so far and looking forward to seeing the demos tomorrow.

The submitted projects in DC Hackster event can be found here:

Below is my presentation for reference.

Building IoT solutions using Windows 10 IoT Core & Azure from Mostafa Elzoghbi

Social Engagement:

The MS winner team: BPM Biker

Saturday, September 12, 2015

How to get started with IoT devices running windows 10 IoT Core


Microsoft published a development center for developers to start developing IoT solutions for available IoT hardware devices in the market.

If you want to get started developing IoT solutions, You can use your existing development skill set in windows to develop solutions since there are good number of IoT devices that support running windows 10 IoT core such as:

1) Raspberry Pi 2.
2) MinnowBoard Max.
3) Galileo
4) Windows Remote Arduino
5) Windows Virtual Shields for Arduino

These IoT devices are not expensive, Once you get one of these devices, you can start running Windows 10 IoT core and start developing solutions using Visual Studio 2015.

Below is some useful links to get started:

Windows Dev Center - IoT:

Select your IoT Device:

Once you get Visual Studio 2015 Community edition for free, you need to get Windows 10 IoT core project templates:

Have fun!

Wednesday, August 19, 2015

Work with MySQL database on Azure


I have published two videos on channel 9 about Microsoft Azure capabilities on mySQL databases.
You can create MySQL databases for free on Azure, start your proof of concept and any development project by having MySQL instance that can scale based on the power of cloud computing.

I covered how to provision, create, manage MySQL databases on Azure and how to connect to these instances from MySQL workbench.

In the first video, Get Started with MySQL on Azure i covered how to provision, create and manage mySQL instance on Azure.

Video Url:

In the second video, Get Started with MySQL workbench for MySQL databases on Azure i covered how to connect and manage MySQL azure instances from your favorite MySQL management studio "MySQL workbench".

Video Url:

Hope you enjoy both of these videos.

If you need any in deep learning materials to be posted on ch9, please drop me a message.

Monday, August 17, 2015

mysql is not recognized as an internal or external command


I am using Visual Studio 2015 for developing cordova apps. I have installed MySql tools yesterday and since then eveytime i build or deploy my app, i get this error:

mysql is not recognized as an internal or external command

Even though i don't use MySQL in my cordova app but still i am not able to build or deploy any cordova app in Visual Studio 2015.

The meaning of this error message is: The system couldn't locate the mysql.exe in your system.

I am running Windows 10, here is the steps to fix that:

1) From the Cortana search, open up the control panel.
2) Navigate to System & Security, and then System.
3) Click on Advanced System Settings from the left pane.
4) Click on Environment variables.
5) Try to find Path system variable and click on Edit.

Copy the variable value in any editor and do the following:

a) Enclose any mySQL component path between double quotation "".
b) Add the mySQL.exe path at the end of the variable. You need to look for the installation path for MySQL installation and grab the installation folder which contains MySQL.exe and add it to the Path system variable.
In My Case the path for MySQL.exe is:
C:\Program Files\MySQL\MySQL Server 5.6\bin

Below is the Path system variable after the update: [[ notice the highlighted yellow section is what i have updated ]].

C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Microsoft Shared\Microsoft Online Services;C:\Program Files (x86)\Common Files\Microsoft Shared\Microsoft Online Services;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;%USERPROFILE%\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft Emulator Manager\1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\nodejs\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;"C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\";"C:\Program Files (x86)\MySQL\MySQL Fabric 1.5 & MySQL Utilities 1.5\Doctrine extensions for PHP\";"C:\Program Files\MySQL\MySQL Server 5.6\bin"

6) Click on Ok to save your changes.
7) Close and re-open VS 2015 (THIS IS A MUST)
8) Try to build or deploy your cordova app! it starts working again...


Friday, August 07, 2015

How to setup Ubuntu server VM on Azure


I was trying to provision an Ubuntu server VM on Azure and i'd like to share how to get up and running Ubuntu sever 12/14/15 VM on Azure step by step.

1) From Azure Portal,  Select Virtual Machines under compute, then select Ubuntu Server 15.

2) Install PuTTy as SSH Client to install extra components for the provisioned VM, you can find the client installation here:

3) Open PuTTY client and enter the Ubuntu server server VM url, you can find it in Azure portal -- Under Dashboard page for the provisioned VM. For example:

  1. Click on connect, a PuTTY console window will pop up.
  2. Log in with the creds you have set while provisioning your Ubuntu VM.
  3. After a successful login, A SSH command window open.

 4) We need to install Ubuntu Desktop, run the following command:

$ sudo apt-get install ubuntu-desktop

This command will take a while, once it is completed, this means we have an Ubuntu desktop installed on the server.

Below screen show shows the command in SSH client:

 5) Install remote connection (RDP) capability by typing the following command:

$ sudo apt-get install xrdp

6) From Azure Portal, select the provisioned VM and select End Points tab.
7) We need to add a RDP end point to connect to the VM,
8) To add RDP endpoint to the VM, check out below screen shot:

9) From Azure portal, Click on Connect after adding the end point.
10) Enter the username and password!
11) After a successful login, you will be able to RDP to ubuntu VM with a desktop component!

Enjoy! Hope this helps.

Tuesday, July 28, 2015

Get started with Azure Machine learning for free

If you would like to start building Azure machine learning experiments on Micosoft Azure, You will be able to start getting started with Microsoft free offer for Azure feature-sepcific offer where you can work on Azure ML without a need for Azure subscriptions.

All what you need is a Microsoft account to login, once you got that, visit below link to start experimenting Azure ML.

If you don't have a Microsoft account (Live, Hotmail, Outlook), here you can sign up for free:

Update: Due to a recent update in Azure ML site,You will be able to use Azure Studio as a guest and you don't need to login or create a Microsoft account.
We recommend you to create a Microsoft account to store all your experiments under you account to be available everywhere.

Enjoy Azure ML!

Thursday, July 16, 2015

Getting Started with Cross Platform Mobile Development using Cordova

Getting started with cross platform mobile apps using cordova from Mostafa Elzoghbi

Sample Demos:

Yesterday, I had the opportunity to present a session about cross platform mobile development using Cordova at Microsoft Reston.

This blog post is to share my presentation and my sample demos to everyone!

Hope this helps.

Tuesday, July 14, 2015

Free Microsoft eBooks

Hi All,

I'd like to share with all my blog readers and followers the largest collection of free ebooks from Microsoft.

Great resources in Microsoft Azure, Machine Learning, Azure Web Apps, Microsoft SharePoint, Dynamics CRM, Office 365, Cloud Apps, SQL Azure, SQL Server, and much more.

Refresh your skills set and download as much as you can:


Wednesday, July 08, 2015

How to configure Cordova App to use AngularJS


In this blog post i am showing how to Add AngularJS library to an existing Cordova App in Visual Studio 2015. The post shows some tips on organizing your JS files into Crodova App project template.

Since i didn't find an example on how to incorporate AngularJS library in Cordova App with out the need to collect various JS files and place them in proper folder structure that works with Cordova App project template. This blog will guide in a step by step how to incorporate AngularJS in Crodova App using VS 2015.

What are we doing ?
Since the AngularJS framework helps developers to follow MVC pattern. We will be creating an out-of-the box Cordova application, then we will add a controller js file and then will set a value in the controller and bind in view page.

Follow below steps to have a running Corodva App with AngularJS installed and configured!

1) Create a Crodova project in VS2015.

2) From Solution explorer window, Click on Manage NuGet Packages.
3) Search for AngularJS and add AngularJS.Core to your project.

4) All AngularJS files will be added under Scripts folder.

5) Select All AngularJS files and move it under scripts folder under www folder.

This is a best practice to include all Cordova App JS files under scripts folder, Since VS 2015 adds JS libraries under Scripts folder as a standard location, we need to move it under scripts folder under www folder.

6) Create a controllers folder  and then add MainCtrl.js file as your controller.
7) Open index.html and add a reference to angular.js and MainCtrl.js.

  <!-- AngularJs -->
    <script src="scripts/angular.min.js"></script>

    <!-- Controllers -->
    <script src="controllers/MainCtrl.js"></script>

8) Add the following code snipped in MainCtrl.js controller , which sets a value for myname in the scope.

(function () {

    angular.module('myApp', [])
    .config([function () {
        // configuration
    .run([function () {
        // Running
    .controller('MainCtrl', ['$scope', function ($scope) {
        $scope.myname = "Mostafa Elzoghbi Demo!";



9) Open up index.html and retrieve (bind) myname value from the controller; set the angularjs app name and the controller name.

<body ng-app="myApp" ng-controller="MainCtrl">
    <p>Hello, your application is ready!</p>

10) Run your project! and you will see that myname binding value from the controller.

The full demo can be downloaded from this link:

Wednesday, July 01, 2015

Learn AngularJS for free to build web and mobile apps at scale

AngluarJS is a modern JavaScript library to build enterprise web and mobile applications at scale. AngularJS is widely used JS library by all frond end and web developers worldwide in different programming languages to build scalable web and mobile applications.

AngularJS is a library backed by Google. Microsoft started to support AngularJS with great IntelliSense in VS developer tools including the following templates:

a) VS Web project templates including web forms & mvc templates.
b) VS Hybrid cross platform mobile app using Apache Cordova

Today you can start building AngularJS applications in Visual Studio 2013 and 2015.

To learn AngularJS basics before jumping into code. Microsoft offers a free course in Microsoft Virtual Academy (MVA):

This course is a great start to understand the basics of AngularJS.

Also, there is a free course on AngularJS website, here is some links to learn AngularJS:

** If you live in DC metro area,  I will be covering basics of AngularJS along with Building Cross platform mobile apps using Cordova, link to the event (7/15):

Hope this helps.

Friday, June 19, 2015

What is npm ? How to get started with npm with Visual Studio 2015

This blog post is for following audience:
a) Microsoft stack and .NET developers.
b) New developers using Apache Cordova.
c) An engineer who has not been using any open source tools in Visual Studio.

This blog post will answer the following questions:
1) What is npm ?
2) Why would i use it ?
3) How to use it ?

npm is a package manager for: JavaScript, Node, Cordova, JQuery, mobile, angular, react and other famous JavaScript libraries and frameworks.

You will use npm when you want to install any js library or framework in your Visual Studio project. For example: if you want to install node.js, Cordova js libraries or any other js library such as: ionic or react!

To get npm js package manager, you need first to install Node.Js which contains npm package manager tool.

Once you download and install the installer, you would have npm package manager tool in your system!

How to use it?
Open your command line after you installed node.js installer and type the following to install ionic framework:

npm install -g cordova ionic

Hope this helps you how to get started using npm package manager!

-- ME