SlideShare a Scribd company logo
1 of 18
Download to read offline
Grape Vine Case Study: DrupalCamp 2014
Grape Vine Case Study: DrupalCamp 2014
CASE STUDY
Relaunching Grapevine.ca on Drupal
Grape Vine Case Study: DrupalCamp 2014
THE OBLIGATORY “ABOUT ME” SLIDE
● I’m James King (Hi!)
● CTO Fenix Solutions Inc
● Since 2001
● Drupal since 2009
● Since 1990!
● One of Ottawa’s original Internet businesses
Dude, get on with it...
Fenix
Grape Vine
Grape Vine Case Study: DrupalCamp 2014
● Perl codebase. Over 10 years old
● Extremely limited administrative functions
● No CMS functions at all
● Extremely expensive media hosting
● Users could not self-manage their own listings
● Over 10,000 unique visitors a month in the busy
season
THE “BEFORE”
...back when the Spice Girls roamed the earth
Grape Vine Case Study: DrupalCamp 2014
● Time
● Budget
● Needed CMS
● Users/Permissions/Access to Content
● Versioning and Workflow
● Media Handling
WHY DRUPAL?
Or “why not [Insert Framework Here]?”
The Big Ones
The Other Big Ones
Grape Vine Case Study: DrupalCamp 2014
● How generic is your requirement?
● Does a contrib module do what you need it to
do… I mean, REALLY.
● Does the module have an module.api.inc file?
Was it meant to be extended?
● Is the module being maintained? If not, do you
have the time/inclination to step in?
● What about the UX?
CUSTOM vs CONTRIB
Cue the nerdy slap fights
Grape Vine Case Study: DrupalCamp 2014
● How business-specific are your requirements?
● Are you SURE there isn’t a contrib module that
does what you need?
● Have you figured out a caching strategy?
● Are you going to have to build an admin UI? Are
you going to have to integrate with Views?
● Are you prepared for the extra QA/QC?
CUSTOM vs CONTRIB
Not the face!
Grape Vine Case Study: DrupalCamp 2014
● Originally tried the print module
● 10 years of kruft and bizarre display logic to deal
with
● Complex multi-page layout with highly variable
content
● Converting HTML to PDF was far too limited
● Not a feature we had planned to spend so much
time on
PDF FEATURE SHEETS
Finally, some real-world examples!
Grape Vine Case Study: DrupalCamp 2014
● Workbench Moderation worked out really well…
until we implemented a multi-step sign-up
process (CTools Multistep Wizard)
● By design, WBM wants to create a new revision
on every node_save.
● Luckily WBM is implemented well. We were able
to set properties on node object before save so it
would save to current version.
MODERATED CONTENT
I should write a blog post about this one
Grape Vine Case Study: DrupalCamp 2014
● OpenLayers worked great… until we imported all
4000 listings
● Views caching made it worse. Too many unique
result sets, too many points.
● Reasonable performance limited map view to 30
points at a time
● Removed OpenLayers/Views entirely. Talked
directly to Google Maps API.
MAPPING
Yay OpenLayers! Booooo OpenLayers...
Grape Vine Case Study: DrupalCamp 2014
● Originally used the Statistics module
● Switched to GA API, pulls stats per listing
Sample Code: https://gist.github.com/jmk1ng/9442895
GOOGLE ANALYTICS
Something, something, NSA
Grape Vine Case Study: DrupalCamp 2014
● Realtors®
are very keen to mass-solicit Grape
Vine clients
● No generic solution to this very specific problem
● Can’t blindly block messages from agents as
many are legit and welcome
SPAM!
If only it were just penis pills...
Grape Vine Case Study: DrupalCamp 2014
● Couldn’t use Feeds or Migrate - data needed
massive cleansing
● Needed to limit downtime as much as possible
● 10 years of ad-hoc formatting to support/cleanse
Sample Code: https://gist.github.com/jmk1ng/9536525
CONTENT MIGRATION
Like a matted rescue puppy
Grape Vine Case Study: DrupalCamp 2014
● Single Linux VPS
● Dual core CPU
● 8GB of RAM
● APC, Memcache (97% hit rate)
● 50GB Disk
● Amazon S3 for Media, New Relic for Monitoring
HOSTING + PERFORMANCE
If at first you don’t succeed, add more RAM
Grape Vine Case Study: DrupalCamp 2014
✓ Workbench Moderation
✓ Geofield
✓ Geocoder
✓ Storage API
✓ Memcache
✓ Views
SUMMING IT UP
Less is often more
47 Contrib Modules
7 Custom Modules
● Grape Vine Forms
● Grape Vine Listings
● Grape Vine Alerts
● Grape Vine PDF
● Grape Vine Invoice
● Grape Vine Dashboard
● Grape Vine Data Export
× Panels
× Display Suite
× Context
× WYSIWYG
× Solr (yet)
Grape Vine Case Study: DrupalCamp 2014
● Multilingual listings!
● Mobile-first, responsive search experience
THE FUTURE
Faster, Better, Stronger
Grape Vine Case Study: DrupalCamp 2014
james@fenix-solutions.com
613-564-3344
@jmk1ng
QUESTIONS?
Before you ask: boxer-briefs
Grape Vine Case Study: DrupalCamp 2014

