SlideShare a Scribd company logo
1 of 36
Teaching an Old Pony New Tricks: Maintaining and Updating an Aging Django Project DjangoCon 2010 Shawn Rider PBS Education
What is TeacherLine?
 
 
 
 
The Rebuild Challenge ,[object Object],[object Object]
The Rebuild Challenge ,[object Object],[object Object],[object Object],[object Object]
The Rebuild Challenge
Things About Django  That Made Us Happy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Things People Said About Django That Hurt Our Feelings
[object Object],[object Object]
[object Object]
[object Object]
TeacherLine Rises Again ,[object Object],[object Object]
TeacherLine Rises Again ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Features Added Since  the Relaunch ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Major Apps Added Since  the Relaunch ,[object Object],[object Object]
Deployment Changes Since  the Relaunch ,[object Object],[object Object]
Things That Worked for Us ,[object Object]
Things That Worked for Us ,[object Object]
Things That Worked for Us ,[object Object]
Things That Worked for Us ,[object Object]
Things That Worked for Us ,[object Object]
Mistakes We Made ,[object Object]
Mistakes We Made ,[object Object]
Mistakes We Made ,[object Object]
Mistakes We Made ,[object Object]
 
Things Are Getting Better ,[object Object],[object Object],[object Object],[object Object]
Upgrading the Framework ,[object Object]
Upgrading the Framework ,[object Object],[object Object],[object Object]
Upgrading the Framework ,[object Object],[object Object],[object Object],[object Object]
Things We’d Like to Improve ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ponies We Still Want ,[object Object],[object Object],[object Object]
Thanks & Kudos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

App engine beats pony.key
App engine beats pony.keyApp engine beats pony.key
App engine beats pony.key
Alper Çugun
 
Drupal 7 Tutorial: Features Module
Drupal 7 Tutorial: Features ModuleDrupal 7 Tutorial: Features Module
Drupal 7 Tutorial: Features Module
Acquia
 
Mobile APIs: Optimizing APIs for Many Devices
Mobile APIs: Optimizing APIs for Many DevicesMobile APIs: Optimizing APIs for Many Devices
Mobile APIs: Optimizing APIs for Many Devices
Apigee | Google Cloud
 
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
Srijan Technologies
 

What's hot (20)

Web automation in BDD
Web automation in BDDWeb automation in BDD
Web automation in BDD
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Mock Servers - Fake All the Things!
Mock Servers - Fake All the Things!Mock Servers - Fake All the Things!
Mock Servers - Fake All the Things!
 
Creating an Effective Mobile API
Creating an Effective Mobile API Creating an Effective Mobile API
Creating an Effective Mobile API
 
App engine beats pony.key
App engine beats pony.keyApp engine beats pony.key
App engine beats pony.key
 
Intro to SharePoint + PowerShell
Intro to SharePoint + PowerShellIntro to SharePoint + PowerShell
Intro to SharePoint + PowerShell
 
PowerShell for sharepoint 2010 administrators
PowerShell for sharepoint 2010 administratorsPowerShell for sharepoint 2010 administrators
PowerShell for sharepoint 2010 administrators
 
A Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js GlueA Debugging Adventure: Journey through Ember.js Glue
A Debugging Adventure: Journey through Ember.js Glue
 
Demystifying Web Performance
Demystifying Web PerformanceDemystifying Web Performance
Demystifying Web Performance
 
Browser Developer Tools
Browser Developer ToolsBrowser Developer Tools
Browser Developer Tools
 
PowerShell for SharePoint Developers
PowerShell for SharePoint DevelopersPowerShell for SharePoint Developers
PowerShell for SharePoint Developers
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using Swagger
 
Drupal 7 Tutorial: Features Module
Drupal 7 Tutorial: Features ModuleDrupal 7 Tutorial: Features Module
Drupal 7 Tutorial: Features Module
 
Write Your First WordPress Plugin
Write Your First WordPress PluginWrite Your First WordPress Plugin
Write Your First WordPress Plugin
 
Introduction to Drupal 7 - SEO
Introduction to Drupal 7 - SEOIntroduction to Drupal 7 - SEO
Introduction to Drupal 7 - SEO
 
Mobile APIs: Optimizing APIs for Many Devices
Mobile APIs: Optimizing APIs for Many DevicesMobile APIs: Optimizing APIs for Many Devices
Mobile APIs: Optimizing APIs for Many Devices
 
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
SP24S053 Introduction to PowerShell for SharePoint Developers and AdministratorsSP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
 
Get responsive with Galen
Get responsive with GalenGet responsive with Galen
Get responsive with Galen
 
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
 
Firebase - A real-time server
Firebase - A real-time serverFirebase - A real-time server
Firebase - A real-time server
 

Similar to Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site

Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
ghodgkinson
 
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal BackendDrupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Acquia
 

Similar to Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site (20)

Designing Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web ApplicationsDesigning Self-maintaining UI Tests for Web Applications
Designing Self-maintaining UI Tests for Web Applications
 
Continuous deployment
Continuous deploymentContinuous deployment
Continuous deployment
 
Noman Khan Internship Report 2.pptx
Noman Khan Internship Report 2.pptxNoman Khan Internship Report 2.pptx
Noman Khan Internship Report 2.pptx
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016
 
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
 
Resume_Pratheeshkumar
Resume_PratheeshkumarResume_Pratheeshkumar
Resume_Pratheeshkumar
 
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
Case Study: Experiences Using IBM Rational Method Composer to Deliver a BPM I...
 
Web Development in Django
Web Development in DjangoWeb Development in Django
Web Development in Django
 
