9 ms·
Simple Lasts Longer
- gniv 3y ago> This works by default, without any permission prompts. How come? Is WebStorage exempt from GDPR? (I searched a bit and found both yes and no answers.)
- frankzander 3y agoWhy do you think prompts are necessary? If you don't send any data to third parties or let them store data on the users device you don't have to prompt anything GDPR related.
- russelg 3y agoIn this context they probably mean browser permissions, like notifications or camera/mic access.
- ptx 3y agoThe GDPR is concerned with using cookies or storage for tracking users without their consent, not with using cookies or storage as such. You don't need to ask for permission to use cookies (or similar techniques) in general – only when using them for evil. GitHub wrote a blog post [0] on this a few years ago. Most cookie banners try to conflate the different uses of cookies to trick users into consenting to the tracking the law is meant to protect against. They are essentially the equivalent of a restaurant asking you "Knife Consent: This restaurant uses knives for 1) cutting vegetables and 2) removing your organs to sell on the black market. CONSENT TO ALL?" [0] https://github.blog/2020-12-17-no-cookie-for-you/ https://github.blog/2020-12-17-no-cookie-for-you/
- jauntywundrkind 3y agoIt'd be excellent if Export/Import has a standard format. Especially if we see adoption on the Storage Buckets standard, sites will be able to partition up their storage into different concerns. Maybe there's some users data (xdg config[1]), some cache (xdg cache[1]), some app state ([1]), and each can be saved into a different bucket. Then a standard export/import standard would let folks save and load data easily? Maybe in interesting cross-site ways, where we import/export data? https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html https://specifications.freedesktop.org/basedir-spec/basedir-... I was super scared this article was going to glorify an impractical disconnected imo useless "simple." Very glad to see import/export handled; simple, but very much in users power to let connectivity happen, to spread their data, as connected apps have so powerfully let us do.
- xnx 3y agoAre there any ideas / draft proposals about browser access to shared cloud storage? (Google Drive, Dropbox, OneDrive, etc.) The ability to store data on the user-side in a way that they control and is still cloud-available to multiple devices may be a feature that's just too user-empowering to be supported.
- kevindamm 3y agoI think many of us run our own NAS or document server or something... or even just an rsync and off-site system. But delivering this to users as a turn-key solution is a challenge. If your role is to just provide software that works together, there are some not-too-difficult solutions out there but still a lot of ways to mess up the replication or keep things from getting pwned. If your role is to provide availability and reliability, the economies of scale and totality of control that a centralized system provides just wins out over an indexing of the user's systems. EDIT: I missed that your question was specifically about browser access. tbh I think it makes the most sense to deliver the files directly by the server, with maybe some media controls for specific file types but even that is something the browser can basically take care of out-of-the-box.
- wolpoli 3y agoI have seen one web app [0] uses the remote storage library [1]. It does fit your criteria. It would be nice if the big cloud storage companies adopt this or create something similar. [0]: https://petrolette.space/ https://petrolette.space/ [1]: https://remotestorage.io/ https://remotestorage.io/
- ryukafalz 3y agoYou've just reminded me of a project I ran into years ago that seems to still be around: https://remotestorage.io/ https://remotestorage.io/ The library for that seems to support their custom protocol as well as Dropbox and Google Drive these days. There's also Solid which attempts to do something similar: https://solidproject.org/ https://solidproject.org/
- Gigachad 3y agoCan't you already do this with the regular file api? If you've got the cloud storage app installed, it will show your cloud storage as a folder to use in the file picker. Or do you mean websites automatically saving stuff to your cloud storage without any UI interaction. That sounds far too abuse prone.
- edfletcher_t137 3y ago> They can only last if they’re simple to maintain, otherwise keeping them working becomes tedious and the author eventually gives up. This, x1000. I cannot count how many hobby projects I have outright abandoned at the first failure, never to return. The fix may have been simple too! I'll never know, though: the startup effort required to re-contextualize myself with the complex mess I'd made was never worth it at the time, and the longer you let them languish the less-likely you are to return. RIP, projects. Simple Lasts Longer.
- fiddlerwoaroof 3y agoThis technique is used by a lot of idle games to preserve progress. E.g. the kittens game exports its state as a base64 encoded string.
- fardo 3y agoCookie clicker does something similar for importing and exporting saves, and it is an absolute joy to not have to fiddle with accounts and be able to backup your own data. I’d love to see more applications move to this model, it’s very user-friendly.
- stevage 3y agoYeah, I use this solution. A next level up is to use Glitch, running something like PocketDB.
- nicbou 3y agoI've recently been making much simpler projects, and simplifying old projects too. I don't have as much time for maintenance as I did during COVID. On the other hand, my most complicated project ran just fine for 3 years. I dreaded touching it because it was too hard to reason about, but it worked.
- 5350-uiop-1130 3y ago> "They can only last if they’re simple to maintain, otherwise keeping them working becomes tedious and the author eventually gives up." avoiding third-party services/APIs and fickle build tools will get you 99% there. not always possible. i remember the days when APIs and aggregation was the trend. yahoo pipes was the peak.
- thriftwy 3y agoI wonder if you do not have more interesting things to see in Paris than crude Space Invader pixel art. That would be really neat if it was all over Chelyabinsk or Sao Paolo, or maybe some derelict US suburbia. But Paris? Come on! Same thing with London and Banksy, btw. Of all the things you could see.
- UseStrict 3y agoI would assume this is more intended for locals or frequent visitors. Paris is nice, but after a few months it becomes like any other city.
- DeathArrow 3y agoThis reminds me of Hello World Enterprise Edition: https://gist.github.com/lolzballs/2152bc0f31ee0286b722 https://gist.github.com/lolzballs/2152bc0f31ee0286b722 Sometime people really like to complicate instead of keeping things simple. Not just for show off but they genuinely believe something more complicated is better. Better such as it has better security, it has better extendability and is more generic. Even if those features were never in the actual business requirements. I am amazed no one has written Hello World Microservice Edition. So you can have a fancy React UI, a Gateway, an User service, an Authorisation service, a Notification service, an Audit service, a Pricing service and a Printing service.
- defrost 3y agoThere is, of course, Hello GNU World: https://www.gnu.org/software/hello/manual/hello.html https://www.gnu.org/software/hello/manual/hello.html with versioning and diffs: https://ftp.gnu.org/gnu/hello/ https://ftp.gnu.org/gnu/hello/ I'm guessing the WebASM Privacy browser equiv must be: Hello Brave GNU World
- arethuza 3y agoThat "Hello World Enterprise Edition" looks dangerously under-engineered - I could understand it! Far better to follow the best practices demonstrated in the Fizz Buzz Enterprise Edition... https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpris...
- trommlp 3y agoI don't know all the reasons individual developers would want a more complicated piece of software. Might be to show off, yes, or to learn about a new technology to the detriment of those developers that come after and the Ops people who will have to maintain it. Or they genuinely believe complicated is better. But the one thing that ultimately adds a lot of unneeded complexity to basically every software project at my work are requirements. That kind of requirement that nobody thought of when the project kicked off. And this kind of requirement that a few months later everyone realizes nobody actually needed. And that you possibly remove after a while. But in the meantime this feature influenced your entire data model or worse. This is the point where your previously fun work turns into a slog for the duration of said project. Well at least we can still have fun with our hobby projects!
- karlosos 3y agoUsing offline storage is the approach I use in most of my hobby projects. It's simpler, and faster (in developing and in usage) and there are no loading screens. In my kindle-clippings-manager (https://github.com/karlosos/kindle_clippings_webapp https://github.com/karlosos/kindle_clippings_webapp) I import highlights from Kindle and store them in localStorage. The major drawback is a size limitation (10MB). This should not be a problem in most cases but if you need to store more data then indexedDB (with bigger limits but more complexity) can solve the issue. Linear (https://linear.app/ https://linear.app/) uses its sync engine to store the data in Web Storage. With optimistic updates, it feels like an offline app. You can read more about the sync engine here: https://news.ycombinator.com/item?id=36519448 https://news.ycombinator.com/item?id=36519448
- deleted 3y ago[deleted]
- HermanMartinus 3y agoThis is the philosophy behind Bear Blog. It’s built to last longer than me. https://herman.bearblog.dev/building-software-to-last-forever/ https://herman.bearblog.dev/building-software-to-last-foreve...
- Dalewyn 3y ago>Hobby projects are fragile. They can only last if they’re simple to maintain, otherwise keeping them working becomes tedious and the author eventually gives up. Literally why I always choose Windows over Linux, Intel/Nvidia over AMD, air cooling over water cooling, etc. for all my computers. Life is short, ain't nobody got time for jank no more.
- schemescape 3y agoLocal Storage falls apart on iPad/iPhone, unfortunately. The data is deleted if you don’t visit the site often enough. I lost my Wordle stats over a vacation this way. Even worse, if you have an HTML game hosted on itch.io (which uses a cross-domain iframe, for security), Safari just silently discards all Local Storage when you close the tab, with no option to disable this behavior on a specific site. I know Local Storage is supposed to be just a cache, but I really wish we had opt-in durable storage…
- password4321 3y agohttps://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria#proactive_eviction https://developer.mozilla.org/en-US/docs/Web/API/Storage_API... > Safari proactively evicts data when cross-site tracking prevention is turned on. If an origin has no user interaction, such as click or tap, in the last seven days of browser use, its data created from script will be deleted.