So you said Fortran codes we faster than C++ codes
I said no such thing; that doesn't make any sense. What I said is:
Boost Multi-array doesn't support most modern Fortran array features, so it's useless for porting modern Fortran code to C++: you end up having to rewrite most of the code from scratch.
and
That just shows that with enough effort, you can create efficient special purpose libraries in C++; of course you can. The question is whether straightforward, boring numerical code compiles into fast executables. If you write it using Boost multi-array, it ends up being much slower (not to mention more tedious) than equivalent Fortran code.
The links you provided show that Fortran has some convenience functions for selecting parts of arrays and applying arithmetics to them.
Yes, and in addition to that, the compilers know how to do kick-ass optimization on these "convenience functions", vectorize these expressions, and (depending on the compiler) parallelize them, for up to seven dimensions and any in-memory layout, stride, and indexes. In addition, there is a simple and straightforward notation for distributing those computations in Fortran and HPF.
And if all of that were so easy to implement, there would already be C++ libraries doing it, but unfortunately there aren't. Boost multi-array certainly does none of those things. Even if these features weren't so useful for writing readable, high performance numerical code (and they are), they are essential for porting modern Fortran code to C++, because if there isn't anything equivalent, a port requires all of that to be rewritten by hand with loops.
(In addition, your Fortran example and your use case for LibGeoDecomp are piss-poor, but that's a separate issue.)
The PC is the correct form factor for getting work done by humans. Mobile devices are not.
Oh, I think there are better form factors. Take a look at a traditional workspace: a huge desktop/drafting table, dozens of documents/pages, and walls. Now imagine the desktop, the documents, and the walls all turning into smart, active displays. That's the correct form factor for humans. A 27" HD monitor and a noisy metal box on the floor are not.
The point is that corporate information yells though a stack of a million amp PA speakers as compared to personal speech which is the equivalent of a whisper.
Really? Care to explain how the NYT or WP spending a boatload of money is preventing me from reading what I want?
There are tens of thousands of news sites. Most of them are not "walled gardens" at all. You can put up your own news site any time you like, and if people like it, they will read it.
The behaviour I described before is unacceptable precisely because it is not done with the subject's consent.
We agree that it is "(socially) unacceptable". But there is a big difference between "unacceptable" and "illegal".
That may be true for those particular organisations and today, though it's already clear that plenty of commercial organisations have in fact provided sensitive data to governments without any legal obligation to do so.
Even if that were true, it is still governments that are abusing that information.
So, in essence, you want to entrust governments with enforcing data protection laws against corporations in order to keep corporations from giving data to governments because those governments would be abusing that information if they got it. And in order to let governments enforce those new privacy laws, they get even easier access to private data in order to be able to audit it. You don't see the folly in that?
Moreover, there have already been reports of insurance companies trying to run background checks against applicants via less than clear channels, and then adjusting rates in light of what they find.
And the problem with that is... what? I like my insurance companies to assess risk well; it lowers my rates and encourages others to behave better. If you have a clandestine drug habit or eat too much trans fats, and that's showing up in your grocery bills, yes, I hope your rates go up; way up, in fact. Why should you be able to socialize the costs of your bad behavior?
That said, from my point of view, the European trend for preferring privacy to more liberal freedom of speech seems just fine.
Free speech has nothing to do with anything we are discussing here.
In fact, as I get older and hopefully wiser, I increasingly favour the view that strong privacy protection is essential to safeguard many other valuable freedoms, including the freedom to express your own political views and to associate with others who hold similar views, which I claim is self-evidently necessary to maintaining a functioning democracy.
Too bad that you and people like you are undermining our functioning democracy by giving ever more powers to governments, which then promptly turn around and abuse them.
FWIW, you have an interesting idea of "not an insult"
What I said before was an observation. An insult is: "you are an ignorant fool". Consider yourself insulted now.
So don't be so quick to dismiss the possibility of causation, simply because it was discovered by correlation.
Statistically significant correlation between "A and B" almost certainly implies causation somewhere, it just doesn't always imply "A causes B"; "B causes A" or "X causes A and B" are the alternatives.
That doesn't mean what you seem to think it means. "Correlation is not causation" is a statement reminding people that "B causes A" and "X causes A and B" are alternative explanations to "A causes B" when one observes a correlation.
In this case, the only reasonable choice is "galactic orbit causes extinctions" or "the correlation is accidental"; none of the other alternatives are reasonable.
Care to backup those claims with actual code/numbers?
You claim to be writing high performance code and you don't understand the difference between Boost multi-array and Fortran arrays? I'm sorry, but if you do any kind of high performance computing, you should at least have a decent understanding of one of the major tools used for it, namely modern Fortran. Once you do, you can then make an informed choice, instead of behaving like an immature language zealot.
(The Fortran code on libdecomp.org is cringe-inducing and inefficient.)
And, FWIW, I'm primarily a C++ programmer, because that's what the market demands, not a Fortran programmer, but at least I know my tools and their limitations.
My experience is that if you use C++ correctly, you get code which at least matches Fortran code.
If you use C, assembly, or Java "correctly", you can usually match Fortran code. That is entirely not the point.
Just like you don't want compilers to provide multidimensional arrays - memory isn't multidimensional, so there's no natural layout
There is a natural layout that handles 99% of all numerical needs. Numerical programmers understand it, and so do compilers.
NONE of this has a natural representation.
You listed a bunch of exceptional cases that should indeed be handled by libraries. But not to support common cases well because of exceptional cases is stupid.
We're using Boost Multi-array [boost.org] as a multi-dimensional array
Boost Multi-array doesn't support most modern Fortran array features, so it's useless for porting modern Fortran code to C++: you end up having to rewrite most of the code from scratch.
Regarding the speed issue: yeah, that's nonsense today [ieee.org].
That just shows that with enough effort, you can create efficient special purpose libraries in C++; of course you can. The question is whether straightforward, boring numerical code compiles into fast executables. If you write it using Boost multi-array, it ends up being much slower (not to mention more tedious) than equivalent Fortran code.
C++ is pretty much the only language that has BLAS libraries that can actually beat the fortran ones.
Why would any Fortran compiler be using a slower BLAS implementation than the C compiler?
The latest C++ template libraries are using SSE/etc vector intrinsics and are capable of meeting if not exceeding the fortran performance for many applications
Hand-tuned C code is "capable of meeting if not exceeding the fortran performance for many applications", but that doesn't make C a good numerical programming language. The question is whether normal, straightforward numerical code runs faster when written in one or the other language, not whether you can produce fast code if you invest enough time in writing it.
Well, if you really believe that someone should be free to tell anything about anyone to anyone else, regardless of how sensitive the information might be or whether it was provided in confidence, then I guess you and I just have very different views on socially acceptable behaviour.
We have the same views on socially acceptable behavior. But it isn't the government's business to regulate socially acceptable behavior. When we used to give it those sorts of powers, it used to penalize lots of behavior among consenting adults. It took a couple of centuries to put a stop to that, and we shouldn't start it again.
There have already been plenty of examples of people being arrested, prosecuted, sued, or otherwise attacked, and in several different countries, because of things they said on social networks or terms they put into search engines
Yes, those are big problems. Arresting, prosecution, and lawsuits all involve governments and the legal system. Facebook and Google are only revealing this information because governments force them to do so. Telling Google or Facebook not to scan your E-mail for social network information is ineffective, because governments can (and do) just scan those E-mails themselves. So the problem there is with governments misusing the data, not with Facebook or Google.
Was that supposed to be some sort of insult? I promise you that calling me names and insulting my background doesn't make your argument more convincing to me,
No, it wasn't supposed to be an insult, it was an observation: your beliefs are similar to European beliefs, and the European beliefs about privacy are wrong and inconsistent. Apparently, my observation was correct. If that insults you, the problem is with you.
Seems to me that there are bigger problems when porting Fortran code to C++, like lack of a multidimensional array type in C++, lack of all the other Fortran libraries, and the fact that Fortran code usually still seems to give faster executables than comparable C++ code on numerical applications.
If you can build it yourself for $1000, it probably would cost $10000 as a product; just look at 3D printers.
I think two arms on wheels would be extremely useful, and if you could sell it for $1000, people would snap them up and solve all sorts of robotics problems in a heartbeat.
The PR2 itself is ugly and overengineered, though; it's the kind of monstrosity academic groups with too much money have been producing for decades. That's not something anybody would want to have at home, no matter how useful it may be.
The problem with robotics and its failure to catch on widely I think is largely related to the fact that robots are still expensive to manufacture. Willow Garage doesn't seem to have made much progress with that. If you could put the hardware for an arm or a human-height telepresence robot in people's hands for less than $1000, the software would take care of itself. Working on 'robot operating systems" and similar software right now probably remains wasted effort; by the time the costs for the hardware has come down, all that work will likely be obsolete anyway.
First, if you space it out evenly, that's 1.5 beers per day, not a huge number, and within the ballpark of what is generally considered OK or even slightly beneficial (one glass of wine/day). It's also a big question of how you consume it. Is it a drink with a meal? Are you getting drunk? Is the rest of your nutrition reasonable? Etc. Once you cross a threshold, though, the effects of alcohol on your waistline and health start being bad. Where that is depends on your metabolism. And alcohol consumption is significantly associated with abdominal fat ("beerbelly"), at least in men, and that's the most dangerous fat.
Well, we could start with safeguards against Facebook collecting personal data about you from your friends without your consent
Thank you for making such a strong argument that there should not be any further "safeguards" put in place; regulating this would be an unacceptable intrusion on private conduct.
Merely relying on rules and conventions that might have protected us adequately 20 years ago is no longer sufficient in the face of modern mass surveillance, data mining, and automated decision making technologies.
You postulate nebulous threats and demonize a couple of companies that have never done you any harm. All of this vitriol against those companies distracts from who you really should be worried about: national governments and their spy agencies.
In fact, your views about data protection are so naive and distorted that it sounds to me like you might be European, because demonizing private companies while every government agency snoop through their data and giving up every private piece of information is just what they are doing.
But safeguards against what? Vacation pictures suddenly becoming public? I mean, if you have something to hide, don't put it on Facebook at all. Privacy settings and limited sharing on Facebook aren't for security or actual privacy, they are for politeness. I don't care whether anybody finds out that I'm a libertarian, but I know libertarian postings annoy my Obama-supporting friends, so I don't push those updates on them (and I expect them to spare me the drivel they post supporting Obama and the Democrats). I don't see what additional "safeguards" I need for social networks. I do need and want safeguards for E-mail, IM, text messages, and phone calls.
Sorry, even wikipedia has more accurate/reliable timeframes about warm and cold periods than you. Your imaginary 12,000 year warm period "rythm" is just nonsense.
The Earth has been in an interglacial period known as the Holocene for more than 11,000 years. It was conventional wisdom that the typical interglacial period lasts about 12,000 years, but this has been called into question recently. For example, an article in Nature[34] argues that the current interglacial might be most analogous to a previous interglacial that lasted 28,000 years.
There is, of course, no guarantee that conventional wisdom is true. Some interglacials last much longer. But around 12000 years the usual duration. And despite recent speculation to the contrary, without anthropogenic warming, we would still have to consider it a probable (and dangerous) possibility.
The previous glacier period ended like 20,000 years ago. So with your theoretic 12,000 limit we are already 8k overdue.
Really, you need to pay better attention. Warming did indeed start 20000 years ago, but that's not the start of the interglacial. The integlacial starts when that warming stops, and that was about 11000-12000 years ago, and since integlacials usually last around 12000 years, we are close to the end, unless something unusual is happening. Two unusual things are indeed happening. First, orbital cycles might have broken the pattern this time anyway (but that's speculation). Second, anthropogenic warming likely is interrupting the pattern this time. Either is a good thing.
The naxt glacier period before that was like 80k years ago. And the one before that one was 450k years ago. And about more glacier periods: we have no data.
Do you just make up such nonsense? Are you incapable of simple fact checking on Wikipedia?
See the temperature and CO2 peaks there? That's the interglacials. There are five of them just in that stretch of 450ka. You can read off the start and duration of the current interglacial, as well as the start of the temperature rise leading up to it. And since you seem to have trouble with graphs, let me remind you that time goes from right to left on those graphs. Oh, and it's called a "glacial period", not a "glacier period".
However, whoever has most gold gets to choose what options are available and to whom. Which is why libertarian utopia is just another dictatorship
That's nonsense, both from an economic point of view and from a political point of view. For example, Bill Gates is the richest man in America, and he isn't constraining my choices one bit through his wealth.
The last of 20th century's idealism-based evil empires
Again, utter nonsense. Libertarianism isn't about "idealism", it's about a pragmatic compromise between rights and liberties.
What's on its last gasp are progressivism and the welfare state, for the simple reason that they don't work in practice and aren't sustainable.
Otherwise it's just the cold, unfeeling place that science tells us it is.
Science tells us that the universe is filled with wonder, mysteries, and endless possibilities. And it is humans that care about each other, not some invisible, imaginary fairy in the sky.
The point of faith is to believe that God cares about you, or that at least there is some kind of meaning or justice in the universe.
If your life is so miserable that that's what you need, well, I hope it makes you happy.
It's God and Obama who think they know what's best for everybody, and then start smiting and condemning people when real humans don't behave according to their designs.
Actually, this is more a conseqeunce of the US social safety net and well meaning regulation than a failure. Minimum wage laws, taxes, insurance, and numerous restrictions on hiring and firing mean that you can't just take a chance on this guy and hire him to do something. If you could, he'd probably make more in a couple of days than he is making now in a month. Zoning regulations, health and safety regulations, restrictions on rental housing and hotels, tennants rights, and all that means that there is no cheap housing at the low end. Between homelessness and a middle class apartment used to be a whole range of options, from flophouses to boarding houses, and residential hotels. By outlawing them, you don't magically convert the people living in them into middle class wage earners, you simply put them on the street.
Bitcoin and online work fortunately are doing an end run around all these regulations. There is still no magical solution for the onerous restrictions on housing, though.
I said no such thing; that doesn't make any sense. What I said is:
Boost Multi-array doesn't support most modern Fortran array features, so it's useless for porting modern Fortran code to C++: you end up having to rewrite most of the code from scratch.
and
That just shows that with enough effort, you can create efficient special purpose libraries in C++; of course you can. The question is whether straightforward, boring numerical code compiles into fast executables. If you write it using Boost multi-array, it ends up being much slower (not to mention more tedious) than equivalent Fortran code.
Yes, and in addition to that, the compilers know how to do kick-ass optimization on these "convenience functions", vectorize these expressions, and (depending on the compiler) parallelize them, for up to seven dimensions and any in-memory layout, stride, and indexes. In addition, there is a simple and straightforward notation for distributing those computations in Fortran and HPF.
And if all of that were so easy to implement, there would already be C++ libraries doing it, but unfortunately there aren't. Boost multi-array certainly does none of those things. Even if these features weren't so useful for writing readable, high performance numerical code (and they are), they are essential for porting modern Fortran code to C++, because if there isn't anything equivalent, a port requires all of that to be rewritten by hand with loops.
(In addition, your Fortran example and your use case for LibGeoDecomp are piss-poor, but that's a separate issue.)
Oh, I think there are better form factors. Take a look at a traditional workspace: a huge desktop/drafting table, dozens of documents/pages, and walls. Now imagine the desktop, the documents, and the walls all turning into smart, active displays. That's the correct form factor for humans. A 27" HD monitor and a noisy metal box on the floor are not.
Really? Care to explain how the NYT or WP spending a boatload of money is preventing me from reading what I want?
There are tens of thousands of news sites. Most of them are not "walled gardens" at all. You can put up your own news site any time you like, and if people like it, they will read it.
Where is the problem?
We agree that it is "(socially) unacceptable". But there is a big difference between "unacceptable" and "illegal".
Even if that were true, it is still governments that are abusing that information.
So, in essence, you want to entrust governments with enforcing data protection laws against corporations in order to keep corporations from giving data to governments because those governments would be abusing that information if they got it. And in order to let governments enforce those new privacy laws, they get even easier access to private data in order to be able to audit it. You don't see the folly in that?
And the problem with that is... what? I like my insurance companies to assess risk well; it lowers my rates and encourages others to behave better. If you have a clandestine drug habit or eat too much trans fats, and that's showing up in your grocery bills, yes, I hope your rates go up; way up, in fact. Why should you be able to socialize the costs of your bad behavior?
Free speech has nothing to do with anything we are discussing here.
Too bad that you and people like you are undermining our functioning democracy by giving ever more powers to governments, which then promptly turn around and abuse them.
What I said before was an observation. An insult is: "you are an ignorant fool". Consider yourself insulted now.
Statistically significant correlation between "A and B" almost certainly implies causation somewhere, it just doesn't always imply "A causes B"; "B causes A" or "X causes A and B" are the alternatives.
That doesn't mean what you seem to think it means. "Correlation is not causation" is a statement reminding people that "B causes A" and "X causes A and B" are alternative explanations to "A causes B" when one observes a correlation.
In this case, the only reasonable choice is "galactic orbit causes extinctions" or "the correlation is accidental"; none of the other alternatives are reasonable.
You claim to be writing high performance code and you don't understand the difference between Boost multi-array and Fortran arrays? I'm sorry, but if you do any kind of high performance computing, you should at least have a decent understanding of one of the major tools used for it, namely modern Fortran. Once you do, you can then make an informed choice, instead of behaving like an immature language zealot.
Here are two places you should start looking:
http://en.wikipedia.org/wiki/Fortran_95_language_features#Arrays_2
http://en.wikipedia.org/wiki/High_Performance_Fortran
(The Fortran code on libdecomp.org is cringe-inducing and inefficient.)
And, FWIW, I'm primarily a C++ programmer, because that's what the market demands, not a Fortran programmer, but at least I know my tools and their limitations.
If you use C, assembly, or Java "correctly", you can usually match Fortran code. That is entirely not the point.
I most certainly do.
There is a natural layout that handles 99% of all numerical needs. Numerical programmers understand it, and so do compilers.
You listed a bunch of exceptional cases that should indeed be handled by libraries. But not to support common cases well because of exceptional cases is stupid.
Boost Multi-array doesn't support most modern Fortran array features, so it's useless for porting modern Fortran code to C++: you end up having to rewrite most of the code from scratch.
That just shows that with enough effort, you can create efficient special purpose libraries in C++; of course you can. The question is whether straightforward, boring numerical code compiles into fast executables. If you write it using Boost multi-array, it ends up being much slower (not to mention more tedious) than equivalent Fortran code.
Why would any Fortran compiler be using a slower BLAS implementation than the C compiler?
Hand-tuned C code is "capable of meeting if not exceeding the fortran performance for many applications", but that doesn't make C a good numerical programming language. The question is whether normal, straightforward numerical code runs faster when written in one or the other language, not whether you can produce fast code if you invest enough time in writing it.
We have the same views on socially acceptable behavior. But it isn't the government's business to regulate socially acceptable behavior. When we used to give it those sorts of powers, it used to penalize lots of behavior among consenting adults. It took a couple of centuries to put a stop to that, and we shouldn't start it again.
Yes, those are big problems. Arresting, prosecution, and lawsuits all involve governments and the legal system. Facebook and Google are only revealing this information because governments force them to do so. Telling Google or Facebook not to scan your E-mail for social network information is ineffective, because governments can (and do) just scan those E-mails themselves. So the problem there is with governments misusing the data, not with Facebook or Google.
No, it wasn't supposed to be an insult, it was an observation: your beliefs are similar to European beliefs, and the European beliefs about privacy are wrong and inconsistent. Apparently, my observation was correct. If that insults you, the problem is with you.
Seems to me that there are bigger problems when porting Fortran code to C++, like lack of a multidimensional array type in C++, lack of all the other Fortran libraries, and the fact that Fortran code usually still seems to give faster executables than comparable C++ code on numerical applications.
If you can build it yourself for $1000, it probably would cost $10000 as a product; just look at 3D printers.
I think two arms on wheels would be extremely useful, and if you could sell it for $1000, people would snap them up and solve all sorts of robotics problems in a heartbeat.
The PR2 itself is ugly and overengineered, though; it's the kind of monstrosity academic groups with too much money have been producing for decades. That's not something anybody would want to have at home, no matter how useful it may be.
The problem with robotics and its failure to catch on widely I think is largely related to the fact that robots are still expensive to manufacture. Willow Garage doesn't seem to have made much progress with that. If you could put the hardware for an arm or a human-height telepresence robot in people's hands for less than $1000, the software would take care of itself. Working on 'robot operating systems" and similar software right now probably remains wasted effort; by the time the costs for the hardware has come down, all that work will likely be obsolete anyway.
First, if you space it out evenly, that's 1.5 beers per day, not a huge number, and within the ballpark of what is generally considered OK or even slightly beneficial (one glass of wine/day). It's also a big question of how you consume it. Is it a drink with a meal? Are you getting drunk? Is the rest of your nutrition reasonable? Etc. Once you cross a threshold, though, the effects of alcohol on your waistline and health start being bad. Where that is depends on your metabolism. And alcohol consumption is significantly associated with abdominal fat ("beerbelly"), at least in men, and that's the most dangerous fat.
Thank you for making such a strong argument that there should not be any further "safeguards" put in place; regulating this would be an unacceptable intrusion on private conduct.
You postulate nebulous threats and demonize a couple of companies that have never done you any harm. All of this vitriol against those companies distracts from who you really should be worried about: national governments and their spy agencies.
In fact, your views about data protection are so naive and distorted that it sounds to me like you might be European, because demonizing private companies while every government agency snoop through their data and giving up every private piece of information is just what they are doing.
But safeguards against what? Vacation pictures suddenly becoming public? I mean, if you have something to hide, don't put it on Facebook at all. Privacy settings and limited sharing on Facebook aren't for security or actual privacy, they are for politeness. I don't care whether anybody finds out that I'm a libertarian, but I know libertarian postings annoy my Obama-supporting friends, so I don't push those updates on them (and I expect them to spare me the drivel they post supporting Obama and the Democrats). I don't see what additional "safeguards" I need for social networks. I do need and want safeguards for E-mail, IM, text messages, and phone calls.
You can't read, can you? http://en.wikipedia.org/wiki/Ice_age
The Earth has been in an interglacial period known as the Holocene for more than 11,000 years. It was conventional wisdom that the typical interglacial period lasts about 12,000 years, but this has been called into question recently. For example, an article in Nature[34] argues that the current interglacial might be most analogous to a previous interglacial that lasted 28,000 years.
There is, of course, no guarantee that conventional wisdom is true. Some interglacials last much longer. But around 12000 years the usual duration. And despite recent speculation to the contrary, without anthropogenic warming, we would still have to consider it a probable (and dangerous) possibility.
Really, you need to pay better attention. Warming did indeed start 20000 years ago, but that's not the start of the interglacial. The integlacial starts when that warming stops, and that was about 11000-12000 years ago, and since integlacials usually last around 12000 years, we are close to the end, unless something unusual is happening. Two unusual things are indeed happening. First, orbital cycles might have broken the pattern this time anyway (but that's speculation). Second, anthropogenic warming likely is interrupting the pattern this time. Either is a good thing.
Do you just make up such nonsense? Are you incapable of simple fact checking on Wikipedia?
http://en.wikipedia.org/wiki/Timeline_of_glaciation
I mean, FFS, take a look at the Vostok core, this is the third time that I'm pointing you to it:
http://en.wikipedia.org/wiki/File:Vostok_Petit_data.svg
See the temperature and CO2 peaks there? That's the interglacials. There are five of them just in that stretch of 450ka. You can read off the start and duration of the current interglacial, as well as the start of the temperature rise leading up to it. And since you seem to have trouble with graphs, let me remind you that time goes from right to left on those graphs. Oh, and it's called a "glacial period", not a "glacier period".
Yes, just like the server based system; it doesn't have any advantage in that respect.
True, although for Linux, there are many easy ways you can protect yourself against it that don't exist for Windows.
That's nonsense, both from an economic point of view and from a political point of view. For example, Bill Gates is the richest man in America, and he isn't constraining my choices one bit through his wealth.
Again, utter nonsense. Libertarianism isn't about "idealism", it's about a pragmatic compromise between rights and liberties.
What's on its last gasp are progressivism and the welfare state, for the simple reason that they don't work in practice and aren't sustainable.
Science tells us that the universe is filled with wonder, mysteries, and endless possibilities. And it is humans that care about each other, not some invisible, imaginary fairy in the sky.
If your life is so miserable that that's what you need, well, I hope it makes you happy.
Libertarians let people make their own choices.
It's God and Obama who think they know what's best for everybody, and then start smiting and condemning people when real humans don't behave according to their designs.
Actually, this is more a conseqeunce of the US social safety net and well meaning regulation than a failure. Minimum wage laws, taxes, insurance, and numerous restrictions on hiring and firing mean that you can't just take a chance on this guy and hire him to do something. If you could, he'd probably make more in a couple of days than he is making now in a month. Zoning regulations, health and safety regulations, restrictions on rental housing and hotels, tennants rights, and all that means that there is no cheap housing at the low end. Between homelessness and a middle class apartment used to be a whole range of options, from flophouses to boarding houses, and residential hotels. By outlawing them, you don't magically convert the people living in them into middle class wage earners, you simply put them on the street.
Bitcoin and online work fortunately are doing an end run around all these regulations. There is still no magical solution for the onerous restrictions on housing, though.