An interesting listen for anyone interested in learning more about IBM’s enterprise modernization strategy as it relates to System i and z application development: http://www.ibm.com/developerworks/podcast/spotlight/st-100907.htm It’s also a good link to send your manager or CIO if you’re trying to convince them that moving to the new tools is worthwhile.
The podcast is an IBM developerWorks interview with Hayden Lindsey. Hayden is the IBM vice-president for enterprise tools and compilers (this includes the Toronto System i application development tools area). He’s also an IBM distinguished engineer (i.e he’s very smart and technical!)
He even mentions RPG 5 or 6 times in the podcast!
Your RSE connections, filters, user defined actions, and custom compile commands that is.
In order to use the RSE most effectively you will have created (or still need to create) lots of connections, filters, filter pools, user defined actions, custom compile commands (I’ll call these “artifacts”). Now, how much of a super hero would you be if you then shared all that hard work with your team members so they didn’t have to redo all the setup you’ve already done? Even if you don’t want to be a super hero, you should still at least backup all your hard work.
This capability was designed into the RSE from the start, and is the reason you see a prompt for “Profile” at the top of every dialog that creates these RSE artifacts. If you switch to the team view in the RSE you will see these profiles:
Most likely you will only have two profiles: a Team profile and your own profile that you named when you created your first connection. The profiles are stored in a workspace project called “RemoteSystemsConnections”. Under each profile are all the RSE artifacts owned by that profile. There is no special connotation with the name of the profile (Team profile is just the same as ABC profile). Profiles are just groupings of RSE artifacts.
If you copy this entire project (using the workbench export / import actions) to a new workspace then all associated RSE connections, filters, etc… will show up in the new workspace. Alternatively you can copy over only a single profile. Use either the General > File System or General > Archive import / export options.
From the RSE team view there are actions on profiles to make them Active / Inactive. All RSE artifacts owned by active profiles are shown in the RSE. RSE artifacts owned by inactive profiles are NOT shown in the RSE. So another use of profiles is to hide RSE artifacts related to projects you only work on once in awhile.
Say for example you only have to update the accounts receivable application once every couple of months. Then create a profile called “AccountsReceivable” and create all RSE artifacts (connections, filters, UDA) for the accounts receivable project under that profile. You can then easily hide them from the RSE when not needed by making the profile Inactive.
Again, this capability was originally designed to share RSE artifacts in a team environment and is documented in the online help under: WebSphere Development Studio Client for iSeries > Developing iSeries server applications using the Remote System Explorer > Sharing team-managed development resources. But it can also be used for simple backup, or copying between your own workspaces (or recovering RSE artifacts from a corrupted workspace). The help mentions synchronizing the project with an SCM repository (CVS, Subversion, IBM Rational ClearCase) which is ideal for sharing ongoing changes, but you can also just use the export / import way.
I was just writing some COBOL source code (which is a challenge since I don’t really know COBOL) to test some of the new features we are working on when I cam across a cool editor feature for COBOL that I didn’t know we even had for COBOL. And it doesn’t exist yet for RPG!
Normally when we add new features to the RSE we put them in for RPG first and then COBOL either at the same time or later on. Simply because RPG is more widely used on System i than COBOL.
Back to my story. Like any good programmer I was trying to add comments to my source. Not knowing how COBOL expects comments to appear, I first tried // comment. Nope, synatx error. Next I tried /* */ which worked, but at the same time I accidently hit some key combination that put a * in column 7. Updated: apparently /* */ doesn’t work.
Whoa, backup. We have an auto comment / uncomment action for COBOL? Apparently so. Just like the Java editor, if you press Ctrl + / it automatically comments out the current line (or selection of lines). And Ctrl + \ automatically uncomments the line.
I’m going to assume that kudos goes to Adrian for that one. Now, if we only had that for RPG like everyone asks for :)
For some reason this week I keep finding myself with a lot of open editors and wanting to close all of them except for just one or two. Normally I’m working on a problem and someone stops by and we get off track investigating something else. When they leave I want to close all the other editors to get back to my original task.
I’ve discovered a pretty cool way to do this:
- Press Ctrl + Shift + E which opens the Switch to Editor dialog.
- Select the editors you want to keep open.
- Click the “Invert Selection” button.
- Then click on”Close Selected Editors”.
Viola, only the editors you want are still open. I’ve been using this with the Java, XML and properties file editors, but because of the beauty of Eclipse it works for any editors, including the Remote Systems LPEX editor for RPG and COBOL.
Fall and spring are usually busy times for conferences and user group meetings. This fall is proving to be no exception. Here is a list of upcoming events this fall that include content on WDSC and / or the RSE to help you plan your fall :)
- IBM webcast series on Accelerating the Modernization of System i Applications
- RPG and DB2 Summit (October 2 – 4)
- COMMON Focus (October 14 – 17)
- FASUG Application Development Day (October 23) (I’m presenting at this one)
- LISUG monthly meeting (October 24) (I’ll be presenting WDSC 7.0 What’s New and Creating Web Services with WDSC at this one)
- NESTU monthly meeting (October 25) (me again; FASUG, LISUG and NETSU are the 3 New York area user groups)
- System i Fall Technical Conference (November 5 – 9th)
- COMMON European Events (November 6 – 15th)
Updated: just got an email about SystemiNetworks’ RPG & Beyond Web conference September 18-19 and 25-26th. Looks like Susan Gantner is doing an RSE session and Aaron Bartell is doing a WDSC Goodies session.
Updated Sept 12: I built the original list from memory which apparently isn’t so good anymore! I forgot another one: iSeries DevCon2007 October 29 – 31st (thanks to Davin Wilfrid for the reminder!)
I was playing around with the integrated iSeries debugger in WDSC the other night and stumbled across two features I’d never noticed before and thought I’d share them here. In the Breakpoints view you can specify different ways to group breakpoints by selecting Group By > HowYouWantToGroup from the views pull down menu (that’s the upside down triangle). For example, if you are debugging a multi-tiered application and have some RPG, Java and JSP breakpoints, you could select Group By > Breakpoint Types to see them categorized by type. Here is an example:
The other feature is you can add multiple renderings to the memory view for a single field. When monitoring memory (right click on field and select Monitor Memory > Rendering) you see a list of all fields on the left side and when you select a field you see it’s memory on the right side with the rendering you selected when you added the field to the view. However you can add additional renderings by clicking on the plus sign in the top right corner of the view (there are two plus signs in the view, one adds additional fields and the other adds additional renderings for the selected field).
Background: the memory view shows the contents of memory for that field. If you select Hex then you see the raw bits. A rendering takes those raw bits and displays them as a data type; as EBCDIC for example. You can add your own renderings for Java and I believe there is a way to do this for RPG and COBOL. I’ll post that once I figure it out.
Even as a technical team lead on WDSC, I continually learning new things the tools can do. Paul Tuohy said in his keynote at this years TUG TEC conference, playing is one of the best ways to learn. I couldn’t agree more!
The current issue (August 2007) of the IBM Systems Magazine, i5 Business Systems edition, has a “Favorite Keyboard Shortcuts for WDSC” pin-up created by System i Developer. Unfortunately I can’t find a link to it online, but the magazine subscription is free.
I’ve memorized all the standard Windows shortcuts and Eclipse navigation shortcuts but I can never seem to remember the LPEX shortcuts so I now have it pinned up in my PWA (personal work area, aka cubicle). I’m hoping it falls within the IBM guidelines of appropriate and non-confidential materials :)
The pin-up also lists the outline view as the the System i Developer’s favorite WDSC feature. Which got me thinking; what is my favorite WDSC feature? Outline view, application diagram (I’m biased on this one), and extensibility are definitely runner-ups. But my favorite feature is without a doubt service entry points!
So, what’s your favorite?
Updated 09/20: A PDF of the pin-up is available on the System i Developers website here.
I was sitting beside an American Airlines pilot on a recent flight from Minneapolis to Chicago. He asked what I did and I replied my standard “I work for IBM as a software developer”. He replied that he had a computer at home but that he rarely used it because he wasn’t good with computers.
Ummm, don’t you fly an airplane, and isn’t and airplane one of the most sophisticated computers there is? (Anyone else here worried or is it just me?) Of course, he just didn’t think of the airplane as a “computer” since the computer is embedded within the overall system. The complex computer system inside the airplane was hidden by a much simpler user interface. I’m not suggesting that flying an airplane is easy or that the controls for an airplane are easy to learn. But for this trained pilot, flying the airplane seemed easier than using his home computer.
The same could be said for an iPod or today’s automobiles. Both have sophisticated computer systems inside that are hidden by a much simpler user interface. I firmly believe that hiding, or even getting rid of the user interface, is a great way to reduce the complexity of our software applications. This is one of the reasons why I’m a big believer in Web Services – having the computer systems talk to each other instead of having people in between. Or using scanners and RFID to input information instead of manually entering it.
At the same time I’ve always held the opinion that this doesn’t apply to me since I’m writing application development tools that are targeted to computer programmers. However, I’m finding it harder and harder to convince myself of this. Why shouldn’t we strive to create development tools that have just as much functionality but with as little “complexity” as possible. It’s a lofty goal but not an easy task. First we would need a good definition of “complexity” and I’m not about to tackle that in this posting.
One area where this often comes up is with preferences pages (it came up earlier today as I was working through some new features for the RSE). When designing new functions there are times when something could be done two or more different ways. Often the result is to add a new preference and allow the user to choose. At first glance this appears to be a good thing since it provides the users with additional flexibility. However, flexibility usually adds complexity.
Instead of adding a new preference, perhaps the design needs to be reworked to come up with a better solution that doesn’t require additional preferences. This is not an easy thing to do and can take considerably more time than the original design did, but in the end everyone benefits.
As for my airplane ride, we were just about to take off from Minneapolis and the pilot (the one flying the plane) came on the radio and said we couldn’t take off because the radar was down in Chicago. He didn’t say why, but I’m sure adding a new user interface option wouldn’t have helped :)
We are often asked “Where can I find information on WDSC?” My answer is now always: del.icio.us. In an earlier posting I made the case for tagging Web resources on WDSC. Since then, myself and a few others have been busy tagging everything we come across. So now if you go to http://del.icio.us/tag/WDSC you will find to be the most comprehensive list of WDSC resources out there. Ah, the power of Web 2.0. Everytime I find an article on WDSC I immediately tag it in del.icio.us.
If you are not already familiar with tagging, I would encourage you to learn (and contribute by tagging things!) It becomes very powerful, especially when combined with RSS or ATOM feeds. For example, you can get a list of all resources tagged “RSE” and “articles” by going to: http://del.icio.us/tag/rse+articles .
Ran into this… The System iNetwork site hosts a vBlog (video blog) called iStudio. The blog contains interviews hosted by Bob Cozzi with various IBM System i celebrities like Jim Herring and Elaine Lennox during the last COMMON conference.
Topics include: System i academic initiative, the new entry boxes and user-based pricing, mySQL, and the VIP program.
Also, a follow up to a previous post on the System i Innovation Challenge called Students… Win a Wii or iPod – what better way to attract young minds. Winners of the challenge were announced at the last COMMON where a team from Marywood took the prize by developing a web-based vacation planning tool. Congratulations!
The challenge was deemed successful at raising awareness of the platform and its benefits to students and academic institutions, and at acquiring an application to help attendees reserve time for the 2008 conference. :)