diff unix-phil-slides.ms @ 24:2335f5658fca

added poster and slides
author meillo@marmaro.de
date Fri, 05 Mar 2010 23:56:48 +0100
parents
children e6ac51dc18bf
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/unix-phil-slides.ms	Fri Mar 05 23:56:48 2010 +0100
@@ -0,0 +1,339 @@
+.TL
+\fR\s-6Why\s0\fP
+.br
+the Unix Philosophy
+.br
+.vs -4
+\fR\s-6(still) matters\s0\fP
+.AU
+.ft R
+.sp 1.2i
+.ps 11
+markus schnalke <meillo@marmaro.de>
+
+
+.S "goals of this talk
+.I
+introduce the Unix Phil
+.I
+explain why most modern software is crap
+.I
+explain why the Unix Phil leads to better software
+.I
+convince you that good software is of matter
+.sp 2
+.I
+make you think
+
+
+.S "roadmap
+.I
+Historical background
+.I
+What is the Unix Philosophy?
+.I
+The Unix Phil after Gancarz
+.I
+Discussion on real world examples
+.I
+The Unix Phil is more than software dev guidelines
+
+
+
+.S "me and the UP
+.LP
+first contact: through the suckless project
+.LP
+``cat -v Considered Harmful''
+.LP
+``The Unix and the Echo''
+.LP
+``The Unix Programming Environment''
+.sp 1
+.LP
+better understanding through digging in the past
+
+
+
+
+
+.P "historical background
+
+
+
+
+.S "historical background
+.I
+the late 60s and early 70s
+.I
+operating systems are complex
+.I
+MULTICS just failed
+.I
+Brooks' ``The Mythical Man-Month''
+.I
+a lot of different hardware
+.I
+limited computing power
+.I
+textual input and output (line printers)
+
+
+.S "everything is a file
+.LP
+is the(?) basic concept in Unix (and even more in Plan9)
+.LP
+made simple operating systems possible
+.LP
+it is not covered by the Unix Phil; the Unix Phil is on a different level
+.sp 2
+.LP
+Unix is mainly two things:
+.I
+an operating system (system calls)
+.I
+a toolchest (coreutils)
+
+
+
+.P "What is the Unix Phil
+
+
+
+.S "What is the Unix Phil *itself*?
+.LP
+``The Unix philosophy is a set of cultural norms and philosophical
+approaches to developing software based on the experience of
+leading developers of the Unix operating system.''
+(wikipedia)
+.sp 2
+.LP
+How the inventors of Unix write software.
+.LP
+Common things of classic Unix tools.
+.sp 2
+.LP
+difficult to define
+
+
+.S "Unix Phil vs. SW dev processes
+.LP
+the Unix Phil
+.I
+much: *what* to program
+.I
+few: *how* to program
+
+.LP
+Software developments processes:
+.I
+few: *what* to program
+.I
+much: *how* to program
+
+.sp 2
+.LP
+Extreme Programming is like the Unix Phil
+but with more *how* than *what*,
+and with formalisms
+
+
+
+
+
+.S "What is the Unix Phil?
+.I
+Doug McIlroy (1978)
+.I
+Mike Gancarz: ``The Unix Philosophy'' (1994)
+.I
+Eric S. Raymond: ``The Art of Unix Programming'' (2003)
+.sp 2
+.I
+Richard Gabriel: ``Worse is Better'' (1989)
+
+
+.S "Doug McIlroy
+.LP
+This is the Unix philosophy:
+.I
+Write programs that do one thing and do it well.
+.I
+Write programs to work together.
+.I
+Write programs to handle text streams, because that is a universal interface.
+
+
+.S "Mike Gancarz: ``The Unix Philosophy''
+.I
+Small is beautiful.
+.I
+Make each program do one thing well.
+.I
+Build a prototype as soon as possible.
+.I
+Choose portability over efficiency.
+.I
+Store data in flat text files.
+.I
+Use software leverage to your advantage.
+.I
+Use shell scripts to increase leverage and portability.
+.I
+Avoid captive user interfaces.
+.I
+Make every program a filter.
+.sp 1
+.LP
+plus ten lesser tenets
+
+
+
+
+.P "The Unix Phil after Gancarz
+
+.S "Small is beautiful.
+.LP
+foo
+
+
+.S "Make each program do one thing well.
+.LP
+foo
+
+
+.S "Build a prototype as soon as possible.
+.LP
+foo
+
+
+.S "Choose portability over efficiency.
+.LP
+foo
+
+
+.S "Store data in flat text files.
+.LP
+foo
+
+
+.S "Use software leverage to your advantage.
+.LP
+foo
+
+
+.S "Use shell scripts to increase leverage and portability.
+.LP
+foo
+
+
+.S "Avoid captive user interfaces.
+.LP
+foo
+
+
+.S "Make every program a filter.
+.LP
+foo
+
+
+
+
+
+.P "real world examples
+
+
+.S "various
+.LP
+who uses
+.CW "grep -R
+?
+
+.sp 1
+.LP
+.CW "cat -v
+
+.sp 1
+.LP
+pagers are taken for granted
+
+.sp 1
+.LP
+what about the readline?
+
+
+
+.S "find -printf
+.LP
+How to reformat the output of find(1) to have ``FILENAME PATH''
+instead of ``PATH/FILENAME''?
+
+.LP
+the ``easy'' way:
+\f(CWfind /dir -printf "%P %h\en"\fP
+
+.LP
+the ``good'' way:
+.br
+.CW "\s-1find /dir | sed 's,\e(.*\e)/\e(.*\e),\e2 \e1,'
+
+.LP
+The difference shows off when one wants, for instance,
+the path to be manipulated further.
+
+
+.S "MH / nmh
+.LP
+a Mail User Agent (MUA)
+
+
+.S "uzbl
+.LP
+a web browser that adheres to the Unix Phil
+
+
+
+
+
+.P "more than software dev guidelines
+
+
+
+
+
+.P "literature
+
+
+.S literature
+.I
+``\fBText Processing and Typesetting with Unix\fP''
+by Barron and Rees
+explains everything pretty good (focus on
+.CW nroff )
+.I
+``\fBHeirloom Documentation Tools Nroff/Troff User's Manual\fP''
+by Ossanna, Kernighan, and Ritter
+is more a technical reference
+.I
+Various documents collected on
+.CW \s-2http://troff.org\s+2
+
+
+.S
+.LP
+this talk was prepared using tools of the Heirloom project:
+.CW \s-2http://heirloom.sf.net\s+2
+.LP
+the slides macros are based on
+.br
+.CW \s-2http://repo.cat-v.org/troff-slider/\s+2
+.sp
+
+.LP
+the slides are available on my website
+.CW \s-2http://marmaro.de/docs\s+2
+and on
+.CW \s-2http://ulm.ccc.de/ChaosSeminar/\s+2
+.sp
+
+2010-03-08