SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
How	
  I	
  Got	
  Back	
  my	
  Coding	
  Mojo!	
  
Mark	
  West	
  
Safe	
  Harbour	
  
What	
  is	
  Mojo?	
  
 
	
   “Any	
  applica+on	
  that	
  can	
  be	
  
wri3en	
  in	
  JavaScript,	
  will	
  
eventually	
  be	
  wri3en	
  in	
  
JavaScript”	
  
James	
  Atwood	
  (founder,	
  	
  stackoverflow.com)	
  
NodeBot	
  Rover	
  
NodeBot	
  Rover	
  Demo	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Computer	
  
Micro	
  
Controller	
  
Camera	
  
Chassis	
  
Pan	
  &	
  Tilt	
  
SoAware	
  
Speech	
  
Robot	
  
Control	
  
Web	
  
Server	
  
IntegraFon	
  
Other	
  
The	
  Arduino	
  Ecosystem	
  
•  MicroController	
  plaLorm.	
  
•  Many	
  different	
  Arduino	
  
models.	
  
•  Open	
  Source	
  design.	
  
•  MicroControllers	
  extensible	
  
via	
  “Shields”.	
  
PuSng	
  the	
  Hardware	
  Together	
  
Two	
  Servos	
  
for	
  Camera	
  
Pan	
  &	
  Tilt	
  
Servos	
  wired	
  
to	
  Arduino	
  
Chassis	
  
Raspberry	
  PI	
  	
  
In	
  PlasFc	
  Case	
  
WIFI	
  Dongle	
  
Raspberry	
  PI	
  
Camera	
  
Wired	
  directly	
  
to	
  the	
  
Raspberry	
  PI	
  
 
	
  
	
  
	
  
	
  
	
  
Actuators	
  
Sensors	
  
Nervous	
  System	
  
Raspberry	
  PI	
  2	
  Raspberry	
  PI	
  Cam	
  
Arduberry	
  Microcontroller	
   Arduino	
  Chassis	
   Servo	
  
Servo	
  
Brain	
  
NodeBot	
  Rover	
  Hardware	
  
Combining	
  the	
  Raspberry	
  PI	
  &	
  Arduino	
  
Raspberry	
  PI	
  
•  Linux	
  PC.	
  
•  Supports	
  USB	
  peripherals.	
  
•  Programming.	
  
Arduino	
  PlaNorm	
  
•  MicroController.	
  
•  Robust.	
  
•  Flexibility	
  (input/output).	
  
The	
  whole	
  is	
  greater	
  than	
  the	
  sum	
  of	
  parts!	
  
 
	
  
	
  
	
  
	
  
	
  
Actuators	
  
Sensors	
  
Nervous	
  System	
  
Raspberry	
  PI	
  2	
  Raspberry	
  PI	
  Cam	
  
Arduberry	
  Microcontroller	
   Arduino	
  Chassis	
   Servo	
  
Servo	
  
Brain	
  
NodeBot	
  Rover	
  Hardware	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Raspberry	
  	
  
PI	
  
Arduberry	
  
(Arduino)	
  
Pi	
  Cam	
  
Zumo	
  
Chassis	
  
Servos	
  
SoAware	
  
Speech	
  
Robot	
  
Control	
  
Web	
  
Server	
  
IntegraFon	
  
Other	
  
 
	
  
	
  
	
  
	
  
	
  
Raspberry	
  PI	
  2	
  
Arduberry	
  
Servo	
  
Soware	
  Communica]on	
  across	
  
Hardware	
  Layers	
  
Servo	
  
Raspberry	
  PI	
  	
   Chassis	
  
JavaScriptPI	
  	
   Binary	
  (Compiled	
  C	
  /	
  C++)	
  	
  
The	
  NodeBots	
  Movement	
  
Source	
  :	
  nodebots.io	
  
1.  Maturity	
  
2.  Community	
  
3.  DSL	
  
4.  Portability	
  
5.  Open	
  Source	
  
6.  Node.js	
  ecosystem	
  
7.  REPL	
  
Benefits	
  of	
  using	
  Johnny-­‐Five	
  
var five = require("johnny-five");
var myBoard = new five.Board();
myBoard.on("ready", function() {
var myLed = new five.Led(13);
myLed.blink(500);
this.repl.inject({
replLed: myLed
});
});
Imports	
  J5	
  Dependancy	
  
Adds	
  LED	
  instance	
  to	
  REPL	
  
Declares	
  LED	
  as	
  connected	
  to	
  UNO	
  Pin	
  13	
  
