docs/unix-phil

changeset 0:cecef8bfa812

early version, mainly the outline
author meillo@marmaro.de
date Fri, 05 Feb 2010 11:09:35 +0100
parents
children 9b555c009f19
files makefile unix-phil.ms
diffstat 2 files changed, 198 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/makefile	Fri Feb 05 11:09:35 2010 +0100
     1.3 @@ -0,0 +1,7 @@
     1.4 +all: unix-phil.ps unix-phil.txt
     1.5 +
     1.6 +unix-phil.ps: unix-phil.ms
     1.7 +	sh -c "`doctype unix-phil.ms`" >unix-phil.ps
     1.8 +
     1.9 +unix-phil.txt: unix-phil.ms
    1.10 +	sh -c "`doctype -n unix-phil.ms`" >unix-phil.txt
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/unix-phil.ms	Fri Feb 05 11:09:35 2010 +0100
     2.3 @@ -0,0 +1,191 @@
     2.4 +.if n .pl 1000i
     2.5 +.de XX
     2.6 +.pl 1v
     2.7 +..
     2.8 +.em XX
     2.9 +.nr PI 0
    2.10 +.if t .nr PD .5v
    2.11 +.if n .nr PD 1v
    2.12 +.nr lu 0
    2.13 +.de CW
    2.14 +.nr PQ \\n(.f
    2.15 +.if t .ft CW
    2.16 +.ie \\$1 .if n .ul 999
    2.17 +.el .if n .ul 1
    2.18 +.if t .if !\\$1 \&\\$1\f\\n(PQ\\$2
    2.19 +.if n .if \\n(.$=1 \&\\$1
    2.20 +.if n .if \\n(.$>1 \&\\$1\c
    2.21 +.if n .if \\n(.$>1 \&\\$2
    2.22 +..
    2.23 +.ds [. \ [
    2.24 +.ds .] ]
    2.25 +.TL
    2.26 +Why the Unix Philosophy matters
    2.27 +.AU
    2.28 +markus schnalke <meillo@marmaro.de>
    2.29 +.\" .AI
    2.30 +.\" .ce 0
    2.31 +.\" .fi
    2.32 +.\" Der Autor liebt Unix und dessen Skripting-Möglichkeiten.
    2.33 +.\" So auch den Shebang-Mechanismus der die Ausführung von Skripten deutlich erleichtert.
    2.34 +.AB
    2.35 +This term paper discusses the importance of the Unix Philosophy in software design.
    2.36 +Today, few software designers are aware of these concepts,
    2.37 +and thus most modern software is limited and does not use software leverage.
    2.38 +Knowing and following the tenets of the Unix Philosophy makes software more valuable.
    2.39 +.AE
    2.40 +
    2.41 +.2C
    2.42 +.NH 1
    2.43 +Introduction
    2.44 +.LP
    2.45 +Building a software is a process from an idea of the purpose of the software
    2.46 +to the finished program.
    2.47 +No matter \fIhow\fP the process is run, two things are common:
    2.48 +the initial idea and the release.
    2.49 +But the the process inbetween can be of any shape.
    2.50 +The time of release and the maintainance work after the release are ignored here, for the moment.
    2.51 +.LP
    2.52 +The process of building splits mainly in two parts:
    2.53 +the planning of what and how to build, and implementing the plan by writing code.
    2.54 +This paper focuses on the planning \(en the design \(en of software.
    2.55 +The here discussed ideas may be applied to any development process.
    2.56 +Though the Unix Philosphy does recommend how the software development process should look like,
    2.57 +this shall not be of matter here.
    2.58 +Similar, the question of how to write the code is out of focus.
    2.59 +.LP
    2.60 +
    2.61 +
    2.62 +
    2.63 +
    2.64 +
    2.65 +.[
    2.66 +%O .CW http://en.wikipedia.org/wiki/Unix_philosophy
    2.67 +.]
    2.68 +
    2.69 +.NH 1
    2.70 +Importance of software design
    2.71 +.LP
    2.72 +why design at all
    2.73 +
    2.74 +- for dev mainly: extendability and maintainability
    2.75 +
    2.76 +- for users: usability and flexibility (but you need to learn how to use it)
    2.77 +
    2.78 +no design and bad design limit the use of software
    2.79 +
    2.80 +.NH 2
    2.81 +Architecture
    2.82 +.LP
    2.83 +the most important design decision.
    2.84 +
    2.85 +the topic here
    2.86 +
    2.87 +.NH 1
    2.88 +The Unix Philosophy
    2.89 +
    2.90 +.NH 2
    2.91 +what it is
    2.92 +.LP
    2.93 +definitions by McIlroy, Gancarz, ESR (maybe already in the intro)
    2.94 +.LP
    2.95 +cf. unix tool chain
    2.96 +.LP
    2.97 +enabler pipe
    2.98 +
    2.99 +.NH 2
   2.100 +Interface architecture
   2.101 +.LP
   2.102 +standalone vs. tool chain
   2.103 +.LP
   2.104 +software leverage
   2.105 +.LP
   2.106 +possiblities
   2.107 +
   2.108 +.NH 2
   2.109 +Results
   2.110 +.LP
   2.111 +The unix phil is an answer to the sw design question
   2.112 +.LP
   2.113 +tool chains empower the uses of sw
   2.114 +
   2.115 +.NH 1
   2.116 +Case study: nmh
   2.117 +
   2.118 +.NH 2
   2.119 +History
   2.120 +.LP
   2.121 +MH, nmh.
   2.122 +They are old.
   2.123 +
   2.124 +.NH 2
   2.125 +Contrasts to similar sw
   2.126 +.LP
   2.127 +vs. Thunderbird, mutt, mailx, pine
   2.128 +.LP
   2.129 +flexibility, no redundancy, use the shell
   2.130 +
   2.131 +.NH 2
   2.132 +Gains of the design
   2.133 +.LP
   2.134 +
   2.135 +.NH 2
   2.136 +Problems
   2.137 +.LP
   2.138 +
   2.139 +.NH 1
   2.140 +Case study: uzbl
   2.141 +
   2.142 +.NH 2
   2.143 +History
   2.144 +.LP
   2.145 +uzbl is young
   2.146 +
   2.147 +.NH 2
   2.148 +Contrasts to similar sw
   2.149 +.LP
   2.150 +like with nmh
   2.151 +.LP
   2.152 +addons, plugins, modules
   2.153 +
   2.154 +.NH 2
   2.155 +Gains of the design
   2.156 +.LP
   2.157 +
   2.158 +.NH 2
   2.159 +Problems
   2.160 +.LP
   2.161 +broken web
   2.162 +
   2.163 +.NH 1
   2.164 +Final thoughts
   2.165 +
   2.166 +.NH 2
   2.167 +Quick summary
   2.168 +.LP
   2.169 +good design
   2.170 +.LP
   2.171 +unix phil
   2.172 +.LP
   2.173 +case studies
   2.174 +
   2.175 +.NH 2
   2.176 +Why people should choose
   2.177 +.LP
   2.178 +Make the right choice!
   2.179 +
   2.180 +.nr PI .5i
   2.181 +.rm ]<
   2.182 +.de ]<
   2.183 +.LP
   2.184 +.de FP
   2.185 +.IP \\\\$1.
   2.186 +\\..
   2.187 +.rm FS FE
   2.188 +..
   2.189 +.SH
   2.190 +References
   2.191 +.[
   2.192 +$LIST$
   2.193 +.]
   2.194 +.wh -1p