SlideShare a Scribd company logo
Cloud Spin
Bret McGowen
Google
@bretmcg
Learning about the cloud by dodging bullets, Matrix-style
Bret McGowen
Developer Advocate, Google
Google Cloud Platform
New York, NY
@bretmcg
Howdy DevFest MN!
I'm a fake startup CEO
Fake startup, real problems
3 weeks to minimum
viable product
Cloud Spin - building a photo booth with the Google Cloud Platform
Cloud Spin - building a photo booth with the Google Cloud Platform
Cloud Spin - building a photo booth with the Google Cloud Platform
@bretmcg @googlecloud @googlecloudspin
The user steps into the
center of the Cloud Spin
area
The user jumps, and we
take a photo from all the
phones
It's pretty tricky
● Taking a photo at the same EXACT SAME INSTANT
● Coordinating the phone cameras
● File storage
● Scaling
● Image processing
● Controlling cost
● Create multiple versions
● Debugging & Logging
Problems to solve
Taking the photos:
how would you do it?
@bretmcg @googlecloud @googlecloudspin
It isn’t that straightforward
● Need to coordinate 19 phones to take photos
of the same moment!
● Android - random delay when taking a photo!
Hence impossible to take photos of the same moment
@bretmcg @googlecloud @googlecloudspin
What we ended up with?
● Record a video
● 30 fps is like burst mode
@bretmcg @googlecloud @googlecloudspin
More problems
● How do we identify the frames?
● Mark the the frame some how...
● Many Experiments: flash, timestamp
Use an audio marker!
@bretmcg @googlecloud @googlecloudspin
Mic-In Into the Phone
MIC
OMTP
MIC
GND
AHJ / CTIA
@bretmcg @googlecloud @googlecloudspin
Audio can be tricky
@bretmcg @googlecloud @googlecloudspin
@bretmcg @googlecloud @googlecloudspin
Finally - Off the shelf components
@bretmcg @googlecloud @googlecloudspin
Record the audio cue in the video
How do we coordinate 19 phone
cameras?
No, seriously, how do we
coordinate 19 phone cameras?
@bretmcg @googlecloud @googlecloudspin
What do we need to coordinate?
● Camera app status & error message
● Exposure ISO & shutter speed
● Internal versus external microphone
● Timestamp to start the recording
● And more...
@bretmcg @googlecloud @googlecloudspin
Let's use Firebase!
● Can power our app's backend
● Stores our data and syncs it in real-time
● JSON NoSQL database with real-time sync
● Updates across devices within milliseconds
// Set this phone's status on Firebase at /cameras/{cameranumber}
Firebase firebaseRef = new Firebase(FIREBASE_BASE_URL);
Firebase cameraStatusRef = firebaseRef.child("cameras").child
(cameraNumber);
CameraStatus cameraStatus = new CameraStatus();
cameraStatus.appVersion = BuildConfig.VERSION_NAME;
cameraStatus.externalMic = mExternalMic;
...
cameraStatus.status = status;
cameraStatusRef.setValue(mCameraStatus);
Android: updating camera status with Firebase
@bretmcg @googlecloud @googlecloudspin
@bretmcg @googlecloud @googlecloudspin
Recording video with camera2 API
● camera2 API
● I learned a lot of this API from the android-
Camera2Video GitHub project
Scaling with Google Cloud Platform
Cloud Spin - building a photo booth with the Google Cloud Platform
Stitching Q
Extraction Q
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Object Change
Notifications
Output
Bucket
Coordinator
Input
Bucket
Notification
Processor
Extractor
Stitcher
Output
Bucket
@bretmcg @googlecloud @googlecloudspin
Video Uploads and notification processing
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Notification
Output
Bucket
Coordinator
Input
Bucket
Notification
Processor
Cloud Datastore Cloud SQL Cloud Storage
4.5 trillion! Managed MySQL Cat Videos?Cat Videos?
Jumping
People
// Credentials for Google Cloud Platform.
Credential credential = ...
Storage storage = new Storage.Builder(httpTransport, jacksonFactory, credential)
.setApplicationName("...@developer.gserviceaccount.com")
.build();
StorageObject storageObject = new StorageObject();
storageObject.setBucket(bucket);
InputStream fileUploadStream = new FileInputStream(videoFile);
try {
InputStreamContent content = new InputStreamContent("video/mp4", fileUploadStream);
Storage.Objects.Insert insert = storage.objects().insert(bucket, null, content);
insert.setName(cloudStoragePath);
insert.execute();
} finally {
fileUploadStream.close();
}
@bretmcg @googlecloud @googlecloudspin
Object Change Notifications
Cloud
Storage Bucket
[myapp-input-bucket]
App Engine
Object Change Notification
Client
Add/update/remove object
@bretmcg @googlecloud @googlecloudspin
Edge Caching
@bretmcg @googlecloud @googlecloudspin
Google App Engine
Choice of Runtimes
- Java, Python, Go
- PHP
- Custom, NodeJS!
Easy to develop
- Build and test locally
- Focus on App Code
- Versioning
- Traffic Splitting
Trivial to manage
- Fully managed
- No patches/updates
- 24x7 operation by
Google SREs
- Autoscale
@bretmcg @googlecloud @googlecloudspin
@bretmcg @googlecloud @googlecloudspin
Building Pipelines
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Object Change
Notifications
Output
Bucket
Coordinator
Subscriber Subscriber
Pub/Sub Pub/Sub
Push Subscription Pull Subscription
msg ack msg ack
RPC Send
RPC Return
@bretmcg @googlecloud @googlecloudspin
Cloud Pub/Sub (Beta)
Reliable and
real-time
messaging
Designed for
Fast Data
Provides reliable, real-time,
many-to-many, asynchronous
messaging between
applications
Send data into processing
pipelines and out to other
apps, devices and Google Cloud
Services
Global by design and highly
available. ‘fire-and-forget’
with minimal latency.
Redundant forwarding paths
Designed for
Google scale
@bretmcg @googlecloud @googlecloudspin
Pub/Sub
Stitcher
Frames
Topic
Extractor
Frame Ready Message
Publishers and Subscribers
Original Stitcher
Subscription
@bretmcg @googlecloud @googlecloudspin
Pub/Sub
Original
Stitcher
Frames
Topic
Extractor
Frame Ready Message
Publishers and Subscribers
Original Stitcher
Subscription
Variation A
Stitcher
Variation A
Subscription
Variation B
Stitcher
Variation B
Subscription
@bretmcg @googlecloud @googlecloudspin
Variations - How Pub/Sub Can Help
Meanwhile, in our secret startup lab
Our first prototype was cheap and
scrappy
Like, REALLY scrappy.
We used anything we
could find.
Like, REAL
scrappy(selfie sticks!)
Like, REAL
scrappy(selfie sticks!)
Like, REAL
scrappy(selfie sticks!)
Extracting and stitching
@bretmcg @googlecloud @googlecloudspin
Pipeline Processing
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Object Change
Notifications
Output
Bucket
Coordinator
Extractor
Stitcher
Cloud Spin - building a photo booth with the Google Cloud Platform
Cloud Spin - building a photo booth with the Google Cloud Platform
from moviepy.video.io.VideoFileClip import VideoFileClip
import numpy
STD_DEV_SCALAR = 4
def calc_peak_time(clip):
audio_arr = clip.audio.to_soundarray(buffersize=1000)
frames = clip.fps * len(audio_arr) / clip.audio.fps
buckets = numpy.array_split(audio_arr, frames)
mean_arr = [numpy.sqrt(numpy.mean(bucket**2)) for bucket in buckets]
peaks = numpy.where(mean_arr > MEAN_SCALAR * numpy.mean(mean_arr))
if len(peaks) > 0 and len(peaks[0]) > 0:
return peaks[0][0] / float(clip.fps)
else:
return 0.0
@bretmcg @googlecloud @googlecloudspin
Frames extracted
@bretmcg @googlecloud @googlecloudspin
Google Compute Engine
Compute Resources
- US, Europe and
Asia zones
- Fast SDN-Based
virtual networking
Consistently Fast
- Fast VM Provisioning
- Consistent Performance
Cost Effective
- Sub-Hour Billing
- No IOPS charges for
Block Storage
- VMs not required for
Load balancing
@bretmcg @googlecloud @googlecloudspin
Compute Engine Autoscaler
Managed
Instance
Group
create/
destroy VMs
Instance Group
Manager
actuator
monitor
Autoscaler
Cloud Monitoring
utilisation
VMVMVM
Pub/Sub Topic
@bretmcg @googlecloud @googlecloudspin
Next step: Containerization
Extractor
Workers
create/
destroy VMs
Instance Group
Manager
actuator
monitor
Autoscaler
Cloud Monitoring
utilisation
VMVM
Container
VM
Extract Topic
@bretmcg @googlecloud @googlecloudspin
Stitching the frames together
Extract Q
Temp
Store
Extractor
Stitch QExtractorExtractors
READY
Stitcher
Firebase
All READY?
Retrieve Images
Visualizer
Cloud Spin - building a photo booth with the Google Cloud Platform
● Taking a photo at the same EXACT SAME INSTANT - video with audio beep
● Coordinating the phone cameras - Firebase
● File storage - Google Cloud Storage
● Scaling - Cloud Pub/Sub, Compute Engine Instance Groups
● Image processing - Compute Engine & Containers
● Controlling cost - Scaling instance group sizes
● Create multiple versions - Cloud Pub/Sub topics
● Debugging & Logging - Google Cloud Logging
Problems to solve
DEMO VIDEO TIME
@bretmcg @googlecloud @googlecloudspin
Productivity!
We built a lot in just 3 weeks
Focus 100% of time coding
@bretmcg @googlecloud @googlecloudspin
• Talk with us!
• Firebase
• Containers
• Kubernetes
• Big data
• BigQuery
Want to know more?
Bret McGowen
@bretmcg
@googlecloudspinTHANK YOU

