SlideShare a Scribd company logo
1 of 44
Download to read offline
WHEN “CROSS-PLATFORM” IS AN
UNDERSTATEMENT
MAKING WEIRD PHYSICAL GAMES WITH WEB TECHNOLOGY
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
THE SOFTWARE
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
1. “DOES THE CODE WORK?”
UNIT TESTS, CLI RUNNER
Mabel's light is blinking every 500ms.
> cable1R mabel
You plug column 1's rear cable into Mabel's jack.
> switch1R TALK
You switch column 1's rear switch to the "talk" position.
Mabel's light stops blinking.
You pick up the phone. Mabel says, "Hi! I'd love to talk to Ethel".
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
2. "IS THE GAME FUN?"
IPAD-PLAYABLE GAME
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
3. "IS THE GAME APPROACHABLE ON THE ACTUAL
HARDWARE? HOW'S THE DIFFICULTY CURVE?"
Actual Hardware
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
THE ADAPTER PATTERN
interface GameOutput {
function turnOnLight(caller: Caller);
function turnOffLight(caller: Caller);
function blinkLight(caller: Caller, rate: number) // Rate is in ms
function sayToConnect(call: Call);
function sayText(text: string, identifier: string) // Used for tutorial
}
interface GameInput {
function connect(cable: Cable, caller: Caller);
function disconnect(cable: Cable, caller: Caller);
function toggleSwitch(cable: Cable, state: SwitchState);
}
enum SwitchState {
case Neutral;
case Ring;
case Talk;
}
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
WHAT ARE "BEST PRACTICES"?
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
IT'S 2018. COMPUTERS ARE CHEAP.
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
SERENDIPITY OF WORKING IN A SINGLE
PLATFORM
# welcome
text: "Hello there! Thanks so much for agreeing to fill in today, I know
it's short notice. Let's teach you how to connect calls and use this
switchboard before it starts getting busy."
turnOnLight: Mabel
text: "Mabel wants to make a call. First, you have to connect to her. Take
any cable in the back row of cables and plug it into the hole below her
light. It doesn't matter which cable you use, as long as it's in the
back row."
<-> [connectWrongPerson exists]
text: Whoops! You want to connect to Mabel instead of {connectWrongPerson}.
allowRepeats
<-> [connectWrongCable exists]
text: Whoops! You want to use one of the cables in the row farthest away from you.
allowRepeats
<-> [toggleWrongSwitch exists]
text: Whoops! You don't want to touch the switches yet.
allowRepeats
-> first_switch: [Mabel.cable exists and Mabel.isFront is false]
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
( https://github.com/lazerwalker/storyboard )
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
NOT JUST FOR EMBEDDED ELECTRONICS!
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
function handleIntent(intent: Intent, state: Session, output: Output): Promise<Session>
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
...BUT WHY DO ALL OF THIS?
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
PHYSICALLY INTERACTING
WITH THE HISTORY OF
TECHNOLOGY IS A GREAT WAY
TO LEARN ABOUT IT
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
THE WAY PEOPLE INTERACT
WITH SYSTEMS AFFECT THEIR
RESPONSE TO THEIR SYSTEM
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
EXPOSURE TO OTHER FORMS
OF ENGINEERING IS USEFUL
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
MORE COOL THINGS IN THE
WORLD
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
THANKS!
@LAZERWALKER
@lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike

More Related Content

Similar to Mike Lazer Walker - When “Cross-Platform” Is An Understatement: Making Weird Physical Games With Web Technology - Codemotion Berlin 2018

Xamarin Under The Hood - Dan Ardelean
 Xamarin Under The Hood - Dan Ardelean Xamarin Under The Hood - Dan Ardelean
Xamarin Under The Hood - Dan ArdeleanITCamp
 
Clean JavaScript Code: An Oxymoron?
Clean JavaScript Code: An Oxymoron?Clean JavaScript Code: An Oxymoron?
Clean JavaScript Code: An Oxymoron?Lyubomir Bozhinov
 
Code mining : comment extraire et exploiter l’information détenue dans du cod...
Code mining : comment extraire et exploiter l’information détenue dans du cod...Code mining : comment extraire et exploiter l’information détenue dans du cod...
Code mining : comment extraire et exploiter l’information détenue dans du cod...Margo
 
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...hacktivity
 
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestManageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestJarek Potiuk
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienITCamp
 
AWE EU Startup Pitch: Tony Nitschke with Augmented Robotics
AWE EU Startup Pitch: Tony Nitschke with Augmented RoboticsAWE EU Startup Pitch: Tony Nitschke with Augmented Robotics
AWE EU Startup Pitch: Tony Nitschke with Augmented RoboticsAugmentedWorldExpo
 
SMX London Technical SEO in 2018.
SMX London Technical SEO in 2018. SMX London Technical SEO in 2018.
SMX London Technical SEO in 2018. Onely
 
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To IgnoreScott Abel
 
Technical communication futurist by Scott Abel
Technical communication futurist by Scott AbelTechnical communication futurist by Scott Abel
Technical communication futurist by Scott AbelMaxwell Hoffmann
 
Top Picks CES 2018 Consumer Electronics & Digital Media Innovation
Top Picks CES 2018 Consumer Electronics & Digital Media InnovationTop Picks CES 2018 Consumer Electronics & Digital Media Innovation
Top Picks CES 2018 Consumer Electronics & Digital Media InnovationChristophe Rufin
 
From programming languages to network protocols: lessons on API design
From programming languages to network protocols: lessons on API designFrom programming languages to network protocols: lessons on API design
From programming languages to network protocols: lessons on API designflpvsk
 
Building Modular monliths that could scale to microservices (only if they nee...
Building Modular monliths that could scale to microservices (only if they nee...Building Modular monliths that could scale to microservices (only if they nee...
Building Modular monliths that could scale to microservices (only if they nee...David Gómez García
 
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...apidays LIVE Australia 2020 - From micro to macro-coordination through domain...
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...apidays
 
PREPTEMBER.pptx
PREPTEMBER.pptxPREPTEMBER.pptx
PREPTEMBER.pptxGDSCSCTCE
 
What if everything is awesome? Codemotion Madrid 2014
What if everything is awesome? Codemotion Madrid 2014What if everything is awesome? Codemotion Madrid 2014
What if everything is awesome? Codemotion Madrid 2014Christian Heilmann
 
2018 alldaydevops presentation
2018 alldaydevops presentation2018 alldaydevops presentation
2018 alldaydevops presentationMirco Hering
 
Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...
Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...
Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...AugmentedWorldExpo
 

Similar to Mike Lazer Walker - When “Cross-Platform” Is An Understatement: Making Weird Physical Games With Web Technology - Codemotion Berlin 2018 (20)

Xamarin Under The Hood - Dan Ardelean
 Xamarin Under The Hood - Dan Ardelean Xamarin Under The Hood - Dan Ardelean
Xamarin Under The Hood - Dan Ardelean
 
Clean JavaScript Code: An Oxymoron?
Clean JavaScript Code: An Oxymoron?Clean JavaScript Code: An Oxymoron?
Clean JavaScript Code: An Oxymoron?
 
Code mining : comment extraire et exploiter l’information détenue dans du cod...
Code mining : comment extraire et exploiter l’information détenue dans du cod...Code mining : comment extraire et exploiter l’information détenue dans du cod...
Code mining : comment extraire et exploiter l’information détenue dans du cod...
 
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...Zsombor Kovács - 	Cheaters for Everything from Minesweeper to Mobile Banking ...
Zsombor Kovács - Cheaters for Everything from Minesweeper to Mobile Banking ...
 
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestManageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
 
Xamarin + GraphQL
Xamarin + GraphQLXamarin + GraphQL
Xamarin + GraphQL
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines Kergosien
 
AWE EU Startup Pitch: Tony Nitschke with Augmented Robotics
AWE EU Startup Pitch: Tony Nitschke with Augmented RoboticsAWE EU Startup Pitch: Tony Nitschke with Augmented Robotics
AWE EU Startup Pitch: Tony Nitschke with Augmented Robotics
 
SMX London Technical SEO in 2018.
SMX London Technical SEO in 2018. SMX London Technical SEO in 2018.
SMX London Technical SEO in 2018.
 
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
5 Revolutionary Technologies Technical Communicators Can’t Afford To Ignore
 
Technical communication futurist by Scott Abel
Technical communication futurist by Scott AbelTechnical communication futurist by Scott Abel
Technical communication futurist by Scott Abel
 
GraphQL with .NET Core
GraphQL with .NET CoreGraphQL with .NET Core
GraphQL with .NET Core
 
Top Picks CES 2018 Consumer Electronics & Digital Media Innovation
Top Picks CES 2018 Consumer Electronics & Digital Media InnovationTop Picks CES 2018 Consumer Electronics & Digital Media Innovation
Top Picks CES 2018 Consumer Electronics & Digital Media Innovation
 
From programming languages to network protocols: lessons on API design
From programming languages to network protocols: lessons on API designFrom programming languages to network protocols: lessons on API design
From programming languages to network protocols: lessons on API design
 
Building Modular monliths that could scale to microservices (only if they nee...
Building Modular monliths that could scale to microservices (only if they nee...Building Modular monliths that could scale to microservices (only if they nee...
Building Modular monliths that could scale to microservices (only if they nee...
 
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...apidays LIVE Australia 2020 - From micro to macro-coordination through domain...
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...
 
PREPTEMBER.pptx
PREPTEMBER.pptxPREPTEMBER.pptx
PREPTEMBER.pptx
 
What if everything is awesome? Codemotion Madrid 2014
What if everything is awesome? Codemotion Madrid 2014What if everything is awesome? Codemotion Madrid 2014
What if everything is awesome? Codemotion Madrid 2014
 
2018 alldaydevops presentation
2018 alldaydevops presentation2018 alldaydevops presentation
2018 alldaydevops presentation
 
Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...
Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...
Alessandro Terenzi (Inglobe Technologies) Developing AR Apps with the ARMedia...
 

More from Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Recently uploaded

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....rightmanforbloodline
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingWSO2
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Recently uploaded (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Mike Lazer Walker - When “Cross-Platform” Is An Understatement: Making Weird Physical Games With Web Technology - Codemotion Berlin 2018

  • 1. WHEN “CROSS-PLATFORM” IS AN UNDERSTATEMENT MAKING WEIRD PHYSICAL GAMES WITH WEB TECHNOLOGY @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 2. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 3. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 4. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 5. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 6. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 7. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 8. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 9. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 10. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 11. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 12. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 13. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 14. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 15. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 16. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 17. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 18. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 19. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 20. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 21. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 22. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 23. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 24. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 25. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 26. THE SOFTWARE @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 27. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 28. 1. “DOES THE CODE WORK?” UNIT TESTS, CLI RUNNER Mabel's light is blinking every 500ms. > cable1R mabel You plug column 1's rear cable into Mabel's jack. > switch1R TALK You switch column 1's rear switch to the "talk" position. Mabel's light stops blinking. You pick up the phone. Mabel says, "Hi! I'd love to talk to Ethel". @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 29. 2. "IS THE GAME FUN?" IPAD-PLAYABLE GAME @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 30. 3. "IS THE GAME APPROACHABLE ON THE ACTUAL HARDWARE? HOW'S THE DIFFICULTY CURVE?" Actual Hardware @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 31. THE ADAPTER PATTERN interface GameOutput { function turnOnLight(caller: Caller); function turnOffLight(caller: Caller); function blinkLight(caller: Caller, rate: number) // Rate is in ms function sayToConnect(call: Call); function sayText(text: string, identifier: string) // Used for tutorial } interface GameInput { function connect(cable: Cable, caller: Caller); function disconnect(cable: Cable, caller: Caller); function toggleSwitch(cable: Cable, state: SwitchState); } enum SwitchState { case Neutral; case Ring; case Talk; } @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 32. WHAT ARE "BEST PRACTICES"? @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 33. IT'S 2018. COMPUTERS ARE CHEAP. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 34. SERENDIPITY OF WORKING IN A SINGLE PLATFORM # welcome text: "Hello there! Thanks so much for agreeing to fill in today, I know it's short notice. Let's teach you how to connect calls and use this switchboard before it starts getting busy." turnOnLight: Mabel text: "Mabel wants to make a call. First, you have to connect to her. Take any cable in the back row of cables and plug it into the hole below her light. It doesn't matter which cable you use, as long as it's in the back row." <-> [connectWrongPerson exists] text: Whoops! You want to connect to Mabel instead of {connectWrongPerson}. allowRepeats <-> [connectWrongCable exists] text: Whoops! You want to use one of the cables in the row farthest away from you. allowRepeats <-> [toggleWrongSwitch exists] text: Whoops! You don't want to touch the switches yet. allowRepeats -> first_switch: [Mabel.cable exists and Mabel.isFront is false] @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 35. ( https://github.com/lazerwalker/storyboard ) @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 36. @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 37. NOT JUST FOR EMBEDDED ELECTRONICS! @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 38. function handleIntent(intent: Intent, state: Session, output: Output): Promise<Session> @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 39. ...BUT WHY DO ALL OF THIS? @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 40. PHYSICALLY INTERACTING WITH THE HISTORY OF TECHNOLOGY IS A GREAT WAY TO LEARN ABOUT IT @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 41. THE WAY PEOPLE INTERACT WITH SYSTEMS AFFECT THEIR RESPONSE TO THEIR SYSTEM @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 42. EXPOSURE TO OTHER FORMS OF ENGINEERING IS USEFUL @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 43. MORE COOL THINGS IN THE WORLD @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike
  • 44. THANKS! @LAZERWALKER @lazerwalker · CodeMotion Berlin 2018 (20 November 2018) · Creative Commons Attribution-NonCommercial-ShareAlike