SlideShare a Scribd company logo
1 of 42
Me & 
Google@Home 
Vytas Dauksa 
Slides are available at goo.gl/iRUI9C 
many thanks to mudler!
Agenda 
● Intro to G@Home 
● How to use it 
● What’s done 
● Where is it heading
About me 
● I graduated last year, since then: 
o Contributed to Linux Kernel 3.15 
o Published DateTimeX::Period module 
o Mentored a student at GSoC 
o Started speaking in public 
o Questioned Perl’s best practises in blogs.perl.org 
o Began using Perl for my personal projects
About me 
● Currently, I am trying to start monthly Perl 
technical meetings in Southampton.
but really I am just starting..
What’s Google@Home? 
Young, yet awesome Perl project...
What’s Google@Home? 
Young, yet awesome Perl project… 
…that aims to help automate your home
Home Automation
...But Why should you use 
Google@Home? 
I am not a sales person..
Why G@Home? 
● It is written in Perl ! 
● It is open sourced !
Why G@Home? 
● G@Home allows you to control multiple 
embedded devices using 
o Microphone 
o Web interface 
o Android app
Why G@Home? 
● It’s actively developed
Why G@Home? 
● It’s actively developed 
not at a pace of..
Why G@Home? 
● It’s actively developed 
not at a pace of.. but it’s here to stay...
Why G@Home? 
● It follows the latest Perl trends.. 
o Transitioned from Perl native OO to Moose to Moo 
o Integrated Web + RPC Server, using Mojolicious to 
issue command from Web interface and/or other 
applications 
o Scalable: support for multiple embedded devices, 
audio it’s also forwarded to the nodes speakers 
o Fully pluggable 
o Switchable Database Backend
...But What’s the catch? 
..So why not G@Home?
Why not G@Home? 
● Still very new, hence little known project 
( about 17 months old ) 
● Only very few plugins exist 
● Still not usable for everyday tasks 
( heavily under development ) 
● Too many dependencies 
o So it’s hard to install and get started….
...Though you can help... 
…by simply testing & reporting bugs
How to get started?
#1 Lets look at G@Home architecture
#2 Install - http://mudler.pm/articles/google_at_home_tutorial1
#3 go Explore... 
…be wild!
Available Plugins ( not in core ) 
● Hailo - learn to answer questions 
● Wikipedia - search wikipedia with voice 
● Relay - smart plugin that allows you to 
control GPIOs.
Web Interface 
Modern technologies: 
● Mojolicious 
● Bootstrap 3 
● JQuery 
● Pre-compiling JS & 
CSS for a smoother 
experience
Web Interface ( cont. )
G@Home Android App 
● Exposes Press ‘n Speak functionality, 
to control your house with your voice 
using the smartphone 
Source: 
https://github.com/IntelliHome/Google-at- 
Home-Remote-Controller
#4 Share.. 
…ideas are welcomed..
#4 Share.. 
…or be the guy who solves the puzzle..
It’s easy to make a plugin.. 
● G@Home calls ‘install’ when loading your 
plugin
Plugin: filters commands 
● Here you can hook filter command for the 
parser: 
sub install { 
shift->Parser->Backend->installPlugin( 
{ regex => 'wikipedias+(.*)', #We have one global match here 
plugin => "Wikipedia", 
plugin_method => "search" 
} 
); 
}
Plugins: events 
● or subscribe to events 
sub install { 
$_[0]->app->event->on( 
# Handling RPC request 
# RPC requests are processed in $tag, on/off 
GPIO_MSG => 
sub { shift->IntelliHome->Plugins->{"Relay"}->_command(@_); } 
); 
}
...What’s coming... 
…in 2014 - 2015
My short term plan 
● Spread the word of G@Home 
o To involve more people to test and contribute 
● Refactor the code 
● Document need of each dependency 
o So we could easily reduce dependencies
My medium term plan 
● Release it on CPAN 
● Package it up for Debian 
● Help maintaining it
My long term plan 
● Make installer 
● Get G@Home pre-installed on Raspbian 
● Make code easy to follow for people with 
little or no Perl experience 
● Make it easy to use for kids younger than 
10 years old
My long term plan 
● Port G@Home to Perl6 ( when Perl6 is 
officially released and official Mojolicious 
port is available )
…which might not be that far away..
…or maybe not..
...Anyway, I am not alone... 
…so plans may change
Follow me & project 
@vytasdauksa 
#Google-at-Home 
@IntelliHome
Thank you 
Any Questions? 
VytDau@gmail.com

