docs/unix-phil
diff unix-phil.ms @ 48:40caeb9e9b25
switched to new header macro; cleaned up CW
author | meillo@marmaro.de |
---|---|
date | Mon, 12 Apr 2010 14:45:29 +0200 |
parents | b6ae4a8ab1d3 |
children | 2f188a5dc0dc |
line diff
1.1 --- a/unix-phil.ms Mon Apr 12 14:11:39 2010 +0200 1.2 +++ b/unix-phil.ms Mon Apr 12 14:45:29 2010 +0200 1.3 @@ -1,27 +1,46 @@ 1.4 .nr PS 11 1.5 .nr VS 13 1.6 -.nr lu 0 1.7 1.8 .de CW 1.9 .nr PQ \\n(.f 1.10 -.if t .ft CW 1.11 -.ie ^\\$1^^ .if n .ul 999 1.12 -.el .if n .ul 1 1.13 -.if t .if !^\\$1^^ \&\\$1\f\\n(PQ\\$2 1.14 -.if n .if \\n(.$=1 \&\\$1 1.15 -.if n .if \\n(.$>1 \&\\$1\c 1.16 -.if n .if \\n(.$>1 \&\\$2 1.17 +.if t \{\ 1.18 +. ft CW 1.19 +. if !^\\$1^^ \&\\$1\f\\n(PQ\\$2 1.20 +.\} 1.21 +.if n \{\ 1.22 +. ie ^\\$1^^ .ul 999 1.23 +. el .ul 1 1.24 +. if \\n(.$=1 \&\\$1 1.25 +. if \\n(.$>1 \&\\$1\c 1.26 +. if \\n(.$>1 \&\\$2 1.27 +.\} 1.28 .. 1.29 1.30 .ds [. \ [ 1.31 .ds .] ] 1.32 1.33 -.rn NH _N 1.34 -.de NH 1.35 -.if '\\$1'1' .sp 2v 1.36 -.if '\\$1'1' .nr PS +2 1.37 -._N \\$1 1.38 -.if '\\$1'1' .nr PS -2 1.39 +.de H 1.40 +.if '\\$1'1' \{\ 1.41 +. sp 2v 1.42 +. nr PS +2 1.43 +. NH \\$1 1.44 +\\$2 1.45 +. nr PS -2 1.46 +. LP 1.47 +. XS 1.48 +. sp .5v 1.49 +. B 1.50 +\\*(SN \\$2 1.51 +. XE 1.52 +.\} 1.53 +.if '\\$1'2' \{\ 1.54 +. NH \\$1 1.55 +\\$2 1.56 +. LP 1.57 +. XS 1.58 + \\*(SN \\$2 1.59 +. XE 1.60 +.\} 1.61 .. 1.62 1.63 .am QP 1.64 @@ -58,13 +77,7 @@ 1.65 .CW \s-1http://marmaro.de/docs \ . 1.66 .FE 1.67 1.68 -.NH 1 1.69 -Introduction 1.70 -.XS 1.71 -.sp .5v 1.72 -.B 1.73 -\*(SN Introduction 1.74 -.XE 1.75 +.H 1 Introduction 1.76 .LP 1.77 The Unix Philosophy is the essence of how the Unix operating system, 1.78 especially its toolchest, was designed. 1.79 @@ -135,13 +148,7 @@ 1.80 is a good book that covers this topic. 1.81 Its point of view matches to the one of this paper. 1.82 1.83 -.NH 1 1.84 -Importance of software design in general 1.85 -.XS 1.86 -.sp .5v 1.87 -.B 1.88 -\*(SN Importance of software design in general 1.89 -.XE 1.90 +.H 1 "Importance of software design in general 1.91 .LP 1.92 Software design is the planning of how the internal structure 1.93 and external interfaces of a software should look like. 1.94 @@ -251,23 +258,13 @@ 1.95 It offers guidelines to achieve good quality and high gain for the effort spent. 1.96 1.97 1.98 -.NH 1 1.99 -The Unix Philosophy 1.100 -.XS 1.101 -.sp .5v 1.102 -.B 1.103 -\*(SN The Unix Philosophy 1.104 -.XE 1.105 +.H 1 "The Unix Philosophy 1.106 .LP 1.107 The origins of the Unix Philosophy were already introduced. 1.108 This chapter explains the philosophy, oriented on Gancarz, 1.109 and shows concrete examples of its application. 1.110 1.111 -.NH 2 1.112 -Pipes 1.113 -.XS 1.114 - \*(SN Pipes 1.115 -.XE 1.116 +.H 2 Pipes 1.117 .LP 1.118 Following are some examples to demonstrate how applied Unix Philosophy feels like. 1.119 Knowledge of using the Unix shell is assumed. 1.120 @@ -333,11 +330,7 @@ 1.121 The other is the design of the programs that are used in the pipeline. 1.122 They need interfaces that allow them to be used in such a way. 1.123 1.124 -.NH 2 1.125 -Interface design 1.126 -.XS 1.127 - \*(SN Interface design 1.128 -.XE 1.129 +.H 2 "Interface design 1.130 .LP 1.131 Unix is, first of all, simple \(en Everything is a file. 1.132 Files are sequences of bytes, without any special structure. 1.133 @@ -385,11 +378,7 @@ 1.134 Testing of interactive programs is much more complicated, 1.135 than testing of non-interactive programs. 1.136 1.137 -.NH 2 1.138 -The toolchest approach 1.139 -.XS 1.140 - \*(SN The toolchest approach 1.141 -.XE 1.142 +.H 2 "The toolchest approach 1.143 .LP 1.144 A toolchest is a set of tools. 1.145 Instead of having one big tool for all tasks, one has many small tools, 1.146 @@ -466,11 +455,7 @@ 1.147 they will still relay on the external programs, 1.148 which do the actual work. 1.149 1.150 -.NH 2 1.151 -A powerful shell 1.152 -.XS 1.153 - \*(SN A powerful shell 1.154 -.XE 1.155 +.H 2 "A powerful shell 1.156 .LP 1.157 The Unix shell provides the possibility to combine small programs into large ones. 1.158 But a powerful shell is a great feature in other ways, too. 1.159 @@ -531,11 +516,7 @@ 1.160 changing requirements. 1.161 Software parts that are not written will not miss the requirements. 1.162 1.163 -.NH 2 1.164 -Worse is better 1.165 -.XS 1.166 - \*(SN Worse is better 1.167 -.XE 1.168 +.H 2 "Worse is better 1.169 .LP 1.170 The Unix Philosophy aims for the 90% solution; 1.171 others call it the ``Worse is better'' approach. 1.172 @@ -584,11 +565,7 @@ 1.173 then less effort was spent into the project, than it would have be 1.174 when a different approach had been used. 1.175 1.176 -.NH 2 1.177 -Upgrowth and survival of software 1.178 -.XS 1.179 - \*(SN Upgrowth and survival of software 1.180 -.XE 1.181 +.H 2 "Upgrowth and survival of software 1.182 .LP 1.183 So far it was talked about \fIwriting\fP or \fIbuilding\fP software. 1.184 Although these are just verbs, they do imply a specific view on the work process 1.185 @@ -688,11 +665,7 @@ 1.186 Who cares if the large program is a failure, 1.187 but parts of it become successful instead? 1.188 1.189 -.NH 2 1.190 -Summary 1.191 -.XS 1.192 - \*(SN Summary 1.193 -.XE 1.194 +.H 2 "Summary 1.195 .LP 1.196 This chapter explained central ideas of the Unix Philosophy. 1.197 For each of the ideas, the advantages they introduce were explained. 1.198 @@ -710,13 +683,7 @@ 1.199 1.200 1.201 1.202 -.NH 1 1.203 -Case study: \s-1MH\s0 1.204 -.XS 1.205 -.sp .5v 1.206 -.B 1.207 -\*(SN Case study: \s-1MH\s0 1.208 -.XE 1.209 +.H 1 "Case study: \s-1MH\s0 1.210 .LP 1.211 The previous chapter introduced and explained the Unix Philosophy 1.212 from a general point of view. 1.213 @@ -738,11 +705,7 @@ 1.214 \s-1MH\s0 and nmh are described. 1.215 1.216 1.217 -.NH 2 1.218 -Historical background 1.219 -.XS 1.220 - \*(SN Historical background 1.221 -.XE 1.222 +.H 2 "Historical background 1.223 .LP 1.224 Electronic mail was available in Unix very early. 1.225 The first \s-1MUA\s0 on Unix was \f(CWmail\fP, 1.226 @@ -805,11 +768,7 @@ 1.227 mh 1.228 .] 1.229 1.230 -.NH 2 1.231 -Contrasts to monolithic mail systems 1.232 -.XS 1.233 - \*(SN Contrasts to monolithic mail systems 1.234 -.XE 1.235 +.H 2 "Contrasts to monolithic mail systems 1.236 .LP 1.237 All \s-1MUA\s0s are monolithic, except \s-1MH\s0. 1.238 Although there might actually exist further, very little known, 1.239 @@ -863,11 +822,7 @@ 1.240 alone or in combination with others, also from other toolchests, 1.241 without leaving the shell. 1.242 1.243 -.NH 2 1.244 -Data storage 1.245 -.XS 1.246 - \*(SN Data storage 1.247 -.XE 1.248 +.H 2 "Data storage 1.249 .LP 1.250 \s-1MH\s0's mail storage is a directory tree under the user's 1.251 \s-1MH\s0 directory (usually \f(CW$HOME/Mail\fP), 1.252 @@ -928,11 +883,7 @@ 1.253 man page mh-profile mh-sequence 1.254 .] 1.255 1.256 -.NH 2 1.257 -Discussion of the design 1.258 -.XS 1.259 - \*(SN Discussion of the design 1.260 -.XE 1.261 +.H 2 "Discussion of the design 1.262 .LP 1.263 This section discusses \s-1MH\s0 in regard to the tenets 1.264 of the Unix Philosophy that Gancarz identified. 1.265 @@ -1115,11 +1066,7 @@ 1.266 With these three, I was able to convince people that the structure was viable. 1.267 This took about three weeks. 1.268 1.269 -.NH 2 1.270 -Problems 1.271 -.XS 1.272 - \*(SN Problems 1.273 -.XE 1.274 +.H 2 "Problems 1.275 .LP 1.276 \s-1MH\s0 is not without problems. 1.277 There are two main problems: one is technical, the other is about human behavior. 1.278 @@ -1149,11 +1096,7 @@ 1.279 are quite outdated and thus not very appealing, compared to the modern interfaces 1.280 of many monolithic \s-1MUA\s0s. 1.281 1.282 -.NH 2 1.283 -Summary \s-1MH\s0 1.284 -.XS 1.285 - \*(SN Summary \s-1MH\s0 1.286 -.XE 1.287 +NH 2 "Summary \s-1MH\s0 1.288 .LP 1.289 \s-1MH\s0 is an \s-1MUA\s0 that follows the Unix Philosophy in its design. 1.290 It consists of a toolchest of small tools, each of them does one job well. 1.291 @@ -1176,13 +1119,7 @@ 1.292 1.293 1.294 1.295 -.NH 1 1.296 -Case study: uzbl 1.297 -.XS 1.298 -.sp .5v 1.299 -.B 1.300 -\*(SN Case study: uzbl 1.301 -.XE 1.302 +.H 1 "Case study: uzbl 1.303 .LP 1.304 The last chapter took a look on the \s-1MUA\s0 \s-1MH\s0, 1.305 which is an old and established software. 1.306 @@ -1191,11 +1128,7 @@ 1.307 Its name comes from the \fILolspeak\fP word for ``usable''; 1.308 it is pronounced identical. 1.309 1.310 -.NH 2 1.311 -Historical background 1.312 -.XS 1.313 - \*(SN Historical background 1.314 -.XE 1.315 +.H 2 "Historical background 1.316 .LP 1.317 Uzbl was started by Dieter Plaetinck in April 2009. 1.318 The idea was born in a thread in the Arch Linux Forums. 1.319 @@ -1243,11 +1176,7 @@ 1.320 slashdot uzbl 1.321 .] 1.322 1.323 -.NH 2 1.324 -Contrasts to other web browsers 1.325 -.XS 1.326 - \*(SN Contrasts to other web browsers 1.327 -.XE 1.328 +.H 2 "Contrasts to other web browsers 1.329 .LP 1.330 Like most \s-1MUA\s0s are monolithic, but \s-1MH\s0 is a toolchest, 1.331 most web browsers are monolithic, but uzbl is a frontend to a toolchest. 1.332 @@ -1287,11 +1216,7 @@ 1.333 But instead of using existing, external programs, modern web browsers 1.334 include these functions. 1.335 1.336 -.NH 2 1.337 -Discussion of the design 1.338 -.XS 1.339 - \*(SN Discussion of the design 1.340 -.XE 1.341 +.H 2 "Discussion of the design 1.342 .LP 1.343 This section discusses uzbl in regard of the Unix Philosophy, 1.344 as identified by Gancarz. 1.345 @@ -1458,11 +1383,7 @@ 1.346 .] 1.347 1.348 1.349 -.NH 2 1.350 -Problems 1.351 -.XS 1.352 - \*(SN Problems 1.353 -.XE 1.354 +.H 2 "Problems 1.355 .LP 1.356 Similar to \s-1MH\s0, uzbl, too suffers from being different. 1.357 It is sad, but people use what they know. 1.358 @@ -1489,11 +1410,7 @@ 1.359 Now web browsers, and eventually the users, suffer from it. 1.360 1.361 1.362 -.NH 2 1.363 -Summary uzbl 1.364 -.XS 1.365 - \*(SN Summary uzbl 1.366 -.XE 1.367 +.H 2 "Summary uzbl 1.368 .LP 1.369 ``Uzbl is a browser that adheres to the Unix Philosophy'', 1.370 that is how uzbl is seen by its authors. 1.371 @@ -1517,19 +1434,9 @@ 1.372 Despite this bad situation, uzbl does a fairly good job. 1.373 1.374 1.375 -.NH 1 1.376 -Final thoughts 1.377 -.XS 1.378 -.sp .5v 1.379 -.B 1.380 -\*(SN Final thoughts 1.381 -.XE 1.382 +.H 1 "Final thoughts 1.383 1.384 -.NH 2 1.385 -Quick summary 1.386 -.XS 1.387 - \*(SN Quick summary 1.388 -.XE 1.389 +.H 2 "Quick summary 1.390 .LP 1.391 good design 1.392 .LP 1.393 @@ -1537,11 +1444,7 @@ 1.394 .LP 1.395 case studies 1.396 1.397 -.NH 2 1.398 -Why people should choose 1.399 -.XS 1.400 - \*(SN Why people should choose 1.401 -.XE 1.402 +.H 2 "Why people should choose 1.403 .LP 1.404 Make the right choice! 1.405