/[dtapublic]/pubs/books/ucbka/trunk/volshare/workprfa.tex
ViewVC logotype

Annotation of /pubs/books/ucbka/trunk/volshare/workprfa.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 274 - (hide annotations) (download) (as text)
Sun Aug 11 21:43:05 2019 UTC (5 years, 3 months ago) by dashley
File MIME type: application/x-tex
File size: 33592 byte(s)
Change keyword substitution (migration from cvs to svn).
1 dashley 140 %$Header$
2     %
3     %------------------------------------------------------------------------------------------------------------------
4     %This file isn't used directly--instead, the Tcl script CP_SCRIPT.TCL inserts it into the the main .TEX volume.
5     %In this process, the <mv> and <sv> tags on some lines are processed. <mv> lines go only to the multi-volume
6     %work, and <sv> lines to only to the single-volume work.
7     %
8     %For the multi-volume work, the symbolic patchup is near perfect. But for the single-volume work, the parts
9     %are numbered manually, which is a process open to human error. This preface must be checked when chapters
10     %are moved, added, or deleted.
11     %------------------------------------------------------------------------------------------------------------------
12     \chapter{Preface}
13    
14     In 1998, I began work on the
15     interrupt latency compatibility problem. As I searched
16     for prior work, I was
17     surprised to discover the paucity
18     of research available on practical embedded software
19     problems. Textbooks were also not very helpful,
20     as I found that almost none
21     of the hard
22     problems that occur in practice
23     were addressed.
24    
25     In 1999, I decided to compose my own book,
26     maintained on the Web,
27     to collect useful
28     research results, solutions to practical problems,
29     unsolved problems, and directions for future
30     research and refinement.
31     \LaTeX{} was chosen as the text-processing
32     tool, as it was
33     recognized immediately
34     that size could become an issue and that the book
35     would have a substantial mathematical content.
36     The freedom from any practical length
37     limitation
38     means that I am
39     free to include as many topics
40     in as much detail as I'd like.\footnote{My readers will
41     be consuming \emph{their} toner cartridges, not mine.}
42    
43     In 2001, this book was moved to
44     \index{SourceForge}\emph{SourceForge}\footnote{\emph{SourceForge}
45     (\texttt{http://www.sourceforge.net}), to whom I am very grateful,
46     is an organization that hosts open-source projects.} and
47     combined with a tool
48     set for microcontroller software work
49     (\emph{The Iju Tool Set}).
50    
51     In 2002, the collective set of materials (the tool set and this book)
52     was renamed \emph{The ESRG Tool Set}\footnote{\emph{ESRG}
53     is an acronym for \emph{E}mbedded \emph{S}ystems \emph{R}esearch \emph{G}roup.},
54     and placed under a different
55     project at \emph{SourceForge}.
56    
57     \emph{The ESRG Tool Set}, which is fully open-source and
58     available for free from \emph{SourceForge} at the URL
59     \texttt{http://esrg.sourceforge.net}, contains
60     these materials:
61    
62     \begin{itemize}
63     \item A \texttt{.PDF} copy of the most recent released
64     version of this book.
65    
66     \item The packaged \LaTeX{} source code and graphics
67     for the most recent released
68     version of this book.
69    
70     \item The most recent (unreleased) source code for this book
71     (available from the CVS version control archives).
72    
73     \item The most recent released version of
74     \emph{The ESRG Tool Set}, packaged as an installation
75     for Windows 95/98/ME/NT/2000/XP. This installation also
76     contains web pages with helpful URLs, and supplemental
77     materials (such as spreadsheets to demonstrate techniques,
78     other documents and standards maintained as part of this
79     effort,
80     Java applets, etc.).
81    
82     \item The packaged source code for the most recent released
83     version of \emph{The ESRG Tool Set}.
84    
85     \item The most recent (unreleased) source code of
86     \emph{The ESRG Tool Set} (available from the CVS
87     version control arvhives).
88    
89     \item The most recent (unreleased) versions of the non-tool
90     materials maintained with \emph{The ESRG Tool Set}, including
91     spreadsheets to demonstrate techniques, other
92     documents and standards maintained as part of this
93     effort, Java applets, etc. (available from the CVS version control
94     archives).
95     \end{itemize}
96    
97    
98     I have produced this set of works with the following four goals.
99     \marginpar{\textbf{Goals of This Work}}
100     \begin{itemize}
101     \item \textbf{To share results and coordinate work
102     with researchers.} I have
103     found that there is a disconnect between practitioners
104     (those who have exposure to difficult problems) and
105     researchers (those who often have the ability to solve these
106     difficult problems). A large work is required to
107     explain the design challenges present in practical embedded software
108     work, and to place the most difficult unsolved problems in the hands
109     of researchers.
110     \item \textbf{To share results and coordinate work with practitioners.}
111     Many of the problems and solutions presented in this work apply
112     to almost all applications of embedded software, and in many cases
113     are inherent to \emph{all} software. These problems and solutions
114     will be useful to software practitioners. I also expect
115     that practitioners have strong solutions to contribute to this
116     work.\footnote{With less jubilation, I also expect that
117     practitioners have new hard problems to contribute.
118     With any luck, I will obtain more new solutions than new problems.}
119     \item \textbf{To enrich the educational experience for students.}
120     All of the material contained in this set of works is free\footnote{Subject
121     to license restrictions. The license under which this book may be used
122     is included later in this preface. Software tools are licensed under the GPL.} (which,
123     from a student's point of view, is the best price).
124     For example, this book can be used by instructors as
125     free supplemental
126     material for a course.
127     \item \textbf{To guide tool vendors.} The design of tools
128     is very much like the design of software, in that one must have
129     a nearly complete understanding of the requirements
130     in order to produce a useful product. I have often found that
131     tool vendors are unaware of the actual needs of embedded
132     software developers. By clearly enumerating requirements and
133     lessons learned, I strive to give tool vendors the information
134     and insight
135     necessary to better support embedded software developers.
136     \end{itemize}
137    
138     In \marginpar{\textbf{\emph{Small} Defined}}
139     the title of this book, I've indicated that this book is
140     about \index{small microcontroller system}\emph{small} microcontroller work. By
141     \emph{small microcontroller work}, I mean the development
142     and production of small
143     embedded
144     software/hardware
145     systems such as are found
146     in consumer electronics and the automobile industry. Although
147     it is difficult to specify precisely what is and is not a
148     \emph{small} microcontroller system, the systems
149     I have in mind generally meet
150     the following criteria.
151    
152     \begin{itemize}
153     \item They
154     involve a single-chip control solution (the address and data busses of
155     the microcontroller are not extended outside the package).
156     \item They
157     involve ROM and RAM sizes of under 1M.\footnote{But usually much less--256K or less of ROM and 24K
158     or less of RAM would be typical for my definition of \emph{small}.}
159     \item They frequently involve non-preemptive scheduling. In the systems I would
160     classify as \emph{small}, pre-emptive scheduling and/or commercial
161     RTOSs are relatively uncommon.
162     \item They involve a software
163     program that cannot easily be changed (either because the program
164     is lithographically masked into the microcontroller or because special
165     equipment or special access to the microcontroller is required).\footnote{A consequence of the
166     software unchangeability
167     combined with high production volumes is
168     that software mistakes are very, very expensive.}
169     \item They exist in an unstable electrical environment,
170     characterized by supply voltage fluctuations,
171     electrical transients, and spurious resets.
172     \end{itemize}
173    
174     I use the term \index{hard problem}\emph{hard problem} throughout this book.
175     I define a
176     \marginpar{\textbf{\emph{Hard Problem} Defined}}
177     \emph{hard} problem as a problem that
178     meets the following two criteria.
179     \begin{itemize}
180     \item \textbf{The problem is \emph{hard}.}
181     The time to solve the problem is measured in
182     months or years, rather than hours or days; and furthermore,
183     the problem may be beyond the analytical ability of
184     most practicing embedded software engineers. In practice, this means that
185     an embedded software engineer cannot solve the problem in the time
186     available during a product development cycle.
187     \item \textbf{A solution to the problem is necessary for
188     reliable software or for ease of software construction.}
189     Generally, I would wish to exclude from consideration
190     problems which are difficult but which have no practical implications
191     for software reliability or ease of software construction
192     if they are not solved.
193     \end{itemize}
194    
195     Clearly, if an embedded software engineer is to be productive and
196     produce a reliable embedded product, the number of unsolved
197     \emph{hard} problems s/he encounters during a career must
198     be fairly small. However, the reality is that a practicing
199     embedded software engineer encounters unsolved hard problems
200     on a daily basis.
201    
202     In this work I take a special but not exclusive interest in
203     \emph{hard} problems---those that are relevant and necessary
204     but
205     so difficult and time-consuming that a software engineer cannot
206     solve them in the time available during the product development
207     cycle. I also have some interest in paradigms (ways of
208     thinking about software systems and problems), and in
209     best and worst practices (practices that are likely to to
210     avert problems and practices that are nearly suicidal,
211     respectively). It is noteworthy that I do not
212     have much interest in established
213     mathematical results that are available in
214     textbooks my readers probably already own.
215     For example, I have very limited interest in
216     reprinting the mathematical results surrounding
217     sampled control systems, but
218     I might be very interested in results predicting what
219     could and could not happen if such a
220     sampled control system is implemented on
221     a microcontroller using economical but lossy
222     multiplication and integration (to the best of my
223     knowledge, this insight does not exist anywhere).
224    
225     <mv>\textbf{Volume \vconzeroroman{}: \vconzerotitle{}}
226     <sv>\textbf{Part I: Concepts}
227     \marginpar{\textbf{Book Contents}}
228     contains an introduction to the challenges of small microcontroller work.
229     \begin{itemize}
230     \item \textbf{Chapter\;\ref{cint0}, \cintzerotitle{}} explains the scope of the book
231     and what is meant by \emph{small microcontroller work}.
232     \item \textbf{Chapter\;\ref{chgr0}, \chgrzerotitle{}} provides my personal
233     interpretation of the
234     Holy Grail of embedded real-time software---that is, what is
235     desirable and undesirable and what fundamental goals
236     exist. In this chapter, I deal primarily in paradigms of
237     thought and
238     unattainable goals.
239     \end{itemize}
240    
241     <mv>\textbf{Volume \vmfrzeroroman{}: \vmfrzerotitle{}}
242     <sv>\textbf{Part II: Mathematical Frameworks}
243     contains key mathematical frameworks and
244     results that are divorced from any specific problem.
245     \begin{itemize}
246     \item \textbf{Chapter\;\ref{cpri0}, \cprizerotitle{}} presents results surrounding
247     properties of integers and prime and composite numbers.
248     \item \textbf{Chapter\;\ref{cfry0}, \cfryzerotitle{}} presents results surrounding
249     the \index{Farey series}Farey series. The Farey series, which is the
250     ordered set of rational numbers with a certain maximum denominator,
251     forms the basis for some techniques of rational approximation.
252     \item \textbf{Chapter\;\ref{ccfr0}, \ccfrzerotitle{}} presents results surrounding
253     \index{continued fractions}continued fractions. The apparatus of continued
254     fractions provides the best algorithm for finding Farey neighbors and hence
255     best rational approximations.
256     \item \textbf{Chapter\;\ref{cbal0}, \cbalzerotitle{}} presents results surrounding
257     Boolean algebra. Traditionally, Boolean algebra and the study of Boolean
258     functions is associated with digital hardware design, but results and
259     algorithms involving the simplification of Boolean functions also have
260     application to the simplification of software control flow constructs.
261     \item \textbf{Chapter\;\ref{cqua0}, \cquazerotitle{}} presents results surrounding
262     the analysis of calculation error introduced by \emph{quantization}, the
263     unavoidable mapping from $\vworkrealset{}$ to $\vworkintset{}$ that must occur
264     as signals from the external world, which are usually continuous in nature,
265     are converted and processed by a microcontroller, which can inherently manipulate
266     only integers.
267     \item \textbf{Chapter\;\ref{cmtn0}, \cmtnzerotitle{}} presents miscellaneous results
268     from number theory which are useful or interesting, but awkward to
269     categorize.
270     \end{itemize}
271    
272    
273     <mv>\textbf{Volume \vcswzeroroman{}: \vcswzerotitle{}}
274     <sv>\textbf{Part III: Construction Of Embedded Software}
275     details the way embedded systems are (or should be)
276     constructed in practice.
277     \begin{itemize}
278     \item \textbf{Chapter\;\ref{cpco0}, \cpcozerotitle{}} outlines many aspects of
279     the way that embedded software is constructed (or should be constructed)
280     in practice.
281    
282     \item \textbf{Chapter\;\ref{csoc0}, \csoczerotitle{}} treats issues specific to
283     the support of peripherals that are usually located on the same silicon
284     die as the microcontroller, such as hardware watchdogs or EEPROM.
285    
286     \item \textbf{Chapter\;\ref{csoc1}, \csoconetitle{}} treats issues specific to
287     the support of peripherals that are usually separate from the microcontroller,
288     such as transducers and actuators.
289    
290     \item \textbf{Chapter\;\ref{csnc0}, \csnczerotitle{}} discusses the support
291     of communication protocols and networks.
292    
293     \item \textbf{Chapter\;\ref{csfo0}, \csfozerotitle{}} discusses requirements
294     that tend to occur in many different types of embedded software,
295     such as the need to calibrate an embedded product or diagnose it
296     via a communication link.
297    
298     \item \textbf{Chapter\;\ref{crta0}, \crtazerotitle{}} discusses the real-time
299     analysis of embedded software; that is, how embedded software can be
300     analyzed to be sure that it will always meet its real-time constraints.
301     \end{itemize}
302    
303    
304     <mv>\textbf{Volume \valgzeroroman{}: \valgzerotitle{}}
305     <sv>\textbf{Part IV: Embedded System Algorithms And Techniques}
306     presents algorithms which are used in a target embedded system.
307    
308     \begin{itemize}
309     \item \textbf{Chapter\;\ref{ccil0}, \ccilzerotitle{}} presents
310     classical and simple\footnote{Here \emph{classical} is used
311     in the same sense as Knuth uses it in \cite[p. 265]{bibref:b:knuthclassic2ndedvol2}.}
312     integer algorithms and techniques which
313     are used in embedded systems. Because integer and fixed point algorithms
314     are the dominant paradigm of arithmetic in small microcontroller
315     systems, this chapter is the backbone of most arithmetic in these systems.
316    
317     \item \textbf{Chapter\;\ref{crat0}, \cratzerotitle{}} develops techniques
318     and results surrounding rational approximation; that is, arpproximating a real number
319     $r_I$ by a rational number $h/k$.
320    
321     \item \textbf{Chapter\;\ref{cdta0}, \cdtazerotitle{}} presents algorithms
322     for use in discrete time (such as integration and differentiation),
323     and also more sophisticated integer algorithms.
324    
325     \item \textbf{Chapter\;\ref{cnnu0}, \cnnuzerotitle{}} presents miscellaneous
326     non-numerical algorithms for use in target embedded systems.
327     \end{itemize}
328    
329    
330     <mv>\textbf{Volume \vpaczeroroman{}: \vpaczerotitle{}}
331     <sv>\textbf{Part V: Practical, Administrative, Incidental, And Miscellaneous Topics}
332     discusses topics that are non-technical, only peripherally related to embedded system
333     software development,
334     or difficult to categorize elsewhere.
335    
336     \begin{itemize}
337     \item \textbf{Chapter\;\ref{cmpd0}, \cmpdzerotitle{}} discusses practical technqiues for
338     the management of materials produced during the product development process.
339    
340     \item \textbf{Chapter\;\ref{cpit0}, \cpitzerotitle{}} provides designs and some
341     analysis of circuits that are useful in microcontroller software
342     development---either in microcontroller products themselves or in
343     test fixtures.
344    
345     \item \textbf{Chapter\;\ref{cbma0}, \cbmazerotitle{}} discusses
346     bad management and unpleasant work situations, provides paradigms
347     and strategies for dealing with unpleasant work situations, and provides
348     guidance in finding employment.
349    
350     \item \textbf{Chapter\;\ref{cpxf0}, \cpxfzerotitle{}} describes software and
351     hardware products which are exceptionally useful in embedded product development.
352    
353     \item \textbf{Chapter\;\ref{corq0}, \corqzerotitle{}} describes open research
354     questions, i.e. problems I am aware of but do not know how to solve.
355    
356     \item \textbf{Chapter\;\ref{cisk0}, \ciskzerotitle{}} contains reverse analyses of
357     embedded product defects, and the lessons to be learned from these
358     defects.\footnote{The word \emph{Insektengericht} (``insect court'', in German)
359     comes from a page in a \emph{Beavis and Butthead} comic book purchsed in
360     the M\"unchen Hauptbahnhoff around 1996. In this comic book, Beavis and
361     Butthead sit in judgement of insects (bugs), always with the verdict
362     \emph{schuldig} (guilty), and always with harsh sentences such as
363     \emph{Tod durch explodieren} (death by explosion). I do much the same
364     thing with embedded software bugs and embedded product defects.}
365     Because it isn't possible in the product development process to address
366     \emph{every} possible source of defect, I feel it is important to
367     have a visceral feel for what is most likely to go wrong; and such
368     intuition can only come from actively collecting product defects. I very much
369     hope that airline pilots study transcripts and reports from airplane crashes, and I
370     encourage embedded software developers to do the same.
371     \end{itemize}
372    
373    
374     <mv>\textbf{Volume \vijtzeroroman{}: \vijtzerotitle{}}
375     <sv>\textbf{Part VI: ESRG Tool Set Reference Guide}
376     is a reference for the research tool set for microcontroller
377     work (based on Tcl/Tk from Scriptics/Ajuba/Interwoven), which is packaged
378     with this book.
379    
380     \begin{itemize}
381     \item \textbf{Chapter\;\ref{ctin0}, \ctinzerotitle{}} contains an overview
382     of the tool set and its design goals and construction.
383    
384     \item \textbf{Chapter\;\ref{ctcm0}, \ctcmzerotitle{}} provides a reference
385     for the Tcl scripting language, around which the tool set is constructed.
386    
387     \item \textbf{Chapter\;\ref{ctkm0}, \ctkmzerotitle{}} provides a reference
388     for the Tk graphical extensions to Tcl. These graphical extensions,
389     which are built into the tool set, are very useful for providing
390     attractive GUI interfaces.
391    
392     \item \textbf{Chapter\;\ref{cfaq0}, \cfaqzerotitle{}} addresses frequently
393     asked questions and ``gotchas'' in Tcl and Tk.
394    
395     \item \textbf{Chapter\;\ref{cxtn0}, \cxtnzerotitle{}} documents the Tcl
396     extensions which have been added to the script interpreters
397     (\emph{EsrgScripter} and \emph{EsrgConsole}). These extensions form the
398     ``meat'' of \emph{The ESRG Tool Set}, and represent the new ideas or
399     new effort we are trying to convey. These new ideas and
400     new effort are embedded into Tcl interpreters to grant
401     greater flexibility in their application.
402    
403     \item \textbf{Chapter\;\ref{cdcm0}, \cdcmzerotitle{}} documents the DOS command-line
404     utilities packaged with the tool set. In many cases, these utilities
405     perform functions identical or similar to Tcl extensions, but there are advantages to
406     packaging functionality as a DOS command-line utility.
407     \end{itemize}
408    
409    
410     <mv>\textbf{Volume \vsmazeroroman{}: \vsmazerotitle{}}
411     <sv>\textbf{Part VIII: Solutions To Selected Exercises}
412     contains solutions for selected exercises
413     found throughout the work.
414    
415     Although \marginpar{\textbf{Features For Readers}} I
416     know that all of my readers will be involved in some way
417     with technical things---such as mathematics, computer science,
418     control theory, software quality, or the design and development
419     of embedded products---I realize that my readers will
420     vary in what they are trying to obtain from the work. Some readers
421     will be very research oriented, and may be trying to solve or pose
422     a particular hard problem.
423     Other readers may be looking for a specific practical
424     solution.
425    
426     For the more practical reader, I have tried to be complete--that
427     is, I have tried not to omit information that might be
428     necessary in understanding my work without additional
429     research effort. In addition, a rich set of helpful materials is
430     packaged with \emph{The ESRG Tool Set} installation.
431    
432     For the more research-oriented reader, I have tried to allow the
433     reader to rapidly find books, technical papers, Web sites,
434     technical experts,
435     and researchers. For this reason, books, papers,
436     Web sites, and individuals
437     are all cited and referenced using the same
438     framework in the bibliography. This means the
439     reader is directed not only to technical documents,
440     but also to the authors of the
441     documents.
442    
443     Since \marginpar{\textbf{Version Identification}}
444     this book will be maintained on the Web, the issue arises of how
445     a reader would know one version of this book from another.
446     I have provided two mechanisms for this.\footnote{\TeX{}
447     tradition would demand that I pick a transcendental number
448     and with each successive version reveal another decimal place,
449     but that is too much work for me, given that
450     version control systems will handle the task automatically.}
451    
452     \begin{itemize}
453    
454     \item The title page indicates when the work was compiled from
455     \LaTeX{} source code. Two copies of the work with the
456     same compile date are almost certainly identical.
457    
458     \item The entire work is maintained under a version control
459     system (CVS at \emph{SourceForge}),
460     \index{CVS}\index{SourceForge} and I've included
461     keyword expansions near the end of the \LaTeX{} source files so that version
462     control information is included automatically in the document text (for example,
463     a block of version control information is at the end of each chapter).
464     Sections or chapters with the same version control information are almost certainly
465     identical.
466    
467     \end{itemize}
468    
469     This \marginpar{\textbf{Book License}}\index{license} book is licensed under the
470     \emph{Academic Free License v. 2.0}, reproduced below for convenience.\footnote{Please
471     note that \emph{The ESRG Tool Set} and certain other materials are licensed under the GPL. At this time
472     only this book is licensed under the \emph{Academic Free License}.}
473    
474     \begin{it}
475     This Academic Free License (the ``License'') applies to any original work of authorship
476     (the ``Original Work'') whose owner (the ``Licensor'') has placed the following
477     notice immediately following the copyright notice for the Original Work:\\
478     \\
479     Licensed under the Academic Free License version 2.0
480    
481     \begin{enumerate}
482     \item \textbf{Grant of Copyright License.} Licensor hereby grants You a world-wide, royalty-free,
483     non-exclusive, perpetual, sublicenseable license to do the following:
484    
485     \begin{enumerate}
486     \item to reproduce the Original Work in copies;
487     \item to prepare derivative works ("Derivative Works") based upon the Original Work;
488     \item to distribute copies of the Original Work and Derivative Works to the public;
489     \item to perform the Original Work publicly; and
490     \item to display the Original Work publicly.
491     \end{enumerate}
492    
493     \item \textbf{Grant of Patent License.} Licensor hereby grants You a world-wide, royalty-free, non-exclusive,
494     perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied
495     in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the
496     Original Work and Derivative Works.
497    
498     \item \textbf{Grant of Source Code License.} The term ``Source Code'' means the preferred form of the
499     Original Work for making modifications to it and all available documentation describing how to modify the
500     Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the
501     Original Work along with each copy of the Original Work that Licensor distributes.
502     Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of
503     the Source Code in an information repository reasonably calculated to permit inexpensive and convenient
504     access by You for as long as Licensor continues to distribute the Original Work, and by publishing the
505     address of that information repository in a notice immediately following the copyright
506     notice that applies to the Original Work.
507    
508     \item \textbf{Exclusions From License Grant.} Neither the names of Licensor, nor the names of any
509     contributors to the Original Work, nor any of their trademarks or service marks, may
510     be used to endorse or promote products derived from this Original Work without express prior
511     written permission of the Licensor. Nothing in this License shall be deemed to grant any
512     rights to trademarks, copyrights, patents, trade secrets or any other intellectual property
513     of Licensor except as expressly stated herein. No patent license is granted to make, use,
514     sell or offer to sell embodiments of any patent claims other than the licensed claims
515     defined in Section 2. No right is granted to the trademarks of Licensor even if such marks
516     are included in the Original Work. Nothing in this License shall be interpreted to prohibit
517     Licensor from licensing under different terms from this License any Original Work that
518     Licensor otherwise would have a right to license.
519    
520     \item This section intentionally omitted.
521    
522     \item \textbf{Attribution Rights.} You must retain, in the Source Code of any Derivative Works that
523     You create, all copyright, patent or trademark notices from the Source Code of the Original Work,
524     as well as any notices of licensing and any descriptive text identified therein as an
525     ``Attribution Notice.'' You must cause the Source Code for any Derivative Works that
526     You create to carry a prominent Attribution Notice reasonably calculated to inform
527     recipients that You have modified the Original Work.
528    
529     \item \textbf{Warranty of Provenance and Disclaimer of Warranty.} Licensor warrants that the copyright in
530     and to the Original Work and the patent rights granted herein by Licensor are owned by the
531     Licensor or are sublicensed to You under the terms of this License with the permission of
532     the contributor(s) of those copyrights and patent rights. Except as expressly stated in the
533     immediately proceeding sentence, the Original Work is provided under this License on an
534     ``AS IS'' BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation,
535     the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
536     THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY
537     constitutes an essential part of this License. No license to Original Work is granted
538     hereunder except under this disclaimer.
539    
540     \item \textbf{Limitation of Liability.} Under no circumstances and under no legal theory, whether in
541     tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for
542     any direct, indirect, special, incidental, or consequential damages of any character arising
543     as a result of this License or the use of the Original Work including, without limitation,
544     damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all
545     other commercial damages or losses. This limitation of liability shall not apply to liability
546     for death or personal injury resulting from Licensor's negligence to the extent applicable law
547     prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of
548     incidental or consequential damages, so this exclusion and limitation may not apply to You.
549    
550     \item \textbf{Acceptance and Termination.} If You distribute copies of the Original Work or a
551     Derivative Work, You must make a reasonable effort under the circumstances to
552     obtain the express assent of recipients to the terms of this License. Nothing
553     else but this License (or another written agreement between Licensor and You)
554     grants You permission to create Derivative Works based upon the Original Work
555     or to exercise any of the rights granted in Section 1 herein, and any attempt
556     to do so except under the terms of this License (or another written agreement
557     between Licensor and You) is expressly prohibited by U.S. copyright law, the
558     equivalent laws of other countries, and by international treaty. Therefore,
559     by exercising any of the rights granted to You in Section 1 herein, You indicate
560     Your acceptance of this License and all of its terms and conditions.
561    
562     \item \textbf{Termination for Patent Action.} This License shall terminate automatically
563     and You may no longer exercise any of the rights granted to You by this License
564     as of the date You commence an action, including a cross-claim or counterclaim,
565     for patent infringement (i) against Licensor with respect to a patent applicable
566     to software or (ii) against any entity with respect to a patent applicable to
567     the Original Work (but excluding combinations of the Original Work with other
568     software or hardware).
569    
570     \item \textbf{Jurisdiction, Venue and Governing Law.} Any action or suit relating to this
571     License may be brought only in the courts of a jurisdiction wherein the Licensor
572     resides or in which Licensor conducts its primary business, and under the laws
573     of that jurisdiction excluding its conflict-of-law provisions. The application
574     of the United Nations Convention on Contracts for the International Sale of Goods
575     is expressly excluded. Any use of the Original Work outside the scope of this
576     License or after its termination shall be subject to the requirements and
577     penalties of the U.S. Copyright Act, 17 U.S.C. 101 et seq., the equivalent
578     laws of other countries, and international treaty. This section shall
579     survive the termination of this License.
580    
581     \item \textbf{Attorneys Fees.} In any action to enforce the terms of this License or
582     seeking damages relating thereto, the prevailing party shall be entitled
583     to recover its costs and expenses, including, without limitation, reasonable
584     attorneys' fees and costs incurred in connection with such action, including
585     any appeal of such action. This section shall survive the termination of
586     this License.
587    
588     \item \textbf{Miscellaneous.} This License represents the complete agreement
589     concerning the subject matter hereof. If any provision of this License
590     is held to be unenforceable, such provision shall be reformed only to
591     the extent necessary to make it enforceable.
592    
593     \item \textbf{Definition of ``You'' in This License.} ``You'' throughout this License,
594     whether in upper or lower case, means an individual or a legal entity
595     exercising rights under, and complying with all of the terms of, this
596     License. For legal entities, ``You'' includes any entity that controls,
597     is controlled by, or is under common control with you. For purposes of
598     this definition, ``control'' means (i) the power, direct or indirect,
599     to cause the direction or management of such entity, whether by
600     contract or otherwise, or (ii) ownership of fifty percent (50%)
601     or more of the outstanding shares, or (iii) beneficial ownership
602     of such entity.
603    
604     \item \textbf{Right to Use.} You may use the Original Work in all ways not
605     otherwise restricted or conditioned by this License or by law,
606     and Licensor promises not to interfere with or be responsible
607     for such uses by You.
608     \end{enumerate}
609     \end{it}
610    
611    
612     I \marginpar{\textbf{Intellectual Property}} believe very
613     strongly in the notion of intellectual property. I have endeavored
614     in this book to cite all references and to identify all work and
615     all ideas that are not my own.\footnote{I've actually gone a step
616     further---I've tried to provide enough information to allow a
617     motivated reader to get in touch with the originator of the work
618     or ideas.} I would request the same courtesy in return (but will
619     not enforce this courtesy, except by exposure of parties responsible
620     for the theft of ideas without credit). Plagiarism and theft of intellectual property is a
621     regrettable but common occurrence, and I can
622     reliably predict that some student somewhere in the Webbed world
623     will borrow my ideas or work without citation
624     for a semester project---such events would earn my scorn
625     but be relatively insignificant
626     on my radar screen. However, if any of my work appears without
627     credit in academic journals, I would take the matter less
628     jovially and would very likely report the plagiarism to the journal
629     involved.
630    
631     I \marginpar{\textbf{Contacting the Author}}\index{contacting the author}
632     can be contacted at \texttt{dtashley@aol.com}. I invite readers
633     to contact me about
634     any material in this book, in \emph{The ESRG Tool Set}, or at
635     the web site \texttt{http://esrg.sourceforge.net}.
636    
637     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
638    
639     \noindent\begin{figure}[!b]
640     \noindent\rule[-0.25in]{\textwidth}{1pt}
641     \begin{tiny}
642     \begin{verbatim}
643 dashley 274 $HeadURL$
644     $Revision$
645     $Date$
646     $Author$
647 dashley 140 \end{verbatim}
648     \end{tiny}
649     \noindent\rule[0.25in]{\textwidth}{1pt}
650     \end{figure}
651     %
652     %End of file WORKPRFA.TEX

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision URL Header

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25