Slide 1

Slide 1 text

gemcutter: the art of lapidary nick quaranto 1/49 - 3%

Slide 2

Slide 2 text

@qrush [email protected] litanyagainstfear.com 2/49 - 5%

Slide 3

Slide 3 text

3/49 - 7%

Slide 4

Slide 4 text

4/49 - 9%

Slide 5

Slide 5 text

5/49 - 11%

Slide 6

Slide 6 text

6/49 - 13%

Slide 7

Slide 7 text

7/49 - 15%

Slide 8

Slide 8 text

8/49 - 17%

Slide 9

Slide 9 text

9/49 - 19%

Slide 10

Slide 10 text

status others roadmap 10/49 - 21%

Slide 11

Slide 11 text

status 11/49 - 23%

Slide 12

Slide 12 text

some stats 30 million downloads 63,000 gem versions 47 contributors 920 GB transferred last month 12/49 - 25%

Slide 13

Slide 13 text

downloads per month january: 4,094,629 february: 4,396,202 march: 4,765,550 april: 5,117,016 may: 5,211,337 13/49 - 27%

Slide 14

Slide 14 text

more stats average growth per month: 223,341 estimations per month by 2011: linear: 7,545,076 logarithmic: 5,817,165 14/49 - 29%

Slide 15

Slide 15 text

API 15/49 - 31%

Slide 16

Slide 16 text

# git show 534af7f:spec/api_spec.rb describe "Gemcutter API" do it "should work" do get '/' @response.should =~ /gemcutter/ end end 16/49 - 33%

Slide 17

Slide 17 text

API history: rubygems server 18 endpoints S3, CloudFront: GET /gems/rails- 2.3.8.gem modern indexes: GET /latest_specs.4.8.gz legacy indexes: GET /yaml 17/49 - 35%

Slide 18

Slide 18 text

API history: v0 9 endpoints GET /gems/rails.json POST /gems POST /gems/rails/migrate 18/49 - 37%

Slide 19

Slide 19 text

API history: v1 14 endpoints POST /api/v1/gems GET /api/v1/gems/rails.json GET /api/v1/gems/rack/owners.json 19/49 - 39%

Slide 20

Slide 20 text

gem yank $ gem yank bills -v 0.0.1 Yanking gem from RubyGems.org... Successfully yanked gem: bills (0.0.1) 20/49 - 41%

Slide 21

Slide 21 text

gem yank --undo $ gem yank bills --undo -v 0.0.1 Unyanking gem from RubyGems.org... Successfully unyanked gem: bills (0.0.1) 21/49 - 43%

Slide 22

Slide 22 text

gem webhooks $ gem webhook rails --add http://example.com Successfully created webhook for rails to http://example.com $ gem webhook --global --add http://something.net Adding webhook... Successfully created webhook for all gems to http://something.ne 22/49 - 45%

Slide 23

Slide 23 text

gem webhooks: fire! $ gem webhook rack --fire http://example.com Test firing webhook... Successfully deployed webhook for rack to http://example.com 23/49 - 47%

Slide 24

Slide 24 text

ideas for gem webhooks tarballer distributed tester gemfiler changelogr 24/49 - 49%

Slide 25

Slide 25 text

downloads revamp postgres => redis 30 million rows => 100 MB of RAM migration task, search results need download counts almost done! 25/49 - 52%

Slide 26

Slide 26 text

rubygems integration default source as of 1.3.6 gem push, gem owner in gem yank, gem webhook slated by 1.4 26/49 - 54%

Slide 27

Slide 27 text

status charging forward gem yank, webhook are fun gemcutter may have won, not done yet 27/49 - 56%

Slide 28

Slide 28 text

emulation 28/49 - 58%

Slide 29

Slide 29 text

29/49 - 60%

Slide 30

Slide 30 text

30/49 - 62%

Slide 31

Slide 31 text

31/49 - 64%

Slide 32

Slide 32 text

32/49 - 66%

Slide 33

Slide 33 text

33/49 - 68%

Slide 34

Slide 34 text

34/49 - 70%

Slide 35

Slide 35 text

35/49 - 72%

Slide 36

Slide 36 text

36/49 - 74%

Slide 37

Slide 37 text

the theory once consuming is easy, publishing is the pain point solved it: gem push time to catch up! 37/49 - 76%

Slide 38

Slide 38 text

motion 38/49 - 78%

Slide 39

Slide 39 text

API 39/49 - 80%

Slide 40

Slide 40 text

forked gems you.gemcutter.org your own sandbox, a blank index production quality gems on rubygems.org 40/49 - 82%

Slide 41

Slide 41 text

better indexes try gem install -V dependency resolution? support bundler, rip, rpg? 41/49 - 84%

Slide 42

Slide 42 text

download stats access historical info per gem stats page bring over rubyforge data 42/49 - 86%

Slide 43

Slide 43 text

distribution gem mirror needs an overhaul torrents? A-Z bundles? snapshots? 43/49 - 88%

Slide 44

Slide 44 text

SVN 44/49 - 90%

Slide 45

Slide 45 text

SVN 45/49 - 92%

Slide 46

Slide 46 text

github.com/rubygems/rubygems 46/49 - 94%

Slide 47

Slide 47 text

support help.rubygems.org for community support knowledge base, direct questions to core team before stackoverflow, please 47/49 - 96%

Slide 48

Slide 48 text

wrapup moving forward with new features and fixes get the community involved (again) learn from other services and platforms around for the foreseeable future of ruby 48/49 - 98%