Blinks	
  LED	
  every	
  500	
  milliseconds	
  
Code	
  block	
  triggered	
  by	
  UNO	
  ”Ready”	
  Event	
  
Ini]alises	
  UNO	
  
Johnny-­‐Five	
  Code	
  Example	
  
hhps://vimeo.com/134953425	
  
	
  
 
	
  
	
  
	
  
	
  
	
  
Arduberry	
  
Servo	
  
Bridging	
  the	
  gap	
  with	
  Firmata	
  
Servo	
  
Raspberry	
  PI	
  	
   Chassis	
  
Johnny-­‐Five	
  
(Firmata	
  Client)	
  
Std.	
  Firmata	
  
(Firmata	
  Server)	
  
JavaScriptPI	
  	
   Binary	
  (Compiled	
  C	
  /	
  C++)	
  	
  
	
  
GeSng	
  Started	
  with	
  Johnny-­‐Five	
  
1.  Buy	
  an	
  Arduino	
  Experimenters	
  Kit.	
  
2.  Follow	
  the	
  tutorials	
  at	
  hSp://node-­‐ardx.org.	
  
3.  Visit	
  hSp://johnny-­‐five.io	
  for	
  more	
  
informa]on	
  and	
  inspira]on.	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Raspberry	
  	
  
PI	
  
Arduberry	
  
(Arduino)	
  
Pi	
  Cam	
  
Zumo	
  
Chassis	
  
Servos	
  
SoAware	
  
Speech	
  
Johnny-­‐
Five	
  
Web	
  
Server	
  
IntegraFon	
  
Other	
  
Speech	
  Recogni]on	
  Requirements	
  
Need	
  to	
  have 	
  	
  
•  Quality	
  and	
  speed	
  of	
  
speech	
  recogni]on.	
  
•  Free,	
  no	
  restric]ons.	
  
•  Soware	
  based.	
  
•  JavaScript.	
  
Nice	
  to	
  have	
  
•  Speech	
  to	
  text.	
  
•  One	
  stop	
  service.	
  
•  Bahle	
  tested.	
  
Web	
  Speech	
  
API	
  
(limited	
  to	
  Google	
  Chrome)	
  
Web	
  Speech	
  API	
  :	
  Configura]on	
  
Web	
  Speech	
  API	
  :	
  Events	
  
Web	
  Speech	
  API	
  :	
  Control	
  
Speech	
  Demo	
  
Buhon	
  press	
  and	
  release	
  connected	
  to	
  
Web	
  Speech	
  API	
  start	
  and	
  stop	
  Control	
  
methods.	
  
Con+nuous	
  dicta+on	
  switched	
  on,	
  to	
  avoid	
  
cuSng	
  commands	
  short.	
  	
  
Interim	
  results	
  switched	
  on	
  –	
  shown	
  in	
  
green	
  text	
  (final	
  results	
  in	
  white).	
  
Each	
  set	
  of	
  results	
  checked	
  for	
  uniqueness	
  
to	
  avoid	
  sending	
  duplicate	
  commands	
  to	
  
the	
  Robot.	
  
Web	
  Speech	
  API	
  :	
  
Robot	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Raspberry	
  	
  
PI	
  
Arduberry	
  
(Arduino)	
  
Pi	
  Cam	
  
Zumo	
  
Chassis	
  
Servos	
  
SoAware	
  
HTML5	
  
Speech	
  
Johnny-­‐
Five	
  
Web	
  	
  
Server	
  
IntegraFon	
  
Other	
  
Node.js	
  
Express	
  Web	
  
Server	
  
(17	
  lines	
  of	
  code)	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Raspberry	
  	
  
PI	
  
Arduberry	
  
(Arduino)	
  
Pi	
  Cam	
  
Zumo	
  
Chassis	
  
Servos	
  
SoAware	
  
Speech	
  
Johnny-­‐
Five	
  
Express	
  
IntegraFon	
  
Other	
  
Johnny-­‐Five	
  	
  
Process	
  
Express	
  	
  
Process	
  
Raspberry	
  PI	
  2	
  
WE	
  
Browser	
  
HTTPS	
  
NodeBot	
  
Rover	
  
Hardware	
  
	
  
Firmata	
  	
  
	
  
Johnny-­‐Five	
  	
  
Process	
  
Express	
  	
  
Process	
  
Raspberry	
  PI	
  2	
  
WE	
  
Browser	
  
HTTPS	
  
NodeBot	
  
