SlideShare a Scribd company logo
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 In 2006 the TeacherLine sites were powered by Cold Fusion. A complete rebuild was needed.
The Rebuild Challenge Several technologies were considered: Ruby / Rails PHP / Some PHP Framework Python / Django
The Rebuild Challenge
Things About Django  That Made Us Happy Speed of Development Code Quality Modularity of Framework Django Admin Active Community Python!
Things People Said About Django That Hurt Our Feelings
Beta frameworks are not  “enterprise ready”!
Django won’t last; the project will die!
Nobody around here knows Python!
TeacherLine Rises Again Over 4 months, 2 developers built the new TeacherLine site. It launched December 12, 2007
TeacherLine Rises Again Features in relaunch: Course Catalog CMS for localized content Staff Admin Support Ticketing System Robust Permissions/Roles System Profiles Graduate Credit Management System eCommerce API for Remote Integration
Features Added Since  the Relaunch Message Queue Named URLs Test Suite New File Storage Backend Virtual Environment Project Structure Robust Visual Reports
Major Apps Added Since  the Relaunch Facilitator Scheduling Tool Capstones Course Tools
Deployment Changes Since  the Relaunch Adopted Virtual Environments Moved from traditional to cloud hosting
Things That Worked for Us Django is opinionated in a generally good way.
Things That Worked for Us A culture of self-criticism.
Things That Worked for Us Isolate functionality into reusable components.
Things That Worked for Us Always use URL tags in templates.
Things That Worked for Us Our multi-deployment configuration solution turned out to be a good idea.
Mistakes We Made Never override the User model.
Mistakes We Made Make tests right away.
Mistakes We Made Never underestimate the Admin.
Mistakes We Made Manipulators made us shy to fully leverage Forms.
 
Things Are Getting Better Continuous ORM Improvements Django Forms are now awesome Enhanced security protections Authorization backends
Upgrading the Framework To take advantage of framework upgrades, you must schedule the work in your project.
Upgrading the Framework Sell the upgrade to the Uppers: It will lower the cost of future development It will alleviate a pain point felt by staff processes
Upgrading the Framework Facilitate the work: Make the most of your VCS Use tests Take your time
Things We’d Like to Improve Remote API Adopt Haystack/SOLR instead of Djapian/Xapian Email backends DB master/slave and sharding Leverage Django Admin features better
Ponies We Still Want Multi-configuration support out-of-the-box A better way to know when Django’s modules are completely loaded into memory More robust event handling (Signals++)
Thanks & Kudos The Django Project The core devs and all the contributors. The Django Community Everyone developing Django apps and community sites. The current TeacherLine team:  Nowell Strite (@nowells), Tareque Hossain (@tarequeh), Ron Cox (@monkyhead), Sam Deng (@samdeng)

More Related Content

What's hot (20)

PPTX
Web automation in BDD
Sandy Yu
 
KEY
WordPress APIs
mdawaffe
 
PDF
Mock Servers - Fake All the Things!
Atlassian
 
PDF
Creating an Effective Mobile API
Nick DeNardis
 
ZIP
App engine beats pony.key
Alper Çugun
 
PPTX
Intro to SharePoint + PowerShell
Ryan Dennis
 
PPTX
PowerShell for sharepoint 2010 administrators
Ravikanth Chaganti
 
PDF
A Debugging Adventure: Journey through Ember.js Glue
Mike North
 
PDF
Demystifying Web Performance
Atlassian
 
PPTX
Browser Developer Tools
Christian Rokitta
 
PDF
PowerShell for SharePoint Developers
Boulos Dib
 
PDF
Exposing Salesforce REST Services Using Swagger
Salesforce Developers
 
PDF
Drupal 7 Tutorial: Features Module
Acquia
 
PDF
Write Your First WordPress Plugin
Ibrahim Abdel Fattah Mohamed
 
PDF
Introduction to Drupal 7 - SEO
Kalin Chernev
 
PPTX
Mobile APIs: Optimizing APIs for Many Devices
Apigee | Google Cloud
 
PPTX
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
Michael Blumenthal (Microsoft MVP)
 
PPTX
Get responsive with Galen
Thoughtworks
 
PDF
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
Srijan Technologies
 
PPTX
Firebase - A real-time server
Aneeq Anwar
 
Web automation in BDD
Sandy Yu
 
WordPress APIs
mdawaffe
 
Mock Servers - Fake All the Things!
Atlassian
 
Creating an Effective Mobile API
Nick DeNardis
 
App engine beats pony.key
Alper Çugun
 
Intro to SharePoint + PowerShell
Ryan Dennis
 
PowerShell for sharepoint 2010 administrators
Ravikanth Chaganti
 
A Debugging Adventure: Journey through Ember.js Glue
Mike North
 
Demystifying Web Performance
Atlassian
 
