FastTask 1.00

© Sam Kington 5th April 1994

This program is freeware, not public domain – i.e., I retain copyright (see “Boring legal message”)

FastTask is RISC OS 3 only - sorry for anyone who still has RO2 (hello Kemal ;-) ). If you don’t want to read all of this, use interactive help instead.

Terminology note: I use “application” and “task” interchangeably throughout this document.

An HTMLised version of this is also available online courtesy of WebSoc.

The TaskEnsure application is © Ben Summers - see Docs.TaskEnsure for more details. The WimpKey module - version 1.10 - is © Jason Williams and Sam Kington - see Docs.WimpKey for more details.

What this program does

FastTask allows you to start tasks from the keyboard, as if from the command line. Unlike the command line, it has a pretty good idea of where to find them as well, as it keeps a list of the most regularly-used directories, so after you’ve been using it for a while it should find most of your applications within seconds. Usually you would have to specify a complete path; with FastTask you just tell it the name of the task. Compare this with the time spend ploughing through directory structures, even if you have something like Director, and the gains are considerable.

FastTask is the sort of program you should put in your Boot sequence, as most of its usefulness comes from it sitting in the corner quietly listening to the applications you’re running and where they came from. When you actually want to start a task with it, Select-click on its icon or press the hot-key (by default Shift-Insert, but you can change it later). A small window will pop up, where you can type in the name of the task (a preceding ‘!’ is not necessary). To start the thing going, press Return; press Escape to close the window. There isn’t an OK button or anything, but then you’ll be using the keyboard anyway so you don’t need one.

FastTask will then go away and look in it’s “hit list” of directories, to see if the file you asked for is in any of those. Usually it will, and the longer you have had FastTask on your machine the higher the likelyhood of it finding it, but if it doesn’t it will search the entire directory tree until it finds the file or runs out of space (it can only cope with 256 directories). If it takes more than 20 seconds to find the file, you’d be better finding it yourself - remember that once you’ve opened the directory the task was in, FastTask will know about it and remember it next time.

Every time FastTask successfully runs a task, the directory the task was in will be moved up the list. Conversely, if a directory is no longer present (floppy discs are prime candidates, but it could also happen if you’ve re-organised your directory structure), it will be moved down. If you choose the menu option “Show list” or have a look at the “Hits” file inside !FastTask, you’ll see that each directory has a number next to it – this is the number of times the directory has been accessed.

Creating a hit-list from scratch

