docs/unix-phil
changeset 56:7678e37ceffc
added presentation slides
author | meillo@marmaro.de |
---|---|
date | Thu, 15 Apr 2010 23:04:07 +0200 |
parents | acd63ecc3606 |
children | 840cbc667009 |
files | makefile unix-phil-slides2.ms |
diffstat | 2 files changed, 198 insertions(+), 1 deletions(-) [+] |
line diff
1.1 --- a/makefile Thu Apr 15 23:03:39 2010 +0200 1.2 +++ b/makefile Thu Apr 15 23:04:07 2010 +0200 1.3 @@ -1,4 +1,4 @@ 1.4 -all: unix-phil.ps unix-phil.txt unix-phil-slides.ps 1.5 +all: unix-phil.ps unix-phil.txt unix-phil-slides.ps unix-phil-slides2.ps 1.6 1.7 unix-phil.ps: unix-phil.ms bib 1.8 . hl ; sed -n '/./p' $< | refer -e -sLAD -P -p bib | troff -ms | dpost >$@ 1.9 @@ -8,3 +8,6 @@ 1.10 1.11 unix-phil-slides.ps: unix-phil-slides.ms 1.12 . hl ; sed -n '/./p' $< | troff -ms slides - | dpost | insline 1 "%%BoundingBox: 0 0 600 450" >$@ 1.13 + 1.14 +unix-phil-slides2.ps: unix-phil-slides2.ms 1.15 + . hl ; sed -n '/./p' $< | troff -ms slides - | dpost | insline 1 "%%BoundingBox: 0 0 600 450" >$@
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/unix-phil-slides2.ms Thu Apr 15 23:04:07 2010 +0200 2.3 @@ -0,0 +1,194 @@ 2.4 +.ps 11 2.5 +.ce 2.6 +Seminar ``Software Analysis'' 2.7 +.TL 2.8 +\fR\s-6Why\s0\fP 2.9 +.br 2.10 +the Unix Philosophy 2.11 +.br 2.12 +.vs -4 2.13 +\fR\s-6still matters\s0\fP 2.14 +.AU 2.15 +.ft R 2.16 +.sp .5i 2.17 +.sp .5i 2.18 +.ps 11 2.19 +markus schnalke <meillo@marmaro.de> 2.20 + 2.21 + 2.22 +.S "Software design 2.23 +.rs 2.24 +.sp 2.25 +.LP 2.26 +\&... is about quality 2.27 +.I 2.28 +Good design \(-> good quality 2.29 +.I 2.30 +Bad design \(-> problems 2.31 +.sp 2.32 +.LP 2.33 +\&... and consistency 2.34 +.LP 2.35 +.sp 2 2.36 +Unix Phil = guidelines for good design 2.37 + 2.38 + 2.39 + 2.40 +.S "The Unix Phil *itself* 2.41 +.rs 2.42 +.sp 2.43 +.LP 2.44 +Wikipedia: 2.45 +.ce 99 2.46 +.sp 2.47 +The Unix philosophy is 2.48 +a set of cultural norms and philosophical approaches 2.49 +to developing software 2.50 +based on the experience 2.51 +of leading developers of the Unix operating system. 2.52 +.sp 2.53 + 2.54 + 2.55 +.S "Unix Phil and Software dev processes 2.56 +.rs 2.57 +.sp 2.58 +.LP 2.59 +The Unix Phil: 2.60 +.I 2.61 +mostly *what* 2.62 + 2.63 +.sp 2.64 +.LP 2.65 +Software dev processes: 2.66 +.I 2.67 +mostly *how* 2.68 +.sp 2 2.69 +.LP 2.70 +Extreme Programming and the Unix Phil 2.71 +are good friends 2.72 + 2.73 + 2.74 + 2.75 +.S "The Unix Phil by Doug McIlroy (1978) 2.76 +.rs 2.77 +.sp 2.78 +.LP 2.79 +This is the Unix philosophy: 2.80 +.I 2.81 +Write programs that do one thing and do it well. 2.82 +.I 2.83 +Write programs to work together. 2.84 +.I 2.85 +Write programs to handle text streams, because that is a universal interface. 2.86 + 2.87 + 2.88 +.S "The Unix Phil by Mike Gancarz (1995) 2.89 +.rs 2.90 +.sp .2v 2.91 +.I 2.92 +Small is beautiful. 2.93 +.I 2.94 +Make each program do one thing well. 2.95 +.I 2.96 +Build a prototype as soon as possible. 2.97 +.I 2.98 +Choose portability over efficiency. 2.99 +.I 2.100 +Store data in flat text files. 2.101 +.I 2.102 +Use software leverage to your advantage. 2.103 +.I 2.104 +Use shell scripts to increase leverage and portability. 2.105 +.I 2.106 +Avoid captive user interfaces. 2.107 +.I 2.108 +Make every program a filter. 2.109 +.sp 1 2.110 +.LP 2.111 +Plus ten lesser tenets 2.112 + 2.113 + 2.114 + 2.115 + 2.116 +.S "Case studies 2.117 +.LP 2.118 +.B "MH / nmh 2.119 +.LP 2.120 +The only MUA that is a toolchest 2.121 +.LP 2.122 +Makes use of the powerful shell 2.123 +.LP 2.124 +Great example of applied Unix Phil 2.125 + 2.126 +.sp 1 2.127 +.LP 2.128 +.B uzbl 2.129 +.LP 2.130 +A web browser that adheres to the Unix Phil 2.131 +.LP 2.132 +Central question: 2.133 +.br 2.134 +What is the one thing a web browser should do well? 2.135 +.LP 2.136 +Makes very visible use of software leverage 2.137 + 2.138 + 2.139 + 2.140 + 2.141 + 2.142 +.S "Why? 2.143 +.rs 2.144 +.sp 2.145 +.LP 2.146 +.ce 2.147 +We don't need just any solutions, we need good ones 2.148 + 2.149 +.sp 3 2.150 +.LP 2.151 +.ce 2.152 +Avoid \fBcomplexity\fP first and foremost! 2.153 +.LP 2.154 +.ce 2.155 +Exploit software \fBleverage\fP! 2.156 + 2.157 + 2.158 +.S "Further reading 2.159 +.LP 2.160 +The paper to the slides 2.161 +.sp 2.162 +.LP 2.163 +My talk on this topic at the ChaosSeminar of CCC Ulm 2.164 +.CW \s-2http://ulm.ccc.de/ChaosSeminar/2010/03_UnixPhil\s0 2.165 +.sp 2.166 +.LP 2.167 +Mike Gancarz' book 2.168 +\fI``The Unix Philosophy''\fP 2.169 +.sp 2.170 +.LP 2.171 +\fI``cat -v Considered Harmful''\fP 2.172 +by Pike and Kernighan 2.173 +.CW \s-2http://harmful.cat-v.org/cat-v/\s+2 2.174 + 2.175 + 2.176 +.S Colophon 2.177 +.LP 2.178 +The paper and slides were prepared with: 2.179 +.br 2.180 +.CW "vi sed awk refer troff dpost spell make hg 2.181 + 2.182 +.sp 2.183 +.LP 2.184 +Most of the tools are from 2.185 +.CW \s-2http://heirloom.sf.net\s0 2.186 +.LP 2.187 +The `slides' macros are based on 2.188 +.br 2.189 +.CW \s-2http://repo.cat-v.org/troff-slider/\s0 2.190 +.sp 2 2.191 + 2.192 +.LP 2.193 +The paper, the slides, and the complete sources are available on my website 2.194 +.CW \s-2http://marmaro.de/docs\s+2 2.195 + 2.196 +.sp 3 2.197 +2010-04-16