More Related Content

PDF
Supercharge your app with Cloud Functions for Firebase
Bret McGowen - NYC Google Developer Advocate
 
PDF
Where should I run my code? Serverless, Containers, Virtual Machines and more
Bret McGowen - NYC Google Developer Advocate
 
PDF
Deep dive into serverless on Google Cloud
Bret McGowen - NYC Google Developer Advocate
 
PDF
Serverless with Google Cloud
Bret McGowen - NYC Google Developer Advocate
 
PDF
Firebase Code Lab - 2015 GDG Buffalo DevFest
Bret McGowen - NYC Google Developer Advocate
 
PDF
Building Translate on Glass
Trish Whetzel
 
PDF
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Bret McGowen - NYC Google Developer Advocate
 
PDF
Building your actions for Google Assistant
Ahmed Abu Eldahab
 
Supercharge your app with Cloud Functions for Firebase
Bret McGowen - NYC Google Developer Advocate
 
Where should I run my code? Serverless, Containers, Virtual Machines and more
Bret McGowen - NYC Google Developer Advocate
 
Deep dive into serverless on Google Cloud
Bret McGowen - NYC Google Developer Advocate
 
Serverless with Google Cloud
Bret McGowen - NYC Google Developer Advocate
 
Firebase Code Lab - 2015 GDG Buffalo DevFest
Bret McGowen - NYC Google Developer Advocate
 
