changeset 27:e8adc3571e8c

rework
author meillo@marmaro.de
date Mon, 08 Mar 2010 12:58:58 +0100 (2010-03-08)
parents b368ff5cdb5f
children faff9ea75591
files unix-phil-slides.ms
diffstat 1 files changed, 158 insertions(+), 157 deletions(-) [+]
line wrap: on
line diff
--- a/unix-phil-slides.ms	Sun Mar 07 22:40:05 2010 +0100
+++ b/unix-phil-slides.ms	Mon Mar 08 12:58:58 2010 +0100
@@ -12,25 +12,25 @@
 markus schnalke <meillo@marmaro.de>
 
 
-.S "goals of this talk
+.S "Goals of this talk
 .I
-introduce the Unix Phil
+Introduce the Unix Phil
 .I
-show that most modern software is crap
+Show that most modern software is crap
 .I
-explain why the Unix Phil leads to better software
+Explain why the Unix Phil leads to better software
 .I
-convince you that good software is of matter
+Convince you that good software is of matter
 .sp 2
 .I
-make you think
+Make you think
 
 
-.S "roadmap
+.S "Roadmap
 .I
 Historical background
 .I
-What is the Unix Philosophy?
+What is the Unix Phil?
 .I
 The Unix Phil after Gancarz
 .I
@@ -40,9 +40,9 @@
 
 
 
-.S "me and the UP
+.S "How I learned about it
 .LP
-first contact: through the suckless project
+First contact through dwm (suckless project)
 .LP
 ``cat -v Considered Harmful''
 .LP
@@ -51,52 +51,54 @@
 ``The Unix Programming Environment''
 .sp 1
 .LP
-better understanding through digging in the past
+Better understanding through digging in the past
 
 
 
 
 
-.P "historical background
+.P "Historical background
 
 
 
 
-.S "historical background
-.I
-the late 60s and early 70s
-.I
-operating systems are complex
-.I
-MULTICS just failed
-.I
+.S "Historical background
+.LP
+The late 60s and early 70s
+.LP
+Operating systems are complex
+.LP
 Brooks' ``The Mythical Man-Month''
-.I
-a lot of different hardware
-.I
-limited computing power
-.I
-textual input and output (line printers)
+.LP
+MULTICS had just failed
+.LP
+A lot of different hardware
+.LP
+Limited computing power
+.LP
+Textual input and output (line printers)
 
 
-.S "everything is a file
+.S "Everything is a file
 .LP
-is the(?) basic concept in Unix (and even more in Plan9)
+Is the(?) basic concept in Unix (and even more in Plan9)
 .LP
-made simple operating systems possible
+Made simple operating systems possible
 .LP
-it is not covered by the Unix Phil; the Unix Phil is on a different level
+It is not covered by the Unix Phil
+.br
+The Unix Phil is on a different level
 .sp 2
 .LP
 Unix is mainly two things:
 .I
-an operating system (system calls)
+An operating system (system calls)
 .I
-a toolchest (coreutils)
+A toolchest (coreutils)
 
 
 
-.P "What is the Unix Phil
+.P "What is the Unix Phil?
 
 
 
@@ -113,12 +115,12 @@
 Common things of classic Unix tools.
 .sp 2
 .LP
-difficult to define
+Difficult to define
 
 
 .S "Unix Phil vs. SW dev processes
 .LP
-the Unix Phil
+The Unix Phil
 .I
 much: *what* to program
 .I
@@ -185,7 +187,7 @@
 Make every program a filter.
 .sp 1
 .LP
-plus ten lesser tenets
+Plus ten lesser tenets
 
 
 
@@ -195,153 +197,117 @@
 
 
 .S "Small is beautiful
-.I
-small software is easier to understand, write, maintain
-.I
-less lines of code contain less bugs
-.I
-monsters are large
+.LP
+Small software is easier to understand, write, maintain
+.LP
+Less lines of code contain less bugs
+.LP
+Monsters are large
 
 
 .S "Make each program do one thing well
-.I
-programs with many functions are large
-.I
-one thing is easier to understand
-.I
-often straight forward to implement
-.I
-reusable
+.LP
+Programs with many functions are large
+.LP
+One thing is easier to understand
+.LP
+Often straight forward to implement
+.LP
+Reusable
 
 
 .S "Build a prototype as soon as possible
-.I
-shows the quality of the design
-.I
-shows the problems of the software
-.I
-the best way to shape a software
-.I
-users find bugs
+.LP
+Shows the quality of the design
+.LP
+Shows the problems of the software
+.LP
+The best way to shape a software
+.LP
+Users find bugs
 
 
 .S "Choose portability over efficiency
-.I
-(comes from incompatible hardware in history)
-.I
-use is most important
-.I
-availability
-.I
-only needs to be fast enough
+.LP
+(Originates in a lot of incompatible hardware in history)
+.LP
+Use is most important
+.LP
+Availability
+.LP
+Only needs to be fast enough
 
 
 .S "Store data in flat text files
 .LP
-binary data is machine dependent
+Binary data is machine-dependent
 .LP
