Planet i

News and information for the IBM i (System i / iSeries / AS400) community

July 03, 2009

ILE RPG programming tips and techniques

Tips to improve your programming skills

Good practices for the programmer The purpose of this post is to get you thinking about how to improve your programming skill set with an overarching goal of increased efficiency. We all have room for improvement. In my experience one of the biggest pitfalls in this profession is the lack of cooperation among programmers. All too often IT professionals are overly concerned about job security

July 03, 2009 12:47 PM

System i Management Tip

6/30/09 There's a backup version of the controlling subsystem (QCTL)

If you’ve changed attributes of the QCTL subsystem and lost track of what the defaults should be, or worse yet you’ve changed the controlling subsystem in some way that the system refuses to IPL properly, there’s a little known “backup” version of the controlling subsystem called QSYSSBSD. It’s specially protected so that it cannot be changed, only displayed. It’s always there, in the QCTL

July 03, 2009 12:47 PM

July 02, 2009

iSeries Redbooks

IBM BladeCenter JS23 and JS43 Implementation Guide

Redbook, published: Thu, 2 Jul 2009

- Featuring installation techniques for the IBM AIX, IBM i, and Linux operating systems
- Showing Live Partition Mobility scenarios
- Detailing AMS, IVM, and power management

This IBM® Redbooks® publication provides a detailed technical guide for configuring and using the IBM BladeCenter® JS23 and IBM BladeCenter JS43 servers.

July 02, 2009 01:30 PM

July 01, 2009

Midrange Jobs

Manager- Midrange/Storage at Express (formerly of The Limited) (Columbus, Ohio)

Mgr- Midrange/Storage Manages the Enterprise Mid-range systems: iSeries, Unix and Storage environments. Main responsibilities include but are not limited to the following: Must have current E...

July 01, 2009 02:50 PM

June 30, 2009

iDevelop

RSE, Anyone?

Lately, we've heard from several sources that attendance at courses,and interest in books, conference sessions, etc., on Remote System Explorer (RSE) may be waning a...

June 30, 2009 02:01 PM

June 26, 2009

System i5 New Generation Computing

RAP with automated IFS replication

The PTF is finally built and running in our test environments which provides the IFS replication capabilities to the Receiver Apply program using the QAUDJRN instead of the user journals. The User journals are very good at replicating the changes in most circumstances but we found a few small issues when testing at a [...]

June 26, 2009 07:51 PM

June 25, 2009

System i5 New Generation Computing

Problem with CPFA0A9 resolved

I was having problems with the sending of message CPFA0A9 which was received in an exception routine onto the message queue of our Receiver Apply Program. This stems from the message data which is sent being of type *CCHAR and CCSID 1200. Initially we tried to convert the message data using the iconv() functions but had [...]

June 25, 2009 08:39 PM

Search400

Top concerns of System i users in Europe

Here are the top concerns of European System i users, according to a survey taken by COMMON Europe:

  1. Satisfy internal customers
  2. Treat data security and confidentiality as a business risk
  3. Improve IT security and continuity
  4. Receive consistent high quality service and support from vendors
  5. Keep the skills current for the existing staff
  6. Make me grow as a more competent individual
  7. Do fast application development to fulfill business needs
  8. Build business skills in the information technology shop
  9. Standardize and consolidate IT infrastructure
  10. Attract the younger generation to centralized systems
  11. Easily exchange information with other companies/institutions
  12. Find applications that fulfill business needs
  13. Acquire and retain IT personnel
  14. Correctly measure the value of IT to business
  15. Integrate document management and unstructured data with core applications
  16. Assure better data warehousing with real answers to business questions

June 25, 2009 01:25 PM

Western Power Sports boosts online sales with the System i

Western Power Sports reworked its online presence using Web development tools on the System i, a move that has increased online sales of its power sports equipment fivefold.

Prior to the project, the Boise, Idaho-based company was only generating about 10% of its sales online. Now about half of its sales comes over the Internet, garnering more than 1 million page views, 17,000 orders and about $7.5 million in sales every month.

How did it happen? Well, it almost didn’t. The fast-growing company was outgrowing its outdated Web presence, and needed something that would better integrate with its existing System i platform.

“We didn’t have the time or the ability at that point to develop our own solution,” said Rody Cummings, the company’s IT director. “What we were looking for was a company to sell us a product and also provide a solution they could support.”

What Cummings found was that most products had steep, lengthy learning curves that Western Power Sports didn’t have the time to endure. So the company was leaning toward outsourcing its Web development entirely.

It decided to listen to one more pitch, from a company called Profound Logic. The software vendor sells RPGsp, an RPG-based Web development platform on the System i. Cummings said that halfway through the demonstration, he knew it was something that Western Power Sports could use.

A few weeks later, Western Power Sports had developed a new online platform that was implemented soon after.

“With our previous solution it would have taken a full week of me working with the product along with their team just to get a website online that still had no functionality,” he said.

June 25, 2009 01:21 PM

A bunch of System i videos on YouTube

nbsp;Midrange.com has four YouTube videos embedded in a post on the benefits of IBM’s Dynamic Infrastructure. The videos are of various System i personalities riffing on how cool the platform is. The videos were reportedly taken at the COMMON show in Reno. They star Trevor Perry, Pete Massiello, Justin Porter and Jim Oberholtzer, and there are a couple more (Wayne Madden and Lew Satur) at an IBM YouTube channel.

June 25, 2009 12:50 PM

Does this mean all System i users are headcases?

I just saw this job posting on midrange.com: Psychiatrist, American Hospital Service Group.

The description: “Great opportunity to work for your country as a psychiatrist. Candidate must have 2yrs experience and will evaluate,diagnoses & treat psychiatric disorders.”

June 25, 2009 12:44 PM

Twittering off the System i

SNDTWEET screen shotUsually when I think of the IBM System i, Twitter doesn’t pop into my head. Kisco Information Systems, a longtime IBM System i software vendor, is looking to change that.

Last week the Saranac Lake, N.Y.-based company announced a new release of SNDTWEET, an application that allows users to post, receive and reply to Twitter messages from a System i server. The company pitches the application as a way to turn Twitter into a modern-day SMS system for your shop.

For example, a system running some regular overnight processing could automatically send out a tweet to its followers (ie. the System i administrator and programmers) when it completes. If the tweet doesn’t go out, it’s likely there was a problem. System i Twitter users can send each other messages, or the company’s marketing department could set up a list of tweets to promote company announcements on certain days. Though a Twitter account’s default is to have all its tweets be public to the whole world, you can change that setting to private when you set up an account.

Is relying on Twitter as an SMS service good business practice? That is something you would have to figure out if you’re considering using this product. There are occasional outages on Twitter, and relying on an application to contact a third-party service might not be the best way to do system monitoring. Kisco is offering a 30-day free trial of the product if you want to check it out.

June 25, 2009 12:35 PM

June 24, 2009

Midrange Jobs

Psychiatrist at American Hospital Service Group (Arkansas)

Great opportunity to work for your country as a psychiatrist. Candidate must have 2yrs experience and will evaluate,diagnoses & treat psychiatric disorders. Completion of residency or fellowship in...

June 24, 2009 08:54 PM

June 23, 2009

midrange.com imho

