- ... driver.1
- The pile is a partial
CGI script because it is not runnable by itself and requires a
piledriver for execution.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... chapter2
- The MIC Style Guidlines provide much useful
insights into using MIC.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
arbitrary1.1
- Arbitrary as long as they comply to the
MIC-Datatype Interface Specification; see C
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... fieldspace1.2
- A
logical grouping of data fields covered later.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... MIC1.3
- Introduced in MIC 2.0, and
refined in version 2.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
pile.1.4
- Note that the MIC spec does not require the user to have these
subroutines in their piles, nor are they required for the
proper functioning of the interface or the program.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... .fs1.5
- Suffixes
are case-insensitive.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
inputs2.1
- It is possible, however, to have fields that are completely
affected by programmatic inputs (i.e., the program takes their values
from other fields, etc.)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... handled2.2
- Any proper implementation
of a data type system should have a type that accepts all inputs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... it.3.1
- Do not escape the control file,
however, since it is pure Perl code.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
fieldspace.3.2
- Fieldspace definitions elsewhere will actually be
potent, but it is considered bad style.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... pile.3.3
- If,
for some reason, you wish to maintain state between page calls, then
you not want to undef your globals. This should be done very
carefully, however, and is rarely ever needed or preferred to
alternative methods.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
`MIC.'4.1
- If a form tag has the MICfieldspace parameter, then it
will be specially processed by MIC; it is not prepended, however,
since it is not MIC specific tag.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... page4.2
- Contained in the $content variable
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... twice.4.3
- That is why the use of vpage is
discouraged in favor of vinstatiated.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... proccessed4.4
- The MICif tag, and
all logic tags, are, in fact, strictly potent at runtime.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... scripting.4.5
- The special variable $cgi is
available for this and other purposes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... inside.4.6
- Nested groups have been tested to some extent
at the time of writing, but it must be acknowledged that there are a
couple known minor bugs with nested groups. The behavior and code
appear, however, basically sound and the known bugs should be easy to
fix (they are already analyzed) when the need arises. That is not to
say that more extensive tests/usage will not turn up more fundamental
problems, though.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
field.4.7
- At this point, the term field might become a bit
confusing. Field does not necessarily refer to a blank field like a
text input device in HTML. A field may be associated with any input
device; e.g., a radiobutton, checkbox, select list, etc..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... undefined.4.8
- One of MIC's security
features keeps the standard fields from being potent by registering
which fields have the possibility of change.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
tag4.9
- Future versions of MIC will allow one to overide the
default specified in the MICgroup with a value specified in the
MICdynamicdisplay.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... MICdynamics.4.10
- At the time of this writing,
nesting is only a partially tested feature with some known bugs.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... type.''4.11
- Datatype is a concept used by MIC
which may be supported to varying degrees with the data encapsulators
one is using in their MIC system. The idea is that user data is
expected to be of a type, which may be something like integer, credit
card number, or free form.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
verified.4.12
- That is all fields needed for the current page, all
fields in error, all fields which have changed, and all fields being
carried along.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
verbatim4.13
- Or effectively so.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... information.4.14
- The syntax src="branch::hello" would
also be acceptable.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... flag5.1
- If running in fast CGI
mode
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... fields.5.2
- It is not
always the case that it is easier or more desirable to report dynamic
field errors in a non-contextual manner, but it is more often true
than with static fields.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... document.5.3
- This should be remedied
in future versions of MIC.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
piledriver.6.1
- Implemented by Error.pm
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
handle\_exceptions().6.2
- Unless the type of error is
Error::Simple, in which case it is assumed to be generated by a die or
syntax error; piledrivers may handle these themselves.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... structure.7.1
- This
should most probably be an absolute directory set by some constant
that can be modified as needed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... information.7.2
- Absolute pages are allowed too,
but generally discouraged as less maintainable.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
page.7.3
- In this case, the fieldspace will be instantiated for
verification purposes.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
definitions.7.4
- The entire set of static fields costitutes such
a group.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...
page8.1
- The methods of propagation are of no concern to the MIC
user and may be various.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... nameC.1
- A virtual
name being a field name prepended by zero or more group names in order
of relationship with a `::' separating each group name.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... `Michael'E.1
- In no particular
order
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.