Building Translate on Glass
Trish Whetzel
 
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Bret McGowen - NYC Google Developer Advocate
 
Building your actions for Google Assistant
Ahmed Abu Eldahab
 

What's hot (20)

PDF
Building Kick Ass Video Games for the Cloud
Chris Schalk
 
PDF
Importance of GCP: 30 Days of GCP
AnshTyagi27
 
PPTX
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 
PDF
JCConf 2016 - Google Dataflow 小試
Simon Su
 
PDF
Fluent 2018: Measuring What Matters
Akamai Developers & Admins
 
PDF
PRPL Pattern with Webpack and React
Grgur Grisogono
 
PPTX
The PRPL Pattern
Red Pill Now
 
PDF
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat
 
PDF
Microservices in Golang
Mo'ath Qasim
 
PDF
IThome DevOps Summit - IoT、docker與DevOps
Simon Su
 
PDF
How to build Kick Ass Games in the Cloud
Chris Schalk
 
PDF
Google Cloud Dataflow meets TensorFlow
Hayato Yoshikawa
 
PDF
GCPUG.TW - GCP學習資源分享
Simon Su
 
PDF
Google App Engine Overview and Update
Chris Schalk
 
PDF
JCConf 2016 - Dataflow Workshop Labs
Simon Su
 
