SlideShare a Scribd company logo
1 of 58
Exploring the Internet of
   Things with Ruby
                 Lone Star Ruby Conf 2012
Man Versus Wild…
The Great Adventure
The Oh No Moment



          (aka – I am going to have to drink my urine)
Whoami

   Mike Hagedorn
   @mwhagedorn

   github.com/mwhagedorn
Agenda

 Internet Of Things in General
 Ruby and USB
 The IOT Printer
 The IOT Display
Agenda

 Internet Of Things in General
 Ruby and USB
 The IOT Printer
 The IOT Display
Internet of Things?

Objects-> Internet -> Servers

“Listen to your world, talk to the Internet”
                        http://supermechanical.com/
Things Talk back
@MarsCuriosity
Botanicalls
IOT Devices

 Arduino
 Rasberry Pi
 Twine
Agenda

 Internet Of Things in General
 Ruby and USB
 The IOT Printer
 The IOT Display
The USB Lamp Project



                 http://www.thekua.com
The USB Lamp Project

 libusb gem
   open a context
   browse for your device   NOT Easy!
   open the device
   send message
   close device
The USB Lamp Project

 Lots of Questions
   How do you send messages?
   What is the form of the messages?
Use The Source Luke…

void USBLamp::init() {
  char data1[8] = { 0x1f, 0x02, 0x00, 0x2e,
             0x00, 0x00, 0x2b, 0x03 };
  send(data1, sizeof(data1));

    char data2[8] = { 0x00, 0x02, 0x00, 0x2e,
               0x00, 0x00, 0x2b, 0x04 };
    send(data2, sizeof(data2));

    char data3[8] = { 0x00, 0x02, 0x00, 0x2e,
               0x00, 0x00, 0x2b, 0x05 };
    send(data3, sizeof(data3));
}
Use The Source Luke…

void USBLamp::send(char *bytes, int size) {
  …
  CALL(usb_control_msg(…))
  …
}
Array#pack & String#unpack

 pack
   Array of numbers to a binary string
     [97,98,99].pack("c*")
     => "abc“

  unpack
    Binary string to array
      "abc".unpack("c*")
      => [97,98,99]
Demo
Agenda

 Internet Of Things in General
 Ruby and USB
 The IOT Printer
 The IOT Display
The IOT printer
The IOT printer
Arduino
Ethernet Shield
Arduino IDE
To Rad or Not To Rad
To Rad or Not To Rad
Tools You Can Trust
Use TextMate!
Use Terminal!

 You can monitor the serial port via Terminal
> ls /dev/tty.*
> screen <dev> <baud-rate>
 End with cntrl-A, cntrl-
IOT-Assistant
    github.com/newsinternational/iot-assistant
Architecture




OAuth       Tweets
Calendars
Suiting It To Me




Calendar   Tasks   News   Twitter

                          (Oauth)
Omnifocus Challenges

 How can I get my tasks exported?
 How can I get them up to the server?
Applescript
Applescript Dictionary
Exporting Omnifocus tasks

#!/usr/local/bin/macruby
framework 'Foundation'
framework 'ScriptingBridge'

OFOC = "com.omnigroup.Omnifocus”
@of = SBApplication.applicationWithBundleIdentifier(OFOC)
load_bridge_support_file 'Omnifocus.bridgesupport'

@doc = @of.defaultDocument

tasks = []
@doc.flattenedTasks.get.each do |task|
 tasks << task
end
How can the server get this?

 Omnifocus tried to solve this
 Have to expose your desktop on internet
 More work than most people want to do
Use HP Object Storage!
HpObjectStore Helper

 Uses Fog
 def tasks_dir
   @connection.directories.get("omnifocus")
 end

 def update_tasks_file(content)
   tasks_dir.files.create(:key => "tasks.json",
                   :body => content)
 end
Update Cloud Bucket

 Run a chron job from my desktop server
 All my omnifocus installs are already synced
 Server gets a current task list
Outlook

 Need my calendar
 Don’t want to deal with corp security
 Use the same omnifocus technique
The Printout
The Arduino Code
Demo
Agenda

 Internet Of Things in General
 Ruby and USB
 Ruby and RFID
 The IOT Printer
 The IOT Display
The IOT Display


                  Original Inspiration:

                  http://bit.ly/vlMMvr
Arduino
32X8 Led Panel




                 http://bit.ly/wyuE5V
WiFly
Fritzing Sketch
Using IOT-A

 Already had an infrastructure
 Already had a datasource
 Format didn’t make sense for LED Display
User-Agent

 Use two different User-Agent header values
 User-Agent:IOTDisplay
 User-Agent:IOTPrinter
 JSON representation for display
Memory and the Sad Panda

 Standard JSON parser took up too much
  memory
 Char strings storage
 Had to give up a key feature
Demo
HP Cloud For Free!

           https://www.hpcloud.com/free-trial


                 @mwhagedorn


                     Thanks!

    https://github.com/mwhagedorn/IOTDisplay.git
    https://github.com/mwhagedorn/iot_printer_remote.git
    https://github.com/mwhagedorn/iot-assistant.git
    https://github.com/mwhagedorn/thingspeak.git

