SlideShare a Scribd company logo
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
What is keg.io?
+ +
Why build this?
NO F-ING IDEA
Dylan Carney

Garrett Patterson

Carl Krauss
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)
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)
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

07 arts-312-359-h.pen
07 arts-312-359-h.pen07 arts-312-359-h.pen
07 arts-312-359-h.pen
Leonardo Redaelli
 
Learn more about
Learn more aboutLearn more about
Learn more about
Amina 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 projct
eSAT 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 brands
Lakshmipathy 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 Media
Ross Dawson
 
사이버컴과 네트워크분석 6주차 2
사이버컴과 네트워크분석 6주차 2사이버컴과 네트워크분석 6주차 2
사이버컴과 네트워크분석 6주차 2Han Woo PARK
 
M2Mobi Airport Solution
M2Mobi Airport SolutionM2Mobi Airport Solution
M2Mobi Airport Solution
M2Mobi
 
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
 
Grupo conico
Grupo conicoGrupo conico
Grupo conico
Alfonso Ramos
 
Post colonial perspectives
Post colonial perspectivesPost colonial perspectives
Post colonial perspectives
Simon Gummer
 
Microbrewery in india- raw materials
Microbrewery in india- raw materialsMicrobrewery in india- raw materials
Microbrewery in india- raw materials
Ritwik Bhattacharya
 
Eye Tracking, Journal of Marketing Research
Eye Tracking, Journal of Marketing ResearchEye Tracking, Journal of Marketing Research
Eye Tracking, Journal of Marketing Research
Christopher Bartone
 
Beer
BeerBeer
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.....
Alessandro Cinelli (cirpo)
 
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
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
Paul Gallagher
 
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
DevOpsDays Tel Aviv
 
Docker experience @inbotapp
Docker experience @inbotappDocker experience @inbotapp
Docker experience @inbotapp
Jilles 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 Team
Sven 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 Ruby
Vesna Doknic
 
Seaside Portability
Seaside PortabilitySeaside Portability
Seaside Portability
jfitzell
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced Basics
Doug Jones
 
Apache cassandra en production - devoxx 2017
Apache cassandra en production  - devoxx 2017Apache cassandra en production  - devoxx 2017
Apache cassandra en production - devoxx 2017
Alexander DEJANOVSKI
 
Website Performance: server- and clientside techniques
Website Performance: server- and clientside techniquesWebsite Performance: server- and clientside techniques
Website Performance: server- and clientside techniques
Chris 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 Protocol
Daniel Austin
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètes
Bertrand 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 Google
CouchDB GoogleCouchDB Google
CouchDB Google
Steve Souders
 
CouchDB - Local Web Platform
CouchDB - Local Web PlatformCouchDB - Local Web Platform
CouchDB - Local Web Platform
Chris 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 Google
CouchDB GoogleCouchDB Google
CouchDB Google
 
CouchDB - Local Web Platform
CouchDB - Local Web PlatformCouchDB - Local Web Platform
CouchDB - Local Web Platform
 

Recently uploaded

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 

Recently uploaded (20)

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 

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