SlideShare a Scribd company logo
1 of 40
Download to read offline
© Ibuildings 2014/2015 - All rights reserved
#DrupalDaysEU
UN World Food Programme:
Standards & Best Practices
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Gold Sponsors
#DrupalDaysEU
© Ibuildings 2014/2015 - All rights reserved
Media Sponsors
Silver Sponsors
Speaker Info
Andrew Holgate
Lead Drupal Developer
andrewholgate@yahoo.com
@andrewholgate
1) Drupal in the United Nations & the UN World Food
Programme
2) World Food Programme: Drupal Standards & Best Practices
a) Front-end Best Practices
b) Backend Best Practices
3) Questions
Overview
UN hosted DrupalCamp NYC in 2014
– Atefeh Riazi (OICT) gave keynote.
●
"Drupal … was adopted as a standard for the
Organization and meets our complex requirements
including security, flexibility, accessibility, support for
multilingual publishing, and publication workflow.”
- Atefeh Riazi
UN Office of Information and Communication Technology
●
WFP is the world's largest humanitarian agency fighting
hunger worldwide.
●
On average, WFP reaches more than 80 million people with
food assistance in 75 countries each year.
●
WFP is funded entirely by voluntary donations.
– governments, organisations, companies, public
●
Work primarily in emergency situation
– Ebola, Syria, Iraq, Central African Republic, South Sudan
●
HQ in Rome with offices in over 80 countries
UN World Food Programme
WFP.org
Give
Freerice
Quiz Platform
The FACTory
IT Communities
Food Security Cluster
Logistics Cluster
Lost time
– Understanding how a project was architectured.
– Searching for the right code to change.
– Understanding what code is supposed to do.
– Building similar, yet slightly different themes.
Over 40 different external developers have worked on our
code over past 6-years
– Most have their own approach.
– Spaghetti + macaroni + risotto.
= Code not fun to develop on
UN WFP Before Best Practices
●
Save money through quicker development time
●
Faster on-boarding of new developers
●
Higher quality code
●
What did we change?
– We ingrained best practices into our development cycle
●
Internally
●
.. and then with our vendors.
Importance of Best Practices
Measuring Code Quality
https://github.com/andrewholgate/un-wfp-drupal7-standards-best-practice
WFP Drupal Standard & Practices
●
Built a user interface guideline and development kit for all
WFP branded projects
– Branding consistency (public facing and internal)
●
Framework agnostic
– PHP
– Python
– C#
– .. any projects requiring WFP branding
Theme: UI Guideline
Colours
Icons
UI Toolkit
WFP.org – old theme
WFP.org – new theme
Goals
●
Maintainable code over time
●
Developer agnostic
●
Reduce bugs / increase quality
●
Faster iterations
●
Make code fun for developers to work on
●
Faster on-boarding of new developers
– Reduce time to first commit
Coding Best Practices
●
Break code into small units
– better readability and unit testing
●
Writing unit tests is one of the best forms of
documentation
– Will document most execution paths
– Should how code can be used
Unit Tests as Documentation
●
Use standard, sensible naming conventions
●
Enforce low cyclomatic complexity
– make code easy to understand
●
How?
– Peer review, PHP Code Sniffer, Coder,
DrupalStrict, PHPUnit etc.
– Automation: Phing + Jenkins CI, etc.
Coding Best Practices Implementation
●
Write code that doesn't need comments
●
Well structured code using sensible names is a
form of commenting.
●
If you need to write a comment, perhaps the code
is too complex?
Writing Understandable Code
●
Let the code comment itself
// Maximum number of items to display.
$num = 5;
$items_max = 5;
Comments
●
Comments must explain the why and not the what
●
The what can be understood by looking at the code
●
What problem was being solved with this code,
why was it necessary?
Comments
●
Leave advice for the next developer
/**
 * @todo Rename to template_preprocess_field__comment() once
 * https://www.drupal.org/node/939462 is resolved.
 */
Comments
●
Be honest, let other developers know when code is
not ideal:
// Workaround to add an HTML email template.
// @todo refactor to use theme hook.
Comments
●
Documentation is only as good as how quickly it can be
understood.
– Make it clear
– Make is concise
– Make it beautiful
●
DocBlocks are really important, use appropriate annotation.
– We use them even for core hooks.
Documentation
Doxygen
Bootstrap
Read The Docs
Have best practices
– Design / UI best practices
– Development best practices
– Process best practices
●
Ensure everyone follows them
●
Ensure everyone improves them
●
Write them down and share them with the community
Take Aways
Questions?
Speaker Info
Andrew Holgate
Lead Drupal Developer
andrewholgate@yahoo.com
@andrewholgate

