Fitz's Impressions of EclipseCon 2010
First of all, I have to say that Oisin Hurley and Don Smith did a great job of organizing the conference. Though there was overall lower attendance than in previous years, the quality of the talks was higher and the number of people at each talk was significantly higher. As with all EclipseCons (this is my fourth EclipseCon and some years have been hit/miss), it's as much about the social aspects as the talks. And this year was no different.
That said, I attended a number of talks:
WTP Uncovered: All You Need to Know About Building Applications With WTP
This presentation went way too fast for me and the presenters were a little less than organized, but if you go to the file link after the talk description above, you're able to download the slides and a working project that implements a RSS feed from a simple application. I plan on playing with this as time allows.
Lions, Tigers, and Bears: Scrum, XP, and Continuous Integration at Eclipse
Dave Carver, one of the stronger and more vocal voices in the Eclipse community, presented some of his ideas and experiences around using Agile methods with Eclipse projects. (His slides are downloadable from the link above.)
Ultimately it all boils down to continuous communication as much as continuous integration. Communication with your developers, your users, and your community. He recommends integrating tools such as FindBugs and ECLEmma into the build process alongside simple test pass/fail results after running JUnit test suites.
Definitely check out his slides though, as he goes into some detail about the Agile Manifesto and how to make it work at Eclipse as well as Software Craftsmanship and making your code better.
SOA at REST (John Graham's talk)
John's talk was interesting, as it discussed SOA and REST at a very high level instead of delving into any sort of best practices or code demo. Basically it boils down to using the simpler Internet Design Pattern of REST, with its gets and puts, for state workflow in SOA applications. To get his slides, look here: https://docspace.corp.redhat.com/docs/DOC-36528
KeyNote: Community and Adaptation
Jeet Kaul from Sun/Oracle and Steve Harris from Oracle did this keynote together to discuss the state of Java and Oracle post-merger. The main focus was on JEE 6, with some juicy tidbits about JDK 7's OSGi support under the covers and some of the JavaFX work that's going on. I think it will be interesting to see how Java changes under Oracle's mandates, but they're certainly putting effort into keeping the developer communities alive for Java.
Eclipse, Eclipse, Everywhere
This talk focused on making sure developers and managers know about possible pitfalls when integrating with open source technologies and code. The danger of copied code from Google coming back to haunt a company later is certainly a good one to bring up. They mentioned a tool they used called Black Duck that searches their code repository for copied code and possible license issues, which is probably a good idea in any company to protect their intellectual property.
A world-class Linux IDE: how do we get there from here?
Andrew Overholt, Dominique Toupin, and Doug Schaefer spoke passionately about the future of the Linux IDE. Like in many places in Eclipse, the Linux tooling could use some help here and there to simplify the job of the developer. It will be interesting to see how Linux tools development matures over the next few years.
Graphiti - The Graphical Tooling Infrastructure Speaking Plain Java
Graphiti is a new Eclipse project proposal coming out of SourceForge that is supposed to simplify graphical editor development on the Eclipse platform. Simpler than GMF, but seems to do many of the same things. It takes an incoming EMF ecore model and uses GEF/Draw2D code to speed development for model-based UIs.
Towards Contributors Heaven: from CVS and SVN to EGit/JGit
Git is one of those terms that's been thrown around a lot over the last year and a half at Eclipse. And not always in a good way. Though now it seems that has changed. The EGit/JGit movement at Eclipse has been swift and I think once the tooling matures a bit, I think it could be the wave of the future.
CVS/SVN require network connectivity in order to do anything with the repository. With Git you end up with a local copy of the entire repository, which means you can work disconnected and then upload changes and sync up with the main repo down the line.
In addition, the use of Gerritt for code reviews will be interesting, especially with the MylynReviews project coming up to speed. I think if we can do more with our source code control system AND handle a more structured method for code reviews, we'd be able to tow the line a bit better.
Keynote: Rocket Science and the Republic
All I can say after this keynote from Dr. Jeff Norris of the NASA/JPL lab is... wow. It takes hundreds and thousands of people working diligently to create complex constructs. And though one programmer can't do everything necessary to design and control robots they're sending to the Moon and Mars, it takes everyone working together in their own areas of expertise and leveraging that expertise to get the job done. Amazing talk and I look forward to seeing what the next few NASA robot projects discover.
Eclipse UI Test Automation with SWTBot
With a lot of focus internally on designing SWTBot tests at RH/JB, I thought it would be good to get more information about how to use the tool myself. The tutorial helped get my head around what SWTBot can do (test most of SWT, but has issues with the Forms toolkit and GEF editors) and I was able to write tests fairly quickly. It is a manual process, but it's not as bad as some UI test tools I've used in the past.
The PDF of the slides includes some good step-by-step tutorial bits on how to get set up and started with SWTBot, and I'll be trying it in some of our tools as time allows. I'd be especially interested in developing some use-case-based tests to test our tools from start to finish through a development process.
Java EE 6, application development, OSGi, and Eclipse Users
This was a great talk, but unfortunately a good portion of it flew over my head. (I think my brain was already full by this point.) But I want to grab the slides and figure out what I missed.
Eclipse Swordfish Reloaded
The STP project is no more and the SOA top-level-project will now take its place, merging SOA Tools and Runtimes together. In addition, there's a new SOA Industry Working Group, so it's nice to see there's some movement in this space at Eclipse.
Swordfish is an ESB runtime in Eclipse that looks interesting. Need to look into it further.
The Future of Open Source (Panel)
What happens when you get four high-level open source folks on a panel led by Mike Miliknovich? You have some disagreements. This panel included: Justin, President of the Apache Software Foundation; Martin, CEO of Eucalyptus and ex-CEO of MySQL; Steven from Redmonk; and Jason from Apache/Sonatype. Mike asked several questions and I didn't get much out of it beyond "Open source fails at polish and 'pretty'". We already knew that and are working to improve it in our own tools.
Keynote: Software Professionalism and the Art of Saying "No"
"Uncle Bob" Martin provided an entertaining talk about what "professionalism" means in software development. It all boils down to responsibility.
What did I take away from this talk?
- "Do no harm to the program's functionality" means reducing bugs to zero and taking responsibility when things do break
- TDD proves the absurdity of a QA group. QA should be redefined to set the quality criteria, not clean up our messes
- manual tests are desperately expensive
- try for 100% code coverage, though it's impossible to achieve
- If a project can't be done with current time/resources, say so. Take a stand for quality work. "Hope is the project killer" - don't say "We'll try."
- short iterations kill hope and inject reality
- short cycles allow us to fail frequently and give managers real data
- "The things you do under pure stress are your true disciplines." - Have to be able to say no to yourself and hold to your ideals & disciplines
- Say no to overtime - can only do what you can do
- Say no to meetings - meetings prevent progress
- Make your argument emphatically and work with management to achieve quality results
Understanding and Using Git at Eclipse
Like the earlier Git talk, this tutorial just reinforced that Git isn't quite baked yet as far as functionality or UI in Eclipse. It's getting there. Give it 6 months or a year and they'll be 90% there. And I think we'll be using it into the future.
Mylyn Reviews: Finding a new Home for ReviewClipse
Mylyn Reviews used to be the ReviewClipse project on SourceForge. The idea of merging the code review process into Eclipse is a great one. And I think by integrating with Mylyn's task-centric views, this will be a boon to us to use at RH/JB in our processes. Currently in incubator at Mylyn, but will graduate after Helios(?).
Integration of BPEL with OSGi for an effective SOA Solution
Uses the BPEL editor code we do, but injects some OSGi specific orchestration abilities. Creation review next week (April 7, 2010). Code currently at spagic.org. Slides are available in the talk link.
Eclipse SOA TLP: Lock, Stock, and Barrel
This is the new SOA top level project merging STP (SOA Tools) with runtimes in once place. Included are Swordfish, SOA Tools, eBPM, JWT, Mangrove, Governance, and Management tools/runtimes. We really need to see if RH/JB SOA can work with this functionality. Slides available at SlideShare.net, but don't seem to be downloadable.
Beyond the talks that I attended, I also participated in a few talks/panels/BoFs. I've added slides where I can.
Eclipse Community Project Spotlight
Distributed Teams and Eclipse
DTP in the Real World
DTP BoF Session
We actually had three non-PMC members attend our DTP BoF this year! Shengxoe from Oracle and Ray & Chris from Ingres dropped by and we had a lively discussion about the state of DTP and how we really need help from the community to stay alive. We were very encouraged by their interest in helping out by prioritizing bugs and creating patches wherever possible. We have a lot of work to do (huge bug backlog) and very few folks to do it.