changeset 35:f11406a85319

some minor rework; new content in ch05
author meillo@marmaro.de
date Sat, 27 Mar 2010 14:27:36 +0100
parents 0b2cf026d93d
children 4f2b2defbc8c
files unix-phil.ms
diffstat 1 files changed, 77 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/unix-phil.ms	Thu Mar 25 22:18:55 2010 +0100
+++ b/unix-phil.ms	Sat Mar 27 14:27:36 2010 +0100
@@ -1173,28 +1173,28 @@
 .PP
 Unlike most other web browsers, uzbl is mainly the mediator between the
 various tools that cover single jobs of web browsing.
-Uzbl listens for commands on a named pipe (fifo), a Unix socket, and on stdin.
-It writes events to a Unix socket and to stdout.
-Loading a webpage in a running uzbl instance requires not more than:
+Therefore, uzbl listens for commands on a named pipe (fifo), a Unix socket,
+and on stdin, and it writes events to a Unix socket and to stdout.
+The graphical rendering of the webpage is done by webkit, a web content engine.
+Uzbl-core is build around this library.
+Loading a webpage in a running uzbl instance requires only:
 .DS
 .CW
 echo 'uri http://example.org' >/path/to/uzbl-fifo
 .DE
-The graphical rendering of the webpage is done by webkit,
-which is a library that cares about the whole rendering task.
 .PP
 Downloads, browsing history, bookmarks, and thelike are not provided
 by uzbl-core itself, as they are in other web browsers.
-Uzbl-browser only provides, so called, handler scripts that wrap
-external applications which provide such function.
+Uzbl-browser also only provides, so called, handler scripts that wrap
+external applications which provide the actual functionality.
 For instance, \fIwget\fP is used to download files and uzbl-browser
 includes a script that calls wget with appropriate options in
 a prepared environment.
 .PP
 Modern web browsers are proud to have addons, plugins, and modules, instead.
 This is their effort to achieve similar goals.
-But instead of using existing, external programs, the functions are
-integrated into the web browser, just not compiled into it.
+But instead of using existing, external programs, modern web browsers
+include these functions, although they might be loaded at runtime.
 
 .NH 2
 Discussion of the design
@@ -1203,12 +1203,55 @@
 as identified by Gancarz.
 
 .PP
-.B "Small is beautiful
-and
-.B "make each program do one thing well" .
-
+.B "Make each program do one thing well" .
+Uzbl tries to be a web browser and nothing else.
+The common definition of a web browser is of course highly influenced by
+existing implementations of web browsers which are degenerated.
+Web browsers should be programs to browse the web, and nothing more.
+This is the one thing they should do, as demanded by the Unix Philosophy.
+Web browsers should not manage downloads.
+This is the job download managers exist for.
+Download managers do primary care about being good in downloading files.
+Modern web browsers provide download management only as a secondary feature.
+How could they perform this job better, than programs that exist only for
+this very job?
+And how could anyone want less than the best download manager available?
 .PP
-.B "Build a prototype as soon as possible" .
+A web browser's job is to let the user browse the web.
+This means, navigating through websites by following links.
+Rendering the \s-1HTML\s0 sources is a different job,
+which is covered by the webkit render engine, in uzbl's case.
+Audio and video content and files like PostScript, \s-1PDF\s0, and the like,
+should be handled by external applications \(en
+ones that exist to handle such data.
+Uzbl strives to do it this way.
+.I
+``Write programs that do one thing and do it well.
+Write programs to work together.''
+.R
+.PP
+The lesser tenet
+.B "allow the user to tailor the environment
+matches good here.
+There was the question, how anyone could want anything less than the
+best program for the job.
+But as personal preferences matter much, it is also important to ask:
+How could anyone want something else than his preferred program for the job?
+Usually users want one program for one job.
+Hence, whenever the task is, for instance, downloading,
+the same download manager should be used.
+More advanced users might want to have this download manager in this
+situation and that one in that situation.
+They should be able to configure it this way.
+With uzbl, one can use any download manager the user wants.
+To switch to a different one, only one line in the small handler script
+needs to be changed.
+Alternatively it would be possible to query an environment variable
+in the handler script.
+As uzbl does neither have its own download manager nor depends on a
+specific one, thus uzbl's browsing abilities will not be lowered by having
+a bad download manager.
+Of course, this applies to all of the other supplimentary tools, too.
 
 .PP
 .B "Use software leverage to your advantage
@@ -1220,6 +1263,26 @@
 
 .PP
 .B "Make every program a filter" .
+.B "Small is beautiful
+and
+
+.PP
+.B "Build a prototype as soon as possible" .
+Plaetinck made his code public, right from the beginning.
+Discussion and development was open to everyone interessted.
+Within this first year of uzbl's existance, a new version was released,
+more often than once a month.
+Development version can be optained very simply from the code repository.
+Different forks and branches arose, new features were tested for suitability.
+The experiences of using prototypes influenced further development.
+Actually, all development was community driven.
+Plaetinck says:
+``Right now I hardly code anything myself for Uzbl.
+I just merge in other people's code, ponder a lot, and lead the discussions.''
+.[
+FIXME
+%O http://lwn.net/Articles/341245/
+.]
 
 
 .NH 2