492 karma · joined January 12, 2011
https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/dirhi...
I do zfs snapshots on my storage server (home desktop), which is in Syncthing's "receive only" mode. I use it to sync my camera roll and Whatsapp media files from my Android phone. I use pyznap for snapshot management.
> Setting up a cron job / timer unit that commits the synced folder to a git repo is also an alternative
Another option would be to backup the synced folder using a backup tool like borg, restic, duplicacy etc. They have options to prune the snapshots.
"Then I got an idea. I challenged them: "I bet there isn't a single theorem that you can tell me - what the assumptions are and what the theorem is in terms I can understand - where I can't tell you right away whether it's true or false."
It often went like this: They would explain to me, "You've got an orange, OK? Now you cut the orange into a finite number of pieces, put it back together, and it's as big as the sun. True or false?"
"No holes."
"Impossible!
"Ha! Everybody gather around! It's So-and-so's theorem of immeasurable measure!"
Just when they think they've got me, I remind them, "But you said an orange! You can't cut the orange peel any thinner than the atoms."
"But we have the condition of continuity: We can keep on cutting!"
"No, you said an orange, so I assumed that you meant a real orange."
So I always won. If I guessed it right, great. If I guessed it wrong, there was always something I could find in their simplification that they left out.
For example, in C, if you have any type Foo, the pointer operator * will give you a new type Foo*.
Another example: in Haskell, Maybe is a type constructor, since it takes a type parameter a (Maybe a). So 'Maybe' is a type constructor, but 'Maybe Int' is a type.
So a type constructor is like a function, but it operates on types, not on values.
I've heard it said like this: Creating a software is like developing a recipe for a cake. Baking thousands of cakes (a "manufacturing process") is what you do once you have the recipe. The two activities are very different.
[1] https://www.goodreads.com/book/show/260493.Secrets_to_Winnin....
Perhaps even more important is the increased memory use due to Lua. Some devices have very little memory to begin with.
I once introduced Richard Stallman to a fellow grad student in Japan like this (in Japanese): "He is the creator of GNU. You know, as in gnuplot."
Stallman understood what I said and immediately corrected me: "gnuplot is not a part of GNU".
So far we've been using a single server for storage, and developers rsync whatever they need locally. A few million images. Training is usually done locally, but when we do use cloud training, we upload just the dataset we need to S3 and use EC2.
We're a small team, and currently considering moving to a cloud-first infrastructure. The idea is to store each image in S3, and all metadata (annotations etc) in Postgres or something like that, maybe using Postgres's JSON/JSONB feature.
I'd appreciate any thoughts and pointers on handling datasets with a few million images.
http://www.1netcentral.com/articles/the-snake-rope-essential...