SlideShare a Scribd company logo
Overcoming
Command Line
Allergies
Elaine Nelson v elainenelson.org
Caveats
What I want
you to learn
Who am I?
WHY IS IT SO HARD?
Cooking vs. Baking
WHY SHOULD I BOTHER?
Drush = Speed
Features + Git =
Better Drupaling
The land of the
“real” programmers
FIND YOUR COMFORT ZONE
IT’S DANGEROUS TO GO
ALONE! TAKE THIS…
Navigation
dir or ls
cd
Make it a little nicer
•  clear (Mac only)
•  Different styles
•  Bigger type
Overcoming Command Line Allergies
Vim, nano, or whatever
The Googles
•  That XKCD flowchart
https://xkcd.com/627/
The first time you try stuff, it
might be terrible.
SAMPLE PROJECT
THIS IS THE PART WHERE WE
CARGO CULT
Set up a web server!
MAMP + command line
https://www.mamp.info/
http://bramvandenbulcke.be/en/article/
installing-drush-mamp
Acquia Dev Desktop
https://www.acquia.com/products-
services/dev-desktop
SAVE YOUR HANDS WITH
DRUSH
(Re)Installing Drupal
drush site-install
Is this thing on?
drush status
Module installation: the old way
Module installation
drush en module_name
Always say YES
drush en module_name --y
Advanced module tricks
drush dl project_name
drush en module_name-7.x-x.x
Updates
drush up
drush cc all
How to go further
•  Beginner’s guide
https://www.digitalocean.com/community/tutorials/a-
beginner-s-guide-to-drush-the-drupal-shell
•  Full list of commands
http://drushcommands.com/
•  Drupalize Me
https://drupalize.me/videos/what-drush?p=1156
A FEATURE IS A WHAT NOW?
Naming things is hard
•  Features is a module.
•  A feature is something made with
Features.
•  A feature is also itself a module.
The simplest way to create a setup of
content types, views, and other stuff.
Install Features
drush en features --y
Building your feature
Putting your Feature to work
drush en feature_name --y
How to go farther
•  Drush commands to use with Features:
https://www.drupal.org/node/960926
•  Migrate works with Features
•  Drupalize Me (no, they’re not paying me)
GIT IS
YOUR SAFETY NET
like Dropbox, but for Features
Again on the live
Adding changes
Needs	
  drush	
  fu	
  screenshot?	
  
Stage > Commit > Push
Rolling back
Fetch > Pull > Revert
Tools for Git
GUIs for Git
•  Cross-platform, free: Github & Sourcetree
•  My preference: Tower (Mac only, $69)
Remote origin options
•  Github
•  Bitbucket
•  Gitlab
Add complexity as you need it
•  Rolling back, branching, merging
•  Git for Teams
Emma Jane Hogbin Westby
http://shop.oreilly.com/product/0636920034520.do
ALLERGY RELIEF

More Related Content

What's hot

Tooling, theming, made easy
Tooling, theming, made easyTooling, theming, made easy
Tooling, theming, made easy
Evan Butera
 
Boost your theming skills
Boost your theming skillsBoost your theming skills
Boost your theming skills
Artem Shymko
 
Boost your theming skills - Artem Shymko
Boost your theming skills - Artem ShymkoBoost your theming skills - Artem Shymko
Boost your theming skills - Artem Shymko
DrupalCampDN
 
Accessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIAAccessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIA
Dirk Ginader
 
Modernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & BowerModernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & Bower
Alan Crissey
 
The backend-of-frontend Drupaljam 2014
The backend-of-frontend Drupaljam 2014The backend-of-frontend Drupaljam 2014
The backend-of-frontend Drupaljam 2014
Triquanta
 
Introduction to React with MobX
Introduction to React with MobXIntroduction to React with MobX
Introduction to React with MobX
Ambrose Little
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
Ambrose Little
 
Drupal on your laptop
Drupal on your laptopDrupal on your laptop
Drupal on your laptop
Sam Moore
 
Technology
TechnologyTechnology
Technology
2511199700
 
Blogs
BlogsBlogs
Blogs
Lar Veale
 
Question 6
Question 6Question 6
Question 6
BubbleBlue
 
