SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Triage Requirements in Mass
Casualty Scenarios
A Surgeon's Guide to Plugin
Development
Surgical Aphorisms
❖ KISS - Keep It Simple (Stupid)
❖ The enemy of good is better
❖ Should you really do that?
❖ Learn from others
❖ You are "captain of the ship"
Keep It Simple
The Enemy of Good Is Better
Just Because You CAN Do
Something; Doesn't Mean You
SHOULD You Do Something?
Learn the Good and the Bad
Captain of the Ship
Decisions, not options
Single purpose
Simple, simple, simple
Scratch your own itch
Tools of the Trade
DesktopServer
PHPStorm
GitHub, Bitbucket, GitLab, etc.
Tower - towerapp.com
Google, GitHub, WordPress forums
Scratching Your Own Itch
❖ What problem do I want to solve?
❖ Does a solution already exist?
❖ Do current solutions work for you?
❖ DIY
Plugin Development
❖ Identify scope of project
❖ Start coding, preference to OOP
❖ Ask questions
❖ Constantly lookup and learn
❖ Core is your best reference
Core is your friend
❖ Transients API
❖ Settings API
❖ add_action()/do_action()
❖ add_filter()/apply_filters()
WordPress.org Plugin Repo
❖ The Events Calendar Category Colors
❖ The Events Calendar PRO Alarm
❖ The Events Calendar User CSS
❖ The Events Calendar Outlook Import Fix
❖ Add Custom Header Images
My Goals for GitHub Updater
❖ Simple barrier to entry
❖ Work within core as much possible
❖ Update both plugins and themes
Plugin Requirements for GitHub Updater
/*

Plugin Name: GitHub Updater

Plugin URI: https://github.com/afragen/github-updater

Description: A plugin to automatically update GitHub, Bitbucket or
GitLab hosted plugins and themes. It also allows for remote installation
of plugins or themes into WordPress.
Version: 1.0.0

Author: Andy Fragen

License: GNU General Public License v2

License URI: http://www.gnu.org/licenses/gpl-2.0.html

Domain Path: /languages

Text Domain: github-updater

GitHub Plugin URI: https://github.com/afragen/github-updater

GitHub Branch: master

*/

Current State of GitHub Updater
❖ Seamless updates for plugins and themes
❖ Works in single or multisite
❖ Works with GitHub, Bitbucket, and GitLab
❖ Works with public and private repositories
❖ Changelogs, readme.txt, view details, ratings, etc.
❖ Rollback for themes
❖ Settings page
❖ Allows for remote installation of plugins or themes
❖ Branch switching/re-installation for plugins/themes
❖ Integrates with iThemes Sync and InfiniteWP
https://github.com/afragen/github-updater
There's no such thing as a minor
surgery; only minor surgeons.
http://wclax.reviews/
WhoAmI
❖ http://thefragens.com
❖ @andyfragen - Twitter
❖ https://github.com/afragen
❖ Day job, trauma/acute care surgeon
❖ Chief of Staff, Desert Regional Medical Center, Palm Springs, CA
❖ WordCamp sponsor and now speaker
Bucket List

Más contenido relacionado

La actualidad más candente

WPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin DevelopmentWPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin Development
Caldera Labs
 
Github for Serious Business Professional
Github for Serious Business ProfessionalGithub for Serious Business Professional
Github for Serious Business Professional
zwheller
 

La actualidad más candente (20)

It Takes a Village to Make WordPress
It Takes a Village to Make WordPressIt Takes a Village to Make WordPress
It Takes a Village to Make WordPress
 
FuelPHP
FuelPHPFuelPHP
FuelPHP
 
FuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshopFuelPHP presentation - PeoplePerHour workshop
FuelPHP presentation - PeoplePerHour workshop
 
Composer - The missing package manager for PHP
Composer - The missing package manager for PHPComposer - The missing package manager for PHP
Composer - The missing package manager for PHP
 
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 GolangCOSCUP 2016: Project 52 每週一個小專案來學習 Golang
COSCUP 2016: Project 52 每週一個小專案來學習 Golang
 
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
 
Using a Private Git Server for Packaging Software
Using a Private Git Server for Packaging SoftwareUsing a Private Git Server for Packaging Software
Using a Private Git Server for Packaging Software
 
WPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin DevelopmentWPSessions Composer for WordPress Plugin Development
WPSessions Composer for WordPress Plugin Development
 
How Perl Changed My Life
How Perl Changed My LifeHow Perl Changed My Life
How Perl Changed My Life
 
FuelPHP - a PHP HMVC Framework by silicongulf.com
FuelPHP - a PHP HMVC Framework by silicongulf.comFuelPHP - a PHP HMVC Framework by silicongulf.com
FuelPHP - a PHP HMVC Framework by silicongulf.com
 
An introduction to Git.
An introduction to Git.An introduction to Git.
An introduction to Git.
 
Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
Intro. to Git and Github
Intro. to Git and GithubIntro. to Git and Github
Intro. to Git and Github
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your Clients
 
Github for Serious Business Professional
Github for Serious Business ProfessionalGithub for Serious Business Professional
Github for Serious Business Professional
 
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
如何透過 Golang 與 Heroku 來一鍵部署 臉書機器人與 Line Bot
 
Intro to Github
Intro to GithubIntro to Github
Intro to Github
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Introduction to go
Introduction to goIntroduction to go
Introduction to go
 
Introduction to GoLang
Introduction to GoLangIntroduction to GoLang
Introduction to GoLang
 

Similar a Surgeons guide plugin development

