SlideShare a Scribd company logo
Charm City Linux

Web Dev Made Easy - Shell Revolution
WHO AM I?
•Principal and Co-Founder of E-Moxie - www.emoxie.com	

•PHP Developer, System Administrator, Tinkerer	

•Community Guy	

•Meetup Organizer - Baltimore PHP/Mobile/API (coming soon)	

•Always looking to maximize efficiencies	

•Always looking to make life easier (mainly mine)	

•I’ve been around for awhile, I’ve seen and learned some things	

!

•chris@emoxie.com	

•@cmstone
INDISPENSABLE TOOLS
!
!
!
!

Fish	

Screen	

Mosh	

Vagrant
SCREEN
WHAT IS SCREEN?
•Terminal multiplexer	

•Window manager for the terminal	

•Has been around since the beginning of time (early 90s I believe)	

•Ability to create additional “windows” or terminals within one
terminal window and switch between them	

!

Quick Start:	

•screen -R (Reattach a detached session - if it’s not currently attached)	

•screen -ls (List current screen sockets and their state)	

•Ctrl+a D (Detach current screen session)	

•Ctrl+a C (Create a new window)	

•Ctrl+a # (Switch to window)	

•Ctrl+a * (List windows)
SCREEN QUICK START
Command Line	

•screen (Starts it up)	

•screen -R (Reattach a detached session - if it’s not currently attached)	

•screen -D [pid](Force detach, specify pid if multiple, use -r to
immediately reattach)	

•screen -ls (List current screen sockets and their state)	

!

While in screen	

•Ctrl+a D (Detach current screen session)	

•Ctrl+a C (Create a new window)	

•Ctrl+a # (Switch to window)	

•Ctrl+a * (List windows)
MOSH - The MObile SHell
WHAT IS MOSH?
•MIT Computer Science 	

•Fairly new, 2 years old	

•Supports roaming	

•Intermittent Connectivity	

•Local Echo	

•SSH Replacement	

•Available for pretty much anything (even iOS and Android)	

!

Mac: 	

 	

 	

Linux: 	

 	

Windows:	

	


brew install mobile-shell	

apt-get install mosh or yum install mosh	

Cygwin is experimental
WHAT IS MOSH?
•MIT Computer Science 	

•Fairly new, 2 years old	

•Supports roaming	

•Intermittent Connectivity	

•Local Echo	

•SSH Replacement	

•Available for pretty much anything (even iOS and Android)	

!

Mac: 	

 	

 	

Linux: 	

 	

Windows:	

	


brew install mobile-shell	

apt-get install mosh or yum install mosh	

Cygwin is experimental
DOWNFALLS OF MOSH
•Not installed by default in most installations	

•No terminal scrollback (use screen!)
Zero to Development Hero
WHAT IS VAGRANT?
•Awesome	

•Life changing	

•New kid on the block	

•The #1 tool you should have in your development arsenal	

•Development tool that every developer and project should be using	

•Manager for a virtualization provider (VirtualBox, VMWare, etc)	

•Automates your [development] environment (Puppet or Chef)	

•Support for Docker containers (Paul)
WHY VAGRANT
•Gets rid of the “it works for me”	

•EASY and FAST	

•Everyone on the same page	

•Closely resembles a production environment	

•Keeps your computer clean	

•Low barrier to entry
THE HARD WAY
1. Someone new joins your company or team	

2. They need to get their development environment setup	

3. It takes two days to one week to get up and running	

4. Install an IDE	

5. Install MAMP or XAMP or something else that can serve pages	

6. Make sure the PHP version is the same	

7. Make sure the PHP config is the same	

8. Install additional extensions	

9. Configure MAMP	

10. Always tackle “it works for me” problems in the environment	

11. Environment relies on the local machine. Screwed it up? Do it again.	

12. Production environment got updated? Let’s make sure everyone
updates to the right version, do it again. Sounds fun....
Charm City Linux - Jan 2014 - Web Dev Made Easy - Shell Revolution
THE EASY WAY
1. Someone new joins your company or team and they need to get
their development environment setup	

2. Install IDE	

3. Install VirtualBox	

4. Install Vagrant	

5. Clone git repository	

6. Run ‘vagrant up’	

7. Make things
MY PROCESS
1. New person shows	

2. Install VirtualBox	

3. Install Vagrant	

4. Clone git repository	

5. Run ‘vagrant up’	

6. Vagrant uses puppet to boostraps the system using a very similar
config to production systems	

7. Use IDE of choice	

!

Zero Config for User	

1. Apache is using dynamic virtual hosting (Tim)	

2. Local ~/development folder is mapped to /var/www in VM	

3. *.dev.emoxie.com points to 192.168.1.50	

4. Apache maps the * to /var/www/<*>
WHAT DO I NEED
1. Vagrant - vagrantup.com	