More Related Content

What's hot

The future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy FranceThe future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy FranceOlivier Dobberkau
 
wcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingualwcdk - Making your WordPress Multilingual
wcdk - Making your WordPress MultilingualAmit Kvint
 
Women Who Mule - Workshop series: Create your own blog from scratch without a...
Women Who Mule - Workshop series: Create your own blog from scratch without a...Women Who Mule - Workshop series: Create your own blog from scratch without a...
Women Who Mule - Workshop series: Create your own blog from scratch without a...Alexandra N. Martinez
 
Agile product management
Agile product managementAgile product management
Agile product managementAlex Apollonsky
 
[DevRel Summit 2018] Because we all learn things differently
[DevRel Summit 2018] Because we all learn things differently[DevRel Summit 2018] Because we all learn things differently
[DevRel Summit 2018] Because we all learn things differentlyTomomi Imura
 
Feburary let's talk about docker
Feburary   let's talk about dockerFeburary   let's talk about docker
Feburary let's talk about dockerOshane Bailey
 
QA on Drupal projects - Drupal Dev Days Seville 2017
QA on Drupal projects - Drupal Dev Days Seville 2017QA on Drupal projects - Drupal Dev Days Seville 2017
QA on Drupal projects - Drupal Dev Days Seville 2017La Drupalera
 
Agile Content Development
Agile Content DevelopmentAgile Content Development
Agile Content DevelopmentDave Derrick
 

What's hot (10)

The future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy FranceThe future of CMS @T3UNI 2013 Annecy France
The future of CMS @T3UNI 2013 Annecy France
 
wcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingualwcdk - Making your WordPress Multilingual
wcdk - Making your WordPress Multilingual
 
Women Who Mule - Workshop series: Create your own blog from scratch without a...
Women Who Mule - Workshop series: Create your own blog from scratch without a...Women Who Mule - Workshop series: Create your own blog from scratch without a...
Women Who Mule - Workshop series: Create your own blog from scratch without a...
 
Agile product management
Agile product managementAgile product management
Agile product management
 
[DevRel Summit 2018] Because we all learn things differently
[DevRel Summit 2018] Because we all learn things differently[DevRel Summit 2018] Because we all learn things differently
[DevRel Summit 2018] Because we all learn things differently
 
Feburary let's talk about docker
Feburary   let's talk about dockerFeburary   let's talk about docker
Feburary let's talk about docker
 
Common Sense Agile
Common Sense AgileCommon Sense Agile
Common Sense Agile
 
QA on Drupal projects - Drupal Dev Days Seville 2017
QA on Drupal projects - Drupal Dev Days Seville 2017QA on Drupal projects - Drupal Dev Days Seville 2017
QA on Drupal projects - Drupal Dev Days Seville 2017
 
DevOps for Engineers
DevOps for EngineersDevOps for Engineers
DevOps for Engineers
 
Agile Content Development
Agile Content DevelopmentAgile Content Development
Agile Content Development
 

Viewers also liked

World Food Programme BB
World Food Programme BBWorld Food Programme BB
World Food Programme BBZhong Zhi
 
Evaluation Report of WFP's Enhancing Resilience Programme: Infographic
Evaluation Report of WFP's Enhancing Resilience Programme: InfographicEvaluation Report of WFP's Enhancing Resilience Programme: Infographic
Evaluation Report of WFP's Enhancing Resilience Programme: InfographicWorld Food Programme
 
United nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success storyUnited nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success storyMohamed Taman
 
FOOD AID INSTRUMENTS: WFP PROCUREMENTS
FOOD AID INSTRUMENTS: WFP PROCUREMENTSFOOD AID INSTRUMENTS: WFP PROCUREMENTS
FOOD AID INSTRUMENTS: WFP PROCUREMENTSMark Opanasiuk
 
WFP Presentation in Rome 041214
WFP Presentation in Rome 041214WFP Presentation in Rome 041214
WFP Presentation in Rome 041214Media Focus UK
 
CM - World Food Programme
CM - World Food ProgrammeCM - World Food Programme
CM - World Food ProgrammeNicolas Demey
 
The World Food Programme & Haiti
The World Food Programme & HaitiThe World Food Programme & Haiti
The World Food Programme & HaitiTropSoc
 
Celebrities and Nonprofits
Celebrities and NonprofitsCelebrities and Nonprofits
Celebrities and NonprofitsErica Stanzione
 
