Oh ya, that was a major overight shitstorm. Turned pals into enemies overnight too. It never really recovered. Two camps - modders who mod in an open source style or those very interested in making money out of their hobby if only there was a way to do so.
Ie, they mod for several years, having fun at it, no complaints. One day they hear they can make money at it! After the weekend the offer gets pulled back because of huge outcries from the player base. Modder doesn't go back to making mods like always and being happy again, but instead shouts "screw you guys, you suck, I'm going home with my toys!" and leaves the community forever.
I'm amazed that Take Two totally missed the lesson here.
That's the snag with Steam, they moved to a model where you can't easily block updates. It used to be you told it when you wanted to update, but now your choices are limited to "update immediately when a new version is available" and "update before playing". Yes, you can go around this with some planning by using offline mode but it's a bit of a hassle. So much for all the Valve fans defending tooth and nail their DRM.
They should charge the sender of the data. Thus the subscription fees cover the costs. The benefit is that it slows down spam and advertising, and could spur demand for setting up more distributed content servers for better overall access.
You don't have to stop with FIPS, you can go above and beyond. Nothing is preventing a higher standard of paranoia.
The standard is there for the government to use itself - it wants to protect information on its own devices, making sure that its own employees are not using equipment that is easy to snoop on. Because the government does use third party software and equipment, including open source. Of course, the government could actually compromise itself and weaken its own security, so that if a government employee lost a phone in a bar that other countries could crack it easily (or worse, the Washington Post). But my guess is that the government actually does want good security for itself.
You misunderstand, First, this is old code, still in use or still being viewed. Sometimes it is new files too of course. But there are tools that work different. One tab adds 4 spaces, two tabs is 8 spaces. So if the indentation is intended to be 8 spaces then the editor or tool adds 2 tabs. But if someone wants tab stop to be 2 spaces then the tool will stick in 4 tabs to get up to 8 spaces. This seems to be the most comon use that I see in older tools, it's the only way that explains why I see files where two lines in the same file that use only tabs but no spaces still don't line up like they should.
Yes, it's dysfunctional. It exists though. People with experience have had to work with all sorts of dysfunction at some time or other.
I am not using tabs. But I do have to read and modify files used by others. And they most certainly use tabs and many of them use tabs inconsistently (or their tools do).
No, the problem is that some lines are indented with tabs assumed to be 4 space, and other lines in the same file are intended assuming to be 8 spaces, and forth. Then when looking at the file the lines are are intended to be indented to the same level do not show as lined up visually. It's not good to have differing definitions of tab within a single file, but it does happen and it is a headache.
Now lots of people will say "if they did everything my way, it would all just work out". That's called having a standard. With tabs there is no standard. There may be a standard for a particular tool or language perhaps but it's certainly not consistent across everything.
Except that it is only semantically one indent level to you. To other people the tab is used differently. There's no standard here. Using tab the way you described, if done universally, would resolve a lot of problems. However what actually happens is that people don't use them the same way and you end up with screwed up files with a mix of tabs and space and a mix of different tab stop settings. If you have to split a line (and you usually do because line length limits should apply) then you have to deal with aligning the broken parts of the line and you can't do that with just straight up indentation depending upon the coding style in use.
It is utterly irrelvant if "less" can be configured to know tab width. It does not know what the intended tab width is supposed to be for each file. You cannot set it once and have it work for every file. If I configure it to be four spaces instead of eight, then I will still encounter files that want three spaces. There is no universal standard here for how many spaces a tab should be and that is the entire problem - tab stops are not standardized, and the hard tab character is inherently imprecise for display purposes. If you've got 50 different developers all using different ideas of how to indent and what a tab stop should be, and 15 different tools with different defaults, then it's messy as hell.
This is not just "less", I'm talking about browser based code review tools, online source code browsers, printers, source code control guis, and so forth. If you throw a random file at them they won't know what the intended tab stop is supposed to be. Ok, sure, I can have an alias for "less", "less4", "less8" and such and switch between them but it's clumsy and should not be necessary if people could just learn to avoid hardtabs in files.
I have worked with files that were meant to use 2, 3, 4, and 8 space tab stops, and it is common for me to run across files where different lines have different intended tab stop settings, so that you cannot just use one tabstop setting and have all the indentation line up properly. I have even seen one file that either used four different tabstop settings (either that or the developers were insane). The developers are (usually) not trying to be disagreeable, most of them don't even know they're using tabs.
With spaces you never have this problem. You don't have to guess or twiddle with settings until things line up.
Some lines indented with spaces, some lines indented with tabs. Some lines assume tabs are 4 spaces, some lines assume tabs are 3 spaces, some lines assume tabs are 8 spaces, etc. Yes, I have seen lots of files that do this, multiple types of indentation assumptions in the same file. Most typically is that the file has no tabs at all, then later a developer comes along with a different tool that uses tabs and makes some changes, now you've got two styles of indenting in the same file. Usually the new developer knows nothing about this and doesn't even know tabs are being used, and barely even knows that there's such a thing as configuration for their editor or IDE.
To me alignment means the start of each line, not aligning arguments (though the problem is there also). How far a line is indented is alignment. If two lines that should be at the same indentation show different amounts of white space in front of them then they are misaligned.
However with Windows those problems would still exist. If the staff setting things up on Linux were that screwed up then they'd have been equally screwed up with Windows. Different office applications on different computers, clearly this is not an inherent flaw in Linux but a screw up in administration and support. If they want to hire cheap commodity Windows admins to save money on outside contractors, then they'll be stuck with cheap commodity admins! Yes it should not be so hard to get good IT people who know Linux, and it's strange that they had this problem.
We've used third party penetration testers. Given access to full code and hardware specs and they'll pour through it with a fine tooth comb and I'm amazed at some of the things they can discover.
There was the attitude in the past that security was best if the code was closed and hidden. Ie, "Security Through Obscurity". However good cryptography does not rely upon secrecy of the methods used, and in the past a lot of things assumed to be secure actually were very sloppy. And we're still making similar mistakes today. Keeping the source closed and hidden is just going to make most knowledgeable people assume there is some security through obscurity going on.
These days you can get FIPS certifications. Yes, there is a lot of US government involvement there but the point of it is to secure the government's own files. Many of the standards it uses come from outside the government. Many recommendations made actively hurt the governments efforts (ie, to crack iphones). Such as making sure crypto computations are not done in RAM which can be snooped or hacked, automatically wiping keys if a device is compromised, etc. As a company you can basically describe what you're doing (opening the kimono) to the experts and prove that you're doing things securely. Then with that seal of approval you can give confidence to others who are not as savvy on security. FIPS doesn't require your code to change to be weaker.
This isn't new either. I was first using pre-internet in 1983 and the view had already been well established that the NSA was snooping on everything. The response was to either never put anything important on the net, or to obscure the snooping by putting in keywords in every post designed to overload the NSA.
And the other person who's trying to use your file has to guess. And guessing turns out to be hard when the file uses more than one tab stop setting (and this is extremely common).
This is very true. And these users get confused when the issue is brought up. I see this trend more common with solitary programmers, or those who use programming as just a side tool for their real job. Once you start sharing code though, putting it into a repository, having others try to use it, then you need to be a bit more formal about how the programs look.
You can't really stick in the IDE for life. There are so many external tools that are needed that you're bound to run across issues with tabs.
For typewriter, it's two. With such things becoming more rare, I think it's up for debate now. Muscle memory means it's hard to stop the two spaces.
But any good word processor or typesetting tool will treat them both the same anyway. One space or one hundred spaces should make no difference. Of course, a lot of these tools just plain suck. Which is why I always preferred TeX or LaTeX back when I wrote papers and Word was a cruel joke.
Just an addendum. After writring that I went off to a code review, using a web browser based code review tool. The "diffs" window clearly had problems because tabs were used for indentation and things were lining up badly. Meaning, you can change your editor to match your own style with tabs, but you can't go out and change every tool in the world. Thus, spaces are safer and always consistent.
I started int he 80s. The vi editor default settings would change some spaces to tabs automatically, giving the same layout but conserving a few characters. This was in the days of not having manuals handy and certainly no built in help. So I had noticed this but didn't know how to fix it, but being a noob I didn't worry about it. Until I had to use Occam which used indentation for structure (later borrowed by Python), so when vi converted the spaces to tabs it would cause compilation errors. At that point I had to make a major effort to get some documentation about how to configure things to stop doing that.
My guess at the time was that in the 70s it was more important to save characters and thus tabs were preferred (witness the sheer sparseness of comments and short variable names in Unix source). Back then a tab stop was almost always meant 8 characters, especially since any change would mean your printouts would come out wrong.
So salary difference dividing up those who use default settings (almost always tabs for some bizarre reason) versus those who go through and learn how their tools work and how to get the most out of them.
Oh ya, that was a major overight shitstorm. Turned pals into enemies overnight too. It never really recovered. Two camps - modders who mod in an open source style or those very interested in making money out of their hobby if only there was a way to do so.
Ie, they mod for several years, having fun at it, no complaints. One day they hear they can make money at it! After the weekend the offer gets pulled back because of huge outcries from the player base. Modder doesn't go back to making mods like always and being happy again, but instead shouts "screw you guys, you suck, I'm going home with my toys!" and leaves the community forever.
I'm amazed that Take Two totally missed the lesson here.
That's the snag with Steam, they moved to a model where you can't easily block updates. It used to be you told it when you wanted to update, but now your choices are limited to "update immediately when a new version is available" and "update before playing". Yes, you can go around this with some planning by using offline mode but it's a bit of a hassle. So much for all the Valve fans defending tooth and nail their DRM.
They should charge the sender of the data. Thus the subscription fees cover the costs. The benefit is that it slows down spam and advertising, and could spur demand for setting up more distributed content servers for better overall access.
AT&T uses it as the webmail service for its customers.
You don't have to stop with FIPS, you can go above and beyond. Nothing is preventing a higher standard of paranoia.
The standard is there for the government to use itself - it wants to protect information on its own devices, making sure that its own employees are not using equipment that is easy to snoop on. Because the government does use third party software and equipment, including open source. Of course, the government could actually compromise itself and weaken its own security, so that if a government employee lost a phone in a bar that other countries could crack it easily (or worse, the Washington Post). But my guess is that the government actually does want good security for itself.
You misunderstand, First, this is old code, still in use or still being viewed. Sometimes it is new files too of course. But there are tools that work different. One tab adds 4 spaces, two tabs is 8 spaces. So if the indentation is intended to be 8 spaces then the editor or tool adds 2 tabs. But if someone wants tab stop to be 2 spaces then the tool will stick in 4 tabs to get up to 8 spaces. This seems to be the most comon use that I see in older tools, it's the only way that explains why I see files where two lines in the same file that use only tabs but no spaces still don't line up like they should.
Yes, it's dysfunctional. It exists though. People with experience have had to work with all sorts of dysfunction at some time or other.
I am not using tabs. But I do have to read and modify files used by others. And they most certainly use tabs and many of them use tabs inconsistently (or their tools do).
No, the problem is that some lines are indented with tabs assumed to be 4 space, and other lines in the same file are intended assuming to be 8 spaces, and forth. Then when looking at the file the lines are are intended to be indented to the same level do not show as lined up visually. It's not good to have differing definitions of tab within a single file, but it does happen and it is a headache.
Now lots of people will say "if they did everything my way, it would all just work out". That's called having a standard. With tabs there is no standard. There may be a standard for a particular tool or language perhaps but it's certainly not consistent across everything.
Except that it is only semantically one indent level to you. To other people the tab is used differently. There's no standard here. Using tab the way you described, if done universally, would resolve a lot of problems. However what actually happens is that people don't use them the same way and you end up with screwed up files with a mix of tabs and space and a mix of different tab stop settings. If you have to split a line (and you usually do because line length limits should apply) then you have to deal with aligning the broken parts of the line and you can't do that with just straight up indentation depending upon the coding style in use.
It was before various networks were linked together to create an inter net. ARPAnet was not internet.
OMG, I've seen that code!
It is utterly irrelvant if "less" can be configured to know tab width. It does not know what the intended tab width is supposed to be for each file. You cannot set it once and have it work for every file. If I configure it to be four spaces instead of eight, then I will still encounter files that want three spaces. There is no universal standard here for how many spaces a tab should be and that is the entire problem - tab stops are not standardized, and the hard tab character is inherently imprecise for display purposes. If you've got 50 different developers all using different ideas of how to indent and what a tab stop should be, and 15 different tools with different defaults, then it's messy as hell.
This is not just "less", I'm talking about browser based code review tools, online source code browsers, printers, source code control guis, and so forth. If you throw a random file at them they won't know what the intended tab stop is supposed to be. Ok, sure, I can have an alias for "less", "less4", "less8" and such and switch between them but it's clumsy and should not be necessary if people could just learn to avoid hardtabs in files.
I have worked with files that were meant to use 2, 3, 4, and 8 space tab stops, and it is common for me to run across files where different lines have different intended tab stop settings, so that you cannot just use one tabstop setting and have all the indentation line up properly. I have even seen one file that either used four different tabstop settings (either that or the developers were insane). The developers are (usually) not trying to be disagreeable, most of them don't even know they're using tabs.
With spaces you never have this problem. You don't have to guess or twiddle with settings until things line up.
Some lines indented with spaces, some lines indented with tabs. Some lines assume tabs are 4 spaces, some lines assume tabs are 3 spaces, some lines assume tabs are 8 spaces, etc. Yes, I have seen lots of files that do this, multiple types of indentation assumptions in the same file. Most typically is that the file has no tabs at all, then later a developer comes along with a different tool that uses tabs and makes some changes, now you've got two styles of indenting in the same file. Usually the new developer knows nothing about this and doesn't even know tabs are being used, and barely even knows that there's such a thing as configuration for their editor or IDE.
To me alignment means the start of each line, not aligning arguments (though the problem is there also). How far a line is indented is alignment. If two lines that should be at the same indentation show different amounts of white space in front of them then they are misaligned.
However with Windows those problems would still exist. If the staff setting things up on Linux were that screwed up then they'd have been equally screwed up with Windows. Different office applications on different computers, clearly this is not an inherent flaw in Linux but a screw up in administration and support. If they want to hire cheap commodity Windows admins to save money on outside contractors, then they'll be stuck with cheap commodity admins! Yes it should not be so hard to get good IT people who know Linux, and it's strange that they had this problem.
We've used third party penetration testers. Given access to full code and hardware specs and they'll pour through it with a fine tooth comb and I'm amazed at some of the things they can discover.
There was the attitude in the past that security was best if the code was closed and hidden. Ie, "Security Through Obscurity". However good cryptography does not rely upon secrecy of the methods used, and in the past a lot of things assumed to be secure actually were very sloppy. And we're still making similar mistakes today. Keeping the source closed and hidden is just going to make most knowledgeable people assume there is some security through obscurity going on.
These days you can get FIPS certifications. Yes, there is a lot of US government involvement there but the point of it is to secure the government's own files. Many of the standards it uses come from outside the government. Many recommendations made actively hurt the governments efforts (ie, to crack iphones). Such as making sure crypto computations are not done in RAM which can be snooped or hacked, automatically wiping keys if a device is compromised, etc. As a company you can basically describe what you're doing (opening the kimono) to the experts and prove that you're doing things securely. Then with that seal of approval you can give confidence to others who are not as savvy on security. FIPS doesn't require your code to change to be weaker.
And yet closed source is even worse! How do you audit their code, do you just take the company at its word?
This isn't new either. I was first using pre-internet in 1983 and the view had already been well established that the NSA was snooping on everything. The response was to either never put anything important on the net, or to obscure the snooping by putting in keywords in every post designed to overload the NSA.
And the other person who's trying to use your file has to guess. And guessing turns out to be hard when the file uses more than one tab stop setting (and this is extremely common).
Nobody hits the space bar 4 times to indent. You use the tab key and the editor puts in 4 spaces. There's no OCD involved here.
This is very true. And these users get confused when the issue is brought up. I see this trend more common with solitary programmers, or those who use programming as just a side tool for their real job. Once you start sharing code though, putting it into a repository, having others try to use it, then you need to be a bit more formal about how the programs look.
You can't really stick in the IDE for life. There are so many external tools that are needed that you're bound to run across issues with tabs.
For typewriter, it's two. With such things becoming more rare, I think it's up for debate now. Muscle memory means it's hard to stop the two spaces.
But any good word processor or typesetting tool will treat them both the same anyway. One space or one hundred spaces should make no difference. Of course, a lot of these tools just plain suck. Which is why I always preferred TeX or LaTeX back when I wrote papers and Word was a cruel joke.
Just an addendum. After writring that I went off to a code review, using a web browser based code review tool. The "diffs" window clearly had problems because tabs were used for indentation and things were lining up badly. Meaning, you can change your editor to match your own style with tabs, but you can't go out and change every tool in the world. Thus, spaces are safer and always consistent.
I started int he 80s. The vi editor default settings would change some spaces to tabs automatically, giving the same layout but conserving a few characters. This was in the days of not having manuals handy and certainly no built in help. So I had noticed this but didn't know how to fix it, but being a noob I didn't worry about it. Until I had to use Occam which used indentation for structure (later borrowed by Python), so when vi converted the spaces to tabs it would cause compilation errors. At that point I had to make a major effort to get some documentation about how to configure things to stop doing that.
My guess at the time was that in the 70s it was more important to save characters and thus tabs were preferred (witness the sheer sparseness of comments and short variable names in Unix source). Back then a tab stop was almost always meant 8 characters, especially since any change would mean your printouts would come out wrong.
So salary difference dividing up those who use default settings (almost always tabs for some bizarre reason) versus those who go through and learn how their tools work and how to get the most out of them.