Eclipse Monkey & RSE
Lately I have been trying out Eclipse Monkey. The Dash project website describes Eclipse Monkey best: "Eclipse Monkey is a dynamic scripting tool for the automation of routine programming tasks. Monkey scripts are little JavaScript programs using either the Eclipse APIs or custom Monkey DOMs." This tool caught my eye as I always wanted to try out Greasemonkey for Firefox and it looked like it could do the same for Eclipse. Reading the wiki for creating scripts showed that it was very easy to do. Now I just needed an idea for a script.
Nick Boldt had an enhancement request to be able to have 2 Remote Systems Views open at once. Until this is added we came up with a workaround to use the Remote Scratchpad. You might be thinking Remote Scratchpad? It is one of the views that comes with RSE, but is hidden behind the Properties view. Its purpose is to be able to drag and drop any RSE object into it for later use. It's great for doing copy and paste across connections. So, if I can drag and drop any RSE object into it I can populate the view to be a secondary Remote Systems View.
With this bug in mind I decided to make a script that would copy all of my connections to the Scratchpad and display the Scratchpad view. The script can be found on bug #210574. If you want to try this out install Eclipse Monkey from the Europa update site and copy the contents of the file attached on bugzilla. Go to Scripts > Paste inside Eclipse. You have now installed your first RSE Eclipse Monkey script that will Clone the Remote Systems View inside the Remote Scratchpad.
How RSE has changed the way I do school work
This is where RSE comes in. I now no longer have to switch between tools. Submitting assignments is easy with an SSH Shell or using the Terminal. That removes the need from having putty or SecureCRT open. As you would think with the Remote System Explorer I wouldn't need another tool like CuteFTP to move files around. Why would I move files around though when we have the RSE EFS implementation. All I do is setup my Java Project and link to my files on my account at school. If I made changes at school and am going to start working at home all I have to do is refresh my project and everything will be updated and compiled.
The unfortunate reality is that if it wasn't for my internship at IBM I probably never would have found this amazing tool. I never would have looked in the Device Software Development Platform for a tool like this. My hope is that this blog will help others recognize how useful RSE is and give it a try.
BugDay Tomorow - Friday, November 30th
Tomorrow, November 30th marks the November BugDay. Target Management will be participating once again. You will be able to find myself and hopefully some other committers on IRC that day. We will also be available by email/bug commenting that day though. If you are looking for some bugs to fix for BugDay, here are two bugs that would be great to see fixed:
Bug #196214: [SSH] Copy or Move a folder to a destination that contains a folder by that name moves the folder under it
Bug #190904: [SSH] Changing Read-Only Attribute Throws Exception
If these don't grab your interest then check out the entire list of TM BugDay bugs. You can grab the source code by using one of our team project sets.
Eclipse DemoCamp
Marcelo Paternostro from IBM showed how meta-models in EMF could be created, models generated and edited. It was an excellent introduction for an EMF newbie! Mike Kucera, also from IBM, showed the CDT parser extension provided for a variant of C called C99, and discussed how the CDT team, in the process of implementing the parser for C99, has now created an extensible framework for anyone wanting to contribute parsers to languages that are close to C. More about this here.
A group of students from the University of Toronto displayed a tool called UTest which allows students to submit tests to be run against a professor's solution for a programming assignment. The idea is to teach the students test driven development by writing tests against a known solution but, of course, without knowing the details of how the solution was implemented. Students essentially poke around for edge cases, what works and what doesn't by writing unit tests which they submit to the UTest server. The server runs the tests and reports the results (pass/fail) back to the student. Students can use the information gleaned from the test results to write their solution to the assignment. I wish I had this tool when I was in school!
I was unfortunately not able to stay for the Mylyn demo, the last of the evening :-(
Thanks to Chris Recoskie for organizing this event. I recommend it if you have a DemoCamp happening in your city.
Target Management 2.0.2 Released
Bug #204810: Saving file in Eclipse does not update remote file
Bug #205297: SystemTempFileListener calls upload() in the dispatch thread
Bug #205592: [regression] ClassCastException when trying to expand folder that doesn't have read permissions
The critical fixes for the Terminal include:
Bug #205186: [regression][mac] SSH Terminal does not paint correctly on OSX
Bug #205393: [terminal] terminal causes stack overflow
Bug #205772: [terminal] crash on linux (division by zero)
You can find TM 2.0.2 through the Europa update site or can download it here.
Labels: eclipse, remote systems explorer, rse, target management, tm
Welcome!
A bit about RSE...
RSE was born in IBM about six years ago. IBM, as many of you might know, is in the server business, ranging from x86 servers to midrange servers to the mainframe. The development community for these systems were clamoring for tools that would allow them to do application development on these systems (edit, compile, run and debug at a minimum) without having to use the "green screen" or other outdated tools. They wanted modern software development tools available on their PCs that they could use to develop and maintain applications for these systems. The RSE framework was IBM's answer to this pressing need.
RSE provides a framework for developers to browse, access and manage resources on remote systems. Users can open and edit files, run commands on their systems using a shell, search for files and strings and manage processes running on the systems. Out of the box, RSE provides support for accessing remote Linux and Unix systems, as well as the local system. The RSE framework is protocol-independent. We provide default implementations using SSH and FTP. The framework is entirely extensible - new system types can be added, other functionality for things besides files, commands and processes can be provided, and any protocol can be used to implement these features. RSE is written in Java and is based on the popular Eclipse platform. Release 2.0.2 became available very recently and can be downloaded from here.
Today, the RSE not only forms the basis on which many of IBM's development tooling is formed, but it is now part of the Device Software Development Platform (DSDP) on eclipse.org. The DSDP was set up to serve as an extensible, standards-based platform to meet a wide array of needs in the device software development space. The word "device" in this case refers to small devices such as cell phones, handheld and other mobile devices, which often have constraints in terms of memory, disk space, networking, etc. and have their own unique requirements that are different from PCs and large servers. Before long, you can expect to see development tools based on RSE to be available for the smallest devices to the "big-iron" and everything in between!