Quantcast
Channel: Category Name
Viewing all 10804 articles
Browse latest View live

A few upcoming R conferences

$
0
0

Here are some conferences focused on R taking place in the next few months:

Oct 26: Nor'eastR Conference (Providence, RI). A one-day R conference, organized by grassroots R community members in the Northeastern US. 

Oct 27: SatRdays Belgrade (Serbia). Another city joins the popular SatRDays series of one-day, community led conferences. 

Nov 7: EARL Seattle (Seattle, WA). The EARL London conference goes on a Stateside road trip, with a 1-day stop in Seattle.

Nov 8-9: DC R Conference (Washington, DC). From the same organizers as the fantastic New York R Conference, this DC-based outpost will feature speakers including Mara Averick, Roger Peng, and Emily Robinson.

Nov 9: EARL Houston (Houston TX). The EARL roadshow continues with a stop in Texas.

Nov 13: EARL Boston (Boston, MA). The EARL roadshow concludes with a 1-day event in Boston.

Dec 8: SatRDays DC (Washington, DC). Talk proposals for this Washington, DC instance of SatRDays are open until October 31.

Jan 15-18 2019: RStudio::conf (Austin, TX). The annual conference from the makers of RStudio takes place in  Austin, Texas.

I go to a lot of conferences these days, but those organized by the R community remain my favorite. Attending one of these events is a great way to learn new R skills, but equally importantly to meet other R users from a different disciplines, and perhaps discover that their problems and applications aren't that dissimilar from your own. I'll be at many of the events listed above, and I look forward to meeting you all there.

If you can't find an event at the right time or place for you, take a look at the index linked below for a list of upcoming meetups, conferences and events from the R community. (Know one that's not listed? You can submit a pull request by clicking the pencil icon in the top row.)

Jumping Rivers: R conferences and meetings


Because it’s Friday: If IKEA did algorithms

$
0
0

Thanks to Mike Loukides I recently discovered IDEA, a series of algorithm explainers presented as IKEA assembly instructions. It's a brilliant concept: IKEA instructions have to be clear and easy to follow, in sequential steps, without use of language. There are entries for determining a convex hull and for various sorting algorithms, but this one on public key encryption is my favorite (not least because it's the first time I feel like I "get" the concept).

That's all from us for this week. Have a great weekend, and we'll be back next week.

Troubleshooting Windows 10 Nearby Sharing and Bluetooth Antennas

$
0
0

wifi

When building my Ultimate Developer PC I picked this motherboard, and it's lovely.

  • ASUS ROG STRIX LGA2066 X299 ATX Motherboard - Good solid board with built in BT and Wifi, an M.2 heatsink included, 3x PCIe 3.0 x16 SafeSlots (supports triple @ x16/x16/x8), 1x PCIe 3.0 x4, 2x PCIe 3.0 x1 and a Max of 128 gigs of RAM. It also has 8x USB 3.1s and a USB C which is nice.

I put it all together and I've thrilled with the machine. However, recently I was trying to use the new Windows 10 "Nearby Devices" feature.

It's this cool feature that lets you share stuff to "Nearby Devices" - that means your laptop, other desktops, whatever. Similar to AirDrop, it solves that problem of moving stuff between devices without using an intermediate server.

You can turn it on in Settings on Windows 10 and decide if you want to receive data from everyone or just contacts.

Nearby Sharing

So I started using on my new Desktop, IRONHEART, but I kept getting this "Looking for nearby devices" dialog...and it would just do nothing.

Looking for Nearby Devices

It turns out that the ASUS Motherboard also comes with a Wi-Fi Antenna. I don't use Wifi (I'm wired) so I didn't bother attaching it. It seems that this antenna is also a Bluetooth antenna and if you plug it in you'll ACTUALLY GET A LOVELY BLUETOOTH SIGNAL. Who knew? ;)

Now I can easily right click on files in Explorer or Web Pages in Edge and transfer them between systems.

Sharing a file with Nearby Sharing

A few tips on Nearby Sharing

  • Make sure you know your visibility settings. From the Start Menu type "nearby sharing" and confirm them.
  • Make sure the receiving device doesn't have "Focus Assist" on (via the Action Center in the lower right of the screen) or you might miss the notification.
  • And if you're using a desktop like me, ahem, plug in your BT antenna

Hope this helps someone because Nearby Sharing is a great feature that I'm now using all the time.


Sponsor: Telerik DevCraft is the comprehensive suite of .NET and JavaScript components and productivity tools developers use to build high-performant, modern web, mobile, desktop apps and chatbots. Try it!


© 2018 Scott Hanselman. All rights reserved.
     

Visual Studio 2017 version 15.9 Preview 3

$
0
0

Today, we are releasing the third preview of Visual Studio 2017 version 15.9. You can download it here and share your feedback with our engineering teams. This release includes ARM64 support in UWP apps as well as improvements to Xamarin and TypeScript. Continue reading below for an overview the fixes and new features. If you’d like to see the full list, check out the release notes for more details.

ARM64 Support for UWP Applications

You can now build ARM64 UWP applications for all languages. If you create a new application, the ARM64 configuration will be included in the project by default. For existing applications, you will add an ARM64 solution configuration (copied from the ARM configuration) using the configuration manager. Your UWP projects will automatically build for the correct architecture when selecting that configuration.

Note: For C# and VB UWP applications, the Minimum Version of your application must be set to the Fall Creators Update (build 16299) or higher to build for ARM64. In addition, C# and VB applications must reference the latest .NET Core for Universal Windows Platform preview NuGet package (6.2.0 preview) or higher to build for ARM64. Only .NET Native is supported for building ARM64 UWP applications.

Visual Studio Tools for Xamarin

Visual Studio Tools for Xamarin now supports Xcode 10, which enables you to build and debug apps for iOS 12, tvOS 12, and watchOS 5. For example, iOS 12 adds Siri Shortcuts, allowing all types of apps to expose their functionality to Siri. Siri then learns when certain app-based tasks are most relevant to the user and uses this knowledge to suggest potential actions via shortcuts. An example is provided in the GIF below.

See how to get ready for iOS 12 and our introduction to iOS 12 for more details on the new features available.

Xamarin.Android Build Performance

This release also brings Xamarin.Android 9.1, in which we have included initial build performance improvements. For a further breakdown of these improvements between releases, see our Xamarin.Android 15.8 vs. 15.9 build performance comparison for details.

C++ – Charconv for Floats

We’ve implemented the shortest round-trip decimal overloads of floating-point to_chars() in C++17’s charconv header. For scientific notation, it is approximately 10 times (not percent) as fast as sprintf_s() “%.8e” for floats, and 30 times (not percent) as fast as sprintf_s() “%.16e” for doubles. This uses Ulf Adams’ new algorithm, Ryu.

JavaScript and TypeScript Project References

We now support project references, which provide functionality for splitting a large TypeScript project into separate builds that reference each other. We have additionally rolled out the ability to easily update your project to the latest TypeScript 3.0 with our file renaming feature that also integrates project references. Now, if you rename your JavaScript or TypeScript file, the language service offers to fix references across your project.

Try out the Preview

As always, we invite you to download the preview and report bugs or suggest features by connecting with our product teams. The issues you report show us how to build better tools for your work and the ideas you share help us grow our tools alongside your projects.

Angel Zhou Program Manager, Visual Studio

Angel Zhou is a program manager on the Visual Studio release engineering team, which is responsible for making Visual Studio releases available to our customers around the world.

Announcing Babylon.js 3.3!

$
0
0

We are pleased to announce the launch of Babylon.js 3.3! This release adds amazing new UI and interaction features, major updates to particle system controls, new environment generation tools, procedural noise texture generation, 360-degree photo and video support, and more! For the full list of features, please visit our release notes. Some of our favorites are listed below.

Example of 3D GUI feature.

3D GUI

To simplify GUI construction for VR, we have added two features from the Microsoft Mixed Reality Toolkit (MRTK). The first is the new 3D volume grids used to easily lay out your interface for direct integration into your VR scene. Second, we have also added power to your VR GUI design by including methods to call the standard MRTK holographic and 3D mesh buttons.

Example of the new Transformation Gizmo.

Transformation Gizmo

Give your users complete control over the scene with the new transformation gizmo. Easily attach the gizmo to any object to unlock translation, rotation, or scaling with the standard or custom gizmos!

Example of updates particle systems.

Particle Systems

We have introduced nearly 30 new controls to take your particle systems to the next level. With the power of transformation over lifetime, the emission control over the lifetime of the system, the addition of animation randomization for sprite sheets, and the addition of new emitter shapes, you have more control than ever to make your particle systems shine.

Examples of improvements to Environment textures.

Environment Textures

New improvements to our image-based lighting bring the quality of our real-time rendering closer to popular ray tracers for environment lighting. And we went step further to increase performance with the Environment Texture Tool which reduces the size of your pre-filtered DDS files!

Example of Typescript in the Playground.

Typescript in the Playground

To make our playground development environment more flexible and more powerful, we now support Typescript as well as JavaScript.

Example of improved documentation.

Improved Documentation

We have been working hard on improving our users’ understanding of Babylon.js and now have our entire API completely documented. This has been a large undertaking, but the payoff is well worth the investment as you will now have more information right at your fingertips while writing your code.

We hope you enjoy our new Babylon.js 3.3 release and can’t wait to see what you build with our new features!

Demos

The post Announcing Babylon.js 3.3! appeared first on Windows Developer Blog.

Creating a data stream from NIST manufacturing lab data – Part 1

$
0
0

The Industry Experiences team has recently published a solution guide for extracting insights from existing IoT data. The solution consists of the following high-level components.

  • Ingest data
  • Hot path processing
  • Cold path processing
  • Analytics clients

This is the first of a series of blogs that go through those components in detail. We start with ingesting data into the solution and creating a data stream.

The NIST data

The solution uses the data published by US National Institute of Standards and Technology Smart Manufacturing Systems test bed that exposes the manufacturing lab’s data. We use the data from the lab's volatile data stream (VDS).

The VDS is implemented using the MTConnect standard. The standard offers a semantic vocabulary for manufacturing equipment. It defines a protocol to communicate with an MTConnect agent and the schema for the data returned.

The agent and its methods

The agent exposes an HTTP endpoint that supports the following API operations:

  • probe: Returns the list of devices, components, subcomponents and data items.
  • current: Returns a snapshot of the data item's most recent values or the state of the device at a point in time.
  • sample: Returns Samples, Events and Condition in time series.
  • asset: Most recent state of an asset known to this device.

An example of the protocol flow for this solution follows.

Extracting Insights from IoT Data - Solution Guide Figures

The solution needs to poll the VDS endpoint. Once it receives the data stream, it can post the data records on the data stream in name value pairs to Azure Event Hubs. Then we can process the stream with a stream processing technology on the other end.

Extracting Insights from IoT Data - Solution Guide Figures 2

The ingestion component

The ingestion component does the following tasks:

  • Polls the VDS endpoint.
  • Saves the raw response as XML to Azure blob storage.
  • Transforms the hierarchical XML result into a flat data records structure, with name-value pairs and time stamps.
  • Posts each record to an Azure Event Hub. A different Event Hub is used for each message type.

There are many Azure service options for implementing the ingestion component. All of the following services can poll an HTTP end-point, save the raw data to an interim storage solution and post the transformed data to Azure Event Hubs.

I chose to use Azure Logic Apps, because it is very easy to setup a very simple workflow, make a few HTTP calls against the VDS endpoint, call the necessary REST operations, and continue polling during the scheduled interval. Azure Logic Apps provides more than 200 connectors for performing tasks with data. Since I would like to store the raw response to a data store, the Azure Blob Storage connector is the easiest solution.

Two tasks remain. The component must transform the XML payload to a flat data records structure, and post the results to Azure Event Hubs.