Browser Developer Tools
Christian Rokitta
 
PowerShell for SharePoint Developers
Boulos Dib
 
Exposing Salesforce REST Services Using Swagger
Salesforce Developers
 
Drupal 7 Tutorial: Features Module
Acquia
 
Write Your First WordPress Plugin
Ibrahim Abdel Fattah Mohamed
 
Introduction to Drupal 7 - SEO
Kalin Chernev
 
Mobile APIs: Optimizing APIs for Many Devices
Apigee | Google Cloud
 
SP24S053 Introduction to PowerShell for SharePoint Developers and Administrators
Michael Blumenthal (Microsoft MVP)
 
Get responsive with Galen
Thoughtworks
 
[Srijan Wednesday Webinars] Automating Visual Regression using ‘Galen’
Srijan Technologies
 
Firebase - A real-time server
Aneeq Anwar
 

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

PPTX
Tango with django
Rajan Kumar Upadhyay
 
DOC
Top Django Interview Questions and Answers in 2025.doc
TCCI Computer Coaching
 
PDF
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
PDF
Django Online Training - NareshIT.pdf.pdf
avinashnit
 
PPTX
Django framework
Arslan Maqsood
 
PDF
Testdriven Development With Python 1st Edition Harry J W Percival
ykvfacwe5221
 
PPTX
Introduction to DJANGO, a creative framework
bunnybro2953
 
PDF
Learn Django Tips, Tricks & Techniques for Developers
Mars Devs
 
PDF
Django - basics
University of Technology
 
PDF
Introduction to Django Course For Newbie - Advance
yusufvabdullah001
 
PDF
What is Django | Django Tutorial for Beginners | Python Django Training | Edu...
Edureka!
 
PDF
django_introduction20141030
Kevin Wu
 
PDF
Django course summary
Udi Bauman
 
PDF
Os Django
oscon2007
 
PDF
Web Development with Python and Django
Michael Pirnat
 
PDF
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
SudhanshiBakre1
 
PPTX
Django Framework Interview Guide - Part 1
To Sum It Up
 
PDF
Python id meetup, Maintaining a Dirty Code Django Project
Ikhsan Noor Rosyidin
 
PPTX
django
Mohamed Essam
 
DOCX
Python Outline.docx
SamanaMehmood1
 
Tango with django
Rajan Kumar Upadhyay
 
Top Django Interview Questions and Answers in 2025.doc
TCCI Computer Coaching
 
Python Django tutorial | Getting Started With Django | Web Development With D...
Edureka!
 
Django Online Training - NareshIT.pdf.pdf
avinashnit
 
Django framework
Arslan Maqsood
 
Testdriven Development With Python 1st Edition Harry J W Percival
ykvfacwe5221
 
Introduction to DJANGO, a creative framework
bunnybro2953
 
Learn Django Tips, Tricks & Techniques for Developers
Mars Devs
 
Django - basics
University of Technology
 
Introduction to Django Course For Newbie - Advance
yusufvabdullah001
 
What is Django | Django Tutorial for Beginners | Python Django Training | Edu...
Edureka!
 
django_introduction20141030
Kevin Wu
 
Django course summary
Udi Bauman
 
Os Django
oscon2007
 
Web Development with Python and Django
Michael Pirnat
 
Django Tutorial_ Let’s take a deep dive into Django’s web framework.pdf
SudhanshiBakre1
 
Django Framework Interview Guide - Part 1
To Sum It Up
 
Python id meetup, Maintaining a Dirty Code Django Project
Ikhsan Noor Rosyidin
 
Python Outline.docx
SamanaMehmood1
 
Ad

More from Shawn Rider (8)

PDF
Work is not a Dare: Tips for Building Inclusive Teams
Shawn Rider
 
PDF
Theming Sites with SASS
Shawn Rider
 
PPTX
Living Syleguides
Shawn Rider
 
PDF
Intro to Yo
Shawn Rider
 
PPTX
Barbarians at the Gate: Games and Culture
Shawn Rider
 
PPTX
Massaging the Pony: Message Queues and You
Shawn Rider
 
PPT
Django Forms: Best Practices, Tips, Tricks
Shawn Rider
 
PPTX
How To Succeed In Web Design
Shawn Rider
 
Work is not a Dare: Tips for Building Inclusive Teams
Shawn Rider
 
Theming Sites with SASS
Shawn Rider
 
Living Syleguides
Shawn Rider
 
Intro to Yo
Shawn Rider
 
Barbarians at the Gate: Games and Culture
Shawn Rider
 
Massaging the Pony: Message Queues and You
Shawn Rider
 
Django Forms: Best Practices, Tips, Tricks
Shawn Rider
 
How To Succeed In Web Design
Shawn Rider
 
Ad

Recently uploaded (20)

PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
July Patch Tuesday
Ivanti
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 

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

  • 1. Teaching an Old Pony New Tricks: Maintaining and Updating an Aging Django Project DjangoCon 2010 Shawn Rider PBS Education
  • 3.  
  • 4.  
  • 5.  
  • 6.  
  • 7. The Rebuild Challenge In 2006 the TeacherLine sites were powered by Cold Fusion. A complete rebuild was needed.
  • 8. The Rebuild Challenge Several technologies were considered: Ruby / Rails PHP / Some PHP Framework Python / Django
  • 10. Things About Django That Made Us Happy Speed of Development Code Quality Modularity of Framework Django Admin Active Community Python!
  • 11. Things People Said About Django That Hurt Our Feelings
  • 12. Beta frameworks are not “enterprise ready”!
  • 13. Django won’t last; the project will die!
  • 14. Nobody around here knows Python!
  • 15. TeacherLine Rises Again Over 4 months, 2 developers built the new TeacherLine site. It launched December 12, 2007
  • 16. TeacherLine Rises Again Features in relaunch: Course Catalog CMS for localized content Staff Admin Support Ticketing System Robust Permissions/Roles System Profiles Graduate Credit Management System eCommerce API for Remote Integration
  • 17. Features Added Since the Relaunch Message Queue Named URLs Test Suite New File Storage Backend Virtual Environment Project Structure Robust Visual Reports
  • 18. Major Apps Added Since the Relaunch Facilitator Scheduling Tool Capstones Course Tools
  • 19. Deployment Changes Since the Relaunch Adopted Virtual Environments Moved from traditional to cloud hosting
  • 20. Things That Worked for Us Django is opinionated in a generally good way.
  • 21. Things That Worked for Us A culture of self-criticism.
  • 22. Things That Worked for Us Isolate functionality into reusable components.
  • 23. Things That Worked for Us Always use URL tags in templates.
  • 24. Things That Worked for Us Our multi-deployment configuration solution turned out to be a good idea.
  • 25. Mistakes We Made Never override the User model.
  • 26. Mistakes We Made Make tests right away.
  • 27. Mistakes We Made Never underestimate the Admin.
  • 28. Mistakes We Made Manipulators made us shy to fully leverage Forms.
  • 29.  
  • 30. Things Are Getting Better Continuous ORM Improvements Django Forms are now awesome Enhanced security protections Authorization backends
  • 31. Upgrading the Framework To take advantage of framework upgrades, you must schedule the work in your project.
  • 32. Upgrading the Framework Sell the upgrade to the Uppers: It will lower the cost of future development It will alleviate a pain point felt by staff processes
  • 33. Upgrading the Framework Facilitate the work: Make the most of your VCS Use tests Take your time
  • 34. Things We’d Like to Improve Remote API Adopt Haystack/SOLR instead of Djapian/Xapian Email backends DB master/slave and sharding Leverage Django Admin features better
  • 35. Ponies We Still Want Multi-configuration support out-of-the-box A better way to know when Django’s modules are completely loaded into memory More robust event handling (Signals++)
  • 36. Thanks & Kudos The Django Project The core devs and all the contributors. The Django Community Everyone developing Django apps and community sites. The current TeacherLine team: Nowell Strite (@nowells), Tareque Hossain (@tarequeh), Ron Cox (@monkyhead), Sam Deng (@samdeng)

Editor's Notes

  • #4: 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.
  • #5: For the Learner, the TL site allows them to access their courses.
  • #6: Which are then delivered using the Moodle Learning Management System.
  • #7: 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.
  • #8: 2006: TL was a cold fusion site. In need of rebuilding.
  • #9: The PBS technology team was looking for a new platform to encourage from within. This platform would be the basis for the new TeacherLine.
  • #10: 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.
  • #11: Code quality of framework is stellar. This has translated over time to the general quality of Django apps developed by community members.
  • #13: Break into individual frames for comic relief? Probably…
  • #16: We had written another prototype project in the Spring of 2007
  • #17: We had written another prototype project in the Spring of 2007
  • #18: 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.
  • #19: 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.
  • #20: 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.
  • #21: Django encourages adherence to generally good practice, and overall good design practice.
  • #22: 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.
  • #23: Django has always encouraged the separation of discrete components into applicaitons.
  • #25: If you can’t deploy in multiple locations, you are lost.
  • #31: Things that we used to have to work around but are now much better in Django.
  • #32: Something about how we have approached major framework upgrades, such as 1.0, 1.1, 1.2.
  • #33: Something about how we have approached major framework upgrades, such as 1.0, 1.1, 1.2.
  • #34: Something about how we have approached major framework upgrades, such as 1.0, 1.1, 1.2.
  • #35: Things that we could improve greatly based on new features in Django.
  • #36: Wishlist for Django features
  • #37: Thanks to the team and links, etc.