docs/unix-phil

changeset 25:e6ac51dc18bf

work on the slides
author meillo@marmaro.de
date Sun, 07 Mar 2010 18:13:30 +0100
parents 2335f5658fca
children b368ff5cdb5f
files unix-phil-slides.ms
diffstat 1 files changed, 150 insertions(+), 29 deletions(-) [+]
line diff
     1.1 --- a/unix-phil-slides.ms	Fri Mar 05 23:56:48 2010 +0100
     1.2 +++ b/unix-phil-slides.ms	Sun Mar 07 18:13:30 2010 +0100
     1.3 @@ -192,51 +192,119 @@
     1.4  
     1.5  .P "The Unix Phil after Gancarz
     1.6  
     1.7 -.S "Small is beautiful.
     1.8 +
     1.9 +
    1.10 +.S "Small is beautiful
    1.11 +.I
    1.12 +small software is easier to understand, write, maintain
    1.13 +.I
    1.14 +less lines of code contain less bugs
    1.15 +.I
    1.16 +monsters are large
    1.17 +
    1.18 +
    1.19 +.S "Make each program do one thing well
    1.20 +.I
    1.21 +programs with many functions are large
    1.22 +.I
    1.23 +one thing is easier to understand
    1.24 +.I
    1.25 +often straight forward to implement
    1.26 +.I
    1.27 +reusable
    1.28 +
    1.29 +
    1.30 +.S "Build a prototype as soon as possible
    1.31 +.I
    1.32 +shows the quality of the design
    1.33 +.I
    1.34 +shows the problems of the software
    1.35 +.I
    1.36 +the best way to shape a software
    1.37 +.I
    1.38 +users find bugs
    1.39 +
    1.40 +
    1.41 +.S "Choose portability over efficiency
    1.42 +.I
    1.43 +(comes from incompatible hardware in history)
    1.44 +.I
    1.45 +use is most important
    1.46 +.I
    1.47 +availability
    1.48 +.I
    1.49 +only needs to be fast enough
    1.50 +
    1.51 +
    1.52 +.S "Store data in flat text files
    1.53  .LP
    1.54 -foo
    1.55 +binary data is machine dependent
    1.56 +.LP
    1.57 +human readable data is:
    1.58 +.I
    1.59 +is very likely supported
    1.60 +.I
    1.61 +good to port
    1.62 +.I
    1.63 +many tools work on it (Unix toolchest)
    1.64 +.I
    1.65 +as generic as possible
    1.66 +.LP
    1.67 +processing needs only to be fast enough
    1.68  
    1.69  
    1.70 -.S "Make each program do one thing well.
    1.71 +.S "Use software leverage to your advantage
    1.72  .LP
    1.73 -foo
    1.74 +what do we have computers for?
    1.75 +.LP
    1.76 +make best use of computing power
    1.77 +.LP
    1.78 +reduce development effort
    1.79  
    1.80  
    1.81 -.S "Build a prototype as soon as possible.
    1.82 +.S "Use shell scripts to increase leverage and portability
    1.83  .LP
    1.84 -foo
    1.85 +was very important in history
    1.86 +.LP
    1.87 +high level languages
    1.88 +.LP
    1.89 +prototyping
    1.90 +.LP
    1.91 +quick hacks
    1.92  
    1.93  
    1.94 -.S "Choose portability over efficiency.
    1.95 +.S "Avoid captive user interfaces
    1.96  .LP
    1.97 -foo
    1.98 +don't assume the user to be human
    1.99 +.LP
   1.100 +exclude the user whenever possible
   1.101 +.LP
   1.102 +automate
   1.103  
   1.104  
   1.105 -.S "Store data in flat text files.
   1.106 +.S "Make every program a filter
   1.107  .LP
   1.108 -foo
   1.109 +programs transform data
   1.110 +.LP
   1.111 +combine programs
   1.112 +.LP
   1.113 +have one common interface
   1.114  
   1.115  
   1.116 -.S "Use software leverage to your advantage.
   1.117 -.LP
   1.118 -foo
   1.119  
   1.120 -
   1.121 -.S "Use shell scripts to increase leverage and portability.
   1.122 -.LP
   1.123 -foo
   1.124 -
   1.125 -
   1.126 -.S "Avoid captive user interfaces.
   1.127 -.LP
   1.128 -foo
   1.129 -
   1.130 -
   1.131 -.S "Make every program a filter.
   1.132 -.LP
   1.133 -foo
   1.134 -
   1.135 -
   1.136 +.S "a different POV
   1.137 +.I
   1.138 +pipes
   1.139 +.I
   1.140 +interface design
   1.141 +.I
   1.142 +the toolchest approach
   1.143 +.I
   1.144 +a powerful shell
   1.145 +.I
   1.146 +worse is better
   1.147 +.I
   1.148 +upgrowth and survival
   1.149  
   1.150  
   1.151  
   1.152 @@ -285,11 +353,27 @@
   1.153  .S "MH / nmh
   1.154  .LP
   1.155  a Mail User Agent (MUA)
   1.156 +.LP
   1.157 +is a toolchest
   1.158 +.LP
   1.159 +work with mails like with generic files
   1.160 +.LP
   1.161 +the only(?) MUA that follows the Unix Phil
   1.162 +.LP
   1.163 +has a very special feeling
   1.164  
   1.165  
   1.166  .S "uzbl
   1.167  .LP
   1.168  a web browser that adheres to the Unix Phil
   1.169 +.LP
   1.170 +a young project (about 1 year)
   1.171 +.LP
   1.172 +central question: what is the one task a web browser covers?
   1.173 +.LP
   1.174 +makes very visible use of software leverage
   1.175 +.LP
   1.176 +suffers hard from our broken web
   1.177  
   1.178  
   1.179  
   1.180 @@ -298,6 +382,43 @@
   1.181  .P "more than software dev guidelines
   1.182  
   1.183  
   1.184 +.S "say no
   1.185 +.LP
   1.186 +in today's computer world, the Unix Phil is much of asceticism
   1.187 +.LP
   1.188 +one needs to abjure a lot of ``nice'' features
   1.189 +.LP
   1.190 +IMO that leads to a valuable attitude
   1.191 +
   1.192 +
   1.193 +.S "avoid complexity
   1.194 +.LP
   1.195 +avoid complexity first and foremost
   1.196 +.LP
   1.197 +complexity is the ``boss enemy'' software developers fight against
   1.198 +.LP
   1.199 +strive for simplicity, clarity, generality
   1.200 +
   1.201 +
   1.202 +.S "good solutions
   1.203 +.LP
   1.204 +we don't need just solutions, we need good ones
   1.205 +.LP
   1.206 +today, we can make things possible,
   1.207 +but we still cannot make them good
   1.208 +
   1.209 +
   1.210 +.S "live it
   1.211 +.LP
   1.212 +the Unix Phil is not just a few guidelines
   1.213 +.LP
   1.214 +you cannot follow just some of the tenets
   1.215 +.LP
   1.216 +you will not understand the Unix Phil when you don't engage with it
   1.217 +.sp 3
   1.218 +.LP
   1.219 +.ce
   1.220 +it's a philosophy \(en live it!
   1.221  
   1.222  
   1.223