django packages - meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · only hard...
TRANSCRIPT
Django PackagesCase Study
1
We do cartwheels
• Python
• Django
• Pinax
• django-cms
• Teach
3
Inception
4
Inception
5
Inception
6
Inception
“How about a site to help
find Django apps?”
7
Inception
Tags!Ads!
django-apps.com
8
Inception
9
Ads!SVN?
Feed
License
Inception
Django Packages
10
Inception
• Usability
• Search
• Comparison
• No Ads
Bullets of design
11
Inception
Team Scared of Rabbits
12
Mullets
APOLOGY: No pictures of me with a mullet
13
Tag Clouds
14
Tag cloud is themullet of web 2.0
15
Grids, not Tags
User created categories lacking
metadata
16
Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison
What if tags could have all this information?
17
Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison
Easy to model with
Many to Many!18
Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison
Easier to modelwith EAV
using NoSQL!19
Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison
Easy to model with
Many to Many!20
Not gonna fitwww.djangopackages.com/grids/g/nosql/
21
Only hard metrics*
• No opinions
• No rating systems
• No comments
“We wanted hard metrics. So the package numbers are pulled from the repo sites such as Github, Bitbucket, and Google Code. Otherwise things get weighted funny. Sure, this system can be monkeyed with, but its a good metric for now. We've had suggestions from Django core developers of coming up with a quality check system, things like pypants and/or a formalized approval system.”
*Also because it kept the project scope smaller
22
Only hard metrics
Yes/No Supported repo sites
PyPI
23
Only hard metrics
PyPI
Github
Bitbucket
Sourceforge
Launchpad24
Regex vs XML
• Could not find PyPI API
• DOAP is next to useless
• Time to slurp data out of web pages
• I’m faster at regex then XML parsing
• And I got it working
25
bit.ly/cu5Prt
Regex vs XML
26
Regex vs XML
• Could not find PyPI API
• DOAP is next to useless
• Time to slurp data out of web pages
• I’m faster at regex then XML parsing
• And I got it working
27
Dash Architecture
• Django 1.2.1 / Pinax 0.9a1
• Python 2.6.5
• Sqlite 3.6.12
• Ubuntu 10.4
• HTTP Server: ApacheDjango Runserver
28
Django Dash Placing
I’m not bitter29
Lessons Learned
Research ahead of time
API limitationsGoogle Charts rock
30
Lessons Learned
PEP-8 is your friend
python -c “import this”Keep things simple and flat
Corrections easier
31
Lessons Learned
Fixtures are a must
Test and blow away your stuff constantlyHelps the designer with matching content with layout
32
Lessons Learned
Don’t optimize prematurely
Don’t start by removing Django bitsWrite the project then analyze
Even the simplest of caching will help.33
Have a system architecture
plan
I was nearuseless atsys admin
Lessons Learned
Audrey to the rescue!“Learn the sys admin stuff cause it affects everything”
34
Lessons Learned
Share during the dash
Bouncing ideas off other teams is handy
35
Lessons Learned
36
Lessons Learned
37
The First Month
“There’s a package for that”
“I’ve got your Django Package right here”
38
The First Month
40
The First Month
PyPI
Github
Bitbucket
Sourceforge
Launchpad41
The First Month
42
The First Month
• Apache
• Got email functioning
• Page cleanup
43
The First Month
WARNING
44
DjangoCon 2010
flickr.com/photos/bfirsh45
DjangoCon 2010
Our Friendly DSF president
46
DjangoCon 2010
WARNING
47
DjangoCon 2010
If I had been there earlier I would not have lost sprinters
48
DjangoCon 2010
THIS ROCKS!49
DjangoCon 2010
http://djangopackages.com/api/v1/docs/
50
Django-CMS
django-cms.org/en/extensions51
DjangoCon 2010
django-reversions
52
DjangoCon 2010
XMLRPC
PyPIRegex
DjangoCon 2010
54
• AJAX controls on “I use this”• Caching• Fancy permission controls for deletions• History Graphs on grid views• Query Optimization• Unit Tests!
Used to help track features!
Around DjangoCon
55
Random Hacks of Kindness
https://github.com/rhok-planet/crisishacks
http://www.crisishacks.com/56
Autumn
Moved from Kansas to Los Angeles
Early 2011
Read the Docs
Django Packages+
Read the Docs
Django Packages59
WARNINGPyCon 2011
60
Pycon Sprint
Starting early!
61
Pycon Sprint
PyPI
Github
Bitbucket
Sourceforge
Launchpad62
BadgesPycon Sprint
On PyPI
Readthe
Docs
Coverage80+%
ThisSite!
Django-CMSPlugin
Top 10Downloads
Top 10Used
CoreApproved
63
Pycon Sprint
Package Pagination
64
Pycon Sprint
Shopping Cart
65
Select your packages and get a requirements file!
Pycon Sprint
X-Y Axis
66
djangopackages.com/grids/g/deployment
pythonpackages.com
?67
pythonpackages.com
68
NO!Are you going
to replace PyPI?
pythonpackages.com
69
Phase I
pythonpackages.com
70
Only display packagesformally released on PyPI
pythonpackages.com
71
Release your stuff!
72
Questions?