No, to play by their rules, you need to fill a box full of packing peanuts and 1 penny. Then shred the box, throw the pieces in the garbage and pay him with a gum wrapper found at same land fill.
I believe it was always open source (and yes, many people DO run their instances). The recent announcement was that they would be accepting community-written code into the main trunk.
Better yet, just make a list of filesize vs filename, then only compare files with the same filesize. This should eliminate 99% of your large files instantly.
The chances of having 1000 different files with the same size over 1MB is so small it's not even worth considering worrying about. 1000 files under 1MB is going to take up only 1GB, so after the initial read, they'll all be in cache anyways.
*Every* file on your computer is a hardlink. It's an entry in a filesystem table that lists the file's directory, name and inodes (inodes reference the physical sectors). When you create a hardlink, it basically creates a new file, but instead of allocating new inodes to it, it lists the same inodes as the original file. When you "move" a file, it only changes the director/name parts of the filesystem table entry for that file (this is why you can move a 1TB file as quickly as a 1KB file). In fact, the old "a move is nothing more than a copy+delete" is completely false since a copy+delete copies the actual data, creates new inodes and then deletes the old filesystem entry (which deletes the original inodes ONLY if there are no other hardlinks pointing to it). The kernel is smart enough to only release sectors once ALL hardlinks that point to their inodes have been removed from the filesystem table.
1) Which is a DRIVER issue, the application that talks to them remains the same.
2) API's tend to be VERY stable during major releases. Breakage typically only happens between major releases and both releases are usually available AND maintained for quite a while afterwards. Which is better than forcing your users to install old unpatched libraries that haven't been updated in months.
And those majors versions are available for a LONG time. In fact, they keep supporting the previous major version (even adding more minor versions) long after the next major release has been included in the major distros. The package maintainers (or you if it's closed source) then simply link to the major version. (Hint: if you have QT 4.foo.bar installed, QT will be symlinked to 4 which is simplinked to 4.foo which is simlinked to 4.foo.bar).
If some old mis-design bugs you enough, add a new interface, but keep the old one.
All of the libraries I mentioned (plus GTK which I forgot) do exactly that during major release numbers. If you compiled your code with QT 2.foo it will work just fine in QT 2.bar unless you hit a bug (which is normally corrected in a subsequent minor release) or were exploiting one (which is your fault).
Damn straight, you bring TWO!
No, to play by their rules, you need to fill a box full of packing peanuts and 1 penny. Then shred the box, throw the pieces in the garbage and pay him with a gum wrapper found at same land fill.
Or does it?
I believe it was always open source (and yes, many people DO run their instances). The recent announcement was that they would be accepting community-written code into the main trunk.
Yes, everyone could theoretically be followed and logged today. Currently, that is far too time consuming.
Oh really?
Not to mention they advertise their every move on Facebook or Twitter
Exactly. Just because THEY don't value their privacy, doesn't me WE don't a have right to ours.
Whooosh
Well, someone has to make all that cheese!
Well, if Phusion says it's true, then it MUST be true!
How will cows stand up to low gravity?
They'll just kind of float around.
Better yet, just make a list of filesize vs filename, then only compare files with the same filesize. This should eliminate 99% of your large files instantly.
The chances of having 1000 different files with the same size over 1MB is so small it's not even worth considering worrying about. 1000 files under 1MB is going to take up only 1GB, so after the initial read, they'll all be in cache anyways.
*Every* file on your computer is a hardlink. It's an entry in a filesystem table that lists the file's directory, name and inodes (inodes reference the physical sectors). When you create a hardlink, it basically creates a new file, but instead of allocating new inodes to it, it lists the same inodes as the original file. When you "move" a file, it only changes the director/name parts of the filesystem table entry for that file (this is why you can move a 1TB file as quickly as a 1KB file). In fact, the old "a move is nothing more than a copy+delete" is completely false since a copy+delete copies the actual data, creates new inodes and then deletes the old filesystem entry (which deletes the original inodes ONLY if there are no other hardlinks pointing to it). The kernel is smart enough to only release sectors once ALL hardlinks that point to their inodes have been removed from the filesystem table.
So diff-check the files with matching md5's (you should be doing this anyway just in case). Problem solved.
You mean Windows FP?
One of the other problems with forcing it is that it may render the unit impossible to remove if/when it needs replacing.
1) Which is a DRIVER issue, the application that talks to them remains the same.
2) API's tend to be VERY stable during major releases. Breakage typically only happens between major releases and both releases are usually available AND maintained for quite a while afterwards. Which is better than forcing your users to install old unpatched libraries that haven't been updated in months.
And those majors versions are available for a LONG time. In fact, they keep supporting the previous major version (even adding more minor versions) long after the next major release has been included in the major distros. The package maintainers (or you if it's closed source) then simply link to the major version. (Hint: if you have QT 4.foo.bar installed, QT will be symlinked to 4 which is simplinked to 4.foo which is simlinked to 4.foo.bar).
If some old mis-design bugs you enough, add a new interface, but keep the old one.
All of the libraries I mentioned (plus GTK which I forgot) do exactly that during major release numbers. If you compiled your code with QT 2.foo it will work just fine in QT 2.bar unless you hit a bug (which is normally corrected in a subsequent minor release) or were exploiting one (which is your fault).
The regular ones or the ones with loops?
Sure they do, but their negative numbers only go to -3988 (skipping 0 of course).
Or that you didn't measure it in the shade.
I wonder how many AAA's you can shove in a garden hose (with bypass wires to create parallel circuits for more amps).
Blackboard and Virtualmin are ones I'm forced to use on a regular basis.
All of which has NOTHING to do with ABI's which reside only between the hardware drivers and the kernel, NOT the userspace applications API's.