[comp.sys.mac] INIT User guidlines proposal

) (10/31/89)

From: phil@vaxphw.enet.dec.com (Phil Hunt)
Newsgroups: comp.sys.mac,comp.sys.mac.programmer
Subject: INIT user guidlines proposal
Date: 30 OCT 89 22:13:39    
Organization:  Digital Equipment Corporation

A Modest Proposal on INIT setup                                 10-30-89

Hi,

As everyone knows, INITs are a wonderful part of the Macintosh Architecture.
INITs let us customize our systems by modifying the System to fit our personal
likes and dislikes.

But as we also know, INITs can be a headache.  INITs can conflict with each
other in strange and wonderful or mysterious ways.  Also, it is very difficult 
to turn off selectively some  INITS as each requires a different key to cause 
it not to load.  An INIT also doesn't give a user any 'warning' as to when to 
press the 'no load' key.

The following is a proposal, a 'Human Guidelines for INIT writing' document
that should allow some standardization in the way the user interacts with an 
INIT during startup.

===================================================================
Human Guidlines for INIT Writing

An INIT, when it begins execution, should display a startup ICON using SHOWINIT
or SHOWCINIT code (or any other compatible code segment) that has been floating 
around the networks for a long time.  It should display a 'successful' or 
'question mark' ICON on startup.   The 'question mark' ICON is a modified 
'successful' ICON with a question mark on top of it.  This tells the
user the INIT is waiting for user response.  The INIT should then check for 
the SHIFT key.  If it is depressed, the INIT should wait 1 second before 
continuing.  This will allow the SHIFT key to act as a 'slow motion'  startup, 
allowing the user to find an INIT to selectively load or not load easily.  

Whether the INIT continued or waited 1 second, it should then check for 2 keys,
the 'pretzel'  key or the OPTION key.  If the 'pretzel' key is found depressed,
thew INIT should show a 'NO LOAD/UNSUCCESSFUL' ICON, which is a successful 
ICON with a 'X' on top.  If this is displayed, the INIT should exit with no 
processing occurring.

The OPTION key is used by INITs that require configuration.  This key, if found
means the user would like to configure the INIT, causing a dialog window to 
appear.  Upon completion of the INIT configuration, the INIT will execute 
it's startup code.  At the completion of the startup code, the INIT should 
display it's 'successful' ICON and complete execution.

Note, all ICONS should appear on top of each other, overwriting the previous
ICON or status of the INIT.

If all INITs followed these guidelines, eventually a user could very easily
turn  INITs on or off as well as see which INITs loaded or didn't load.

====================================================================
I can be reached with any questions or responses at:

Compuserve:  76424,2545
Genie:       XMG17394
Usenet:      Above address (or return path of this message)

But better yet, lets keep this proposal in the public limelight 
and build on it.  Keep the discussion on the public networks for all to 
contribute.  Lets create a standard for INITs like the rest of the Macintosh 
has had for years.  In the long run, we will all benefit.


==================================================================
Phil Hunt                      "Wherever you go, there you are!!!"
Digital Equipment Corporation                 Phone: (508)486-2164 
ENET:        VAXPHW::PHIL
USENET:      phil@vaxphw.enet.dec.com
MOREUSENET:  phil%vaxphw.dec@decwrl.enet.dec.com
EVENMORE:    ....!decwrl!dec-vaxphw!phil

denbeste@bgsuvax.UUCP (William C. DenBesten) (10/31/89)

From article <8910310233.AA09123@decwrl.dec.com>, by phil@vaxphw.dec.com (At 'MAC'simum efficiency!):
> It is very difficult 
> to turn off selectively some  INITS as each requires a different key to cause
> it not to load.  An INIT also doesn't give a user any 'warning' as to when to
> press the 'no load' key.

> An INIT, when it begins execution, should display a startup ICON using SHOWINIT
> or SHOWCINIT code (or any other compatible code segment) that has been floating 
> around the networks for a long time.