[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
rahulbot
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
Pedro Melo
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source Documentation
LavaCon
 
Continuous integration with docker, buildbot and git
Continuous integration with docker, buildbot and gitContinuous integration with docker, buildbot and git
Continuous integration with docker, buildbot and git
Adieu
 

Similar a Surgeons guide plugin development (20)

Plugin Development for Beginners
Plugin Development for BeginnersPlugin Development for Beginners
Plugin Development for Beginners
 
30 days gcp info session final
30 days gcp info session final30 days gcp info session final
30 days gcp info session final
 
Github 101 An Adventurer's Guide To Open Source
Github 101   An Adventurer's Guide To Open SourceGithub 101   An Adventurer's Guide To Open Source
Github 101 An Adventurer's Guide To Open Source
 
Plugin Development for Beginners v.2019
Plugin Development for Beginners v.2019Plugin Development for Beginners v.2019
Plugin Development for Beginners v.2019
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Contributing to github is for everyone
Contributing to github is for everyoneContributing to github is for everyone
Contributing to github is for everyone
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
O'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source DocumentationO'Leary - Using GitHub for Enterprise and Open Source Documentation
O'Leary - Using GitHub for Enterprise and Open Source Documentation
 
Gitflow - Clouddictive
Gitflow   - ClouddictiveGitflow   - Clouddictive
Gitflow - Clouddictive
 
What's a Pull Request (Contributing to Open Source) - Brad Wood
What's a Pull Request (Contributing to Open Source) - Brad WoodWhat's a Pull Request (Contributing to Open Source) - Brad Wood
What's a Pull Request (Contributing to Open Source) - Brad Wood
 
Introduction to git & WordPress
Introduction to git & WordPressIntroduction to git & WordPress
Introduction to git & WordPress
 
Github developing stack
Github developing stackGithub developing stack
Github developing stack
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
Continuous integration with docker, buildbot and git
Continuous integration with docker, buildbot and gitContinuous integration with docker, buildbot and git
Continuous integration with docker, buildbot and git
 
Git Things Done
Git Things DoneGit Things Done
Git Things Done
 
Visual Regression Testing: In search of an Ember solution
Visual Regression Testing: In search of an Ember solutionVisual Regression Testing: In search of an Ember solution
Visual Regression Testing: In search of an Ember solution
 
CICD_1670665418.pdf
CICD_1670665418.pdfCICD_1670665418.pdf
CICD_1670665418.pdf
 
3DC Intro to Git Workshop
3DC Intro to Git Workshop3DC Intro to Git Workshop
3DC Intro to Git Workshop
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Surgeons guide plugin development

  • 1.
  • 2. Triage Requirements in Mass Casualty Scenarios
  • 3. A Surgeon's Guide to Plugin Development
  • 4.
  • 5. Surgical Aphorisms ❖ KISS - Keep It Simple (Stupid) ❖ The enemy of good is better ❖ Should you really do that? ❖ Learn from others ❖ You are "captain of the ship"
  • 7. The Enemy of Good Is Better
  • 8. Just Because You CAN Do Something; Doesn't Mean You SHOULD You Do Something?
  • 9. Learn the Good and the Bad
  • 10. Captain of the Ship Decisions, not options Single purpose Simple, simple, simple Scratch your own itch
  • 11. Tools of the Trade DesktopServer PHPStorm GitHub, Bitbucket, GitLab, etc. Tower - towerapp.com Google, GitHub, WordPress forums
  • 12. Scratching Your Own Itch ❖ What problem do I want to solve? ❖ Does a solution already exist? ❖ Do current solutions work for you? ❖ DIY
  • 13. Plugin Development ❖ Identify scope of project ❖ Start coding, preference to OOP ❖ Ask questions ❖ Constantly lookup and learn ❖ Core is your best reference
  • 14. Core is your friend ❖ Transients API ❖ Settings API ❖ add_action()/do_action() ❖ add_filter()/apply_filters()
  • 15. WordPress.org Plugin Repo ❖ The Events Calendar Category Colors ❖ The Events Calendar PRO Alarm ❖ The Events Calendar User CSS ❖ The Events Calendar Outlook Import Fix ❖ Add Custom Header Images
  • 16. My Goals for GitHub Updater ❖ Simple barrier to entry ❖ Work within core as much possible ❖ Update both plugins and themes
  • 17. Plugin Requirements for GitHub Updater /*
 Plugin Name: GitHub Updater
 Plugin URI: https://github.com/afragen/github-updater
 Description: A plugin to automatically update GitHub, Bitbucket or GitLab hosted plugins and themes. It also allows for remote installation of plugins or themes into WordPress. Version: 1.0.0
 Author: Andy Fragen
 License: GNU General Public License v2
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Domain Path: /languages
 Text Domain: github-updater
 GitHub Plugin URI: https://github.com/afragen/github-updater
 GitHub Branch: master
 */

  • 18. Current State of GitHub Updater ❖ Seamless updates for plugins and themes ❖ Works in single or multisite ❖ Works with GitHub, Bitbucket, and GitLab ❖ Works with public and private repositories ❖ Changelogs, readme.txt, view details, ratings, etc. ❖ Rollback for themes ❖ Settings page ❖ Allows for remote installation of plugins or themes ❖ Branch switching/re-installation for plugins/themes ❖ Integrates with iThemes Sync and InfiniteWP
  • 20. There's no such thing as a minor surgery; only minor surgeons.
  • 22. WhoAmI ❖ http://thefragens.com ❖ @andyfragen - Twitter ❖ https://github.com/afragen ❖ Day job, trauma/acute care surgeon ❖ Chief of Staff, Desert Regional Medical Center, Palm Springs, CA ❖ WordCamp sponsor and now speaker