SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
UI Beyond the
Browser
Peter Christensen
http://pchristensen.com
@christensenp
We live in a
real world,
full of real
people and
real things
Everybody Wants To Create

artists...
Everybody Wants To Create

athletes...
Everybody Wants To Create

young and old...
Everybody Wants To Create

politicians...
Everybody Wants To Create

engineers...
Everybody Wants To Create

designers...
But Software is Different
• Something about creating with software is
qualitatively different
• How many pottery billionaires have you
heard of lately?
• How many other young businesses have
hundreds of millions of users?
Software is bits - information
Why Is Software Different?

vs
Software has no marginal cost
to reproduce
Why Is Software Different?

vs
Software has a low barrier to
entry
Why Is Software Different?

vs

Distribution is easy and cheap
Why Is Software Different?

Tools for abstracting away
non-core tasks
Why Is Software Different?

Worldwide communities share
freely, build on others’ work
Software isn’t constrained by
the real world
Software is Different
• The Internet started with a text-based
protocol
• It expanded to full apps but was still limited
to computers
• Mobile brings software closer to the real
world, but...
What if the User Interface
went beyond the browser?
Maker Faire
• “The Greatest Show and Tell On Earth”
• Build, Make, Show, Share, Repeat
• Display of some of the most innovative ideas
in bringing software to the real world
• Also an owerwhelmingly awesome
experience :)
Maker Faire

Robot bugs that skitter,
made with $10 of electronics
Maker Faire

Real-time visualization of dancing
https://github.com/benMcChesney/ofxOpenVJ
Maker Faire

250 Fish and Lobsters Singing Beethoven’s 9th
http://www.sashimitabernaclechoir.org/
Maker Faire
Coming Soon to a City Near You!

http://makerfaire.com/map/
Atoms Are
Fun!
Software Enables Intelligent
Interaction With Abstract
Things
Hardware Enables Intelligent
Interaction With Physical
Things
Hardware Becoming Software
“Hackers love to build hardware, and customers love
to buy it. So if the ease of shipping hardware even
approached the ease of shipping software, we'd see a
lot more hardware startups.”
http://www.paulgraham.com/hw.html
Hardware Becoming Software

• Fast iteration

• Collaboration tools

• Easier manufacturing • Abstract non-core tasks
• More reliable funding • The Maker Movement
The Maker Movement
The Maker Movement

New tools for design and experimentation
Left: http://upverter.com for designing circuits
Right: 3D printer for prototyping complex shapes
The Maker Movement

Tools and resources for learning
L: Adafruit tutorials http://learn.adafruit.com/
C: LightUp augmented reality http://www.lightup.io/
R: littleBits kits http://littlebits.com/
The Maker Movement

DIY Projects
Left: Roominate DIY Dollhouse Kits
http://www.roominatetoy.com/
Right: Retro Gaming with Raspberry Pi
http://learn.adafruit.com/retro-gaming-with-raspberry-pi
How I Got Into Hardware
How I Got Into Hardware
• I had no hardware background except for 1
college
• Found OpenROV on Kickstarter, contacted
team: http://openrov.com
• YC hardware hackathon, met Tempo
Automation: http://tempoautomation.com/
• NodeBots community: http://nodebots.io/
OpenROV
• Started by guys looking for
“return on adventure”
• Sold > 100 kits on Kickstarter
• Open, worldwide community

http://www.youtube.com/watch?v=noTsGnQD8Go
http://www.youtube.com/watch?v=HCDhJJC0-Vc
OpenROV
• Node.js server serves cockpit web
page, translates input into motor
commands through Arduino
• I contribute software design and
advice
• I take and post notes from monthly
dev calls, helps community
Tempo Automation
• Desktop assembly of electronic circuit boards
• Met at YC Hardware hackathon in Feb ’13
• Asked a ton of very basic questions, learned basics of
electronics, assembly, hardware/software interaction,
etc
• Continued working with team, writing software for a
prototype for Maker Faire
Tempo Automation

http://www.youtube.com/watch?v=-jsQF-xFdJM
https://www.facebook.com/video/embed?
video_id=4184537549975
NodeBots Community