World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)
World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)
World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)World Food Programme
 
United nation world food organization
United nation world food organizationUnited nation world food organization
United nation world food organizationShuang Yang
 
The Role of Marketing in the Charitable Sector
The Role of Marketing in the Charitable SectorThe Role of Marketing in the Charitable Sector
The Role of Marketing in the Charitable SectorKatie Sanders
 
The role of brand in campaigning | Brand strategy and story | Brand Breakfast...
The role of brand in campaigning | Brand strategy and story | Brand Breakfast...The role of brand in campaigning | Brand strategy and story | Brand Breakfast...
The role of brand in campaigning | Brand strategy and story | Brand Breakfast...CharityComms
 

Viewers also liked (20)

World Food Programme BB
World Food Programme BBWorld Food Programme BB
World Food Programme BB
 
Evaluation Report of WFP's Enhancing Resilience Programme: Infographic
Evaluation Report of WFP's Enhancing Resilience Programme: InfographicEvaluation Report of WFP's Enhancing Resilience Programme: Infographic
Evaluation Report of WFP's Enhancing Resilience Programme: Infographic
 
WFP PowerPoint
WFP PowerPointWFP PowerPoint
WFP PowerPoint
 
United nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success storyUnited nations UNHCR & WFP case study, a java success story
United nations UNHCR & WFP case study, a java success story
 
FOOD AID INSTRUMENTS: WFP PROCUREMENTS
FOOD AID INSTRUMENTS: WFP PROCUREMENTSFOOD AID INSTRUMENTS: WFP PROCUREMENTS
FOOD AID INSTRUMENTS: WFP PROCUREMENTS
 
WFP Presentation in Rome 041214
WFP Presentation in Rome 041214WFP Presentation in Rome 041214
WFP Presentation in Rome 041214
 
CM - World Food Programme
CM - World Food ProgrammeCM - World Food Programme
CM - World Food Programme
 
The World Food Programme & Haiti
The World Food Programme & HaitiThe World Food Programme & Haiti
The World Food Programme & Haiti
 
Module5 5 s in wfp workshop
Module5 5 s in wfp workshopModule5 5 s in wfp workshop
Module5 5 s in wfp workshop
 
WFP
WFPWFP
WFP
 
WFP- Contingency Guidelines
WFP- Contingency GuidelinesWFP- Contingency Guidelines
WFP- Contingency Guidelines
 
Celebrities and Nonprofits
Celebrities and NonprofitsCelebrities and Nonprofits
Celebrities and Nonprofits
 
Un world food program
Un world food programUn world food program
Un world food program
 
The United Nation Organization
The United Nation OrganizationThe United Nation Organization
The United Nation Organization
 
Nurturing the future bulletin draft jan feb 2013
Nurturing the future bulletin draft jan feb 2013Nurturing the future bulletin draft jan feb 2013
Nurturing the future bulletin draft jan feb 2013
 
World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)
World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)
World Food Programme Zero Hunger: the Heart of the 2030 Agenda (factsheet)
 
United nation world food organization
United nation world food organizationUnited nation world food organization
United nation world food organization
 
The Role of Marketing in the Charitable Sector
The Role of Marketing in the Charitable SectorThe Role of Marketing in the Charitable Sector
The Role of Marketing in the Charitable Sector
 
United nations
United nationsUnited nations
United nations
 
The role of brand in campaigning | Brand strategy and story | Brand Breakfast...
The role of brand in campaigning | Brand strategy and story | Brand Breakfast...The role of brand in campaigning | Brand strategy and story | Brand Breakfast...
The role of brand in campaigning | Brand strategy and story | Brand Breakfast...
 

Similar to UN World Food Programme Standards & Best Practises (European Drupal Days 2015)

[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?Wong Hoi Sing Edison
 
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...WSO2
 
SIM RTP Meeting - So Who's Using Open Source Anyway?
SIM RTP Meeting - So Who's Using Open Source Anyway?SIM RTP Meeting - So Who's Using Open Source Anyway?
SIM RTP Meeting - So Who's Using Open Source Anyway?Alex Meadows
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How Nikhil Agrawal
 
Clean application development tutorial
Clean application development tutorialClean application development tutorial
Clean application development tutorialAdam Culp
 
How to Write a Winning Session Submission
How to Write a Winning Session SubmissionHow to Write a Winning Session Submission
How to Write a Winning Session SubmissionDocker, Inc
 
Drupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềm
Drupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềmDrupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềm
Drupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềmAiTi Education
 
Drupal enterprise solutions reduce total cost of ownership (tco)
Drupal enterprise solutions  reduce total cost of ownership (tco)Drupal enterprise solutions  reduce total cost of ownership (tco)
Drupal enterprise solutions reduce total cost of ownership (tco)Tom T
 
Content at the Right Time, in the Right Language: Innovation with a Healthy D...
Content at the Right Time, in the Right Language: Innovation with a Healthy D...Content at the Right Time, in the Right Language: Innovation with a Healthy D...
Content at the Right Time, in the Right Language: Innovation with a Healthy D...Information Development World
 
Choosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management FrameworkChoosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management FrameworkMediacurrent
 
Clean application development (talk)
Clean application development (talk)Clean application development (talk)
Clean application development (talk)Adam Culp
 
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovixapidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovixapidays
 
Agile Development: Key to smart software development
Agile Development: Key to smart software developmentAgile Development: Key to smart software development
Agile Development: Key to smart software developmentJerlyn Manohar
 
Mobile media module part 6 - app development rev-mf
Mobile media module   part 6 - app development rev-mfMobile media module   part 6 - app development rev-mf
Mobile media module part 6 - app development rev-mfMichelle Ferrier
 
SEO Fundamentals Outline Lecture 2
SEO Fundamentals Outline Lecture 2SEO Fundamentals Outline Lecture 2
SEO Fundamentals Outline Lecture 2Kalin Chernev
 
Leading an open source project as a startup
Leading an open source project as a startupLeading an open source project as a startup
Leading an open source project as a startupNicolas Garnier
 
Leading An Open Source Project As A Startup
Leading An Open Source Project As A StartupLeading An Open Source Project As A Startup
Leading An Open Source Project As A StartupMailjet
 

Similar to UN World Food Programme Standards & Best Practises (European Drupal Days 2015) (20)

[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
 
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
[APIdays Singapore 2019] Managing the API lifecycle with Open Source Technolo...
 
OS Accelerate London - 09/16/15
OS Accelerate London - 09/16/15OS Accelerate London - 09/16/15
OS Accelerate London - 09/16/15
 
SIM RTP Meeting - So Who's Using Open Source Anyway?
SIM RTP Meeting - So Who's Using Open Source Anyway?SIM RTP Meeting - So Who's Using Open Source Anyway?
SIM RTP Meeting - So Who's Using Open Source Anyway?
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
 
Drupal for Enterprises
Drupal for EnterprisesDrupal for Enterprises
Drupal for Enterprises
 
Clean application development tutorial
Clean application development tutorialClean application development tutorial
Clean application development tutorial
 
How to Write a Winning Session Submission
How to Write a Winning Session SubmissionHow to Write a Winning Session Submission
How to Write a Winning Session Submission
 
Drupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềm
Drupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềmDrupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềm
Drupal cho doanh nghiệp - cắt giảm tổng chi phí sở hữu phần mềm
 
Drupal enterprise solutions reduce total cost of ownership (tco)
Drupal enterprise solutions  reduce total cost of ownership (tco)Drupal enterprise solutions  reduce total cost of ownership (tco)
Drupal enterprise solutions reduce total cost of ownership (tco)
 
Content at the Right Time, in the Right Language: Innovation with a Healthy D...
Content at the Right Time, in the Right Language: Innovation with a Healthy D...Content at the Right Time, in the Right Language: Innovation with a Healthy D...
Content at the Right Time, in the Right Language: Innovation with a Healthy D...
 
Choosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management FrameworkChoosing Drupal as your Content Management Framework
Choosing Drupal as your Content Management Framework
 
Clean application development (talk)
Clean application development (talk)Clean application development (talk)
Clean application development (talk)
 
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovixapidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
apidays LIVE Paris 2021 - Who writes the Docs? by Laura Vass, Pronovix
 
Agile Development: Key to smart software development
Agile Development: Key to smart software developmentAgile Development: Key to smart software development
Agile Development: Key to smart software development
 
Mobile media module part 6 - app development rev-mf
Mobile media module   part 6 - app development rev-mfMobile media module   part 6 - app development rev-mf
Mobile media module part 6 - app development rev-mf
 
Polish the Wheel
Polish the WheelPolish the Wheel
Polish the Wheel
 
SEO Fundamentals Outline Lecture 2
SEO Fundamentals Outline Lecture 2SEO Fundamentals Outline Lecture 2
SEO Fundamentals Outline Lecture 2
 
Leading an open source project as a startup
Leading an open source project as a startupLeading an open source project as a startup
Leading an open source project as a startup
 
Leading An Open Source Project As A Startup
Leading An Open Source Project As A StartupLeading An Open Source Project As A Startup
Leading An Open Source Project As A Startup
 

More from Eugenio Minardi

Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Eugenio Minardi
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)Eugenio Minardi
 
ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)Eugenio Minardi
 
ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)Eugenio Minardi
 
ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)Eugenio Minardi
 