When you first get FastTask, you won’t have a hit-list - or if you do, you shouldn’t as it’s unlikely to work on your machine (how many of you out there have a hard-disc called CFS#IDEFS::HD110?). If there isn’t a file called “Hits” inside FastTask, FastTask will attempt to create one. First of all, it adds the root directory - taken as <System$Dir>.^.^.^.^.^. This is OK, as spurious “^”s are ignored - and if someone has !System more than five levels down their directory tree, I’ll be surprised. (I only have about ten files five levels down...)

It then adds the library (%), System:Modules and Resources:$.Apps. It doesn’t bother with $ or &, because $ doesn’t expand correctly with CFS sometimes.

Finally, it trawls through all the $Dir variables - i.e. FastTask$Dir, FinalLook$Dir etc. - and adds the parent directories, so if FastTask was CFS#IDEFS::HD110.$.Utilities.Files.!FastTask, it would add CFS#IDEFS::HD110.$.Utilities.Files.

This should be enough to get you started. The best way is to walk around opening all the directories you think you might need, so FastTask knows about them, which is the important bit. It will speed up later when it sorts them in the correct order, but in any case it will be faster than it looking through the whole tree, and going through your fonts, files, and other directories that don’t contain anything useful.

Note that FastTask treats applications differently from directories - i.e. if you open a directory, it gets added to the list or promoted, if you open an application it doesn’t. Also, if FastTask finds an application when it’s searching the tree, it stops, it doesn’t look inside. If you have special applications that hold other applications (because you want them to have a nice picture), either run one of the applications while FastTask is loaded, or open up the application before you run FastTask for the first time, so the applications inside are booted and FastTask will know where they are when it’s looking at $Dir variables.

The hit-list is stored as the text file “Hits” inside !FastTask. The format is very simple: a number, which is the number of times the directory has been found (must be 1 or more), a space, the full name of the directory. As mentioned above, deleting it will cause FastTask to re-create it next time it is run. The file will be updated when FastTask quits.

Choices

Adjust-clicking on the main icon, or choosing “Choices...” will open the Choices window. If you don’t have Director or Compression, you will only be able to set the hot-key, which is the key combination used to open the FastTask window. Choose one that isn’t used by any task, not even Impression - which narrows the choice down a bit. Shift- or Ctrl-Tab are the sort of thing in mind, but they’re often used; combinations of Insert are also useful.

To set the hot-key, just press the key-combination you want to use when the choices window is open.

Clicking on the small “i” icon will run Help. See below for how to change it.

If you have Director loaded, FastTask will create a Director menu called “FastTask” that behaves very much like the Memoriser menu, except that it’s the most commonly used directories, rather than the most recently used files. The option “Size of director menu” will modify the length of the menu - just click on the arrows or type in a new value in the usual way.

If you have Compression (CFS), then you may end up with both compressed and uncompressed versions of the same paths - e.g. CFS#IDEFS::HD110.$ and IDEFS::HD110.$. (My fonts are all uncompressed, for instance). This isn’t usually a problem, except when you start searching the directory tree - in which case, the number of directories searched effectively doubles. Selecting “Only examine CFS when scanning” should solve this problem; it also has the side-effect of ignoring ResourceFS, uncompressed floppy drives and CDs, but then Resources:$.Apps should already be in the hit-list, and floppies and CDs are too slow.

The previous option only ignores other filing systems when it hasn’t found a file in the hit-list, and is searching the entire directory tree; however, you will often want FastTask to ignore floppies or CDs all the time – after all, having removeable media in the list of directories to search means that FastTask may well ask you to insert them, only to find there wasn’t anything of interest there anyway. Choosing “Ignore drive :0” will stop directories on drive 0 – of any filing system – from being added to the hit-list.

Finally, selecting “ignore non-executable files” will stop FastTask telling you about files it has found that match the description you gave it, but are not executable (i.e. their filetype is not in the “FileTypes” file).

Extended commands

You don’t just have to run one file: you can give FastTask a list of filenames, separated by spaces, and it will attempt to load each of them in turn. You can also give FastTask such a list in its command-line – i.e. “Run CFS#IDEFS::HD110.$.Utilities.Files.!FastTask BlakHole2 FinalLook LineEditor” (which would turn FastTask into a rudimentary boot application). Note that you can’t do this with Filer_Run, because Filer_Run snips out the extra parameters.

You can also do other things apart from running applications (although running them is the default) by using special commands. If you put “-boot”, “-open”, “-tinydir” or “-*<cmd>” (where <cmd> should be replaced by a single *command of your choice) anywhere in the list of filenames, all the filenames that follow the command will be passed to it – until another command is found. There is also a “-run” command, that will simply reset to the default action. So the string “-boot resed -open modules -tinydir link cc objasm -run webster” would boot !ResEd, open the Modules directory, add !Link, !CC and !ObjASM to the tinydirs (also known as “Pinboard on the icon bar”), and finally run !Webster.

But the really serious bit is -*<cmd> (use this with caution, though – you could crash FastTask). For instance, if we set the following variables:

*Set Alias$SaveFullPath "echo | { >> pipe:$.output }" *Set Alias$PrintPaths taskwindow "print pipe:$.output" -quit
then the command line “-*SaveFullPath system boot modules templed -*PrintPaths system” would print the full paths of !System, !Boot, System:Modules and !TemplEd in a taskwindow. The only restriction is that <cmd> must be one word - but you can just define alias$cmd to get round that. The full pathname of the application handed to the command is held in the system variable FastTask$File.

Other stuff

If you have Director, assigning a keyboard short-cut to the FastTask menu is a good idea, as it means you can use FastTask with the mouse if you want. I personally use Shift-Insert, Ctrl-Insert and Shift- Ctrl-Insert for, respectively, FastTask’s window, Memoriser and FastTask’s Director menu.

Shift and Control work the way they do in the Filer when you start a task - i.e. holding down shift opens an application or loads a file into Edit, holding down Control doesn’t boot applications.

If you want to use another interactive help provider than !Help, for instance StrongHelp or BubbleHlp, modify the bit in the !Run file that sets the variable Alias$GetHelp. Keep the Filer_Run bit in to start the help provider as a separate task.

As mentioned above, FastTask doesn’t force you to enter an initial ‘!’ for a task – in fact, it expects you to have done so. If you have !Webster inside a directory called Webster, FastTask will run the application rather than opening the directory, even though the directory will be “found” first.

Finally, you may also want to alter the list of filetypes FastTask thinks are runnable files. By default, directories and especially applications are considered as runnable, as well as modules, absolute files and utilities. You may want to add BASIC files, or even SoundTracker modules or Impression files. To do so, edit the “FileTypes” file inside !FastTask; each new file-type should be on a separate line. Filetype names should be case-sensitive; straight numbers might work as well. Beware: if you add too many, there might be conflicts. In particular, adding Obey files is rather stupid, as you might not be able to open your !Boot directory (type in !Boot, hold down Shift), as some application might be higher up the list than your root directory.

Oh yes: “Wibble wobble fishcakes” is a quote from Terry Pratchett, Reaper Man I think.

Greetings, thank-yous

Credit where credit’s due, to Kemal Sangrar (gtmw03@arts.gla.ac.uk), who designed the icon and the main window, as well as writing a very early version of it (which I promptly threw away, but that’s life).

Hellos also go to Nick Craig-Wood (author of Director - if you don’t have it, get it at once), Dick Alstein (TemplEd and WimpInfo), Dominic Symes (Zap), Cy Booker (BasCompress - if you haven’t registered yet, do so), Mark Greenwood, a.k.a. The Fat German (BlackHole), and Olly Betts (loads of neat modules like LineEditor, SpecialCase etc.). If I’m into waves, well, hello comp.sys.acorn. That should take care of most people ;-).

