# HG changeset patch # User meillo@marmaro.de # Date 1267829808 -3600 # Node ID 2335f5658fca1a44825e483f1486d984e81f383b # Parent f0511a56416ea577ad1215a1fc01701cc692b4f2 added poster and slides diff -r f0511a56416e -r 2335f5658fca cs-2010-03_poster.ms --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cs-2010-03_poster.ms Fri Mar 05 23:56:48 2010 +0100 @@ -0,0 +1,56 @@ +.fp 1 R pplr8a.afm uplr8a.pfb +.fp 2 I pplri8a.afm uplri8a.pfb +.fp 3 B pplb8a.afm uplb8a.pfb +.fp 4 BI pplbi8a.afm uplbi8a.pfb +.fi +.ad b +.hy 14 +.de P +.br +.sp 0.8 +.. + +.sp 1i +.ps 30 +.vs 32 +ChaosSeminar +.br +des CCC Ulm + +.sp 1.0i +.ps 44 +.ft BI +.ce +Die Unix Philosophie + +.sp 0.7i +.ft R +.ps 18 +.vs 20 +.nr PD 10p +Ein Vortrag von \fBMarkus Schnalke\fP +über die wahre Genialität von Unix. +.P +Unix ist ein beeindruckendes Betriebssystem und eine +erstklassige Programmsammlung. +Doch dies ist beides letztlich nur eine Folge. +\fIDas eigentlich besondere an Unix ist seine Philosophie.\fP +Die Unix Philosophie ist eine Sammlung von Konzepte und +Designziele die in Unix umgesetzt wurden. +.P +Dieser Vortrag wird die Unix Philosophie vorstellen +und erklären weshalb sie zu hervorragender Software führt. +.P +Neben den rein technischen Aspekten bietet die +Unix Philosophie aber auch Anreize für das tägliche Leben. +Sie ist mehr als Richtlinien um gute Software zu erzeugen, +sie ist eine Inspiration in vielerlei Hinsicht. + +.sp 1i +.ps 30 +.vs 36 +.ce 2 +Montag, 08. März +.br +20:00 Uhr, H20 +.br diff -r f0511a56416e -r 2335f5658fca makefile --- a/makefile Tue Mar 02 14:34:07 2010 +0100 +++ b/makefile Fri Mar 05 23:56:48 2010 +0100 @@ -1,7 +1,10 @@ -all: unix-phil.ps unix-phil.txt +all: unix-phil.ps unix-phil.txt unix-phil-slides.ps unix-phil.ps: unix-phil.ms sh -c "`doctype unix-phil.ms`" >unix-phil.ps unix-phil.txt: unix-phil.ms sh -c "`doctype -n unix-phil.ms`" >unix-phil.txt + +unix-phil-slides.ps: unix-phil-slides.ms + sed -n '/./p' unix-phil-slides.ms | hl troff -ms slides - | hl dpost | insline 1 "%%BoundingBox: 0 0 600 450" >unix-phil-slides.ps diff -r f0511a56416e -r 2335f5658fca slides --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/slides Fri Mar 05 23:56:48 2010 +0100 @@ -0,0 +1,62 @@ +.pl 7i + +.fp 1 R H +.fp 2 I HI +.fp 3 B HB +.fp 4 BI HX + +.nr PS 16 +.nr VS 20p +.nr PD 12p + +.ds CH " + +.am TL +.sp 0.7i +.ps 24 +.vs 28p +.. +.am AU +.\"'sp 4.0i +.\".ps 14 +.\".vs 20p +.. + + +.de P +.ds CH " +.bp +\& +.sp 1.4i +.ce 1 +\s+8\fB\\$1\fP\s-8 +.na +.. + +.de S +.ds CH \s+2\f3\\$1\fP\s-2 +.bp +.LP +.na +.. + +.de I +.if !"\\$1"" .ds BX \\$1 +.if "\\$1"" .ds BX \(bu +.IP \\*(BX +.. + +.de CW +\&\f(CW\\$1\fP\\$2 +.. + + + +.\" .nr PO 0.5i \" page offset = left margin +.\" .nr HM 1i \" header margin +.\" .nr PS 12 +.\" .nr VS 14p +.\" .nr PD 6p +.\" .nr LL 6.5i +.\" .pl 15c +.\" .ds RF " diff -r f0511a56416e -r 2335f5658fca unix-phil-slides.ms --- /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 + + +.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