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

OpenSource in BB10 Jam

OpenSource in BB10 Jam

OpenSource in BB10 Jam

Tweet

Other Decks in Programming

Transcript

  1. All you need to know about Open Source… So you

    can use it in your BlackBerry 10 Apps DEV109 Eduardo Pelegri-Llopart Roberto Speranza May 1-3, 2012
  2. Agenda Ÿ  Introductions Ÿ  What is Open Source Ÿ  Open

    Source Projects Ÿ  Applications and App World Ÿ  Demo Ÿ  For more Information Ÿ  Q & A @pelegri– 5
  3. Intro: Eduardo & Roberto Eduardo: Sr Director, Open Source @pelegri

    „  Previously: Sun and Oracle „  IDEs, Java, GlassFish, Hudson (now Jenkins)… Roberto: Application Development Consultant, Dev Rel @RSSessantotto „  Previously: Software and Web Consultant „  Graphical UI, Web Design, 2D / 3D Graphics… @pelegri - 7
  4. Intro: Eduardo & Roberto Eduardo: Sr Director, Open Source -

    @pelegri „  Previously: Sun and Oracle „  IDEs, Java, GlassFish, Hudson (now Jenkins)… Roberto: Application Development Consultant, Dev Rel „  Previously: Software and Web Consultant „  Graphical UI, Web Design, 2D / 3D Graphics… @pelegri - 8 None of us are Lawyers! If you need legal advice, Talk with a lawyer
  5. Goals of this Session Ÿ  What is Open Source (OSS)

    Ÿ  How OSS Helps You Create Apps for App World Ÿ  Different Roles „  User of OSS Components „  Contributor to an OSS Project „  Lead of an OSS Project „  Research In Motion Ÿ  You may play multiple roles at the same time @pelegri - 9
  6. Goals of this Session Ÿ  What is Open Source (OSS)

    Ÿ  How OSS Helps Create Apps for App World Ÿ  Understand Better How OSS Works Ÿ  Different Roles „  User of OSS Components „  Contributor to an OSS Project „  Lead of an OSS Project „  Research In Motion Ÿ  You may play multiple roles at the same time @pelegri - 10 User of OSS Components Contributor to an OSS Project Research in Motion
  7. What is Open Source? Ÿ  Strictly, just: “Source is available

    under an Open Source License” Ÿ  Reality is more complex and, in addition to license, your interaction with OSS depends on details like: „  Copyright + Governance + Trademarks + Tooling … @pelegri - 12
  8. Promises of OSS Ÿ  Agile, Cost-Effective Development „  Reusable and

    Portable Components „  Availability of Expert Developers „  Applicability of Latest Tools „  Bug Fixes Incorporated Promptly Ÿ  Efficient Product Cycle „  Simpler Interaction w/ Customers, Partners „  Better Communication Across Groups „  Improved Adoption @pelegri - 13
  9. Open Source Principles Copyright – Who Owns the IP Ÿ 

    Copyright Owner can change license Ÿ  But you can fork! Ÿ  One or many Copyright owners Ÿ  Some OSS projects require Contribution Agreement Ÿ  Assert authorship of contributions / licenses patents Ÿ  Apache uses the ICLA and CCLA – RIM does too @pelegri – 16
  10. Open Source Principles Copyright – Who Owns the IP License

    – What Can be done with the IP Ÿ  BSD, MIT – “Don’t sue me” Ÿ  ASL2 – Adds Patent Rights. Ÿ  GPL, GPLv2 – Viral, Original FSF licenses Ÿ  LGPLv2.1 – Limited/Lesser/Library Ÿ  GPLv3 – Strong patent rights and tool chain requirements @pelegri – 17
  11. Open Source Principles Copyright – Who Owns the IP License

    – What Can be done with the IP Governance – How the IP changes Ÿ  Who and How on decisions of „  Features, Releases, Names, Access to Source Repositories… „  E.g. “Can I upstream my change?” Ÿ  Some Models „  BDFL - Benevolent Dictator For Life, Meritocracy, Corporate @pelegri – 18
  12. Ÿ  Git/GitHub encourages forks/merge (rails >3K forks!) Governance,  Git  and

     GitHub   @pelegri - 19 Repo Repo 1fork local repo 6merge 5push 2clone 3pull update 4merge This impacts project governance
  13. RIM using Open Source to help You Sep 29, 2010

    Ÿ  Launched WebWorks Ÿ  1 repo at GitHub @pelegri – 21 May 2, 2012 Ÿ  56 repos at GitHub „  Samples, Tools, Runtimes… Ÿ  Participating in „  Webkit, Qt Project, Apache Cordova Ÿ  More Upstreaming of changes
  14. Open Source Projects Ÿ  Samples - HTML5, NDK, TunnelTilt… Ÿ 

    HTML5 - WebWorks, Alice, bbUI.js, Apache Cordova, Webkit… Ÿ  Native – Cascades, GamePlay, Scoreloop, Qt… Ÿ  Tools – Ripple… Ÿ  Ports - Cocos2d-x, SDL… Ÿ  Frameworks - Alice, bbUI.js, GamePlay… Ÿ  Showcases - Quake3, DosBox… Ÿ  External Communities – Qt Project, Webkit, Apache Cordova @pelegri – 22
  15. New this week Ÿ  New Samples: „  Cascades-Samples, Scoreloop-Samples „ 

    PictureWall, jQuery-Mobile-Samples Ÿ  New Significant Updates „  bbUI.js, gameplay Ÿ  New Ports „  ZXing and CppUnit Ÿ  Ongoing development on many repos Ÿ  New Community Wiki 23 Big announcements at DevBlog.blackberry.com All updates at OpenBBNews.Wordpress.com
  16. GitHub  and  RIM   Ÿ  Main Entry Points – via

    Pages „  blackberry.github.com – Dev that wants to Use a OSS component „  github.com/blackberry – Dev that wants to Contribute… Ÿ  Several Organizations Ÿ  Wikis, Issue Tracker, Milestones Ÿ  Some demos are hosted at GitHub! Ÿ  New Community Wiki (beta) @pelegri - 24
  17. “Default” Structure of Projects Ÿ  License – ASL 2 Ÿ 

    Copyright – RIM „  Contribution Agreement Adapted from ASF’s Ÿ  Governance - RIM assigns the leader Ÿ  Repo hosted at github.com in BlackBerry Org Ÿ  Possibly extra staging repos + individual repos „  github.com/blackberry-webworks/Webworks-API-Docs @pelegri– 25
  18. Samples Ÿ  Samples are Open Source „  Learn, Borrow, Enhance

    „  Contribute back – if you want! Ÿ  Samples out of the SDKs Ÿ  KB samples to GitHub „  Clear, well-known, licenses „  Easier to update „  Delivery Async of SDKs @pelegri– 26
  19. Many Sample Repos Ÿ  WebWorks-Samples Ÿ  WebGL-Samples (tunneltilt) Ÿ  NDK-Samples

    Ÿ  Cascades-Samples Ÿ  Cascades-Community-Samples Ÿ  jQuery-Mobile-Samples Ÿ  Scoreloop-Samples Ÿ  Samples-for-Java Ÿ  Samples-for-AIR Ÿ  PictureWall Ÿ  BWS-Samples Ÿ  Gameplay @pelegri– 27 Linked from Micro-Sites Linked from Community Wiki Linked from Organization page
  20. HTML5 Projects Ÿ  All WebWorks development is done at GitHub

    „  Runtimes „  Tools (Ripple) „  Frameworks / Libraries (Alice, bbUI.js) „  Documentation „  Future APIs „  Samples 29
  21. HTML5 Projects - Non-RIM Led Ÿ  Apache Cordova „  Aligned

    with WebWorks Ÿ  Webkit.org „  TorchMobile early participant „  We are back in active participation Ÿ  jQuery Mobile, three.js… @pelegri - 30
  22. Native Projects Ÿ  Many Samples „  NDK-Samples „  Scoreloop-Samples „ 

    Cascades-Samples, Cascades-Community-Samples,… Ÿ  Gameplay Ÿ  Ported Components „  Upstreaming Ÿ  Showcases 32
  23. Gameplay Ÿ  3-D cross-platform game platform for indie devs Ÿ 

    Release 1.2 adds Multi-Platform Support „  PlayBook 2.0 and BlackBerry 10 ready „  Apple iOS, Google Android „  Microsoft Windows „  Apple MacOS X Ÿ  Community Participation „  Yours Encouraged! 33
  24. Ported Components Ÿ  Native C/C++ packages ported to PlayBook /

    BB10 Ÿ  Examples include „  Audio: OpenAL, ALUT, SDL, Ogg Vorbis „  Physics Engines: Box2D, Bullet Physics „  Game Engines: Cocos2D-X, gameplay „  General Purpose: Boost (almost there) „  Scripting: Lua, SpiderMonkey, Erlang, v8 „  Libraries: PCRE, TouchControlOverlay „  Computer Vision: OpenCV „  Others: CouchDB, GetOpt, JSON_parser, JsonCpp… 34
  25. Showcases Ÿ  Some ports showcase the platform, or show how

    to port some features „  Quake3, OpenTTD, The Battle of Wesnoth, DosBox 36
  26. Key External Participations Ÿ  HTML5 – Webkit.org Ÿ  HTML5 –

    Apache Cordova Ÿ  Native – Qt Project „  Ports to BlackBerry PlayBook and BB 10 devices „  General contributions to Community 37
  27. BlackBerry Community Wiki Ÿ  New Initiative (beta) Ÿ  GitHub Pages

    Ÿ  Community Driven „  Participation Encouraged Ÿ  Pages point to “more info” Ÿ  Help us make it work for you! 38 http://blackberry.github.com/Community/
  28. App World Vendor Agreement Updated March, 29th, 2012 Section 10:

    Vendor Representations, Warranties and Covenants Vendor hereby represents, warrants and covenants to RIM that: (a)… (b)… (c)… 41 http://us.blackberry.com/legal/BlackBerry_App_World_Vendor_Agreement_032912cl.pdf Most relevant to us is section 10(k)
  29. App World Vendor Agreement 10(k) (k) Applications shall not contain,

    or be derived in any manner (in whole or in part), from any software, including without limitation open source software, that would require that any RIM or third party proprietary software or information be: (i) disclosed or distributed in source code form; (ii) licensed for the purpose of permitting modifications or derivative works; (iii) reproduced and/or redistributed at no or minimal charge; (iv) permitted to be reverse engineered; or (v) used only for non-commercial purposes; 42 http://us.blackberry.com/legal/BlackBerry_App_World_Vendor_Agreement_032912cl.pdf
  30. Multiple Terms Ÿ  Reminder: You must comply with the terms

    of both the Vendor Agreement and any applicable open source licenses. Ÿ  If the terms are incompatible, then the component with the conflicting license terms may not be used. 43
  31. Open Source Licenses Ÿ  BSD, MIT, ASL2 (*) „  License

    needs to be “included”. Make it easy for users to find license from App „  ASL2 requires “NOTICE” file to be kept, if present Ÿ  (L)GPLv2, v2.1 (*) „  Sources of component need to be made available. Make it easy for users to find sources of application from App „  LGPL components have to be used as a library „  Requirements on these components using these licenses depend on context 44 (*) these are required but not necessarily sufficient
  32. Open Source Licenses Ÿ  BSD, MIT, ASL2 (*) „  License

    needs to be “included”. Make it easy for users to find license from App „  ASL2 requires “NOTICE” file to be kept, if present Ÿ  (L)GPLv2, v2.1 (*) „  Sources of component need to be made available. Make it easy for users to find sources of application from App „  LGPL components have to be used as a library „  Requirements on these components using these licenses depend on context 46 None of us are Lawyers! If you need legal advice, Talk with a lawyer
  33. Two Way Communications Ÿ  Links „  blackberry.github.com and github.com/blackberry „ 

    OSS General Forum at supportforums.blackberry.com „  blackberry.github.com/Community/ - wiki Ÿ  Blogs: „  DevBlog.blackberry.com – official, covers all key events „  OpenBBNews.wordpress.com – Open Source Community news Ÿ  Twitter - @blackberrydev (@pelegri) Ÿ  And see you tomorrow at the Unconference! @pelegri - 49