Rover	
  
Hardware	
  
	
  
Firmata	
  	
  
	
  
MQTT	
  
Message	
  Broker	
  
MQTT	
  
MQTT	
  over	
  
WebSockets	
  
Commands	
  
Acknowledgements	
  
MQTT.js	
  
Client	
  
MQTT.js	
  
Client	
  
Why	
  Add	
  a	
  Message	
  Broker?	
  
•  Sepera]on	
  of	
  
concerns.	
  
•  Isolate	
  main	
  
components	
  for	
  
easier	
  tes]ng.	
  
MQTT	
  –	
  MQ	
  Telemetry	
  Transport	
  
	
  
•  Internet	
  of	
  Things	
  connec]vity	
  protocol.	
  
•  Designed	
  to	
  be	
  lightweight	
  with	
  a	
  small	
  footprint	
  and	
  lihle	
  
overhead.	
  
•  Is	
  a	
  protocol	
  and	
  a	
  Pub-­‐Sub	
  Message	
  Broker.	
  
•  Used	
  by	
  Facebook	
  for	
  pushing	
  updates	
  to	
  mobile	
  clients.	
  
Adding	
  MQTT	
  to	
  the	
  NodeBot	
  Rover	
  
Broker	
  
•  Public	
  MQTT	
  Broker	
  
–  Many	
  Public	
  Brokers	
  exist.	
  
–  One	
  less	
  process	
  to	
  run	
  on	
  
Raspberry	
  PI.	
  
Client	
  
•  MQTT.js	
  
–  Provides	
  an	
  MQTT	
  client	
  
library	
  for	
  Node.js.	
  
–  Extremely	
  simple	
  to	
  use.	
  
–  Integrates	
  seamlessly	
  with	
  
Johnny-­‐Five.	
  
	
  
MQTT.js	
  (Node.js)	
  Client	
  Example	
  
MQTT	
  Over	
  WebSockets	
  with	
  MQTT.js	
  
•  MQTT.js	
  is	
  a	
  Node.js	
  package	
  and	
  is	
  
meant	
  for	
  use	
  on	
  the	
  Server	
  Side.	
  
•  To	
  allow	
  MQTT.js	
  to	
  run	
  from	
  the	
  
Browser,	
  we	
  first	
  needed	
  to	
  
”Browserify”	
  the	
  MQTT	
  library.	
  
•  We	
  could	
  then	
  access	
  the	
  
”Browserified”	
  MQTT	
  client	
  library	
  
from	
  the	
  Browser.	
  
•  This	
  solu]on	
  requires	
  that	
  your	
  MQTT	
  
Broker	
  has	
  a	
  WebSocket	
  endpoint.	
  
MQTT	
  Over	
  WebSockets	
  Demo	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Raspberry	
  	
  
PI	
  
Arduberry	
  
(Arduino)	
  
Pi	
  Cam	
  
Zumo	
  
Chassis	
  
Servos	
  
SoAware	
  
HTML5	
  
Speech	
  
Johnny-­‐
Five	
  
Express	
  
MQTT	
  &	
  
WebSocket	
  
Other	
  
Node.js	
  Twiher	
  Client	
  
•  Fully	
  fledged	
  Twiher	
  Client:	
  
–  Asynchronous.	
  
–  Supports	
  REST	
  API	
  (write	
  and	
  write)	
  
–  Supports	
  Streaming	
  API	
  (events	
  and	
  tweets).	
  
•  Requires	
  developer	
  creden]als	
  from	
  Twiher:	
  
–  Trivial	
  to	
  get	
  hold	
  of.	
  
Node.js	
  Twiher	
  Client	
  REST	
  Example	
  
Video	
  Streaming	
  via	
  Mo]on	
  
•  MoFon:	
  Soware	
  Mo]on	
  Detector.	
  
•  Provides	
  streaming	
  video	
  with	
  possibility	
  to	
  create	
  
snapshots.	
  
•  Good	
  performance	
  on	
  the	
  Raspberry	
  PI.	
  
	
  
•  PotenFal	
  side	
  project:	
  get	
  Robot	
  to	
  follow	
  moving	
  objects?	
  
Other	
  things	
  I	
  picked	
  up	
  
•  Git	
  /	
  GitHub	
  
•  HTML5	
  
•  CSS	
  
•  Linux	
  
NodeBot	
  Rover	
  Component	
  Overview	
  
Hardware	
  
Raspberry	
  	
  
PI	
  
Arduberry	
  
(Arduino)	
  
