Icon
Hyperfov
Experiments in making browsing the internet more _____
23 entries
First: Dec 26, 2020
1 contributor

Implemented a little test of the idea using a stack to display browsing history chains on the side. Ideally it'd collapse down the chain to the previous page when you go back, rather than adding a new one to the stack. It's still pretty fun to use.

It was quite a pain getting the history to stack up correctly because getting the page's title, url, and favicon means listening for different kinds of events across the tabs and webNavigation APIs in Firefox. It's made more complicated since many frontend frameworks use history.pushState() rather actually doing a full page reload, that that case has to be handled slightly differently. There are still some issues with it but at least it's catching all the page navigation transitions correctly now.

Something like this. Unfortunately, the top bar is not something I can change with a browser extension. There's a limited number of changes you can make in Firefox and even fewer you can make in Chrome.

The first thing I want to tackle is the past; browsing history. In particular, making some kind of visualization of the "chain" of pages that led you to where you are now.

A pretty easy way to understand this could be a really simple little chain like:

Grizzly Bears - Google search  >  Grizzly bear - Wikipedia  >  ...

Another layer of complexity here is the back button, so you can go down multiple routes from one point in the chain:

Grizzly Bears - Google  >  Grizzly bear - Wikipedia  >  ...
                        >  Grizzly bear | National Wildlife Federation  
                        >  Grizzly bear, facts and photos | National Geographic

The top level of the chain would be whatever the current state of the chain is, alternative routes would be collapsed below it.

The solution to these problems might be technically simple. Mostly because we're pretty simple in this regard; there are strong biological limits to the amount of information we can keep in memory. How we frame our experience of what we've seen before can be complex, but the way that it manifests in a system has to be simple or else we can't engage with it effectively and meaningfully.

So the key would seem to be breaking down the process of browsing to the elements being acted on and crucially maintaining those elements and actions, while at the same time adding possible actions. The concept of a "page," for example, is so fundamental to our understanding of the internet that it doesn't make sense to break it apart, for now at least. Nor does how we can interact with a page. So it's a matter of adding actions to existing elements. What else can I do to a page? Most broadly, how do we expand the space of potential actions?

There seem to be two different problems to think about: the past and the future.

The past can be described as a "path" or a "chain" that brought you to the point you are. The key goal here is to make the path visual as a way of reducing cognitive overhead or providing a kind of a record.

The future is the potential. It's guided by goals, perhaps, or by the content on the page. Where can I go next? How do I figure out where I want to go next? It seems to me this is often somewhat unconsidered, so there's an element of exporability; what is it that catches your eye?

An alternative approach to the problem of backlinks is to start by finding existing links between pages with something like common crawl. I imagine you could parse each page in the corpus and extract out the links, then build a dataset containing all the links to and from pages. This seems like an enormous amount of computational effort though. It's also only based on historic snapshots of the pages, so the backlinks wouldn't update until a new crawl comes out.

Finally retrieval. There's a ton of room for exploration around being able to better index information in a way that people can retrieve later on. This direction would be informed by the underlying cognitive processes and memory mechanisms as they are understood.

Next there's exploration–information that if provided could make browsing a much richer experience.

Some ideas from this summer that might form the basis for different directions this project could go.

Generally, there are three areas of opportunity. The first is usability. Browsing between links can be improved as an action; the system should provide more context to make the action better informed.

What if it's like this:

Someone: "I have an article with lots of cool links to websites that I'd like to include. I would like to publish it now."

Computer: "Okay, let me grab those links and add them to a public log so if the websites' original authors are curious, they can see you've linked to their site."

Someone: "Sure."

Computer: "Adding to log:"

source: https://hyperfov.com/blog/an-article {
    {
        ref: https://why.pith.is,
        text: "the Pith project",
        context: "One example of a branching discussion space is the Pith project."
    },
    {
        ref: https://futureland.tv,
        ...
     }
}

That's it. There's a log, and anyone interested can query that log to produce forward links, backlinks, live transclusions, etc. Anyone who opts in can publish the links they've used to that log with information such as the link's hypertext, the text of the containing element, and so on. When any of that information is changed, the entry is changed on the log. Any websites watching would immediately get the most up to date content, essentially a transclusion.

Of course, verifying the information is actually correct would be something that would also have to be considered.

Why would anyone use something like this? You would need to install some extra javascript on your website, perhaps provide some sort of custom endpoint on your server that other servers could access… Either that or it's somehow centralized, which is less than ideal.

It seems like there's a gradient of potential difficulty in joining the network that you'd have to contend with. It could be very easy and purely centralized, or difficult and purely decentralized.

The problem is that a protocol is hard to design, get accepted (main issue), implement, then get adopted in practice. A top down approach seems like a bad idea; perhaps a better place to start is to build a network that has some of the key properties the protocol should have. A kind of prototype.

One challenge is that projects like quoteback don't have a way to transmit information between pages that use the script. There's no network of pages. This means that features like backlinks simply aren't possible because each site is completely independent from the others.

This is why true transclusion remains a radical idea because there's no standard protocol to support the deep linking that creating a bi-directional connection between two pieces of content would require.

The quoteback project is a step in the right direction. It's a component you can use to display quotes from other websites in a standard format.

From what I can tell, the text isn't actually transcluded though. It's basically a fancy wrapper for a blockquote element that adds an a tag to it. You copy the text over to your page and your copy remains separate from the original.

There's also no way to see a page's backlinks.

There's probably a million ways to address this in tons of different contexts. The first goal here is to just make the experience different.

The point is that <a href="{. . .}">{. . .}</a> is used so many different ways. That's not a bad thing, but there are times when it might be good to augment the experience of browsing (clicking on <a> tags and navigating from website to website) with some additional context.

A hyperlink often is a black hole. It should be more like a glass door you can look through and open if you'd like.

Often links are purely navigational. Here I'm able to navigate to subpages in a way that mimics my own file system. But there's a lot of other things to click on too, often taking me to places that I don't know ahead of time (where does the link with "11 days ago" take me? I don't know unless I've clicked it before.)

The hyperlinks might direct you to a page on a different website. Here the author of the page has come up with descriptive hypertext to add context to the link.

Sometimes there's many standardized links. They all go to the same kind of page. The hypertext is descriptive and pithy.

00:00
christian
christian Hyperfov