docs/unix-phil

changeset 38:3628e9649046

wrote uzbl summary and did several spell fixes
author meillo@marmaro.de
date Sat, 03 Apr 2010 12:56:38 +0200
parents 9282c4cea18c
children c87143793d82
files unix-phil.ms
diffstat 1 files changed, 65 insertions(+), 35 deletions(-) [+]
line diff
     1.1 --- a/unix-phil.ms	Sat Apr 03 10:33:33 2010 +0200
     1.2 +++ b/unix-phil.ms	Sat Apr 03 12:56:38 2010 +0200
     1.3 @@ -31,7 +31,7 @@
     1.4  This paper discusses the importance of the Unix Philosophy in software design.
     1.5  Today, few software designers are aware of these concepts,
     1.6  and thus most modern software is limited and does not make use of software leverage.
     1.7 -Knowing and following the tenets of the Unix Philosophy makes software more valuable.
     1.8 +Knowing and following the guidelines of the Unix Philosophy makes software more valuable.
     1.9  .AE
    1.10  
    1.11  .\".if t .2C
    1.12 @@ -717,7 +717,7 @@
    1.13  They are large, monolithic programs which include all emailing functions.
    1.14  .PP
    1.15  A different way was taken by the people of \s-1RAND\s0 Corporation.
    1.16 -In the beginning, they also had used a monolitic mail system,
    1.17 +In the beginning, they also had used a monolithic mail system,
    1.18  called \s-1MS\s0 (for ``mail system'').
    1.19  But in 1977, Stockton Gaines and Norman Shapiro
    1.20  came up with a proposal of a new email system concept \(en
    1.21 @@ -754,7 +754,7 @@
    1.22  Contrasts to monolithic mail systems
    1.23  .LP
    1.24  All \s-1MUA\s0s are monolithic, except \s-1MH\s0.
    1.25 -Although there might acutally exist further, very little known,
    1.26 +Although there might actually exist further, very little known,
    1.27  toolchest \s-1MUA\s0s, this statement reflects the situation pretty well.
    1.28  .PP
    1.29  Monolithic \s-1MUA\s0s gather all their functions in one program.
    1.30 @@ -802,7 +802,7 @@
    1.31  Using a monolithic program with a captive user interface
    1.32  means ``entering'' the program, using it, and ``exiting'' the program.
    1.33  Using toolchests like \s-1MH\s0 means running programs,
    1.34 -alone or in combinition with others, even from other toolchests,
    1.35 +alone or in combination with others, even from other toolchests,
    1.36  without leaving the shell.
    1.37  
    1.38  .NH 2
    1.39 @@ -1145,12 +1145,12 @@
    1.40  A wiki was set up to store documentation and scripts that showed up on the
    1.41  mailing list and elsewhere.
    1.42  .PP
    1.43 -In the, now, one year of uzbl's existance, it was heavily developed in various branches.
    1.44 +In the, now, one year of uzbl's existence, it was heavily developed in various branches.
    1.45  Plaetinck's task became more and more to only merge the best code from the
    1.46  different branches into his main branch, and to apply patches.
    1.47  About once a month, Plaetinck released a new version.
    1.48  In September 2009, he presented several forks of uzbl.
    1.49 -Uzbl, acutally, opened the field for a whole family of web browsers with similar shape.
    1.50 +Uzbl, actually, opened the field for a whole family of web browsers with similar shape.
    1.51  .PP
    1.52  In July 2009, \fILinux Weekly News\fP published an interview with Plaetinck about uzbl.
    1.53  In September 2009, the uzbl web browser was on \fISlashdot\fP.
    1.54 @@ -1261,7 +1261,7 @@
    1.55  a bad download manager.
    1.56  Uzbl's download capabilities will just as good as the ones of the best
    1.57  download manager available on the system.
    1.58 -Of course, this applies to all of the other supplimentary tools, too.
    1.59 +Of course, this applies to all of the other supplementary tools, too.
    1.60  
    1.61  .PP
    1.62  .B "Use software leverage to your advantage" .
    1.63 @@ -1303,7 +1303,7 @@
    1.64  a captive user interface.
    1.65  But the difference to most other web browsers is, that uzbl is only
    1.66  the captive user interface frontend and the core of the backend.
    1.67 -Many parts of the backend are independed of uzbl.
    1.68 +Many parts of the backend are independent of uzbl.
    1.69  Some are distributed with uzbl, for some external programs, handler scripts
    1.70  are distributed, arbitrary additional functionality can be added if desired.
    1.71  .PP
    1.72 @@ -1326,8 +1326,8 @@
    1.73  
    1.74  .PP
    1.75  .B "Small is beautiful"
    1.76 -is not easy to apply to a web browser, primary because the rendering task
    1.77 -is very complex.
    1.78 +is not easy to apply to a web browser, primary because modern web technology
    1.79 +is very complex; hence the rendering task is very complex.
    1.80  Modern web browsers will always consist of many thousand lines of code,
    1.81  unfortunately.
    1.82  Using the toolchest approach and wrappers can split the browser into
    1.83 @@ -1336,22 +1336,28 @@
    1.84  Uzbl-core consists of about 3\,500 lines of C code.
    1.85  The distribution includes another 3\,500 lines of Shell and Python code,
    1.86  which are the handler scripts and plugins like a modal interface.
    1.87 -Further more, uzbl uses external tools like \fIwget\fP, \fInetcat\fP.
    1.88 +Further more, uzbl uses functionality of external tools like
    1.89 +\fIwget\fP and \fInetcat\fP.
    1.90  Up to this point, uzbl looks pretty neat and small.
    1.91 -The ugly part of uzbl is the web content renderer webkit.
    1.92 +The ugly part of uzbl is the web content renderer, webkit.
    1.93  Webkit consists of roughly 400\,000 (!) lines of code.
    1.94 +Unfortunately, small web render engines are not possible anymore
    1.95 +because of the modern web.
    1.96 +The problems section will explain this in more detail.
    1.97  
    1.98  .PP
    1.99  .B "Build a prototype as soon as possible" .
   1.100  Plaetinck made his code public, right from the beginning.
   1.101 -Discussion and development was open to everyone interessted.
   1.102 -Within this first year of uzbl's existance, a new version was released,
   1.103 +Discussion and development was, and still is, open to everyone interested.
   1.104 +Development versions of uzbl can be obtained very simply from the code
   1.105 +repository.
   1.106 +Within the first year of uzbl's existence, a new version was released
   1.107  more often than once a month.
   1.108 -Development version can be optained very simply from the code repository.
   1.109 -Different forks and branches arose, new features were tested for suitability.
   1.110 +Different forks and branches arose.
   1.111 +They introduced new features, which were tested for suitability.
   1.112  The experiences of using prototypes influenced further development.
   1.113  Actually, all development was community driven.
   1.114 -Plaetinck says:
   1.115 +Plaetinck says, three months after uzbl's birth:
   1.116  ``Right now I hardly code anything myself for Uzbl.
   1.117  I just merge in other people's code, ponder a lot, and lead the discussions.''
   1.118  .[
   1.119 @@ -1363,31 +1369,55 @@
   1.120  .NH 2
   1.121  Problems
   1.122  .LP
   1.123 -broken web
   1.124 -
   1.125 +Similar to \s-1MH\s0, uzbl, too suffers from being different.
   1.126 +It is sad, but people use what they know.
   1.127 +Fortunately, uzbl's user interface can look and feel very much the
   1.128 +same as the one of the well known web browsers,
   1.129 +hiding the internal differences.
   1.130 +But uzbl has to provide this similar look and feel to be accepted
   1.131 +as a ``normal'' browser by ``normal'' users.
   1.132  .PP
   1.133 -But all functionality should be accessable at the backend too.
   1.134 -Uzbl fails here, mainly because of webkit.
   1.135 -Uzbl is not clearly separated into frontend and backend,
   1.136 -especially the render engine is not an separate building part,
   1.137 -like, for instance, the download manager is.
   1.138 -This comes from the design of webkit.
   1.139 -Webkit is not a self-standing program but a library to include.
   1.140 -This might be of need for a graphical application to avoid complexity,
   1.141 -but webkit has a lot of features included that do not belong to the
   1.142 -webpage rendering job; a browsing history is just one example.
   1.143 +The more important problem is the modern web.
   1.144 +The modern web is simply broken.
   1.145 +It has state in a state-less protocol,
   1.146 +it misuses technologies,
   1.147 +and it is helplessly overloaded.
   1.148 +The result are web content render engines that must consist
   1.149 +of hundreds of thousands lines of code.
   1.150 +They also must combine and integrate many different technologies,
   1.151 +only to make our modern web usable.
   1.152 +Website to image converter are hardly possible to run without
   1.153 +human interaction because of state in sessions, impossible
   1.154 +deep-linking, and unautomatable technologies.
   1.155  .PP
   1.156 -Ideally, webkit would just render the source of a webpage into a
   1.157 -nice formated representation.
   1.158 -.PP
   1.159 -be a black box
   1.160 -
   1.161 +The web was misused to provide all kinds of imaginable wishes.
   1.162 +Now web browsers, and eventually the users, suffer from it.
   1.163  
   1.164  
   1.165  .NH 2
   1.166  Summary uzbl
   1.167  .LP
   1.168 -
   1.169 +``Uzbl is a browser that adheres to the Unix Philosophy'',
   1.170 +that is how uzbl is seen by its authors.
   1.171 +Indeed, uzbl follows the Unix Philosophy in many ways.
   1.172 +It consists of independent parts that work together,
   1.173 +its core is mainly a mediator which glues the parts together.
   1.174 +.PP
   1.175 +Software leverage can excellently be seen in uzbl.
   1.176 +It makes use of external tools, separates independent tasks
   1.177 +in independent parts, and glues them together with small
   1.178 +handler scripts, around uzbl-core.
   1.179 +.PP
   1.180 +As uzbl, more or less, consists of a set of tools and a bit
   1.181 +of glue, anyone can put the parts together and expand it
   1.182 +in any desired way.
   1.183 +Uzbl is very flexible and customizable.
   1.184 +These properties make it valuable for advanced users,
   1.185 +but may keep novice users from using it.
   1.186 +.PP
   1.187 +Uzbl's main problem is the modern web, that makes it hard
   1.188 +to design a sane web browser.
   1.189 +Despite this bad situation, uzbl does a fairly good job.
   1.190  
   1.191  
   1.192  .NH 1