NRS Brainstorming Megathread

should is assumption… and you’ve not suggested why that is necessarily the case.

Also, if you link to a site that has chosen to be mutable, then you would need to link to the state of the whole and all its elements, which is possible… but then what of the links that site links out too…

I was coming back to suggest a technical solution that all links could be not just NRS but a sum of the state at the point the link is created… but I’m not suggesting that because cannot work to ensure those links in other sites that I link to. You would have to trawl the whole link network from that one external to be sure the state was static… just so that some ocd about nothing changing is satisfied?..

Also, to note nothing dies as in disappears… just a risk of losing sense of when two elements appears and if those were present at the same time… but the network has no time… and perhaps therefore cannot have permanence!

The only solution for what your suggesting is to have no mutable option.

2 Likes

Interesting point re the recursive snapshotting. But as it stands all public data is permanently public and therefore available. I can see issues with this, but beside that every version of everything will exist as an entity to be linked to. An internet that also serves as a repository of historical records will need to be capable of being both book-like and stream-like.

1 Like

We also do this right now with CDNs supplying stylesheets and libraries etc on virtually every web page we visit. It seems to have worked for the most part. Maybe it’ll all be ok?!

Makes me feel maybe we’re missing the fun side of this, unversioned nrs links and images and stylesheets etc could be used in an ever escalating battle for supremacy! Bootstrap vs jquery WHO WILL WIN?! BootstrapVersion1033 vs jqueryVersion834 was a real tight contest.

I would advise against that unless you can specify version=0 as being the latest. Because many pages have links to the latest information on a subject. “To get the latest update click here” style of thing from weather to virus information to stock reports and so on.

I see others have pointed out that linking to old information that existed when the webpage was uploaded is not very useful since a weather site will link to the latest weather and people expect that and not weather from 1 or 2 or 5 years ago since that was all that was available when the site’s overview page was uploaded and that rarely changes if ever.

So I hope that version=0 will be a way to specify the latest page, and since there is always a latest page (assuming it ever existed) then it links somewhere and is not broken. The user can then go back through the versions via the browser (since the url is now in the address bar)

1 Like

FAQ - can data be deleted?

I might be confused, from having never been sure of what the intent was…
Obviously we talk of immutable but I wonder a while ago the talk was that data had a counter, that if owners deleted the counter reduced and then if all owners delete the data is removed from the network. Perhaps it’s moved on or that was just for mutable?

I would not object if there was a delete option, think it would be a feature… but then that would indicate that permaweb is for those who use it.

Equally I don’t think this a big deal, if delete is not an option, then atm I’m minded just to go with the version everything. For all the additional hassle and cost, it’ll be not a lot if there is some addon to tools that assists fixing urls for that.

1 Like

Private data can be deleted and is identified by your ID being part of the address

Mutable data was changed to appendable data where new data is appended. Thus old data is not lost

1 Like

Off topic but I wonder if we’re making enough of he opportunity for middle group with shared data… use of private data for groups sort of like Telegram. I guess that some form of owner and members of a group will be possible but for private data, will that be accessible to anyone that is not an owner?.. might be a large interest in what is private data for companies and other groups, who do not want to make data public - and permanent. In a half forgotten dream.

1 Like

You can implement this with some form of encryption of the data using group ID and pointers. So then without membership to group you do not get access since you cannot decrypt where the data is or its contents if you do randomly find it.

1 Like

I think my wording there was a bit wishywashy. But to be clear:
Right now unversioned content within a page (images/scripts/css) will not load.

I feel like this does the job here… Nothing spells out “put versions on your content loaded in page” like your page not working because it doesn’t have versions.

It is an app layer solution to the app layer concern of app layer NRS. It could be a browser setting. It should be part of a tool for uploading etc.

Note:

  • this doesnt mean you cannot link to unversioned content.
  • this doesn’t mean your (versioned) javascript cannot load unversioned content.

Yeh I think this is important. That the uploader handles this. (via app, w/ warning as desired by user).


Why should we force updating links? To avoid people changing how a website functions. Without blocking this, you can change the javascript of your page to do something completely different.

In terms of protecting the user (as was the original thread), i feel this is probably a must.

(But if there’s strong disagreement on that, as it’s app layer. It can be a setting. Or maybe another browser will choose not to do this.)


As it stands, it is the browser blocking links loaded in the HTML. This does not block what javascript can do. You can still fetch(content) at whatever version you want. But what is in the HTML will be fixed to that version.