ExtJS: La piattaforma vincente
ExtJS: La piattaforma vincenteExtJS: La piattaforma vincente
ExtJS: La piattaforma vincenteEugenio Minardi
 
Distributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and AdvantagesDistributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and AdvantagesEugenio Minardi
 
A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)Eugenio Minardi
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Eugenio Minardi
 
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)Eugenio Minardi
 
PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)Eugenio Minardi
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Eugenio Minardi
 
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Eugenio Minardi
 
The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)Eugenio Minardi
 
Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...Eugenio Minardi
 
Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...Eugenio Minardi
 
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...Eugenio Minardi
 
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)Eugenio Minardi
 
Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)Eugenio Minardi
 
Bridging the gap between business and technology - Behaviour Driven Developme...
Bridging the gap between business and technology - Behaviour Driven Developme...Bridging the gap between business and technology - Behaviour Driven Developme...
Bridging the gap between business and technology - Behaviour Driven Developme...Eugenio Minardi
 

More from Eugenio Minardi (20)

Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)Delphi and ExtJS (26 ottobre 2017)
Delphi and ExtJS (26 ottobre 2017)
 
ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)ExtJS: La piattaforma vincente (tools)
ExtJS: La piattaforma vincente (tools)
 
ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)ExtJS: La piattaforma vincente (multiple screens)
ExtJS: La piattaforma vincente (multiple screens)
 
ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)ExtJS: La piattaforma vincente (rich UI)
ExtJS: La piattaforma vincente (rich UI)
 
ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)ExtJS: La piattaforma vincente (class system)
ExtJS: La piattaforma vincente (class system)
 
ExtJS: La piattaforma vincente
ExtJS: La piattaforma vincenteExtJS: La piattaforma vincente
ExtJS: La piattaforma vincente
 
Distributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and AdvantagesDistributed Team Management: 
Pitfall, Challenges and Advantages
Distributed Team Management: 
Pitfall, Challenges and Advantages
 
A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)A Practical Introduction to Symfony (European Drupal Days 2015)
A Practical Introduction to Symfony (European Drupal Days 2015)
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)
 
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)Optimizing MariaDB for Web Applications (European Drupal Days 2015)
Optimizing MariaDB for Web Applications (European Drupal Days 2015)
 
PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)PhpStorm for Drupal Development (European Drupal Days 2015)
PhpStorm for Drupal Development (European Drupal Days 2015)
 
Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)Drupal Continuous Integration (European Drupal Days 2015)
Drupal Continuous Integration (European Drupal Days 2015)
 
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
 
