Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Helping Open Source Software

Helping Open Source Software

Avatar for Bryce Kahle

Bryce Kahle

March 20, 2014

Other Decks in Technology

Transcript

  1. visibility == quality Oft-cited benefit of open source Quality is

    not inherent to visibility To quantify this, I took a proverb and tweaked it
  2. If source code appears on the internet and no one

    is around to review it, does it have bugs?
  3. static OSStatus SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams, uint8_t *signature,

    UInt16 signatureLen) { OSStatus err; ... ! if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) goto fail; if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) goto fail;! ! ! goto fail; if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0) goto fail; ... ! fail: SSLFreeBuffer(&signedHashes); SSLFreeBuffer(&hashCtx); return err; } Public Apple source code Affected millions of devices. Invalidated trust of lots of software
  4. visibility == quality eyeballs test cases usage docs What good

    is it if nobody understands how to use it?
  5. Community Developer Where community comes in Open source works because

    of this cycle. By nature, JS has lots of open source libraries Most don’t close the loop. Intimidation, not desire !
  6. < % 3 < 3% of Github users opened a

    PR in 2013 Turn that into open source love
  7. No chnagechange is too small Single character typos can be

    the difference between success and failure
  8. CONTRIBUTING One thing you have to look at first Coding

    style/CLA Fastest way to get your PR rejected
  9. Documentation Easiest way to help Can do everything in the

    browser: if using Markdown on Github Auto-fork and PR
  10. Choose an existing bug or feature Talk to authors if

    possible: IRC/Mailing list Start small Authors sometimes tag issues as good ‘first bugs’
  11. So you want to fix a bug? Decided to be

    heroic and contribute some code
  12. Write a test case first So you want to fix

    a bug? Solid reproduction steps if not Don’t have to solve bug, test case will help author Helps prevent regression in the future
  13. UI testing Load testing UI/UX design DB design Moral support

    Beer / $ / B⃦ Website Promotion Security audit User support Benchmarking etc. Infinite number of ways to help
  14. Give Back Not about guilt Raising the quality of the

    entire community All want better tools