docs/unix-phil
diff unix-phil-slides2.ms @ 56:7678e37ceffc
added presentation slides
author | meillo@marmaro.de |
---|---|
date | Thu, 15 Apr 2010 23:04:07 +0200 |
parents | |
children | 38261031d742 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/unix-phil-slides2.ms Thu Apr 15 23:04:07 2010 +0200 1.3 @@ -0,0 +1,194 @@ 1.4 +.ps 11 1.5 +.ce 1.6 +Seminar ``Software Analysis'' 1.7 +.TL 1.8 +\fR\s-6Why\s0\fP 1.9 +.br 1.10 +the Unix Philosophy 1.11 +.br 1.12 +.vs -4 1.13 +\fR\s-6still matters\s0\fP 1.14 +.AU 1.15 +.ft R 1.16 +.sp .5i 1.17 +.sp .5i 1.18 +.ps 11 1.19 +markus schnalke <meillo@marmaro.de> 1.20 + 1.21 + 1.22 +.S "Software design 1.23 +.rs 1.24 +.sp 1.25 +.LP 1.26 +\&... is about quality 1.27 +.I 1.28 +Good design \(-> good quality 1.29 +.I 1.30 +Bad design \(-> problems 1.31 +.sp 1.32 +.LP 1.33 +\&... and consistency 1.34 +.LP 1.35 +.sp 2 1.36 +Unix Phil = guidelines for good design 1.37 + 1.38 + 1.39 + 1.40 +.S "The Unix Phil *itself* 1.41 +.rs 1.42 +.sp 1.43 +.LP 1.44 +Wikipedia: 1.45 +.ce 99 1.46 +.sp 1.47 +The Unix philosophy is 1.48 +a set of cultural norms and philosophical approaches 1.49 +to developing software 1.50 +based on the experience 1.51 +of leading developers of the Unix operating system. 1.52 +.sp 1.53 + 1.54 + 1.55 +.S "Unix Phil and Software dev processes 1.56 +.rs 1.57 +.sp 1.58 +.LP 1.59 +The Unix Phil: 1.60 +.I 1.61 +mostly *what* 1.62 + 1.63 +.sp 1.64 +.LP 1.65 +Software dev processes: 1.66 +.I 1.67 +mostly *how* 1.68 +.sp 2 1.69 +.LP 1.70 +Extreme Programming and the Unix Phil 1.71 +are good friends 1.72 + 1.73 + 1.74 + 1.75 +.S "The Unix Phil by Doug McIlroy (1978) 1.76 +.rs 1.77 +.sp 1.78 +.LP 1.79 +This is the Unix philosophy: 1.80 +.I 1.81 +Write programs that do one thing and do it well. 1.82 +.I 1.83 +Write programs to work together. 1.84 +.I 1.85 +Write programs to handle text streams, because that is a universal interface. 1.86 + 1.87 + 1.88 +.S "The Unix Phil by Mike Gancarz (1995) 1.89 +.rs 1.90 +.sp .2v 1.91 +.I 1.92 +Small is beautiful. 1.93 +.I 1.94 +Make each program do one thing well. 1.95 +.I 1.96 +Build a prototype as soon as possible. 1.97 +.I 1.98 +Choose portability over efficiency. 1.99 +.I 1.100 +Store data in flat text files. 1.101 +.I 1.102 +Use software leverage to your advantage. 1.103 +.I 1.104 +Use shell scripts to increase leverage and portability. 1.105 +.I 1.106 +Avoid captive user interfaces. 1.107 +.I 1.108 +Make every program a filter. 1.109 +.sp 1 1.110 +.LP 1.111 +Plus ten lesser tenets 1.112 + 1.113 + 1.114 + 1.115 + 1.116 +.S "Case studies 1.117 +.LP 1.118 +.B "MH / nmh 1.119 +.LP 1.120 +The only MUA that is a toolchest 1.121 +.LP 1.122 +Makes use of the powerful shell 1.123 +.LP 1.124 +Great example of applied Unix Phil 1.125 + 1.126 +.sp 1 1.127 +.LP 1.128 +.B uzbl 1.129 +.LP 1.130 +A web browser that adheres to the Unix Phil 1.131 +.LP 1.132 +Central question: 1.133 +.br 1.134 +What is the one thing a web browser should do well? 1.135 +.LP 1.136 +Makes very visible use of software leverage 1.137 + 1.138 + 1.139 + 1.140 + 1.141 + 1.142 +.S "Why? 1.143 +.rs 1.144 +.sp 1.145 +.LP 1.146 +.ce 1.147 +We don't need just any solutions, we need good ones 1.148 + 1.149 +.sp 3 1.150 +.LP 1.151 +.ce 1.152 +Avoid \fBcomplexity\fP first and foremost! 1.153 +.LP 1.154 +.ce 1.155 +Exploit software \fBleverage\fP! 1.156 + 1.157 + 1.158 +.S "Further reading 1.159 +.LP 1.160 +The paper to the slides 1.161 +.sp 1.162 +.LP 1.163 +My talk on this topic at the ChaosSeminar of CCC Ulm 1.164 +.CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0 1.165 +.sp 1.166 +.LP 1.167 +Mike Gancarz' book 1.168 +\fI``The Unix Philosophy''\fP 1.169 +.sp 1.170 +.LP 1.171 +\fI``cat -v Considered Harmful''\fP 1.172 +by Pike and Kernighan 1.173 +.CW \s-2http://harmful.cat-v.org/cat-v/\s+2 1.174 + 1.175 + 1.176 +.S Colophon 1.177 +.LP 1.178 +The paper and slides were prepared with: 1.179 +.br 1.180 +.CW "vi sed awk refer troff dpost spell make hg 1.181 + 1.182 +.sp 1.183 +.LP 1.184 +Most of the tools are from 1.185 +.CW \s-2http://heirloom.sf.net\s0 1.186 +.LP 1.187 +The `slides' macros are based on 1.188 +.br 1.189 +.CW \s-2http://repo.cat-v.org/troff-slider/\s0 1.190 +.sp 2 1.191 + 1.192 +.LP 1.193 +The paper, the slides, and the complete sources are available on my website 1.194 +.CW \s-2http://marmaro.de/docs\s+2 1.195 + 1.196 +.sp 3 1.197 +2010-04-16