Have you ever been on the road or away from the office when you are struck by an idea for a new features and wanted to debug or prototype your application but found yourself without access to the code base? What if you where able to connect to the Eclipse running on your work desktop from anywhere in the world using a browser? Well, now you don’t have to wonder. EclipseWebEnabler is a Eclipse plugin from IBM AlphaWorks that allows you to connect, interact, and manipulate an instance of the Eclipse IDE via FireFox. Basically, the plugin converts the Eclipse SWT-based UI to XUL which can then be delivered to a browser via the Jetty server.
For EclipseWebEnabler to work you do need an instance of Eclipse to be running on your desktop. Once the Jetty server embedded with the EclipseWebEnabler plugin has started you can point your browser to it, any change you do in browser will be reflected in Eclipse, and vice versa. You can edit Java code files in FireFox and the new edits will be reflected in Eclipse, in near real time.
Even though I think that the EclipseWebEnabler plugin is innovative, I soon discovered that it doesn’t enable completely or well. EclipseWebEnabler, as of this writing, is lacking a lot of fundamental features. Closing source files from FireFox is not implemented. The ia no code syntax coloring or highlighting at all. You can’t resize views. There is too much flickering when moving between source files. And there is no security whatsoever.
Even with it’s obvious shortcomings, I think that the EclipseWebEnabler plugin take the price for Most Outrageously Innovative Idea 2007 award. I haven’t seen an application features this thought provoking since GWT took the price in 2006.
Once the kinks are worked out, it might be possible to write a fat client application using the Eclipse RCP and then have the EclipseWebEnabler generate a web version for said application.
The Java Posse – The seminal Java podcast put out by Google, Sun, and Apple engineers, just hope they never have to pronounce your name.
.Net Rocks! – A weekly talk show for anyone interested in programming on the Microsoft .NET platform.
Railscasts – Free, and most importantly frequent, Ruby on Rails screencasts ranging from 5 to 10 minutes covering testing, migrations, controllers, and more.
WebDevRadio – This podcast covers web development news with the occasional interview with engineers working on projects with .NET, MySQL, PHP, etc.
Polymorphic Podcast – Insight into software development in the .NET platform along with interviews with industry luminaries.
Code Sermon – The podast somewhat preaches to the choir. This is a somewhat semi-weekly sermon on the virtues of software development best practices.
Killer Innovation – A podcast about creativity, innovation, and idea generation. This podcast will present ideas to think outside the box, or IDE.
Grails Podcast – Keeps you up to date about the latest Grails developments.
NetBeans Podcast – Hosted by Roman Strobl of Sun, this podcast has the occasional interview with NetBeans developers like Tor Norbye and Geertjan Wielenga.
Ask A Ninja – Every programmer needs a break between hacking sessions.
Rails Podcast – News and interviews about the Ruby language and the Rails framework.
Entrepreneurial Thought Leaders – This podcast is put out by the Stanford business school. It usually has business leader share their experience.
Floss Weekly – Free/Libre Open Source Software might be free, but it is not timely.
Late Night Cocoa Podcast – Usually has hacking cocoa and API discussions and Cocoa practitioners, currently on summer hiatus.
TWiT – Leo Laporte and gang talk technology, unless they are reminiscing about their TechTV days or how to monetize ‘netcasts’.
Scoble Show – Robert Scoble talks with geeks, technologists, and developers.
GigaOm Show – Om Malik and Joyce Kim talk with entrepreneurs in the valley and run down some of the latest tech news.
If you feel I missed any other developer noteworthy podcast please let me know in the comments.
Like most developers, I like free software and open source software both for it’s freedom and it’s price. But once in a while there are some software you can’t avoid but to pay for. I was involved in a project recently where I had to profile some Java memory leak in a tight deadline. The code base for the project is compiled to Java 1.4 bytecode and the team uses Eclipse 3.1. I don’t know of any good profiler for Eclipse so without skipping a beat or thinking twice about it I downloaded a free 15-day trial version of YourKit Java Profiler.
It was just drop dead simple to manually enable YourKit to profile our JBoss 3.2.x based application even though we highly customized the start batch script. Once profiling is enabled, I was able to connect to our application from YourKit to have it start profiling, monitor, inspecting the leaky architecture in the application.
It took me just a few hours to get familiar with the YourKit screens and memory snapshots views. Within a day I was able to track down a ThreadLocal object that was keeping a HashMap instance that in turn collected a large hierarchy of objects in memory. Clearing the value of the ThreadLocal did the job.
Again, I choose YourKit mostly because of the environment and JVM I was using. I do understand that NetBeans 5.5 has a nice profiler for Java, which I have not tried myself. I would have opted for that if I was already using NetBeans or if it was the first result when I googled ‘java profiler.’ Unfortunately I was not able to find what seemed like a good or reliable profiler for Eclipse. For this reason alone I recommended YouKit Java Profiler to my boss. Although to be completely honest, since YourKit worked so well for me I thought of just getting another trial version next time I am ever in a bind and need to profile a Java application.
Here are all my notes taken at CommunityOne and JavaOne 2007. I was in San Francisco for 5 days and attended over 40 technical and birds of a feather sessions and managed to put together this 30 page document. For you download pleasure you can find a PDF version of all my conference notes.
This JavaOne 2007 technical session started off with Cameron Bateman describing how to use the Eclipse Web Tools Platform (WTP) Project to create JavaServer Faces (JSF) applications and custom tools for Eclipse. This was a discussion better suited for JSF component developers. Eclipse web tools provides a web page editor, JSF configuration model, editor, and wizards. Eclipse and the WTP project are extensible, the WTP in particular allows developers to leverage design-time tag rendering, expression language support, and the meta-data framework. Customizing Eclipse and the WTP project allows you to provide design-time support for your custom tag libraries in the Eclipse IDE.
This was like two sessions in one because Philippe Ombredanne then presented on the Ajax Toolkit Framework (ATF) tools in Eclipse. The ATF project can help to develop AJAX applications in Eclipse. The most interesting aspect of the ATF project is the Eclipse Mozilla mashup. The ATF project embeds Mozilla in Eclipse via XULRunner and JavaXPCOM. In addition to embedding a browser in the Eclipse IDE, the ATF also provide a rich feature set for AJAX developer such as a JavaScript editor and debugger, DOM and XMLHttpRequst inspector, and plain simply faster AJAX development. You can debug a remote website in Eclipse with the ATF project similarly how you would step through a Java project in the debug perspective. Embedding the Mozilla “enables web browser integration beyond the capabilities of the standard SWT browser widget” and brings AJAX applications to the rich client desktop.
Wayne Beaton, Eclipse Foundation evangelist, gave an overview of the Eclipse Rich Client Platform (RCP). As he spoke, I thought of Eclipse RCP as a Fat Client minus the lard. Wayne described a Rich Client Platform as a system that provides a rich user experience, is platform independent and extensible, and provides a component model.
The Eclipse IDE is itself a collection of plugins, or components, on top of the base Eclipse platform. A big aspect of Eclipse RCP is Equinox, the OSGi based module system used to discover Eclipse plugins. In this context, plugins, modules, and components are used interchangeably.
Wayne gave a quick overview of the plugin structure of Eclipse. Basically Eclipse provides extension or plugin points at its core level. Adding or removing functionality is as simple as adding and removing files from the plugin directory in the Eclipse installation directory.
Wayne also mentioned Mylar. Mylar monitors and remembers which resources a developer is interested in for a recorded task and hides the rest. Wayne said, “You need to look into Mylar. Mylar will change your life.”