How to Steal the Microsoft API Prize at Hack the North

It’s dangerous to go alone, take this all-in-one guide to winning our hackathon API prize!

Follow and reach out to Mansib (@gaessaki) on Twitter for more insights on how students are taking over the world, how the cloud is taking over the universe and to learn about Azure powered toaster drones. If you have any questions, feel free to tweet out!

Microsoft will be out in full force at Hack the North to collect your resumes and provide you with not so healthy beverages to keep you on course to securing geek cred and hackathon glory. We will be having our own humble challenge to complement HtN’s grand prize: the Microsoft API prize for the most innovative project using Azure. Now I can’t exactly tell you what will qualify as innovative (I would either lose my job for giving away trade secrets or leave my job to go join YC’s next winter cohort), but I can sure as heck tell you how to get the Azure portion right!

To qualify for our API prize, your project must simply incorporate some Azure features in its code. Now this is actually pretty easy, because using Azure actually just takes work off your back. Want to implement machine learning in your project, but don’t have a PhD? Use Azure ML to build the algorithm for you. Need intelligent search for your accommodation sharing site, but don’t have the time to code your custom implementation? Make some a few REST calls to Azure Search. There are a myriad of ways Azure can facilitate your workload, here are just but a few to get you started.

Ways to base your project off Azure

Azure Web Apps

Building a website is one of the most tried-and-true methods of placing in a hackathon. Websites have the unique advantage of being easy to disseminate across a large audience. Imagine yourself in front of a panel of established judges and a crowd full of hackers. If you have an app or device, you can try to replicate the user experience with a demo and a projector and people will likely never actually get to try out your work  because the app is not on the app store or they don’t want to bother downloading it. However, if you have a website, you can simply put the hyperlink up and within moments you have a house of users! the barrier to accessing a website is much lower than installing an app, so you’re guaranteed to get eyeballs.

Azure Web Apps allow you to rapidly and economically host and deploy such websites without having to deal with the idiosyncrasies of having to set up your nginx or apache. Easily spin up existing web solutions such as WordPress or Drupal instances, or quickly publish your node.js/Python/PHP/Java/.NET site using continuous integration and git, or through Visual Studio.

For a quickstart on creating a node.js express app on Azure, check out this guide.

PROTIP: Buy a domain and host your website there. It’s a lot easier to tell people to checkout myhack.ca as opposed to myhack.longwebsitesponsorname.com. And it’s usually pretty cheap.

Azure Virtual Machines

Sometimes a platform solution doesn’t offer you the customizability you desire. That’s when you might consider using an Azure VM. A VM gives you control over a whole machine without having to worry about the underlying hardware. If you run into performance blocks, you can have your workloads automatically scaled without any effort from your part and then scaled back when the workload diminishes. You don’t have to worry about stuff like virtual networking and load balancing as in your own implementation.

Azure VMs support a wide variety of Linux, FreeBSD, Windows and other images, meaning within seconds you can have a 20 core Ubuntu 15.04 server up configured to host a Minecraft server or Node.js.

For quick instructions on spinning up an Azure VM, take a look at this tutorial. For free Linux + FreeBSD VM images, check out VM Depot. To see all licensed VM images, check out the Azure VM Marketplace.

Azure Machine Learning

OverviewOfAzureML_960

Machine learning has been the secret sauce to many hackathon projects all of a late. Being able to tell a computer what to do is already cool enough, but being able to make a computer figure stuff out on their own is akin to giving birth to a prodigy. Building your own machine learning implementation is usually a difficult task left to those on the highest tiers of the geek hierarchy, but with Azure ML, you can drastically simply the process of incorporating machine learning into your app or website.

Azure ML allows easy prototyping of machine learning algorithm through the use of Azure Machine Learning Studio. The studio gives you access to powerful modules that do the heavy lifting in terms of data scrubbing and modeling and you just have to rearrange them for your desired results. If you want to extend your work in the studio, you can easily use Python or R to include your custom data manipulation code. Finally, once you have tailored a machine learning model to your desire, you can publish a web service from which you can make future predictions based on the model. The web service is accessible through C#, JavaScript and Python. You can also use machine learning experiments published by other hackers.

