<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="FeedCreator 1.7.3" --><rss version="2.0">
	<channel>
		<title>Programming</title>
		<description />
		<link><![CDATA[http://www.mcpressonline.com/index.php?option=com_content&task=section&id=17]]></link>
		<lastBuildDate>Sun, 19 May 2013 15:14:28 +0100</lastBuildDate>
        <generator>FeedCreator 1.7.3</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mcpressonline/mobilitynews" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="mcpressonline/mobilitynews" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
			<title>PHP for RPG Programmers: Variables, Arrays, and Functions </title>
			<link>http://www.mcpressonline.com/web-languages/php-for-rpg-programmers-variables-arrays-and-functions.html</link>
			<description>PHP makes use of variables, arrays, and functions. But can you tell them apart? 
&lt;img width="76" height="76" style="margin: 5px; float: left;" alt="david shirey" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/david_shirey.jpg" /&gt;Written by David Shirey
In my &lt;a href="http://www.mcpressonline.com/web-languages/weird-simple-stuff-in-php-operators.html"&gt;last&lt;/a&gt; column, we talked about some of the special operator symbols that PHP uses, which can be really confusing when you read PHP unless you're familiar with them. Remember what they were? Remember the -&amp;lt; operator? Really, you do? That's so sad then because there is no such operator (at least as far as I know, although I would hate to put any serious money on it; PHP operators seem t...</description>
			<category>Programming</category>
			<pubDate>Wed, 15 May 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Just What Release Am I On?</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-just-what-release-am-i-on.html</link>
			<description>Find out by using the Retrieve Product Information (QSZRTVPR) API.
Written by Bruce Vining
A question that seems to come up on a regular basis is "How can a program tell what release level of the operating system it's running on?" To answer this question, we'll look at a category of system APIs that many of you may not have reviewed in the past—the Software Product APIs, which are introduced here....</description>
			<category>Programming</category>
			<pubDate>Wed, 15 May 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: BLOBs, CLOBs, and XML Part 1</title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-blobs-clobs-and-xml-part-1.html</link>
			<description>The IFS is a great place to store stream files but it has some serious limitations. This series of articles presents an alternative.
Written by Joe Pluta
Recently, several different requirements ended up colliding in a way that led me to do a lot of research on using Large Objects (LOBs) in my RPG programs. While they require a little bit of extra up-front investment, LOBs provide a way to integrate large-scale use of stream file data into your enterprise system....</description>
			<category>Programming</category>
			<pubDate>Wed, 01 May 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Simon's Solutions: Exploring the QSCMATPG and QSCCRTPG APIs</title>
			<link>http://www.mcpressonline.com/apis/simon-s-solutions-exploring-the-qscmatpg-and-qsccrtpg-apis.html</link>
			<description>Open the door to the OMI program template.
&lt;img width="76" height="76" style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" /&gt;Written by Junlei Li
In a &lt;a href="http://archive.midrange.com/mi400/200105/msg00187.html"&gt;post&lt;/a&gt; in the &lt;a href="http://archive.midrange.com/mi400/index.htm"&gt;MI400-L&lt;/a&gt; mailing list at &lt;a href="http://archive.midrange.com/"&gt;midrange.com&lt;/a&gt;, Simon Coulter documented the Materialize Program (QSCMATPG) and Create Program (QSCCRTPG) APIs in detail, including the parameter lists and related usage notes. Simon also designed a couple of CL commands to make it easier and more secure to use these APIs. With this information, you can open the door to the Original MI (OMI) program template, which allows a System/38 program t...</description>
			<category>Programming</category>
			<pubDate>Wed, 01 May 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>What You Should Know About the Format of Records Saved to a Save File</title>
			<link>http://www.mcpressonline.com/rpg/what-you-should-know-about-the-format-of-records-saved-to-a-save-file.html</link>
			<description>When a file contains variable-length fields, the data of the fixed-length fields of its deleted records can still be retrieved.
&lt;img width="76" height="76" style="margin: 5px; float: left;" alt="juan macias" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/juan_macias.jpg" /&gt;Written by Juan Macias
A known technique to retrieve the records deleted from a file consists of saving the file to a save file and extracting the records from the save file. This technique is based on the fact that, in many cases, the records of the file are stored in the save file, maintaining their format, apart from a status byte added by the system at the beginnin...</description>
			<category>Programming</category>
			<pubDate>Wed, 17 Apr 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Introduction to SQL, Part 4</title>
			<link>http://www.mcpressonline.com/sql/introduction-to-sql-part-4.html</link>
			<description>Editor's note: This article is an excerpt from &lt;a href="http://www.mc-store.com/5505.html"&gt;Mastering IBM i&lt;/a&gt;, published by MC Press.
&lt;img width="76" height="76" style="margin: 5px; float: left;" alt="jim buck" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/jim_buck.gif" /&gt;Written by James Buck and Jerry Fottral
SQL's version of a logical file is a view. Although a view is conceptually similar to a logical file, SQL's greater flexibility and ability to use functions and expressions make views far more powerful than logical files. For example, in a logical file there is no way to select group summary records based on the value returned by a column function, as we did in the fina...</description>
			<category>Programming</category>
			<pubDate>Wed, 10 Apr 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Practical SQL: OLAP, Part 1</title>
			<link>http://www.mcpressonline.com/sql/practical-sql-olap-part-1.html</link>
			<description>Online Analytical Processing (OLAP) adds a variety of processing features to SQL syntax that makes it much more useful as an ad hoc analysis tool, and this article introduces the first of those functions.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
SQL has always been a great tool for querying data. The problem is that SQL doesn't always lend itself to the sort of pattern analysis that's needed in enterprise data processing. Something goes awry in the database and the only way to identify the source of the problem is...</description>
			<category>Programming</category>
			<pubDate>Wed, 03 Apr 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Be Kind to Your DBCS Data</title>
			<link>http://www.mcpressonline.com/rpg/be-kind-to-your-dbcs-data.html</link>
			<description>Learn how to ensure the validity of extended character string assignment via the CPYECLAP instruction.
&lt;img style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" width="76" height="76" /&gt;Written by Junlei Li
IMHO, high-level languages (HLLs) in IBM i do not treat character strings containing double-byte character set (DBCS) characters seriously enough. For example, assigning a long character string containing DBCS characters to a shorter character variable using the EVAL operation code of RPG would probably truncate the DBCS data in the source string and therefore lead to an i...</description>
			<category>Programming</category>
			<pubDate>Wed, 03 Apr 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Weird, Simple Stuff in PHP: Operators</title>
			<link>http://www.mcpressonline.com/web-languages/weird-simple-stuff-in-php-operators.html</link>
			<description>Yeah, they're sort of the same as in RPG…but not really.
&lt;img style="margin: 5px; float: left;" alt="david shirey" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/david_shirey.jpg" width="76" height="76" /&gt;Written by David Shirey
Over the last few articles, I have been on a PHP kick, talking about the language in general and how it integrates into the i in particular. The next step, in the twisted overgrown forest that is my mind, is to take a look at some specific things in PHP that are different from what we're used to in RPG. Not a tutorial, but maybe an appendix to the tutorial or book you might be using if you're trying to make that ...</description>
			<category>Programming</category>
			<pubDate>Wed, 20 Mar 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Determining Key Values</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-determining-key-values.html</link>
			<description>Let's return to the Retrieve Database File Description (QDBRTVFD) and Copy Numeric Value (CPYNV) APIs.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
In developing a general-purpose utility to detect decimal data errors, we have made use of a few APIs. In the article "&lt;a href="http://www.mcpressonline.com/apis/the-api-corner-in-search-of-decimal-data-errors.html"&gt;In Search of Decimal Data Errors&lt;/a&gt;," we saw how the &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/quslfld.htm"&gt;List Fields (QUSLFLD)&lt;/a&gt; API can be used to find all numeric fields, within a user-specified file record format, that are defined as either zoned decimal or packed decimal. In addition to discovering the da...</description>
			<category>Programming</category>
			<pubDate>Wed, 20 Mar 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Introduction to SQL, Part 3</title>
			<link>http://www.mcpressonline.com/sql/introduction-to-sql-part-3.html</link>
			<description>Editor's note: This article is an excerpt from Mastering IBM i, published by MC Press. 
Written by Jim Buck and Jerry Fottral
If you tell SQL to retrieve rows that have the same column values, it will do that, duplicating those rows in the result table. For example, if you wanted to list the employee numbers of any employees assigned to any project, you might simply type......</description>
			<category>Programming</category>
			<pubDate>Wed, 13 Mar 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: Flexible Parameters, Part 3</title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-flexible-parameters-part-3.html</link>
			<description>As we move to service programs, OPM RPG programs get left out in the cold, but creative parameter use can keep them in the mix until you get a chance to convert them.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
Encapsulating business logic is all about parameters. In the &lt;a href="http://www.mcpressonline.com/rpg/practical-rpg-flexible-parameters-part-1.html"&gt;first article&lt;/a&gt; in this series, I covered optional parameters. In the &lt;a href="http://www.mcpressonline.com/rpg/practical-rpg-flexible-parameters-part-2.html"&gt;second article&lt;/a&gt;, I introduced service programs into the mix by using a service program as an adapter to an existing RPG program with a complex parameter list. Service programs are the...</description>
			<category>Programming</category>
			<pubDate>Wed, 06 Mar 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Convert Authority Special Values to and Back from MI Authority Bits</title>
			<link>http://www.mcpressonline.com/rpg/convert-authority-special-values-to-and-back-from-mi-authority-bits.html</link>
			<description>Learn a basic authority-related technique along with a practical Print Private Authorities utility.
&lt;img style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" width="76" height="76" /&gt;Written by Junlei Li
In IBM i, there are authority special values defined at the OS level, which are used by authority-related CL commands and APIs, and there are other authority special values defined at the Machine Interface (MI) level, which are used by &lt;a href="#minau"&gt;Authorization Management MI instructions&lt;/a&gt;. The meanings of these two sets of authority values are almost identical; however, their representati...</description>
			<category>Programming</category>
			<pubDate>Wed, 06 Mar 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>The CL Corner: More Character-String Enhancements for CL</title>
			<link>http://www.mcpressonline.com/cl/the-cl-corner-more-character-string-enhancements-for-cl.html</link>
			<description>Let's look at the new %CHECK, %CHECKR, and %SCAN built-ins of CL.
Written by Bruce Vining
In last month's article, "How Would You Like That Character String Trimmed?," we reviewed the new CL built-ins %TRIM, %TRIML, and %TRIMR. This month, we'll look at three more CL built-ins that IBM has provided by way of 7.1 PTF SI49061. The new built-ins, which are supported with both the OPM and ILE compilers, are %CHECK, %CHECKR, and %SCAN....</description>
			<category>Programming</category>
			<pubDate>Fri, 01 Mar 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Enhance Your SQL Queries with User-Defined Table Functions</title>
			<link>http://www.mcpressonline.com/sql/enhance-your-sql-queries-with-user-defined-table-functions.html</link>
			<description>Simplify your SQL SELECT statements, provide an interface to pass parameters to create dynamic tables, automatically log access to tables, and create a single point of maintenance for the SQL code you use repeatedly.
&lt;img style="margin: 5px; float: left;" alt="jim staton" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/jim_staton.jpg" width="76" height="76" /&gt;Written by Jim Staton
In my previous article, "&lt;a href="http://www.mcpressonline.com/rpg/reuse-your-rpg-code-with-sql-user-defined-functions.html"&gt;Reuse Your RPG Code with SQL User-Defined Functions&lt;/a&gt;," I discussed how you could reuse RPG business logic in SQL by taking an RPG program or service program that returns a single value and then using the SQL CREATE FUNCTION command to m...</description>
			<category>Programming</category>
			<pubDate>Wed, 20 Feb 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Diagnosing Decimal Data Errors</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-diagnosing-decimal-data-errors.html</link>
			<description>Consider the advantages of the Convert Hex to Character (cvthc) API.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
In developing a general-purpose utility to detect decimal data errors, we have made use of a few APIs. In the article "&lt;a href="http://www.mcpressonline.com/apis/the-api-corner-in-search-of-decimal-data-errors.html"&gt;In Search of Decimal Data Errors&lt;/a&gt;," we saw how the &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/quslfld.htm"&gt;List Fields (QUSLFLD)&lt;/a&gt; API can be used to find all numeric fields, within a user-specified file record format, that are defined as either zoned decimal or packed decimal. In addition to discovering the data type of each field, we were als...</description>
			<category>Programming</category>
			<pubDate>Wed, 20 Feb 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: Flexible Parameters, Part 2</title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-flexible-parameters-part-2.html</link>
			<description>As parameter lists get more complex, making parameters optional gets harder, but service programs can help.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
This series is all about encapsulating your business logic. In the &lt;a href="http://www.mcpressonline.com/rpg/practical-rpg-flexible-parameters-part-1.html"&gt;first article&lt;/a&gt; in this series, I showed you how to use optional parameters to make your called program a little more flexible. This technique works very well in simpler cases when you have just a few parameters and some are used less frequently than others. However, optional parameters become a bit more...</description>
			<category>Programming</category>
			<pubDate>Wed, 06 Feb 2013 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Simon's Solutions: Prepared to Be Surprised by QCMD?</title>
			<link>http://www.mcpressonline.com/apis/simon-s-solutions-prepared-to-be-surprised-by-qcmd.html</link>
			<description>Learn the practical techniques to take advantage of the IBM-supplied request processors.
&lt;img style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" width="76" height="76" /&gt;Written by Junlei Li
In a shell environment (for example, a UNIX Shell environment, or the QShell or PASE Shell environment provided by IBM i), you can run a list of commands all at once by simply separating the commands by semicolon (;) operators. For example, to obtain an estimated running time of a time-consuming program, you can invoke the target program in a QShell or PASE Shell session via the followi...</description>
			<category>Programming</category>
			<pubDate>Wed, 06 Feb 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>The CL Corner: How Would You Like That Character String Trimmed? </title>
			<link>http://www.mcpressonline.com/cl/the-cl-corner-how-would-you-like-that-character-string-trimmed.html</link>
			<description>Let's look at the new %TRIM, %TRIML, and %TRIMR built-ins of CL.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
Over the past year, IBM has continued to enhance CL in order to make our lives, as developers, easier. In the previous article, "&lt;a href="http://www.mcpressonline.com/cl/the-cl-corner-new-support-for-cl-commands-lets-you-know-when-a-command-ends.html"&gt;New Support for CL Commands Lets You Know When a Command Ends&lt;/a&gt;," we saw how a PTF enables the system to call a program of your choosing when a given CL command completes processing. Likewise, in an earlier series of articles, starting with "&lt;a href="http://www.mcpressonline.com/cl/the-cl-corner-introducing-the-new-run-sql-command.html"&gt;Introducing the New Run SQL Command&lt;/a&gt;," we ...</description>
			<category>Programming</category>
			<pubDate>Fri, 25 Jan 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Technology Focus: IBM i Web Application Building Tools</title>
			<link>http://www.mcpressonline.com/dev-tools/technology-focus-ibm-i-web-application-building-tools.html</link>
			<description>While use of IBM i servers for hosting Web sites doesn't seem to be expanding, the demand for means of opening IBM i applications to the Web is burgeoning.
&lt;img style="margin: 5px; float: left;" alt="john grist" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/john_grist.jpg" width="76" height="76" /&gt;Written by John Ghrist
As the Internet becomes more entrenched in business life, the issue of making applications that run on IBM i servers has to be more carefully parsed these days. While few businesses are running corporate Web sites directly on their i machines, accessing i-based applications is getting more emphasis than ever, at least ...</description>
			<category>Programming</category>
			<pubDate>Mon, 21 Jan 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>New Zend Toolkit: Part 2</title>
			<link>http://www.mcpressonline.com/web-languages/new-zend-toolkit-part-2.html</link>
			<description>Now, let's look at defining parms and calling programs.
&lt;img style="margin: 5px; float: left;" alt="david shirey" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/david_shirey.jpg" width="76" height="76" /&gt;Written by David Shirey
With the excitement of the holidays over, it's now time to continue with our review of how to call an RPG program from within a PHP script. We had started this &lt;a href="http://www.mcpressonline.com/rpg/php-and-rpg-together-at-last.html"&gt;two&lt;/a&gt; columns ago by looking at how to do this using the old Aura/Easycom toolkit that had been incorporated into Zend Server prior to release 5.6. That toolkit was procedural in nature, so it was pretty intuitive to look at. My &lt;a href="http://www.mcpressonline.com/web-languages/new-zend-toolkit-part-1.html"&gt;last&lt;/a&gt; column got us into the new,...</description>
			<category>Programming</category>
			<pubDate>Wed, 16 Jan 2013 06:00:16 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Detecting Decimal Data Errors</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-detecting-decimal-data-errors.html</link>
			<description>Take advantage of the Copy Numeric Value (CPYNV) MI instruction.
Written by Bruce Vining
Last month, in the article "In Search of Decimal Data Errors," we saw how the List Fields (QUSLFLD) API can be used to find all numeric fields, within a user-specified file record format, that are defined as either zoned decimal or packed decimal. This month, we'll look at one approach to testing the values of each of these zoned decimal and packed decimal fields for decimal data errors....</description>
			<category>Programming</category>
			<pubDate>Wed, 16 Jan 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Simplified Management of SQL Procedures and Functions </title>
			<link>http://www.mcpressonline.com/sql/simplified-management-of-sql-procedures-and-functions.html</link>
			<description>The recently announced Technology Refresh #5 for the IBM i 7.1 release includes an enhancement that makes management of SQL stored procedure and function objects easier.
&lt;img style="margin: 5px; float: left;" alt="kent milligan 117x117" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/kent_milligan_117x117.jpg" width="76" height="76" /&gt;Written by Kent Milligan
SQL procedures and functions have been supported by DB2 for i for many releases. This support enables developers to create procedural SQL objects like the example procedure shown in Figure 1. When the SQL Create Procedure statement in Figure 1 is executed, DB2 for i generates a C program object into the...</description>
			<category>Programming</category>
			<pubDate>Wed, 02 Jan 2013 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: Flexible Parameters, Part 1</title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-flexible-parameters-part-1.html</link>
			<description>As we write more modular code, flexible parameter passing becomes ever more important, and this is the first article to address the nuances of the subject.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
In order for two programs to communicate, they have to pass data. For most non-trivial applications (other than logging), this is typically a two-way conversation, if only for the called routine to return a completion code. Often, much more information is communicated, and typically this is done through a parameter list....</description>
			<category>Programming</category>
			<pubDate>Wed, 02 Jan 2013 06:00:05 +0100</pubDate>
		</item>
		<item>
			<title>New Zend ToolKit: Part 1</title>
			<link>http://www.mcpressonline.com/web-languages/new-zend-toolkit-part-1.html</link>
			<description>Forget about the old Zend Toolkit! Let's start using the new one.
Written by David Shirey
In my last column, I outlined how to call PHP and RPG programs from each other. I used as the basis for this the old i5 Toolkit from Easycom that was part of the Zend product prior to release 5.6, because I figured a lot of people still have that. But I sort of promised that next time I would do the same thing using the new, true Zend Toolkit. Well, it's next time....</description>
			<category>Programming</category>
			<pubDate>Wed, 19 Dec 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: In Search of Decimal Data Errors</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-in-search-of-decimal-data-errors.html</link>
			<description>This tool enables the FndDDE program to easily find all numeric fields, which is a pre-req to finding field values that result in a decimal data error.
Written by Bruce Vining
Have you ever had an application program that failed with message MCH1202 – Decimal data error? If not, good for you! But for everyone else, and there are many of us, this is one dreaded error message. Alex M. recently asked if a utility program could meet the following requirements:...</description>
			<category>Programming</category>
			<pubDate>Wed, 19 Dec 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Introduction to SQL, Part 2</title>
			<link>http://www.mcpressonline.com/sql/introduction-to-sql-part-2.html</link>
			<description>Editor's Note: This article is an excerpt from Mastering IBM i (MC Press, 2011). 
Written by Jim Buck and Jerry Fottral
In the first article of this series, we began to examine the basic form of an SQL statement to obtain information from a database table or tables:...</description>
			<category>Programming</category>
			<pubDate>Wed, 12 Dec 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: Looping with BIFs</title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-looping-with-bifs.html</link>
			<description>Learn what the built-in functions %FOUND and %EOF are and how to use them to loop through files.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
One of the most common business tasks is to loop through a file and process records. While many variations of code can be used for this particular task, over the years the community has tended toward a few basic techniques. This is a common occurrence in programming—so much so, in fact, that the idea has been codified into the concept of a &lt;a href="http://en.wikipedia.org/wiki/Design_pattern"&gt;design pattern&lt;/a&gt;. The book &lt;a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612"&gt;Design Patte...</description>
			<category>Programming</category>
			<pubDate>Wed, 05 Dec 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Simon's Solutions: Monitor for End Job Operations, Part II</title>
			<link>http://www.mcpressonline.com/rpg/simon-s-solutions-monitor-for-end-job-operations-part-ii.html</link>
			<description>Learn critical cleanup techniques that target end-of-job due to end job commands.
&lt;img style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" width="76" height="76" /&gt;Written by Junlei Li
This article continues the discussion we started in &lt;a href="http://www.mcpressonline.com/rpg/simon-s-solutions-monitor-for-end-job-operations-part-i.html"&gt;Part I&lt;/a&gt;. Let's start by looking at invocation exit programs and procedures.
&amp;nbsp;
If an MI process phase is terminated and the process was not in termination phase, then the invocations are terminated. Invocation exit programs/procedures set for the terminated invocations are allowed to run. Invocation entries (aka call stack entries) are t...</description>
			<category>Programming</category>
			<pubDate>Wed, 05 Dec 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Reuse Your RPG Code with SQL User-Defined Functions</title>
			<link>http://www.mcpressonline.com/rpg/reuse-your-rpg-code-with-sql-user-defined-functions.html</link>
			<description>What? You haven't used a UDF before? No worries. There's nothing to it.
&lt;img style="margin: 5px; float: left;" alt="jim staton" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/jim_staton.jpg" width="76" height="76" /&gt;Written by Jim Staton
Recently, one of our programmers came to me with a question about retrieving some information from our iSeries. He was using a business intelligence (BI) tool to analyze picking errors across several warehouses, and he needed a way of retrieving the warehouse area for a specific warehouse and item location. Unfortunately, that information was not in a table in our system, but rather was calculated by a...</description>
			<category>Programming</category>
			<pubDate>Wed, 21 Nov 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Processing the QLOCALE System Value</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-processing-the-qlocale-system-value.html</link>
			<description>Find out how to use internationalized IFS path names.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
This is the fourth in a series of articles related to dynamically accessing and processing system values. In the first article, "&lt;a href="http://www.mcpressonline.com/apis/the-api-corner-in-search-of-system-values.html"&gt;In Search of System Values&lt;/a&gt;," we saw how the &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qcdrcmdd.htm"&gt;Retrieve Command Definition (QCDRCMDD)&lt;/a&gt; API could be used to access the list of valid system values for the release of the IBM i our program is running on. This list of valid system values was retrieved by using the IBM-provided &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/cl/dspsysval.htm"&gt;Display System Value...</description>
			<category>Programming</category>
			<pubDate>Wed, 21 Nov 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Technology Focus: Can Your Software Apps Pass the Test?</title>
			<link>http://www.mcpressonline.com/general/technology-focus-can-your-software-apps-pass-the-test.html</link>
			<description>Whether just for use in-house, or destined for sale, software apps must be tested before being put into production environments. Testing tools can help significantly.
&lt;img style="margin: 5px; float: left;" alt="john grist" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/john_grist.jpg" width="76" height="76" /&gt;Written by John Ghrist
There's pretty much no getting around it: New software applications have to be tested before putting them into general use. However, unless producing software for sale is your primary line of business and you already have a testing process in place, the odds are that your enterprise could use some help in th...</description>
			<category>Programming</category>
			<pubDate>Mon, 19 Nov 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Introduction to SQL, Part 1</title>
			<link>http://www.mcpressonline.com/sql/introduction-to-sql-part-1.html</link>
			<description>This article is an excerpt from &lt;a href="http://www.mc-store.com/5505.html"&gt;Mastering IBM i&lt;/a&gt; (MC Press, 2011). 
&lt;img style="margin: 5px; float: left;" alt="jim buck" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/jim_buck.gif" width="76" height="76" /&gt;Written by Jim Buck and Jerry Fottral
Structured Query Language (SQL) has become the mainstay for data manipulation on most platforms today. It is important for today's IBM i professional to understand the traditional DDS tools, but most new database systems are created and manipulated using SQL. The intent of this series of articles is to expose the reader to both the traditional tools and the latest tools and concepts. SQL is ...</description>
			<category>Programming</category>
			<pubDate>Wed, 14 Nov 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Practical CL: The 32-Character Solution</title>
			<link>http://www.mcpressonline.com/cl/practical-cl-the-32-character-solution.html</link>
			<description>Since the System/38, we've had to deal with the implied 32-byte length of character parameters on the command line; this article provides the workarounds.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
It doesn't matter where I'm working, how skilled the staff is, whether it's new development or mature legacy systems, it never fails that every couple of years I come across the old (and I do mean old) 32-character limitations on character parameters passed from the command line. It's a simple issue, really, but one that ...</description>
			<category>Programming</category>
			<pubDate>Wed, 07 Nov 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>How Much Storage Is Left in Your Main Storage Pools?</title>
			<link>http://www.mcpressonline.com/rpg/how-much-storage-is-left-in-your-main-storage-pools.html</link>
			<description>Learn an easy and efficient way to determine the amount of unallocated main storage.
Written by Junlei Li
There's no doubt that knowing the amount of unallocated storage in the main storage pools is important to system operators. But how to do that?
&amp;nbsp;
The Work with System Status (WRKSYSSTS) command and the Work with Shared Storage Pools (WRKSHRPOOL) command allow operators to manage main storage pools, but neither of them reports the information we're looking for....</description>
			<category>Programming</category>
			<pubDate>Wed, 07 Nov 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Modernization Webinar: Make Innovation a Priority</title>
			<link>http://www.mcpressonline.com/general/modernization-webinar-make-innovation-a-priority.html</link>
			<description>Proper planning is the key.
&lt;img style="margin: 5px; float: left;" alt="eden watt" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/eden_watt.jpg" width="76" height="76" /&gt;Written by Eden Watt
Editor's Note: This article introduces the Able-One webinar on application modernization.
&amp;nbsp;
Technology is now the leading factor for innovation in 71 percent of businesses, according to an IBM study. IT professionals have become acutely aware of this over the past decade, with the exponential progress of the Internet, social media, mobility, cloud computing, and the possibilities with advanced software and infrastructure. IT management is ...</description>
			<category>Programming</category>
			<pubDate>Fri, 02 Nov 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Cool Things: The Select STMF Utility</title>
			<link>http://www.mcpressonline.com/rpg/cool-things-the-select-stmf-utility.html</link>
			<description>Take advantage of this simple IFS file access utility. &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
Written by Mike Faust
Do you have an application that reads a data file from the IFS? This utility will allow your application to prompt the user to select the file to be processed. The utility is made up of an RPGLE program (SELECTSTMF) and a display file (SLCTSTMFFM). Figure 1 shows the main screen for SELECTSTMF....</description>
			<category>Programming</category>
			<pubDate>Fri, 26 Oct 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The CL Corner: A CL Command to Scan for a String of Characters </title>
			<link>http://www.mcpressonline.com/cl/the-cl-corner-a-cl-command-to-scan-for-a-string-of-characters.html</link>
			<description>Find a character pattern within a variable.
Written by Bruce Vining
Last month, in "A CL Command to Scan for Characters," we built the command Scan Characters (SCNCHR). The SCNCHR command returns the position of the first character within a CL variable that is found in a list of search-for values. This month, we'll look at how to provide a Scan String (SCNSTR) command....</description>
			<category>Programming</category>
			<pubDate>Fri, 26 Oct 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>PHP and RPG: Together at Last</title>
			<link>http://www.mcpressonline.com/rpg/php-and-rpg-together-at-last.html</link>
			<description>Today is as good a time as any to start.
&lt;img style="margin: 5px; float: left;" alt="david shirey" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/david_shirey.jpg" width="76" height="76" /&gt;Written by David Shirey
In the previous &lt;a href="http://www.mcpressonline.com/web-languages/php-1-what-you-need-to-know-before-you-start.html"&gt;two&lt;/a&gt; &lt;a href="http://www.mcpressonline.com/rpg/how-php-will-change-things-for-rpg-developers.html"&gt;articles&lt;/a&gt; that I have written for this column, we took at look at what PHP is and does, and how to get started on the road to PHP expertise. Hopefully by now you've had a chance to start getting familiar with PHP syntax and how to create and test simple PHP scripts. And maybe you've even taken your first steps in object orientation by experimenting with creating and using PHP classes. If not, well, don't be too ...</description>
			<category>Programming</category>
			<pubDate>Wed, 17 Oct 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Performing CCSID Conversions Under Program Control</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-performing-ccsid-conversions-under-program-control.html</link>
			<description>Learn how to use the iconv() API.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
For the last two months, in the articles "&lt;a href="http://www.mcpressonline.com/apis/the-api-corner-in-search-of-system-values.html"&gt;In Search of System Values&lt;/a&gt;" and "&lt;a href="http://www.mcpressonline.com/apis/the-api-corner-accessing-system-values.html"&gt;Accessing System Values&lt;/a&gt;," we've been using the subprocedure ConvertBuffer() to convert the UTF-8 (CCSID 1208) encoded XML output of the &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qcdrcmdd.htm"&gt;Retrieve Command Definition (QCDRCMDD)&lt;/a&gt; API to the CCSID of the running job. In those articles, any discussion of the ConvertBuffer() subprocedure was deferred to a later article. This is that "later" article. The source for the su...</description>
			<category>Programming</category>
			<pubDate>Wed, 17 Oct 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>The CL Corner: A CL Command to Scan for Characters </title>
			<link>http://www.mcpressonline.com/cl/the-cl-corner-a-cl-command-to-scan-for-characters.html</link>
			<description>Find characters within a variable.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
Last month, in "&lt;a href="http://www.mcpressonline.com/cl/the-cl-corner-a-cl-based-implementation-of-rpg-built-in-check.html"&gt;A CL-Based Implementation of RPG Built-in %Check&lt;/a&gt;," we built the command Check Characters (CHKCHR). The CHKCHR command returns the position of the first character within a CL variable that is not found within a list of valid values. Based on reader requests, this month we'll look at how to implement a Scan Characters (SCNCHR) command. The SCNCHR command will return the position of the first character within a CL variable ...</description>
			<category>Programming</category>
			<pubDate>Fri, 05 Oct 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: RPG and IBM WebSphere MQ</title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-rpg-and-ibm-websphere-mq.html</link>
			<description>WebSphere MQ is IBM's flagship product for providing reliable inter-platform messaging, and accessing MQ from RPG is easy once you understand the techniques.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
I have a hard time with the rebranding of IBM's MQSeries to WebSphere MQ; it's always seemed to me to be one of the more random renamings. MQSeries had great brand recognition as it was. But regardless of the name, MQ has always provided a powerful queuing architecture, and I guess a rose by any name holds true here. T...</description>
			<category>Programming</category>
			<pubDate>Wed, 03 Oct 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Simon's Solutions: Monitor for End Job Operations, Part I</title>
			<link>http://www.mcpressonline.com/rpg/simon-s-solutions-monitor-for-end-job-operations-part-i.html</link>
			<description>Learn critical cleanup techniques that target end-of-job due to end job commands.
&lt;img style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" width="76" height="76" /&gt;Written by Junlei Li
Author's note: This article is one of a series of articles to memorialize Simon Coulter, an outstanding IBM i expert who contributed much to the prosperity of the IBM i platform. I thank Gwen Hanna, Simon's partner, for providing the biography of Simon at the end of &lt;a href="http://www.mcpressonline.com/rpg/simon-s-solutions-which-subsystem-are-you-in.html"&gt;the first article of "Simon's Solutions&lt;/a&gt;."
&amp;nbsp;
As one the most robust operating systems and application systems in the world,...</description>
			<category>Programming</category>
			<pubDate>Wed, 03 Oct 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>The API Corner: Accessing System Values</title>
			<link>http://www.mcpressonline.com/apis/the-api-corner-accessing-system-values.html</link>
			<description>Use the Retrieve System Values API.
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
&lt;a href="http://www.mcpressonline.com/apis/the-api-corner-in-search-of-system-values.html"&gt;Last month's article&lt;/a&gt; demonstrated how the &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qcdrcmdd.htm"&gt;Retrieve Command Definition (QCDRCMDD)&lt;/a&gt; API could be used to access the list of SYSVAL special values associated with the DSPSYSVAL command, thereby removing the need to know in advance what system values are valid for the system the program is running on. The sample program then loaded these special value names into the array SysVals. This month, we'll look at how the &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qwcrsval.htm"&gt;Retrieve System Values (QW...</description>
			<category>Programming</category>
			<pubDate>Wed, 19 Sep 2012 06:00:10 +0100</pubDate>
		</item>
		<item>
			<title>Simplify SQL "With" Common Table Expressions </title>
			<link>http://www.mcpressonline.com/sql/simplify-sql-with-common-table-expressions.html</link>
			<description>Use the WITH keyword to make your SQL statements easier to code and maintain.
Written by Sam Lennon
Common table expressions (CTEs) allow you to break down complex SQL logic into smaller pieces. This makes development and testing easier, and when you come back to the code next year you'll understand it more quickly. That can't be bad, and a CTE is not hard to use. In this article, I'll provide working examples of CTEs that demonstrate their ease of use and the clarity they can provide....</description>
			<category>Programming</category>
			<pubDate>Wed, 19 Sep 2012 06:00:08 +0100</pubDate>
		</item>
		<item>
			<title>IBM Integrated Web Application Server for i: Free. Integrated. Simple.</title>
			<link>http://www.mcpressonline.com/dev-tools/ibm-integrated-web-application-server-for-i-free-integrated-simple.html</link>
			<description>Want a fast, easy way to deploy Web applications on IBM i? Does WebSphere Application Server seem too daunting? IBM Integrated Web Application Server for i is the solution!
&lt;img style="margin: 5px; float: left;" alt="steve pitcher" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/steve_pitcher.gif" width="76" height="76" /&gt;Written by Steve Pitcher
&lt;a href="http://www-03.ibm.com/systems/i/software/ias/"&gt;IBM Integrated Web Application Server for i (IAS)&lt;/a&gt; is a lightweight Java-based Web application server. Although released as a PTF in IBM i 5.4, if you're running &lt;a href="http://www-03.ibm.com/systems/i/index.html"&gt;IBM i&lt;/a&gt; 6.1 or 7.1, the product is as an integrated component of the operating environment. 
&amp;nbsp;
What does this offer you? Well, if you h...</description>
			<category>Programming</category>
			<pubDate>Wed, 12 Sep 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Practical RPG: Queuing, Part III: Display Files, Output Queues, and the Alert Function </title>
			<link>http://www.mcpressonline.com/rpg/practical-rpg-queuing-part-iii-display-files-output-queues-and-the-alert-function.html</link>
			<description>Data queues are an integral part of the operating system of the IBM i. This article shows you how data queues can extend the functionality of system objects you use every day.
&lt;img style="margin: 5px; float: left;" alt="joe pluta" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/joe_pluta.jpg" width="76" height="76" /&gt;Written by Joe Pluta
In my previous &lt;a href="http://www.mcpressonline.com/rpg/practical-rpg-queuing-part-i-data-queues.html"&gt;two&lt;/a&gt; &lt;a href="http://www.mcpressonline.com/rpg/practical-rpg-queuing-part-ii-keyed-data-queues.html"&gt;articles&lt;/a&gt; on data queues, I focused more on the technical details of using the data queue APIs in your programs. This article is a little different: it centers on the ways that data queues are used by the &lt;a href="http://www-03.ibm.com/systems/i/index.html"&gt;IBM i&lt;/a&gt; itself. Seeing how IBM uses data queues may give you some ideas as to how...</description>
			<category>Programming</category>
			<pubDate>Wed, 05 Sep 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>Yikes! It's CPF4131!</title>
			<link>http://www.mcpressonline.com/rpg/yikes-it-s-cpf4131.html</link>
			<description>Learn the ins and outs of level-checking.
&lt;img style="margin: 5px; float: left;" alt="junlei li" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/junlei_li.jpg" width="76" height="76" /&gt;Written by Junlei Li
In &lt;a href="http://www-03.ibm.com/systems/i/index.html"&gt;IBM i&lt;/a&gt;, high-level language (HLL) programs are dependent on receiving, at run time, an externally described file (a database file, or a device file, such as a display file, or a printer file) whose format agrees with what was copied into the program at compilation time. For this reason, the system provides a level-checking function that ensures that the format is the same. Level-checking occurs on a record-format basis when the fi...</description>
			<category>Programming</category>
			<pubDate>Wed, 05 Sep 2012 06:00:08 +0100</pubDate>
		</item>
		<item>
			<title>The CL Corner: A CL-Based Implementation of RPG Built-in %Check </title>
			<link>http://www.mcpressonline.com/cl/the-cl-corner-a-cl-based-implementation-of-rpg-built-in-check.html</link>
			<description>Find characters that don't belong!
&lt;img style="margin: 5px; float: left;" alt="bruce vining" src="http://www.mcpressonline.com/images/stories/AuthorPhotos/bruce_vining.jpg" width="76" height="75" /&gt;Written by Bruce Vining
I recently received the following from Wayne R.: "I use RPG's %CHECK function to check if any characters are not valid. Is there something similar in CL?" RPG's %Check built-in, if you're not familiar with it, returns the first position in a variable that contains a character that is not in a list of valid characters. If, for instance, you had a variable with a value of 'cabbage', then comparing this to a list of valid values such as 'a...</description>
			<category>Programming</category>
			<pubDate>Fri, 31 Aug 2012 06:00:15 +0100</pubDate>
		</item>
		<item>
			<title>BCD and Zend Forge PHP Market Alliance</title>
			<link>http://www.mcpressonline.com/dev-tools/bcd-and-zend-forge-php-market-alliance.html</link>
			<description>Two companies that see app modernization as the future of the IBM i join hands to facilitate that goal.
Written by John Ghrist
Business Computer Design International and Zend Technologies have formed a market partnership that aims to promote use of each others' PHP-related development tools for modernization of IBM i applications....</description>
			<category>Programming</category>
			<pubDate>Fri, 31 Aug 2012 06:00:10 +0100</pubDate>
		</item>
	</channel>
</rss>