Boring legal message

This application is freeware, that is, it can be distributed freely as long as only reasonable charges are made for media and distribution. I retain copyright on all program code and documentation.

This software is supplied “as is”: I make no warranty, expressed or implied, of the merchantability of this software or its fitness for any particular purpose. In no circumstances shall I be liable for any damage, loss of profits, or any indirect or consequential loss arising out of the use of this software or inability to use this software, even if I have been advised of the possibility of such loss.

In other words, if your computer crashes, blows up, you lose all your work etc. all because of FastTask, it’s not my fault. Honest.

How to contact me

All bug-reports, suggestions, comments or indeed any feedback at all will be welcomed. Here’s how to get to me:

E-mail : 926286ki@udcf.gla.ac.uk. This should be OK until June 1996. I (probably) won’t be at Glasgow during the holidays, but mail will be automatically forwarded to wombat@altern.com, which is my French email address.

Snail-mail : My term-time address, at least until June 1995, is:

Sam Kington
Flat 2/1
44 Hotspur Street
Glasgow G20 8NL
SCOTLAND
Again, a backup is the home address – anything that goes here will get to me eventually.
Sam Kington
Merlhiot
24420 Savignac les Eglises
FRANCE
Term-time is October to June, with bits off at Christmas (3 weeks) and Easter (4 weeks).

If you want an updated version of this, send a disc and the appropriate stamp (or two discs) to the appropriate address. So if I’m in France, send a French stamp to the French address; if I’m in the UK, send a Brit stamp to Glasgow. And yes, the Brit address doesn’t last for very long anymore - sorry.

If you send me something in the UK, bear in mind that I don’t have (easy) access to Acorn machines, so don’t send me an Acorn disc, send me a PC disc.