# HG changeset patch # User meillo@marmaro.de # Date 1266617469 -3600 # Node ID 529168f49f29efa4e89a5441dc7eb078113036f3 # Parent 924b2ac2d477f2b2aba5d94e366af8393234821f corrected spelling diff -r 924b2ac2d477 -r 529168f49f29 unix-phil.ms --- a/unix-phil.ms Fri Feb 19 12:31:56 2010 +0100 +++ b/unix-phil.ms Fri Feb 19 23:11:09 2010 +0100 @@ -50,8 +50,8 @@ to its release. No matter \fIhow\fP the process is run, two things are common: the initial idea and the release. -The process inbetween can be of any shape. -The the maintainance work after the release is ignored for the moment. +The process in between can be of any shape. +The the maintenance work after the release is ignored for the moment. .PP The process of building splits mainly in two parts: the planning of what and how to build, and implementing the plan by writing code. @@ -59,10 +59,10 @@ .PP Software design is the plan of how the internals and externals of the software should look like, based on the requirements. -This paper discusses the recommendations of the Unix Philosphy about software design. +This paper discusses the recommendations of the Unix Philosophy about software design. .PP The here discussed ideas can get applied by any development process. -The Unix Philosphy does recommend how the software development process should look like, +The Unix Philosophy does recommend how the software development process should look like, but this shall not be of matter here. Similar, the question of how to write the code is out of focus. .PP @@ -107,7 +107,7 @@ But there are also points on which they differ. This only underlines what the Unix Philosophy is: A retrospective view on the main concepts of Unix software; -especially those that were sucessful and unique to Unix. +especially those that were successful and unique to Unix. .\" really? .PP Before we will have a look at concrete concepts, @@ -149,11 +149,11 @@ Quality aspects are about the properties that are overlooked at first sight. .PP Quality is of few matter when the software gets initially built, -but it will be of matter in usage and maintainance of the software. +but it will be of matter in usage and maintenance of the software. A short-sighted might see in developing a software mainly building something up. Reality shows, that building the software the first time is only a small amount of the overall work. -Bug fixing, extending, rebuiling of parts \(en short: maintainance work \(en +Bug fixing, extending, rebuilding of parts \(en short: maintenance work \(en does soon take over the major part of the time spent on a software. Not to forget the usage of the software. These processes are highly influenced by the software's quality. @@ -171,7 +171,7 @@ .PP The ISO/IEC 9126-1 standard, part 1, .[ -%I International Organization for Standarization +%I International Organization for Standardization %T ISO Standard 9126: Software Engineering \(en Product Quality, part 1 %C Geneve %D 2001 @@ -188,7 +188,7 @@ (understandability, learnability, operability, attractiveness) .IP \(bu .I Efficiency -(time behaviour, resource utilisation) +(time behavior, resource utilization) .IP \(bu .I Maintainability (analysability, changeability, stability, testability) @@ -226,8 +226,9 @@ Knowledge of using the Unix shell is assumed. .PP Counting the number of files in the current directory: -.DS +.DS I 2n .CW +.ps -1 ls | wc -l .DE The @@ -238,8 +239,9 @@ counts the number of lines. .PP Counting the number of files that do not contain ``foo'' in their name: -.DS +.DS I 2n .CW +.ps -1 ls | grep -v foo | wc -l .DE Here, the list of files is filtered by @@ -248,8 +250,9 @@ The rest is the same as in the previous example. .PP Finding the five largest entries in the current directory. -.DS +.DS I 2n .CW +.ps -1 du -s * | sort -nr | sed 5q .DE .CW "du -s * @@ -336,7 +339,7 @@ First, one simple, standardized, unidirectional interface has to be sufficient. If one feels the need for more ``logic'' than a stream of bytes, then a different approach might be of need. -But it is also possbile, that he just can not imaging a design where +But it is also possible, that he just can not imaging a design where a stream of bytes is sufficient. By becoming more familiar with the ``Unix style of thinking'', developers will more often and easier find simple designs where @@ -344,10 +347,10 @@ .PP The second drawback of a toolchest affects the users. A toolchest is often more difficult to use for novices. -It is neccessary to become familiar with each of the tools, +It is necessary to become familiar with each of the tools, to be able to use the right one in a given situation. -Additinally, one needs to combine the tools in a senseful way on its own. -This is like a sharp knive \(en it is a powerful tool in the hand of a master, +Additionally, one needs to combine the tools in a senseful way on its own. +This is like a sharp knife \(en it is a powerful tool in the hand of a master, but of no good value in the hand of an unskilled. .PP However, learning single, small tool of the toolchest is easier than @@ -367,8 +370,9 @@ .PP A wrapper script for finding the five largest entries in the current directory could look like this: -.DS +.DS I 2n .CW +.ps -1 #!/bin/sh du -s * | sort -nr | sed 5q .DE @@ -376,8 +380,9 @@ a professional user would type in directly. Making the program flexible on the number of entries it prints, is easily possible: -.DS +.DS I 2n .CW +.ps -1 #!/bin/sh num=5 [ $# -eq 1 ] && num="$1"