home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / comms / network / grn116e.lha / GRn.doc < prev    next >
Text File  |  1992-07-07  |  20KB  |  394 lines

  1.                                       GRn
  2.  
  3.                                Gadtools Read News
  4.                                   for the Amiga
  5.  
  6.                                       by
  7.  
  8.                                  Mike Schwartz
  9.                                Michael B. Smith
  10.  
  11. ================================================================================
  12.  
  13. Mike Schwartz                                         Michael B. Smith
  14. 1124 Fremont Ave.                                     P.O. Box 6791
  15. Los Altos, CA  94024                                  Charlottesville, VA  22906
  16.  
  17. mykes@amiga0.sf-bay.org                               mbs@adastra.cvl.va.us
  18.  
  19.  
  20. GRn is FreeWare.  But, if you have a desire to donate, please feel free.  :)
  21.  
  22. We've gone to a great deal of trouble to try to make sure that GRn is as usable
  23. and bug-free as possible,  but we can't guarantee it. Use GRn at your own risk.
  24.  
  25.  
  26. CREDITS
  27.  
  28. Special thanks to Peter Cherna of Commodore-Amiga for his assistance with my
  29. GadTools questions.  I still can't do EVERYTHING I want to with GadTools, but
  30. I am getting better, especially with his help.   :):)
  31.  
  32. Special thanks to Georg Sassen for his assistance with a DICE startup problem
  33. that haunted me for weeks.
  34.  
  35. Special thanks are due to Matt Dillon, as well.  He has helped me to make GRn
  36. as compatible with UUCP as possible.  As well, his 'C' compiler, DICE, is head
  37. and shoulders above the rest of the Amiga 'C' compilers.  If you don't have it,
  38. it is well worth the $50 to get the registered version.
  39.  
  40. Special thanks to Christopher A. Wichura, who has been very helpful in getting
  41. GRn "clean" of Enforcer hits and Mungwall violations.
  42.  
  43. IMPORTANT NOTES
  44.  
  45. Throughout this document, "I" refers to the original author, Myke Schwartz.
  46.  
  47. To install, read the file INSTALL which should have come with this archive.
  48.  
  49. For run-time parameters, see the file GRn.man which should have come with this
  50. archive.
  51.  
  52. GRn requires release 2.04 of AmigaDOS.
  53.  
  54. GRn is designed to work with Dillon's AmigaUUCP versions 1.13, 1.15 and 1.16.
  55. It should work with NFS mounted C-News partitions as well. An NNTP module is
  56. in the works.
  57.  
  58. GRn is written in 'C'.  And typical of 'C' programs, it requires a bit of
  59. stack space.  GRn should comfortably run with 16K of stack.  It probably
  60. will work with 8K, but I won't guarantee it.  Some of the subroutines have
  61. as much as 5K in auto variables/arrays...
  62.  
  63. Due to way WorkBench works, you must either:
  64.  
  65.         a) Install GRn in the same directories where SendMail, PostNews
  66.            and UUEncode reside, or
  67.  
  68.         b) Put absolute pathnames for SendMail and PostNews in your
  69.            UULIB:Config file (you must still have UUEncode in the same
  70.            directory).
  71.  
  72. We may come up with a way to resolve this in the future.
  73.  
  74. The "STOP" button in the fuel gauge requester in the Publish function does
  75. nothing.
  76.  
  77.  
  78. MANIFEST
  79.  
  80. Each version of GRn should come with the following files:
  81.  
  82.                         README
  83.                         CHANGES
  84.                         INSTALL
  85.                         TODO
  86.                         PROBLEMS
  87.                         GRn
  88.                         GRn.info
  89.                         uuencode
  90.                         GRn.doc
  91.                         GRn.man
  92.                         fonts/grn.font
  93.                         fonts/grn/8
  94.  
  95. Some archives of GRn will also include a version of MailMinder.
  96.  
  97. Some archives of GRn will include source.
  98.  
  99. UUENCODE
  100.  
  101. A version of UUEncode is included as part of the GRn distribution. If anyone
  102. has problems with this version of uuencode, I am willing to replace mine with
  103. theirs. Regrettably, I have NO idea who wrote this uudecode program, or I
  104. would give him the credit he deserves.
  105.  
  106.  
  107. MAILMINDER
  108.  
  109. Now distributed with GRn is another neato utility written to enhance UUCP
  110. under 2.04 (and up).  This utility is called MailMinder.  MailMinder adds
  111. appIcon(s) to your workbench display that (in default form) is a mailbox
  112. with flag up (if you have mail) or flag down (if you don't).  MailMinder is
  113. fully configurable via tooltypes and can automatically launch DMail (or
  114. whatever) when you have mail or when you doubleclick the icon.
  115.  
  116. Included with MailMinder are custom Icons drawn by Paul Broe, Dave Connors,
  117. Stephan Lussier, and Andy Wright.  My thanks to these guys!  Special thanks
  118. to Andy Wright, who passes along some very nifty scripts and such to go
  119. along with MailMinder.
  120.  
  121.  
  122. INTRODUCTION AND OVERVIEW
  123.  
  124. I've been on UseNet for over 7 years now (causing everyone pain and misery, I'm
  125. sure :).  For the last year (plus), I've been using Matt Dillon's Amiga UUCP
  126. package to actually get to read/write news and mail on my Amiga instead of
  127. having to use some cryptic and barbaric Unix user interface over the phone at
  128. 2400 broads (oops, baud :).
  129.  
  130. But after using DNews for all this time, I have always wanted to replace it with
  131. something that works better for the Amiga - something that uses Intuition and
  132. runs from an Icon, etc.  Also, Matt has been too busy to polish up DNews to meet
  133. my demanding specifications :)
  134.  
  135. Ever since 2.0 has come out, I've been using the new 2.0 functions.  I typically
  136. don't write hard disk based programs for public consumption on the Amiga, so it
  137. never has made a difference to me to support 1.3.  So if you don't have 2.0, you
  138. may as well stop reading and delete these files, or you may start drooling :) Or
  139. you should go and get 2.0.  It is worth it.  Once you go 2.0, you won't go back.
  140.  
  141. I should also mention that I have tried to find other PD news readers, but none
  142. have even come close to what I envisioned an Amiga oriented News Reader to be.
  143. Too many of them are clones of Unix teletype style interfaces for my personal
  144. liking.
  145.  
  146. GRn can be started from the CLI or from the workbench icon.  I personally use
  147. the latter.
  148.  
  149.  
  150. BASIC CONCEPTS AND REQUIREMENTS
  151.  
  152. GRn is patterned after some screen shots of XRn (X-Windows Read News) that a
  153. friend of mine sent to me.  I've never used XRn, but it looks like a great user
  154. interface for News.  I doubt that GRn is totally a look- and feel-alike for XRn,
  155. but it deserves a plug anyhow.  Anything that makes Unix less cryptic is worth
  156. the plug!
  157.  
  158. GRn assumes that you have the basic Amiga UUCP system assigns in place - UUCP:,
  159. UUTMP:, UUMAIL:, UUNEWS:, etc.  GRn creates a file called username.grnrc in your
  160. UULIB:  directory, where it keeps track of the News database.  This file is NOT
  161. in ascii format, and can grow to be quite large - as much as 256 bytes per news
  162. article in your UUNEWS:  directory tree.  However, the binary format used
  163. provides for as fast a startup/shutdown as I could get, considering the
  164. inefficiencies of the Amiga filesystem for scanning directories.
  165.  
  166. Due to problems with Dillon's software not using the system path to find its
  167. binaries, I've found that the only way to get GRn to work properly from a
  168. workbench icon is to put the GRn executable in the same directory as Dillon's
  169. binaries.  More specifically, Dillon's PostNews Execute()'s BatchNews, RNews,
  170. and UUX, but when GRn is run from a workbench ICON, those Execute()s fail for
  171. some reason.  Remember, if you keep your UUCP binaries in UUCP:c, as I do, put
  172. the GRn executable and Icon in UUCP:c also!  GRn deliberately uses the full path
  173. to the executables as found in your environment variables or UULIB:config...
  174.  
  175. So, for correct operation of GRn from the WorkBench, the binary directory must
  176. contain these programs: GRn, GRn.info, RNews, UUX, UUXqt, BatchNews, SendMail,
  177. PostNews and UUEncode (needed for Publish). To use GRn from the CLI, all of
  178. these programs must be on the CLI path.
  179.  
  180. Finally, GRn is designed to work with its own custom 8-point font.  This font is
  181. called grn.font and must be installed in your fonts:  directory.  There are
  182. valid reasons for choosing to do so...  First of all, although GRn is pretty
  183. smart about algorithmically placing and sizing the various gadgets, it is easy
  184. for the user to choose a font that makes the gadgets not fit appropriately in
  185. the window.  Second, the font I chose is narrow, so you can fit more columns of
  186. text in the browse listviews.
  187.  
  188. OPERATION
  189.  
  190. GRn operates in a single window, which can have two different looks to it.  The
  191. two modes of operation are Group Mode and Article Mode.  In Group Mode, you
  192. perform operations on newsgroups.  In Article Mode, you perform operations on
  193. the articles in the selected newsgroup.
  194.  
  195. There is a close gadget on the window.  Use this gadget ONLY if you want to quit
  196. without updating your .grnrc file!  The "Quit" button on the groups mode window
  197. is the normal method of quitting which saves updated news tree information to
  198. your .grnrc file.
  199.  
  200. Both Group Mode and Article Mode have a Text gadget near the bottom of the
  201. window which is used to display messages.  For Group Mode, the total number of
  202. newsgroups, articles, and unread articles is displayed.  For Article Mode, the
  203. article number, remaining article count, and the name of the next newsgroup is
  204. displayed.
  205.  
  206. In Group mode, you are presented with a list of all the newsgroups, along with
  207. the number of articles in each newsgroup and the number of unread articles in
  208. each newsgroup. Below this list of groups are a set of buttons which operate on
  209. the selected newsgroup.  You can Catchup in a newsgroup, Read a newsgroup,
  210. Post to a newsgroup, or Publish a binary file to a newsgroup.
  211.  
  212. You must select a newsgroup as the first step for any of these functions (that
  213. is, click on the newsgroup name). Click once on a newsgroup to select it and
  214. the various buttons become active as appropriate.  For example, it doesn't make
  215. sense to be able to read a newsgroup which has no articles, so the "Read" button
  216. will be disabled.  Double-clicking on the newsgroup is the same as clicking once
  217. and then clicking "Read".
  218.  
  219. To Catchup, click on the Catchup button after selecting a newsgroup. All
  220. articles for that newsgroup will be marked as "read".
  221.  
  222. To Read, click on the Read button after selecting a newsgroup. You will be
  223. taken to the Article Mode screen (explained below).
  224.  
  225. To Post, click on the Post button after selecting a newsgroup. Your specified
  226. editor will be executed for you to enter the article. If you run GRn on a
  227. custom screen, you may need to enter LeftAmiga-M to bring the editor to the
  228. front screen. After you exit your editor, GRn requests you to confirm that
  229. you still wish to post the article. If you confirm, GRn does so. If not, the
  230. article is discarded. GRn also detects whether or not you actually changed
  231. the article. If you did not, GRn asks you whether to abort the posting or not.
  232.  
  233. To Publish, click on the Publish button after selecting the newsgroup you wish
  234. to publish the file in. A file requester will be presented for you to choose the
  235. desired file to publish.  GRn will automatically uuencode and make as many 500
  236. line posts as needed to completely post the file. The subject line of each
  237. message will be formatted as "<filename> (part x/n)".
  238.  
  239. There is a "bug report" button, which will automatically send me e-mail so you
  240. can easily access me to get bugs and/or enhancements done. There is also a UUCP
  241. Bug Report button which will post a message to the alt.sys.amiga.uucp newsgroup,
  242. to report bugs with UUCP.
  243.  
  244. In Article Mode, the window takes a new display format.  The list at the top
  245. becomes a list of the articles in the selected group, including the status
  246. (READ/UNREAD), the article number, the sender (parsed from the "From:" field
  247. of the article header), and the subject.  This is a convenient way to browse
  248. through the articles available to read!
  249.  
  250. There are two checkboxes below the list of articles named "Hide Headers" and
  251. "Hide Read Messages".  When "Hide Headers" is checked, the browser window at the
  252. bottom of the window will not display article header information.  When "Hide
  253. Read Messages" is checked, the articles list will only show UNREAD articles.
  254. "Hide Read Messages" is not yet implemented, so the box is permanently
  255. "ghosted".
  256.  
  257. Below the checkboxes is a row of buttons.  The "Groups" button returns you to
  258. the Group Mode display. The Prev button (bound to the 'p' and the 'b' keys)
  259. moves you to the prior article, if any. The Next button (bound to the 'n' key)
  260. moves you to the next article in the list, if any. The Unread button moves you
  261. to the next UNREAD article. The Next Group button (bound to the 'N' key)
  262. moves you to the next newsgroup with unread articles (if there are no
  263. newsgroups with unread articles, you are taken to the next group in the
  264. newsgroup list). The Prev Group button (bound to the 'P' and 'B' keys) moves
  265. you to the previous group in the newsgroup list. Finally, there is a cycle
  266. gadget that allows you to specify how to sort the list of articles.
  267.  
  268. You can sort the articles list by Number, From, or Subject fields.  This allows
  269. you a lot of flexibility as to how the Next/Prev functions work.  If you sort by
  270. Number, you read in the order the messages were posted by Dillon's UUCP.  If you
  271. sort by From, you can read all the articles by a certain person in order.  If
  272. you sort by Subject, you can read the articles in "thread" fashion.
  273.  
  274. Below these buttons are three text gadgets used to display the From:,
  275. Organization:, and Subject:  fields from the selected article.  When the "Hide
  276. Headers" option is selected, this is typically the header information that you'd
  277. care about, anyhow.  But if you want to see other information in the headers,
  278. you always can with the click of the mouse...  I like the Hide Headers feature,
  279. because you will more often than not be able to see entire articles in the
  280. browser window this way.
  281.  
  282. Below the text gadgets is the article browser window.  This window will contain
  283. the text (with or without headers) of the selected article.  You have a choice
  284. of using the Mouse to scroll this window or to use the keyboard cursor keys.
  285. Unfortunately, one of the oversights in GadTools.library is that there is no way
  286. to tell how the user has used the mouse to scroll the ListView, so intermixing
  287. can be a bit confusing - but it does work as well as possible.
  288.  
  289. Below the browser window is another row of buttons that operate on the
  290. currently selected article.  You may save the article to a file, Reply to the
  291. article's poster via Mail, Forward the article to someone, FollowUp (post) to
  292. the article, or Print the article to your printer.
  293.  
  294. This version of GRn uses the News and Mail Editors specified in your
  295. UULIB:config file.  A future release of GRn will have its own composition
  296. window added to it so the package will be fully integrated.
  297.  
  298. TECHNICAL INFORMATION
  299.  
  300. GRn internally consists of three logical modules: main, gmode, and amode.  The
  301. main program starts by parsing the environment variables NEWSEDITOR, MAILEDITOR,
  302. and USERNAME or finds them in UULIB:config.  If the .grnrc file is found, main
  303. reads it into memory and then scans the newsgroups for deleted articles
  304. (pruning) and new articles.  If the .grnrc file is not found, main scans UUNEWS:
  305. for groups and articles and builds a tree from scratch.  main also checks to see
  306. if another copy is running and aborts if so (before reading the tree, of
  307. course).  Two copies of GRn running at the same time can cause the News Trees to
  308. be out of sync and cause problems not worth addressing.
  309.  
  310. For each group, the hide headers, hide read, and sort options are kept.  This
  311. way, you can read one group sorted by subject and another sorted by from.
  312.  
  313. When posting or replying, GRn puts a custom extension field into the article
  314. headers: "X-NewsSoftware:  GRn, etc."
  315.  
  316.  
  317. RECOMMENDATIONS
  318.  
  319. I recommend that you use your normal newsreader to catchup on all your news
  320. right away.  Then you run GRn and use the catchup feature to get in sync.
  321.  
  322. What's coming next:
  323.  
  324. 1.      I still want to work on the way sort by subject works.  The Re: part should not be
  325.         considered during the sort, except to put the original posting first.
  326.  
  327. 2.      The publish and hide unread gadgets are still disabled.  Publish will allow you to
  328.         automagically uuencode and post (in as many parts as needed) binary files to a news
  329.         group.  I will add a reverse option to the articles mode to automagically combine
  330.         these kinds of postings and uudecode them (when you use SAVE).
  331.  
  332. 3.      There is still a huge wasted area below the groups LISTVIEW in groups mode.  I intend
  333.         to add new features there in the future.  Please be patient.  I intend to implement
  334.         a full-blown uulib: configuration editor, preferences (like a way to change my bug
  335.         report path if I move, GRn task priority, etc.), a button to start/stop CRON and
  336.         UUCICO, and eventually GMail.
  337.  
  338. 4.      I intend to implement a nifty kill-file dialog/requester.
  339.  
  340. 5.      I will add the capability of GRn to iconify itself (into an appIcon).  I have done this
  341.         with other programs already, and it's no big deal...
  342.  
  343. Things NOT implemented (I decided against doing):
  344.  
  345. 1.      Allowing the user to specify the font of his choice for the listviews.
  346.         Until the Amiga has higher resolution and faster hardware display, it
  347.         doesn't make sense to not have at least 80 columns of text for the
  348.         article browser.
  349.  
  350. 2.      I was going to add some sort of statistic display while GRn was starting
  351.         up. It is not needed anymore, since GRn zips now.
  352.  
  353. 3.      There were complaints about the size of the grnrc file.  I was going to
  354.         add a compressor/decompressor to shrink this.  I have a real fast one I
  355.         use in my games that does about what LHARC does (same percentage, but
  356.         much faster).  It isn't needed anymore, since I reduced the grnrc file
  357.         size by 80%.
  358.  
  359. Call for discussion:
  360.  
  361. I have an idea that I would like feedback on.  I want to implement a news/mail
  362. editor that is 100% consistent with the GRn interface.  Currently, GRn supports
  363. no particular editor well.  An integrated editor may seem controversial at first
  364. glance, but let me describe it in more detail and then you can send me flame
  365. mail (or whatever) with your opinions.
  366.  
  367. The editor I envision has a different look for mail and news editing, so let me
  368. describe Mail first.  The top of the window (same window as GRn uses now) would
  369. have String gadgets for you to enter To:, Subject:, Cc:, Bcc:, and Attachment:
  370. header fields.  Next to each string gadget will be a button - if you hit the To:
  371. button, a requester with a listview containing your aliases and EVERY username
  372. GRn and GMail ever see in From: and Path: fields of all news articles and mail
  373. messages would pop up and you can simply select a name.  If you click on the
  374. button next to attachment, a file requester pops up to request what file you
  375. wish to send as a binary with the mail (uuencoded, split, automagically).  At
  376. the bottom of the window there will be several gadgets, among them: Save, Send,
  377. Abort, Include article/message, Include File, and print.
  378.  
  379. The article editor has different gadgets at the top: newsgroups, subject, etc.
  380. Similar to the mail editor, you can click a button next to newsgroups: and you
  381. get a listview requester with a list of ALL newsgroups your UUCP knows about to
  382. choose from.  At the bottom of this window, you have similar buttons to the mail
  383. editor.
  384.  
  385. Now that you have a feel for the nature of the editor (unified environment),
  386. I'd like to point out that I don't believe the editor should be a massive,
  387. full-blown program editor by any means.  In fact, I believe the editor should
  388. be pretty minimal.  It will do word wrap and cut and paste (to the
  389. clipboard.device).  It will be more than useable for what it is designed to do -
  390. edit mail and news articles (what a concept :)
  391.  
  392. OK, I've had my say, let me know your opinions...
  393.  
  394.