WordPress & AJC

875 views
819 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
875
On SlideShare
0
From Embeds
0
Number of Embeds
177
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • The Atlanta Journal was established in 1883
    The Atlanta Constitution was first published on June 16, 1868.
    They were Combined in 1982
  • Been with the ajc for 4 years
    in online development group doing django development
    little over a year ago left and became team lead for a software development group
    until recently the ajc had a combination of django, ruby on rails and wordpress for blogs
  • a little bit on how we use wordpress for blogs
  • we were on movable type and were tasked with bringing wordpress in
    as blogging software
  • sampling which you will hear more about after I am done.
  • sampling which you will hear more about after I am done.
  • sampling which you will hear more about after I am done.
  • sampling which you will hear more about after I am done.
  • sampling which you will hear more about after I am done.
  • sampling which you will hear more about after I am done.
  • sampling which you will hear more about after I am done.
  • the title of this photo is hobbled automobile
    I think I was responsible for hobbling our first wordpress instance
  • couldn’t get a ton of participation
    news became stale because of lack of resources
    but the newsroom loved wordpress and use
  • with the help of jason - little over 2000 users -
    too cost intensive to maintain - done when buddypress started to
    make presence known - also a case where the ease of publishing was noted by people in the newsroom
  • beyond the newsroom -- I think we benefited from the community in a big wayplugins or issues tend to be started or completed
    such as pets mentioned previously
  • just took this yesterday
    needed speed and effeciency
    no secret that the ajc has gone through some serious cuts
    experiment - that seems to be playing out well
  • easy way to publish - publish fast and try to eliminate barriers
    take neither the credit for nor the blame for the idea but seems to actually
    be playing out in a good way
  • we have about 22 active plugins - these are some of the important ones
  • As Cliff said, the AJC’s experience with blogging software in the past has been a learning experience. When we were faced with transitioning more than 50 blogs from our existing Movable Type system to Wordpress, we had some clear goals in mind.

    The AJC operates multiple sites
    In addition to ajc.com, there’s accessAtlanta for entertainment and things to do in Atlanta, AJC Homefinder for real estate search and news, and even channels like our Holiday Guide, all of which have a unique design. We wanted to allow for these variations while still keeping a consistent layout and a single theme which is easy to maintain.

    With our Movable Type system, we allowed for blog-specific exceptions, such as design changes or special features, by request. This led to a system that was bloated, difficult to manage, and nearly impossible to upgrade. When deciding which features we would include with our Wordpress system, an important requirement was that each plugin or widget we made available would be used by multiple blogs.

    The typical way of setting a WP install involves creating a theme, editing some files, and uploading to a server via FTP. But with a team of developers and a hosting setup involving multiple web and database servers, that’s not an ideal workflow.

    Finally, we wanted to move quickly. From initial setup, theme design, and deployment, we were ready to begin testing in about a month.
  • As Cliff said, the AJC’s experience with blogging software in the past has been a learning experience. When we were faced with transitioning more than 50 blogs from our existing Movable Type system to Wordpress, we had some clear goals in mind.

    The AJC operates multiple sites
    In addition to ajc.com, there’s accessAtlanta for entertainment and things to do in Atlanta, AJC Homefinder for real estate search and news, and even channels like our Holiday Guide, all of which have a unique design. We wanted to allow for these variations while still keeping a consistent layout and a single theme which is easy to maintain.

    With our Movable Type system, we allowed for blog-specific exceptions, such as design changes or special features, by request. This led to a system that was bloated, difficult to manage, and nearly impossible to upgrade. When deciding which features we would include with our Wordpress system, an important requirement was that each plugin or widget we made available would be used by multiple blogs.

    The typical way of setting a WP install involves creating a theme, editing some files, and uploading to a server via FTP. But with a team of developers and a hosting setup involving multiple web and database servers, that’s not an ideal workflow.

    Finally, we wanted to move quickly. From initial setup, theme design, and deployment, we were ready to begin testing in about a month.
  • As Cliff said, the AJC’s experience with blogging software in the past has been a learning experience. When we were faced with transitioning more than 50 blogs from our existing Movable Type system to Wordpress, we had some clear goals in mind.

    The AJC operates multiple sites
    In addition to ajc.com, there’s accessAtlanta for entertainment and things to do in Atlanta, AJC Homefinder for real estate search and news, and even channels like our Holiday Guide, all of which have a unique design. We wanted to allow for these variations while still keeping a consistent layout and a single theme which is easy to maintain.

    With our Movable Type system, we allowed for blog-specific exceptions, such as design changes or special features, by request. This led to a system that was bloated, difficult to manage, and nearly impossible to upgrade. When deciding which features we would include with our Wordpress system, an important requirement was that each plugin or widget we made available would be used by multiple blogs.

    The typical way of setting a WP install involves creating a theme, editing some files, and uploading to a server via FTP. But with a team of developers and a hosting setup involving multiple web and database servers, that’s not an ideal workflow.

    Finally, we wanted to move quickly. From initial setup, theme design, and deployment, we were ready to begin testing in about a month.
  • As Cliff said, the AJC’s experience with blogging software in the past has been a learning experience. When we were faced with transitioning more than 50 blogs from our existing Movable Type system to Wordpress, we had some clear goals in mind.

    The AJC operates multiple sites
    In addition to ajc.com, there’s accessAtlanta for entertainment and things to do in Atlanta, AJC Homefinder for real estate search and news, and even channels like our Holiday Guide, all of which have a unique design. We wanted to allow for these variations while still keeping a consistent layout and a single theme which is easy to maintain.

    With our Movable Type system, we allowed for blog-specific exceptions, such as design changes or special features, by request. This led to a system that was bloated, difficult to manage, and nearly impossible to upgrade. When deciding which features we would include with our Wordpress system, an important requirement was that each plugin or widget we made available would be used by multiple blogs.

    The typical way of setting a WP install involves creating a theme, editing some files, and uploading to a server via FTP. But with a team of developers and a hosting setup involving multiple web and database servers, that’s not an ideal workflow.

    Finally, we wanted to move quickly. From initial setup, theme design, and deployment, we were ready to begin testing in about a month.
  • Here are some example blogs. The Atlanta Braves blog, written by David O’Brien, is one of our most popular. Notice the graphical header at the top. Each of our blogs has its own header. To the right of that is a brief description of the blog and its author followed by the site search and an advertisement.

    This is the same structure for every blog.
  • Even accessAtlanta, while it has some site-specific styling, the core blog features are the same.
  • Here’s another example. This is our Holiday Guide blog, which is actually a channel within the accessAtlanta site.
  • We do this with child themes.

    Since all of our sites share a common grid and HTML structure, we can use the same master theme and just vary the header, footer, and CSS.

    Creating a new child theme is easy: we just add a subdirectory with a unique header and footer file.
  • This and other blog-specific options are set on the theme options page.
  • The theme options page:

    - Allows us to specify the header image URL

    - When a new child theme is created, it appears in the drop down menu.

    - We’ve integrated with Site Catalyst for metrics.

    - We’ve also integrated with our ad platform, Yahoo’s Yield Manager. Each blog falls within an existing channel. By specifying a category from theme options, our ad operations team can target ads by site, blog, or even page type.

    - We got the idea for the theme options page from the Thematic theme but extended it for our use.
  • The theme options page:

    - Allows us to specify the header image URL

    - When a new child theme is created, it appears in the drop down menu.

    - We’ve integrated with Site Catalyst for metrics.

    - We’ve also integrated with our ad platform, Yahoo’s Yield Manager. Each blog falls within an existing channel. By specifying a category from theme options, our ad operations team can target ads by site, blog, or even page type.

    - We got the idea for the theme options page from the Thematic theme but extended it for our use.
  • The theme options page:

    - Allows us to specify the header image URL

    - When a new child theme is created, it appears in the drop down menu.

    - We’ve integrated with Site Catalyst for metrics.

    - We’ve also integrated with our ad platform, Yahoo’s Yield Manager. Each blog falls within an existing channel. By specifying a category from theme options, our ad operations team can target ads by site, blog, or even page type.

    - We got the idea for the theme options page from the Thematic theme but extended it for our use.
  • The theme options page:

    - Allows us to specify the header image URL

    - When a new child theme is created, it appears in the drop down menu.

    - We’ve integrated with Site Catalyst for metrics.

    - We’ve also integrated with our ad platform, Yahoo’s Yield Manager. Each blog falls within an existing channel. By specifying a category from theme options, our ad operations team can target ads by site, blog, or even page type.

    - We got the idea for the theme options page from the Thematic theme but extended it for our use.
  • The theme options page:

    - Allows us to specify the header image URL

    - When a new child theme is created, it appears in the drop down menu.

    - We’ve integrated with Site Catalyst for metrics.

    - We’ve also integrated with our ad platform, Yahoo’s Yield Manager. Each blog falls within an existing channel. By specifying a category from theme options, our ad operations team can target ads by site, blog, or even page type.

    - We got the idea for the theme options page from the Thematic theme but extended it for our use.
  • We’ve setup separate servers which are optimized for deliver static content such as CSS and JavaScript. This particularly important for performance because serving static content from an application can be extremely inefficient.

    In addition to performance, we use dedicated servers for static content because many of our CSS and JavaScript files are shared across multiple platforms (the AJC uses applications built with Java, Rails, Django, in addition to our vendor sites which we don’t directly control).

    With a team of developers, it’s important to have all code and templates in a version control system to track changes made of over time and to prevent conflicts.

    We use Subversion for code control. For deployment, we use capistrano to deploy to multiple to one of our three environments (development, staging, or production).

    Our deployment process is capable of concatenating CSS and JavaScript to minimize server rquests, and our static content servers deliver Gzipped CSS and Javascript to minimize file size. Both servers are setup to use Akamaki, a content delivery network provider which gracefully handles high traffic.
  • We’ve setup separate servers which are optimized for deliver static content such as CSS and JavaScript. This particularly important for performance because serving static content from an application can be extremely inefficient.

    In addition to performance, we use dedicated servers for static content because many of our CSS and JavaScript files are shared across multiple platforms (the AJC uses applications built with Java, Rails, Django, in addition to our vendor sites which we don’t directly control).

    With a team of developers, it’s important to have all code and templates in a version control system to track changes made of over time and to prevent conflicts.

    We use Subversion for code control. For deployment, we use capistrano to deploy to multiple to one of our three environments (development, staging, or production).

    Our deployment process is capable of concatenating CSS and JavaScript to minimize server rquests, and our static content servers deliver Gzipped CSS and Javascript to minimize file size. Both servers are setup to use Akamaki, a content delivery network provider which gracefully handles high traffic.
  • We’ve setup separate servers which are optimized for deliver static content such as CSS and JavaScript. This particularly important for performance because serving static content from an application can be extremely inefficient.

    In addition to performance, we use dedicated servers for static content because many of our CSS and JavaScript files are shared across multiple platforms (the AJC uses applications built with Java, Rails, Django, in addition to our vendor sites which we don’t directly control).

    With a team of developers, it’s important to have all code and templates in a version control system to track changes made of over time and to prevent conflicts.

    We use Subversion for code control. For deployment, we use capistrano to deploy to multiple to one of our three environments (development, staging, or production).

    Our deployment process is capable of concatenating CSS and JavaScript to minimize server rquests, and our static content servers deliver Gzipped CSS and Javascript to minimize file size. Both servers are setup to use Akamaki, a content delivery network provider which gracefully handles high traffic.
  • We’ve setup separate servers which are optimized for deliver static content such as CSS and JavaScript. This particularly important for performance because serving static content from an application can be extremely inefficient.

    In addition to performance, we use dedicated servers for static content because many of our CSS and JavaScript files are shared across multiple platforms (the AJC uses applications built with Java, Rails, Django, in addition to our vendor sites which we don’t directly control).

    With a team of developers, it’s important to have all code and templates in a version control system to track changes made of over time and to prevent conflicts.

    We use Subversion for code control. For deployment, we use capistrano to deploy to multiple to one of our three environments (development, staging, or production).

    Our deployment process is capable of concatenating CSS and JavaScript to minimize server rquests, and our static content servers deliver Gzipped CSS and Javascript to minimize file size. Both servers are setup to use Akamaki, a content delivery network provider which gracefully handles high traffic.
  • WordPress & AJC

    1. 1. & WordPress and the AJC cbarrett@ajc.com & jgilstrap@ajc.com
    2. 2. ABOUT The Atlanta Journal-Constitution is the only major daily newspaper in Atlanta, Georgia and its suburbs. The AJC is the flagship publication of Cox Enterprises.
    3. 3. ME
    4. 4. ME
    5. 5. NUTSHELL Failure Success Unexpected Possible Success with WordPress
    6. 6. TRANSITION
    7. 7. 50 blogs that generate roughly 8% of all AJC traffic. AJC.com does well in excess of 1 billion pageviews a year Multiple posts with thousands of comments
    8. 8. THE EARLY DAYS
    9. 9. What Not to Do Less than Elegant
    10. 10. “If you wait long enough and look hard enough, someone will or has built it.”
    11. 11. NEWSROOM
    12. 12. Print WP Digital
    13. 13. PLUGINS Peters Post Notes Co Author Plus Feed Adjustments Admin Adjustments
    14. 14. WordPress allows you to fail fast but try not to fail.
    15. 15. Thanks and now Jason
    16. 16. CONSISTENCY AND SIMPLICITY
    17. 17. CONSISTENCY AND SIMPLICITY • Consistent design which works for multiple sites
    18. 18. CONSISTENCY AND SIMPLICITY • Consistent design which works for multiple sites • Avoid exceptions for a single blog or blogger
    19. 19. CONSISTENCY AND SIMPLICITY • Consistent design which works for multiple sites • Avoid exceptions for a single blog or blogger • Easily make changes and automate deployment
    20. 20. CONSISTENCY AND SIMPLICITY • Consistent design which works for multiple sites • Avoid exceptions for a single blog or blogger • Easily make changes and automate deployment • Move quickly
    21. 21. CHILD THEMES • Sites share a common structure • Header, footer, and CSS varies
    22. 22. THEME OPTIONS
    23. 23. THEME OPTIONS
    24. 24. THEME OPTIONS • Specify the header image URL
    25. 25. THEME OPTIONS • Specify the header image URL • Select child template
    26. 26. THEME OPTIONS • Specify the header image URL • Select child template • Metrics
    27. 27. THEME OPTIONS • Specify the header image URL • Select child template • Metrics • Advertising
    28. 28. THEME OPTIONS • Specify the header image URL • Select child template • Metrics • Advertising • Based on Thematic theme (http://themeshaper.com/thematic/)
    29. 29. DEVELOPMENT WORKFLOW
    30. 30. DEVELOPMENT WORKFLOW • Use a separate server for CSS and JavaScript
    31. 31. DEVELOPMENT WORKFLOW • Use a separate server for CSS and JavaScript • Allows sharing across multiple sites and platforms
    32. 32. DEVELOPMENT WORKFLOW • Use a separate server for CSS and JavaScript • Allows sharing across multiple sites and platforms • Versioned controlled
    33. 33. DEVELOPMENT WORKFLOW • Use a separate server for CSS and JavaScript • Allows sharing across multiple sites and platforms • Versioned controlled • Deployment to multiple environments
    34. 34. CONTINUOUS IMPROVEMENT • Remote includes for header, footer, and other elements • Allow users to flag inappropriate comments • Deeper integration with CMS
    35. 35. CONTACT US • Cliff Barrett • Jason Gilstrap • cbarrett@ajc.com • jgilstrap@ajc.com • Twitter: cliffr • Twitter: jpg
    36. 36. TECHNICAL STUFF 3 apache servers running php not mod php - php cgi - using mpm worker in apache mysql one machine - replication - shared wordpress mu - batcache plugin - no longer supercache plugin http://andy.wordpress.com/2008/06/22/batcache-for- wordpress/ 2 memecache servers - shared
    37. 37. COMPLAINTS • WPMU - Wordpress Plugin compatibility • Security releases for Wordpress - while listing WPMU vulnerability • Per Blog settings and config vs sitewide • support memcache out of the box • Pagination issues • despite those would still choose WPMU

    ×