SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Killer Engine for Remixing Games

Jesse Himmelstein
CRI-Paris


New game engine, with different goals



Made for remixing games and mashups



Electronics-inspired visual programming



Excellent debugging and live coding tools



All done in the browser


Interdisciplinary science and engineering

Higher education

School and after-school programs


Education technology

Knownodes

CoIdea


Scientific and Educational Games

Archimedes' Escape

Leap
Weizmann Institute


Citizen Science Games

FoldIt
Univ of Washington

Fraxinus
The Sainsbury Laboratory
A scientist should just be able to take part
of one game, mix it with another one, and
then modify it to make a new one

That’s impossible

MY BOSS

ME

Why?


We have:
Functions
Classes
Metaclasses

Blocks

Entity Component Systems
Unit tests

End to end tests
Distributed Version Control
Virtual machines

A million programming languages
A billion game engines
A kabillion libraries
What remixing should be
What refactoring is like


Interleaving -> incomprehension



Lessons
 Avoid tangling
 Leave data alone
 Sane abstractions for state and time
Rich Hickey
"Simple made Easy"


Breadboard
 Connect anything
 Measure anywhere
 Replace everything


Been done before…

Data flow

flowhub
Unreal Kismet
Chip
<pin>
in

Memory

out

<pin>

<data>

1. Memory -> Chips

<data>

2. Chips compute
Chip

<data>

3. Chips -> Memory
<pin>
constant

<pin>
Memory
<data>

<data>
<data>

IO
mouse
keyboard
graphics

Chip
<pin>

1. IO & Memory -> Chips

<pin>

2. Chips compute
3. Chips -> IO & Memory
Memory
speed

position

Move
speed
position

IO

Draw

mouse

position

keyboard

shape

graphics
Emitter

Splitter

Processor

Switch
Switch
<pin>
<pin>

Chip

Chip

Chip

<pin>

<pin>

<pin>

<pin>

<pin>

<pin>


“What would have happened”



“Mute” chips



Find chips from memory or IO



Test each chip in isolation
Brett Victor
”Inventing on Principle”


User code is dangerous



Contain within iframe
with sandbox attribute

Parent page - Editor

Sandbox - Game exuecution



Messages replace
function calls

iFrame
sandbox="allow-scripts"


Two chips modifying the same array/object?



Like version control
1. Create patches from a common ancestor
2. Merge patches



Some merges are hard
 LCS (Longest Common Subsequence)
 Operational transforms




Track all past state

Cloning data takes space!

Full
Patch

Patch



Better solutions
 Store mostly patches

Patch
Full

Patch


Persistant data structures
 Applies to lists, trees, hash maps, etc.

List A
[1, 2, 3, 4]

1

List B
[5, 2, 3, 4]

5

2

3

4


Treat IO as a buffer instead of a set of methods



Input
 Mouse (getMousePos() -> mouse.position)
 Keyboard (isKeyDown() -> keyboard.keysDown)



Output
 Canvas

ctx.fillStyle = ”black”;
ctx.fillRect(0, 0, 100, 100);

canvas.shapes = [{
fillStyle:
“black”,
position:
[0, 0],
size: [100, 100]
}];


Input/Output
 HTML using Rivets.js
▪ Template + values
▪ 2-way data binding
 HTTP
▪ Data replaces events and callbacks!


Looking for new and different games



Developers and designers always welcome!
 Lots of new features to work on
Paris Game Club - Making, playing, learning



Invited speakers
Micro-game jams



Videos + agenda at



gamelier.org
github.com/CyberCRI/RedWire
@RedWireIO
jesse.himmelstein@parisdescartes.fr
+JesseHimmelstein
@himmelattack

Weitere ähnliche Inhalte

Ähnlich wie RedWire - Killer Engine for Remixing Games (at FOSDEM 2014)

Haskell for data science
Haskell for data scienceHaskell for data science
Haskell for data scienceJohn Cant
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009David Fox
 
Threading Successes 05 Smoke
Threading Successes 05   SmokeThreading Successes 05   Smoke
Threading Successes 05 Smokeguest40fc7cd
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETMaarten Balliauw
 
.NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management...
.NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management....NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management...
.NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management...NETFest
 
MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...
MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...
MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...Youichiro Miyake
 
