[comp.sys.mac.programmer] 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

rcbaem@eutrc3.urc.tue.nl (Ernst <pooh> Mulder) (10/31/89)

 The idea is very nice, the user interface isn't what you'd call 'intuitive'..
I know, the current interfacing is very bad, the one INIT quits when you press
the mouse-button. The other when you press option-shift. Some inits let
you know they're not loaded by not showing their ICON, others by displaying
their ICON with an X drawn over it.. Others display their ICON whether or
not they're loaded...
 I liked what the TOPS INIT does: Display a small modal DiaLOG 'Install TOPS?'
with yes/no (or was it OK/Cancel) buttons. At least then you'd know whether or
not TOPS is loaded.
 Maybe all INITs should do this, or something similar. And only when any of
the modifier-keys/mouse is pressed. Then you could switch on/off any INIT,
and you'd only use the mouse.

 Hmm, think I wanna hear more proposals..

 pooh.

sluggor@Athena.MIT.EDU (Scott Howlett) (11/01/89)

I would definitely like some sort of unified approach to the handling of
INIT selection,
but, as a user, I would rather be able to bring up a dialog at the
beginning of the INIT
loading process and select all of the INITs to be loaded/skipped at
once, rather than to
wait for each one to load and ask me if I really want to load it.

In an ideal world, the INIT31 mechanism could be expanded to provide
this capability and
more.  I would really like the capability of storing several sets of
INITs to be loaded,
so I can, say, pick my Behind Dark Castle set, or my Really Intense
Programming set, or my
Man of Leisure set, rather than having to specify the load/no load
status of each INIT
individually every time.  I would also like to be able to choose
different orders of loading
for each set, which would alleviate much of the INIT renaming question. 
In addition, I feel
that it is important not to violate other INITs by changing their file
types as the version
of INIT cdev does. 

 Anybody interested in an expanded rewrite of INIT31?

oster@dewey.soe.berkeley.edu (David Phillip Oster) (11/01/89)

1.) there should be some indiciation that an INIT failed to load
successfully. Either drawing an X on its icon, or not drawing its icon are
okay choices, though I prefer the former.

2.) There should be a one-key way to make an INIT not load. The command
key is a good choice.

3.) Inits should have NO user interface, NO modal dialogs.  If the init
needs to talk  to the user, it should do it through a Control Panel CDEV.

4.) I don't like TOP's modal dialog. It gets in the way when all I want is
to reboot without multifinder.

5.) There already is a good interface for turning INITs on and off. It is
called the Finder. Provided you can turn off a buggy INIT so you can get
up under the Finder, you can choose what INITs you want by just moving
things into and out of the system folder. Arrange your INITs in patterns
that make it easier.  Apple wants users to use the Finder for this kind of
thing, for example the Font/DA mover will be replaced by just dragging
fonts and DAs around in the Finder, in System 7, in all likelihood.

> The mac is a detour in the inevitable march of mediocre computers.
> drs@bnlux0.bnl.gov (David R. Stampf)
--- David Phillip Oster          -master of the ad hoc odd hack. 
Arpa: oster@dewey.soe.berkeley.edu 
Uucp: {uwvax,decvax}!ucbvax!oster%dewey.soe.berkeley.edu 

chuq@Apple.COM (Chuq Von Rospach) (11/01/89)

>I would definitely like some sort of unified approach to the handling of
>INIT selection,
>but, as a user, I would rather be able to bring up a dialog at the
>beginning of the INIT
>loading process and select all of the INITs to be loaded/skipped at
>once, rather than to
>wait for each one to load and ask me if I really want to load it.

Which is exactly what CE Software's Aask does already. There are a number
of other INITs that have this kind of functionality also.

> Anybody interested in an expanded rewrite of INIT31?

The functionality already exists for people who want it. Does it have to go
into INIT31?

-- 

Chuq Von Rospach <+> Editor,OtherRealms <+> Member SFWA/ASFA
chuq@apple.com <+> CI$: 73317,635 <+> [This is myself speaking]

Aftershock. Bummer.

time@oxtrap.oxtrap.UUCP (Tim Endres) (11/02/89)

In article <32278@ucbvax.BERKELEY.EDU> oster@dewey.soe.berkeley.edu (David Phillip Oster) writes:

   3.) Inits should have NO user interface, NO modal dialogs.  If the init
   needs to talk  to the user, it should do it through a Control Panel CDEV.

YES YES YES, I want NO interface. I like little icons scurrying across
the bottom of my screen. I like X's and other indicators.
I HATE MY BOOT PROCESS STOPPING FOR ANY REASON.
The Control Panel is the place I want to go to configure.
If you can't start your INIT until I do the Control Panel, FINE.