Make something real for Firefox OS with Mozilla app templates
Make something real  for Firefox OS with Mozilla app templatesMake something real  for Firefox OS with Mozilla app templates
Make something real for Firefox OS with Mozilla app templates
Piotr Zalewa
 
Optimize Your Mac Life
Optimize Your Mac LifeOptimize Your Mac Life
Optimize Your Mac Life
jbischke
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.js
davrous
 
Buy A Mac
Buy A MacBuy A Mac
Buy A Mac
fool2nd
 
Shell commands are fun
Shell commands are funShell commands are fun
Shell commands are fun
Febiansyah Hidayat
 
npm + browserify
npm + browserifynpm + browserify
npm + browserify
maxgfeller
 
Mongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART IMongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART I
Mitch Pirtle
 
Live Stream Monitoring
Live Stream MonitoringLive Stream Monitoring
Live Stream Monitoring
Joseph Hsu
 

What's hot (20)

Tooling, theming, made easy
Tooling, theming, made easyTooling, theming, made easy
Tooling, theming, made easy
 
Boost your theming skills
Boost your theming skillsBoost your theming skills
Boost your theming skills
 
Boost your theming skills - Artem Shymko
Boost your theming skills - Artem ShymkoBoost your theming skills - Artem Shymko
Boost your theming skills - Artem Shymko
 
Accessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIAAccessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIA
 
Modernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & BowerModernizing Your WordPress Workflow with Grunt & Bower
Modernizing Your WordPress Workflow with Grunt & Bower
 
The backend-of-frontend Drupaljam 2014
The backend-of-frontend Drupaljam 2014The backend-of-frontend Drupaljam 2014
The backend-of-frontend Drupaljam 2014
 
Introduction to React with MobX
Introduction to React with MobXIntroduction to React with MobX
Introduction to React with MobX
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Drupal on your laptop
Drupal on your laptopDrupal on your laptop
Drupal on your laptop
 
Technology
TechnologyTechnology
Technology
 
Blogs
BlogsBlogs
Blogs
 
Question 6
Question 6Question 6
Question 6
 
Make something real for Firefox OS with Mozilla app templates
Make something real  for Firefox OS with Mozilla app templatesMake something real  for Firefox OS with Mozilla app templates
Make something real for Firefox OS with Mozilla app templates
 
Optimize Your Mac Life
Optimize Your Mac LifeOptimize Your Mac Life
Optimize Your Mac Life
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.js
 
Buy A Mac
Buy A MacBuy A Mac
Buy A Mac
 
Shell commands are fun
Shell commands are funShell commands are fun
Shell commands are fun
 
npm + browserify
npm + browserifynpm + browserify
npm + browserify
 
Mongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART IMongodb, Node.js and You: PART I
Mongodb, Node.js and You: PART I
 
Live Stream Monitoring
Live Stream MonitoringLive Stream Monitoring
Live Stream Monitoring
 

Viewers also liked

rev 2 Final Presentation_Team 11
rev 2 Final Presentation_Team 11rev 2 Final Presentation_Team 11
rev 2 Final Presentation_Team 11
Telson Erebor
 
WhithurstArtFairCatalogueSmall
WhithurstArtFairCatalogueSmallWhithurstArtFairCatalogueSmall
WhithurstArtFairCatalogueSmall
Simon Wrey
 
презентация ко дню медиков дакор
презентация ко дню медиков дакорпрезентация ко дню медиков дакор
презентация ко дню медиков дакор
Ketty87
 
SSRN-id277549
SSRN-id277549SSRN-id277549
SSRN-id277549
Brochier1
 
Present continuous
Present continuousPresent continuous
Present continuous
mvreugdenhil
 
African Dancing
African DancingAfrican Dancing
African Dancing
lilienaolosoni
 
William McGuyer 2015
William McGuyer 2015William McGuyer 2015
William McGuyer 2015
Bill McGuyer
 
RANBIR SINGH CV
RANBIR SINGH CVRANBIR SINGH CV
RANBIR SINGH CV
Ranbir singh
 
Helping Business Overview 2015
Helping Business Overview 2015Helping Business Overview 2015
Helping Business Overview 2015
Celene Bakrins
 
G S Sharma CV
G S Sharma CVG S Sharma CV
G S Sharma CV
Ghanshyam Sharma
 
