SlideShare a Scribd company logo
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kick-R: Get your own R instance with
36 cores on AWS
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
Kiwamu Okabe @ Centillion Japan
Co.,Ltd.
One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said...
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Boss: "Hey, my R script needs much time
to run..."
☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"
My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"
DemonstrationDemonstrationDemonstrationDemonstrationDemonstration
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<-�detectCores()
cl�<-�makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine,
������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{
��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
data(spam)
cores�<- detectCores()
cl�<- makeCluster(cores)
registerDoParallel(cl)
system.time(fit.rf�<- foreach(ntree�= rep(40,�36),�.combine�=�combine,
.export�= "spam",�.packages�= "randomForest")�%dopar% {
randomForest(type�~ .,�data�=�spam,�ntree�=�ntree)
})
stopCluster(cl)
☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220
☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS
How to build?How to build?How to build?How to build?How to build?
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
$�sudo�apt-get�install�git�make�bundler�unzip
$�cd�/usr/local/bin
$�wget�https://releases.hashicorp.com/packer/0.8.6/
packer_0.8.6_linux_amd64.zip
$�wget�https://releases.hashicorp.com/terraform/0.6.7/
terraform_0.6.7_linux_amd64.zip
$�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip
$�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip
$�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX
$�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
$�cd�~/src
$�git�clone�https://github.com/centillion-tech/kick-r.git
$�cd�kick-r
$�make�setup
How to run?How to run?How to run?How to run?How to run?
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
$�make
$�make�ssh-config�>�~/.ssh/config
$�ssh�kick-r
ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1
R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs?
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
M-x�R
/ssh:kick-r:
X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.
How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?
make�distcleanmake�distcleanmake�distcleanmake�distcleanmake�distclean
Try it!Try it!Try it!Try it!Try it!
https://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-r
License of photos #1License of photos #1License of photos #1License of photos #1License of photos #1
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
*�Side�Kick�Cara�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/davishaw/442139414/
��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0
*�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/chrishimself/3490002460/
��Copyright:�Christian�H.�/�License:�CC�BY�2.0
*�Kicking�scooters�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/amira_a/10597007134/
��Copyright:�amira_a�/�License:�CC�BY�2.0
*�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/mujitra/2527994700/
��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0
*�Dive�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/joeshlabotnik/516341295/
��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
License of photos #2License of photos #2License of photos #2License of photos #2License of photos #2
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing!
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0

More Related Content

Similar to Kick-R: Get your own R instance with 36 cores on AWS

Kite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenterKite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenter
Vasilis Gavrielatos
 
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQLAWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
Grant McAlister
 
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Amazon Web Services
 
Let's Get to the Rapids
Let's Get to the RapidsLet's Get to the Rapids
Let's Get to the Rapids
Maurice Naftalin
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep Dive
Amazon Web Services
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced Basics
Doug Jones
 
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
Amazon Web Services
 
(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS
Amazon Web Services
 
Podlove Podcast Validator
Podlove Podcast ValidatorPodlove Podcast Validator
Podlove Podcast Validator
Lars Windauer
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
SV Ruby on Rails Meetup
 
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8
XSolve
 
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibilityre:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
Grant McAlister
 
Apache Spark for Library Developers with William Benton and Erik Erlandson
 Apache Spark for Library Developers with William Benton and Erik Erlandson Apache Spark for Library Developers with William Benton and Erik Erlandson
Apache Spark for Library Developers with William Benton and Erik Erlandson
Databricks
 
TDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyTDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em Ruby
Fabio Akita
 
Traceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thTraceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14th
Carsten Sandtner
 
Virtual Machine for Regular Expressions
Virtual Machine for Regular ExpressionsVirtual Machine for Regular Expressions
Virtual Machine for Regular Expressions
Alexander Yakushev
 
Sending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old schoolSending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old school
Nahidul Kibria
 
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Robert Stupp
 
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDBBuilding a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Cody Ray
 
Rails on Oracle 2011
Rails on Oracle 2011Rails on Oracle 2011
Rails on Oracle 2011
Raimonds Simanovskis
 

Similar to Kick-R: Get your own R instance with 36 cores on AWS (20)

Kite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenterKite: efficient and available release consistency for the datacenter
Kite: efficient and available release consistency for the datacenter
 
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQLAWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
AWS re:Invent 2019 - DAT328 Deep Dive on Amazon Aurora PostgreSQL
 
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
Deep Dive on the Amazon Aurora PostgreSQL-compatible Edition - DAT402 - re:In...
 
Let's Get to the Rapids
Let's Get to the RapidsLet's Get to the Rapids
Let's Get to the Rapids
 
DAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep DiveDAT305_Amazon ElastiCache Deep Dive
DAT305_Amazon ElastiCache Deep Dive
 
Node.js - Advanced Basics
Node.js - Advanced BasicsNode.js - Advanced Basics
Node.js - Advanced Basics
 
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
(ARC311) Extreme Availability for Mission-Critical Applications | AWS re:Inve...
 
(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS(BDT205) Your First Big Data Application On AWS
(BDT205) Your First Big Data Application On AWS
 
Podlove Podcast Validator
Podlove Podcast ValidatorPodlove Podcast Validator
Podlove Podcast Validator
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
 
Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8Xlab #1: Advantages of functional programming in Java 8
Xlab #1: Advantages of functional programming in Java 8
 
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibilityre:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
re:Invent 2020 DAT301 Deep Dive on Amazon Aurora with PostgreSQL Compatibility
 
Apache Spark for Library Developers with William Benton and Erik Erlandson
 Apache Spark for Library Developers with William Benton and Erik Erlandson Apache Spark for Library Developers with William Benton and Erik Erlandson
Apache Spark for Library Developers with William Benton and Erik Erlandson
 
TDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em RubyTDC 2012 - Patterns e Anti-Patterns em Ruby
TDC 2012 - Patterns e Anti-Patterns em Ruby
 
Traceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14thTraceur - Javascript.next - Now! RheinmainJS April 14th
Traceur - Javascript.next - Now! RheinmainJS April 14th
 
Virtual Machine for Regular Expressions
Virtual Machine for Regular ExpressionsVirtual Machine for Regular Expressions
Virtual Machine for Regular Expressions
 
Sending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old schoolSending a for ahuh. win32 exploit development old school
Sending a for ahuh. win32 exploit development old school
 
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)Cassandra + Spark (You’ve got the lighter, let’s start a fire)
Cassandra + Spark (You’ve got the lighter, let’s start a fire)
 
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDBBuilding a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
 
Rails on Oracle 2011
Rails on Oracle 2011Rails on Oracle 2011
Rails on Oracle 2011
 

Recently uploaded

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
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
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
 
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
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 

Recently uploaded (20)

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
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
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
 
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?
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 

Kick-R: Get your own R instance with 36 cores on AWS

  • 1. Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kick-R: Get your own R instance with 36 cores on AWS Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd. Kiwamu Okabe @ Centillion Japan Co.,Ltd.
  • 2. One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said...One day, my boss said... ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Boss: "Hey, my R script needs much time to run..." ☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"☆ Me: "O.K. I'll try to fix it using AWS!"
  • 3. My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"My solution named "Kick-R"
  • 4. DemonstrationDemonstrationDemonstrationDemonstrationDemonstration data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<-�detectCores() cl�<-�makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<-�foreach(ntree�=�rep(40,�36),�.combine�=�combine, ������������������.export�=�"spam",�.packages�=�"randomForest")�%dopar%�{ ��randomForest(type�~�.,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) data(spam) cores�<- detectCores() cl�<- makeCluster(cores) registerDoParallel(cl) system.time(fit.rf�<- foreach(ntree�= rep(40,�36),�.combine�=�combine, .export�= "spam",�.packages�= "randomForest")�%dopar% { randomForest(type�~ .,�data�=�spam,�ntree�=�ntree) }) stopCluster(cl) ☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220☆ 25.0 sec on ThinkPad X220 ☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS☆ 10.5 sec on AWS
  • 5. How to build?How to build?How to build?How to build?How to build? $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup $�sudo�apt-get�install�git�make�bundler�unzip $�cd�/usr/local/bin $�wget�https://releases.hashicorp.com/packer/0.8.6/ packer_0.8.6_linux_amd64.zip $�wget�https://releases.hashicorp.com/terraform/0.6.7/ terraform_0.6.7_linux_amd64.zip $�sudo�unzip�-x�packer_0.8.6_linux_amd64.zip $�sudo�unzip�-x�terraform_0.6.7_linux_amd64.zip $�export�AWS_ACCESS_KEY_ID=XXXXXXXXXXXXXXXXXXXX $�export�AWS_SECRET_ACCESS_KEY=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY $�cd�~/src $�git�clone�https://github.com/centillion-tech/kick-r.git $�cd�kick-r $�make�setup
  • 6. How to run?How to run?How to run?How to run?How to run? $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing" $�make $�make�ssh-config�>�~/.ssh/config $�ssh�kick-r ubuntu@ip-10-189-135-202:~$�R�--version�│�head�-1 R�version�3.0.2�(2013-09-25)�--�"Frisbee�Sailing"
  • 7. How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs?How to use on Emacs? M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: M-x�R /ssh:kick-r: X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.X forwarding is available.
  • 8. How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment?How to cleanup all of environment? make�distcleanmake�distcleanmake�distcleanmake�distcleanmake�distclean
  • 9. Try it!Try it!Try it!Try it!Try it! https://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-rhttps://github.com/centillion-tech/kick-r
  • 10. License of photos #1License of photos #1License of photos #1License of photos #1License of photos #1 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0 *�Side�Kick�Cara�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/davishaw/442139414/ ��Copyright:�David�Farrell-Shaw�/�License:�CC�BY�2.0 *�Boss�Coffee�Vending�Machine�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/chrishimself/3490002460/ ��Copyright:�Christian�H.�/�License:�CC�BY�2.0 *�Kicking�scooters�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/amira_a/10597007134/ ��Copyright:�amira_a�/�License:�CC�BY�2.0 *�amazon.co.jp�Credit�Card.�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/mujitra/2527994700/ ��Copyright:�MIKI�Yoshihito�/�License:�CC�BY�2.0 *�Dive�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/joeshlabotnik/516341295/ ��Copyright:�Peter�Dutton�/�License:�CC�BY�2.0
  • 11. License of photos #2License of photos #2License of photos #2License of photos #2License of photos #2 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�Creative�Commons�BBB�│�Flickr�-�Photo�Sharing! ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0