1 / 26

IBM Open Source Software Competition Mark Wallace, Software Architect, IBM Dublin Software Lab

IBM Open Source Software Competition Mark Wallace, Software Architect, IBM Dublin Software Lab. Agenda. Open Source Eclipse New Developments Summary Questions. Free Software versus Open Source.

macha
Download Presentation

IBM Open Source Software Competition Mark Wallace, Software Architect, IBM Dublin Software Lab

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IBM Open Source Software CompetitionMark Wallace, Software Architect, IBM Dublin Software Lab

  2. Agenda • Open Source • Eclipse • New Developments • Summary • Questions

  3. Free Software versus Open Source • 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/) • Perceived drawbacks to Free Software • Confusion as to it’s definition • Googling for free software returns many different things • http://www.fsf.org/licensing/essays/free-sw.html • Licensing • “Copy left” requirement • Lack of quality • Unknown pedigree • Scalability, serviceability, reliability, localization, … • Largely unfounded • Not attractive to commercial enterprises “Open source is a development methodology; free software is a social movement”

  4. What is Open Source • Open Source Initiative (OSI) maintains a formal definition of Open Source Software (OSS) recognized by the open source community. OSI has a web site at: http://www.opensource.org • Open Source Definition current criteria (paraphrased): • Free Redistribution • Source Code • Derivative Works • Integrity of The Author's Source Code • No Discrimination • No Discrimination Against Fields of Endeavor • Distribution of License • License Must Not Be Specific to a Product • License Must Not Restrict Other Software • License Must Be Technology Neutral 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. Open Source Development Methodology • Virtual community of programmers, leveraging the Internet for communication, who create / debug / maintain / evolve a source code base • OSS projects often self-organizing: • Someone determines a need and communicates that need to others on the Internet • If the project generates interest, one or more programmers begin writing code • Someone takes a leadership role and begins to map out a project road map • Interested programmers join the project to contribute new code or fine-tune existing code • A network of participants, linked via the Internet, forms • Tiered participation levels emerge

  6. IBM and Open Source • IBM has contributed many projects to the open source community • Eclipse Project: http://www.eclipse.org • Project dedicated to providing a robust, full-featured, commercial-quality, industry platform for the development of highly integrated tools • Apache Derby: http://db.apache.org/derby • Database management system developed by the Apache Software Foundation • Linux Technology Center (LTC): http://www.ibm.com/linux • Work towards Enterprise enablement of the Linux OS through the development and contribution of technology, utilities, tools and code • Other contributions • IBM Pledges 500 U.S. Patents To Open Source In Support Of Innovation And Open Standards

  7. IBM and Open Source • IBM uses open source in its products • Building products on top of open source projects e.g. Rational Application Developer • Apache webserver to support and bundle with its WebSphere suite • IBM promotes open source development • Externally • AlphaWorks: http://alphaworks.ibm.com • DeveloperWorks: http://www-130.ibm.com/developerworks/opensource • Internally • Using open source intranet site to promote software componentization and reuse

  8. Agenda • IBM and Open Source • Eclipse • New Developments • Summary • Questions

  9. Java Tooling • From www.eclipse.org . . . • “Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software.” • Put more simply . . . • Eclipse is an Open Source Java IDE • And so much more . . . . • Multiple languages (Java, C++, COBOL) • Debugger • Unit Testing • Modelling with UML • Visual Editing of Java UI • Java Web Tools (JSP, EJB, XML . . . .) • All through an extensible plugin-based IDE

  10. Eclipse Project Aims • Provide open platform for application development tools • Run on a wide range of operating systems • Windows, Linux, AIX, MacOS X, etc. • GUI and non-GUI components • Language-neutral • Able to handle different content types • Java, HTML, C/C++, JSP, EJB, XML, GIF, etc. • Facilitate seamless tool integration • At UI and lower level • Add new tools easily • Attract community of tool developers • Including independent software vendors (ISVs) • Capitalize on popularity of Java for writing tools

  11. Why develop plugins that extend Eclipse ? • Infrastructure • You get a workbench created for free – just add what you need • No need to create an environment from scratch • Build on Eclipse Modelling Framework (EMF) for model support • Build on Graphical Editing Framework (GEF) for graphics support • Interoperability • Use any of the existing tools in your ‘end-product’ • Java Editor, outliner . . . • Explorer, Text editor, search . . . etc. • Examples • Java (or any language) code analysis/transformation plugins • Any UML related tooling (using EMF) • Any Java graphical projects (using GEF)

  12. Java Perspective • Java-centric view of files in Java projects • Java elements meaningful for Java programmers Javaproject package class field method Javaeditor

  13. List of plausible methods Doc for method Java Editor Lots of useful features such as . . . . • Method completion in Java editor

  14. Top 10 Tips for Eclipse Users • Use Code Assist • 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. • Navigate Through Code By ctrl-Clicking • You can move to a field, method, or class by holding down the ctrl key and clicking on the identifier you’re interested in. • Quickly Open Classes and Resources by Name • To open a Java class, press ctrl-shift-T. This will display a dialog box that allows you to type in a class name. • Set the Heap Size • Eclipse is a large, complex, Java-based IDE. It needs lots of memory to perform well. • eclipse -vmargs –Xmx1024M

  15. Top 10 Tips for Eclipse Users • Configure Eclipse To Use a JDK, not a JRE • Go to Window -> Preference -> Java -> Installed JREs • Use a JDK that supports hot code replace (IBM J9 or JDK 1.4.1+) • Use the Eclipse’s Refactoring Support and Code Generation • Eclipse also has extensive support for code generation. • Use Multiple Workspaces Effectively • A workspace is a container of projects that has its own set of preferences and metadata. • eclipse –data c:\myworkspace –showlocation • Use Templates • Open a Java class in an editor, type in “sysout” and press ctrl-space. • Set Type Filters • 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.

  16. Top 10 Tips for Eclipse Users • Know the Keyboard Shortcuts • ctrl-shift-o: organize imports • ctrl-shift-F4: closes all open editor windows • ctrl-o: outline popup – very useful for quickly jumping to a method in a large class • f4: shows the hierarchy viewer for a class (ctrl-T shows similar data in a popup version) • ctrl-m: toggle maximize of the current editor or view • ctrl-F11: run the last launched configuration

  17. Agenda • IBM and Open Source • Eclipse • New Developments • Summary • Questions

  18. New Projects • AJAX • OpenAjax – http://www.openajax.org • DOJO – http://www.dojotoolkit.org • Apache MyFaces – http://myfaces.apache.org • Eclipse ATF (Ajax Toolkit Framework) • Groovy • CodeHaus – http://groovy.codehaus.org • Grails – http://www.grails.codehaus.org • Project Zero – http://www.projectzero.org

  19. New Projects • Mozilla • XULRunner - UI “embedded browser” used widely – http://developer.mozilla.org/en/docs/XULRunner • Asterisk • Digium - http://www.asterisk.org • Asterisk Now - http://www.asterisknow.org

  20. Agenda • IBM and Open Source • Eclipse • New Developments • Summary • Questions

  21. IBM Open Source Software Competition • The competition is based on fourth year CS projects in each university • An IBM Mentor who is a senior software architect from Dublin Software Lab has been assigned to each university • To be eligible for participation there must be a minimum of five qualifying projects • 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 • Individual projects, not joint projects, will be evaluated • The student with the best project will win a high spec IBM Think Pad

  22. Resources • Articles, tutorials, presentations on Eclipse RCP • http://www.eclipse.org/rcp • IBM : Web Services general information • http://www-128.ibm.com/developerworks/webservices • Developerworks • http://www-128.ibm.com/developerworks • AlphaWorks • http://www.alphaworks.ibm.com/ • Redbooks • http://www.redbooks.ibm.com/ • IBM Dublin Center for Advanced Studies • http://www.ibm.com/ibm/cas/sites/dublin/ • Academic Initiative: • http://www.developer.ibm.com/university/scholars/

  23. IBM Academic Initiative

  24. Developer Works

  25. Agenda • IBM and Open Source • Eclipse • New Developments • Summary • Questions

  26. Questions

More Related