NodeBots: a full day
event where JS
developers team up and
use soldering guns and
parts nearby to create
amazing robotic devices.
http://nodebots.io/
How Can You Get
Started With Hardware?
READ THIS!
• How to continue learning
for the rest of your life
• How to get started with
different tools and
hardware
• OpenROV founder
• http://
www.zerotomaker.com/
Arduino
Arduino is an open-source
electronics prototyping
platform based on flexible,
easy-to-use hardware and
software. It's intended for
artists, designers, hobbyists,
and anyone interested in
creating interactive objects or
environments.
- http://www.arduino.cc/
Arduino
Arduino IDE
• Free, multiplatform
• Includes examples with
documentation
• Compiles code and loads
as firmware to any
Arduino-compatible
bord
Arduino

A family of compatible boards
with different options for:
extensibility, features,
size, power, cost,
Miniature Hardware

Raspberry Pi

Beagle Bone Black

Small, inexpensive general purpose computers
with ARM chips, USB and HDMI ports, run Linux
and any software (JVM, LAMP, OpenCV, etc)
Javascript Hardware
Tessel - microcontroller that runs Javascript
$$! €€! (?)
$$! €€! (?)
• Not expensive to start: ~$30 for Arduino,
~$45 for Raspberry Pi or BeagleBone
• Kits for < $100
• Whole pile of electronic parts and
computers for < $200
$$! €€! (?)
• Prototyping parts are reusable; you only
incur more costs when you:
• break stuff (it happens)
• want new features (motors, sensors, etc)
• want to build more because you designed
something useful
$$! €€! (?)
Where to Buy?
http://www.adafruit.com/
http://sparkfun.com/
http://www.hobbytronics.co.uk/
Get Involved With A Project
• Find a hardware project you’re interested in
• Maker Faire, Kickstarter, Meetups, etc
• Add to software, improve software practices
• Source control, abstraction, testing, etc
• Hardware + software projects combine people
with diverse skillsets
Get Involved With A Project
• Build on hardware APIs
• Every project needs testers, customers,
reference projects, success stories
• http://choosatron.com/
• Community contributions - documentation,
testing, support, blogging, etc
GOOF
AROUND!!
Electronics Crash Course
Electronics Crash Course
• Electrons flow from negative to positive
(current)
• If there’s no path, the flow stops (circuit)
• You can put stuff in the circuit to use, alter,
or react to the current
• Each component is like a function with
inputs and outputs, and they chain together
Electronics Crash Course
• Wire - connect 2
components, function
argument
• Battery - provides
current, run the
program
• LED - side effect,
output

http://electronicsclub.info/circuitsymbols.htm
Electronics Crash Course
• On-off Switch boolean variable
• 2-Way Switch - if
statement
• Resistor - input
checking
http://electronicsclub.info/circuitsymbols.htm
Electronics Crash Course
• Breadboard for
prototyping
• Conductive strips
underneath holes make
easy connections
• Like a REPL or console
http://electronicsclub.info/circuitsymbols.htm
Electronics Crash Course

http://learn.adafruit.com/category/learn-arduino
Electronics Crash Course
• Arduino code has 2 requires functions
• void setup() - run once when the board is
powered up
• void loop() - runs repeatedly until the board
is powered down
• Other functions allowed for clarity
Electronics Crash Course
• Custom circuit design - Eagle,
CAD, http://upverter.com
• Designs printed on a PCB
(printed circuit board)
• Components assembled into
finished hardware
Javascript for Makers
Javascript For Makers
• Javascript rose to new popularity coincident with
the Maker movement
• Maker projects use the web
• Projects made by non-developers, tinkerers,
engineers - smart people new to software
• Hardware is event-based, so JS is a good fit
• Javascript is a kind language for beginners - single
numeric type, familiar syntax, type conversions
Javascript For Makers
Enabling Libraries
• node-serialport - https://github.com/
voodootikigod/node-serialport
• Firmata - common firmware protocol for
controlling microcontroller boards
http://
firmata.org/
Javascript For Makers
JohnnyFive
button = new five.Button(8);
// "down" the button is pressed
button.on("down", function() {
console.log("down");
});
// "hold" the button is pressed for specified time.
//
defaults to 500ms (1/2 second)
button.on("hold", function() {
console.log("hold");
});
// "up" the button is released
button.on("up", function() {
console.log("up");
});

Firmata library with component behavior events
https://github.com/rwldrn/johnny-five
Javascript For Makers
Enabling Libraries - JohnnyFive

http://www.youtube.com/watch?v=gFiL4xVINdw
Gateway Hardware
Gateway Hardware
• Hacking on hardware is fun
• But it’s a whole new skillset to learn separate from
programming
• Sometimes you just want to program hardware
• Off-the-shelf robots make that easy
• And they’re

