SlideShare a Scribd company logo
1 of 12
Download to read offline
Welcome


                        Legacy to Latest
                                   Kieran O'Shea

         kieran@kieranoshea.com • @kieranoshea • http://www.kieranoshea.com/


       "A number of small top-down case studies
       concerned with WordPress upgrades, bringing
       plugins up to date with the latest WordPress
       features and transforming legacy custom tables
       into latest custom posts"

Legacy to Latest                                                        Kieran O'Shea
About me


          Day job in the finance industry

          Open Source Work
             RouterTech

                Firmware for AR7 based routers

             WordPress Plugins

                Calendar




Legacy to Latest                              Kieran O'Shea
Introduction


        Why is considering legacy important?
        Basic overview of considerations

        Server

        Themes

        Plugins

        Freebies

        Questions




Legacy to Latest                          Kieran O'Shea
Blast from the past!


          Anyone remember this!?




Legacy to Latest                    Kieran O'Shea
One Step Solution


          WordPress upgrades are simple...




          Or are they?


Legacy to Latest                              Kieran O'Shea
Legacy is everywhere


          Enterprise takes the long view




Legacy to Latest                            Kieran O'Shea
Dependency hell?


          Upgrade errors from legacy are likely
              [kieran@server:~]$ sudo do-release-upgrade
              ...
              A unresolvable problem occurred while calculating the upgrade.

              This can be caused by:
              * Upgrading to a pre-release version of Ubuntu
              * Running the current pre-release version of Ubuntu
              * Unofficial software packages not provided by Ubuntu

          Proceed manually but be careful!


Legacy to Latest                                                               Kieran O'Shea
Themes


        Should work without much coaxing
        Beware of

           Modified default themes

           Deprecated functions

           Phantom features




Legacy to Latest                            Kieran O'Shea
Plugins


        Can break an upgrade
        Can be broken by an upgrade

        Deprecated functions

        Logging on & bug hunt

           WordPress Logging




Legacy to Latest                       Kieran O'Shea
Custom Posts


        Legacy plugins may over-use tables
        Post framework makes code simpler

        Expose plugin data

        Migration simplified




Legacy to Latest                         Kieran O'Shea
Freebies


          Deserve one after a tricky upgrade?




Legacy to Latest                             Kieran O'Shea
Questions?


            Test site, code & other goodies:
            https://wcuk.kieranoshea.com/




                    Kieran O'Shea • kieran@kieranoshea.com
                   @kieranoshea • http://www.kieranoshea.com/




Legacy to Latest                                                Kieran O'Shea

More Related Content

What's hot

Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic BeanstalkDeploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic BeanstalkAmazon Web Services
 
OWIN Why should i care?
OWIN Why should i care?OWIN Why should i care?
OWIN Why should i care?Terence Kruger
 
Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017
Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017
Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017Amazon Web Services
 
Ruby on Rails and AWS Elastic Beanstalk
Ruby on Rails and AWS Elastic BeanstalkRuby on Rails and AWS Elastic Beanstalk
Ruby on Rails and AWS Elastic BeanstalkNathalie Steinmetz
 
Configuration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateConfiguration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateAmazon Web Services
 
Packer, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzurePacker, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzureAZUG FR
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
 
Serverless computing henry been - continuous deployment of azure functions
Serverless computing   henry been - continuous deployment of azure functionsServerless computing   henry been - continuous deployment of azure functions
Serverless computing henry been - continuous deployment of azure functionsHenry Been
 
AWS Summit Stockholm 2014 – T4 – Continuous integration on AWS
AWS Summit Stockholm 2014 – T4 – Continuous integration on AWSAWS Summit Stockholm 2014 – T4 – Continuous integration on AWS
AWS Summit Stockholm 2014 – T4 – Continuous integration on AWSAmazon Web Services
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime DeploymentJoel Dickson
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Julien SIMON
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 

What's hot (20)

Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic BeanstalkDeploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk
 
OWIN Why should i care?
OWIN Why should i care?OWIN Why should i care?
OWIN Why should i care?
 
Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017
Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017
Extending VSTS Build/Release Pipelines to AWS - WIN402 - re:Invent 2017
 
Reel
ReelReel
Reel
 
State of Union - Containerz
State of Union - ContainerzState of Union - Containerz
State of Union - Containerz
 
Ruby on Rails and AWS Elastic Beanstalk
Ruby on Rails and AWS Elastic BeanstalkRuby on Rails and AWS Elastic Beanstalk
Ruby on Rails and AWS Elastic Beanstalk
 
Configuration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateConfiguration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef Automate
 
A to Z of Docker
A to Z of DockerA to Z of Docker
A to Z of Docker
 
Packer, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzurePacker, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec Azure
 
Automating Operations Workload
Automating Operations WorkloadAutomating Operations Workload
Automating Operations Workload
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
Event driven infrastructure
Event driven infrastructureEvent driven infrastructure
Event driven infrastructure
 
Serverless computing henry been - continuous deployment of azure functions
Serverless computing   henry been - continuous deployment of azure functionsServerless computing   henry been - continuous deployment of azure functions
Serverless computing henry been - continuous deployment of azure functions
 
