The RPG Café is now open for business. Modeled on the EGL Café and located in the same general area, the RPG Café provides a place for the RPG community to gather and share experiences and serve (we hope) as a single point of departure for news about RPG and related tools. There you’ll not only find RPG alone, but RDi, EGL and their relations.
As a result, this blog is moving, lock, stock, and barrel over to our new home. The posts and advice that are here will remain here, but new posts will be on the new blog.
Join us over there!
Ease of use (including ease of learning) and following Eclipse Workbench standard behavior are two of many things we try to include in all our designs. However, sometimes these two things are at odds and we have to choose one or write extra code to compromise on a solution. Over the past few weeks we’ve run into 3 good examples of this working on RDi 7.5 which I’m going to include here for comments on:
1. In Eclipse 3.4 (or Eclipse 3.3) the Plug-in Development Environment (PDE) added a new keyboard shortcut: Ctrl + Shift + A to open a plug-in artifact. RSE users will recognize this keyboard shortcut as the “Open Member” dialog. So now when you press Ctrl + Shift + A, Eclipse detects the conflict and pops up a little conflict dialog:
We (the RSE development team) had 3 choices: (1) Change our keyboard shortcut, (2) attempt to write some code to disable the PDE action, or (3) leave the conflict. Option (1) was ruled out because changing our action will make existing users frustrated because they are used to the old key sequence, and it doesn’t guarantee there won’t be future conflicts. Option 2 is out because it’s generally considered a bad practice to do something like this in the Workbench.
I believe option 3 is the best option because Eclipse already provides a preference page (General > Keys) where users can customize keyboard shortcuts. So really option 3 leaves it to the user to resolve by either changing the keyboard shortcut assigned to one of the actions or removing the key binding for the one they don’t want.
As a design rule, I’d like us to leverage the existing Eclipse workbench as much as possible for things like this instead of writing more code to resolve the issues (which can make things more complicated in the long run IMHO). Of course the shortfall of option 3 is that you have to know that you can customize the keyboard shortcuts via the preferences. The pop-up dialog does hint at this with the “Press Ctrl + Shift + L to open the preference page”.
2. The second example was around the current line color for the debug editor. The default editor used by the debugger is the Remote Systems LPEX Editor. The default current line color for the editor is pale blue that is hard to see. Again this can be changed by a preference (LPEX > Appearance) if you know where to look. In past releases we did some extra coding to override the preference and make the current line darker blue while debugging.. This release some things changed underneath us in the software stack and that no longer work. We ultimately decided to not re-implement this override since the preference already exists.
3. In the RSE you can right click on a local save file (local being on your PC), right click and select the Restore on IBM i… action to restore the save file on one of your IBM i connections (yes connections are now IBM i in 7.5 instead of i5/OS in 7.1 and iSeries before that). Previously this action ran on the user interface thread and blocked any refreshes of the Workbench (so the Workbench appeared hung during the upload and restore). We wanted to change this to run asynchronously and even give the user the option to run it in the background and continue doing other things. The design question was: what to do when the action completes with errors? The standard Eclipse progress task just puts an icon in the bottom right corner of the workbench with and explanation mark on it:
If you click the icon then a dialog box appears showing the results. Of course, you have to know to click the icon to see the results. The alternative would be to always show a dialog box when the action completes, but that could become annoying if you are in the middle of doing something like enter some source code. The jury’s still out on this one.
Ultimately we want the RSE to be easy to use and follow standard look and feel guidelines (which makes it easier to use in the long run). Like every other development team we also have fixed resources and implementing a workaround for something means something else doesn’t get done.
I’d love any comments that new or existing users have on this topic to help us in our future decisions!
Next Wednesday, October 22nd, I’m doing a SystemiNetwork webcast on the Integrated Debugger in WDSC and RDi titled: Debugging RPG, COBOL and CL Programs Made Easy. I’m planning to do mostly demoing with a couple of slides; provided the network connection is good. And leave lots of time for Q&A. The price is right (free; sponsored by Arcad Software) so come and join us.
My blogging sebatical is over (hopefully). At any given time I usually have at least 4 or 5 things I want to write about, so coming up with things wasn’t the issue; it was time and priorities. So I’m going to make blogging a higher priority. And with the RSE book finally out and the next release of Rational Developer for i (RDi 7.5) wrapping up, I should have some more time. More on RDi 7.5 in another post.
Interesting, I just went to the MC Press website to lookup the URL for the book and saw an ad for the book saying something about a free chapter download (news to me!) So, if you click on the “Look Inside” link you can download chapter 4 “Workbench Basics”. For those that have been using WDSC or RDi for awhile there might not be a lot new in this chapter for you, but hopefully you pickup a few new tidbits. You can also take a peek at the TOC and index.
If you happen to be at Paul, Skip, Susan, and Jon’s RPG & DB2 Summit next weekthen you can also stop by the MC Press booth and take a look (Merrikay will have some copies there.)
Updated Nov 11th: The link for RDi 7.5 was an internal IBM link that worked fine for me, but likely nobody else :) I’ve changed this to the external announcement letter.
A 60-day trial version of Rational Developer for System i V7.1, is now available for download on developerWorks (http://www.ibm.com/developerworks/downloads/r/rdi/learn.html). Enjoy!
I just returned from two days of presenting at the Norteast User Groups Conference on various WDSC and RDi topics. A fun conference, with great attendees and lots of WDSC users!
A couple funny stories about the debugger while I was there. Earlier in the day on Wednesday Jon Paris was telling me about a problem he had seen at a customer site where the debugger was displaying an error about “retrieving children”. I said I had never seen or heard of the problem before. Later that afternoon I’m demoing the debugger in front of about 40 people. I set my service entry point, call my program, the debug perspective opens and up pops the exact same error. I guess I can reproduce that one now :) The good news is I was able to get some details about the error and it doesn’t appear to actually have any functional impact.
In the same demo , I’m stepping over a write to a display file and the F spec is highlighted and I’m hitting “step over” a few times until it gets to the next line, when someone in the audience tells me about the *NODEBUGIO compiler option. I never knew that even existed (and it’s always good to learn something new). What makes this even more funnier, is that about 20 minutes later (same session) another person in the audience asks if there is any way to prevent having to step over I/O multiple times in the debugger. Sure, just use *NODEBUGIO option when compiling your source :)
One last tidbit I learned this evening is that you can’t get the value of a CL variable to show in the hover box when debugging like you can with ILE RPG and COBOL. But this restriction is only if you are using the Remote Systems LPEX Editor as your debug editor (the default). If you switch to listing view in the debugger, or use the Debug Editor (preference on Run/Debug > Compiled Debug preference page) then you can get the value for CL variables to show in a hover box.
Great feature article by George Farr in the April edition of SystemiNEWS that goes over the new host and client application development tools line up and their latest features
(update: changed links to point to public article)
So I originally intended to keep blogging as I was working on the RSE book, but as it turns out, writing a book is a lot of work (who knew?) So things like blogging, exercise, and other hobbies got put on hold for awhile. The manuscript is due to MC Press next week so hopefully blogging and exercise can make a come back.
I’m currently reviewing Nazmin’s editor chapters and came across a section called “Moving the Curosr”. My initial thought was “this seems kind of obvious, perhaps we should just delete this section”. But to my surprise I learned three new ways to navigate around LPEX from reading it and I added one that Nazmin didn’t know about.
I suspect that a lot of users don’t know all of the ways, or perhaps they use them in a Web browser but don’t realize they can also be used in LPEX. So we decided to leave this section :) It’s pretty short anyways. And don’t worry, there are lots more exciting sections with cool stuff like the outline view, content assist, and of course keyboard shortcuts in LPEX.
And just so you don’t have to wait, here is the list:
- Press the Up, Down, Left, or Right arrows.
- Press Home to move the cursor to the beginning of a line and End to move it to the end of a line.
- Press Ctrl + Left arrow to move the cursor one word left, or Ctrl + Right ar-row to move it one word right.
- Press Page Up or Page Down to move the cursor up or down one window at a time.
- Press Ctrl + Up arrow to scroll the editor up one line without changing the current line, or Ctrl + Down arrow to scroll the editor down one line.
- Press Ctrl + Home to move the cursor to the beginning of the document, or Ctrl + End to move it to the end of the document.
- Press Ctrl + J to return the cursor to the place in the editor where you last entered text.
- Press Home and then Shift + Tab to position the cursor in the Prefix area.
For those existing RSE users out there, I’d be interested if any of these are new to you. I wasn’t aware of the Ctrl + J shortcut, Ctrl + Left | Right arrows, or Shift + Tab to jump into the prefix area. Good thing Nazmin wrote this chapter!
On Wednesday, George Farr and the Toronto Lab hosted the Toronto User Group (TUG) for System i Meeting of Members (MoM) event.
TUG has always had close ties with the Lab, and we were happy to welcome them once again. Visiting from Raleigh N.C., Wendy Toh, Software Development director of Enterprise Development Tools & Compilers, and Danny Mace, Program Director of Rational Enterprise Transformation and Tools Development, were also in attendance. The session was conveniently held the day after the big V6R1 Announce, allowing members of the IBM System i AD team to introduce the changes and (quickly) demo some of the new features available in the latest release of our tools. Wendy also gave an insightful overview of IBM’s strategy in this space. Overall, the response was very positive. Some questions about the repackaging which George readily explained, and a lot of excitement over the new features made available through RPG, HATS, and the new RDi line.
As a follow-up, TUG will be hosting their annual TEC conference, Apr 22-24, which will contain over 20 sessions and labs presented by members of the IBM Toronto Lab System i AD Team, that will dig deeper into many of the new features introduced in the announce and at this event. Hope to see everyone there!
- WDS V6R1
- RDi 7.1
- RBD 7.1 (Preview)
- RDi SOA 7.1 (Preview)
- HATS for 5250 Applications 7.1 (Preview)
- and more!
Stay tuned for upcoming posts where developers will introduce you to the new features found in the latest suite of tools for i5/OS developers.
In the meantime, be sure to visit the Announce Site where you’ll find Webcasts, Podcasts, Demos, Tutorials and more!
Hm… time to change this blog’s name.