SlideShare a Scribd company logo
1 of 51
Download to read offline
PHARO IoT
Installation Improvements and 

Continuous Integration

Allex Oliveira
IoT Engineer @ RMoD Team, INRIA
allex.oliveira@msn.com
1
Summary
1 – Getting experience
2 – Making the process easy
3 – Continuous Integration
4 – The future
!2
1 - Overview
• Created by Rmod Team, a research team from
INRIA (France)
• Written by Denis Kudriashov in 2016/17
dionisiydk@gmail.com
• In 2018, Allex Oliveira joined the Rmod Team to
continue the project 
!3
• A Pharo image running on IoT device (ARM VM)
• A Pharo library to control GPIOs (PharoThings) 
• A Remote IDE
• Remote Playground, Browser, Inspectors
• An advanced board inspector for Raspberry PI
• Other IoT Projects:
• A Pharo library to control Arduino Devices (Firmata)
What is Pharo IoT?
!4
ThingsThings
IDE
TelePharo

Remote

Communication
Firmata
GPIO
What is Pharo IoT?
Motivation
• It's not very easy to get started with PharoThings for
anyone who is not a Pharo/Smalltalk user.
• How can we automate the process to make the
developer’s life easier?
Before we automate something, we should ask:
How can we improve it?
!6
How to know what to improve?
Real world experience
IoT Workshop, ESUG
September 2018 - Cagliari, Italy
!
!7
How to know what to improve?
Real world experience
IoT Hackaton, Zweidenker GmbH
October 2018 - Cologne, Germany
"
!8
How to know what to improve?
Real world experience
Live Programming IoT devices with PharoThings
January 2019 - Can Tho University, Vietnam
#
!9
How to know what to improve?
Real world experience
ESUG Conference
European Smalltalk User Group
Sep 2018 Cagliari, Italy
INRIA
Pharo 10 Years
Nov 2018 Lille, France
USTH
University of Science and
Technology of Hanoi
Jan 2019 Hanoi, Vietnam
#$!
!10
2 - Difficulties
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
!11
2 - Difficulties
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
!12
How to install (manually)
1 2 3 4 5 6
1. Install PharoLauncher and create a new image
2. Load PharoThings project from Github
3. Copy ARM VM and Pharo Image to Raspberry Pi
4. Set the run permissions "chmod +x"
5. Run TelePharo server in a big command line
6. Extra configurations: set hostname, WiFi, autorun
!13
How to install (manually)
1 2 3 4 5 6
1. Install PharoLauncher and create a new image
!14
How to install (manually)
1 2 3 4 5 6
2. Load PharoThings project from Github
!15
How to install (manually)
1 2 3 4 5 6
3. Copy ARM VM and Pharo Image to Raspberry Pi
!16
How to install (manually)
1 2 3 4 5 6
4. Set the run permissions "chmod +x"
!17
How to install (manually)
1 2 3 4 5 6
5. Run TelePharo server in a big command line
!18
How to install (manually)
1 2 3 4 5 6
6. Extra configurations
• Auto connect on WiFi network
• Set hostname
• Autostart TelePharo server every boot
• Set boot to console (disable the Linux UI)
• Enable I2C and SPI kernel modules
!19
How to install (zero-conf)
1 2 3 4 5 6
1. Run the command to download and extract the files:
• wget -O - get.pharoiot.org/server | bash
2. Run TelePharo server:
• 1 click on pharo-server file or…
• type in terminal: ./pharo-server
Less than 1 minute!
!20
How to install (zero-conf)
1 2 3 4 5 6
6. Extra configurations
!21
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
2 - Difficulties
!22
+ Pharo Image 32/64
+ PharoThings loaded
+ ARM VM
+ Windows, Linux, Mac VMs
Packing everything
!23
+ Pharo Image 32/64
+ PharoThings loaded
+ ARM VM
+ Windows, Linux, Mac VMs
+ 1 click run files
pharo-ui
pharo-server
pharo
pharo.bat
1-click run files
!24
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
2 - Difficulties
!25
Installing from scratch
+ Installing Raspbian
+ Download Pharo IoT
+ Set Hostname
+ Enable I2C and SPI
+ Connect on WiFi
+ Start server every boot
Keyboard,mouse or
monitor not required
Less than 10 minutes!
!26
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
2 - Difficulties
!27
PharoThings Booklet
https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial
!28
PharoThings Booklet
https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial
!29
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
2 - Difficulties
!30
Welcome Window PharoThings
!31
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs to different OS (ARM, Linux, Win, OSX);
4. Need the same version on server/client;
5. Needs a keyboard/screen on Raspberry to install from
scratch;
6. No many application examples;
7. Search example code: copy and paste (pdf bad formatting);
2 - Difficulties
!32
3 - Continuous Integration
After these improvements,
now we can automate the process:
• Create PDF Booklet
• Load PharoThings on image 32/64
• Download last VMs
• Create the 1 click-run files
• Zip everything
• Deploy
How to automate?
!33
3 - Continuous Integration
Travis CI on PharoThings Booklet
• With each commit in Github, a new instance of a Travis virtual
machine is created and the scripts executed
• The booklet is created using Pillar, a Pharo tool-suite to generate
documentation, books, websites and slides
• Deploy in Github releases is done in each changes on the booklet
• The process is transparent, anyone can see and contribute to
improvements
!34
3 - Continuous Integration
Travis CI on PharoThings Booklet
github.com/SquareBracketAssociates/
Booklet-APharoThingsTutorial/.travis.yml
travis-ci.org/SquareBracketAssociates/
Booklet-APharoThingsTutorial
new commit run scripts/tests
new Github release
https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial
!35
3 - Continuous Integration
Travis CI on PharoThings Booklet
https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial
!36
3 - Continuous Integration
Travis CI on Pharo IoT
• With each commit in Github, a new instance of a Travis
virtual machine is created and the scripts executed
• Deploy is done only when a new Github Tag is created
• PharoThings is loaded in 32/64 images
• Zip files with everything (VMs, Images, 1 click-run) are up in
Github releases. We put it inside the repo also.
• The process is transparent, anyone can see and contribute
to improvements
!37
3 - Continuous Integration
Travis CI on Pharo IoT
https://github.com/pharo-iot/Ci
github.com/pharo-iot/Ci/.travis.yml travis-ci.org/pharo-iot/Ci
new commit run scripts/tests
is it tag? finishnoyes
new Github release
Github push
!38
3 - Continuous Integration
Travis CI on Pharo IoT
https://github.com/pharo-iot/Ci
!39
• We are using the Github Pages to host the zero-conf pages
get.pharoiot.org
https://github.com/pharo-iot/Ci/docs
!40
github.com/pharo-iot
• We are starting using Github Projects to work in a more
transparent and dynamic way.
https://github.com/orgs/pharo-iot/projects/1
You can take some tasks!
!41
Now you can
+ IoT
< 10 minutes
IoT
< 1 minute
IoT IDE
< 1 minute
Booklet Quickstart Guide Be part of the project!
!42
4 - Future
!43
pharoiot.org
Everything in the
same place, to
facilitate the journey
of the new user.
!44
pharoiot.org
• Share your IoT projects using Pharo with the community!
!45
Tele Radar
Automatic detection of running images in network 
(TeleRadar using SSDP protocol)
!46
PharoThings Booklet inside Pharo
!47
Minimal PharoThings image
https://github.com/noha/pharo-minimal
• Norbert Hartl
!48
Tool to “brew” SD Cards
• “brew" a new SD Card to inside Pharo (like PiBakery)
!49
NOW IN LESS
THAN 10 MINUTES!
With Pharo IoT you can
THANKS!
Any questions?
allex.oliveira@msn.com
• Dynamically update your running board
• Interact remotely with pins  and boards
• Modify the system while it is running (create new
board, change code)
• Make your changes persistent
get.pharoiot.org
!50
Presentation Information
This slides was presented at Pharo Days 2019, Lille, France
https://pharo.org/2019PharoDays
•Title: Pharo IoT - Installation Improvements and Continuous
Integration
•Presenters:
Allex Oliveira - linkedin.com/in/allex-oliveira
INRIA
https://www.inria.fr/
RMOD TEAM
https://rmod.inria.fr/web
PHARO PROJECT
https://github.com/pharo-project/pharo
PHAROTHINGS PROJECT
https://github.com/pharo-iot/PharoThings
PHARO IoT
http://get.pharoiot.org
!51

