RecipeIndex [V0.94 by Izumi Ohzawa, izumi@pinoko.berkeley.edu] [Archive maintainer: please store this file in the same directory as Recipes.tar.Z, since this package contains a set of tools to index recipe files in that collection. Thanks.] OS: 3.0 or later ARCH: MAB (m68k,i386) This is a Sevice filter daemon for indexing recipe collection in nroff format available as Recipes.tar.Z at FTP archives. This is a replacement (update) for scripts found in Recipes/.index directory which no longer work for Digital Librarian in NS 3.x or later. Precompiled FAT binary (m68k,i386) is included. Nroff-format recipe files themselves are not included, you must obtain them by getting Recipes.tar.Z from the archives. There is no need to modify the original recipe files. You only have to add several files to the Recipes database directory from this distribution, and install indexing tools and display scripts. From the original package, only the README file is included here as README-Recipes.orig. An alternative way to index this thing is to use a nroff2rtf type converter, which must exist somewhere, while moving the recipe title to the top of file. Then again, you will lose such cool features, e.g., ability to display recipes with metric measurement units with a simple modification to .displayCommand. This is a quickly hacked version of the indexing tool for NewsGrazer articles available as NewsIndex0.93* from the archives. Only minimal modifications have been made. See README-OLD.NewsInex0.93 for info on details not found in this README file. CAVEAT: This indexing service may or may not interfere if you attempt to index local man pages for DL, because it registers file type "nr". If you have trouble indexing new man pages, remove RecipesIndexing.service. Since the recipes collection appears to be static (no new ones avaialble), you might want to remove the service after you've created the index anyway. Also for now, you should avoid using Igor.app from AFS that comes with WriteUp.app (maybe also with PasteUp too). NS Release 3.2, DigitalLibrarian, ixbuild are not happy when Igor.app is in /LocalApps or ~/Apps. You will get lots of error messages in the console log from ixbuild and DL saying ascii paste board could not be filtered etc. This may not necessarily cause apps to mulfunction, but it is annoying. The bug, I was told, is in NeXT side of software, but until that is fixed, you might avoid Igor.app anyway. --- Installation Procedure ------------------------------------------------- [1] Copy "RecipeIndexing.service" folder into /LocalLibrary/Services or ~/Library/Services. [2] Copy the following 6 files: .index.ftype .index.swords .displayCommand .roffArgs .dir.tiff Copyright.rtf into ~/Library/Recipes directory (or wherever you have installed nroff recipe files). (Enable "Unix Expert mode" in Preferences, if you don't see these files in FileViewer.) Rename the obsolete .index directory to something else like .index.old (just in case the old directory is not completely ignored). [3] Copy xart.awk into /usr/local/lib directory. Also copy tmac.recip into /usr/local/lib/tmac. Create the directories if they do not exist. [These files and .displayCommand come from rcshow shell script in the original package written by Brian Reid.] [4] Do "make_services" or, logout/relogin or whatever necessary to make WorkSpace recreate its services cache. Try doing Command-u in WorkSpace while ~/Library/Services/RecipeIndexing.service (or /LocalLibrary...) is selected. [5] Cd to ~/Library/Recipes (or wherever), and do: rm .index.store ixbuild -gsv -LEnglish . This will create the first usable index for DL. With the '-v' flag for the ixbuild command, it should print out filenames being indexed followed by the file type "nr" for nroff file. If the file type is not "nr", something is wrong with the installation. Possible causes include missing .index.ftype or RecipeIndexing.service is not correctly installed or the servce is not yet registered by Workspace (see [4] above). [6] Start DL and drag ~/Library/Recipes onto shelf. Save. [7] From this point on, you should be able to update the index from within DL via the inspector (if you ever get new recipes in nroff format). [8] To display in Metric measurements (grams, milliliters, etc. instead of lbs, cups), change "-rM0" to "-rM1" in .displayCommand. [9] Delete the installed RecipeIndexing.service if you are not adding any new recipes in nroff format (see CAVEAT at the top of file). [10] Install a tastier .dir.tiff in the Recipes folder than the one I included from NeXT-icon@gun.com Archives (Tools/Spatula/Spatula.tiff). No Copyright is claimed for the RecipeIndex/RecipeFilter. This program is hereby released into the public domain, and you are free to use it for any purpose including commercial use. Note the copyright for the original recipes, however. ================================================================================= For more detailed info on the workings of this daemon and other tips, see README-OLD.NewsInex0.93. --- To Build FAT binary: -------------------------------------------------------- Launch ProjectBuilder.app, do Project->Open Makefile, and open the Makefile in this directory. Select target <Default>, and build! If there is an error, first select target "clean", build, and then select target <Default> and build. ---------------------------------------------------------------------------------
NewsIndex (NewsFilter) [V0.93 by Izumi Ohzawa, izumi@pinoko.berkeley.edu]
News filtering and description services for DL indexing of usenet
news articles. The following two services are implemented.
[1] NewsDescribe Service:
Describes news articles based currently on Subject:, From:, and Date: lines.
Some effort has been made to extract full name of the poster from
the From: line. With this service, when you search in DigitalLibrarian,
titles are listed in the format:
Re: DigitalLibrarian indexing service -- (Joe R. Poster), Sun Jan 23 1994 12:39
Without this filter, all you see as titles are filenames of news articles and
the beginning of the first line, which aren't informative at all, e.g.,
NeXT-Announce.nfold/comp.sys.next.announce.9823 Path: agate!howland.reston.ans.ne
[2] NewsFilter Service:
Starting with Version 0.93, another service -NewsFilter:... has been added.
The purpose of this filter is to remove junk, such as uuencoded
stuff, Path: ..., and Nntp-posting-host: ... lines before the
article text is handed over to indexing scanner. This should reduce
the size of .index.store somewhat (upto 20% compared with Version 0.91).
(Precompiled binary has been tested only under 3.2 Motorola. With
recompile, it should work for Releases 3.x. You can also compile FAT
as explained below.)
BTW, this thing works with news articles saved by other news readers,
but it assumes that articles are saved in separate files like NewsGrazer does.
--- Installation Procedure -------------------------------------------------
[1] Copy "NewsIndexing.service" folder into
/LocalLibrary/Services or ~/Library/Services.
[2] Copy .index.ftype, .index.swords, and (optionally) .dir.tiff into
~/Library/NewsGrazer/NewsFolders directory.
(Enable Unix Expert mode in Preferences, if you don't see these files.)
Replace these files with new ones, even if you used NewsIndex0.9 - 0.91
and already have these in the NewsFolders directory.
[3] Patch NewsGrazer so it won't claim *.nfold as its document file
package (This interferes with ixbuild), by editing out the second
line of __ICON segment __header section.
This patch disables launching of NewsGrazer via double-clicking
*.nfold in FileViewer (of WorkSpace). I don't use it, but if you
actually rely on this feature, don't do it.
A shell script "patch_NG" is provided for doing this. This script
does not work with the MAB (FAT) version of NewsGrazer. To use the
patch, you must 'lipo' out one binary architecture. Copy this
script into NewsGrazer.app directory, and run it. If you don't own
NewsGrazer.app directory and its content, you may have to become
root. After the patch, try doing Command-u in WorkSpace while
NewsGrazer.app is selected.
NOTE: An alternative to patching is to move NewsGrazer.app to a
directory that is not in the ApplicationPath such as /LocalUtil. Then,
the *.nfold will not be recognized as doc packages for NewsGrazer.
For the new (Released 94-02-11) MAB version of NewsGrazer, this is
probably the best thing to do.
To check if the patch or the move to non-AppPath directory worked,
go to ~/Library/NewsGrazer/NewsFolders, and select any .nfold in
FileViewer. The icon for the .nfold should be the standard (brown)
folder icon, NOT the one with paper spilling out of the folder.
[4] Do "make_services" or, logout/relogin or whatever necessary to
make WorkSpace recreate its services cache. Try doing Command-u in
WorkSpace while ~/Library/Services/NewsIndexing.service (or /LocalLibrary...)
is selected.
[5] Cd to ~/Library/NewsGrazer/NewsFolders, and do:
rm .index.store
ixbuild -gsv -LEnglish .
This will create the first usable index for DL.
[6] Start DL and drag ~/Library/NewsGrazer/NewsFolders onto shelf. Save.
[7] From this point on, you should be able to update the index from within
DL via the inspector.
--- TIPS: ------------------------------------------------------------------
[8] Separating DL targets and index files for groups of newsfolders
You might want to keep articles in separate groups, such as
NeXT-stuff, Mac-stuff, PC-junk, Other-news, and you may not want source
code groups to go into the index. You can do this by creating directories
containg symbolic links. For example, you might create
~/Library/NewsGrazer/NewsIndex directory in which you create separate
directories: NeXT-stuff, Mac-stuff, etc. You then create symbolic links
to original *.nfold in these directories, e.g.,
cd NeXT-stuff
ln -s ../../NewsFolders/NeXT-Announce.nfold NeXT-Announce.nfold
...
Just leave out links for newsgroups which you don't want to be indexed.
You must copy .index.ftype, .index.swords, and .dir.tiff into each of
NeXT-stuff, Mac-stuff etc. Then in each one, do:
rm .index.store
ixbuild -gsvl -LEnglish .
Note the additional "-l" option which causes ixbuild follow symbolic links.
In the DL, you then drag these separate folders onto the shelf.
The sum total of sizes of separate .index.store files will be larger
than the case where you have one big index file for all newsgroups.
This is because strings for words will be duplicated in separate
index files. However, the time it takes to complete indexing and
updates will be shorter, if DL does not have to check everything
all the time.
[9] Indexing and NFS
Indexing news articles over NFS is slow. For a large news collection,
it make take nearly twice as long to index over NFS than when
articles are on the local disk. You can rlogin into the NFS server
(if it's NEXTSTEP) and run ixbuild from a remote shell. Public
Window Server is not necessary apparently. I don't know what will
happen if the console user on the server and you, logged in remotely,
try to index news at the same time.
--- Notes to programmer types ---------------------------------------------
Code is a quick hack, but it should serve a purpose as a starting point
for writing other description filter daemons for DL.
Advantage of this Listener daemon scheme over the Unix stdio filter
(invoked via NXUNIXSTDIO port) is that the daemon based filter is
more efficient because it is invoked only once per DL indexing
session, while stdio filter is invoked for every article indexed.
This is described in the NeXT doc (in Release 3.x)
/NextLibrary/Documentation/NextDev/ReleaseNotes/AppKit.rtf:
"For those which operate on NXFilenamePboardType, there are special
ports called NXUNIXSTDIO and NXMAPFILE. The first will cause your
filter to get launched with the name of the file to be converted
on the command line and which expects the data to be put in the
Pasteboard to come out of the filter's stdout. This is mostly for
compatibility with existing filters which work this way, it is
strongly encouraged that you NOT use this mechanism because it
causes the filter to be repeatedly launched rather than staying
around and waiting on a Listener port (which is much more efficient)."
Daemons can keep running indefinitely, but this one quits after some
duration of inactivity.
No Copyright is claimed.
This program is hereby released into the public domain.
Benoät GrangÝ [ben@fizz.fdn.org] distributed a similar daemon
free of charge, but no source code was included in the distribution.
This version has been developed from scratch by myself, and comes with
sources.
--- To Build FAT binary: --------------------------------------------------------
Launch ProjectBuilder.app, do Project->Open Makefile, and open the Makefile
in this directory. Select target <Default>, and build!
If there is an error, first select target "clean", build, and then select
target <Default> and build.
---------------------------------------------------------------------------------
Have fun.
-Izumi
---
Izumi Ohzawa [ $@Bg_78^=;(J ]
USMail: University of California, 360 Minor Hall, Berkeley, CA 94720
Telephone: (510) 642-6440 Fax: (510) 642-3323
Internet: izumi@pinoko.berkeley.edu (NeXTMail OK)
4/23/92 Recipes.tar.Z contains a Digital Librarianized version of the massive collection of recipes that can be found on many archives, including gatekeeper.dec.com. The semi-mystical recipe formatter (found in Recipes/.index/rcshow) is entirely the work of Brian Reid. If you want these recipes to display metric measurements instead, you can edit the rcshow script. The curious may also want to peek inside the .index directory; Digital Librarian is a cool thing, but it would be much cooler if the documented some of its features. These recipes come from a newsgroup called alt.gourmand, in which a moderator apparently translated recipes into the troff-ish format that you see in this archive. The moderator of rec.food.recipes, Andrew Mossberg (aem@mthvax.cs.miami.edu) has no idea where the group went, and neither do I. As far as I can tell, though, this clever style of formatting recipes is no longer used; if you know the story behind it, I'd appreciate it if you'd drop me (and Andrew) a line. Anyhow, I did all this mainly so I could find a particular chocolate- chip cookie recipe; now that I have, I'm gonna start baking. If you have suggestions or comments, feel free to send mail to me at the address below. And enjoy! William --- William Pietri | Email: William.Pietri@umich.edu Stat. Dept. Sysadmin and | or: william@stat.lsa.umich.edu ITD/CSS Consultant | or: USERW28W@UMICHUM.bitnet University of Michigan | Phone: (313) 764-9983
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.