Pi	
  Cam	
  
Zumo	
  
Chassis	
  
Servos	
  
SoAware	
  
HTML5	
  
Speech	
  
Johnny-­‐
Five	
  
Express	
  
MQTT	
  &	
  
WebSocket	
  
TwiSer/
MoFon/
Git/GitHub/
CSS/Linux	
  
So	
  Did	
  I	
  Get	
  My	
  
Coding	
  Mojo	
  
Back?	
  
Land	
  
Turn	
  
Take-­‐
off	
  
@markawest

Más contenido relacionado

La actualidad más candente

Packaging perl (LPW2010)
Packaging perl (LPW2010)Packaging perl (LPW2010)
Packaging perl (LPW2010)p3castro
 
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...Puppet
 
Building kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkRed Hat Developers
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Giacomo Vacca
 
Lagergren jvmls-2014-final
Lagergren jvmls-2014-finalLagergren jvmls-2014-final
Lagergren jvmls-2014-finalMarcus Lagergren
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Choosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in ProdChoosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in ProdJosh Padnick
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
 
Custom Buildpacks and Data Services
Custom Buildpacks and Data ServicesCustom Buildpacks and Data Services
Custom Buildpacks and Data ServicesTom Kranz
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)William Yeh
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in ProductionPatrick Mizer
 
Aci programmability
Aci programmabilityAci programmability
Aci programmabilityCisco DevNet
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleHenryk Konsek
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdecWojciech Dec
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by ExampleHsi-Kai Wang
 
TFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU DelegatesTFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU DelegatesKoan-Sin Tan
 

La actualidad más candente (20)

Packaging perl (LPW2010)
Packaging perl (LPW2010)Packaging perl (LPW2010)
Packaging perl (LPW2010)
 
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
Scalable Cloud-Native Masterless Puppet, with PuppetDB and Bolt, Craig Watson...
 
Building kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech Talk
 
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
 
devops@cineca
devops@cinecadevops@cineca
devops@cineca
 
Lagergren jvmls-2014-final
Lagergren jvmls-2014-finalLagergren jvmls-2014-final
Lagergren jvmls-2014-final
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Choosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in ProdChoosing the Right Framework for Running Docker Containers in Prod
Choosing the Right Framework for Running Docker Containers in Prod
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Custom Buildpacks and Data Services
Custom Buildpacks and Data ServicesCustom Buildpacks and Data Services
Custom Buildpacks and Data Services
 
Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
 
Going Reactive with Java
Going Reactive with JavaGoing Reactive with Java
Going Reactive with Java
 
Apache Flink Hands On
Apache Flink Hands OnApache Flink Hands On
Apache Flink Hands On
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
 
Aci programmability
Aci programmabilityAci programmability
Aci programmability
 
Apache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whaleApache Camel in the belly of the Docker whale
Apache Camel in the belly of the Docker whale
 
Puppet devops wdec
Puppet devops wdecPuppet devops wdec
Puppet devops wdec
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by Example
 
TFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU DelegatesTFLite NNAPI and GPU Delegates
TFLite NNAPI and GPU Delegates
 
Jetty Vs Tomcat
Jetty Vs TomcatJetty Vs Tomcat
Jetty Vs Tomcat
 

Destacado

JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...0xdaryl
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015Pavel Bucek
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Trisha Gee
 
Stop doing scrum; start doing agile
Stop doing scrum; start doing agileStop doing scrum; start doing agile
Stop doing scrum; start doing agilePeter Van de Voorde
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web servicesNeil Ghosh
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentationguest0df6b0
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn
 

Destacado (13)

Java web services
Java web servicesJava web services
Java web services
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
JavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote PresentationJavaOne 2015 Keynote Presentation
JavaOne 2015 Keynote Presentation
 
Wsdl
WsdlWsdl
Wsdl
 
WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015WebSocket in Enterprise Applications 2015
WebSocket in Enterprise Applications 2015
 
Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)Java 8 in Anger (JavaOne)
Java 8 in Anger (JavaOne)
 
Stop doing scrum; start doing agile
Stop doing scrum; start doing agileStop doing scrum; start doing agile
Stop doing scrum; start doing agile
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
 
Web Services
Web ServicesWeb Services
Web Services
 
Web service introduction
Web service introductionWeb service introduction
Web service introduction
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 

Similar a JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics Prototype

