SlideShare a Scribd company logo
1 of 354
Download to read offline
Robotlegs 2 and Your Brain
          Stray (Lindsey Fallow)
      @stray_and_ruby xxcoder.net

                   1
Stray (Lindsey Fallow)

  @stray_and_ruby

     xxcoder.net



                         Ruby   Stray
                          2
Team Robotlegs                        Joel Hooks

                                       Ro botlegs
                                         Core

  Robot legs or iginator                Signals

             Shaun Smith
                                Robert Penner
                                                       Till Schneidereit
                                                Swiftsuspenders
and me, Stray (behind camera)
                                  3
+


[robotlegs 2]
                4
What we’ll cover



               [robotlegs 2]
     ?             ?           ?

                                   5
A robotlegs
                                     pomodoro timer
                                    (FOTB attendees
                                       won these)




You’ll need a pen and paper for exercises
                  6
STOP

JARGON FREE ZONE
       7
“Dependency Injection”
               We’ll try not to
              terms like this w    use
                                 ithout
                  explaining them.

          8
What is Robotlegs?


                  “ActionScript 3
                   framework”

[robotlegs]                Doesn’t really
                           tell us much.
              9
What do we mean
by “framework”?




                  10
What do we mean
by “framework”?
 A framework is a tool




                         11
What do we mean
by “framework”?                 Take 30 seconds to
 A framework is a tool        list as many things as
                              you can think of that
                                 you could do with
                                      this tool.



                         12
What do we mean
by “framework”?
   A framework is a tool


Most people would say that this is
 a better screwdriver, but how
many things on your list can’t be
       done with this tool?

                                 13
I used the correct
           size of screwdriver
              for this screw.




Using the wrong tool can be              I used the wrong
frustrating, or - worse - it can        size of screwdriver
result in the work becoming                for this screw.
‘broken’ beyond repair.
                                   14
Write down your
development toolset
  15
You probably included some of these.
                  16
Your toolset
     includes your
          brain
17
Most developers know almost
   nothing about the most
important part of their toolset.
              18
:~ man brain



               19
:~ man brain
> No manual entry for ‘brain’

               20
Your brain is a legacy system




          21
Your brain is a legacy system

 If you were designing a system
 for writing software you wouldn’t
 start with the human brain.




               22
“The triune brain”




                                     Problem solving brain
                    Mammal brain         (neo-cortex)
Lizard brain       (limbic system)
(brain stem)
Your lizard brain takes care
        of basic ‘staying alive’
     impulses such as breathing.




24
Your mammal brain (limbic-
system) allows you to form
attachments, cooperate and
 live alongside your peers.




                              25
Your mammal brain evolved
before we had language, so its
  influence on you is mostly
chemical - you ‘feel’ messages
   from your limbic-system.




                                 26
Your problem-
solving brain is a
minor addition
to the older
brain structure
that supports it.
We care about the brain because -
    as with any tool - we need to know:


 What is your brain good at?

What is your brain not good at?
What is your brain good at?



    Simple mental arithmetic
What is your brain good at?

     Estimating 30 seconds


    Simple mental arithmetic
What is your brain good at?

     Estimating 30 seconds
          while doing
    Simple mental arithmetic
Start a stopwatch, then make a list of the
squares of prime numbers starting from 2,
  and try to estimate 30 seconds passing.
GO!
Multi-tasking FTL!

 Our lizard brain is fine at multi-
 tasking, but our problem-solving
brain isn’t. When we try to multi-
  task our performance in even
simple tasks dramatically reduces.
Architecture & Coding
  are different tasks

    Using Robotlegs should
    allow you to focus more
    cleanly on one or the other.
    When you’re coding a class,
    thoughts about architecture
    shouldn’t be intruding.
Working memory
• The ‘RAM’ we use to hold things in mind in
    order to solve a problem.
•   Items stored in working memory are
    regularly garbage collected - you won’t
    remember them later.
•   Programmers rely heavily on working
    memory when carrying concepts within and
    between classes.
Working memory test

 Give yourself 30 seconds to
 commit the following list of
 words to memory, and then
 move to the next slide.
Working memory test

refugee    mill        architect
quilt      mermaid     pimple
weather    salary      wallet
laundry    tram        verse
internet   athletics   thunder
eyebrow    nurse       space
chess      seal        egg
flight      stamp       system
Working memory test

 Now write down as many as
 you can remember. Order is
 not important. Give yourself
 30 - 60 seconds.
Working memory test
           Check your answers.
refugee          mill            architect
quilt            mermaid         pimple
weather          salary          wallet
laundry          tram            verse
internet         athletics       thunder
eyebrow          nurse           space
chess            seal            egg
flight            stamp           system
Working memory test
 Most people remember 6 - 9
 words.

 I’m now going to challenge you to
 remember more than twice as
 many, from a different list of 25.

 Again, give yourself 30 seconds to
 memorise them, and then move
 to the next slide.
Working memory test
            25 words - 30 seconds



War and peace            Nobody does it better
Over the rainbow         Love and war
Cats and dogs            I’ll be back
Night before Christmas   ctrl, alt, delete
Working memory test
  25 words - 30 seconds


 Now write down as many as
 you can remember. Order is
 not important. Give yourself
 30 - 60 seconds.
Working memory test
            25 words - 30 seconds
          Check your answers - count
          every word that you got correct.
War and peace              Nobody does it better
Over the rainbow           Love and war
Cats and dogs              I’ll be back
Night before Christmas     ctrl, alt, delete
Chunking FTW!



       Your working me
7±2   of 7 ‘plus or min
                       mory consists
                        us 2’ chunks
