Node.js intellisense

node-jsWorking in my node projects and presentations I pop back and forth between both Sublime Text 3 and VS Code but I find myself increasingly just using VS Code.  One of the reasons is that I am able to get great intellisense using the node and express typescript definition files.

As you can see by the screenshots below, even when I am just creating a simple server using the node http module, with VS Code, I get that great “.” intellesense.


This is invaluable for any developer but especially for developers new to the stack that might not have all of the methods available stored in their head.

Getting node and express intellisense in VS Code

In order to get specific package intellisense in vs code you will need to install a couple of things.  There are a number of ways to do this but I am just going to use the command line (powershell or Terminal in OSX).  The first thing you need to do is to install TSD globally.

npm install -g tsd

When installing this will tell you that TSD is deprecated in favor of Typeings(  but I use TSD anyway.  Both will work similar with this a bit of a syntax difference when installing the tsd’s.

Once tsd is installed globally.  Make sure you are in the project folder that you need the intellisense in and run the following commands.

tsd query node --action install
tsd query express --action install

This will install the type definition files for both node and express. If you need tsd files for other things you can see what is available either at the github repository (where tsd pulls these files) or the website


I have tried to find a way to do this with sublime.

I checked and found under IDE tools sublime-typescript but it said it was not maintained anymore and sent me here : which itself is no longer maintained, which directed me here : which is a fork of the last one and seems to be maintained but when I install it, I don’t see it giving me the intellisense I am looking for.

So at this point, I cant seem to get this in Sublime. If someone knows a way to implement this through a plugin, please let me know.

Gamemaker MVA Start Kits

GMStarterKits A while back I did a Microsoft Virtual Academy training session on Creating Your First 2D Game with Gamemaker.  This has seen a lot of traction lately.  One of the things I talked about in the session is using the StarterKits that we developed for our Game Camps to give you a running start on either a Maze Game, an Endless Runner Game or a Platform Game.  The place those files were hosted is no longer there so I decided to host them here on my site since I have been getting lots of requests for them.

You can find the StarterKits here :

of course you can check out the MVA on Gamemaker here:

Using Curl in Powershell

So you are a windows user, but really like what you have been able to do using curl on your Mac.  On windows you use PowerShell, what if you want to use cURL?

First of all, what is cURL?  To pull directly from their website :

curl is an open source command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more.

More simply stated, cURL is a tool that is used at the command line for transferring data.

So now what if you want to use it in PowerShell?  If you are using version 5.x of  PowerShell you may think that you already have it.  You can check your version of PowerShell by calling the command : $PSVersionTable.PSVersion


Using cURL in PowerShell

You can type in a cURL command like one that downloads a file from a GitHub repository.

curl > azuredeploy3.json

and  it will seem like it works but what it is actually doing is just using cURL as an alias. In the above instance, what will happen is that you will just get the headers instead of the file itself.  Alias’ in PowerShell allow you to create shortcuts for longer commands so you don’t have to type them out all of the time. If you type in the command Get-Alias, it will give you a list of all the Alias’ that are used in PowerShell. As you can see, the curl command just calls the Invoke-WebRequest command.  They are similar but not the same which is why the above request does not work for us.


To get this to work in PowerShell you would need to change the syntax slightly.


( file name cut off in image “”)

You then open the file from PowerShell either using Code or Sublime.

Utilizing the switches that Invoke-WebRequest uses instead of cURL does the trick.  But if you want to stay consistent and use the same commands on your MAC as you do on your PC, you will need to remove the alias and install cURL on the PC in order to achieve this.

The first thing you need to do is remove the alias.

Removing the cURL alias

If you don’t already have a profile, run the following command to create one.

New-Item $profile -force -itemtype file

Next, open up the profile file. (This will open the file up in notepad)

notepad $profile

add the following line to the profile file.

remove-item alias:curl

save the notepad file and close it.
Then either run the following command to reload the profile OR close and reopen Powershell to refresh.

remove-item alias:curl

(thanks to megamorf for these steps)

Now if you run the Get-Alias command again, you will see that the curl alias is gone.

Installing cURL on your PC

There are a number of ways you can do this.  One way is to use the cURL for Windows created by the Confused By Code author : this is a step by step installer that installs curl, adds it to your path, installs the certs etc.. but in keeping with my new mindset of doing everything from the command line that I can, I decided to install it using Chocolately.

Chocolatey is a Linux style command line packet manager for windows.  I will be using it in the future so it makes sense to use it for this.   To install it do the following

Open up PowerShell in Admin Mode and run the following command.

iex ((new-object net.webclient).DownloadString(''))

Once you have installed Chocolatey, you can then use it to install curl. (Open and close PowerShell first)

choco install curl

Now you have curl installed but if you try to run the curl command from above, you will receive some OpenSSL errors. To fix this you have two choices, One use the -R switch to ignore the certs (not recommended) OR install the certs.

To install the certs, navigate to C:\ProgramData\chocolatey\lib\curl\tools ( do it in windows explorer or powershell, doesn’t matter to me)

Double click mk-ca-bundle.vbs, or if you have Perl, The script will download a new SSL bundle from Mozilla. It will be called ca-bundle.crt. once it is downloaded rename the file to curl-bundle.crt and leave it in the same directory.

Open and close PowerShell and then run the following command.

curl > azuredeploy6.json

(By the way, this is an ARM template that I am using to install MongoDB in Azure on Ubuntu if you are curious. See my Mean On Azure Series if you want to learn more.

That’s all.. I hope you found that useful.

Daniel – The Sociable Geek

Mean On Azure Episode 1

I just published my first episode in a series called Mean On Azure. In it I take you through my journey of discover in the Mean Stack in bite size videos showing you how to not only use the MEAN stack, but how to use it on Azure.

To view the whole series on Channel 9 go to

Hockey App in VSTS

imageThere were many announcements  at Connect(): 2015 about Visual Studio Online.  First and foremost, the name change to better reflect what developers were to expect when going there.  Visual Studio Online is now called Visual Studio Team Services (long live VSTS).   DevOps was a big part of the two day event and VSTS is a big part of DevOps.

In his presentation, Microsoft Technical Fellow, Brian Harry announced,

“a little over a year ago, we announced a beginning of a  journey, which was to open up team foundation server and visual studio online with web standards using rest, oauth, and services hooks” 

This led to the announcement at Connect(): 2015 of  Visual Studio Team Services extensions. Extensions enable you to create first-class integration experiences within Visual Studio Team Services.   Anyone can build extensions and make them available to the public. If you want to build one yourself, you can check out how to do that here.



You can find them if you sign on to your VSTS account and click on the store icon in the upper right of the screen.

HockeyApp is one of those extensions. But before we move forward, lets talk about the elephant in the room. HockeyApp has nothing to do with Hockey so what’s with the name? (Come on, I know you are wondering)  Well, if you dig around in the support pages for HockeyApp you can find the answer, and it makes sense once you read it.

Our product started as an open-source project named Hockey which allowed you to install iOS beta apps on your iPhone. Apple calls this installation process (outside the App Store) ad hoc distribution. The name Hockey was a word play on the Hoc in ad hoc distribution and the word key. When we launched the HockeyApp, the open-source project had already gained traction in the community, so we kept the name and added App at the end.

So when Brian Harry  made the announcement about acquiring HockeyApp almost a year ago, their goal was to integrate HockeyApp into Application Insights, which allows you to detect issues, diagnose crashes, and track usage in your mobile apps and web apps on Azure, IIS, or J2EE.  HockeyApp extends this and helps developers manage the process of developing apps for multiple platforms, specifically it specializes in these three key areas:

  • Crash reporting.  Fast and precise crash reporting with easy app integration, rich crash analysis and support for connecting directly to existing workflows and bug tracking systems.
  • Distribution and feedback.  Beta distribution and built-in user feedback system.
  • Cross-platform.  Support for iOS, Android, and Windows Phone provides a consistent developer experience across mobile devices




You can still use HockeyApp as a stand alone project, but what the announcement at Connect(): 2015 brought was an integration point so that you can manage the process in the same place you are tracking all the other aspects of your project, within VSTS.  This gives you all the great crash reporting and feedback data right into your VSTS environment. Once you add the extension, you can then add  a HockeyApp widget to your dashboard.





What this allows you to do, among other things,  is integrate with your bug reports. When a bug request is filed, while you are still inside VSTS you can launch HockeyApp to see if this is something that your users are experiencing already that you may not have noticed, or is it a new incident.



You can also dive into individual builds, communicate with your beta testers and turn requests/feedback from your users into work items with the click of a button all within the confines of VSTS.  This is a great move forward for continuous integration and testing for developers using Visual Studio Team Services.

If you wanted to try this out for yourself, first, you need to sign up on Visual Studio Team Services. Its free for individuals or teams up to 5.   Then sign up for HockeyApp here.  your first two apps are free.

Next, add HockeyApp to your VSTS by following this tutorial. Or  you can head over to Chris Risner’s post on setting up your project with VSTS and HockeyApp.

Happy coding


Whats new with VS Subscription






To subscribe or not to subscribe, that is the question. Whether ’tis fiscally responsible in the mind  to suffer the slings and arrows of outrageous fortune (and lost developers), or take a subscription against a sea of licenses.   Ok, Ok, enough Hamlet, although that is the question here : Do you buy a license or a subscription?

If you have not heard the news, at our Connect() conference  Microsoft announced that in addition to different ways to license Visual Studio (Standalone, MSDN, Volume, etc.) we now offer what we are calling Cloud Subscriptions.  I for one am a big fan of this model.  I have quite a few software packages that I have purchased on the subscription model.  Personally, there are a number of things that are appealing to me.

  1. No huge upfront cost.
    It is much better for my cash flow :) to be able to pay monthly as opposed to handing over one lump sum at time of purchase.
  2. Flexibility
    If I decide that I am not using it, I can cancel it.
  3. Updates
    As opposed to most licenses, when there is an update I get it automatically.

But lets talk specifically about the Visual Studio Cloud Subscriptions.

( for sake of brevity, I will talk about the Professional Version of Visual Studio.  VS Enterprise follows the same guidelines with different price points)

Annual – If you purchase it for the whole year, your out of pocket costs are $539/yr which is less than half of the cost of the MSDN Subscription and only slightly more than the standalone license.   This is a non-perpetual license which means as opposed to buying a standalone license, when your subscription ends you are no longer able to use the software(unless you renew ).  But the benefit of getting the annual is that unlike the monthly, you get the full subscriber benefits.

Monthly – For the Professional version of Visual Studio, you will pay only  $45/mo which renews monthly. This means that you can cancel at any time and if your needs change, you can adjust your subscriptions accordingly.  If you keep this a full year, it ends up costing the same price as the annual subscription except you do not get the subscriber benefits.

Many of the developers I work with are in early stage start ups ( think, not much money) and as such, have a need to be able to spin up or spin down teams to fit their needs at any given time.  Being able to have monthly subscriptions that they can adjust during the year as they grow or shrink is a huge benefit.

VSTS – An additional benefit of these subscriptions is that you are able to connect to any team using Visual Studio Team Services (Formerly Visual Studio Online) to collaborate and share source code.

So which one is right for you?  Only you can decide that based on your current and future situation.  What I really like is that now you have the flexibility to find the right one to fit your current needs without having to break the bank.

If you want more information you can find a simple exlination of purchasing options here :

Or  a very detailed FAQ here:

Happy Coding.







Adding Users to BizSpark\Azure

One of the common questions I get is how to add additional users to your Azure / Bizspark account.

This is actually two different questions.

1) Add a user to be able to administer your Azure account

