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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Michelle Sandford
January 15, 2022
Programming
190
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
72
Amplifying Your Tech Career: Showcasing Your Work and Building Your Brand
msandfor
0
62
Build a Static Web App (PWA) with Custom Vision
msandfor
1
280
LiveOps_Best_Practices.pdf
msandfor
0
93
Techorama - Rise of the Tech Influencer
msandfor
0
180
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
98
Show Your Work - Using Data Science to Peek inside the Black Box
msandfor
0
97
Other Decks in Programming
See All in Programming
CSC307 Lecture 17
javiergs
PRO
0
310
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
180
net-httpのHTTP/2対応について
naruse
0
430
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
550
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
310
TAKTでAI駆動開発の品質を設計する
j5ik2o
5
690
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
340
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
270
AIとRubyの静的型付け
ukin0k0
0
520
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.3k
TSKaigi 2026 TypeScriptバックエンドのオブザーバビリティ戦略 — Datadog × NestJSの実践
taiseiyamamotoan
2
270
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
Automating Front-end Workflow
addyosmani
1370
210k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
340
Information Architects: The Missing Link in Design Systems
soysaucechin
0
960
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
530
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.3k
Deep Space Network (abreviated)
tonyrice
0
160
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?