More Related Content

What's hot

How to automate elixir phoenix deployment with distillery and edeliver on ubu...
How to automate elixir phoenix deployment with distillery and edeliver on ubu...How to automate elixir phoenix deployment with distillery and edeliver on ubu...
How to automate elixir phoenix deployment with distillery and edeliver on ubu...VasiliyPodnebesniy
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationBasma Alkerm
 
The Scientific Filesystem
The Scientific FilesystemThe Scientific Filesystem
The Scientific FilesystemVanessa S
 
Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Reportlinuxlab_conf
 
Hackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsHackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsDan Jenkins
 
Deployment and Continous Integration of a Zope/Plone application
Deployment and Continous Integration of a Zope/Plone applicationDeployment and Continous Integration of a Zope/Plone application
Deployment and Continous Integration of a Zope/Plone applicationJulien Pivotto
 
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet
 
LibreOffice Flatpak, Snap and AppImage
LibreOffice Flatpak, Snap and AppImageLibreOffice Flatpak, Snap and AppImage
LibreOffice Flatpak, Snap and AppImageKukuh Syafaat
 
Python in the browser
Python in the browserPython in the browser
Python in the browserPyCon Italia
 
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Anne Nicolas
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applicationsTerry Chen
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務Bo-Yi Wu
 
Perl Development Environment Tooling
Perl Development Environment ToolingPerl Development Environment Tooling
Perl Development Environment ToolingJason Crome
 
Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Marco Cavallini
 

