Archive-Date: Sun, 02 Apr 1995 19:54:37 CDT Sender: owner-litprog@SHSU.edu From: night648@aol.com (Night648) Subject: Re: Window Interupts Date: 2 Apr 1995 20:48:10 -0400 Message-ID: <3lngka$2ge@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, night648@aol.com (Night648) To: LitProg@SHSU.EDU I'm trying to make a TSR (written in assembly) that will run in windows. I want it to be activated by a keystroke, but windows replaces the 09h interupt with its own I guess? :( Could someone e-mail me either a lists of interupts I can hook through an assembly program (that won't be taken over by windows or that can be activated once in windows) or on how to solve my problem with the 09h int. E-mail Please. Thanx in Advance. ================================================================================ Archive-Date: Mon, 03 Apr 1995 10:29:08 CDT Sender: owner-litprog@SHSU.edu From: cnas30@ccsun.strath.ac.uk (E. St. John-Olcayto) Subject: LP and Certification Date: 3 Apr 1995 14:54:19 GMT Message-ID: <3lp26r$fhf@rockall.cc.strath.ac.uk> Reply-To: LitProg@SHSU.edu, cnas30@ccsun.strath.ac.uk Keywords: ISO 9000, TickIT, certification To: LitProg@SHSU.EDU I' looking for comments from people/organisatrions who have used or intend to use LP as part of the certification procedure for software quality assurance standards suchas ISO 9000 (the S/W part), TickIT (UK std I think) and other intl. stds. Thanks, Ender. #include --- ================================================================================ Archive-Date: Mon, 03 Apr 1995 12:30:53 CDT Sender: owner-litprog@SHSU.edu From: p86@aixterm1.urz.uni-heidelberg.de (mahilata) Reply-To: LitProg@SHSU.edu, p86@AIXTERM1.URZ.UNI-HEIDELBERG.DE Subject: cleaner hyper[f]web Date: 3 Apr 1995 15:30:37 GMT Message-ID: <3lp4at$sm6@sun0.urz.uni-heidelberg.de> Keywords: hypertex, web, Bhattacharya To: LitProg@SHSU.EDU I did make true my (half) promise of last week, probe into fweave and came up with something which may be applied at least to pascal web, cweb, spiderweb since they are of common origin. I did it for fweb. first the hyperfweave.ch: ================================================================= -- -- hyperfweave.ch -- -- @x @ Here is a macro that outputs a module number in decimal notation. The number to be converted by |out_mod| is known to be less than |def_flag|, so it cannot have more than five decimal digits. If the module is changed, we output~`\.{\\*}' just after the number. @=@[ SRTN out_mod FCN((n)) sixteen_bits n C1("Module number.")@; { char s[6]; sprintf(s,"%u",n); OUT_STR(s); if(chngd_module[n]) OUT_STR("\\*"); } @y @ Here is a macro that outputs a module number in decimal notation. The number to be converted by |out_mod| is known to be less than |def_flag|, so it cannot have more than five decimal digits. If the module is changed, we output~`\.{\\*}' just after the number. This one surrounds the module number by a macro call. It is up to some fwebmac modification what to do with it. The intended use is to hypertex a web. See |'Hyperfweb.tex'| for reference. @=@[ SRTN out_mod FCN((n)) sixteen_bits n C1("Module number.")@; { char s[6]; sprintf(s,"\\HySR{%u}",n); OUT_STR(s); if(chngd_module[n]) OUT_STR("\\*"); } @z ================================================================= second the new Hyperfweb.tex ================================================================= % -- -- Hyperfweb.tex -- -- % % This one does the hame thing for fweb as Tanmoy Bhattacharyya's % hyperweb.tex does for Pascal web but without the input hacking hacks % % It rather assumes an fweave where every occurrence of a module number % is screened by a macro call, so that the macros downbelow % only have to swich meaning of one macro, according to context % % Please note that this is a supplement not a replacement % for fwebmac.sty % % \input hyperbasics \def\HySRnull#1{#1} \let\HySR=\HySRnull \def\HySRef#1{\hyperref{}{section}{#1}{#1}} % % % % % \def\note#1#2.{\WY\noindent{\let\HySR=\HySRef \hangindent2em\baselineskip10pt\eightrm#1~#2.\par}} \def\startsection{\WQ\noindent{\let\*=\empty\bf\hyperdef\hypernoname {section}{\modstar}{\let\*=\lapstar\modstar.}% \ifx\includefile\empty\else\ [{\tt\includefile}]\fi\quad}} \def\WX#1:#2\X#3\X{\ifmmode\gdef\XX{\null$\null}\else\gdef\XX{}\fi \XX$\langle\,$#2{\let\HySR=\HySRef \eightrm\kern.5em#1}$\,\rangle^{\rm #3}$\XX} \def\lheader{\mainfont\hyperdef\hypernoname{page}{\the\pageno}% {\the\pageno}\eightrm\qquad\Whead\hfill\Wtitle\qquad \ifnum\pageno=\contentspageno\else \tensy x\mainfont\Wmodno \fi} \def\rheader{\ifnum\pageno=\contentspageno\else \tensy x\mainfont\Wmodno \fi \eightrm\qquad\Wtitle\hfill\Whead \qquad\mainfont\hyperdef\hypernoname{page}{\the\pageno}% {\the\pageno}} \newbox\hyperbox \newif\iffooter\footertrue \def\normaloutput#1#2#3{ \ifodd\pageno\hoffset=\pageshift\fi \shipout\vbox { \vbox to\fullpageheight { \iftitle\global\titlefalse \else \hbox to\pagewidth {\vbox to10pt{}% \ifidenticalpageheads#2\else \ifodd\pageno #3% Pg nos alternate left \& right. \else#2\fi \fi }% \fi \vfill#1% Parameter |#1| is the page itself. \iffooter\vfill\copy\hyperbox\fi } } \global\advance\pageno by1} {\boxmaxdepth=0pt\relax\global \setbox\hyperbox\hbox to \pagewidth{GO TO:\hfil\hyperref{}{page}{1}{first page}\hfil\hyperref{}{section}{INDEX}{Index}\hfil\hyperref{}{section}% {SECTIONS}{Section Names}\hfil\hyperref{}{section}{CONTENTS}{Contents}}} \iffooter\advance\pageheight by -\ht\hyperbox\setpage\relax\fi \def\Winx{\par\vskip6pt plus 1fil \let\HySR=\HySRef \write\cont{}% Ensure that the contents file isn't empty \closeout\cont % The contents information has been fully gathered \output{\ifpagesaved\normaloutput{\box\Sbox}\lheader\rheader\fi \global\setbox\Sbox=\page \global\pagesavedtrue} \pagesavedfalse \eject % Eject the page-so-far and predecessors \setbox\Sbox\vbox{\unvbox\Sbox}% Take it out of its box \vsize=\pageheight \advance\vsize by -\ht\Sbox % The remaining height \hsize=.5\pagewidth \advance\hsize by -10pt % Column width for the index (20pt between cols) \parfillskip 0pt plus .6\hsize % Try to avoid almost empty lines \def\lr{L}% This tells whether the left or right column is next \output{\if L\lr\global\setbox\Lbox=\page \gdef\lr{R} \else\normaloutput{\vbox to\pageheight{\box\Sbox\vss \hbox to\pagewidth{\box\Lbox\hfil\page}}}\lheader\rheader \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi} %% \message{Index:} \parskip 0pt plus .5pt \outer\def\:##1, {\par\hangindent2em\noindent##1:\kern1em}% Index entry \def\[##1]{$\underline{##1}$}% Underlined index item \def\(##1){$^{\rm ##1}$}% Language marker \hyperdef\hypernoname{section}{INDEX}{}% \let\Windexspace\medskip % Spacing between letter groups in index. \rm \rightskip0pt plus 2.5em \tolerance 10000 \let\*=\lapstar \hyphenpenalty 10000 \parindent0pt} \def\Wfin{\par\vfill\eject \ifpagesaved\null\vfill\eject\fi % Output a null index column \if L\lr\else\null\vfill\eject\fi % Finish the current page \parfillskip 0pt plus 1fil \def\rhead{NAMES OF THE SECTIONS} \output{\normaloutput\page\lheader\rheader} \setpage \hyperdef\hypernoname{section}{SECTIONS}{}% \def\note##1##2.{\quad{\eightrm##1 ##2.}} \def\WU{\note{Used in }}% Cross-reference for uses of sections \def\:{\par\hangindent 2em}\let\*=*} \def\Wcon{\par\vfill\eject \rightskip 0pt \hyphenpenalty 50 \tolerance 200 \setpage \output{\normaloutput\page\lheader\rheader} \titletrue % Prepare to output the table of contents \hyperdef\hypernoname{section}{CONTENTS}{} \pageno=\contentspageno \def\rhead{TABLE OF CONTENTS} \topofcontents \catcode`\@=11 \hbox to\hsize{\hfil Section\hbox to3em{\hss Page}} \def\WZ##1##2##3##4{\hbox to\hsize{\kern##1em\ignorespaces##2 \leaders\hbox to .5em{.\hfil}\hfil\ % \let\preserve=\*\let\*=\empty \hyperref{}{section}{##3}{\let\*=\preserve##3}% \hbox to3em{\hss\hyperref{}{page}{##4}{##4}}}} \let\WIM\WIN % Restore the proper definition. \readcontents\relax % Read the contents info. \botofcontents \FWEBend} ================================================================= -- mahilata ================================================================================ Archive-Date: Mon, 03 Apr 1995 20:02:39 CDT Sender: owner-litprog@SHSU.edu From: Tom Mackenzie Reply-To: LitProg@SHSU.edu, tomm@BNR.CA Subject: Web/Weave/Tangle for FrameBuilder(Maker) Date: 3 Apr 1995 21:48:01 GMT Message-ID: <3lpqeh$37l@bcarh8ab.bnr.ca> To: LitProg@SHSU.EDU Is there a public domain or 3rdparty implementation of the WEB system of Structured Documentation for Frame Builder or Maker? Is there one for SGML or HTML? Tomm ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:17:46 CDT Sender: owner-litprog@SHSU.edu From: murth@aol.com (Murth) Subject: Shareware Complier Date: 4 Apr 1995 19:36:36 -0400 Message-ID: <3lsl64$6kh@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, murth@aol.com (Murth) To: LitProg@SHSU.EDU Could someone send me the ftp site name or the program itself to: Murth@aol.com Thanks in advance Patrick ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:20:00 CDT Sender: owner-litprog@SHSU.edu From: noy@OCF.Berkeley.EDU (David Noy) Reply-To: LitProg@SHSU.edu, noy@OCF.BERKELEY.EDU Subject: Reading the COM port, how do i do it right? Date: 5 Apr 1995 02:04:12 GMT Message-ID: <3lstqs$2bu@agate.berkeley.edu> To: LitProg@SHSU.EDU Newsgroups: comp.dcom.modems Subject: data transfer rate and settings for modem and com port (help me) Summary: Expires: Sender: Followup-To: Distribution: Organization: U. C. Berkeley Open Computing Facility Keywords: Cc: I am developing software which requires reading a device off of the com port.. If I use windows' terminal program and set the data settings to 7e1 9600 baud then the data comes in correctly, if I read in the data myself at a much faster speed using repeated calls to inpw(com1_address) in C I get garbage... Can anyone suggest to me how I can adjust my sampling rate to match 9600 baud if that is necessary (in the source code) and how I can take in the data from the com port which I thought was 8n1 and convert the data which is comming in 7e1... ANY HELP WOULD BE GREATLY APPRECIATED!! -DAVE NOY U.C. BERKELEY PLANT ECOLOGY AND PHYSIOLOGY LAB ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:27:56 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Summary: Is there a complete documentation system? Part 2/6 Message-ID: Date: Tue, 4 Apr 1995 17:25:23 GMT To: LitProg@SHSU.EDU From: Bill Davis |> Documents used in large projects, whether the projects involve |> software, manufacturing processes, or complex pieces of hardware such |> as skyscrapers and the space shuttle, usually run to hundreds and |> thousands of pages. To make the documentation manageable, it is |> normally divided into a series of smaller documents. Typically these |> documents tend to be written by different groups of people, all |> involved in their own fields, and the documents tend to duplicate |> definitions for things, or describe interfaces between groups, systems |> or objects from both sides of the interface. The documents produced will depend on the work process used for a project. In large US government contract projects, there are often standards specified in the contract. |> Does anyone know whether there is a documentation system which |> supports a more object oriented view of such large projects? For |> example, if the hardware uses a switch, then the attributes of the |> switch are only described in one place. If the mechanical structures |> people need to know about the dimensions and weight of the switch, the |> information is retrieved from the switch document. If the electrical |> engineers need to find out what the operating parameters of the switch |> are, they get that information from the switch document. Of course |> there are all sorts of questions about configuration control for the |> documents if the switch manufacturer changes some of the properties of |> the switch and higher documents need to be consistent. I have worked on projects where the switch gets described in multiple documents. This may initially seem like a disadvantage, but when each document describes only the attributes of interest, then any switch can be substituted which meets the specified criteria. This is an over-simplified statement, but it shows the advantage of not having a single switch description. |> We've been wracking our brains trying to work out who would even know |> about such a system - hence the assorted newsgroups - and apart from a |> vague assumption that this is the sort of thing that companies involved |> in huge manufacturing/construction projects might be interested in, we |> don't even have a handle on where to start looking. Does anyone have |> any ideas at all? You could document something in the same way that NASA documents the space shuttle. You could document something the way an aircraft company documents a new airplane. The big question is whether you want that type of documentation. The more basic question you need to ask is "Why am I going to document this?" Detailed answers to that question tell you what you need in your documentation system. You may find that you have different audiences and thus need to describe the same switch in different documents from the point of view of the reader. The operator of a piece of equipment will have a different view of the switch from the designer. They will have different needs. |> There are quite a few ways in which I have idly considered that it |> could be done. It could boil down to an object oriented approach to |> documentation, but maybe without the information hiding that OO |> software systems tend to use. or maybe it's a documentation system |> built on top of a huge database with the means of naming objects and |> their attributes from the database. You could also consider it to be |> the ultimate in hypertext documents. I really don't know where to |> start thinking about such a system. Information hiding is similar to the idea of multiple views in a database. It has the same value when used properly because it provides a way to speak to different audiences. Decide what you are trying to accomplish with your documentation. Then you will be better able to determine what you need. Bill Davis wdavis@dw3f.ess.harris.com ########################################################################### ########################################################################### This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:28:08 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Summary: Is there a complete documentation system? Part 1/6 Message-ID: Date: Tue, 4 Apr 1995 17:23:56 GMT To: LitProg@SHSU.EDU I recently posted an article to a wide range of newsgroups asking for information for details about any documentation systems which used an "object oriented" approach to the documents themselves. I have had one of the best responses I have ever had to a request for information. In trying to track down this information, so many people expressed their interest in such a documentation system, and it was surprising how many said "it's such a simple and obvious idea, there must be something out there that can do what you want" but were then unable to come up with anything more concrete. Nevertheless, these people usually had some useful contacts who were then able to help me out. I would like to post a summary of the information that I have collected in the last two weeks. I am merely the "gopher" and have already passed this information on to the person who really wanted it, so I havn't followed up on any of these suggestions personally. As a result, I have no experience of using any of these products and techniques, nor can I give any specific recommendations. The replies that I had ranged from general comments about deciding what the documentation system is really intended for, pointers to various research work in the area, information about hypertext systems and tools encompassing SGML and database systems. I have attempted to incorporate as many of the relevant replies into this summary as possible. In most cases I have removed any quotation of my original article to save space so I apologise if some points may not be clear from the reply. You will need to read them in conjuntion with the original which you can find at the bottom of this particular article. I have grouped the relies into related topics and have split the complete summary over several parts: Part1: Introduction to the summary (this article) Part2: General comments about documentation systems Part3: Research work on such documentation systems Part4: Product information: 1 Part5: Product information: 2 Part6: Product information: 3 I would like to thank all of those people who took the time and effort to reply, even those whose contribution didn't make it into the summary because it duplicated someone else's, or who merely pointed me in the direction of someone else who knew more: "Bill Davis" "Claude L. Bullard" "Jared L. Black" "Kevin Johnson" "Steven R. Newcomb" Arthur Seaton Bill Davis Bradley Yearwood Digitome Ltd Fred K Weil Jan Grootenhuis John Krieger John Mertl/MSL Mark Bullock <100273.722@compuserve.com> Mike McNamara alain godbout anallon@nile.slate.tdtech.com aq083@freenet.carleton.ca (J. Arnold Free) bill.fernandez@documentum.com (Bill Fernandez) david@inf.rl.ac.uk design@mr.net (Mark Wright) dick@blaze.csci.csusb.edu (Dr. Richard Botting) freeman-eric@CS.YALE.EDU (Eric Freeman) haim@cc.bellcore.com (Haim Kilov) iphase!digi!talisman!garylion@uunet.uu.net jdking@space.honeywell.com jdry@aol.com (Jdry) jflavin@rain.org () john.newton@documentum.com (John Newton) john@thunderstone.com (John Turnbull) kjs@ebt.com (Kent Summers) kevind@zNET.com (Kevin Dick) kirchh@aol.com kliang@mercury.raynet.com (Kevin Liang) lupl@ensae.ericsson.se (Luitzen Planting) meldahl@idt.unit.no mvulpe@i4i.org (Michel Vulpe) nagarajg@versant.com parnas@qusunt.crl.McMaster.CA (David Parnas) paula@texcel.no (Paula Angerstein) robert@unisql.unisql.com (Robert Albach) sampson@nile.slate.tdtech.com (Mark Sampson) seixas@wolf.itg.ti.com (John Seixas) suthers+@pitt.edu tinkrkel@america.net (Kelly Caldwell) vam@inf.rl.ac.uk Please note that I tried to ask for permission via email to repost all of the replies which I received. Unfortunately some of the email didn't get through, so I do not feel able to include those people's contributions. This is a bit of a shame, because there are several interesting replies. If these people are reading, please follow-up this summary and post your replies. So, I hope that everyone out there will find this summary useful. Cheers Duncan This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ########################################################################### ########################################################################### Newsgroups: alt.cad,comp.databases.object,comp.groupware, comp.infosystems,comp.object, comp.programming.literate, comp.software-eng,comp.specification,comp.text,comp.text.sgml, sci.engr.civil,sci.engr.manufacturing,sci.engr.mech, sci.space.shuttle Subject: Question: is there a complete documentation system? Firstly I apologise for the wide cross-section of newsgroups, and I know that this might not be completely relevant to all of them, but I did choose them carefully. Documents used in large projects, whether the projects involve software, manufacturing processes, or complex pieces of hardware such as skyscrapers and the space shuttle, usually run to hundreds and thousands of pages. To make the documentation manageable, it is normally divided into a series of smaller documents. Typically these documents tend to be written by different groups of people, all involved in their own fields, and the documents tend to duplicate definitions for things, or describe interfaces between groups, systems or objects from both sides of the interface. Does anyone know whether there is a documentation system which supports a more object oriented view of such large projects? For example, if the hardware uses a switch, then the attributes of the switch are only described in one place. If the mechanical structures people need to know about the dimensions and weight of the switch, the information is retrieved from the switch document. If the electrical engineers need to find out what the operating parameters of the switch are, they get that information from the switch document. Of course there are all sorts of questions about configuration control for the documents if the switch manufacturer changes some of the properties of the switch and higher documents need to be consistent. We've been wracking our brains trying to work out who would even know about such a system - hence the assorted newsgroups - and apart from a vague assumption that this is the sort of thing that companies involved in huge manufacturing/construction projects might be interested in, we don't even have a handle on where to start looking. Does anyone have any ideas at all? There are quite a few ways in which I have idly considered that it could be done. It could boil down to an object oriented approach to documentation, but maybe without the information hiding that OO software systems tend to use. or maybe it's a documentation system built on top of a huge database with the means of naming objects and their attributes from the database. You could also consider it to be the ultimate in hypertext documents. I really don't know where to start thinking about such a system. Cheers Duncan This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:28:12 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Summary: Is there a complete documentation system? Part 3/6 Message-ID: Date: Tue, 4 Apr 1995 17:26:08 GMT To: LitProg@SHSU.EDU From: parnas@qusunt.crl.McMaster.CA (David Parnas) For the last 5 - 8 years, my group and I have been researching the topic of documentation and proposed both definitions of documents and some new notations for use in them. I feel confident in saying that our approach, while conventional in some ways, is quite consistent with OO approaches. However, our emphasis has been on the use of conventional mathematical concepts in this documentation. Prof. David Lorge Parnas Communications Research Laboratory Department of Electrical and Computer Engineering McMaster University, Hamilton, Ontario Canada L8S 4K1 Telephone: 905 525 9140 Ext. 27353 Telefax: 905 521 2922 Telephone at home: 905 648 5772 Telefax at home: 905 648 5943 email: parnas@triose.crl.mcmaster.ca ########################################################################### ########################################################################### From: dick@blaze.csci.csusb.edu (Dr. Richard Botting) I'm note sure if there is any tool capable of the job. The research is hardly of the ground yet! My Masters Student Graham Tyack in the 1970's at Brunel University, London, UK did some preliminary work on a design data base for large scale system: such as: A coffe pot or an Airfield control system. You might try the following book which is also heading in the same direction: Dasgupta 91, Subrata Dasgupta, Design Theory and Computer Science: Processes and Methodology of Computer Systems Design, Cambridge U Press NY NY 1991(Tracts in theoretical Comp Sci), engineering methodology, Reviews: CR9207-0475, Am Math Monthly V100n4(Apr 93) page 423 The term object oriented is a little misleading here since the idea of documenting a thing once and then refereing to it else where is found in data bases, data dictionaries, and some 1980's software design methods. You might get some ideas from: Klein 93, Mark Klein, Capturing Design Rationale in a Concurrent Engineering Teams , IEEE Computer Magazine V26n1(Jan 93)pp39-47 Tracz Coglianese & Young 93, Will Tracz & Lou Coglianese & Patrick Young, A Domain-Specific Software Architecture Engineering Process Outline, ACM SIGSOFT Software Engineering Notes V18n2(Apr 93)pp40-49, Teamware Process Programming Language and diagrams Nerson 92, Jean-Marc Nerson, Applying Object-Oriented Analysis and Design, (Special Issue: Modelling) Comm ACM V35n9(Sep 92)pp63-74 For software only, the Feb issue of IEEE Trans on Software Engineering has a paper on design documenttion with hypertext and objects. The SIGCSE Software Engineering notes have had several papers on the value of hypertext in (software)design. My experiments with the rather over-simple WWW hypertext system and language make hypertext an attractive proposition. The link in my signature leads into a immature hypertext web of documentation... explore if you can. It'll be like wanering around a laboratory when experiments are going on however.... because it *is* my lab. As you can see this is a topic I'm interested in... please let me (or the comp.specification newsgroup) what you find. -- dick@csci.csusb.edu=rbotting@wiley.csusb.edu. Disclaimer::=`CSUSB may or may not agree with this message`. Copyright(1995)::=Copy this freely but include the following link to the author's signature ########################################################################### ########################################################################### From: haim@cc.bellcore.com (Haim Kilov) Yes. These are the right questions about managing the _intellectual contents_ of documents. I don't know about a documentation system for doing so (yet), but we have recently published in Bellcore a description of the problems and some possible solutions based on information modeling. There have been also conference and journal publications. Obviously, system vendors are welcome! Here's an abstract of this Bellcore document: ST-2011, A Document Management Model, has been released in December 1994. This publication presents a document management model used to understand and manage (telecommunications) documents of any kind. The model is essential, in particular, for those who wish to become content providers. It applies both to traditional paper documents and to hypertext and hypermedia ones, but concentrates on the currently used traditional documents. The model clearly distinguishes between three big viewpoints: the intellectual content, the logical layout, and the physical presentation. The model clearly separates the concerns of document semantics (explicit concept map) from the concerns of document architectonics (logical layout): the business meaning of the information does not depend on its presentation. The concepts and approach presented in this publication are neutral with respect to tools and technology used for document management. Document users -- including document authors and managers -- acknowledge the need to understand documents by precisely specifying their intellectual contents. It has been stressed by many that businesses do not want or need fancy documents: they need solution of their business problems. All documents, regardless of medium (paper or electronic), have essentially the same semantic properties that have to be understood and explicitly dealt with. It is known how to understand and specify information semantics in other application areas, and this knowledge can be reused, leading to success and customer satisfaction. As a result, a document user (including the author!) will be able to understand, explicitly specify, and reuse the business meaning -- the intellectual content -- of the information contained in documents. This model is based on general information modeling concepts that have been developed in Bellcore and successfully used in other application areas, most notably, in telecommunications, with the goal of exposing appropriate business rules. The audience of this ST includes all kinds of document users: document authors, readers, browsers, and managers. It includes also specialists in standardization, in particular, technology (e.g., SGML) standardization. To obtain, call Bellcore customer service 1-800-521-2673, or fax 908-336-2559. -Haim Kilov haim@cc.bellcore.com ########################################################################### ########################################################################### From: duncan@yc.estec.esa.nl I talked to 'Toria Burril at RAL. They are currently working one extension to HTML to provide ways of printing a flat document from an HTML tree. You can find info in: http://www.cis.rl.ac.uk/proj/www/docs/lightweight She also said that it might be worth contacting Owl International about their GUIDE product, or just ask for info. No contact details yet, although I should be able to find something in BYTE or one of those journals. ########################################################################### ########################################################################### From: vam@inf.rl.ac.uk There shouldn't be a problem in advertising the Lightweight paper URL providing people realise that it's on-going research so likely to change. (But then many things do this anyway!) Victoria ########################################################################### ########################################################################### From: John Krieger This sounds like a good application for the Standard Generalized Markup Language (SGML). I didn't see your post in comp.text.sgml, so you might want to trim it a bit and try there. Specifically, some people in the STEP/PDES community are working on some of these kinds of issues. On another tack, several years ago I and a couple of colleagues developed tools for diagrams and procedures that linked into an object-oriented database such that when you created a diagram or procedure, you incorporated references to all of the objects. When the diagrams or procedures were displayed, you could perform operations on the objects (e.g., start a pump, close a valve). Let me know if you would like more info; I may be able to provide some. John Krieger, Westinghouse ########################################################################### ########################################################################### From: Jan Grootenhuis I am not aware of all your exact requirements, but the following must be interesting. Some years ago, a Han Schouten made a data model of SGML. This enables one to store an SGML document in a semantically equivalent database, and giving you the best of both worlds. His work was published in the last SGML UG Bulletin, and discussed in Eric van Herwijnen's Practical SGML, _First_ Edition. Han and I built a prototype for Oracle Europe's R&D. However, Oracle's R&D Director and Han Schouten changed jobs, and our work was probably shelved; however, we still have all code. Han's ideas were also used to make a product SGML-DB used by Aerospatiale in France. I would be very interested in diwscussing this approach with you, if you like. Regards, Jan -- Jan Grootenhuis Kralenbeek 1873 1104 KJ AMSTERDAM The Netherlands Tel/fax (+31)20-699.89.66 Internet jang@xs4all.nl ########################################################################### ########################################################################### This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:28:16 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Summary: Is there a complete documentation system? Part 6/6 Message-ID: Date: Tue, 4 Apr 1995 17:29:30 GMT To: LitProg@SHSU.EDU From: paula@texcel.no (Paula Angerstein) Mr. Gibson, I believe you have spoken with Tushar Patel at Texcel briefly about out product Information Manager. I am the principal architect and project manager for Information Manager. I read with interest your recent posting on the net about the possibilities of managing documents as a set of objects. We have been thinking along these lines for several years based on requirements we have experienced with large manufacturing-based companies. I believe we are releasing one of the first commercially viable systems for integrating document management with engineering data, logistics information, and product support information. I would like to speak further with you about your requirements. I'm not the "sales rep" (that will come later), but I'd like to see how your needs fit into what we've seen with other companies. Let me know if it is okay to phone you, and if so, when it is convenient. Meanwhile, I'm sending you an email version of the Information Manager Product Overview. I'll get some nice-looking copy to you by post. Looking forward to talking with you, Paula Angerstein Texcel UK phone: +44 1753 833111 email: paula@texcel.no Information Manager Product Overview Texcel International ==================================== ==================== Texcel's Information Manager (IM) is an integrated suite of applications built around an SGML repository. Information Manager provides complete support for authoring, management, reuse, and auditing of documents and their constituent parts. End-user packages for workflow, collaborative authoring, electronic review, dynamic document assembly, document query and browsing, and repository administration are all included as a part of Information Manager. Key concepts ------------ Reusing information, business processes, software, and expertise is the key to leveraging existing investments. Taking advantage of new and enabling technology equips you to respond efficiently and rapidly to evolving requirements. Information Manager is designed to increase productivity and reduce overall cost of document authoring, management, and production through a combination of robust software components, a well-defined open architecture, adherence to international standards, and built-in extensible business processes. The result is a configurable system that carefully balances turnkey functionality with the necessary extensibility and customization capabilities to support large scale, site-specific solutions without having to "reinvent the wheel" with each system, site, project, or document. Standards compliance -------------------- Information Manager adheres to existing and emerging standards wherever possible to ensure the quality and longevity of its components as well as to open up the system to popular third-party tools, databases, and applications: - Information Manager rigorously supports the Standard Generalized Markup Language (SGML) - The data model is compliant with the Object Management Group (OMG) object model - ANSI SQL2 compliant access is supported between client and repository and between repository and third-party RDBMSs - The workflow applications comply with the Workflow Management Coalition reference model. Product Component Overview ========================== While each component of Information Manager offers a competitive solution to a subset of a broader set of requirements, it is Information Manager taken as a whole that enables new and innovative ways of managing the business of document authoring, management, and production. The following sections provide an outline of these components. Collaborative authoring ----------------------- Document authoring has traditionally been limited to copying material from older documents, altering that material, and, of course, creating original material. The Information Manager authoring package enables workgroups of authors to work concurrently on documents while being automatically tied into unlimited bodies of previous work. The ability to share information, version portions of documents, and stay current with collaborative efforts frees the author to focus attention on authoring rather than ancillary tasks of coordination and administration. Specifically, the authoring tool provides: Check-out with access control Check-out process finds documents and fragments in the repository External objects (SGML entities) are automatically included Verification of author's access privileges by project, role within project, and document content Compound document editing Text Graphics Tables Equations Document and DBMS Queries Interactive assembly of contents Query application retrieves and coordinates relevant components and metadata in the repository Configurable display window provides familiar and consistent interface to documents User access is defined result-by-result permitting updatable, read-only, and copy-on-demand objects Full SGML compliance Real-time context-sensitive editing ensures consistent document structure and full SGML compliance Guided editing simplifies authoring by dynamically indicating contextually valid document objects Show or hide SGML markup Outline-based editing and navigation based on SGML elements Highly flexible and extensible Automatically supports any SGML DTD Configurable menus and key mappings support site-specific interface guidelines Tracks document and component revisions Check-in of work generates new versions tied to version history simplifying collaborative work Version review permits browsing and reuse of earlier work, supplemental comments, and project-related metadata Document query and browsing --------------------------- Authoring is further enhanced by advanced database query capabilities carefully crafted to operate over large volumes of highly structured data. With Information Manager, users can find information no matter how deeply it is buried in a document anywhere in the repository. Extended Query Support All SGML constructs are completely accessible and referencable within a query Search criteria can be based upon content, attribute values, structure (context) within one or more documents, or any combination in this computationally complete query tool Automatic query optimization based upon type of query and cost-based optimizer assures scalability Easy to use Predefined queries can appear as menu choices Graphical user interface generates user-defined queries Advanced syntax for experts Dynamic document assembly ------------------------- Documents that assemble themselves automatically out of elements in the repository are an important component in the complete life-cycle of a document set, especially for documents dependent on rapidly changing data or that need to be produced periodically. Document assembly improves the accuracy and integrity of documents while improving productivity through automation of repetitive tasks. Information Manager offers a robust document assembly tool wherein templates dynamically retrieve document fragments and content via embedded queries, including the following features: Improved accuracy, integrity, and productivity Assembly template can contain boilerplate contents with which dynamically retrieved content is intermixed Any document fragment, individual element, or attribute value anywhere in the repository can be retrieved as content Completed document is fully SGML compliant and can be published (in print or online) by any SGML-aware publishing system Assembled document can be automatically placed in work queue for further review (see next section) Workflow Management ------------------- As the authoring and production of documents becomes more complex and the interaction among authors, documents, and viewers becomes more sophisticated and immediate, a reliable and configurable tool to manage document life-cycles and collaborative business processes becomes critical. Information Manager automatically tracks and routes documents as they move from desk to desk during their life-cycle based on a captured model of your organization and business processes. The workflow solution is comprised of sub-components corresponding to the functional areas detailed in the Workflow Management Coalition reference model. Each functional area has a standard API for programmatic interaction with the workflow engine. In addition, rich user interfaces are used to define processes; enter, modify, and query the state of any workflow object; and register users, projects, and roles. The following applications constitute Information Manager's workflow solution. Process definition tool Graphic design tool models workflows of your business processes Conditional workflows support parallel tracks with automatic synchronization of sub-tasks and dependencies Subprocesses within a workflow provide a hierarchical set of dependent tasks Business process validation rules automatically detect inconsistencies such as redundancies and loops Metadata and user-defined attributes are easily assigned to tasks and objects supporting complex and site-specific configurations Work queue Work queue acts as a primary user interface for authors and reviewers displaying tasks, their status, upcoming deadlines, owners, and descriptions Configurable GUI interface presents customized or standard presentation of tasks Work queue entries can be sorted by project, priority, status, or on any user-defined attribute Task status highlighted with color for easy identification of critical events and tasks All Information Manager tools can be automatically invoked providing single interface Deadline and other user defined notification can be sent to any individual or role in real time or through email Upcoming workload and what-if scenarios can be generated Forms-based interface allows altering routing and behaviors of specific tasks within broader projects Workflow management tool Enables managers to create or alter workflows Assigns users to tasks Sets attribute and other user defined values Establishes deadlines and milestones Enables audit trail data capture Generates status reports Connects to third-party reporting tools Electronic review ----------------- As documents are routed from person to person and documents are versioned across collaborative workgroups, an integrated tool to capture comments and correction and pass them along "in context" adds significant value to the entire process. Information Manager's comprehensive electronic review tool set enables authors, editors, and managers to iteratively review documents for comment and alteration. As an integrated part of Information Manager, the electronic review tool takes advantage of query and viewing capabilities to allow the reviewer to include in the actual comments such information as replacement text, more accurate references, and supporting documentation. Additionally, comments can be automatically generated by permitting a reviewer to "edit" a copy of the document; comments are automatically generated based on the difference between the true document and the temporary copy, an intuitive and powerful interface to improve the productivity of both the reviewer and the author applying the suggested changes. Reviewer creates comments Comments can be attached to any element of a document (for example, a paragraph, section, or chapter), conveying the scope of the comment Review document is retrieved as read-only to protect the original document Comments are SGML documents themselves, ensuring consistency and maximum reuse Automatic initialization of comment fields, such as those identifying the reviewer and date Suggested revisions stored as fully marked-up SGML content permitting immediate inclusion by author if suggested content is accepted Auto-commenting turns edits overlaid on the read-only document into comments Author reviews comments Comments indicated in document by configurable icon Point-and-click in document to read comments Listing of comments based on parameters such as priority, reviewer, and date Assign disposition to comment, such as accepted or rejected, triggering workflow actions Reply to reviewers with explanations, improving communication Status of comment, such as pending or closed, automatically maintained and fed to workflow Author updates documents Accepting a comment can automatically update the document with suggested revision and alter status of comment Differencing a revised document with earlier versions improves accuracy and completeness A history of comments and their disposition is maintained for auditing and recovery Repository architecture ----------------------- Tracking and managing thousands of documents, business processes, and the metadata associated with document life-cycle management requires a robust, scalable, and secure datastore. The Repository Manager serves as the central data management tool for Information Manager. Supporting the unique requirements of large volumes of highly structured documents requires a specialized model and access mechanism based on the best of both document and database technology. The answer can be found in the latest generation of DBMS technology known as Object-Relational Database Management Systems (ORDBMS). The principle behind ORDBMS technology is straightforward: incorporate advanced object-oriented modeling constructs by extending and evolving the proven data management and query processing techniques of RDBMS. This melding results in a DBMS with mature security, scalability, and recovery capabilities able to support mission-critical applications while providing the required modeling to support the complexity of highly structured documents. Information Manager's repository is fully object-relational and as a result can efficiently offer the following features: Open Architecture SGML documents can be easily inserted, updated, versioned, and retrieved, making the repository truly SGML-centric in its design Full element and entity management is supported to any depth or variety DTDs are specially recognized objects and thus maintain a version history through check-in and check-out Access to external databases is inherently supported including 2-phase commit where available Access control Privilege checking at the repository and application levels Hierarchical projects with inheritance of roles and privileges are inherently supported Content management Full version history maintenance is automatically generated Shared content across documents is easily done Inter-document links is also a natural component of the repository Application development features Arbitrary, application-defined metadata permits extensible management functionality Event notification to standard and application-defined protocols Full SGML-addressing query language with sensitivity to the difficult issues of mixing content and contextual selection criteria Structure-based retrieval and update at a programmatic level for navigational operations Repository administration ------------------------- The administration of a specialized document repository requires tools specialized for the job. Information Manager provides comprehensive tools for managing the repository, including the creation of projects, roles, and users, all with a fully graphical user interface. Specifically, the repository administration tool offers: Manage users and privileges Add or delete users Alter permissions and passwords SGML input Install or unload DTDs Search file systems and load selected SGML documents Associate a document with its DTD and appropriate application files such as a FOSI Audit trail generation Track different levels of activity, ranging from project creation to read access of a document or fragment Generate configurable reports on the access history for any elements in the repository Search and sort on any access history data Workflow Assign roles within a workflow Create or alter the workflow process Associate workflow with document types Create and assign triggers for notification on user-defined events Database management Monitor and optimize database usage Add database volumes Archive and dearchive to offline storage Application architecture ------------------------ In order to assure that Information Manager is open to any application, an API and a central broker called the Application Manager are included for advanced development and integration. Application Manager Simple but flexible communication channel that supports communication and notification between the Repository Manager and between multiple applications Message format is application-independent Launching of applications upon receipt of targeted message Channels are multi-threaded and can interoperate with more than one application at a time Information Manager in action ============================= Because Information Manager is highly flexible and configurable, any particular customization illustrates only one way the system can be put to use. Following is one example of how Information Manager is used in various ways throughout the life-cycle of a set of documents. A workgroup of authors produces a set of reports every month on funds managed by a financial services company. Using IM's authoring tool, an author uses last month's report for a financial regulatory agency as a "template" for this month's report. The template automatically brings with it the appropriate legal boilerplate through its shared content feature that retrieves paragraphs maintained by the legal department. Daily values of funds over the last month are automatically drawn from the financial SQL databases using IM's external database referencing features. Creating new information ------------------------ IM's authoring tool then provides an ideal environment for generating new material. SGML context-sensitive editing ensures the reports have all the required information in the proper order. When writing up the summary of the effect of the discovery of a new drug on the fund's performance, the author can find out quickly through IM's easy-to-use query interface whether discovery of a drug has been included as part of an impact assessment on this fund before. If so, the author can copy in the relevant material and edit it, or even simply reference an existing paragraph or diagram using the shared content feature. Several authors can work on a report at the same time, one perhaps writing up the fund results and another doing the analysis. Each author simply checks out the relevant section of material for editing. Meanwhile, the responsible lawyer can retrieve the entire report for viewing to quickly determine if there are any figures that need particular attention this month. Reviewing and updating ---------------------- As authors check in their sections noting that they are ready for review through the work queue, IM routes the sections to the lawyers and other reviewers through predefined workflows to ensure the material is authorized and correct. Reviewers are automatically notified that material is awaiting their review via their work queues. IM's electronic review tool provides the easy-to-use mechanism for reviewing the sections and attaching comments. When the author receives notification that his section is either approved or needs comments addressed, he can use the electronic review tool to browse the comments and apply them as necessary. When all sections have completed the proper review cycles and have been noted as approved, the report is routed to the production department for distribution. Automatic assembly ------------------ Having completed the report submitted to the financial regulatory agency, IM is now used to automatically pull together the shareholder report. Through the document assembly tool, much of the regulatory report is dynamically retrieved into the appropriate sections of the shareholder report. The assembled report is routed to the fund's manager for addition of introductory remarks. Traceability and accountability ------------------------------- For the year-end review of the fund by the regulatory agency, IM is used to gather the appropriate documents, recreating versions as they were delivered or as they were developed. The author and approver of every section, indeed paragraph, are determined as necessary. System Profile ============== The Information Manager runs on the following Unix servers: - Sun SPARCstation under Sun OS 4.1.1, 4.1.2 or 4.1.3, or Solaris 2 - IBM RS/6000 under AIX 3.2 - HP 9000 Series 700/800 under HPUX - DEC Alpha under OSF/1 - PC under Windows 3.1 (Client only) Minimum site requirements ------------------------- The following are minimum site requirements: Information Manager can run either as a stand-alone system, or as a client/server system. Client processes and the server process may run on the same or different machines, potentially of different types. A minimum of 16 Mbytes of main memory is recommended for the stand-alone version and for each process of the client/server version. A minimum of 32 Mbytes of swap space is recommended for the stand-alone version and for each process of the client/server version. The network protocol for TCP/IP must be available to run the client/server version for communication of clients and server. The server and clients must be connected by an installation network. ########################################################################### ########################################################################### This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:28:21 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Summary: Is there a complete documentation system? Part 4/6 Message-ID: Date: Tue, 4 Apr 1995 17:27:35 GMT To: LitProg@SHSU.EDU From: Fred K Weil Information on SGML databases can be found here. http://galt.cs.nyu.edu/students/m-rd0107/sgmldbms.html. Some supplier information I am giving UK contacts as I assume from your address that you are in Holland Documentum Jane Sherry Rank Xerox Tel +44 1707 352235 Fax +44 1707 352497 Xyvision Stuart MacRae Tel +44 1753 820565 Fax +44 1753 694944 Trimco Alan Turner Tel +44 181 579 8788 Fax +44 181 566 2422 Interleaf UK Tel +44 1932 356800 Fax +44 1932 356810 Texcel David Bragg Tel +44 1753 833111 Fax +44 1753 854090 ########################################################################### ########################################################################### From: john.newton@documentum.com (John Newton) In response to your inquiry on the Net, we are a maker of Object-Oriented Enterprise Document Management Systems. Our architecture is client-server based with clients on Windows, Mac and Unix and servers on various flavors of Unix with NT coming soon. We expose the class hierarchy to the user as well as to the developer. We also have a graphical user interface to make it easy for end-users to manipulate and search for this information. For application developers there is Document-Object-Oriented version of SQL called DQL that allows the enumeration of classes as well as hierarchical structures such as a documentation bill of materials. We are concentrating our development and marketing efforts in the manufacturing area. Our first customer was Boeing with the technical documentation on the 777 aircraft. If you would like more information, you can contact our European Headquarters at: Documentum International Stockley Park Business Centre The Arena Forum, Stockley Park Uxbridge, Middlesex UB11 1AA UK +44 1 81 899 1743 Regards, John Newton Director, Product Development Documentum ########################################################################### ########################################################################### From: bill.fernandez@documentum.com (Bill Fernandez) Greetings-- The company I work for makes such a system. For example it is used by pharmeceutical companies around the world to manage their new-drug applications, which are half a million pages long. Boeing and other manufacturing companies also use our system. I'm in the engineering department, but I'll supply our main office phone number and address below, and they should be able to steer you to the European sales office that handles The Netherlands. Good Luck. --Bill Documentum, Inc. 4683 Chabot Drive #102 Pleasanton, CA 94588 USA Tel: 510-463-6800 or try Documentum Software Europe, Ltd. in England Tel: 44 181 899 1743 ########################################################################### ########################################################################### From: kirchh@aol.com Duncan - Project Xanadu, started in the '60s by visionary Ted Nelson (coiner of the terms 'hypertext' and 'hypermedia'), considered this kind of problem. Xanadu was taken on by Autodesk (makers of Autocad) in 1988, I believe, and then cut loose in 1992. Things get a little hazy here - I gather the commercialization of the Xanadu server fell to a newly formed company called Memex, changed to Filoli in 1994 (email: try Gary Olsen - Olson@filoli.com). When I last checked, the current incarnation of the product was called AIDEMemoir. It was touted as being a multimedia database, with support for all data types, versioning ('editions'), huge databases, full hypermedia linking, full action audit trail, etc. I recommend the Xanadu FAQ, found in rtfm.mit.edu/pub/usenet-by-hierarchy/comp/groupware/Xanadu_World_Publishin g_Repository_Frequently_Asked_Questions. Other (somewhat less exotic) systems which might be worth a look: - Documentum, a Xerox spinoff specializing in document management: try Tom Witmer at (201) 845-5300; tell him Trilon referred you. - Interleaf RDM, Intellecte, and WorldView: all document management products from Interleaf. Try 800-955-5323. We've had trouble getting in touch with knowledgeable people there, but give it a shot - their products sound intriguing. - Virtual Notebook, from the ForeFront group: A shared multimedia notebook metaphor of sorts, with hypertext linking, real-time document conferencing. 713-961-1101. My latest info is from December '93, but I've seen their name pop up now and again. - OpenMind: a client-server document management system. Gives users several views of the information: Explorer View, for navigating customizable subsections; Transcript View, which presents threaded discussions; Search View, for full-text queries; and Track View, which identifies new information on specific topics. OpenMind can display files created by 150 applications; users can launch, modify and save documents locally without having the creating program. Windows NT servers, Windows clients, supposed to have Mac clients in October '94 ($995/server, $295/Windows client;Digital Communications Associates (404) 475-8380) [info from 8/94] - MediaSphere: Doc mgmt system, centered on Adobe PDF (Acrobat format); uses Sybase, Sun server, Mac, Windows clients; Full-text; uses their own nat'l language search engine; "help publishers of electronic and paper documents search through text, images, audio, and video using natural language queries" ($64,000 to $112,000; Cascade, (508) 794-8000) [info from 10/94] Start with those - if you don't get anywhere, write and I'll rustle up some more. If you do get somewhere, let me know what you find out. --Daniel Kirchheimer Director of Technology Trilon, Inc. ########################################################################### ########################################################################### From: Bradley Yearwood Symbolics had a documentation system called Concordia which ran in their Lisp machine environment. It appeared to support the notion of sharing common objects across multiple documents. Concordia was described in a paper in IEEE Computer or IEEE Micro circa 1987-1988. I cannot recall the author's name. I am not certain whether Concordia is among the surviving fragments (if any) of Symbolics. Brad Yearwood bny@crl.com Cotati, California ########################################################################### ########################################################################### From: jdry@aol.com (Jdry) For large paper trails, and or organization, I have seen a great object oriented program. Metaphase Series 2, resold by SDRC (and others). It is a data management system that will be enterprise wide. It sits ontop of Oracle and will be available ontop of other databases. You can access the database from Unix, Windows and Mac. Call SDRC at 1-800-543-0869 Jonathan Dry Designworks/USA jdry@aol.com ########################################################################### ########################################################################### From: "Jared L. Black" I have seen a system on UNIX called PDMS (plant design and management system) that may be what you are interested in. It is from a UK company, CAD CENTRE; the only office I know of is in Houston Texas, USA. Their number is 713-977-1231, and the contact is Irv Levine. J. Black ########################################################################### ########################################################################### From: kevind@zNET.com (Kevin Dick) The need that you describe would, in my opinion, fall under the category of Product Information Management (PIM) systems. These systems can track documents in any format, arbitrary relationships between these documents, and the flow of these documents through the product development process. I am a consultant to Objectivity (maker of the Objectivity/DB ODBMS) and I know they have at least two customers who use Objectivity/DB as the storage engine for their commercially offered PIM system. I believe the names of these companies are Adra and Matra. Unfortunately, I do not have contact information for these companies. However, you can contact Objectivity and find out. They are located in Mountain View, CA, USA. Their phone number is (415) 254-7100. The best person to ask would be the Director of Marketing, Craig Woods. His email is craig@objy.com Hope this helps, Kevin Dick ########################################################################### ########################################################################### From: duncan@yc.estec.esa.nl I also received received information from Zwany de Graaf of Objectivity Europe In addition to the information from Kevin Dick (above), she also sent me some information about MATRIX. "MATRIX is an Information Management System for all kinds of applications. It includes a comprehensive workflow management cpapbility, which allows you to track any document and related images through your organisation. It operates with existing software on existing hardware in a fully distributed environment." Her address is: Zwany de Graaf Objectivity Europe Rondedans 3 2907 AA Capelle a/d IJssel The Netherlands Tel/Fax: +31 104 583 986 ########################################################################### ########################################################################### From: sampson@nile.slate.tdtech.com (Mark Sampson) We were forwarded your request via Versant (our OODB supplier). They felt that what you were describing in your message is what we supply in our SLATE tool (System Level Automation Tool for Engineers). SLATE was designed to support the Systems Engineering process--the capture of customer requirements, translation of those requirements into detailed design specifications, and generation of documents from that analysis. SLATE was built on top of a multi-user Versant OODB, is integrated with Framemaker, and has a GUI specifically tailored for the System Architects/Engineers that allows them to perform trade-off studies, document the results of those studies, and then manage projects to conform to those requirements. I will contact our European representatives and have them contact you and supply you with further information. In the mean time I suggest you browse our WWW Home page at: http://www.slate.tdtech.com or you can contact me or any or our marketing/sales folks directly via email or phone: sampson@slate.tdtech.com (214)669-9937 Regards from Texas, Mark Sampson TD Technologies (214)669-9937 sampson@slate.tdtech.com ########################################################################### ########################################################################### From: freeman-eric@CS.YALE.EDU (Eric Freeman) Hi, you might check into the CALS software project that is (was) done under DARPA or NRL. I've located the web site with CALS information: http://navysgml.dt.navy.mil/cals.html and I'm assuming you are already aware of OLE and OpenDoc. Thanks, Eric ########################################################################### ########################################################################### From: seixas@wolf.itg.ti.com (John Seixas) There used to be a tool called Context, which was specifically made to order for this purpose. It was used by Boeing in Sattle to handle manufacture and maintenance of aircraft. It is ny understanding that the company (Mentor Graphics) no longer supports this tool. The next best tool that I know of is Interleaf (UK +44 1932 356800, US 1 800 688 5151). It is set up to handle large interconnected sets of documents, and their Active Link Tool (bundled with the latest release 6.x) should support your hypertext needs. ########################################################################### ########################################################################### From: kjs@ebt.com (Kent Summers) We have a complete SGML-based e-publishing solution (that is, everything but the authoring component, several good ones of which we have integrated). BTW, the Context guys now work for EBT on Dynabase, our object-oriented SGML mgmt system built atop ODI's objectstore. email 'info@ebt.com' for more information. ########################################################################### ########################################################################### From: "Claude L. Bullard" The current threads on adding procedural constructs to SGML and the questions about supporting documents used in large projects (which I call enterprise-wide documents), are interesting because they are the same issues from some perspectives. Since Kent Summers mentions that EBT is now the proud employer of some portions of the former Context Inc developers (Mentor Graphics spin-off company, not to be confused with InContext), there are some *war stories* that might be of interest. BTW, Kent, you have a coup in that group. They were in 1989, one of the most forward looking groups I knew and I learned much from them. Most of my outlook on what is *possible* with document systems was initially formed by that system and those people. At GE, we worked with the Context group to develop one of the first and most successful CALS authoring and delivery systems. To be honest, the acceptance of SGML by Context was grudging, but Charlie Sorgi published a paper on the subject that was direct and extremely prescient as he described most of the advantages and disadvantages of using SGML. Charlie coined the term "SGML Nazis" which was his view of standards groups. Still, they did an excellent job of tieing SGML to the side of the existing system. Historically, at a certain point in development as they were about six years ahead of the market, the original developers went on to work on the "object" projects for Mentor, and the SGML system languished, was broken (hardwiring tags was then and is now the single biggest stumbling block for OOPSMen), and was abandoned. Doing SGML for *real* with the Context system would have required complete redesign of the formatting engine which was a WYSIWYG system with a very powerful scripting language. The database side of the design, which was Greg Lloyd's baby at the time, was very powerful but somewhat hard to set up and maintain and seemingly, difficult to integrate with the SGML *bag* on the system design. It did work with care. However, the scripting language integration was superior. I used some of those concepts to design the MID. With it, we were able to take the original scripts given to us by Context, extend them, and completely automate the production of SGML documents and raster-based hypermedia. The results of the customization efforts achieved by technical writers with very shallow programming backgrounds were astonishing. Interfaces to the LSAR database and automatic document construction (No Hands, Ma! Honest!!) were achieved. The capabilities that WebHeads find astonishing were common fare and it was possible to manage the documents as well as the graphics. While the implementation of SGML was rudimentary, it implemented the 10% that does 90% of the work. DTDs were used to parameterize the editors so each author worked with only the constructs they needed for a document type. The SGML could be hidden or visible. The print version worked without the need for a FOSI, and the system could be maintained and extended by the technical writing staff. The project delivered complete documents ahead of the hardware, and at validation/verification, it was the TMs that were used to test the hardware as they were superior in every respect to the other CDRL-required data products. We got a 10 for 1 improvement in productivity, and at the end, were mainly just entering information on lazy days while the tools did the grunt work. For a frankly, very small up front investment of time and learning, we possessed an extremely powerful production tool. The works that I published (Enterprise Engineering and Beyond the Book Metaphor) were based on the lessons learned from that system. My point here is that script integration can provide much of the capabilities that Ms. Holstege and Mr. Prescod are debating. Scripting is a way to create highly interactive environments to support mission configured enterprise performances. Had the Context developers gone further with their SGML product development (for example, support for entities ... sigh, the same mistake being made by the Web developers), Mentor would own the document management market at this time. It has been said, that their closest competitor at the time, Datalogics, was greatly relieved when Context closed its doors. I've yet to see a system that can come close to what was achieved there and I have looked. I feel like Arne Saknussen on this one: follow the signs to the center of the Earth. I've been there and testify on my bleached bones. It would be interesting if some of the former Context employees could compare their current work with SGML products and their work at Context. While I don't usually support application mongering, the experience of these individuals is unique and could offer great insight into what is technically possible and where the "rocks are". Len Bullard ########################################################################### ########################################################################### From: Mike McNamara Let me introduce myself and my Company, I am Mike McNamara, Operations Manager for the European Offcie of Xyvision Inc., a Boston, USA based company. Xyvision is a UNIX software house specialising in software for Publication Production "Parlance Publisher" (XPP) and Document Management "Parlance Document Manager" (PDM). We sell our software into two main market areas; 1) Commercial Printing and Publishing for the production of Books, Learned Journals, Legal/Medical Looseleaf publications, Directories, Cataloguesand and Telephone Directories and 2) Corporate markets for Product Support Documentation such as Technical Documentation for Aerospace, Electronics, Utilities companies. We do have a WWW server setup which has a full set of information available, this can be found http://www.xyvision.com and in particular how PDM deals with "objects" and what can be done to them, I have included one one of those pages to this email. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Xyvision Publishing Systems Xyvision designs and markets two products for publishing professionals Parlance Publisher and Parlance Document Manager. Parlance Publisher goes beyond traditional composition and pagination systems by automating the entire publishing process--from input of text and graphics to output of fully composed paginated pages, film separations, or electronic output. Designed to operate in an open publishing environment, Parlance Publisher accepts most text, database, and graphic formats; enables live links to UNIX-based graphics programs, and outputs to a variety of post-processing applications including imposition software, electronic page turners, and online viewers. Its speed, power, and background processing capabilities have earned Parlance Publisher the reputation as the most versatile and powerful composition system available today. Parlance Document Manager (PDM) is a client/server information management system that stores document elements as information modules in a central database, allowing these elements to be shared and reused in multiple documents. PDM supports modules of varying sizes and formats, including SGML, and provides version control, built-in workflow, and content management that automate editorial processes for large, complex publishing projects. It is well suited for use in publishing environments with large amounts of text, graphics, and other data that are formatted and published in multiple versions or on multiple media. Xyvision software runs on Sun(R) SPARC(TM)stations and servers under Sun OS and Solaris(TM), IBM(R) RS/6000 servers under AIX(TM), and DEC(R) servers under ULTRIX(R). # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # We also have a distributor in the Netherland. I have sennt a copy of this email to Marcel Croese, the Slaes Manager of Mahez B.V. If you need to call them, the telephone number is +31-20-587-2222. Looking at the brief comment made in your email, I think that Xyvision does have a product that would meet you requirements, with that in mind I would like to send you a set of brochures if you can send me your address. Please feel free to call/email/fax me if you need more information. Regards * Michael J. McNamara Tel: +44-1753-820565 * * Senior Operations Manager, Europe Fax: +44-1753-694944 * * Xyvision Ltd, Mobile: +44-385-313352 * * 246 Bedford Ave. e-mail: mike.mcnamara@xyvision.com * * Slough, Berkshire. Compuserve: 100013,3502 * * SL1 4RJ. U.K. * ########################################################################### ########################################################################### From: mvulpe@i4i.org (Michel Vulpe) Infrastructures Company Introduction Thank you for your interest in Infrastructures products. The following information provides an introduction to our products and philosophy. Infrastructures was formed to address the single most important issue facing business' today, management of information as an intellectual asset. We offer database products that use native SGML object management technology to reuse information providing a system solution that develops, manages, and delivers complex documents independent of format, platform, or application. Management of Intellectual Assets -- An Introduction The primary use of computers by far is for document processing. According to Dataquest (San Jose, CA), 98% of business computer users employ word processing software on their personal computers and many use their PCs only for word processing. Industry analysts, note that at least 80% of corporate electronic information is in the form of documents, as opposed to structured database records. Because of advances in word processor technology, documents are no longer merely an electronic analog to paper, but rather dynamic, modular, multimedia entities. The current software file/application paradigm can create the information, but manages it very poorly or not at all. Any attempt to reuse the information requires a duplication of the original environment. The user community is driven by the need to manage its intellectual assets as a result of frustration with the growing glut of information that was expensive to manufacture and cannot be financially managed or tracked. Infrastructures' VISion technology advances the information management paradigm beyond the inherent limitations of files and applications. By combining the structured world of database technology with word processors and networks, Infrastructures creates an environment that fulfills the promise of technology as a means of improving productivity. Many organizations have access to large volumes of information. Relatively few can economically transform those knowledge resources into valuable products. The constant challenge for these organizations is to: > reuse their information resources > make their knowledge base accessible, > extend the useful lifetime of the information, > be capable of tailoring the knowledge to a specific user, and > create information that is not dependent on any specific media. Despite the cost of developing and publishing computer-based information products, rarely do these products leverage the information assets of the organization. The ability to economically reuse underlying information components is the key. Infrastructures provides a database environment integrating the underlying resources of text, images, and other materials into logical information products that can be delivered on paper or electronically via the Internet. Infrastructures Information Management Systems - The VISion Product Overview The VISion=A9 product family is an on-line client/server Document Manufacturing System that uses Virtual Information Space technology or VIS=A9. Built with the Application Development Tool Kit, it is designed to manage the efficient transformation of raw information into various useful information products. VISion products apply the discipline of the manufacturing environment to the business of document production, imposing clearly defined standards for both format and content, promoting reusability of components, and enforcing communication among all those involved in the process of building a document. VISion guides a document through every stage of its evolution, from a primary draft to a finished, published document. VISion gives its users electronic access to all the information components used in constructing document information: text, graphics, comments, approvals, and annotations. VISion combines groupware mail distribution functions with the structure of a document to create a framework for collaborative development. VISion stores, in a full function DBMS, each version of a document together with all the approvals, comments, and annotations associated with each stage. It also stores information on all its users, their organizational relationships, and the roles they play in building various documents. The VISion Product Family The Infrastructures' VISion family of products has been designed to provide a clearly defined implementation path. Building on the existing database and communications infrastructure, this implementation path offers two major advantages for Infrastructures' customers; functionality and migration strategy. The VISion family consists of three products: the first is a relatively inexpensive way for an organization to take the initial step into a world of information manufacturing and management. The next two steps compliment the first, moving in stages to exploit "virtual information space" or VIS technology to its fullest. Nothing is lost along the way. Staged implementation entails no waste of money or resources. The path begins with VISion 1; a system that offers simple, database-driven document management with automated distribution of documents. VISion 2 provides the user with SGML support, logical decomposition of documents, and algorithmic composition capabilities. Finally, VISion 3 technology manages documents as collections of reusable information objects or logical documents in a virtual information space, allowing communication between VISion Servers in either replication mode or as virtual information servers similar to the way the World Wide Web (WWW) uses HTML documents. =46inally, VISion is a complete document development, management, and distribution environment. Using tools resident on the desktop, the system builds a structured environment that allows an information product to be electronically distributed and maintained. VISion offers the ability to manipulate and link low level information objects or components without the limitations imposed by the traditional document/file paradigm and supports the following features: > authoring using your current desktop tools (including SGML/HTML) > document management (versioning, archiving, and approval) > media-independent publishing (paper, on-line, CD-ROM) > multi-media development > electronic distribution over existing Email systems > virtual document development The VISion Remote Client is a companion to the VISion Server and interacts with the server over public access networks such as the Internet or over local area networks. Together, these two products introduce a client/server solution dramatically improving traditional composition-based approaches to information management. Productivity Improvements The rational for adopting a systematic approach is economic in nature as the cost of developing information products increases. Gaining a productivity enhancement by automating the labor intensive aspects of the information development process and reducing the number of process steps is desirable. Infrastructures' systems establish a systematic method to maximize information reuse, automate composition and output, and allow the exchange of information electronically. If you would like additional information, please contact an Infrastructures representative. To Contact Infrastructures In the US: 990 Hayman Place Los Altos, CA 94024 tel 415.969.7363 fax 415.969.7003 Internet: syoung@i4i.org In Canada: 330 Dupont Street Suite 302 Toronto, Ontario M5R 1V9 tel 416.920.6489 fax 416.920.6493 Internet mvulpe@i4i.org ########################################################################### ########################################################################### This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ================================================================================ Archive-Date: Wed, 05 Apr 1995 01:28:27 CDT Sender: owner-litprog@SHSU.edu From: duncan@yc.estec.esa.nl (Duncan Gibson) Reply-To: LitProg@SHSU.edu, duncan@YC.ESTEC.ESA.NL Subject: Summary: Is there a complete documentation system? Part 5/6 Message-ID: Date: Tue, 4 Apr 1995 17:28:34 GMT To: LitProg@SHSU.EDU From: "Steven R. Newcomb" Sounds like you're looking for HyTime. I'm attaching first a letter about HyTime, and second a letter about HyMinder, our implementation of HyTime. Best regards, Steven R. Newcomb | TechnoTeacher, Inc. direct +1 716 389 0964 | (courier: 3800 Monroe Avenue, main +1 716 389 0961 | Pittsford, NY 14534-1330 USA) fax +1 716 389 0960 | P.O. Box 23795 Internet: srn@techno.com | Rochester, New York 14692-3795 USA ******************************************************************************** (The remainder of) This letter contains information about SGML, HyTime, and related matters. It is intended to help you find the information you are looking for. We send this letter to people like yourself who inquire about various matters. This letter does not discuss TechnoTeacher products and services and it is not trying to sell you anything. At your request we will gladly send you information about our International HyTime Workshop series (which is the best way to learn HyTime available today) and our HyMinder SGML/HyTime engine technology, a unique all-in-one SGML and HyTime services library of C++ classes. Best regards, NOTE NEW ADDRESS, PHONE NUMBERS: Steven R. Newcomb | TechnoTeacher, Inc. direct +1 716 389 0964 | (courier: 3800 Monroe Avenue, main +1 716 389 0961 | Pittsford, NY 14534-1330 USA) fax +1 716 389 0960 | P.O. Box 23795 Internet: srn@techno.com | Rochester, New York 14692-3795 USA ******************************************************************************** HyTime, SGML, etc. ``HyTime'' is the nickname of the ISO/IEC International Standard 10744:1992, whose long name is ``Hypermedia/Time-based Structuring Language.'' It provides a worldwide standard technical framework for integrated open hypermedia, including the ``SMDL'' Standard Music Description Language (ISO/IEC Committee Draft 10743). There is as yet only one authoritative reference work on HyTime: the HyTime standard itself. Copies of the standard can be obtained from your nation's standards organization. In the United States, this is the American National Standards Institute (ANSI), 13th Floor, 11 West 42nd Street, New York, New York 10036-8002 USA (tel: +1 212 642 4900, fax: +1 212 398 0023, Cable: Standards, New York, International Telex: 42 42 96 ANSI UI, D-U-N-S 07-329-4837. Last we heard, the ANSI price of the 10744 standard was $98. Introductory articles about HyTime can be found in the November 1991 issue of _Communications of the ACM_, and in the July 1991 issue of _IEEE Computer_. These articles are slightly inaccurate in some details; they were written prior to HyTime's final version as adopted the following year. One book about HyTime has appeared: _Making Hypermedia Work_, by Steven DeRose and David Durand, published by Wolters Kluwer. This book is well regarded in some respects, but its many technical errors and its tendency to confound addressing with linking make it unreliable as a reference work on the subject of HyTime. We are told that the authors have a new edition in the works that will appear shortly. Another book is in press at this writing: _Practical Hypermedia_, by Eliot Kimber, published by Simon & Schuster. We have seen drafts of this book and we like what we have seen. It is likely to be reliable, since it appears in a series edited by Charles Goldfarb, who chaired the HyTime committee. Courses, workshops, and conferences on HyTime (and SGML, see below), as well as on other topics of interest to the information industry, are presented by the Graphic Communications Association (GCA). For more information, please contact the GCA at 100 Daingerfield Road, 4th Floor, Alexandria, Virginia 22314-2228 (tel: +1 703 519 8160, fax: +1 703 548 2867, Telex: 510-600-0899, Internet: mern@well.sf.ca.us). Among its many other SGML-related services and activities, the GCA publishes a directory of commercially available SGML tools, software, and services. ``SGML'' is the nickname of the ISO/IEC International Standard 8879:1986, whose long name is ``Standard Generalized Markup Language.'' SGML, which forms the basis of a number of standards including HyTime, allows all kinds of information to be interchanged among dissimilar information processing systems. In effect, HyTime extends SGML by providing a set of ``SGML architectural forms,'' whose syntax and semantics are standardized by HyTime, and which allows system-independent expression of hyperlinks, information addresses, placement of information objects in time and space, etc. The standard, authoritative reference work on SGML is Charles Goldfarb's _The SGML Handbook_, published by Oxford University Press. We highly recommend this book, which contains the verbatim text of the ISO 8879 standard itself, along with considerable explanatory text. The ``SGML Users' Group'' is an international body which performs a number of important functions in promulgating the understanding and use of SGML, including sponsoring conferences and special interest groups, publishing public domain information, etc. To join the SGML Users' Group, contact Stephen G. Downie, Secretary, SGML Users' Group, c/o SoftQuad Inc., 56 Aberfoyle Cres., Suite 810, Toronto, Ontario, Canada M8X 2W4 (tel: +1 416 239 4801, fax: +1 416 239 7105). Other questions, concerns, and issues should be brought to the attention of Ms. Pamela L. Gennusa, President, International SGML Users Group, c/o Database Publishing Systems Ltd., 608 Delta Business Park, Great Western Way, Swindon, Wiltshire SN5 7XF, United Kingdom (tel: +44 793 512 515, fax: +44 793 512 516, Internet: dpsl!plg@visionware.co.uk). ``SGML SIGhyper'' is the nickname of the SGML Users' Group's ``Special Interest Group on Hypertext and Multimedia,'' which is the HyTime SIG. For more information about SGML SIGhyper, please contact Mr. Erik Naggum, Chairman, SGML SIGhyper, Naggum Software, Irisveien 12, POB 1570 Vika, 0118 Oslo, Norway (tel: +47 2295 0313, fax: +47 2216 2350, Internet: erik@naggum.no). SGML SIGhyper maintains an FTP site, as part of its mission to promulgate information about HyTime. The FTP site is ftp.ifi.uio.no in the directory ``pub/sgml/SIGhyper.'' This site is sponsored by the Department of Informatics at the University of Oslo, Norway. At this site can be found, among other things: * Free SGML parsers for a variety of platforms. These parsers are unsupported, and they do not support all of the features of SGML, but they really do work and they are quite useful. * An excellent bibliography of SGML source materials, created and maintained by Robin Cover. * A catalog of HyTime architectural forms (i.e., the HyTime meta-DTD, which constitutes the formal description of HyTime itself). * Other items of interest, such as draft CApH advisory documents. ``comp.text.sgml'' is a Usenet discussion group which is an absolute must for anyone who is serious about SGML or HyTime. If you can not receive this news group in the usual way, you can request to have it forwarded to your e-mail address daily. Please send such requests to the Internet address ``comp-text-sgml-request@naggum.no.'' (To contribute articles to comp.text.sgml, you can send them to ``comp-text-sgml@news.naggum.no.'') Copies of the comp.text.sgml archives can be recovered by anonymous FTP from ftp.ifi.uio.no. , published monthly, is the only regular source of information for the SGML industry: articles, reviews, product news, tutorials, standards updates, user group information, case studies, and useful technical tips and information. is designed to be an objective voice of the SGML community; it accepts no advertising and encourages frank and open debate on the issues faced by the information publisher. Please contact SGML Associates at +1 303 680 0875, fax: +1 303 680 4906, or Internet: tag@sgml.com. ``CApH'' is the nickname of the GCA Research Institute's (GCA-RI) ``Conventions for the Application of HyTime'' activity. This is an open industrial design committee whose purpose is to develop and publish advisory documents showing how HyTime can be used in particular contexts to do represent particular things, such as indexes based on knowledge bases, licensing information, tabular data, etc. etc. For more information about CApH, contact the GCA at the address given above. Another fascinating HyTime application is the US Department of Defense's ``Metafile for Interactive Documents (MID)'' initiative, intended to allow all databases of technical information for weapons systems to be ``plug-compatible'' (as it were) with all Interactive Electronic Technical Manual (IETM) delivery systems. A report about this work dated November 1994 is available via anonymous FTP from navysgml.dt.navy.mil in the pub/ietm/mid directory. This directory is also accessible from the NAVY DTD/FOSI Repository via the Wide World Web via http://navysgml.dt.navy.mil/ (Point of Contact for the NAVY DTD/FOSI Repository is Betty Harvey, CDNSWC Code 183, Bethesda, MD 20084-5000 or via email: harvey@oasys.dt.navy.mil .) The ``Davenport Group'' is a group of Unix system vendors and vendors of related hardware, software, and services whose purposes include the creation of SGML-based conventions for representing online software documentation. Some public participation is permitted. For more information, please contact Dale Dougherty, c/o O'Reilly & Associates, Inc., 103A Morris Street, Sebastopol, California 95472 USA (tel: +1 707 829 0515 or +1 800 998 9938 (home office: +1 707 829 3762 or +1 707 829 3762), fax: +1 707 829 0104, Internet: dale@ora.com) or Ralph Ferris, c/o Fujitsu Open Systems Solutions, Inc., 6121 Hollis Street, Emeryville, California 94608-2092 USA (tel: +1 510 652 6200 x421, fax +1 510 652 5532, Internet: ralph@ossi.com). ``SGML Open'' ``is a non-profit, international consortium of providers of products and services, dedicated to accelerating the further adoption, application and implementation of SGML, the international standard for open interchange of documents and structured information objects. SGML Open provides its members with an open forum to discuss market needs and directions, and to recommend guidelines for product interoperability. The consortium receives, coordinates and disseminates information describing SGML methodologies, technologies, and implementations.'' For more information, contact Larry Bohn, President, SGML Open, c/o Interleaf, Prospect Place, 9 Hillside Avenue, Waltham, MA 02154 (tel: +1 617 290 0710, fax: +1 617 290 4943). Some Implementations of HyTime: ``HyMinder,'' a HyTime engine. (TechnoTeacher, Inc., P. O. Box 23795 Rochester, New York 14692-3795 USA. hyminder@techno.com.) ``HyOctane,'' a HyTime engine. (Interactive Media Group, Center for Productivity Enhancement, University of Massachusetts--Lowell, One University Avenue, Lowell, Massachusetts 01854 USA. buford@uml.edu.) ``ObjectSGML,'' a HyTime/SGML parser. (Information Technology Research Center, Yuan-Ze Institute of Technology, 135 Far East Road, Neiti, Taoyuan, TAIWAN R.O.C. cssmju@cs.yzit.edu.tw.) ``SoftQuad Explorer,'' a HyTime document editor/browser. (SoftQuad Inc., 56 Aberfoyle Crescent, Suite 810, Toronto, Ontario, CANADA M8X 2W4, +1 416 239 4801, fax +1 416 239 7105, linda@sq.com, Applelink: SoftQuad.) Some HyTime consultants and other HyTime-related service providers: High Text S.A.R.L., 5, rue d'Alsace, 75010 Paris, FRANCE, +33 1 4205 9315, fax: +33 1 4205 9248, MBIEZUNSKI@MCIMail.com Martin Hensel Corporation, 233 Needham Street, Newton, Massachusetts 02164 USA, +1 617 527 3230, fax +1 617 527 1929, 71542.510@compuserve.com Passage Systems Inc., 9971 Quail Boulevard, Suite 903, Austin, Texas 78758 USA, +1 512 339 1400, fax +1 512 339 3618, kimber@passage.com. TechnoTeacher, Inc., (courier: 3800 Monroe Avenue, Pittsford, NY 14534-1330 USA), P.O. Box 23795, Rochester, New York 14692-3795 USA, +1 716 389 0961, fax +1 716 389 0960, hyminder@techno.com. Best regards, NOTE NEW ADDRESS, PHONE NUMBERS: Steven R. Newcomb | TechnoTeacher, Inc. direct +1 716 389 0964 | (courier: 3800 Monroe Avenue, main +1 716 389 0961 | Pittsford, NY 14534-1330 USA) fax +1 716 389 0960 | P.O. Box 23795 Internet: srn@techno.com | Rochester, New York 14692-3795 USA ******************************************************************************** ******************************************************************************** Thanks for your interest in TechnoTeacher's HyMinder SGML/HyTime engine. It can take the sting out of adding HyTime and SGML compliance to your C++ applications, because it can handle all the chores involved in parsing (importing), changing, reorganizing, processing, validating, and exporting information represented according to the ISO SGML and HyTime standards. In other words, application programmers can concentrate on the application-specific portions of their software, and still equip their applications with an ability to read and write information that can participate in the worldwide mainstream of information processing. This product, by itself, is useful only to C++ programmers. HyMinder has no end-user interface, although many applications can be readily built by adding a user interface. We are now shipping version 0.8.x of the HyMinder engine to customers whose planning cycles require that they begin evaluations as soon as possible. We will provide to these early customers all updates (including documentation improvements and bug fixes) until version 1.0, which they will also receive, and for one year thereafter, without additional charge. The HyMinder engine is the only SGML system available which was designed specifically to support the heavy demands of HyTime (ISO/IEC 10744) processing, while also supporting a comprehensive array of SGML functionalities. It is built to serve as the SGML-handling substrate of any application that requires any portion of the semantic processing implied by the HyTime standard, e.g., hyperlinking, scheduling and extended document management and validation. Best regards, Steven R. Newcomb | TechnoTeacher, Inc. direct +1 716 389 0964 | (courier: 3800 Monroe Avenue, main +1 716 389 0961 | Pittsford, NY 14534-1330 USA) fax +1 716 389 0960 | P.O. Box 23795 Internet: srn@techno.com | Rochester, New York 14692-3795 USA enc: HyMinder Technical Information sheet HyMinder License Information sheet sample MarkMinder/HyMinder system application: Browse.cc ******************************************************************************* HyMinder Technical Information TechnoTeacher, Inc.'s HyMinder HyTime engine is for those who wish to write applications that can create and/or process hypermedia documents represented in the internationally standard HyTime language, and for those who wish to create object-oriented SGML applications or retrofit existing applications so that data can be interchanged in the form of SGML documents. The HyMinder HyTime engine is a C++ library which offers an easy-to-use and comprehensive API to the information contained in SGML and HyTime documents. When using the HyMinder system, programmers can regard each syntactic and semantic construct (described by the SGML and HyTime standards) as a persistent C++ object, and all such objects can be manipulated, altered, validated, and/or automatically exported as SGML/HyTime-conforming documents. The HyMinder system incorporates TechnoTeacher's MarkMinder SGML engine, which contains an SGML parser and exporter and allows editing and validation of DTDs, elements, and attributes while in database form. The MarkMinder engine's SGML database technology allows it to rapidly and randomly read, write, and/or alter the structures, attribute values, contents, etc. of several databased SGML documents simultaneously. The HyMinder HyTime engine's object classes add the hyperlinking, scheduling, and extended document management and validation facilities of HyTime to the MarkMinder SGML engine substrate. The HyMinder engine performs validation and processing tasks that are specified and implied by the HyTime standard, such as verifying the compliance of elements with HyTime architectural forms, resolving hyperlinks, providing anchor notification, providing traversal services between separate documents, responding to queries expressed in HyTime's query language (HyQ), assisting applications in managing the rendition of events in time- and space-based documents, etc. Version 0.8.2 of the HyMinder C++ library is currently available on SPARCs running SunOS 4.1.x with GNU g++ 2.x, for SPARCs running Solaris 2.x with SPARCompiler C++ 3.0.1, and for 80386 and 80486 machines running Linux 0.99.14 (libc 4.4.4) with GNU g++ 2.x. Support for other platforms is planned, and an MS Windows version is about to be released; please make your needs known. TechnoTeacher, Inc. (courier: 3800 Monroe Avenue, Pittsford, NY 14534-1330 USA) P.O. Box 23795 Rochester, New York 14692-3795 USA voice +1 716 389 0961 fax +1 716 389 0960 Internet: HyMinder@techno.com Anticipated HyTime Module Support: Version | 0.8 | 0.9 | 1.0 | 2.0 Base | p | p | p | c Measurement | p | p | p | c Location Address | p | p | p | c Hyperlinks | p | p | p | c Scheduling | | | p | c Rendition | | | p | c Anticipated HyTime Module Option Support: Version | 0.8 | 0.9 | 1.0 | 2.0 BASE MODULE context | | | | c lextype | | | | c HyLex | | | | c lexord | | | | c refctl | | c | c | c exidrefs | | c | c | c dvlist | | | c | c desctxt | | | c | c activity | | c | c | c dcnatts | | | c | c xpropdef | | | | c HyPD | | | | c unparsed | | | | c MEASUREMENT MODULE dimref | | | | c markfun | | p | p | c HyOp | | p | p | c HyFunk | | p | p | c homogran | | | | c fcsmdu | | | | c axismdu | | | | c LOCATION ADDRESS MODULE multloc | p | c | c | c spanloc | | | | c anysgml | | | | c anydtd | c | c | c | c mixspace | | | | c coordloc | p | p | p | c pathloc | | c | c | c relloc | p | p | p | c notsrc | | | | c query | p | p | p | c HyQ | p | p | p | c mixcase | | | | c bigmatch | | | | c uassert | | | | c HYPERLINKS MODULE manyanch=NUMBER | c | c | c | c SCHEDULING MODULE manyaxes=NUMBER | | | | c splitfcs | | | | c grpdex | | | | c accanch | | | | c exrecon | | | | c calspec | | | | c juldate | | | | c RENDITION MODULE modify | | | | c patch | | | | c project | | | | c profun | | | | c scaleref | | | | c Table key: p=partial; c=complete. Support for the Scheduling and Rendition modules of HyTime will begin with version 1.0. ******************************************************************************* HyMinder License Information Licenses: The terms and conditions of specific Developer Licenses and Application Licenses are contained in written agreements. (The information in this circular is subject to modification by changes, additions and deletions without notice.) Not shown in the fee schedules below are shipping fees, media charges (a nominal charge for each actual copy of the HyMinder library and documentation on magnetic media), applicable taxes, and the additional costs of optional technical services. Developer Licenses: A HyMinder Developer License consists of the right to use the HyMinder library for the purpose of developing applications that contain and/or use the HyMinder engine, and for testing such applications prior to distribution or deployment for use. This nonexclusive, nontransferable license is good for a year at a time and allows for the use of the HyMinder library by one named person (or, alternatively, by one named machine to be used only by one person during any one period of time). Each Developer License is provided for one specific computer platform. Pricing: A HyMinder Developer License may be purchased annually for $5,500 [all amounts are shown in US dollars] plus $1,000 per developer (for a minimum of $6,500), with the total Developer License fees not to exceed $25,000 per year per software development site. Developer License fees include the cost of maintenance, all updates and new releases, technical support, and ten Distributable End User Licenses. Schedule of Developer License Fees: ($5,500 plus $1,000 per developer [minimum of $6,500]) number of developers | price per year 1 | $ 6,500 2 | $ 7,500 5 | $ 10,500 10 | $ 15,500 20 or more | $ 25,000 Unlimited Single Application Licenses: A HyMinder Unlimited Single Application License consists of the right to incorporate all or any portion of the HyMinder library in an unlimited number of copies of exactly one application, a description of which forms part of the license agreement. Pricing: A HyMinder Unlimited Single Application License may be purchased for $65,000. Each new Application costs an additional $65,000, with the total cost of Application Licenses not to exceed $250,000 per licensee. A license for unlimited numbers of copies of an unlimited number of applications may be purchased for $250,000. Schedule of Unlimited Single Application License Fees: ($65,000 per application) number of applications | price 1 | $65,000 2 | $130,000 3 | $195,000 4 or more | $250,000 Note: The applicable Developer License Fee must be paid annually for the continuation of maintenance. Refunds: License fees, and all taxes based on license fees, are refundable if all copies are destroyed and all original materials are returned to TTI within thirty days after the materials are first delivered to Licensee's address. No other charges are refundable. TechnoTeacher, Inc. (courier: 3800 Monroe Avenue, Pittsford, NY 14534-1330 USA) P.O. Box 23795 Rochester, New York 14692-3795 USA voice +1 716 389 0961 fax +1 716 389 0960 Internet: HyMinder@techno.com ******************************************************************************** A sample HyMinder engine application: Browse.cc Here is a sample session running the Browse.cc program (source code attached below). Browse.cc provides a very primitive user interface to a small portion of the HyMinder engine's functionality. In this session, the SGML document "poems.doc" (attached below) is browsed. (Please note that the Browse.cc program is not a product. It is merely intended to demonstrate a small portion of the MarkMinder and HyMinder API, a portion which contains only some of data retrieval methods of those systems, and none of the data and metadata storage and editing methods.) *** % browse poems.doc // first session begins here. Element: GI: "POEMDOC":1 // starts at document element browse> ? // get help info [H] Go to the hub node [P] Go to parent [N] Go to first child [F] Go to next sibling [B] Go to previous sibling [A] Show anchors (for a link) // see second session, below [L] Show links (for an anchor) // see second session, below [?] Show this help screen [Q] Quit Element: GI: "POEMDOC":1 browse> n // go to first child element Element: GI: "POEM":1 ID: "WALRUS" browse> n Element: GI: "TITLE":1 browse> n Pseudo-element: "The Walrus and the Carpenter^M " browse> p // go to parent element Element: GI: "TITLE":1 browse> f // go to next sibling Element: GI: "AUTHOR":1 browse> n Pseudo-element: "Lewis Carroll^M " browse> p Element: GI: "AUTHOR":1 browse> f Element: GI: "LI":1 browse> n Pseudo-element: ""The time has come," the Walrus said.^M " browse> p Element: GI: "LI":1 browse> f Element: GI: "LI":2 browse> n Pseudo-element: ""To speak of many things:^M " browse> p Element: GI: "LI":2 browse> f Element: GI: "LI":3 browse> f Element: GI: "LI":4 browse> f Element: GI: "LI":5 browse> f Element: GI: "LI":6 browse> f Element: GI: "LI":6 // ^G: bell rings; no next sibling browse> p Element: GI: "POEM":1 ID: "WALRUS" browse> f Element: GI: "POEM":2 ID: "JABWOCK" browse> q // quit % *** The second session, below, demonstrates the use of the HyMinder system (the MarkMinder system as enhanced for HyTime processing) in Browse.cc to traverse a link to a named element in another document, and back again. *** % browse annot.doc // second session begins here Element: GI: "ANNOTDOC":1 browse> n Element: GI: "P":1 browse> n Pseudo-element: "In this poem, " browse> f (LINK) Element: GI: "POEMREF":1 ID: "" browse> f Pseudo-element: " Lewis^MCarroll seemingly utters utter nonsense." browse> p Element: GI: "P":1 browse> n Pseudo-element: "In this poem, " browse> f (LINK) Element: GI: "POEMREF":1 ID: "" browse> n (ANCHOR) Pseudo-element: "Jabberwocky" browse> l // go to link of this anchor (LINK) Element: GI: "POEMREF":1 ID: "" browse> a // show anchors of this link Choose an Anchor: [ 0] Cancel [ 1] (ANCHOR) Pseudo-element: "Jabberwocky" [ 2] (ANCHOR) Element: GI: "POEM":2 ID: "JABWOCK" Anchor? 2 // go to other document (ANCHOR) Element: GI: "POEM":2 ID: "JABWOCK" browse> n Element: GI: "TITLE":2 browse> n Pseudo-element: "Jabberwocky^M " browse> p Element: GI: "TITLE":2 browse> p (ANCHOR) Element: GI: "POEM":2 ID: "JABWOCK" browse> l // go to link of this anchor (LINK) Element: GI: "POEMREF":1 ID: "" browse> a // show anchors of this link Choose an Anchor: [ 0] Cancel [ 1] (ANCHOR) Pseudo-element: "Jabberwocky" [ 2] (ANCHOR) Element: GI: "POEM":2 ID: "JABWOCK" Anchor? 1 (ANCHOR) Pseudo-element: "Jabberwocky" browse> p (LINK) Element: GI: "POEMREF":1 ID: "" browse> b Pseudo-element: "In this poem, " browse> p Element: GI: "P":1 browse> p Element: GI: "ANNOTDOC":1 // we're back where we started browse> q % *** The third session, below, demonstrates the use of the HyMinder system (the MarkMinder system as enhanced for HyTime processing) in Browse.cc to traverse a link in a HyTime document (annot.doc) to an unnamed element in an SGML document (poems.doc), and back again. The remote anchor is specified using the HyQ query language. (Note: HyQ, which is part of the ISO 10744 HyTime standard, is the only internationally standardized query language for use with SGML documents.) The query is found in the nameloc element (id=walrus3) at the end of the "annot.doc" element. *** % browse annot.doc Element: GI: "ANNOTDOC":1 browse> n Element: GI: "P":1 browse> f Element: GI: "P":2 browse> n Pseudo-element: "In " browse> f (LINK) Element: GI: "POEMREF":2 ID: "" browse> n (ANCHOR) Pseudo-element: "line 3" browse> p (LINK) Element: GI: "POEMREF":2 ID: "" browse> f Pseudo-element: " of the^M" browse> f (LINK) Element: GI: "POEMREF":3 ID: "" browse> n (ANCHOR) Pseudo-element: "poem" browse> p (LINK) Element: GI: "POEMREF":3 ID: "" browse> f Pseudo-element: ", sealing wax may mean the wax^Mthat seals the hulls of ships, but probably not." browse> p Element: GI: "P":2 browse> n Pseudo-element: "In " browse> f (LINK) Element: GI: "POEMREF":2 ID: "" browse> a Choose an Anchor: [ 0] Cancel [ 1] (ANCHOR) Pseudo-element: "line 3" [ 2] (ANCHOR) Element: GI: "LI":3 Anchor? 2 (ANCHOR) Element: GI: "LI":3 browse> n Pseudo-element: "Of shoes and ships and sealing wax,^M " browse> p (ANCHOR) Element: GI: "LI":3 browse> p (ANCHOR) Element: GI: "POEM":1 ID: "WALRUS" browse> p Element: GI: "POEMDOC":1 browse> n (ANCHOR) Element: GI: "POEM":1 ID: "WALRUS" browse> n Element: GI: "TITLE":1 browse> f Element: GI: "AUTHOR":1 browse> f Element: GI: "LI":1 browse> f Element: GI: "LI":2 browse> f (ANCHOR) Element: GI: "LI":3 browse> l (LINK) Element: GI: "POEMREF":2 ID: "" browse> a Choose an Anchor: [ 0] Cancel [ 1] (ANCHOR) Pseudo-element: "line 3" [ 2] (ANCHOR) Element: GI: "LI":3 Anchor? 1 (ANCHOR) Pseudo-element: "line 3" browse> p (LINK) Element: GI: "POEMREF":2 ID: "" browse> p Element: GI: "P":2 browse> p Element: GI: "ANNOTDOC":1 browse> q % *** Below is the full text of poems.doc: *** ]> The Walrus and the Carpenter <author>Lewis Carroll <li>"The time has come," the Walrus said. <li>"To speak of many things: <li>Of shoes and ships and sealing wax, <li>Of cabbages and kings, <li>And why the sea is boiling hot, <li>And whether pigs have wings. </poem> <poem id = jabwock> <title>Jabberwocky <author>Lewis Carroll <li>"Beware the Jabberwock, my son, <li>The jaws that bite, <li>The claws that catch; <li>Beware the jubjub bird, and shun <li>The frumious bandarsnatch." </poem> </poemdoc> *** Below is the full text of annot.doc: *** <!DOCTYPE annotdoc [ <!ELEMENT annotdoc - O ( p | poemref | nameloc)* > <!ELEMENT p - O ( #PCDATA | poemref)* > <!ELEMENT poemref - O ( #PCDATA) > <!ATTLIST poemref HyTime NAME #FIXED clink id ID #IMPLIED linkend IDREF #REQUIRED > <!ELEMENT nameloc - O ( nmlist | HyQ)* > <!ATTLIST nameloc id ID #REQUIRED HyTime NAME #FIXED nameloc ordering (ordered|noorder) noorder set (set|notset) notset aggloc (aggloc|agglink|nagg) agglink > <!ELEMENT nmlist - O ( #PCDATA) > <!ATTLIST nmlist HyTime NAME nmlist nametype (entity|element|unified) element obnames (obnames|nobnames) nobnames docorsub ENTITY #IMPLIED > <!NOTATION HyQ PUBLIC "+//ISO/IEC 10744:1992//NOTATION HyTime Query Notation//EN" > <!ELEMENT HyQ - O ( #PCDATA) > <!ATTLIST HyQ HyTime (nmquery|mrkquery) nmquery notation NAME #FIXED HyQ qdomain IDREFS #IMPLIED args IDREFS #IMPLIED > <!ENTITY poems SYSTEM "poems.doc" CDATA SGML> <!NOTATION SGML PUBLIC "+//ISO/IEC 8879:1986//NOTATION Standard Generalized Markup Language//EN"> ]> <annotdoc> <p>In this poem, <poemref linkend=jabloc>Jabberwocky</poemref> Lewis Carroll seemingly utters utter nonsense.</p> <p>In <poemref linkend=walrus3>line 3</poemref> of the <poemref linkend=walrus>poem</poemref>, sealing wax may mean the wax that seals the hulls of ships, but probably not.</p> <!-- Gets "Jabberwocky" from poems.doc --> <nameloc id=jabloc><nmlist element docorsub=poems>jabwock</nmlist></nameloc> <!-- Gets "Walrus and the Carpenter" from poems.doc --> <nameloc id=walrus><nmlist element docorsub=poems>walrus</nmlist></nameloc> <!-- Gets the third line from "Walrus" --> <nameloc id=walrus3><HyQ qdomain=walrus> Listloc( Select( Relloc( DOMROOT DOMROOT CHILDREN) EQ( Proploc( CAND GI EMPTY) "LI")) 3 1) </HyQ></nameloc> *** Below is the full source code of Browse.cc: *** -- begin Makefile -- # # NAME: Makefile # PROJECT: Example document browsing application with # very primitive user interface. # DESCRIPTION: An example use of the HyMinder system, `Browse' allows # a user to interactively browse an SGML/HyTime # document. # # Copyright (C) 1994 TechnoTeacher, Inc. # # RCS INFO: $Id: Makefile,v 1.1 1995/01/04 18:01:27 peter Exp peter $ # Prefix for include, lib and executable files PREFIX=/usr/techno/hyminder # HyMinder include files path. INCLUDEDIR=$(PREFIX)/include # HyMinder library path. LIBDIR=$(PREFIX)/lib # Executables path. BINDIR=$(PREFIX)/bin # C++ compiler and options. CXX = g++ CCOPTIONS = -g -Wall # Linker options. LDOPTIONS = -g ################################################### # You shouldn't need to change anything below here. PROG = browse OBJS = Browse.o CXXFLAGS = $(CCOPTIONS) -I$(INCLUDEDIR) LDFLAGS = $(LDOPTIONS) -L$(LIBDIR) LIBS = -lhyminder -lmarkminder -lmmexport -lmmparser -lhmentitymanager \ -lhmdocobj -lhmdtd -lhmsgmldecl -lhmruleman -lhmdb -lhmutil \ -lidf -lkeyf all: $(PROG) $(PROG): $(OBJS) $(CXX) $(LDFLAGS) -o $@ $^ $(LIBS) clean: -rm -f *.o $(PROG) -- end Makefile -- -- begin Browse.cc -- // // MODULE NAME: Browse.cc // PROJECT: Example document browsing application with // very primitive user interface. // DESCRIPTION: An example use of the HyMinder system, `Browse' allows // a user to interactively browse an SGML/HyTime // document. // // Copyright (C) 1993, 1994 TechnoTeacher, Inc. All rights reserved. // // Permission to reproduce and share this material is granted only for // purposes of evaluating the MarkMinder and/or HyMinder systems by // potential licensees of those systems, provided that no changes are // made to this material in any copy, and also provided that this notice // is reproduced with every copy. No other use of this material is // permitted. // // (Please note that the browse program is not a product. It is merely // intended to demonstrate a small portion of the MarkMinder and HyMinder // API, a portion which contains only some of data retrieval methods of // those systems, and none of the data and metadata storage and editing // methods.) // #include <HMError.h> #include <HMErrorHandler.h> #include <HMFile.h> #include <HMDocObj.h> #include <HMDocumentDatabase.h> #include <HMNode.h> #include <HMAttributeValue.h> #include <HMHyMinder.h> #include <HMHyMinderDefaultCallback.h> #include <HMHyTimeIndex.h> #include <HMNodePtrLinkedList.h> #include <HMIntStack.h> #include <HMLinkHandler.h> #include <HMDataObject.h> #include <HMLinkend.h> #include <HMLinkendPtrList.h> #include <HMIlink.h> #include <HMClink.h> // Browse application class. class Browse { // Contains the exit status of the most recently called method. HMError e; // Pointer to the application's callback object. HMHyMinderApplicationCallback * callback; // Pointer to the application's HyMinder object. HMHyMinder * hyMinder; // Pointer to the hub document's document element. HMNodePtr hubNode; // Prints out the relevent data for a node. (e.g. its GI, unique id, // data content, ...) int GetChoice( char * prompt, int max); // Prints out the relevent data for a node. (e.g. its GI, unique // id, data content, ...) HMError PrintNode( HMNodePtr & node); // Given an ilink in `ilinkNode', `GetAnchorFromIlink' retrieves the // anchors the link points to and allows the user to select one; it // is returned in `anchorNode'. `GetAnchorFromIlink' assumes that // `linkNode' is an ilink, i.e. no sanity checking is performed. HMError GetAnchorFromIlink( HMNodePtr & ilinkNode, HMNodePtr & anchorNode); // Given a clink in `clinkNode', `GetAnchorFromClink' retrieves the // anchors the link points to and allows the user to select one; it // is returned in `anchorNode'. `GetAnchorFromClink' assumes that // `linkNode' is a clink, i.e. no sanity checking is performed. HMError GetAnchorFromClink( HMNodePtr & clinkNode, HMNodePtr & anchorNode); // Given a linkend, `GetNodeFromLinkend' retrieves the // anchors the linkend points to and allows the user to select one; it // is returned in `anchorNode'. HMError GetAnchorFromLinkend( HMLinkend & linkend, HMNodePtr & anchor); public: // Constructor. Opens the document database `docName' and allows // the user to browse it. Browse( HMUChar * docName); // Destructor. Deletes the HyMinder object if it has been // instantiated. TildeBrowse(); // At an anchor, retrieves the links that point to it and allows // the user to select one, which is returned in `link'. HMError GetLink( HMNodePtr & anchor, HMNodePtr & link); // At a link, retrieves the anchors the link points to and allows // the user to select one, which is returned in `anchor'. HMError GetAnchor( HMNodePtr & link, HMNodePtr & anchor); // Returns the exit status of the most recently called method. inline HMError Status() { return e;} // Prints any accumulated error messages in the global hmError object. void PrintErrors(); // Prints out a menu of recognized commands. void Help(); }; // Prints any accumulated error messages in the global hmError object. void Browse:: PrintErrors() { // Print accumulated errors to standard error. hyMinder->PrintErrors( HMstderr); } // Constructor. Opens the document database `docName' and allows the // user to browse it. Browse:: Browse( HMUChar * docName) { // Create a callback object to give to HyMinder. callback = new HMHyMinderDefaultCallback; // Intantiate a HyMinder object, passing it the source system // identifier object of the hub document database. hyMinder = new HMHyMinder( callback); // Instantiate a system identifier object, passing it the system // identifier object of the session and hub document database. HMSystemIdentifier systemIdentifier; systemIdentifier.Assign( docName); // Open the session and hub document databases. if ( e = hyMinder->OpenSession( systemIdentifier)) { HMstderr.Printf( "Error occured while opening session or hub database \"%s\"\n", docName); return; } // Perform HyTime engine processing on the document. This allows // the engine to create hypermedia indexes of the document to // speed rendition. if ( e = hyMinder->DoEngineProcessing()) { HMstderr.Printf( "Error(s) occured while doing HyTime engine processing\n"); return; } // Print out non-fatal errors accumulated by engine processing. PrintErrors(); // Start browsing at the document element of the hub document. HMNodePtr node; if ( e = hyMinder->GetHubNode( node)) { HMstderr.Printf( "Couldn't get hub node: error %d\n", e); return; } // The main loop of the application. Describe the current node as // pointed to by `node', and then wait for a command. The // procedure associated with command makes `tmpNode' point to a // new node, which if not null is assigned to `node' at the end of // the loop, thus completing the cycle. HMNodePtr tmpNode; int command; for (;;) { // Print out the current node. if ( e = PrintNode( node)) return; // Prompt the user for a command. HMstdout.Printf( "browse> "); // Wait for a command. command = getchar(); // Catch any extra characters entered up to and including a newline. while ( getchar() != '\n'); // Process the command. switch ( command) { case 'h': case 'H': // Return to the hub node. if ( e = hyMinder->GetHubNode( tmpNode)) { HMstderr.Printf( "Couldn't get hub node: error %d\n", e); tmpNode = 0; } break; case 'p': case 'P': // Go to the parent of the current node. tmpNode = node->GetParent(); break; case 'b': case 'B': // Go to the previous sibling of the current node. tmpNode = node->GetPrevSib(); break; case 'f': case 'F': // Go to the next sibling of the current node. tmpNode = node->GetNextSib(); break; case 'n': case 'N': // Go to the first child of the current node. tmpNode = node->GetFirstChild(); break; case 'a': case 'A': // Choose an anchor of the current node, which must be a link. if ( e = GetAnchor( node, tmpNode)) return; break; case 'l': case 'L': // Choose a link of the current node, which must be an anchor. if ( e = GetLink( node, tmpNode)) return; break; case '?': // Print out a menu of commands. Help(); // Stay at the current node. tmpNode = node; break; case 'q': case 'Q': // Exit from the program. return; break; } // Set the current node to the node pointed to by tmpNode, // unless it's null, in which case beep (or do the equivalent // thereof). if ( tmpNode) node = tmpNode; else putchar(0x07); } } // Destructor. Deletes the HyMinder object if it has been // instantiated. Browse:: TildeBrowse() { // Close the session database. if ( e = hyMinder->CloseSession()) HMstderr.Printf( "Error occured while closing session database: error %d\n", e); // Delete the HyMinder object if it has been instantiated. if ( hyMinder) delete hyMinder; // Delete the callback object after deleting the HyMinder object, // as HyMinder may need to use the callback object duing deletion. if ( callback) delete callback; } // Prints to standard output a menu of recognized commands. void Browse:: Help() { HMstdout.Printf( "\ [ H]\tGo to the hub node\n\ [ P]\tGo to parent\n\ [ N]\tGo to first child\n\ [ F]\tGo to next sibling\n\ [ B]\tGo to previous sibling\n\ [ A]\tShow anchors (for a link)\n\ [ L]\tShow links (for an anchor)\n\ [ ?]\tShow this help screen\n\ [ Q]\tQuit\n"); } // At an anchor, retrieves the links that point to it and allows // the user to select one, which is returned in `link'. HMError Browse:: GetLink( HMNodePtr & anchor, HMNodePtr & link) { // Test to see if `anchor' is really an anchor. If not, return a // null ponter in link, but otherwise return ok. if ( !hyMinder->GetLinkHandler()->IsAnchor( anchor)) { link = 0; return e = HM_OK; } // An `HMNodePtrLinkedList' uses the HyMinder object to resolve // nodes over multiple documents. HMNodePtrLinkedList links( hyMinder); HMIntStack linkendNumbers; HMIntStack whichInAggregate; // Get all links which point to the node `anchor'. `links', // `linkendNumbers', and `whichAggregates' are parallel arrays // where `links' contains the link nodes, `linkendNumbers' // contains the linkend number of `anchor' within each link, and // `whichInAggregate' contains the number of `anchor' within its // aggregate location link, if any. if ( e = hyMinder->GetLinkHandler()->GetLinks( anchor, links, linkendNumbers, whichInAggregate)) { HMstderr.Printf( "Error occured while getting links from an anchor.\n"); return e; } // `HMNodePtrItemPtr' objects are used to index // `HMNodePtrLinkedList' objects. HMNodePtrItemPtr p; // If there is only one link to choose from, go directly to that // link, otherwise create a menu of links and ask the user to // select one. if ( links.Count() == 1) { // Set `link' to the first link. `p' must be used to hold the // object returned from `links.First()' in order to avoid // having it go out of scope before using it to index `links' // to get the actual node. link = links.GetNodePtr( p = links.First()); } else { // Start a link menu. HMstdout.Printf( "Choose a Link:\n"); HMstdout.Printf( "[ 0]\tCancel\n"); // Loop though the links, creating a menu. `p' is used to // index `links', and `i' is used to index the linkend and // aggregate numbers. int i = 0; for ( p = links.First(); p; p = links.Next( p)) { // Print menu, linkend, and aggregate numbers. HMstdout.Printf( "[%2d] (%d,%d) ", i+1, linkendNumbers[ i], whichInAggregate[ i]); // Print information about the link. PrintNode( link = links.GetNodePtr( p)); i++; } switch ( i = GetChoice( "Link? ", links.Count())) { case -1: // Got EOF; Exit. return e = HM_MACHINE_ENDS; case 0: // If the user entered 0, return the anchor as the link, i.e. // stay at the anchor. Otherwise return the selected link. link = anchor; break; default: link = links.GetNodePtr( p = links.Select( i - 1)); break; } } // Everything went ok. return e = HM_OK; } // Given a link in `linkNode', `GetAnchor' retrieves the anchors the // link points to and allows the user to select one, which is returned // in `anchorNode'. Otherwise `anchorNode' is set null. HMError Browse:: GetAnchor( HMNodePtr & linkNode, HMNodePtr & anchorNode) { // Find out what `linkNode' really is and do the appropriate thing. switch ( hyMinder->GetArchitecturalForm( linkNode) ) { case hme_hytime_ilink: return e = GetAnchorFromIlink( linkNode, anchorNode); case hme_hytime_clink: return e = GetAnchorFromClink( linkNode, anchorNode); default: // If it's not a link, return a null ponter in anchorNode, but // otherwise return ok. anchorNode = 0; return e = HM_OK; } } // Given an ilink in `linkNode', `GetAnchorFromIlink' retrieves the // anchors the link points to and allows the user to select one, which // is returned in `anchorNode'. `GetAnchorFromIlink' assumes that // `linkNode' is an ilink, i.e. no sanity checking is performed. HMError Browse:: GetAnchorFromIlink( HMNodePtr & ilinkNode, HMNodePtr & anchorNode) { // Create an `HMIlink' object out of `ilinkNode'. HMIlink ilink( hyMinder, ilinkNode); // Create a menu of anchors and ask the user to select one. // Start the anchor menu. HMstdout.Printf( "Choose an anchor:\n"); HMstdout.Printf( "[ 0] Cancel\n"); // Loop though the anchors, creating a menu. for ( int i = 0; i < ilink.GetLinkends().Count(); i++) { // Print menu number and anchrole of anchor. HMstdout.Printf( "[%2d] anchrole=\"%s\"\n", i+1, ilink.GetLinkends()[ i]->GetAnchorRole().Str()); } // `GetChoice()' prints out its first argument, then asks the user // for a number between 0 and its second argument. switch ( i = GetChoice( "Anchor? ", ilink.GetLinkends().Count())) { case -1: // Got EOF; Exit. return e = HM_MACHINE_ENDS; case 0: // If the user entered 0, return the link as the anchor, i.e. // stay at the link. Otherwise return the selected anchor. anchorNode = ilinkNode; break; default: return e = GetAnchorFromLinkend( *ilink.GetLinkends()[ i - 1], anchorNode); } // Everything went ok. return e = HM_OK; } // Given an ilink in `linkNode', `GetAnchorFromIlink' retrieves the // anchors the link points to and allows the user to select one, which // is returned in `anchorNode'. `GetAnchorFromIlink' assumes that // `linkNode' is an ilink, i.e. no sanity checking is performed. HMError Browse:: GetAnchorFromClink( HMNodePtr & clinkNode, HMNodePtr & anchorNode) { // Create an `HMIlink' object out of `ilinkNode'. HMClink clink( hyMinder, clinkNode); // Create a menu of anchors and ask the user to select one. HMstdout.Printf( "Choose an anchor:\n"); HMstdout.Printf( "[ 0] Cancel\n"); HMstdout.Printf( "[ 1] anchrole=\"%s\"\n", clink.GetRefMark().GetAnchorRole().Str()); HMstdout.Printf( "[ 2] anchrole=\"%s\"\n", clink.GetRefSub().GetAnchorRole().Str()); int i; // `GetChoice()' prints out its first argument, then asks the user // for a number between 0 and its second argument. switch ( i = GetChoice( "Anchor? ", 2)) { case -1: // Got EOF; Exit. return e = HM_MACHINE_ENDS; case 0: // If the user entered 0, return the link as the anchor, i.e. // stay at the link. Otherwise return the selected anchor. anchorNode = clinkNode; break; case 1: return e = GetAnchorFromLinkend( clink.GetRefMark(), anchorNode); case 2: return e = GetAnchorFromLinkend( clink.GetRefSub(), anchorNode); } // Everything went ok. return e = HM_OK; } // Given a linkend, `GetNodeFromLinkend' retrieves the // anchors the linkend points to and allows the user to select one; it // is returned in `anchorNode'. HMError Browse:: GetAnchorFromLinkend( HMLinkend & linkend, HMNodePtr & anchorNode) { HMNodePtrItemPtr p = linkend.GetAnchorNodes().First(); // If the anchor is an aggregate, and there is more than one node // in the list, create a menu and allow the user to select one. // Otherwise take the first node on the list. if ( linkend.IsAggregate() && linkend.GetAnchorNodes().Count() > 1 ) { // Create a menu of aggregate members; This assumes that aggtrav="agg". HMstdout.Printf( "Choose an aggregate member:\n"); HMstdout.Printf( "[ 0] Cancel\n"); for (int i = 1; linkend.GetAnchorNodes().GetNodePtr( p); i++) { HMstdout.Printf( "[%2d] ", i); PrintNode( linkend.GetAnchorNodes().GetNodePtr( p)); p = linkend.GetAnchorNodes().Next( p); } // `GetChoice()' prints out its first argument, then asks the user // for a number between 0 and its second argument. switch ( i = GetChoice( "Node? ", linkend.GetAnchorNodes().Count())) { case -1: // Got EOF; Exit. return e = HM_MACHINE_ENDS; case 0: // If the user entered 0, set anchorNode to 0, in effect // cancelling traversal. anchorNode = 0; break; default: // Get the appropriate node. p = linkend.GetAnchorNodes().Select( i - 1); anchorNode = linkend.GetAnchorNodes().GetNodePtr( p); break; } } else { switch ( linkend.GetAnchorNodes().Count()) { case 1: // Get the appropriate node. anchorNode = linkend.GetAnchorNodes().GetNodePtr( p); break; case 0: // Empty list. anchorNode = 0; HMstdout.Printf( "No nodes at this anchor!\n"); break; default: // Somehow got multiple nodes at a non-aggregate anchor; // Print out the offending nodes and return. anchorNode = 0; HMstdout.Printf( "More than one node at a non-aggregate anchor!\n"); for (int i = 1; linkend.GetAnchorNodes().GetNodePtr( p); i++) { HMstdout.Printf( "Node %2d: ", i); PrintNode( linkend.GetAnchorNodes().GetNodePtr( p)); p = linkend.GetAnchorNodes().Next( p); } break; } } return e = HM_OK; } // `GetChoice()' prints out its first argument, then asks the user // for a number between 0 and its second argument. int Browse:: GetChoice( char * prompt, int max) { // Get a number from the user from 0 to the number of anchors available. int choice = -1; while ( choice < 0 || choice > max) { HMstdout.Printf( prompt); switch ( scanf( "%d", &choice) ) { case EOF: // Exit. return -1; case 0: // `scanf' failed; clear any characters entered up to and // including a newline so we can try again. while ( getchar() != '\n'); choice = -1; break; default: break; } } // Catch any extra characters entered up to and including a newline. while ( getchar() != '\n'); return choice; } // Prints out the relevent data for a node. (e.g. its GI, unique id, // data content, ...) HMError Browse:: PrintNode( HMNodePtr & node) { // If this node is a link, display the fact. HMArchitecturalForm af = hyMinder->GetArchitecturalForm( node); if ( af == hme_hytime_ilink || af == hme_hytime_clink) { HMstdout.Printf( "(LINK) "); } // If this node is an anchor, display the fact. if ( hyMinder->GetLinkHandler()->IsAnchor( node)) { HMstdout.Printf( "(ANCHOR) "); } // Display the in different ways depending on the type of node it // is. switch ( node->GetType()) { case hme_node_type_element: // This node is an element. { // Show that this is an element. HMstdout.Printf( "Element:"); // Get the element's GI and print it out. HMName name; if ( e = node->GetGi( name)) { HMstderr.Printf( "Error occured while getting GI from a node.\n"); return e; } HMstdout.Printf( " GI: \"%s\":%d", name.Str(), node->GetOccurrenceNumber()); // Get the element's unique identifier, if it has one, and // print it out. HMAttributeValue attributeValue; if ( e = node->GetAttributeValue( hme_id, attributeValue)) { if ( e != HM_ATTRIBUTE_NOT_FOUND && e != HM_NO_ATTRIBUTES_DEFINED) { HMstderr.Printf( "Error occured while getting ID from a node.\n"); return e; } } else HMstdout.Printf( " ID: \"%s\"", attributeValue.Str()); } break; case hme_node_type_pelement: // This node is a psuedo-element. (e.g. PCDATA) { // Show that this is a psuedo-element. HMstdout.Printf( "Pseudo-element:"); // Get the psuedo-element's data and print it out. HMReplaceableData data; if ( e = node->GetData( data)) { HMstderr.Printf( "Error occured while getting data from a node.\n"); return e; } HMstdout.Printf( " \"%s\"", data.Str()); } break; default: // Anything else is either illegal or unimplemented. HMstdout.Printf( "Node type %d not implemented.", node->GetType()); break; } // Finish the line. HMstdout.Printf( "\n"); return e = HM_OK; } int main( int argc, char ** argv) { // Check that we have exactly one argument. if ( argc != 2) { HMstderr.Printf( "\ Usage: %s <doc>\n\ Where <doc> is a MarkMinder/HyMinder document database.\n", argv[0]); return 1; } // Run the application, passing the first argument to the program // as the document filename. Browse browse( ( HMUChar *) argv[1]); // Print any error messages accumulated while running the // application. browse.PrintErrors(); // If a serious error occured, report it and exit with a non-zero // exit status. Otherwise, exit with a zero exit status. if ( browse.Status()) { HMstderr.Printf( "%s: Error %d\n", argv[0], browse.Status()); return 1; } else return 0; } -- end Browse.cc -- ########################################################################### ########################################################################### This is my article, not my employer's, with my opinions and my disclaimer! -- Duncan Gibson, ESTEC/YCV, Postbus 299, 2200AG Noordwijk, The Netherlands Tel: +31 1719 84013 Fax: +31 1719 12142 Email: duncan@yc.estec.esa.nl ================================================================================ Archive-Date: Wed, 05 Apr 1995 06:19:05 CDT Sender: owner-litprog@SHSU.edu From: mars@asiaonline.net (Michael Yau) Reply-To: LitProg@SHSU.edu, mars@ASIAONLINE.NET Subject: HELP: problem in C Date: 5 Apr 1995 11:13:14 GMT Message-ID: <3ltu0a$6dh@news.asiaonline.net> To: LitProg@SHSU.EDU Hello, I am using Borland C++ 3.1 to compile the following program. If I compile with : bcc -ms prg (the result is ok!) However, if I compile with : bcc -ml prg (the result is unexpected!) Would you mind help me to solve the problem please ? #include <stdio.h> #include <io.h> #include <fcntl.h> #include <conio.h> struct menu_stru { unsigned int x, y; unsigned int key; unsigned int keypos1; unsigned int keypos2; }; void AddItem(struct menu_stru Item) { // nothing in here! } void main() { menu_stru item[10]; unsigned char buf[4000]; int handle, i; handle = open("a.dat", O_BINARY|O_RDONLY); read(handle, (unsigned char *)buf, 4000); close(handle); for (i=0; i<4000; i++) printf("%c", buf[i]); AddItem(item[0]); // if delete this line, everything will OK } File "a.dat" is a binary file and full of char. 'A' and the file size is 4000 bytes (no problem in this file) Please Reply to mars@asiaonline.net Best Regards, mars@asiaonline.net ================================================================================ Archive-Date: Wed, 05 Apr 1995 07:58:03 CDT Sender: owner-litprog@SHSU.edu Message-ID: <9504051257.AA11302@ceop1.rederio.br> To: LitProg@SHSU.edu From: "Chun Yin Hsu" <CHSU@NOVELL.NCE.UFRJ.BR> Reply-To: LitProg@SHSU.edu, CHSU@NOVELL.NCE.UFRJ.BR Date: Wed, 5 Apr 1995 09:56:30 GMT-3 Subject: Re: HELP: problem in C > From: mars@asiaonline.net (Michael Yau) > Reply-to: LitProg@SHSU.edu, mars@ASIAONLINE.NET > Subject: HELP: problem in C > Date: 5 Apr 1995 11:13:14 GMT > To: LitProg@SHSU.EDU > Hello, > > I am using Borland C++ 3.1 to compile the following program. > > If I compile with : bcc -ms prg (the result is ok!) > However, > if I compile with : bcc -ml prg (the result is unexpected!) > > Would you mind help me to solve the problem please ? > > #include <stdio.h> > #include <io.h> > #include <fcntl.h> > #include <conio.h> > > struct menu_stru { > unsigned int x, y; > unsigned int key; > unsigned int keypos1; > unsigned int keypos2; > }; > > void AddItem(struct menu_stru Item) > { // nothing in here! > } > > void main() > { > menu_stru item[10]; > unsigned char buf[4000]; > int handle, i; > > handle = open("a.dat", O_BINARY|O_RDONLY); > read(handle, (unsigned char *)buf, 4000); > close(handle); > > for (i=0; i<4000; i++) printf("%c", buf[i]); > > AddItem(item[0]); // if delete this line, everything will OK > } > > File "a.dat" is a binary file and full of char. 'A' and > the file size is 4000 bytes (no problem in this file) > > Please Reply to mars@asiaonline.net > > Best Regards, > mars@asiaonline.net > > ================================================================================ Archive-Date: Wed, 05 Apr 1995 08:07:38 CDT Sender: owner-litprog@SHSU.edu From: cjmb@signal.dra.hmg.gb (Christopher Booth) Subject: Re: An extended web language 1 of 3 Date: 5 Apr 1995 09:17:50 GMT Message-ID: <3ltn7u$gea@signal.dra.hmg.gb> Reply-To: LitProg@SHSU.edu, cjmb@signal.dra.hmg.gb To: LitProg@SHSU.EDU In article <3l60os$l92@infosrv.edvz.univie.ac.at>, dillo@stieltjes.smc.univie.ac.at (Dieter Baron) writes: [ snip ] > Somehow this whole problem (at least if the documents are of the same > structure) reminds me of writing code that is meant to compile on > different platforms. The approach of your language is analogous to > #ifdefs that say which parts to include on what platform (in what > view). With a larger number of platforms and larger documents, this > approach becomes unwieldy -- at least in my expierience. But maybe a > folding editor would help, displaying only the parts relevant to the > current view. Anyone to write an Emacs mode? [ snip ] I have the source code of a folding mode for emacs written originally by Jamie Lokier (u90jl@ecs.ox.ac.uk is a probably out-of-date address.) Mail me and I'll send it to you, or I'll post if I get a lot of replies, Chris. -- ------------------------------------------------------------- Christopher Booth DRA Malvern, St Andrews Road, Malvern. WR14 3PS. UK Internet: cjmb@signal.dra.hmg.gb Tel: +44 (0)1684 896400 Fax: +44 (0)1684 894389 My opinions are not necessarily those of DRA Malvern ------------------------------------------------------------- ================================================================================ Archive-Date: Wed, 05 Apr 1995 20:32:17 CDT Sender: owner-litprog@SHSU.edu From: smurf@SmurfIX1.igd.fhg.de (Christian Kumpf) Reply-To: LitProg@SHSU.edu, smurf@SMURFIX1.IGD.FHG.DE Subject: Re: Debugging with literate programming Date: 05 Apr 1995 01:45:59 GMT Message-ID: <SMURF.95Apr5034559@SmurfIX1.igd.fhg.de> To: LitProg@SHSU.EDU In article <3lecdm$7b5@news.rwth-aachen.de> dak@tabaqui.informatik.rwth-aachen.de (David Kastrup) writes: >I would appreciate your comments on debugging with LP tools Using noweb, gcc and gdb, I can debug directly in the source. However, I head Same with CWEB, gcc and gdb. Especially inside Emacs it's very comfortable. The only problem is, that gcc reorders the code with optimization turned on, so expect a jumping cursor (but this happens to plain c as well). Christian ================================================================================ Archive-Date: Sat, 08 Apr 1995 00:26:55 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Web/Weave/Tangle for FrameBuilder(Maker) Date: 8 Apr 1995 04:58:23 GMT Message-ID: <3m555f$n59@lowell.bellcore.com> CC: tomm@bnr.ca To: LitProg@SHSU.EDU In article <3lpqeh$37l@bcarh8ab.bnr.ca>, Tom Mackenzie <tomm@bnr.ca> wrote: >Is there [web] for SGML or HTML? noweb supports HTML. It's not clear what `supporting SGML' means; you need to generate markup for a particular DTD... Norman ================================================================================ Archive-Date: Sat, 08 Apr 1995 03:32:57 CDT Sender: owner-litprog@SHSU.edu From: evexanalyt@aol.com (EvexAnalyt) Subject: PC Device Driver Programmer need Date: 6 Apr 1995 09:59:20 -0400 Message-ID: <3m0s3o$lfh@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, evexanalyt@aol.com (EvexAnalyt) To: LitProg@SHSU.EDU Looking for a programmer to write a dll for DAQ (609)921-1391 ================================================================================ Archive-Date: Sat, 08 Apr 1995 04:33:57 CDT Sender: owner-litprog@SHSU.edu From: dscifi@aol.com (DSciFi) Subject: Need cheap Smalltalk Date: 7 Apr 1995 12:10:02 -0400 Message-ID: <3m3o4q$cda@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, dscifi@aol.com (DSciFi) To: LitProg@SHSU.EDU I would like to find a cheap version of Smalltalk for PC environment. Either MS-DOS or OS/2 to use to learn about objects and Smalltalk. Thanks. ================================================================================ Archive-Date: Sat, 08 Apr 1995 19:26:32 CDT Sender: owner-litprog@SHSU.edu From: artm115834@aol.com (ArtM115834) Subject: Help me help my son Date: 8 Apr 1995 18:21:38 -0400 Message-ID: <3m729i$6di@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, artm115834@aol.com (ArtM115834) To: LitProg@SHSU.EDU My son (14 years old) is very interested in computers, and he'd like to learn hoe to program. Can anyone suggest a text--book or video, perhaps? Please respond via email. I don't stop by here too often. Thanks. --Art Michaels (ARTM115834@aol.com) ================================================================================ Archive-Date: Mon, 10 Apr 1995 15:26:40 CDT Sender: owner-litprog@SHSU.edu From: izadneg@postoffice.utas.edu.au Reply-To: LitProg@SHSU.edu, izadneg@POSTOFFICE.UTAS.EDU.AU Subject: seek help in turbo vision Date: 10 Apr 1995 06:09:27 GMT Message-ID: <3mai2o$75v@franklin.cc.utas.edu.au> To: LitProg@SHSU.EDU ================================================================================ Archive-Date: Mon, 10 Apr 1995 15:26:42 CDT Sender: owner-litprog@SHSU.edu From: izadneg@postoffice.utas.edu.au Reply-To: LitProg@SHSU.edu, izadneg@POSTOFFICE.UTAS.EDU.AU Subject: seek help in turbo vision Date: 10 Apr 1995 06:16:09 GMT Message-ID: <3maif9$79e@franklin.cc.utas.edu.au> To: LitProg@SHSU.EDU ================================================================================ Archive-Date: Mon, 10 Apr 1995 15:26:46 CDT Sender: owner-litprog@SHSU.edu From: cmpgrad10@postoffice.sandybay.utas.edu.au Reply-To: LitProg@SHSU.edu, cmpgrad10@POSTOFFICE.SANDYBAY.UTAS.EDU.AU Subject: SEEK HELP- CLARIFICATION Date: 10 Apr 1995 07:09:37 GMT Message-ID: <3maljh$8ul@franklin.cc.utas.edu.au> To: LitProg@SHSU.EDU ================================================================================ Archive-Date: Mon, 10 Apr 1995 23:39:41 CDT Sender: owner-litprog@SHSU.edu From: Weiqi Gao <weiqigao@crl.com> Reply-To: LitProg@SHSU.edu, weiqigao@CRL.COM Subject: Re: seek help in turbo vision Date: 11 Apr 1995 04:32:20 GMT Message-ID: <3md0ok$pl3@nntp.crl.com> To: LitProg@SHSU.EDU izadneg@postoffice.utas.edu.au wrote: > > Whatever topic you want help with, you can get it from Kaare Christian's book Borland C++ Techniques & Utilities. By the way, you can get better help in the comp.os.msdos.programmer.turbo-vision group. Weiqi Gao weiqigao@crl.com ================================================================================ Archive-Date: Tue, 11 Apr 1995 11:29:41 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 10 Apr 1995 21:54:16 -0400 (EDT) From: Gary Chiasson <ai641@freenet.toronto.on.ca> Reply-To: LitProg@SHSU.edu, ai641@FREENET.TORONTO.ON.CA Subject: Tic-Tac-Toe game needed To: LitProg@SHSU.EDU Message-ID: <Pine.3.89.9504102154.A27214-0100000@bloor> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Could you please send me the game Tic-Tac-Toe for use in Turbo C++. Thanks! G.C. ================================================================================ Archive-Date: Tue, 11 Apr 1995 16:53:28 CDT Sender: owner-litprog@SHSU.edu From: adelucia@remus.rutgers.edu (Apple-O) Reply-To: LitProg@SHSU.edu, adelucia@REMUS.RUTGERS.EDU Subject: seeking help with linear hashing algorithm in C Date: 11 Apr 1995 16:36:41 -0400 Message-ID: <3mep8p$6nk@remus.rutgers.edu> To: LitProg@SHSU.EDU I'm a student writing a program that should read records as input (with fields like name, address, etc) and save them do disk using linear hashing. I have never programmed a hashing algorithm and there is very little documentation on linear (vs extended or any other kind) hashing. If someone could lend me a clue things would probably move a little faster... ================================================================================ Archive-Date: Wed, 12 Apr 1995 02:41:41 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 12 Apr 95 09:36:21 +0200 From: ddw@miscrit.be (Dominique de Waleffe) Reply-To: LitProg@SHSU.edu, ddw@MISCRIT.BE Message-ID: <9504120736.AA19373@miscrit.be> To: LitProg@SHSU.edu, adelucia@REMUS.RUTGERS.EDU Subject: seeking help with linear hashing algorithm in C References: <3mep8p$6nk@remus.rutgers.edu> >>> "Apple-O" == Apple-O <adelucia@remus.rutgers.edu> writes: Apple-O> I'm a student writing a program that should read records as Apple-O> input (with fields like name, address, etc) and save them do Apple-O> disk using linear hashing. I have never programmed a hashing Apple-O> algorithm and there is very little documentation on linear Apple-O> (vs extended or any other kind) hashing. If someone could Apple-O> lend me a clue things would probably move a little faster... Go to your library and get books on algorithms and data structures: Knuth (probably Volume 2), Sedgewick (check name spelling), Gotlieb&Gotlieb, You should find what you need. D. -- Dominique de Waleffe Mission Critical, Wijnegemhofstraat 199, B-3071 Erps-Kwerps (Belgium) Phone: +32 2 759 95 60 Fax: +32 2 759 27 60 email: ddw@acm.org, ddw@miscrit.be PGP key fingerprint: F9 CC 23 74 44 62 7C F3 8C 12 DF 71 BB 60 54 98 ================================================================================ Archive-Date: Wed, 12 Apr 1995 09:48:08 CDT Sender: owner-litprog@SHSU.edu From: hbflyer@aol.com (HB Flyer) Subject: Job Opportunity Date: 12 Apr 1995 10:23:14 -0400 Message-ID: <3mgnoi$fae@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, hbflyer@aol.com (HB Flyer) To: LitProg@SHSU.EDU Client: Major Fortune 150 Company Project: Project Leader, Systems Engineering Location: Southeastern, PA Responsibilities: This individual will be responsible for the Project Leadership and Management for the development of complex labeling systems which will ultimately be sold to a variety of customers, in the retail, commercial and industrial marketplace. As the Project Leader / Manager this individual will have the ultimate responsibility for delivery of product to the customer. The successful individual will be responsible for working with the customer from the initial specification of the system through the delivery and acceptance of the final product. They will straddle the line between the Customer , Sales, and Engineering. Develop proposals and costing to submit to client; manage resources assigned to develop product; test / verify product to assure adherence to customer specifications; install final product at customer location. Qualifications: BSEE with a minimum of 10 years post-graduate experience, preferably from an industrial background. Well developed Project Leadership skills. Experience in one or more of the following technologies: Bar Code scanners Printers Process controllers Hands-on C language programming experience a must, Clipper is a plus. PC / microprocessor experience Excellent presentation skills PERT / GANT development experience Mechanical aptitude The individual must have excellent communication skills, be a "Team Player", and have a bit of an entrepreneur flair. They have to be able to wear many hats, from sales to engineering, and be capable of "holding the line" with both the customer and within the Client. Growth Potential: Overall Company: Client is at the forefront of technology and is often leading the way in the application of this technology to the distribution industry. With the application of their proven technologies to the Shipping industry, the company will continue to gain market share. Position Specific: This position will give the right individual the chance to diversify his or her skills across other areas, i.e. sales, marketing, as well as stay current with leading edge technologies. For more information contact: HB Associates, 500 Heather Circle, Villanova, PA, 19085 or 610-964-8137, Fax is 610-964-9138 Mr. Pete Webster or Mr. Luis Salva. Also Hbflyer@aol.com or Cserve 71410,2425 ================================================================================ Archive-Date: Wed, 12 Apr 1995 12:28:33 CDT Sender: owner-litprog@SHSU.edu From: wware@world.std.com (Will Ware) Reply-To: LitProg@SHSU.edu, wware@WORLD.STD.COM Subject: Yet another LP toolkit Message-ID: <D6xLy0.3LM@world.std.com> Date: Wed, 12 Apr 1995 17:01:12 GMT To: LitProg@SHSU.EDU I have been cobbling together some LP tools for the programming environment at work (PCs running Windows, Word, Borland Turbo C). The stuff I have come up with is available at ftp.std.com in the /pub/wware directory. Some of it is "marketing hype" that I used to sell the LP paradigm to my boss and coworkers. (It worked; they like it.) It's available for anybody who wants to tinker with it, and I would especially appreciate any feedback from people who've used LP for years and can tell me where I'll run into problems I haven't anticipated. I plan to use this stuff for a fairly large software effort at work, so this kind of feedback would be very helpful. TIA and all that. -- ===================================================================== "Government is not reason. It is not eloquence. It is a force. Like fire, a dangerous servant and a fearful master." - G. Washington Will Ware <wware@world.std.com> PGP fp 45A8722CD14910CC F0CF48FB93BF7289 ================================================================================ Archive-Date: Sat, 15 Apr 1995 19:45:59 CDT Sender: owner-litprog@SHSU.edu From: daniels222@aol.com (DanielS222) Subject: My computer made me stressed & depressed--positive ions Date: 15 Apr 1995 20:13:27 -0400 Message-ID: <3mpnf7$joa@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, daniels222@aol.com (DanielS222) To: LitProg@SHSU.EDU Hello Netters, On 2/14/95 CBS Evening News with Connie Chung, Dr. Bob Arnot did a story about negative ions and their effect on mood. They talked about a study done at Columbia University where exposure to a high density negative ion generator was as effective in treating winter depression as medication. I became very interested because I have suffered from depression and anxiety for years, and I did some research on the benefits of negative ions. This research turned out to be especially interesting to me because I found a newspaper article discussing the fact that computer monitors emit positive ions - the opposite of negative ions. The article says computer monitors give off large amounts of positive ions and can actually cause depression, stress, fatigue, etc. in people who sit in front of computers a lot - like all of us Netters - and that we need negative ion replenishment. After reading the article, I realized that I always felt especially irritable, stressed, and depressed after long days in front of my computer. In doing the research, I found that negative ions have shown to be therapeutic for stress, irritability, fatigue, depression, etc. So I purchased a small, high density generator and it has given me substantial relief from my symptoms. If any of you would like me to e-mail you that newspaper article, the transcript of the CBS news story, as well as the other research that I have compiled, just e-mail me at DanielS222@aol.com. -dan ================================================================================ Archive-Date: Sun, 16 Apr 1995 00:54:29 CDT Sender: owner-litprog@SHSU.edu From: shields@tembel.org (Michael Shields) Reply-To: LitProg@SHSU.edu, shields@TEMBEL.ORG Subject: Re: My computer made me stressed & depressed--positive ions Date: 16 Apr 1995 05:25:58 -0000 Message-ID: <3mq9p6$1hh@yage.tembel.org> To: LitProg@SHSU.EDU In article <3mpnf7$joa@newsbf02.news.aol.com>, DanielS222 <daniels222@aol.com> wrote: > This research turned out to be especially interesting to me because I > found a newspaper article discussing the fact that computer monitors emit > positive ions - the opposite of negative ions. The article says computer > monitors give off large amounts of positive ions and can actually cause > depression, stress, fatigue, etc. in people who sit in front of computers > a lot - like all of us Netters - and that we need negative ion > replenishment. > > After reading the article, I realized that I always felt especially > irritable, stressed, and depressed after long days in front of my > computer. Or perhaps you were just irritable because you had spent a long time indoors sitting down staring at a screen? Try taking a walk once an hour. Followups to comp.human-factors, where it makes sense. -- Shields. ================================================================================ Archive-Date: Sun, 16 Apr 1995 17:42:51 CDT Sender: owner-litprog@SHSU.edu From: quixote@netcom.com (Don Hosek - Quixote Digital Typography) Reply-To: LitProg@SHSU.edu, quixote@NETCOM.COM Subject: What c.p.l is (was Re: My computer made me stressed & depressed--positive ions) Message-ID: <quixoteD75FpG.12H@netcom.com> Date: Sun, 16 Apr 1995 22:27:16 GMT To: LitProg@SHSU.EDU Perhaps there should be a weekly posting (automated) that explains what comp.programming.literate is about. I'd also suggest a daemon that maintains a database of posters to the group and upon their first posting to the group, mails them this message. That'd at least keep people from posting off topic more than once. I imagine someone with a modicum of shell programming ability could pull this off without too much difficulty. Now to get back to writing a new tex.ch from the ground up... -dh -- Don Hosek "I'm thinking this somehow elevates my rank in the herd and Quixote Digital Typography improves my mating possibilities." -Dilbert Publishers of _Serif: The Magazine of Type and Typography_ 909-621-1291 Current reading: _Hosea_ (Andersen, FAX: 909-625-1342 Freedman), _Antologia de dhosek@quixote.com Cuentos Mexicanos II_ (Millau, ed.) ================================================================================ Archive-Date: Mon, 17 Apr 1995 04:24:36 CDT Sender: owner-litprog@SHSU.edu From: dak@messua.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@MESSUA.INFORMATIK.RWTH-AACHEN.DE Subject: Re: What c.p.l is (was Re: My computer made me stressed & depressed--positive ions) Date: 17 Apr 1995 09:09:31 GMT Message-ID: <3mtb8b$7cu@news.rwth-aachen.de> To: LitProg@SHSU.EDU quixote@netcom.com (Don Hosek - Quixote Digital Typography) writes: >Now to get back to writing a new tex.ch from the ground up... Which has not much to do with comp.programming.literate as well... -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 ================================================================================ Archive-Date: Mon, 17 Apr 1995 13:06:15 CDT Sender: owner-litprog@SHSU.edu From: tlightman@aol.com (TLightman) Subject: visual programming Date: 17 Apr 1995 13:41:27 -0400 Message-ID: <3mu987$gtf@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, tlightman@aol.com (TLightman) To: LitProg@SHSU.EDU I am currently sorking on a paper comparing and contrasting visual programming and traditional coding. Any suggestions, personal experiences, or advice where to further research the topic would be greatly appreciated! Thanks. Please send messages via e-mail. ================================================================================ Archive-Date: Tue, 18 Apr 1995 05:16:37 CDT Sender: owner-litprog@SHSU.edu From: Michal Gomulinski <s146028@ia.pw.edu.pl> Reply-To: LitProg@SHSU.edu, s146028@IA.PW.EDU.PL Subject: WEB++ Date: 18 Apr 1995 09:29:32 GMT Message-ID: <3n00ps$6pd@gemini.coi.pw.edu.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Hi literate programmers! Could anyone tell me how to write big C++ literate programs, using CWEB. I mean how to deal with programs in multiple files and a lot of ".h" files as it usually is done in C++ programming. The natural way in writing CWEB files is to put everything into one file, but I don't think it is the best solution. Thanks for answer! Michal Gomulinski (M.Gomulinski@elka.pw.edu.pl) ================================================================================ Archive-Date: Tue, 18 Apr 1995 11:19:00 CDT Sender: owner-litprog@SHSU.edu From: scherer@genesis.informatik.rwth-aachen.de (Andreas Scherer) Reply-To: LitProg@SHSU.edu, scherer@GENESIS.INFORMATIK.RWTH-AACHEN.DE Subject: Re: WEB++ Date: Tue, 18 Apr 1995 18:02:16 Message-ID: <scherer.114.00120A35@genesis.informatik.rwth-aachen.de> To: LitProg@SHSU.EDU In article <3n00ps$6pd@gemini.coi.pw.edu.pl> Michal Gomulinski <s146028@ia.pw.edu.pl> writes: >Could anyone tell me how to write big C++ literate programs, using CWEB. >I mean how to deal with programs in multiple files and a lot of ".h" files as it >usually is done in C++ programming. >The natural way in writing CWEB files is to put everything into one file, but I >don't think it is the best solution. Writing a single CWEB document and utilizing the `@(filename@>' feature of CTANGLE is one way to deal with large software systems consisting of multiple source files and associated header files. I personally like this approach and both CTANGLE and CWEAVE are large enough even in their standard flavour. The other way is to write a CWEB document for each of the C(++) modules. An extensive example for this approach is the C(--) implementation of `The Stanford GraphBase' by Donald Knuth. He wrote more than 30 CWEB modules for the associated C modules. He used the `multiple output' mechanism for header files in case that external declarations had to be exported from a C module. The documentation for this collection of Literate Programs comes as a book of the name `The Stanford GraphBase', where each software module forms a major part or chapter of the printed documentation. The `local' indexes created by CWEAVE were collected in a single index for the whole book, so inter-module references are possible. In connection with a well-written `Makefile' the second approach can save a lot of time in the development phase, because neither the whole CWEB source has to be processed by CTANGLE (or CWEAVE) nor have all the C modules created automatically to be recompiled after each modification. Regards, -- Andreas Scherer Aachen University of Technology, Germany <scherer@genesis.informatik.rwth-aachen.de> ================================================================================ Archive-Date: Wed, 19 Apr 1995 05:24:45 CDT Sender: owner-litprog@SHSU.edu From: dc@cage.rug.ac.be (Denis Constales) Reply-To: LitProg@SHSU.edu, dc@CAGE.RUG.AC.BE Subject: Noweb trouble with hyphens in LISP Date: 18 Apr 1995 13:18:33 GMT Message-ID: <3n0e79$fmq@infoserv.rug.ac.be> To: LitProg@SHSU.EDU Hi. Question: how to configure/hack noweb so that it does not consider a Common LISP function name like add-to-set as a use of "add", "to" and "set"? I have a quick and dirty solution that seems to work (translate all - to _ before finduses, then all _ back to -), but maybe there's a simple, legal, elegant way of doing that too? (N.B. I use the command noweave -delay -index and prefer to supply @ %def information myself.) Thanks in advance for any help, by Usenet or e-mail. Cheers, D.C. -- Dr. Denis Constales dcons@world.std.com Denis.Constales@rug.ac.be ================================================================================ Archive-Date: Wed, 19 Apr 1995 13:07:37 CDT Sender: owner-litprog@SHSU.edu From: trbonerd@athena.mit.edu (Stuart H Schaefer) Reply-To: LitProg@SHSU.edu, trbonerd@ATHENA.MIT.EDU Subject: HELP - Software Patents Date: 19 Apr 1995 17:53:32 GMT Message-ID: <3n3ims$3qm@senator-bedfellow.MIT.EDU> To: LitProg@SHSU.EDU Hi, I am an MIT EE/Computer Science student working on a project studying software and patents. I am in need of your input to an on-line discussion of this topic. Also, if you are an able programmer, I need your skill in solving a programming exercise as part of the study. If you are able to use the Web, check out the URL: http://www.mit.edu:8001/people/trbonerd/patents/study.html If not and you are interested in participation, or have input to the discussion, email me at trbonerd@athena.mit.edu and I can mail you a description of the project and current topics of debate. Any questions, comments, or suggestions? Email me at trbonerd@athena.mit.edu Thank You Stuart Schaefer trbonerd@athena.mit.edu P.S. If I violated the rules of this newsgroup, please let me know..... Distribution: world Followup-To: From: trbonerd@athena.mit.edu (Stuart H Schaefer) Organization: Massachusetts Institute of Technology Subject: Keywords: ================================================================================ Archive-Date: Wed, 19 Apr 1995 16:57:04 CDT Sender: owner-litprog@SHSU.edu From: przemek@rrdjazz.nist.gov (Przemek Klosowski) Reply-To: LitProg@SHSU.edu, przemek@RRDJAZZ.NIST.GOV Subject: Re: visual programming (answer with c.p.l. overtones) Date: 19 Apr 1995 17:31:58 GMT Message-ID: <PRZEMEK.95Apr19133158@rrdjazz.nist.gov> To: LitProg@SHSU.EDU In article <3mu987$gtf@newsbf02.news.aol.com> tlightman@aol.com (TLightman) writes: I am currently sorking on a paper comparing and contrasting visual programming and traditional coding. Any suggestions, personal experiences, or advice where to further research the topic would be greatly appreciated! Thanks. Please send messages via e-mail. (Please don't get upset at lack of group charter: there is a c.p.l connection---see below). That depends on what you mean by visual programming. If you mean visual construction of visual elements of your program (a la Visual Basic), it is useful, but not revolutionary. If you mean completely graphical 'dataflow' programming (operations as icons on the screen, linked by lines describing the flow of data), it is an enticing idea, which in practice dies a death of a thousand cuts. Simple operations are very easy to set up (e.g., read in file->massage data->display), I haven't yet seen a system which would gracefully scale up to realistically complicated programs. I guess the visual nature of such languages makes annoyingly explicit the complicated nature of data flow in real-world problems. Old style programming languages (helped, of course, by literate programming techniques) by necessity force the use of abstraction, hiding the complexity. My present thinking is that the relation of traditional and visual programming is similar to the relation of a book to a picture---some books can be described by a set of pictures, but most can't. I suppose that abstraction-related features of literate programming tools could alleviate that, if only someone could figure out how to apply them to to visual programming environments. -- przemek klosowski (przemek@rrdstrad.nist.gov) Reactor Division (bldg. 235), E111 National Institute of Standards and Technology Gaithersburg, MD 20899, USA (301) 975 6249 ================================================================================ Archive-Date: Wed, 19 Apr 1995 19:56:31 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Noweb trouble with hyphens in LISP Date: 19 Apr 1995 21:21:01 GMT Message-ID: <3n3urt$2fn@lowell.bellcore.com> CC: Denis Constales <dc@cage.rug.ac.be> To: LitProg@SHSU.EDU In article <3n0e79$fmq@infoserv.rug.ac.be>, Denis Constales <dc@cage.rug.ac.be> wrote: >Hi. Question: how to configure/hack noweb so that it does not consider >a Common LISP function name like add-to-set as a use of "add", "to" >and "set"? On or around line 19 of finduses.nw, you will find definitions of SYMBOLS and ALPHANUM. Move the - from SYMBOLS to ALPHANUM and this problem should be solved. If I ever get funding to move ahead with noweb 3, this sort of thing will be easier to configure on a per-program basis. Norman ================================================================================ Archive-Date: Thu, 20 Apr 1995 00:10:43 CDT Sender: owner-litprog@SHSU.edu From: sorkan@aol.com (Sorkan) Subject: Re: Help me help my son Date: 19 Apr 1995 20:28:35 -0400 Message-ID: <3n49rj$1b3@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, sorkan@aol.com (Sorkan) To: LitProg@SHSU.EDU Depending on what language he wishes to learn programming in. I my opinion, as a computer programmer, Pascal is a good starting point because it is a structured language and straight forward. Once you get a handle on pointers, data structures (lists, trees, stacks, queues), then you can move to the next (and current language) which is C. There are many book in the market by many different authors illustrating points of the language. But one would also need the development software to try out the examples (one of ways to get handle of the language). C is a bit harder to grasp when one does not have any kind of programming background. This is because C lets you get away with almost anything. Some related problems are incorrect use of pointers. Therefore learning a easier programming language does help because then you can compare things done one way with things done a different way. There are also many software development packages out in the market too such as: Turbo Pascal V7.0, Borland C/C++ (and variations on these two kinds of compilers/libraries provided by other companies too). You could also check if local community colleges offer such courses for low rates. later!! Sorkan@aol.com ================================================================================ Archive-Date: Thu, 20 Apr 1995 02:35:45 CDT Sender: owner-litprog@SHSU.edu From: thesilence@aol.com (TheSilence) Subject: memory address of text font Date: 20 Apr 1995 02:04:15 -0400 Message-ID: <3n4tgv$87d@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, thesilence@aol.com (TheSilence) To: LitProg@SHSU.EDU I know that the text font is somewhere in memory, just like text video memory (segment B800H) and that it's 4096 bytes, holds 256 characters... i know how to access memory, i just need to know where it is. -shadow master ================================================================================ Archive-Date: Thu, 20 Apr 1995 17:22:43 CDT Sender: owner-litprog@SHSU.edu From: lbliao@alumni.caltech.edu (lbliao) Reply-To: LitProg@SHSU.edu, lbliao@ALUMNI.CALTECH.EDU Subject: HOW TO WRITE A WINDOW AND A POP-UP MENU INTERFACE WITH CURSOR Date: 20 Apr 1995 18:32:05 GMT Message-ID: <3n69b5$f78@gap.cco.caltech.edu> To: LitProg@SHSU.EDU Dear Netters, I am trying to learn how to write a pop-up menu for a simple program. I know C, and can learn visual basic, but will prefer C, and assembly. I need to make pop-up menus, that can be accessed by clicking with a mouse or with Alt-key etc. This is very common art among the practitioners. That is why every program today in the market has it, but I am totally ignorant about it. I am writing this for windows, DOS and Unix/Linux. I would highly appreciate any pointers, towards papers in journals, books, development-tool-kits that are available and that you have personal experience of. Some of the questions that these should address are: How to read the coordinates on click of mouse? How to represent a moving cursor on the screen? How to communicate the click of the mouse to the program? How to redraw the window? How to make the sound on pop-up of menu? How to keep track of all things? How to modularise and write well such a program? I would highly appreciate your pointers. If I get enough info, I will post a summary with due credit. Please reply via email. Many thanks Lily If this is not the appropriate news groups pls make a suggestion. ================================================================================ Archive-Date: Thu, 20 Apr 1995 17:39:15 CDT Sender: owner-litprog@SHSU.edu From: jwills@melpar.esys.com (Jeffrey M. Wills) Reply-To: LitProg@SHSU.edu, jwills@MELPAR.ESYS.COM Subject: Where's the FAQ? MIME-Version: 1.0 Date: Thu, 20 Apr 1995 15:48:32 GMT Message-ID: <D7CBwy.Lso@melpar.esys.com> To: LitProg@SHSU.EDU The subject line says it all. I'm actually looking for URLs and so on for sources of noweb and cweb, but access to the FAQ might well provide that. Thanks: Dr. Jeff ================================================================================ Archive-Date: Fri, 21 Apr 1995 16:32:30 CDT Sender: owner-litprog@SHSU.edu From: pmljr@aol.com (PMLJr) Subject: Microsoft DMF diskette format Date: 20 Apr 1995 21:52:37 -0400 Message-ID: <3n7355$bu9@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, pmljr@aol.com (PMLJr) To: LitProg@SHSU.EDU I am trying to find out diskette format information on Microsofts' new DMF format. All new software is issued in this format and it cannot be copied by normal means. I have not tried a sector by sector assembly routine as I have noticed 4 clusters per sector on the 1.44Mb diskette. Does anyone have any info on this subject? Are their any programs in existence which can copy these diskettes? send mail to PMLJR@aol.com ================================================================================ Archive-Date: Fri, 21 Apr 1995 16:32:48 CDT Sender: owner-litprog@SHSU.edu From: fst@nimo.claircom.com (Fariborz Skip Tavakkolian) Reply-To: LitProg@SHSU.edu, fst@NIMO.CLAIRCOM.COM Subject: CWEB Questions Date: Thu, 20 Apr 1995 07:28:52 GMT Message-ID: <FST.95Apr20002852@nimo.claircom.com> To: LitProg@SHSU.EDU I could not find the answers to the following questions in the FAQ. These questions are specifically regarding CWEB 3.4, but would also be of general interest. Here they are: (1) Can one change the C code format (style) of the CWEAVE output? (chunks started by @c as well as |...| chunks). (2) Could the C code segments be made to use different type faces of a constant width font family? (i.e. bold, slanted, ... what else can be there with constant width fonts?) Any insight is appreciated. RTFWD (Woven Document) does not count :-) -fst -- -----***----- Fariborz ``Skip'' Tavakkolian AT&T Wireless Services, Aviation Communications Division fst@claircom.com ================================================================================ Archive-Date: Fri, 21 Apr 1995 16:34:36 CDT Sender: owner-litprog@SHSU.edu From: Michael Tautenhahn <mta@informatik.tu-chemnitz.de> Reply-To: LitProg@SHSU.edu, mta@INFORMATIK.TU-CHEMNITZ.DE Subject: Any information to UNITY ? Date: 21 Apr 1995 08:12:02 GMT Message-ID: <3n7pci$l4l@pyrrhus-f.hrz.tu-chemnitz.de> To: LitProg@SHSU.EDU Who has heart about programming language UNITY. We are looking for some information about it. We would be pleased if anybody can help us with facts, books, Internet resources and other material to UNITY. Thank's ------------------------------------------ Michael Tautenhahn Faculty of Computer Science University of Technology Chemnitz, FRG mta@informatik.tu-chemnitz.de ------------------------------------------ ================================================================================ Archive-Date: Fri, 21 Apr 1995 16:35:43 CDT Sender: owner-litprog@SHSU.edu From: wware@world.std.com (Will Ware) Reply-To: LitProg@SHSU.edu, wware@WORLD.STD.COM Subject: Postscript-output weaver? Message-ID: <D7DsJM.IFI@world.std.com> Date: Fri, 21 Apr 1995 10:45:22 GMT To: LitProg@SHSU.EDU I picked up a book on Postscript, and it looks pretty straightforward. Is anybody aware of something like CWEAVE that would directly produce Postscript output (rather than going the TeX->dvips route)? Much appreciated. I saw an idea on here a few days ago to have the FAQ posted weekly by some automatic mechanism. It sounds like a good way to filter out at least some of the non-literate programming questions. It might make more people curious to try out LP. It would have to be better than the hundredth post from somebody asking how to read coordinates off their mouse or what address their VGA board lives at. -- ===================================================================== "Government is not reason. It is not eloquence. It is a force. Like fire, a dangerous servant and a fearful master." - G. Washington Will Ware <wware@world.std.com> PGP fp 45A8722CD14910CC F0CF48FB93BF7289 ================================================================================ Archive-Date: Fri, 21 Apr 1995 19:22:51 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: CWEB Questions Date: 21 Apr 1995 19:49:18 GMT Message-ID: <3n927u$231@lowell.bellcore.com> CC: Fariborz Skip Tavakkolian <fst@nimo.claircom.com> To: LitProg@SHSU.EDU In article <FST.95Apr20002852@nimo.claircom.com>, Fariborz Skip Tavakkolian <fst@nimo.claircom.com> wrote: >(1) Can one change the C code format (style) of the CWEAVE output? > (chunks started by @c as well as |...| chunks). > >(2) Could the C code segments be made to use different type faces of a > constant width font family? (i.e. bold, slanted, ... what else > can be there with constant width fonts?) Spidery Web was designed to simplify these kinds of typographic manipulations. Its author discourages its use, but some people still use it and like it. Available from CTAN. Norman ================================================================================ Archive-Date: Sat, 22 Apr 1995 17:32:30 CDT Sender: owner-litprog@SHSU.edu From: kbyte@aol.com (Kbyte) Subject: Borland C++ by Kaare Christian Date: 22 Apr 1995 17:44:49 -0400 Message-ID: <3nbtch$frq@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, kbyte@aol.com (Kbyte) To: LitProg@SHSU.EDU I am also interested in C++. Am working very slowly thru examples in book. Am using BORLAND TURBO C++/Visual. I have gotten some of his/hers ? examples to run on my 486 but just could not get "Find Files Stage 3" example to link. I was very disappointed. But I also recommend this Book. ================================================================================ Archive-Date: Sun, 23 Apr 1995 21:11:36 CDT Sender: owner-litprog@SHSU.edu From: rmcnicol@achilles.net (Rodger McNicoll) Reply-To: LitProg@SHSU.edu, rmcnicol@ACHILLES.NET Subject: Re: HOW TO WRITE A WINDOW AND A POP-UP MENU INTERFACE WITH CURSOR Date: 23 Apr 1995 20:29:33 GMT Message-ID: <3nedbd$mae@centaur.achilles.net> To: LitProg@SHSU.EDU In article <3n69b5$f78@gap.cco.caltech.edu>, lbliao@alumni.caltech.edu (lbliao) says: > >Dear Netters, > >I am trying to learn how to write a pop-up menu for a simple >program. I know C, and can learn visual basic, but will prefer C, and >assembly. > >I need to make pop-up menus, that can be accessed by clicking with a >mouse or with Alt-key etc. This is very common art among the >practitioners. That is why every program today in the market has it, >but I am totally ignorant about it. I am writing this for windows, DOS >and Unix/Linux. I would highly appreciate any pointers, towards papers >in journals, books, development-tool-kits that are available and that >you have personal experience of. > >Some of the questions that these should address are: > >How to read the coordinates on click of mouse? How to represent a >moving cursor on the screen? How to communicate the click of the >mouse to the program? How to redraw the window? How to make the >sound on pop-up of menu? How to keep track of all things? How to >modularise and write well such a program? > >I would highly appreciate your pointers. If I get enough info, I will >post a summary with due credit. Please reply via email. > >Many thanks > >Lily > > >If this is not the appropriate news groups pls make a suggestion. > > Theres a really good book on the market called "Yeach yourself Advanced C in 21 days" I found it to be very useful. Hope this helps. This only covers the keystrokes and not the mouse part of it all. Jeremy ================================================================================ Archive-Date: Sun, 23 Apr 1995 21:26:33 CDT Sender: owner-litprog@SHSU.edu From: bruceg9171@aol.com (BruceG9171) Subject: i want to start programming but don't know where to start Date: 23 Apr 1995 21:55:45 -0400 Message-ID: <3nf0f1$9b0@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, bruceg9171@aol.com (BruceG9171) To: LitProg@SHSU.EDU I want to start programming but i have know idea where to start could somebody help me in the right direction thanx P.S. please E-mail me ================================================================================ Archive-Date: Mon, 24 Apr 1995 04:30:17 CDT Sender: owner-litprog@SHSU.edu From: maavl@cwi.nl (Marc van Leeuwen) Reply-To: LitProg@SHSU.edu, maavl@CWI.NL Subject: Re: CWEB Questions Message-ID: <D7J8FL.9E0@cwi.nl> Date: Mon, 24 Apr 1995 09:16:33 GMT To: LitProg@SHSU.EDU In article <FST.95Apr20002852@nimo.claircom.com>, fst@nimo.claircom.com (Fariborz Skip Tavakkolian) writes: |> I could not find the answers to the following questions in the FAQ. |> These questions are specifically regarding CWEB 3.4, but would also be of |> general interest. Here they are: |> |> (1) Can one change the C code format (style) of the CWEAVE output? |> (chunks started by @c as well as |...| chunks). In CWEB, the style variations supported are very limited: the only choice is whether or not to use the `-f' command line options that avoids forced line breaks after each statement. In CWEBx, a variant of CWEB that allows more flexibility (available from the CTAN and LPA archives), there is a more extensive set of such switches, that allow for other style variations such as different brace styles; moreover, the grammar rules that control layout are well isolated and documented, so that more exotic style wishes may also be accomodated with some more effort. Most of these changes do not affect the code in `|...|' very much though, since 2-dimensional formatting is disabled there anyway. |> (2) Could the C code segments be made to use different type faces of a |> constant width font family? (i.e. bold, slanted, ... what else |> can be there with constant width fonts?) Yes, this is simple, provided you can find or make such fonts (the Computer Modern family is capable of producing a huge variety of fonts, and all of them at a constant width if desired). The macros for formatting (cwebmac.tex) just select fonts with {\it ...} (for multi-character identifiers), $...$ (single character identifiers), {\bf ...} (keywords) of {\tentex ...} (strings etc.); this can easily be changed by a few (re)definitions after the `\input cwebmac' line (which is automatically inserted at the top of your .tex files). However, I can see very little reason to want mono-spaced fonts in C-code segments. It is like asking if you can use such fonts in TeX's math mode: the answer is yes, but the output will still not look as if it were produced by a typewriter (which is probably what you intended), because all kinds of subtle spacing is being introduced that is not part of the fonts. In fact the CWEAVE output uses math mode spacing for rendering C expressions. Now with a sufficient amount of effort TeX may be told to suppress all its math spacing activities, but then you are really working hard to undo all the things that CWEAVE has laboriously put in there. If you really want unformatted or minimally formatted output, it is better to use a tool based on the ``verbatim or almost-verbatim'' philosophy for displaying code fragments (e.g., noweb, nuweb, funnelweb). Marc van Leeuwen ================================================================================ Archive-Date: Mon, 24 Apr 1995 06:13:35 CDT Sender: owner-litprog@SHSU.edu From: raczy@delirium.lifl.fr (Come Raczy) Reply-To: LitProg@SHSU.edu, raczy@DELIRIUM.LIFL.FR Subject: C++ Templates and FWEB Date: 24 Apr 1995 08:03:19 GMT Message-ID: <RACZY.95Apr24100323@delirium.lifl.fr> To: LitProg@SHSU.EDU Hi, I tried to use C++ templates and FWEB didn't seem to manage them correctly. Problems arise when I use or specify the generic class. FWEAVE doesn't understand what I want, and makes really awfull things: - poor indentation - errors in the index file (with operator ^) - fweave hangs up - ... It seems that it's the angle bracketed notation for the generic class wich makes trouble. Any solution? I didn't see it in the FAQ. Here is a program wich can't be weaved with fweb 1-40 for LaTeX If you kill the definition "friend Myclass<T> operator ^ ..." you can fweave it but in a bad way. ============Beginning of test.web=========== @c++ @*Try it. xxxxx @a @<Template@>@; int main(void){ MyClass<int> cc; } @ @<Template@>= template <class T> class MyClass{ public: friend Myclass<T> operator ^ (Myclass<T> &v1, Myclass<T> &v2); Myclass(void); Myclass(const int v[3]); MyClass(const Myclass<T> &v); private: <T> xxx[3]; }; @*Index. ============End of test.web=========== please reply by e-mail at: raczy@lifl.fr I'll post a compilation of the answers. Come Raczy ================================================================================ Archive-Date: Mon, 24 Apr 1995 08:28:39 CDT Sender: owner-litprog@SHSU.edu Date: Mon, 24 Apr 95 9:28:11 EDT From: Lee Wittenberg <leew@pilot.njin.net> Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@shsu.edu Subject: Anybody out there? Message-ID: <CMM-RU.1.4.798730091.leew@pilot.njin.net> I've noticed a complete absence of traffic on this discussion group in the past month or so. Is the line really dead, or have I been kicked off, for some as yet unexplained reason? -- Lee ------------------------------------------------------------------------ Lee Wittenberg | I have always considered grown-ups to be Computer Science Department | figures of fun, ... and have never been Kean College of New Jersey | deceived by their hypocracies. Union, NJ 07083 | | -- Anita Loos leew@pilot.njin.net | "The Biography of a Book" (1963) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Mon, 24 Apr 1995 09:41:49 CDT Sender: owner-litprog@SHSU.edu From: dak@tabaqui.informatik.rwth-aachen.de (David Kastrup) Reply-To: LitProg@SHSU.edu, dak@TABAQUI.INFORMATIK.RWTH-AACHEN.DE Subject: Re: C++ Templates and FWEB Date: 24 Apr 1995 14:08:26 GMT Message-ID: <3ngbcq$cn3@news.rwth-aachen.de> To: LitProg@SHSU.EDU raczy@delirium.lifl.fr (Come Raczy) writes: :Hi, :I tried to use C++ templates and FWEB didn't seem to :manage them correctly. Problems arise when I use or :specify the generic class. FWEAVE doesn't understand :what I want, and makes really awfull things: : - poor indentation : - errors in the index file (with operator ^) : - fweave hangs up : - ... :It seems that it's the angle bracketed notation for the :generic class wich makes trouble. Considering the mess C++ syntax poses, I doubt you can correctly parse scraps. Complete C++ compilers have problems in identifying a complete program cleanly, and isolated scraps are harder. Switch to a non-pretty-Printing WEB, or a less awful programming language (with regard to complicated syntax) than C++. Or pray that the tools will catch up with the mess C++ is continously getting more and more like. -- David Kastrup, Goethestr. 20, D-52064 Aachen Tel: +49-241-72419 Email: dak@pool.informatik.rwth-aachen.de Fax: +49-241-79502 ================================================================================ Archive-Date: Wed, 26 Apr 1995 09:20:08 CDT Sender: owner-litprog@SHSU.edu From: Michal Gomulinski <s146028@ia.pw.edu.pl> Reply-To: LitProg@SHSU.edu, s146028@IA.PW.EDU.PL Subject: Re: C++ Templates and FWEB Date: 26 Apr 1995 11:05:36 GMT Message-ID: <3nl9e0$t63@gemini.coi.pw.edu.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU raczy@delirium.lifl.fr (Come Raczy) wrote: >Hi, > >I tried to use C++ templates and FWEB didn't seem to >manage them correctly. Problems arise when I use or >specify the generic class. FWEAVE doesn't understand >what I want, and makes really awfull things: > - poor indentation > - errors in the index file (with operator ^) > - fweave hangs up > - ... >It seems that it's the angle bracketed notation for the >generic class wich makes trouble. The same problems are with CWEB v3.0. It sometimes formates C++ code with templates so the begining "<" is correct (\langle) but the closing one is normal, awfull ">". Cweave has also some problems with handling derived classes which is the popular thing and it should be formated correctly. Michal Gomulinski (M.Gomulinski@elka.pw.edu.pl) ================================================================================ Archive-Date: Wed, 26 Apr 1995 09:20:10 CDT Sender: owner-litprog@SHSU.edu From: Michal Gomulinski <s146028@ia.pw.edu.pl> Reply-To: LitProg@SHSU.edu, s146028@IA.PW.EDU.PL Subject: best weaver Date: 26 Apr 1995 11:13:40 GMT Message-ID: <3nl9t4$t63@gemini.coi.pw.edu.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit To: LitProg@SHSU.EDU Hi literate programmers! I'm trying to write my programs (C++) literate and I'm now using CWEB by Knuth&Levy but it isn't the best tool, or I can't use it well. Maybe someone could tell me some better WEB system. My requirements are: - C++ support, - handling of non ASCII chars (like CWEB does) --- it is because I'd like to use Polish in my documentation and Polish letters are encoded in 127-256 range. - DOS executables would be better than anly UNIX support, because I have an access to several DOS C++ compilers and editors and in UNIX I have only GNU C++ I read here about FWEB, GLASGOW etc. but do they meet my requirements ? (I ca't check, because it is a lot of code on CTAN archive and ftp is so slow ;-) ) Regards Michal Gomulinski (M.Gomulinski@elka.pw.edu.pl) ================================================================================ Archive-Date: Wed, 26 Apr 1995 10:29:45 CDT Sender: owner-litprog@SHSU.edu From: sp106@york.ac.uk ("stephen") Reply-To: LitProg@SHSU.edu, sp106@YORK.AC.UK Subject: Noweb and html. Date: 26 Apr 1995 14:21:24 GMT Message-ID: <3nlkt4$gqi@mailer.york.ac.uk> To: LitProg@SHSU.EDU I have just started using noweb, tempted by its' ability to produce html, and my first attempt was to rewrite a ~2000 line program that was written in C to produce html documentation. This seems to work fine (although I still have a few things to sort out). There is however one thing I have not yet been able to do. If I am using CWEB then I may cite chunks so; @ We do this, then that, then |<Something else...>|. @c ; And the ``code'' in the ||'s is expanded to look like a proper citation and given the chunk number so I can look it up. I haven't yet got noweb to do anything like this. Ideally I would like the ability to cite a chunk so that a html link is put in my text that refers to it. Is this possible? stephen -- ################################################### # sp106@york.ac.uk # http://www.york.ac.uk/~sp106 # # Shapes in the drink like Christ # # Cracks in the pale blue wall # ################################################### ================================================================================ Archive-Date: Wed, 26 Apr 1995 12:41:14 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 26 Apr 1995 13:27:20 -0400 From: Brian Fuller <brian@emma.com> Reply-To: LitProg@SHSU.edu, brian@EMMA.COM Message-ID: <199504261727.AA06546@bo.Emma.COM> To: LitProg@SHSU.EDU Subject: CWEB installation I have received the uuencoded binary files that would give me CWEB. I have never used CWEB before, nor have I ever installed software. If someone could please give me some help, I'd be grateful. I have a Sun 360 with Unix operating system. Thanks in advance. Brian Fuller Berlin NY brian@emma.com ================================================================================ Archive-Date: Wed, 26 Apr 1995 13:19:57 CDT Sender: owner-litprog@SHSU.edu Date: Wed, 26 Apr 95 14:19:34 EDT From: Lee Wittenberg <leew@pilot.njin.net> Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, s146028@ia.pw.edu.pl Subject: Re: best weaver Message-ID: <CMM-RU.1.4.798920374.leew@pilot.njin.net> Michal Gomulinski writes: > I'm trying to write my programs (C++) literate and I'm now > using CWEB by Knuth&Levy but it isn't the best tool, or I can't use > it well. > > Maybe someone could tell me some better WEB system. My requirements are: > > - C++ support, > - handling of non ASCII chars (like CWEB does) --- it is because > I'd like to use Polish in my documentation and Polish letters are > encoded in 127-256 range. > - DOS executables would be better than anly UNIX support, because > I have an access to several DOS C++ compilers and editors and in > UNIX I have only GNU C++ noweb is always a good choice. C++ support is implicit, as it is language-independent, and it is available for DOS (I use it for C++ under DOS, myself). As to the non-ASCII character support, a simple filter for notangle that converts the nonstandard characters should be very simple to write. -- Lee ------------------------------------------------------------------------ Lee Wittenberg | I have always considered grown-ups to be Computer Science Department | figures of fun, ... and have never been Kean College of New Jersey | deceived by their hypocracies. Union, NJ 07083 | | -- Anita Loos leew@pilot.njin.net | "The Biography of a Book" (1963) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Wed, 26 Apr 1995 14:51:39 CDT Sender: owner-litprog@SHSU.edu From: jcalcote@novell.com (John Calcote) Reply-To: LitProg@SHSU.edu, jcalcote@NOVELL.COM Subject: dos CTANGLE.EXE Date: 26 Apr 1995 17:04:15 GMT Message-ID: <3nluef$2s3@grok.provo.Novell.COM> MIME-Version: 1.0 To: LitProg@SHSU.EDU I'm having a devil of a time getting bootstrapped. Will someone please email me a copy of ctangle.exe that works with big memory? Thanks in advance! John Calcote ================================================================================ Archive-Date: Wed, 26 Apr 1995 20:47:57 CDT Sender: owner-litprog@SHSU.edu From: jeffw15@aol.com (JeffW15) Subject: $$$$$$$$$$$$ M A K E M O N E Y E A S Y $$$$$$$$$$$$$$$$ Date: 26 Apr 1995 19:45:25 -0400 Message-ID: <3nmlul$50e@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, jeffw15@aol.com (JeffW15) To: LitProg@SHSU.EDU ********************************** F A S T E A S Y M O N E Y ! ! ********************************** This thing WORKS!! I've tried it before and it's incredible! All you do is send away a very small sum of money, and in about 2 months the money will start piling in! Everyone wants $$$, so why not just take a look at the file attached to this letter, if it appeals to you, go for it, if it doesn't, then just forget about it. It's gotta be the easiest way to earn some cash, a lot of it! If you don't want to take the time to read the letter or copy it to a file, email JeffW15@aol.com and I'll send it via. email. I'll send to internet addresses too. ************ Here it is:* ************ Thank you very much for responding to my advertisement. A short while after you begin this program you will realize what a remarkable money machine this is. Nine days after my sponsor began advertising on line, he received 32 envelopes. Each sender had enclosed $5.00. Forty seven days after his first advertisement appeared on line, the total receipts had risen to $17,654. He ran 15 ads for a two-week period and during that time, sent this file to 168 people. He stopped sending the file after he had received 23 envelopes; each one contained $5.00. "I've just begun to run the program again and I'm amazed at how predictable it is. The results appear to be slightly ahead of last time". Read the whole report and I'm sure you will want to start building your list immediately...I sure did!!! Your only risk in participating in this program is the $10.00 that you send to the list members and the few dollars that it cost to advertise and transmit the file to those who respond. You'll get that back in the first few envelopes. After that... $$$$$$$$$$$$$$$$$$$ ... IT'S PURE PROFIT! ... $$$$$$$$$$$$$$$$$$$ Remember, the program works because of the honesty of the participants. SEND YOUR 6 ENVELOPES (WITH A TOTAL OF $10.00) THE DAY YOU BEGIN THE PLAN. WORK THE PROGRAM HONESTLY AND DILIGENTLY AND YOU WILL REAP GREAT REWARDS. GO FOR IT! YOU WILL NEVER REGRET IT! $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ You may have seen a MUCH LONGER, LONGER, LONGER version of this program on-line. This is the SHORT VERSION! NO letters needed and very inexpensive to E-Mail. DON'T MISS THE BOAT ON THIS ONE. IT'S TOO EASY AND THE MONEY'S GREAT. Before you say no and just hit the old delete button try thinking about it like this. You could take a chance and make alot of money, or you could take the $10 to McDonalds and grab a burger. I was one of those, don't get me wrong today you have to be,then I tried it. I did all the RIGHT things, such as ADVERTISE, ADVERTISE, ADVERTISE and before you know it I was paying taxes on alot more money than in the past. Basically, it is a list of 10 people who have already decided paying taxes is alot more enjoyable than eating burgers. They joined by mailing money to others. When you join you must mail out $10 total. You join by mailing $1 to #1,2,3,4,5 AND mailing $5 to #10. You then edit the file to remove the name in #1. Move all the other nine names up one spot leaving #10 blank. Then you add your name next to #10. YOU THEN PLACE CLASSIFIED AD'S ON-LINE. Place your AD's on any BBS that you have access to and you'll have greater success. When you get responses, you send them this entire file AS IS. Since you are then #10 on their lists, they will send you $5 per person that joins. You then move up to #9. When others join after them, you become #8, and so on. When you reach #5, you will then be receiving $1 from thousands of people who joined way after you since the list expands geometrically (see diagram in the SUMMARY at end). If only two people join after you, you get your $10 back in a week. Anything after that is pure PROFIT. Thousands of people have made BIG money with this program, as much as hundreds of thousands of dollars in two months!! DON'T MISS OUT JOIN NOW, just follow the green-brick road! WHAT IT COSTS: ------------- It costs $10 to join. WHAT YOU DO: ----------- READ THIS FILE COMPLETELY BEFORE USING IT! It is an EXCELLENT PROGRAM and if you use it, you are agreeing to ALL the terms in THE AGREEMENT at the end. Have fun making LOTS OF MONEY! I am. 1. STORE THIS FILE - described below. 2. MAIL $10 TOTAL OUT to people on the list - described below. 3. UPDATE THE LIST - add your name to it as described below. 4. PLACE ADS ON-LINE. 5. MAIL THIS FILE VIA E-MAIL - to all responses to your ad. until 20 of the responses have JOINED - described below. 6. WAIT FOR THE MONEY TO ROLL IN - spend it as you wish. WHAT TO EXPECT: -------------- 1. YOU WILL RECEIVE $5 FROM EACH PERSON WHO JOINS UNDER YOUR NAME. You get your $10 back IMMEDIATELY as #10 and here's the beauty of it...with ONLY TWO PEOPLE joining under you!! 2. YOU WILL RECEIVE $1 FROM EACH OF THOUSANDS OF PEOPLE inb two months. As each person joins, the names on the list move up and when YOUR NAME reaches position #5 you will receive $1 from thousands of people who have joined way after you. The sooner you join the better. HIGHLIGHTS: ---------- 1. Investment required: $10. 2. Limited distribution: You will stop sending the file when 20 PEOPLE HAVE JOINED IMMEDIATELY UNDER YOU. 3. Editing prohibited: You MAY NOT change ANYTHING in this file, other than deleting name #1, moving the names up one and adding your own name as #10. 4. Upgrading allowed: You MAY use this file if you currently have any previous versions of the long file BUT YOU MUST STILL PAY #10 the $5 unless you already paid #10 for any other version. 5. Step-by-step info: To help newcomers joining. 6. 3-Point Checklist: To ensure you did everything right. 7. 5-Point Agreement: a) If you send file out, you agree to all b) If you don't agree, you MAY NOT send out this file to anyone. INSTRUCTIONS ------------ Welcome to the world of Mail Order! This home business is a little different than most mail-order businesses. Your product is not solid and tangible, but rather a service. Basically, you are in the business of developing Mailing Lists. Many large corporations are happy to PAY BIG BUCKS for quality mailing lists. The money YOU WILL MAKE from the mailing lists are secondary to the income which is made from people like yourself requesting that they be included in that list. WHAT YOU WILL NEED: Get the following SIX items BEFORE starting: ------------------- 1. 6 Envelopes - preferably business size 2. 6 Stamps - 32 cents each 3. 6 Pieces of paper - large enough for one sentence 4. A Pen 5. 1 $5.00 bill (U.S. currency) 6. 5 $1.00 bills (U.S. currency) When you have stored this entire file, read it, and have everything you need above, follow the six sections below to begin. Now, Let's Go! Isn't this fun? It should be and you should be getting very excited at this point. 1) STORE THIS FILE 2) MAIL $10 TOTAL OUT: ------------------ DO THESE STEPS IN ORDER: 1. Address six envelopes to the names in the following positions: 1, 2, 3, 4, 5, 10 NOTE: The last envelope goes to name 10 (TEN) (NOT name #6) IS RIGHT! 2. Place a stamp on each envelope. 3. Write the following on each of the six pieces of paper: PLEASE ADD MY NAME TO YOUR MAILING LIST. 4. Insert each piece of paper in each envelope. 5. Insert a $1.00 bill in envelopes to: names 1, 2, 3, 4, 5. 6. Insert the $5.00 bill in the last envelope to name 10. 7. Seal the six envelopes. 8. Mail the six envelopes. THIS IS A LEGITIMATE SERVICE THAT YOU ARE REQUESTING. YOU ARE PAYING $1 FOR THIS SERVICE TO EACH OF #1 - 5, AND $5 TO #10). If you did the eight steps above, go to 3 below. If you have not done the eight steps above, go back and do them NOW BEFORE going to step three below! 3) UPDATE THE LIST AS FOLLOWS: -------------------------- If you have NOT done everything in (2) above you CANNOT continue! Go back to (2) above and AFTER you've done EVERYTHING there come back here to this section! 1. REMOVE the name that appears as #1 on the list. 2. MOVE the other nine names up one position. (#2 will become #1 and #3 will become #2, etc.) 3. PLACE YOUR NAME, ADDRESS AND ZIP CODE IN THE #10 POSITION. 4. PLACE ON-LINE ADS: ----------------- It is ABSOLUTELY CRITICAL for you to ADVERTISE ON-LINE and to E-MAIL THIS COMPLETE FILE to people responding to YOUR advertisements. IF YOU DON'T advertise, you CANNOT generate responses AND THEREFORE, YOUR name (in the #10 position when you SEND the file) will NEVER move up and you will NEVER make money! You M U S T advertise on-line. If you advertise EXACTLY where you found this advertisement and in other CATEGORIES on the bulletin board, you will generate LOTS of responses (you REPLIED to my ad didn't you?). THE FOLLOWING IS STRONGLY RECOMMENDED: 1. SPACE AND CAPITALIZE YOUR SUBJECT. EXAMPLE: N E T W O R K M A R K E T I N G! This separates your ad from the clutter of everyone else's (since most people rarely use spaces between the letters). The reader will spot your ad because it S T A N D S O U T and will respond. 2. USE EYE-CATCHING PHRASES: F R E E M O N E Y Who can resist responding to this? Did YOU? Make the subject irresistible. Spur the reader's curiosity. 3. KEEP THE AD VERY BRIEF: EX: Press REPLY for THE BEST easy cash information. This saves you money in advertising. The shorter the better. Again, you responded and I saved money advertising. And so will YOU too. Don't worry about using the exact same ad as the one you read when you responded to my ad. You have my permission. I won't lose anything by it. If anything, my name will move that much faster up the list. So will YOURS, when the next person to reply to YOUR AD receives the file EASYCA from YOU. Use this exact same file, BUT YOU MAY NOT ALTER ITS CONTENTS, FORMAT, STRUCTURE, ETC., IN ANY WAY, MANNER, OR FORM OTHER THEN TO DELETE THE NAME IN THE #1 POSITION, MOVE ALL THE OTHER NAMES UP ONE POSITION, AND ADD YOUR OWN NAME IN THE #10 POSITION. This means: YOU MAY USE this file, BUT YOU MAY NOT ADD ANYTHING ELSE to it OR TAKE AWAY ANYTHING ELSE from it OR CHANGE ANYTHING ELSE IN IT. NOT one DOT. Why? Because this file has been thoroughly TESTED, REVISED, and RETESTED in market studies, and the results indicate that MORE THAN 98.3% OF THE PEOPLE RECEIVING THIS UNALTERED FILE WILL JOIN! Any alterations in this file at all, will NOT improve your response rate and will probably DRASTICALLY REDUCE RESPONSE RATE FROM 98.3% TO LESS THAN 13%!! Don't try to reinvent the wheel, it's already been invented just ROLL with it! For those of you still skeptical, why do you think there are so many variations of this file in CIS? Because they've all been tried, and revised, and THIS ONE, is the one that EVOLVED from those, and will PULL IN THE GREATEST RESPONSE. Go ahead, if you want, try the others, you'll soon see you are wasting precious time, money and the positive response rate won't even come CLOSE to THIS one. 5) MAIL THIS FILE VIA E-MAIL: ------------------------ E-Mail this entire file AS IS when you get responses to your on-line ads UNTIL YOU HAVE 20 PEOPLE WHO JOINED under you. NOT everyone who receives the file will join. But most will. HOW TO MAIL THE FILE: After you get E-Mail responding to your ad, you need to SEND them this ENTIRE FILE AS IS. Since you already saved it. Just BE SURE TO NOTE THE ID# of the person responding. 6) WAIT FOR THE MONEY TO ROLL IN: ----------------------------- As soon as people responding to YOUR ads join YOUR list, THEY WILL EACH BE SENDING YOU THE $5 bill. So, for example, in a 2-week period, if you get 100 responses to join under you, you'll receive 100 x $5 = $500. Not bad considering you invested only $10 right! You may get less or LOTS MORE. At any rate, WHEN ONLY two PEOPLE JOIN YOU'LL HAVE YOUR $10 BACK!! (This will happen A LOT SOONER than you think, within a week you'll already be EVEN.) PLEASE NOTE: This is a TEAM effort. Everyone must adhere to the rules. If YOU send out to 500 responses who join, you'll make 500 x $5 = $2,500 BUT the list will SLOW DOWN since there will be less people available to join and the BIG money is with the $1 bills IN THE LONG RUN, NOT the $5 bills in the SHORT RUN! You WANT to allow others to join UNDER PEOPLE UNDER YOU so that the list can FLY! That's why it is SO IMPORTANT to STOP SENDING THE FILE ONCE YOU HAVE 20 PEOPLE WHO SIGNED ON IMMEDIATELY UNDER YOU. HOW DO YOU KNOW WHEN TO STOP SENDING FILES OUT? WHEN YOU HAVE RECEIVED 20 $5 BILLS ($100)! Of course you may be receiving plenty of $1 bills in the meantime. That's O.K. Keep sending files out UNTIL you receive 20 $5 BILLS! You start at #10 and when your name reaches #5, you will be on thousands of lists. IF YOU DO NOT PUT YOURSELF IN #10, YOU WILL NOT RECEIVE THE $5 FROM EACH AND EVERY PERSON YOU SEND THIS FILE TO (WHO IS ALSO REQUIRED TO SEND $5. TO #10. THAT'S YOU ON THEIR LIST)! WITHIN 60 DAYS YOU WILL RECEIVE OVER $50,000.00 IN CASH!!! ---------------------------------------------------------- KEEP A COPY OF THIS FILE FOR YOURSELF so that you can use it AGAIN AND AGAIN whenever you need money. As soon as you mail out these letters you are automatically in the mail- order business and SOME PEOPLE WILL BE SENDING YOU $1 to be placed on your mailing list and THE PEOPLE YOU SEND THE FILE TO, WILL BE SENDING YOU $5 to also be placed on your mailing list. This list can then be rented to a mailing list broker that can be found in the Yellow Pages for additional income on a regular basis. The list will become MORE VALUABLE AS IT GROWS in size. This is a service. This is perfectly legal. If you have any doubts, refer to Title 18, Sec. 1302 & 1341 of the postal lottery laws. NOTE: Make sure you retain EVERY name and address sent to you, either on computer or hard copy, but DO NOT discard the notes ("Please add my name to your mailing list.") they send you. This is PROOF that you are truly providing a service and should the IRS or some other Government agency question you, you can provide them with this proof! BEGIN LIST OF PARTICIPANTS -------------------------- 1. Jason Calloway ($1) 2400 20th Ave. NW #11-B Olympia, WA 98502 2. John Carleton ($1) 3815 Morehead Ave. Chico, CA 95928 3. Simon Talbot ($1) 90 Payne Street Boyanup, West Australia 6237 4. Ethan C. Allen ($1) 30225 18th Ave SW Federal Way, WA 98023 5. Ken Mah ($1) 1857 Dandini Circle San Jose, CA 95128 6. Ken Hanscom 24255 PCH#1044 Malibu, CA 90263-1044 7. James W. Sibley IV 2230 So. Interlocken Dr. Evergreen, CO 80439 8. Fred Ewan 909 Keith Avenue Spring Lake Heights, NJ 07762 9. Matthew Jakubiak P.O. Box 66 Hothckiss, CO 18419 10. Jeff Weinstein ($5) 1911 Central Ave. Wilmette, IL 60091 END LIST OF PARTICIPANTS SUMMARY ------- 1. FILE this file as EASYCASH or any other name for this very special file. 2. MAIL $10 TOTAL OUT: Do the 8 steps in Section 2. 3. UPDATE THE LIST: Do the 3 steps in Section 3. 4. PLACE ADS all over the bulletin boards. The more the better. a. NOTE ID#s of everyone when you get inquiries to your ads. 5. E-MAIL THIS EXACT FILE TO OTHERS. 6. WAIT FOR THE MONEY: When the $1 bills starts rolling in, in about 4 - 5 weeks, be ready for it! (Don't forget that the $5 bills will begin rolling in MUCH SOONER: give it a week, but don't be surprised if in 3 - 4 DAYS you start getting them as you well should! -- a few days after people you send the file to read it and join by sending you $5.) If you send the file to 10 people who join, and they all send to 10 who join, and those 10 send to 10, etc., this is how fast your name will move to #1: DIAGRAM ------- THEY SEND TO YOUR # ON THIS MANY LISTS YOU SEND TO 10 10 10 THE $5 ROLL IN: 10 9 100 =$50.00 100 8 1000 1000 7 10000 10000 6 100000 100000 5 1000000 THE MONEY ROLLS IN: 1000000 4 10000000 = $$$!! 10000000 3 100000000 100000000 2 1000000000 1000000000 1 10000000000 Now let's get REAL here...YOU'RE NOT going to receive BILLIONS of dollars despite how good the numbers look. Why not? Because, unfortunately, SOME OF YOU are NOT going to DO IT. So of course, those won't get ANY money BUT the VAST MAJORITY OF YOU WILL DO IT (over 98.3% positive response): send the money and the files out. YOU WILL DEFINITELY RECEIVE MONEY. However, no matter how good in theory, sooner or later the process breaks down so INSTEAD OF RECEIVING BILLIONS OR MILLIONS, you'll only receive a few thousand or hundred thousand or so. But at that point, WHO REALLY CARES? That's MORE MONEY THAN MOST PEOPLE MAKE IN A YEAR IN A FULL-TIME JOB! And when the money finally stops, guess what?, you can do it ALL OVER AGAIN!! 7. HAVE FUN depositing the money in your bank account. CHECKLIST --------- 1. Did you mail $1 to each of #1, 2, 3, 4, 5? 2. Did you mail $5 to #10 only? 3. Did you place on-line advertisements? If you DID ALL of the above, YOU'RE READY to receive responses and mail this file out and receive money. If you MISSED ANY OF THE 3 STEPS in the checklist above, DO THEM RIGHT AWAY so you can begin to receive responses and thus receive money. THE AGREEMENT ------------- 1. You agree that you will send out a $1 bill to each of the names listed in positions #1, 2, 3, 4, 5 AND that you will send out a $5 bill to the name listed in position #10 only, for a total investment of $10, BEFORE sending this file to anyone or posting it on any bulletin board. 2. You agree to use this file exactly as when you received it in accordance with Section 4) Place On-line Ads. That is, you agree you will not alter this file, unless you're merely moving the names from positions 1-9 up one position, in order, and adding your own name to position #10. 3. You agree that you will stop sending this file when you have 20 PEOPLE who JOINED immediately under you so that the names can move up MUCH faster so EVERYONE can make money faster. Including YOU. Now if you haven't enrolled, go back to the checklist and DO IT NOW! Remember...you only use $10 to make $thousands!!! Good Fortune ================================================================================ Archive-Date: Wed, 26 Apr 1995 21:56:09 CDT Sender: owner-litprog@SHSU.edu From: David Bradley <bradley@erinet.com> Reply-To: LitProg@SHSU.edu, bradley@ERINET.COM Subject: Re: $$$$$$$$$$$$ M A K E M O N E Y E A S Y $$$$$$$$$$$$$$$$ Date: 27 Apr 1995 01:55:32 GMT Message-ID: <3nmtik$cs2@news.erinet.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit To: jeffw15@aol.com To: LitProg@SHSU.EDU Just a thought, one might also want to contemplate how they'd spend the money in prison. I believe pyramid schemes are illegal. -- David Bradley bradley@erinet.com ================================================================================ Archive-Date: Thu, 27 Apr 1995 17:38:34 CDT Sender: owner-litprog@SHSU.edu From: scherer@genesis.informatik.rwth-aachen.de (Andreas Scherer) Reply-To: LitProg@SHSU.edu, scherer@GENESIS.INFORMATIK.RWTH-AACHEN.DE Subject: Re: dos CTANGLE.EXE Date: Thu, 27 Apr 1995 17:24:46 Message-ID: <scherer.117.00116A3A@genesis.informatik.rwth-aachen.de> To: LitProg@SHSU.EDU In article <3nluef$2s3@grok.provo.Novell.COM> jcalcote@novell.com (John Calcote) writes: >I'm having a devil of a time getting bootstrapped. >Will someone please email me a copy of ctangle.exe that works with big >memory? Try the CTANGLE.EXE in ftp.uni-stuttgart.de:/pub/systems/amiga/aminet/dev/c/cwebbin.lha Don't worry about the `Amiga' stuff, this archive really contains the MSDOS binaries for CTANGLE, CWEAVE, and WebMERGE. All three were tested and successfully used on IBM 286, Compaq 386, and Compaq 486. Except for a reduction of the 270,000 byte field to 170,000 bytes, everything else is totally left unchanged, so bootstrapping should be possible. BTW, these executables are directly associated with my personal port of Levy/Knuth CWEB 3.3, called CWEB 3.3 [p11a], also available in the directory mentioned above, but also at the relevant CTAN location. The C++ code in cweb33p11a.lha (or cweb3.3p11a.tar.gz respectively) compiles smoothly with Borland C++ 3.1. Enjoy, Andreas Scherer Aachen University of Technology, Germany <scherer@genesis.informatik.rwth-aachen.de> ================================================================================ Archive-Date: Thu, 27 Apr 1995 18:02:44 CDT Sender: owner-litprog@SHSU.edu From: jacob@dannug.dk (Jacob Nielsen) Reply-To: LitProg@SHSU.edu, jacob@DANNUG.DK Subject: Re: Postscript-output weaver? Date: 26 Apr 1995 22:16:29 GMT Message-ID: <JACOB.95Apr27001629@jnext> To: LitProg@SHSU.EDU >>>>> "Will" == Will Ware <wware@world.std.com> writes: Will> I picked up a book on Postscript, and it looks pretty Will> straightforward. Is anybody aware of something like CWEAVE Will> that would directly produce Postscript output (rather than Will> going the TeX->dvips route)? Much appreciated. It may look simple, but it isn't for your purpose :-) Why would you want to use PostScript as a formatting engine? PostScript wasn't created as a language for writing text but as a language for placing graphics on a page (and an extremely powerful one at that). If you want to produce good-looking output, you have to tell PostScript where to place each character. TeX, on the other hand, is a formatting engine (which outputs in DVI which we translate to PostScript for the benefit of our printers). If you want PostScript directly from CWEAVE, the way to go is to get TeX to output PostScript directly. PS: Anyone know the current status of noweb, nuweb and the emacs mode for nuweb? Regards, Jacob -- Jacob Nielsen jacob@dannug.dk ================================================================================ Archive-Date: Fri, 28 Apr 1995 18:53:08 CDT Sender: owner-litprog@SHSU.edu From: edstrom@Bubo.hmsc.orst.edu (John Edstrom) Reply-To: LitProg@SHSU.edu, edstrom@BUBO.HMSC.ORST.EDU Subject: FAQ Date: 28 Apr 1995 17:04:17 GMT Message-ID: <3nr76h$f5p@gaia.ucs.orst.edu> To: LitProg@SHSU.EDU Is there a FAQ for this group somewhere? If not, what is a good starter's text? je ----- John Edstrom | edstrom @ slugo.hmsc.orst.edu http://bubo.hmsc.orst.edu/~edstrom "Lurker" at BioMOO (bioinfo.weizmann.ac.il:8888) Hatfield Marine Science Center 2030 S. Marine Science Drive Newport, Oregon 97365-5296 wk: (503) 867 0197 fx: (503) 867 0138 ================================================================================ Archive-Date: Fri, 28 Apr 1995 19:02:39 CDT Sender: owner-litprog@SHSU.edu From: gbailey@vms1.tamu.edu (Guy Bailey) Reply-To: LitProg@SHSU.edu, gbailey@VMS1.TAMU.EDU Subject: Re: FAQ Date: 28 Apr 1995 18:47 CDT Message-ID: <28APR199518475630@vms1.tamu.edu> To: LitProg@SHSU.EDU In article <3nr76h$f5p@gaia.ucs.orst.edu>, edstrom@Bubo.hmsc.orst.edu (John Edstrom) writes... >Is there a FAQ for this group somewhere? If not, what is a good >starter's text? > Here is the WWW URL for the LP web pages: http://info.desy.de/www/LitProg.html Here is the WWW URL for the LP FAQ: http://ftp.desy.de/pub/faq/web/FAQ.txt Guy Bailey gbailey@tamu.edu ================================================================================ Archive-Date: Sat, 29 Apr 1995 01:01:38 CDT Sender: owner-litprog@SHSU.edu From: norman@flaubert.bellcore.com (Norman Ramsey) Reply-To: LitProg@SHSU.edu, norman@FLAUBERT.BELLCORE.COM Subject: Re: Noweb and html. Date: 29 Apr 1995 03:44:04 GMT Message-ID: <3nscm4$7sr@lowell.bellcore.com> CC: sp106@york.ac.uk To: LitProg@SHSU.EDU In article <3nlkt4$gqi@mailer.york.ac.uk>, stephen <sp106@york.ac.uk> wrote: >I have just started using noweb, [and why doesn't [[<<chunk name>>]] >produce the proper cross reference, such as] >a html link is put in my text that >refers to it. It's a bug, it's a bug, it's a bug. The reason I haven't just fixed it is that I still haven't figured out exactly what lexical analysis should be used to support it. For example, I surely don't want to parse: A line quoting [[<<add one to [[x]]>>]]. as @text A line quoting @quote @text <<add one to [[x @endquote @text >>]]. But I surely also want to parse A line saying shift [[x]] by writing [[x << 1]] or [[x >> 1]]. as @text A line saying shift @quote @text x @endquote @text by writing @quote @text x << 1 @endquote @text or @quote @text x >> 1 @endquote @text . So, if somebody can come up with a plausible state machine or other lexing technique, I'll get this fixed in noweb. ================================================================================ Archive-Date: Sat, 29 Apr 1995 08:41:08 CDT Sender: owner-litprog@SHSU.edu Date: Sat, 29 Apr 95 9:40:42 EDT From: Lee Wittenberg <leew@pilot.njin.net> Reply-To: LitProg@SHSU.edu, leew@PILOT.NJIN.NET To: LitProg@SHSU.edu, edstrom@Bubo.hmsc.orst.edu Subject: Re: FAQ Message-ID: <CMM-RU.1.4.799162842.leew@pilot.njin.net> John Edstrom asks: > Is there a FAQ for this group somewhere? If not, what is a good > starter's text? LitProg-FAQ is a file in the CTAN archives (the tex-archive directory at ftp.shsu.edu in the US) under the help directory). -- Lee ------------------------------------------------------------------------ Lee Wittenberg | I have always considered grown-ups to be Computer Science Department | figures of fun, ... and have never been Kean College of New Jersey | deceived by their hypocracies. Union, NJ 07083 | | -- Anita Loos leew@pilot.njin.net | "The Biography of a Book" (1963) ------------------------------------------------------------------------ ================================================================================ Archive-Date: Sat, 29 Apr 1995 10:31:31 CDT Sender: owner-litprog@SHSU.edu From: mkmartin@cts.com Reply-To: LitProg@SHSU.edu, mkmartin@CTS.COM Subject: CLIENT/SERVER PROGRAMMING Content-Type: TEXT/PLAIN; charset=US-ASCII Date: Sat, 29 Apr 1995 13:48:20 GMT Message-ID: <NEWTNews.29841.799163778.mkmartin@mkmartin.cts.com> MIME-Version: 1.0 To: LitProg@SHSU.EDU I work for a firm that is venturing into the client/server area. We have been programming in COBOL and XBASE languages. Can anybody out their recommend a language that would be relatively easy to learn based on our previous experience? We have already purchased Oricle7 to be used as the SQL server. I am considering PowerBuilder, Visual BASIC, SQLWindows and Oricle's development tools. Thanks for reading this article. ================================================================================ Archive-Date: Sat, 29 Apr 1995 10:58:06 CDT Sender: owner-litprog@SHSU.edu From: corb@aol.com (Corb) Subject: Detecting Fixed Position Tables in Unformatted Text Date: 29 Apr 1995 11:43:57 -0400 Message-ID: <3ntmrt$4o2@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, corb@aol.com (Corb) To: LitProg@SHSU.EDU I receive a number of text database feeds from numerous outside vendors. I would like to display these using a proportional font. This would be easy except for the following. Some of the pages have columns of information in them which I would like to keep aligned. The feeds only contain text, spaces, and newlines. There are no tabs or other indicators to show that something is a table, the items are aligned simply by placing more newlines before the text. I realize no algorithm could perfectly detect whether something is in a column. I am looking for some sort of weighting to indicate the probability of it being in a column. For instance, the more spaces that precede a character might increase the probability of it being formatted. If the item above or below it has a high weighting, this too might increase its weighting. If the newline on this line is in a earlier column than a normal line, that too might increase the weighting by a small amount. If there are other high weighted items on this line, that too might increase the weight. A numerical character also might increase the weight. Based on the weighting, I can hedge the positioning of the text. If the weighting is low, I use full proportional positioning, the higher the weighting the more I go to fixed positioning. By hedging the position based on the weight, I don't have to have a perfect solution. I am sure I am not the first to hit this problem. Does anyone know of books or articles I could start looking at for this or have ideas for a solution? I haven't read much on fuzzy logic, would that be a useful approach? My concept is that it is obvious to a human which items are in tables. I'm trying to figure out what information that is based on. (Note: the outside vendors have been approached about adding tabs or some other formatting information. There is no hope for them to do this, nor is there an alternate source for the data.) I couldn't find any FAQ's on this area - any suggestions where to look? Thanks in advance for any responses!! ================================================================================ Archive-Date: Sat, 29 Apr 1995 17:12:01 CDT Sender: owner-litprog@SHSU.edu From: cnemmick@aol.com (CNEmmick) Subject: RE: Just getting started Date: 29 Apr 1995 02:35:54 -0400 Message-ID: <3nsmoa$132@newsbf02.news.aol.com> Reply-To: LitProg@SHSU.edu, cnemmick@aol.com (CNEmmick) To: LitProg@SHSU.EDU Hello! I'm graduating from my high school in about a month, and I'll be taking the A.P. (Advanced Placement) Computer Science test in about two weeks. The test is held in Pascal, which at the current moment, I am very knowledgeable in. I have aquired Borland C++, and have been working in it slightly with a beginner's book. Of the great C++ and C programmers out here in the net, what is some of the most important things I must learn that aren't taught in your basic manual? Please E-Mail me or post it on this message. Thanks, CNEmmick Young Programmer ================================================================================ Archive-Date: Sun, 30 Apr 1995 05:57:40 CDT Sender: owner-litprog@SHSU.edu From: briggs@alamo.net (Briggs Reschke) Reply-To: LitProg@SHSU.edu, briggs@ALAMO.NET Subject: Re: Just getting started Message-ID: <D7uBoG.81s@alamo.net> Date: Sun, 30 Apr 1995 09:00:11 GMT To: LitProg@SHSU.EDU CNEmmick (cnemmick@aol.com) wrote: : Hello! I'm graduating from my high school in about a month, and I'll be : taking the A.P. (Advanced Placement) Computer Science test in about two : weeks. The test is held in Pascal, which at the current moment, I am very : knowledgeable in. I have aquired Borland C++, and have been working in it : slightly with a beginner's book. Of the great C++ and C programmers out : here in the net, what is some of the most important things I must learn : that aren't taught in your basic manual? : Please E-Mail me or post it on this message. Pointers. Learn about using pointers - passing them as arguments to functions, pointer arithmetic, pointers to pointers to pointers to pointers to pointers, etc... ================================================================================ Archive-Date: Sun, 30 Apr 1995 06:13:57 CDT Sender: owner-litprog@SHSU.edu From: raczy@delirium.lifl.fr (Come Raczy) Reply-To: LitProg@SHSU.edu, raczy@DELIRIUM.LIFL.FR Subject: Re: C++ Templates and FWEB Date: 30 Apr 1995 09:52:16 GMT Message-ID: <RACZY.95Apr30115217@leffe.lifl.fr> To: LitProg@SHSU.EDU Hi, Here are the answers, and a partial solution for the problem. In article <RACZY.95Apr24100323@delirium.lifl.fr> raczy@delirium.lifl.fr (Come Raczy) writes: > The problem was to get a nice output, using FWEAVE on > C++ generic classes. FWEAVE doesn't seem to understand > the notation : MyClass<T>. I just got two kind of answers: 1) "Don't use C++! Even C++ compilers have problems to understand this messy syntax." OK, a lot of C++ features may be obtained with C, if you use efficiently the preprocessor. Moreover, with FWEAVE you cand overload identifiers and operators, so C and FWEAVE can be more efficient than C++. 2) "Don't use FWEAVE! Switch to a non-pretty-printing WEB." OK, emacs cant help you to create "nice" code, then turn on FWEAVE's language independant mode (Cheer up! Flee!:-)). So I'tried to find the minimal tricks to get what I need. The solution that I hold back uses FWEB's internal macros. For each generic class named "MyClass" I define a macro: @M @-GenericMyClass MyClass<T> It seems to work fine with FWEB 1.40. here is an example: Note: I use @/ at the end of each line "template <class T>" instead of @; because there is less space between the lines, but it wouls work with @; too. ============Beginning of test.web=========== @*Main. @f @-cout int @a #include <iostream.h> @<Declaration of |MyClass|@>@; @<Implementation of |MyClass|@>@; int main(void){ MyClass<int> cc(1,2,3); cout << cc << "\n"; return 0; } @*Description of $MyClass$. @*1Definition. @f MyClass int @f GenericMyClass MyClass @M @-GenericMyClass @[MyClass<@-T> @<Declaration of |MyClass|@>= template <class T>@/ class MyClass{ public: MyClass(const GenericMyClass &x); friend ostream &operator <<( ostream &os, const GenericMyClass &x); private: T v[3]; }; @*1Implementation. @<Implementation of |MyClass|@>= template <class T>@/ GenericMyClass::MyClass(const GenericMyClass &x){ for(int i=0; i<3; i++) v[i]=x(i); } template <class T>@/ ostream &operator <<(ostream &os, const GenericMyClass &x){ return(cout << "[" << x.v[0] <<", "<<x.v[1]<<", "<<x.v[2]<<"]");} @*INDEX. ===============End of test.web============== Hope this helps. Come Raczy e-Mail: raczy@lifl.fr ================================================================================ Archive-Date: Sun, 30 Apr 1995 10:59:13 CDT Sender: owner-litprog@SHSU.edu From: przemek@rrdjazz.nist.gov (Przemek Klosowski) Reply-To: LitProg@SHSU.edu, przemek@RRDJAZZ.NIST.GOV Subject: Re: CLIENT/SERVER PROGRAMMING Date: 30 Apr 1995 15:59:04 GMT Message-ID: <PRZEMEK.95Apr30115904@rrdjazz.nist.gov> To: LitProg@SHSU.EDU In article <NEWTNews.29841.799163778.mkmartin@mkmartin.cts.com> mkmartin@cts.com writes: I work for a firm that is venturing into the client/server area. We have been programming in COBOL and XBASE languages. Can anybody out their recommend a language that would be relatively easy to learn based on our previous experience? Since you asked this question in comp.programming.literate, the obligatory answer is that it doesn't matter what language you use, as long as you use literate programming tools to write your programs. For introduction to literate programming, see e.g. D. Knuth 'Literate programming', The Computer Journal, 27(2):97--111, May 1984. -- przemek klosowski (przemek@rrdstrad.nist.gov) Reactor Division (bldg. 235), E111 National Institute of Standards and Technology Gaithersburg, MD 20899, USA (301) 975 6249