[HN Gopher] Spacedrive - a cross-platform file explorer, powered...
       ___________________________________________________________________
        
       Spacedrive - a cross-platform file explorer, powered by a
       distributed filesystem
        
       Author : mmmmkay
       Score  : 219 points
       Date   : 2022-04-27 21:56 UTC (2 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | anderspitman wrote:
       | I love all the cool backend remote storage projects we have, but
       | what I really want is a simple, well-specified app protocol for
       | filesystem operations. WebDAV is too crufty. I'm bullish on Solid
       | but I think there's room for something much simpler. I've done a
       | bit of work[0] in this space but keep getting distracted with
       | other parts of the self-hosted storage stack.
       | 
       | [0]: https://gemdrive.io/
        
         | spicybright wrote:
         | What's crufty about WebDAV? I've never used it, but it seems
         | good enough to just use a useful subset of features to avoid
         | the cruft.
        
           | anderspitman wrote:
           | It uses XML, which requires a library for browser JavaScript
           | (EDIT: not true, see comment below), when filesystem
           | operations don't really need to be more complicated than
           | vanilla fetch requests. Also uses special HTTP methods, which
           | isn't ideal. I've heard people say that various
           | implementations are often incompatible with each other in
           | some ways. I'm not sure how big of a problem this actually is
           | in practice, but see for example this readme[0] which
           | explicitly says the library doesn't seek to be compatible
           | with RFCs, but rather with implementations in the wild.
           | That's a red flag to me. See also [1].
           | 
           | Trying to use a subset is an interesting idea, but the
           | technical problem being solved is simple enough that I don't
           | see a strong reason not to just greenfield it and make a
           | bunch of nice improvements along with the critical ones.
           | 
           | [0]: https://github.com/perry-mitchell/webdav-client#about
           | 
           | [1]: https://news.ycombinator.com/item?id=10213657
        
             | hunterb123 wrote:
             | > It uses XML, which requires a library for browser
             | JavaScript,
             | 
             | What? XMLHTTPRequest (XHR)
             | 
             | People forget XML parsing is baked into JS as is XPath
             | 
             | But I do agree with your premise otherwise.
        
               | anderspitman wrote:
               | Ha. Honestly, you're totally right. I've used XHR for
               | years but never actually for XML. When looking at WebDAV
               | in the past I couldn't find a way to
               | serialize/deserialize XML the same way you can with JSON
               | (is there a way?), but I didn't realize XHR handles that
               | natively. TIL, thanks.
        
               | easrng wrote:
               | You can use a DOMParser to parse XML (or HTML) from a
               | string.                 const doc = new
               | DOMParser().parseFromString('<xml><tag attr="value"
               | /></xml>', "text/xml");
               | doc.querySelector("tag").getAttribute("attr") // returns
               | "value"
        
         | vineyardmike wrote:
         | > what I really want is a simple, well-specified app protocol
         | for filesystem operations.
         | 
         | Genuine question, what's wrong with existing Operating System
         | FS + FUSE with any remote protocol? Eg there exists S3fuse if
         | you want object/bucket storage, sshfs for using ssh to a host,
         | and the fuse api is easy enough to port to custom backends (in
         | memory, db, etc).
         | 
         | Don't want to be the guy saying "who needs Dropbox we have
         | sftp" but you're asking for a technical spec and protocol...
         | and one exists? I haven't worked too much in this space so I
         | don't know what tasks are hard to do, but it seems like leaning
         | on existing file system tools/api at the app level makes sense?
         | What's missing, does "over the network" need to be a primary
         | consideration for these uses?
        
           | anderspitman wrote:
           | The page I linked lists quite a uses cases that would become
           | possible/easier with a new protocol.
           | 
           | To your specific concerns, object storage systems like S3
           | don't support partial writes to files, which makes FUSE
           | mounts a leaky abstraction. SSHFS is much better, but
           | obviously can't be used in web apps.
           | 
           | I'm not saying we need to replace existing protocols, but we
           | need one that can work in a more diverse set of use cases.
        
         | qbasic_forever wrote:
         | 9p? https://en.wikipedia.org/wiki/9P_(protocol)
         | 
         | I believe most VMs use 9p as a low level protocol for syncing
         | filesystems between host and VM or container.
        
           | anderspitman wrote:
           | 9p won't work for web apps. Personally I think we just need a
           | small layer on top of standard HTTP for most use cases. It's
           | really not a very hard technical problem, we just need to
           | agree on a protocol.
           | 
           | But it's a chicken-egg situation. App developers aren't going
           | to develop against a protocol that no one uses, and no one's
           | going to use a protocol that doesn't have any apps.
        
             | monocasa wrote:
             | Plan 9 (well, 9 front at least) natively supports 9p over
             | websockets.
             | 
             | https://p9f.org/magic/man2html/8/websocket
        
               | anderspitman wrote:
               | That's pretty sweet, but it's an entire additional layer
               | of unnecessary complexity. Plus it still requires
               | everyone to implement a new protocol into their apps. Why
               | not use one purpose-built for it?
               | 
               | Also, WebSockets bring some nontrivial complexity. This
               | can bite you with things like proxies and custom
               | backends, which have to implement a special code path
               | from normal HTTP to handle WebSockets.
        
               | mike_d wrote:
               | Yeah... computers are hard sometimes.
               | 
               | If you want to read and write files, there are plenty of
               | operating system APIs to do it super simple. If you want
               | low level access to file systems and to get into the
               | complex parts... well WebDAV sucks because the underlying
               | problems of file systems suck.
        
               | monocasa wrote:
               | I basically view WebDAV as the weird one off protocol
               | here. 9p runs over just about any stream oriented
               | transport (including web technologies), while WebDAV is
               | planted firmly in web technologies.
        
             | qbasic_forever wrote:
             | I'd tunnel it over a websocket, or there's no reason why
             | you couldn't translate its verbs into a REST API. It's a
             | super simple protocol with not a lot of complexity.
             | 
             | It sounds like you're after a federated storage protocol
             | though, i.e. something that two totally different apps can
             | use to allow a user to transfer data between them. This is
             | a much, much bigger leap in complexity and requires a very
             | strong authentication and authorization story. IMHO look
             | into the fediverse and whatever is going on with storage
             | and files there.
        
               | mike_hearn wrote:
               | Isn't translating filesystem operation verbs into an HTTP
               | based protocol what WebDAV does?
        
               | anderspitman wrote:
               | Yes, and it's almost what we need. I think it's just too
               | ossified to adapt to the few remaining shortcomings.
               | Here's a couple:
               | 
               | * Doesn't specify a federated
               | authentication/authorization mechanism to allow self-
               | hosted instances to work with each other. This includes
               | things like how to have an app delegate permissions to
               | other apps, ie for things like launcher apps which can
               | open external apps and give them access to only specific
               | files.
               | 
               | * Doesn't specify a way to implement image
               | thumbnails/previews, which is necessary for any sort of
               | remote file explorer or gallery app.
        
       | hunterb123 wrote:
       | Dupe: https://news.ycombinator.com/item?id=31170815
        
       | xoa wrote:
       | One feature a few of us toyed with for years that I'd love to see
       | tried seriously someday (or does it already exist?) would be
       | intelligent tag trees or maps that stuff could be plugged into,
       | ideally that could also be shared and mixed too. More specific
       | tags would have parent/child/sibling relationships with more
       | generic tags, and a single tag would then pull in all the others
       | as far as searching. So for example if I have a photo of one of
       | my cats, and I tag it Cat Name having set that up, "calico" or
       | "tabby", breed, plain old "cat" and anything else associated with
       | the specific tag would all be hits. And up the stack, if I tag a
       | picture "calico" it should show up under the "cat" tag as well
       | automatically with no further effort. Conditionals could be
       | incorporated too, like if there is a character who in a series
       | has long hair, tagging "short hair" could automatically pull in
       | "alternative hairstyle".
       | 
       | My big problem with typical tagging is that it's a lot of grunt
       | work to be comprehensive. AI can help but has its own issues.
       | While getting the UI/UX right would take some work, a universal
       | system-wide multi-dimensional tag map could allow a lot more
       | metadata a lot more easily. Even more so with sharing,
       | communities could curate tag maps around areas of interest and
       | one could stay synced with tag maps of "aircraft" or "trees" or
       | the like which would bring in lots of technical depth to explore
       | in a distributed fashion. Eventually maybe community AI
       | recognition models could be an optional part of that too to help
       | identify specific given subjects (and one would be free to then
       | not have other kinds of things identified or shared).
        
         | jewel wrote:
         | My homemade photo organization software has the tags as trees
         | and it works great for exactly the example you've given, as
         | well as "plant" being a parent of "flower" which is a parent of
         | "rose".
         | 
         | In addition to better searches, it also allows for better
         | tagging, because a lazy tagger might tag a photo as "food" and
         | I can come back later and fix it to be "fruit pie".
         | 
         | There was an open ontology database somewhere I might integrate
         | so that it has a lot of prefilled tags. That'd be the place to
         | start for photos or anything dealing with the physical world.
        
       | rufugee wrote:
       | _Spacedrive accounts for every file you own, uniquely
       | fingerprinting and extracting metadata so you can sort, tag,
       | backup_
       | 
       | Oh...how I've longed for this. How I've wanted to carve out the
       | time to do exactly this to service my own needs (as a hoarder). I
       | am so excited to use this one it's stable enough to trust
       | fingerprinting to the extent that you can dedupe across devices!
        
       | poetril wrote:
       | The creator streams his development over on twitch[0].
       | 
       | 0: https://twitch.tv/jamiepinelive
        
         | InCityDreams wrote:
         | ...streams his mealtime, too. No thanks - misophonic, me.
        
         | [deleted]
        
       | LeoPanthera wrote:
       | Previous thread: https://news.ycombinator.com/item?id=31170815
       | 
       | My comment from the previous thread: I'm not sure if it actually
       | does work this way, but this would be amazing if I could install
       | a small daemon on my NAS/fileserver to do the scanning and
       | indexing, which the graphical client could then pull the results
       | of.
        
       | user_7832 wrote:
       | Sightly tangential, but does anyone know of any good system that
       | integrates everything across devices? I'm talking backups/data
       | management, clipboards, maybe notifications too etc. Bonus if
       | music/video can be streamed and mouse/keyboards can be used cross
       | device.
       | 
       | KDE Connect is nice and can do some of these, and many backup
       | utilities like rclone or duplicati (which I've used in the past)
       | can do some, but many features are not great. The _closest_ I can
       | think of is Apple 's walled garden where you store everything on
       | iCloud, but a) the massive restrictions on iOS, and more recently
       | on MacOS (see: kext restrictions) are forced and b) it still
       | isn't perfect and requires an iCloud subscription if you have
       | more than 5gb of data you want synchronized.
       | 
       | I'm curious to know if any HN person knows of such software
       | (assuming I can run a server to host the backend). (In real life
       | I still have an "unlimited" GDrive account from my university
       | that I use to sync but it's far from perfect.)
        
       | smm11 wrote:
       | This is potentially awesome, but if I could just get a decent
       | front-end to OneDrive on everything, I'd be happy.
        
         | jbverschoor wrote:
         | https://mountainduck.io/ oh.. front end.. well it's ok as a
         | backend
        
       | [deleted]
        
       | obphuscate wrote:
       | Thanks goodness I clicked on the link out of shear curiosity with
       | this title - I might not have known it was written in Rust
       | otherwise.
        
       | samstave wrote:
       | FEATURE REQUEST PLEASE:
       | 
       | As an (ahem) "hoarder" as you so kindly put in the .MD...
       | 
       | Here is a feature I would like: Tag-routing...
       | 
       | I want to create a folder with content tags.
       | 
       | Then, when I go to download something, instead/in addition, I can
       | just put in the tag for the media type and it lands in the right
       | bucket.
       | 
       | So /media/docs vs media/movies media/pdfs etc... When I download
       | a thing - just let me calss tag it as movie and it will be placed
       | in movie. etc...
       | 
       | Make a browser extension that takes on downloading, and allows
       | for more precise downloading, tagging, sorting of content before
       | it ever hits a disk I own...
       | 
       | Like this
       | 
       | https://youtu.be/c0eTHm8NEqE?t=79
        
         | contr-error wrote:
         | git-annex has metadata driven views[0], which might be what
         | you're looking for. When you're looking at a view, copying or
         | moving a file to a folder "tagname", adds the tag "tagname" to
         | that file. That seems easily scriptable to tag by media
         | type/extension...
         | 
         | [0] https://git-
         | annex.branchable.com/tips/metadata_driven_views/
        
         | danieltanfh95 wrote:
         | ikr, me too, which is why I built http://ikomi.space/ , wip tho
        
       | AndrewUnmuted wrote:
        
         | Fauntleroy wrote:
         | Can you explain how simply having a mask on in his profile
         | picture is "propaganda"? Furthermore, how is having a github
         | profile picture "anti-scientific"?
        
           | Melatonic wrote:
           | Hilariously thats not even the owner of the Github. Just a
           | contributor !
        
             | AndrewUnmuted wrote:
             | Yeah it's super-funny! I'm having a ball right now!
        
               | [deleted]
        
         | indiv0 wrote:
         | Are you boycotting operating rooms while you're at it? I've
         | never seen such an overreaction to such a non-issue before. How
         | do people get to a state where they can unironically say things
         | like this with a straight face?
        
           | AndrewUnmuted wrote:
           | Been in an OR since after you were born, OP? The OR
           | physicians are in literal spacesuits these days.
        
         | neatze wrote:
         | Facebook people invading hackernews :(
        
           | AndrewUnmuted wrote:
        
         | lazyier wrote:
         | I don't get it.
         | 
         | You don't like that he is wearing a mask in the github profile?
         | 
         | Are you serious? Am I missing something?
        
           | AndrewUnmuted wrote:
        
       | shaunregenbaum wrote:
       | This is genius. Why didn't Dropbox do this?
        
         | api wrote:
         | All economic incentives for the past 20+ years have been away
         | from "personal" computing because people flatly refuse to pay
         | for software but for whatever reason have less aversion to
         | paying for services.
         | 
         | I have to repeat just to emphasize how irrational this is.
         | 
         | People will refuse to pay $50 _once_ for software but will
         | happily pay $20-$50 _per month_ for a service that offers less
         | performance, no privacy, worse security, no continuity if you
         | stop using it, fuzzy ownership of your own data, and a system
         | that utterly vaporizes if the company goes away.
         | 
         | The aversion to paying for software is intense too. People will
         | happily sign up for SaaS but will go through insane contortions
         | to pirate software or just flatly refuse to use it if it's not
         | capital-F FOSS. Even OSS that you pay for is not okay. The most
         | important thing about FOSS is not freedom, openness, or source,
         | but "free" as in beer... but this same aversion to paying does
         | not transfer to services.
         | 
         | People will also pay $10+ dollars for a single cup of coffee at
         | Starbucks every day. But god forbid they pay that much _once_
         | for an app they use every day.
         | 
         | Markets are incredibly irrational.
        
           | haswell wrote:
           | Is a cup of coffee at Starbucks really $10+ these days? I
           | know that place is expensive, but has it gotten _that_
           | expensive without me noticing?
           | 
           | The thing I would primarily challenge is the assertion that
           | this is fundamentally irrational behavior.
           | 
           | Software is a means to an end. People don't spend money to
           | acquire software, they spend money to solve a particular
           | problem.
           | 
           | There are two things that come to mind about subscriptions
           | vs. the standalone pricing models of the recent past:
           | 
           | 1) Before I'm willing to pay, you need to prove to me that
           | your software will solve my problem. That proof doesn't come
           | by installing the software, it comes after I've used it long
           | enough to see if it does what I need it to do. Time or
           | feature-limited trials attempted to solve this, but in a
           | time-limited trial, I might solve my problem within the time
           | period and never need to buy it (think unzipping a file). Or
           | in a feature limited trial, I might get the general sense
           | that the thing will work for me, but the software now holds
           | my problem hostage, and I think there's a psychological
           | component to why that feels "bad".
           | 
           | 2) Sufficiently advanced software will be proportionally
           | expensive, and out of reach for the average person. For this,
           | I think about apps meant for writers, media and content
           | creation, password management apps, etc. Apps that provide
           | tremendous value, and therefore could command a high price,
           | but now the average user is priced out.
           | 
           | Subscriptions provide two things:
           | 
           | 1) A feeling of safety coming from the fact that I can both
           | use all aspects of the software, but also choose to just
           | cancel the thing if it doesn't work or me.
           | 
           | 2) The ability to spread out the cost over time. Maybe I
           | can't afford $1,000 for <media creation software of choice>,
           | but I can afford $20/month right now.
           | 
           | You might argue that someone good with their finances should
           | realize that they will eventually pay $1,000 either way, and
           | eventually more, and they should just drop $1,000 now, but
           | that is also a somewhat privileged position that most of us
           | in the SW industry get to enjoy.
           | 
           | It's also rational to opt for a solution that is lower risk,
           | i.e. spending $1,000 for something that might _not_ solve my
           | problem could be considered irrational.
           | 
           | I generally agree that people continue to struggle with the
           | idea of paying for software. But I don't think that's
           | fundamentally _the_ problem. What people really want is a
           | service that just handles their problems for them, and the
           | software is just a means through which they interact with
           | that service. The fact that people are willing to pay for
           | services at least tells us that people are willing to pay for
           | something. This is a hint that the model might be the
           | problem, not the fact that money is involved.
           | 
           | And I think this is what has ultimately led to the change in
           | licensing models for apps like 1Password.
           | 
           | I think that we as a development community need to accept the
           | maybe uncomfortable truth that continuing to try to sell
           | software in the traditional ways is itself irrational. It's
           | the ultimate "the user is using it wrong".
           | 
           | This is not a phenomenon that is unique to software either.
           | Just look at the popularity of low-friction installment plans
           | for purchases of many physical products. It's common across
           | most major retailers to either plop down your $1,000 now, or
           | sign up for monthly payments to spread it out over time.
        
           | avgcorrection wrote:
           | We can always trust HN to blame the (l)user rather than the
           | businessmen. Even to blame "markets" rather than to blames
           | businessmen.
           | 
           | It is of course unfathomable that any businessmen might have
           | _leaned into_ and _promoted_ this current model. They could
           | have never have _sought out_ to leverage free product+network
           | effect in order to build their business on user data. They
           | would never. They are after all just businessmen, mere
           | puppets of the depraved luser.
        
             | api wrote:
             | You are right but both are right. The market and the user
             | pushed the idea of free as in beer (confusing it with
             | freedom) _and_ businesspeople were happy to do everything
             | you describe.
        
               | avgcorrection wrote:
               | Alright. I'll take it :)
        
           | nittanymount wrote:
           | good points !
        
           | vineyardmike wrote:
           | > People will refuse to pay $50 once for software but will
           | happily pay $20-$50 per month for a service that offers less
           | performance, no privacy, worse security, no continuity if you
           | stop using it, fuzzy ownership of your own data, and a system
           | that utterly vaporizes if the company goes away.
           | 
           | Daily reminder for HN that if the service you buy is an
           | ongoing service then paying once doesn't work. If the company
           | has a monthly expense related to servicing you, it makes
           | sense to have a monthly payment to them. Dropbox et al. can't
           | be "buy once" because that's not how the cost of data centers
           | work.
        
           | jl6 wrote:
           | Commercial, perpetually licensed software isn't always free
           | of future cost. Even if it's only $50 today, you might also
           | be on the hook for:
           | 
           | * Mandatory upgrades when v1 ceases to receive security
           | patches.
           | 
           | * Mandatory upgrade of dependencies when a new version drops
           | support for, e.g. an old OS version.
           | 
           | * Having to buy a replacement anyway when the vendor walks
           | away from supporting the software (and why wouldn't they?
           | They're not being paid any more).
           | 
           | * Or alternatively, the vendor doesn't walk away from
           | support, but charges you for it (effectively becoming SaaS
           | anyway).
           | 
           | * The cost of running your own hardware to run the software.
           | Dropbox is the obvious example of this - redundant offsite
           | storage hardware is a hassle that you can outsource with the
           | SaaS option.
        
           | blooalien wrote:
           | I was just about to upvote you until I got to the part where
           | you start trashing FOSS users as unwilling to pay for
           | software. This is a long-time lie of the Linux-hating Win-
           | Troll crowd, since at least the Steve Ballmer days of
           | Microsoft, and patently bullshit. I've personally paid for
           | more (FOSS _and_ closed-source) software since switching to
           | using mostly FOSS software than during my many years as a
           | proprietary software and MS Windows user, and I 'm not alone
           | in that. Humble Bundle _proved_ (before they removed public
           | bundle purchase statistics from their website) that Linux
           | users are not only _willing_ to _pay_ for software, but are
           | often willing to pay _more_ for _decent_ software than any
           | typical Windows user will (and most Mac users, too). We also
           | tend to understand and respect software licenses more, and
           | are generally unwilling to freely sign away our freedoms as
           | easily. Problem is that most folks outside of the FOSS
           | community too easily confuse free of cost and free as in
           | freedom, and assume that the only reason people would use
           | FOSS is because it 's often free to download and use. Freedom
           | _is_ the reason I use it, and the fact that it 's often also
           | free of cost (even though I still pay for some of it) is just
           | "icing on the cake" as the old saying goes.
        
             | bachmeier wrote:
             | Yep. The move to free software was about much more than the
             | price. Pay for MS Office. Use it on the one machine it was
             | authorized. Need to reinstall? Hope you kept the
             | authorization code. Want to access your data outside of MS
             | Office? Sucker. You stuck it all in their (at that time)
             | proprietary formats. You bought a laptop? Great. Now you
             | can buy another copy of MS Office to go with it.
        
             | api wrote:
             | I've been a FOSS user since 1993 and am totally willing to
             | pay for software.
             | 
             | Here's the problem: any license that attempt to require
             | _businesses_ to pay for software or that restricts for-
             | profit SaaSification tends to be rejected by the FOSS
             | community. The AGPL is the closest we have and it doesn 't
             | really do that even it gets a lot of hate in FOSS circles.
             | 
             | Without such concerns being addressed in the license it's
             | impossible to put any kind of direct simple business model
             | behind open source software. This means that almost all
             | businesses opt for a SaaS model where it's easy to charge
             | or find other roundabout ways to "charge" such as
             | harvesting user data.
             | 
             | TL;DR: the software market has structurally organized
             | itself so as to almost rule out business models other than
             | SaaS and surveillance.
        
           | spogbiper wrote:
           | > People will also pay $10+ dollars for a single cup of
           | coffee at Starbucks every day. But god forbid they pay that
           | much once for an app they use every day.
           | 
           | This is why I no longer write mobile apps
        
             | Filligree wrote:
             | If it's any comfort, I made that calculation and decided
             | not to sweat it, but purchase any app costing less than ~10
             | with about as much thought as I'd give to buying coffee.
        
               | Scramblejams wrote:
               | I feel similarly, if I see a mobile app that I think
               | might solve my problem and it's low single digits, it's
               | practically an impulse buy. If it doesn't work out, I
               | don't feel used.
               | 
               | I've also happily spent $15 on an iOS app before because
               | it was really good at what it did.
               | 
               | It made me wonder if there's a really great market out
               | there for an incredibly well done niche mobile app you
               | could charge $99 or more for. A whole lot of customer
               | service problems disappear when you preemptively
               | disqualify the uncommitted...
        
         | teawrecks wrote:
         | For the same reason all streaming services and game storefronts
         | don't provide a generalized API to be used with 3rd party front
         | ends. They all want to pretend that they are the only service
         | you'll ever need/use, and their UX isn't designed for
         | practicality, it's designed for marketing.
        
       ___________________________________________________________________
       (page generated 2022-04-29 23:00 UTC)