django packages - meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · only hard...

72
Django Packages Case Study 1

Upload: others

Post on 24-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Django PackagesCase Study

1

Page 2: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

We do cartwheels

cartwheelweb.com

2

Page 3: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

We do cartwheels

• Python

• Django

• Pinax

• django-cms

• Teach

3

Page 4: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

4

Page 5: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

5

Page 6: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

6

Page 7: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

“How about a site to help

find Django apps?”

7

Page 8: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

Tags!Ads!

django-apps.com

8

Page 9: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

9

Ads!SVN?

Feed

License

Page 10: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

Django Packages

10

Page 11: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

• Usability

• Search

• Comparison

• No Ads

Bullets of design

11

Page 12: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Inception

Team Scared of Rabbits

12

Page 13: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Mullets

APOLOGY: No pictures of me with a mullet

13

Page 14: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Tag Clouds

14

Page 15: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Tag cloud is themullet of web 2.0

15

Page 16: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Grids, not Tags

User created categories lacking

metadata

16

Page 17: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison

What if tags could have all this information?

17

Page 18: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison

Easy to model with

Many to Many!18

Page 19: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison

Easier to modelwith EAV

using NoSQL!19

Page 20: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Grids, not tagscode.djangoproject.com/wiki/CMSAppsComparison

Easy to model with

Many to Many!20

Page 21: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Not gonna fitwww.djangopackages.com/grids/g/nosql/

21

Page 22: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

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

Page 23: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Only hard metrics

Yes/No Supported repo sites

PyPI

23

Page 24: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Only hard metrics

PyPI

Github

Bitbucket

Google

Sourceforge

Launchpad24

Page 25: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

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

Page 27: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

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

Page 28: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

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

Page 29: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Django Dash Placing

I’m not bitter29

Page 30: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Lessons Learned

Research ahead of time

API limitationsGoogle Charts rock

30

Page 31: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Lessons Learned

PEP-8 is your friend

python -c “import this”Keep things simple and flat

Corrections easier

31

Page 32: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Lessons Learned

Fixtures are a must

Test and blow away your stuff constantlyHelps the designer with matching content with layout

32

Page 33: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

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

Page 34: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

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

Page 35: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Lessons Learned

Share during the dash

Bouncing ideas off other teams is handy

35

Page 36: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Lessons Learned

36

Page 37: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Lessons Learned

37

Page 38: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

The First Month

“There’s a package for that”

“I’ve got your Django Package right here”

38

Page 39: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

http://www.revsys.com/

The First Month

39

Page 40: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

The First Month

40

Page 41: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

The First Month

PyPI

Github

Bitbucket

Google

Sourceforge

Launchpad41

Page 42: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

The First Month

42

Page 43: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

The First Month

• Apache

• Got email functioning

• Page cleanup

43

Page 44: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

The First Month

WARNING

44

Page 46: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

Our Friendly DSF president

46

Page 47: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

WARNING

47

Page 48: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

If I had been there earlier I would not have lost sprinters

48

Page 49: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

THIS ROCKS!49

Page 50: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

http://djangopackages.com/api/v1/docs/

50

Page 51: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Django-CMS

django-cms.org/en/extensions51

Page 52: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

django-reversions

52

Page 53: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

XMLRPC

PyPIRegex

Page 54: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

DjangoCon 2010

54

• AJAX controls on “I use this”• Caching• Fancy permission controls for deletions• History Graphs on grid views• Query Optimization• Unit Tests!

Page 55: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Used to help track features!

Around DjangoCon

55

Page 56: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Random Hacks of Kindness

https://github.com/rhok-planet/crisishacks

http://www.crisishacks.com/56

Page 57: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Autumn

Moved from Kansas to Los Angeles

Page 58: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Early 2011

Read the Docs

Django Packages+

Page 59: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Read the Docs

Django Packages59

Page 60: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

WARNINGPyCon 2011

60

Page 61: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Pycon Sprint

Starting early!

61

Page 62: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Pycon Sprint

PyPI

Github

Bitbucket

Google

Sourceforge

Launchpad62

Page 63: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

BadgesPycon Sprint

On PyPI

Readthe

Docs

Coverage80+%

ThisSite!

Django-CMSPlugin

Top 10Downloads

Top 10Used

CoreApproved

63

Page 64: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Pycon Sprint

Package Pagination

64

Page 65: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Pycon Sprint

Shopping Cart

65

Select your packages and get a requirements file!

Page 66: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

Pycon Sprint

X-Y Axis

66

djangopackages.com/grids/g/deployment

Page 67: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

pythonpackages.com

?67

Page 68: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

pythonpackages.com

68

NO!Are you going

to replace PyPI?

Page 69: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

pythonpackages.com

69

Phase I

Page 70: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

pythonpackages.com

70

Only display packagesformally released on PyPI

Page 71: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

pythonpackages.com

71

Release your stuff!

Page 72: Django Packages - Meetupfiles.meetup.com/1544869/django-packages-casestudy.pdf · Only hard metrics* • No opinions • No rating systems • No comments “We wanted hard metrics

72

Questions?