SlideShare a Scribd company logo
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Custom functions
 run offline if they don’t depend on the web
 run even when the workbook is unattended (not for preview or first availability)
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Math problems
=ISPRIME
Machine Learning
=FRAUDPROBABILITY
Public Web Data
=BITCOIN
Unattended
=CITYFROMPHONE
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Bullet Chart
A bar chart with extra
visual elements to
provide additional
context. Useful for
tracking goals
Word Cloud
Use font size and
location to indicate text
frequency in data
Gantt
A type of bar chart
which illustrates a
schedule with resources
Chord
Graphical method of
displaying the inter-
relationships between
data in a matrix
Sankey
Flow diagram where
the width of the series
is proportional to the
quantity of the flow
Dual KPI
Visualizes two
measures over time,
showing their trend on
a joint timeline
Infographic Designer
control the specific
appearance of charts
with control of shapes,
color, layout, and the
ability to bind shapes
and images to data
Calendar
Display data distributed
over time in a
compelling and clear
style
Tachometer
A flexible gauge visual
for communicating
data against reference
scale
Tornado
Comparing the relative
importance of variables
between two groups
Bars / Gauges Relationships / Flows Timelines / Trends Image / Text
Smarter data analysis with JavaScript and Azure ML functions in Excel
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE] [CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
1
10
100
1000
10000
100000
XLL (Baseline) VBA Web control
process
(original)
In-proc
ChakraCore
(production)
In-proc
ChakraCore
(prototype)
timefor1000Functions(ms)
Perf comparisons for synchronous custom functions
Long-running function (Find 1000th Prime)
Short-running function (Mortgage Payment)
Details
• Intel Xeon E5-1680 v4 @ 3.40GHz (8 cores)
• Measured total time for 1000 functions
• Median of 20 trials
• ChakraCore runtimes are preloaded
Test Scenarios
• Calculate the mortgage payment for a given
principal, period, and rate
• Find the 1000
th
prime number
Smarter data analysis with JavaScript and Azure ML functions in Excel
new for JS custom functions
Ignite 2017 Build 2018
Excel for Windows desktop only Excel for Windows desktop
Excel for Mac
Excel Online (Chrome, Firefox, Edge, IE, Safari)
Async functions in a separate process Async functions in a separate process
Fast sync functions directly in Excel’s process
Registration via API (low speed, high-memory) Declarative registration (fast, low-memory)
Smarter data analysis with JavaScript and Azure ML functions in Excel
Add-in manifest
XML
Function code
JavaScript
Web page for UI (optional)
HTML, JavaScript, CSS
+
+
Office add-in =
Function metadata
JavaScript Object
+ New
function ADDTO42(num) {
return num + 42;
}
{
name: “ADDTO42",
description: "Returns the sum of a number and 42",
result: {
type: “number",
dimensionality: “scalar",
},
parameters: [{
name: "num",
description: "The number be added to 42",
type: “number",
dimensionality: “scalar",
}],
options: {
sync: true,
}
};
New
<Hosts> <Host xsi:type="Workbook">
<AllFormFactors>
<ExtensionPoint xsi:type="CustomFunctions">
<Script> <SourceLocation resid="functionsJS" /> </Script>
<Page> <SourceLocation resid="functionsHTML"/> </Page>
<Metadata> <SourceLocation resid="fnMetadata"/> </Metadata>
<Namespace> <SourceLocation resid=“namespace"/> </Namespace>
</ExtensionPoint>
</AllFormFactors>
</Host> </Hosts>
<Resources>
<bt id="functionsJS" DefaultValue="https://example.com/cf.js" />*
<bt id="functionsHTML" DefaultValue="https://example.com/cf.html" />
<bt id="fnMetadata" DefaultValue="https://example.com/cf.json" />
<bt id=“namespace" DefaultValue=“CONTOSO" />
</Resources>
New
function invocation
return Promise
resolve Promise
HTTP request (if needed)
HTTP response
function GETWEIGHT(thermometerID){
return Excel.Promise(function(setResult, setError){
getWeightFromServer(scaleID, function(data){
setResult(data.weight);
});
});
}
function invocation
set result
streaming (eg. WebSocket sendmessage)
streaming (eg. Websocket onmessage)
streaming (eg. Websocket onmessage)
streaming (eg. Websocket onmessage)
set result
set result
function STREAMWEIGHT(scaleID, interval, caller){
function getNextWeight(){
getWeightFromServer(scaleID, function(data){
caller.setResult(data.weight);
});
setTimeout(getNextWeight, interval);
}
getNextWeight();
}
options: { stream: true }
function invocation
cancel
streaming (eg. WebSocket sendmessage)
streaming (eg. Websocket onmessage)
streaming (eg. Websocket onmessage)
unsubscribe
set result
set result
New
function INCREMENTVALUE(increment, caller){
var result = 0;
var timer = setInterval(function(){
result += increment;
caller.setResult(result);
}, 1000);
caller.onCanceled = function(){
clearInterval(timer);
};
}
options: { stream: true, cancelable: true }
var savedWeights{};
function STREAMWEIGHT(scaleID, interval, caller){
if(!savedWeights[scaleID]) refreshWeight(scaleID);
function getNextWeight(){
caller.setResult(savedWeights[scaleID]); // sends the saved value to Excel.
setTimeout(getNextWeight, interval); // wait before updating Excel again
}
getNextWeight ();
}
function refreshWeight (scaleID){
sendWebRequestExample(scaleID, function(data){
savedWeights[scaleID] = data.weight;
});
setTimeout(function(){
refreshWeight(scaleID);
}, 1000); // wait 1 second before updating the saved weight for scaleID
}
function
var 0 0 0 0
for 0
for 0
if
else if
return
parameter[0].dimensionality = "matrix";
function
var
for 1
return
result.dimensionality = "matrix";
Ignite 2017 Build 2018 Future
Excel for Windows
desktop only
Excel for Windows desktop
Excel for Mac
Excel Online (Chrome, Firefox,
Edge, IE, Safari)
All Excel platforms
Async functions in a
separate process
Async functions in a separate
process
Fast sync functions directly in
Excel’s process
Async functions in a separate and
optimized process
Fast sync functions directly in Excel’s
process
Functions can also run remotely
Sideloading for
developer deployment
Sideloading for developer
deployment
Sideloading
AppSource Deployment
Centralized Deployment
https://aka.ms/customfunctionsupdates
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Add-in manifest
XML
Function code
Python
Web page for UI (optional)
HTML, JavaScript, CSS
+
+
Office add-in =
Function metadata
JSON (Swagger)
+
Smarter data analysis with JavaScript and Azure ML functions in Excel
…
“input": {
“revenue history": {
“type": 3,
“swagger": {
“items": {
“properties": {
“date":{
“type": “string“
},
“revenue":{
“type": “number“,
“format": “double“
}
},
“type": “object“
},
…
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Smarter data analysis with JavaScript and Azure ML functions in Excel
Join the Office Developer Program
Learn more
Come hack with us - aka.ms/office365hackathon
Visit dev.office.com
See everything from Build - https://aka.ms/OfficeBuild2018
Follow us - @OfficeDev, #MicrosoftGraph, #SharePoint @MicrosoftTeams
Join community calls - Graph, AD, Outlook, Teams, Excel, and SharePoint
CODE TITLE DATE START
BRK2420 Streamline business processes with Flow and Office 365 5/7/2018 1:00PM
BRK3507 Create productive apps with Office 365 5/7/2018 2:45PM
BRK2407 Microsoft Graph: Connect to essential data every app needs 5/7/2018 2:45PM
BRK2419 Smarter data analysis with JavaScript and Azure ML functions in Excel 5/8/2018 10:30AM
BRK2403 Build the ultimate team hub with Microsoft Teams 5/8/2018 1:15PM
BRK2409
Leveraging SharePoint as a development platform for the modern
intranet
5/8/2018 4:45PM
BRK2418 New experience in Outlook 5/9/2018 2:45PM
BRK2402
Build intelligent analytics apps with Microsoft Graph and Azure
capabilities
5/9/2018 4:30PM
Smarter data analysis with JavaScript and Azure ML functions in Excel
Ad

