edbrowse-dev - development list for edbrowse
 help / color / mirror / Atom feed
From: Adam Thompson <arthompson1990@gmail.com>
To: Karl Dahlke <eklhad@comcast.net>
Cc: Edbrowse-dev@lists.the-brannons.com
Subject: Re: [Edbrowse-dev] Short Timers
Date: Sat, 11 Apr 2015 15:11:00 +0100	[thread overview]
Message-ID: <20150411141100.GB9150@toaster.adamthompson.me.uk> (raw)
In-Reply-To: <20150310234817.eklhad@comcast.net>

[-- Attachment #1: Type: text/plain, Size: 4289 bytes --]

On Fri, Apr 10, 2015 at 11:48:17PM -0400, Karl Dahlke wrote:
> I was trying to compose my thoughts, trying to figure out how
> to express myself, but Chris explained it much better than I could.
> 
> > ...
> > So our ultimate task will be trying to smoosh the asynchronous paradigm
> > into the teletype paradigm, also known as forcing a square peg to fit a
> > round hole.

Or actually thinking of a design which works rather than just dismissing the
idea as impossible.

[snip]

> If edbrowse is so good that it supports all the websites
> out there, and all they're asynchronous behaviors, then edbrowse becomes worthless.
> I could just use chrome or firefox or whatever.

If you want to run a completely different OS or distro (see below).
> The power of edbrowse is at least in part that it is not asynchronous,
> that it is different, that it is command line,
> and I would like to keep it teletype as much as possible,
> even if there are some websites that it cannot browse,
> or upon which it does not behave in the standard or expected manner.

By some websites this translates (at least in my experience)
to a large chunk of the modern internet.
The fact is that I don't run a GUI by preference (and because Linux desktop
accessibility is fairly aweful unless you do some significant tinkering from
what I've seen) and thus I need a web browser which actually works on modern,
ajax enabled, websites from the command line.
I'd like to make edbrowse that browser,
but if other people would rather it becomes irrelevant for modern web browsing
then fair enough.
All comments asside,
I've actually got an idea which may avoid the square peg and round hole problem
by adding essentially a layer between the two which means we get to keep an
interface which is usable (no one wants the buffer to change mid way through
reading it) but keep edbrowse relevant on the modern internet.

> Continuing the stock example, the traditionally asynchronous ajax
> code that gets the latest stock price does not run,
> unless I tell it to, because I want to read the current price,
> and then it runs at my command, and the buffer updates, and I read it,
> and hear the current price, because I want to know it at that time.
> Then I might move my attention somewhere else, another buffer, another console,
> my cup of coffee, and I might come back to this site and push
> the ajax button an hour later.
> I think this is the model we should aim for.
> Obviously if a chunk of code is suppose to run in 5 milliseconds then it should just run,
> that's what started this very interesting and pivotal thread,
> but if the delay is ten seconds, it is probably doing something
> that we want synchronous control over,
> because we can't just watch that window and several others in parallel,
> as our sighted friends do.

Or it's doing some sort of polling which genuinely needs to run every 10 or so
seconds or something on the server side times out.
This is becoming increasingly common as a method of doing things in the absense
of websockets support (which I really don't want to get into implementing at the moment).
> We are blind and that is inescapably different.
> edbrowse is a unique browser, partly for its synchronicity.

Yes we're blind, but I've always hoped that edbrowse could become more than
just a project used by a small comunity of users, i.e.
relevant for sighted users who want a command line browser for whatever reason.
Tbh I've never been comfortable with all the blind-related rhetoric around the
project.

Anyway, as for the design;
basically we need to have DOM and JS in separate processes,
which can then be used to render the buffer on a user command.
There would need to be some care taken as to when we add a refresh buffer
button at the top of the page (or however the interface works)
but it will allow the buffer to be altered synchronously whilst keeping
edbrowse as a working browser.
Most of this has been done with the move to a js engine,
now we just need to move the DOM stuff out of the synchronous part of edbrowse
and make the js stuff a bit more asynchronous.
This isn't going to be an easy project but I think it's worth doing if we can get it right.

Cheers,
Adam.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  reply	other threads:[~2015-04-11 14:12 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-11  3:48 Karl Dahlke
2015-04-11 14:11 ` Adam Thompson [this message]
2015-04-11 14:46   ` Chris Brannon
2015-04-11 15:18     ` Adam Thompson
  -- strict thread matches above, loose matches on Subject: below --
2015-04-11 14:44 Karl Dahlke
2015-04-11 15:23 ` Adam Thompson
2015-04-08 13:19 Karl Dahlke
2015-04-10 11:28 ` Adam Thompson
2015-04-11  1:39   ` Chris Brannon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150411141100.GB9150@toaster.adamthompson.me.uk \
    --to=arthompson1990@gmail.com \
    --cc=Edbrowse-dev@lists.the-brannons.com \
    --cc=eklhad@comcast.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).