@natecull @teleclimber gamewise i don’t see anything here you couldn’t do in a browser. but with deno you’d have to a do a bunch of extra setup. deno is very much about correcting the mistakes ryan dhal thinks he made with node, and thus it’s squarely in node’s original usecase: small realtime server. though i see it’s got an api that shows it could do electron’s job.
It might be because "just plain browser" got a very bad name back in the IE vs Firefox wars, and so everyone ran for the shelter of frameworks as protection against all the unimplemented and half-/buggily-implemented browser stuff? And now that "framework first" mentality has stuck?
just utterly insane things like, there's no builtin functions (or at least not sensibly named, easy to find ones) to test whether an object is an array, is Null or not, fallbacks for Null handling, vanilla 'sort' is DESTRUCTIVE, yeeeeagh. Things that, if you're doing database-query type stuff, you just don't want anywhere near your code.
It *hasn't* been fixed. Or rather, the dangerous, unsafe stuff is still there right alongside the correct stuff.
So, much better to never trust the builtins, just indirect everything through a different namespace. Otherwise for every single method call you have to go 'is this one of the good ones? or the evil ones?' and you'll occasionally get it wrong.
I can (and am looking at right now) run an entire emulated BBC Model B Computer running a BASIC adventure game in the browser... except there's no way of saving the game because, shrug, browsers aren't allowed to write to the local filesystem. Even just to one designated file selected manually by an out-of-browser 'file open' dialog box.
I guess I'm getting my information from nobody ever using it! Like, for instance, Tiddlywiki writing a whole baroque EXE plus plugin system to implement saving!
So it's there and it works? Cross browsers? And we can save files in it? And remember the file name across browser invocations?
@natecull @teleclimber to go beyond those limitations in the open web is going into nasty websites doing nasty things without your permission. i for one, am happy with being required to explicitly download a file unless i bless a special desktop application with the rights to do stuff without asking.
like I wouldn't mind if, eg, I had to manually associate any given URL with a local folder, and then it couldn't ever access anything outside that folder (unless I manually accessed the file navigation UI, which the browser wouldn't be able to fake). I think I could cope with that level of manual intervention and I think that would give enough security maybe?
@natecull @teleclimber see i am a bit of a radical and i think fundamentally filesystems are a bad idea and if we can avoid ever using them we should. the main reason we are still kinda forced into using them is it’s the only non limited way we have of sharing information between systems, so if someone forward thinking like apple stops us from having a “real” file system it can feel like handcuffs when we want to get data in or out.
@natecull @teleclimber of course apple caved, and as a result i now need to choose from like 8 different ways to handle images i want to download, when in the good old days the image would just go to my photo roll and that would be it.
sure it sucked when i got a link to a zip file and there’s still no good way of dealing with those on iOS, but i’d prefer it if we were thinking up nicer solutions instead of just rebuilding 1980s ideas.
I wouldn't, in principle, be *completely* against replacing filesystems, with some kind of object store, as long as
1) I can still preserve my data as readable and transferrable to other media on a timeframe of at least several decades
2) access to my data is not gated through any Internet-connected entity.
I want the right to have my data stay physically local to my machine, and the right to copy and move it onto physical media.
If we had some kind of 'object soup' instead of a filesystem (maybe with files grandfathered in as one object type?), I think there'd need to be a way of isolating all the connections from any given recursively contained part of that soup, to others.
So that we could get the equivalent of 'copy just this one folder', which I think is a really useful semantics for information sharing. If we had that plus '... and all the objects referenced from it', it might be cool.
@natecull @teleclimber the appealing thing about a file is that it’s a fucking thing. humans can deal with fucking things. we can’t as easily deal with giant webs of interdependant references, as i’ve seen you musing about.
the mac classic file system was really something though. each file could have a blob of data in it, sure, as you expect, but each one also had a database associated with it. if you’re an app developer you could just write to that database, and that’s your “file”
@natecull @teleclimber so you could really split the concept of “file system” into two peices: the physical inplementation, and the UI that presents users with “things”, and the list of affordances those things permit. the physical implementation of the thing doesn’t really need to be a stream of bytes.
Agreed, a stream of bytes is not very wonderful, it forces every program to be its own from-scratch parser, which is a hassle and a security nightmare.
I wonder though if we could do something like I'm suggesting (eg: gather up all the external references and bundle them together) for object-soup systems. I feel like it would solve a lot of issues we currently have with package management, version control, etc. The same pattern happens again and again.
like imagine if you could just copy a local HTML file to an external drive, and the act of doing that did a wget on all of its links and bundled those with it. Something like that. Only not HTML, with JSON or Smalltalk or the equivalent, and maybe with some sanity checking so there's a maximum size it will try to bundle.
and then if you copied that folder back into another system, it would only merge in the objects that were new, and hopefully it would also record that this was one atomic changeset and let you back it out.
That's probably where the problems come in, I guess. What happens when there are changes, and if you back out a prior change but want to keep later ones...
@natecull @teleclimber i just wrote a utility in plain js html that reads in a csv file, does some processing on it, and outputs a different csv file. grabbing file data from a “file” form input is a little complicated, but it does exist. the only thing that doesn’t is letting websites driveby read the contents of your hard drive without permission- and why would you want that?
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!