IBM i Videos on YouTube

There are a few IBM i related videos that were created by IBM (during COMMON in Reno) starring various community luminaries. More can be found here: http://www.youtube.com/user/dynamicinfrastructur. Technorati Tags: ibm, ibm i, Marketing, video, youtube


June 23, 2009 08:00 PM

Search400

RPG as a service

Beyond the world of IBM i, the hottest topic in IT right now is “Cloud Computing,” which is essentially a mix of platform and software-as-a-service (PaaS and SaaS) offerings that are available on-demand. So it was with a little amusement and some interest that I read the press release from vLegaci offering RPGAAS. That’s right, RPG as a service.

“… designed for companies who don’t always have an RPG programmer available, or need quick, cost-effective programming results…”

After a year of reading emails from readers inquiring about a variety of topics, I have to think that there is a market for such a product, and vLegaci’s President, Steve Kilner, says that Gartner’s findings support this supposition.

“Consensus is emerging from IT thought leaders such as Gartner Group and Capers Jones that maintaining and modernizing legacy systems gives the best possible return on IT dollars,” said Kilner. “For businesses with legacy RPG systems, the dwindling pool of RPG programmers poses the challenge of how to get unfamiliar programmers up to speed rapidly on complicated legacy code. vLegaci addresses this through the use of its innovative program comprehension tool, Codelyzer. This static and dynamic analysis tool enables new programmers to quickly assess unfamiliar RPG programs, thereby enabling the concept of a service such as RPGAAS.”

What do you think? Is this a service your company could use?

June 23, 2009 04:17 PM

My Midrange Meddle

We should import more from Japan

