comparison 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
comparison
equal deleted inserted replaced
31:0caa9760fca8 32:d632de027d77
1105 1105
1106 1106
1107 1107
1108 .NH 1 1108 .NH 1
1109 Case study: uzbl 1109 Case study: uzbl
1110 1110 .LP
1111 .NH 2 1111 The last chapter took a look on the \s-1MUA\s0 \s-1MH\s0,
1112 History 1112 this chapter is about uzbl, a web browser that adheres to the Unix Philosophy.
1113 .LP 1113 ``uzbl'' is the \fIlolcat\fP's word for the English adjective ``usable''.
1114 uzbl is young 1114 It is pronounced the identical.
1115 1115
1116 .NH 2 1116 .NH 2
1117 Contrasts to similar sw 1117 Historical background
1118 .LP 1118 .LP
1119 like with nmh 1119 Uzbl was started by Dieter Plaetinck in April 2009.
1120 .LP 1120 The idea was born in a thread in the Arch Linux forum.
1121 addons, plugins, modules 1121 .[
1122 1122 %O http://bbs.archlinux.org/viewtopic.php?id=67463
1123 .NH 2 1123 .]
1124 Gains of the design 1124 After some discussion about failures of well known web browsers,
1125 .LP 1125 Plaetinck (alias Dieter@be) came up with a very sketchy proposal
1126 of how a better web browser could look like.
1127 To the question of another member, if Plaetinck would write that program,
1128 because it would sound fantastic, Plaetinck replied:
1129 ``Maybe, if I find the time ;-)''.
1130 .PP
1131 Fortunately, he found the time.
1132 One day later, the first prototype was out.
1133 One week later, uzbl had an own website.
1134 One month after the first code showed up,
1135 a mailing list was installed to coordinate and discuss further development.
1136 A wiki was set up to store documentation and scripts that showed up on the
1137 mailing list and elsewhere.
1138 .PP
1139 In the, now, one year of uzbl's existance, it was heavily developed in various branches.
1140 Plaetinck's task became more and more to only merge the best code from the
1141 different branches into his main branch, and to apply patches.
1142 About once a month, Plaetinck released a new version.
1143 In September 2009, he presented several forks of uzbl.
1144 Uzbl, acutally, opened the field for a whole family of web browsers with similar shape.
1145 .PP
1146 In July 2009, \fILinux Weekly News\fP published an interview with Plaetinck about uzbl.
1147 In September 2009, the uzbl web browser was on \fISlashdot\fP.
1148
1149 .NH 2
1150 Contrasts to other web browsers
1151 .LP
1152 Like most \s-1MUA\s0s are monolithic, but \s-1MH\s0 is a toolchest,
1153 most web browsers are monolithic, but uzbl is a frontend to a toolchest.
1154 .PP
1155 Today, uzbl is divided into uzbl-core and uzbl-browser.
1156 Uzbl-core is, how its name already indicates, the core of uzbl.
1157 It handles commands and events to interface other programs,
1158 and also displays webpages by using webkit as render engine.
1159 Uzbl-browser combines uzbl-core with a bunch of handler scripts, a status bar,
1160 an event manager, yanking, pasting, page searching, zooming, and more stuff,
1161 to form a ``complete'' web browser.
1162 In the following text, the term ``uzbl'' usually stands for uzbl-browser,
1163 so uzbl-core is included.
1164 .PP
1165 Unlike most other web browsers, uzbl is mainly the mediator between the
1166 various tools that cover single jobs of web browsing.
1167 Uzbl listens for commands on a named pipe (fifo), a Unix socket, and on stdin.
1168 It writes events to a Unix socket and to stdout.
1169 Loading a webpage in a running uzbl instance requires not more than:
1170 .DS
1171 .CW
1172 echo 'uri http://example.org' >/path/to/uzbl-fifo
1173 .DE
1174 The graphical rendering of the webpage is done by webkit,
1175 which is a library that cares about the whole rendering task.
1176 .PP
1177 Downloads, browsing history, bookmarks, and thelike are not provided
1178 by uzbl-core itself, as they are in other web browsers.
1179 Uzbl-browser only provides, so called, handler scripts that wrap
1180 external applications which provide such function.
1181 For instance, \fIwget\fP is used to download files and uzbl-browser
1182 includes a script that calls wget with appropriate options in
1183 a prepared environment.
1184 .PP
1185 Modern web browsers are proud to have addons, plugins, and modules, instead.
1186 This is their effort to achieve similar goals.
1187 But instead of using existing, external programs, the functions are
1188 integrated into the web browser, just not compiled into it.
1189
1190 .NH 2
1191 Discussion of the design
1192 .LP
1193 This section discusses uzbl in regard of the Unix Philosophy,
1194 as identified by Gancarz.
1195
1196 .PP
1197 .I "Small is beautiful
1198 and
1199 .I "make each program do one thing well" .
1200
1201 .PP
1202 .I "Build a prototype as soon as possible" .
1203
1204 .PP
1205 .I "Use software leverage to your advantage
1206 and
1207 .I "Use shell scripts to increase leverage and portability" .
1208
1209 .PP
1210 .I "Avoid captive user interfaces" .
1211
1212 .PP
1213 .I "Make every program a filter" .
1214
1126 1215
1127 .NH 2 1216 .NH 2
1128 Problems 1217 Problems
1129 .LP 1218 .LP
1130 broken web 1219 broken web
1220
1221
1222 .NH 2
1223 Summary uzbl
1224 .LP
1131 1225
1132 1226
1133 1227
1134 .NH 1 1228 .NH 1
1135 Final thoughts 1229 Final thoughts