technology and programming methods
DESCRIPTION
A presentation for designers that reviews a range of strategies for being successful at technology and programming projects. This presentation uses a project I worked on as an example of how to approach technical challenges. The Infiniti Interactive Mirror was developed by Nikolai Cornell (a former student) while he was at George P. Johnson, and broke significant ground in several areas. Nikolai brought me in to develop the sensor system for the gestural interactions, and advise on the interaction design.TRANSCRIPT
Technology & Programming Methods
Philip van Allen
Work Smarter
Work Smarter
There is no “right way,” but there are certainly smarter ways
Ask others how they have successes
Be reflective about your process and improve
Example Project: Infiniti Interactive Mirrorshttp://www.nikolaicornell.com/Infiniti-Interactive-Mirrorshttp://www.interactivemirror.net
Enjoy Constant Learning
Even experienced tech people start projects not knowing how they’ll be solvedNo one knows everythingSpend a bunch of time to learn something new for the long term
Enjoy Constant Learning
Even experienced tech people start projects not knowing how they’ll be solvedNo one knows everythingSpend a bunch of time to learn something new for the long term
Enjoy Constant Learning
Get used to being in the dark and learning the new
Technology changes very rapidly
Learn general principles, practice just-in-time-learning
Learn to “be the computer”
Sometimes you have to pay-it-forward
Even experienced tech people start projects not knowing how they’ll be solvedNo one knows everythingSpend a bunch of time to learn something new for the long term
Break the Project Down1.Mount and calibrate sensors2.Get data from sensors3.Filter noise4.Calculate position5.Send position to main code6.Test in real world
Break the Project Down
Just get started, don’t try to solve the whole thingGather bits of code and referencesFind examples of how others have done something similar
Create little experiments for each partSolve the easy parts firstSolve the hardest parts first
Rebuild once you have it figured it out
1.Mount and calibrate sensors2.Get data from sensors3.Filter noise4.Calculate position5.Send position to main code6.Test in real world
Stealing is Okay
I had to design a custom sensor system for the Infiniti Interactive Mirrors that involved two sensors for each mirror which triangulated the location of the hand gesture. Thisrequired some trigonometry.
Stealing is Okay
I had to design a custom sensor system for the Infiniti Interactive Mirrors that involved two sensors for each mirror which triangulated the location of the hand gesture. Thisrequired some trigonometry.
Stealing is Okay
Code is widely given awaystackoverflow for questions/answersopen source Libraries, e.g. jQuerythousands of examples/tutorials
Steal from yourself
Google is your friend
Give back by posting what you find
I had to design a custom sensor system for the Infiniti Interactive Mirrors that involved two sensors for each mirror which triangulated the location of the hand gesture. Thisrequired some trigonometry.
Evolve Your Design
Evolve Your Design
Prioritize features, and don’t lock design too early
Let your prototypes and failures influence the design
Take advantage of discoveries / mistakes
Abuse the technology
Scope design to time / ability
Enjoy Constant Failure
It never works the first time
Get good at debugging
Anticipate and design for failures
Some bugs can take days to fix :-(
Enjoy Constant Failure
Test Constantly
Test Constantly
Each time you make a change
Have others use and abuse it
You’ll need real content
Schedule time for testing and bug-fixing
Be Persistent
Be Persistent
Be confident there’s a way to do it
When it takes way too long, you are learning
Learn to work around roadblocks
Set aside a problem and come back to it later
Keep Your Eye on the Goal
Keep Your Eye on the Goal
Work Smarter
Enjoy Constant Learning
Break the Project Down
Stealing is Okay
Evolve Your Design
Enjoy Constant Failure
Test Constantly
Be Persistent