Coding for multiple cores
Coding for multiple coresCoding for multiple cores
Coding for multiple coresLee Hanxue
 
Alex Smola at AI Frontiers: Scalable Deep Learning Using MXNet
Alex Smola at AI Frontiers: Scalable Deep Learning Using MXNetAlex Smola at AI Frontiers: Scalable Deep Learning Using MXNet
Alex Smola at AI Frontiers: Scalable Deep Learning Using MXNetAI Frontiers
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanicselliando dias
 
Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]
Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]
Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]RootedCON
 
A Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningA Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningSuntae Kim
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
 
Exploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarExploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarMaarten Balliauw
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeDmitri Nesteruk
 
Parallelizing Conqueror's Blade
Parallelizing Conqueror's BladeParallelizing Conqueror's Blade
Parallelizing Conqueror's BladeIntel® Software
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...Maarten Balliauw
 
Swug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainathSwug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainathDennis Chung
 
Sedna XML Database: Executor Internals
Sedna XML Database: Executor InternalsSedna XML Database: Executor Internals
Sedna XML Database: Executor InternalsIvan Shcheklein
 
Introduction to Xamarin Mobile Platform
Introduction to Xamarin Mobile PlatformIntroduction to Xamarin Mobile Platform
Introduction to Xamarin Mobile PlatformDominik Minta
 
Sql server engine cpu cache as the new ram
Sql server engine cpu cache as the new ramSql server engine cpu cache as the new ram
Sql server engine cpu cache as the new ramChris Adkin
 

Ähnlich wie RedWire - Killer Engine for Remixing Games (at FOSDEM 2014) (20)

Haskell for data science
Haskell for data scienceHaskell for data science
Haskell for data science
 
Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Threading Successes 05 Smoke
Threading Successes 05   SmokeThreading Successes 05   Smoke
Threading Successes 05 Smoke
 
DotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NETDotNetFest - Let’s refresh our memory! Memory management in .NET
DotNetFest - Let’s refresh our memory! Memory management in .NET
 
.NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management...
.NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management....NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management...
.NET Fest 2018. Maarten Balliauw. Let’s refresh our memory! Memory management...
 
MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...
MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...
MEIS 2015 : A Multilayered Model for Artificial Intelligence of Game Characte...
 
Coding for multiple cores
Coding for multiple coresCoding for multiple cores
Coding for multiple cores
 
Alex Smola at AI Frontiers: Scalable Deep Learning Using MXNet
Alex Smola at AI Frontiers: Scalable Deep Learning Using MXNetAlex Smola at AI Frontiers: Scalable Deep Learning Using MXNet
Alex Smola at AI Frontiers: Scalable Deep Learning Using MXNet
 
the productive programer: mechanics
the productive programer: mechanicsthe productive programer: mechanics
the productive programer: mechanics
 
Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]
Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]
Fermín J. Serna - Exploits & Mitigations: EMET [RootedCON 2010]
 
A Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningA Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep Learning
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 
Exploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinarExploring .NET memory management - JetBrains webinar
Exploring .NET memory management - JetBrains webinar
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/Invoke
 
Parallelizing Conqueror's Blade
Parallelizing Conqueror's BladeParallelizing Conqueror's Blade
Parallelizing Conqueror's Blade
 
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
JetBrains Day Seoul - Exploring .NET’s memory management – a trip down memory...
 
Swug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainathSwug July 2010 - windows debugging by sainath
Swug July 2010 - windows debugging by sainath
 
Sedna XML Database: Executor Internals
Sedna XML Database: Executor InternalsSedna XML Database: Executor Internals
Sedna XML Database: Executor Internals
 
Introduction to Xamarin Mobile Platform
Introduction to Xamarin Mobile PlatformIntroduction to Xamarin Mobile Platform
Introduction to Xamarin Mobile Platform
 
Sql server engine cpu cache as the new ram
Sql server engine cpu cache as the new ramSql server engine cpu cache as the new ram
Sql server engine cpu cache as the new ram
 

Kürzlich hochgeladen

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 

