IBM Open Source Software Competition Mark Wallace, Software Architect, IBM Dublin Software Lab
Agenda <ul><li>Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary </li></u...
Free Software versus Open Source <ul><li>Free software is a matter of liberty not price. You should think of “free” as in ...
What is Open Source <ul><li>Open Source Initiative (OSI) maintains a formal definition of Open Source Software (OSS) recog...
Open Source Development Methodology <ul><li>Virtual community of programmers, leveraging the Internet for communication, w...
IBM and Open Source <ul><li>IBM has contributed many projects to the open source community </li></ul><ul><ul><li>Eclipse P...
IBM and Open Source <ul><li>IBM uses open source in its products </li></ul><ul><ul><li>Building products on top of open so...
Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary ...
Java Tooling <ul><li>From  www.eclipse.org  . . .  </li></ul><ul><ul><li>“ Eclipse is an open source community whose proje...
Eclipse Project Aims <ul><li>Provide open platform for application development tools </li></ul><ul><ul><li>Run on a wide r...
Why develop plugins that extend Eclipse ? <ul><li>Infrastructure </li></ul><ul><ul><li>You get a workbench created for fre...
Java Perspective <ul><li>Java-centric view of files in Java projects </li></ul><ul><ul><li>Java elements meaningful for Ja...
Java Editor <ul><li>Lots of useful features such as . . . . </li></ul><ul><li>Method completion in Java editor </li></ul>L...
Top 10 Tips for Eclipse Users <ul><li>Use Code Assist </li></ul><ul><ul><li>Just press the code assist key combination (by...
Top 10 Tips for Eclipse Users <ul><li>Configure Eclipse To Use a JDK, not a JRE </li></ul><ul><ul><li>Go to Window -> Pref...
Top 10 Tips for Eclipse Users <ul><li>Know the Keyboard Shortcuts </li></ul><ul><ul><li>ctrl-shift-o: organize imports </l...
Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary ...
New Projects <ul><li>AJAX </li></ul><ul><ul><li>OpenAjax –  http:// www.openajax.org </li></ul></ul><ul><ul><li>DOJO –  ht...
New Projects <ul><li>Mozilla  </li></ul><ul><ul><li>XULRunner - UI “embedded browser” used widely –  http:// developer.moz...
Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary ...
IBM Open Source Software Competition <ul><li>The competition is based on fourth year CS projects in each university </li><...
Resources <ul><li>Articles, tutorials, presentations on Eclipse RCP </li></ul><ul><ul><li>http://www.eclipse.org/rcp </li>...
IBM Academic Initiative
Developer Works
Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary ...
Questions
Upcoming SlideShare
Loading in …5
×

Powerpoint Presentation

552 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
552
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • OSS = Software freely available in source-code form By convention (enforced by community usage), this term means OSD-compliant software -- i.e., software whose distribution fully complies with the concepts embodied in the Open Source Definition (see next chart) Often downloadable for free over the Internet or available on CD-ROM at nominal cost Often created and maintained by a collaborative, virtual community on the Internet Anyone can copy, modify and redistribute the source code without paying royalties or fees OSS *is not* Public Domain Software (frequent misconception) Public Domain: author has given up copyright, no restrictions on use of code OSS: author retains copyright in software and can restrict terms of redistribution through terms of license OSS *is not* freeware, which is necessarily distributed without cost but usually without source code Free Redistribution: license cannot require royalties and cannot prevent anyone from selling or giving away the code as a component of an aggregate distribution Source Code: source code must be licensed with the program, or must be made available for no more than a reasonable reproduction cost Derivative Works: license must allow modifications and derivative works and must allow them to be distributed under the same terms as the original software license Integrity of The Author&apos;s Source Code: license can restrict source code from being distributed in modified form only if it allows the distribution of &amp;quot;patch files&amp;quot; No Discrimination: license must not discriminate against any person or group No Discrimination Against Fields of Endeavor: license may not prohibit using the program in any field of endeavor Distribution of License: rights attached to program must apply to all who receive it under the license without the need for execution of any additional license License Must Not Be Specific to a Product: rights attached to program cannot require that the program be part of any particular software distribution License Must Not Restrict Other Software: license may not place restrictions on any other software that is distributed along with the licensed OSS License Must Be Technology Neutral: license may not require a particular technology or interface style
  • OSS = Software freely available in source-code form By convention (enforced by community usage), this term means OSD-compliant software -- i.e., software whose distribution fully complies with the concepts embodied in the Open Source Definition (see next chart) Often downloadable for free over the Internet or available on CD-ROM at nominal cost Often created and maintained by a collaborative, virtual community on the Internet Anyone can copy, modify and redistribute the source code without paying royalties or fees OSS *is not* Public Domain Software (frequent misconception) Public Domain: author has given up copyright, no restrictions on use of code OSS: author retains copyright in software and can restrict terms of redistribution through terms of license OSS *is not* freeware, which is necessarily distributed without cost but usually without source code Free Redistribution: license cannot require royalties and cannot prevent anyone from selling or giving away the code as a component of an aggregate distribution Source Code: source code must be licensed with the program, or must be made available for no more than a reasonable reproduction cost Derivative Works: license must allow modifications and derivative works and must allow them to be distributed under the same terms as the original software license Integrity of The Author&apos;s Source Code: license can restrict source code from being distributed in modified form only if it allows the distribution of &amp;quot;patch files&amp;quot; No Discrimination: license must not discriminate against any person or group No Discrimination Against Fields of Endeavor: license may not prohibit using the program in any field of endeavor Distribution of License: rights attached to program must apply to all who receive it under the license without the need for execution of any additional license License Must Not Be Specific to a Product: rights attached to program cannot require that the program be part of any particular software distribution License Must Not Restrict Other Software: license may not place restrictions on any other software that is distributed along with the licensed OSS License Must Be Technology Neutral: license may not require a particular technology or interface style
  • *** UPDATE THIS FOR ANY NEW &amp; COOL EFFORTS FROM IBM DURING THE YEAR *** Chicago—Nov. 29, 2001–Borland, IBM, Merant, QNX Software Systems, Rational Software, RedHat, SuSE, and TogetherSoft today announced the formation of Eclipse.org, an open consortium of providers of development tools that manages the Eclipse Platform, which is being made available in open source under the Common Public License1. These companies, each of which plans to release Eclipse Platform compatible product offerings, form the initial Eclipse.org board of directors. The bylaws and operating principles of the organization are published at http:// www.eclipse.org . At LinuxWorld in San Francisco, IBM® announced that it was releasing Cloudscape ™, a fully relational Java™database as open source to the Apache Software Foundation, which has established it as an incubator project under the name &amp;quot;Derby.&amp;quot; ARMONK, N.Y., January 11, 2005 - IBM today pledged open access to key innovations  covered by 500 IBM software patents to individuals and groups working on open source software. IBM believes this is the largest pledge ever of patents of any kind and represents a major shift in the way IBM manages and deploys its intellectual property (IP) portfolio.
  • [Contains animated elements]
  • Powerpoint Presentation

    1. 1. IBM Open Source Software Competition Mark Wallace, Software Architect, IBM Dublin Software Lab
    2. 2. Agenda <ul><li>Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary </li></ul><ul><li>Questions </li></ul>
    3. 3. Free Software versus Open Source <ul><li>Free software is a matter of liberty not price. You should think of “free” as in “free speech”, not as in “free beer”. ( http://www.fsf.org/ ) </li></ul><ul><li>Perceived drawbacks to Free Software </li></ul><ul><ul><li>Confusion as to it’s definition </li></ul></ul><ul><ul><ul><li>Googling for free software returns many different things </li></ul></ul></ul><ul><ul><ul><li>http://www.fsf.org/licensing/essays/free-sw.html </li></ul></ul></ul><ul><ul><li>Licensing </li></ul></ul><ul><ul><ul><li>“ Copy left” requirement </li></ul></ul></ul><ul><ul><li>Lack of quality </li></ul></ul><ul><ul><ul><li>Unknown pedigree </li></ul></ul></ul><ul><ul><ul><li>Scalability, serviceability, reliability, localization, … </li></ul></ul></ul><ul><ul><ul><li>Largely unfounded </li></ul></ul></ul><ul><ul><li>Not attractive to commercial enterprises </li></ul></ul>“ Open source is a development methodology; free software is a social movement”
    4. 4. What is Open Source <ul><li>Open Source Initiative (OSI) maintains a formal definition of Open Source Software (OSS) recognized by the open source community. </li></ul><ul><li>OSI has a web site at: http://www.opensource.org </li></ul><ul><li>Open Source Definition current criteria (paraphrased): </li></ul><ul><ul><li>Free Redistribution </li></ul></ul><ul><ul><li>Source Code </li></ul></ul><ul><ul><li>Derivative Works </li></ul></ul><ul><ul><li>Integrity of The Author's Source Code </li></ul></ul><ul><ul><li>No Discrimination </li></ul></ul><ul><ul><li>No Discrimination Against Fields of Endeavor </li></ul></ul><ul><ul><li>Distribution of License </li></ul></ul><ul><ul><li>License Must Not Be Specific to a Product </li></ul></ul><ul><ul><li>License Must Not Restrict Other Software </li></ul></ul><ul><ul><li>License Must Be Technology Neutral </li></ul></ul>The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.
    5. 5. Open Source Development Methodology <ul><li>Virtual community of programmers, leveraging the Internet for communication, who create / debug / maintain / evolve a source code base </li></ul><ul><li>OSS projects often self-organizing: </li></ul><ul><li>Someone determines a need and communicates that need to others on the Internet </li></ul><ul><li>If the project generates interest, one or more programmers begin writing code </li></ul><ul><li>Someone takes a leadership role and begins to map out a project road map </li></ul><ul><li>Interested programmers join the project to contribute new code or fine-tune existing code </li></ul><ul><li>A network of participants, linked via the Internet, forms </li></ul><ul><li>Tiered participation levels emerge </li></ul>
    6. 6. IBM and Open Source <ul><li>IBM has contributed many projects to the open source community </li></ul><ul><ul><li>Eclipse Project: http://www.eclipse.org </li></ul></ul><ul><ul><ul><li>Project dedicated to providing a robust, full-featured, commercial-quality, industry platform for the development of highly integrated tools </li></ul></ul></ul><ul><ul><li>Apache Derby: http://db.apache.org/derby </li></ul></ul><ul><ul><ul><li>Database management system developed by the Apache Software Foundation </li></ul></ul></ul><ul><ul><li>Linux Technology Center (LTC): http:// www.ibm.com/linux </li></ul></ul><ul><ul><ul><li>Work towards Enterprise enablement of the Linux OS through the development and contribution of technology, utilities, tools and code </li></ul></ul></ul><ul><li>Other contributions </li></ul><ul><ul><li>IBM Pledges 500 U.S. Patents To Open Source In Support Of Innovation And Open Standards </li></ul></ul>
    7. 7. IBM and Open Source <ul><li>IBM uses open source in its products </li></ul><ul><ul><li>Building products on top of open source projects e.g. Rational Application Developer </li></ul></ul><ul><ul><li>Apache webserver to support and bundle with its WebSphere suite </li></ul></ul><ul><li>IBM promotes open source development </li></ul><ul><ul><li>Externally </li></ul></ul><ul><ul><ul><li>AlphaWorks: http://alphaworks.ibm.com </li></ul></ul></ul><ul><ul><ul><li>DeveloperWorks: http://www-130.ibm.com/developerworks/opensource </li></ul></ul></ul><ul><ul><li>Internally </li></ul></ul><ul><ul><ul><li>Using open source intranet site to promote software componentization and reuse </li></ul></ul></ul>
    8. 8. Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary </li></ul><ul><li>Questions </li></ul>
    9. 9. Java Tooling <ul><li>From www.eclipse.org . . . </li></ul><ul><ul><li>“ Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software.” </li></ul></ul><ul><li>Put more simply . . . </li></ul><ul><ul><li>Eclipse is an Open Source Java IDE </li></ul></ul><ul><li>And so much more . . . . </li></ul><ul><ul><li>Multiple languages (Java, C++, COBOL) </li></ul></ul><ul><ul><li>Debugger </li></ul></ul><ul><ul><li>Unit Testing </li></ul></ul><ul><ul><li>Modelling with UML </li></ul></ul><ul><ul><li>Visual Editing of Java UI </li></ul></ul><ul><ul><li>Java Web Tools (JSP, EJB, XML . . . .) </li></ul></ul><ul><li>All through an extensible plugin-based IDE </li></ul>
    10. 10. Eclipse Project Aims <ul><li>Provide open platform for application development tools </li></ul><ul><ul><li>Run on a wide range of operating systems </li></ul></ul><ul><ul><ul><li>Windows, Linux, AIX, MacOS X, etc. </li></ul></ul></ul><ul><ul><ul><li>GUI and non-GUI components </li></ul></ul></ul><ul><li>Language-neutral </li></ul><ul><ul><li>Able to handle different content types </li></ul></ul><ul><ul><li>Java, HTML, C/C++, JSP, EJB, XML, GIF, etc. </li></ul></ul><ul><li>Facilitate seamless tool integration </li></ul><ul><ul><li>At UI and lower level </li></ul></ul><ul><ul><li>Add new tools easily </li></ul></ul><ul><li>Attract community of tool developers </li></ul><ul><ul><li>Including independent software vendors (ISVs) </li></ul></ul><ul><ul><li>Capitalize on popularity of Java for writing tools </li></ul></ul>
    11. 11. Why develop plugins that extend Eclipse ? <ul><li>Infrastructure </li></ul><ul><ul><li>You get a workbench created for free – just add what you need </li></ul></ul><ul><ul><li>No need to create an environment from scratch </li></ul></ul><ul><ul><li>Build on Eclipse Modelling Framework (EMF) for model support </li></ul></ul><ul><ul><li>Build on Graphical Editing Framework (GEF) for graphics support </li></ul></ul><ul><li>Interoperability </li></ul><ul><ul><li>Use any of the existing tools in your ‘end-product’ </li></ul></ul><ul><ul><ul><li>Java Editor, outliner . . . </li></ul></ul></ul><ul><ul><ul><li>Explorer, Text editor, search . . . etc. </li></ul></ul></ul><ul><li>Examples </li></ul><ul><ul><li>Java (or any language) code analysis/transformation plugins </li></ul></ul><ul><ul><li>Any UML related tooling (using EMF) </li></ul></ul><ul><ul><li>Any Java graphical projects (using GEF) </li></ul></ul>
    12. 12. Java Perspective <ul><li>Java-centric view of files in Java projects </li></ul><ul><ul><li>Java elements meaningful for Java programmers </li></ul></ul>Java project package class field method Java editor
    13. 13. Java Editor <ul><li>Lots of useful features such as . . . . </li></ul><ul><li>Method completion in Java editor </li></ul>List of plausible methods Doc for method
    14. 14. Top 10 Tips for Eclipse Users <ul><li>Use Code Assist </li></ul><ul><ul><li>Just press the code assist key combination (by default ctrl-space) and the IDE will either fill in where you’ve started typing or display a menu. </li></ul></ul><ul><li>Navigate Through Code By ctrl-Clicking </li></ul><ul><ul><li>You can move to a field, method, or class by holding down the ctrl key and clicking on the identifier you’re interested in. </li></ul></ul><ul><li>Quickly Open Classes and Resources by Name </li></ul><ul><ul><li>To open a Java class, press ctrl-shift-T. This will display a dialog box that allows you to type in a class name. </li></ul></ul><ul><li>Set the Heap Size </li></ul><ul><ul><li>Eclipse is a large, complex, Java-based IDE. It needs lots of memory to perform well. </li></ul></ul><ul><ul><li>eclipse -vmargs –Xmx1024M </li></ul></ul>
    15. 15. Top 10 Tips for Eclipse Users <ul><li>Configure Eclipse To Use a JDK, not a JRE </li></ul><ul><ul><li>Go to Window -> Preference -> Java -> Installed JREs </li></ul></ul><ul><ul><li>Use a JDK that supports hot code replace (IBM J9 or JDK 1.4.1+) </li></ul></ul><ul><li>Use the Eclipse’s Refactoring Support and Code Generation </li></ul><ul><ul><li>Eclipse also has extensive support for code generation. </li></ul></ul><ul><li>Use Multiple Workspaces Effectively </li></ul><ul><ul><li>A workspace is a container of projects that has its own set of preferences and metadata. </li></ul></ul><ul><ul><li>eclipse –data c:myworkspace –showlocation </li></ul></ul><ul><li>Use Templates </li></ul><ul><ul><li>Open a Java class in an editor, type in “sysout” and press ctrl-space. </li></ul></ul><ul><li>Set Type Filters </li></ul><ul><ul><li>If you’re seeing classes show up at the top of your search you know you’re not interested in, filter them out for faster searching. </li></ul></ul>
    16. 16. Top 10 Tips for Eclipse Users <ul><li>Know the Keyboard Shortcuts </li></ul><ul><ul><li>ctrl-shift-o: organize imports </li></ul></ul><ul><ul><li>ctrl-shift-F4: closes all open editor windows </li></ul></ul><ul><ul><li>ctrl-o: outline popup – very useful for quickly jumping to a method in a large class </li></ul></ul><ul><ul><li>f4: shows the hierarchy viewer for a class (ctrl-T shows similar data in a popup version) </li></ul></ul><ul><ul><li>ctrl-m: toggle maximize of the current editor or view </li></ul></ul><ul><ul><li>ctrl-F11: run the last launched configuration </li></ul></ul>
    17. 17. Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary </li></ul><ul><li>Questions </li></ul>
    18. 18. New Projects <ul><li>AJAX </li></ul><ul><ul><li>OpenAjax – http:// www.openajax.org </li></ul></ul><ul><ul><li>DOJO – http:// www.dojotoolkit.org </li></ul></ul><ul><ul><li>Apache MyFaces – http:// myfaces.apache.org </li></ul></ul><ul><ul><li>Eclipse ATF (Ajax Toolkit Framework) </li></ul></ul><ul><li>Groovy </li></ul><ul><ul><li>CodeHaus – http:// groovy.codehaus.org </li></ul></ul><ul><ul><li>Grails – http://www.grails.codehaus.org </li></ul></ul><ul><ul><li>Project Zero – http:// www.projectzero.org </li></ul></ul>
    19. 19. New Projects <ul><li>Mozilla </li></ul><ul><ul><li>XULRunner - UI “embedded browser” used widely – http:// developer.mozilla.org/en/docs/XULRunner </li></ul></ul><ul><li>Asterisk </li></ul><ul><ul><li>Digium - http://www.asterisk.org </li></ul></ul><ul><ul><li>Asterisk Now - http://www.asterisknow.org </li></ul></ul>
    20. 20. Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary </li></ul><ul><li>Questions </li></ul>
    21. 21. IBM Open Source Software Competition <ul><li>The competition is based on fourth year CS projects in each university </li></ul><ul><li>An IBM Mentor who is a senior software architect from Dublin Software Lab has been assigned to each university </li></ul><ul><li>To be eligible for participation there must be a minimum of five qualifying projects </li></ul><ul><li>At the end of the academic year, the mentor will evaluate the projects based on the level of Open Source content and on the overall project results and will select a short list of projects which will in turn be evaluated by a panel at the Software Lab </li></ul><ul><li>Individual projects, not joint projects, will be evaluated </li></ul><ul><li>The student with the best project will win a high spec IBM Think Pad </li></ul>
    22. 22. Resources <ul><li>Articles, tutorials, presentations on Eclipse RCP </li></ul><ul><ul><li>http://www.eclipse.org/rcp </li></ul></ul><ul><li>IBM : Web Services general information </li></ul><ul><ul><li>http://www-128.ibm.com/developerworks/webservices </li></ul></ul><ul><li>Developerworks </li></ul><ul><ul><li>http://www-128.ibm.com/developerworks </li></ul></ul><ul><li>AlphaWorks </li></ul><ul><ul><li>http://www.alphaworks.ibm.com/ </li></ul></ul><ul><li>Redbooks </li></ul><ul><ul><li>http://www.redbooks.ibm.com/ </li></ul></ul><ul><li>IBM Dublin Center for Advanced Studies </li></ul><ul><ul><li>http://www.ibm.com/ibm/cas/sites/dublin/ </li></ul></ul><ul><li>Academic Initiative: </li></ul><ul><ul><li>http://www.developer.ibm.com/university/scholars/ </li></ul></ul>
    23. 23. IBM Academic Initiative
    24. 24. Developer Works
    25. 25. Agenda <ul><li>IBM and Open Source </li></ul><ul><li>Eclipse </li></ul><ul><li>New Developments </li></ul><ul><li>Summary </li></ul><ul><li>Questions </li></ul>
    26. 26. Questions

    ×