IoT Tech Day Coding Mojo slides. Utrecht, April 2016
IoT Tech Day Coding Mojo slides.  Utrecht, April 2016IoT Tech Day Coding Mojo slides.  Utrecht, April 2016
IoT Tech Day Coding Mojo slides. Utrecht, April 2016Mark West
 
Coding Mojo : Node.js Meetup
Coding Mojo : Node.js MeetupCoding Mojo : Node.js Meetup
Coding Mojo : Node.js MeetupMark West
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsSerge Stinckwich
 
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehnenode.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
node.js is made for IoT - node.hh 07/16, Hamburg by Michael KuehneMichael Kuehne-Schlinkert
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?Steve Poole
 
Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura
 
JavaScript all the things! - FullStack 2017
JavaScript all the things! - FullStack 2017JavaScript all the things! - FullStack 2017
JavaScript all the things! - FullStack 2017Jan Jongboom
 
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023Peter Gallagher
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
Mobile Virtualization Management
Mobile Virtualization ManagementMobile Virtualization Management
Mobile Virtualization ManagementYaniv Bronhaim
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Yongyoon Shin
 
Home Automation Using RPI
Home Automation Using  RPIHome Automation Using  RPI
Home Automation Using RPIAnkara JUG
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivRon Perlmuter
 
SignalR Intro + WPDev
SignalR Intro + WPDevSignalR Intro + WPDev
SignalR Intro + WPDevSam Basu
 
The Netflix API Platform for Server-Side Scripting
The Netflix API Platform for Server-Side ScriptingThe Netflix API Platform for Server-Side Scripting
The Netflix API Platform for Server-Side ScriptingKatharina Probst
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computingTimothy Spann
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocketsametmax
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case StudyMichael Lihs
 

Similar a JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics Prototype (20)

IoT Tech Day Coding Mojo slides. Utrecht, April 2016
IoT Tech Day Coding Mojo slides.  Utrecht, April 2016IoT Tech Day Coding Mojo slides.  Utrecht, April 2016
IoT Tech Day Coding Mojo slides. Utrecht, April 2016
 
Coding Mojo : Node.js Meetup
Coding Mojo : Node.js MeetupCoding Mojo : Node.js Meetup
Coding Mojo : Node.js Meetup
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehnenode.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
 
