In particular, you don't need to own something to control it.
Are you arguing that, say, an owner of a factory doesn't have fairly direct control what happens in that factory? Yes, that sort of thing is only true because it's enforced by the legal system and government, but once you start throwing that out the window you're talking about a revolt of the industrial proletariat.
I'm not suggesting that people should be spending what money they have on lottery tickets, alcohol, or tobacco. I'm simply pointing out that they do, and that the effect is that they're paying taxes. The question of whether government was a problem or a solution wasn't in play, it was simply whether urban poor people pay taxes.
I think the argument here is that the expensive phone lines are going to the homes of the eccentric millionaires. You're quite right that a lot of rural people are poor though.
There's a slight inaccuracy in your geography. Right smack in the middle of a city is often a glob of wealth in the form of corporate offices, cultural icons, and the like (think Park Ave, New York). The next ring is the dirt-poor urban people, mostly black or Hispanic. Then comes progressively wealthier and whiter rings of suburbs until you get about 30 or 40 miles from the city center, then it starts getting poor again until you're in the middle of nowhere with people living in shacks. Those rings can be somewhat distorted by natural features like major bodies of water, but they're very real. They can also merge into each other, as has happened along much of the Boston-Washington metropolis (it's possible to drive from Maine to Virginia while never spending more than about 10 miles in anything remotely resembling a rural area).
And as you mention, many rural towns have similar rings, but nowhere near as pronounced.
By and large, the "urban poor" do not pay much in taxes (except perhaps local sales taxes or use fees).
That is a myth that has been propagated for years with absolutely no basis in fact. Here's the truth about it: 1. Most states have sales taxes, and urban poor pay those. Many states have income taxes too, and much of the urban poor pay those too, albeit at a lower rate than, say, a middle-class person living in the suburbs. 2. Most states also draw income from urban poor in the form of taxes on alcohol, tobacco, and by state-run lotteries, all of which are more popular in places where people are poor, miserable, and with no way out of their current situation. 3. Anyone who works pays federal Social Security and Medicare taxes on the first dollar they earn. The only people who don't pay that on every dollar they make are people earning well into the 6-figures. 4. Property taxes are paid indirectly by the urban poor: They pay rent to their landlords, who pay the tax. (Forget owning a house - these folks can't afford one) 5. Urban poor receive harsher punishment for criminal activity than anyone else, so the government gets some income from them in the form of fines and asset forfeiture. Of course, one could argue that they also cost the state the most in jail time.
The idea that the people you're calling "urban poor" are a bunch of lazy freeloaders that were acting as a money sink for the rest of society was invented in the 1970's. What the people who invented the idea meant by "urban poor", and "welfare queens", and a bunch of related terms was "n*****s". Some of the people who invoke that idea today mean exactly the same thing, even if they don't say that's what's motivating them.
Hard to get rid of a guy who's fired or run-off all his potential replacements.
Really? I can think of a guy who could credibly take over without any difficulties if he wanted to, some fellow named Bill Gates.
And I should point out that in most corporations the purpose of a re-org is not to actually improve the running of the company, it's to create an opportunity for someone further up the food chain to reward buddies and punish enemies. I wouldn't be surprised if the point of this re-org was to run off potential replacements.
In other words, I'm happy with failure so long as someone else takes the blame.
I'm not happy with failure. What I'm trying to do is make it so that those who do what we want them to do (plan ahead, get things properly on the backlog, then into the correct sprint) get better results. If you're a salesperson making deals with promises of "Sure, we can have it for you in 2 days" without checking in with your tech team, then what you're actually doing is saying "Developers have to work ridiculous overtime so I can get a nice fat commission check." That's not about what's best for the company, it's what's best for the salesperson.
Another way of looking at it: If you're making irresponsible deals, then no, I'm not going to work really hard to cover up your mistake. Otherwise, you're going to do it again. And again. And again, until I no longer cover up your mistake. And yes, it's quite possible that I'll be blamed for failing to cover up your mistake.
The solution to these problems is to fire people like you, not adopt your approaches.
If the direct approach of asking management or sales to be reasonable with their requests to the development team hasn't worked, and someone who uses my indirect approaches is going to get fired from your firm, I don't want to work for you. My current firm doesn't do that, and does well because our salespeople promise what we can actually deliver.
If your users are, say, someone who works in a different department of the same company as you do, then I've found that the best approach is to positively encourage them to send me reports. If I can't figure it out from the report, I'll even walk over and ask them to show me exactly what they did to cause the bug. When I do that, I give them some tips on how to write a report that explains that more clearly: "I logged into the website, clicked 'Foo', entered 'baz' into this box, then clicked 'Submit'. I got an error page instead of this other page I was expecting."
If your users are mostly developers, then by all means give them easy access to stack traces, memory dumps, etc.
If your users are mass-market end users, then include with your application a system that tracks user actions and sends it (along with a crash dump) to you at the user's request if there's a problem.
If your users are calling in to your company to complain, plan on using some kind of desktop sharing software so that the user and you can see exactly what happened.
If your users are dumber than a pack of hammers, then I have no answers for you.
"A lack of planning on your part does not constitute an emergency on our part."
Another option: Use the power of bureaucracy to your advantage. For example, create a fairly confusing Mid-Sprint Change Request Form that needs to be signed off by 2-3 people that are never in the office.
A third option: Make sure that the work that was requested properly gets released on time, while the work that was requested mid-sprint will get released when it's ready (which, if you're doing things right, is always later than on time).
The idea is to use the carrot of on-time quality delivery plus the stick of annoying bureaucracy and late delivery to push the people making requests towards doing the right thing.
Polygamy isn't "natural" to humans. We are naturally almost monogomous.
First, anything that real people really want to do is, by definition, "natural" to humans. For example, a significant percentage of humans will "naturally" gorge themselves on whatever food is available. A not-tiny percentage of humans will not take their partner's gender into account when deciding who to sleep with. A not-tiny percentage of humans want to be in sexual situations with more than 2 people involved. And some people want to maintain more than one romantic and/or sexual relationship, despite the difficulties and complexities and (until very very recently) social stigma involved.
Second, we're definitely cheaters. About half of all husbands and a third of all wives admit to cheating on their spouses at some point in a marriage, even though they know full well that doing so may ruin their lives.
Third, like all other species, humans vary a fair amount. What's normal for one person may be completely abnormal for someone else.
If what works for you is monogamy, then by all means do that, and enjoy it thoroughly. Just don't assume that it works for everybody, or is somehow more natural than what other people are doing.
The US SEC. Their utter failure to do their jobs wrecked the entire planet's economy. I mean, as bad as the Chinese are, they haven't managed anything quite that spectacular.
When your 'nutjob with a knife' is slicing your daughter up, I trust you would not resort to a horrible gun to stop him and you would of course stop any armed police from interfering.
There are other weapons besides guns that are effective against knife-wielding maniacs: swords, walking sticks, broom handles, etc. And yes, I would also shoot if I had a gun handy.
My position is not "All guns are evil" but "Someone with a lot of guns is more likely to be a threat to me than someone with no guns". The guy with a concealed carry license and a pistol, or someone with a rifle they use to hunt with once a year, I'm not too worried about. The guy with 5 AR-15s, 3 AK-47s, an assortment of pistols, hand grenades, and buying large quantities of ingredients for bombs, I'm a bit concerned about. For example, I grew up not far from where this guy went on a rampage and killed 6 people over a tax bill.
Also, the simplest way of using that data structure is "array(a,b,c,...)", not "[a,b,c,...]" like everyone else.
So? Does this gripe have any practical implications?
Yes there is: without syntax highlighting, I can't tell at a glance whether I'm looking at a data structure or a function call, I have to read it more carefully.
- All variables start with $, in imitation of Perl, but don't use the @ or % prefixes the way Perl does, instead just pretending everything's a scalar even though it's not.
Again - so what? You presumably learned how PHP variables work, so you're doing OK. Don't worry about Perl when you're using PHP.
It's harder for me to tell at a glance whether I'm dealing with a numeric array, an associative array (what the rest of the world calls a hash), an object, or a scalar value (e.g. a string or integer). To make matters even more challenging, the culture of the PHP community tries to make it so you can hand it any of those and it will try to convert it, sometimes correctly and sometimes not. If you're going to use type indication symbols, they actually need to indicate a type.
Instead, it offers a global facility called an "autoloader" that allows you to write your own code to tell it how to find it, which completely breaks when multiple libraries have competing autoloaders trying to pick up two different classes with the same name.
And, more importantly, why are you using libraries with their own autoloaders?
Because most of the major frameworks and libraries have them. For example, SwiftMailer is a popular way of sending out email, and it has its own autoloader so that you can easily reference its classes inside your code.
A fatal error means that something is seriously wrong with your application - the "recovery" should be fixing it, not pushing it under the rug.
Or sometimes not: For example, I tracked down a fatal error that was occurring because a default argument (an array) was being manipulated inside of a function. It turned out that what PHP was doing was treating that default argument as a static value the first time, and the second time the function was called it was crashing because it was trying to access the first run's value on the stack. I was able to work around it, but that's not a bug in the program, that's a bug in the PHP interpreter.
The comparison to other languages is to point out that there are viable alternatives that don't have the problems PHP does. I can compare and contrast Java and Python too (both languages I like), even though they make some very different kinds of choices, and don't have the same reaction of "Java is wrong" or "Python is wrong", because they're both right in different ways: Python creates very compact and powerful code, Java creates very well-defined and explicit code.
Also, PHP isn't my chosen tool. It's my employer's chosen tool. I can wrangle it to do what I want it to do, but that's different from other languages that I actually enjoy writing in.
It also differs because the people with lots of guns has the means to kill a lot of people. I'm not saying that people without a lot of guns couldn't kill a lot of other people, but the fact of the matter is that a nutjob with a knife is a lot easier to stop than a nutjob with lots of guns.
There's another option that open source gives you that proprietary software doesn't: You can pay someone else to fix it. If it's really that irritating to you, but you really don't want to work on it yourself, why not use some cash to convince a developer to fix your bug? You'll get what you want, the developer will get some cash, and the project will have its bug fixed. Everyone wins.
What you're really demanding is that volunteers do what you want them to do free of charge. What will actually happen is that volunteers will do whatever they damn well please.
My independent views are mine alone. They are unlikely to mesh with the independent views of those other than me.
Let's say there are about 15 issues you really care about, and most of them amount to a Yes/No answer (e.g. "Should marijuana be legal?"). That means that on average, 1 in 33000 people would answer the same way you did. Since there are roughly 70 million independents in the US, that means that there's a good chance at least 2000 people agree with you.
Honestly, I don't understand what all the complaining is about. It just seems like a lot of language snobbery to me.
As someone who works with PHP every working day: It's a language that wasn't designed, it was congealed. Its lack of design is very evident as soon as you start trying to build anything interesting with it. It was something that was created to solve a short-term problem for one guy, and more-or-less accidentally grew into what it is today. What structures it does have are poor attempts at imitating other languages.
Some examples of what went wrong: - Arrays and hashes are the same data structure, for no readily apparent reason. Also, the simplest way of using that data structure is "array(a,b,c,...)", not "[a,b,c,...]" like everyone else. - All variables start with $, in imitation of Perl, but don't use the @ or % prefixes the way Perl does, instead just pretending everything's a scalar even though it's not. - For a long time, OOP was an afterthought. - Unlike other scripting languages like Python, Ruby, and Perl, PHP can't figure out which files to include for you when you reference something outside of the current file. Instead, it offers a global facility called an "autoloader" that allows you to write your own code to tell it how to find it, which completely breaks when multiple libraries have competing autoloaders trying to pick up two different classes with the same name. - Library functions display no consistency whatsoever. Some are camelCase, some are under_scored. Some search functions put the needle before the haystack, some the other way around. - Some operators are funky: Values can be equal without being the same thing, for example. - A significant number of errors, instead of generating exceptions that can be caught and handled, generate fatal errors, which crash your application no matter what. By comparison, Perl, Python, Ruby, and Java allow you to handle almost any error.
I could go on, but the point is there's real reasons for hating PHP.
That doesn't change the story too much: Either the banks and rating agencies hid what they were doing from big investment managers, or banks and rating agencies and big investment managers hid what they were doing from the ordinary people that ostensibly owned the assets.
In particular, you don't need to own something to control it.
Are you arguing that, say, an owner of a factory doesn't have fairly direct control what happens in that factory? Yes, that sort of thing is only true because it's enforced by the legal system and government, but once you start throwing that out the window you're talking about a revolt of the industrial proletariat.
Let's call this place "Eiffel 65".
I'm not suggesting that people should be spending what money they have on lottery tickets, alcohol, or tobacco. I'm simply pointing out that they do, and that the effect is that they're paying taxes. The question of whether government was a problem or a solution wasn't in play, it was simply whether urban poor people pay taxes.
Official answer: $113,700.
I think the argument here is that the expensive phone lines are going to the homes of the eccentric millionaires. You're quite right that a lot of rural people are poor though.
There's a slight inaccuracy in your geography. Right smack in the middle of a city is often a glob of wealth in the form of corporate offices, cultural icons, and the like (think Park Ave, New York). The next ring is the dirt-poor urban people, mostly black or Hispanic. Then comes progressively wealthier and whiter rings of suburbs until you get about 30 or 40 miles from the city center, then it starts getting poor again until you're in the middle of nowhere with people living in shacks. Those rings can be somewhat distorted by natural features like major bodies of water, but they're very real. They can also merge into each other, as has happened along much of the Boston-Washington metropolis (it's possible to drive from Maine to Virginia while never spending more than about 10 miles in anything remotely resembling a rural area).
And as you mention, many rural towns have similar rings, but nowhere near as pronounced.
By and large, the "urban poor" do not pay much in taxes (except perhaps local sales taxes or use fees).
That is a myth that has been propagated for years with absolutely no basis in fact. Here's the truth about it:
1. Most states have sales taxes, and urban poor pay those. Many states have income taxes too, and much of the urban poor pay those too, albeit at a lower rate than, say, a middle-class person living in the suburbs.
2. Most states also draw income from urban poor in the form of taxes on alcohol, tobacco, and by state-run lotteries, all of which are more popular in places where people are poor, miserable, and with no way out of their current situation.
3. Anyone who works pays federal Social Security and Medicare taxes on the first dollar they earn. The only people who don't pay that on every dollar they make are people earning well into the 6-figures.
4. Property taxes are paid indirectly by the urban poor: They pay rent to their landlords, who pay the tax. (Forget owning a house - these folks can't afford one)
5. Urban poor receive harsher punishment for criminal activity than anyone else, so the government gets some income from them in the form of fines and asset forfeiture. Of course, one could argue that they also cost the state the most in jail time.
The idea that the people you're calling "urban poor" are a bunch of lazy freeloaders that were acting as a money sink for the rest of society was invented in the 1970's. What the people who invented the idea meant by "urban poor", and "welfare queens", and a bunch of related terms was "n*****s". Some of the people who invoke that idea today mean exactly the same thing, even if they don't say that's what's motivating them.
Hard to get rid of a guy who's fired or run-off all his potential replacements.
Really? I can think of a guy who could credibly take over without any difficulties if he wanted to, some fellow named Bill Gates.
And I should point out that in most corporations the purpose of a re-org is not to actually improve the running of the company, it's to create an opportunity for someone further up the food chain to reward buddies and punish enemies. I wouldn't be surprised if the point of this re-org was to run off potential replacements.
In other words, I'm happy with failure so long as someone else takes the blame.
I'm not happy with failure. What I'm trying to do is make it so that those who do what we want them to do (plan ahead, get things properly on the backlog, then into the correct sprint) get better results. If you're a salesperson making deals with promises of "Sure, we can have it for you in 2 days" without checking in with your tech team, then what you're actually doing is saying "Developers have to work ridiculous overtime so I can get a nice fat commission check." That's not about what's best for the company, it's what's best for the salesperson.
Another way of looking at it: If you're making irresponsible deals, then no, I'm not going to work really hard to cover up your mistake. Otherwise, you're going to do it again. And again. And again, until I no longer cover up your mistake. And yes, it's quite possible that I'll be blamed for failing to cover up your mistake.
The solution to these problems is to fire people like you, not adopt your approaches.
If the direct approach of asking management or sales to be reasonable with their requests to the development team hasn't worked, and someone who uses my indirect approaches is going to get fired from your firm, I don't want to work for you. My current firm doesn't do that, and does well because our salespeople promise what we can actually deliver.
Nearly every person I know who owns a smartphone and/or a tablet also has some sort of PC.
Well, what do you expect, when "nearly every person I know" consists of "my mother".
If your users are, say, someone who works in a different department of the same company as you do, then I've found that the best approach is to positively encourage them to send me reports. If I can't figure it out from the report, I'll even walk over and ask them to show me exactly what they did to cause the bug. When I do that, I give them some tips on how to write a report that explains that more clearly: "I logged into the website, clicked 'Foo', entered 'baz' into this box, then clicked 'Submit'. I got an error page instead of this other page I was expecting."
If your users are mostly developers, then by all means give them easy access to stack traces, memory dumps, etc.
If your users are mass-market end users, then include with your application a system that tracks user actions and sends it (along with a crash dump) to you at the user's request if there's a problem.
If your users are calling in to your company to complain, plan on using some kind of desktop sharing software so that the user and you can see exactly what happened.
If your users are dumber than a pack of hammers, then I have no answers for you.
"A lack of planning on your part does not constitute an emergency on our part."
Another option: Use the power of bureaucracy to your advantage. For example, create a fairly confusing Mid-Sprint Change Request Form that needs to be signed off by 2-3 people that are never in the office.
A third option: Make sure that the work that was requested properly gets released on time, while the work that was requested mid-sprint will get released when it's ready (which, if you're doing things right, is always later than on time).
The idea is to use the carrot of on-time quality delivery plus the stick of annoying bureaucracy and late delivery to push the people making requests towards doing the right thing.
"Whoopth, I had the thilly thing in reverthe!"
Polygamy isn't "natural" to humans. We are naturally almost monogomous.
First, anything that real people really want to do is, by definition, "natural" to humans. For example, a significant percentage of humans will "naturally" gorge themselves on whatever food is available. A not-tiny percentage of humans will not take their partner's gender into account when deciding who to sleep with. A not-tiny percentage of humans want to be in sexual situations with more than 2 people involved. And some people want to maintain more than one romantic and/or sexual relationship, despite the difficulties and complexities and (until very very recently) social stigma involved.
Second, we're definitely cheaters. About half of all husbands and a third of all wives admit to cheating on their spouses at some point in a marriage, even though they know full well that doing so may ruin their lives.
Third, like all other species, humans vary a fair amount. What's normal for one person may be completely abnormal for someone else.
If what works for you is monogamy, then by all means do that, and enjoy it thoroughly. Just don't assume that it works for everybody, or is somehow more natural than what other people are doing.
I'm not sure, but this might actually be a contradiction of Poe's Law.
That's what you might think, but (in at least this version of PHP) this crashed the application (apologies if /. screws up the formatting):
class Foo { ...
public function bar($arg=array()) {
$arg[] = 'bar';
}
}
While this worked fine: ...
class Foo {
public function bar($arg=null) {
if ($arg === null) {
$arg = array();
}
$arg[] = 'bar';
}
}
I definitely read that as a bug in the interpreter, not a bug in the application.
The US SEC. Their utter failure to do their jobs wrecked the entire planet's economy. I mean, as bad as the Chinese are, they haven't managed anything quite that spectacular.
For those missing the joke: original
The third guy you're thinking of is Samuel Alito.
When your 'nutjob with a knife' is slicing your daughter up, I trust you would not resort to a horrible gun to stop him and you would of course stop any armed police from interfering.
There are other weapons besides guns that are effective against knife-wielding maniacs: swords, walking sticks, broom handles, etc. And yes, I would also shoot if I had a gun handy.
My position is not "All guns are evil" but "Someone with a lot of guns is more likely to be a threat to me than someone with no guns". The guy with a concealed carry license and a pistol, or someone with a rifle they use to hunt with once a year, I'm not too worried about. The guy with 5 AR-15s, 3 AK-47s, an assortment of pistols, hand grenades, and buying large quantities of ingredients for bombs, I'm a bit concerned about. For example, I grew up not far from where this guy went on a rampage and killed 6 people over a tax bill.
Also, the simplest way of using that data structure is "array(a,b,c,...)", not "[a,b,c, ...]" like everyone else.
So? Does this gripe have any practical implications?
Yes there is: without syntax highlighting, I can't tell at a glance whether I'm looking at a data structure or a function call, I have to read it more carefully.
- All variables start with $, in imitation of Perl, but don't use the @ or % prefixes the way Perl does, instead just pretending everything's a scalar even though it's not.
Again - so what? You presumably learned how PHP variables work, so you're doing OK. Don't worry about Perl when you're using PHP.
It's harder for me to tell at a glance whether I'm dealing with a numeric array, an associative array (what the rest of the world calls a hash), an object, or a scalar value (e.g. a string or integer). To make matters even more challenging, the culture of the PHP community tries to make it so you can hand it any of those and it will try to convert it, sometimes correctly and sometimes not. If you're going to use type indication symbols, they actually need to indicate a type.
Instead, it offers a global facility called an "autoloader" that allows you to write your own code to tell it how to find it, which completely breaks when multiple libraries have competing autoloaders trying to pick up two different classes with the same name.
And, more importantly, why are you using libraries with their own autoloaders?
Because most of the major frameworks and libraries have them. For example, SwiftMailer is a popular way of sending out email, and it has its own autoloader so that you can easily reference its classes inside your code.
A fatal error means that something is seriously wrong with your application - the "recovery" should be fixing it, not pushing it under the rug.
Or sometimes not: For example, I tracked down a fatal error that was occurring because a default argument (an array) was being manipulated inside of a function. It turned out that what PHP was doing was treating that default argument as a static value the first time, and the second time the function was called it was crashing because it was trying to access the first run's value on the stack. I was able to work around it, but that's not a bug in the program, that's a bug in the PHP interpreter.
The comparison to other languages is to point out that there are viable alternatives that don't have the problems PHP does. I can compare and contrast Java and Python too (both languages I like), even though they make some very different kinds of choices, and don't have the same reaction of "Java is wrong" or "Python is wrong", because they're both right in different ways: Python creates very compact and powerful code, Java creates very well-defined and explicit code.
Also, PHP isn't my chosen tool. It's my employer's chosen tool. I can wrangle it to do what I want it to do, but that's different from other languages that I actually enjoy writing in.
It also differs because the people with lots of guns has the means to kill a lot of people. I'm not saying that people without a lot of guns couldn't kill a lot of other people, but the fact of the matter is that a nutjob with a knife is a lot easier to stop than a nutjob with lots of guns.
There's another option that open source gives you that proprietary software doesn't: You can pay someone else to fix it. If it's really that irritating to you, but you really don't want to work on it yourself, why not use some cash to convince a developer to fix your bug? You'll get what you want, the developer will get some cash, and the project will have its bug fixed. Everyone wins.
What you're really demanding is that volunteers do what you want them to do free of charge. What will actually happen is that volunteers will do whatever they damn well please.
My independent views are mine alone. They are unlikely to mesh with the independent views of those other than me.
Let's say there are about 15 issues you really care about, and most of them amount to a Yes/No answer (e.g. "Should marijuana be legal?"). That means that on average, 1 in 33000 people would answer the same way you did. Since there are roughly 70 million independents in the US, that means that there's a good chance at least 2000 people agree with you.
Honestly, I don't understand what all the complaining is about. It just seems like a lot of language snobbery to me.
As someone who works with PHP every working day: It's a language that wasn't designed, it was congealed. Its lack of design is very evident as soon as you start trying to build anything interesting with it. It was something that was created to solve a short-term problem for one guy, and more-or-less accidentally grew into what it is today. What structures it does have are poor attempts at imitating other languages.
Some examples of what went wrong: ...]" like everyone else.
- Arrays and hashes are the same data structure, for no readily apparent reason. Also, the simplest way of using that data structure is "array(a,b,c,...)", not "[a,b,c,
- All variables start with $, in imitation of Perl, but don't use the @ or % prefixes the way Perl does, instead just pretending everything's a scalar even though it's not.
- For a long time, OOP was an afterthought.
- Unlike other scripting languages like Python, Ruby, and Perl, PHP can't figure out which files to include for you when you reference something outside of the current file. Instead, it offers a global facility called an "autoloader" that allows you to write your own code to tell it how to find it, which completely breaks when multiple libraries have competing autoloaders trying to pick up two different classes with the same name.
- Library functions display no consistency whatsoever. Some are camelCase, some are under_scored. Some search functions put the needle before the haystack, some the other way around.
- Some operators are funky: Values can be equal without being the same thing, for example.
- A significant number of errors, instead of generating exceptions that can be caught and handled, generate fatal errors, which crash your application no matter what. By comparison, Perl, Python, Ruby, and Java allow you to handle almost any error.
I could go on, but the point is there's real reasons for hating PHP.
That doesn't change the story too much: Either the banks and rating agencies hid what they were doing from big investment managers, or banks and rating agencies and big investment managers hid what they were doing from the ordinary people that ostensibly owned the assets.