summaryrefslogtreecommitdiff
path: root/web/funnelAC/userman/u_ch5.tex
blob: ab676074f8deeb6862cb6c00d6b5bc8af01e0b93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
%==============================================================================%
%                                Start of Ch5.tex                              %
%==============================================================================%
%
% Copyright
% ---------
% Copyright (C) 1992 Ross N. Williams.
% This file contains a chapter of the FunnelWeb User's Manual.
% See the main TeX file for this manual for further information.
%
%==============================================================================%

\chapter{FunnelWeb Administration}
\label{chapadministration}\xx{FunnelWeb}{administration}

\section{Introduction}

Whether a computer program is useful depends not just on the functionality
provided by the program, but also on the totality of the culture
and services surrounding it such as license costs, the
quality of
documentation, presence of a standard and so on.
This chapter addresses these issues from a user perspective.

\section{The User's Commitment To FunnelWeb}
\xx{commitment}{FunnelWeb}

One of the problems that might prevent potential users from using FunnelWeb
is the level of commitment that it requires. As soon as the user starts
creating FunnelWeb \p{.fw} files, the user becomes dependent on the
FunnelWeb program, as the files so created will become unmanageable if
the FunnelWeb program were to become unavailable for some reason.
There are a number of ways in which computer programs can become unavailable,
including operating system upgrades, copyright problems, inability to
fix bugs, or just the inability of the program to be ported to a new target
platform.

The fact
is that FunnelWeb defines an input language and that currently there is
only one implementation of the language. Users will only write programs
using that language if they feel comfortable about the availability of its
implementation.

I have been critically
aware of these issues throughout the development of FunnelWeb and have
taken every possible step to make FunnelWeb a solid base onto which to
build programs. The following points describe the actions I have taken.

\narrowthing{GNU license:}{FunnelWeb's C source code
has been released under GNU General Public
License Version 2. This means that the source code to FunnelWeb will always
be available to anyone who wants it. The FunnelWeb program can never be
taken away from you.}

\narrowthing{Portability:}{FunnelWeb has been designed and written to be
extremely portable. First, all FunnelWeb really does is read and write
text files. This makes it easy to make portable. Second,
FunnelWeb is written in the C programming language\paper{ANSI}
with portability as
a major design goal. Third, FunnelWeb has already been ported to four
popular platforms: SunOS, VAX VMS, PC, and Macintosh and it should not prove
hard to move it to others. Fourth, FunnelWeb comes with a huge automated
regression test suite. This makes it easy to pinpoint problems when it
is moved to a new platform. Portability is important because, even if \i{you}
are not using FunnelWeb on some funny platform, you may want to send
a computer program written using FunnelWeb to someone who does.}

\narrowthing{Quality:}{The FunnelWeb source code is high quality code.
Although it has not been formally developed under any particular coding
standard, it is well designed and documented. Design decisions have
not been taken lightly.}

\narrowthing{Documentation:}{FunnelWeb is well documented by this manual
and by the \i{FunnelWeb Hacker's Manual}. This is important because it
means that if you want to send someone a program written using FunnelWeb,
you can simply point them to this manual rather than having to explain
it all yourself. It is also comforting for managers who are controlling
source code to know that the format in which the source code is written
is well-documented.}

\narrowthing{Standardization:}{Users who create source files using FunnelWeb
are not only committing to the FunnelWeb program; they are also investing
in the FunnelWeb language. If FunnelWeb's language changes radically for
some reason, then this investment by users will be undermined. To protect
this investment, I intend to maintain an \dq{official} version of FunnelWeb
whose language will not change radically, at least not
in a non backward compatible manner.}

It is my hope that the combination of these factors will alleviate any
fears that users may have about committing their source files
to FunnelWeb.

\section{Documentation}
\xx{FunnelWeb}{documentation}

The following FunnelWeb documentation is available:

\begin{verbatim}
    "FunnelWeb User's   Manual": Tutorial, Hints, Reference Manual.
    "FunnelWeb Hacker's Manual": Notes on Design and Implementation.
\end{verbatim}

Everyone involved with FunnelWeb should read the \i{FunnelWeb User's Manual}.
It contains everything you need to know about how to use FunnelWeb. In fact,
you are reading it now!
 
The \i{FunnelWeb Hacker's Manual}
is for those who want to install, modify, fix,
fiddle with, and generally hack the FunnelWeb C source code.
 
Both of these manuals are shipped with the FunnelWeb distribution
kit, and should be available on your machine in the form of LaTeX text
files. If you cannot find them, you can obtain them from the
FunnelWeb FTP archive (see Section~\ref{ftparchive}).

\section{Registration}
\label{registration}\xx{FunnelWeb}{registration}

If you install or use FunnelWeb, please register by filling in and
returning the registration form in \figregform{}.
Feel free to expand the form if there is not enough room.


\begin{figure}[htbp]
\begin{verbatim}
    +----------------------FunnelWeb Registration Form----------------------+
    | 1. Date:                                                              |
    |                                                                       |
    | 2. Title and name:                                                    |
    |                                                                       |
    | 3. Internet email address:                                            |
    |                                                                       |
    | 4. Snail mail address:                                                |
    |                                                                       |
    | 5. Work phone number (country,area,number):                           |
    |                                                                       |
    | 6. Which category of FunnelWeb user best describes you?               |
    |       Latent    - Installed FunnelWeb, but don't intend to use it.    |
    |       Beginner  - Haven't used FunnelWeb much yet; have an open mind. |
    |       Casual    - Use FunnelWeb occasionally.                         |
    |       Convert   - Use FunnelWeb to do most programming.               |
    |       Fanatic   - FunnelWeb has become a way of life.                 |
    |                                                                       |
    | 7. What changes or new features would you like to see in FunnelWeb?   |
    |                                                                       |
    |                                                                       |
    |                                                                       |
    |                                                                       |
    |                                                                       |
    |                                                                       |
    | 8. Do you want to be kept informed of new FunnelWeb developments?     |
    |                                                                       |
    +-----------------------------------------------------------------------+
\end{verbatim}
\mylabel{\figregform{}: The FunnelWeb registration form.}{%
%
To register as a FunnelWeb user, please fill in this form and email it to
\p{ross@spam.adelaide.edu.au}, or snail mail it to
Ross Williams, 16 Lerwick Avenue, Hazelwood Park 5066, Australia.
You may wish to make a contribution when you register.
See Section~\ref{support} for more information.
%
}
\end{figure}

Email the form to \p{ross@spam.adelaide.edu.au}, or snail mail it to
Ross Williams, 16 Lerwick Avenue, Hazelwood Park 5066, Australia.
You may wish to make a contribution when you register.
See Section~\ref{support} for more information.

\section{Support}
\xx{FunnelWeb}{support}\label{support}

FunnelWeb is released \dq{as is} under a GNU license, and
no formal support is available.
You have the right to make changes to FunnelWeb
and to use the modified versions created by random programmers.
However, this is discouraged (see Section~\ref{modification}).

In fact the support that is most needed is your financial
support for the
FunnelWeb developers! It has taken \i{months} of full-time \i{unpaid}
work to bring FunnelWeb to you in its current form.
I don't want to inconvenience users who install
FunnelWeb, play with it, and then hardly ever use it.
If you are in this category,
please register, but don't bother contributing. However, if you find that
FunnelWeb has become a useful programming tool, a
contribution of some positive multiple of US\$50 would be appreciated.

To make a contribution, send payment with a completed registration form
(see Section~\ref{registration}) to:

\begin{verbatim}
   Renaissance Software Pty Ltd
   Email: ross@spam.adelaide.edu.au
   Snail: 16 Lerwick Avenue, Hazelwood Park 5066, Australia.
\end{verbatim}

Payment can be by personal or bank cheque to any bank in the world or by
Visa or Mastercard. Please give the card name, number, expiry date, and
the amount to be paid in US dollars. All contributions will be appreciated
and will encourage further FunnelWeb development. However, no undertaking
is made whatsoever about how the money will be used.

\section{Copyright}
\xx{copyright}{FunnelWeb}\xx{FunnelWeb}{license}\xx{GNU}{license}%
\label{copyright}

The FunnelWeb program is Copyright $\copyright$ 1992 Ross Williams.
 
However, FunnelWeb has been released by the author and copyright owner Ross
Williams (\p{ross@spam.adelaide.edu.au}) under Version 2 of the GNU General
Public
License published by the Free Software Foundation. Here are some ways
that you can obtain a copy of this license.

\begin{itemize}

\item The license appears as an appendix in the \i{FunnelWeb Hacker's
Manual}.

\item If you have a working version of FunnelWeb, invoke it with
\p{fw +hlicense +jlicense.txt}.

\item Look in the \p{help} module of the FunnelWeb source code.

\item FTP the license from \p{prep.ai.mit.edu} in \p{/pub/gnu/COPYING-2}.

\item Write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

\end{itemize}

The license allows you to
redistribute FunnelWeb and/or modify it under certain conditions.
The license does not cover the \i{FunnelWeb User's Manual} and
\i{FunnelWeb Hacker's Manual} which are distributed under a simpler
license that prohibits changes.
 
Note: FunnelWeb is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

\section{Nowarranty}
\x{warranty}

Users of FunnelWeb should be aware that FunnelWeb comes with no
warranty. Here is an extract from the GNU General Public License Version 2,
under which
FunnelWeb is distributed. For more information see Section~\ref{copyright}.

\begin{verbatim}
      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    REPAIR OR CORRECTION.
 
      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGES.
\end{verbatim}

\section{Distribution}
\xx{FunnelWeb}{Distribution}

Users of FunnelWeb should be aware that they can distribute the program
freely.
The following is an extract from the GNU General Public License Version 2,
under which FunnelWeb is distributed.

\begin{verbatim}
      1. You may copy and distribute verbatim copies of the Program's
    source code as you receive it, in any medium, provided that you
    conspicuously and appropriately publish on each copy an appropriate
    copyright notice and disclaimer of warranty; keep intact all the
    notices that refer to this License and to the absence of any warranty;
    and give any other recipients of the Program a copy of this License
    along with the Program.
 
    You may charge a fee for the physical act of transferring a copy, and
    you may at your option offer warranty protection in exchange for a fee.
\end{verbatim}

The license also allows you other freedoms.
For more information see Section~\ref{copyright}.

\section{Modification}
\label{modification}

FunnelWeb is distributed under a GNU license, and you are free to modify the
source code and distribute modified copies (see Section~\ref{copyright}).
However, there are good reasons why you should avoid doing this.

\begin{enumerate}

\item If you distribute modified versions of FunnelWeb, you run the risk of
creating a version that will diverge from the \dq{official} version of
FunnelWeb that I intend to maintain.

\item If you release a version of FunnelWeb with a changed input language,
users of your modified version will create source files that will no
longer work on other versions of FunnelWeb. The result would be chaos.

\end{enumerate}

For these reasons I request that you do not distribute modified versions of
FunnelWeb, particularly versions with a modified language. However, if you must
distribute a version with a modified language, \i{please change its name}
(\ie{}from \dq{FunnelWeb} to something else). Please also allocate a new
file extension
to replace \dqp{.fw} as the extension for source files written in the modified
language.

For more information, refer to the \i{FunnelWeb Hacker's Manual}.

\section{Versions}
\xx{FunnelWeb}{versions}

FunnelWeb was created in 1986 and was used extensively by Ross Williams
(\p{ross@spam.adelaide.edu.au}) for three years. However,
Version~1.0 was written
in Ada and was not very portable (it was fairly VAX/VMS specific).
David Hulse
(\p{dave@cs.adelaide.edu.au}) took the first step towards a
release by translating
the Ada code into C. Ross Williams then extensively reworked the C code, making
it robust and portable, adding new features, and polishing it to its
current form.

\begin{verbatim}
 Vers  Lang  Created  Released   Author          Copyright      Licensing      
 ----  ----  -------  --------   --------------  -------------  ---------      
 V1.0  Ada   1986     Never      Ross  Williams  Ross Williams                 
 V2.0  C     1989     Never      David Hulse     Public domain  No restriction.
 V3.0  C     1992     May-1992   Ross  Williams  Ross Williams  GNU release.   
\end{verbatim}

This manual was released for:

\begin{verbatim}
     * FunnelWeb       V3.0.
     * User's Manual   V1.0.
     * Hacker's Manual V1.0.
     * TeX Definitions V1.0.
\end{verbatim}

\section{FTP Archive and Author}
\label{ftparchive}%
\xx{author}{contacting}\xx{ftp}{archive}\xx{FunnelWeb}{archive}

The FunnelWeb FTP archive is:

\begin{verbatim}
   Machine   : sirius.itd.adelaide.edu.au [IP=129.127.40.3].
   Directory : ~pub/funnelweb/   (or a directory of similar name).
\end{verbatim}

The author of FunnelWeb and this manual is:

\begin{verbatim}
   Name:  Dr Ross N. Williams
   Email: ross@spam.adelaide.edu.au
   Snail: 16 Lerwick Avenue, Hazelwood Park 5066, Australia.
\end{verbatim}

I intend to maintain an \dq{official} version of FunnelWeb which I will
release under GNU license from time to time. I am happy to receive
constructive criticism
about FunnelWeb and its documentation.

I will always be happy to receive mail about FunnelWeb, but cannot
guarantee that I will be able to reply to it immediately.

%==============================================================================%
%                                End of Ch5.tex                                %
%==============================================================================%