Gowrisankar_Resume
Gowrisankar_ResumeGowrisankar_Resume
Gowrisankar_Resume
 
Hacking Primavera P6 - Creative Solutions to Common Problems From the Primave...
Hacking Primavera P6 - Creative Solutions to Common Problems From the Primave...Hacking Primavera P6 - Creative Solutions to Common Problems From the Primave...
Hacking Primavera P6 - Creative Solutions to Common Problems From the Primave...
 
DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020DevOps CTO Masterclass | Webinar Oct. 2020
DevOps CTO Masterclass | Webinar Oct. 2020
 
Professional Drupal Development The Economis
Professional Drupal Development The EconomisProfessional Drupal Development The Economis
Professional Drupal Development The Economis
 
Anupam_Resume
Anupam_ResumeAnupam_Resume
Anupam_Resume
 
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
 
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal BackendDrupal 8 Lessons From the Field: Part 3 - The Drupal Backend
Drupal 8 Lessons From the Field: Part 3 - The Drupal Backend
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads Conference
 
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
Portal Deployment Best Practices | IBM Portal Excellence Conference 2009
 
Slim PHP when you don't need the kitchen sink
Slim PHP   when you don't need the kitchen sinkSlim PHP   when you don't need the kitchen sink
Slim PHP when you don't need the kitchen sink
 
DIWD 2011
DIWD 2011DIWD 2011
DIWD 2011
 

More from Shawn Rider

Work is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive TeamsWork is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive Teams
Shawn Rider
 

More from Shawn Rider (8)

Work is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive TeamsWork is not a Dare: Tips for Building Inclusive Teams
Work is not a Dare: Tips for Building Inclusive Teams
 
Theming Sites with SASS
Theming Sites with SASSTheming Sites with SASS
Theming Sites with SASS
 
Living Syleguides
Living SyleguidesLiving Syleguides
Living Syleguides
 
Intro to Yo
Intro to YoIntro to Yo
Intro to Yo
 
Barbarians at the Gate: Games and Culture
Barbarians at the Gate: Games and CultureBarbarians at the Gate: Games and Culture
Barbarians at the Gate: Games and Culture
 
Massaging the Pony: Message Queues and You
Massaging the Pony: Message Queues and YouMassaging the Pony: Message Queues and You
Massaging the Pony: Message Queues and You
 
Django Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, TricksDjango Forms: Best Practices, Tips, Tricks
Django Forms: Best Practices, Tips, Tricks
 
How To Succeed In Web Design
How To Succeed In Web DesignHow To Succeed In Web Design
How To Succeed In Web Design
 

Recently uploaded

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)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
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, ...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
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 ...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
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...
 

Teaching an Old Pony New Tricks: Maintaining and Updating and Aging Django Site

Editor's Notes

  1. TeacherLine offers over 130 courses for teacher professional development. We work with over 50 different PBS stations and over 30 different accredited institutions who offer graduate credit for our courses. Most visible part of TL website is a brochure site with a course catalog and e-commerce system.
  2. For the Learner, the TL site allows them to access their courses.
  3. Which are then delivered using the Moodle Learning Management System.
  4. There is also a large administrative site which allows over 50 PBS stations to manage courses. This includes bulk enrollments, financial administration, metrics reporting, etc.
  5. 2006: TL was a cold fusion site. In need of rebuilding.
  6. The PBS technology team was looking for a new platform to encourage from within. This platform would be the basis for the new TeacherLine.
  7. At OSCON 2006, PBS developers were smitten by Jacob Kaplan-Moss’s presentation of Django. Eventually we actually did a code-off and Django was the clear winner. Django was chosen by both PBS Education and PBS Interactive as the ordained building framework for PBS.
  8. Code quality of framework is stellar. This has translated over time to the general quality of Django apps developed by community members.
  9. Break into individual frames for comic relief? Probably…
  10. We had written another prototype project in the Spring of 2007
  11. We had written another prototype project in the Spring of 2007
  12. Since the relaunch, the TL site has not been the main priority for development. We maintain several different projects. The speed of development has generally slowed down, too, but now we usually do two or three prototypes of components and extensive code review before putting them into place. The culture of rapid prototyping and discussion of solutions is encouraged by the Django community, and has become reflected in our practice.
  13. Since the relaunch, the TL site has not been the main priority for development. We maintain several different projects. The speed of development has generally slowed down, too, but now we usually do two or three prototypes of components and extensive code review before putting them into place. The culture of rapid prototyping and discussion of solutions is encouraged by the Django community, and has become reflected in our practice.
  14. Since the relaunch, the TL site has not been the main priority for development. We maintain several different projects. The speed of development has generally slowed down, too, but now we usually do two or three prototypes of components and extensive code review before putting them into place. The culture of rapid prototyping and discussion of solutions is encouraged by the Django community, and has become reflected in our practice.
  15. Django encourages adherence to generally good practice, and overall good design practice.
  16. The culture of the Django community encourages critical views on the framework and how it’s been constructed, which encourages growth and evolution of approaches.
  17. Django has always encouraged the separation of discrete components into applicaitons.
  18. If you can’t deploy in multiple locations, you are lost.
  19. Things that we used to have to work around but are now much better in Django.
  20. Something about how we have approached major framework upgrades, such as 1.0, 1.1, 1.2.
  21. Something about how we have approached major framework upgrades, such as 1.0, 1.1, 1.2.
  22. Something about how we have approached major framework upgrades, such as 1.0, 1.1, 1.2.
  23. Things that we could improve greatly based on new features in Django.
  24. Wishlist for Django features
  25. Thanks to the team and links, etc.