lim@iris.ucdavis.edu (Lloyd Lim) (11/02/89)

My two cents:
The comment that all INIT icons should write on top of each other seems
to be a rather personal and arbitrary choice.  It also doesn't go along with
the current ShowInit scheme.

As for ease of use, this scheme might be better than the current no scheme but
it certainly doesn't seem that easy.  Three modifier keys are involved although
probably only two during a startup when you want to disable one thing or
something.  Even though there is "slow-motion", there is still some timing
skill involved in order to hit the right modifier on the right INIT.

I don't think this even begins to compare with any of the INIT managers out
there where you just hold down one modifier and you get an explicit list of
INITs that you can enable/disable individually or as a group.  This is a
clearer and easier approach.

I don't think you should have to be able to set INIT options at startup.
That's what CDEVs are for.  Setting INIT options at startup makes the code
unnecessarily bigger and violates the dialog at startup no-no.

I think the answer for now is the use of one of the INIT managers (personally
I like INITPicker).  I think the ideal solution for the future is a rewrite
of INIT 31 to include the one modifier, explicit list ease of use for all
INITs.  Only Apple or someone with lots of guts could do this.

+++
Lloyd Lim     Internet: lim@iris.ucdavis.edu (128.120.57.20)
              Compuserve: 72647,660
              US Mail: 146 Lysle Leach Hall, U.C. Davis, Davis, CA 95616

wdh@well.UUCP (Bill Hofmann) (11/02/89)

In article <32278@ucbvax.BERKELEY.EDU> 
oster@dewey.soe.berkeley.edu.UUCP (David Phillip Oster) writes:
>2.) There should be a one-key way to make an INIT not load. The command
>key is a good choice.
I thought there was already a defacto one-key way, many INITs won't
run if *option* is down (I know all my INITs work this way, as do many
I've Nosy'd).  In addition, holding down the mouse button should also
cause it to fail to run.  The reason for not using the command key is that
it is used to defeat the launch of Multifinder:  I don't want to have to
try to catch the exact right time to press command to disable MF without
disabling my INITs.

-Bill Hofmann

mike@octel.UUCP (Michael D. Crawford) (11/02/89)

IMHO an init should not _require_ one to do any action at all upon booting.
For example, BigScreen, a shareware init that is like Stepping Out, puts
up a dialog asking you for the desired screen size before allowing the
boot to continue.  This would be better handled in a control panel
document.  I like to flick on my mac and hard drive, and leave it be while
I do something else for a moment, and come back with the finder open.

When programming, one reboots a lot (I do anyway.  Maybe when I get better
I won't!), and having to fiddle with inits during a programming session
makes me just turn them off.

A very good way to handle inits is with initCDEV.  I have downloaded
but not yet tried FreshStart.  These are CDEV's and inits that allow
you to selectively turn inits on and off, without dragging them.  I find
dragging inits to be a real drag.

Having a single key to disable the loading of any inits at all would be
handy.
-- 
Michael David Crawford			Consulting for:
Oddball Enterprises			Octel Communications Corp
694 Nobel Drive				890 Tasman Drive
Santa Cruz, CA 95060			Milpitas CA 95035
uunet!apple!vsi1!octel!mike
CI$ 72377,623

		Tilting at Windmills for a Better Tommorrow.

d88-jwa@nada.kth.se (Jon Watte) (11/03/89)

In article <32278@ucbvax.BERKELEY.EDU> 
oster@dewey.soe.berkeley.edu.UUCP (David Phillip Oster) writes:
>2.) There should be a one-key way to make an INIT not load. The command
>key is a good choice.

In article <14402@well.UUCP> wdh@well.UUCP (Bill Hofmann) writes:
>I thought there was already a defacto one-key way, many INITs won't
>run if *option* is down (I know all my INITs work this way, as do many

And many INITs I know won't load if the SHIFT key is down.
See what we mean ? I suggest Apple includes the guidelines
posted here as is, they were well thought through, in a
TechNote and in the coming IM VI.

>try to catch the exact right time to press command to disable MF without
>disabling my INITs.

Why not use WaitINIT (my claim to fame)

Of course it's FreeWare, just mail me for a copy. It displays a mouse
with a flashing arrow, and waits for the mouse button to be pressed,
then it continues. And yes, I repeatedly call SystemTask...

Happy Hacking !
						h+@nada.kth.se
						== h+@proxxi.se
-- 
This .signature is longer than 4 lines. If you'd like to see it in whole,
please send a note to me. I'm h+@nada.kth.se and also h+@proxxi.se    8')