[comp.sys.amiga.tech] Standardization

wbnsnsr@nmtsun.nmt.edu (William Norris) (10/21/88)

In article <10744@ulysses.homer.nj.att.com> eric@hector.UUCP writes:
>I see no point to have the names of other programs to run in a standard
>application menu. This is what the WorkBench/CLI is for.
OK, I agree.  I just wanted to see what the responses I would get about
including this ``feature''.  No one seems to want it.
Should we add a color palette requester?  On this menu?  Somewhere else?

File Menu
>Delete doesn't belong here - use the WorkBench/CLI.
OK, but then applications shouldn't close WorkBench.  

Edit Menu
>Looks fine to me except you have two menu selections now with Amiga-P
>as the key shortcut. Perhaps Amiga-I (for "Insert") would be more
>appropriate for paste?
Oops, my mistake.  Paste should have been Amiga-V.
The reason for X (Cut) C (Copy) V (Paste) is because these three keys
are in a line together.  You can quickly do these three operations
without removing your hand from the Amiga key while at the same time
move your mouse around easily.

Font Menu
>There should not be a seperate font menu - there will always be systems
>with more font names than can fit nicely into one menu, unless one
>implements scrollable menus/submenus (like on my 630MTG or the Mac/Too).
Does anybody know how to implement scrollable menus?  If not, then I think
it should be moved.

For those people who have asked where these key combinations come from,
the Macintrash.

For those people who expressed concerns about the file requesters, more
information will be prepared this weekend.  However, I plan on implementing
some ``hooks'' for applications to customize/enhance the requester
for their specific application.  The main purpose of providing these
requesters is for those applications which simply present a string
gadget and say, ``Type in the filename: ''

					William B. Norris IV

wbnsnsr@nmtsun.nmt.edu (William Norris)            |    /// Seulement
``It'll be out RSN.''                              |\\ ///  l'Amiga peut 
  -- ANY hardware manufacturer/software publisher. | \\//   vous l'offrir.

coco@sfsup.UUCP (+Lugo F.) (10/21/88)

	How about designing a standard set of functions which every file
	requester should have (i.e. a minimum set.)  For example:

		o  multitask while scanning for files,
		o  access to available devices and volumes, not pre-defined
		   gadgets with device names
		o  scroll bar, arrow gadgets, double click selection,
		o  keyboard shortcuts (i.e. use arrow keys to scroll file list,
		   ALT+arrows to go to the top/bottom files, SHIFT+arrows to
		   scroll by pages, Ok/CANCEL shortcuts, etc.
		o  pattern specifications (*, ?, ranges, etc.)
		o  PARENT directory gadget (with keyboard shortcut).
		o  RESTART gadget for restarting file scanning
		o  single file name string gadget
		o  any other I may be missing

	Let's face it, some people have better things to do than spend their
	time developing/testing simple file requesters.
	Others can just create their own designs as long as they start with
	this minimum set.

	Other standards:  CUT/PASTE, how about pop-up menus (don't you get
	tired of going to the top for menu operations.), window iconizing
	(with true image icons, not window fakes), Virtual screens, color
	requesters which adjust to screen's type/resolution, more, morE, moRE,
	mORE, MORE, MORE, MORE, ... 8*)


         //
--Coco \X/

__________________________________________________________

E-Mail:	coco@attunix.att.com

Real:
	AT&T Bell Laboratories
	c/o Felix A. Lugo
	190 River Road
	Rm. 1-139
	Summit, NJ  07901
	Tel. (201) 522-5098

jms@antares.UUCP (joe smith) (10/24/88)

In article <2287@cadovax.UUCP> keithd@cadovax.UUCP (Keith Doyle) writes:
>One problem I have been struggling with somewhat with file requesters is
>that I would like to keep the file list around, but if you have multiple
>file requesters for different file operations, how many lists of files
>should you actually maintain?  

