From: barrett@cs.umass.edu (Daniel Barrett)
Subject: REVIEW: Flow 3.1 outline processor
Followup-To: comp.sys.amiga.applications
Summary: Yup, the moderator writes reviews too.  How about you?
Keywords: text editing, outlines, commercial
Reply-To: barrett@cs.umass.edu (Daniel Barrett)
Organization: The Amiga Online Review Column - ed. Daniel Barrett
Date: Mon, 5 Oct 1992 00:47:27 GMT


PRODUCT NAME

	Flow, version 3.1


BRIEF DESCRIPTION

	Flow is an outline processor or "idea processor" used for
constructing text outlines with multiple levels of headings.  Headings may
then be manipulated as objects:  moved up and down, moved inward (deeper)
and outward, labeled, deleted, etc.  This review was created using Flow to
organize my thoughts.


AUTHOR/COMPANY INFORMATION

	Name:		New Horizons Software, Inc.
	Address:	206 Wild Basin Road, Suite 109
			Austin, TX  78746
			USA

	Telephone:	(512) 328-6650

	E-mail:		amigamat@ccwf.cc.utexas.edu (Mark Thomas)


LIST PRICE

	$110.00 (US).  I have seen it for $61.00 mailorder.

	Upgrades from previous versions are available; contact New Horizons
for details.


SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS

	Flow 3.1 works on all Amiga models under operating system versions
1.2 and higher.  No RAM requirements are stated; however, the program itself
is about 200K, so I'd guess you need 512K RAM.


COPY PROTECTION

	None.  Installs on a hard drive.


MACHINE USED FOR TESTING

	I tested Flow 3.1 on both an Amiga 3000T (Amiga OS 2.04, 2MB CHIP
RAM, 8MB FAST RAM) and an Amiga 1000 (Amiga OS 1.3, 512K CHIP RAM, 2MB FAST
RAM).  Some features require Amiga OS 2.0 and therefore did not work on the
A1000.

		
REVIEW

	Flow 3.1 is an outline processor with many features:  automatic
heading numbering, the ability to collapse and expand (hide and unhide)
headings, search and replace, a 50,000 word spell-checker which can learn
new words, auto-saving of documents, Amiga clipboard support, and an ARexx
port with over one hundred commands.  Flow supports multiple typestyles
(bold, italics, underline), user-selectable screen resolutions and colors
(all modes supported except HAM and Extra Half Brite), and powerful
customization of heading labels.

	Outline editing is fairly simple and similar to text editing, except
that the TAB and RETURN keys have new meanings.  You create a heading by
typing the whole thing without pressing RETURN (the lines auto-wrap for
you).  Pressing RETURN begins the next heading.  The TAB key is used to move
one level deeper (TAB) or upward (SHIFT+TAB) in the outline.  For example,
here is the creation of an outline, with special keypresses inside square
brackets like [RETURN] and [TAB].  All heading numbering is created
automatically by Flow.

	I.  Review of Flow 3.0 [RETURN]
	[TAB] A.  It is an outline processor [RETURN]
	      B.  It is made by New Horizons [RETURN]
	      [TAB] 1.  They also make ProWrite [RETURN]
	            2.  Quarterback too.  [RETURN] [SHIFT TAB]
	      C.  If you keep typing like this, the words will wrap
		 around, because a heading can have as many words as
		 you like.  [RETURN]
	      [TAB] 1.  Here is a subheading.  [RETURN]
	            2.  Here is another.  [RETURN] [SHIFT TAB] [SHIFT TAB]
	II.  Now we are back at the top level of the outline.

	Movement in the document is done using the mouse or the cursor
keys.  Standard cut, copy, and paste operations are supported, and they do
use the Amiga clipboard for sharing data with other programs.  A dynamic
column of gadgets on the left side of the screen, one for each heading, lets
you select, drag, collapse/expand, and delete entire headings.

	Flow 3.1 has support for many new features of Amiga OS 2.0.  It
opens a public screen called "Flow", so you can make your other applications
open their windows on Flow's screen.  Right now, I am typing this review on
the Flow screen with TurboText and WShell windows open on it. Flow also puts
an AppIcon on the Workbench when it runs, so you can drag and drop outlines
onto it and load them into Flow, and an AppMenuItem in the Workbench "Tools"
menu which brings the Flow screen to the front.  Finally, Flow has an option
to use the standard ASL file requester.  By default, Flow uses its own
requester which looks like the Macintosh's.  (See my requester complaints
under LIKES AND DISLIKES, below.)  I tested all of these features.

	The ARexx implementation is very comprehensive with over 100