AWS Summit Stockholm 2014 – T4 – Continuous integration on AWS
AWS Summit Stockholm 2014 – T4 – Continuous integration on AWSAWS Summit Stockholm 2014 – T4 – Continuous integration on AWS
AWS Summit Stockholm 2014 – T4 – Continuous integration on AWS
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)
 
AWS CodeDeploy
AWS CodeDeployAWS CodeDeploy
AWS CodeDeploy
 
AWS CodeDeploy Getting Started
AWS CodeDeploy Getting StartedAWS CodeDeploy Getting Started
AWS CodeDeploy Getting Started
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 

Viewers also liked

Secure from the start : The changing landscape
Secure from the start : The changing landscapeSecure from the start : The changing landscape
Secure from the start : The changing landscapeKieran O'Shea
 
Semi-organised Barcamps and WordPress
Semi-organised Barcamps and WordPressSemi-organised Barcamps and WordPress
Semi-organised Barcamps and WordPresstonyscott
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...railsconf
 
Custom to public
Custom to publicCustom to public
Custom to publicMetronet
 
Interconnect IT's greatest mistakes (2011) WordCamp UK version
Interconnect IT's greatest mistakes (2011) WordCamp UK versionInterconnect IT's greatest mistakes (2011) WordCamp UK version
Interconnect IT's greatest mistakes (2011) WordCamp UK versionInterconnect IT
 
Turbo charged WordPress theme development - WordCamp Edinburgh 2012
Turbo charged WordPress theme development - WordCamp Edinburgh 2012Turbo charged WordPress theme development - WordCamp Edinburgh 2012
Turbo charged WordPress theme development - WordCamp Edinburgh 2012Jonny Allbut
 

Viewers also liked (6)

Secure from the start : The changing landscape
Secure from the start : The changing landscapeSecure from the start : The changing landscape
Secure from the start : The changing landscape
 
Semi-organised Barcamps and WordPress
Semi-organised Barcamps and WordPressSemi-organised Barcamps and WordPress
Semi-organised Barcamps and WordPress
 
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...Develop With Pleasure  Deploy With Fun  Glass Fish And Net Beans For A Better...
Develop With Pleasure Deploy With Fun Glass Fish And Net Beans For A Better...
 
Custom to public
Custom to publicCustom to public
Custom to public
 
Interconnect IT's greatest mistakes (2011) WordCamp UK version
Interconnect IT's greatest mistakes (2011) WordCamp UK versionInterconnect IT's greatest mistakes (2011) WordCamp UK version
Interconnect IT's greatest mistakes (2011) WordCamp UK version
 
Turbo charged WordPress theme development - WordCamp Edinburgh 2012
Turbo charged WordPress theme development - WordCamp Edinburgh 2012Turbo charged WordPress theme development - WordCamp Edinburgh 2012
Turbo charged WordPress theme development - WordCamp Edinburgh 2012
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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...Miguel Araújo
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Legacy to Latest

  • 1. Welcome Legacy to Latest Kieran O'Shea kieran@kieranoshea.com • @kieranoshea • http://www.kieranoshea.com/ "A number of small top-down case studies concerned with WordPress upgrades, bringing plugins up to date with the latest WordPress features and transforming legacy custom tables into latest custom posts" Legacy to Latest Kieran O'Shea
  • 2. About me  Day job in the finance industry  Open Source Work  RouterTech  Firmware for AR7 based routers  WordPress Plugins  Calendar Legacy to Latest Kieran O'Shea
  • 3. Introduction  Why is considering legacy important?  Basic overview of considerations  Server  Themes  Plugins  Freebies  Questions Legacy to Latest Kieran O'Shea
  • 4. Blast from the past!  Anyone remember this!? Legacy to Latest Kieran O'Shea
  • 5. One Step Solution  WordPress upgrades are simple...  Or are they? Legacy to Latest Kieran O'Shea
  • 6. Legacy is everywhere  Enterprise takes the long view Legacy to Latest Kieran O'Shea
  • 7. Dependency hell?  Upgrade errors from legacy are likely [kieran@server:~]$ sudo do-release-upgrade ... A unresolvable problem occurred while calculating the upgrade. This can be caused by: * Upgrading to a pre-release version of Ubuntu * Running the current pre-release version of Ubuntu * Unofficial software packages not provided by Ubuntu  Proceed manually but be careful! Legacy to Latest Kieran O'Shea
  • 8. Themes  Should work without much coaxing  Beware of  Modified default themes  Deprecated functions  Phantom features Legacy to Latest Kieran O'Shea
  • 9. Plugins  Can break an upgrade  Can be broken by an upgrade  Deprecated functions  Logging on & bug hunt  WordPress Logging Legacy to Latest Kieran O'Shea
  • 10. Custom Posts  Legacy plugins may over-use tables  Post framework makes code simpler  Expose plugin data  Migration simplified Legacy to Latest Kieran O'Shea
  • 11. Freebies  Deserve one after a tricky upgrade? Legacy to Latest Kieran O'Shea
  • 12. Questions? Test site, code & other goodies: https://wcuk.kieranoshea.com/ Kieran O'Shea • kieran@kieranoshea.com @kieranoshea • http://www.kieranoshea.com/ Legacy to Latest Kieran O'Shea