More Related Content

What's hot

Bootstrapping your plugin
Bootstrapping your pluginBootstrapping your plugin
Bootstrapping your plugin
Marko Heijnen
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
digitalzombie
 

What's hot (20)

Bootstrapping your plugin
Bootstrapping your pluginBootstrapping your plugin
Bootstrapping your plugin
 
How I built web services in CakePHP
How I built web services in CakePHPHow I built web services in CakePHP
How I built web services in CakePHP
 
Montreal.rb ruby debugging basics - march 20th 2012
Montreal.rb   ruby debugging basics - march 20th 2012Montreal.rb   ruby debugging basics - march 20th 2012
Montreal.rb ruby debugging basics - march 20th 2012
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)
 
Plugin for CakePHP2.0
Plugin for CakePHP2.0Plugin for CakePHP2.0
Plugin for CakePHP2.0
 
Github developing stack
Github developing stackGithub developing stack
Github developing stack
 
QtPass and opensource project management, the road from a 2 day project till ...
QtPass and opensource project management, the road from a 2 day project till ...QtPass and opensource project management, the road from a 2 day project till ...
QtPass and opensource project management, the road from a 2 day project till ...
 
Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015
 
Introducing Yeoman 1.0 beta
Introducing Yeoman 1.0 betaIntroducing Yeoman 1.0 beta
Introducing Yeoman 1.0 beta
 
RxNetty
RxNettyRxNetty
RxNetty
 
PHP Berkshire October 2015
PHP Berkshire October 2015PHP Berkshire October 2015
PHP Berkshire October 2015
 
Going to library with angular
Going to library with angularGoing to library with angular
Going to library with angular
 
Bruno Skvorc - The many ways to contribute to open source
Bruno Skvorc - The many ways to contribute to open sourceBruno Skvorc - The many ways to contribute to open source
Bruno Skvorc - The many ways to contribute to open source
 
Elixir koans
Elixir koansElixir koans
Elixir koans
 
A Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - ReadingA Piece of Cake - DDD11 - Reading
A Piece of Cake - DDD11 - Reading
 
A Piece of Cake - DDD North
A Piece of Cake - DDD NorthA Piece of Cake - DDD North
A Piece of Cake - DDD North
 
A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016A Piece of Cake - NDC Oslo 2016
A Piece of Cake - NDC Oslo 2016
 
Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014
Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014
Don't Code, Bake. An introduction to CakePHP ~PHP Hampshire Oct 2014
 
Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUG
 

Similar to Me&g@home

Similar to Me&g@home (20)

An introduction to_golang.avi
An introduction to_golang.aviAn introduction to_golang.avi
An introduction to_golang.avi
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
Dynatech presentation for TSI Career Day
Dynatech presentation for TSI Career DayDynatech presentation for TSI Career Day
Dynatech presentation for TSI Career Day
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Python Django Basics
Python Django BasicsPython Django Basics
Python Django Basics
 
Pentester++
Pentester++Pentester++
Pentester++
 
Steer Your Career on Your Terms with the Right Side Project
Steer Your Career on Your Terms with the Right Side ProjectSteer Your Career on Your Terms with the Right Side Project
Steer Your Career on Your Terms with the Right Side Project
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Plugin Development for Beginners
Plugin Development for BeginnersPlugin Development for Beginners
Plugin Development for Beginners
 
Improve the deployment process step by step
Improve the deployment process step by stepImprove the deployment process step by step
Improve the deployment process step by step
 
Flutter not yet another mobile cross-platform framework - i ox-kl19
Flutter   not yet another mobile cross-platform framework - i ox-kl19Flutter   not yet another mobile cross-platform framework - i ox-kl19
Flutter not yet another mobile cross-platform framework - i ox-kl19
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Google Assistant Overview
Google Assistant Overview  Google Assistant Overview
Google Assistant Overview
 
go language- haseeb.pptx
go language- haseeb.pptxgo language- haseeb.pptx
go language- haseeb.pptx
 
Techhub Riga - tm 27.07
Techhub Riga - tm  27.07Techhub Riga - tm  27.07
Techhub Riga - tm 27.07
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Buildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in pythonBuildout: creating and deploying repeatable applications in python
Buildout: creating and deploying repeatable applications in python
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)
 
The case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinarThe case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinar
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

