Rubyconf X
Thursday, November 18, 2010
Thursday, November 18, 2010
Chelimsky::Dry
Thursday, November 18, 2010
Chelimsky::Dry
• every time you reduce duplication you
increase coupling by introducing new
dependencies
Thursday, Novembe...
Chelimsky::Dry
• every time you reduce duplication you
increase coupling by introducing new
dependencies
• metaprogram onl...
Chelimsky::Dry
• every time you reduce duplication you
increase coupling by introducing new
dependencies
• metaprogram onl...
Chelimsky::Dry
Thursday, November 18, 2010
• Does not mean:“don’t type anything twice”
Chelimsky::Dry
Thursday, November 18, 2010
Chelimsky::Dry
Thursday, November 18, 2010
Chelimsky::Dry
• Every piece of knowledge
Thursday, November 18, 2010
Chelimsky::Dry
• Every piece of knowledge
• must have a
Thursday, November 18, 2010
Chelimsky::Dry
• Every piece of knowledge
• must have a
• single,
Thursday, November 18, 2010
Chelimsky::Dry
• Every piece of knowledge
• must have a
• single,
• unambiguous,
Thursday, November 18, 2010
Chelimsky::Dry
• Every piece of knowledge
• must have a
• single,
• unambiguous,
• authoritative representation
Thursday, ...
Chelimsky::Dry
• Every piece of knowledge
• must have a
• single,
• unambiguous,
• authoritative representation
• within a...
Chelimsky::Dry
Thursday, November 18, 2010
Chelimsky::Dry
• before filters for orthogonal stuff:
Thursday, November 18, 2010
Chelimsky::Dry
• before filters for orthogonal stuff:
• authentication
Thursday, November 18, 2010
Chelimsky::Dry
• before filters for orthogonal stuff:
• authentication
• logging
Thursday, November 18, 2010
Chelimsky::Dry
• before filters for orthogonal stuff:
• authentication
• logging
• not for finding records
Thursday, Novembe...
Katz
• rails3
• short branches (2days)
• change code or tests, not both
• or, refactor up a level
• deprecation isolation ...
Matz
Thursday, November 18, 2010
Matz
• ruby 2.0
Thursday, November 18, 2010
Matz
• ruby 2.0
• by christmas
Thursday, November 18, 2010
Matz
• ruby 2.0
• by christmas
• whatever year
Thursday, November 18, 2010
Matz
• ruby 2.0
• by christmas
• whatever year
• embedded ruby
Thursday, November 18, 2010
opengov
codeforamerica
sunlight fdn
• making gov data openly and freely available
• building apis with mongo db - eric mil...
aaron patterson
@tenderlove
Thursday, November 18, 2010
aaron patterson
@tenderlove
• zomg
Thursday, November 18, 2010
aaron patterson
@tenderlove
• zomg
• rewrote arel
Thursday, November 18, 2010
aaron patterson
@tenderlove
• zomg
• rewrote arel
• superficial vs deep refactoring
Thursday, November 18, 2010
aaron patterson
@tenderlove
• zomg
• rewrote arel
• superficial vs deep refactoring
• 6 weeks
Thursday, November 18, 2010
aaron patterson
@tenderlove
• zomg
• rewrote arel
• superficial vs deep refactoring
• 6 weeks
• working on integ with mongo...
aaron patterson
@tenderlove
does ruby scale?
Thursday, November 18, 2010
aaron patterson
@tenderlove
• benchmark over time
Thursday, November 18, 2010
aaron patterson
@tenderlove
Thursday, November 18, 2010
aaron patterson
@tenderlove
• inject is way slower than hash & a map
• Hash.[@list.map{|val| ... }]
Thursday, November 18,...
aaron patterson
@tenderlove
• inject is way slower than hash & a map
• Hash.[@list.map{|val| ... }]
• class_eval is way fa...
aaron patterson
@tenderlove
• inject is way slower than hash & a map
• Hash.[@list.map{|val| ... }]
• class_eval is way fa...
jake scruggs
• Metric_fu
• The great thing about standards is that
there are so many to choose from
• when to fix, when to ...
polite programmer’s
guide
• testing private methods?
• monkey-patch. evil or not?
• fail if instance_methods.map.... inclu...
Scott Chacon
github
Thursday, November 18, 2010
Scott Chacon
github$ git describe HEAD
Thursday, November 18, 2010
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
Thursday, November 18, 2010
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
Thursday, November 18, 2010
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
Thursday, No...
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
git log --on...
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
git log --on...
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
git log --on...
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
git log --on...
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
git log --on...
Scott Chacon
github$ git describe HEAD
v0.2.4-25-g8a3f93b
$ git describe HEAD@{1.month.ago}
v0.2.4-6-gf51a8ba
git log --on...
DHH
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
DHH
monkey-patching
Thursday, November 18, 2010
DHH
monkey-patching
freedom-patching
Thursday, November 18, 2010
DHH
monkey-patching
freedom-patching
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
DHH
ruby is your friend, not your parents
Thursday, November 18, 2010
DHH
ruby is your friend, not your parents
ruby - guidance
Thursday, November 18, 2010
DHH
ruby is your friend, not your parents
ruby - guidance
java - enforcement
Thursday, November 18, 2010
DHH
ruby is for consenting adults
Thursday, November 18, 2010
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
DHH
BFF
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
DHH
Thursday, November 18, 2010
Resources
• Video: http://confreaks.net/events/
rubyconf2010
• Matz Keynote: http://www.slideshare.net/
yukihiro_matz/ruby...
Resources
• Chelimsky: http://blog.davidchelimsky.net/
wp-content/uploads/2010/11/
duplication.pdf
• online sessions: http...
• git-tips.heroku.com
• Scott Chacon: bit.ly/classygit must-see introduction
• Speaker’s Videos: http://confreaks.net/even...
Upcoming SlideShare
Loading in...5
×