FUN! :)
Gateway Hardware - AR Drone
Gateway Hardware
Gateway Hardware - AR Drone
• Quadcopter flying robot
• 50cm x 50cm, 400g (20” x 20”, ~1lb) - flying pizza
box
• On-board video camera
• Controllable by open protocol - smartphone app or
code
Gateway Hardware - AR Drone
var arDrone = require('ar-drone');
var client = arDrone.createClient();
client.takeoff();
client
.after(5000, function() {
this.clockwise(0.5);
})
.after(3000, function() {
this.animate('flipLeft', 15);
})
.after(1000, function() {
this.stop();
this.land();
});

http://nodecopter.com/
http://www.youtube.com/watch?v=ymlbNEL5TQQ
Gateway Hardware - AR Drone

Voxel-js simulation of AR Drone
Implements the Nodebots API
http://shama.github.io/voxel-drone/
Gateway Hardware - Sphero

http://www.youtube.com/watch?v=43tctP24Xmo
Gateway Hardware - Sphero
• Robotic ball the size of an apple
• Bluetooth control by smartphone apps
• Scriptable by code
• Much better than AR Drone if you have kids, pets,
small apartment
Gateway Hardware - Sphero
https://github.com/mick/node-sphero
var roundRobot = require('node-sphero');
var sphero = new roundRobot.Sphero();
sphero.on('connected', function(ball) {
ball.setRGBLED(0, 255, 0, false);
});
sphero.connect();
Concluding Thoughts
• What would you make if you weren’t stuck
inside the computer or the internet?
• What objects do you interact with daily that
you could make smarter?
• What would you do if you could program
the real world?
You are only limited by

your imagination.
What will

YOU
make?
Peter Christensen
http://pchristensen.com
@christensenp

Mais conteúdo relacionado

Mais procurados

Mobile Development Options
Mobile Development OptionsMobile Development Options
Mobile Development OptionsGreat Wide Open
 
Hardware hacking on the pi; what's js got to do with it
Hardware hacking on the pi; what's js got to do with itHardware hacking on the pi; what's js got to do with it
Hardware hacking on the pi; what's js got to do with itAlexander Roche
 
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"Daniel Bryant
 
Prototyping for mobile
Prototyping for mobilePrototyping for mobile
Prototyping for mobileMemi Beltrame
 
2010 01 27 Chairman Opening Remarks
2010 01 27 Chairman Opening Remarks2010 01 27 Chairman Opening Remarks
2010 01 27 Chairman Opening RemarksSimon Coles
 
Real world software launch
Real world software launchReal world software launch
Real world software launchKunal Johar
 

Mais procurados (7)

Mobile Development Options
Mobile Development OptionsMobile Development Options
Mobile Development Options
 
Hardware hacking on the pi; what's js got to do with it
Hardware hacking on the pi; what's js got to do with itHardware hacking on the pi; what's js got to do with it
Hardware hacking on the pi; what's js got to do with it
 
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
 
Prototyping for mobile
Prototyping for mobilePrototyping for mobile
Prototyping for mobile
 
Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
 
2010 01 27 Chairman Opening Remarks
2010 01 27 Chairman Opening Remarks2010 01 27 Chairman Opening Remarks
2010 01 27 Chairman Opening Remarks
 
Real world software launch
Real world software launchReal world software launch
Real world software launch
 

Semelhante a UI Beyond the Browser - Software for Hardware Projects

Raspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker MovementRaspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker Movementsrmonk
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 KeynotePeter Wang
 
Technologies of Makerspaces
Technologies of MakerspacesTechnologies of Makerspaces
Technologies of MakerspacesEdward Iglesias
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreNick Landry
 
Build IoT Applications with C#
Build IoT Applications with C#Build IoT Applications with C#
Build IoT Applications with C#Ken Samson, MISM
 
Pi, Python, and Paintball??? Innovating with Affordable Tech!
Pi, Python, and Paintball??? Innovating with Affordable Tech!Pi, Python, and Paintball??? Innovating with Affordable Tech!
Pi, Python, and Paintball??? Innovating with Affordable Tech!Barry Tarlton
 
Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersKinoma
 
IoT is Something to Figure Out
IoT is Something to Figure OutIoT is Something to Figure Out
IoT is Something to Figure OutPeter Hoddie
 
ch4-Software is Everywhere
ch4-Software is Everywherech4-Software is Everywhere
ch4-Software is Everywheressuser06ea42
 
