docs/unix-phil
diff unix-phil.ms @ 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 |
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