The response data is formatted as an MTConnectStreams document. Find the XSD schemas for various MTConnect documents. A closer look at the result document’s schema reveals that polymorphism is used extensively in the documents. For example, an element with the name temperature is of type TemperatureType which is polymorphic, using the XML feature Substitution Groups.

There is a Transform XML connector for Logic Apps. A quick look at this connector reveals the need for developing a map using the Enterprise Integration Pack. Although it is possible to develop a map, that activity may turn out to be a lot of effort when comparing it to doing the same with custom code.

I developed a MTConnect client during one of my fun coding weekends. The component uses Plain Old CLR Object (POCO) classes. The classes were generated using the Visual Studio’s xsd.exe tool. Although the generated code is not capable of de-serializing the polymorphic XML, modifying it to succeed is easy. Simply apply the XmlIncludeAttribute to the polymorphic generated classes.

I decoupled the following two tasks. Polling the VDS endpoint and saving the raw data, and transforming then posting the result to the Event Hub. Such a design moves the more complicated task of parsing and transforming the result, to an easier environment to work in which helps develop, debug, and maintain. The resulting design consists of two microservices. The first is developed as a Logic App, managed by the Azure Logic Apps service. The second custom code is deployed to an Azure Container Instances service. I use a Storage queue for communication between the two microservices.

Extracting Insights from IoT Data - Solution Guide Figures 3

Implementation of the Logic App

Going through the full implementation of the Logic App portion of the component may take a lot of space and repetition. I will highlight only the parts that need extra attention. The implementation follows the following flow chart. The full source code can be found on GitHub.

Extracting Insights from IoT Data - Solution Guide Figures 4

Logic Apps can use built-in functions for de-serializing and serializing the JSON and XML contained in the workflow definition language. The raw results are stored as JSON for optimizing the storage requirements. The JSON representation of the same data takes less space. XML tags are more verbose. The result of the current and sample requests is saved into variables using the following formula. If you are using the GUI for editing the workflow, you can use the first line. To edit in code view, make sure the function starts with @ so the interpreter can work:

json(replace(string(json(xml(trim(body('Current'))))), '"@', '"'))

"value": "@json(replace(string(json(xml(trim(body('Current'))))), '"@', '"'))"

The key is to de-serialize the XML first, then serialize the result to JSON. This operation creates a JSON string with the attribute names prepended with the “@” character. The activity  converts the JSON to a string. Remove the “@” and make a new JSON from the result.

The original XML looks like the following.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/styles/Streams.xsl"?>
<MTConnectStreams xmlns:m="urn:mtconnect.org:MTConnectStreams:1.3" xmlns="urn:mtconnect.org:MTConnectStreams:1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:x="urn:nist.gov:NistStreams:1.3" xsi:schemaLocation="urn:nist.gov:NistStreams:1.3 /schemas/NistStreams_1.3.xsd">
   <Header creationTime="2018-08-24T22:02:06Z" sender="5c182aaf5077" instanceId="1535115106" version="1.3.0.18" bufferSize="1048576" nextSequence="438473124" firstSequence="437424548" lastSequence="438473123"/>
   <Streams>
     <DeviceStream name="GFAgie01" uuid="mtc_adapter001">
       <ComponentStream component="Device" name="GFAgie01" componentId="GFAgie01">
         <Events>
           <Availability dataItemId="GFAgie01-dtop_1" timestamp="2018-08-24T22:02:06.397326" name="avail" sequence="438473077">UNAVAILABLE</Availability>
           <EmergencyStop dataItemId="GFAgie01-dtop_2" timestamp="2018-08-24T22:02:06.397970" name="estop" sequence="438473086">UNAVAILABLE</EmergencyStop>
           <AssetChanged dataItemId="GFAgie01_asset_chg" timestamp="2018-08-24T22:02:06.390521" sequence="438472999" assetType="">UNAVAILABLE</AssetChanged>

And if the “@” character is not removed, the JSON looks like the following.