What's hot (17)

How to automate elixir phoenix deployment with distillery and edeliver on ubu...
How to automate elixir phoenix deployment with distillery and edeliver on ubu...How to automate elixir phoenix deployment with distillery and edeliver on ubu...
How to automate elixir phoenix deployment with distillery and edeliver on ubu...
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
 
DevOps, beyond agile
DevOps, beyond agileDevOps, beyond agile
DevOps, beyond agile
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
The Scientific Filesystem
The Scientific FilesystemThe Scientific Filesystem
The Scientific Filesystem
 
Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Report
 
Hackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome partsHackference 2014 - Node.js, the awesome parts
Hackference 2014 - Node.js, the awesome parts
 
Deployment and Continous Integration of a Zope/Plone application
Deployment and Continous Integration of a Zope/Plone applicationDeployment and Continous Integration of a Zope/Plone application
Deployment and Continous Integration of a Zope/Plone application
 
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
 
LibreOffice Flatpak, Snap and AppImage
LibreOffice Flatpak, Snap and AppImageLibreOffice Flatpak, Snap and AppImage
LibreOffice Flatpak, Snap and AppImage
 
Python in the browser
Python in the browserPython in the browser
Python in the browser
 
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applications
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
 
用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務用 Go 語言實戰 Push Notification 服務
用 Go 語言實戰 Push Notification 服務
 
Perl Development Environment Tooling
Perl Development Environment ToolingPerl Development Environment Tooling
Perl Development Environment Tooling
 
Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019Autobuilder2 Yocto Project Summit Lyon 2019
Autobuilder2 Yocto Project Summit Lyon 2019
 

Similar to Pharo IoT Installation Improvements and Continuous Integration

PHARO IoT: Present and Future
PHARO IoT: Present and FuturePHARO IoT: Present and Future
PHARO IoT: Present and FutureESUG
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VMFAST
 
Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely
Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotelyPharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely
Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotelyESUG
 
Cross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseCross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseESUG
 
Dependent things dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshareDependent things   dependency management for apple sw - slideshare
Dependent things dependency management for apple sw - slideshareCavelle Benjamin
 
Present and Future of the Pharo VM: Headless and Beyond
 Present and Future of the Pharo VM: Headless and Beyond Present and Future of the Pharo VM: Headless and Beyond
Present and Future of the Pharo VM: Headless and BeyondESUG
 
OSX/Pirrit: The blue balls of OS X adware
OSX/Pirrit: The blue balls of OS X adwareOSX/Pirrit: The blue balls of OS X adware
OSX/Pirrit: The blue balls of OS X adwareAmit Serper
 
Raspberry and Pharo
Raspberry and PharoRaspberry and Pharo
Raspberry and PharoPharo
 
Workshop For pycon13
Workshop For pycon13Workshop For pycon13
Workshop For pycon13Steven Pousty
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat OverviewMandi Walls
 
Applications in Pharo
Applications in PharoApplications in Pharo
Applications in PharoESUG
 
