salt software architecture (at butterfly)
TRANSCRIPT
![Page 1: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/1.jpg)
SALT Software Architecture
David Y. Kay
Nov 2, 2015
![Page 2: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/2.jpg)
Before we begin…
![Page 3: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/3.jpg)
“Presentation on a project that is representative of your abilities”
![Page 4: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/4.jpg)
![Page 5: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/5.jpg)
![Page 6: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/6.jpg)
Bio
Lived in China Mobile since 2008
Hated It Entrepreneurship
![Page 7: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/7.jpg)
Big Names
![Page 8: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/8.jpg)
Interesting Projects
Kenya
Shark Tank Defense
![Page 9: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/9.jpg)
Startups
![Page 10: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/10.jpg)
Other Works
![Page 11: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/11.jpg)
Community
![Page 12: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/12.jpg)
Healthcare Hackathons
• MIT Hacking Medicine 2015 - 2x first place
• Yale CBIT-Core 2015 - Best Design
• NASA Space Apps - Global Finalist, 2012 & 2015
• GHG Healthcare Outcomes 2014 - 3rd Place
![Page 13: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/13.jpg)
Present Day
![Page 14: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/14.jpg)
![Page 15: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/15.jpg)
S.A.L.T.
![Page 16: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/16.jpg)
![Page 17: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/17.jpg)
Hardware Device
![Page 18: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/18.jpg)
High-tech Sensor?
![Page 19: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/19.jpg)
![Page 20: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/20.jpg)
![Page 21: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/21.jpg)
![Page 22: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/22.jpg)
How to read it?
![Page 23: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/23.jpg)
![Page 24: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/24.jpg)
In other words…
![Page 25: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/25.jpg)
![Page 26: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/26.jpg)
System Overview
![Page 27: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/27.jpg)
Polyglot
![Page 28: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/28.jpg)
Recognition API
![Page 29: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/29.jpg)
![Page 30: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/30.jpg)
![Page 31: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/31.jpg)
Why Python?
• OpenCV Bindings
• Highly productive
• Easy debugging
• Small system
![Page 32: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/32.jpg)
Computer Vision
![Page 33: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/33.jpg)
![Page 34: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/34.jpg)
Device
• Rotate to a standard orientation
• Remove perspective from the image
![Page 35: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/35.jpg)
![Page 36: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/36.jpg)
![Page 37: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/37.jpg)
Creatinine
• Segment the color key
• Find the square with the most similar average color
![Page 38: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/38.jpg)
![Page 39: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/39.jpg)
Chloride
• Thermometer-like gauge
• Find the red part
• Find the yellow part
• Count the lines
![Page 40: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/40.jpg)
![Page 41: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/41.jpg)
Finding The Red
• Use green channel
• Threshold
• Erode
• Dilate
![Page 42: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/42.jpg)
![Page 43: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/43.jpg)
The Filtering Problem
• Too sensitive? Over-counting
• Too strict? Under-counting
![Page 44: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/44.jpg)
![Page 45: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/45.jpg)
Computer Vision - Notes
• Show line counting issue
• Show the calibration issue
• Show experimenting with color spaces
• Show filtering challenges
![Page 46: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/46.jpg)
Server Deployment
![Page 47: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/47.jpg)
Server Deployment
Incredible Free Tier
Helpful for wrangling OpenCV
![Page 48: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/48.jpg)
Android App
• Founders on Android
• Android is the harder platform of the two
• Keep the app small
![Page 49: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/49.jpg)
Code Sharing
![Page 50: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/50.jpg)
• Cross-platform app development
• Open-core
• Use Case
• Primarily an Android app, secondarily an iPhone app
![Page 51: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/51.jpg)
• Functional, safe, and expressive
• Minimal overhead compared to Java
• EXCELLENT tooling, via IDEA plugin
![Page 52: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/52.jpg)
![Page 53: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/53.jpg)
![Page 54: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/54.jpg)
Medical Calculations
![Page 55: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/55.jpg)
![Page 56: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/56.jpg)
(& future formulas)
![Page 57: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/57.jpg)
![Page 58: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/58.jpg)
![Page 59: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/59.jpg)
Why Rust?
• Very strict, strongly-typed, safety-oriented language
• Easy C-compatible FFI
• Cross-platform, server/client
• Modern tools
![Page 60: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/60.jpg)
![Page 61: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/61.jpg)
Admin Dashboard
• Review Results & Troubleshoot
• In future:
• Mark results valid/invalid
• Build a corpus over time
![Page 62: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/62.jpg)
![Page 63: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/63.jpg)
Why Clojure(script)?
• Incredible agility (REPL & Figwheel)
• Functional Language
• Not mission critical - dynamic types
![Page 64: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/64.jpg)
![Page 65: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/65.jpg)
![Page 66: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/66.jpg)
![Page 67: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/67.jpg)
Demo
![Page 68: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/68.jpg)
![Page 69: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/69.jpg)
Recap
![Page 70: SALT Software Architecture (at Butterfly)](https://reader034.vdocument.in/reader034/viewer/2022051707/58ec98ba1a28ab183b8b4581/html5/thumbnails/70.jpg)
Wrap
• Very lighting-dependent
• Would love to build a corpus and use ML
• Would love to spend more time with a computer vision expert