Hacker News new | past | comments | ask | show | jobs | submit login
From Cyberdog to dataless files: a brief history of iCloud (eclecticlight.co)
73 points by ingve 10 months ago | hide | past | favorite | 33 comments



The worst thing about iCloud Drive - if you keep files in it, your iPhone can remove the local copy any time.

So if you want your files to be synced and to be 100% sure you'll have a local copy - you should keep the same file in iCloud Drive and in the "On My iPhone" folder. This is the reason Apple Books, Numbers and all the apps that use iCloud Drive remove local copies all the time.

I made a simple note-taking app using iCloud Drive - iCloud was greedily removing a 2 kb txt-file when the app was closed (sometimes it wasn't removing - it's quite random). It doesn't matter if you have a lot of storage space - iCloud still can remove the local version of a file you constantly use.

The Apple developer support said nothing can be done. Even for a developer there is no way to mark a file as never to be removed

P.S. In their official docs Apple actually recommends to keep all the user's files in iCloud Drive and _not_ to keep a copy "On My iPhone"


This got me when I was in the middle of nowhere abroad airgapped. The file I wanted wasn't there.

Switched to OneDrive and android now. Keep offline works.


Until they remove it too...


I was astounded by how bad the books app on iOS was. I just want to open a book to read that I have a local copy of, but I need an internet connection to redownload it. If I close the app for a moment it needs to be downloaded again. If your on a rate limited connection it means you might have yo wait more than ten minuets to acres a book that’s right there in your downloads folder already.


>I was astounded by how bad the books app on iOS was. I just want to open a book to read that I have a local copy of, but I need an internet connection to redownload it. If I close the app for a moment it needs to be downloaded again.

Not to my experience. Books just need to be downloaded once, and they stick.

Maybe it's based on some calculation like available device space?


I have the exact opposite experience, downloaded some books to read on a plane but they were gone when I boarded.



For photos?


Cyberdog was a web browser/Internet application suite like Netscape. If it’s the spiritual predecessor to anything, it’s Safari, not iCloud, but I wouldn’t say it was even that. It was really just a tech demo. From what I remember, it was just barely functional. It was something you’d run after you installed OpenDoc and say “that’s neat” about and then never touch again.


> From what I remember, it was just barely functional

Cyberdog had instantaneous indexed search for local text, which combined really well with tech mailing lists that were really popular back in the day.

That didn't become a part of the feature set on Windows until Windows Vista shipped a decade later.


>Cyberdog had instantaneous indexed search for local text

Was that what eventually became V-Twin, and then became Spotlight indexing? I vaguely remember that from the Cyberdog/OpenDoc days. I always wanted to play around with it, but it was so memory intensive for the Mac I had access to at the time. It seemed amazing though, like a big step up from OLE (in terms of technology).


Cyberdog was the first software to ship with the Advanced Technology Group's V-Twin search tech. It was added to the Finder search in Classic Mac OS and as Spotlight in OSX.


I remember using Cyberdog some in the late 90s, and what I saw most often is that it’d work fine for a while (as long as all the sites you visited were text and images with nothing fancy), and then start stalling when loading pages. Of course that might’ve just been the flakiness of the 28k dialup connection the house was on back then, but Netscape 3.x and 4.0.1 from the same era didn’t exhibit that behavior as often.


Get progressive rendering by using OpenDoc to embed MSIE's engine within the Cyberdog shell https://web.archive.org/web/19990302062719/http://www.kantar... :2bong:


Cyberdog also included a handful of apps that were annoying to install on the Mac in 1996: contacts, e-mail, FTP, newsgroups, etc.


There were actually a lot of good freeware and shareware apps for most of that — things like Eudora for e-mail, Fetch for FTP, and NewsWatcher for NNTP.


For sure. Cyberdog, for a brief moment, made it easy to find and install alternatives to Cyberdog!


Am I missing something here, or did the author forget to discuss "dataless files" after mentioning it in the title?