Keeping a list of what's in a directory is great, as long as you can
guarentee that nothing has changed the directory behind your back.  Think
of how frustrating it would be if a program refused to acknowlege the
existance of a file that you had just created from another window.

This is a worth-while idea; caching a list of file names.  To make it
workable though requires a change to AmigaDOS.  If programs kept a lock
on the directory that the list came from, then all we need is a new
function to tell AmigaDOS to send us a message whenever the directory
changes.  The messsage is a signal to the program to flush its file name
cache.
-- 
+----------------------------------------------------------------------------+
| TYMNET:JMS@F29  CA:"POPJ P,"  UUCP:{ames|pyramid}oliveb!tymix!antares!jms  |
| INTERNET: (Office-1.ARPA is no more)      PHONE:Joe Smith @ (408)922-6220  |
+----------------------------------------------------------------------------+

kevin@amdahl.uts.amdahl.com (Kevin Clague) (10/24/88)

In article <221@antares.UUCP> jms@antares.UUCP (joe smith) writes:
>In article <2287@cadovax.UUCP> keithd@cadovax.UUCP (Keith Doyle) writes:
>>One problem I have been struggling with somewhat with file requesters is
>>that I would like to keep the file list around, but if you have multiple
>>file requesters for different file operations, how many lists of files
>>should you actually maintain?  
>
>Keeping a list of what's in a directory is great, as long as you can
>guarentee that nothing has changed the directory behind your back.  Think
>of how frustrating it would be if a program refused to acknowlege the
>existance of a file that you had just created from another window.

Keeping a list of the files around is pretty much a requirement, unless
you plan on re-scanning the disk everytime the user scrolls the area
you use to display the available files.  I don't think Keith is keeping
the files in a list to enhance performance, but to provide functionality.

>
>This is a worth-while idea; caching a list of file names.  To make it
>workable though requires a change to AmigaDOS.  If programs kept a lock
>on the directory that the list came from, then all we need is a new
>function to tell AmigaDOS to send us a message whenever the directory
>changes.  The messsage is a signal to the program to flush its file name
>cache.

This would be a nice feature.  I like the idea.

>-- 
>+----------------------------------------------------------------------------+
>| TYMNET:JMS@F29  CA:"POPJ P,"  UUCP:{ames|pyramid}oliveb!tymix!antares!jms  |
>| INTERNET: (Office-1.ARPA is no more)      PHONE:Joe Smith @ (408)922-6220  |
>+----------------------------------------------------------------------------+

Kevin
-- 
UUCP:  kevin@amdahl.uts.amdahl.com
  or:  {sun,decwrl,hplabs,pyramid,seismo,oliveb}!amdahl!kevin
DDD:   408-737-5481
USPS:  Amdahl Corp.  M/S 249,  1250 E. Arques Av,  Sunnyvale, CA 94086

[  Any thoughts or opinions which may or may not have been expressed  ]
[  herein are my own.  They are not necessarily those of my employer. ]

jesup@cbmvax.UUCP (Randell Jesup) (10/25/88)

In article <221@antares.UUCP> jms@antares.UUCP (joe smith) writes:
>Keeping a list of what's in a directory is great, as long as you can
>guarentee that nothing has changed the directory behind your back.  Think
>of how frustrating it would be if a program refused to acknowlege the
>existance of a file that you had just created from another window.

	Just do an Examine, and compare the change data for the
directory with the old change date: if they're different, something may
have changed.  If not, not problem.

-- 
You've heard of CATS? Well, I'm a member of DOGS: Developers Of Great Software.
Randell Jesup, Commodore Engineering {uunet|rutgers|allegra}!cbmvax!jesup

jones@ingr.UUCP (Mark Jones) (10/25/88)

> Keeping a list of the files around is pretty much a requirement, unless
> you plan on re-scanning the disk everytime the user scrolls the area
> you use to display the available files.  I don't think Keith is keeping
> the files in a list to enhance performance, but to provide functionality.
> 
> >
> >This is a worth-while idea; caching a list of file names.  To make it
> >workable though requires a change to AmigaDOS.  If programs kept a lock
> >on the directory that the list came from, then all we need is a new
> >function to tell AmigaDOS to send us a message whenever the directory
> >changes.  The messsage is a signal to the program to flush its file name
> >cache.

  It would be even nicer, if AmigaDOS would just cache the filenames of