Me&g@home

  • 1. Me & Google@Home Vytas Dauksa Slides are available at goo.gl/iRUI9C many thanks to mudler!
  • 2. Agenda ● Intro to G@Home ● How to use it ● What’s done ● Where is it heading
  • 3. About me ● I graduated last year, since then: o Contributed to Linux Kernel 3.15 o Published DateTimeX::Period module o Mentored a student at GSoC o Started speaking in public o Questioned Perl’s best practises in blogs.perl.org o Began using Perl for my personal projects
  • 4. About me ● Currently, I am trying to start monthly Perl technical meetings in Southampton.
  • 5. but really I am just starting..
  • 6. What’s Google@Home? Young, yet awesome Perl project...
  • 7. What’s Google@Home? Young, yet awesome Perl project… …that aims to help automate your home
  • 9. ...But Why should you use Google@Home? I am not a sales person..
  • 10. Why G@Home? ● It is written in Perl ! ● It is open sourced !
  • 11. Why G@Home? ● G@Home allows you to control multiple embedded devices using o Microphone o Web interface o Android app
  • 12. Why G@Home? ● It’s actively developed
  • 13. Why G@Home? ● It’s actively developed not at a pace of..
  • 14. Why G@Home? ● It’s actively developed not at a pace of.. but it’s here to stay...
  • 15. Why G@Home? ● It follows the latest Perl trends.. o Transitioned from Perl native OO to Moose to Moo o Integrated Web + RPC Server, using Mojolicious to issue command from Web interface and/or other applications o Scalable: support for multiple embedded devices, audio it’s also forwarded to the nodes speakers o Fully pluggable o Switchable Database Backend
  • 16. ...But What’s the catch? ..So why not G@Home?
  • 17. Why not G@Home? ● Still very new, hence little known project ( about 17 months old ) ● Only very few plugins exist ● Still not usable for everyday tasks ( heavily under development ) ● Too many dependencies o So it’s hard to install and get started….
  • 18. ...Though you can help... …by simply testing & reporting bugs
  • 19. How to get started?
  • 20. #1 Lets look at G@Home architecture
  • 21. #2 Install - http://mudler.pm/articles/google_at_home_tutorial1
  • 22. #3 go Explore... …be wild!
  • 23. Available Plugins ( not in core ) ● Hailo - learn to answer questions ● Wikipedia - search wikipedia with voice ● Relay - smart plugin that allows you to control GPIOs.
  • 24. Web Interface Modern technologies: ● Mojolicious ● Bootstrap 3 ● JQuery ● Pre-compiling JS & CSS for a smoother experience
  • 25. Web Interface ( cont. )
  • 26. G@Home Android App ● Exposes Press ‘n Speak functionality, to control your house with your voice using the smartphone Source: https://github.com/IntelliHome/Google-at- Home-Remote-Controller
  • 27. #4 Share.. …ideas are welcomed..
  • 28. #4 Share.. …or be the guy who solves the puzzle..
  • 29. It’s easy to make a plugin.. ● G@Home calls ‘install’ when loading your plugin
  • 30. Plugin: filters commands ● Here you can hook filter command for the parser: sub install { shift->Parser->Backend->installPlugin( { regex => 'wikipedias+(.*)', #We have one global match here plugin => "Wikipedia", plugin_method => "search" } ); }
  • 31. Plugins: events ● or subscribe to events sub install { $_[0]->app->event->on( # Handling RPC request # RPC requests are processed in $tag, on/off GPIO_MSG => sub { shift->IntelliHome->Plugins->{"Relay"}->_command(@_); } ); }
  • 33. My short term plan ● Spread the word of G@Home o To involve more people to test and contribute ● Refactor the code ● Document need of each dependency o So we could easily reduce dependencies
  • 34. My medium term plan ● Release it on CPAN ● Package it up for Debian ● Help maintaining it
  • 35. My long term plan ● Make installer ● Get G@Home pre-installed on Raspbian ● Make code easy to follow for people with little or no Perl experience ● Make it easy to use for kids younger than 10 years old
  • 36. My long term plan ● Port G@Home to Perl6 ( when Perl6 is officially released and official Mojolicious port is available )
  • 37. …which might not be that far away..
  • 39. ...Anyway, I am not alone... …so plans may change
  • 40. Follow me & project @vytasdauksa #Google-at-Home @IntelliHome
  • 41.
  • 42. Thank you Any Questions? VytDau@gmail.com

Editor's Notes

  1. Original plan was to integrate all the Google services (search, Google Now, Google Speech API, etc) for daily use. Some of these are now available.
  2. TODO add pic