{
     "?xml": {
         "@version": "1.0",
         "@encoding": "UTF-8"
     },
     "?xml-stylesheet": "type="text/xsl" href="/styles/Streams.xsl"",
     "MTConnectStreams": {
         "@xmlns:m": "urn:mtconnect.org:MTConnectStreams:1.3",
         "@xmlns": "urn:mtconnect.org:MTConnectStreams:1.3",
         "@xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
         "@xmlns:x": "urn:nist.gov:NistStreams:1.3",
         "@xsi:schemaLocation": "urn:nist.gov:NistStreams:1.3 /schemas/NistStreams_1.3.xsd",
         "Header": {
             "@creationTime": "2018-08-24T22:02:06Z",
             "@sender": "5c182aaf5077",
             "@instanceId": "1535115106",

Converting the result into JSON also allows access to the attribute values for firstSequence and lastSequence.

"value": "@int(variables('CurrentResult').MTConnectStreams.Header.firstSequence)"

Then I can plug in the values to the query parameter of the sample request.

"Sample": {
   "type": "Http",
   "inputs": {
     "method": "GET",
     "uri": "https://smstestbed.nist.gov/vds/sample?from=@{variables('NextSequence')}"
   },
   "runAfter": {
     "Delay": [
       "Succeeded"
     ]
   }
},

After each probe request is successfully received, the workflow saves the result to a blob on Azure Blob Storage. It then puts a message into Storage Queue with the URL of the saved blob, This notifies the other microservice to transform and post the data records to their subsequent Event Hubs.

Next steps

  • Check out Azure Logic Apps documentation for more details.
  • Clone the sample repo.
  • Read Part 2 of this post when its released for the implementation of the communication between microservices and the implementation details of the second microservice.

A fast, serverless, big data pipeline powered by a single Azure Function

$
0
0

A single Azure function is all it took to fully implement an end-to-end, real-time, mission critical data pipeline. And it was done with a serverless architecture. Serverless architectures simplify the building, deployment, and management of cloud scale applications. Instead of worrying about data infrastructure like server procurement, configuration, and management a data engineer can focus on the tasks it takes to ensure an end-to-end and highly functioning data pipeline.

This blog describes an Azure function and how it efficiently coordinated a data ingestion pipeline that processed over eight million transactions per day.

Scenario

A large bank wanted to build a solution to detect fraudulent transactions submitted through mobile phone banking applications. The solution requires a big data pipeline approach. High volumes of real-time data are ingested into a cloud service, where a series of data transformation and extraction activities occur. This results in the creation of a feature data set, and the use of advanced analytics. For the bank, the pipeline had to be very fast and scalable, end-to-end evaluation of each transaction had to complete in less than two seconds.

Telemetry from the bank’s multiple application gateways, stream in as embedded events in complex JSON files. The ingestion technology is Azure Event Hubs. Each event is ingested into an Event Hub and parsed into multiple individual transactions. Attributes are extracted from each transaction and evaluated for fraud. The serverless architecture is constructed from these Azure services:

Pipeline architecture

A single Azure Function was used to orchestrate and manage the entire pipeline of activities. The following diagram highlights the Azure Functions pipeline architecture:

  • An enterprise system bus sends bank transaction in a JSON file that arrives into an Event Hub. The arrival triggers a response to validate and parse the ingested file.
  • A SQL stored procedure is invoked. The procedure extracts data elements from the JSON message and aggregates them with customer and account profiles to generate a feature set, which is the input for a machine learning model. The aggregated message is formatted as a JSON file.
  • The validated JSON message is written to Cosmos DB.
  • A machine learning model is invoked to evaluate and score the transaction.
  • The fraud score is posted back to an on-premises API for integration to a case management solution.

 image

Figure 1: Azure Function pipeline architecture 

Pipeline in ten steps

The Azure Function is written in C# and is composed of ten methods that are charted out in the diagram that follows.  The methods include:

1. A method is triggered when an event is received by an Event Hub.

public static void Run(string myEventHubMessage, ICollector<string> resultsCollection, TraceWriter log)

2. The message is processed, and the JSON is validated.

private static void ProcessInitialMessageFromEventHub(List<string> jsonResults, string cnnString, TelemetryClient appInsights, dynamic d)

3. Invoke code to execute a SQL command to insert  the message event.

private static bool CheckRequestTypeForValidMessage(dynamic d)

4. If the JSON message is valid, save it to Cosmos DB for purposes of querying later.

private static void SaveDocDb(string json, TraceWriter log)

5. Once the JSON is parsed, extract the relevant attributes.

private static string ProcessSQLReturnedFeaturesForAML(TraceWriter log, List<string>, jsonResults, TelemetryClient appInsights)

6. Execute a stored procedure to create the features that will be the input to the machine learning model.

private static string SendDataToStoredProc(dynamic d, SqlCommand spCommand, dynamic t, TelemetryClient appInsights, TransactionType transactionTypeEnum = TransactionType.Other, dynamic responseData = null)

7. Invoke a call to the Azure ML services endpoint. Obtain a score from Azure ML. Pass in the input parameters.

private static string CallAzureMl(dynamic d, TraceWriter log, HttpClient client)

8. The ML service returns a score which is then processed.

public static List<string> GetScoresFromAzureMl(string myEventHubMessage, TraceWriter log, TelemetryClient appInsights, HttpClient client)

9. Make a call to the on-premises system, passing the message as an argument.

public static List<string> ProcessMessagesIntoEsb(TraceWriter log, string cnnString, TelemetryClient appInsights, string cardNumber, string accountNumber, List<string>esbReturnMessages)

10. The score is evaluated against a threshold, which determines if it should be passed on to the on-premises case management system.

public static string CheckScoreAndProcessEsbMessages(string> myEventHubMessage, TraceWriter log, SqlCommand spCommand, TelemetryClient appInsights, string cardNumber, string accountNumber)

The  figure below shows the logic as a vertical set of ten blocks, one for each task in the code.

image

Figure 2: Azure Function pipeline flow 

 

Pipeline scalability

The pipeline must be responsive to extreme bursts of incoming JSON files. It must parse each file into individual transactions, and process and evaluate each transaction for fraud. After experimenting with different configuration parameters, there were some settings that were helpful to ensure the Azure function could scale as needed and process the volume of messages and transactions within the required time constraints: 

  • Azure Autoscale is a capability built into cloud services like Azure Functions. It is rules-based and provides the ability to scale a service like Azure Functions up or down based on defined thresholds. By default, because of the volume of data ingested into Event Hubs, the Azure Functions service scaled too quickly, and created too many instances of itself. That resulted in locking issues on the Event Hub partitions, impacting throughput significantly. After experimentation with autoscale feature, the setting for the Functions service was set to a minimum of one and a maximum of four instances.
  • Two Event Hubs settings were important for ensuring performance and throughput for the Azure function:
    maxBatchSize: Gets or sets the maximum event count that a user is willing to accept for processing per receive loop. This count is on a per-Event Hub partition level.
    prefetchCount: Gets or sets the number of events that any receiver in the currently owned partition will actively cache. The default value for this property is 300.

After experimenting with different settings, the optimal configuration for this solution turned out to be:

// Configuration settings for 'eventHub' triggers. (Optional)
   "eventHub": {
    // The maximum event count received per receive loop. The default is 64.
    "maxBatchSize": 10,
    // The default PrefetchCount that will be used by the underlying EventProcessorHost.
    "prefetchCount": 40,
    // The number of event batches to process before creating an EventHub cursor   checkpoint.
    "batchCheckpointFrequency": 1
   },

Recommended next steps

With serverless architecture, a data engineering team can focus on data flows, application logic, and service integration.  If you are designing a real-time, serverless data pipeline and want the flexibility of coding your own methods for either integration with other services or to deploy through continuous integration, consider using Azure Functions to orchestrate and manage the pipeline. Check out these resources for additional information about Azure functions:

Special thanks to Cedric Labuschagne, Chris Cook, and Eujon Sellers for their collaboration on this blog.

Re-define analytics with Azure SQL Data Warehouse Gen2 tier now generally available

$
0
0

Microsoft Azure Government regions give unparalleled flexibility for US government agencies and their partners. Today, we announce the general availability of industry-leading performance Azure SQL Data Warehouse Compute Optimized Gen2 tier for government customers in the US Gov Arizona and US Gov Texas regions. Azure SQL Data Warehouse is a fast, flexible, and secure analytics platform offering you a SQL-based view across data. It is elastic, enabling you to provision a cloud data warehouse in minutes and scale to terabytes in minutes.

With Azure Government only US federal, state, local, and tribal governments and their partners have access to this dedicated instance that only screened US citizens operate. Customers can choose from six government-only datacenter regions, including two regions granted an Impact Level 5 Provisional Authorization. Moreover, Azure Government offers the most compliance certifications of any cloud provider.

These new locations bring the product worldwide availability count for Compute Optimized Gen2 tier to 28 regions.

image

More performance, concurrency, and power

Azure SQL Data Warehouse Gen2 brings the best of Microsoft software and hardware innovations to dramatically improve query performance and concurrency. Our customers now get up to five times better performance on average for query workloads, four times more concurrency, and five times higher computing power compared to the previous generation. Azure SQL Data Warehouse can also serve 128 concurrent queries from a single cluster, the maximum for any cloud data warehousing service.

With SQL Data Warehouse in Azure Government, federal customers can get world-class security, protection, compliance, and modernize their legacy infrastructure to a flexible, hybrid environment.

Begin today and experience the speed, scale, elasticity, security, and ease of use from this cloud-based data warehouse for yourself. You can always find more information by reading about the capabilities and features of Azure SQL Data Warehouse.

Share your feedback

We would love to hear from you about what features you would like us to add. Please let us know on our feedback site what features you want most. Users who suggest or vote for feedback will receive periodic updates on their request and will be the first to know when the feature is released.

You can also connect with us if you have additional product questions via StackOverflow or our MSDN forum.

Learn more

Check out the many resources for learning more about SQL Data Warehouse, including:

Next steps


Visual Studio Code September 2018

Snip Insights – Cross-platform open source AI tool for intelligent screen capture

$
0
0

Devices and technologies are moving forward at a rapid pace, though the everyday tools we use remain relatively unchanged. What if we could infuse AI into everyday tools to delight and inspire developers to do more using Microsoft AI platform? With just a little bit of creativity and using Microsoft's current AI offerings, we can bring AI capabilities closer to customers and create applications that will inspire every organization, every developer, and every person on this planet.

Introducing Snip Insights

An open source cross-platform AI tool for intelligent screen capture. Snip Insights revolutionizes the way users can generate insights from screen captures. The initial prototype of Snip Insights, built for Windows OS and released at Microsoft Build 2018 in May, was created by Microsoft Garage interns based out of Vancouver, BC. Our team at Microsoft AI Lab in collaboration with the Microsoft AI CTO team took Snip Insights to the next level by giving the tool a new intuitive UX, cross-platform availability (MacOS, Linux, and Windows), and free download and usage under MSA license. Snip Insights leverages Microsoft Azure's Cognitive Services APIs to increase users' productivity by reducing the number of steps needed to gain intelligent insights.

SnipInsights_Homepage-Carousel_580x326_V2b

The Solution

Snip Insights is an open source desktop utility that enables cross-platform users to retrieve intelligent insights over a snip or screenshot. Screenshots are essentially snapshots of moments. Snip Insights leverages cloud AI services to convert images to translated text, automatically detect and tag image content, along with many smart image suggestions that improve workflows while showcasing Azure Cognitive Services’ potential. By combining a familiar tool with Cognitive Services, we have created a one-stop shop for all your image insights. Imagine that you have a scan of a textbook or work report. Rather than having to manually type out the information, snipping it will return editable text in just one click using OCR. Or maybe you’re scrolling through your social media feed and come across someone wearing a cool pair of shoes, you can simply snip to find out where to purchase them. Snip Insights can show you relevant information based on what you’ve just snipped, including identifying famous people and landmarks. It streamlines the process of screenshotting, saving the picture, uploading it to reverse image search engines, and then drawing results from there.

image

Snip Insights highlights

Celebrity Search – Snip an image of a celebrity and the tool will provide you with all the news and information about the celebrity.

image

image

Object Detection and Bing Visual Search – You like a t-shirt or pair of shoes your friend is wearing in a pic, and want to know where to buy it from. Just use snip insights and it will give you recommendations, similar product images and where to buy from in a matter of a second.

image

OCR, Language Translation and cross-platform compatibility – You like a phrase in a specific language, let’s say English, and wish to convert that to French or another language to personalize it and vice versa. Just use Snip Insights to get those insights. The tool is free and works on Windows, Linux,  and MacOS.

imageimage

image

image

Supported Platforms: Windows, Mac OS, and Linux

The Snip Insights app is available for three platforms:

  • Universal Windows Platform (UWP)
  • Mac OS
  • Linux

Xamarin.Forms GTK# App Mac OS and Linux for Snip Insights

Xamarin.Forms enables you to build native UIs for iOS, Android, macOS, Linux, and Windows from a single shared codebase. You can dive into app development with Xamarin.Forms by following our free self-guided learning from Xamarin University.

Xamarin.Forms has preview support for GTK# apps. GTK# is a graphical user interface toolkit that links the GTK+ toolkit and a variety of GNOME libraries, allowing the development of fully native GNONE graphics apps using Mono and .NET. Xamarin.Forms GTK#.

Installation

Windows

  • Download the zip.
  • Install the certificate (".cer" file) according to the instructions detailed on the tInstall Certificate section.
  • Install Snip Insights by double click over the .appx package file.

Linux

Mac OS

  • Download and install Mono (Stable channel).
    • Such includes GTK#, the UI toolkit on which Xamarin.Forms relies on this project.
  • Install the .pckg as a normal macOS application.
  • Snip Insights app is available on the Applications section on macOS.

Requirements

Visual Studio 2017 version 15.8 or Visual Studio for Mac version 7.6.3

Using your own subscription

To add the keys to Snip Insights, a Microsoft Garage Project, start the application. Once running, click/tap the settings icon in the toolbar. Scroll down until you find the Cognitive Services, enable AI assistance toggle, and toggle it to the on position. You should now see the Insight Service Keys section.

  • Entity Search - Create new Entity Search Cognitive Service. Once created, you can display the keys. Select one and paste into Settings.
  • Image Analysis - In Azure, create a Computer Vision API Cognitive Service and use its key.
  • Image Search - In Azure, create a Bing Search v7 API Cognitive Service and use its key.
  • Text Recognition - You can use the same key as used in Image Analysis. Both Image Analysis and Text Recognition use Computer Vision API.
  • Translator - Use the Translator Text API Cognitive Service.
  • Content Moderator - Use the Content Moderator API Cognitive Service.

For the LUIS App ID and Key, you will need to create a Language Understanding application in the Language Understanding Portal. Use the following steps to create your LUIS App and retrieve an App ID

  • Click on create new app button.
  • Provide an app name. Leave culture (English) and description as defaults.
  • Click done.
  • In the left navigation pane, click entities.
  • Click manage prebuild entities.
  • Select datetimeV2 and email.
  • Click done.
  • Click the train button at the top of the page.
  • Click the publish tab.
  • Click the publish to production slot button.
  • At the bottom of the screen, you will see a list with a Key String field. Click the copy button and paste that key value into the LUIS Key field in settings for Snip Insights.
  • Click the settings tab at the top.
  • Copy the application ID shown and paste into the LUIS App Id field in Settings for Snip Insights.

You can now paste each key in the settings panel of the application. Remember to click the save button after entering all the keys.

For each key entered there is a corresponding service endpoint. There are some default endpoints included you can use as an example, but when you copy each key also check and replace the service endpoint for each service you are using. You will find the service endpoint for each Cognitive Service on the overview page. Remember to click the save button after updating all the service endpoints.

Congratulations! You should now have a fully working application to get started. Have fun testing the project and thank you for your contribution!

You can find the code, solution development process, and all other details on GitHub.

Unleash the value of Industrial IoT with Kepware and Azure IoT Edge

$
0
0

Kepware’s KEPServerEX is an industry leading solution for connectivity of industrial and manufacturing equipment, and a key component of many company’s Industrial IoT strategies. The Azure IoT platform is a great complement to this connectivity, allowing customers to take advantage of cloud scale, industrial-strength IoT, analytics, and AI technologies. Recognizing the value of this combination, Kepware had previously released a technical note showing how to connect to Azure IoT Hub from KEPServerEX and send the data that it gathered from its connected machinery directly to the cloud via the popular MQTT protocol.

With the release of Azure IoT Edge, customers have the option of bringing some of the custom processing and Azure services from the cloud down to the Edge. This enables scenarios like filtering and aggregating data on the Edge before sending to Azure or executing machine learning models to predict failures or performing anomaly detection with very low latency and bandwidth usage.

Kepware through Azure IoT Edge

The natural question at this point is can you do both? Can you leverage the large selection of device connectivity libraries of KEPServerEx, and the power of edge processing from Azure IoT Edge together? The answer, of course, is yes! We have recently released guidance on how to set up KEPServerEx to talk to IoT Hub through IoT Edge, leveraging the same MQTT connector it uses to talk to IoT Hub. The article gives step-by-step instructions for how to enable this scenario, on both the IoT Edge and KEPServerEx components.

The diagram below shows just one example architecture demonstrating this powerful combination

 

kepware-edge-example

Offline support

The recently announced enhanced offline support for Azure IoT Edge adds significant value to this scenario as well. As many factories are in remote locations with unreliable or slow internet connectivity, the offline capabilities of Azure IoT Edge allow the solution to continue to process data, react to events, and take local action all while the internet connection may be down. Azure IoT Edge can even automatically store locally and then forward the messages intended for the cloud once the internet connectivity resumes.

Azure.Source – Volume 52

$
0
0

Now in preview

Advanced Threat Protection for Azure Storage now in public preview - Azure Storage Advanced Threat Protection detects anomalies in account activity and notifies you of potentially harmful attempts to access your account. This layer of protection allows you to address threats without the need to be a security expert or manage security monitoring systems. Threats are surfaced by defining security alerts that trigger when anomalies in activity occur. These alerts integrate with Azure Security Center which include details of suspicious activity and recommendations on how to investigate and remediate threats.

Cloud Scale Analytics meets Office 365 data – empowered by Azure Data Factory - Azure Data Factory enables you to bring the rich organizational data in your Office 365 tenant into Azure in a scalable way and build analytics applications and extract insights based on these valuable data assets. Microsoft Graph contains rich data about workers and their workplace, including information about how people work and how they communicate, collaborate, and manage their time. Microsoft Graph data connect brings this data to Microsoft Azure, which gives you access to the best development and hosting tools to work with this data.

Azure Friday | Get cloud-scale analytics of Office 365 data with Azure Data Factory - Gaurav Malhotra joins Scott Hanselman to discuss how you can use Azure to get innovative analytics and insights from your Office 365 data – organizational, customer, transactional, external – in a way that was not possible before. Learn how you can move Office 365 data to Azure using the Office 365 connector in Azure Data Factory to do hyperscale analytics with enterprise grade security.

Bring Your Own Keys for Apache Kafka on HDInsight - Azure HDInsight includes Bring Your Own Key (BYOK) support for Apache Kafka. This capability lets you own and manage the keys used to encrypt data at rest. All managed disks in HDInsight are protected with Azure Storage Service Encryption (SSE). By default, the data on those disks is encrypted using Microsoft-managed keys. If you enable BYOK, you provide the encryption key for HDInsight to use and manage it using Azure Key Vault.

Ephemeral OS Disk in limited preview - Ephemeral OS Disk is a new type of OS disk created directly on the host node, providing local disk performance and faster boot/reset time. Ephemeral OS Disk is supported for all virtual machines (VM) and virtual machine scale sets (VMSS). Ephemeral OS Disk is ideal for stateless workloads that require consistent read/write latency to OS disk, as well as frequent reimaging operations to reset VMs to their original state.

Public preview: Azure Database for MariaDB - The Azure Database for MariaDB service is now available in preview. It offers an enterprise-ready, fully managed database service that uses the community edition of MariaDB. The service features open-source compatibility, built-in high availability, dynamic scaling, and flexible pricing. Customers can lift and shift to the cloud and use languages and frameworks of their choice, leveraging the power of MariaDB running on Azure.

Provide feedback on detected threats in Azure Security Center - Azure Security Center automatically collects, analyzes, and integrates log data from your Azure resources to detect threats. Machine learning algorithms run against collected data and generate security alerts. A list of prioritized security alerts is shown in Security Center along with the information you need to quickly investigate the problem, as well as recommendations for how to remediate an attack. We have added the Alerts Customer Feedback in public preview to Azure Security Center, which gives the Security Center customers a channel to give feedback on the alerts that they received.

Screenshot of UI for providing feedback on security alerts in Azure Security Center

The Azure Podcast

The Azure Podcast | Episode 249 - Managed Identities - The team talks to Identity PM Arturo Lucatero about Managed Identities, that help make resource access easier to manage in Azure.

Now generally available

HDInsight Enterprise Security Package now generally available - Now you can create an HDInsight cluster with Enterprise Security Package (ESP) that's joined to an Active Directory domain. You can then configure a list of employees from the enterprise who can authenticate through Azure Active Directory to log on to the HDInsight cluster. The enterprise admin can configure role-based access control (RBAC) for Hive security by using Apache Ranger.

Illustration showing how Enterprise security contains four major pillars: perimeter security, authentication, authorization, and encryption.

Announcing Azure database services for MySQL and PostgreSQL for Azure Government customers - These fully managed, government-ready database as a service offerings bring the community versions of MySQL and PostgreSQL to mission-critical government workloads with built-in high availability, a 99.99% availability SLA, elastic scaling for performance, and industry leading security and compliance. Building on the community edition of MySQL and PostgreSQL, lifting and shifting to the cloud is easier than ever, while maintaining full compatibility with your languages and frameworks of your choice.

Also generally available

The Azure DevOps Podcast

The Azure DevOps Podcast | Steven Murawski on Infrastructure as Code - Episode 004 - Today, Jeffrey Palermo is joined by special guest, Steven Murawski, to explain the basics of infrastructure, which tools and infrastructures he recommends for those putting together their DevOps tool belt, the value in defining your infrastructure as code, where to get started and how to modify your infrastructure on the fly, and how to minimize your opportunities for failure.

News and updates

Ansible 2.7: What’s new for Azure - Ansible 2.7 is out. This release includes 21 new Azure modules for automating deployment and configuration of Azure Web Apps, Azure Traffic Manager, Azure Database, Azure Application Gateway, and Azure Autoscale. It also includes additional facts modules for Azure Virtual Machines and Azure Container Registry. With Ansible 2.7 and Jenkins, you could enjoy a seamless CI/CD experience for Azure Web Apps.

World-class PyTorch support on Azure - Azure Machine Learning Services provides support for a variety of frameworks including TensorFlow, Microsoft Cognitive Toolkit, and PyTorch 1.0. PyTorch 1.0 takes the modular, production-oriented capabilities from Caffe2 and ONNX and combines them with PyTorch's existing flexible, research-focused design to provide a fast, seamless path from research prototyping to production deployment for a broad range of AI projects. While PyTorch's Python-first integration and imperative style have long made the framework a hit among researchers, the latest PyTorch 1.0 release brings the production-level readiness and scalability needed to make it a true end-to-end deep learning platform, from prototyping to production.

Fuel My Awesome: Celebrating developers and what makes them awesome - Starting today, #FuelMyAwesome is back on Twitter to celebrate developers like you, and we want to hear about all the things that make you tick and keep you inspired. Whether that’s a lucky beanie or a cold brew, a delightful desk toy or a fun way to get fit, we want you to share it with us for a chance to win cool swag. @msdev will tweet weekly questions to uncover how you get in the zone, celebrate wins, recharge your batteries, and more. Read this post to learn how you can participate and be entered for a chance to win.

#FuelMyAwesome creative with 16-bit graphics

One month retirement notice: Access Control Service - Last year, we announced the retirement of Access Control Service, which will retire on November 7, 2018. There is an extension available to push that date to February 4, 2019, but you must opt-in to request an extension. The Azure customers most likely to find ACS namespaces signed up Azure Service Bus prior to 2014. A migration guide is available to assist you with your migration strategy.

Microsoft joins LOT Network, helping protect developers against patent assertions - Microsoft is joining the LOT Network, a growing, non-profit community of companies that is helping to lead the way toward addressing the patent troll problem, an issue that impacts businesses of all sizes. By joining the LOT network, we are committing to license our patents for free to other members if we ever transfer them to companies in the business of asserting patents. This pledge has immediate value to the nearly 300 members of the LOT community today, which covers approximately 1.35 million patents.

Azure Friday

Azure Friday | Full-stack end-to-end monitoring with Azure Monitor - Rahul Bagaria joins Lara Rubbelke to discuss Azure Monitor, which now includes Log Analytics and Application Insights. Azure Monitor provides full stack monitoring tools for collecting and analyzing telemetry that allow you to maximize the performance and availability of your cloud and on-premises resources and applications. It helps you understand how your applications are performing and proactively identifies issues affecting them and the resources they depend on.

Technical content and training

The Best CLI Is the One You Don’t Have to Install (InfoQ) - In this article, Burke Holland explores the many riches of what's available in Azure Cloud Shell, including code editors and command-line tools for working with your Azure resources.

Exploring the Docker Extension for VS Code and .NET Core - Shayne Boyer explores the most recent update to the Docker Extension for Viusal Studio Code and .NET Core.

Five things about Azure DevOps with Damian Brady - In this first episode from Season 2, Burke sits down with Damian Brady, Li'l Sebastian and a carnivorous rabbit to bring you Five Things about Azure DevOps. What is Azure DevOps? Why should you care and how many miniature horses is too many? All this and more in the season opener of your seventh favorite show.

Azure Lab Services: Enable multi-VM environments through nested virtualization - Creating a classroom lab just got easier and more streamlined in Azure Lab Services. When creating a new lab, you will be taken through a wizard flow that guides you through the steps of selecting the virtual machine specifications, setting up default virtual machine credentials, configuring a template virtual machine, and publishing to make virtual machines available to your users.

Azure Lab Services: Easy and Guided Lab Creation Flow - Azure Lab Services enables you to set up one template virtual machine in a lab and make a single copy available to each of your user. But if you are a professor teaching an IT class on how to set up firewalls or servers, you may need to provide each of your students with an environment in which multiple virtual machines can talk to each other over a network. Nested virtualization enables you to create a multi-VM environment inside a lab’s template virtual machine. Publishing the template will provide each user in the lab with a virtual machine set up with multiple VMs within it.

Azure tips & tricks

Screenshot from Azure Tips & Tricks | How to load test your web apps with Azure App Services

Azure Tips & Tricks | How to load test your web apps with Azure App Services - Learn how to configure load testing in your Azure Application Services web applications. By configuring load tests, you will be able to get the amount of successful results you had, the amount of failed results you had, the average load time, and more.

Azure Tips & Tricks | How to work with app settings in Azure App Services - Learn how to work with application settings in Azure Application Services. In Azure Application Services, you can use app settings to store and change configuration information without having to change any of your application code.

Screenshot from Azure Tips & Tricks | How to work with app settings in Azure App Services

Screenshot from Azure Tips & Tricks | Become more productive with Microsoft Azure tips and tricks

Azure Tips & Tricks | Become more productive with Microsoft Azure tips and tricks - In this fast-faced and demo-heavy session from Ignite 2018 we take you through some of our favorite Azure tips and tricks—some long-standing, and new ones that have recently been added. Whether you’re interested in quick ways to navigate the Azure Portal, making the most of the Azure CLI, or working with the IDE and editors of your choice, there’s something for everyone.

Events

Spark + AI Summit Europe - Developing from cloud to the edge - Organizations around the world are gearing up for a future powered by data, cloud, and Artificial Intelligence (AI). Last week at Spark + AI Summit Europe, Rohan Kumar, Corporate Vice President, Azure Data, talked about how Microsoft is committed to delivering cutting-edge innovations that help our customers navigate these technological and business shifts. Whether you want to use Spark on SQL Server 2019, build deep learning and AI models in the cloud with Azure Databricks, or deploy them at the edge with Azure Machine Learning service, learn how we have you covered.

Twitter AMA with the Azure Functions team #FunctionsAMA! - The Azure Functions team will host a special Ask Me Anything (AMA) session on Twitter, Thursday, October 11, 2018 from 9:00 AM to 11:00 AM Pacific (GMT -7). You can tweet to @AzureFunctions or @AzureSupport with #FunctionsAMA with your questions about the service.

Screenshot from video case study on how Shell's machine vision and AI solution at their gas station retail locations

AI Show

AI Show | “Snip Insights” An open source cross-platform AI tool for intelligent screen capture - Snip Insights is an open source desktop utility that enables cross-platform users to retrieve intelligent insights over a snip or screenshot. Screenshots are essentially snapshots of moments. Snip Insights leverages cloud AI services to convert images to translated text, automatically detect and tag image content, along with many smart image suggestions that improve workflows while showcasing Azure Cognitive Services’ potential.

Customers and partners

Azure Marketplace new offers – Volume 20 - The Azure Marketplace is the premier destination for all your software needs – certified and optimized to run on Azure. Find, try, purchase, and provision applications & services from hundreds of leading software providers. In the second half of August we published 87 new offers, including new virtual machines, web applications, container solutions, and consulting services.

Enabling real-time data warehousing with Azure SQL Data Warehouse - Azure SQL Data Warehouse (SQL DW), Microsoft’s fully managed analytics platform leverages Massively Parallel Processing (MPP) to run complex interactive SQL queries at every level of scale. Striim now fully supports SQL Data Warehouse as a target for Striim for Azure. Striim enables continuous non-intrusive performant ingestion of all your enterprise data from a variety of sources in real time.

Solution architecture employing Striim to enable fast data loading to Azure SQL Data Warehouse

GoChain blockchain available on Azure - The team at GoChain is bringing their private, scalable blockchain offering to Microsoft Azure. GoChain is a smart contract blockchain based on a go-Ethereum code fork, with changes to protocol and consensus model primarily to increase the transaction speed of the network. This is achieved through core protocol changes as well as the introduction of Proof of Reputation consensus mechanism. This function similar to the current Proof of Authority based models in that verification of blocks are controlled by validation nodes agreed upon by the consortium.

The IoT Show

The IoT Show | Azure Sphere Architecture Discussion - Ed Nightingale, Partner Architect for Azure Sphere, joins Olivier on the IoT Show to discuss architecture, detailing how the silicon, the OS and the Security Service are built to allow securely connecting the billions of MCU based IoT devices that are coming.

The IoT Show | What's new in the IoT Toolkit extension for VS Code - Did you know there was a VS Code extension to develop with Azure IoT Hub? If you didn't (and even if you did!), you don't want to miss this new episode of the IoT Show. See how simple it is to start your IoT development right from Visual Studio Code.

Industries

Healthcare costs are skyrocketing! Reduce costs and optimize with AI - David Houlding, Principal Healthcare Program Manager, Industry Experiences, highlights three strategies to optimize healthcare using artificial intelligence: optimize your healthcare operations using AI; deploy AI in the cloud to further reduce costs, improve agility, and scalability; and accelerate your AI cloud initiative with blueprints.

Accelerating healthcare AI startups in the cloud - David Houlding, Principal Healthcare Program Manager, Industry Experiences, reviews key goals of any healthcare AI startup, and how Microsoft Azure empowers startups to both meet their goals and maximize the benefits of AI to the healthcare organizations they serve.

Cooling down storage costs in the healthcare AI blueprint - David Starr, Principal Systems Architect, Microsoft Azure, discusses features of Azure Blob Storage, and practices to lower the cost of blob storage while using the Azure Healthcare AI blueprint, which installs a HIPAA and HITRUST compliant environment in Azure for managing and running healthcare AI experiments.

Protecting banks through cloud-based sanction screening solutions - Howard Bush, Principal Program Manager, Banking and Capital Markets, provides some insights on how banks are seeking to rationalize and simplify security and compliance processes in real-time. The path stretches from the device to the network and back-end infrastructure. The goal is to ease the burden on employees and reduce costs from fines.

Time synchronization for financial services in Azure - For many workloads in the capital markets space, time accuracy is money. Alan Ross, Senior Director, Financial Services Industry, describes how Microsoft ensures our customers are aware of time accuracy and synchronization best practices, and how you can mitigate the risk of negative impact due to time synchronization issues on Azure.

IoT solutions for manufacturing: build or buy? - Diego Tamburini, Principal Manufacturing Industry Lead - Azure Industry Experiences Team, provides a simplified overview and next steps for a manufacturer who wants to take its first steps towards IoT.

Photo showing an augmented reality app that overlays information in a worksite to help service technicians perform maintenance.

Eight use cases for machine learning in insurance - Scott Seely, Principal Solutions Architect, covers eight common use cases for machine learning (ML) in insurance, along with resources for getting started with ML in Azure. Machine learning enables computers to learn from data through techniques that are not explicitly programmed. Insurers can use artificial intelligence (AI) applications to intelligently process and act on data.

Gaining insights from industrial IoT data with Microsoft Azure - Ercenk Keresteci, Principal Solutions Architect, Industry Experiences, researched how to put together a solution for manufacturers to gain insights from the existing IoT data they have. Read this post to learn more about it and download his solution guide on extracting insights from IoT.

A Cloud Guru's Azure This Week

Screenshot from Azure This Week | 5 October 2018

Azure This Week | 5 October 2018 - In this episode of Azure This Week, Dean takes a look at a new tier of Azure API Management, updated support for Azure in Ansible 2.7 and how you can implement Advanced Threat Protection on your Azure storage accounts.

Announcing ML.NET 0.6 (Machine Learning .NET)

$
0
0

Today we’re announcing our latest monthly release: ML.NET 0.6! ML.NET is a cross-platform, open source machine learning framework for .NET developers. We want to enable every .NET developer to train and use machine learning models in their applications and services. If you haven’t tried ML.NET yet, here’s how you can get started!

The ML.NET 0.6 release delivers several new exciting enhancements:

  • New API for building and using machine learning models

    Our main focus was releasing the first iteration of new ML.NET APIs for building and consuming models. These new, more flexible, APIs enable new tasks and code workflow that weren’t possible with the previous LearningPipeline API. We are starting to deprecate the current LearningPipeline API.

    This is a significant change intended to make machine learning easier and more powerful for you. We would love your feedback via an open discussion on GitHub to help shape the long term ML.NET API to maximize your productivity, flexibility and ease of use.

    Learn more about the new ML.NET API

  • Ability to score pre-trained ONNX Models

    Many scenarios like Image Classification, Speech to Text, and translation benefit from using predictions from deep learning models. In ML.NET 0.5 we added support for using TensorFlow models. Now in ML.NET 0.6 we’ve added support for getting predictions from ONNX models.

    Learn more about using ONNX models in ML.NET

  • Significant performance improvements for model prediction, .NET type system consistency, and more

    We know that application performance is critical. In this release, we’ve increased getting model predictions performance 100x or more.

    Additional enhancements include:

    • improvements to ML.NET TensorFlow scoring
    • more consistency with the .NET type-system
    • having a model deployment suitable for serverless workloads like Azure Functions

    Learn more about performance improvements, enhanced TensorFlow support and type-system improvements.

Finally, we’re looking forward to engaging with the open-source community in developing and growing support for machine learning in .NET further. We have already taken steps to integrate with Infer.NET, a project from Microsoft research which has just recently been released as open source project under the .NET Foundation. Infer.NET will extend ML.NET for statistical modelling and online learning and is available in the Microsoft.ML.Probabilistic namespace.

The next sections explain in deeper details the announcements listed above.

New API for building and consuming a Machine Learning model

While the existing LearningPipeline API released with ML.NET 0.1 was easy to get started with, there were some limitations explained in our previous ML.NET blog post. Moving forward the LearningPipeline API has been moved into the Microsoft.ML.Legacy namespace (e.g. Sentiment Analysis based on Binary Classification with the LearningPipeline API).

The new API is designed to support a wider set of scenarios and closely follows ML principles and naming from other popular ML related frameworks like Apache Spark and Scikit-Learn.

Let’s walkthrough an example to build a sentiment analysis model with the new APIs and introduce the new concepts along the way.

Building an ML Model involves the following high-level steps:

High level steps to build an ML model

To go through these steps with ML.NET there are essentially five main concepts with the new API, let’s take a look with them through this example:

Step 1: Load data

Get started

When building a model with ML.NET you start by creating an ML Context or environment. This is comparable to using DbContext in Entity Framework, but of course, in a completely different domain. The environment provides a context for your ML job that can be used for exception tracking and logging.

var env = new LocalEnvironment();

We are working on bringing this concept/naming closer to EF and other .NET frameworks.

Load your data

One of the most important things is, as always, your data! Load a Dataset into the ML pipeline to be used to train your model.

In ML.NET, data is similar to a SQL view. It is lazily evaluated, schematized, heterogenous. In this example, the sample dataset looks like this:

Toxic (label) Comment (text)
1 ==RUDE== Dude, you are rude …
1 == OK! == IM GOING TO VANDALIZE …
0 I also found use of the word “humanists” confusing …
0 Oooooh thank you Mr. DietLime …

To read in this data you will use a data reader which is an ML.NET component. The reader takes in the environment and requires you to define the schema of your data. In this case the first column (Toxic) is of type Boolean and the “label” (meaning also the prediction) and the second column (Comment) is the feature of type text/string that we are going to use to predict the sentiment on.

var reader = TextLoader.CreateReader(env, ctx => (label: ctx.LoadBool(0),
                                                  text: ctx.LoadText(1)));

Your data schema consists of two columns:

  • a boolean column (Toxic) which is the “label” and positioned as the first column.
  • a text column (Comment) which is the feature we use to predict.

Note that this case, loading your training data from a file, is the easiest way to get started, but ML.NET also allows you to load data from databases or in-memory collections.

Step 2: Extract features (transform your data)

Machine learning algorithms understand featurized data, so the next step is for us to transform our textual data into a format that our ML algorithms recognize. In order to do so we create an estimator and use the FeaturizeText transform as shown in the following snippet:

var est = reader.MakeNewEstimator().Append(row =>
{
    var featurizedText = row.text.FeaturizeText();  //Convert text to numeric vectors
//...
});

An Estimator is an object that learns from data. A transformer is the result of this learning. A good example is training the model with estimator.Fit(), which learns on the training data and produces a machine learning model.

Step 3: Train your model

Add a selected ML Learner (Algorithm)

Now that our text has been featurized, the next step is to add a learner. In this case we will use the SDCAClassifier learner.

Adding a learner also requires us to create an additional context, since we are performing a binary classification ML task for our sentiment analysis.

var bctx = new BinaryClassificationContext(env);

var est = reader.MakeNewEstimator().Append(row =>
{
    var featurizedText = row.text.FeaturizeText();  //Convert text to numeric vectors
    var prediction = bctx.Trainers.Sdca(row.label, featurizedText);  //Specify SDCA trainer
    return (row.label, prediction);  //Return label and prediction columns
});

The learner takes in the label, and the featurized text as input parameters and returns a prediction which contains the predictedLabel, probability and score field triplet.

Train your model

Once the estimator has been defined, you train your model using the Fit() API. This returns a model which to use for predictions.

var model = est.Fit(traindata);

Step 4: Evaluate your trained model

Now that you’ve created and trained the model, evaluate it with a different dataset for quality assurance and validation with code similar to the following:

// Evaluate the model
var predictions = model.Transform(testdata);
var metrics = bctx.Evaluate(predictions, row => row.label, row => row.prediction);
Console.WriteLine("PredictionModel quality metrics evaluation");
Console.WriteLine("------------------------------------------");
Console.WriteLine($"Accuracy: {metrics.Accuracy:P2}");

The code snippet implements the following:

  • Loads the test dataset.
  • Evaluates the model and create metrics.
  • Shows the accuracy of the model from the metrics.

And now you have a trained model for use in your applications and services.

Step 5: Model Consumption

Now, you can predict with test data by consuming the model you just created and trained.

The following code is a sample you would write in your “production” application when predicting something by scoring with the model:

// Create the prediction function 	
var predictionFunct = model.AsDynamic.MakePredictionFunction<SentimentIssue, SentimentPrediction>(env);	
// Predict the sentiment!	
var resultprediction = predictionFunct.Predict(new SentimentIssue	
                                              {	
                                                 text = "This is a very rude movie"	
                                              });	

Console.WriteLine($"Text: {sampleStatement.text} | Prediction: {(resultprediction.PredictionLabel ? "Negative" : "Positive")} sentiment");

In that sample, you can guess that the prediction won’t be positive because of the provided text.. 😉

You can find all the code of the sentiment analisys example here.

Ability to score pre-trained ONNX Models

ONNX is an open and iteroperable model format that enables using models trained in one framework (ie scikit-learn, TensorFlow, xgboost, etc) and use them in another (like ML.NET).

In ML.NET v0.3, we added the capability of exporting ML.NET models to the ONNX-ML format so additional execution environments could run the model (such as Windows ML).

In this new v0.6 release, ML.NET can also use ONNX models to score/predict trained ONNX models which use the ONNX standard v1.2. We’ve enabled this using a new transformer and runtime for scoring ONNX models, as ilustrated below.

Process exporting and scoring ONNX models

There are a large variety of ONNX models created and trained in multiple frameworks that can export models to ONNX format. Those models can be used for tasks like image classification, emotion recognition, and object detection.

The ONNX transformer in ML.NET enables providing some data to an existing ONNX model (such as the models above) and getting the score (prediction) from it.

The ONNX runtime in ML.NET currently supports only Windows on x64 CPU. Support for other platforms (Linux and macOS) are in the roadmap.

The way you use an ONNX model in your estimator is by simply adding it with this line of code similar to the following:

.Append(row => (row.name, softmaxout_1: row.data_0.ApplyOnnxModel(modelFile)));

Further example usage can be found here.

Improvements to TensorFlow model scoring functionality

In this release, we’ve made it easier to use TensorFlow models in ML.NET. Using the TensorFlow scoring transform requires knowing which node of the model you want to retrieve results from, so we’ve added an API to discover the nodes in the TensorFlow model to help identify the input and output of a TensorFlow model. Example usage can be found here.

Additionally, previously in ML.NET 0.5 we only enabled using ‘frozen’ TensorFlow models. Now in ML.NET 0.6, TensorFlow models in the saved model format can also be used.

Performance improvements

In the ML.NET 0.6 release, we made several performance improvements in making single predictions from a trained model. The first improvement comes from moving from the legacy LearningPipeline API to the new Estimators API. The second improvement comes from optimizing the performance of PredictionFunction in the new API.

To learn about the details of the benchmark results, please see the GitHub issue which covers this in detail.

  • Predictions on Iris data: 3,272x speedup (29x speedup with the Estimators API, with a further 112x speedup with improvements to PredictionFunction).
  • Predictions on Sentiment data: 198x speedup (22.8x speedup with the Estimators API, with a further 8.68x speedup with improvements to PredictionFunction). This model contains a text featurizer, so it is not surprising that we see a smaller gain.
  • Predictions on Breast Cancer data: 6,541x speedup (59.7x speedup with the Estimators API, with a further 109x speedup with improvements to PredictionFunction).

Type system improvements

To make ML.NET easier to use and to take advantage of innovation in .NET, in ML.NET 0.6 we have replaced the Dv type system with .NET’s standard type system.

  • ML.NET previously had its own type system which helped it more efficiently deal with things like missing values (a common case in ML). This type system required users to work with types like DvText, DvBool, DvInt4, etc.
  • One effect of this change is that only floats and doubles have missing values, represented by NaN. More information can be found here.

Additionally, you can now also deploy ML.NET in additional scenarios using .NET app models such as Azure Functions easily without convoluted workarounds, thanks to the improved approach to dependency injection.

Infer.NET is now open-source and becoming part of the ML.NET family

On October 5th 2018, Microsoft Research announced the open-sourcing of Infer.NET – a cross-platform framework for model-based machine learning.

Infer.NET differs from traditional machine learning frameworks in that it requires users to specify a statistical model of their problem. This allows for high interpretability, incorporating domain knowledge, doing unsupervised/semi-supervised learning, as well as online inference – the ability to learn as new data arrives. The approach and many of its applications are described in our free online book for beginners.

Places where Infer.NET is used at Microsoft include TrueSkill – a skill rating system for matchmaking in Halo and Gears of War, Matchbox – a recommender system in Azure Machine Learning, and Alexandria – automatic knowledge base construction for Satori, to name a few.

We’re working with the Infer.NET team to make it part of the ML.NET family. Steps already taken in this direction include releasing under the .NET Foundation and changing the package name and namespaces to Microsoft.ML.Probabilistic.

Additional resources

  • The most important ML.NET concepts for understanding the new API are introduced here.

  • A cookbook that shows how to use these APIs for a variety of existing and new scenarios can be found here.

Provide your feedback on the new API

Provide feedback image with two people and a swimlane

As mentioned at the beginning of the blog post, the new API is a significant change, so we also want to create an open discussion where you can provide feedback and help shape the long-term API for ML.NET.

Want to get involved? Start by providing feedback at this blog post comments below or through issues at the ML.NET GitHub repo

Get started!

If you haven’t already, get started with ML.NET here!

Next, explore some other great resources:

We look forward to your feedback and welcome you to file issues with any suggestions or enhancements in the ML.NET GitHub repo.

This blog was authored by Cesar de la Torre, Ankit Asthana, Chris Lauren plus additional reviewers in the ML.NET team

Thanks,

The ML.NET Team

Enabling intelligent cloud and intelligent edge solutions for government

$
0
0

We are going through a technology transformation that is unlocking new mission scenarios for government agencies that were simply not possible before. Smart sensors and connected devices are changing the way agencies approach problems from equipment maintenance to measuring air quality, smart cities to military outposts, while new devices are increasingly cloud connected by default – whether it’s a traffic light or a rescue vehicle.

Simultaneously, hybrid cloud is evolving from being the integration of a datacenter with the public cloud, to becoming units of computing available at even the world’s most remote destinations working in concert with public cloud. Now, more than ever before, government can bring the power of cloud to missions around the globe.

Bring these two technology trends together, with AI running across all systems, and we enter the era of the intelligent cloud and intelligent edge. And while we expect every industry to benefit as these technologies advance, the work of government in particular will be changed by the ability to plan farther, gather information more efficiently, and deliver insight where it is needed most.
The intelligent cloud is ubiquitous computing enabled by public cloud and powered with AI. In this way, we refer to Azure as the world’s computer, powering every type of intelligent application and system our customers envision across all industries.

The intelligent edge is the continually expanding set of connected systems and devices that gather and analyze information close to the physical world where data resides, to deliver real-time insights and immersive experiences that are highly responsive and contextually aware. These connected systems and devices will help government agencies across a huge array of mission goals, such as tracking water quality, improving emergency management, speeding maintenance of vital equipment, and bringing insight into complex real-world logistics problems.

Enabling intelligent cloud and intelligent edge solutions requires a new class of distributed, connected applications and will ultimately deliver break-through outcomes across every aspect of citizen services, military operations, and overall mission impact. These cloud/edge applications are built as a single solution yet run in a distributed fashion – optimized to take advantage of both robust cloud capabilities and edge locality. At the edge, the application is contextually aware and can run in both connected and disconnected states. For agencies operating outside the continental United States, where the network may be unreliable or less secure, the option to transition between connected and disconnected states will dramatically expand options for using technology to address local problems.

While the era of intelligent cloud and intelligent edge is new, the approach to building and running solutions that take advantage of this architecture is based on enduring principles. Fundamentally, a cloud/edge application must be developed and run as a single environment from the application services to AI to security and management.
 
Today, I’d like to share with you how we’re building Azure cloud/edge capabilities aligned with a set of core principles for robust technology solutions, while uniquely delivering consistency across the cloud and the edge:

  • Consistent app platform across cloud and edge. We’ve built Azure to provide consistency in programming models, data services, AI and DevOps to simplify cloud/edge application development and ensure on-going application management is efficient. Consistency means that you build once and run in multiple environments, from the cloud to servers in embassies or devices in remote outposts.
  • Holistic security. Evolving cybersecurity threats are of constant concern to any government agency. To provide security across the cloud/edge application, Azure Security Center provides unified security management and advanced threat protection for systems running in cloud and on the edge. We also recognize that cloud and edge environments have different security risks, so we have built additional protections including Azure Sphere’s ground-breaking security for MCU-based edge devices.
  • Single identity management. Providing single identity controls across the cloud/edge application is necessary to secure and manage applications wherever they reside. Azure Active Directory provides unified identity management and conditional access across the cloud and edge, providing protection from unauthorized access to apps and data wherever it resides. For agencies handling more data, and more sensitive data, than ever before, simplified identity management is a key aspect of ensuring that the right protections are always in place.  
  • Artificial Intelligence. Tapping into the contextual insight from the edge provides Machine Learning models more robust data and thus better results. Azure enables you to combine data in the cloud and from the edge to develop ML models. Then, the same ML models developed and tested in Azure can be distributed to run across a massive set of certified devices running with Azure IoT Edge.
  • Comprehensive intelligent edge portfolio to meet every need. While Azure provides a robust set of cloud services and edge devices, we know the diversity at the edge will only grow. This is why we are equally investing with the ecosystem of ISVs, SIs, and solution providers to ensure you have the right edge solution for your unique business. Azure will continue to push the boundaries of the market, as we’ve done with Azure Stack that is both cloud and edge, to Azure Sphere that provides unparalleled security for MCU based devices. 

Other cloud vendors claim support for cloud/edge computing with servers that run VMs or containers. However, this approach doesn’t recognize the massive diversity of edge devices and use cases, nor provides the consistent approach across app model, management and security that government solutions require.

Enabling the mission end to end 

To further enable the intelligent cloud and intelligent edge approach, we are announcing a number of new Azure capabilities for government today. In the past six months we have added over 40 services and features to Azure Government, as well as publishing a new roadmap for the Azure Government regions providing ongoing transparency into our upcoming releases. Moving forward, we are simplifying our approach to regulatory compliance for federal agencies, so that our government customers can gain access to innovation more rapidly. In addition, we are adding new options for buying and onboarding cloud services to make it easier to move to the cloud. Finally, we are bringing an array of new hybrid and edge capabilities to government to ensure that government customers have full access to the technology of the intelligent edge and intelligent cloud era.

Expanded FedRAMP coverage for Azure, for broadest support in the industry

Microsoft is announcing the expansion of our FedRAMP Moderate coverage for our public cloud regions. A total of 50 services are now available, creating new opportunities across a broad array of federal agencies. Additionally, by the end of the calendar year Microsoft will enhance the impact level for our public cloud regions, and specifically for these 50 services, from FedRAMP Moderate to FedRAMP High. Microsoft continues to support more services at both FedRAMP Moderate and FedRAMP High impact levels than any other cloud provider. By taking the broadest regulatory compliance approach in the industry, we’re making commercial innovation more accessible and easier for government to adopt. This means Azure public regions in the continental United States will support FedRAMP High applications for U.S. Government agencies who are allowed by regulation to host their information in the public cloud this year. For those government agencies with citizenship requirements and more controlled access to certain types of data, Azure Government will continue to offer services at FedRAMP High, with the addition of the government cloud guarantees around heightened screening of personnel, management exclusively by U.S. citizens, and other important protections.

Azure Government Secret regions available in Q1 2019

Last October, we announced Azure Government Secret and the expansion of our mission-critical cloud with new regions enabled for Secret U.S. classified data or Defense Information Systems Agency (DISA) Impact Level 6 workloads. We are making major progress in delivering this cloud designed to meet the regulatory and compliance requirements of the Department of Defense and the Intelligence Community. Today, we are announcing these newest regions will be available by the end of the first quarter of 2019. In addition, to meet the growing demand and requirements of the U.S. Government, we are confirming our intent to deliver Azure Government services to meet the highest classification requirements, with capabilities for handling Top Secret U.S. classified data. 

Azure Data Box, Data Box Edge, and Data Box Heavy available for government customers

In late September, we announced the extension of the Data Box family of products to include new offerings designed to make it easier to bring data to Azure. Making data migration easy and secure is a high priority across industries, but it is particularly important for government agencies who may have mission needs in environments where connectivity and cloud access are limited or unavailable. Azure Data Box Edge, a new product to transport data in and out of Azure, is now available in public preview. Azure Data Box Edge enables you to pre-process data at the edge and also move data to Azure efficiently. Azure Data Box Edge uses advanced FPGA hardware natively integrated into the appliance to run machine learning inference algorithms at the edge efficiently. The size and portability allow you to run Azure Data Box Edge as close to users, apps and data as needed. Azure Data Box Heavy offers expanded capacity. The rugged, secure, tamper-resistant appliance contains 1 petabyte of storage for transporting customer data to an Azure datacenter. By bringing the full range of Data Box offerings to our government customers, we expect to enable critical mission scenarios requiring analysis of larger volumes of data, wherever that data is gathered.

Simplifying access to the cloud

To help government agencies take advantage of cloud services rapidly and with minimal friction, we are announcing Azure Reservations now available for Azure Government. Azure Reservations enable you to budget and forecast more easily with up-front payment for one and three-year terms. Enhanced deployment support with Azure Fast Track for Government gives you access to design and architecture planning, as well as configuration of services, all based out of offices in Washington, D.C.

From the state and local level, to every military branch and the largest federal cabinet agencies, our more than 10,000 U.S. Government customers are using Azure to achieve their unique and complex missions.

Joining forces to provide a trusted path to digital transformation with SAP

Microsoft and SAP are partnering to bring the power of SAP HANA to federal government and regulated industry customers. SAP NS2 Secure Data Cloud, now available on Microsoft Azure Government, allows customers to leverage the latest in cloud innovation in a secure, compliant infrastructure built to handle advanced workloads. Government agencies receive secure cloud managed services and product expertise from SAP NS2 Secure Data Cloud delivered through Azure Government. The partnership opens a secure, trusted way forward for federal agencies and regulated industries to move mission-critical applications to the cloud in a secure cloud infrastructure.

Accelerating innovation in Aerospace and Defense with L3

L3 Technologies has chosen Azure Government as its primary cloud platform for expanding data analytics capabilities, optimizing IT operations and delivering greater value to its customers. L3 is taking a strategic approach to the cloud, running Tier 1 workloads like SAP on Azure Government, for greater data-driven agility and speed in developing new technologies. Among the innovations enabled by this industry collaboration, L3 expects to bring advanced compute capabilities to the edge, distill actionable insights for increasing volumes of data and deliver innovative predictive maintenance solutions.

Expanding horizons for mission applications using data and AI, with Booz Allen Hamilton

Booz Allen Hamilton is partnering with Microsoft to change the paradigm for defense and intelligence customers. The joint Center of Excellence for Artificial Intelligence and Machine Learning for the Intelligence Community will provide tools, techniques and expertise to help solve mission-critical cybersecurity and intelligence challenges. Leveraging Azure Government’s innovation across hybrid, elastic compute and hyperscale, and Booz Allen Hamilton’s deep understanding of the uniquely complex intelligence environments, the partnership will support the development of new cloud solutions and expand the horizons for mission applications enabled by AI. 

Advancing mission capabilities from headquarters to the edge with GDIT

Microsoft provides the latest in technology platform and services to advance digital transformation – from GPU-accelerated, large-scale analytics to seamless collaboration tools. For General Dynamics Information Technology (GDIT), collaborating with Microsoft is the next step in its effort to modernize the workplace for the federal government. GDIT brings deep domain expertise across mission services, which when delivered on Microsoft Azure Government’s innovative and intelligent cloud, advances the customer’s capabilities all the way from headquarters to the tactical edge.

Intelligent edge and intelligent cloud innovation

Bringing commercial innovation to government remains one of our highest priorities. As we expand support for FedRAMP High in our public regions, even more government customers will be able to take advantage of new services from the cloud to the edge. The new edge capabilities we announced for enterprise in late September offer transformational opportunities for government as well.

  • Azure Digital Twins. This brand-new Azure service enables you to create a comprehensive digital model of any physical environment. This includes a model of people, places and things as well as the relationships and processes that bind them. And, this digital model isn’t just a static experience. Azure Digital Twins connects the digital model directly with the devices and sensors in the physical world to keep the digital model always up-to-date.
  • Azure IoT Edge extended offline. To address the ever-expanding use cases at the edge, we are adding the capability for IoT devices to operate disconnected from the internet for extended periods with the public preview of Azure IoT Edge extended offline capability.
  • Azure IoT Central. Azure IoT Central is a fully managed global IoT SaaS (software-as-a-service) solution that makes it easy to connect, monitor, and manage your IoT assets at scale. This means you can bring your connected products to market faster and provide new value add services to your connection solution.
  • Azure Sphere preview. In February 2018, we announced Azure Sphere, a new solution for creating highly-secured, internet-connected microcontroller (MCU) devices running on the edge. We have now entered the next phase with Azure Sphere dev kit and public preview of the Azure Sphere OS, Azure Sphere Security Service, and developer tools available.
  • Azure Stack. We began shipping our first Azure Stack systems a year ago and we have seen amazing solutions built by our customers to address disconnected and compliance use-cases. We have regularly released new services to run on Azure Stack. Our recent announcement is that Azure Event Hubs will also be coming to Azure Stack. With Azure Event Hubs on Azure Stack, customers can run cloud-style telemetry ingestion from websites, apps, and any streams of data.

The intelligent cloud and intelligent edge make it possible to provide consistent power to critical institutions like hospitals and schools, manage precious resources like energy, food and water, as well as helping government improve citizen services.

To learn more about Azure Government, read our blog.

To get started with Azure Government get your trial today!

Making HIPAA and HITRUST compliance easier

$
0
0

Many healthcare organizations are starting to adopt artificial intelligence (AI) systems to gain deeper insight into operations, patient care, diagnostic imaging, cost savings and so on. However, it can sometimes be daunting to even know where to get started. Many times, you need a clear lighted path to start your journey and embrace AI and machine learning (ML) capabilities rapidly.

image

One method is using an Azure Healthcare AI blueprint. It’s a shortcut to using Microsoft Azure at low cost and without deep knowledge of cloud computing. Blueprints include resources such as example code, test data, security, and compliance support. The largest advantage of using a blueprint is explicit advice and clear instructions on keeping your solution in compliance. We’re trying to eliminate the mystery, so you don’t have to research it yourself.

Three core areas where the blueprint can help with compliance are cloud provider and client responsibilities, security threats, and regulatory compliance. These three areas can get overlooked at the beginning of any technology project, yet they are important parts of creating healthcare systems. Applying formal discipline to these areas is made easier by using the blueprint to create an AI/ML experiment installation.

Helpful artifacts

The blueprint includes a script to create an AI/ML system, complete with a sample experiment. It also includes several documents to help system implementers keep their installations secure and compliant. These include worksheets, whitepapers, and spreadsheets that will help you ensure system compliance with healthcare regulations and certifications. The artifacts are easily re-purposed for other healthcare-based systems implemented on Azure.

Clarifying responsibilities

When creating any system on a cloud platform, there are two possible owners for any part of the solution, the cloud provider and the customer. It is important to know who is responsible for specific actions, services, and other operational details. Without a clear understanding of this delineation, customers or vendors may find themselves in a difficult situation if an issue arises, like service outages or security breaches. Therefore, it is in everyone’s interest to be clear about the responsibilities of design and operations.

Preventing misunderstandings and setting clear expectations of responsibilities is the goal of the Shared Responsibilities for Cloud Computing document. If you are trying to meet HITRUST certification standards, the HITRUST Customer Responsibilities Matrix spreadsheet identifies exactly what Microsoft and the customer are respectively responsible for managing.

Planning for security threats

Before creating complex systems, it is always advisable to perform a threat assessment. It is a best practice to create a threat assessment model. It helps you to visualize the system and find the points of vulnerability in the proposed architecture. This leads to conversations about where the system may be improved and hardened against attacks.

Microsoft provides a Threat Model Tool enabling architects to identify and mitigate potential security issues early, when they are relatively easy and cost-effective to resolve. The blueprint includes a model to be used with the tool. This comprehensive threat model provides insights into the potential risks of the architecture and how they may be mitigated.

A standard approach to security threat analysis involves identifying the surface area of your system, creating a model of that surface area, identifying potential threats, mitigating them and validating each mitigation, updating the threat model as you proceed. The following diagram highlights the major phases this process.

The figure below shows four stages: diagram, identify, mitigate, and validate.

image

Figure 1: Security cycle

This process flow provides an iterative and collaborative approach to threat analysis that ultimately helps create a more robust and secure system architecture.

Regulatory compliance

Healthcare systems need to meet regulatory compliance standards. At installation, the blueprint complies with HIPAA and HITRUST requirements. Whitepapers are included to help you understand how to continue to meet these requirements. Let’s examine the whitepapers and other provided artifacts to see how they might help.

HITRUST certification

The Common Security Framework (CSF) from HITRUST is a security standard for healthcare systems. The HITRUST compliance review whitepaper was published to aid in ensuring the healthcare blueprint meets CSF regulations. The whitepaper states:

“This whitepaper constitutes a review of the Blueprint architecture and functionality with respect to HITRUST-certified customer environments, examining how specifically it can satisfy HITRUST CSF security requirements.”

The whitepaper helps organizations plan their cloud implementation and understand how to meet HITRUST CSF compliance.

HIPAA compliance built into the blueprint

Compliance with HIPAA standards is fundamental to any healthcare organization. The blueprint was created with HIPAA in mind, and includes a whitepaper covering the topic in detail.

The HIPAA compliance review whitepaper is similar to the HITRUST whitepaper in its intent, to help organizations reach regulatory compliance. This document guides readers through the architecture, a shared responsibility model and deployment considerations for your solution. Protected healthcare information (PHI), a fundamental practice in well-designed system architectures, is also included in the whitepaper.

Recommended next steps

Use the supporting collateral below to prepare for your installation of the blueprint. The artifacts demonstrate how responsibilities, compliance, and security are established and how you can maintain them going forward.

Prepare for installation and ongoing maintenance with the following documents.

Collaboration

What other artifacts or considerations do you think would be helpful when putting healthcare systems into production? Your comments and recommendations are welcome below. I regularly post on technology in healthcare topics. Reach out and connect with me on LinkedIn or Twitter.


Driving identity security in banking using biometric identification

$
0
0

Combining biometric identification with artificial intelligence (AI) enables banks to take a new approach to verifying the digital identity of their prospects and customers. Biometrics is the process by which a person’s unique physical and personal traits are detected and recorded by an electronic device or system as a means of confirm identity. Biometric identifiers are unique to individuals, so they are more reliable in confirming identity than token and knowledge-based methods, such as identity cards and passwords. Biometric identifiers are often categorized as physiological identifiers that are related to a person’s physicality and include fingerprint recognition, hand geometry, odor/scent, iris scans, DNA, palmprint, and facial recognition.

image

But how do you ensure the effectiveness of identifying a customer when they are not physically in the presence of the bank employee? As the world of banking continues to go digital, our identity is becoming the key to accessing these services. Regulators require banks to verify that users are who they say they are, not bad actors like fraudsters or known money launderers. And verifying identities online without seeing the person face to face is one of the biggest challenges online and mobile services face today.

It’s problematic because identity documents were created to be verified in person. For example, you can shine an infrared light, you can feel the texture, or you can see if a photo has been stuck on. But with remote verification, you’re just dealing with an image. Without the physical artifact, you only have the human eye to rely on and this makes the task of verification much harder to do quickly, or accurately.

A complicating factor is the online user experience. Users expect a fast, frictionless process in all that they do. If they have to wait, or if the process is too fiddly, they’ll go elsewhere. In the banking sector, almost half of all people who start opening an online bank account drop off due to a bad user experience.

This is where identity assurance is needed for online and mobile onboarding processes. Identity assurance is the ability for the bank to determine, with a high level of certainty, that an electronically provided credential representing a person can be trusted to serve as a proxy for that individual and not someone else. Assurance levels (ALs) are levels of trust associated with a credential as measured by the supporting technology, processes, procedures, policies, and operational practices.

To facilitate the assurance part of the customer onboarding process, the bank must have an innovative identity verification technology (IVT) to ensure that customers provide information that is associated with the identity of a real person. Physical authenticity identity documents like passports, drivers permits, and other documents are used to compare against government or service databases. Fraudsters continually strive to debunk bank processes to perform account takeovers, system infiltrations, and unauthorized transactions. Fraud detection is tough! In many cases it’s easy to alter content, images, and verification digits of common identification resources.

To combat these methods, Microsoft has many partners leveraging our Azure Cognitive Services – Vision API Platform and Azure Machine Learning. One such partner Onfido, provides a multi-factor identity verification service that helps accurately verify online users, uses a cloud-based risk assessment platform that leverages artificial intelligence to automate and scale traditionally human-based fraud expertise to derive identity assurance. The Onfido service validates physical identity documents (document validation), verifies biometric inputs (biometric identity verification), and analyzes information an end user provides about themselves (ID validation). These techniques give companies a measurable assurance that the person is who they say they are.

Biometric identity verification

Onfido verifies identities through two factor verification:

  • Something you have, such as a government issued ID (driver’s license, passport or ID card).
    • Document validation answers this question. Is it authentic?
  • Something you are, such as your facial biometrics.
    • Feature and attribute validation answers these questions. Is there a match, and are they alive?
  • Biometric identity is quite robust, an identity document is the most legally binding proof of identity, while remaining user friendly. The face is the easiest biometric to capture using mobile devices.
    • In figure below, the first step is to verify that a document is genuine. Onfido has several different algorithms to test for different fraud techniques.
    • The second step is to match the photo on the document with the selfie taken by the customer. Rather than take a static selfie, customers can also choose a video option which asks the user to perform randomised movements such as turning their head and voice commands. This prevents using deceitful practices, impersonation, or spoofing attempts. 

image

Figure 2

Harnessing the power of Microsoft Azure's Cognitive Services, Onfido helps clients adhere to their due diligence requirements via an effective, compliant and robust digital verification experience.

Together, Microsoft and Onfido deliver an easy onboarding experience for users through a scalable and automated process. The solution addresses compliance needs and reduces fraud costs associated with identity theft. This helps our clients to build trust and integrity within their community.

Want to learn more about combating online and mobile fraud? First, read the Detecting Online and Mobile Fraud with AI use case providing actionable recommendations and solutions. This will provide information on solutions and guidance for you to get started, as well as information on many other partners that also provide identity verification solutions.

Make sure you also check out more Azure partners on the Azure Marketplace. Then, engage with the author on this topic by reaching out to me via LinkedIn and Twitter.

Improved governance experience with Ethereum Proof-of-Authority 1.2

$
0
0

Since launching Ethereum Proof-of-Authority we've received great feedback and have learned more about the ways our customers have leveraged this solution to roll out their Blockchain applications. We’ve rolled out a number of features that improve user-experience, configuration, and deployment reliability.

Governance DApp

This update comes with a new governance experience that makes consortium management more intuitive.

The Governance DApp is used for admin management and validator delegation. Each admin can select a set of validators which will propose blocks within PoA consensus. Admins also have the power to vote either to add or remove other admins. This form of on-chain governance helps decentralize the power of network operation and provides a familiar mechanism to maintaining a healthy network over time.

image

image

Please note, that this new UI will not be compatible with previously deployed networks of Proof-of-Authority (PoA).

WebSocket support

We’ve added WebSocket support to make it easy to subscribe to events directly or connect to external tools and applications such as BlockScout, an open-source block explorer. You can locate the WebSocket endpoint as part of the deployment output or post-deployment email.

image

BlockScout block explorer

We have also put together a new deployment guide with instructions on how to setup BlockScout with a new Proof-of-Authority deployment. BlockScout allows you to have a transparent view into the blockchain. You can easily search by the transaction, user address, contact address, and block number.

image

Just-In-Time (JIT) VM Access and Azure Backup Support

With production readiness in mind, we’ve enabled support for JIT VM access and Azure Backup Support. JIT VM Access allows you to reduce the potential for attacks by tightly controlling how members within your organization procure access to the VM. Azure Backup provides the ability to create scheduled backups of your VM hard drives. This presents an easy way to handle disaster recovery and prevent loss of critical on-chain data.

VM SKU selection

We’ve performed extensive performance testing on the network and have tuned the VM selection to provide clearer options and documentation, to make it more intuitive when selecting the right VM SKU. Explore the tool that we’ve used for performance benchmarking.

More configuration options

Before deployment, you can now specify the starting block gas limit and block reseal time. Block gas limit will influence the size of each block, while the block reseals time will control how frequently blocks are generated in the case of empty transactions. A high block reseals time will decrease the disk consumption rate but will affect block finality in networks that have sparse transaction throughput.

image

Improved reliability

The ARM template will perform additional validation after each deployment to ensure that the network has started up correctly. Additionally, Azure Monitor deployment reliability has been improved by deploying the Azure Monitor components in series.

Give us feedback

You can quickly share your feedback with the team by clicking on the smiley face icon in the Governance DApp. If you face any issues along the way, reach out on our support forum to get unblocked.

Introducing ‘Suggest a Feature’ in Developer Community

$
0
0

Customer feedback is a critical input to help us improve Visual Studio. Up until two years ago, the Visual Studio customer feedback system left room for improvement – customers could use the “send a smile” feature in Visual Studio, but this would result in only coarse-grained feedback such as “I like this” or “I don’t like this.” The feedback we got through this UI then went into a database our team accessed, but didn’t leave an easy way for customers to see the feedback that other customers were giving so they could say, “I have that problem too!” More than that, the back-end system that gathered feedback was separate from the engineering systems we use for tracking bugs and features, crash reports, hang reports, and telemetry. Without a unified system on the backend, identifying the most impactful issues could be an error-prone job.

In Visual Studio 2017, we introduced a new system for reporting issues. From within Visual Studio, users can Report a Problem; the issue is tracked in a public system at https://developercommunity.visualstudio.com, and the public issue is integrated directly into our engineering system. Thus, a bug on Developer Community is a bug in our Azure DevOps work item database, and votes from the community would give items additional weight.

Since introducing this system, we have received over 70,000 issues from more than 24,000 customers. We have resolved over 13,000 of them, and in over 5,000 instances of issues customers have unblocked themselves quickly using the solutions and workarounds contributed by Microsoft and the larger community of developers.

Until now, we’ve focused the system on issue tracking, but that’s left a gap in our understanding of what customers want from us and developers need: the ability to ask for features. Today, we’re announcing that the same system that we use for reporting issues will work for feature requests in one convenient place.  If you have an idea or a request for a feature, you can now use the new Suggest a Feature button (shown below) on Developer Community and make your suggestions.

You can also browse suggestions from other developers and Vote for your favorite features to help us understand the impact to the community.

If you are wondering how feature suggestions are considered for inclusion on our product roadmap, please see our suggestions guide that clarifies the states used to track progress and what each state represents in the journey.

As part of this work, we will transition from UserVoice as the primary means for our customers to request features. The reason we’re moving from UserVoice is very similar to the reason we moved away from the old “send a smile” system: we want customer feature requests to be directly integrated into our core engineering system so we have complete line of sight into the feedback customers are giving us.

Moving off UserVoice is a big job: It tracks 32,000 feature requests and more than 24,000 points of  feedback. In unifying our system under Developer Community, these massive number of requests will benefit from a strong systems to help us analyze and track these important requests.

Over the coming months, we’ll be migrating many existing UserVoice items from UserVoice, starting with a few hundred, although tems with relatively lower vote counts and items that are exceptionally old may not move over. Please see these frequently asked questions for more details on how UserVoice votes and comments are being handled.  I recognize that may cause some frustration and I apologize in advance.  I’d simply ask you to sign into Visual Studio or go on the web and submit the item again.

Thank you!

Suggest a Feature on Developer Community is aimed at providing a single convenient place for all your Visual Studio feedback, improve your engagement with product teams and have a greater impact on Visual Studio family of products.  We are looking forward to hearing your suggestions.  To reiterate in closing, please visit Developer Community and check out the new experience.  We also encourage you to learn more about suggestions to get the best out of it.  Thank you for the valuable feedback you provide in Visual Studio and participation in Developer Community!

John Montgomery, Director of Program Management for Visual Studio
@JohnMont

John is responsible for product design and customer success for all of Visual Studio, C++, C#, VB, JavaScript, and .NET. John has been at Microsoft for 17 years, working in developer technologies the whole time.

Python in Visual Studio Code – September 2018 Release

$
0
0

We are pleased to announce that the September 2018 release of the Python Extension for Visual Studio Code is now available. You can download the Python extension from the marketplace, or install it directly from the extension gallery in Visual Studio Code. You can learn more about Python support in Visual Studio Code in the documentation.

In this release we have closed a total of 45 issues, including:

  • Automatic activation of environments in the terminal.
  • Support for Python environments in split terminals.
  • Debugger support for the breakpoint() built-in.
  • Improved Go To Definition and find all references in the Python Language Server.
  • Reduced CPU and Memory consumption in the Python Language Server.

Also be sure to check out the September Update to Visual Studio Code, which includes a new custom title and menu bar on windows and the tutorial on how to Use Django in Visual Studio Code.

Automatic Activation of Environments in the Terminal

When you create a new terminal, the extension now automatically activates the selected Python pipenv, conda, pyenv, or virtual environment so that you can run python and pip/conda commands. In the below screenshot we have the 'env' virtual environment selected (as indicated in the status bar) and then created a new terminal using Terminal > New Terminal (Ctrl+Shift+`), and the virtual environment is activated automatically when the terminal is created:

You no longer need to use the Python: Create Terminal command to create an activated Python terminal (terminals with a Python environment activated).

It is also possible to use activated Python terminals in split terminal mode.  The extension uses the selected Python environment at the time the terminal is created, so if you want to have terminals with two different environments activated, you can change your environment and create a new terminal.

The screenshot below shows two different Python environments side-by-side terminals, resulting from clicking on the Python interpreter in the status bar and changing it to 'otherenv' and then clicking the split icon in the terminal:

The extension now shows the name of the environment in the status bar, making it easy to determine which environment is active if you have multiple environments in your workspace.

If you are not seeing your environment selected, you may need to first open a Python file to load the Python extension, or if the terminal was created before an environment was selected you may need to create a new terminal. Note that global interpreters do not get activated in terminals, so you'll need to run those using e.g. python3 (Linux/macOS) or py -3 (Windows).

Debugger Improvements

The debugger now supports the breakpoint() built-in in Python 3.7. If you are on Python 3.7 you can add a breakpoint() call, and the debugger will automatically stop on that line when it is hit (you must already be running under the debugger for this functionality; it will not launch the debugger automatically for you).

In the below example the debugger stops on a breakpoint() call inside of a Django view:

The extension now displays auto-complete for expressions typed into the debug console, after hitting the above breakpoint we can get auto-complete for the request object in the debug-console:

Improvements to Language Server Preview

We've made improvements to the preview of the Microsoft Python Language Server, first released in the July release of the Python extension. In this release we have fixed cases where runaway CPU and Memory consumption caused by storing too many symbols, particularly when using the outline view, and fixed various issues where Find All References and Go to Definition weren’t working as expected.

Rename symbol is also available with the language server without installing rope, to rename a symbol right->click and select Rename Symbol (F2).

As a reminder, to opt-in to the language server, change the python.jediEnabled setting to false in File > Preferences > User Settings. We are working towards making the language server the default in future releases.

Various Fixes and Enhancements

This release includes a number of other fixes an enhancements to the Python extension, the ptvsd 4.1.3 release of the debugger, and the Microsoft Python Language Server 2018.9.0 release. The full list is improvements is available in our changelog, some notable ones include:

  • Files on network drives can now be debugged. #786, #817
  • Support for code completion in the debug console window. (#1076)
  • Display notification when attempting to debug without selecting a python interpreter. (#2494)
  • Add support for activation of pyenv environments in the Terminal. (#1526)
  • Search for default known paths for conda environments on windows. (#2794)
  • Use full path to activate command in conda environments on windows when python.condaPath is set. (#2753)

Be sure to download the Python extension for VS Code now to try out the above improvements. If you run into any issues be sure to file an issue on the Python VS Code GitHub page.

R Consortium grant applications due October 31

$
0
0

Since 2015, the R Consortium has funded projects of benefit to, and proposed by, the R community. Twice a year, the R Consortium Infrastructure Steering Committee reviews grant proposals and makes awards based on merit and funds available. (Those funds come, in turn, from the annual dues paid by R Consortium members.) If you'd like to propose a project of your own, the deadline for submission for the Fall 2018 Call for Proposals is October 31.

RConsortium_Horizontal_Pantone

Not sure what kind of project might be approved? In general, the R Consortium grants fund projects in these categories:

  • Creation of general infrastructure supporting R, like the R-hub project which provides build services for R package developers on every platform supported by R.
  • Development of new R packages, like DBI for R which provides a general interface between R and databases. 
  • Support for working groups to meet, discuss and plan new initiatives in the R community, like Certification for R developers.
  • R community programs, like R Ladies.

A good way to get a sense of suitable projects is by browsing the list of previously-funded R Consortium projects, or by taking a look at the regular project reviews in the R Consortium blog, like this update posted earlier today.

And if you're not sure how to put a proposal together, Steph Locke has created a boilerplate R Consortium proposal as an R Markdown document you can clone from Github, along with a detailed set of instructions on how to complete it for your project idea.

So, what ideas do you have to make the R ecosystem better? A new package? A new working group? A new community initiative? If you need financial support to make that idea a reality, consider applying for an R Consortium project grant. You can find all the details at the link below.

R Consortium blog: Fall 2018: ISC Call for Proposals

Viewing all 10804 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>