all the directories on all the disks that are physically in the drives,
up to a limited number of files(Hard disks could provide a problem
here).  Then, the application could rescan the directory every time, and
never have to hit the disk again.  When the disk is ejected, wipe that
portion of the cache, don't refill it until the directory is scanned again.

  Anytime files were added to the directory, both the disk and the cache
could be updated, or the cache could be thrown away.  This would mean
that the disk would only be searched once, and that only one copy of the
directory would be kept, regardless of the number of applications
running.

  This already happens to a limited extent, when the directory portions
get cached in the track buffers, and it is very nice.  It doesn't even
seem that hard to do.

Mark Jones

pds@quintus.uucp (Peter Schachte) (10/26/88)

In article <5092@cbmvax.UUCP> jesup@cbmvax.UUCP (Randell Jesup) writes:
>In article <221@antares.UUCP> jms@antares.UUCP (joe smith) writes:
that there should be a way for a program to signal that a directory has
changed so a program that display the dir notices the change.  (correct
me if I misunderstood).

>	Just do an Examine, and compare the change data for the
>directory with the old change date: if they're different, something may
>have changed.  If not, not problem.

This would work fine, except WHEN do you check?  You certainly check
when you go to display the directory.  But suppose you're displaying the
directory when a file is added, and you want the display to be updated
right away.  Does your program check the change date for the directory
every few seconds just to see if something has changed?  Wouldn't this
create a lot of useless disk accesses?

The problem with allowing programs to signal when a directory has
changed is that lots of (most) programs wouldn't do it, so the
directory displays would still be wrong.  This needs to be something
the file system does.  Unless....

Couldn't this be accomplished by putting a process in the "food chain"
before the disk (and RAM:, RAD:, etc.)  devices that watch for file
creation and deletion packets, and send the appropriate messages to any
programs that are displaying info about that directory.  Can this be
done?  This is something someone outside of DOGS could do (unlike
changing the file system).  If done right, C= might "bless" it, and use
it to keep Workbench windows up-to-date.

Or is something like this planned for the 1.4 Workbench upgrade?  If
so, I hope it will be done in such a way that file requesters etc. will
be able to use it too.

-Peter Schachte				"Clean water?  I'm for clean water."
pds@quintus.uucp				-George Bush
..!sun!quintus!pds

limonce@pilot.njin.net (Tom Limoncelli) (10/26/88)

Many file requesters multitask so that you can select from the files
read-in-so-far while the remaining files are being read in.  Why not
do the same kind of thing but instead, start out with the old list of
files and multitask to update the list.  This, in effect, would be
like cacheing the file names yet a little more functional.

-Tom
-- 
              Tom Limoncelli -- Student Network Supervisor
      Drew University, Box 1060, Madison NJ 07940 -- 201-408-5389
   new->> tlimonce@drunivac.Bitnet -- limonce@pilot.njin.net
            "The opinions expressed are mine... just mine."
                   "Network Theory?  Just say node!"

dillon@CORY.BERKELEY.EDU (Matt Dillon) (10/26/88)

:In article <2287@cadovax.UUCP> keithd@cadovax.UUCP (Keith Doyle) writes:
:>One problem I have been struggling with somewhat with file requesters is

UUCP:{ames|pyramid}oliveb!tymix!antares!jms  (Joe Smith) Writes:
:Keeping a list of what's in a directory is great, as long as you can
:guarentee that nothing has changed the directory behind your back.  Think
:...
:This is a worth-while idea; caching a list of file names.  To make it
:workable though requires a change to AmigaDOS.  If programs kept a lock
:on the directory that the list came from, then all we need is a new
:function to tell AmigaDOS to send us a message whenever the directory
:changes.  The messsage is a signal to the program to flush its file name
:cache.

