docs/unix-phil

diff unix-phil.ms @ 32:d632de027d77

wrote about uzbl (ch05)
author meillo@marmaro.de
date Thu, 25 Mar 2010 18:02:51 +0100
parents 0caa9760fca8
children 0bd43c4ad9f8
line diff
     1.1 --- a/unix-phil.ms	Thu Mar 25 09:31:06 2010 +0100
     1.2 +++ b/unix-phil.ms	Thu Mar 25 18:02:51 2010 +0100
     1.3 @@ -1107,22 +1107,111 @@
     1.4  
     1.5  .NH 1
     1.6  Case study: uzbl
     1.7 +.LP
     1.8 +The last chapter took a look on the \s-1MUA\s0 \s-1MH\s0,
     1.9 +this chapter is about uzbl, a web browser that adheres to the Unix Philosophy.
    1.10 +``uzbl'' is the \fIlolcat\fP's word for the English adjective ``usable''.
    1.11 +It is pronounced the identical.
    1.12  
    1.13  .NH 2
    1.14 -History
    1.15 +Historical background
    1.16  .LP
    1.17 -uzbl is young
    1.18 +Uzbl was started by Dieter Plaetinck in April 2009.
    1.19 +The idea was born in a thread in the Arch Linux forum.
    1.20 +.[
    1.21 +%O http://bbs.archlinux.org/viewtopic.php?id=67463
    1.22 +.]
    1.23 +After some discussion about failures of well known web browsers,
    1.24 +Plaetinck (alias Dieter@be) came up with a very sketchy proposal
    1.25 +of how a better web browser could look like.
    1.26 +To the question of another member, if Plaetinck would write that program,
    1.27 +because it would sound fantastic, Plaetinck replied:
    1.28 +``Maybe, if I find the time ;-)''.
    1.29 +.PP
    1.30 +Fortunately, he found the time.
    1.31 +One day later, the first prototype was out.
    1.32 +One week later, uzbl had an own website.
    1.33 +One month after the first code showed up,
    1.34 +a mailing list was installed to coordinate and discuss further development.
    1.35 +A wiki was set up to store documentation and scripts that showed up on the
    1.36 +mailing list and elsewhere.
    1.37 +.PP
    1.38 +In the, now, one year of uzbl's existance, it was heavily developed in various branches.
    1.39 +Plaetinck's task became more and more to only merge the best code from the
    1.40 +different branches into his main branch, and to apply patches.
    1.41 +About once a month, Plaetinck released a new version.
    1.42 +In September 2009, he presented several forks of uzbl.
    1.43 +Uzbl, acutally, opened the field for a whole family of web browsers with similar shape.
    1.44 +.PP
    1.45 +In July 2009, \fILinux Weekly News\fP published an interview with Plaetinck about uzbl.
    1.46 +In September 2009, the uzbl web browser was on \fISlashdot\fP.
    1.47  
    1.48  .NH 2
    1.49 -Contrasts to similar sw
    1.50 +Contrasts to other web browsers
    1.51  .LP
    1.52 -like with nmh
    1.53 -.LP
    1.54 -addons, plugins, modules
    1.55 +Like most \s-1MUA\s0s are monolithic, but \s-1MH\s0 is a toolchest,
    1.56 +most web browsers are monolithic, but uzbl is a frontend to a toolchest.
    1.57 +.PP
    1.58 +Today, uzbl is divided into uzbl-core and uzbl-browser.
    1.59 +Uzbl-core is, how its name already indicates, the core of uzbl.
    1.60 +It handles commands and events to interface other programs,
    1.61 +and also displays webpages by using webkit as render engine.
    1.62 +Uzbl-browser combines uzbl-core with a bunch of handler scripts, a status bar,
    1.63 +an event manager, yanking, pasting, page searching, zooming, and more stuff,
    1.64 +to form a ``complete'' web browser.
    1.65 +In the following text, the term ``uzbl'' usually stands for uzbl-browser,
    1.66 +so uzbl-core is included.
    1.67 +.PP
    1.68 +Unlike most other web browsers, uzbl is mainly the mediator between the
    1.69 +various tools that cover single jobs of web browsing.
    1.70 +Uzbl listens for commands on a named pipe (fifo), a Unix socket, and on stdin.
    1.71 +It writes events to a Unix socket and to stdout.
    1.72 +Loading a webpage in a running uzbl instance requires not more than:
    1.73 +.DS
    1.74 +.CW
    1.75 +echo 'uri http://example.org' >/path/to/uzbl-fifo
    1.76 +.DE
    1.77 +The graphical rendering of the webpage is done by webkit,
    1.78 +which is a library that cares about the whole rendering task.
    1.79 +.PP
    1.80 +Downloads, browsing history, bookmarks, and thelike are not provided
    1.81 +by uzbl-core itself, as they are in other web browsers.
    1.82 +Uzbl-browser only provides, so called, handler scripts that wrap
    1.83 +external applications which provide such function.
    1.84 +For instance, \fIwget\fP is used to download files and uzbl-browser
    1.85 +includes a script that calls wget with appropriate options in
    1.86 +a prepared environment.
    1.87 +.PP
    1.88 +Modern web browsers are proud to have addons, plugins, and modules, instead.
    1.89 +This is their effort to achieve similar goals.
    1.90 +But instead of using existing, external programs, the functions are
    1.91 +integrated into the web browser, just not compiled into it.
    1.92  
    1.93  .NH 2
    1.94 -Gains of the design
    1.95 +Discussion of the design
    1.96  .LP
    1.97 +This section discusses uzbl in regard of the Unix Philosophy,
    1.98 +as identified by Gancarz.
    1.99 +
   1.100 +.PP
   1.101 +.I "Small is beautiful
   1.102 +and
   1.103 +.I "make each program do one thing well" .
   1.104 +
   1.105 +.PP
   1.106 +.I "Build a prototype as soon as possible" .
   1.107 +
   1.108 +.PP
   1.109 +.I "Use software leverage to your advantage
   1.110 +and
   1.111 +.I "Use shell scripts to increase leverage and portability" .
   1.112 +
   1.113 +.PP
   1.114 +.I "Avoid captive user interfaces" .
   1.115 +
   1.116 +.PP
   1.117 +.I "Make every program a filter" .
   1.118 +
   1.119  
   1.120  .NH 2
   1.121  Problems
   1.122 @@ -1130,6 +1219,11 @@
   1.123  broken web
   1.124  
   1.125  
   1.126 +.NH 2
   1.127 +Summary uzbl
   1.128 +.LP
   1.129 +
   1.130 +
   1.131  
   1.132  .NH 1
   1.133  Final thoughts