The trouble with "photorealistic" games is that they really aren't actually photorealistic at all,
You are attacking games for a claim that they've actually never made.
The topic of the article is not any existing game, but possibilities for the future, when brute-force raytracing becomes more and more plausible.
because they don't accont for indirect illumination.
There have already been games that accounted for indirect illum, usually by precalculating light levels. Of course, that means that they are then unable to accurately represent dynamic lighting and occlusion with the same fidelity- but for an average realistically lit scene, that's a better choice.
- I've yet to see a FPS which does anything except fire at whatever's in the centre of the screen.
Meaning, you've never seen a PC FPS set on the modern planet Earth. Battlefield2, Counterstrike, Deus Ex, Rainbow Six, Americas Army... they all slash gunfire precision while in motion. Even the fantastically whimsical Castle Wolfenstein is careful to make an MG42 uselessly inaccurate if fired while standing.
It's not recognized as a soveriegn nation by the US,
Wrong. The USA is aware that Taiwan is a separate nation from China.
They have a rule not to mention this in front of China, and once President Bush accidently told the truth about this on TV and got spanked.
Just look at the CIA's description of the China-Taiwan situation: "The dominant political issues continue to be the relationship between Taiwan and China - specifically the question of eventual unification". By using the words "eventual unification", they directly acknowledge that Taiwan isn't part of China right now.
it's no big deal, but if there are 100,000, then the 50x fork reduction could really matter.
In other threads, I've already reported that even with 100,000 files, spawning individual cp commands costs the user less than 1 second. A modern Unix-like can spawn repeated processes very fast- too fast to worry about, in general.
However, in this example, that reduction doesn't even occur- nor does your suggested method even work:
findutils-4.2.25> find -name \*.c | xargs --replace -n 50 cp {} ~/backup cp: copying multiple files, but last argument `./locate/locate.c' is not a directory Try `cp --help' for more information. findutils-4.2.25> find -name \*.c | xargs --replace -n 50 echo cp {} ~/backup cp {}/home/minna/backup./locate/code.c./locate/frcode.c./locate/locate.c findutils-4.2.25> find -name \*.c | xargs --replace echo cp {} ~/backup cp./locate/bigram.c/home/minna/backup cp./locate/code.c/home/minna/backup cp./locate/frcode.c/home/minna/backup cp./locate/locate.c/home/minna/backup
As other threads have pointed out, the -n argument lets you do fewer process spawns.
Not in this case. The -n option is incompatible with --replace. Whichever one is processed last will override the other. That's why your example didn't work. Removing the -n option makes it operate correctly, but of course destroys any alleged speed benefit.
The difficulty you (and also another poster, who wrongly suggested "-J" as an xargs option) had in getting it work is one reason I'd avoid teaching new CLI users something so difficult to get right, just because it might be faster sometimes. Correctness is much more important than speed.
The main problem with that is that it fork()s once for each file it processes;
That isn't perceptible as a problem on any computer with more than 16M and 50 Mhz. Once the executable image is cached in RAM, subquesent forks seem instantaneous.
I just made 100,000 files and tested it myself, and the find -exec rm method took under 400 ms, while xargs took just 40ms. From one perspective, 10x faster seems like a lot. But 360ms of time savings doesn't seem worth worrying about at all, especially considering how rarely a user will decide to erase 100k files.
(I bet if my files had been of non-trivial size, or on realistically fragmented blocks, the two approaches would've taken closer to the same size, as the actual disk access for the removed files becomes significant)
Here's how to solve your problem (safely!) with xargs:
Not quite. To be safe, you still need to add -- after cp, to prevent hypenated filenames from being misinterpreted as options. (All the approaches I gave also need -- for the same reason. I remembered it for rm, but forgot it in the cp example)
A quick test in my home directory generated a single 471 file long command line, which would operate much faster than executing cp 471 times.
You are relying on the fact that these commands can accept numerous inputs at once. Many commands cannot do that (for example, archive-manipulation stuff like tar/zip). Considering finite learning time, a person who's taught my approach can apply it to a wider range of tasks- she is more likely to correctly deduce how to unpack 34 zip files.
Additionally, my approach is easier to teach (fewer {} to learn about, no thoughts about explicitly changing string delimiters).
Batman Begins was all about a kinder, gentler Batman. The Batman I like is about hurting the wicked,
And you don't classify trapping 15 gangsters in a collapsing house and burning it to the ground to be somehow "hurting the wicked"? What, you think they were innocent and he was just a sort of arsonist maniac?
Since when did the Burton Batman kill or intentionally maim anyone?
Uttering that clause has meant automatic explusion from any comic-commentary threads since about 1986 on.
It is widely accepted that the 2 most influential superhero titles from the past 50 years were Watchmen and Dark Knight Returns (from which "Batman Begins" was derived).
is to spoof classic comic characters.
Which classic characters exactly is it spoofing? Not Superman, not Batman, and not Spiderman- they're nothing like these guys. No, Incredibles is spoofing the Fantastic Four.
You've got to admit the plot is definitely NOT a copy.
No? An old acquiantance of the team leader gets resentful and builds himself a high-tech suit providing strong beams and fields. Then traps the heros in his remote, well-guarded fortress, until they break out and conquer him with teamwork, resourcefulness, and luck.
And then a subterran warlord with glasses starts threatening the surface!
PS. Note that the Fantastic Four movie was originally going to use a plot from their comic-books, but they had to change it, because Incredibles had already used their plot!
I thought it was a contraction of "ai robo", which is often how "robot" is pronounced in Japan (where they don't like to end words with consonants besides "n"). Sort of like "Love-Bot".
Not having seen \{} notation before but presuming that it means find all the files and substitute them at once,
It does not. Each filename is substituted once at a time.
I think/dev/null is more likely to exist than this option I've never seen before:-)
That syntax is an ancient part of the find command. It exists everywhere except busybox.
grep's command line may hit some length limit if you find too many files or your path structure is too deep.
That will never happen, because only one filename is provided each time. But conversely, if you were using xargs, then on some systems (old and non-GNU), you might actually hit a limit in xargs's command line size! If you don't think grep can deal with 40,000 filename arguments, why would xargs do better with the same amount?
what if your find only finds one file? You have no way to know that implicitly from the command itself.
Then it prints only one file, and she knows explicitly that only one was found.
However, sudog's command is still rather odd. It's only potential advantage over grep -r is formatting. First it prints the filename, and then on the following line prints any places in that file where matches occured. Depending on the frequency of which you expect matches to occur, that might be easier or harder to read. (If files often contain multiple matches, then having the filename printed on every single line may be overkill)
Question for ls-adjusters: How can I stop ls -l from printing a column of -rw-r--r--, which is rarely very interesting (few people spend much time dealing with files whose permissions are interestingly mixed).
I usually run "ls -log", which gives me filesize and date (that I want) but removes owner and group (which I almost never want). But I still can't take off the permissions column without something like "ls -log | cut -c 14-", which seems excessive.
The xargs way to do this would be:find . -name "*.o" | xargs -n 50 rm -f Which will execute a seperate "rm -f" for each chunk of 50 filenames.
No, it won't. It will fail on some fairly common filenames. Someone else has already shown how intentionally created evil filenames could delete your entire disk (or at least your home directory).
But there are more likely problems too, stemming from the use of xargs. xargs doesn't cope correctly with filenames containing " " or "-". Fortunately, there is never a need to pipe find into xargs, because find can handle everything itself. Simply use the exec option:
find . -name \*.o -exec rm -f -- {} \;
Alternatively, you could give a -0 option to xargs, and a -print0 option to find, for a different way to cope with a bigger range of valid filenames. But that's still not as good as find's -exec option on its own, because find can put the filenames into any part of the command, instead of only at the end.
For example, if I want to copy all *.c files into a single directory, I can do
Of course, nobody really cares about "respect" on slashdot anyway- especially if you've already got extra karma points.
Let me comment on his first complaint, a prediction that it will painful to use for long times, as lightguns are.
1. If true, some customers would consider that an advantage. Many Nintendo buyers will be parents of children, and they'd enjoy knowing there's a natural limit to how long gameplay will last.
2. To some extent, it's already true with existing Nintendo controllers. I've probably done PC games like FPS for practically 8 hours, but get stiff and painful after barely four on SNES. I suppose that PC controls are more relaxing because you've got a desk to hold the controls off of the floor, instead of needing to use your fingers to keep it up. This means you can take micro-breaks away from the controls during very brief pauses in the action, without them falling onto the floor. Controllers newer than SNES must be even worse, because they have that "rumble" motor intentionally making it harder to grip. (Yes, you can partly sit it in your lap, but that wouldn't be very stable)
3. In arcades, lightgun shooting games are #3 in popularity, below DDR and driving, and above fighting. Even if lightguns are tiring, so is DDR, so apparently exhaustion isn't necessarily a big problem.
As I said, you might want to learn what the word means before you chime in.
So might you! The "Jargon File" is incorrect about "hack"... after all, it is a piece of ESR's propaganda, designed to validate his worldview.
The word "hack", as applied to science or technology, first arose at MIT almost 100 years ago. It meant "to operate a complex system in an unintended way". Decades later, the first "computer hacker" occured, also at MIT. The meaning was exactly the same: he used a computer in an unintended (and completely unauthorized) way.
Not only is the definition the oldest meaning for "hack", it is also the one most popular today. The Jargon File tries to retroactively edit language for its own ends.
The "remote user" is not a user of the software, they are a user of the result of my use of the software.
So, you're claiming you have never used Slashdot or even Google Search. Sure. That makes lots of sense.
The "remote user" is not a user of the software, they are a user of the result of my use of the software.
The "local user" is not a user of Windows XP, they are a user of the result of Windows XP, such as VGA signals to the monitor.
If I hadn't set it up, they wouldn't be able to see the results.
Some desktop PCs have software installed by the IT-department, instead of the PC's assigned operator. But it's the guy sitting at the PC who is using it, not the IT contractors who may be back in India by this time.
It seems we agree on "publish" meaning specifically to give copies to anyone in the public who requests it,
Selling a book for $700 is publishing, even though you are turning down most requests from the public.
If I move copies to any distinct legal entity besides myself (or persons hired by me not to reveal the contents to others), that is publication.
If I move copies to any other place than where they are, that is distribution, regardless of who ends up owning the new copy. As shown in the example of Wal-Mart aprons, "distribution" does not imply transfer of ownership.
You say it's being "distributed" because it's being presented to the employee to use.
No, I said it's distributed because I speak English, and in English, "distribute" means to move or spread around from a starting point to other places.
As I understand it (and I may be wrong), you can't "distribute" to yourself
You can't distribute to yourself, because distribute requires going to a different place, and you are already where you are. However, if you own 4 PCs and install a program on all of them, then that is "distribution". The word "distribution" relates to how material or data is moved around, not to how ownership is assigned from one person to another.
If I sell you a product, but leave it sitting on my office floor, it hasn't been distributed until you come and pick it up.
because "distribute" requires some transfer to take place from one person/entity to another person/entity.
If that is what distribute means, then it is the choice of the distributor as to whether or not the recipient is actually being given ownership of the new copy, or if ownership is retained by the corporation and the recipient simply happens to have physical access to the media where it is copied.
If that's true, then Microsoft can virtually ignore the GPL and provide altered proprietary Linux copies to their customers, as long as they state "You customers aren't going to own these copies. They're still ours- you're just getting to use them for as long as we feel like allowing it"
they don't exactly "own" the software, but we both know the real score and it saves typing
They own "a copy of the software", which is very little additional typing. You can abbreviate it to just "own the copy", which is even shorter than the original.
if the company handed out a CD so that the employee could install the modified software on their home (personal) PC, the company would be screwed under the GPL. This *would* become "distribution"
My corporation has frequently handed me CDs to install their proprietary software on a home PC. That doesn't imply any transfer of ownership, though. The copy still belongs to them, because "distribute" just means to move around, not to give possession.
If a corporation moves its property (program | automobile) onto an employee's personal property (PC | driveway), it doesn't imply that they've made a gift to the employee. Standard employment can include the use of company property in your home.
Microsoft's license, of course, prohibits me from distributing Windows.
Copyright law prohibits you from distributing it. Microsoft's license merely neglects to offer you any exemption to that law. (To the extent that an MS EULA does prohibit distribution, it is both redundant and overstepping its authority)
If you come over to my house and use my computer to read Slashdot, am I somehow distributing Windows?
But when I select Help->About in Windows, there is no message giving me (the user) the right to redistribute copies of the software, which is what a GPL program does. (As GPL programs with either a splashscreen or an About box are required to print a message of that nature)
Legal entity A has some software. If Legal Entity A allows Legal entity B
The GPL doesn't contain the text "separate Legal Entity to whom ownership of a copy has been transfered". It uses the simple word "recipient".
The part you seem to be having trouble with is if I, acting as an agent of my employer, happen to have a physical copy of my employers software in my hand, this does not make it mine.
True, corporations can provide things to their employees without transferring ownership.
But anyone can do that for anyone else (as I already exhaustively explained).
Corporations can loan things to employees, or they can give things. Corporations can loan things to customers, or then can give things.
If BigCorp can tell an employee "Here, use this software. But it's still mine, and I'll tell you to give it back someday", then why can't they tell a customer the same? The only substantial difference there is default assumptions: when a customer gets something she assumes ownership transfer occured, when an employee recieves something he assumes the opposite- but either assumption can be overridden just by specifying exactly what transaction is taking place.
Or are you going to argue it is legally impossible for a corporation to provide a resource to a non-employee without either selling, leasing, or assigning it?
If they give it to any legal entity that is not Microsoft, they must give that entity the source.
You keep saying that, and it would make some sense if things worked like that, but no text in the GPL or US law requires or supports that interpretation. Nowhere does the GPL describe an exception if the recipients of software share an employee-relationship with you.
If a corporation can provide modified GPL programs to its employees without committing "distribution", then it can also do so to the public at large.
"Hey kids! Want to join the Bill Gates fanclub? Just mail in $10 / year, and you'll recieve a catalog chock-full of cool members-only stuff! Try out Microsoft Linux for just $299 (Internal use only. Distribution to non-fanclub members prohibited by law. Source-code access not granted as "distribution" has not occured.)"
but also I can demand back the binaries at any future time." is as good an example of a lease as I've seen lately.
Really? Then you should study more about what a "lease" actually is.
By definition, a lease is a transfer for a specified, limited time. An open-ended "someday maybe" duration is not a lease. I wrote "any future time" precisely so that it wouldn't be a real lease. In a real lease, the company is legally barred from demanding an early return, even if they refund the use fee.
That weaseling isn't something I came up with on my own. The lawyers of the business world are actually well-experienced at creating lease-like arrangements without technically engaging in a "lease". That has been particularly popular amoung Islamic real-estate buyers, because their religion forbids all leasing.
The difference between acting as an agent of the company and acting as yourself is not obscure, fringe legal theory.
Yes, the principle is well established. But that principle simply doesn't matter unless you are using a definition of "distribute" which renders the whole GPL almost completely impotent. In English, "distribute" means to spread something around (1). Some laws, however, use a more restrictive meaning of "distribute" as to "sell, lease, or assign ownership" (2).
When a corporation provides software to employees, it must necessarily spread it out, which is "distribute 1", but it probably won't do "distribute 2". Of course, the corporation could choose to assign ownership over to those employees, which would fulfill "distribute 2" as well. The choice of whether ownership transfer accompanies the physical transfer of the digital files is totally at the discretion of the corp.
Question- which meaning of "distribute" is the GPL using? If it is "distribute 1", then BigCorp cannot pass out modified GPL code to employees without triggering the GPL provision requiring redistribution permission. But if you say BigCorp can do this, then you must think "distribute 2" applies.
If the corp has discretion as to whether providing software to employees counts as "distribution", then they also have that discretion when providing software to customers. (After all, there are some sell resources to customers, and others that provide them them temporarily). Therefore, the GPL can be evaded by any company who tells customers: "I'm not selling, leasing, or assigning ownership of the programs on these discs. In exchange for your money, I am merely loaning them to you for an indefinite* period of not under 10 years". Boom: "distribute 2" has killed the GPL.
I have some faith that the GPL is powerless to prevent Microsoft from re-branding KDE. Therefore, I must believe the GPL is using "distribute 1", which implies that corporations have no right to prohibit employee redistribution of modified GPL code.
* The word "indefinite" is there to prevent the transfer from being a "lease", which some have suggested can be another defintion for "distribute". Corporate lawyers a well-skilled at effectively leasing something while avoiding the technical definition of lease, which has come in handy for members of orthodox Abrahamic sects, who consider leasing sinful.
and does not permit the use of this software by their employees or anyone else except when acting as agents of BigCorp
And if they do not permit use for other purposes, then they must prohibit or "restrict" it, which is an explicit violation of GPL section 6. Corporations in general have broad authority to limit the actions of their employees- but the GPL doesn't allow them to exercise that limit in this case.
Corporations can also acquire authority to limit the actions of their customers (such as by signing contracts before it is sold, or even just click-thru EULAs)- but by the same token, to exercise such authority would be a GPL violation.
If it is valid for a corporation to say "Employees, I am not 'distributing' this software I'm handing out, because I have chosen not to allow you to excercise the GPL-mandated redistribution rights", then it is also valid to say "Customers, I am not 'distributing' this software to you, because I have chosen not to allow you GPL rights".
However with only the inertia of a few ounces of plastic weighted entirely in your hand instead of a few pounds of steel weighted out a few feet, it can only be -so- realistic.
1. Buy yourself a nice Scottish Claymore 2. Tape Revolution controller to the hilt. 3. Realism! 4. Strenuous upper-body workout. 5. Impale your TV fighting Gannon.
Not the fencing that is on the Olympics, or the USFA or FIE or any of it
That kind of fencing would be more applicable to video-game analysis, since the constricted movement and limited legal strike points are closer to the experience of looking at an enemy on a TV screen that occupies a small percentage of the viewer's FOV.
Plus, a foil only weighs about as much as a nintendo controller, while a bastard sword is what- 30 times as heavy? If the controller is light, it will be best to start with games that include a similarly light sword (guess you can't get "lighter" than Jedi armament)
The player is attacking from this angle? Parry here.
Impossible. The controller doesn't include some amazing forcefeedback that can actually stop the player's controller in midair. When an NPC parries my sword but I the controller keeps on swinging, you've become unsynced. You can't have a "parry" without unsyncing the player's controller from his onscreen sword model, which is what the GP already said claimed was unacceptable.
If you think she was wrong, and players really will permit the game to somewhat limit the sword movement while the controller is still going... then, well, she's wrong. I think so too. But then details like how to parry and such are irrelevant.
Seriously, I do hope that Nintendo puts in some global configurable setting so that the function of the power button can be changed to not instantly turn off with a little tap. Put up a "Sure you want to quit?" dialog or something. This would particularly be a problem on vigorous party-games like Smash Bros Revolution, where one kid could cancel the game for the other three. (Like a much worse version to what happens today when one player accidently pauses the others)
Single-touch power button on a game controller is a mistake. If nintendo doesn't allow you to disable it in software, then I predict people will use a screwdriver to disable the hardware.
You know, it was starting to look like I was actually getting an intelligent answer from a Nintendo fan,
It was starting to look like you might answer intelligently too, but instead you just seized on a single entry of a lengthy multipart response, and tried to work up outrage by misinterpreting a little hyperbole to explain why you'd be emotionally unable to reply.
That pattern is typical of trolls: hammer on the worst or weakest part of a reply, so you can pretend the effective and valid parts never even existed. Declare victory and run off to hide.
If you don't wish to be considered a troll in the future, don't do this.
The trouble with "photorealistic" games is that they really aren't actually photorealistic at all,
You are attacking games for a claim that they've actually never made.
The topic of the article is not any existing game, but possibilities for the future, when brute-force raytracing becomes more and more plausible.
because they don't accont for indirect illumination.
There have already been games that accounted for indirect illum, usually by precalculating light levels. Of course, that means that they are then unable to accurately represent dynamic lighting and occlusion with the same fidelity- but for an average realistically lit scene, that's a better choice.
- I've yet to see a FPS which does anything except fire at whatever's in the centre of the screen.
Meaning, you've never seen a PC FPS set on the modern planet Earth. Battlefield2, Counterstrike, Deus Ex, Rainbow Six, Americas Army... they all slash gunfire precision while in motion. Even the fantastically whimsical Castle Wolfenstein is careful to make an MG42 uselessly inaccurate if fired while standing.
It's not recognized as a soveriegn nation by the US,
Wrong. The USA is aware that Taiwan is a separate nation from China.
They have a rule not to mention this in front of China, and once President Bush accidently told the truth about this on TV and got spanked.
Just look at the CIA's description of the China-Taiwan situation: "The dominant political issues continue to be the relationship between Taiwan and China - specifically the question of eventual unification". By using the words "eventual unification", they directly acknowledge that Taiwan isn't part of China right now.
In other threads, I've already reported that even with 100,000 files, spawning individual cp commands costs the user less than 1 second. A modern Unix-like can spawn repeated processes very fast- too fast to worry about, in general.
However, in this example, that reduction doesn't even occur- nor does your suggested method even work:
As other threads have pointed out, the -n argument lets you do fewer process spawns.
Not in this case. The -n option is incompatible with --replace. Whichever one is processed last will override the other. That's why your example didn't work. Removing the -n option makes it operate correctly, but of course destroys any alleged speed benefit.
The difficulty you (and also another poster, who wrongly suggested "-J" as an xargs option) had in getting it work is one reason I'd avoid teaching new CLI users something so difficult to get right, just because it might be faster sometimes. Correctness is much more important than speed.
The main problem with that is that it fork()s once for each file it processes;
That isn't perceptible as a problem on any computer with more than 16M and 50 Mhz. Once the executable image is cached in RAM, subquesent forks seem instantaneous.
I just made 100,000 files and tested it myself, and the find -exec rm method took under 400 ms, while xargs took just 40ms. From one perspective, 10x faster seems like a lot. But 360ms of time savings doesn't seem worth worrying about at all, especially considering how rarely a user will decide to erase 100k files.
(I bet if my files had been of non-trivial size, or on realistically fragmented blocks, the two approaches would've taken closer to the same size, as the actual disk access for the removed files becomes significant)
Here's how to solve your problem (safely!) with xargs:
Not quite. To be safe, you still need to add -- after cp, to prevent hypenated filenames from being misinterpreted as options. (All the approaches I gave also need -- for the same reason. I remembered it for rm, but forgot it in the cp example)
A quick test in my home directory generated a single 471 file long command line, which would operate much faster than executing cp 471 times.
You are relying on the fact that these commands can accept numerous inputs at once. Many commands cannot do that (for example, archive-manipulation stuff like tar/zip). Considering finite learning time, a person who's taught my approach can apply it to a wider range of tasks- she is more likely to correctly deduce how to unpack 34 zip files.
Additionally, my approach is easier to teach (fewer {} to learn about, no thoughts about explicitly changing string delimiters).
Batman Begins was all about a kinder, gentler Batman. The Batman I like is about hurting the wicked,
And you don't classify trapping 15 gangsters in a collapsing house and burning it to the ground to be somehow "hurting the wicked"? What, you think they were innocent and he was just a sort of arsonist maniac?
Since when did the Burton Batman kill or intentionally maim anyone?
I know nothing about "Watchmen"
Uttering that clause has meant automatic explusion from any comic-commentary threads since about 1986 on.
It is widely accepted that the 2 most influential superhero titles from the past 50 years were Watchmen and Dark Knight Returns (from which "Batman Begins" was derived).
is to spoof classic comic characters.
Which classic characters exactly is it spoofing? Not Superman, not Batman, and not Spiderman- they're nothing like these guys. No, Incredibles is spoofing the Fantastic Four.
You've got to admit the plot is definitely NOT a copy.
No? An old acquiantance of the team leader gets resentful and builds himself a high-tech suit providing strong beams and fields. Then traps the heros in his remote, well-guarded fortress, until they break out and conquer him with teamwork, resourcefulness, and luck.
And then a subterran warlord with glasses starts threatening the surface!
PS. Note that the Fantastic Four movie was originally going to use a plot from their comic-books, but they had to change it, because Incredibles had already used their plot!
AIBO sounds like aibou
I thought it was a contraction of "ai robo", which is often how "robot" is pronounced in Japan (where they don't like to end words with consonants besides "n"). Sort of like "Love-Bot".
Not having seen \{} notation before but presuming that it means find all the files and substitute them at once,
/dev/null is more likely to exist than this option I've never seen before :-)
It does not. Each filename is substituted once at a time.
I think
That syntax is an ancient part of the find command. It exists everywhere except busybox.
grep's command line may hit some length limit if you find too many files or your path structure is too deep.
That will never happen, because only one filename is provided each time.
But conversely, if you were using xargs, then on some systems (old and non-GNU), you might actually hit a limit in xargs's command line size! If you don't think grep can deal with 40,000 filename arguments, why would xargs do better with the same amount?
what if your find only finds one file? You have no way to know that implicitly from the command itself.
Then it prints only one file, and she knows explicitly that only one was found.
However, sudog's command is still rather odd. It's only potential advantage over grep -r is formatting. First it prints the filename, and then on the following line prints any places in that file where matches occured. Depending on the frequency of which you expect matches to occur, that might be easier or harder to read. (If files often contain multiple matches, then having the filename printed on every single line may be overkill)
Question for ls-adjusters: How can I stop ls -l from printing a column of -rw-r--r--, which is rarely very interesting (few people spend much time dealing with files whose permissions are interestingly mixed).
I usually run "ls -log", which gives me filesize and date (that I want) but removes owner and group (which I almost never want). But I still can't take off the permissions column without something like "ls -log | cut -c 14-", which seems excessive.
find . -type f -exec grep regexp {} /dev/null \;
Are you just making a recursive grep? Why not run grep -r, or rgrep?
No, it won't. It will fail on some fairly common filenames. Someone else has already shown how intentionally created evil filenames could delete your entire disk (or at least your home directory).
But there are more likely problems too, stemming from the use of xargs. xargs doesn't cope correctly with filenames containing " " or "-". Fortunately, there is never a need to pipe find into xargs, because find can handle everything itself. Simply use the exec option:
Alternatively, you could give a -0 option to xargs, and a -print0 option to find, for a different way to cope with a bigger range of valid filenames. But that's still not as good as find's -exec option on its own, because find can put the filenames into any part of the command, instead of only at the end.
For example, if I want to copy all *.c files into a single directory, I can do
Is there a way to do this with xargs? I can't think of one that doesn't involve writing a separate mini-script.
Of course, nobody really cares about "respect" on slashdot anyway- especially if you've already got extra karma points.
Let me comment on his first complaint, a prediction that it will painful to use for long times, as lightguns are.
1. If true, some customers would consider that an advantage. Many Nintendo buyers will be parents of children, and they'd enjoy knowing there's a natural limit to how long gameplay will last.
2. To some extent, it's already true with existing Nintendo controllers. I've probably done PC games like FPS for practically 8 hours, but get stiff and painful after barely four on SNES. I suppose that PC controls are more relaxing because you've got a desk to hold the controls off of the floor, instead of needing to use your fingers to keep it up. This means you can take micro-breaks away from the controls during very brief pauses in the action, without them falling onto the floor. Controllers newer than SNES must be even worse, because they have that "rumble" motor intentionally making it harder to grip. (Yes, you can partly sit it in your lap, but that wouldn't be very stable)
3. In arcades, lightgun shooting games are #3 in popularity, below DDR and driving, and above fighting. Even if lightguns are tiring, so is DDR, so apparently exhaustion isn't necessarily a big problem.
As I said, you might want to learn what the word means before you chime in.
So might you! The "Jargon File" is incorrect about "hack"... after all, it is a piece of ESR's propaganda, designed to validate his worldview.
The word "hack", as applied to science or technology, first arose at MIT almost 100 years ago. It meant "to operate a complex system in an unintended way". Decades later, the first "computer hacker" occured, also at MIT. The meaning was exactly the same: he used a computer in an unintended (and completely unauthorized) way.
Not only is the definition the oldest meaning for "hack", it is also the one most popular today. The Jargon File tries to retroactively edit language for its own ends.
The "remote user" is not a user of the software, they are a user of the result of my use of the software.
So, you're claiming you have never used Slashdot or even Google Search. Sure. That makes lots of sense.
The "remote user" is not a user of the software, they are a user of the result of my use of the software.
The "local user" is not a user of Windows XP, they are a user of the result of Windows XP, such as VGA signals to the monitor.
If I hadn't set it up, they wouldn't be able to see the results.
Some desktop PCs have software installed by the IT-department, instead of the PC's assigned operator. But it's the guy sitting at the PC who is using it, not the IT contractors who may be back in India by this time.
It seems we agree on "publish" meaning specifically to give copies to anyone in the public who requests it,
Selling a book for $700 is publishing, even though you are turning down most requests from the public.
If I move copies to any distinct legal entity besides myself (or persons hired by me not to reveal the contents to others), that is publication.
If I move copies to any other place than where they are, that is distribution, regardless of who ends up owning the new copy. As shown in the example of Wal-Mart aprons, "distribution" does not imply transfer of ownership.
You say it's being "distributed" because it's being presented to the employee to use.
No, I said it's distributed because I speak English, and in English, "distribute" means to move or spread around from a starting point to other places.
As I understand it (and I may be wrong), you can't "distribute" to yourself
You can't distribute to yourself, because distribute requires going to a different place, and you are already where you are. However, if you own 4 PCs and install a program on all of them, then that is "distribution". The word "distribution" relates to how material or data is moved around, not to how ownership is assigned from one person to another.
If I sell you a product, but leave it sitting on my office floor, it hasn't been distributed until you come and pick it up.
because "distribute" requires some transfer to take place from one person/entity to another person/entity.
If that is what distribute means, then it is the choice of the distributor as to whether or not the recipient is actually being given ownership of the new copy, or if ownership is retained by the corporation and the recipient simply happens to have physical access to the media where it is copied.
If that's true, then Microsoft can virtually ignore the GPL and provide altered proprietary Linux copies to their customers, as long as they state "You customers aren't going to own these copies. They're still ours- you're just getting to use them for as long as we feel like allowing it"
they don't exactly "own" the software, but we both know the real score and it saves typing
They own "a copy of the software", which is very little additional typing. You can abbreviate it to just "own the copy", which is even shorter than the original.
if the company handed out a CD so that the employee could install the modified software on their home (personal) PC, the company would be screwed under the GPL. This *would* become "distribution"
My corporation has frequently handed me CDs to install their proprietary software on a home PC. That doesn't imply any transfer of ownership, though. The copy still belongs to them, because "distribute" just means to move around, not to give possession.
If a corporation moves its property (program | automobile) onto an employee's personal property (PC | driveway), it doesn't imply that they've made a gift to the employee. Standard employment can include the use of company property in your home.
Microsoft's license, of course, prohibits me from distributing Windows.
Copyright law prohibits you from distributing it. Microsoft's license merely neglects to offer you any exemption to that law. (To the extent that an MS EULA does prohibit distribution, it is both redundant and overstepping its authority)
If you come over to my house and use my computer to read Slashdot, am I somehow distributing Windows?
But when I select Help->About in Windows, there is no message giving me (the user) the right to redistribute copies of the software, which is what a GPL program does. (As GPL programs with either a splashscreen or an About box are required to print a message of that nature)
Legal entity A has some software. If Legal Entity A allows Legal entity B
The GPL doesn't contain the text "separate Legal Entity to whom ownership of a copy has been transfered". It uses the simple word "recipient".
The part you seem to be having trouble with is if I, acting as an agent of my employer, happen to have a physical copy of my employers software in my hand, this does not make it mine.
True, corporations can provide things to their employees without transferring ownership.
But anyone can do that for anyone else (as I already exhaustively explained).
Corporations can loan things to employees, or they can give things. Corporations can loan things to customers, or then can give things.
If BigCorp can tell an employee "Here, use this software. But it's still mine, and I'll tell you to give it back someday", then why can't they tell a customer the same? The only substantial difference there is default assumptions: when a customer gets something she assumes ownership transfer occured, when an employee recieves something he assumes the opposite- but either assumption can be overridden just by specifying exactly what transaction is taking place.
Or are you going to argue it is legally impossible for a corporation to provide a resource to a non-employee without either selling, leasing, or assigning it?
If they give it to any legal entity that is not Microsoft, they must give that entity the source.
You keep saying that, and it would make some sense if things worked like that, but no text in the GPL or US law requires or supports that interpretation. Nowhere does the GPL describe an exception if the recipients of software share an employee-relationship with you.
If a corporation can provide modified GPL programs to its employees without committing "distribution", then it can also do so to the public at large.
"Hey kids! Want to join the Bill Gates fanclub? Just mail in $10 / year, and you'll recieve a catalog chock-full of cool members-only stuff! Try out Microsoft Linux for just $299 (Internal use only. Distribution to non-fanclub members prohibited by law. Source-code access not granted as "distribution" has not occured.)"
but also I can demand back the binaries at any future time." is as good an example of a lease as I've seen lately.
Really? Then you should study more about what a "lease" actually is.
By definition, a lease is a transfer for a specified, limited time. An open-ended "someday maybe" duration is not a lease. I wrote "any future time" precisely so that it wouldn't be a real lease. In a real lease, the company is legally barred from demanding an early return, even if they refund the use fee.
That weaseling isn't something I came up with on my own. The lawyers of the business world are actually well-experienced at creating lease-like arrangements without technically engaging in a "lease". That has been particularly popular amoung Islamic real-estate buyers, because their religion forbids all leasing.
The difference between acting as an agent of the company and acting as yourself is not obscure, fringe legal theory.
Yes, the principle is well established. But that principle simply doesn't matter unless you are using a definition of "distribute" which renders the whole GPL almost completely impotent. In English, "distribute" means to spread something around (1). Some laws, however, use a more restrictive meaning of "distribute" as to "sell, lease, or assign ownership" (2).
When a corporation provides software to employees, it must necessarily spread it out, which is "distribute 1", but it probably won't do "distribute 2". Of course, the corporation could choose to assign ownership over to those employees, which would fulfill "distribute 2" as well. The choice of whether ownership transfer accompanies the physical transfer of the digital files is totally at the discretion of the corp.
Question- which meaning of "distribute" is the GPL using? If it is "distribute 1", then BigCorp cannot pass out modified GPL code to employees without triggering the GPL provision requiring redistribution permission. But if you say BigCorp can do this, then you must think "distribute 2" applies.
If the corp has discretion as to whether providing software to employees counts as "distribution", then they also have that discretion when providing software to customers. (After all, there are some sell resources to customers, and others that provide them them temporarily). Therefore, the GPL can be evaded by any company who tells customers: "I'm not selling, leasing, or assigning ownership of the programs on these discs. In exchange for your money, I am merely loaning them to you for an indefinite* period of not under 10 years". Boom: "distribute 2" has killed the GPL.
I have some faith that the GPL is powerless to prevent Microsoft from re-branding KDE. Therefore, I must believe the GPL is using "distribute 1", which implies that corporations have no right to prohibit employee redistribution of modified GPL code.
* The word "indefinite" is there to prevent the transfer from being a "lease", which some have suggested can be another defintion for "distribute". Corporate lawyers a well-skilled at effectively leasing something while avoiding the technical definition of lease, which has come in handy for members of orthodox Abrahamic sects, who consider leasing sinful.
and does not permit the use of this software by their employees or anyone else except when acting as agents of BigCorp
And if they do not permit use for other purposes, then they must prohibit or "restrict" it, which is an explicit violation of GPL section 6. Corporations in general have broad authority to limit the actions of their employees- but the GPL doesn't allow them to exercise that limit in this case.
Corporations can also acquire authority to limit the actions of their customers (such as by signing contracts before it is sold, or even just click-thru EULAs)- but by the same token, to exercise such authority would be a GPL violation.
If it is valid for a corporation to say "Employees, I am not 'distributing' this software I'm handing out, because I have chosen not to allow you to excercise the GPL-mandated redistribution rights", then it is also valid to say "Customers, I am not 'distributing' this software to you, because I have chosen not to allow you GPL rights".
However with only the inertia of a few ounces of plastic weighted entirely in your hand instead of a few pounds of steel weighted out a few feet, it can only be -so- realistic.
1. Buy yourself a nice Scottish Claymore
2. Tape Revolution controller to the hilt.
3. Realism!
4. Strenuous upper-body workout.
5. Impale your TV fighting Gannon.
Not the fencing that is on the Olympics, or the USFA or FIE or any of it
That kind of fencing would be more applicable to video-game analysis, since the constricted movement and limited legal strike points are closer to the experience of looking at an enemy on a TV screen that occupies a small percentage of the viewer's FOV.
Plus, a foil only weighs about as much as a nintendo controller, while a bastard sword is what- 30 times as heavy? If the controller is light, it will be best to start with games that include a similarly light sword (guess you can't get "lighter" than Jedi armament)
The player is attacking from this angle? Parry here.
Impossible. The controller doesn't include some amazing forcefeedback that can actually stop the player's controller in midair. When an NPC parries my sword but I the controller keeps on swinging, you've become unsynced. You can't have a "parry" without unsyncing the player's controller from his onscreen sword model, which is what the GP already said claimed was unacceptable.
If you think she was wrong, and players really will permit the game to somewhat limit the sword movement while the controller is still going... then, well, she's wrong. I think so too. But then details like how to parry and such are irrelevant.
NO! Not that button! That's the ... power.
Seriously, I do hope that Nintendo puts in some global configurable setting so that the function of the power button can be changed to not instantly turn off with a little tap. Put up a "Sure you want to quit?" dialog or something. This would particularly be a problem on vigorous party-games like Smash Bros Revolution, where one kid could cancel the game for the other three. (Like a much worse version to what happens today when one player accidently pauses the others)
Single-touch power button on a game controller is a mistake. If nintendo doesn't allow you to disable it in software, then I predict people will use a screwdriver to disable the hardware.
You know, it was starting to look like I was actually getting an intelligent answer from a Nintendo fan,
It was starting to look like you might answer intelligently too, but instead you just seized on a single entry of a lengthy multipart response, and tried to work up outrage by misinterpreting a little hyperbole to explain why you'd be emotionally unable to reply.
That pattern is typical of trolls: hammer on the worst or weakest part of a reply, so you can pretend the effective and valid parts never even existed. Declare victory and run off to hide.
If you don't wish to be considered a troll in the future, don't do this.