"We love meeting with you"
"We love meeting with you""We love meeting with you"
"We love meeting with you"
Elaine Nelson
 
Actos de Comercio
Actos de ComercioActos de Comercio
Actos de Comercio
RodrigoRamonRecalde83
 

Viewers also liked (13)

rev 2 Final Presentation_Team 11
rev 2 Final Presentation_Team 11rev 2 Final Presentation_Team 11
rev 2 Final Presentation_Team 11
 
WhithurstArtFairCatalogueSmall
WhithurstArtFairCatalogueSmallWhithurstArtFairCatalogueSmall
WhithurstArtFairCatalogueSmall
 
презентация ко дню медиков дакор
презентация ко дню медиков дакорпрезентация ко дню медиков дакор
презентация ко дню медиков дакор
 
SSRN-id277549
SSRN-id277549SSRN-id277549
SSRN-id277549
 
лексика
лексикалексика
лексика
 
Present continuous
Present continuousPresent continuous
Present continuous
 
African Dancing
African DancingAfrican Dancing
African Dancing
 
William McGuyer 2015
William McGuyer 2015William McGuyer 2015
William McGuyer 2015
 
RANBIR SINGH CV
RANBIR SINGH CVRANBIR SINGH CV
RANBIR SINGH CV
 
Helping Business Overview 2015
Helping Business Overview 2015Helping Business Overview 2015
Helping Business Overview 2015
 
G S Sharma CV
G S Sharma CVG S Sharma CV
G S Sharma CV
 
"We love meeting with you"
"We love meeting with you""We love meeting with you"
"We love meeting with you"
 
Actos de Comercio
Actos de ComercioActos de Comercio
Actos de Comercio
 

Similar to Overcoming Command Line Allergies

Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)
Alec Reynolds
 
Cloud Driven Development: a better workflow, less worries, and more power
Cloud Driven Development: a better workflow, less worries, and more powerCloud Driven Development: a better workflow, less worries, and more power
Cloud Driven Development: a better workflow, less worries, and more power
Marzee Labs
 
MongoDB, Cloudformation and Chef
MongoDB, Cloudformation and ChefMongoDB, Cloudformation and Chef
MongoDB, Cloudformation and Chef
MongoDB
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
Corwin Brown
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
JUGBD
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
Alexander Dean
 
Making development environments not suck | #econfpsu #econfpsu16
Making development environments not suck | #econfpsu #econfpsu16Making development environments not suck | #econfpsu #econfpsu16
Making development environments not suck | #econfpsu #econfpsu16
Tim Bracken
 
Vagrant + Veewee : Barcampboston April 10-2011
Vagrant + Veewee : Barcampboston April 10-2011Vagrant + Veewee : Barcampboston April 10-2011
Vagrant + Veewee : Barcampboston April 10-2011
Draco2002
 
DevOps For Small Teams
DevOps For Small TeamsDevOps For Small Teams
DevOps For Small Teams
Joe Ferguson
 
Drupal Extreme Scaling
Drupal Extreme ScalingDrupal Extreme Scaling
Drupal Extreme Scaling
zekivazquez
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Jeff Geerling
 
Improving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingImproving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP Profiling
Otto Kekäläinen
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
libsys
 
Browsers
BrowsersBrowsers
Browsers
Dima Malenko
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)
Otto Kekäläinen
 
Delivering Go.CD with Terraform and Docker
Delivering Go.CD with Terraform and DockerDelivering Go.CD with Terraform and Docker
Delivering Go.CD with Terraform and Docker
Jorrit Salverda
 
Karmasphere Studio for Hadoop
Karmasphere Studio for HadoopKarmasphere Studio for Hadoop
Karmasphere Studio for Hadoop
Hadoop User Group
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
Eric Bottard
 
Docker Demystified - Virtual VMs without the Fat
Docker Demystified - Virtual VMs without the FatDocker Demystified - Virtual VMs without the Fat
Docker Demystified - Virtual VMs without the Fat
Erik Osterman
 
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
Ricardo Castelhano
 

Similar to Overcoming Command Line Allergies (20)

Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)Beyond Local Development w/Kalabox (SFDUG July 2015)
Beyond Local Development w/Kalabox (SFDUG July 2015)
 