The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)The multilingual Drupal 8 experience (European Drupal Days 2015)
The multilingual Drupal 8 experience (European Drupal Days 2015)
 
Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...Another Copernican Revolution: maintenance first, projects second (European D...
Another Copernican Revolution: maintenance first, projects second (European D...
 
Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...Drupal Security: How to survive Drupalgeddon and prepare for future (European...
Drupal Security: How to survive Drupalgeddon and prepare for future (European...
 
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
The benefits of an elastic infrastructure on a Drupal e-commerce (European Dr...
 
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
Verifying Drupal modules with OWASP ASVS 2014 (European Drupal Days 2015)
 
Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)Secure Drupal, from start to finish (European Drupal Days 2015)
Secure Drupal, from start to finish (European Drupal Days 2015)
 
Bridging the gap between business and technology - Behaviour Driven Developme...
Bridging the gap between business and technology - Behaviour Driven Developme...Bridging the gap between business and technology - Behaviour Driven Developme...
Bridging the gap between business and technology - Behaviour Driven Developme...
 

Recently uploaded

2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge GraphsEleniIlkou
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrHenryBriggs2
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdfMatthew Sinclair
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...kumargunjan9515
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理F
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdfMatthew Sinclair
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsPriya Reddy
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.krishnachandrapal52
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Roommeghakumariji156
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查ydyuyu
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirtrahman018755
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsMonica Sydney
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasDigicorns Technologies
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查ydyuyu
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样ayvbos
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查ydyuyu
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdfMatthew Sinclair
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiMonica Sydney
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoilmeghakumariji156
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...gajnagarg
 

Recently uploaded (20)

2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
 
Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.Meaning of On page SEO & its process in detail.
Meaning of On page SEO & its process in detail.
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 

UN World Food Programme Standards & Best Practises (European Drupal Days 2015)

  • 1. © Ibuildings 2014/2015 - All rights reserved #DrupalDaysEU UN World Food Programme: Standards & Best Practices
  • 2. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Gold Sponsors
  • 3. #DrupalDaysEU © Ibuildings 2014/2015 - All rights reserved Media Sponsors Silver Sponsors
  • 4. Speaker Info Andrew Holgate Lead Drupal Developer andrewholgate@yahoo.com @andrewholgate
  • 5. 1) Drupal in the United Nations & the UN World Food Programme 2) World Food Programme: Drupal Standards & Best Practices a) Front-end Best Practices b) Backend Best Practices 3) Questions Overview
  • 6. UN hosted DrupalCamp NYC in 2014 – Atefeh Riazi (OICT) gave keynote. ● "Drupal … was adopted as a standard for the Organization and meets our complex requirements including security, flexibility, accessibility, support for multilingual publishing, and publication workflow.” - Atefeh Riazi UN Office of Information and Communication Technology
  • 7. ● WFP is the world's largest humanitarian agency fighting hunger worldwide. ● On average, WFP reaches more than 80 million people with food assistance in 75 countries each year. ● WFP is funded entirely by voluntary donations. – governments, organisations, companies, public ● Work primarily in emergency situation – Ebola, Syria, Iraq, Central African Republic, South Sudan ● HQ in Rome with offices in over 80 countries UN World Food Programme
  • 16. Lost time – Understanding how a project was architectured. – Searching for the right code to change. – Understanding what code is supposed to do. – Building similar, yet slightly different themes. Over 40 different external developers have worked on our code over past 6-years – Most have their own approach. – Spaghetti + macaroni + risotto. = Code not fun to develop on UN WFP Before Best Practices
  • 17. ● Save money through quicker development time ● Faster on-boarding of new developers ● Higher quality code ● What did we change? – We ingrained best practices into our development cycle ● Internally ● .. and then with our vendors. Importance of Best Practices
  • 20. ● Built a user interface guideline and development kit for all WFP branded projects – Branding consistency (public facing and internal) ● Framework agnostic – PHP – Python – C# – .. any projects requiring WFP branding Theme: UI Guideline
  • 22. Icons
  • 26. Goals ● Maintainable code over time ● Developer agnostic ● Reduce bugs / increase quality ● Faster iterations ● Make code fun for developers to work on ● Faster on-boarding of new developers – Reduce time to first commit Coding Best Practices
  • 27. ● Break code into small units – better readability and unit testing ● Writing unit tests is one of the best forms of documentation – Will document most execution paths – Should how code can be used Unit Tests as Documentation
  • 28. ● Use standard, sensible naming conventions ● Enforce low cyclomatic complexity – make code easy to understand ● How? – Peer review, PHP Code Sniffer, Coder, DrupalStrict, PHPUnit etc. – Automation: Phing + Jenkins CI, etc. Coding Best Practices Implementation
  • 29. ● Write code that doesn't need comments ● Well structured code using sensible names is a form of commenting. ● If you need to write a comment, perhaps the code is too complex? Writing Understandable Code
  • 30. ● Let the code comment itself // Maximum number of items to display. $num = 5; $items_max = 5; Comments
  • 31. ● Comments must explain the why and not the what ● The what can be understood by looking at the code ● What problem was being solved with this code, why was it necessary? Comments
  • 32. ● Leave advice for the next developer /**  * @todo Rename to template_preprocess_field__comment() once  * https://www.drupal.org/node/939462 is resolved.  */ Comments
  • 33. ● Be honest, let other developers know when code is not ideal: // Workaround to add an HTML email template. // @todo refactor to use theme hook. Comments
  • 34. ● Documentation is only as good as how quickly it can be understood. – Make it clear – Make is concise – Make it beautiful ● DocBlocks are really important, use appropriate annotation. – We use them even for core hooks. Documentation
  • 38. Have best practices – Design / UI best practices – Development best practices – Process best practices ● Ensure everyone follows them ● Ensure everyone improves them ● Write them down and share them with the community Take Aways
  • 40. Speaker Info Andrew Holgate Lead Drupal Developer andrewholgate@yahoo.com @andrewholgate