Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Build a PWA with Azure ML built-in
Search
Michelle Sandford
January 15, 2022
Programming
180
0
Share
Build a PWA with Azure ML built-in
This is just the code editing of the template PWA scaffolded with VUE
Michelle Sandford
January 15, 2022
More Decks by Michelle Sandford
See All by Michelle Sandford
Keynote for Programmable.Tech 2024
msandfor
0
66
Amplifying Your Tech Career: Showcasing Your Work and Building Your Brand
msandfor
0
60
Build a Static Web App (PWA) with Custom Vision
msandfor
1
280
LiveOps_Best_Practices.pdf
msandfor
0
89
Techorama - Rise of the Tech Influencer
msandfor
0
170
Has your puppy joined the dark side?
msandfor
0
260
¿Tu cachorro se ha unido al lado oscuro?
msandfor
0
120
Well Connected
msandfor
0
93
Show Your Work - Using Data Science to Peek inside the Black Box
msandfor
0
93
Other Decks in Programming
See All in Programming
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
110
My daily life on Ruby
a_matsuda
3
190
実用!Hono RPC2026
yodaka
2
300
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
220
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
190
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
260
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
340
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
490
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
160
空間オーディオの活用
objectiveaudio
0
140
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
320
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
2.9k
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
200
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
540
Skip the Path - Find Your Career Trail
mkilby
1
120
How to make the Groovebox
asonas
2
2.2k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
190
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
280
ラッコキーワード サービス紹介資料
rakko
1
3.2M
Google's AI Overviews - The New Search
badams
0
1k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
The World Runs on Bad Software
bkeepers
PRO
72
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Transcript
Has Your Puppy Joined The Dark Side?
Side-by-side deck – How to Build a PWA with Azure
ML Built-in
Scaffold the App
Has Your Puppy Joined the Dark Side?
App.vue
Display an image and a button to switch it
Create a Placeholder for the data <script> export default {
name: "DetectImage", props: { msg: String }, data() { return { image: 0, numImages: 21 }; }, </script>
Return the index of an image <script> export default {
name: "DetectImage", props: { msg: String }, data() { return { image: 0, numImages: 21 }; }, computed: { getImgIndex() { return this.image.toString(); }, disable() { if (this.image == this.numImages) { return true; } else return false; } }, </script>
Capture user interaction computed: { getImgIndex() { return this.image.toString(); },
disable() { if (this.image == this.numImages) { return true; } else return false; } }, methods: { next() { this.image++; this.predictions = []; setTimeout(this.predict, 500); } } </script>
Bling bling baby <style scoped> h3 { margin: 40px 0
0; } .image { min-height: 500px; max-height: 500px; max-width: 100%; } .button { width: 200px; height: 50px; border-radius: 5px; background-color: blueviolet; color: white; font-size: 20pt; margin: 10px; } .button:disabled, .button[disabled] { border: 1px solid #999999; background-color: #cccccc; color: #666666; } </style>
json "dependencies": { "core-js": "^3.6.5", "register-service-worker": "^1.7.1", "customvision-tfjs": "^1.0.1", "vue":
"^3.0.0" }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-pwa": "~4.5.0", "@vue/cli-service": "~4.5.0", "@vue/compiler-sfc": "^3.0.0", "@vue/eslint-config-standard": "^5.1.2", "babel-eslint": "^10.1.0", "eslint": "^6.7.2", "eslint-plugin-import": "^2.20.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^4.0.0", "raw-loader": "^4.0.0", "webpack-cli": "^3.3.10" "eslint-plugin-vue": "^7.0.0" },
customvision-tfjs
Web.config.js
Data elements
Async mounted
Async predict
Async predict
Web.config
Has Your Puppy Joined The Dark Side?