Cloud Driven Development: a better workflow, less worries, and more power
Cloud Driven Development: a better workflow, less worries, and more powerCloud Driven Development: a better workflow, less worries, and more power
Cloud Driven Development: a better workflow, less worries, and more power
 
MongoDB, Cloudformation and Chef
MongoDB, Cloudformation and ChefMongoDB, Cloudformation and Chef
MongoDB, Cloudformation and Chef
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
The JavaScript Delusion
The JavaScript DelusionThe JavaScript Delusion
The JavaScript Delusion
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
 
Making development environments not suck | #econfpsu #econfpsu16
Making development environments not suck | #econfpsu #econfpsu16Making development environments not suck | #econfpsu #econfpsu16
Making development environments not suck | #econfpsu #econfpsu16
 
Vagrant + Veewee : Barcampboston April 10-2011
Vagrant + Veewee : Barcampboston April 10-2011Vagrant + Veewee : Barcampboston April 10-2011
Vagrant + Veewee : Barcampboston April 10-2011
 
DevOps For Small Teams
DevOps For Small TeamsDevOps For Small Teams
DevOps For Small Teams
 
Drupal Extreme Scaling
Drupal Extreme ScalingDrupal Extreme Scaling
Drupal Extreme Scaling
 
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
Drupal VM for Drupal 8 Dev - Drupal Camp STL 2017
 
Improving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP ProfilingImproving WordPress Performance with Xdebug and PHP Profiling
Improving WordPress Performance with Xdebug and PHP Profiling
 
Depolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and CapistranoDepolying Drupal with Git, Drush Make and Capistrano
Depolying Drupal with Git, Drush Make and Capistrano
 
Browsers
BrowsersBrowsers
Browsers
 
Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)Improving WordPress performance (xdebug and profiling)
Improving WordPress performance (xdebug and profiling)
 
Delivering Go.CD with Terraform and Docker
Delivering Go.CD with Terraform and DockerDelivering Go.CD with Terraform and Docker
Delivering Go.CD with Terraform and Docker
 
Karmasphere Studio for Hadoop
Karmasphere Studio for HadoopKarmasphere Studio for Hadoop
Karmasphere Studio for Hadoop
 
Cloud Best Practices
Cloud Best PracticesCloud Best Practices
Cloud Best Practices
 
Docker Demystified - Virtual VMs without the Fat
Docker Demystified - Virtual VMs without the FatDocker Demystified - Virtual VMs without the Fat
Docker Demystified - Virtual VMs without the Fat
 
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
 

Recently uploaded

The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
Shiv Technolabs
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
Priyanka Aash
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
Anant Gupta
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
Google Developer Group - Harare
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
ssuser1915fe1
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
BrainSell Technologies
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Zilliz
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 

Recently uploaded (20)

The Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF GuideThe Role of IoT in Australian Mobile App Development - PDF Guide
The Role of IoT in Australian Mobile App Development - PDF Guide
 
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
(CISOPlatform Summit & SACON 2024) Digital Personal Data Protection Act.pdf
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes..."Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
"Mastering Graphic Design: Essential Tips and Tricks for Beginners and Profes...
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Google I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged SlidesGoogle I/O Extended Harare Merged Slides
Google I/O Extended Harare Merged Slides
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 

Overcoming Command Line Allergies