(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?(java2days) Is the Future of Java Cloudy?
(java2days) Is the Future of Java Cloudy?
 
Eclipse Kura Shoot a-pi
Eclipse Kura Shoot a-piEclipse Kura Shoot a-pi
Eclipse Kura Shoot a-pi
 
JavaScript all the things! - FullStack 2017
JavaScript all the things! - FullStack 2017JavaScript all the things! - FullStack 2017
JavaScript all the things! - FullStack 2017
 
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
Building a Raspberry Pi Robot with Dot NET 7, Blazor and SignalR - TechDays 2023
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Mobile Virtualization Management
Mobile Virtualization ManagementMobile Virtualization Management
Mobile Virtualization Management
 
Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1Harmonia open iris_basic_v0.1
Harmonia open iris_basic_v0.1
 
Home Automation Using RPI
Home Automation Using  RPIHome Automation Using  RPI
Home Automation Using RPI
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
SignalR Intro + WPDev
SignalR Intro + WPDevSignalR Intro + WPDev
SignalR Intro + WPDev
 
The Netflix API Platform for Server-Side Scripting
The Netflix API Platform for Server-Side ScriptingThe Netflix API Platform for Server-Side Scripting
The Netflix API Platform for Server-Side Scripting
 
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Pulsar summit asia 2021   apache pulsar with mqtt for edge computingPulsar summit asia 2021   apache pulsar with mqtt for edge computing
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
 
Webrtc in Real world
Webrtc in Real world Webrtc in Real world
Webrtc in Real world
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
Nodebots
NodebotsNodebots
Nodebots
 

Más de Mark West

A Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data ScienceA Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data ScienceMark West
 
Explaining the new Java release and licensing models
Explaining the new Java release and licensing modelsExplaining the new Java release and licensing models
Explaining the new Java release and licensing modelsMark West
 
IoT Meetup Oslo - AI on Edge Devices
IoT Meetup Oslo - AI on Edge DevicesIoT Meetup Oslo - AI on Edge Devices
IoT Meetup Oslo - AI on Edge DevicesMark West
 
GeeCon Prague 2018 - A Practical-ish Introduction to Data Science
GeeCon Prague 2018 - A Practical-ish Introduction to Data ScienceGeeCon Prague 2018 - A Practical-ish Introduction to Data Science
GeeCon Prague 2018 - A Practical-ish Introduction to Data ScienceMark West
 
JavaZone 2018 - A Practical(ish) Introduction to Data Science
JavaZone 2018 - A Practical(ish) Introduction to Data ScienceJavaZone 2018 - A Practical(ish) Introduction to Data Science
JavaZone 2018 - A Practical(ish) Introduction to Data ScienceMark West
 
NDC Oslo : A Practical Introduction to Data Science
NDC Oslo : A Practical Introduction to Data ScienceNDC Oslo : A Practical Introduction to Data Science
NDC Oslo : A Practical Introduction to Data ScienceMark West
 
Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...
Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...
Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...Mark West
 
DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...
DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...
DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...Mark West
 
GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...
GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...
GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...Mark West
 
JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...
JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...
JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...Mark West
 
GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...
GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...
GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...Mark West
 
Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....
Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....
Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....Mark West
 
IoT Tech Day Smart Camera slides. Utrecht, April 2017.
IoT Tech Day Smart Camera slides.  Utrecht, April 2017.IoT Tech Day Smart Camera slides.  Utrecht, April 2017.
IoT Tech Day Smart Camera slides. Utrecht, April 2017.Mark West
 
NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...
NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...
NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...Mark West
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperMark West
 
JavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-Five
JavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-FiveJavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-Five
JavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-FiveMark West
 

Más de Mark West (16)

A Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data ScienceA Practical-ish Introduction to Data Science
A Practical-ish Introduction to Data Science
 
Explaining the new Java release and licensing models
Explaining the new Java release and licensing modelsExplaining the new Java release and licensing models
Explaining the new Java release and licensing models
 
IoT Meetup Oslo - AI on Edge Devices
IoT Meetup Oslo - AI on Edge DevicesIoT Meetup Oslo - AI on Edge Devices
IoT Meetup Oslo - AI on Edge Devices
 
GeeCon Prague 2018 - A Practical-ish Introduction to Data Science
GeeCon Prague 2018 - A Practical-ish Introduction to Data ScienceGeeCon Prague 2018 - A Practical-ish Introduction to Data Science
GeeCon Prague 2018 - A Practical-ish Introduction to Data Science
 
JavaZone 2018 - A Practical(ish) Introduction to Data Science
JavaZone 2018 - A Practical(ish) Introduction to Data ScienceJavaZone 2018 - A Practical(ish) Introduction to Data Science
JavaZone 2018 - A Practical(ish) Introduction to Data Science
 
NDC Oslo : A Practical Introduction to Data Science
NDC Oslo : A Practical Introduction to Data ScienceNDC Oslo : A Practical Introduction to Data Science
NDC Oslo : A Practical Introduction to Data Science
 
Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...
Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...
Make Data Smart Again 2018 - Building a Smart Security Camera with Raspberry ...
 
DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...
DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...
DevExperience 2018 : Building a Smart Security Camera with Raspberry Pi Zero,...
 
GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...
GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...
GeeCON Prague : Building a Smart Security Camera with Raspberry Pi Zero, Java...
 
JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...
JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...
JavaZone 2017 : Building a smart security camera with raspberry pi zero, java...
 
GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...
GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...
GeeCon 2017 : Building a Smart Security Camera with Raspberry Pi Zero, Node.j...
 
Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....
Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....
Riga Dev Days: Building a Smart Security Camera with Raspberry Pi Zero, Node....
 
IoT Tech Day Smart Camera slides. Utrecht, April 2017.
IoT Tech Day Smart Camera slides.  Utrecht, April 2017.IoT Tech Day Smart Camera slides.  Utrecht, April 2017.
IoT Tech Day Smart Camera slides. Utrecht, April 2017.
 
NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...
NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...
NTNU Tech Talks : Smartening up a Pi Zero Security Camera with Amazon Web Ser...
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
 
JavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-Five
JavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-FiveJavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-Five
JavaZone 2015 : NodeBots - JavaScript Powered Robots with Johnny-Five
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics Prototype

  • 1. How  I  Got  Back  my  Coding  Mojo!   Mark  West  
  • 4.
  • 5.
  • 6.
  • 7.     “Any  applica+on  that  can  be   wri3en  in  JavaScript,  will   eventually  be  wri3en  in   JavaScript”   James  Atwood  (founder,    stackoverflow.com)  
  • 8.
  • 9.
  • 12. NodeBot  Rover  Component  Overview   Hardware   Computer   Micro   Controller   Camera   Chassis   Pan  &  Tilt   SoAware   Speech   Robot   Control   Web   Server   IntegraFon   Other  
  • 13. The  Arduino  Ecosystem   •  MicroController  plaLorm.   •  Many  different  Arduino   models.   •  Open  Source  design.   •  MicroControllers  extensible   via  “Shields”.  
  • 14. PuSng  the  Hardware  Together  
  • 15.
  • 16.
  • 17.
  • 18. Two  Servos   for  Camera   Pan  &  Tilt   Servos  wired   to  Arduino   Chassis   Raspberry  PI     In  PlasFc  Case   WIFI  Dongle  
  • 19. Raspberry  PI   Camera   Wired  directly   to  the   Raspberry  PI  
  • 20.             Actuators   Sensors   Nervous  System   Raspberry  PI  2  Raspberry  PI  Cam   Arduberry  Microcontroller   Arduino  Chassis   Servo   Servo   Brain   NodeBot  Rover  Hardware  
  • 21. Combining  the  Raspberry  PI  &  Arduino   Raspberry  PI   •  Linux  PC.   •  Supports  USB  peripherals.   •  Programming.   Arduino  PlaNorm   •  MicroController.   •  Robust.   •  Flexibility  (input/output).   The  whole  is  greater  than  the  sum  of  parts!  
  • 22.             Actuators   Sensors   Nervous  System   Raspberry  PI  2  Raspberry  PI  Cam   Arduberry  Microcontroller   Arduino  Chassis   Servo   Servo   Brain   NodeBot  Rover  Hardware  
  • 23. NodeBot  Rover  Component  Overview   Hardware   Raspberry     PI   Arduberry   (Arduino)   Pi  Cam   Zumo   Chassis   Servos   SoAware   Speech   Robot   Control   Web   Server   IntegraFon   Other  
  • 24.             Raspberry  PI  2   Arduberry   Servo   Soware  Communica]on  across   Hardware  Layers   Servo   Raspberry  PI     Chassis   JavaScriptPI     Binary  (Compiled  C  /  C++)    
  • 25. The  NodeBots  Movement   Source  :  nodebots.io  
  • 26.
  • 27. 1.  Maturity   2.  Community   3.  DSL   4.  Portability   5.  Open  Source   6.  Node.js  ecosystem   7.  REPL   Benefits  of  using  Johnny-­‐Five  
  • 28. var five = require("johnny-five"); var myBoard = new five.Board(); myBoard.on("ready", function() { var myLed = new five.Led(13); myLed.blink(500); this.repl.inject({ replLed: myLed }); }); Imports  J5  Dependancy   Adds  LED  instance  to  REPL   Declares  LED  as  connected  to  UNO  Pin  13   Blinks  LED  every  500  milliseconds   Code  block  triggered  by  UNO  ”Ready”  Event   Ini]alises  UNO   Johnny-­‐Five  Code  Example  
  • 30.             Arduberry   Servo   Bridging  the  gap  with  Firmata   Servo   Raspberry  PI     Chassis   Johnny-­‐Five   (Firmata  Client)   Std.  Firmata   (Firmata  Server)   JavaScriptPI     Binary  (Compiled  C  /  C++)      
  • 31.
  • 32. GeSng  Started  with  Johnny-­‐Five   1.  Buy  an  Arduino  Experimenters  Kit.   2.  Follow  the  tutorials  at  hSp://node-­‐ardx.org.   3.  Visit  hSp://johnny-­‐five.io  for  more   informa]on  and  inspira]on.  
  • 33. NodeBot  Rover  Component  Overview   Hardware   Raspberry     PI   Arduberry   (Arduino)   Pi  Cam   Zumo   Chassis   Servos   SoAware   Speech   Johnny-­‐ Five   Web   Server   IntegraFon   Other  
  • 34. Speech  Recogni]on  Requirements   Need  to  have     •  Quality  and  speed  of   speech  recogni]on.   •  Free,  no  restric]ons.   •  Soware  based.   •  JavaScript.   Nice  to  have   •  Speech  to  text.   •  One  stop  service.   •  Bahle  tested.  
  • 35.
  • 36.
  • 37. Web  Speech   API   (limited  to  Google  Chrome)  
  • 38. Web  Speech  API  :  Configura]on  
  • 39. Web  Speech  API  :  Events  
  • 40. Web  Speech  API  :  Control  
  • 42. Buhon  press  and  release  connected  to   Web  Speech  API  start  and  stop  Control   methods.   Con+nuous  dicta+on  switched  on,  to  avoid   cuSng  commands  short.     Interim  results  switched  on  –  shown  in   green  text  (final  results  in  white).   Each  set  of  results  checked  for  uniqueness   to  avoid  sending  duplicate  commands  to   the  Robot.   Web  Speech  API  :   Robot  
  • 43. NodeBot  Rover  Component  Overview   Hardware   Raspberry     PI   Arduberry   (Arduino)   Pi  Cam   Zumo   Chassis   Servos   SoAware   HTML5   Speech   Johnny-­‐ Five   Web     Server   IntegraFon   Other  
  • 44.
  • 45. Node.js   Express  Web   Server   (17  lines  of  code)  
  • 46. NodeBot  Rover  Component  Overview   Hardware   Raspberry     PI   Arduberry   (Arduino)   Pi  Cam   Zumo   Chassis   Servos   SoAware   Speech   Johnny-­‐ Five   Express   IntegraFon   Other  
  • 47. Johnny-­‐Five     Process   Express     Process   Raspberry  PI  2   WE   Browser   HTTPS   NodeBot   Rover   Hardware     Firmata      
  • 48. Johnny-­‐Five     Process   Express     Process   Raspberry  PI  2   WE   Browser   HTTPS   NodeBot   Rover   Hardware     Firmata       MQTT   Message  Broker   MQTT   MQTT  over   WebSockets   Commands   Acknowledgements   MQTT.js   Client   MQTT.js   Client  
  • 49. Why  Add  a  Message  Broker?   •  Sepera]on  of   concerns.   •  Isolate  main   components  for   easier  tes]ng.  
  • 50. MQTT  –  MQ  Telemetry  Transport     •  Internet  of  Things  connec]vity  protocol.   •  Designed  to  be  lightweight  with  a  small  footprint  and  lihle   overhead.   •  Is  a  protocol  and  a  Pub-­‐Sub  Message  Broker.   •  Used  by  Facebook  for  pushing  updates  to  mobile  clients.  
  • 51. Adding  MQTT  to  the  NodeBot  Rover   Broker   •  Public  MQTT  Broker   –  Many  Public  Brokers  exist.   –  One  less  process  to  run  on   Raspberry  PI.   Client   •  MQTT.js   –  Provides  an  MQTT  client   library  for  Node.js.   –  Extremely  simple  to  use.   –  Integrates  seamlessly  with   Johnny-­‐Five.    
  • 53. MQTT  Over  WebSockets  with  MQTT.js   •  MQTT.js  is  a  Node.js  package  and  is   meant  for  use  on  the  Server  Side.   •  To  allow  MQTT.js  to  run  from  the   Browser,  we  first  needed  to   ”Browserify”  the  MQTT  library.   •  We  could  then  access  the   ”Browserified”  MQTT  client  library   from  the  Browser.   •  This  solu]on  requires  that  your  MQTT   Broker  has  a  WebSocket  endpoint.  
  • 55. NodeBot  Rover  Component  Overview   Hardware   Raspberry     PI   Arduberry   (Arduino)   Pi  Cam   Zumo   Chassis   Servos   SoAware   HTML5   Speech   Johnny-­‐ Five   Express   MQTT  &   WebSocket   Other  
  • 56. Node.js  Twiher  Client   •  Fully  fledged  Twiher  Client:   –  Asynchronous.   –  Supports  REST  API  (write  and  write)   –  Supports  Streaming  API  (events  and  tweets).   •  Requires  developer  creden]als  from  Twiher:   –  Trivial  to  get  hold  of.  
  • 57. Node.js  Twiher  Client  REST  Example  
  • 58. Video  Streaming  via  Mo]on   •  MoFon:  Soware  Mo]on  Detector.   •  Provides  streaming  video  with  possibility  to  create   snapshots.   •  Good  performance  on  the  Raspberry  PI.     •  PotenFal  side  project:  get  Robot  to  follow  moving  objects?  
  • 59. Other  things  I  picked  up   •  Git  /  GitHub   •  HTML5   •  CSS   •  Linux  
  • 60.
  • 61. NodeBot  Rover  Component  Overview   Hardware   Raspberry     PI   Arduberry   (Arduino)   Pi  Cam   Zumo   Chassis   Servos   SoAware   HTML5   Speech   Johnny-­‐ Five   Express   MQTT  &   WebSocket   TwiSer/ MoFon/ Git/GitHub/ CSS/Linux  
  • 62. So  Did  I  Get  My   Coding  Mojo   Back?  
  • 63.
  • 65.
  • 66.