SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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

Más contenido relacionado

Más 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
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

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...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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, ...
 

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