I think that the INIT 31 code should be modified to do this for us.
After all, the code would then only appear in one place and it would
be impossible to create an init that the user didn't know about, which
is a good thing in the light of viruses.  It should also patch out
InitGraf so that unfriendly inits don't erase other icons.

  [for each init...]
> It should display a 'successful' or  'question mark' ICON on startup.
> allow the SHIFT key to act as a 'slow motion'  startup, 
> 'pretzel' key is [...] show a 'NO LOAD/UNSUCCESSFUL'
> The OPTION key is used by INITs that require configuration.

Holding down various keys at just the appropiate time is a clumsy and
non-intuitive approach to handling inits.  I would like it better if
INIT 31 had a mechanism for selectively disabling inits and displaying
an x-ed out icon for the init.  Being able to communicate with the
init and tell it to go into a verbose mode would also be nice.  Then
we would need only one secret key to convice INIT 31 to ask us what we
want to do.  In this context, cdevs and rdevs should also count as inits.

> If all INITs followed these guidelines, eventually a user could very easily
> turn  INITs on or off as well as see which INITs loaded or didn't load.

I believe that convincing every INIT writer to follow a set of
guidelines would be difficult to impossible.  Fixing INIT 31 would be
a much simpler approach.

Actually, what I envision is mostly handled with 3rd party init
managers.  The problem is that INIT developers have to build in their
own tricks because they can not count on everyone having an init
manager.  Perhaps the time is right for apple to incorporate one into
the system.

Note: I have heavily chopped the parent article.  I apologize to the
author if I am now quoting out of context.
-- 
William C. DenBesten   is   denbeste@bgsu.edu  or   denbesten@bgsuopie.bitnet

isr@rodan.acs.syr.edu ( ISR group account) (11/01/89)

In article <8910310233.AA09123@decwrl.dec.com> phil@vaxphw.dec.com (At 'MAC'simum efficiency!) writes:
>From: phil@vaxphw.enet.dec.com (Phil Hunt)

>around the networks for a long time.  It should display a 'successful' or 
>'question mark' ICON on startup.   The 'question mark' ICON is a modified 
>'successful' ICON with a question mark on top of it.  This tells the
>user the INIT is waiting for user response.  The INIT should then check for 
>the SHIFT key.  If it is depressed, the INIT should wait 1 second before 
>continuing.  This will allow the SHIFT key to act as a 'slow motion'  startup
>allowing the user to find an INIT to selectively load or not load easily.  
>
>Whether the INIT continued or waited 1 second, it should then check for 2 keys
>the 'pretzel'  key or the OPTION key.  If the 'pretzel' key is found depressed>thew INIT should show a 'NO LOAD/UNSUCCESSFUL' ICON, which is a successful 
>ICON with a 'X' on top.  If this is displayed, the INIT should exit with no 
>processing occurring.
>
>The OPTION key is used by INITs that require configuration. 
The standardiztion of INITS is definetily an idea whose time is needed,
but instead of having specific actions assigned to specific keys,
I think it may be better to have ANY key other than SHIFT/OPTION/CTRL/CMND
pressed cause a 'slow motion' startup, ANY ONE of SHIFT/OPTION/CTRL/CMND
should cause a "no load" and OPTION-O be defined as invoking an option
dialog. This will keep some compatibility with older INITS, as it seems
that many of them use one or another of the "control" keys as an no-load
control, I don't know of any (but I don't use many, so...) that use
NORMAL keys as "control" keys, so slowing down newer ones won't cause
older ones to incorrectly not load. Perhaps the TAB key would be useful
as an option indcicator, as some older ones may pick up the OPTION-O as
an OPTION.
BTW, where do if find the SHOWINIT code?
-- 
 Mike Schechter, Institute for Sensory Research, Syracuse Univ.
InterNet: isr@rodan.syr.edu  msschech@rodan.syr.edu  Bitnet: SENSORY@SUNRISE