small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)ariannaschlegel
 
What is Raspberry Pi
What is Raspberry PiWhat is Raspberry Pi
What is Raspberry PiDevina Dona
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
 
Bot. You said bot? Let build bot then! - Laurent Ellerbach
Bot. You said bot? Let build bot then! - Laurent EllerbachBot. You said bot? Let build bot then! - Laurent Ellerbach
Bot. You said bot? Let build bot then! - Laurent EllerbachITCamp
 
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp
 
What’s New and Exciting in Library Makerspaces
What’s New and Exciting in Library MakerspacesWhat’s New and Exciting in Library Makerspaces
What’s New and Exciting in Library MakerspacesSt. Petersburg College
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Antti Koskela
 

Semelhante a UI Beyond the Browser - Software for Hardware Projects (20)

Raspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker MovementRaspberry Pi, Arduino and the Maker Movement
Raspberry Pi, Arduino and the Maker Movement
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 Keynote
 
Technologies of Makerspaces
Technologies of MakerspacesTechnologies of Makerspaces
Technologies of Makerspaces
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT Core
 
2013-06-26: Meet The Blinky Tape
2013-06-26: Meet The Blinky Tape2013-06-26: Meet The Blinky Tape
2013-06-26: Meet The Blinky Tape
 
Build IoT Applications with C#
Build IoT Applications with C#Build IoT Applications with C#
Build IoT Applications with C#
 
api-driven-development.pdf
api-driven-development.pdfapi-driven-development.pdf
api-driven-development.pdf
 
Pi, Python, and Paintball??? Innovating with Affordable Tech!
Pi, Python, and Paintball??? Innovating with Affordable Tech!Pi, Python, and Paintball??? Innovating with Affordable Tech!
Pi, Python, and Paintball??? Innovating with Affordable Tech!
 
Hardware Prototyping for Software Developers
Hardware Prototyping for Software DevelopersHardware Prototyping for Software Developers
Hardware Prototyping for Software Developers
 
IoT is Something to Figure Out
IoT is Something to Figure OutIoT is Something to Figure Out
IoT is Something to Figure Out
 
ch4-Software is Everywhere
ch4-Software is Everywherech4-Software is Everywhere
ch4-Software is Everywhere
 
Makercamp
MakercampMakercamp
Makercamp
 
small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)
 
What is Raspberry Pi
What is Raspberry PiWhat is Raspberry Pi
What is Raspberry Pi
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
Tod kurt
Tod kurtTod kurt
Tod kurt
 
Bot. You said bot? Let build bot then! - Laurent Ellerbach
Bot. You said bot? Let build bot then! - Laurent EllerbachBot. You said bot? Let build bot then! - Laurent Ellerbach
Bot. You said bot? Let build bot then! - Laurent Ellerbach
 
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
 
What’s New and Exciting in Library Makerspaces
What’s New and Exciting in Library MakerspacesWhat’s New and Exciting in Library Makerspaces
What’s New and Exciting in Library Makerspaces
 
Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018Citizen Developer Tools - session at SPS New England 10/20/2018
Citizen Developer Tools - session at SPS New England 10/20/2018
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

