In an earlier blog post, we talked about Excel as custom calculation engine. In a nutshell, a developer or power user can author the calculation logic inside an Excel workbook and then execute the workbook programmatically via either Excel Services or HPC Services for Excel. You can read about this approach in detail in our MSDN article. This approach has been successfully used by our customer on a large scale for many years now.

Lately though, we’ve been thinking about Jupyter Notebooks as another potential option for building custom calculation engines.

But before we make the case, let’s review some background information on Jupyter Notebooks. Read More…

An open-source initiative needed a solution to add Azure IaaS support for their existing cross-cloud library to support bioinformatic research.

Genomics Virtual Laboratory provides cloud-based analysis tools that help in genomics research. As a part of this tool suite, they created an open-source Python library called CloudBridge that provides a uniform and extensible API layer for supporting multiple clouds. The library supported only AWS and Open Stack. AIS was approached to provide Microsoft Azure support to the library with limited changes to their existing interfaces.

Challenges: With all the cloud providers having their own proprietary vendor APIs/approach (and not having common standards remains an issue in this modern era of cloud usage), it is becoming more common nowadays to utilize multiple cloud providers to support application deployments, and it is left to developers to author (ex: conditional code) the different infrastructure deployments and testing to support each of the providers.

In order mitigate the mentioned issues, CloudBridge came with a simple consistent interface depicted below.

Solution: Azure Python SDK was used to interface with Azure, and the necessary to and fro mapping to the CloudBridge and Azure models was done in the resource layer. The high-level architecture is depicted in the image below.

The API revolves around three concepts: (1) providers; (2) services; and (3) resources. The providers encapsulate connection properties for a given cloud provider and manages the required connection. Services expose the IaaS provider functionality, offering the ability to create, query and manipulate resources (e.g., images, instance types, key pairs, etc.). Resources represent a remote cloud resource, such as an individual machine instance (Instance) or a security group (Security Group). (Read more here.)

Technologies/Tools

  • Jet brains Pycharm community version
  • Azure Python SDK
  • Python 3.6 and 2.7

 

angularI recently attended ng-conf (the annual Angular conference) held in Salt Lake City during the first week of May. Over 1500 developers were there. Of course the big news was that Angular 2, the next version of the framework, has moved from beta to release candidate.  Angular 2 (which departs substantially from earlier versions of Angular) has a forward looking emphasis, incorporating emerging technologies like web components, ES 2015 (the new version of JavaScript) and TypeScript.  You can read more about it here: http://angular.io.

Not surprisingly most of the workshops at the conference focused on Angular 2.  A single session track ran on both Day 1 and Day 3 and you can find the YouTube videos for those sessions on YouTube at this link: https://www.youtube.com/playlist?list=PLOETEcp3DkCq788xapkP_OU-78jhTf68j.  There were multiple concurrent sessions on Day 2 and not all of them were captured on video. I attended several that covered building components in Angular 2, TypeScript and unit testing.

Developer uptake has been strong with upwards of 360,000 developers who are active on the Angular 2 site.  Several enterprise partners that have started using Angular 2 were present, including Capital One, Fidelity Investments and the Weather Channel. Read More…

Last month, a group of us from the Washington CTO council visited Nova Labs in Reston.

Nova Labs is part of the maker movement that has mushroomed around the country. This movement is a confluence of things coming together including 1) open source hardware that promotes advancement in hardware design though common standards and crowds sourcing, much like the open source software, 2) the availability of some highly-advanced machines such as 3-D printing, high-precision laser cutters at a price point within the reach of hobbyists, and 3) the do-it-yourself (DIY) mindset that encourages participants to make stuff (hence the term “makers”). There are over 1,000 such makerspaces in the country.

Read More…

You’ve had a sip of the NuGet Kool-Aid, picked your jaw up off the ground after seamlessly installing your favorite Open Source project, and now you’re diving head first into NuGet as your team’s dependency management tool of choice. Private NuGet repository is in place, Package Restore is enabled and new packages are being published automagically from your builds.

DLL-hell is behind you right?  Not so fast.  This never-ending saga has reemerged as NuGet-hell.

Managing your dependencies requires discipline and conscious decision making regardless of the tools you choose.  Don’t leave the building blocks of your applications to chance.

But how do you get the information necessary to make these decisions?

Read More…

When it comes to Microsoft, people don’t generally think “Open Source” or “Linux Support”. But in recent years, Microsoft has come a long way. They’ve released many of their most commonly used frameworks under open source licenses, including ASP.NET MVC/Web API/Web Pages and Entity Framework!

Additionally, they’ve given first-class support for many non-Microsoft offerings, especially in Azure. Currently, this includes support in Azure for open source gems like Node.js, PHP, and, yes, even Linux. Heck, they even have an Openness logo:

In this post, I’ll walk you through setting up the Ubuntu Desktop on an Azure Virtual Machine and configure it so you can connect to it through Windows Remote Desktop. It’s a lot easier than you think!

Read More…

Awhile back, we wanted to create demo videos for clients, showcasing some of our iPad Web Application work. One of the challenges was how to show the interactions — the touches and gestures — when working with the application. There is no mouse, like on desktops. A screenshot, or a video of the application, will simply show things happening as if by magic. And taking a video or photo of a user interacting with the device is just clumsy and laborious: You need a camera, the user’s hand covers the content, you have to get a manicure, all that.

With the programming expertise of Xiyuan Shen and our good friend Ian Gilman, I set out to do something about this. I knew from having seen the awesome yet thoroughly creepy Phantom Limb (demo) that it was possible to inject a mouse-marker using a bookmarklet. This would allow us to run our code on almost any webpage, without the author having to include our script on their page. It could be injected on an as-needed basis by the presenter.

Read More…

One of the most discussed concepts about authentication today is the concept of Single Sign-On, or SSO. SSO is the ability for a user to log into one location, and authenticate across several domains without entering any additional credentials. This saves the user from having to enter several credentials for related websites, as well as possibly prevent the user from having to remember multiple logins.

While developing the Rolling Stone and Vogue Archives, we needed a SSO system that could integrate our ASP.Net based archive with each provider’s existing authentication systems, primarily Apache-based web applications. Our solution was to develop a C# implementation of mod_auth_tkt cookie-and-token based authentication system, which we have since released open source.

Read More…

One day, not so very long ago, Kevin and Tom stopped by for a visit and asked me, “Can we build a low-cost Content Management System (CMS) on .NET that serves up audio and video content? The site also needs to sell access to the A/V content, and oh…the CMS users will be non-technical and it has to work on the iPad too.” I replied that of course we could build such a system and would get back to them with a plan.

Then I thought: What did I just promise?

Read More…