4 Likes

@joshuef How does the weather site link to the webpage with the latest info. Or load the latest weather map image. While you say a javascript could link the image, how could a static page link to the latest weather map image?

1 Like

You have safe:latestweathermapimage which is just a jpg of the latest weather map. Your safe:thisistheweather site will load a blank HTML page, and a javascript file safe://thisistheweather/loader.js, your JS grabs the image safe:latestweathermapimage.jpg and inserts it in your page.

What can not happen is that your page safe:thisistheweather?v=0 can do anything else but what it did at v0. It cannot be changed to load safe:NOTlatestweathermapimage without an update to the version.

replace the image with an AD of data being updated.

1 Like

It’s not a static page if it’s loading different images every time.

But a page without javascript could not do this as things stand.

What?

For http its a simple img src=URI (eg a jpg file) And the image file is updated separately by say a weather map generator doing it by the hour or day. The static page just loads the image file that exists. This is definitely an example of a static webpage loading an image file. Just happens the image file is being updated by another process running on the server. But the web page is still static

EG

<img src="https://static.qgov.net.au/assets/v4/latest/images/coat-of-arms/qg-coa-white.svg" alt="Queensland Government" class="hidden-xs">

And for safe it no longer gets the latest updated image since you need a version

EDIT: So the question remains how can a static page continue to have this functionality in Safe. Or do we now have to make more complex sites to get around this now limitation for static sites. Maybe we need a special case of version= to designate latest

You pointed out version=0 is valid in that there is a version 0. So how about the browser interprets version=latest OR version=-1 as get the latest

3 Likes

Same for adverts via js

Sure. It could be called a static page. But IMO it’s not static as the content is not static, ie not changing. That’s what I’m meaning here.

So no, your example will not work with this setup. But given that it can be made to work with a bit of js, for me it’s a worthwhile trade off for the linkrot issues present in this thread.

Yep, that is a valid question. But should we be allowing latest content to load automatically (by default… everything could be an option).

By making it not the fault (ie permissively allowing any version to be loaded), we open the door to all the problems in this thread, and changing site’s behaviour. Essentially making the perma-web not permanent…


Could be. But with the above I’m not convinced it’s worth the risk vs tiny js bit of script to load your image for you…

1 Like

Sorry @davidpbrown, not sure what you’re referring to here. What is the same?

Simply that thought of images being served and different each page load.

1 Like

It is a static page by definitions of html and common usage.

You are looking at some other aspect OTHER than webpage definition.

So why not allow the browser to have the special case of version= to denote get the latest.

It is still forcing the developer to add version= to every link/file ref and makes them consider if they want the latest or not. Web dev programs can even give a warning if its used so the developer is notified

WHY make life difficult and introduce JS into web development when it can be easily overcome. IOT devices use this static page form a LOT.

Remember if EVERY image has to have JS Page just to retrieve the latest is going to add a lot of complexity for what should be simple. A page with 100 images updated by say webcams on the roads, office, farm that are updating a JPG file for each now requires yet another 100 pages to view the latest image

From wikipedia, a static page:

A static web page (sometimes called a flat page or a stationary page ) is a web page that is delivered to the user’s web browser exactly as stored,[1] in contrast to dynamic web pages which are generated by a web application.[2]

Every single page on Safe is a static web page by this definition. So it’s not whollly helpful.

I am trying to talk about the perception of a page and on Safe where things can be different. Permanent. And in that realm, something that changes is not static to me, even if the underlying HTML document is. I am not trying to debate the technical definition of the word here, just explaining where I am coming from in this discussion centered on the permanent web.


Allowing a permissive “any version” option in a browser is a security nightmare that undermines the idea of a permanent web. As soon as you can change the javascript of a page, no page is safe nor permanent (I don’t think folk will be checking the source on this). And we will have to notify users of that.


I do not think it is that complex. It does not even need a separate script loaded. (A tag on the same page can be used)

// pseudo code
let image_link = safe.fetch("safe://someAppendableDataWithlinkToImage.jpg");
 document.getElementsByTagName("img")[0].setAttribute("src", "image_link"); 

It is not that much more to be doing, and can be readily explained or automated.

I’m not sure what you mean here? That 100 more requests are required to load the images because of the javascript? If so, the js can be in the original html page directly, it does not need to be an external file.

Otherwise I’m not sure what you’re meaning here, can you explain a bit more please.


some edits there. hit send before i intended to :man_facepalming:

1 Like