Can data be backup to iCloud but does not sync? - backup

I have a developer coding an app for me and they claim that some photo data is being backed-up to the iCloud, but this data does not sync and when A restore is done form the iCloud no picture data is restored.
My question is, is it even possible to do an iCloud backup without having the data sync across devices? The definition of iCloud seems to me to say that if it is in the iCloud it is synced. Can someone confirm?

Related

System drive incremental clone

I would have a question that will get a "-1" rating.
I once daily backup my data drive to a clone drive with SynckBack, which compares both disks and mirrors the copy to the original, just updating by adding/deleting files. Easy and fast, and the backup disk is a bit-to-bit clone of the original disk.
Although it's not exactly that, one can call this an "incremental" backup.
I would like to know if it's possible to do the same with my system disk, i.e. to once daily update a system drive copy in order to maintain a bit-to-bit clone that would be immediately bootable. Not by re-copying each time the whole system drive, but like for my data drive, just by adding/deleting once a day the slight amount of data which have daily changed.
Apart from building a RAID1 including my system disk, which implies letting the RAID running permanently, is there another way?
I didn't find any application that can bit-to-bit clone a system disk in such an "incremental" way.
I finally answer to my own question, in case someone would have the same wonder.
There is no app that can incrementially update a bit-to-bit clone drive. Such app are making disk images, which are not immediatly bootable and need first to be installed (nevertheless more quickly than installing Windows).
The only way to update a ready-to-use backup system drive is to totally re-clone it regularly, for instance with a standalone cloning dock station.
I give generously myself a "+1" rating.

How can I determine whether a doc was synced from PouchDB to CouchDB?

My app is using Pouch db to sync data from and to a remote Couch db.
The users are working with it mostly on a bad network strength and are not always able to sync all their data at once.
That's why I would like to display a list of documents which were not synced yet to the remote Couch db, but I'm struggling with it.
How can I determine if a certain doc was synced out to the remote?
I believe you can use the "change" event during replication in PouchDb. This event gives a list of the documents involved so you can work out what has been replicated and what has not. See the PouchDb docs for more information:
PouchDb replication in the API Guide

duply/duplicity -- where should I save profile data?

I am trying to set up a backup to Amazon S3 servers using duply, which is a front-end for duplicity.
When I create a duply profile, this message is returned:
IMPORTANT:
Copy the _whole_ profile folder after the first backup to a safe place.
It contains everything needed to restore your backups. You will need
it if you have to restore the backup from another system (e.g. after a
system crash). Keep access to these files restricted as they contain
_all_ informations (gpg data, ftp data) to access and modify your backups.
Repeat this step after _all_ configuration changes. Some configuration
options are crucial for restoration.
What is a reasonable way to go about doing this?
My purpose for setting up an encrypted off-site backup is that I don't want to lose all my data if there is physical damage (fire, etc.) to my home.
So, saving this information in a thumb drive doesn't seem like a good idea, since the thumb drive would also be destroyed in such an event.
Saving this information on the Amazon S3 server itself seems like it would completely compromise the encryption.
If not these two options, where does one save it?
how about tar'ing the profile folder and encrypt it with gpg (long symmetric passphrase or against your personal private key) and saving it off-site?
of course you can use anything else that can securely encrypt archives/files.
..ede/duply.net
PS: never use thumbdrives/flash based memory for archiving purposes. when not connected regularly to power they lose memory cell content because it is not refreshed.
Save it on several flash drives, put one in a bank safe deposit vault, they are not expensive.

Is there a possibility to infer the last time when the local core data store was completely synced to iCloud?

I am wondering whether it is possible to determine at which time my local Core Data store was synchronized with iCloud. From iCloud is trivial. You can just take the time of the last NSPersistentStoreDidImportUbiquitousContentChangesNotification. However, I could not find any method to check when my local changes were completely transmitted to iCloud.
Any ideas?
You can't find this out. The only information available is the transaction logs, but those don't tell you when the data was actually synced. Transaction logs are created when you save changes. At some later time (probably soon, but there's no guarantee) they get synced to the iCloud service. You don't get notified of this.
It might be possible to infer sync timing via out-of-band communication from other devices. For example, when you receive the did-import notification, write the current time to NSUbiquitousKeyValueStore. Then monitor that key to see when changes are received at the other end. That would at least tell you that some changes had been received by some other device. At best though, it would notify you of when changes had been downloaded at the other end, not when they had been successfully uploaded to the iCloud service.

When best to perform iCloud Sync

I'm syncing a list of table view items via iCloud. When would be best to perform the sync. Here is my understanding of the various options.
didFinishLaunchingWithOptions - this will only get called when the app is launched. As most users send the app to background, rather than quit, it is likely this method won't be called very often.
applicationWillEnterForeground - this will happend every time the app is opened from a background state, if the internet connection is slow, this could cause a pause is the UI displaying?
applicationDidEnterBackground - I believe we only have 5 seconds to perform any actions, so a slow connection might mean we can't sync.
What are your thoughts best time to sync?
Well, besides the fact that a document saves every so odd amount of seconds, the best time to sync with iCloud is very dependent on the circumstance.
For example, if you have created a brand-new object that would be lost if not stored to iCloud, it's probably a good idea to do a sync with iCloud right away.
On the contrary, if you have created a brand-new object that wouldn't be lost if not stored to iCloud due to it being saved within Core Data, then maybe you can combine the save into one elsewhere given that you're concerned about the speed and CPU that the sync will take up.