The failure modes of rsync
-
-
-
-
-
As I understand it: Whilst unix (and linux is a derivative of unix) was inspired by many things one of the objectives was to remove everything from the code for each command / function that was not absolutely critical for its functionality (including the name), in order to to improve performance and reduce resources. Some may claim that this was to make it "quicker" to type in, but I reckon that that is a post trauma rationalisation so people could "continue" to use it (and it gave them the perfect excuse to create an "elite" club).
-
-
I always knew Windows was for grownups!
Apart from XP a.k.a. Windows Fisher-Price Edition
-
One of my professors has ls aliased to l
I hate this "philosophy" of UNIX, of removing any and all possible contextual clues from the system. If I want to do something on linux, it becomes a google quest to discover the magical incantation or syntax to invoke the stupid simple utility that I could whip up myself in the same amount of time.
At least in the command parser on windows, when the user types "help" they get a list of usable commands, and a simple syntax to figure out what they do quickly. Sure you don't learn their quirks until they bite you in the ass, but, at least you can get started.
On linux you get told to figure out how the "man pages" work and then pour over the ENTIRE DOCUMENTATION FOR THE OPERATING SYSTEM just to figure out how to list files in a directory. Although I do prefer verbose documentation
-
Bottom line:
Windows/Microsoft sucks
Linux/OSS sucks
OSX/Apple sucks
We were far better off when computers were controlled by BASIC interpreters held in ROM.
Hang on, quite a lot of those came from Microsoft …
-
We were far better off when computers were controlled by BASIC interpreters held in ROM.
No we weren't. Computers always sucked. All operating systems. All architectures. All software and hardware without exceptions sucks (in one way or another).
-
This is why I built my own (virtual) processor!
Wait, no, that sucks too. Quite bad actually...
But it's Fun!
-
-
All software and hardware without exceptions sucks
Switch to a language that does have exception handling?
-
I ran into this exact same thing yesterday when copying a CentOS filesystem to an NFS share to move it to a diskless network-boot setup. I tried to rsync / to /mnt/nfs, and while I'd set up an exclude for /mnt/nfs I had the syntax wrong. Rather than tell me I had passed a bad switch, it ignored it and continued on.
I returned to the system an hour later to see that it was copying
/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs
into
/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs
-
Switch to a language that does have exception handling?
Like C++? Or do you mean Java? C#? Python? Pascal? PHP5? Prolog? Visual Basic? Because all of them suck. It's just that some suck less than others.
-
It really depends what you are doing. Very few languages suck at checking if an arbitrary integer is prime
-
Very few languages suck at checking if an arbitrary integer is prime
INB4 @ben_lubar!
-
Hang on, quite a lot of those came from Microsoft …
No, I don't think so. Before the Microsoft / Intel cartel there were a million and one "real" computer makers and software writers. Each with their own distinct flavour and appearance. All shared the basic ingredients but each had subtle additives. There was diversity. Buying a computer in one store would be a completely different experience to buying one from a store just up the street.
What "evolved" was a bit like what gave rise to CAMRA, the only reason a CAMRC does not exist, is it does not "slip off of the tongue" so easily.....
-
This compiles to a 252041-line (466762127 bytes) BIT program:
// sieve.cool // John Boyland // A sieve is a chain of numbers: // Each number only makes it through the sieve if it // is not divisible by any of the numbers existing. class Sieve(var prime : Int) extends IO() { var next : Sieve = null; def test(n : Int) : Unit = { //out_any(prime).out(" tests ").out_any(n).out("\n"); //out("n / prime = ").out_any(n/prime).out("\n"); if (prime * (n / prime) == n) () else if (is_null(next)) { out_any(n); out(" "); next = new Sieve(n) } else next.test(n) }; } class Main() extends IO() { { var s : Sieve = new Sieve(2); var i : Int = 2; out("2 "); while (true) { // loop forever i = i + 1; s.test(i) } }; }
-
1st question: Why?
2nd question: Why not a naive approach?
-
Why are they labeled as "Experimental"? In fact that directly contradicts that they are supported.
It's the Google model, though MS can't call it "beta".
-
That's one of the example files for the Cool compiler I wrote in 2013 for CS654.
-
hmm, haven't heard of BIT before...
oh...
okay?
...okay...
no
no no no
OH GOD NOWhy Ben Why! Whyyyy
-
Yeah... I'd expect
foo
orfoo/
to refer to the folder itself, andfoo/*
to refer to the contents.You're forgetting that rsync never sees the asterisk. Also, you're forgetting the dotfiles ;)
-
BIT, et.al.
My inner grammar nazi cried when he saw a period where a space should be.
-
.oops
-
It really depends what you are doing. Very few languages suck at checking if an arbitrary integer is prime
When was the last time when you had to check if an integer is prime?
-
When I was writing a program to find the first 1000 primes
-
I forgot - school projects and trying out new languages or techniques don't count.
-
That's one of the example files for the Cool compiler I wrote in 2013 for CS654.
Assuming this is the "CS654" you're talking about, I'm very impressed BIT has found its way to commercial products.
-
Hey, it's not my job to question the specs! I'm just a lowly intern!
What's with the contention? Don't you have fun with programming anymore?
-
You’ll find that quite a lot of the BASICs that old home computers and similar ran, were Microsoft BASIC in some or another disguise. For one, the Commodore 64 came with Microsoft BASIC — even if it didn’t acknowledge it on-screen until the C128. The main computers I can think of off the top of my head that didn’t, were the Apple ][ initially (its Integer BASIC was designed by Wozniak, but it later got a Microsoft one instead) and the Sinclair ZX80, 81 and Spectrum. I’m sure there were plenty of others, but a lot of early computer manufacturers took the easy route and licensed MS BASIC.
-
To be completely unhumorous:
This is CS654. It does not include BIT in any way.
-
What's with the contention? Don't you have fun with programming anymore?
I have fun, of course. In spite of all my tools sucking hard. Kinda like you still can have fun playing football even if your teammates can't even kick the ball straight.
-
Kinda like you still can have fun playing football even if your teammates can't even kick the ball straight.
You really only need one or two to actually kick the ball, of course, so that's not so bad.
-
The funny thing is that you tried to make the "American v. normal football" joke, but your statement is true for both.
-
I guess it depends on which version of history you read :) Yes microsoft (B. Gates et al, in the back of the garden shed days) Were involved at the start of things (very little choice in those days).
Whilst refreshing my memory on this, I found this quote (from the usual
suspectssources) of a quote that I found (for Purely Hubristic Purposes), amusing:The introduction of the first microcomputers in the mid-1970s was the start of explosive growth for BASIC. It had the advantage that it was fairly well known to the young designers and computer hobbyists who took an interest in microcomputers. Despite Dijkstra's famous judgement in 1975, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration", BASIC was one of the few languages that was both high-level enough to be usable by those without training and small enough to fit into the microcomputers of the day, making it the de facto standard programming language on early microcomputers.
-
My inner grammar nazi cried when he saw a period where a space should be.
BITdoesnotcareaboutwhitespace,andneithershouldyou.
-
"American v. normal football"
My inner grammar nazi cried when he saw a 'v.' where an 'is' should be.
-
Are you suggesting that something that comes from 'Mericuh can be normal?
-
I don't think so.
-
I’m sure there were plenty of others
The various Acorn computers came with their own BASIC versions too. No idea how common those systems were outside the UK, though their descendent is ubiquitous.
-
I hate this "philosophy" of UNIX
It made a hell of a lot of sense when you were using an old slow network. Every letter extra was really painful.
-
You need to look back to, what was it, TECO, for something that truly has no sanity checking.
TECO had implicit sanity checking. If you used TECO, you failed the sanity check!
-
Kinda like you still can have fun playing football even if your teammates can't even kick the ball straight.
Ah so you drink while doing it.
-
-
I've benefited from this, when trying to squeeze a workday out of a terribly slow and flakey VPN - instead of bothering with RDP I'd use ssh and vi for everything. When the connection was barely extant, there was sometimes a noticeable typing delay. Shudder to think what sort of pain I'd have been in if I'd tried for something graphical.
-
[quote="mott555, post:64, topic:50888]
I returned to the system an hour later to see that it was copying/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs
into
/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs/mnt/nfs
[/quote]
you got it to recurse without even calling it multiple times. In my tests it didn't do that. Maybe rsync doesn't scan the whole tree when the tree is sufficiently large, then it will happily copy new stuff that it it'd just added in a subdir.
Maybe we should all switch to PowerShell after all. It's much less confusing because it doesn't have
rsync
.
-
Shudder to think what sort of pain I'd have been in if I'd tried for something graphical.
I've run X11 over 14,400 baud. It was mostly of mostly acceptable speed, except for Framemaker being rather glacial (as it tried to do much more transferring of bitmaps between client and server than most apps did back then). :nothanksneveragain.arj:
-
Right; it's shitty, and it'll always be shitty, because if you're using Linux nothing can ever be improved. Ever. Welcome to ass.
Somewhere in San Francisco, Jamie Zawinski reached up to his eye, and felt a tear run down his cheek.