More Related Content

Similar to Smarter data analysis with JavaScript and Azure ML functions in Excel (20)

Introduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in RIntroduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in R
Paul Richards
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
Amazon Web Services Korea
 
Atlas Php
Atlas PhpAtlas Php
Atlas Php
Gregory Renard
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
teach4uin
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
Nicolò Carandini
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
Ramon Ribeiro Rabello
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Codemotion
 
Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014
hezamu
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
Prateek Maheshwari
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Databricks
 
10 - MongoDB
10 - MongoDB10 - MongoDB
10 - MongoDB
Kangaroot
 
Deep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX PlatformDeep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX Platform
Juan Fabian
 
Guug11 mashing up-google_apps
Guug11 mashing up-google_appsGuug11 mashing up-google_apps
Guug11 mashing up-google_apps
Tony Hirst
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
Bruce Johnson
 
Spark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupSpark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark Meetup
Databricks
 
Knockoutjs UG meeting presentation
Knockoutjs UG meeting presentationKnockoutjs UG meeting presentation
Knockoutjs UG meeting presentation
Valdis Iljuconoks
 
Linguistic Abstraction for the Web
Linguistic Abstraction for the WebLinguistic Abstraction for the Web
Linguistic Abstraction for the Web
Eelco Visser
 
Microsoft Excel Community call 11-28-17
Microsoft Excel Community call 11-28-17Microsoft Excel Community call 11-28-17
Microsoft Excel Community call 11-28-17
Microsoft 365 Developer
 
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
Lucas Jellema
 
Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...
Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...
Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...
johnny_shredder
 
Introduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in RIntroduction to Shiny for building web apps in R
Introduction to Shiny for building web apps in R
Paul Richards
 
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
AWS Step Functions을 활용한 서버리스 앱 오케스트레이션
Amazon Web Services Korea
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
teach4uin
 
Declarative UIs with Jetpack Compose
Declarative UIs with Jetpack ComposeDeclarative UIs with Jetpack Compose
Declarative UIs with Jetpack Compose
Ramon Ribeiro Rabello
 
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Create cross-platform apps that interact with Microsoft Graph and Office 365 ...
Codemotion
 
Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014Functional UIs with Java 8 and Vaadin JavaOne2014
Functional UIs with Java 8 and Vaadin JavaOne2014
hezamu
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
Prateek Maheshwari
 
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Spark Summit EU 2015: Spark DataFrames: Simple and Fast Analysis of Structure...
Databricks
 
10 - MongoDB
10 - MongoDB10 - MongoDB
10 - MongoDB
Kangaroot
 
Deep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX PlatformDeep Dive on the Microsoft Dynamics AX Platform
Deep Dive on the Microsoft Dynamics AX Platform
Juan Fabian
 
Guug11 mashing up-google_apps
Guug11 mashing up-google_appsGuug11 mashing up-google_apps
Guug11 mashing up-google_apps
Tony Hirst
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
Bruce Johnson
 
Spark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark MeetupSpark SQL Deep Dive @ Melbourne Spark Meetup
Spark SQL Deep Dive @ Melbourne Spark Meetup
Databricks
 
Knockoutjs UG meeting presentation
Knockoutjs UG meeting presentationKnockoutjs UG meeting presentation
Knockoutjs UG meeting presentation
Valdis Iljuconoks
 