More Related Content

What's hot

Raspberry pi gaming 4 kids
Raspberry pi gaming 4 kidsRaspberry pi gaming 4 kids
Raspberry pi gaming 4 kidsStephen Chin
 
Tensorflow internal
Tensorflow internalTensorflow internal
Tensorflow internalHyunghun Cho
 
Docker @ Data Science Meetup
Docker @ Data Science MeetupDocker @ Data Science Meetup
Docker @ Data Science MeetupDaniel Nüst
 
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013Puppet
 
Raspberry Pi Using Python
Raspberry Pi Using PythonRaspberry Pi Using Python
Raspberry Pi Using PythonSeggy Segaran
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話dcubeio
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry piSudar Muthu
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi [Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi Tomomi Imura
 
110864103 adventures-in-bug-hunting
110864103 adventures-in-bug-hunting110864103 adventures-in-bug-hunting
110864103 adventures-in-bug-huntingbob dobbs
 

What's hot (10)

Raspberry pi gaming 4 kids
Raspberry pi gaming 4 kidsRaspberry pi gaming 4 kids
Raspberry pi gaming 4 kids
 
We Must Go Deeper
We Must Go DeeperWe Must Go Deeper
We Must Go Deeper
 
Tensorflow internal
Tensorflow internalTensorflow internal
Tensorflow internal
 
Docker @ Data Science Meetup
Docker @ Data Science MeetupDocker @ Data Science Meetup
Docker @ Data Science Meetup
 
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
PuppetDB: New Adventures in Higher-Order Automation - PuppetConf 2013
 
Raspberry Pi Using Python
Raspberry Pi Using PythonRaspberry Pi Using Python
Raspberry Pi Using Python
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry pi
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi [Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
 
110864103 adventures-in-bug-hunting
110864103 adventures-in-bug-hunting110864103 adventures-in-bug-hunting
110864103 adventures-in-bug-hunting
 

Similar to Exploring the Internet of Things Using Ruby

Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1benDesigning
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitcbenDesigning
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Better With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoBetter With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoPearl Chen
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?Ronny
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsNet7
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveAndri Yadi
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 
How To Electrocute Yourself using the Internet
How To Electrocute Yourself using the InternetHow To Electrocute Yourself using the Internet
How To Electrocute Yourself using the InternetAlexander Roche
 
arduino
arduinoarduino
arduinomurbz
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsSerge Stinckwich
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOKris Findlay
 
Get in Touch with Internet of Things
Get in Touch with Internet of ThingsGet in Touch with Internet of Things
Get in Touch with Internet of ThingsCodePolitan
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...Mark West
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backendDavid Padbury
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardwareRonald McCollam
 

Similar to Exploring the Internet of Things Using Ruby (20)

Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
nodebots presentation @seekjobs
nodebots presentation @seekjobsnodebots presentation @seekjobs
nodebots presentation @seekjobs
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Better With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+ArduinoBetter With Friends: Android+NFC+Arduino
Better With Friends: Android+NFC+Arduino
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basics
 
IoT Development from Software Developer Perspective
IoT Development from Software Developer PerspectiveIoT Development from Software Developer Perspective
IoT Development from Software Developer Perspective
 
Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 
How To Electrocute Yourself using the Internet
How To Electrocute Yourself using the InternetHow To Electrocute Yourself using the Internet
How To Electrocute Yourself using the Internet
 
arduino
arduinoarduino
arduino
 
Node azure
Node azureNode azure
Node azure
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
Introduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIOIntroduction to Raspberry Pi and GPIO
Introduction to Raspberry Pi and GPIO
 
Get in Touch with Internet of Things
Get in Touch with Internet of ThingsGet in Touch with Internet of Things
Get in Touch with Internet of Things
 
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
JavaOne 2015 : How I Rediscovered My Coding Mojo by Building an IoT/Robotics ...
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backend
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardware
 
Socket.io (part 1)
Socket.io (part 1)Socket.io (part 1)
Socket.io (part 1)
 

More from Mike Hagedorn

Experienced Cloud Engineer Looking for New Roles
Experienced Cloud Engineer Looking for New RolesExperienced Cloud Engineer Looking for New Roles
Experienced Cloud Engineer Looking for New RolesMike Hagedorn
 
Hacking the Internet of Things
Hacking the Internet of ThingsHacking the Internet of Things
Hacking the Internet of ThingsMike Hagedorn
 
Using OpenStack With Fog
Using OpenStack With FogUsing OpenStack With Fog
Using OpenStack With FogMike Hagedorn
 
Playing With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsPlaying With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsMike Hagedorn
 
2011 a grape odyssey
2011   a grape odyssey2011   a grape odyssey
2011 a grape odysseyMike Hagedorn
 

More from Mike Hagedorn (6)

Experienced Cloud Engineer Looking for New Roles
Experienced Cloud Engineer Looking for New RolesExperienced Cloud Engineer Looking for New Roles
Experienced Cloud Engineer Looking for New Roles
 
Couchbase Talk
Couchbase TalkCouchbase Talk
Couchbase Talk
 
Hacking the Internet of Things
Hacking the Internet of ThingsHacking the Internet of Things
Hacking the Internet of Things
 
Using OpenStack With Fog
Using OpenStack With FogUsing OpenStack With Fog
Using OpenStack With Fog
 
Playing With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsPlaying With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.js
 
2011 a grape odyssey
2011   a grape odyssey2011   a grape odyssey
2011 a grape odyssey
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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...
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Exploring the Internet of Things Using Ruby

Editor's Notes

  1. How many of you have heard of Bear Grylls?
  2. The Grand AdventureThe Exciting BeginningThe Oh Oh MomentThe Big Finish
  3. Its not so important what those moments are..He overcomes, learns----- Meeting Notes (8/10/12 09:03) -----
  4. Developer Experience – user tools, management consoleDistributed Team About 15Subtext – I am interested in ways to automate what it means to be a remote team
  5. Also gonna talk about MacRuby, Automation using the scripting bridge
  6. Quote from the twine guys
  7. Contrast to 2004 yellowstone trip, when it was almost nowhere (JIWIre)Some kind of research about the growth of wifi availability
  8. Not the same as a bar code, you can write information to it.. Shelf life for instance, date stockedActive Example – tollway tags
  9. Industry, Retail – 3c per tag, hospitals
  10. This is a great book BTW.Most people think about the IOT being objects actively talking back
  11. Twine supermechincalWe arent gonna talk much the other stuff just due to time
  12. ----- Meeting Notes (8/10/12 22:51) -----14 minutes at USB Lamp
  13. My Episode 1
  14. Worth noting that this happens once in the c codeCould never get that to work in the ruby codeAlso the control message
  15. Worth noting that this happens once in the c codeCould never get that to work in the ruby codeAlso the control message
  16. Format specifier indicates signed 8 bit val (-127 to 127).. Why is this? Why not unsigned----- Meeting Notes (8/10/12 22:51) -----Demo at 18:20
  17. ----- Meeting Notes (8/10/12 22:51) -----Talk about the format of the color msg (37)
  18. Kit from AdafruitCode that ships with pulls tweetsTook me about two hours to put togetherSimple soldering
  19. Thermal printer, code that is listed for the kip pulls tweets
  20. Small device, low power, easy to interface to sensors, programmed in a C variant.. Only 30K of sram. Doesn’t run mruby
  21. Shields are expansion boards, they do lots of stuff, servo control data logging,
  22. Builds, uploads, provides docs, serial monitor. NOT Ruby.
  23. Code generatorGenerates C++ which gets pushed (arduino does this too)Problem is that step one part is kinda hard codedEvan Lights DSL generator -&gt; AST
  24. Code generatorGenerates C++ which gets pushed (arduino does this too)Problem is that step one part is kinda hard codedEvan Lights DSL generator -&gt; AST
  25. You can build, upload and view serial port all via textmate
  26. Rails APPSource is availableSchedule printoutsSelect what prints Do on demand printouts
  27. Google for OAUTHGoogle for CalendarTwitter for FeedsTimes of London for latest news
  28. I don’t use google tasks.. What do I doDeployed it on nova hpcs
  29. Old sample code omnifocus released (evan light worked on it)
  30. Applescript EditorApplescript allows you to automate apps on the platformMost apps have a scripting interfaceBut Applescript is kinda weird, suboptimal
  31. Allows you see if they have a scripting interface, and what commands are available
  32. Don’t want to use Applescript?Use MacRuby and the Scripting BridgeHave to build support files (basically a header file)This doesn’t show the export part…This doesn’t show filtering by projectI had issues with grabbing the project and its tasks throwing an exceptionHad to get them all then throw away ones I don’t want
  33. Putting my home machine on the net problematic. Omnifocus people gave you a rough howto and it was more work than people wanted to do
  34. Connection details are in the file…
  35. Show the omnifocus stuff added in
  36. We use Outlook
  37. You download the code from the website if you are an admin
  38. Reset printer firstLogin via serialPull SerialThen resetShow front pageUsing twitter oauthShow printoutsShow Settings pageShow printer downloadDo an on demand printoutSwitch to omnifocusUploadHPCS OSShow fileSkip OutlookOn Demand PrintShow template for printerLet it print
  39. I wanted a networked, display that listened on a socket and displayed messages.. Think CallerID. On demand messages
  40. Wanted to use the most common paradigm, i.e. wifiXbee – need other hardware..Bluetooth – can be flakyLast one really interesting(cheap)
  41. Yellow are controlRed powerBlack GndBlue DataGrey Read/Write
  42. Uses constraints to set the format on inbound request, so that that respond to block can handle it
  43. aJson wont fit… too little memory
  44. Probably not
  45. Time sensitive updates where getting dropped, mixing code for timing and logic.. Needed a solution
  46. Also cosm, open source version, running on HPCS
  47. On demand?, stop polling revisit rad?
  48. Chad Fowler’s book, faraday probably was quoting Benjamin Franklin