SlideShare a Scribd company logo
1 of 53
Experiential Analysis of
   the Ballmer Peak:
Node.js, Arduino, and Beer
keg.i
Likes beer
Likes beer
Definitely likes beer
Chris Castle
@crc
Product Manager
Yes, this is in Excel
Keg.io
What is keg.io?
+ +
Keg.io
Keg.io
Keg.io
Why build this?
NO F-ING IDEA
Dylan Carney

Garrett Patterson

Carl Krauss
Keg.io
Keg.io
Keg.io
Keg.io
Keg.io
Keg.io
Keg.io
Keg.io
How’s it work?
v1: node.js talks serial
The Cast
ardui                              node
      no                                  .js se
                                                rver
            serial cable



                    web
                        brow
                             ser
v2: node.js and the cloud
      (persistent, seattle-style)
The Cast
ardui                    node
      no                        .js se
                                      rver



               web
                   brow
                        ser
A typical day in the
  world of keg.io
Brrrr, 42° in here..



PUT /api/kegerator/1111/temp/42
Hey clients listening to
   1111, she’s 42°




(websocket)
Keg.io
Hey, card scan!


GET /api/kegerator/1111/scan/440055F873
Ok, let that guy drink
                     (HTTP 200 response)




GET /api/kegerator/1111/scan/440055F873
Hey clients listening to
1111, Chris just scanned




(websocket)
11oz poured!


PUT /api/kegerator/1111/flow/1100
ok, 11oz. Got it.
                  (HTTP 200 response)




PUT /api/kegerator/1111/flow/1100
Hey clients listening to
1111, Chris poured 11oz




(websocket)
Keg.io
G       A         B-
    T IC    E
           K I    DAT
                            W E      T
  A                     I        K E
ST LES      A P     A P        C
  FI                        SO
DEMO
What’s next?
More stats and data
  visualizations
         TA
       DA I
        A P
Post-pour hooks?!
Too many ideas!
Too many ideas!
Two Goals
Get to the point where anyone
 can contribute to the project

           T IC    AT
                      A
         A        D
       ST LES         P I
         FI         A
Get one setup in as many nerdy,
developer-filled offices as possible


             (your office?)
THANKS!
Chris Castle
@crc


chris@simplymeasured.com

More Related Content

Viewers also liked

Learn more about
Learn more aboutLearn more about
Learn more aboutAmina Ekpo
 
Effect of project cost and time monitoring on progress of construction projct
Effect of project cost and time monitoring on progress of construction projctEffect of project cost and time monitoring on progress of construction projct
Effect of project cost and time monitoring on progress of construction projcteSAT Journals
 
The New Advertising: a primer for brands
The New Advertising: a primer for brandsThe New Advertising: a primer for brands
The New Advertising: a primer for brandsLakshmipathy Bhat
 
Keynote slides: Creating the Future of Arab Media
Keynote slides: Creating the Future of Arab MediaKeynote slides: Creating the Future of Arab Media
Keynote slides: Creating the Future of Arab MediaRoss Dawson
 
사이버컴과 네트워크분석 6주차 2
사이버컴과 네트워크분석 6주차 2사이버컴과 네트워크분석 6주차 2
사이버컴과 네트워크분석 6주차 2Han Woo PARK
 
M2Mobi Airport Solution
M2Mobi Airport SolutionM2Mobi Airport Solution
M2Mobi Airport SolutionM2Mobi
 
Assessment of hygienic practices among pig slaughterhouses and markets in Chi...
Assessment of hygienic practices among pig slaughterhouses and markets in Chi...Assessment of hygienic practices among pig slaughterhouses and markets in Chi...
Assessment of hygienic practices among pig slaughterhouses and markets in Chi...ILRI
 
Post colonial perspectives
Post colonial perspectivesPost colonial perspectives
Post colonial perspectivesSimon Gummer
 
