Hackathon Resources

tag-cloud-hackathon

 

It’s Hacakthon time!

It’s that time of year again, and we are here to help. If you are participating in any of the great hackathons around the country, below you will find the resources you need to do cool stuff like, Machine Learning, Facial Recognition, emotion tracking and more.

Getting Started Tutorials

Cognitive Services

Cognitive Services  allows developers to create smarter apps, which can do things like recognize faces and interpret natural language even if the app developers are not experts in those fields.

  • oxford2Visual tools: This service can analyze visual content to look for things like inappropriate content or a dominant color scheme. It also can detect and understand text in photos, such as a team name, and can sort photos by content, such as pictures of beaches, animals or food. Finally, it can automatically edit photos down to a recognizable and useful thumbnail for easy scanning.

 

  • oxford 1Face recognition: This technology automatically recognizes faces in photos, groups faces that look alike and verifies whether two faces are the same. It can be used for things like easily recognizing which users are in certain photos and allowing a user to log in using face authentication. It’s the same technology that is behind this fun new website that guesses how old a person looks based on a photograph.

 

Machine learning

ml1A fully managed cloud service that enables you to easily build, deploy, and share predictive analytics solutions. Azure Machine Learning means business. You can deploy your model into production as a web service in minutes—a web service that can be called from any device, anywhere and that can use any data source

Virtual Machines

Databases

Internet of Things

Web Apps

 

NASA Space Apps Challenge 2016

NasaSpaceApps

Houston! We have Apps!

It’s that time of year again, and we are here to help. If you are participating in this years NASA Space Apps Challenge, below you will find the resources you need to do cool stuff like, Machine Learning, Facial Recognition, emotion tracking and more.

How can we help?

But first things first, to get started, you will need to grab yourself some free Microsoft Cloud to do your computations, and Microsoft Azure has you covered.

Need to connect with the Microsoft Space Apps Team for technical mentoring? Just email spaceapps@Microsoft.com

Getting Connected – Setting up your Azure Pass

You should have received and Azure Pass from your organizer, all you need to do is take that card and head over to http://sogeek.us/getazurepass for step by step instructions on how to get set up.

Getting Started Tutorials

Project Oxford

Project Oxford allows developers to create smarter apps, which can do things like recognize faces and interpret natural language even if the app developers are not experts in those fields.

  • oxford2Visual tools: This service can analyze visual content to look for things like inappropriate content or a dominant color scheme. It also can detect and understand text in photos, such as a team name, and can sort photos by content, such as pictures of beaches, animals or food. Finally, it can automatically edit photos down to a recognizable and useful thumbnail for easy scanning.

 

  • oxford 1Face recognition: This technology automatically recognizes faces in photos, groups faces that look alike and verifies whether two faces are the same. It can be used for things like easily recognizing which users are in certain photos and allowing a user to log in using face authentication. It’s the same technology that is behind this fun new website that guesses how old a person looks based on a photograph.

 

Machine learning

ml1A fully managed cloud service that enables you to easily build, deploy, and share predictive analytics solutions. Azure Machine Learning means business. You can deploy your model into production as a web service in minutes—a web service that can be called from any device, anywhere and that can use any data source

Virtual Machines

Databases

Internet of Things

Web Apps

Grab the Meetup Slides

Get Inspired

If you are looking for some inspiration for your hack, check out the video below.

Space Apps New York City

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.

vscodeintellsublimeintell

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(https://github.com/typings/typings)  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) https://github.com/DefinitelyTyped/DefinitelyTyped or the website http://definitelytyped.org/

 

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

I checked http://definitelytyped.org/directory/tools.html and found under IDE tools sublime-typescript  https://github.com/raph-amiard/sublime-typescript but it said it was not maintained anymore and sent me here :  https://github.com/raph-amiard/sublime-typescript which itself is no longer maintained, which directed me here :  https://github.com/Phaiax/ArcticTypescript 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 :

http://thesociablegeek.com/wp-content/uploads/StarterKits.zip

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

https://mva.microsoft.com/en-us/training-courses/creating-your-first-2d-game-with-gamemaker-8480?l=DleVcsXz_6504984382

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
Ps1

 

Using cURL in PowerShell

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

curl http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json > 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.

ps2

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

ps3

( file name cut off in image “https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json”)

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

ps4
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 : http://www.confusedbycode.com/curl/ 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. https://chocolatey.org/

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('https://chocolatey.org/install.ps1'))

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, mk-ca-bundle.pl. 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 https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json > 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. http://sogeek.us/meanonazure)

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 http://sogeek.us/meanonazure

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.

https://www.visualstudio.com/en-us/integrate/extensions/overview

 

image

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

 

vstshockey

 

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.

 

 

image

 

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.

 

image

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. http://hockeyapp.net/pricing/  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

Daniel

Whats new with VS Subscription

11VSProSub

 

 

 

 

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 :
https://www.visualstudio.com/products/how-to-buy-vs

Or  a very detailed FAQ here:

https://www.visualstudio.com/get-started/marketplace/buy-vs-subscriptions#subscription-billing-faq

Happy Coding.

Daniel

 

 

 

 

 

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 http://manage.windowsazure.com

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

image

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 Outlook.com )

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.

image

Once this is done they can sign on to http://manage.windowsazure.com 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 http://manage.windowsazrue.com  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.

image

 

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 http://bretstateham.com/bizspark-enrollment-tutorial/)

The first thing you need to do is to go to http://BizSpark.com 

Sign in using your MicrosoftID and then click on My BizSpark

image

 

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

clip_image002

· 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 Outlook.com (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.)

clip_image004

· 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.

clip_image006

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

clip_image008

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

clip_image010

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

clip_image012

clip_image014

clip_image016

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

clip_image018

To see how the added user can add their Azure Benefit, head here http://bretstateham.com/bizspark-enrollment-tutorial/#azure 

Hope that helps.

Daniel

Big Data, how big is big

Size

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)

1000000000000000000B

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.

DatainOneMinute

infographic by Domo.com

infographic by Domo.com

 

 

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. http://www.foxnews.com/tech/2013/06/13/what-we3-know-utah-nsa-mega-data-warehouse/

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