-human readable data is:
+Human readable data is:
 .I
-is very likely supported
+As generic as possible
 .I
-good to port
+Is very likely supported
 .I
-many tools work on it (Unix toolchest)
+Many tools work on it (Unix toolchest)
 .I
-as generic as possible
+Directly editable by humans
 .LP
-processing needs only to be fast enough
+Processing needs only to be fast enough
 
 
 .S "Use software leverage to your advantage
 .LP
-what do we have computers for?
+What do we have computers for?
 .LP
-make best use of computing power
+Make best use of computing power
 .LP
-reduce development effort
+Reduce development effort
 
 
 .S "Use shell scripts to increase leverage and portability
 .LP
-was very important in history
+Was very important in history
 .LP
-high level languages
+High level languages
 .LP
-prototyping
+Prototyping
 .LP
-quick hacks
+Quick hacks
 
 
 .S "Avoid captive user interfaces
 .LP
-don't assume the user to be human
+Don't assume the user to be human
 .LP
-exclude the user whenever possible
+Exclude the user whenever possible
 .LP
-automate
+Automate
 
 
 .S "Make every program a filter
 .LP
-programs transform data
-.LP
-combine programs
+Programs transform data
 .LP
-have one common interface
-
-
-
-.S "a different POV
-.I
-pipes
-.I
-interface design
-.I
-the toolchest approach
-.I
-a powerful shell
-.I
-worse is better
-.I
-upgrowth and survival
+Combine programs
+.LP
+Have one common interface
 
 
 
 .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:
+The ``easy'' way:
 \f(CWfind /dir -printf "%P %h\en"\fP
 
 .LP
-the ``good'' way:
+The ``good'' way:
 .br
 .CW "\s-1find /dir | sed 's,\e(.*\e)/\e(.*\e),\e2 \e1,'
 
@@ -350,82 +316,114 @@
 the path to be manipulated further.
 
 
+.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 "MH / nmh
 .LP
-a Mail User Agent (MUA)
+A Mail User Agent (MUA)
 .LP
-is a toolchest
+Is a toolchest
 .LP
-work with mails like with generic files
+Work with mails like with generic files
 .LP
-the only(?) MUA that follows the Unix Phil
+The only(?) MUA that follows the Unix Phil
 .LP
-has a very special feeling
+Has a very special feeling
 
 
 .S "uzbl
 .LP
-a web browser that adheres to the Unix Phil
+A web browser that adheres to the Unix Phil
 .LP
-a young project (about 1 year)
+A young project (about 1 year)
 .LP
-central question: what is the one task a web browser covers?
+Central question:
+.br
+What is the one task a web browser covers?
 .LP
-makes very visible use of software leverage
+Makes very visible use of software leverage
 .LP
-suffers hard from our broken web
+Suffers hard from our broken web
 
 
 
 
 
-.P "more than software dev guidelines
+.P "Some final thoughts
 
 
-.S "say no
+.S "Say no!
+.LP
+In today's computer world, the Unix Phil is often asceticism
 .LP
-in today's computer world, the Unix Phil is much of asceticism
+One needs to abjure a lot of ``nice'' features
 .LP
-one needs to abjure a lot of ``nice'' features
+Actually it is abjuring the bad solutions
 .LP
 IMO that leads to a valuable attitude
+.LP
+.sp 2
+Transfer it to your everyday life
 
 
-.S "avoid complexity
+.S "Avoid complexity
 .LP
-avoid complexity first and foremost
+Avoid complexity first and foremost
 .LP
-complexity is the ``boss enemy'', software developers fight against
+Complexity is the ``boss enemy'', software developers fight against
 .LP
-strive for simplicity, clarity, generality
+Strive for simplicity, clarity, generality
+.LP
+.sp 2
+Transfer it to your everyday life
 
 
-.S "good solutions
+.S "Good solutions
+.LP
+We don't need just solutions, we need good ones
 .LP
-we don't need just solutions, we need good ones
+Today, we can make almost everything possible,
+but we still cannot make it good
 .LP
-today, we can make almost everything possible,
-but we still cannot make it good
+.sp 2
+Transfer it to your everyday life
 
 
-.S "live it
+.S "Live it!
 .LP
-the Unix Phil is not just a few guidelines
+The Unix Phil is not just a few guidelines
 .LP
-you cannot follow just some of the tenets
+You cannot follow just some of the tenets
 .LP
-you will not understand the Unix Phil when you don't engage with it
+You will not understand the Unix Phil when you don't engage with it
 .sp 3
 .LP
 .ce
-it's a philosophy \(en live it!
+It's a philosophy \(en live it!
 
 
 
-.P "literature
+.P "Appendix
 
 
-.S literature
+.S Literature
 .I
 ``\fBThe Unix Philosophy\fP''
 by Mike Gancarz
@@ -456,19 +454,22 @@
 
 .S
 .LP
-this talk was prepared using tools of the Heirloom project:
+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
+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
+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
+.LP
+See my paper on the topic, too.
 
+.sp 2
 2010-03-08