Before the nationalists among you cry out in protest, I should explain that I am not advocating a widening of our trade gap. Instead, a colleague in our Asia Pacific subsidiary has just told me about an uprising by the IBM partner community in Japan. It sounds like another innovation from the East that could well be heading West.A group of over 70 IBM partners and Independent Software Vendors (

June 23, 2009 02:03 PM

iDevelop

Asking the Right Questions

We've asked a lot of questions of our own in recent blogs and and we've received great feedback for which we thank you. Last week's...

June 23, 2009 01:44 PM

June 21, 2009

ILE RPG programming tips and techniques

Advertising Policy

Free advertising is offered for a limited time and only for sites or products related the the IBM i system. ilerpgprogramming.com reserves the right to reject ads and/or re-size ads to fit the current layout style. Preferable ads sizes are 300x250 and 336x280 boxes, 728x15 link list, and 728x90 banner. Please no third-party ads!

This site is in no way liable for any damages resulting from advertising on this site, including too much or too little traffic. Usage statistics are not provided for free advertisement offer. Please also see our privacy policy.

June 21, 2009 09:20 AM

privacy policy

Privacy Policy for ilerpgprogramming.com
If you require any more information or have any questions about our privacy policy, please feel free to contact us by email at service@ilerpgprogramming.com.

At www.ilerpgprogramming.com, the privacy of our visitors is of extreme importance to us. This privacy policy document outlines the types of personal information is received and collected by www.ilerpgprogramming.com and how it is used.

Log Files
Like many other Web sites, www.ilerpgprogramming.com makes use of log files. The information inside the log files includes internet protocol ( IP ) addresses, type of browser, Internet Service Provider ( ISP ), date/time stamp, referring/exit pages, and number of clicks to analyze trends, administer the site, track user’s movement around the site, and gather demographic information. IP addresses, and other such information are not linked to any information that is personally identifiable.

Cookies and Web Beacons
www.ilerpgprogramming.com does not currently use first party cookies.

DoubleClick DART Cookie
.:: Google, as a third party vendor, uses cookies to serve ads on your site.
.:: Google's use of the DART cookie enables it to serve ads to your users based on their visit to your sites and other sites on the Internet.
.:: Users may opt out of the use of the DART cookie by visiting the Google ad and content network privacy policy at the following URL - http://www.google.com/privacy_ads.html

Some of our advertising partners may use cookies and web beacons on our site. Our advertising partners include .......
Google Adsense
These third-party ad servers or ad networks use technology to the advertisements and links that appear on www.ilerpgprogramming.com send directly to your browsers. They automatically receive your IP address when this occurs. Other technologies ( such as cookies, JavaScript, or Web Beacons ) may also be used by the third-party ad networks to measure the effectiveness of their advertisements and / or to personalize the advertising content that you see. www.ilerpgprogramming.com has no access to or control over these cookies that are used by third-party advertisers.

You should consult the respective privacy policies of these third-party ad servers for more detailed information on their practices as well as for instructions about how to opt-out of certain practices. www.ilerpgprogramming.com's privacy policy does not apply to, and we cannot control the activities of, such other advertisers or web sites.

If you wish to disable cookies, you may do so through your individual browser options. More detailed information about cookie management with specific web browsers can be found at the browsers' respective websites.

June 21, 2009 09:19 AM

System i Management Tip

6/19/09 How To Generate a Disk Analysis Report

Another way to see what is taking up your disk space is to view the i5/OS disk analysis report. To build the Disk Analysis file, use the following command:SBMJOB CMD(RTVDSKINF) JOB(RTVDSKINF) JOBQ(QSYSNOMAX)You can monitor the job by issuing the following:WRKACTJOB SBS(QSYSWRK)Job name = RTVDSKINFOnce the job finishes running, create the print report:SBMJOB CMD(PRTDSKINF RPTTYPE(*LIB)) JOB(

June 21, 2009 01:20 AM

Confessions of an iSeries Priest

Recommended PTFs for Enterprise Externder is Incomplete.

The list of V5R4 recommended PTFs for Enterprise Extender (EE) is incomplete. I had to open a PMR with the minions of our Lord Ib'm because the old testament SNA communiation controllers on our development coding system failed to connect to the production systems, so we were unable to use SAVRSTOBJ.

The support priest sent me the complete list of recommended PTFs for EE and we were missing three PTFs. I have since confirmed that those were probably the three that we needed because after applying them the systems are again able to communicate using the old protocol.

When I checked I found that the EE list noted above wasn't up to date. I've sent feedback to the keepers of the web site, but as a courtesy I thought I'd post the complete list here as well:

PTFReleaseCumulative TapeModules
MF402355407107*HPRIP ctlr with exchange ID defined will not vary on and SDLC XID has problem if HPR=*YES.
MF436295408305*HPRIP ctlr with exchange ID defined will not vary on.
MF422915408183DLUR and HPRIP controllers go vary on pending after Activate instead of VARIED ON, CPA58D1. MSCP changed to allow DLUR to recover on VTAM deactivate or activate.
MF424995408057NETWORK ID ALWHPTWR and HPR are *YES, ICF applications fail w/CPF5535, jobs remain in a UNKNOWN state. Sequence of BAD XID network frames case EE to be improperly initialized with invalid controller's values.
MF425875408057EE HPRIP controller remains in VaryOnPending status with no XID's being sent out.
MF456925401000EE using HPR and RTP receives timeout error. application joblogs show CPF5355. APPN&SrcSink shows RTPburst timer did not expire AND EE/HPR CONNECTION STALLS AND NO DATA IS SENT
MF442005408305EE endnode unable to locate a CICS region on ZOS LPAR
MF438915408305LDLC remains in a reset status, LatePrenegotiation XID does not send a NULL XID on its own.
MF458515401000HPR config is active, but active connections lock up, When you vary off APPC *HPRIP controllers and vl 07000C1F occurs, the process to activate PTF. An IPL will be needed to reset error condition. AND EE/HPR stops sending data when incoming stream data packet missing
MF462175401000EE task may block streams on gate before error is sent back
MF462375401000Vary On HPRIP CTL fails after IPL, XID does not complete
MF448975458305DLUR and HPRIP controllers go vary on pending after Activate instead of VARIED ON, CPA58D1. MSCP changed to allow DLUR to recover on VTAM deactivate or activate.
MF451705459104NETWORK ID ALWHPTWR and HPR are *YES, ICF applications fail w/CPF5535, jobs remain in a UNKNOWN state. Sequence of BAD XID network frames case EE to be improperly initialized with invalid controller's values.
MF442625458305*HPRIP ctlr with exchange ID defined will not vary on.
MF458815459104HEA fc181X and Virtual Ethernet fc268C lossing data in UDP layer
MF461225458305NETWORK ID ALWHPTWR and HPR are *YES, ICF applications fail w/ CPF5535 and will now accept retransmitted frames in BIND.
MF433295458183Partition/system crash with srcB6005121 on vary of EE controller
MF440725458183EE HPRIP controller remains in VaryOnPending status with no XID's being sent out
 545do not order - test statusMF44344 - EE/HPR ICF application fails. CPF5107 E015 unbind received RTP did not check for this error
MF463665451000Vary On HPRIP CTL fails after IPL, XID does not complete
MF462185451000EE task may block streams on gate before error is sent back
MF460635451000APPC using HPR/EE gets RTP timeout
MF460645451000EE endnode unable to locate a CICS region on ZOS LPAR

June 21, 2009 12:54 AM

June 20, 2009

ILE RPG programming tips and techniques

Using free format RPG IV

Basically all you need to add free format source code (calculation specs) to your RPG IV programs is the beginning "/free" and the ending "/end-free".

Here's a code sample used for removing the rightmost (last) hyphen from a string using a do while loop:
c/free
 // find last hyphen
    length = %len(%trim(VarString));
     dow length > 1 and %subst(VarString:length:1)<>'-' ;
      length=length -1 ;
     enddo ;
// remove that hyphen
  if %subst(VarString:length:1)='-' ;
    VarString = %replace('':VarString:length:1) ;
  endif ;
/end-free

Next, an example of CHAIN using file invtable with keys ininv (invoice number) and  invnd (vendor number).  Note that a KLIST is not necessary as defining key fields is much easier in free format RPG.  Don't forget to end each statement with a semicolon.
c/free
   chain(n) (ininv:invnd) invtable;
     eval FndUniq = %found;
/end-free

Comments are started with a double forward slash and do not require an asterisk in position seven.

//commenting often increases clarity and, therefore, programmer happiness

Example of calling a program from free format RPG, and passing parms ininv and invnd (invoice number and vendor). Note the Call is implied so it is unnecessary to include it when calling another program:

c/free
mypgm (ininv:invnd)
/end-free

June 20, 2009 09:18 PM

Rid your system of crossed up logical files

Every system runs the risk of logical file views that aren't pointing to the correct physical files.  I have run across this many times so it is one of the first evaluations I do for any new client.

If the logical file is simply used for reading a file incorrect results on reports and/or displays can occur, for example. Even worse though is if the logical is used for updating then the physical file being changed may be the wrong one. This can cause test programs to update files in your production environment and vice-versa.

Fortunately checking your system for and ridding yourself of "crossed-up" logical files is fairly easy.

We need only enough information about each file to determine the file type, the library where the file exists, and the files' parent library. We can retrieve all of this by using DSPFD to dump a list of all logicals in a library to an outfile. If the outfile does not exist the DSPFD command will create it. I normally run this one library at a time and especially for libraries that might have some ongoing development.

1. Command String

DSPFD FILE(TESTLIB/*ALL) TYPE(*ACCPTH) OUTPUT(*OUTFILE) FILEATR(*LF) OUTFILE(QGPL/LOGICALS)


2. Then select logicals where the resident library is not equal to the parent library.

RUNQRY QRYFILE((QGPL/LOGICALS)) RCDSLT(*YES)

Select Records

Type comparisons, press Enter.

Specify OR to start each new group. Tests: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS,ISNOT...
AND/OR                          Field                Test Value  
                                        APLIB             NE                    APBOL

The same query can be executed in SQL as such:

select apfile aplib, apbof, apbol from qgpl/logicals where apbof <> apbol

Of course there will be times when the different locations are acceptable. However, the list will usually be manageable and the mistakes should jump out like a sore thumb. Any crossed-up logicals will need to be recompiled over the correct library list. Depending on the number of changes happening on your system it may be a good idea to check again periodically.

June 20, 2009 09:17 PM

Run SQL statements automatically with RUNSQLSTM

STRSQL is a powerful and useful interactive tool (in the right hands) but it can be cumbersome to retrieve previous SQL statements, modify them and then run them again all the while hoping there are no typos. If you find yourself frequently entering the same SQL commands why not save them to a text file and automate the process?

I like to save the SQL statements in a source file named qtxtsrc. Once saved the SQL can be executed from a CL containing the RUNSQLSTM command.

In this example two inventory file field definitions were reversed during an upgrade and the data had to be swapped (mapped correctly) during the process. This can be accomplished with one SQL statement. Note that there is no need for messy work fields that might otherwise be used when coding the same solution in RPG.

Step 1. Create the text type source member.

Contents of the source member sqlfswap (saved as a text file):
update datalib/invenpf set field1 = field2, field2 = field1

Step 2. Create CL member sqlfswapcl:

ADDLIBLE mylib
MONMSG msgid(cpf0000)
RUNSQLSTM srcfile(mylib/qtxtsrc) srcmbr(sqlfswap)
MONMSG msgid(cpf0000)
endpgm

Step 3. Run the CL and check your results.

Of course the CL can be set up on the job scheduler (wrkjobscde) if your application needs to be run automatically at specified intervals and multiple sql statements can be added into the same text source member.

June 20, 2009 09:17 PM

FTP refresher part II - automate the iSeries file transfer

Now we can expand some on the basic information found in FTP Refresher part I - iSeries file transfer made easy.  Refer to part one if a quick review is necessary.

Using script files (file extension ".ftp") is one simple way to accomplish FTP automation.  There are many software packages that support automated FPT.  However, if we want more control with file overrides and error-checking  CL procedures can be used as this example explains.  The first requirement is to create a text file with the FTP statements. The statements can also helpful when entered manually during testing of your FTP automation.

The first FTP statement in this new text member is a log-on with a valid user-id and password.  The sign on is followed by a 'change directory' statement to set up the directory on the remote computer. The FTP directory is similar to a library name on the iSeries. The 'cd ..' sets the directory back one level for the location where the transferred file is to be placed on the remote system. The location can be specified as cd library-name as in "cd pospaylib".
The text file contains:

USER some_user_name fictitious_password
cd.. quote site lrecl=112 cy pri=10 sec=5
put mylib/pospay "acct_company_file(+1)"
put mylib/trailer "acct_company_file_trg(+1)"
quit

The 'quote site' statement defines the record length, block size, etc. on the remote system. CY is short for 'cylinders', PRI and SEC are short for 'primary' and 'secondary' respectively. The 'quote site' in this example is used by a remote mainframe to determine the record length and the number of primary and secondary cylinders for allocating storage space. Your situation may be slightly different and the 'quote' statement may or may not be required for any given FTP solution. The parameters for the 'quote' and 'put' statements will largely depend on requirements from your target system.

The 'bin' statement can optionally be added after the quote statement in order to transfer the file in binary but this also must match the specific requirements of the receiving computer.

The file name in the 'put' statement normally will be the actual name of an existing file on the target system. The target computer might be another iSeries, a mainframe, a Unix or a windows machine. In this example the remote system receives two files, the second being a one record trailer for totals.  The total record has to match or the batch would be rejected at the remote system and an FTP error was issued.

Next we need to create a CL to actually run the FTP.  First let the procedure copy the source statements from the text file into a qtemp file.

CPYF fromfile(mylib/qtxtsrc) tofile(qtemp/ftpsrc) frommbr(ppoftrns) tombr(ppoftrns) mbropt(*replace) crtfile(*yes)

Then override to the new file in qtemp.

OVRDBF file(ppoftrns) tofile(qtemp/ftpsrc) mbr(ppoftrns)

Next both INPUT and OUTPUT files need an override.  The file names INPUT and OUTPUT are intrinsically understood by the FTP command.  With the overrides in place the FTP file INPUT points to the source statements in our text file.  The override to the file named OUTPUT represents a text file where we store the results. 

A review of qgpl/qoutput will show all of the ftp statements including with transmission errors.  In part III we also use the OUTPUT file to check for errors during the transmission.

OVRDBF file(INPUT) tofile(qtemp/ftpsrc) mbr(ppoftrns)
OVRDBF file(OUTPUT) tofile(qgpl/QOUTPUT) mbr(OUTPUT)
CLRPFM file(qgpl/qoutput) mbr(output)

FTP 'nnn.nn.nnn.nn' replace with the actual name or IP address of the target system

The following copy statement will save the actual FTP results  to a separate file.

CPYF fromfile(qgpl/qoutput) tofile(qgpl/ftpout) mbropt(*add) fmtopt(*cvtsrc)

If no serious errors were found during the transmission it is a good idea for the procedure to do a CPYF to a historical recovery file. This file keeps track of every transferred record for safekeeping and auditing purposes. Of course it is best to write the history based on something unique, preferably a batch number and the date (if the FTP runs once daily). Note the from-file is the one specified the first put  statement in the text source member.

CPYF fromfile(pospay) tofile(pospayh) mbropt(*add) crtfile(*no) fmtopt(*NOCHK)

Don't forget to delete your overrides and clear out the temporary files.

DLTOVR file(INPUT OUTPUT)
CLRPFM file(qgpl/qoutput) mbr(output)
CLRPFM file(*libl/pospay)
DLTF file(qtemp/ftpsrc)

Lastly, if no errors where encountered, send a message that the procedure completed successfully.  The process is not really complete until it is determined if the receiving system received the transfer or if some errors were sent back. proceed to part III - FTP error checking

June 20, 2009 09:16 PM

FTP refresher part III - iSeries file transfer error checking

The FTP refresher course would not be complete without a discussion of error checking.  It is time to introduce a second CL procedure.  Refer to the actual ftp procedure as the "first" or calling procedure and the error checking routine as the "second" or called procedure.

In the previous discussion (refresher course part II) the results of the transmission from the file OUTPUT were copied from qgpl/qoutput to a physical file qgpl/ftpout.

The first procedure, the calling procedure,  needs a few variables declared.  Two are defined as alphanumeric and one is numeric.

DCL       var(&FTPERR)  type(*char) len(1)
DCL       var(&FTPDAT)  type(*char) len(60)
DCL       var(&RECS)      type(*dec) len(10 0)

When the FTP is run and control is passed back the calling procedure should immediately check for an empty file.  If the &RECS is zero then a message is sent and the FTP procedure is terminated.

RTVMBRD       file(qgpl/qoutput) mbr(output) nbrcurrcd(&RECS)
   IF   COND(&RECS *EQ 0) THEN(DO)
      SNDMSG   MSG('''File not transferred!   No FTP records found in the output file.  +
          See qgpl/qoutput(output) for details''') tousr(*SYSOPR)
      GOTO   cmdlbl(END)
   ENDDO

Before calling the error checking procedure we need override to the OUTPUT results file prior to calling the error checking procedure.

OVRDBF   file(OUTPUT) tofile(qgpl/ftpout)

Add a call statement for calling the second procedure.  The first CL will compile, but not run, even if the second procedure does not yet exist. 

CALL     pgm(qgpl/CHKFTP) parm(&ftperr &ftpdat)

Now create/compile the second procedure.

Example of the called procedure CHKFTP:

/**************************************************************************/
/* Name: CHKFTP                                                                                                                     */
/* Description:   CHECK FTP FOR ERRORS                                                                            */
/**************************************************************************/
              PGM       parm(&ftperr &ftpdat)

/* also define variables in the called error checker  */

               DCL       var(&FTPERR)  type(*char) len(1)
               DCL       var(&FTPDAT)  type(*char) len(60)
               DCL       var(&RECS)      type(*dec) len(10 0)

 /* declare the results file and initialize variables */
             DCLF     file(qgpl/ftpout) rcdfmt(*all)

            CHGVAR   var(&ftpdat) value(*blanks)
            CHGVAR   var(&ftperr) value('N')

/* read through the results and look for error messages*/
RCVF:
            RCVF
            monmsg(CPF0864) exec(RETURN)
 
            IF cond(%sst(&DATA 1 1) *EQ '4' THEN(DO)
            CHGVAR   var(&ftpdat) value(&DATA)
            CHGVAR   var(&ftperr) value('Y')
            ENDDO
 
            IF cond(%sst(&DATA 1 2) *EQ '53' *OR %sst(&DATA 1 2) *EQ '55') THEN(DO)
            CHGVAR   var(&ftpdat) value(&DATA)
            CHGVAR   var(&ftperr) value('Y')
            ENDDO

            GOTO      cmdlbl(RCVF)
            ENDPGM

The copy of qoutput file is checked for status messages that start with a '4' or '53' or '55' but only legitimate errors should be trapped.  The FTP error codes starting with '4', '53', and '55' denote the transmission has failed.  While extremely rare beware of the possibility that some superfluous messages could start with these characters.  If so the error checker will need to trap at a more detailed level.

If errors are detected the procedure should send a message and end without clearing the work files.  If the transmission is mission critical then further corrective action might be required to ensure completion of the transmission (e.g. manual FTP).

Most problems are noted in the setting up and testing phase.  Automated FTP in production can be very stable but the procedures must always be coordinated with certain changes on the remote system.

Next, the error flag and data parameters are passed back to the calling procedure and checked.

      IF   cond(&FTPERR = 'Y') THEN(DO)
         SNDMSG     MSG('''File not transferred!  Problem with FTP.  +
         Error code ''*CAT &FTPDAT *CAT''. See QGPL/QOUTPUT/OUTPUT for details''') +
         tousr(*SYSOPR)
         goto  cmdlbl(END)
     ENDDO

Finally make sure the main FTP procedure includes the ENDPGM tag.
END:   ENDPGM

The intent here is to provide a refresher for your understanding of FTP as opposed to providing cut and paste code.  A basic understanding of FTP is a prerequisite to implementing any of this code.

June 20, 2009 09:15 PM

FTP refresher part IV - sending and receiving PC files

You can send PC files to the i5 and receive i5 files on the PC. If using windows on the PC, go to the start/run dialog box and type 'cmd'. Change to the directory where either your PC files exist or where you want to store received files.

cd c:\myfiles\test-ftp-data

From the DOS command line start your ftp session.  If you connect to the iSeries remotely you may have to start your VPN connection first.

>ftp remote-sys   (where remote-sys is either the i5 IP or DNS address, either should work)

ftp starts, connection messages received, log-in required.
Connected to remote-sys.
220 Connection will close if idle more than 5 minutes.
User (remote-sys:(none)):  userID                         (enter your i5 signon userID and password)
331 Enter password:   (displayed as blanks)
230 user-id logged on.

Next, enter the mode for the transmission.  The mode is 'ascii' for text files and 'binary' for data files.
ftp>ascii
200 Representation type is ASCII nonprint.

FTP will not translate packed/zoned data but you can use the command CPYTOIMPF (copy to import file) to unpack the data if receiving from the i5.  This command is very flexible and handles decimal points, delimiters, negative numbers, etc.  It should not be necessary for text files however.

The transmission mode can be verified by typing the 'type' command. This step is optional.
ftp>type
Using ascii mode to transfer files.

Next issue the command to send or receive the files.
To retrieve file(s) from the i5:
ftp> get remote-lib/remote-file.remote-mbr to-pc-file.txt     (the i5 "from file.member" and PC "to file")

Several status messages received...
250 File transfer completed successfully
As well as a message  showing the size of the transferred file and the amount of time the transfer took.

To upload from the PC to the i5:
ftp> put pc-file-txt remote-lib/remote-file.remote-mbr

When finished type the ftp command:
ftp>quit

Then enter the dos command:
c:\>exit

Conclusion:  This example shows the simple transmission of a text file.  However, ftp is much more robust and can send/receive save files, transmit in binary, handle wildcards and do multiple put/get commands.  The FTP commands can be automated by using a script file (extension ".ftp"). 

June 20, 2009 09:15 PM

SQL in free format RPG

Do you use SQL and free format RPG independently but haven't really put the two together yet? If so then this article is for you.

Executing SQL statements in free format RPG may be a lot easier than you think. Doing so can streamline and speed up your legacy code.

Example of a simple select (to conditionally retrieve a field):

c/free
 //comment - get employee by company and last name
  exec sql
   select empno into :wkempno
      from datalib/empf
   where empco# = '100' and
     (lastnam = 'LeMaster' or lastnam = 'Lemaster');
 /end-free

Example two: Reading through a file using fetch cursor in free format should look something like this:

c//declare cursor
c/exec sql declare Cursor1 cursor as
c+   (select empno as myemp#, count(*) as mycount
c+     from myfile
c+     group empno
c+     order by empno)
c/end-exec
c//open cursor 
c/exec sql open Cursor1
c/end-exec
c/free
    dow sqlcod = *zero;
 /end-free
 //fetch records
c/exec sql fetch Cursor1 into recno;
c/end-exec
 /free
     if sqlcod <> *zero;
       iter;
     endif;
 //file processing statements added here
   enddo;
/end-free
//close cursor
c/exec sql close Cursor1
c/end-exec

Conclusion: one should not avoid using SQL code in free format RPG IV as doing so can improve the efficiency of legacy programs.

June 20, 2009 09:14 PM

Comparing SQL DDL with DDS for creating files.

There is a movement that has been taking place for quite some time to persuade the IBM i community to use SQL DDL instead of the old standby DDS when creating files. SQL DDL refers to the SQL data definition language which is used in conjunction with the SQL data manipulation language. Data definition statements include CREATE, ALTER, and DROP. There are some sound reasons for consideration of IBM's suggestion to move towards DDL.

First and foremost, the main reason to move to DDL is the future IBM is planning involves enhancements to DDL, not DDS. Similarly, SQL is universally accepted and the learning curve should be fairly minor. Other reasons to make the move are also substantive. The differences in DDS and DDL with respect to accessing data with logical files, indexes, and views are also at the heart of this discussion.

As you know with DDS a logical is nothing more than a source member with a key list for retrieving; viewing, joining, or updating, records in a particular order. You may already be familiar with the difficulties in creating complex join and combining physical views with logicals. Unlike DDS, DDL allows creating views over other views, the equivalent of logicals over other logicals, if you will.

In addition, DDL will allow creation of a column called the identity column that will keep a unique number that automatically increments by definition with no intervention required. SQL tables have had a unique row-id column for years so it's nice to finally get something similar on the System i. DDL also allows creating views over resultant fields, selecting data based on the WHERE clause and even more complex nested SELECT statements. Often, newly created DDL files can be accessed by existing RPG IV with native I/O requiring no changes to the program.

For a quick refresher here's an example of creating a new table, a view, and an index:
CREATE TABLE EMP001 AS SELECT * FROM EMPLOYEE WHERE ACT='1' and LOC = '001'
Fields can be explicitly defined by the CREATE statement which can also use a field reference file. Fields can be defined as primary keys, variable character fields, null or not null, dates, Long fields, currency, yes/no, embedded objects, or hyperlinks.

A view represents the results of a query:
CREATE VIEW EMPV001 AS SELECT * FROM EMPLOYEE WHERE ACT='1' and STATPROV='KY'


An index is similar to a logical file in that it becomes a separate object once created and allows retrieval based on key fields. The first index example allows duplicate records (same empno) while the second does not.
CREATE INDEX EMPI001 on EMP001 (empno)
CREATE UNIQUE INDEX EMPI002 on EMP001 (empno)

Performance appears to be another area that favors DDL over DDS, albeit only slightly and on a case-by-case basis. Retrofitting your programs to use DDL will sometimes mean changing native I/O to embedded SQL. Retrofitting can be automated but at some expense. Of course it will be expensive to devote a lot of programmer time to manually retrofit SQL into legacy code.

IBM provides an API, namely QSQGNDDL, to generate a SQL DDL source member from an existing object and also allows generating DDL using the Operations Navigator. From the iSeries Navigator select the appropriate connection, open Databases, open the System i folder, open Schemas, open the appropriate library, find the Table object and right-click and select "generate SQL...". The output can be sent to an SQL editor window or to the System i source file. Note that this will work even for objects without source code. Once the DDL is created in the source library the file is created with the command RUNSQLSTM, instead of CRTPF, CRTLF.

Currently it seems creating new files with DDL would be prudent for most installations. However, doing a major rewrite should only be considered after careful consideration of the scope of such a task. There is a free diagnostic reporting tool from one company, Xcase, which also happens to sell a tool for retrofitting DDS to DDL.

Conclusion:
The "worth it or not" discussion rages on but there can be no debate that the direction IBM is taking (for now) is to move toward standardization with SQL DDL when creating files. The "good ole" days of DDS are numbered. Now is the perfect time to brush up on your basic SQL skills but be wary of jumping into a large retrofitting project. Rather, review the methods that IBM provides and determine if the time required is worth the benefit. You can easily get started by creating your new logicals using SQL DDL. For now, DDL and DDS can co-exist and you can tweak your programming standards to become more DDL compliant.

There will undoubtedly be those that claim "If it ain't broke don't fix it...." but if we all thought like that we might still be sitting in caves rubbing rocks and sticks together. Hmmmmm... on second thought, maybe, Nah... that wouldn't be much fun.

June 20, 2009 09:14 PM

Coding without indicators

If you have spent any time changing the way your RPG programs process indicators, for example changing If *in99 = *on or If *in99 = '1' to simply If *in99 (all three statements evaluate the same to either 'true' or 'false') you may want to consider completely removing the indicators as a better use of your time. The reason is that indicators are inherently inefficient and are fast becoming obsolete in the grand scheme of things (read: IBM and the future).

One might ask if a program is working fine why is there any need to change. Well, if free format RPG is in your future this might force a reevaluation as indicators are rarely needed and most often they are not even allowed. Also, the indicators cut down on the readability of your code for any other person who might have to read it. The real question is why use the indicator in the first place? Was the indicator the result of an I/O operation? With RPG IV there is no need for I/O indicators since we can use built-in functions %found and %eof, or with an extender, %status)

Instead of using *in99 after a read or chain, use %found, or 'not %found'.

// use of bifs to eliminate indicators
Chain mykey myfile
if %found
..etc.

Or if you need to check for locking
// use of bif and extender to check record lock status
Chain(E) mykey myfile
if %status = 01218
..etc.

Another example is a READ loop that exits when end-of-file is reached;
READ myfile
DOW not %eof(myfile)
...etc.
READ myfile
ENDDO

Display files have always been a place where programmers tend to use a lot of indicators. This can be somewhat circumvented by naming indicators in the D specs by using field names defined as type 'N' fields which correspond with function keys pressed. Here are a couple of methods to accomplish naming display file indicators; Mapping Indicators to Names

If your legacy code contains indicators U1-U8 you might need to leave them or treat them as a special case. Similarly *INLR will still be valid in your code.

Conclusion:
By spending a little time removing indicators, and learning to code without them, RPG IV code can become more efficient and less cluttered. You will be making yourself ready for using more free format RPG. Future generations will exalt your efforts and put your name up in lights. Well, that last statement might have been a slight exaggeration.

June 20, 2009 09:14 PM

Confessions of an iSeries Priest

IBM PE's seven PTFs for V5R4.

While my pastoral duties at this community are normally rather dull, my favorite activity is working with the most holy code (i5/OS) and PTFs (Parchment Temporary Fixes). I especially love it when I find an error in the code that causes the cardinals and bishops in Rochester to do something drastic.

A couple months ago, as part of a HIPER recommendation, we installed PTF 5722SS1-SI34484. The following Monday morning the BACKUP job was looping forever waiting for an HTTP server job to end. We didn't associate it with the PTF right away because this isn't the first time the backup got held up by something like this. By the time we'd figured out that this was a trend we'd already installed another HIPER recommendation, PTF 5722SS1-SI34576, which superceded the one installed previously.

So we were now stuck in an untenable situation. We couldn't remove the PTF and we didn't want to reload the O/S. Being in this kind of pickle can really focus the mind. I ended up writing a program that detected these zombie HTTP server jobs and killed them with ENDJOBABN.

The minions of our Lord Ib'm eventually discovered that a thread in the HTTP job was prematurely destroying the list of open files. The job would then sit there forever waiting of the files to close not knowing that that list was gone. In the end they had to PE a bunch of PTF's and since two of them were HIPER recommendations the fixing PTF (SI35317) was also made a HIPER.

Final tally was seven PE'ed PTFs and one HIPER, all from one PMR.

June 20, 2009 08:56 PM

June 18, 2009

System i5 New Generation Computing

Is TigerDirect coining it in 1c at a time?

I was just going through my charges for my credit card and found a small and somewhat insignificant error, that is until you consider this could be happening to thousands of clients every day. Every order I have placed last month has been incremented by 1 cent when I check the invoice with my Credit [...]

June 18, 2009 11:41 PM

June 16, 2009

The Burns iBlog

More benefits of Rational Developer for i

As we continue to explore the merits of Rational Developer for i, one of the handy features (at least from your boss's perspective) is the ability to develop offline. In RDi, you may create any number of containers known as iProjects. These are created from within Remote Systems Explorer by clicking File, New, Project and IBM i Project (which you may have to drill down to). Any source physical file and/or any of the members contained within may be downloaded to an iProject by simply right clicking on it and selecting "Add to iProject". Choose your desired iProject and the source is magically downloaded to your hard drive. The iProjects themselves are simply folders contained within your Windows Documents and Settings directory, buried inside the IBM folder tree.

The Projects perspective allows you to navigate through your locally stored iProjects, much like RSE allows you to navigate libraries and files contained on System i. The big difference is that you need not be connected to your System i. You can be at 33,000 feet and still writing code instead of just reading SkyMall magazine and munching on oversalted peanuts. The LPEX editor will not care - it will provide the same syntax checking and outline capabilities you'd have in your cubicle.

Of course, one thing you cannot do is compile. Sorry, but the compiler exists only on System i. Don't expect that to ever change. However, RSE does allow you to verify your source code, which is the next best thing. Problem is, what about all those externally described data and device files that the compiler ever so nicely imports for you? IBM thought of that, fortunately. Any physical or device file object in your Remote Systems pane or Table View can be right clicked on and selected for "Cache File Descriptions". This little gem will import all record layouts in a manner which is friendly to the source code verifier. So while we can't compile and test from the road, we can at least do the majority of our coding and get those pedantic syntax errors cleaned up before we start chewing up CPU cycles with the host compilers.

After you've arrived safely back at the orifice, right click on any iProject or any of the components contained within, then select Remote Actions and Push Changes to update your source to System i. Naturally, the larger your programming staff, the more complex the issue of change management and version control gets, so most of the vendors in this arena provide plug-in products for RDi to officiate this more effectively. Rational has their own offering, known as Team Concert for i, although it is still in its infancy.

So would you consider cranking out RPG once the captain has turned off the seat belt sign ?

Thanks for sharing. Chris.

June 16, 2009 02:47 PM

Angus the iT chap

Hide, you bastards, hide!

chickenForums and blogs on the internet provide a means for people to offer their opinions in one form or another. Some people have the balls to have a blog that speaks their mind, and for which they take responsibility. Others do it with a pseudonym (er…. yeah), some of which are transparent (you know who I am), and some are hidden behind a fake identity for some kind of protection. The excuses range from “I don’t want my boss/company/spouse to know” to “I don’t care”.

There are other people who hide behind a fake identity and have no balls to write their own blogs, but simply troll other blogs or articles and comment (a verb?) their opinion from behind that fake identity. These people tend to miss some interesting and obvious facts, but of course, it does not really matter, they are protected behind their chicken coop walls, sprouting their pseudo-opinions.

Take for example, the recent Maxed Out article about Japanese iVendors starting a push to market the i themselves. Up popped a pseudo-opinion that claimed “IBM’s i is dead”. The irony of a claim that ~x~ is dead on a forum/article that is geared towards ~x~ was not lost on me, and I responded. Of course, my response was ignored and further psuedo-opinions were offered later in the thread, with a bunch of ’statistics’, none of which are verified or have sources. I guess if you are willing to hide your identity, then you can hide the truth by making some up.

I have recently been studying ‘Logical Fallacies’. The Skeptics Guide to the Universe says “A logical fallacy is a false or incorrect logical principle. An argument that is based upon a logical fallacy is therefore not valid.” My favorite logical fallacy is ‘Ad hominem’: An ad hominem argument is any that attempts to counter anothers claims or conclusions by attacking the person, rather than addressing the argument itself. I may even be indulging in this blog entry!

While logical fallacy is used regularly on forums, blogs and comments, most people continue to indulge. Separating the debate from the fallacy can sometimes be difficult. It might be simpler if there were internet police! Of course, this would mean restriction of free speech, and while I sometimes find I want to edit or remove comments from forums I manage, it becomes very obvious very quickly as to who has something valuable to say. The most difficult part then, is weeding out the noise.

A discussion on a LinkedIn forum to which I belong is another example of noise generation. A commenter, who obviously has passion for the topic, posted strong opinion. My responses were as strong, but opposing theirs. And then they disappeared. In this instance, the reply was not pseudo-opinion, and the poster was not hiding their identity. There are many reasons for a lack of response from someone on a forum. I have sporadic access to the internet this week, and have not been able to be as active in some places as usual. Yet, it seems that most non-responders hide for other reasons.

In this particular case, I was disappointed at the lack of response. In the past, such strong opinion has offended, causing responders to lash out, hide, or both. Often the hastily produced opinion is full of emotion, and not well thought out, and cannot be supported any longer. Yet in debate, acknowledgement of an error or acknowledgement of an opposing point of view is straightforward, and can move the debate along. The wonderful world of forums and blogs provides us with a means to run, without completion of the discussion.

I pledge that I will continue to check myself for misuse of logical fallacy, will offer correction when I am wrong, and work towards a completion of an intelligent debate. Feel free to identify when I leave something unfin

June 16, 2009 09:26 AM

June 15, 2009

Planet i Blog

Changes for 15 June 2009

June 15, 2009 05:25 PM

iDevelop

Japanese Imports and a New Role for COMMON?

We've written a lot about the future of the IBM i community in recent posts--and this one is no exception. We hadn't planned to return...

June 15, 2009 03:33 PM

RPG Cafe

SQL Tools and RDi

We get a lot of questions about SQL tools and Rational Developer for i (RDi). While we didn't ship the Eclipse Data Tools Platform (SQL tooling) in RDi 7.1 or 7.5, they can be added in after the fact. This is one of the great advantages of an extensible, integrated development environment like Eclipse (which RDi is built on top of). Dmitry Baev, one of the RDi developers, has a new article published in IBM Systems Magazine on Using the Eclipse Data Tools Platform and SQL Tools with RDi.

June 15, 2009 12:57 PM

June 12, 2009

System i5 New Generation Computing

IFS paths and some interesting points.

As part of building of a process to replicate changes to IFS objects outside of the Journal environment we have today we came across a couple of interesting points. 1. The maximum path size defined for an Audit Journal entry is 5002 (this includes 2 bytes which are the length of the path) 2. The maximum length [...]

June 12, 2009 05:50 PM

Object Auditing Attribute for Directories

The IFS replication process is going along pretty well and we have a number of new features in test which should make the final implementation of a real time replication process pretty good. One of the problems we faced was how to ensure the object auditing values were correctly set for all objects below a [...]

June 12, 2009 05:30 PM

iSeries Redbooks

Journaling - Common Remote Journal Questions

Technote, published: Fri, 12 Jun 2009

Remote journal users often have questions about their remote journal environments.

June 12, 2009 01:30 PM

June 11, 2009

Angus the iT chap

Abysmality

Today, I was told that due to IBM’s “abysmal marketing”, our platform was suffering. On top of that, said critic went on to tell me that he no longer had any loyalty to the IBM brand. In addition to my frustration, I became quite animated in my response. Yet, he really did not deserve my passion.

The photo for this blog entry was one I took at COMMON a couple of years ago. One of the attendees, a formidable RPG programmer in his time, had stolen some time in an almost secret place, to have a quick snooze. This tired and worn out programmer came to mind today while I listened to the ranting of the IBM critic. There are so many of our community who are just going through the motions of their job, waiting for their retirement, or their firing. In an earlier post titled Narrowosity, I proposed that we recognize the business acumen of the long-time RPG programmer, and transfer that knowledge to the youth of our community - those with enthusiasm, vigor and a willingness to learn.

Today’s conversation was all about brick walls. The critic had something negative to say about everything IBM had done in recent years. And, upon some digging, I discovered it was all about the fact that IBM had not done things the way he thought it should happen - hence, everything IBM had done was ‘wrong’. I asked him this specifically - did he think IBM’s marketing was abysmal because he had not seen it? His answer was affirmative. Digging further, I asked if he thought he considered himself a demographic to which IBM should market? He admitted that IBM should not be marketing to him, and I suggested his reasoning of why IBM marketing was abysmal was based on a flawed premise.

We discussed his perception that IBM had changed the name too many times. I mentioned the new Power Systems servers being a merger of i and p - not just a name change - and he spat back with an interesting question. How was he supposed to know about that? At that moment, I realized the futility of my defense of the platform. If he was not willing to stay abreast of the industry which provided his livelihood, then he truly had signed out, and was waiting for the terminal to be switched off. I had no business in dragging him back to a reality from which he had escaped.

I was interviewed for a recent article, in which many questions were raised on how to maintain your career and keep your job in these ‘troubling’ economic times. Of course, the most simple solution is to spread confidence wherever you go, but getting over your own negativity is a hurdle most people are unwilling to jump.

After reading the article, I reconnected my thinking to my earlier idea that injecting enthusiasm into many people in our industry would be difficult. Certainly, there are many who have turned on the screen saver of negativity and hopelessness. But for those who are simply frustrated at the lack of positivity around them, I believe there is some hope. Mostly because, these people are geniuses at what they do, and need some connection to the passion of their own start in I.T.

It is a simple answer. Take one enthusiastic, upcoming developer. Find one iGenius with an outlook of despair and gloom. Call the latter a mentor, and connect the two. This equation will definitely result in one young improved business analyst iDeveloper. And maybe, just maybe, some of that enthusiasm and vigor will rub off on the iGenius. Who knows, they may stop saying “AS/400″!!

There may not be much time before all the iGeniuses actually retire, and we are left alone with the critics.

Get to it..

June 11, 2009 10:51 PM

Domino Diva

Women in IT

Last evening I read a wonderful article about women in IT (Making the Climb Women in IT Team Up To Succeed).  The article featured three different women and how they have been working to help other women succeed in IT.  The three women are Carolyn Leighton, Dee Dee Lear, and Sandy Carter.  Carolyn and Dee Dee made some great points that really struck me as I read the inserts about each of them.  Carolyn Leighton is the founder of Women in Technology International (WITI).  In the excerpt about her (Carolyn Leighton), she brought up a very critical point.  Carolyn states "today our biggest obstacles to having women as CEOs is how women view themselves".  This is so true.  I was told by my family I couldn't go to college because I was a girl and didn't need to.  I didn't believe that and therefore didn't let that stop me.  In general, I have never let other people's perceptions of what their role of women in society is stop me from doing what I wanted to do and was interested in doing.  Carolyn Leighton has started 6 companies, she clearly hasn't let her vision be stunted.

In the excerpt about Dee Dee Lear, she makes a very interesting observation.  She talks about young women graduating from college now and states "They have an untainted view and they don't see the glass ceiling.  It's the 'me generation'.  This generation doesn't let the outside world determine who they'll be and they aren't intimidated.  They've seen women as CEOs of large, worldwide Fortune 100 companies and women running for the highest political offices in their countries."

Sandy Carter has done some amazing things with the EXploring Interests in Technology and Engineering (EX.I.T.E) Camp for elementary girls.  She explains in the article that in the first camp, zero of the 100 girls in the camp were interested in IT at the start of the camp.  During the camp, the girls programmed a robot, created a Web site and pretended to be sales reps.  At the end of the camp, 98 out of the 100 girls wanted to pursue a career in IT.  This ties directly into Carolyn Leighton's point that the biggest obstacles women have today is how they view themselves.

I hope you enjoy reading the article as much as I did.

June 11, 2009 10:01 PM

June 09, 2009

Young i Perspectives

YiPs Get 10% Discount on Jeff Olen’s New Book “IBM i Programmer’s Guide to PHP”

I have read this book cover to cover and can honestly say that it is a great reference for anyone looking to move into PHP on IBM i. The topics are well organized, the examples are informative, and the information is easy to understand. This is a must read.

And just for all of you YiPs followers in the community, MC Press is offering a 10% discount code. This code is good on sale prices too, so snatch it up.

You can find the book at this link:
http://www.mc-store.com/5096.html

During checkout use the discount code “YOUNGPROF” to get your 10% off.

June 09, 2009 07:53 PM

Search400

IBM cuts prices to a bunch of Power Systems upgrades

Big Blue has slashed prices for most of 20 different upgrades on Power Systems, some by as much as 54%. Some of the upgrades include moving from a Power 5+ processor to a Power 6, and adding memory. There are two upgrade changes that are price increases.

The announcement letter has a list of all the price changes, but there is also a more detailed look at what the feature upgrades are.

June 09, 2009 03:17 PM

iDevelop

Are You Well Red?

During recent classes and presentations, it has become obvious to us that many programmers out there are just not aware of the wealth of information...

June 09, 2009 01:49 PM

System i Management Tip

6/08/09 Create a Virtual Printer

Use the following steps to create a virtual printer that will print directly from an output queue to a network deskjet or laser printer. Start System i Navigator on your PC (If you do not have System i Navigator on your PC then it is possible to complete this task using CRTDEVPRT from a 5250 session)Select Basic operations, Printers.Right click and select Add Printer.Use the wizard and accept

June 09, 2009 11:53 AM

June 08, 2009

Search400

Take System i classes over the Web

IBM System i high availability software vendor Vision Solutions is now offering a host of courses on the System i platform and high availability. The great majority of them are related to Vision products like iTera, Mimix and Orion, but there is one introductory course on the i5 operating system.

The press release describes the new online program, and you can start checking them out at Vision’s education page.

June 08, 2009 05:59 PM

June 05, 2009

Mid-Deranged

IBM Announces the new Power 995 Server

Rochester MN - The new IBM Power™ 995 server is the most powerful server ever offered by the IBM Galactic Empire. This server provides out-of-this-world performance with massive scalability. The Power 995 is by far the most remarkable technological product of the IBM Galactic Empire. It is a brutal ...

June 05, 2009 06:00 PM

Egyptians More Advanced than Earlier Believed

Luxor, Egypt - An Egyptian-Dutch team unearthed a hall in a tomb at Zira Abu al-Naga, on the Westbank at Luxor. The tomb was thought to be another burial site because of its proximity to the tomb of Tutankhamun. However, upon entering the tomb, the discovery of a lifetime ...

June 05, 2009 06:00 PM

Real Manufacturer of the Batmobile Revealed

Armonk NY – Early photos of the prototype version of the famed Batmobile have revealed the real manufacturer as none other than IBM. Who else could pull off making a car with heavy armor plating, a high performance engine, rocket boosters and a weapons system controlled by an IBM Bladecenter ...

June 05, 2009 06:00 PM

IBM Global Services Going Green

New York, NY - In the relatively modest confines of the Helen Mills Theater in New York City, Mike Daniels, Senior Vice President of IBM Global Technology Services, outlined IBM’s plan to save energy. As part of IBM’s Project Big Green, the services arm of IBM announced today that its ...

June 05, 2009 06:00 PM

IBM Power Systems Reset Button

Rochester, MN - In order to better compete with the growing competition from PC Windows Servers, IBM plans to install a reset button on the newly announced Power Systems and change all IBM i operating system error message text to read “General Protection Fault – Press RESET.” This new ...

June 05, 2009 06:00 PM

New Discovery on Mars: Positive Evidence of Life!

HOUSTON, TX - Scientists rejoiced on Friday after learning NASA's Phoenix Lander photographed what appeared to be evidence of life on Mars. At first inspection of the photo there seemed to be nothing remarkable about it. However, when magnified several times, it became clear there was something more than just rocks ...

June 05, 2009 06:00 PM

New Integer Found!

ARMONK, NY – IBM research labs today announced a breakthrough in the discovery of a new integer. The as-yet unnamed number has been positively located between seven and eight. Seven and eight had been thought to be consecutive for many years. Early responses from IBM scientists indicate that there is going ...

June 05, 2009 06:00 PM

The New IBM Network Boy

Rochester MN - With the recent news of IBM's intent to acquire the Nintendo Corporation it was further annouced today another joint development effort between IBM and Nintendo. IBM is announcing the Network Boy, a small handheld device that communicates with your IBMii, System i  or AS/400 network via RF and allows ...

June 05, 2009 06:00 PM

COMMON Entrance Exam

Chicago, IL – COMMON user group president Randy Dufault has expressed concern at the increasingly low quality of people joining COMMON. He has decided to implement a new entrance exam required for all new applicants for membership into the group in hopes to weed out the undesirable. The exam questions ...

June 05, 2009 06:00 PM

IBM Plans to Acquire Nintendo Corporation

ARMONK, NY - Samuel J. Palmisano let the cat out of the bag at the recent Annual IBM Stockholders Meeting held in Knoxville, Tennessee. He announced that IBM is in the process of acquiring Nintendo Corporation. In an attempt to shake the reputation that IBM sells old technology and to ...

June 05, 2009 06:00 PM

Angus the iT chap

We have come a long way..

This is the TV ad from 1977 for the Apple 2.

June 05, 2009 04:33 PM


Powered by Planet!
Last updated: July 04, 2009 06:01 AM