.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry pi.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry piNguyen Huu Thien An
 
.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry pi.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry piNguyen Huu Thien An
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryAndy Piper
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
 
Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & howdotCloud
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?AFUP_Limoges
 

Similar to Pharo IoT Installation Improvements and Continuous Integration (20)

PHARO IoT: Present and Future
PHARO IoT: Present and FuturePHARO IoT: Present and Future
PHARO IoT: Present and Future
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VM
 
Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely
Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotelyPharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely
Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely
 
PHARO IOT
PHARO IOTPHARO IOT
PHARO IOT
 
Cross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher caseCross-platform development with Pharo - The PharoLauncher case
Cross-platform development with Pharo - The PharoLauncher case
 
Dependent things dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshareDependent things   dependency management for apple sw - slideshare
Dependent things dependency management for apple sw - slideshare
 
Present and Future of the Pharo VM: Headless and Beyond
 Present and Future of the Pharo VM: Headless and Beyond Present and Future of the Pharo VM: Headless and Beyond
Present and Future of the Pharo VM: Headless and Beyond
 
OSX/Pirrit: The blue balls of OS X adware
OSX/Pirrit: The blue balls of OS X adwareOSX/Pirrit: The blue balls of OS X adware
OSX/Pirrit: The blue balls of OS X adware
 
Raspberry and Pharo
Raspberry and PharoRaspberry and Pharo
Raspberry and Pharo
 
Workshop For pycon13
Workshop For pycon13Workshop For pycon13
Workshop For pycon13
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat Overview
 
Applications in Pharo
Applications in PharoApplications in Pharo
Applications in Pharo
 
.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry pi.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry pi
 
.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry pi.Net framework 4.5 on raspberry pi
.Net framework 4.5 on raspberry pi
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
Run your Java apps on Cloud Foundry
Run your Java apps on Cloud FoundryRun your Java apps on Cloud Foundry
Run your Java apps on Cloud Foundry
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Automation in Cloud
Automation in CloudAutomation in Cloud
Automation in Cloud
 
Midwest php 2013 deploying php on paas- why & how
Midwest php 2013   deploying php on paas- why & howMidwest php 2013   deploying php on paas- why & how
Midwest php 2013 deploying php on paas- why & how
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?
 

Recently uploaded

VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesPooja Nehwal
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxraffaeleoman
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaKayode Fayemi
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsaqsarehman5055
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar TrainingKylaCullinane
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxNikitaBankoti2
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxmohammadalnahdi22
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024eCommerce Institute
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfSenaatti-kiinteistöt
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubssamaasim06
 
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMoumonDas2
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Delhi Call girls
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Chameera Dedduwage
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Vipesco
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...Sheetaleventcompany
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyPooja Nehwal
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardsticksaastr
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 

Recently uploaded (20)

VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara ServicesVVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
 
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptxChiulli_Aurora_Oman_Raffaele_Beowulf.pptx
Chiulli_Aurora_Oman_Raffaele_Beowulf.pptx
 
If this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New NigeriaIf this Giant Must Walk: A Manifesto for a New Nigeria
If this Giant Must Walk: A Manifesto for a New Nigeria
 
Air breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animalsAir breathing and respiratory adaptations in diver animals
Air breathing and respiratory adaptations in diver animals
 
Report Writing Webinar Training
Report Writing Webinar TrainingReport Writing Webinar Training
Report Writing Webinar Training
 
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docxANCHORING SCRIPT FOR A CULTURAL EVENT.docx
ANCHORING SCRIPT FOR A CULTURAL EVENT.docx
 
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptxMohammad_Alnahdi_Oral_Presentation_Assignment.pptx
Mohammad_Alnahdi_Oral_Presentation_Assignment.pptx
 
George Lever - eCommerce Day Chile 2024
George Lever -  eCommerce Day Chile 2024George Lever -  eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
 
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 93 Noida Escorts >༒8448380779 Escort Service
 
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdfThe workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
The workplace ecosystem of the future 24.4.2024 Fabritius_share ii.pdf
 
Presentation on Engagement in Book Clubs
Presentation on Engagement in Book ClubsPresentation on Engagement in Book Clubs
Presentation on Engagement in Book Clubs
 
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 97 Noida Escorts >༒8448380779 Escort Service
 
Mathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptxMathematics of Finance Presentation.pptx
Mathematics of Finance Presentation.pptx
 
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
Night 7k Call Girls Noida Sector 128 Call Me: 8448380779
 
Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)Introduction to Prompt Engineering (Focusing on ChatGPT)
Introduction to Prompt Engineering (Focusing on ChatGPT)
 
Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510Thirunelveli call girls Tamil escorts 7877702510
Thirunelveli call girls Tamil escorts 7877702510
 
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
No Advance 8868886958 Chandigarh Call Girls , Indian Call Girls For Full Nigh...
 
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night EnjoyCall Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
Call Girl Number in Khar Mumbai📲 9892124323 💞 Full Night Enjoy
 
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, YardstickSaaStr Workshop Wednesday w/ Lucas Price, Yardstick
SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 

Pharo IoT Installation Improvements and Continuous Integration

  • 1. PHARO IoT Installation Improvements and Continuous Integration Allex Oliveira IoT Engineer @ RMoD Team, INRIA allex.oliveira@msn.com 1
  • 2. Summary 1 – Getting experience 2 – Making the process easy 3 – Continuous Integration 4 – The future !2
  • 3. 1 - Overview • Created by Rmod Team, a research team from INRIA (France) • Written by Denis Kudriashov in 2016/17 dionisiydk@gmail.com • In 2018, Allex Oliveira joined the Rmod Team to continue the project  !3
  • 4. • A Pharo image running on IoT device (ARM VM) • A Pharo library to control GPIOs (PharoThings)  • A Remote IDE • Remote Playground, Browser, Inspectors • An advanced board inspector for Raspberry PI • Other IoT Projects: • A Pharo library to control Arduino Devices (Firmata) What is Pharo IoT? !4
  • 6. Motivation • It's not very easy to get started with PharoThings for anyone who is not a Pharo/Smalltalk user. • How can we automate the process to make the developer’s life easier? Before we automate something, we should ask: How can we improve it? !6
  • 7. How to know what to improve? Real world experience IoT Workshop, ESUG September 2018 - Cagliari, Italy ! !7
  • 8. How to know what to improve? Real world experience IoT Hackaton, Zweidenker GmbH October 2018 - Cologne, Germany " !8
  • 9. How to know what to improve? Real world experience Live Programming IoT devices with PharoThings January 2019 - Can Tho University, Vietnam # !9
  • 10. How to know what to improve? Real world experience ESUG Conference European Smalltalk User Group Sep 2018 Cagliari, Italy INRIA Pharo 10 Years Nov 2018 Lille, France USTH University of Science and Technology of Hanoi Jan 2019 Hanoi, Vietnam #$! !10
  • 11. 2 - Difficulties 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); !11
  • 12. 2 - Difficulties 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); !12
  • 13. How to install (manually) 1 2 3 4 5 6 1. Install PharoLauncher and create a new image 2. Load PharoThings project from Github 3. Copy ARM VM and Pharo Image to Raspberry Pi 4. Set the run permissions "chmod +x" 5. Run TelePharo server in a big command line 6. Extra configurations: set hostname, WiFi, autorun !13
  • 14. How to install (manually) 1 2 3 4 5 6 1. Install PharoLauncher and create a new image !14
  • 15. How to install (manually) 1 2 3 4 5 6 2. Load PharoThings project from Github !15
  • 16. How to install (manually) 1 2 3 4 5 6 3. Copy ARM VM and Pharo Image to Raspberry Pi !16
  • 17. How to install (manually) 1 2 3 4 5 6 4. Set the run permissions "chmod +x" !17
  • 18. How to install (manually) 1 2 3 4 5 6 5. Run TelePharo server in a big command line !18
  • 19. How to install (manually) 1 2 3 4 5 6 6. Extra configurations • Auto connect on WiFi network • Set hostname • Autostart TelePharo server every boot • Set boot to console (disable the Linux UI) • Enable I2C and SPI kernel modules !19
  • 20. How to install (zero-conf) 1 2 3 4 5 6 1. Run the command to download and extract the files: • wget -O - get.pharoiot.org/server | bash 2. Run TelePharo server: • 1 click on pharo-server file or… • type in terminal: ./pharo-server Less than 1 minute! !20
  • 21. How to install (zero-conf) 1 2 3 4 5 6 6. Extra configurations !21
  • 22. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !22
  • 23. + Pharo Image 32/64 + PharoThings loaded + ARM VM + Windows, Linux, Mac VMs Packing everything !23
  • 24. + Pharo Image 32/64 + PharoThings loaded + ARM VM + Windows, Linux, Mac VMs + 1 click run files pharo-ui pharo-server pharo pharo.bat 1-click run files !24
  • 25. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !25
  • 26. Installing from scratch + Installing Raspbian + Download Pharo IoT + Set Hostname + Enable I2C and SPI + Connect on WiFi + Start server every boot Keyboard,mouse or monitor not required Less than 10 minutes! !26
  • 27. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !27
  • 30. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !30
  • 32. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !32
  • 33. 3 - Continuous Integration After these improvements, now we can automate the process: • Create PDF Booklet • Load PharoThings on image 32/64 • Download last VMs • Create the 1 click-run files • Zip everything • Deploy How to automate? !33
  • 34. 3 - Continuous Integration Travis CI on PharoThings Booklet • With each commit in Github, a new instance of a Travis virtual machine is created and the scripts executed • The booklet is created using Pillar, a Pharo tool-suite to generate documentation, books, websites and slides • Deploy in Github releases is done in each changes on the booklet • The process is transparent, anyone can see and contribute to improvements !34
  • 35. 3 - Continuous Integration Travis CI on PharoThings Booklet github.com/SquareBracketAssociates/ Booklet-APharoThingsTutorial/.travis.yml travis-ci.org/SquareBracketAssociates/ Booklet-APharoThingsTutorial new commit run scripts/tests new Github release https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial !35
  • 36. 3 - Continuous Integration Travis CI on PharoThings Booklet https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial !36
  • 37. 3 - Continuous Integration Travis CI on Pharo IoT • With each commit in Github, a new instance of a Travis virtual machine is created and the scripts executed • Deploy is done only when a new Github Tag is created • PharoThings is loaded in 32/64 images • Zip files with everything (VMs, Images, 1 click-run) are up in Github releases. We put it inside the repo also. • The process is transparent, anyone can see and contribute to improvements !37
  • 38. 3 - Continuous Integration Travis CI on Pharo IoT https://github.com/pharo-iot/Ci github.com/pharo-iot/Ci/.travis.yml travis-ci.org/pharo-iot/Ci new commit run scripts/tests is it tag? finishnoyes new Github release Github push !38
  • 39. 3 - Continuous Integration Travis CI on Pharo IoT https://github.com/pharo-iot/Ci !39
  • 40. • We are using the Github Pages to host the zero-conf pages get.pharoiot.org https://github.com/pharo-iot/Ci/docs !40
  • 41. github.com/pharo-iot • We are starting using Github Projects to work in a more transparent and dynamic way. https://github.com/orgs/pharo-iot/projects/1 You can take some tasks! !41
  • 42. Now you can + IoT < 10 minutes IoT < 1 minute IoT IDE < 1 minute Booklet Quickstart Guide Be part of the project! !42
  • 44. pharoiot.org Everything in the same place, to facilitate the journey of the new user. !44
  • 45. pharoiot.org • Share your IoT projects using Pharo with the community! !45
  • 46. Tele Radar Automatic detection of running images in network  (TeleRadar using SSDP protocol) !46
  • 49. Tool to “brew” SD Cards • “brew" a new SD Card to inside Pharo (like PiBakery) !49
  • 50. NOW IN LESS THAN 10 MINUTES! With Pharo IoT you can THANKS! Any questions? allex.oliveira@msn.com • Dynamically update your running board • Interact remotely with pins  and boards • Modify the system while it is running (create new board, change code) • Make your changes persistent get.pharoiot.org !50
  • 51. Presentation Information This slides was presented at Pharo Days 2019, Lille, France https://pharo.org/2019PharoDays •Title: Pharo IoT - Installation Improvements and Continuous Integration •Presenters: Allex Oliveira - linkedin.com/in/allex-oliveira INRIA https://www.inria.fr/ RMOD TEAM https://rmod.inria.fr/web PHARO PROJECT https://github.com/pharo-project/pharo PHAROTHINGS PROJECT https://github.com/pharo-iot/PharoThings PHARO IoT http://get.pharoiot.org !51