If you add a user to your Azure account it allows them to make modifications (spin up VMs create cloud services, modify active directory, etc..)

2) Add a User to your BizSpark account

Adding a user to your bizspark account DOES NOT add them to YOUR Azure account, what it does is gives them the ability to have their own Azure Sandbox to test and play around with.

Both of these things are valuable but it is important to know the difference and how to set them up.


Adding an administrator to your account.

To get started the account owner needs to sign on to their azure account at

Once they do this they will need to scroll down on the left hand side and click on settings.

Next they would click near the top middle where it says ADMINISTRATORS

And finally, click on the ADD icon at the bottom of the screen


Next they would need to add the MicrosoftID of the person that will be an administrator. This needs to be a Microsoft account (if they don’t have one they can sign up for one at )

Check the name of the subscription you want to add them to (In most cases there will be only one)

click on the checkmark at the bottom of form when done.


Once this is done they can sign on to and start using the account.

NOTE : If they already had a subscription connected to the Microsoft ID added in the step above, there will be one more step.

If they already had an account associated with that ID when they sign onto  they will now see a Subscriptions menu item up next to their name.

To work on the subscription they were just added to, they will need to

Click on Subscriptions

Select the subscription from the dropdown

Click on the Apply button.



They will now be accessing the the account they were just added to.


