• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Robb broome rubyconf x presentation for publication

  • 712 views
Uploaded on

Rubyconf overview

Rubyconf overview

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
712
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
1
Comments
0
Likes
0

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. Rubyconf X Thursday, November 18, 2010
  • 2. Thursday, November 18, 2010
  • 3. Chelimsky::Dry Thursday, November 18, 2010
  • 4. Chelimsky::Dry • every time you reduce duplication you increase coupling by introducing new dependencies Thursday, November 18, 2010
  • 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. 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. Chelimsky::Dry Thursday, November 18, 2010
  • 8. Chelimsky::Dry • Does not mean: “don’t type anything twice” Thursday, November 18, 2010
  • 9. Chelimsky::Dry Thursday, November 18, 2010
  • 10. Chelimsky::Dry • Every piece of knowledge Thursday, November 18, 2010
  • 11. Chelimsky::Dry • Every piece of knowledge • must have a Thursday, November 18, 2010
  • 12. Chelimsky::Dry • Every piece of knowledge • must have a • single, Thursday, November 18, 2010
  • 13. Chelimsky::Dry • Every piece of knowledge • must have a • single, • unambiguous, Thursday, November 18, 2010
  • 14. Chelimsky::Dry • Every piece of knowledge • must have a • single, • unambiguous, • authoritative representation Thursday, November 18, 2010
  • 15. Chelimsky::Dry • Every piece of knowledge • must have a • single, • unambiguous, • authoritative representation • within a system Thursday, November 18, 2010
  • 16. Chelimsky::Dry Thursday, November 18, 2010
  • 17. Chelimsky::Dry • before filters for orthogonal stuff: Thursday, November 18, 2010
  • 18. Chelimsky::Dry • before filters for orthogonal stuff: • authentication Thursday, November 18, 2010
  • 19. Chelimsky::Dry • before filters for orthogonal stuff: • authentication • logging Thursday, November 18, 2010
  • 20. Chelimsky::Dry • before filters for orthogonal stuff: • authentication • logging • not for finding records Thursday, November 18, 2010
  • 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. Matz Thursday, November 18, 2010
  • 23. Matz • ruby 2.0 Thursday, November 18, 2010
  • 24. Matz • ruby 2.0 • by christmas Thursday, November 18, 2010
  • 25. Matz • ruby 2.0 • by christmas • whatever year Thursday, November 18, 2010
  • 26. Matz • ruby 2.0 • by christmas • whatever year • embedded ruby Thursday, November 18, 2010
  • 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. aaron patterson @tenderlove Thursday, November 18, 2010
  • 29. aaron patterson @tenderlove • zomg Thursday, November 18, 2010
  • 30. aaron patterson @tenderlove • zomg • rewrote arel Thursday, November 18, 2010
  • 31. aaron patterson @tenderlove • zomg • rewrote arel • superficial vs deep refactoring Thursday, November 18, 2010
  • 32. aaron patterson @tenderlove • zomg • rewrote arel • superficial vs deep refactoring • 6 weeks Thursday, November 18, 2010
  • 33. aaron patterson @tenderlove • zomg • rewrote arel • superficial vs deep refactoring • 6 weeks • working on integ with mongo Thursday, November 18, 2010
  • 34. aaron patterson @tenderlove does ruby scale? Thursday, November 18, 2010
  • 35. aaron patterson @tenderlove • benchmark over time Thursday, November 18, 2010
  • 36. aaron patterson @tenderlove Thursday, November 18, 2010
  • 37. aaron patterson @tenderlove • inject is way slower than hash & a map • Hash.[@list.map{|val| ... }] Thursday, November 18, 2010
  • 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. 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. 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. 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. Scott Chacon github Thursday, November 18, 2010
  • 43. Scott Chacon $ git describe HEAD github Thursday, November 18, 2010
  • 44. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github Thursday, November 18, 2010
  • 45. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ git describe HEAD@{1.month.ago} Thursday, November 18, 2010
  • 46. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba Thursday, November 18, 2010
  • 47. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ git describe HEAD@{1.month.ago} v0.2.4-6-gf51a8ba git log --oneline --decorate --graph Thursday, November 18, 2010
  • 48. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ 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. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ 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. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ 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. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ 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. Scott Chacon $ git describe HEAD v0.2.4-25-g8a3f93b github $ 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. DHH Thursday, November 18, 2010
  • 54. DHH Thursday, November 18, 2010
  • 55. DHH Thursday, November 18, 2010
  • 56. DHH Thursday, November 18, 2010
  • 57. DHH monkey-patching Thursday, November 18, 2010
  • 58. DHH monkey-patching freedom-patching Thursday, November 18, 2010
  • 59. DHH monkey-patching freedom-patching Thursday, November 18, 2010
  • 60. DHH Thursday, November 18, 2010
  • 61. DHH ruby is your friend, not your parents Thursday, November 18, 2010
  • 62. DHH ruby is your friend, not your parents ruby - guidance Thursday, November 18, 2010
  • 63. DHH ruby is your friend, not your parents ruby - guidance java - enforcement Thursday, November 18, 2010
  • 64. DHH ruby is for consenting adults Thursday, November 18, 2010
  • 65. Thursday, November 18, 2010
  • 66. DHH Thursday, November 18, 2010
  • 67. DHH BFF Thursday, November 18, 2010
  • 68. DHH Thursday, November 18, 2010
  • 69. DHH Thursday, November 18, 2010
  • 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. 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. • 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