Fork me on GitHub
#off-topic
<
2022-03-18
>
Jan ariane16:03:50

what are different ways/tools to backup/storage of data (apart from local disk)? bi-directional sync available? i know some names but not sure how they are related/connected/to choose from: rsync/pcloud/rclone/storj/filecoin/google drive/azure/git/gitlab/github. I am looking for ways to data backup of my windows system.

andy.fingerhut16:03:13

Often people use "backup" to mean "at this point in time, create a copy of X in a physically different place Y, such that the copy ends up being exactly like X is right now". There are optimizations on that where if Y is already very similar to X, the data physically transferred between X and Y can be only the differences. rsync can do this for file systems.

andy.fingerhut16:03:23

Usually the intent of making a backup is either (a) if X fails, or is destroyed, etc., one can use Y and copy it back to a new X to get you back to that state, or (b) I am worried I might mess up X in some experiments I am about to try, and I want to be able to go back to the state in Y if something bad happens because of my actions.

andy.fingerhut16:03:01

I am not familiar with pcloud/rclone/rstorj/filecoin/azure to make any educated statements about them.

andy.fingerhut16:03:11

git/gitlab/github are all related to git, and provide revision control of a set of files. git does this on your local file system. github is a web site where you can keep copies of a git repository, but also provides extra features that make it more convenient for multiple people to coordinate changes to the. same set of files.

1
pavlosmelissinos17:03:07

Also keep in mind that backup != sync backup solves "I want to store a recent enough snapshot of my data in another place in case something happens to the original". The point of backup is to be different from what's currently on your main disk when you need it. So you definitely want to control when it happens. sync usually solves "I want all of these X locations to have the same contents, at all costs". It's perfect for file sharing with multiple devices/users but it won't protect you from user error, file corruption and ransomware attacks. E.g if you delete a folder on your computer do you want it to automatically be deleted on the other side too? (btw for plain-text content, git is indeed king and can satisfy both use cases up to a point)

Jan ariane16:03:29

content is text based as well as other files like xlsx/pdf etc. So for text as you said, i ll set up some provision using git.

Jan ariane16:03:29

backup and storing data is same thing?

Dustin Paluch16:03:27

your computer is currently storing data on your hard drive. a backup of data implies that some data that you’re already storing in location A has been duplicated (backed up) at a different location B.

borkdude16:03:24

Clojure / nbb post on Hackernews. Just saying :)

💯 8
🔺 1
Jan ariane16:03:25

anyone knows how to have notion data backup on gitlab?

andy.fingerhut16:03:42

This seems to be going over questions you have asked already, and I've answered. git is a way for a specific set of files you choose to put into the same git repository, to maintain a list of revisions for all of those files. If you then copy that repo to gitlab or github, then FOR THOSE FILES in that git repo, yes, that is a form of data backup, in that it is a perfect retreivable copy of all the files IN THAT GIT REPO.

andy.fingerhut16:03:52

You can have many git repos stored on gitlab and/or github

andy.fingerhut16:03:13

That does NOTHING to make a backup of files or data that are outside of those git repos.

andy.fingerhut16:03:33

i.e. it is not a good or recommended way to keep a full backup of your laptop's hard drive, for example.

hiredman18:03:28

staring at this stacktrace on a stack overflow exception: > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77] > [java.lang.ClassLoader loadClass "ClassLoader.java" 574] > [clojure.lang.DynamicClassLoader loadClass "DynamicClassLoader.java" 77]

🐢 8
hiredman19:03:32

fortunately I stuck my fingers in my ears and hummed really loudly and the error went away

2
p-himik19:03:16

This workaround should be added to the ticket.

3
😂 1
Nundrum19:03:32

Please tell me you sell a two-week retreat to teach this method of resolving errors?

andy.fingerhut19:03:26

"There's the rubber duck method, and the also widely practiced, but not as often positively reviewed: see no evil, hear no evil, speak no evil approach, i.e. run it again and see what happens"

andy.fingerhut19:03:52

Of course, if you are dealing with a big system and CI/CD tests that only fail occasionally, and that fraction grows slowly over time, getting to the root cause of those later will often end up in many little different root causes for different failures, which are just gloriously fun for one person to try to track down and fix.

☝️ 1
lsenjov02:03:59

I've seen this with generated code with generated tests. Each test would fail about 1/1000 times, but it was spitting out about 2000 tests...