Chunking is like ‘zip’ for your working memory

                            up and         Mickey
                            down           Mouse
 nurse                               747
            7               7,8,9

  A chunk can be a single   A chunk can be a
  word or number            sequence, set or pattern
                            that you have met before
Chunking uses neural networks
              Peace
                             Pipes

     War                             Repeated simultaneous firing
                                     of individual neurons creates
                                     connections between them.

                      Triangle
                                              Euclid
            Love
“What fires together, wires together!”
               Peace
                              Pipes

      War



                       Triangle
                                      Euclid
             Love
If you wrote crap code today,
you hard wired your brain to
              ...


              49
If you wrote crap code today,
you hard wired your brain to
  find it easier to write crap
        code tomorrow.

              50
Chunking and Robotlegs


We want Robotlegs to occupy as few chunks as
possible, leaving most of your working memory
free to tackle your specific problem.
Are you bored yet?




If you are, this presentation isn’t causing
you to create enough dopamine.  52
Dopamine




Dopamine is a neurotransmitter. Like engine oil for
your brain. It helps you to stay on task and also
makes you more effective at problem solving.
                                      53
Dopamine




Distracted              Focussed
                54
Dopamine
  Vicious Circle - not enough
  dopamine => distracted,
     unproductive, prone to
 mistakes, slow progress =>             Virtuous Circle - plenty
        lower dopamine.                 dopamine => focussed,
                                       productive, insightful, fast
                                     progress => more dopamine.
Distracted                                          Focussed
                                55
Dopamine is key to
pattern recognition




        Helps you find ‘the zone’ and stay there
                          56
You noticed that some of these
shapes were different, without
deciding to look for differences.
We call this ‘pre-attentive’ processing.




         Helps you find ‘the zone’ and stay there
                              57
Give yourself 6 seconds to
  estimate the number of
triangles in the next picture


              58
59
how many triangles?




         60
how many triangles?
                 Answer = Zero

(to see why, flick back and forth between the next 2 slides)



                             61
62
63
Our brain craves patterns

To the extent that we’ll find
them even when they’re not
really there.


         64
Cognitive dissonance

The feeling that
“Something doesn’t fit”.
That ‘feeling’ is a drop
in dopamine.
          65
Dopamine




           Cognitive
           dissonance
                        Time
                   66
Cognitive dissonance can
be meaningful and directing




Fighter pilots rely on it for rapidly detecting problems.
It can also tell you that something is wrong with your code.
                              67
Cognitive dissonance can be
meaningless and distracting

           Event.ADDED
           Event.COMPLETE
                  To me, it feels like there’s something
                 wrong when I mix cases in event types.
                      68
Meaningful, directing

          vs

Meaningless, distracting
            69
Meaningful, directing
                  In order to tune in to
                 this, we need to limit the
                     amount of cognitive
          vs     dissonance the Robotlegs
                    framework triggers.

Meaningless, distracting
            70
Dopamine
variation FTW &
       FTL!
Have you ever
written code that
  was like this?
Great solution,
wrong problem.
Great solution,
    wrong problem.

 It’s a really lovely yoda suit for a
dog, but who needs one of those?
‘Right execution of the wrong thing’
 happens when one half of our brain
      dominates decision making.

 Left brain                    Right brain
(right hand)                   (left hand)



                  75
A brain of two halves
 Left brain                                              Right brain
(right hand)                                             (left hand)



                •   Specific           •   Context

                •   Details            •   Big picture

                •   Calculation        •   Estimation
                                  76
Programming is whole-brain
                problem solving
 Left brain                                       Right brain
(right hand)                                      (left hand)


      “How to do it right”        “The right thing to do”

      Emerges as specific          Emerges as somatic
          thoughts                   (body) feelings
                             77
Metaphors trigger
whole brain activity

             +

(Which is why we talked about
    Yoda-suits for dogs)
              78
Metaphors trigger
whole brain activity

              +

(And why Robotlegs 2 will try to
 give things descriptive names)
               79
Brain Summary
• Avoid multi-tasking
• Take advantage of chunking
• Dopamine is key to staying in flow
• Make cognitive dissonance meaningful
• Programming is a ‘whole brain’ activity
• Metaphor activates the ‘whole brain’
                             80
Brain
     questions?



81
What is Robotlegs?


                   “ActionScript 3
                    framework”

[robotlegs]
              82
What is Robotlegs?

                    “ActionScript 3
                    communication,
                     cooperation,
                   and configuration
                      framework”
[robotlegs]
              83
Writing code is easy
    Very clever class
     that gets and                                        A menu
                                       A really
     sends data to                                     accepting user
                                      tasty view
      and from a                                           input
         server




                        A clever class that
                         checks whether            Another really
A quite simple                                      tasty view
class that does            input is valid
stuff with XML



                                       84
Joining code together is hard
    Very clever class
     that gets and                                        A menu
                                       A really
     sends data to                                     accepting user
                                      tasty view
      and from a                                           input
         server




                        A clever class that
                         checks whether            Another really
A quite simple                                      tasty view
class that does            input is valid
stuff with XML



                                       85
A “dependency” is just a need to
use an instance of another object
        for communication,
            cooperation,
          or configuration

                86
“Dependency Injection”

var kittenPath:String = “http://kittens978.com/feed.xml”;

var kittenRequest:URLRequest = new URLRequest(kittenPath);

_kittenLoader = new URLLoader(kittenRequest);




                           87
“Dependency Injection”

var kittenPath:String = “http://kittens978.com/feed.xml”;



var kittenRequest:URLRequest = new URLRequest(kittenPath);



_kittenLoader = new URLLoader(kittenRequest);



                           88
DI can lead to a lot of
            “pass the parcel code”
