crap is gold

124
Balancing Sharing And Selfishness The CPAN Way

Upload: michael-schwern

Post on 01-Nov-2014

4.359 views

Category:

Technology


5 download

DESCRIPTION

Rather than being a \"meritocracy\", CPAN is a \"used-ocracy\". Not the \"best\" software, but the software that users used.

TRANSCRIPT

  • 1. Balancing Sharing And Selshness The CPAN Way
  • 2. or
  • 3. The Used-ocracy
  • 4. or
  • 5. Crap Is Gold
  • 6. Hi I'm Michael Schwern I went to CMU I failed.
  • 7. Perl
  • 8. Perl is part of Unix
  • 9. Perl has to work!
  • 10. Comprehensive Perl Archive Network
  • 11. CPAN
  • 12. CPAN is half of Perl
  • 13. CPAN breaks, Perl breaks
  • 14. CPAN has to work!
  • 15. CPAN is 90% crap 90% of everything is crap (present company excluded) That's ok because ideally you never nd it And nobody uses it (for long)
  • 16. Only 10% gets used That 10% is really good
  • 17. Isn't that inefcient? Yes... ...but maybe it's the least inefficient in the long run
  • 18. Oslo QA Hackathon Lots of arguments and productivity Lots of things that have been festering for years resolved
  • 19. Improving CPAN Improving Perl testing
  • 20. Why Us? Why this bunch of people? Why not somebody else?
  • 21. Testing experts? Nope
  • 22. Fancy degrees? Nope
  • 23. Big companies? Nope
  • 24. Why Us? Why this bunch of people? Why not somebody else?
  • 25. We do
  • 26. People use People use our stuff
  • 27. Selected by use
  • 28. Merit-ocracy? We're not there because we wrote the quot;bestquot; thing What is the quot;bestquot;? How do you select what is the quot;bestquot;?
  • 29. Do-ocracy? We're not there just because we do the work. 90% of CPAN is crap They did, but they're not selected.
  • 30. Used-ocracy We're there because our stuff gets used. That's it Even if it's internals are crap, it's useful
  • 31. Selected by use
  • 32. Not by poll
  • 33. Not by vote
  • 34. Not by asking
  • 35. Not by what people want
  • 36. By what people need Not just what they think or say they need But by what they actually need
  • 37. Use illustrates need
  • 38. Use is measurable Clearly measurable Downloads, phone homes, quot;popularity contestquot; Mailing list activity, robust communities Forks, patches...
  • 39. Select By Use A healthy system selects by use
  • 40. CPAN is a Used-ocracy The users select what is important.
  • 41. Use is evolutionary
  • 42. Pave the cow paths We were in Oslo to pave the cow paths
  • 43. Pave the wagon trails
  • 44. Descriptive Describing More formally Because the community had grown too large for conventions Word-of-mouth only goes so far Spread best practice
  • 45. English dictionaries are primarily descriptive
  • 46. Proscriptive Every time we proscribed something Came up with our own best practices Strayed off the cow paths It all went to hell We didn't have enough information Caused implementation problems
  • 47. Proscribe the potentially bad
  • 48. Proscribe the potentially good also proscribe the good
  • 49. Proscribing change Nobody will ever want to do it this way Proscription backs you into a corner Proscription bets everything
  • 50. My prediction for the future?
  • 51. YOU'RE WRONG I'll win So many people make so many predictions over so much time Odds are they're wrong
  • 52. Be Descriptive Describe only as much as you need Leave the rest open as a user playground Even the bad things They provide wedges to do amazing things years later
  • 53. Descriptive embraces change The world will change Technologies change People change Safe bet Have a system that works with change
  • 54. Can't predict change In the long term Who could have predicted the web? NCSA Mosaic 15 years ago in 1993 So you can't control it
  • 55. NCSA Mosaic is 15 years old (The stable releases) That was the beginning of the modern web. The rst graphical web browser.
  • 56. Perl 5 is 15 years old Developed before the web took off
  • 57. Perl is 20 years old
  • 58. CPAN is 12 years old And for much of that time it wasn't intensely used. Not like it is now.
  • 59. Perl predated the web Perl did not predict the web Perl became THE web language
  • 60. Linux is 17 years old
  • 61. Unix predated it Unix became THE web server Who had trouble?
  • 62. Microsoft w/Win 95 and 98 And Windows 95 came *after* Mosaic
  • 63. Controlling change is death or at least really painful in Microsoft's case
  • 64. Descriptive embraces chaos
  • 65. 90% is crap Taking a big crap is healthy
  • 66. One man's crap Is another man's gold
  • 67. App::Asciio For example
  • 68. App::Asciio - Plain ASCII diagram | | | | | | | | | | | | | | | | v | v | v | v v v ______ _____ / _ __ __/ __` L ____ ___ /_/_ / -----> __ /',__ /'___/ / -----> / /__, `/ __/ _ _ _/____/ ____ _ _ _____ /_//_//___/ /____/ /_//_//_____/ | | | | | | | | | | | v | | | v | | | v | | | v | | v v v (_/) (O.o) ASCII world domination is near! (> ....................................... | | .....'----------'........................................................ | | ......................................................................... | | ...................----------------..---------------..................... | | ..................| ASCII > || thin_box |.................... | | ..................| Rules line > || text |.................... | | ..................| Load || wirl_arrow |.................... | grid------------->..........| Save || arrow |.----------......... | | ..................| Export > || box > || star_box |........ | | ..................'----------------'| Rulers > |'----------'........ | | ...........................^........| Misc > |.................... | | ...........................|........| T_star |.................... | | ...........................|........'---------------'.................... | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | | ...........................|............................................. | '----------------------------|----------------------------------------------' | context menu
  • 70. .---. .---. .---. .---. .---. .---. OS API '---' '---' '---' '---' '---' '---' | | | | | | v v | v | v .------------. | .-----------. | .-----. | Filesystem | | | Scheduler | | | MMU | '------------' | '-----------' | '-----' | | | | v | | v .----. | | .---------. | IO |