Dataless files are interesting! They are a special type of file with a bit set (and an xattr) in the file system and no actual file contents. They all live inside a “sync root” in APFS, where each sync root belongs to a specific file provider like Box, Dropbox, iCloud Drive etc. Whenever the kernel detects access to one of these files it will synchronously “upcall” into the current user context and XPC directly to fileproviderd which will in turn communicate with an installed file provider to download and provide the file (changing it from a dataless file into a normal file). This is called “materializing” the file. It will also emit an event using the FSEvents API.

fileproviderd (a launch agent on macOS and a daemon on iOS) watches the FSEvents stream and saves the events in its database. fileproviderd maintains its own sync engine for each provider on the system and will forward events to/from each provider.

Dataless files are an interesting example of Apple using its vertical integration to create an end to end solution that others can’t quite make. Since they own the filesystem, kernel, and user space daemons they can make something that works like this.

This is part of Apple’s years-long effort to kick 3rd parties out of the kernel. As apart of the M1 transition, kernel extensions were no longer aloud and file provider apps were using kernel extensions to intercept file system events at a low level before. Now that they are no longer able to do that, Apple has provided this replacement.


It sounds like a very much better integrated, more foolproof version of say, the FUSE filesystem with SSH or FTP as the remote side. You would start with a listing of files but then upon access the remote file will be accessed.


My experience using applications built around the FUSE stack or the File Provider API suggest to me that while your take is generally true, it’s a “grass is always greener” problem.

The File Provider API provides a much better admin and user experience, but the storage providers tend to really easily make a confusing mess of it. OneDrive took the time to figure out how to use sync roots in a way that enables you to store your actual data-containing files to an external drive. Dropbox didn’t care about supporting that use case on Macs, so what was once possible with both is now just possible with one. That has been a source of problems for many.

On the other hand the migration to OneDrive’s File Provider implementation was a data-thrashing horror show for many.

And iCloud Drive doesn’t truly let you decide a persistent sync state for everything.

The security implications are better but it’s just the same old mess file syncing has been for a long time :)


Re: External drive with OneDrive. Can you share details? In my experimentation I found it would refuse to place my OneDrive root on any disk marked as removable. Since I don’t own a $6000 computer, with actual drive bays or nVme slots, that limits me to keeping it on my anemic internal drive. I’d love to find out I’m wrong.

(I keep several SSDs connected via USB through a USB-C dock, if that matters to the answer)


Hey! I didn’t see this before today, sorry :)

macOS enforces that the sync root remain local, but OneDrive does a little bit of slight of hand to be able to store files on an external drive.

There is a write-up from the OneDrive team at [0] that details some caveats on how this works.

OneDrive technical documentation can be difficult to follow since they like to disclose version/dated changes as blogs instead of something more formal and managed.

I believe this is still possible, but experimentation with non-critical data might be advisable.

[0] https://techcommunity.microsoft.com/t5/microsoft-onedrive-bl...


it'll be a day of celebration when apple allows fuse as a backend.


You comment is better than the linked article.

Also, I think you meant allowed not aloud


Thank you!

D'oh! Damnit I hate when I do that, thanks for letting me know. I wish I could still edit the comment..


This isn't unique to Apple, OneDrive on Windows can also download files on-demand.


Yeah, I’m wondering that too. That was the hook I was interested in.


It's now common for "You Wouldn't Believe" style clickbait articles to show a screenshot of something that's not in the actual article. Guess it's leaking into other forms of online journalism.


It also forgot to discuss Cyberdog, aside from mentioning its name. What is it? I kept rereading the first paragraphs thinking I’d missed it.



I think one mistake in this article is calling .Mac a successor of CyberDog. This is incorrect because if I can remember correctly CD was just a set of programs and APIs on the client side. Unlike .Mac there was no service component attached to it. Apple did not offer a CyberDog service of any kind.

And vice versa, .Mac was a closed system component without any APIs that developers could use in their applications. I think that came much much later.


I remember living through all of those changes and GUIs! Fascinating to see it all on a single page, in chronological order.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: