SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
eMusic
                        WordPress NYC




Tuesday, March 19, 13
Scott Taylor
                         @wonderboymusic
                         http://scotty-t.com




Tuesday, March 19, 13
eMusic Architecture
                •       Linux (CentOS) / AWS (ELB, EC2, S3)

                •       PHP 5.3 / Apache / MySQL 5.5 (InnoDB)

                •       PHP Extensions: cURL / Memcached / APC

                •       WP Plugins: Memcached Redux / Batcache / HyperDB

                •       Custom scaling: Cloud / Minify

                •       External Java Web Services

                •       GravityForms for /support/ sub-site

                •       bbPress for Message Boards (soon!)

                •       BuddyPress component architecture for profiles / account (soon!)

Tuesday, March 19, 13
Tuesday, March 19, 13
Pages
                        •   “Home” is home.php
                            www.emusic.com/


                        •   “Artist” is page-artist.php + rewrites
                            www.emusic.com/artist/the-weeknd/13522347/


                        •   “Album” is page-album.php + rewrites
                            www.emusic.com/album/the-weeknd/trilogy/13692332/


                        •   “Genre” is taxonomy-genre.php
                            www.emusic.com/music-genres/alternative-punk/


                        •   “Search” is rewrite + ?s=search+term
                            www.emusic.com/search/music/?s=the+weeknd


                        •   “Browse” is page-browse.php + REWRITES
                            www.emusic.com/browse/album/hip-hop-r-b/artist:13522347/editors-pick/new:year/



Tuesday, March 19, 13
Search + Browse
                                    Combination of modified
                                    WordPress search and multiple
                                    queries to Elastic Search
        Built on top of
        Elastic Search




Tuesday, March 19, 13
Artist




Tuesday, March 19, 13
Album




Tuesday, March 19, 13
Genre




Tuesday, March 19, 13
Custom Post Types
                    •   We have 54 of them!

                    •   “Editorial Types” - type of article, different
                        types of displayed data

                    •   Merchandising modules

                    •   House Ads

                    •   Configs

                    •   Homepage contains many


Tuesday, March 19, 13
HOMEPAGE

                  Stage

                                                             Double Wide




                                            Actor


                                                                                     Feature Pack


        New and Noteworthy                                Recommendations Service
                                            17 Dots                                           House Ad




                                                                                    Catalog Ser vice




                             Twitter feed             Coming Soon




Tuesday, March 19, 13
Editorial
        •      Features, Reviews, Interviews

        •      Sales

        •      Merch Modules

        •      Archives




Tuesday, March 19, 13
Taxonomies

                        •   `region` = regionalizes content

                        •   `editorial_target` = where it can show up

                        •   `genre` = which genre it is targeting

                        •   `tag` = what topic it is related to

                        •   `category` = used for grouping post_types




Tuesday, March 19, 13
Merchandising
                                Double-wide




                                                        New and Noteworthy




                        Region-specific, Genre-specific

Tuesday, March 19, 13
Merchandising
                                            Stage




                          Actor




    Region-specific, target/page-specific, genre-specific
Tuesday, March 19, 13
House Ads

                    •   Homegrown replacement for DART

                    •   Probability strategies / self-optimizing

                    •   Click-tracking

                    •   URL path / Query string / Cookie

                    •   Test multiple pieces of creative




Tuesday, March 19, 13
Creative + Taxonomies




Tuesday, March 19, 13
Strategies + Rules




Tuesday, March 19, 13
<div class="house-ad-target" data-target="non-member-stage"></div>




                                                                           House Ad
                                                                                             Regionalized

                                                                                               Targeted

                                                                                              URL parsed

                                                                                             Cookie parsed
                                                                      House Ad




                                        House Ad


Tuesday, March 19, 13
Web Services

                    •   Data over HTTP

                    •   All return JSON

                    •   REST

                    •   Security / Authentication

                    •   All Catalog Data comes from services




Tuesday, March 19, 13
AJAX / Persistent Player



                    •   Primary use of Backbone

                    •   history.pushState, no full page reload

                    •   Local storage for player history



Tuesday, March 19, 13
17 Dots / Post Formats




Tuesday, March 19, 13
Dashboard




Tuesday, March 19, 13
Link Images to External IDs




Tuesday, March 19, 13
Schedule Catalog Items




Tuesday, March 19, 13
Front End Technologies
                    •   Backbone / Underscore / NodeJS
                        http://backbonejs.org/

                        OOP Javascript
                        Arrays / Collections
                        Minified via Grunt / Uglify
                        Lint’d via JSLint / JSHint

                    •   LESS http://lesscss.org/

                        OOP CSS
                        Minified via YUI Compressor


Tuesday, March 19, 13
Tuesday, March 19, 13
Thank You
                          Questions?




Tuesday, March 19, 13

Contenu connexe

Plus de Scott Taylor

Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York TimesScott Taylor
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the HoodScott Taylor
 
