# HG changeset patch # User meillo@marmaro.de # Date 1269536571 -3600 # Node ID d632de027d7797684edc3690681710aebb9adb27 # Parent 0caa9760fca8b0d2afeedb3132d318c4d0c348c2 wrote about uzbl (ch05) diff -r 0caa9760fca8 -r d632de027d77 unix-phil.ms --- a/unix-phil.ms Thu Mar 25 09:31:06 2010 +0100 +++ b/unix-phil.ms Thu Mar 25 18:02:51 2010 +0100 @@ -1107,22 +1107,111 @@ .NH 1 Case study: uzbl +.LP +The last chapter took a look on the \s-1MUA\s0 \s-1MH\s0, +this chapter is about uzbl, a web browser that adheres to the Unix Philosophy. +``uzbl'' is the \fIlolcat\fP's word for the English adjective ``usable''. +It is pronounced the identical. .NH 2 -History +Historical background .LP -uzbl is young +Uzbl was started by Dieter Plaetinck in April 2009. +The idea was born in a thread in the Arch Linux forum. +.[ +%O http://bbs.archlinux.org/viewtopic.php?id=67463 +.] +After some discussion about failures of well known web browsers, +Plaetinck (alias Dieter@be) came up with a very sketchy proposal +of how a better web browser could look like. +To the question of another member, if Plaetinck would write that program, +because it would sound fantastic, Plaetinck replied: +``Maybe, if I find the time ;-)''. +.PP +Fortunately, he found the time. +One day later, the first prototype was out. +One week later, uzbl had an own website. +One month after the first code showed up, +a mailing list was installed to coordinate and discuss further development. +A wiki was set up to store documentation and scripts that showed up on the +mailing list and elsewhere. +.PP +In the, now, one year of uzbl's existance, it was heavily developed in various branches. +Plaetinck's task became more and more to only merge the best code from the +different branches into his main branch, and to apply patches. +About once a month, Plaetinck released a new version. +In September 2009, he presented several forks of uzbl. +Uzbl, acutally, opened the field for a whole family of web browsers with similar shape. +.PP +In July 2009, \fILinux Weekly News\fP published an interview with Plaetinck about uzbl. +In September 2009, the uzbl web browser was on \fISlashdot\fP. .NH 2 -Contrasts to similar sw +Contrasts to other web browsers .LP -like with nmh -.LP -addons, plugins, modules +Like most \s-1MUA\s0s are monolithic, but \s-1MH\s0 is a toolchest, +most web browsers are monolithic, but uzbl is a frontend to a toolchest. +.PP +Today, uzbl is divided into uzbl-core and uzbl-browser. +Uzbl-core is, how its name already indicates, the core of uzbl. +It handles commands and events to interface other programs, +and also displays webpages by using webkit as render engine. +Uzbl-browser combines uzbl-core with a bunch of handler scripts, a status bar, +an event manager, yanking, pasting, page searching, zooming, and more stuff, +to form a ``complete'' web browser. +In the following text, the term ``uzbl'' usually stands for uzbl-browser, +so uzbl-core is included. +.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: +.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. +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. .NH 2 -Gains of the design +Discussion of the design .LP +This section discusses uzbl in regard of the Unix Philosophy, +as identified by Gancarz. + +.PP +.I "Small is beautiful +and +.I "make each program do one thing well" . + +.PP +.I "Build a prototype as soon as possible" . + +.PP +.I "Use software leverage to your advantage +and +.I "Use shell scripts to increase leverage and portability" . + +.PP +.I "Avoid captive user interfaces" . + +.PP +.I "Make every program a filter" . + .NH 2 Problems @@ -1130,6 +1219,11 @@ broken web +.NH 2 +Summary uzbl +.LP + + .NH 1 Final thoughts