PDF
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Raj Lal
 
PDF
Building Integrated Applications on Google's Cloud Technologies
Chris Schalk
 
PDF
Gulp - the streaming build system
Sergey Romaneko
 
PDF
M is for modernization
Red Pill Now
 
Building Kick Ass Video Games for the Cloud
Chris Schalk
 
Importance of GCP: 30 Days of GCP
AnshTyagi27
 
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 
JCConf 2016 - Google Dataflow 小試
Simon Su
 
Fluent 2018: Measuring What Matters
Akamai Developers & Admins
 
PRPL Pattern with Webpack and React
Grgur Grisogono
 
The PRPL Pattern
Red Pill Now
 
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat
 
Microservices in Golang
Mo'ath Qasim
 
IThome DevOps Summit - IoT、docker與DevOps
Simon Su
 
How to build Kick Ass Games in the Cloud
Chris Schalk
 
Google Cloud Dataflow meets TensorFlow
Hayato Yoshikawa
 
GCPUG.TW - GCP學習資源分享
Simon Su
 
Google App Engine Overview and Update
Chris Schalk
 
JCConf 2016 - Dataflow Workshop Labs
Simon Su
 
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Raj Lal
 
Building Integrated Applications on Google's Cloud Technologies
Chris Schalk
 
Gulp - the streaming build system
Sergey Romaneko
 
M is for modernization
Red Pill Now
 
Ad

Viewers also liked (20)

PPTX
Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Giuseppe Procaccianti
 
PDF
Solving enterprise challenges through scale out storage & big compute final
Avere Systems
 
PDF
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltStack
 
PPTX
Log collect with google fluentd
Zaki_XL
 
PDF
How to Puppetize Google Cloud Platform - PuppetConf 2014
Puppet
 
PPTX
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
David Geens
 
PDF
Plan your Log Platform at Google Cloud Platform
Simon Su
 
PPTX
Auto scaling websites in the cloud
David Veksler
 
PDF
Introduction to Google Compute Engine
Colin Su
 
PPTX
A Modern Finance Case Study – Cloud or On-Premise
Prophix Software
 
PPTX
A Complete Guide to the Google Cloud Platform
BitMin Infosystems Pvt. Ltd
 
PPT
Deploying SaaS Application on the Cloud - Case Study
Nati Shalom
 
PPTX
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
NGINX, Inc.
 
PDF
Outsourcing Services: What is right for your organisation
Vincent Kwon
 
PDF
Continuous Integration & Continuous Delivery with GCP
KAI CHU CHUNG
 
PPTX
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Precisely
 
PDF
Cloud Presentation and OpenStack case studies -- Harvard University
Barton George
 
PDF
Google Cloud Platform and Kubernetes
Kasper Nissen
 
PDF
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 
PDF
Google Cloud Platform : The API model
LaFrenchMobile
 
Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Giuseppe Procaccianti
 
Solving enterprise challenges through scale out storage & big compute final
Avere Systems
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltStack
 
Log collect with google fluentd
Zaki_XL
 
How to Puppetize Google Cloud Platform - PuppetConf 2014
Puppet
 
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
David Geens
 
Plan your Log Platform at Google Cloud Platform
Simon Su
 