UI Beyond the Browser - Software for Hardware Projects

  • 1. UI Beyond the Browser Peter Christensen http://pchristensen.com @christensenp
  • 2. We live in a real world, full of real people and real things
  • 3. Everybody Wants To Create artists...
  • 4. Everybody Wants To Create athletes...
  • 5. Everybody Wants To Create young and old...
  • 6. Everybody Wants To Create politicians...
  • 7. Everybody Wants To Create engineers...
  • 8. Everybody Wants To Create designers...
  • 9. But Software is Different • Something about creating with software is qualitatively different • How many pottery billionaires have you heard of lately? • How many other young businesses have hundreds of millions of users?
  • 10. Software is bits - information
  • 11. Why Is Software Different? vs Software has no marginal cost to reproduce
  • 12. Why Is Software Different? vs Software has a low barrier to entry
  • 13. Why Is Software Different? vs Distribution is easy and cheap
  • 14. Why Is Software Different? Tools for abstracting away non-core tasks
  • 15. Why Is Software Different? Worldwide communities share freely, build on others’ work
  • 16. Software isn’t constrained by the real world
  • 17. Software is Different • The Internet started with a text-based protocol • It expanded to full apps but was still limited to computers • Mobile brings software closer to the real world, but...
  • 18. What if the User Interface went beyond the browser?
  • 19. Maker Faire • “The Greatest Show and Tell On Earth” • Build, Make, Show, Share, Repeat • Display of some of the most innovative ideas in bringing software to the real world • Also an owerwhelmingly awesome experience :)
  • 20. Maker Faire Robot bugs that skitter, made with $10 of electronics
  • 21. Maker Faire Real-time visualization of dancing https://github.com/benMcChesney/ofxOpenVJ
  • 22. Maker Faire 250 Fish and Lobsters Singing Beethoven’s 9th http://www.sashimitabernaclechoir.org/
  • 23. Maker Faire Coming Soon to a City Near You! http://makerfaire.com/map/
  • 25. Software Enables Intelligent Interaction With Abstract Things Hardware Enables Intelligent Interaction With Physical Things
  • 26. Hardware Becoming Software “Hackers love to build hardware, and customers love to buy it. So if the ease of shipping hardware even approached the ease of shipping software, we'd see a lot more hardware startups.” http://www.paulgraham.com/hw.html
  • 27. Hardware Becoming Software • Fast iteration • Collaboration tools • Easier manufacturing • Abstract non-core tasks • More reliable funding • The Maker Movement
  • 29. The Maker Movement New tools for design and experimentation Left: http://upverter.com for designing circuits Right: 3D printer for prototyping complex shapes
  • 30. The Maker Movement Tools and resources for learning L: Adafruit tutorials http://learn.adafruit.com/ C: LightUp augmented reality http://www.lightup.io/ R: littleBits kits http://littlebits.com/
  • 31. The Maker Movement DIY Projects Left: Roominate DIY Dollhouse Kits http://www.roominatetoy.com/ Right: Retro Gaming with Raspberry Pi http://learn.adafruit.com/retro-gaming-with-raspberry-pi
  • 32. How I Got Into Hardware
  • 33. How I Got Into Hardware • I had no hardware background except for 1 college • Found OpenROV on Kickstarter, contacted team: http://openrov.com • YC hardware hackathon, met Tempo Automation: http://tempoautomation.com/ • NodeBots community: http://nodebots.io/
  • 34. OpenROV • Started by guys looking for “return on adventure” • Sold > 100 kits on Kickstarter • Open, worldwide community http://www.youtube.com/watch?v=noTsGnQD8Go http://www.youtube.com/watch?v=HCDhJJC0-Vc
  • 35. OpenROV • Node.js server serves cockpit web page, translates input into motor commands through Arduino • I contribute software design and advice • I take and post notes from monthly dev calls, helps community
  • 36. Tempo Automation • Desktop assembly of electronic circuit boards • Met at YC Hardware hackathon in Feb ’13 • Asked a ton of very basic questions, learned basics of electronics, assembly, hardware/software interaction, etc • Continued working with team, writing software for a prototype for Maker Faire
  • 38. NodeBots Community NodeBots: a full day event where JS developers team up and use soldering guns and parts nearby to create amazing robotic devices. http://nodebots.io/
  • 39. How Can You Get Started With Hardware?
  • 40. READ THIS! • How to continue learning for the rest of your life • How to get started with different tools and hardware • OpenROV founder • http:// www.zerotomaker.com/
  • 41. Arduino Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments. - http://www.arduino.cc/
  • 42. Arduino Arduino IDE • Free, multiplatform • Includes examples with documentation • Compiles code and loads as firmware to any Arduino-compatible bord
  • 43. Arduino A family of compatible boards with different options for: extensibility, features, size, power, cost,
  • 44. Miniature Hardware Raspberry Pi Beagle Bone Black Small, inexpensive general purpose computers with ARM chips, USB and HDMI ports, run Linux and any software (JVM, LAMP, OpenCV, etc)
  • 45. Javascript Hardware Tessel - microcontroller that runs Javascript
  • 47. $$! €€! (?) • Not expensive to start: ~$30 for Arduino, ~$45 for Raspberry Pi or BeagleBone • Kits for < $100 • Whole pile of electronic parts and computers for < $200
  • 48. $$! €€! (?) • Prototyping parts are reusable; you only incur more costs when you: • break stuff (it happens) • want new features (motors, sensors, etc) • want to build more because you designed something useful
  • 49. $$! €€! (?) Where to Buy? http://www.adafruit.com/ http://sparkfun.com/ http://www.hobbytronics.co.uk/
  • 50. Get Involved With A Project • Find a hardware project you’re interested in • Maker Faire, Kickstarter, Meetups, etc • Add to software, improve software practices • Source control, abstraction, testing, etc • Hardware + software projects combine people with diverse skillsets
  • 51. Get Involved With A Project • Build on hardware APIs • Every project needs testers, customers, reference projects, success stories • http://choosatron.com/ • Community contributions - documentation, testing, support, blogging, etc
  • 54. Electronics Crash Course • Electrons flow from negative to positive (current) • If there’s no path, the flow stops (circuit) • You can put stuff in the circuit to use, alter, or react to the current • Each component is like a function with inputs and outputs, and they chain together
  • 55. Electronics Crash Course • Wire - connect 2 components, function argument • Battery - provides current, run the program • LED - side effect, output http://electronicsclub.info/circuitsymbols.htm
  • 56. Electronics Crash Course • On-off Switch boolean variable • 2-Way Switch - if statement • Resistor - input checking http://electronicsclub.info/circuitsymbols.htm
  • 57. Electronics Crash Course • Breadboard for prototyping • Conductive strips underneath holes make easy connections • Like a REPL or console http://electronicsclub.info/circuitsymbols.htm
  • 59. Electronics Crash Course • Arduino code has 2 requires functions • void setup() - run once when the board is powered up • void loop() - runs repeatedly until the board is powered down • Other functions allowed for clarity
  • 60. Electronics Crash Course • Custom circuit design - Eagle, CAD, http://upverter.com • Designs printed on a PCB (printed circuit board) • Components assembled into finished hardware
  • 62. Javascript For Makers • Javascript rose to new popularity coincident with the Maker movement • Maker projects use the web • Projects made by non-developers, tinkerers, engineers - smart people new to software • Hardware is event-based, so JS is a good fit • Javascript is a kind language for beginners - single numeric type, familiar syntax, type conversions
  • 63. Javascript For Makers Enabling Libraries • node-serialport - https://github.com/ voodootikigod/node-serialport • Firmata - common firmware protocol for controlling microcontroller boards http:// firmata.org/
  • 64. Javascript For Makers JohnnyFive button = new five.Button(8); // "down" the button is pressed button.on("down", function() { console.log("down"); }); // "hold" the button is pressed for specified time. // defaults to 500ms (1/2 second) button.on("hold", function() { console.log("hold"); }); // "up" the button is released button.on("up", function() { console.log("up"); }); Firmata library with component behavior events https://github.com/rwldrn/johnny-five
  • 65. Javascript For Makers Enabling Libraries - JohnnyFive http://www.youtube.com/watch?v=gFiL4xVINdw
  • 67. Gateway Hardware • Hacking on hardware is fun • But it’s a whole new skillset to learn separate from programming • Sometimes you just want to program hardware • Off-the-shelf robots make that easy • And they’re FUN! :)
  • 68. Gateway Hardware - AR Drone Gateway Hardware
  • 69. Gateway Hardware - AR Drone • Quadcopter flying robot • 50cm x 50cm, 400g (20” x 20”, ~1lb) - flying pizza box • On-board video camera • Controllable by open protocol - smartphone app or code
  • 70. Gateway Hardware - AR Drone var arDrone = require('ar-drone'); var client = arDrone.createClient(); client.takeoff(); client .after(5000, function() { this.clockwise(0.5); }) .after(3000, function() { this.animate('flipLeft', 15); }) .after(1000, function() { this.stop(); this.land(); }); http://nodecopter.com/ http://www.youtube.com/watch?v=ymlbNEL5TQQ
  • 71. Gateway Hardware - AR Drone Voxel-js simulation of AR Drone Implements the Nodebots API http://shama.github.io/voxel-drone/
  • 72. Gateway Hardware - Sphero http://www.youtube.com/watch?v=43tctP24Xmo
  • 73. Gateway Hardware - Sphero • Robotic ball the size of an apple • Bluetooth control by smartphone apps • Scriptable by code • Much better than AR Drone if you have kids, pets, small apartment
  • 74. Gateway Hardware - Sphero https://github.com/mick/node-sphero var roundRobot = require('node-sphero'); var sphero = new roundRobot.Sphero(); sphero.on('connected', function(ball) { ball.setRGBLED(0, 255, 0, false); }); sphero.connect();
  • 75. Concluding Thoughts • What would you make if you weren’t stuck inside the computer or the internet? • What objects do you interact with daily that you could make smarter? • What would you do if you could program the real world?
  • 76. You are only limited by your imagination.