Editor's Notes

  1. Hi, today I’m going to talk you for a little bit about overcoming command line anxiety. I know it says allergies, but really, what we’re talking about is anxiety.
  2. Before I get started, a few caveats. I’m only covering Drupal 7. I don’t know what’s the same or different in Drupal 8. This is going to be very introductory material. But you should know your way around Drupal in the browser.
  3. That said, what I hope you’ll get out of this is confidence you can set up and run a web server on your local computer to run Drupal. That you’ll have some ideas of how Drush will make your life easier. I want you to see what’s cool about Features and why you’ll want to use Features together with Git. Everything in this talk will be on Slideshare and up on the summit website afterwards.
  4. So I’ve been using Drupal off and on for about 6 or 7 years. Currently I work at The Evergreen State College, where we’re in the process of migrating to Drupal from a proprietary CMS for our public-facing website. While I’ve been using computers of one sort or another since the early 90s, I’ve only rarely needed to use the command line. So I’m coming to this as someone with a lot of discomfort using command line tools.
  5. Why IS it so scary to use command line tools?
  6. I was recently reminded of the difference between cooking and baking. So if you’re making something like a stir-fry or a sauce, you can see what's happening as it happens. If it's not quite right, usually you can tweak it on the fly: turn down the heat, add a little salt or a little water. And most of the time, absolute precision isn't that important. There’s a pretty wide range of acceptable. On the other hand, baking gives you a double-whammy. First, you have to be precise with the ingredients. If you’ve ever left out or overdone salt or baking soda, you know what I’m talking about. Then, once it’s in the oven, there’s not much you can do about it, you’re just waiting. For me, the graphical user interface feels like cooking. Your hand is halfway there, and you turn aside. The affordances of a button let you hit approximately the right target. By contrast, with the command line, precision is everything and on top of that, there’s that chance that if you mistype or change your mind [shiny button]… You’ve destroyed everything. So it’s legitimately anxiety-inducing.
  7. Presumably you’ve gotten this far in life without needing it. I’m going to assume you have at least a vague thought that it might be worthwhile anyway, or you wouldn’t be sitting here. But I’ll give you a few reasons to encourage you to try these tools.
  8. [what IS Drush?] Drush is a tool that lets you do Drupal tasks from the command line. We use computers to make the boring stuff easier, right? For me, Drush is all about making boring tasks go more quickly. And it's pretty cool to take a really boring task and just type a single line and have it just go "poof!” On top of that, because Drush isn’t subject to the restrictions of loading a webpage in Drupal, some processes run faster that way.
  9. Features is a module that makes it possible to create a set of content types, views, and other configuration. Git is a version control system. They help you to break less stuff. If you use them, either separately or together, it’s easier to experiment, back out of your experiments, and move work from one site to another.
  10. Finally, because programmers write modules, and programmers use the command line, some modules like Features don’t make all of their tools available in the browser, or they write them so the easiest way to get at an error or a feature is through the command line.
  11. Sometimes command line is easier, and sometimes GUI is easier. And different people have different opinions about it. As I go through this, I'm going to switch back and forth, to remind you that you should use WHAT WORKS FOR YOU. ----- Meeting Notes (10/8/15 15:54) ----- gif of creamsicle with ps controller
  12. We’re going to start with some command line tools that will serve you well whatever you do.
  13. dir or ls: see what's in the folder you're in. use ls if you’re on a Mac; use dir if you’re on Windows. [dir = directory, ls = list] cd: go to another folder [cd = change directory] Drag and drop Right-click to paste (windows)
  14. clear: use clear just to not be overwhelmed by a wall of text. It pops the blank line you’re on to the top of the screen. [doesn’t work on Windows] On Mac, the Terminal application has quite a few nice font and color options. I was startled to find myself have more than one terminal window and using different color themes to tell them apart. On Windows, there’s a variety of replacements for the built-in “cmd.exe”, you want to go looking for “console” replacements.
  15. The up arrow is your friend. it's like scrolling through your history to find a thing. If you do the same thing over and over, which you might, then hitting the up arrow is faster and safer than typing out the command over again. F1 on windows has a similar effect.
  16. Especially in the setup phases of using these tools, at least on Mac, you may have to edit text files with a command line editor. There are at least two different command line text editors. They're weird. If you discover that you like one or the other, good for you. Either way, GOOD tutorials will include which key combos to use. http://ausdroid.net/wp-content/uploads/2013/07/Konami-Code.jpg 
  17. You know this, or you wouldn’t have gotten this far, but being able to write a clear meaningful search query is your MOST POWERFUL tool. Use those error message for searching.
  18. The first time you try it, things may go horribly wrong. And that’s ok. Don’t try any of this stuff on anything mission critical or publically-facing, until you get a little more comfortable. You may end up doing everything and then ripping it out again. Stimpy aside, it’s going to be fine.
  19. Instead, it’s great to work on a little sample or hobby project. In this the presentation, any screenshots and demonstrations are going to come from a sample project that I’ve been working on. It’s a custom bestiary for role-playing games.
  20. Who knows what a cargo cult is? [if anyone looks baffled] Here’s the short version: In world war II, we set up lots of little temporary bases on lots of little Pacific islands that had never seen westerners. On some of those islands, the people associated the strange actions and objects of the Army with the amazing wonders that they brought, and adopted religious rituals that incorporated the shapes of WWII technology without knowing anything about the actual technology. On the assumption that if they do the rituals then they’ll get the things. Sometimes, for me anyway, getting command line tools up and running is a lot like being part of a cargo cult. Unlike those islanders, you can actually get pretty far with this cargo cult.
  21. In order to run Drupal locally so you can try out Drush and Features, you’ll need to install a local web server. I have my system down on my Mac at work, but have run into a number of annoying issues on my Windows computer at home. I’ll admit that if you’re running Windows, this is where you’ll need to go do some research. For example, I got WAMP (Windows, Apache, MySQL, and PHP) running, and even had Drupal installed, but never got Drush quite together. Last week I tried again with Aquia Dev Desktop, which is supposed to come with everything, and had weird issues that might’ve been a firewall problem? I know there’s several people here who do know how to get all this set up on Windows, so it’s totally doable. As far as I can tell, your best bet is probably the Aquia Dev Desktop. Which also comes for Mac, but I’ve set up my system using MAMP and this really nice tutorial.
  22. So once you’ve gotten through whatever cargo cult stuff you had to do, you’re ready for Drush! Most of what I’m going to walk through next is commands that reduce how much clicking you need to do. This will save you time and make your hands and wrists happier.
  23. Warnings!
  24. Navigate to the folder where your site is located on your hard drive. Remember that cd stuff? this is where that comes in.
  25. Just a reminder of how I installed modules before I started learning drush.
  26. Screenshots! * Tiny bonus trick that comes in handy later: contrib & custom folders. En = enable Also “--y” – use example of views ui
  27. Also with specific version CAUTIONARY NOTE: sometimes the thing you need is a module in a project that contains many modules, and the project itself isn’t actually a module! Where I’ve gotten tripped up: media, features_extra. If you type “drush en project_name” and after you’ve clicked all the “y”, and it keeps asking you to download, then you know you’re stuck. The other thing you can do is if you want a particular version of a module
  28. Up = update
  29. Clear cache
  30. Now we’ve got a taste of drush, we’re going to learn a bit about features. Features is one of those things in Drupal-land that can be really hard to wrap your head around. It’s taken me several tries, but when I got it, I realized it was magic!
  31. Mostly because words. It's called "Features" and you make a thing called a "feature" and that's also somehow a module? It took me at least three attempts before I really got it. The short version: in Drupal 7, it's the simplest way to put all your content types, Views, and a bunch of other stuff together if you want to move them from one site to another.
  32. So yes, it is a module, and you install it like any other module: drush en features --y
  33. And then you go back into the browser. For this site, I’ve created a content type called Monster, and it has some custom fields, and I’ve created a View that lists all the Monsters in a big table. To turn that into a feature, I go to Structure – Features, and then go to the Create a Feature screen, check the boxes for the content type, and the view, write a little description, and download, what turns out to be a tar file. When I unzip it, it turns out to look a lot like a module. And oddly enough, we’re going to treat it like one. Now, I can’t automatically download it, so I’m back to copying and pasting, but I can go into the command line, type drush en bestiary --y and when I go back to the browser, it’s listed on the page and enabled.
  34. Now that we’ve created a Feature, it’s going to be really easy to set up another site! For the purposes of this demo, that site is also on my local machine, but this works for a Drupal site that you might have hosted somewhere out there. Create your site as usual, then put the feature with your folder in your modules folder, and enable it either through Features in the browser, or like any other module. If you have “shell access”, that means you can even use Drush on your remote site. (Have you always been like: and why do I need shell access? This is why.) Now there’s a development bestiary locally, and a live bestiary somewhere else, and I didn’t have to go through clicking all the things to set the one site to be like the other site.
  35. I’m going to change the feature and move those changes in just a moment, but first, some resources to take with your Features work… If you’re feeling ambitious, you may want to check out Migrate, which seems terrifying because there’s no UI for setting data up for migration, but if you’ve written any PHP at all, it’s possible to figure out the code to write your own migrations. I’ve mentioned them before, but I think Drupalize Me has some really great tutorials for both Features and Migrate. I usually don’t get much out of video training, but these were great.
  36. Now I’m going to add another tool to this set with Git. Extra-strong caveat: I AM NOT A GIT EXPERT.  About 80% of the time I use Git like a fancy-pants Dropbox. But wow, when you need the features of Git, you REALLY need them.
  37. At some point while you set up Drush, you end up installing Git in that kind of cargo-cult way I mentioned before. Now it’s actually going to be useful! You can totally use the command line with Git, and I’m going to show a little bit of that. But there are quite a few nice graphical Git clients. The Github app and Sourcetree are both cross-platform and free. I use Tower most of the time, which is NOT free. Our designer loves it, and I’ve to the same opinion. I’m going to turn that Feature into a repository, and I’m going to use the command line to do it. First I cd to the correct folder, then it’s just git init, and that makes a bunch of hidden files that git knows what to do with. But it’s not actually track the files until you manually add them with git add . The period means that it should just include everything. Then comes the “dropbox” aspect of using Git. By using git remote origin, I’m telling Git that it should connect this repository with some location out there. As far as where “out there” actually is, there’s github, bitbucket, gitlab, and so on. At work, we have a custom installation of Gitlab that’s only accessible on the local network. Then, finally, you push those files out to that place.
  38. Now I can go to my “live” site and turn the module folder over there into a repository as well. I can start by using the exact same commands in the command line, all the way up through adding the remote origin. But I’m going to stop there, because I already know that the remote and the local are the same. After all, I copied them myself by hand.
  39. Which means it’s time to start changing things! First we make a change to the view, something that already stored in the feature code, add description Now it shows up as Overridden. If I wanted to undo the change, I could use the “revert” function. But I don’t. I want this to be a permanent part of my feature. So I switch to the command line. Drush fl just shows pretty much the same thing as the browser. But drush fu bestiary will ADD those changes to the feature, rewriting the code in the files in my site. Because we’re all 12 or something, everybody snickers about drush fu. Of course, it stands for features update, and you can actually type drush features-update, but we’re all about saving time. Strongarm! What I also want is for the site’s name to be part of the bundle. But there wasn’t any way to do that when we created the feature. I need something called Strongarm. Personally, I think strongarm should be required for Features, because there’s even things about the content type that you can’t save without using strongarm. Now that I have strongarm enabled, I can at least in theory add more stuff to my Feature: but how? Fu works for integrating updates to existing parts of a feature, but I’ll need to do something else to add that site name. And takes us back to the browser: go to the Recreate tab, which looks just like how we created, but with everything prefilled. And now there’s a Strongarm section, too. So adding changes through recreate is just like how you originally created the feature. It’s possible to do this through Drush with features-export, but personally, I find it easier to decide what to add when I can see all the possibilities at once. ----- Meeting Notes (10/8/15 15:54) ----- override recreate revert
  40. We’re going to make a change in the list of environments to better match the language that’s used in the data we’re importing: “Ocean” to “Aquatic” and “City” to “Urban” Then run through updating the feature by running drush fu bestiary. And when I switch to Sourcetree, I can see the changes. I know I want to save those when I move the Feature to my live site, so I’m going to commit them. First I have to stage them, then I write a message. I think writing commit messages is a good gateway to write quality documentation. It helps me think about what this change means in as simple a way as possible. I’m choosing to just commit to my local repository, which gives me that second chance before I sent it to the files in the sky.
  41. Unless I get these screenshots, gonna have to handwave!!!!! So actually, this is a good spot to see something counter-intuitive in Features. If I head over to the browser and look at the feature there, it says that the site name is “overridden” – that’s because it still has the site name I used when I set this site up, and to Features, anything in the database that’s different from the code is an override, even if technically it happened before that thing was actually in the code. This is where I want to use Revert! Revert always means “make it like the code”. And now that I’ve pulled the newest code and reverted anything that had been different in the database, I’ve got a copy of my development setup all ready to go.
  42. There’s so much more you can do with Git. I’ve done a little bit with rolling back, branching, and merging, including working on a theme with my designer. Like I said, I’m in the middle of reading Git for Teams, and it’s great. She does everything in the command line, but it’s got a good mix of conceptual and practice.
  43. I hope this has reduced your anxiety and made the command line feel less scary, maybe even gotten you excited about things you could try out. I’ll say that I’ve had a lot of fun putting these tools together in my own work. Thank you!