To learn more about Azure ML and machine learning in general, check out this tutorial on how to predict automobile prices using Azure ML.

Quick ways to integrate Azure into a project

2015-09-16_1-34-07

You know when you search for ‘Birkenstock’ on Amazon and you misspell it as ‘Burken-‘ and halfway before you even complete the wrong word, it still suggests what you had originally planned to search regardless? Ever wondered how you would hack that onto your site? It seems like something trivial, but when you realize that sites like Amazon, Wikipedia, eBay, Facebook, AirBnB and many others are based heavily on powerful search capabilities, you can understand why it pays not to skimp on your search box.

Using Azure search, you no longer have to worry about great relevance, suggestions, solid linguistics that effortlessly handle spelling mistakes, near-instantaneous responses, multiple languages, faceting, and more. Simple make the REST API calls from your application and voila you have working search.

To learn more, check out these Azure Search tutorials for JavaScript, Java, .NET and PHP.

Storage Options

mongodb-logoredis.sh-600x600sql_server_logo

Need to store something on a database? Say no more. Azure isn’t dogmatic about any database technology, whether it be a relational database, document store or key-value store. You can find dozens of storage options such as MongoDB, MySQL, Oracle DB, Redis and much more. I won’t go in depth here on what exactly you should be using. Whatever database you plan to use, you’ll probably find an implementation on Azure. The benefit of using Azure is the ease in deployment and scaling of your database. In other words, you won’t have to manage the underlying infrastructure of the database.

For more details on some Azure storage options, check out these resources on Redis, MongoDB, Azure SQL and Azure Table Storage.

Application Insights

Your web or mobile app can be running slow for a plethora of reasons. Maybe you haven’t cached your files properly or you’re making too many calls. Is the issue server-side or client-side? Using application insights you quickly get telemetry and performance alerts on your web or mobile app with minimal integration effort. You can even do custom metric tracking based on your own rules. It supports iOS, Android, OSX, Windows Apps and various Web app infrastructures.

For more info, visit the Application Insights documentation.

Miscellaneous advice

  1. Figure out what stacks and APIs you might want to use before you come into the hackathon venue. The worst is coming to hack, spending 11 hours trying to speed read through API documentation and then leaving midway in disappointment for not having accomplished anything.
  2. It’s not the ‘best design’, ‘sexiest code’ or ‘strongest business plan’ that’s going to win you the hackathon. It’s the best combination of the aforementioned and other traits that will make your project stand out. Although it may sometime seem that judges are biased towards certain types of projects, at the end of the day we follow a rubric and it accounts for a holistic assortment of factors.
  3. Get. Sleep.
  4. Reach out to our technical evangelists on scene for help and advice. You can come by our booth or tweet out at us: @gaessaki – Mansib/ME!, Student + Azure, @ScruffyFurn – Mickey, Video Game Jedi, @AdarshaDatta – Startups and @HockeyGeekGirl – Susan, Student, Azure and everything in between.
  5. Dream big, dream quick and then build a fraction of that.
  6. In line with the last one: Ship early and ship quick. Ideas don’t sell, products , systems and implementations do.
  7. No design is better than a bad design. But no design is still a pretty bad design.
  8. Use framework and premade content for everything. Use bootstrap or Express or whatever you need and don’t deal with the tasks that have already been completed by thousands before you. We want to see what ‘s new that you can bring to a table, not how well you style a div.
  9. Don’t consume your judge with technical details unless they press for it. We want to know why your project is worth the day of light, not how it saw the day of light.
  10. Use version control (i.e. Git), unless you’ve never used it until now and already have a decent workflow.
  11. USE AZURE! and have fun! Smile

Hoping to see you all at Hack the North, best of luck and happy hacking!