Adding a user to your BizSpark account

Remember, this will not add them as and administrator to your azure account like above (although you can do both), but this will add them to your BIZSPARK benefit so they can have their own Azure subscription to test and play around in without using up any resources or credits in the main account.
(Thank you Bret Stateham, this was taken from part of his BizSpark Enrollment tutorial.  Head over there for more information

The first thing you need to do is to go to 

Sign in using your MicrosoftID and then click on My BizSpark



· Then, under the “Manage” heading, click the “add or delete members” link


· Scroll down on the “Manage” page, and click the “+ Add” link, then complete the fields to add the new member (you will need to know the member’s Microsoft Account).  If they don’t have one, they can sign up for one at (I can provide steps if needed) ( I think that is shows only 7 people can be added.  If more is needed, let me know and I will check into that for you.)


· When you press enter, the row will be added, and the membership status will be “Pending” while an invite email is sent to the Microsoft Account email address.


· When the member receives their invitation email, they can use the link in the email to activate their membership


· When they follow the link provided, they will need to sign into as their Microsoft Account:


· Then complete the enrollment with their Phone, and by Agreeing to the program:




· Once enrolled, they can use the steps described above to download software from MSDN and to activate their Azure benefit, and more!


To see how the added user can add their Azure Benefit, head here 

Hope that helps.


Big Data, how big is big


When it comes to Big Data, there is no way to get away from the discussion on the Size of data. It is one of the three V’s (Volume)

“Big data” is high-volume, -velocity and -variety information assets that demand cost-effective, innovative forms of information processing for enhanced insight and decision making. ~Gartner


The interesting part about the Volume of data is not just the sheer about of it that we generate on a daily basis but the fact that due to the lowering cost of storage, we are able to actually keep a good portion of it around.  This in turn gets us talking about size.  This is where people try to dazzle you with their intellect.  For example, you may have heard of an Exabyte.  There may be a possibility that you know that and Exobye is

1 EB = 1018 bytes (10 with 18 zeros behind it)


But seriously even if you are a mathematician, the complexity derives from the fact that most people cannot visualize the size of data in that format.

Is that important?   You bet it is.  One of the key attributes of a Data Scientist is to be able to adequately convey the complex to non-technical people.  To bridge the gap between those with the tools and those with the power (or budget) in an organization.  This may be a small example but it is a good one, breaking down how big data is in terms people can understand is important.

grandmaSo all of that being said, I like to describe it in a way that even my Grandma can understand.  I just relate everything to a GB.  From GB harddrives, to GB in your phone, to GB in your camera, most people can wrap their head around the size because they are used to doing mental calculations based on how many songs, how many files, how many pictures they can hold on x number of GBs.

OK… So lets start talking about big numbers now.

Terabyte = 1024 GB.

With the low cost of storage now, many of you may have Terabyte drives at home or in your computer.  I have a 2TB drive that I carry around with me with EVERYTHING I need on it.  So this one is not much of a comprehension challenge.

Petabyte = Over 1 Million Gigabytes

Ok, so one step up. Over One Million Gigabytes.  What does that get us.  Well, the size of the 10 Billion photos on Facebook is 1.5 Petabytes.  Or the amount of Data processed by Google…. Per day is 20 Petabytes.

Exabyte = Over 1 Billion Gigabytes

When we get into Exabytes, we start talking about how much storage entire Data Center Building hold.  Like Utah Data Center for the Comprehensive National Cyber security initiative (CNCI).  Or cold storage for those Facebook pictures we mentioned.

Zettabyte = over a Trillion Gigabytes

It is said that over 2 ZB of data is created every day.  We don’t store this much (we don’t have the ability) but this much is created. The “Zetta” was recognized by the 19th International Committee for Weights and Measueres in 1991 (along with “Yetta”) .  So where is all of this data coming from?  See the infographic below.


infographic by

infographic by



Yottabyte = over 5 thousand trillion Gigabytes

Of course if you are the NSA, you need more storage.  Like the NSA’s secret (ha ha) Data Center in Utah.

Imagine being able to comb through that data.   A Yottabyte is so big that you have to start talking about small things to put in in comparison.  For example there are 1 Yottabytes of Atoms in 7000 human bodies.  Or A Yottabyte of 1TB hard drives would require a data center covering 1 million city blocks



Big Data — What is HBASE

hbaseThe great thing about Big Data technology is that there are so many tools in the Data Scientists Tool Belt. The bad thing about Big Data Technology is that there are so many tools in the Data Scientists Tool belt.

When we talk about the tools that we use when working with Big Data, an overwhelming majority will discuss Hadoop, the Apache foundations implementation of Map Reduce and Distributed File Systems (HDFS in this instance. Which was created by Doug Cutting after Reading papers on the subject produced by Google Engineers while he was at Yahoo. (He is now at Cloudera). But big data tools rarely if ever work alone. It is a collection of tools and databases that help Data Scientists be more effective in their analysis (or just help to speed things up).

One of these technologies is HBase. HBase is a non-relational (NoSQL) database that is a Java implementation of Google Big Table. It is what is referred to as a Columnar Database. As oppose to Relational Database which stores its Data in Rows, it stores its data in Columns.

So that’s easy to say, but what exactly does that mean. Lets start with the definition Google lays out in its document on Big Table.

” A Bigtable is a sparse, distributed, persistent multidimensional sorted map.”

Lets break that down to see what that means.


A database is said to be sparse because of lack of data but not in the traditional sense of the term which would usually mean that there are very few items in the database.  In relation to HBASE, it is called sparse because of its ability to have sparse data in its entities.  What this means is as opposed to a relational table that would  require you to fill out all (or most) of the fields (Think of a customer data table in a relational data base), a columnar database can be empty or NULL without it adversely affecting the database functionality.  In addition, this also gives you the added benefit of being able to add other pieces of data you would like to capture on the fly.  In a Relational Database, you create a schema (FirstName, LastName, SS#, TelephoneNumber) and hope that you have thought of all the data you need to capture at the time of creation.  The NoSql schema-less databases allow you to add fields when needed or discovered without interrupting the normal flow of the operations.

Distributed and Persistent

HBase utilizes HDFS (the Hadoop Distributed File System) to distribute data across several commodity servers.  This is how Hadoop and and HBase are able to work with vast amounts of data. It is based on another article from Google on the Google File System which Doug Cutting used as a basis for HDFS .  We will discuss HDFS and DFS in more detail in another post.

Multidimensional sorted Map

A Map (sometimes called and associative array) is a collection where the index of what is being stored does not have to be an integer but can also be arbitrary string.  It is a collection of Key/Value pairs where the key is unique.  The Keys are sorted in lexicographical order. (Not alphabetical, nor Alphanumeric, but sorting on the Unicode value of the string)

What you gain/give Up

Using HBase allows you to store your data both preprocessing and post processing in HBase and gives you some greater flexability and host billions of rows of data with rapid access. The downside is that when you use HBase instead of HDFS, tools like Hive (SQL like retrieval of data) are 4-5 times slower than plain HDFS. In addition, the maximum amount of data you can hold is about 1 petabyte as opposed to 30pb in HDFS.

 In the next post will dive deeper into the specifics of HBase, like set up, usage, and analysis.

New WP & W8 Apps from the West

AppsAs a Developer Evangelist from Microsoft I help developers develop apps for Windows Phone or Windows 8. I cover the Western United States. Because of that, I wanted to do a post to showcase some of the apps that are coming out of the west. Of course, because Silicon Valley is part of the West Coast, I am sure you will recognize a few of these apps, but they are not all from big brand names.

Help me support the developers working hard on the west coast to build apps. Download the apps (All are free or have a trial) and then review them too… As a developer myself, I love to get ratings and feedback for my games and apps (I included my game on here too :) )


Hotel Tonight – Windows 8 – Get a great deal on a hotel TODAY.  I love this app, I am always last minute so it not only helps me get a room last minute but find really cool hotels to stay at.

Scribed – Windows 8 – If you like to read, try Scribed to read thousands of books for $8.99 a month, I am checking it out using the free trial.

Interactive Touch Books for Kids – Windows 8 – My daughter loves this, she is in the drag drop stage and wants to play this again and again.

Madagascar Math Ops – Windows 8 – I might be starting my daughter a bit early on this but she loves the Madagascar characters.  Try it out and let me know what you think.

Dave In the Cave – Windows Phone – (Shameless Self Promotion) Help Dave Escape the Caves, 20 levels of fun.  The first 10 may be easy but then it starts to ramp up and really makes you think about your next move.  Check it out and let me know what you think.  It is the first game I created.

Baby Connect (Active Logger) –  If you have a baby you are always keeping track of things, pee, poo, food, sleep, repeat.. This is a great way to not only keep track, but to share with others that help to take care of your little one.

That’s it for now.  Download, rate, and let me know what you think too..  Im proud to show off apps coming out of the west.. keep them coming.