Animation
 timing
                    View class that has nothing to do with
                  timing, or feeds, but creates and contains
                        the animation and the menu
  Feed
 details




              Animation class                  Menu class that
               that times the                  displays feeds to
              fading of images                     the user


                                       89
Static Singletons

       One approach to solving
         the ‘pass the parcel’
      dependency chain problem.


                    90
Static Singletons
Suck
• ImposeSingleton class
  on the
         extra responsibilities

• Impose extra knowledge on
  the using class
• Very difficult to vary and test
  corner cases
                                91
The Robotlegs dream:
Dependency Inception


          Feed
         details




           92
The Robotlegs dream:
Dependency Inception
                   A an object inside
                    an object inside
                    an object inside
                    an object... and
          Feed
         details     nobody knows
                    how it got there
                       - it just
                       appeared.

           93
To declare a dependency

 [Inject]

 public var importantCollaborator:ICollaboratorClass;




                          94
Injections recipe




 Class with                                     Injected
   [Inject]                                      object
requirements

                               The
                               Robotlegs
                               Injector is
                               just a factory
                                   95
Injection opens up possibilities


• Communication via a shared eventDispatcher instance
• “Mediators” - connecting (dumb) views to your application
• The Command Pattern

                            96
Shared eventDispatcher -
broadcast events to your app



    Some     Some other        Some       Some
   service     service         model   other model




                          97
Mediators for individual views


      View         Mediator




              98
Commands are snack-size
controllers, triggered by events
                                           Feed Loader
                                             Service

           FeedSelectorEvent.
Mediator    FEED_SELECTED          Command with
                                [Inject] requirements




                        99
Again: Injection is not magic
• The Injector is just a factory
• It needswithbe pre-advised about how
  to deal
           to
               injection requests




                          100
How to tell the injector
             what to do

injector.mapSingletonOf(IFeedService, XMLFeedService);

injector.mapValue(IFeedConfig, new DefaultFeedConfig());




                           101
Robotlegs 1 - Feature recap

• [Inject] dependencies
• Shared eventDispatcher
• Mediators automatically created & destroyed for views
• Commands mapped to events
                         102
Robotlegs
                    questions?
[robotlegs]

              103
+


[robotlegs 2]
                104
Robotlegs uses ‘Semantic
                   versioning’

•   Point releases must be backward compatible - eg 1.3 can be dropped
    in to an application previously using 1.2, without breakages.

•   Major releases (eg 2.0 vs 1.0) can rewrite the API.

•   This gives us great freedom in terms of Robotlegs 2.0

•   but...


                                     105
Neural networks
    do not adhere
to semantic versioning




   106
So, everything you already
understand about Robotlegs
   will remain the same.




    107
We looked on
the robotlegs
forums for the
things that made
you feel like
this...


                   108
Using mediators as view
      controllers




           109
Unclear mapping syntax

injector.mapClass(IFeedConfig, FeedConfig);




                    110
Lack of symmetry
addViewListener(MouseEvent.CLICK, handleSubmit);

removeViewListener(MouseEvent.CLICK, handleSubmit);




                       111
Lack of symmetry
addViewListener(MouseEvent.CLICK, handleSubmit);

removeViewListener(MouseEvent.CLICK, handleSubmit);


                        This function doesn’t exist


                       112
Annoying to mix utilities

public class MyContext

             extends RelaxedSignalModuleStatefulContext




                          113
Modular feels hard



          114
In unfamiliar territory, we can
lose our ‘right brain’ context.
We feel lost.

New and upgrading users want
a quick push in the right
direction.
                  115
4 new Robotlegs 2 ‘flavours’
                Performance



Fast                              Flexible




                  Clean
                     116
Choose one to start your project
             Performance



Fast                          Flexible




               Clean
                  117
DISCLAIMER


this.api.is(UNDER_CONSTRUCTION);




              118
Fluent context builder

contextBuilder.installUtility(CommandMap)
              .installUtility(ConfigLoader)
              .installUtility(ViewManager)
              .installUtility(SignalCommandMap)
              .withConfiguration(XMLMappings)
              .build();




                         119
Fluent mappings

injector.asSingleton.map(IFeedService).to(XMLFeedService);



viewManager.handle(FeedMenu)
           .mediateWith(FeedMenuMediator);




                         120
Chunking in Robotlegs 2?

  “Guards and Hooks”
            2 Simple ideas add
           a lot of functionality

           121
Guards prevent/allow action

                                           Feed Loader
                                             Service

           FeedSelectorEvent.      Command with
Mediator    FEED_SELECTED       [Inject] requirements




                        122
Guards prevent/allow action

                                                                   Feed Loader
                                                                     Service
                                           Sufficient      Command with
                FeedSelectorEvent.         Network      [Inject] requirements
Mediator         FEED_SELECTED             Capacity
                                            Guard
                                             Feed
                                            Status       Fallback Command




                                     123
Hooks support collaboration


View           Mediator           Menu Skinner
                                     Hook


   View and a skinning factory
    are injected into the hook.
                    124
Hooks support collaboration


View            Mediator          View Logic
                                  Wiring Hook


    View and a logic factory
    are injected into the hook.
                     125
Many-mediators-per-view

 Enemy
            Spaceship    Enemy
Spaceship   Mediator    Mediator
  View



              126
Descriptive type matching
ISpaceship   IPlayer    Spaceship
   ✓          ✗         Mediator


 IEnemy      IBoss       Enemy
   ✓          ✗         Mediator

                  127
var enemyMatcher:TypeMatcher =
            matcherFor(ISpaceship)
           .and(IEnemy)
           .not(IBoss)
           .andNot(IEnemyGhost);



                 128
View manager:
have your cake and eat it
              Awesome
               Utility
   Mediator     Map              View
    Map                          Map


               Stage         Never more than one
                         listener for a stage event
                 129