commands.  Up to ten ARexx macro names may be stored in the "Macro" menu and
executed by selecting them, or by pressing SHIFT+function key.  If you want
to execute a different macro, the menu item "Other..." will prompt you to
type in its name and arguments.  It does NOT use a file requester; you must
remember the macro name.

	The spell-checker is straightforward and easy to use.  As misspelled
words are encountered, you have the options of skipping, learning (putting a
word into the dictionary), guessing an alternate word, and changing the word
to another.  The spell-checker has one major flaw: as it scans your outline,
it expands (unhides) all headings, and leaves them expanded when it exits.
This is terribly inconvenient and a thoughtless omission that should have
been caught during beta testing.

	One very nice feature is the amount of control the user has over
heading labels.  Using a simple syntax, one may specify what kind of labels
appear at each level.  For example, the default formatting string is:

		^I.,^A.;^n.,^a),^i)

which means Roman numerals with periods, then capital letters with periods,
then Arabic numerals with periods, then small letters with right
parentheses, and then small Roman numerals with right parentheses. The comma
is a separator character, and the semicolon indicates which labels should be
repeated in deeper levels.  You may include text in this formatting string.

	Flow may be invoked from either the Workbench or the Shell.  All of
the icon ToolTypes have Shell equivalents (yay!) which use the same words on
the command line.  Kudos to New Horizons for this consistency.


IMPROVEMENTS OVER FLOW 2.0

	I upgraded from Flow 2.0 to 3.1, and the improvements include:

	o	Support for Amiga OS 2.0.
	o	Spelling checker.
	o	More control over screen resolution and colors.
	o	Much improved look and feel.
	o	ARexx port.
	o	A few more editing commands.
	o	Automatic heading labels.
	o	Word counting and grammar statistics.
	o	Postscript printing support.
	o	Bug fixes.

	If you enjoyed Flow 2.0, you should DEFINITELY upgrade to 3.1.  If
you did not like Flow 2.0, then the choice is tougher whether the upgrade is
worth it, since the underlying program is still the same.


LIKES AND DISLIKES

	On the good side... I like the concept of "outline processors" in
general.  Back in 1985, I discovered "ThinkTank" for the Apple Macintosh and
realized what a powerful tool it could be for organizing one's thoughts.  I
organized this review using Flow.

	My favorite feature of Flow is the extensive set of ARexx commands.
An ARexx script can access virtually every capability of the program.  In
addition, the manual and the supplied examples are both very good.  In
particular, New Horizons supplies an example outline on disk which contains
an index of every article in every Amiga magazine for the past several
years!  What a great idea for an example -- it's not only good for testing
the program but also a good reference for Amiga users.

	On the bad side... I am afraid that I have a long list of dislikes