WordPress Media in a post-Koop Universe
WordPress Media in a post-Koop UniverseWordPress Media in a post-Koop Universe
WordPress Media in a post-Koop UniverseScott Taylor
 
Cloud, Cache, and Configs
Cloud, Cache, and ConfigsCloud, Cache, and Configs
Cloud, Cache, and ConfigsScott Taylor
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseScott Taylor
 
WordPress Front End Optimizations
WordPress Front End OptimizationsWordPress Front End Optimizations
WordPress Front End OptimizationsScott Taylor
 

Plus de Scott Taylor (6)

Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
 
WordPress: Getting Under the Hood
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
 
WordPress Media in a post-Koop Universe
WordPress Media in a post-Koop UniverseWordPress Media in a post-Koop Universe
WordPress Media in a post-Koop Universe
 
Cloud, Cache, and Configs
Cloud, Cache, and ConfigsCloud, Cache, and Configs
Cloud, Cache, and Configs
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the Enterprise
 
WordPress Front End Optimizations
WordPress Front End OptimizationsWordPress Front End Optimizations
WordPress Front End Optimizations
 

Dernier

OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 

Dernier (20)

OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 

WordPress as a CMS: Tips and Tricks from eMusic

  • 1. eMusic WordPress NYC Tuesday, March 19, 13
  • 2. Scott Taylor @wonderboymusic http://scotty-t.com Tuesday, March 19, 13
  • 3. eMusic Architecture • Linux (CentOS) / AWS (ELB, EC2, S3) • PHP 5.3 / Apache / MySQL 5.5 (InnoDB) • PHP Extensions: cURL / Memcached / APC • WP Plugins: Memcached Redux / Batcache / HyperDB • Custom scaling: Cloud / Minify • External Java Web Services • GravityForms for /support/ sub-site • bbPress for Message Boards (soon!) • BuddyPress component architecture for profiles / account (soon!) Tuesday, March 19, 13
  • 5. Pages • “Home” is home.php www.emusic.com/ • “Artist” is page-artist.php + rewrites www.emusic.com/artist/the-weeknd/13522347/ • “Album” is page-album.php + rewrites www.emusic.com/album/the-weeknd/trilogy/13692332/ • “Genre” is taxonomy-genre.php www.emusic.com/music-genres/alternative-punk/ • “Search” is rewrite + ?s=search+term www.emusic.com/search/music/?s=the+weeknd • “Browse” is page-browse.php + REWRITES www.emusic.com/browse/album/hip-hop-r-b/artist:13522347/editors-pick/new:year/ Tuesday, March 19, 13
  • 6. Search + Browse Combination of modified WordPress search and multiple queries to Elastic Search Built on top of Elastic Search Tuesday, March 19, 13
  • 10. Custom Post Types • We have 54 of them! • “Editorial Types” - type of article, different types of displayed data • Merchandising modules • House Ads • Configs • Homepage contains many Tuesday, March 19, 13
  • 11. HOMEPAGE Stage Double Wide Actor Feature Pack New and Noteworthy Recommendations Service 17 Dots House Ad Catalog Ser vice Twitter feed Coming Soon Tuesday, March 19, 13
  • 12. Editorial • Features, Reviews, Interviews • Sales • Merch Modules • Archives Tuesday, March 19, 13
  • 13. Taxonomies • `region` = regionalizes content • `editorial_target` = where it can show up • `genre` = which genre it is targeting • `tag` = what topic it is related to • `category` = used for grouping post_types Tuesday, March 19, 13
  • 14. Merchandising Double-wide New and Noteworthy Region-specific, Genre-specific Tuesday, March 19, 13
  • 15. Merchandising Stage Actor Region-specific, target/page-specific, genre-specific Tuesday, March 19, 13
  • 16. House Ads • Homegrown replacement for DART • Probability strategies / self-optimizing • Click-tracking • URL path / Query string / Cookie • Test multiple pieces of creative Tuesday, March 19, 13
  • 19. <div class="house-ad-target" data-target="non-member-stage"></div> House Ad Regionalized Targeted URL parsed Cookie parsed House Ad House Ad Tuesday, March 19, 13
  • 20. Web Services • Data over HTTP • All return JSON • REST • Security / Authentication • All Catalog Data comes from services Tuesday, March 19, 13
  • 21. AJAX / Persistent Player • Primary use of Backbone • history.pushState, no full page reload • Local storage for player history Tuesday, March 19, 13
  • 22. 17 Dots / Post Formats Tuesday, March 19, 13
  • 24. Link Images to External IDs Tuesday, March 19, 13
  • 26. Front End Technologies • Backbone / Underscore / NodeJS http://backbonejs.org/ OOP Javascript Arrays / Collections Minified via Grunt / Uglify Lint’d via JSLint / JSHint • LESS http://lesscss.org/ OOP CSS Minified via YUI Compressor Tuesday, March 19, 13
  • 28. Thank You Questions? Tuesday, March 19, 13