Wow, I thought we were
somewhere totally different


             130
Imagine
      every
      stop is a
      state of
      your app.
      Confused?




131
Grouping
                control
                flow can
                help you
Command Flows   follow
                state
                changes
                more
                easily.

        132
Rule sets
Injections recipe          Injections recipe




         Rules applied and removed
           in response to events.
                    133
Less cognitive dissonance,
       more flow

                  We often create big
                  classes with multiple
                  responsibilities in order
                  to create a sense of flow.


            134
Less cognitive dissonance,
               more flow
Robotlegs can help you stay
in flow even when working
with larger numbers of
smaller classes.

And speaking of separating
responsibilities...

                              135
Modular just works
“everything is a module”


           136
“Soft” mappings
                                             Excuse me, if
                  Injections recipe
                                       nobody else has already
                                      created a mapping for this,
                                            then I’ll oblige.
 Allows you to use this
module stand-alone or in
 combination with other
    Robotlegs modules.
    Without recompiling!
                                      137
The InspectorGadget


Your code
         de
       138
The InspectorGadget


“This injection point looks broken”



                139
The InspectorGadget


“This Command never executed”



              140
The InspectorGadget


“This is the order in which
objects were instantiated”


             141
Robotlegs 2: Feature overview

•   Build your context - have it your way   •   Rule sets

•   Fluency / mxml                          •   Multiple mediators

•   4 Robotlegs ‘flavours’                  •   Type matchers

•   Command flows                           •   The InspectorGadget

•   Mix view management strategies          •   Modular just works


                                      142
Release process

• Alpha releases: API still in flux
• Beta releases: API locked, future proof
• One feature at a time
• Match v1 Feature set
• As fast as we can!
                    143
[robotlegs 2]
www.robotlegs.org
         144
Robotlegs 2
                       questions?
[robotlegs 2]

                145
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain
Robotlegs 2 and your brain

More Related Content

Viewers also liked