More Related Content

Viewers also liked

Viewers also liked (8)

Duże liczby w wielkim świecie, czyli (r)ewolucja IT w biznesie | Mateusz Mury...
Duże liczby w wielkim świecie, czyli (r)ewolucja IT w biznesie | Mateusz Mury...Duże liczby w wielkim świecie, czyli (r)ewolucja IT w biznesie | Mateusz Mury...
Duże liczby w wielkim świecie, czyli (r)ewolucja IT w biznesie | Mateusz Mury...
 
Aliran filsafat Islam
Aliran filsafat IslamAliran filsafat Islam
Aliran filsafat Islam
 
Scott Hencshel Process Improvement the Engine that Drives Strategy
Scott Hencshel Process Improvement the Engine that Drives StrategyScott Hencshel Process Improvement the Engine that Drives Strategy
Scott Hencshel Process Improvement the Engine that Drives Strategy
 
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
Dlaczego Big Data narobi nam problemów? - Mateusz Muryjas @ GeekTrends #1
 
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
Nie bój się analizy danych! Fakty i mity o big data i Business Intelligence.
 
5 kroków do zmiany spojrzenia na e-biznes | Mateusz Muryjas @ LubBiznes
5 kroków do zmiany spojrzenia na e-biznes | Mateusz Muryjas @ LubBiznes5 kroków do zmiany spojrzenia na e-biznes | Mateusz Muryjas @ LubBiznes
5 kroków do zmiany spojrzenia na e-biznes | Mateusz Muryjas @ LubBiznes
 
Ern Danışmanlık
Ern DanışmanlıkErn Danışmanlık
Ern Danışmanlık
 
Budowanie skutecznej strategii e-marketingowej | Mateusz Muryjas @ Igrzyska P...
Budowanie skutecznej strategii e-marketingowej | Mateusz Muryjas @ Igrzyska P...Budowanie skutecznej strategii e-marketingowej | Mateusz Muryjas @ Igrzyska P...
Budowanie skutecznej strategii e-marketingowej | Mateusz Muryjas @ Igrzyska P...
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