Microbrewery in india- raw materials
Microbrewery in india- raw materialsMicrobrewery in india- raw materials
Microbrewery in india- raw materialsRitwik Bhattacharya
 
Eye Tracking, Journal of Marketing Research
Eye Tracking, Journal of Marketing ResearchEye Tracking, Journal of Marketing Research
Eye Tracking, Journal of Marketing ResearchChristopher Bartone
 
Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...
Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...
Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...Lengow
 

Viewers also liked (15)

07 arts-312-359-h.pen
07 arts-312-359-h.pen07 arts-312-359-h.pen
07 arts-312-359-h.pen
 
MBA_ELBA
MBA_ELBAMBA_ELBA
MBA_ELBA
 
Learn more about
Learn more aboutLearn more about
Learn more about
 
Effect of project cost and time monitoring on progress of construction projct
Effect of project cost and time monitoring on progress of construction projctEffect of project cost and time monitoring on progress of construction projct
Effect of project cost and time monitoring on progress of construction projct
 
The New Advertising: a primer for brands
The New Advertising: a primer for brandsThe New Advertising: a primer for brands
The New Advertising: a primer for brands
 
Keynote slides: Creating the Future of Arab Media
Keynote slides: Creating the Future of Arab MediaKeynote slides: Creating the Future of Arab Media
Keynote slides: Creating the Future of Arab Media
 
사이버컴과 네트워크분석 6주차 2
사이버컴과 네트워크분석 6주차 2사이버컴과 네트워크분석 6주차 2
사이버컴과 네트워크분석 6주차 2
 
M2Mobi Airport Solution
M2Mobi Airport SolutionM2Mobi Airport Solution
M2Mobi Airport Solution
 
Assessment of hygienic practices among pig slaughterhouses and markets in Chi...
Assessment of hygienic practices among pig slaughterhouses and markets in Chi...Assessment of hygienic practices among pig slaughterhouses and markets in Chi...
Assessment of hygienic practices among pig slaughterhouses and markets in Chi...
 
Grupo conico
Grupo conicoGrupo conico
Grupo conico
 
Post colonial perspectives
Post colonial perspectivesPost colonial perspectives
Post colonial perspectives
 
Microbrewery in india- raw materials
Microbrewery in india- raw materialsMicrobrewery in india- raw materials
Microbrewery in india- raw materials
 
Eye Tracking, Journal of Marketing Research
Eye Tracking, Journal of Marketing ResearchEye Tracking, Journal of Marketing Research
Eye Tracking, Journal of Marketing Research
 
Beer
BeerBeer
Beer
 
Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...
Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...
Ventes en ligne cross-border en Europe : Pourquoi la logistique est-elle impo...
 

Similar to Keg.io

SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...Keiichiro Ono
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....Michele Orselli
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....Alessandro Cinelli (cirpo)
 
How Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar LeibovichHow Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar LeibovichDevOpsDays Tel Aviv
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotappJilles van Gurp
 
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...Amazon Web Services
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every TeamSven Peters
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS drupalcampest
 
Concurrecy in Ruby
Concurrecy in RubyConcurrecy in Ruby
Concurrecy in RubyVesna Doknic
 
Seaside Portability
Seaside PortabilitySeaside Portability
Seaside Portabilityjfitzell
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced BasicsDoug Jones
 
Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017Alexander DEJANOVSKI
 
Website Performance: server- and clientside techniques
Website Performance: server- and clientside techniquesWebsite Performance: server- and clientside techniques
Website Performance: server- and clientside techniquesChris Ramakers
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolDaniel Austin
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesBertrand Delacretaz
 
DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)Laurent Guérin
 
Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes
Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes
Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes Michael Kimathi
 
CouchDB - Local Web Platform
CouchDB - Local Web PlatformCouchDB - Local Web Platform
CouchDB - Local Web PlatformChris Anderson
 

Similar to Keg.io (20)

SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
SDCSB Advanced Tutorial: Reproducible Data Visualization Workflow with Cytosc...
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
How Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar LeibovichHow Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar Leibovich
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotapp
 
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
A story of Netflix and AB Testing in the User Interface using DynamoDB - DAT3...
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every Team
 
Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
 