(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...
(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...
(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...Amazon Web Services
 
E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"
E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"
E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"David Giner Sánchez
 
Presentación plataforma pro ideal
Presentación plataforma pro idealPresentación plataforma pro ideal
Presentación plataforma pro idealHumberto Salinas
 
Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...
Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...
Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...partidoverdecali
 
BO 4 diseño web intelligence
BO 4 diseño web intelligenceBO 4 diseño web intelligence
BO 4 diseño web intelligencefher2183
 
E:\Alfonso Iglesias Marta Rodriguez (6ºA)
E:\Alfonso  Iglesias   Marta Rodriguez (6ºA)E:\Alfonso  Iglesias   Marta Rodriguez (6ºA)
E:\Alfonso Iglesias Marta Rodriguez (6ºA)marocioiga
 
Soil properties and dune heath reestablishment
Soil properties and dune heath reestablishmentSoil properties and dune heath reestablishment
Soil properties and dune heath reestablishmentRhys Turton
 
Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15
Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15
Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15Colegio Jesuitinas Pamplona
 
Sesión introductoria a los indicios de calidad de las publicaciones científic...
Sesión introductoria a los indicios de calidad de las publicaciones científic...Sesión introductoria a los indicios de calidad de las publicaciones científic...
Sesión introductoria a los indicios de calidad de las publicaciones científic...Amaia Guerrero
 
APRV aka BiLevel
APRV aka BiLevelAPRV aka BiLevel
APRV aka BiLevelceswyn
 
Situación del eCommerce en Canarias
Situación del eCommerce en CanariasSituación del eCommerce en Canarias
Situación del eCommerce en CanariasJordi Aymar Bru
 
Exportación estable
Exportación estableExportación estable
Exportación estableIWAexport
 
PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49
PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49
PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49Manel Cantos
 
Baja sindical fetico
Baja sindical feticoBaja sindical fetico
Baja sindical feticosseccooleroy
 
Math 6 Project (Alice in Wonderland Ch.4-6)
Math 6 Project (Alice in Wonderland Ch.4-6)Math 6 Project (Alice in Wonderland Ch.4-6)
Math 6 Project (Alice in Wonderland Ch.4-6)mreiafrica
 

Viewers also liked (19)

(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...
(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...
(BDT206) See How Amazon Redshift is Powering Business Intelligence in the Ent...
 
E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"
E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"
E-book "Tendencias del sector turistico 2012: marketing y estrategia turistica"
 
Presentación plataforma pro ideal
Presentación plataforma pro idealPresentación plataforma pro ideal
Presentación plataforma pro ideal
 
Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...
Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...
Comunicado oficial Partido Verde Cali, frente a las elecciones atípicas a la ...
 
BO 4 diseño web intelligence
BO 4 diseño web intelligenceBO 4 diseño web intelligence
BO 4 diseño web intelligence
 
E:\Alfonso Iglesias Marta Rodriguez (6ºA)
E:\Alfonso  Iglesias   Marta Rodriguez (6ºA)E:\Alfonso  Iglesias   Marta Rodriguez (6ºA)
E:\Alfonso Iglesias Marta Rodriguez (6ºA)
 
Bridges inamalbricos
Bridges inamalbricos Bridges inamalbricos
Bridges inamalbricos
 
Soil properties and dune heath reestablishment
Soil properties and dune heath reestablishmentSoil properties and dune heath reestablishment
Soil properties and dune heath reestablishment
 
Texto 3 d animacion de camaras
Texto 3 d animacion de camarasTexto 3 d animacion de camaras
Texto 3 d animacion de camaras
 
Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15
Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15
Apyma Colegio Hijas de Jesús Pamplona. Actividades curso 2014 15
 
Sesión introductoria a los indicios de calidad de las publicaciones científic...
Sesión introductoria a los indicios de calidad de las publicaciones científic...Sesión introductoria a los indicios de calidad de las publicaciones científic...
Sesión introductoria a los indicios de calidad de las publicaciones científic...
 
APRV aka BiLevel
APRV aka BiLevelAPRV aka BiLevel
APRV aka BiLevel
 
Historia del Turismo en Bolivia
Historia del Turismo en BoliviaHistoria del Turismo en Bolivia
Historia del Turismo en Bolivia
 
Situación del eCommerce en Canarias
Situación del eCommerce en CanariasSituación del eCommerce en Canarias
Situación del eCommerce en Canarias
 
Exportación estable
Exportación estableExportación estable
Exportación estable
 
LA ECOLOGIA Y LA PAZ
LA ECOLOGIA Y LA PAZLA ECOLOGIA Y LA PAZ
LA ECOLOGIA Y LA PAZ
 
PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49
PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49
PUERTO Y AEROPUERTO BARCELONA PRESENTACIÓN 49
 
Baja sindical fetico
Baja sindical feticoBaja sindical fetico
Baja sindical fetico
 
Math 6 Project (Alice in Wonderland Ch.4-6)
Math 6 Project (Alice in Wonderland Ch.4-6)Math 6 Project (Alice in Wonderland Ch.4-6)
Math 6 Project (Alice in Wonderland Ch.4-6)
 

Similar to Robotlegs 2 and your brain

Dark Matter, Public Health, and Scientific Computing
Dark Matter, Public Health, and Scientific ComputingDark Matter, Public Health, and Scientific Computing
Dark Matter, Public Health, and Scientific ComputingGreg Wilson
 
The hunt of the unicorn, to capture productivity
The hunt of the unicorn, to capture productivityThe hunt of the unicorn, to capture productivity
The hunt of the unicorn, to capture productivityBrainhub
 
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Sam Livingston-Gray
 
Raspberry pi education_manual
Raspberry pi education_manualRaspberry pi education_manual
Raspberry pi education_manualTry Fajarman
 
CFP workshop
CFP workshopCFP workshop
CFP workshopAmit Zur
 
DL Classe 0 - You can do it
DL Classe 0 - You can do itDL Classe 0 - You can do it
DL Classe 0 - You can do itGregory Renard
 
Deep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItDeep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItHolberton School
 
Treatment Writing Pt II
Treatment Writing Pt IITreatment Writing Pt II
Treatment Writing Pt IIelectricgeisha
 
Chapter.ppt
Chapter.pptChapter.ppt
Chapter.pptRamyaD76
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?Colin Riley
 
Bugs Aren't Random
Bugs Aren't RandomBugs Aren't Random
Bugs Aren't RandomDan Kaminsky
 

Similar to Robotlegs 2 and your brain (20)

Dark Matter, Public Health, and Scientific Computing
Dark Matter, Public Health, and Scientific ComputingDark Matter, Public Health, and Scientific Computing
Dark Matter, Public Health, and Scientific Computing
 
The hunt of the unicorn, to capture productivity
The hunt of the unicorn, to capture productivityThe hunt of the unicorn, to capture productivity
The hunt of the unicorn, to capture productivity
 
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
Cognitive Shortcuts: Models, Visualizations, Metaphors, and Other Lies (Casca...
 
Raspberry pi education_manual
Raspberry pi education_manualRaspberry pi education_manual
Raspberry pi education_manual
 
Raspberry pi education_manual
Raspberry pi education_manualRaspberry pi education_manual
Raspberry pi education_manual
 
CFP workshop
CFP workshopCFP workshop
CFP workshop
 
DL Classe 0 - You can do it
DL Classe 0 - You can do itDL Classe 0 - You can do it
DL Classe 0 - You can do it
 
Deep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItDeep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do It
 
Treatment Writing Pt II
Treatment Writing Pt IITreatment Writing Pt II
Treatment Writing Pt II
 
Chapter13.ppt
Chapter13.pptChapter13.ppt
Chapter13.ppt
 
Chapter.ppt
Chapter.pptChapter.ppt
Chapter.ppt
 
Chapter13.ppt
Chapter13.pptChapter13.ppt
Chapter13.ppt
 
Chapter13.ppt
Chapter13.pptChapter13.ppt
Chapter13.ppt
 
Chapter13.ppt
Chapter13.pptChapter13.ppt
Chapter13.ppt
 
Chapter13.ppt
Chapter13.pptChapter13.ppt
Chapter13.ppt
 
1. The Game Of The Century
1. The Game Of The Century1. The Game Of The Century
1. The Game Of The Century
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial Intelligence
 
Memory
MemoryMemory
Memory
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Bugs Aren't Random
Bugs Aren't RandomBugs Aren't Random
Bugs Aren't Random
 

Recently uploaded

Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideHironori Washizaki
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"DianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
The Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementThe Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementNuwan Dias
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 

Recently uploaded (20)

Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
UiPath Clipboard AI: "A TIME Magazine Best Invention of 2023 Unveiled"
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
The Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API ManagementThe Kubernetes Gateway API and its role in Cloud Native API Management
The Kubernetes Gateway API and its role in Cloud Native API Management
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 

Robotlegs 2 and your brain

  • 1. Robotlegs 2 and Your Brain Stray (Lindsey Fallow) @stray_and_ruby xxcoder.net 1
  • 2. Stray (Lindsey Fallow) @stray_and_ruby xxcoder.net Ruby Stray 2
  • 3. Team Robotlegs Joel Hooks Ro botlegs Core Robot legs or iginator Signals Shaun Smith Robert Penner Till Schneidereit Swiftsuspenders and me, Stray (behind camera) 3
  • 5. What we’ll cover [robotlegs 2] ? ? ? 5
  • 6. A robotlegs pomodoro timer (FOTB attendees won these) You’ll need a pen and paper for exercises 6
  • 8. “Dependency Injection” We’ll try not to terms like this w use ithout explaining them. 8
  • 9. What is Robotlegs? “ActionScript 3 framework” [robotlegs] Doesn’t really tell us much. 9
  • 10. What do we mean by “framework”? 10
  • 11. What do we mean by “framework”? A framework is a tool 11
  • 12. What do we mean by “framework”? Take 30 seconds to A framework is a tool list as many things as you can think of that you could do with this tool. 12
  • 13. What do we mean by “framework”? A framework is a tool Most people would say that this is a better screwdriver, but how many things on your list can’t be done with this tool? 13
  • 14. I used the correct size of screwdriver for this screw. Using the wrong tool can be I used the wrong frustrating, or - worse - it can size of screwdriver result in the work becoming for this screw. ‘broken’ beyond repair. 14
  • 16. You probably included some of these. 16
  • 17. Your toolset includes your brain 17
  • 18. Most developers know almost nothing about the most important part of their toolset. 18
  • 20. :~ man brain > No manual entry for ‘brain’ 20
  • 21. Your brain is a legacy system 21
  • 22. Your brain is a legacy system If you were designing a system for writing software you wouldn’t start with the human brain. 22
  • 23. “The triune brain” Problem solving brain Mammal brain (neo-cortex) Lizard brain (limbic system) (brain stem)
  • 24. Your lizard brain takes care of basic ‘staying alive’ impulses such as breathing. 24
  • 25. Your mammal brain (limbic- system) allows you to form attachments, cooperate and live alongside your peers. 25
  • 26. Your mammal brain evolved before we had language, so its influence on you is mostly chemical - you ‘feel’ messages from your limbic-system. 26
  • 27. Your problem- solving brain is a minor addition to the older brain structure that supports it.
  • 28. We care about the brain because - as with any tool - we need to know: What is your brain good at? What is your brain not good at?
  • 29. What is your brain good at? Simple mental arithmetic
  • 30. What is your brain good at? Estimating 30 seconds Simple mental arithmetic
  • 31. What is your brain good at? Estimating 30 seconds while doing Simple mental arithmetic
  • 32. Start a stopwatch, then make a list of the squares of prime numbers starting from 2, and try to estimate 30 seconds passing.
  • 33. GO!
  • 34. Multi-tasking FTL! Our lizard brain is fine at multi- tasking, but our problem-solving brain isn’t. When we try to multi- task our performance in even simple tasks dramatically reduces.
  • 35. Architecture & Coding are different tasks Using Robotlegs should allow you to focus more cleanly on one or the other. When you’re coding a class, thoughts about architecture shouldn’t be intruding.
  • 36. Working memory • The ‘RAM’ we use to hold things in mind in order to solve a problem. • Items stored in working memory are regularly garbage collected - you won’t remember them later. • Programmers rely heavily on working memory when carrying concepts within and between classes.
  • 37. Working memory test Give yourself 30 seconds to commit the following list of words to memory, and then move to the next slide.
  • 38. Working memory test refugee mill architect quilt mermaid pimple weather salary wallet laundry tram verse internet athletics thunder eyebrow nurse space chess seal egg flight stamp system
  • 39. Working memory test Now write down as many as you can remember. Order is not important. Give yourself 30 - 60 seconds.
  • 40. Working memory test Check your answers. refugee mill architect quilt mermaid pimple weather salary wallet laundry tram verse internet athletics thunder eyebrow nurse space chess seal egg flight stamp system
  • 41. Working memory test Most people remember 6 - 9 words. I’m now going to challenge you to remember more than twice as many, from a different list of 25. Again, give yourself 30 seconds to memorise them, and then move to the next slide.
  • 42. Working memory test 25 words - 30 seconds War and peace Nobody does it better Over the rainbow Love and war Cats and dogs I’ll be back Night before Christmas ctrl, alt, delete
  • 43. Working memory test 25 words - 30 seconds Now write down as many as you can remember. Order is not important. Give yourself 30 - 60 seconds.
  • 44. Working memory test 25 words - 30 seconds Check your answers - count every word that you got correct. War and peace Nobody does it better Over the rainbow Love and war Cats and dogs I’ll be back Night before Christmas ctrl, alt, delete
  • 45. Chunking FTW! Your working me 7±2 of 7 ‘plus or min mory consists us 2’ chunks
  • 46. Chunking is like ‘zip’ for your working memory up and Mickey down Mouse nurse 747 7 7,8,9 A chunk can be a single A chunk can be a word or number sequence, set or pattern that you have met before
  • 47. Chunking uses neural networks Peace Pipes War Repeated simultaneous firing of individual neurons creates connections between them. Triangle Euclid Love
  • 48. “What fires together, wires together!” Peace Pipes War Triangle Euclid Love
  • 49. If you wrote crap code today, you hard wired your brain to ... 49
  • 50. If you wrote crap code today, you hard wired your brain to find it easier to write crap code tomorrow. 50
  • 51. Chunking and Robotlegs We want Robotlegs to occupy as few chunks as possible, leaving most of your working memory free to tackle your specific problem.
  • 52. Are you bored yet? If you are, this presentation isn’t causing you to create enough dopamine. 52
  • 53. Dopamine Dopamine is a neurotransmitter. Like engine oil for your brain. It helps you to stay on task and also makes you more effective at problem solving. 53
  • 54. Dopamine Distracted Focussed 54
  • 55. Dopamine Vicious Circle - not enough dopamine => distracted, unproductive, prone to mistakes, slow progress => Virtuous Circle - plenty lower dopamine. dopamine => focussed, productive, insightful, fast progress => more dopamine. Distracted Focussed 55
  • 56. Dopamine is key to pattern recognition Helps you find ‘the zone’ and stay there 56
  • 57. You noticed that some of these shapes were different, without deciding to look for differences. We call this ‘pre-attentive’ processing. Helps you find ‘the zone’ and stay there 57
  • 58. Give yourself 6 seconds to estimate the number of triangles in the next picture 58
  • 59. 59
  • 61. how many triangles? Answer = Zero (to see why, flick back and forth between the next 2 slides) 61
  • 62. 62
  • 63. 63
  • 64. Our brain craves patterns To the extent that we’ll find them even when they’re not really there. 64
  • 65. Cognitive dissonance The feeling that “Something doesn’t fit”. That ‘feeling’ is a drop in dopamine. 65
  • 66. Dopamine Cognitive dissonance Time 66
  • 67. Cognitive dissonance can be meaningful and directing Fighter pilots rely on it for rapidly detecting problems. It can also tell you that something is wrong with your code. 67
  • 68. Cognitive dissonance can be meaningless and distracting Event.ADDED Event.COMPLETE To me, it feels like there’s something wrong when I mix cases in event types. 68
  • 69. Meaningful, directing vs Meaningless, distracting 69
  • 70. Meaningful, directing In order to tune in to this, we need to limit the amount of cognitive vs dissonance the Robotlegs framework triggers. Meaningless, distracting 70
  • 72. Have you ever written code that was like this?
  • 74. Great solution, wrong problem. It’s a really lovely yoda suit for a dog, but who needs one of those?
  • 75. ‘Right execution of the wrong thing’ happens when one half of our brain dominates decision making. Left brain Right brain (right hand) (left hand) 75
  • 76. A brain of two halves Left brain Right brain (right hand) (left hand) • Specific • Context • Details • Big picture • Calculation • Estimation 76
  • 77. Programming is whole-brain problem solving Left brain Right brain (right hand) (left hand) “How to do it right” “The right thing to do” Emerges as specific Emerges as somatic thoughts (body) feelings 77
  • 78. Metaphors trigger whole brain activity + (Which is why we talked about Yoda-suits for dogs) 78
  • 79. Metaphors trigger whole brain activity + (And why Robotlegs 2 will try to give things descriptive names) 79
  • 80. Brain Summary • Avoid multi-tasking • Take advantage of chunking • Dopamine is key to staying in flow • Make cognitive dissonance meaningful • Programming is a ‘whole brain’ activity • Metaphor activates the ‘whole brain’ 80
  • 81. Brain questions? 81
  • 82. What is Robotlegs? “ActionScript 3 framework” [robotlegs] 82
  • 83. What is Robotlegs? “ActionScript 3 communication, cooperation, and configuration framework” [robotlegs] 83
  • 84. Writing code is easy Very clever class that gets and A menu A really sends data to accepting user tasty view and from a input server A clever class that checks whether Another really A quite simple tasty view class that does input is valid stuff with XML 84
  • 85. Joining code together is hard Very clever class that gets and A menu A really sends data to accepting user tasty view and from a input server A clever class that checks whether Another really A quite simple tasty view class that does input is valid stuff with XML 85
  • 86. A “dependency” is just a need to use an instance of another object for communication, cooperation, or configuration 86
  • 87. “Dependency Injection” var kittenPath:String = “http://kittens978.com/feed.xml”; var kittenRequest:URLRequest = new URLRequest(kittenPath); _kittenLoader = new URLLoader(kittenRequest); 87
  • 88. “Dependency Injection” var kittenPath:String = “http://kittens978.com/feed.xml”; var kittenRequest:URLRequest = new URLRequest(kittenPath); _kittenLoader = new URLLoader(kittenRequest); 88
  • 89. DI can lead to a lot of “pass the parcel code” Animation timing View class that has nothing to do with timing, or feeds, but creates and contains the animation and the menu Feed details Animation class Menu class that that times the displays feeds to fading of images the user 89
  • 90. Static Singletons One approach to solving the ‘pass the parcel’ dependency chain problem. 90
  • 91. Static Singletons Suck • ImposeSingleton class on the extra responsibilities • Impose extra knowledge on the using class • Very difficult to vary and test corner cases 91
  • 92. The Robotlegs dream: Dependency Inception Feed details 92
  • 93. The Robotlegs dream: Dependency Inception A an object inside an object inside an object inside an object... and Feed details nobody knows how it got there - it just appeared. 93
  • 94. To declare a dependency [Inject] public var importantCollaborator:ICollaboratorClass; 94
  • 95. Injections recipe Class with Injected [Inject] object requirements The Robotlegs Injector is just a factory 95
  • 96. Injection opens up possibilities • Communication via a shared eventDispatcher instance • “Mediators” - connecting (dumb) views to your application • The Command Pattern 96
  • 97. Shared eventDispatcher - broadcast events to your app Some Some other Some Some service service model other model 97
  • 98. Mediators for individual views View Mediator 98
  • 99. Commands are snack-size controllers, triggered by events Feed Loader Service FeedSelectorEvent. Mediator FEED_SELECTED Command with [Inject] requirements 99
  • 100. Again: Injection is not magic • The Injector is just a factory • It needswithbe pre-advised about how to deal to injection requests 100
  • 101. How to tell the injector what to do injector.mapSingletonOf(IFeedService, XMLFeedService); injector.mapValue(IFeedConfig, new DefaultFeedConfig()); 101
  • 102. Robotlegs 1 - Feature recap • [Inject] dependencies • Shared eventDispatcher • Mediators automatically created & destroyed for views • Commands mapped to events 102
  • 103. Robotlegs questions? [robotlegs] 103
  • 105. Robotlegs uses ‘Semantic versioning’ • Point releases must be backward compatible - eg 1.3 can be dropped in to an application previously using 1.2, without breakages. • Major releases (eg 2.0 vs 1.0) can rewrite the API. • This gives us great freedom in terms of Robotlegs 2.0 • but... 105
  • 106. Neural networks do not adhere to semantic versioning 106
  • 107. So, everything you already understand about Robotlegs will remain the same. 107
  • 108. We looked on the robotlegs forums for the things that made you feel like this... 108
  • 109. Using mediators as view controllers 109
  • 111. Lack of symmetry addViewListener(MouseEvent.CLICK, handleSubmit); removeViewListener(MouseEvent.CLICK, handleSubmit); 111
  • 112. Lack of symmetry addViewListener(MouseEvent.CLICK, handleSubmit); removeViewListener(MouseEvent.CLICK, handleSubmit); This function doesn’t exist 112
  • 113. Annoying to mix utilities public class MyContext extends RelaxedSignalModuleStatefulContext 113
  • 115. In unfamiliar territory, we can lose our ‘right brain’ context. We feel lost. New and upgrading users want a quick push in the right direction. 115
  • 116. 4 new Robotlegs 2 ‘flavours’ Performance Fast Flexible Clean 116
  • 117. Choose one to start your project Performance Fast Flexible Clean 117
  • 119. Fluent context builder contextBuilder.installUtility(CommandMap) .installUtility(ConfigLoader) .installUtility(ViewManager) .installUtility(SignalCommandMap) .withConfiguration(XMLMappings) .build(); 119
  • 121. Chunking in Robotlegs 2? “Guards and Hooks” 2 Simple ideas add a lot of functionality 121
  • 122. Guards prevent/allow action Feed Loader Service FeedSelectorEvent. Command with Mediator FEED_SELECTED [Inject] requirements 122
  • 123. Guards prevent/allow action Feed Loader Service Sufficient Command with FeedSelectorEvent. Network [Inject] requirements Mediator FEED_SELECTED Capacity Guard Feed Status Fallback Command 123
  • 124. Hooks support collaboration View Mediator Menu Skinner Hook View and a skinning factory are injected into the hook. 124
  • 125. Hooks support collaboration View Mediator View Logic Wiring Hook View and a logic factory are injected into the hook. 125
  • 126. Many-mediators-per-view Enemy Spaceship Enemy Spaceship Mediator Mediator View 126
  • 127. Descriptive type matching ISpaceship IPlayer Spaceship ✓ ✗ Mediator IEnemy IBoss Enemy ✓ ✗ Mediator 127
  • 128. var enemyMatcher:TypeMatcher = matcherFor(ISpaceship) .and(IEnemy) .not(IBoss) .andNot(IEnemyGhost); 128
  • 129. View manager: have your cake and eat it Awesome Utility Mediator Map View Map Map Stage Never more than one listener for a stage event 129
  • 130. Wow, I thought we were somewhere totally different 130
  • 131. Imagine every stop is a state of your app. Confused? 131
  • 132. Grouping control flow can help you Command Flows follow state changes more easily. 132
  • 133. Rule sets Injections recipe Injections recipe Rules applied and removed in response to events. 133
  • 134. Less cognitive dissonance, more flow We often create big classes with multiple responsibilities in order to create a sense of flow. 134
  • 135. Less cognitive dissonance, more flow Robotlegs can help you stay in flow even when working with larger numbers of smaller classes. And speaking of separating responsibilities... 135
  • 136. Modular just works “everything is a module” 136
  • 137. “Soft” mappings Excuse me, if Injections recipe nobody else has already created a mapping for this, then I’ll oblige. Allows you to use this module stand-alone or in combination with other Robotlegs modules. Without recompiling! 137
  • 139. The InspectorGadget “This injection point looks broken” 139
  • 140. The InspectorGadget “This Command never executed” 140
  • 141. The InspectorGadget “This is the order in which objects were instantiated” 141
  • 142. Robotlegs 2: Feature overview • Build your context - have it your way • Rule sets • Fluency / mxml • Multiple mediators • 4 Robotlegs ‘flavours’ • Type matchers • Command flows • The InspectorGadget • Mix view management strategies • Modular just works 142
  • 143. Release process • Alpha releases: API still in flux • Beta releases: API locked, future proof • One feature at a time • Match v1 Feature set • As fast as we can! 143
  • 145. Robotlegs 2 questions? [robotlegs 2] 145

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n
  197. \n
  198. \n
  199. \n
  200. \n
  201. \n
  202. \n
  203. \n
  204. \n
  205. \n
  206. \n
  207. \n
  208. \n
  209. \n
  210. \n
  211. \n
  212. \n
  213. \n
  214. \n
  215. \n
  216. \n
  217. \n
  218. \n
  219. \n
  220. \n
  221. \n
  222. \n
  223. \n
  224. \n
  225. \n
  226. \n
  227. \n
  228. \n
  229. \n
  230. \n
  231. \n
  232. \n
  233. \n
  234. \n
  235. \n
  236. \n
  237. \n
  238. \n
  239. \n
  240. \n
  241. \n
  242. \n
  243. \n
  244. \n
  245. \n
  246. \n
  247. \n
  248. \n
  249. \n
  250. \n
  251. \n
  252. \n
  253. \n
  254. \n
  255. \n
  256. \n
  257. \n
  258. \n
  259. \n
  260. \n
  261. \n
  262. \n
  263. \n
  264. \n
  265. \n
  266. \n
  267. \n
  268. \n
  269. \n
  270. \n
  271. \n
  272. \n
  273. \n
  274. \n
  275. \n
  276. \n
  277. \n
  278. \n
  279. \n
  280. \n
  281. \n
  282. \n