2. VirtualBox - virtualbox.org	

3. PuPHPet - puphpet.com - GREAT Kickstarter to get you going	

4. Not a PHP User? http://www.vagrantbox.es
THANKS!

Reach out to me @cmstone or chris@emoxie.com

More Related Content

PDF
Baltimore PHP - October 2013- Development Environments Made Easy
PPTX
Mastering vagrant in 1 hour
PDF
Azure VM base images with Packer, Ansble and Vagrant
PPTX
No More “Cowboy Coding”: A Best Practices Guide to Local Development & Migration
PDF
Powering Development and Testing Environments with Vagrant
PDF
Building with Virtual Development Environments
PDF
Vagrant development environment
PPTX
Baltimore PHP - October 2013- Development Environments Made Easy
Mastering vagrant in 1 hour
Azure VM base images with Packer, Ansble and Vagrant
No More “Cowboy Coding”: A Best Practices Guide to Local Development & Migration
Powering Development and Testing Environments with Vagrant
Building with Virtual Development Environments
Vagrant development environment

What's hot (20)

PPTX
Windows Subsystem for Linux .NET Oxford Dec 2018
PDF
544 Project Part 1
PDF
Symfony with vagrant and ansible
PDF
Why Open Cloud Platforms are important - OSCON 2013
PPTX
Package Management on Windows with Chocolatey
PDF
[Node] Multiprocessing and runs continuously
ODP
Aloofix
PDF
Vagrant For DevOps
PPTX
544 Project Part 1
PPTX
Moodle powerpoint 2a
PDF
Moodle powerpoint 2aa
PDF
CocoaHeads Rennes #13 : CocoaPods
PDF
Improved development workflows using vagrant
ODP
Why Linux
PDF
life with posh
PPTX
Mmmm, chocolatey goodness!
PPTX
How To Set a Vagrant Development System
PDF
Using Minikube for Node.js development
PPTX
Instruction to build Apache CloudStack docs with Sphinx
PDF
SF DevOps: Introducing Vagrant
Windows Subsystem for Linux .NET Oxford Dec 2018
544 Project Part 1
Symfony with vagrant and ansible
Why Open Cloud Platforms are important - OSCON 2013
Package Management on Windows with Chocolatey
[Node] Multiprocessing and runs continuously
Aloofix
Vagrant For DevOps
544 Project Part 1
Moodle powerpoint 2a
Moodle powerpoint 2aa
CocoaHeads Rennes #13 : CocoaPods
Improved development workflows using vagrant
Why Linux
life with posh
Mmmm, chocolatey goodness!
How To Set a Vagrant Development System
Using Minikube for Node.js development
Instruction to build Apache CloudStack docs with Sphinx
SF DevOps: Introducing Vagrant
Ad

Similar to Charm City Linux - Jan 2014 - Web Dev Made Easy - Shell Revolution (20)

