comparison 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
comparison
equal deleted inserted replaced
34:0b2cf026d93d 35:f11406a85319
1171 In the following text, the term ``uzbl'' usually stands for uzbl-browser, 1171 In the following text, the term ``uzbl'' usually stands for uzbl-browser,
1172 so uzbl-core is included. 1172 so uzbl-core is included.
1173 .PP 1173 .PP
1174 Unlike most other web browsers, uzbl is mainly the mediator between the 1174 Unlike most other web browsers, uzbl is mainly the mediator between the
1175 various tools that cover single jobs of web browsing. 1175 various tools that cover single jobs of web browsing.
1176 Uzbl listens for commands on a named pipe (fifo), a Unix socket, and on stdin. 1176 Therefore, uzbl listens for commands on a named pipe (fifo), a Unix socket,
1177 It writes events to a Unix socket and to stdout. 1177 and on stdin, and it writes events to a Unix socket and to stdout.
1178 Loading a webpage in a running uzbl instance requires not more than: 1178 The graphical rendering of the webpage is done by webkit, a web content engine.
1179 Uzbl-core is build around this library.
1180 Loading a webpage in a running uzbl instance requires only:
1179 .DS 1181 .DS
1180 .CW 1182 .CW
1181 echo 'uri http://example.org' >/path/to/uzbl-fifo 1183 echo 'uri http://example.org' >/path/to/uzbl-fifo
1182 .DE 1184 .DE
1183 The graphical rendering of the webpage is done by webkit,
1184 which is a library that cares about the whole rendering task.
1185 .PP 1185 .PP
1186 Downloads, browsing history, bookmarks, and thelike are not provided 1186 Downloads, browsing history, bookmarks, and thelike are not provided
1187 by uzbl-core itself, as they are in other web browsers. 1187 by uzbl-core itself, as they are in other web browsers.
1188 Uzbl-browser only provides, so called, handler scripts that wrap 1188 Uzbl-browser also only provides, so called, handler scripts that wrap
1189 external applications which provide such function. 1189 external applications which provide the actual functionality.
1190 For instance, \fIwget\fP is used to download files and uzbl-browser 1190 For instance, \fIwget\fP is used to download files and uzbl-browser
1191 includes a script that calls wget with appropriate options in 1191 includes a script that calls wget with appropriate options in
1192 a prepared environment. 1192 a prepared environment.
1193 .PP 1193 .PP
1194 Modern web browsers are proud to have addons, plugins, and modules, instead. 1194 Modern web browsers are proud to have addons, plugins, and modules, instead.
1195 This is their effort to achieve similar goals. 1195 This is their effort to achieve similar goals.
1196 But instead of using existing, external programs, the functions are 1196 But instead of using existing, external programs, modern web browsers
1197 integrated into the web browser, just not compiled into it. 1197 include these functions, although they might be loaded at runtime.
1198 1198
1199 .NH 2 1199 .NH 2
1200 Discussion of the design 1200 Discussion of the design
1201 .LP 1201 .LP
1202 This section discusses uzbl in regard of the Unix Philosophy, 1202 This section discusses uzbl in regard of the Unix Philosophy,
1203 as identified by Gancarz. 1203 as identified by Gancarz.
1204 1204
1205 .PP 1205 .PP
1206 .B "Small is beautiful 1206 .B "Make each program do one thing well" .
1207 and 1207 Uzbl tries to be a web browser and nothing else.
1208 .B "make each program do one thing well" . 1208 The common definition of a web browser is of course highly influenced by
1209 1209 existing implementations of web browsers which are degenerated.
1210 .PP 1210 Web browsers should be programs to browse the web, and nothing more.
1211 .B "Build a prototype as soon as possible" . 1211 This is the one thing they should do, as demanded by the Unix Philosophy.
1212 Web browsers should not manage downloads.
1213 This is the job download managers exist for.
1214 Download managers do primary care about being good in downloading files.
1215 Modern web browsers provide download management only as a secondary feature.
1216 How could they perform this job better, than programs that exist only for
1217 this very job?
1218 And how could anyone want less than the best download manager available?
1219 .PP
1220 A web browser's job is to let the user browse the web.
1221 This means, navigating through websites by following links.
1222 Rendering the \s-1HTML\s0 sources is a different job,
1223 which is covered by the webkit render engine, in uzbl's case.
1224 Audio and video content and files like PostScript, \s-1PDF\s0, and the like,
1225 should be handled by external applications \(en
1226 ones that exist to handle such data.
1227 Uzbl strives to do it this way.
1228 .I
1229 ``Write programs that do one thing and do it well.
1230 Write programs to work together.''
1231 .R
1232 .PP
1233 The lesser tenet
1234 .B "allow the user to tailor the environment
1235 matches good here.
1236 There was the question, how anyone could want anything less than the
1237 best program for the job.
1238 But as personal preferences matter much, it is also important to ask:
1239 How could anyone want something else than his preferred program for the job?
1240 Usually users want one program for one job.
1241 Hence, whenever the task is, for instance, downloading,
1242 the same download manager should be used.
1243 More advanced users might want to have this download manager in this
1244 situation and that one in that situation.
1245 They should be able to configure it this way.
1246 With uzbl, one can use any download manager the user wants.
1247 To switch to a different one, only one line in the small handler script
1248 needs to be changed.
1249 Alternatively it would be possible to query an environment variable
1250 in the handler script.
1251 As uzbl does neither have its own download manager nor depends on a
1252 specific one, thus uzbl's browsing abilities will not be lowered by having
1253 a bad download manager.
1254 Of course, this applies to all of the other supplimentary tools, too.
1212 1255
1213 .PP 1256 .PP
1214 .B "Use software leverage to your advantage 1257 .B "Use software leverage to your advantage
1215 and 1258 and
1216 .B "Use shell scripts to increase leverage and portability" . 1259 .B "Use shell scripts to increase leverage and portability" .
1218 .PP 1261 .PP
1219 .B "Avoid captive user interfaces" . 1262 .B "Avoid captive user interfaces" .
1220 1263
1221 .PP 1264 .PP
1222 .B "Make every program a filter" . 1265 .B "Make every program a filter" .
1266 .B "Small is beautiful
1267 and
1268
1269 .PP
1270 .B "Build a prototype as soon as possible" .
1271 Plaetinck made his code public, right from the beginning.
1272 Discussion and development was open to everyone interessted.
1273 Within this first year of uzbl's existance, a new version was released,
1274 more often than once a month.
1275 Development version can be optained very simply from the code repository.
1276 Different forks and branches arose, new features were tested for suitability.
1277 The experiences of using prototypes influenced further development.
1278 Actually, all development was community driven.
1279 Plaetinck says:
1280 ``Right now I hardly code anything myself for Uzbl.
1281 I just merge in other people's code, ponder a lot, and lead the discussions.''
1282 .[
1283 FIXME
1284 %O http://lwn.net/Articles/341245/
1285 .]
1223 1286
1224 1287
1225 .NH 2 1288 .NH 2
1226 Problems 1289 Problems
1227 .LP 1290 .LP