Linguistic Abstraction for the Web
Linguistic Abstraction for the WebLinguistic Abstraction for the Web
Linguistic Abstraction for the Web
Eelco Visser
 
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
That's Rich! Putting a smile on ADF Faces (ODTUG Kaleidoscope 2009)
Lucas Jellema
 
Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...
Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...
Sheetster + Alfresco: An Open Source Java Solution for Web Spreadsheet Editin...
johnny_shredder
 

More from Microsoft Tech Community (20)

100 ways to use Yammer
100 ways to use Yammer100 ways to use Yammer
100 ways to use Yammer
Microsoft Tech Community
 
10 Yammer Group Suggestions
10 Yammer Group Suggestions10 Yammer Group Suggestions
10 Yammer Group Suggestions
Microsoft Tech Community
 
Removing Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment SuccessRemoving Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment Success
Microsoft Tech Community
 
Building mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and XamarinBuilding mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and Xamarin
Microsoft Tech Community
 
Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...
Microsoft Tech Community
 
Interactive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive CardsInteractive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive Cards
Microsoft Tech Community
 
Unlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph APIUnlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph API
Microsoft Tech Community
 
Break through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable FunctionsBreak through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable Functions
Microsoft Tech Community
 
Multiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container InstancesMultiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container Instances
Microsoft Tech Community
 
Explore Azure Cosmos DB
Explore Azure Cosmos DBExplore Azure Cosmos DB
Explore Azure Cosmos DB
Microsoft Tech Community
 
Media Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and XamarinMedia Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and Xamarin
Microsoft Tech Community
 
DevOps for Data Science
DevOps for Data ScienceDevOps for Data Science
DevOps for Data Science
Microsoft Tech Community
 
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexityReal-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Microsoft Tech Community
 
Azure Functions and Microsoft Graph
Azure Functions and Microsoft GraphAzure Functions and Microsoft Graph
Azure Functions and Microsoft Graph
Microsoft Tech Community
 
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightIngestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Microsoft Tech Community
 
Getting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AIGetting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AI
Microsoft Tech Community
 
Using AML Python SDK
Using AML Python SDKUsing AML Python SDK
Using AML Python SDK
Microsoft Tech Community
 
Mobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing MapsMobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing Maps
Microsoft Tech Community
 
Cognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detectionCognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detection
Microsoft Tech Community
 
Speech Devices SDK
Speech Devices SDKSpeech Devices SDK
Speech Devices SDK
Microsoft Tech Community
 
Removing Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment SuccessRemoving Security Roadblocks to IoT Deployment Success
Removing Security Roadblocks to IoT Deployment Success
Microsoft Tech Community
 
Building mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and XamarinBuilding mobile apps with Visual Studio and Xamarin
Building mobile apps with Visual Studio and Xamarin
Microsoft Tech Community
 
Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...Best practices with Microsoft Graph: Making your applications more performant...
Best practices with Microsoft Graph: Making your applications more performant...
Microsoft Tech Community
 
Interactive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive CardsInteractive emails in Outlook with Adaptive Cards
Interactive emails in Outlook with Adaptive Cards
Microsoft Tech Community
 
Unlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph APIUnlocking security insights with Microsoft Graph API
Unlocking security insights with Microsoft Graph API
Microsoft Tech Community
 
Break through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable FunctionsBreak through the serverless barriers with Durable Functions
Break through the serverless barriers with Durable Functions
Microsoft Tech Community
 
Multiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container InstancesMultiplayer Server Scaling with Azure Container Instances
Multiplayer Server Scaling with Azure Container Instances
Microsoft Tech Community
 
Media Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and XamarinMedia Streaming Apps with Azure and Xamarin
Media Streaming Apps with Azure and Xamarin
Microsoft Tech Community
 
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexityReal-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Real-World Solutions with PowerApps: Tips & tricks to manage your app complexity
Microsoft Tech Community
 
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightIngestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Microsoft Tech Community
 
Getting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AIGetting Started with Visual Studio Tools for AI
Getting Started with Visual Studio Tools for AI
Microsoft Tech Community
 
Mobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing MapsMobile Workforce Location Tracking with Bing Maps
Mobile Workforce Location Tracking with Bing Maps
Microsoft Tech Community
 
Cognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detectionCognitive Services Labs in action Anomaly detection
Cognitive Services Labs in action Anomaly detection
Microsoft Tech Community
 
Ad

Recently uploaded (20)

Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Ad

Smarter data analysis with JavaScript and Azure ML functions in Excel

  • 5. Custom functions  run offline if they don’t depend on the web  run even when the workbook is unattended (not for preview or first availability)
  • 8. Math problems =ISPRIME Machine Learning =FRAUDPROBABILITY Public Web Data =BITCOIN Unattended =CITYFROMPHONE
  • 13. Bullet Chart A bar chart with extra visual elements to provide additional context. Useful for tracking goals Word Cloud Use font size and location to indicate text frequency in data Gantt A type of bar chart which illustrates a schedule with resources Chord Graphical method of displaying the inter- relationships between data in a matrix Sankey Flow diagram where the width of the series is proportional to the quantity of the flow Dual KPI Visualizes two measures over time, showing their trend on a joint timeline Infographic Designer control the specific appearance of charts with control of shapes, color, layout, and the ability to bind shapes and images to data Calendar Display data distributed over time in a compelling and clear style Tachometer A flexible gauge visual for communicating data against reference scale Tornado Comparing the relative importance of variables between two groups Bars / Gauges Relationships / Flows Timelines / Trends Image / Text
  • 15. [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] [CELLRANGE] 1 10 100 1000 10000 100000 XLL (Baseline) VBA Web control process (original) In-proc ChakraCore (production) In-proc ChakraCore (prototype) timefor1000Functions(ms) Perf comparisons for synchronous custom functions Long-running function (Find 1000th Prime) Short-running function (Mortgage Payment) Details • Intel Xeon E5-1680 v4 @ 3.40GHz (8 cores) • Measured total time for 1000 functions • Median of 20 trials • ChakraCore runtimes are preloaded Test Scenarios • Calculate the mortgage payment for a given principal, period, and rate • Find the 1000 th prime number
  • 17. new for JS custom functions Ignite 2017 Build 2018 Excel for Windows desktop only Excel for Windows desktop Excel for Mac Excel Online (Chrome, Firefox, Edge, IE, Safari) Async functions in a separate process Async functions in a separate process Fast sync functions directly in Excel’s process Registration via API (low speed, high-memory) Declarative registration (fast, low-memory)
  • 19. Add-in manifest XML Function code JavaScript Web page for UI (optional) HTML, JavaScript, CSS + + Office add-in = Function metadata JavaScript Object + New
  • 21. { name: “ADDTO42", description: "Returns the sum of a number and 42", result: { type: “number", dimensionality: “scalar", }, parameters: [{ name: "num", description: "The number be added to 42", type: “number", dimensionality: “scalar", }], options: { sync: true, } }; New
  • 22. <Hosts> <Host xsi:type="Workbook"> <AllFormFactors> <ExtensionPoint xsi:type="CustomFunctions"> <Script> <SourceLocation resid="functionsJS" /> </Script> <Page> <SourceLocation resid="functionsHTML"/> </Page> <Metadata> <SourceLocation resid="fnMetadata"/> </Metadata> <Namespace> <SourceLocation resid=“namespace"/> </Namespace> </ExtensionPoint> </AllFormFactors> </Host> </Hosts> <Resources> <bt id="functionsJS" DefaultValue="https://example.com/cf.js" />* <bt id="functionsHTML" DefaultValue="https://example.com/cf.html" /> <bt id="fnMetadata" DefaultValue="https://example.com/cf.json" /> <bt id=“namespace" DefaultValue=“CONTOSO" /> </Resources> New
  • 23. function invocation return Promise resolve Promise HTTP request (if needed) HTTP response
  • 24. function GETWEIGHT(thermometerID){ return Excel.Promise(function(setResult, setError){ getWeightFromServer(scaleID, function(data){ setResult(data.weight); }); }); }
  • 25. function invocation set result streaming (eg. WebSocket sendmessage) streaming (eg. Websocket onmessage) streaming (eg. Websocket onmessage) streaming (eg. Websocket onmessage) set result set result
  • 26. function STREAMWEIGHT(scaleID, interval, caller){ function getNextWeight(){ getWeightFromServer(scaleID, function(data){ caller.setResult(data.weight); }); setTimeout(getNextWeight, interval); } getNextWeight(); } options: { stream: true }
  • 27. function invocation cancel streaming (eg. WebSocket sendmessage) streaming (eg. Websocket onmessage) streaming (eg. Websocket onmessage) unsubscribe set result set result New
  • 28. function INCREMENTVALUE(increment, caller){ var result = 0; var timer = setInterval(function(){ result += increment; caller.setResult(result); }, 1000); caller.onCanceled = function(){ clearInterval(timer); }; } options: { stream: true, cancelable: true }
  • 29. var savedWeights{}; function STREAMWEIGHT(scaleID, interval, caller){ if(!savedWeights[scaleID]) refreshWeight(scaleID); function getNextWeight(){ caller.setResult(savedWeights[scaleID]); // sends the saved value to Excel. setTimeout(getNextWeight, interval); // wait before updating Excel again } getNextWeight (); } function refreshWeight (scaleID){ sendWebRequestExample(scaleID, function(data){ savedWeights[scaleID] = data.weight; }); setTimeout(function(){ refreshWeight(scaleID); }, 1000); // wait 1 second before updating the saved weight for scaleID }
  • 30. function var 0 0 0 0 for 0 for 0 if else if return parameter[0].dimensionality = "matrix";
  • 32. Ignite 2017 Build 2018 Future Excel for Windows desktop only Excel for Windows desktop Excel for Mac Excel Online (Chrome, Firefox, Edge, IE, Safari) All Excel platforms Async functions in a separate process Async functions in a separate process Fast sync functions directly in Excel’s process Async functions in a separate and optimized process Fast sync functions directly in Excel’s process Functions can also run remotely Sideloading for developer deployment Sideloading for developer deployment Sideloading AppSource Deployment Centralized Deployment
  • 39. Add-in manifest XML Function code Python Web page for UI (optional) HTML, JavaScript, CSS + + Office add-in = Function metadata JSON (Swagger) +
  • 41. … “input": { “revenue history": { “type": 3, “swagger": { “items": { “properties": { “date":{ “type": “string“ }, “revenue":{ “type": “number“, “format": “double“ } }, “type": “object“ }, …
  • 46. Join the Office Developer Program Learn more Come hack with us - aka.ms/office365hackathon Visit dev.office.com See everything from Build - https://aka.ms/OfficeBuild2018 Follow us - @OfficeDev, #MicrosoftGraph, #SharePoint @MicrosoftTeams Join community calls - Graph, AD, Outlook, Teams, Excel, and SharePoint
  • 47. CODE TITLE DATE START BRK2420 Streamline business processes with Flow and Office 365 5/7/2018 1:00PM BRK3507 Create productive apps with Office 365 5/7/2018 2:45PM BRK2407 Microsoft Graph: Connect to essential data every app needs 5/7/2018 2:45PM BRK2419 Smarter data analysis with JavaScript and Azure ML functions in Excel 5/8/2018 10:30AM BRK2403 Build the ultimate team hub with Microsoft Teams 5/8/2018 1:15PM BRK2409 Leveraging SharePoint as a development platform for the modern intranet 5/8/2018 4:45PM BRK2418 New experience in Outlook 5/9/2018 2:45PM BRK2402 Build intelligent analytics apps with Microsoft Graph and Azure capabilities 5/9/2018 4:30PM

Editor's Notes