Robb broome rubyconf x presentation for publication

749

Published on

Rubyconf overview

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

  • Be the first to like this

No Downloads
Views
Total Views
749
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Robb broome rubyconf x presentation for publication

  1. 1. Rubyconf X Thursday, November 18, 2010
  2. 2. Thursday, November 18, 2010
  3. 3. Chelimsky::Dry Thursday, November 18, 2010
  4. 4. Chelimsky::Dry • every time you reduce duplication you increase coupling by introducing new dependencies Thursday, November 18, 2010
  5. 5. Chelimsky::Dry • every time you reduce duplication you increase coupling by introducing new dependencies • metaprogram only when you really do not know the conditions Thursday, November 18, 2010
  6. 6. Chelimsky::Dry • every time you reduce duplication you increase coupling by introducing new dependencies • metaprogram only when you really do not know the conditions • DRY.What does it mean? Thursday, November 18, 2010
  7. 7. Chelimsky::Dry Thursday, November 18, 2010
  8. 8. • Does not mean:“don’t type anything twice” Chelimsky::Dry Thursday, November 18, 2010
  9. 9. Chelimsky::Dry Thursday, November 18, 2010
  10. 10. Chelimsky::Dry • Every piece of knowledge Thursday, November 18, 2010
  11. 11. Chelimsky::Dry • Every piece of knowledge • must have a Thursday, November 18, 2010
  12. 12. Chelimsky::Dry • Every piece of knowledge • must have a • single, Thursday, November 18, 2010
  13. 13. Chelimsky::Dry • Every piece of knowledge • must have a • single, • unambiguous, Thursday, November 18, 2010
  14. 14. Chelimsky::Dry • Every piece of knowledge • must have a • single, • unambiguous, • authoritative representation Thursday, November 18, 2010
  15. 15. Chelimsky::Dry • Every piece of knowledge • must have a • single, • unambiguous, • authoritative representation • within a system Thursday, November 18, 2010
  16. 16. Chelimsky::Dry Thursday, November 18, 2010
  17. 17. Chelimsky::Dry • before filters for orthogonal stuff: Thursday, November 18, 2010
  18. 18. Chelimsky::Dry • before filters for orthogonal stuff: • authentication Thursday, November 18, 2010
  19. 19. Chelimsky::Dry • before filters for orthogonal stuff: • authentication • logging Thursday, November 18, 2010
  20. 20. Chelimsky::Dry • before filters for orthogonal stuff: • authentication • logging • not for finding records Thursday, November 18, 2010
  21. 21. Katz • rails3 • short branches (2days) • change code or tests, not both • or, refactor up a level • deprecation isolation (compat module) • check out tests on the depot app Thursday, November 18, 2010
  22. 22. Matz Thursday, November 18, 2010
  23. 23. Matz • ruby 2.0 Thursday, November 18, 2010
  24. 24. Matz • ruby 2.0 • by christmas Thursday, November 18, 2010
  25. 25. Matz • ruby 2.0 • by christmas • whatever year Thursday, November 18, 2010
  26. 26. Matz • ruby 2.0 • by christmas • whatever year • embedded ruby Thursday, November 18, 2010
  27. 27. opengov codeforamerica sunlight fdn • making gov data openly and freely available • building apis with mongo db - eric mill, sunlight foundation / labs • -> json view chrome extension • sections argument , range arguments in url determine what’s returned • different calls each map to dup'd data in the mongo db • each call maps to a whole data structure in mongo • crowdsourcing (guardian example). Needs a framework Thursday, November 18, 2010
  28. 28. aaron patterson @tenderlove Thursday, November 18, 2010
  29. 29. aaron patterson @tenderlove • zomg Thursday, November 18, 2010
  30. 30. aaron patterson @tenderlove • zomg • rewrote arel Thursday, November 18, 2010
  31. 31. aaron patterson @tenderlove • zomg • rewrote arel • superficial vs deep refactoring Thursday, November 18, 2010
  32. 32. aaron patterson @tenderlove • zomg • rewrote arel • superficial vs deep refactoring • 6 weeks Thursday, November 18, 2010
  33. 33. aaron patterson @tenderlove • zomg • rewrote arel • superficial vs deep refactoring • 6 weeks • working on integ with mongo Thursday, November 18, 2010
  34. 34. aaron patterson @tenderlove does ruby scale? Thursday, November 18, 2010
  35. 35. aaron patterson @tenderlove • benchmark over time Thursday, November 18, 2010
  36. 36. aaron patterson @tenderlove Thursday, November 18, 2010
  37. 37. aaron patterson @tenderlove • inject is way slower than hash & a map • Hash.[@list.map{|val| ... }] Thursday, November 18, 2010
  38. 38. aaron patterson @tenderlove • inject is way slower than hash & a map • Hash.[@list.map{|val| ... }] • class_eval is way faster than define_method because dm uses a proc activation Thursday, November 18, 2010
  39. 39. aaron patterson @tenderlove • inject is way slower than hash & a map • Hash.[@list.map{|val| ... }] • class_eval is way faster than define_method because dm uses a proc activation • attr_reader way faster than a method Thursday, November 18, 2010
  40. 40. jake scruggs • Metric_fu • The great thing about standards is that there are so many to choose from • when to fix, when to refactor (flog>60) • high churn objects desire better test cov Thursday, November 18, 2010
  41. 41. polite programmer’s guide • testing private methods? • monkey-patch. evil or not? • fail if instance_methods.map.... include?(:mymethod) • new method v existing • delegate vertically if you own, horizontally if not Thursday, November 18, 2010
  42. 42. Scott Chacon github Thursday, November 18, 2010
  43. 43. Scott Chacon github$ git describe HEAD Thursday, November 18, 2010
  44. 44. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b Thursday, November 18, 2010
  45. 45. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} Thursday, November 18, 2010
  46. 46. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba Thursday, November 18, 2010
  47. 47. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph Thursday, November 18, 2010
  48. 48. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph git bundle create repo.bundle master Thursday, November 18, 2010
  49. 49. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph git bundle create repo.bundle master git clone repo.bundle -b master repo Thursday, November 18, 2010
  50. 50. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph git bundle create repo.bundle master git clone repo.bundle -b master repo git branch --merged Thursday, November 18, 2010
  51. 51. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph git bundle create repo.bundle master git clone repo.bundle -b master repo git branch --merged git branch --no-merged Thursday, November 18, 2010
  52. 52. Scott Chacon github$ git describe HEAD v0.2.4-25-g8a3f93b $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph git bundle create repo.bundle master git clone repo.bundle -b master repo git branch --merged git branch --no-merged git rerere (Reuse Recorded Resolution) Thursday, November 18, 2010
  53. 53. DHH Thursday, November 18, 2010
  54. 54. DHH Thursday, November 18, 2010
  55. 55. DHH Thursday, November 18, 2010
  56. 56. DHH Thursday, November 18, 2010
  57. 57. DHH monkey-patching Thursday, November 18, 2010
  58. 58. DHH monkey-patching freedom-patching Thursday, November 18, 2010
  59. 59. DHH monkey-patching freedom-patching Thursday, November 18, 2010
  60. 60. DHH Thursday, November 18, 2010
  61. 61. DHH ruby is your friend, not your parents Thursday, November 18, 2010
  62. 62. DHH ruby is your friend, not your parents ruby - guidance Thursday, November 18, 2010
  63. 63. DHH ruby is your friend, not your parents ruby - guidance java - enforcement Thursday, November 18, 2010
  64. 64. DHH ruby is for consenting adults Thursday, November 18, 2010
  65. 65. Thursday, November 18, 2010
  66. 66. DHH Thursday, November 18, 2010
  67. 67. DHH BFF Thursday, November 18, 2010
  68. 68. DHH Thursday, November 18, 2010
  69. 69. DHH Thursday, November 18, 2010
  70. 70. Resources • Video: http://confreaks.net/events/ rubyconf2010 • Matz Keynote: http://www.slideshare.net/ yukihiro_matz/rubyconf-2010-keynote-by- matz • Overall: http://zero2railshero.tumblr.com/ post/1592771138/rubyconf-new-orleans- awesome-twosome Thursday, November 18, 2010
  71. 71. Resources • Chelimsky: http://blog.davidchelimsky.net/ wp-content/uploads/2010/11/ duplication.pdf • online sessions: http:// rubyconfirmate.heroku.com/ conference_sessions • opengov: http://sunlightlabs.com/ Thursday, November 18, 2010
  72. 72. • git-tips.heroku.com • Scott Chacon: bit.ly/classygit must-see introduction • Speaker’s Videos: http://confreaks.net/events/ rubyconf2010 up in a week or so • dave thomas: @pragdave keynote: http:// www.slideshare.net/prqgdave/rubyconfx- keynote • james edward gray II @jeg2: http:// www.slideshare.net/JamesEdwardGrayII/unblocked • poisioning rubinius: @brixen http://slidesha.re/ cLdpsc Thursday, November 18, 2010
  1. A particular slide catching your eye?

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

×