Easy!  Note these facts:

	Whenever a file in a directory is created or deleted the timestamp
	for the directory is updated.  Not when a file is modified, but
	files are usually overwritten completely (1006) when updated so 
	this isn't normally a problem.

Now, whenever you access your cached file list, simply do an Examine()
on the directory lock and see if the timestamp changed.  The filesystem
will have cached the information anyway and thus no disk accesses normally
occur.  Rescan the directory if the timestamp is different.

This doesn't work for more than one level down ... if you create a/b/c, the
timestamp for 'a' will not change, just 'b' (and the file 'c' of course).

							-Matt

dillon@CORY.BERKELEY.EDU (Matt Dillon) (10/26/88)

:>	Just do an Examine, and compare the change data for the
:>directory with the old change date: if they're different, something may
:This would work fine, except WHEN do you check?  You certainly check

:pds@quintus.uucp Writes:
:...
:right away.  Does your program check the change date for the directory
:every few seconds just to see if something has changed?  Wouldn't this
:create a lot of useless disk accesses?


	Checking every couple of seconds while the requester is up would
work out just fine!  No disk accesses would occur under 'idle' operation
(nobody else doing major accesses to the disk) because the directory
block would be cached.
>Couldn't this be accomplished by putting a process in the "food chain"
>before the disk (and RAM:, RAD:, etc.)  devices that watch for file
:creation and deletion packets, and send the appropriate messages to any
:programs that are displaying info about that directory.  Can this be
:done?  This is something someone outside of DOGS could do (unlike
:changing the file system).  If done right, C= might "bless" it, and use
:it to keep Workbench windows up-to-date.

	Not really... it would be an incredible hack and take too much
overhead to be worth it for anybody but C-A to do it.  Reason: Each and 
every DOS device you see out there is its own process.  Sure you could 
re-vector the DOS library call for Open()  etc... but then what?

	It can be done, but would mean implementation of a new packet 
type associated with locks.  A "signal me if sub entries of this lock
are touched" Call.  If that *were* done, you might as well also implement
file-level exclusive/shared locks (ala UNIX flock() call)...  We're talking
very major addition here.

				-Matt

ewhac@well.UUCP (Leo 'Bols Ewhac' Schwab) (10/26/88)

In article <5092@cbmvax.UUCP> jesup@cbmvax.UUCP (Randell Jesup) writes:
>In article <221@antares.UUCP> jms@antares.UUCP (joe smith) writes:
>>Keeping a list of what's in a directory is great, as long as you can
>>guarentee that nothing has changed the directory behind your back.  [ ... ]
>
>	Just do an Examine, and compare the change data for the
>directory with the old change date: if they're different, something may
>have changed.  If not, not problem.
>
	OOOOOooo!!  I *LIKE* it!  Thank you.  I'll use that.

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
Leo L. Schwab -- The Guy in The Cape	INET: well!ewhac@ucbvax.Berkeley.EDU
 \_ -_		Recumbent Bikes:	UUCP: pacbell > !{well,unicom}!ewhac
O----^o	      The Only Way To Fly.	      hplabs / (pronounced "AE-wack")
"Work FOR?  I don't work FOR anybody!  I'm just having fun."  -- The Doctor
	      ubh
		 tug guvf jnf yvar
 abvfr.  Vg'f npghn
yyl varjf
	  sbqqre.

peter@sugar.uu.net (Peter da Silva) (10/26/88)

All these techniques of keeping file requestors up to date have one flaw...
what happens when the user pops the disk with the directory the file requestor
is looking at, next time the scan comes?

I do know the solution in terms of preventing a system request to reinsert the
disk... make sure you handle pr_WindowPtr when you implement this, folks!
-- 
		Peter da Silva  `-_-'  peter@sugar.uu.net
		 Have you hugged  U  your wolf today?

	Disclaimer: I accept full responsibility for my own typos.