Scot  Hacker@shacker
Make it easy...
Digits•94212 items•5595 lists•Avg 17 items per list•Avg completion ratio: 16%                  Most completed goal
Zero Tolerance
Skydiving   Machu Pichu
Empty Calories
Oembed is aMiracle
Return Traffic
Flagged!
Most-liked
Love
Volunteer at ...
Pay for a stranger’s groceries
Zorb
Zentangle
Guerilla Gardening
Run Over a Snake
Witness ParanormalActivity
Kill Someone
Punch a Man in the Face
Become a 24 hr/day stoner
Try flipper pie
Get the surgery I need to remove myscars
Have sex on a pool table
Unclear on the Concept
Item titles need Hoovering
Sanitizing Input
School of Bucketlist
To-Do •Mobile site •Mobile apps •Geolocation •Facebook •Badges
Code
• Tweepy• The bit.ly API• Noble character counter• CSS 3 Gradient Buttons
The Bucketlist ItemUser              ProfileList              Item
Fully Object OrientedItem.List.Profile.User.Email
MTV (Model, Template, View)                      Logic Match URL        (the business                      end)  Templates...
Django Admin
Object Relational MapperSELECT FROM bucket_item WHEREbucket_item.list_id = bucket_list.idAND bucket_list.profile_id = buck...
Database support• MySQL• PostgreSQL• Oracle• SQLite• Multi-db support
Caching options• Filesystem• Database• Memcached• Local memory• Per-site• Per-view• Template fragments
Batteries included• Python libs for anything you can think of
Clean URLs• Regex-based URL structures• Safer, no cruft, encourages RESTfulness
Multilingual• Built-in support for lang detection, delivery
Data modeling is fun
Re-usable apps• Somewhat similar to plugins/modules• Break project into functional bits - abstract!
Clean template inheritance
Form generation, validation
Extensible authentication• Typical usage built in• But can tie easily to other systems
Comment, RSS systems• Attach comments to any data model• Generate RSS feed from any view
Very good community• Sophisticated developers, willing to help• High-quality devs• Lists, IRC, blogs...
Disadvantages• Smaller community/less traction• Get ready to write code• Availability of developers• App docs can be opaque
Workflow1. Define data model2. Get it working in the admin3. Define a public URL4. Write view code (business logic)5. Send...
Cleaning Titles, has_media
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Upcoming SlideShare
Loading in...5
×

Scot Hacker: Building a Killer Bucketlist Site with Python/Django

1,076

Published on

Presentation to BayCHI, April 12, 2011, at PARC in Palo Alto, California.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,076
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Scot Hacker: Building a Killer Bucketlist Site with Python/Django"

  1. 1. Scot Hacker@shacker
  2. 2. Make it easy...
  3. 3. Digits•94212 items•5595 lists•Avg 17 items per list•Avg completion ratio: 16% Most completed goal
  4. 4. Zero Tolerance
  5. 5. Skydiving Machu Pichu
  6. 6. Empty Calories
  7. 7. Oembed is aMiracle
  8. 8. Return Traffic
  9. 9. Flagged!
  10. 10. Most-liked
  11. 11. Love
  12. 12. Volunteer at ...
  13. 13. Pay for a stranger’s groceries
  14. 14. Zorb
  15. 15. Zentangle
  16. 16. Guerilla Gardening
  17. 17. Run Over a Snake
  18. 18. Witness ParanormalActivity
  19. 19. Kill Someone
  20. 20. Punch a Man in the Face
  21. 21. Become a 24 hr/day stoner
  22. 22. Try flipper pie
  23. 23. Get the surgery I need to remove myscars
  24. 24. Have sex on a pool table
  25. 25. Unclear on the Concept
  26. 26. Item titles need Hoovering
  27. 27. Sanitizing Input
  28. 28. School of Bucketlist
  29. 29. To-Do •Mobile site •Mobile apps •Geolocation •Facebook •Badges
  30. 30. Code
  31. 31. • Tweepy• The bit.ly API• Noble character counter• CSS 3 Gradient Buttons
  32. 32. The Bucketlist ItemUser ProfileList Item
  33. 33. Fully Object OrientedItem.List.Profile.User.Email
  34. 34. MTV (Model, Template, View) Logic Match URL (the business end) Templates (limited logic) Data models
  35. 35. Django Admin
  36. 36. Object Relational MapperSELECT FROM bucket_item WHEREbucket_item.list_id = bucket_list.idAND bucket_list.profile_id = bucket_profile.idAND bucket_profile.user_id = auth_user.idAND auth_user.username LIKE shacker;OR:Item.objects.filter(list__profile__user__username=shacker)
  37. 37. Database support• MySQL• PostgreSQL• Oracle• SQLite• Multi-db support
  38. 38. Caching options• Filesystem• Database• Memcached• Local memory• Per-site• Per-view• Template fragments
  39. 39. Batteries included• Python libs for anything you can think of
  40. 40. Clean URLs• Regex-based URL structures• Safer, no cruft, encourages RESTfulness
  41. 41. Multilingual• Built-in support for lang detection, delivery
  42. 42. Data modeling is fun
  43. 43. Re-usable apps• Somewhat similar to plugins/modules• Break project into functional bits - abstract!
  44. 44. Clean template inheritance
  45. 45. Form generation, validation
  46. 46. Extensible authentication• Typical usage built in• But can tie easily to other systems
  47. 47. Comment, RSS systems• Attach comments to any data model• Generate RSS feed from any view
  48. 48. Very good community• Sophisticated developers, willing to help• High-quality devs• Lists, IRC, blogs...
  49. 49. Disadvantages• Smaller community/less traction• Get ready to write code• Availability of developers• App docs can be opaque
  50. 50. Workflow1. Define data model2. Get it working in the admin3. Define a public URL4. Write view code (business logic)5. Send objects to templates
  51. 51. Cleaning Titles, has_media
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×