Save 37% off PRO during our Black Friday Sale! »

Node.js Dublin 2015 - Brewfactory: full-stack homebrew

1e2275ae49fccaa79d88fa6539492640?s=47 Peter Marton
February 27, 2015

Node.js Dublin 2015 - Brewfactory: full-stack homebrew

Slides from the Node.js Dublin 2015 February

http://brewfactory.org/
http://www.nodejsdublin.com/

1e2275ae49fccaa79d88fa6539492640?s=128

Peter Marton

February 27, 2015
Tweet

Transcript

  1. Brewfactory: full-stack homebrew Peter Marton @slashdotpeter

  2. $ whoami - work: RisingStack, Inc. - twitter: slashdotpeter -

    email: peter@risingstack.com - blog: http://blog.risingstack.com
  3. What is Brewfactory? - semi-automated brewing machine - hobby project

    - open-source project
  4. How to brew beer? (BIAB way)

  5. add water and malt

  6. hold temperature levels

  7. boil it and hops

  8. cool it fermentation

  9. bottle it enjoy!

  10. brewing sucks? … automate it!

  11. Brew like a boss

  12. What’s on the technology side?

  13. JavaScript everywhere 2007 2015 HW Microcontroller IoT devices from $10

    Control HW C, C++ Node.js: Johnny-Five, Tessel Web server .net, Java, PHP Node.js Database SQL MongoDB: JS API WebUI JavaScript: jQuery JavaScript: SPA (React, Angular etc.)
  14. Node.js in IoT - vibrant community - extreme modularity -

    high performance
  15. Johnny-Five - “jQuery of the IoT” - servo.to( 90 );

    button.on(‘down’, fn); - Arduino compatible boards - Node.js
  16. Our system

  17. Hardware parts - digital temp. sensor - DS18B20 (1-Wire) -

    heating elements - PWM (pulse-width modulation) - Relay (solid state) - controller - PID
  18. IoT device: RaspberryPi - credit-card sized - linux - usb

    ports - ethernet - NO built-in Wi-Fi - any languages
  19. IoT device: SparkCore - pint-sized - arduino compatible - built-in

    Wi-Fi - C++ - Spark’s cloud
  20. Architecture

  21. Architecture

  22. BrewCore - Node.js ~0.12 / io.js - Koa - WebSockets

    - Spark’s cloud - https://github.com/BrewCore
  23. BrewMobile - Swift - Reactive Cocoa - WebSockets by @vasarhelyia

  24. BrewUI - Isomorphic - React app with Flux - CommonJS

    (Node style) - available as npm module - https://github.com/BrewUI
  25. Isomorphic JavaScript “JavaScript code that can be shared between environments.”

    - Spike Brehm
  26. Why is it good for me? - power of server

    rendering - SEO - legacy support - speed of Single Page Apps (SPA)
  27. Isomorphic server side

  28. Isomorphic client side

  29. Isomorphic challenges - data fetching: talk about this later -

    init app on both sides - singleton app on client -> request scoped on server
  30. Data fetching problem - environment specific problems - should be

    shimmed - same functionality and interface - different implementation: AJAX / WS / DB call / micro-service / .. - “Full Stack Flux” - Pete Hunt: React.js Conf 2015 - Full Stack Flux
  31. Demo (http://brewcore-demo.herokuapp.com)

  32. Contribute! github.com/brewfactory

  33. Q&A Thank you! http://brewfactory.org