Kürzlich hochgeladen (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 

RedWire - Killer Engine for Remixing Games (at FOSDEM 2014)

Hinweis der Redaktion

  1. TODO: changepicture of server baywithsomethingwithcrazierwires (star wars?)Only possible if youspenddays, weeks of delicatesurgery to separatetwothings, and longer to plugthem back together in a differentway
  2. TODO: changepicture of server baywithsomethingwithcrazierwires (star wars?)Only possible if youspenddays, weeks of delicatesurgery to separatetwothings, and longer to plugthem back together in a differentway
  3. Inspiration came from excellent presentations by RichHickeyObserved how when parts of a system are interleaved, throughfunction calls or context or state, itisbecomestoocomplex to understand all the possible interactionsIf a programmer can’treason about a program, hecan’t change it for the betterThat’swhywespendsomuch time refactoring, just to have a system thatissane, thatwecanunderstand and reason about.Defined notion of simplicity, an objective, absolutemeasurement on how interleaved a program’s parts areGave some insights intowhatmakessystems « simple ». If youwant more information, pleaseseehis talk « Simple Made Easy » as well as others by him.
  4. Legos are a simple, but not dynamic. What about electronics as a metaphor?You canconnectany part to anyother one.You can stick a multi-meter or oscilloscope atany point in the circuit to understandwhat’sgoing on. You caneven place several of themat onceYou can pull out anypiece and replace itwithanother. The i »nterface » isjust a pin and a wire.
  5. Not the first to beinspired by electronics.Dat aflow has existedsince the earlydays of computing. The ideais to have a graph of nodes, thatperformoperations on their inputs, and sendtheir outputs onto othernodesfurther down the draph. It was first a computer architecureidea, considered on equal footing with the Van Neumann architecture thateventuallydominated. Onlylaterdidresearchersrelializethat the visual aspects weresocompelling. You cansee data actually move down the graph.This worksverywell for small graphs.
  6. But asyouaddlogic, thingsget more « complex ».Whenanynodecansend data to anyothernode, youget chaos.Each of thesenodes has itsown state, changing all the time.Visual spaghetti isstill spaghetti!Visual spaghetti isstill spaghetti
  7. Differencesfrommostprogrammingenvironments: Reading to memoryis happening simultanously - no race condiitions. Chips are executingconcurrently, can’teffectother. Chips are not directlylinked.Writing to memoryisalsodone in parallel – detectconflicts, mergeresults.ConnectanythingMeasureanywhereReplace everything
  8. Start with single chip thatwrites to ioThen have itwritesomethingbased on memory to ioThen have a different chip modifythatmemoryYou can examine either one in isolationHavingtwo chips writing to the same place is an errorHave itwrite in and out to memoryPut a second thatcoordinateswithitNowyoucan swap one out and put anotherit. Or take out the memoryalltogether
  9. Start with single chip thatwrites to ioThen have itwritesomethingbased on memory to ioThen have a different chip modifythatmemoryYou can examine either one in isolationHavingtwo chips writing to the same place is an errorHave itwrite in and out to memoryPut a second thatcoordinateswithitNowyoucan swap one out and put anotherit. Or take out the memoryalltogether
  10. Start with single chip thatwrites to ioThen have itwritesomethingbased on memory to ioThen have a different chip modifythatmemoryYou can examine either one in isolationHavingtwo chips writing to the same place is an errorHave itwrite in and out to memoryPut a second thatcoordinateswithitNowyoucan swap one out and put anotherit. Or take out the memoryalltogether
  11. By default, an iframecan « reach out » and alter the parent pageSiteslikejsfiddle or plunkr have to deal withthis.Solution: get the browser to enact a securitypolicy. Use a differentdomain or the new HTML5 « iframesandbox ».
  12. Like version control, creates patches from a commonancestor, and thenmergesthemSomemerges, such as onarrays, are difficult to do in a naiveway.Will move to libraryusing LCS Longest Common SubsequenceProblemalgorithm (JSONDiffPatchlibrary)
  13. Treating IO as a buffer (memory) instead of as a set of functionsFor input only, worksgreat (mouse, keyboard)Works well for APIs thatalways do new things (canvas)Can alsowork for persistant APIs, like HTMLHarder for APIs that do feedback
  14. Treating IO as a buffer (memory) instead of as a set of functionsFor input only, worksgreat (mouse, keyboard)Works well for APIs thatalways do new things (canvas)Can alsowork for persistant APIs, like HTMLHarder for APIs that do feedback
  15. Game platformonly as good as the games on it!Wewe help youbringyourgames over to the platform.Live tests in Paris. MicroGame