high tech delight
- @noopkat -

programming the hard out of hardware

agenda

suz hinton

  1. » @noopkat

  2. » front-end dev @ kickstarter

photo of NYC cityscape

suz hinton

  1. » member of NodeJS hardware WG

  2. » member of the Tessel 2 team

photo of NYC cityscape

background

delight

human side of coding

projects

 

shoes decorated to look like cats, connected with a wire
chunky black plastic bracelet worn on posed wrist, with 2 red 8-bit style hearts embossed on top of bracelet iPhone on table with text messages of kitten pictures displaying

 

raspberry pi computer running off a battery and connected to a thermal printer

 

thermal printed roll of paper with images and text on it

 

metrocard pcb

 

angler fish pcb

 

angler fish pcb

feelings

JavaScript???

  1. "universal"

  2. low barrier to entry

  3. event driven

  4. "internet" of things

community

 

nodebots website

 

nodebot workshopper screenshot

 

nodebot workshopper screenshot

 

nodebot workshopper screenshot

making tools, not projects

oled screen on a breadboard, displaying a pixelated monchrome picture of a cat's face

 

avrgirl logo

case study 1:

"out of the box experience"

 

computer and arduino looking at eachother, confused.

 

computer and arduino looking at eachother, confused.
  1. 1. Download the Arduino IDE

  2. 2. Install

  3. 3. Open the IDE

  1. 4. Open StandardFirmata sketch

  2. 5. Choose the correct Arduino board

  3. 6. Click 'upload'

  1. 7. Close the IDE and never open it again

  2. 8. Feel confused

  3. 9. Ok, now you can do robots

 

dead expression face

we can do better

 

avrgirl logo

 

terminal program showing flashing progress

🎈 🎉 firmata-party 🎉 🎈

      $ npm install -g firmata-party
      $ firmata-party uno
      

      $ npm run robot_setup
      

lesson:

create a magic first impression

 

happy expression face

case study 2:

"when things go wrong"

 

terminal with arduino not found error

 

a comment on a github issue with lots of questions

 

a github issue asking for hardware testers

make helping fun again

 

screenshot of test pilot app in a browser

 

screenshot of test pilot app in a browser

 

screenshot of couchdb error

lesson:

make it easy and fun for others to help

 

happy expression face

case study 3:

"useful feedback loop"

AVRGirl has 9 types of errors

Eval, Internal, Range, Reference,
Syntax, Type, URI

 

dead expression face

        err.name // 'Error'
      

        err.name // 'board_not_found_error'
      

        err.name // 'board_not_found_error'
        err.message // 'Uno board was not found.'
      

        Object.create(Error.prototype);
      

youtu.be/XcJSIU5_fyw

screenshot of youtube video
  1. I18n friendly

  2. no more dodgy string regexes

  3. shows thought for developer

lesson:

think about your users

also think about your users' users!

 

heart eyes expression face

case study 4:

"community"

the Tessel project logo
the Tessel 2 board

Open Governance Model

the Tessel project organisation diagram

Clearly defined community goals

"Grow the community to increase contributions and encourage both inclusion and accessibility to newcomers."

"Support and grow the number of production deployments of Tessel in the field."

"Meet the Tesselators"

Meet the Tesselators event participants standing together

lesson:

community improves your product

community cannot be bought

(it can only be earned)

 

yay expression face

bringing it all together

javascript rocks for robots

treat peers like regular users

don't assume knowledge

provide first class support

contributions over complaints

always ask:

♥ where can I delight?

⋆ thank you ⋆