Concurrecy in Ruby
Concurrecy in RubyConcurrecy in Ruby
Concurrecy in Ruby
 
Seaside Portability
Seaside PortabilitySeaside Portability
Seaside Portability
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced Basics
 
Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017
 
Website Performance: server- and clientside techniques
Website Performance: server- and clientside techniquesWebsite Performance: server- and clientside techniques
Website Performance: server- and clientside techniques
 
Notes on a High-Performance JSON Protocol
Notes on a High-Performance JSON ProtocolNotes on a High-Performance JSON Protocol
Notes on a High-Performance JSON Protocol
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètes
 
DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)DevOps MeetUp NL - Docker (Oct 2014)
DevOps MeetUp NL - Docker (Oct 2014)
 
Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes
Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes
Scaling Rails with Ruby-prof -- Ruby Conf Kenya 2017 by Ben Hughes
 
CouchDB - Local Web Platform
CouchDB - Local Web PlatformCouchDB - Local Web Platform
CouchDB - Local Web Platform
 
CouchDB Google
CouchDB GoogleCouchDB Google
CouchDB Google
 

Recently uploaded

NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 

Recently uploaded (20)

NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 

Keg.io

Editor's Notes

  1. Hi. So, we’re going to talk about keg.io now and this is probably going to be the best talk you’ve seen all day.\nWhat’s keg.io? First, it’s about beer.\n
  2. Hi. So, we’re going to talk about keg.io now and this is probably going to be the best talk you’ve seen all day.\nWhat’s keg.io? First, it’s about beer.\n
  3. And who doesn’t like beer, right?\n
  4. This guy likes beer\n
  5. You know what’s funny? One of my coworkers asked me how many hours I’ve been putting in to this project. When I told her, she said I needed to find a girlfriend.\n
  6. I’m Chris Castle\n@crc\nAnd I work at...\n
  7. Simply Measured.\nI’m a Product Manager\nBut on the inside I’m a big nerd.\n
  8. We make software that pumps out beautiful reports\n
  9. \n
  10. So what is keg.io?\n
  11. keg.io is node.js + arduino + beer\n
  12. We’ve got this kegerator with a whole bunch of sensors attached to it\n
  13. We’ve got an Arduino microcontroller, which talks to all the sensors and valves\nIt’s 8-bit and kind of dumb and i have a love/hate relationship with it\n
  14. And then we’ve got a node.js server that chats with the Arduino\n
  15. So why did we build this thing?\nWell? My never-ending desire to start new projects that I never finish?\n
  16. No freaking idea.\nSeriously\nI think about it now, and there are so many reasons NOT to work on it\nThere are so many OTHER things I could be doing with my time:\njob\nfriends\nfamily\nhouse chores\nexercise\n\nBut I love this shit.\n
  17. I get to hang out with these three guys.\nCarl had worked with Arduino before.\nGarrett actually had some design sense and knew how to make GUIs.\nDylan is just a better developer than all of us.\nAnd we all like beer.\n
  18. So the genesis of keg.io is mustaches.\nWe hatched the idea while growing mustaches for a company party.\nSome of us were more successful than others.\nWe thought it would be great to build this for the “Stache Bash” at the end of the month.\n
  19. So we figured we’d get a kegerator from Amazon, an Arduino, some valves, some chips, write some code, and wire it all up.\nHow hard could that be?\n
  20. So we figured we’d get a kegerator from Amazon, an Arduino, some valves, some chips, write some code, and wire it all up.\nHow hard could that be?\n
  21. So we figured we’d get a kegerator from Amazon, an Arduino, some valves, some chips, write some code, and wire it all up.\nHow hard could that be?\n
  22. So we figured we’d get a kegerator from Amazon, an Arduino, some valves, some chips, write some code, and wire it all up.\nHow hard could that be?\n
  23. So we figured we’d get a kegerator from Amazon, an Arduino, some valves, some chips, write some code, and wire it all up.\nHow hard could that be?\n
  24. A lot harder than we thought.\nMany late nights leading up to the Stache Bash, but we got it done.\n
  25. \n
  26. \n
  27. So in v1 we had the arduino talking to the node.js server over serial.\nThere’s the arduino connected to all the sensors in the kegerator,\nThe node.js server sitting beside it,\nand a web browser that had to be able to hit the server.\nIt was kinda flakey.\nIt was good at crashing and not letting anyone have beer, and you’d be amazed at how angry people get when their access to beer is cut off.\nIt was very good incentive to make sure our code was either bug-free or failed gracefully.\n
  28. \n
  29. Our cast, again. Pretty similar.\nThis time we had the arduino and node.js server talk to each other over the internet.\nThe node.js server sits in AWS.\nThe arduino can be anywhere it can get wifi.\nThe browser just needs to be able to access the node.js server, so that’s pretty much anywhere (assuming we set up our security groups correctly)\n
  30. \n
  31. This put request tells the node.js server that it’s 42 degrees inside kegerator 1111\n
  32. The node.js server then sends a websocket message out to all clients (i.e. web browsers) listening for updates for kegerator 1111\n
  33. Here’s one of those web browsers\nAnd it updates the temperature\n
  34. This get request tells the node.js server that an RFID card with this ID was scanned at kegerator 1111\n
  35. The node.js server does a lookup in its database, sees that this is a valid RFID card ID, and responds with a 200 to tell that kegerator that it’s ok to let that person drink.\n
  36. The node.js server also sends a websocket message out to clients listening to updates for kegerator 1111.\n
  37. Then the kegerator pipes up again saying that 11oz was dispensed\n
  38. Node.js stores this...\n
  39. ...and then reports it to the clients\n
  40. And the GUI updates\n
  41. So here are all the pieces.\nThis is the money shot here. This is why I’m excited about node.\nThe node server has 4 roles\nstatic file server: the HTML, CSS, JS for the GUI\nkeg api: the HTTP interface that kegerators talk to\ndata api: the HTTP interface the GUI talks to to show graphs and data about beer consumption\nand websocket server: the way the GUI gets notified that something new happened\nAll of these were so easy with node, and they demonstrate node’s strength in an event-driven context.\n
  42. So let’s try it out and hope the demo gods look kindly upon us\nFirst I’m going to show the node.js server running locally and a test client running locally. Think of the test client as a kegerator mock. We couldn’t always be near a kegerator while working on this so we made a little node.js script that acts like a kegerator.\n\nNow are you ready for the real thing? Here, the server is running at AWS, and the client is this kegerator with its arduino, right here.\n
  43. So what’s next for keg.io?\n
  44. More stats and data visualizations.\nRemember the Data API part?\n
  45. You know how git or github can do something after a successful git commit? That’s called a post-commit hook.\nWell, I’m coining the term “post-pour hook”.\nThis is going to allow a user to provide a URL to which node.js will make a POST request upon a successful beer pour.\nYou could make it tweet about your pours, do you foursquare check-in, keep a personal diary of your drinking patterns, really anything...\n
  46. And I could keep coming up with new ideas until my head exploded.\n
  47. So I’ve kind of settled on two goals for now\n
  48. Get to the point where anyone can contribute to the project.\nRemember the static files? Well, those make up the GUI. We could use an admin interface, not to mention a better “currently drinking” dashboard.\nAnd we could use some charts too. So that’s the Data API.\n
  49. Get one setup in every nerdy, developer-filled office.\nSo hit me on Twitter or email or come talk to me if you’re interested.\n
  50. So that’s all I’ve got.\nThanks very much.\n
  51. Again, my name is Chris Castle.\nAnd, shameless plug, Simply Measured is hiring.\nWe’re looking for a Javascript, SVG/canvas, data visualization person.\n