docs/unix-phil

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 diff
     1.1 --- a/unix-phil.ms	Thu Mar 25 22:18:55 2010 +0100
     1.2 +++ b/unix-phil.ms	Sat Mar 27 14:27:36 2010 +0100
     1.3 @@ -1173,28 +1173,28 @@
     1.4  .PP
     1.5  Unlike most other web browsers, uzbl is mainly the mediator between the
     1.6  various tools that cover single jobs of web browsing.
     1.7 -Uzbl listens for commands on a named pipe (fifo), a Unix socket, and on stdin.
     1.8 -It writes events to a Unix socket and to stdout.
     1.9 -Loading a webpage in a running uzbl instance requires not more than:
    1.10 +Therefore, uzbl listens for commands on a named pipe (fifo), a Unix socket,
    1.11 +and on stdin, and it writes events to a Unix socket and to stdout.
    1.12 +The graphical rendering of the webpage is done by webkit, a web content engine.
    1.13 +Uzbl-core is build around this library.
    1.14 +Loading a webpage in a running uzbl instance requires only:
    1.15  .DS
    1.16  .CW
    1.17  echo 'uri http://example.org' >/path/to/uzbl-fifo
    1.18  .DE
    1.19 -The graphical rendering of the webpage is done by webkit,
    1.20 -which is a library that cares about the whole rendering task.
    1.21  .PP
    1.22  Downloads, browsing history, bookmarks, and thelike are not provided
    1.23  by uzbl-core itself, as they are in other web browsers.
    1.24 -Uzbl-browser only provides, so called, handler scripts that wrap
    1.25 -external applications which provide such function.
    1.26 +Uzbl-browser also only provides, so called, handler scripts that wrap
    1.27 +external applications which provide the actual functionality.
    1.28  For instance, \fIwget\fP is used to download files and uzbl-browser
    1.29  includes a script that calls wget with appropriate options in
    1.30  a prepared environment.
    1.31  .PP
    1.32  Modern web browsers are proud to have addons, plugins, and modules, instead.
    1.33  This is their effort to achieve similar goals.
    1.34 -But instead of using existing, external programs, the functions are
    1.35 -integrated into the web browser, just not compiled into it.
    1.36 +But instead of using existing, external programs, modern web browsers
    1.37 +include these functions, although they might be loaded at runtime.
    1.38  
    1.39  .NH 2
    1.40  Discussion of the design
    1.41 @@ -1203,12 +1203,55 @@
    1.42  as identified by Gancarz.
    1.43  
    1.44  .PP
    1.45 -.B "Small is beautiful
    1.46 -and
    1.47 -.B "make each program do one thing well" .
    1.48 -
    1.49 +.B "Make each program do one thing well" .
    1.50 +Uzbl tries to be a web browser and nothing else.
    1.51 +The common definition of a web browser is of course highly influenced by
    1.52 +existing implementations of web browsers which are degenerated.
    1.53 +Web browsers should be programs to browse the web, and nothing more.
    1.54 +This is the one thing they should do, as demanded by the Unix Philosophy.
    1.55 +Web browsers should not manage downloads.
    1.56 +This is the job download managers exist for.
    1.57 +Download managers do primary care about being good in downloading files.
    1.58 +Modern web browsers provide download management only as a secondary feature.
    1.59 +How could they perform this job better, than programs that exist only for
    1.60 +this very job?
    1.61 +And how could anyone want less than the best download manager available?
    1.62  .PP
    1.63 -.B "Build a prototype as soon as possible" .
    1.64 +A web browser's job is to let the user browse the web.
    1.65 +This means, navigating through websites by following links.
    1.66 +Rendering the \s-1HTML\s0 sources is a different job,
    1.67 +which is covered by the webkit render engine, in uzbl's case.
    1.68 +Audio and video content and files like PostScript, \s-1PDF\s0, and the like,
    1.69 +should be handled by external applications \(en
    1.70 +ones that exist to handle such data.
    1.71 +Uzbl strives to do it this way.
    1.72 +.I
    1.73 +``Write programs that do one thing and do it well.
    1.74 +Write programs to work together.''
    1.75 +.R
    1.76 +.PP
    1.77 +The lesser tenet
    1.78 +.B "allow the user to tailor the environment
    1.79 +matches good here.
    1.80 +There was the question, how anyone could want anything less than the
    1.81 +best program for the job.
    1.82 +But as personal preferences matter much, it is also important to ask:
    1.83 +How could anyone want something else than his preferred program for the job?
    1.84 +Usually users want one program for one job.
    1.85 +Hence, whenever the task is, for instance, downloading,
    1.86 +the same download manager should be used.
    1.87 +More advanced users might want to have this download manager in this
    1.88 +situation and that one in that situation.
    1.89 +They should be able to configure it this way.
    1.90 +With uzbl, one can use any download manager the user wants.
    1.91 +To switch to a different one, only one line in the small handler script
    1.92 +needs to be changed.
    1.93 +Alternatively it would be possible to query an environment variable
    1.94 +in the handler script.
    1.95 +As uzbl does neither have its own download manager nor depends on a
    1.96 +specific one, thus uzbl's browsing abilities will not be lowered by having
    1.97 +a bad download manager.
    1.98 +Of course, this applies to all of the other supplimentary tools, too.
    1.99  
   1.100  .PP
   1.101  .B "Use software leverage to your advantage
   1.102 @@ -1220,6 +1263,26 @@
   1.103  
   1.104  .PP
   1.105  .B "Make every program a filter" .
   1.106 +.B "Small is beautiful
   1.107 +and
   1.108 +
   1.109 +.PP
   1.110 +.B "Build a prototype as soon as possible" .
   1.111 +Plaetinck made his code public, right from the beginning.
   1.112 +Discussion and development was open to everyone interessted.
   1.113 +Within this first year of uzbl's existance, a new version was released,
   1.114 +more often than once a month.
   1.115 +Development version can be optained very simply from the code repository.
   1.116 +Different forks and branches arose, new features were tested for suitability.
   1.117 +The experiences of using prototypes influenced further development.
   1.118 +Actually, all development was community driven.
   1.119 +Plaetinck says:
   1.120 +``Right now I hardly code anything myself for Uzbl.
   1.121 +I just merge in other people's code, ponder a lot, and lead the discussions.''
   1.122 +.[
   1.123 +FIXME
   1.124 +%O http://lwn.net/Articles/341245/
   1.125 +.]
   1.126  
   1.127  
   1.128  .NH 2