Auto scaling websites in the cloud
David Veksler
 
Introduction to Google Compute Engine
Colin Su
 
A Modern Finance Case Study – Cloud or On-Premise
Prophix Software
 
A Complete Guide to the Google Cloud Platform
BitMin Infosystems Pvt. Ltd
 
Deploying SaaS Application on the Cloud - Case Study
Nati Shalom
 
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
NGINX, Inc.
 
Outsourcing Services: What is right for your organisation
Vincent Kwon
 
Continuous Integration & Continuous Delivery with GCP
KAI CHU CHUNG
 
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Precisely
 
Cloud Presentation and OpenStack case studies -- Harvard University
Barton George
 
Google Cloud Platform and Kubernetes
Kasper Nissen
 
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 
Google Cloud Platform : The API model
LaFrenchMobile
 
Ad

Similar to Cloud Spin - building a photo booth with the Google Cloud Platform (20)

PDF
Mopcon2017 - AppDevKit x CameraKit
anistar sung
 
PPTX
COSCUP 2017 FACE OFF
PRADA Hsiung
 
PPTX
Philipp Nagele (Wikitude): What's Next with Wikitude
AugmentedWorldExpo
 
PPTX
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Unity Technologies
 
PDF
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Codemotion
 
PPTX
Hacking for salone: drone races
Emanuele Di Saverio
 
PDF
DIY: Computer Vision with GWT.
JooinK
 
PDF
DIY- computer vision with GWT
Francesca Tosi
 
KEY
FLAR Workflow
Jesse Freeman
 
PDF
Digital Fabrication Studio 0.3 3D Scanning
Massimo Menichinelli
 
PPTX
Google Cloud: Next'19 Extended Hanoi
GCPUserGroupVietnam
 
PDF
Unit testing on Android (Droidcon Dubai 2015)
Danny Preussler
 
PDF
Building a Native Camera Access Library - Part I - Transcript.pdf
ShaiAlmog1
 
PPT
Naive application development
Shaka Huang
 
PDF
06.Programming Media on Windows Phone
Nguyen Tuan
 
PDF
Ignacy Kowalczyk
CodeFest
 
PDF
20 easy Raspberry Pi projects
IT Books
 
PDF
A WebGL scene in 30 mins
Jens Arps
 
PDF
SpotCam HD Wi-Fi Video Monitoring camera review
spotcam
 
PPTX
Protecting data with CSI Volume Snapshots on Kubernetes
DoKC
 
Mopcon2017 - AppDevKit x CameraKit
anistar sung
 
COSCUP 2017 FACE OFF
PRADA Hsiung
 
Philipp Nagele (Wikitude): What's Next with Wikitude
AugmentedWorldExpo
 
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Unity Technologies
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Codemotion
 
Hacking for salone: drone races
Emanuele Di Saverio
 
DIY: Computer Vision with GWT.
JooinK
 
DIY- computer vision with GWT
Francesca Tosi
 
FLAR Workflow
Jesse Freeman
 
Digital Fabrication Studio 0.3 3D Scanning
Massimo Menichinelli
 
Google Cloud: Next'19 Extended Hanoi
GCPUserGroupVietnam
 
Unit testing on Android (Droidcon Dubai 2015)
Danny Preussler
 
Building a Native Camera Access Library - Part I - Transcript.pdf
ShaiAlmog1
 
Naive application development
Shaka Huang
 
06.Programming Media on Windows Phone
Nguyen Tuan
 
Ignacy Kowalczyk
CodeFest
 
20 easy Raspberry Pi projects
IT Books
 
A WebGL scene in 30 mins
Jens Arps
 
SpotCam HD Wi-Fi Video Monitoring camera review
spotcam
 
Protecting data with CSI Volume Snapshots on Kubernetes
DoKC
 

Recently uploaded (20)

PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Software Development Methodologies in 2025
KodekX
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
The Future of Artificial Intelligence (AI)
Mukul
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 

Cloud Spin - building a photo booth with the Google Cloud Platform