Mercurial > docs > unix-phil
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 |