DrupalCamp Ottawa 2014 - Grape Vine Case Study

  • 1. Grape Vine Case Study: DrupalCamp 2014
  • 2. Grape Vine Case Study: DrupalCamp 2014 CASE STUDY Relaunching Grapevine.ca on Drupal
  • 3. Grape Vine Case Study: DrupalCamp 2014 THE OBLIGATORY “ABOUT ME” SLIDE ● I’m James King (Hi!) ● CTO Fenix Solutions Inc ● Since 2001 ● Drupal since 2009 ● Since 1990! ● One of Ottawa’s original Internet businesses Dude, get on with it... Fenix Grape Vine
  • 4. Grape Vine Case Study: DrupalCamp 2014 ● Perl codebase. Over 10 years old ● Extremely limited administrative functions ● No CMS functions at all ● Extremely expensive media hosting ● Users could not self-manage their own listings ● Over 10,000 unique visitors a month in the busy season THE “BEFORE” ...back when the Spice Girls roamed the earth
  • 5. Grape Vine Case Study: DrupalCamp 2014 ● Time ● Budget ● Needed CMS ● Users/Permissions/Access to Content ● Versioning and Workflow ● Media Handling WHY DRUPAL? Or “why not [Insert Framework Here]?” The Big Ones The Other Big Ones
  • 6. Grape Vine Case Study: DrupalCamp 2014 ● How generic is your requirement? ● Does a contrib module do what you need it to do… I mean, REALLY. ● Does the module have an module.api.inc file? Was it meant to be extended? ● Is the module being maintained? If not, do you have the time/inclination to step in? ● What about the UX? CUSTOM vs CONTRIB Cue the nerdy slap fights
  • 7. Grape Vine Case Study: DrupalCamp 2014 ● How business-specific are your requirements? ● Are you SURE there isn’t a contrib module that does what you need? ● Have you figured out a caching strategy? ● Are you going to have to build an admin UI? Are you going to have to integrate with Views? ● Are you prepared for the extra QA/QC? CUSTOM vs CONTRIB Not the face!
  • 8. Grape Vine Case Study: DrupalCamp 2014 ● Originally tried the print module ● 10 years of kruft and bizarre display logic to deal with ● Complex multi-page layout with highly variable content ● Converting HTML to PDF was far too limited ● Not a feature we had planned to spend so much time on PDF FEATURE SHEETS Finally, some real-world examples!
  • 9. Grape Vine Case Study: DrupalCamp 2014 ● Workbench Moderation worked out really well… until we implemented a multi-step sign-up process (CTools Multistep Wizard) ● By design, WBM wants to create a new revision on every node_save. ● Luckily WBM is implemented well. We were able to set properties on node object before save so it would save to current version. MODERATED CONTENT I should write a blog post about this one
  • 10. Grape Vine Case Study: DrupalCamp 2014 ● OpenLayers worked great… until we imported all 4000 listings ● Views caching made it worse. Too many unique result sets, too many points. ● Reasonable performance limited map view to 30 points at a time ● Removed OpenLayers/Views entirely. Talked directly to Google Maps API. MAPPING Yay OpenLayers! Booooo OpenLayers...
  • 11. Grape Vine Case Study: DrupalCamp 2014 ● Originally used the Statistics module ● Switched to GA API, pulls stats per listing Sample Code: https://gist.github.com/jmk1ng/9442895 GOOGLE ANALYTICS Something, something, NSA
  • 12. Grape Vine Case Study: DrupalCamp 2014 ● Realtors® are very keen to mass-solicit Grape Vine clients ● No generic solution to this very specific problem ● Can’t blindly block messages from agents as many are legit and welcome SPAM! If only it were just penis pills...
  • 13. Grape Vine Case Study: DrupalCamp 2014 ● Couldn’t use Feeds or Migrate - data needed massive cleansing ● Needed to limit downtime as much as possible ● 10 years of ad-hoc formatting to support/cleanse Sample Code: https://gist.github.com/jmk1ng/9536525 CONTENT MIGRATION Like a matted rescue puppy
  • 14. Grape Vine Case Study: DrupalCamp 2014 ● Single Linux VPS ● Dual core CPU ● 8GB of RAM ● APC, Memcache (97% hit rate) ● 50GB Disk ● Amazon S3 for Media, New Relic for Monitoring HOSTING + PERFORMANCE If at first you don’t succeed, add more RAM
  • 15. Grape Vine Case Study: DrupalCamp 2014 ✓ Workbench Moderation ✓ Geofield ✓ Geocoder ✓ Storage API ✓ Memcache ✓ Views SUMMING IT UP Less is often more 47 Contrib Modules 7 Custom Modules ● Grape Vine Forms ● Grape Vine Listings ● Grape Vine Alerts ● Grape Vine PDF ● Grape Vine Invoice ● Grape Vine Dashboard ● Grape Vine Data Export × Panels × Display Suite × Context × WYSIWYG × Solr (yet)
  • 16. Grape Vine Case Study: DrupalCamp 2014 ● Multilingual listings! ● Mobile-first, responsive search experience THE FUTURE Faster, Better, Stronger
  • 17. Grape Vine Case Study: DrupalCamp 2014 james@fenix-solutions.com 613-564-3344 @jmk1ng QUESTIONS? Before you ask: boxer-briefs
  • 18. Grape Vine Case Study: DrupalCamp 2014