Your SlideShare is downloading. ×
0
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
State of Pinax
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

State of Pinax

3,393

Published on

State of Pinax talk from DjangoCon 2009 by James Tauber

State of Pinax talk from DjangoCon 2009 by James Tauber

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

No Downloads
Views
Total Views
3,393
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
92
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. State of James Tauber DjangoCon 2009
  2. pi in hex
  3. def pi(): N = 0 n, d = 0, 1 while True: xn = (120*N**2 + 151*N + 47) xd = (512*N**4 + 1024*N**3 + 712*N**2 + 194*N + 15) n = ((16 * n * xd) + (xn * d)) % (d * xd) d *= xd yield 16 * n // d N += 1
  4. Your Site Your Site Django Python Python
  5. idea realisation
  6. Quisition • currently has: • signup, login, password management • announcements • deck searching and sort • want to add: • user profiles • rating, tagging and commenting on decks • groups, friendships • membership levels • notifications • OpenID
  7. Hot Club of France reusable apps app conventions
  8. Potter Predictions • send invitations • connect to friends • make comments on predictions • tag prediction • mass mailout to users
  9. Tabula Rasa reusable apps app conventions + starting point for new projects scaffolding for developing new apps
  10. If you want to build a ship, don’t drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea. – Antoine de Saint-Exupéry
  11. Let’s Build a Social Networking Site
  12. { n | available(“cloud<n>.com”), n < 30 } = { 14, 26, 27, 28 }
  13. collection of reusable apps conventions for reusable apps starting point for new projects scaffolding for developing new apps + a platform for website development
  14. Your Project Your Project Pinax Django Django Python Python
  15. • AuthX (AuthN + AuthZ) Modern Web Infrastructure ◦ Capabilities ◦ Multifactor Auth ◦ Rate Limiting ◦ Signup ◦ OpenID ◦ OAuth ◦ External import • API Metering • Groups • Backups & Snapshots • Invites • Counters • Lists • Cloud/Cluster Management Tools • Notifications ◦ Instrumentation/Monitoring (Ganglia, Nagios) ◦ Spam filtering ◦ Failover ◦ Multi-protocol routing ◦ Node addition/removal and hashing ◦ Fine-grained controls/rules ◦ Autoscaling for cloud resources • Presence • CSRF/XSS Protection • Social Activity Log (Newsfeed) • Data Retention/Archival ◦ Filtering • Deployment Tools • Social Model ◦ Multiple Devs, Staging, Prod ◦ Connectivity (uni/bidi) ◦ Data model upgrades ◦ Privacy (private, reciprocal, public) ◦ Rolling deployments ◦ Views ◦ Multiple versions (selective beta) ◦ Traversal ◦ Bucket Testing • Social Object ◦ Rollbacks ◦ Privacy, Social Scoping ◦ CDN Management ◦ Voting • Distributed File Storage ◦ Sharing • Distributed Log storage, analysis ◦ Publishing • Graphing ◦ Comments • HTTP Caching ◦ Favoriting • Input/Output Filtering ◦ Social editing • Memory Caching ◦ Permissions • Non-relational Key Stores • Tagging • Rate Limiting ◦ Combinations • Relational Storage ◦ Relatedness • Queues • User • Rate Limiting ◦ Achievements/Awards • Real-time messaging (XMPP) ◦ Activity Log • Search ◦ External User ID Mapping ◦ Ranging ◦ Permissions (see AuthX) ◦ Geo ◦ Deletion/Archival • Sharding ◦ Flagging • Smart Caching ◦ Direct Messaging ◦ dirty-table management ◦ User Cards
  16. What seems the biggest shame to me is that everyone is currently rebuilding this stuff over and over again and rationalizing it as some sort of secret sauce competitive advantage when it’s really infrastructure - stuff that really should be standardized so you can actually get around to doing the new and interesting stuff. — Leonard Lin http://randomfoo.net/2009/01/28/infrastructure-for-modern-web-sites
  17. Your Project the trade off: Pinax how much to fix? how much to make configurable? how much to leave Django completely to site developer?
  18. Reusability is not just at the app layer
  19. reusable app quisition potterpredictions
  20. djangopeople pythonpeople
  21. pinax project djangopeople pythonpeople
  22. Ole Kirk Christiansen
  23. • blocks • sets • themes
  24. Pinax IS Django
  25. Pinax IS NOT Django
  26. “Pinax is opinionated so Django doesn’t have to be”
  27. “PINAX: Even more opinionated than Django”
  28. Milestones • 0.5.0 — October 2008 • 0.5.1 — January 2009 • 0.7beta1— April 2009 (485) • 0.7beta2 — April 2009 (58) • 0.7beta3 — July 2009 (445) • 0.7rc1— September 2009 (291)
  29. 1271 commits 343 tickets closed between 0.5 and 0.7 (not counting external apps)
  30. Features in 0.5 • openid support • interest groups (called tr ibes) • email ver ification • password management • projects with basic task and issue management • site announcements • threaded discussions • a notification fr amewor k • wikis • user-to-user messaging with multiple mar kup suppor t • fr iend invitation • blogging (both inter nal and exter nal to the site) • bookmar ks • a basic twitter clone • tagging • oembed suppor t • contact impor t • gr avatar suppor t (from vCard, Google or Yahoo) • photo management
  31. 0.5 Structure • external apps • all on Google Code (SVN) • half written independently of Pinax • local apps • libraries (batteries included) • two sample projects • path hacking
  32. Sites Using Pinax
  33. Sites Using Pinax
  34. Sites Using Pinax
  35. Sites Using Pinax
  36. Sites Using Pinax
  37. 0.7 Release • translation removal • locations • frontend-admin and generic flat-blocks • account and group improvements • new task app • uni-form and Section 508 • better shared templates and media • more sample projects (and complete renamed social) • virtualenv and pip • pinax is now a package
  38. New Account App • turn OpenID on/off • turn sign up on/off • waiting list • invite only / private beta • token-based password reset • (resend signup email confirmation) • (use email for login)
  39. you signed up for admin initiated each user has fixed user can invite beta account number to hand out anyone admin sent code user invited you general code unique invite just go to site (type in) (email link) have code external auth username / password username signup (no password) SIGNED UP
  40. New Group App • Don’t Repeat Yourself! • endo vs exo • group apps versus content apps • membership app
  41. Endo Approach (framework-like)
  42. Endo Approach (framework-like)
  43. Exo Approach (library approach)
  44. Exo Approach (library approach)
  45. Shared Templates and Media • look up: • project • pinax new level (multiple themes) • app • media build command • ship with famfamfam silk icons
  46. Problems with 0.5 structure • it largely relies on external dependencies being in svn and this is increasingly not the case (although it was when Pinax started) • it makes it difficult for Pinax itself to move away from svn • there is no management of dependencies between external dependencies, nor between particular projects in Pinax and their individual dependencies
  47. virtualenv and pip • encourage externals apps to be distutils- compliant • pip for package install (at least during development) • optional “batteries included” release • virtualenv to provide isolation, remove need for path hacking and just because it kicks ass
  48. release install (download tarball, extract and cd) $ python scripts/pinax-boot.py ../pinax-env $ source ../pinax-env/bin/activate (pinax-env)$ cd .. (pinax-env)$ pinax-admin clone_project social_project mysite (pinax-env)$ cd mysite/ (pinax-env)$ python manage.py syncdb (pinax-env)$ python manage.py runserver
  49. development install (download pinax-boot.py from github) $ python pinax-boot.py --development ./pinax-env $ source ./pinax-env/bin/activate (pinax-env)$ (pinax-env)$ cd ./pinax-env/ (pinax-env)$ pip install --requirement src/pinax/requirements/external_apps.txt
  50. Move to github http://github.com/pinax/pinax/
  51. 35 contributors 108 members of pinax-core-dev list 58 at PyCon 336 users on code.pinaxproject.com 403 watchers on github 157 at PyCon 649 members of pinax-users list 398 at PyCon
  52. Pinax is NOT just for social networks
  53. site site site site site site site site site site site site Learning Social Networks Intranets e-commerce Management Pinax Django
  54. site site site site site site site site site site site site Learning Social Networks Intranets e-commerce Management Pinax Django
  55. Editions • social networking • intranet • learning management • e-commerce • clubs and associations • conference management • software project management
  56. Roadmap • 0.7rc1 out last week • 0.7 final in next day or two • 0.8 “translation release” based off 0.7 and in parallel to 0.9 • • 0.9 “big feature release” and invitations rethink friends: split into friends, contacts • • rethink profiles • workflow • open stack • calendar / events • new apps • new projects • new editions?
  57. Join Us During Sprint (even if just in #pinax-sprint on freenode)
  58. http://pinaxproject.com/

×