PDF
The development environment
PDF
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
PDF
Midwest php 2013 deploying php on paas- why & how
PDF
The Modern Developer Toolbox
PDF
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
PDF
Making Developers Productive with Vagrant, VirtualBox, and Docker
PDF
How bigtop leveraged docker for build automation and one click hadoop provis...
PDF
Laravel Forge: Hello World to Hello Production
PDF
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
PDF
Laravel Forge: Hello World to Hello Production
PDF
Deploying PHP on PaaS: Why and How?
PDF
Virtualize and automate your development environment for fun and profit
PDF
What we talk about when we talk about DevOps
ODP
Vagrant and puppet: Deployment made easy
PDF
How to deploy node to production
PPTX
How bigtop leveraged docker for build automation and one click hadoop provis...
PDF
Kinect Workshop Part 1/2
PDF
Local Development Environments
PDF
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
PDF
Vagrant for Effective DevOps Culture
The development environment
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Midwest php 2013 deploying php on paas- why & how
The Modern Developer Toolbox
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Making Developers Productive with Vagrant, VirtualBox, and Docker
How bigtop leveraged docker for build automation and one click hadoop provis...
Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
Deploying PHP on PaaS: Why and How?
Virtualize and automate your development environment for fun and profit
What we talk about when we talk about DevOps
Vagrant and puppet: Deployment made easy
How to deploy node to production
How bigtop leveraged docker for build automation and one click hadoop provis...
Kinect Workshop Part 1/2
Local Development Environments
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Vagrant for Effective DevOps Culture
Ad

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
KodekX | Application Modernization Development
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
cuic standard and advanced reporting.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KodekX | Application Modernization Development
The AUB Centre for AI in Media Proposal.docx
MYSQL Presentation for SQL database connectivity
NewMind AI Weekly Chronicles - August'25 Week I
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
Programs and apps: productivity, graphics, security and other tools
cuic standard and advanced reporting.pdf
Spectroscopy.pptx food analysis technology
Advanced methodologies resolving dimensionality complications for autism neur...
Diabetes mellitus diagnosis method based random forest with bat algorithm
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation theory and applications.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Charm City Linux - Jan 2014 - Web Dev Made Easy - Shell Revolution

  • 1. Charm City Linux Web Dev Made Easy - Shell Revolution
  • 2. WHO AM I? •Principal and Co-Founder of E-Moxie - www.emoxie.com •PHP Developer, System Administrator, Tinkerer •Community Guy •Meetup Organizer - Baltimore PHP/Mobile/API (coming soon) •Always looking to maximize efficiencies •Always looking to make life easier (mainly mine) •I’ve been around for awhile, I’ve seen and learned some things ! •chris@emoxie.com •@cmstone
  • 5. WHAT IS SCREEN? •Terminal multiplexer •Window manager for the terminal •Has been around since the beginning of time (early 90s I believe) •Ability to create additional “windows” or terminals within one terminal window and switch between them ! Quick Start: •screen -R (Reattach a detached session - if it’s not currently attached) •screen -ls (List current screen sockets and their state) •Ctrl+a D (Detach current screen session) •Ctrl+a C (Create a new window) •Ctrl+a # (Switch to window) •Ctrl+a * (List windows)
  • 6. SCREEN QUICK START Command Line •screen (Starts it up) •screen -R (Reattach a detached session - if it’s not currently attached) •screen -D [pid](Force detach, specify pid if multiple, use -r to immediately reattach) •screen -ls (List current screen sockets and their state) ! While in screen •Ctrl+a D (Detach current screen session) •Ctrl+a C (Create a new window) •Ctrl+a # (Switch to window) •Ctrl+a * (List windows)
  • 7. MOSH - The MObile SHell
  • 8. WHAT IS MOSH? •MIT Computer Science •Fairly new, 2 years old •Supports roaming •Intermittent Connectivity •Local Echo •SSH Replacement •Available for pretty much anything (even iOS and Android) ! Mac: Linux: Windows: brew install mobile-shell apt-get install mosh or yum install mosh Cygwin is experimental
  • 9. WHAT IS MOSH? •MIT Computer Science •Fairly new, 2 years old •Supports roaming •Intermittent Connectivity •Local Echo •SSH Replacement •Available for pretty much anything (even iOS and Android) ! Mac: Linux: Windows: brew install mobile-shell apt-get install mosh or yum install mosh Cygwin is experimental
  • 10. DOWNFALLS OF MOSH •Not installed by default in most installations •No terminal scrollback (use screen!)
  • 12. WHAT IS VAGRANT? •Awesome •Life changing •New kid on the block •The #1 tool you should have in your development arsenal •Development tool that every developer and project should be using •Manager for a virtualization provider (VirtualBox, VMWare, etc) •Automates your [development] environment (Puppet or Chef) •Support for Docker containers (Paul)
  • 13. WHY VAGRANT •Gets rid of the “it works for me” •EASY and FAST •Everyone on the same page •Closely resembles a production environment •Keeps your computer clean •Low barrier to entry
  • 14. THE HARD WAY 1. Someone new joins your company or team 2. They need to get their development environment setup 3. It takes two days to one week to get up and running 4. Install an IDE 5. Install MAMP or XAMP or something else that can serve pages 6. Make sure the PHP version is the same 7. Make sure the PHP config is the same 8. Install additional extensions 9. Configure MAMP 10. Always tackle “it works for me” problems in the environment 11. Environment relies on the local machine. Screwed it up? Do it again. 12. Production environment got updated? Let’s make sure everyone updates to the right version, do it again. Sounds fun....
  • 16. THE EASY WAY 1. Someone new joins your company or team and they need to get their development environment setup 2. Install IDE 3. Install VirtualBox 4. Install Vagrant 5. Clone git repository 6. Run ‘vagrant up’ 7. Make things
  • 17. MY PROCESS 1. New person shows 2. Install VirtualBox 3. Install Vagrant 4. Clone git repository 5. Run ‘vagrant up’ 6. Vagrant uses puppet to boostraps the system using a very similar config to production systems 7. Use IDE of choice ! Zero Config for User 1. Apache is using dynamic virtual hosting (Tim) 2. Local ~/development folder is mapped to /var/www in VM 3. *.dev.emoxie.com points to 192.168.1.50 4. Apache maps the * to /var/www/<*>
  • 18. WHAT DO I NEED 1. Vagrant - vagrantup.com 2. VirtualBox - virtualbox.org 3. PuPHPet - puphpet.com - GREAT Kickstarter to get you going 4. Not a PHP User? http://www.vagrantbox.es
  • 19. THANKS! Reach out to me @cmstone or chris@emoxie.com