about Flow 3.1.  In general, Flow has some very powerful features but is
missing some important, basic capabilities.  I have organized my complaints
into several categories.

  Non-standardization

	o	The file requester is non-standard.  Flow does give you the
		option of using the standard ASL file requester instead, but
		Flow's default colors make this file requester look terrible.
		The gadgets blend into the background so you can't see their
		borders.  This "integration" of the ASL requester feels like
		a hack.

		Also, the default file requester uses the word "Back"
		instead of the more standard "Parent".

	o	Flow does not support alternate system fonts.  It uses the
		"Topaz 8" font regardless of how you set your Font
		preferences.

	o	Under the default colors, ghosted gadgets appear totally
		black in both foreground and background, so you can't see
		them at all.  This includes scrollbars, front/back gadgets,
		etc.  The effect is strange and forces you to guess
		sometimes just what gadget you are about to select.

	o	Typing "Flow ?" in the Shell does not produce a usage
		message.  It should.

  Graphic user interface

	o	Repeated cursor movement is pitifully slow, even on a 68030
		machine.  If you hold down the right cursor key, for
		example, the cursor moves at a rate of 5 characters per
		second.  And I have my key repeat rate set to be quite fast
		using the Input preferences.
		
		The problem may be that Flow updates too much of the screen
		during movement.  For example, the end-of-page dotted line
		redraws itself on every cursor movement.  I can't imagine
		why.

	o	When requesters disappear, they leave a gaping hole
		(rectangle) in the window for a very noticeable amount of
		time, even on a 68030 Amiga.  You can avoid this problem by
		turning on the "SmartWindows" option, but this slows down
		the window update speed in general.

	o	Some requesters will immediately exit if you press RETURN
		while editing the last field.  This is very inconvenient if
		you do not fill in the fields strictly from first to last.
		Instead, pressing RETURN in the last gadget should activate
		the first gadget, and clicking "OK" or "CANCEL" should exit.

	o	The "Screen Colors" tool for changing the program colors is
		easily THE worst I have seen in any Amiga program.  First,
		you are shown the current colors, and you click on one.
		Does this let you edit it?  Nope -- now you have to click on
		"Change".

		This removes the requester and brings up a SECOND requester
		that lets you edit JUST this one color.  It has gadgets for
		both RGB and HSV (Hue/Saturation/Value) editing, but the
		gadgets are different for the two methods!  RGB uses
		vertical arrow up/down gadgets with numeric values, and HSV
		uses horizontal sliders.  Once you are done, you click "OK"
		to get back to the FIRST requester, and you are ready to
		repeat the process for the next color.

		This scheme is weird and inefficient; I've never seen
		anything else like it.

	o	The "Colors" requester has no way to duplicate the Workbench
		colors quickly.  Many other programs have this feature.

	o	Certain user interface options may be set when Flow is first
		invoked but are impossible to change without exiting the
		program.  These include screen resolution, number of
		bitplanes, and choice of file requester (ASL or internal).

	o	Flow was obviously never tested in LORES mode.  Many gadgets
		in requesters are incorrectly displayed on top of each other.


  Other user interface issues

	o	Typing "Flow myfile", if myfile does not exist, should cause
		Flow to create myfile.  It doesn't -- Flow instead beeps at
		you and complains that myfile doesn't exist.  What good is
		that?  This also happens if a nonexistent file's name is
		given in the "Open..." requester.  I reported this to New
		Horizons over three years ago.

	o	If you give Flow an illegal command-line option, it does not
		complain.  It simply ignores the illegal options.  This is a
		matter of taste, but personally I'd like to be told when I
		make a mistake.

  ARexx port

	o	In a program this similar to a text editor, there should be a
		way to bind ARexx commands to every single keystroke, not
		just menu items and function keys.  This is my biggest gripe
		with the program, and the main reason that I don't use it
		very often any more.  Why should I have to learn a whole new
		set of keystrokes when the program has an ARexx port crying
		out to be used?

	o	If you want to execute an ARexx macro other than the 10 you
		can store in the menu, you must memorize its name, because
		selecting "Other..." brings up a simple string gadget.  It
		should bring up a file requester instead!!

	o	The files for the 10 ARexx macros in the "Macros" menu must
		be in the current directory in which you invoke Flow.  This
		allows you to have different sets of macros in each
		directory.  However, the names of the macros in the menu are
		stored GLOBALLY!  Therefore, every time you invoke Flow in a
		different directory, it can't find your macros.  This is
		IDIOTIC.  There should be a standard directory for macro
		files where Flow can always find them.  In fact, Flow
		already provides the directory FLOW: for locating the
		spelling dictionary, so...  why not??

	o	I hope New Horizons will provide a method for iterating
		through all headings at a given level or at all levels.
		"CursorUp" and "CursorDown" commands are too primitive; give
		us "NextHeading" and "PrevHeading", with the option of
		staying within the same heading level or not.

  Editing

	o	Unlike every other Amiga text processing program I have
		used, Flow uses a cursor that sits BETWEEN two characters
		instead of ON TOP of a character.  (The Mac uses the "in
		between" cursor too.)  I dislike this kind of cursor and wish
		there were an option to change it.  In addition, the cursor
		is not visible in inactive Flow windows; so if you have
		multiple Flow documents open, you can't the cursor locations
		in your other documents.

	o	For some reason, I spend a lot of time deleting blank
		headings.  Pressing RETURN always begins a new heading, and
		I am used to pressing RETURN at the end of each line in my
		text editor.  So, I have to delete the blank entry I just
		made, cursor up, and continue editing the current heading.
		I'd like to see an option to make RETURN act simply as a
		line-breaker, not a heading-starter.

	o	By continually expanding and collapsing headings, I find
		my position in the document getting pushed slowly downward.
		I'd like to see Flow get smarter about repositioning the
		page when headings get collapsed.

	o	There is no way to collapse a heading that is not currently
		visible on the screen.  Thus, if you are editing near the
		bottom of a heading with many subheadings, you must scroll
		or search upward to the heading before you can collapse it.

	o	There is no convenient way to expand or collapse every
		heading at once, unless you happen to make one global
		heading and put everything else beneath it.
		

  General functionality

	o	There is no "undo" command.  This is a serious deficiency in
		a program that lets you delete large chunks of your outline
		with 2 simple operations (click on one gadget and press
		DELETE key).

	o	The SAVE file requester lets you choose the format of the
		file:  either "Normal" (Flow's internal IFF format) or "text
		only."  However, this setting is not remembered between
		saves; you have to reselect it every time you save the
		file.  I reported this problem to New Horizons over three
		years ago.

	o	There is no widow/orphan control.  That is, a heading can
		appear as the last line of a page, and all its subheadings
		appear on the next page.  Flow uses a simple "number of
		lines" count to determine page breaks.

	o	There is no way to control spacing between lines in the
		printout.

  Extra features

	o	The spell-checker expands all your headings and leaves them
		expanded after it exits.  It should return the outline to
		its original state.

	o	Although Flow supports alternate typefaces (italics, bold,
		underline), it is not possible to use two typefaces within
		the same heading.  However, it IS possible to TRY to change
		typefaces inside a heading, which feels weird to me.  For
		example, you can highlight a region of text and then select
		"Bold" from the menu.  My intuition says that this should
		change the region to boldface, but it changes the entire
		heading.

		I realize that my example does not "prove" anything -- after
		all, Flow is acting correctly when it boldfaces the entire
		heading.  However, this sequence of events has an outcome
		which is "unnatural" according to my intuition.  If headings
		are the only units that can be boldfaced, then boldfacing
		should be allowed only when the HEADING ITSELF is selected
		(e.g., using the gadget in the left column).

	o	The "Grade Level Readability" index cannot be taken
		seriously.  It is supposed to estimate how readable a
		document is.  My review outline got "18.1" -- what does that
		mean?  Also, I opened a document and typed the word
		"indivisible" and got a readability index of 40.4.  New
		Horizons should delete this feature and save itself some
		embarrassment.

	To summarize my complaints:  I am puzzled by the priorities of
Flow's designers.  Flow has some unusual but "nifty" features features like
automatic date insertion, random sorting of lines, and the Grade Level
Readability index.  At the same time, it lacks more common features like
arbitrary keybindings (found in every text editor nowadays), boldfacing of
individual words, an "Open..." command that can handle nonexistent files,
and a standard file requester.


COMPARISON TO OTHER SIMILAR PRODUCTS

	If you have a strong need for an outline processor, I believe that
Flow is currently your only commercial choice on the Amiga.  The only other
commercial product I know of that supports (crude) outlining is Oxxi's
TurboText text editor, which allows parts of the file to be hidden and
unhidden selectively.  However, TurboText does not have direct support for
multiple levels of headings.  Flow is clearly more powerful for outlining.

	In the world of Amiga freely distributable software, we find 'Liner
(Fish Disk 451, shareware, by Dave Schreiber) and GNU Emacs 1.25 (available
on various FTP sites, freely distributable under the GNU Public License,
ported by David Gay).  'Liner is like a stripped-down Flow with a few
features and an ARexx port.  Flow is far more powerful, but 'Liner is
simpler and only $10.00 (US).

	GNU Emacs is a full-fledged text editing environment with thousands
of features.  One of those features is an outlining mode which is fully
customizable by the user (if you feel like programming in a LISP-like
language).  In my opinion, it would be ridiculous to use GNU Emacs only for
its outlining features.  If all you need is an outliner, Emacs is overkill.


BUGS

	I found a bunch of other bugs in version 3.0, reported them to New
Horizons, and they were all fixed in 3.1.  Great job, New Horizons!  In 3.1,
I found only 1 minor bug:  when using the ASL file requester, Flow does not
properly refresh its screen.  I can drag the requester around the screen,
effectively erasing all the text and gadgets.


SUPPORT

	I have contacted New Horizons by e-mail several times.  Replies
usually came within a few days, although some took a few weeks. Eventually,
they responded to all my mail.  They also accepted my bug reports by
e-mail.  I am happy to see that New Horizons has a representative who reads
USENET News and responds to users' questions there.


WARRANTY

	Physical media (disk and manual) are warranted for 90 days, and
replaced without charge.


CONCLUSIONS

	Flow 3.1 is a paradox.  On the one hand, it looks great, is quite
stable, has lots of features, and does what it claims to do.  On the other
hand, it lacks some important, basic functionality.  Flow is especially
disappointing when I realize that the product has been on the market for
over three years.  From using the program, I get the feeling that Flow was
designed by two different people:  one experienced Amigan, and one total
computer novice... and that the novice made too many design decisions.

	If you need an outline processor, Flow is currently the best one for
the Amiga.  Unfortunately, it needs an overhaul before I'd consider it a
good program. On a scale of 1 (terrible) to 10 (truly excellent), I rate
Flow a 5.


COPYRIGHT NOTICE

	Copyright 1992 Daniel J. Barrett.  All rights reserved.
	This review may be freely distributed provided it is distributed
	unmodified and in its entirety.  It may not be published in any
	commercial publication without the written permission of the author.

---

   Daniel Barrett, Moderator, comp.sys.amiga.reviews
   Send reviews to:	amiga-reviews-submissions@math.uh.edu
   Request information:	amiga-reviews-requests@math.uh.edu
   General discussion:	amiga-reviews@math.uh.edu
Newsgroups: comp.sys.amiga.reviews