Wall Street's New Financial Product: Your Rent Check - <AUTHOR> http://www.motherjones.com/politics/2014/01/blackstone-rental-homes-bundled-derivatives <comment><USER2> Maybe these new financial products end up being mutually beneficial for them and society at large as well and maybe the economy gets hurt and the practice if forbidden by law.

But this doesn't seem right. They win either way. They always make a buck, whether their new financial products are eventually banned or not. Meanwhile the economy suffers at least half the time and nobody is compensated for this risk that is imposed on them. If fact the rest of us get burdened cleaning the mess up.

It's akin to letting some cocky hacking superstar mess up with the production server. If he doesn't fuck up, he gets all the praise. If he fucks up because well, you shouldn't push things straight from mind to production, the rest of the developers, are tasked with putting in restrictions in production to forbid whatever the guy did, and the guy get's let off easily.

Maybe Wall St. should be told to run things on the test server for a while before potentially fucking up the rest of the economy.

<comment><USER3> First, Wall Street players flooded into this market because of the Federal Reserve's actions following the 2008 market crash. The risky experiment that's being run in production is global monetary policy. Central banks around the world are engaging in unprecedented behavior that is causing all sorts of market distortions.

Second, the mainstream media tends to exaggerate when writing about financial products. A $479 million bond backed by rental payments? If you're going to lose sleep over that, are you going to lose sleep over Tesla's $2.2 billion in debt, which was rated junk by S&P in 2014?

Third, a lot of discussions around Wall Street are presented in a false us- versus-them fashion. Blackstone is publicly-traded. You can buy shares of Blackstone stock and collect a ~6% dividend if you so desire. You can invest in pure-play single family home renters like American Homes 4 Rent and Silver Bay Realty Trust, which are also publicly-traded. American Homes 4 Rent even has classes of participating preferred stock that give shareholders the ability to profit from appreciation in the value of the company's portfolio of single family residences. Too risky for your taste? You can bet on the rental trend by investing in well-established REITs like Equity Residential and Avalonbay Communities, which own lots of apartments and pay ~3% dividends.

Finally, you insinuate that Wall Street is placing risk on the American economy, but the inconvenient truth about the last real estate bubble is that many Americans were just as deserving of blame as Wall Street and government agencies. Lots of people bought houses they couldn't afford based on the assumption that prices would continue to rise. Lots of people used their home equity like a piggy bank. Liar's loans? You can't have a liar's loan without somebody willing to lie.

Bottom line: there was plenty of greed in all corners of the housing market and while people who didn't do anything wrong did suffer, it's intellectually dishonest to pretend that everybody who lost a home was a victim.

</comment></comment><comment><USER4> I currently rent from an Invitation Homes property in Seattle. I'd dearly love to buy the place from them (sketchy hedge-fund backing aside, it _is_ a gorgeous house that is well-maintained), but they ain't selling and my rent has a 'guaranteed' increase of 5% per year, with the agent telling me to 'expect closer to 10-15%, unless I sign a multi-year lease'. Definitely a drag, but ye gods and little fishies is it difficult to put together a 10% downpayment for a mortgage. Median home prices around here are $300k-$450k, and $30k in cash is quite the chunk of change.

<comment><USER5> Wait, I was the under the impression that the minimum downpayment was increased to 20%. Am I misremembering?

<comment><USER6> below 20% you usually need mortgage insurance (PMI) in the US.

PMI is usually not too expensive with 10% down - for example when I bought a house with 10% down, the PMI was 1% of the loan value up front. When you consider the time it would take a family to double their down payment savings, it can make sense in high cost markets.

You _can_ go as low as 5% down, but the mortgage insurance gets a lot more expensive.

The _general_ guidance is still 20%, though, because you're less likely to go underwater, and it shows you're committed to the idea, the area, etc.

<comment><USER7> As of January you can even go down to _3%_ for a conventional mortgage: [http://www.latimes.com/business/la-fi-fannie-freddie- loans-2...](http://www.latimes.com/business/la-fi-fannie-freddie- loans-20141209-story.html)

</comment></comment></comment></comment><comment><USER8> Any stream of cashflow that has a reasonable amount of predictability will try to be and can be securitized given demand from end buyers.

Things that have been securitized include your credit card payments, mortgage payments, auto payments etc...

The risks outlined by the article is not specific to rent checks alone- it applies to all forms of securitization.

Unless- Mother Jones is claiming that all forms of securitization bad.

<comment><USER9> Securitization is not intrinsically bad, but the fact that we are seeing more than this is indicative of the fact that the country's wealth is being hijacked by owners and monopolists rather than workers and builders.

Imagine how big this market would be if homes were affordable nationwide and Americans could buy them with cash. Not very big, right?

Houses didn't get any more expensive to build over the last 30 years, but they shot up in value thanks to policies basically designed to fuck the poor and transfer wealth directly to the rich (ZIRP, de-taxing land/wealth, etc.). Hence the fact that securitization of rental streams is a thriving market rather than just an idea.

<comment><USER10> The reason we are seeing more securitization is that the marketplace demands it. There are lots and lots of market participants that are looking for low risk, small fixed return style investments.

This financial product, at least for the latter half of the last century, was almost entirely provided by US governmental debt. The monetary policy of the last decade+ has caused that debt to no longer be an acceptable investment for this. Coupled with the increase in number of investors looking for this style of vehicle (from China and other developing nations) and there is a huge market need.

Of course, in the face of a huge market need financial product offerers are going to try new and possibly dodgy means to fill the gap.

<comment><USER9> >There are lots and lots of market participants that are looking for low risk, small fixed return style investments.

And you think hopping on the next CDO bandwagon is a low risk investment?

<comment><USER10> No of course not. I also don't understand the market for luxury pick up trucks, but it exists so why wouldn't car manufacturers create products in that space, even when all other products in that space are clearly stupid?

</comment></comment></comment></comment></comment><comment><USER11> >Blackstone has bundled the rental payments from more than 3,200 single-family houses, offering investors its mortgages on the underlying properties as collateral.

This reminds me of the stuff that caused the crisis of 2008 ... however, I am not that well-versed in these kinds of financial products. Could anyone explain a bit more to me how this works? They pool the collected rent and then they create a bond with that? How?

>Invitation Homes has described its strategy as "a bet on America."

Murrica1!

<comment><USER12> A bond is a contract to make payments. So they list the properties in the contract (this might not be exactly correct, but I guess it is a good enough model of what is going on).

The problems in 2008 weren't directly a result of such securitization, the problem was that the risk of the underlying mortgages was not at all correctly estimated, and the way the bonds were traded depended on the pretense that the risk had been estimated nearly perfectly.

These bonds can do things like list historical occupancy and on time payment rates of the properties, so they don't need to be anywhere as murky as bonds backed by mortgages that were handed out to whoever walked in the door.

<comment><USER9> >The problems in 2008 weren't directly a result of such securitization, the problem was that the risk of the underlying mortgages was not at all correctly estimated, and the way the bonds were traded depended on the pretense that the risk had been estimated nearly perfectly.

The problems in 2008 weren't caused by accidental risk mis-pricing. It was entirely intentional. The securitizers paid the rating agencies for their opinion and the ratings agencies duly delivered an opinion that the securitizers wanted: AAA.

That meant all of the shit could get stuffed into things like retirement portfolios owned by suckers like you and me.

Was anybody punished for this? No.

Will it happen again? Most likely.

>These bonds can do things like list historical occupancy and on time payment rates of the properties, so they don't need to be anywhere as murky as bonds backed by mortgages that were handed out to whoever walked in the door.

The money question is what score did the ratings agencies give these bonds.

<comment><USER13> The AAA rating for the senior tranches was perfectly correct _assuming_ the risk of the underlying mortgages was properly estimated.

The bulk of the buyers of the AAA tranches were other banks, and the reason was satisfying requirements for capital reserves. If bank A and B both have portfolios of mortgages worth $1B, they are treated as having $1B of risky assets and do not satisfy capitalization requirements. If they securitize the portfolios and sell each other a $700M senior tranch (while holding the equity tranches themselves), bank A and B are both considered to have $700M in cash- like reserves.

This does reduce the risk caused by _regional_ house price decreases which is why regulators wanted banks to do it. (No one, including regulators, expected a national/global drop in real estate values.)

Also, the idea that the mispricing was intentional is silly. The issuing banks mostly held onto the equity tranches and suffered as a result - not the actions one would take if you knew things would tank.

<comment><USER14> No, they sold those too. Look up CDO and CDO squared to see where those things went. That said, super senior subprime mortgage binds did exceptionally well as investments. It was the BBB stuff which had near 100% loss.

<comment><USER13> CDO^2 was a minor part of the market, and again is also a valid thing to do _provided_ the assumptions are right.

According to the "evil actor/information assymmetry" theory, the people closest to the mortgage issuance should have been the ones who survived the crisis best (since their information was the most accurate). In contrast, the dumb investment banks back in NY should have been hurt the worst. That's the exact opposite of what happened.

<comment><USER9> >According to the "evil actor/information assymmetry" theory, the people closest to the mortgage issuance

Several thousand appraisers actually wrote a letter to Congress complaining that they were being pressured to inflate their home appraisals or face blacklisting. This went back to 1999.

<comment><USER13> What, exactly, do you believe this proves?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> One challenge not mentioned in the article is house maintenance. If you do not maintain your house properly its value can decrease dramatically (worst case is land value less demolition cost). If they contract out maintenance to a good firm and have good oversight then no problem... but if they contract out to the cheapest firm, one that's shady, with poor oversight then in a decade or so the value of the home could be significantly lower. Not only that, but a poorly maintained home will be harder to rent and bring in less rent.

And then you've also got legal issues (various landlord and tenant acts, homeowners associations) that will vary by jurisdiction that could make things like eviction and rent raising more difficult than expected.

That 95% tenancy number could well drop by a lot, making the investment a real stinker (also even if they lower rents to increase tenancy the underlying measure isn't really tenancy rate it's monthly average rent).

</comment><comment><USER16> I don't see the crucial similarity to the housing bubble: renting out to people who cannot pay. Actually, their policy seems to be the exact opposite, strict collections.

<comment><USER5> The article states that they are assuming a 95% occupancy rate at all times. What happens when they undershoot this number and aren't able to make the yield payments? Isn't that analogous to "renting out to people who cannot pay"?

</comment></comment><comment><USER17> If there was ever a perfect plan to widen the gap between rich and poor, this is it. I predict this will bring about a future of unionized renters, followed by home-trust-busting efforts as it becomes clear how much potential for the abuse of the poor is waiting behind this new financial structure.

</comment><comment><USER18> > Asked why the public should expect rental-backed securities to be safe, the > hedge fund investor responds, "Trust me."

I'd love to see the full, actual quote on that.

<comment><USER19> The entire article is all over the place.

> But what if the security blows up? Investors could demand their collateral > back, forcing renters out of their homes, even if they never missed a > payment. "We could well end up in that situation where you get a lot of > people getting evicted—not because the tenants have fallen behind, but > because the landlords have fallen behind," says Baker.

At the risk of invoking the "j_lev Law of Eating Hats" I can't see that happening. There is ONE private investment company which has a loan with ONE bank. Investors pull out, the size of the loan just increases by that amount. All the investors pull out and Blackstone Group is left with a lot of (high- yield) property and a large loan with DB. Worst case scenario the properties are sold (potentially at a loss, but the remaining loan is still the problem of Blackstone Group and DB).

</comment></comment><comment><USER20> This article feels very imbalanced. Does anyone have a more legitimate source that tackles this issue?

</comment><comment><USER7> > But what if the security blows up? Investors could demand their collateral > back, forcing renters out of their homes, even if they never missed a > payment. "We could well end up in that situation where you get a lot of > people getting evicted—not because the tenants have fallen behind, but > because the landlords have fallen behind," says Baker.

I'm sorry, but what? This isn't how leaves work, or at least it isn't in most states I'm familiar with. No one is going to get evicted if investors demand their collateral back - the leases might not be renewed (like might happen with any other landlord), but the lease can't be terminated just because some investors gets antsy.

</comment><comment><USER21> Like every security, this one has its own risk and the investors should take that into consideration when investing. _Hopefully_ these securities aren't going to be mixed up with other less risky ones and sold together as AAA securities...

</comment><comment><USER22> I don't know which is worse... that they're doing this, or that for "only" $1300 a month, I would probably rent from them if I had the option.

<comment><USER5> Which real estate market are you in? The article states that many of the purchases were done in areas hit hard by the recession. I can't imagine $1300/mo is actually that good a bargain. Also, as other posters have mentioned, you aren't likely to keep that $1300/mo price tag for long if the area does recover.

<comment><USER22> Boulder, CO.

</comment></comment></comment><comment><USER23> The game is played again and again and again: How to suck out the common man and make him dependable. "We the people" are silent. Mostly.

</comment><comment><USER24> Lot of people think tech crowd in Bay area is driving up housing, but that's not true - at least not entirely. Tech crowd is actually small fraction of population even in Bay area and housing is on similar steep incline rate pretty much everywhere.

My theory was that much of the demand for housing is from investors. I've read tons of reports that wealthy people from China had been descending on US soil and gobbling up pretty much everything on their way with entire deals in cash. My real estate agent told me she is completely stunned how many deals are coming from foreign investors in cash. On a typical house that comes in market, it gets viewed by 200 buyers and gets about 10 offers within 1 week involving bidding wars more often than not. I also show these giant investing funds sweeping entire areas with their billions (my area was gobbled up by Berkshire, for example). I also have few colleges who are now owning as many as half dozen real estate properties - all bought from mortgage then rented out through agencies. They are saying business has never been better and I suspect they might soon leave their jobs to retirement. Many other people I know overseas are putting larger and larger savings in buying real estate. In most big cities, you can find buildings upon building with super expensive apartments that only gets bought and sold but no one lives there.

I think what has happened is 2008 crash actually made real estate more stronger then any other time in history because of the way it has bounced back. In essence, real estate is a new cow. You can milk it forever by renting it out and are thus guaranteed certain % of return. Plus it goes up in value on pretty much any long stretch of time. Plus you can actually use it unlike gold or stock. Plus it's virtually inflation protected. The biggest advantage, however, is that you are almost guaranteed never to loose your entire principal - even in the tough times. Even if 2008 repeats, you might lose 5-25% of value unlike stocks where anything is possible. Traditionally investors thought of real estate as lousy investment because of non-liquidity, auxiliary expenses, less rate of return than stock etc. The modern investor thinks real estate as highest yielding best bet among all other safest bets.

I feel trend is going to continue at least for another 2-3 year if not more. I can easily imagine 10-30% of all urban areas bought out by investors and only available for rent. This would be a really bad thing on many levels. First, money tied up in real estate doesn't go toward economy growth. Second, rental market will get worse and worse because it will be controlled by few players who will dictate prices to make sure they get highest return. Third, owning house would become too distant a dream for pretty much anyone except top 1%.

The funniest thing is that you and me are technically funding above process. All our 401Ks and retirement funds ultimately ends up at groups like Blackstone to buy up real estate and then rent it back to us at highest possible rate :).

<comment><USER25> "All our 401Ks and retirement funds ultimately ends up at groups like Blackstone"

I really think we should abolish tax-deductible/advantageous defined contribution plans like 401k, IRA, Roth, college funds, etc. This automatic investing scheme is giving inordinate amount of power to wallstreet, and force money to chase after equities and securitized products because that's all they know how to 'invest'.

If you're going to invest in stock market, you should make conscious choice to do so using after-tax earnings just like other forms of investment. The only reason why people plow money into these accounts is because of tax benefits.

Take that away and people will find more creative ways to put their money to work.

That could ultimately be a good thing for this country

<comment><USER26> i would be slightly more targeted- abolish tax incentives for investment in real estate. investment in real estate is literally rent-seeking, unproductive and is widening inequality , particularly between young and old.

<comment><USER27> If by rent-seeking, you mean: using resources to obtain an economic gain from others without reciprocating any benefits back to society through wealth creation.

Then real estate is not "rent-seeking".

Real estate owners take the burden of home ownership off the shoulders of renters. Renteres choose to rent because they have an economic incentive to do so. Instead of a buying a home cash, or putting down a deposit, a renter can use that money for investing in other activities, spending on themselves or their family, or save. Of course, there are many renters who cannot afford a down payment at all. For them, the landlord is playing an even more important role by letting them rent in areas where purchasing would be impossible.

I do agree that most tax incentives for investing should be abolished. But I disagree that real estate is less productive than other types of investing.

<comment><USER26> In general you're right it's unfair to say that real estate investment is always unproductive and rent-seeking. However for major cities like London with tight supply, the flows of real estate investment that followed QE and zero interest rates haven't been matched by appropriate levels of home building. As a result affordability and ownership levels have reached historic lows, and many more people are becoming 'unwilling' renters, only able to service the financing costs of real estate investors. At this stage it becomes rent-seeking and unproductive, in my view, and there ought to be appropriate policy responses from government.

</comment></comment></comment></comment></comment><comment><USER28> Why don't we have an Air BnB or Uber for the rental market?

<comment><USER29> Most jurisdictions have heavy, hardcore regulatory protection for rental tenants. AirBnB and Uber only exist because they're temporarily able to dodge regulation and it is already starting to catch up to them.</comment></comment>


Chess.com stopped working on 32bit iPads because 2^31 games have been played - <AUTHOR> https://www.chess.com/forum/view/general/impossible-de-jouer-depuis-deux-jours-quel-est-le-probleme <comment><USER3> It's fascinating... the Y2K problem never came to fruition because - <USER2> - of the immense effort put in behind the scenes by people who understood what might have happened if they hadn't. The end result has been that the entire class of problems is overlooked, because people see it as having been a fuss over nothing.

I sometimes think it would've been better if a few things had visibly failed in January 2000.

<comment><USER4> If you were watching closely and knew what to look for in the first couple of months of 2000, the failures _were_ there. But they were generally minor and easy to overlook as Y2K problems.

I spotted something like half a dozen failures in various systems I interact with which I strongly suspected, based upon the timing, were likely Y2K problems that slipped through testing. For example, I received duplicate bills for one of my credit cards for the January 2000 billing period, and then a subsequent apology for the duplicate bills. They never said Y2K, but the timing was very suggestive.

It's pretty much exactly what I expected from most companies...the big stuff had been largely been dealt with, but a few things slipped through which they could dismiss with some hand-waving. The thing that surprised me was that there didn't really seem to be any high profile disasters (like a company that couldn't ship products, an airline that couldn't issue tickets, or whatever) at all...I figured there'd be at least a couple.

<comment><USER5> in JavaScript, new Date().getYear() returns 117 :)

<comment><USER6> And in early 2000 web was full of "Copyright 19100".

</comment></comment></comment></comment><comment><USER7> Self-confidence as a programmer is when starting a new project, storing the transaction ID as a long rather than an int...

<comment><USER8> > Self-confidence as a programmer is when starting a new project, storing the > transaction ID as a long rather than an int...

uint64_t even

Or a UUID as others have suggested.

Technically C spec doesn't really say exactly how many bits int, long and long long should be. If you want specific sizes and your code to be somewhat portable use the specific bit sizes to make that clear. There are also types for size-like things (size_t) and pointer and offset like things.

<comment><USER9> > If you want specific sizes

I would go further and say you should _always_ use specific sizes, unless forced otherwise. There's no reason not to.

<comment><USER10> There's a usecase for lower-bounded types such as int_least32_t, where the compiler may choose a larger type if it offers better performance. However, if you're using that, the test suite should run all relevant tests for multiple actual sizes of that particular type (through strategic use of #define, for example).

<comment><USER11> > There's a usecase for lower-bounded types such as int_least32_t, where the > compiler may choose a larger type if it offers better performance.

If you're looking for the best performances you shouldn't use leastX types, you should use fastX types (e.g. int_fast32_t for the "fastest integer type available in the implementation, that has at least 32 bits").

The difference between "leastX" and "fastX" is that "leastX" is the _smallest_ type in the implementation which has at least X bits. So if the implementation has 16, 32 and 64b ints and is a 32b architecture, least8 would give you a 16b int but fast8 might give you a 32b one.

</comment></comment></comment></comment></comment><comment><USER12> Hey all. Thanks for noticing :P Obviously this is embarrassing and I'm sorry about it. As a non-developer I can't really explain how or why this happened, but I can say that we do our best and are sorry when that falls short.

\- Erik, CEO, Chess.com

<comment><USER13> 2 billion is a very large number that was probably not envisioned as reachable in the near future - as a programmer I'd argue this is a pretty easy mistake to make, and that while (slightly) embarrassing, its a good learning moment.

It's also really awesome that you're here, and that you guys were so honest about the nature of the bug - this is really something that should be encouraged.

<comment><USER12> Maybe we should start a blog about all of the interesting bugs and challenges we encounter. It certainly is white-knuckle pretty often when running at scale. The number of devices, connections, features... I'm aging prematurely :P

<comment><USER14> A few articles would definitely be appreciated. Might even help with recruiting fresh blood.

</comment></comment></comment></comment><comment><USER15> "This was obviously an unforeseen bug that was nearly impossible to anticipate..."

Snarky... Except that there were probably years of games to notice that you were approaching a "magic number" like 2^31.

<comment><USER16> I actually read that quote as fully sarcastic.

<comment><USER17> As expected, sarcasm always translates correctly into textual form.

<comment><USER18> It's weird that you say that, because I always felt sarcasm didn't translate well to text.

<comment><USER19> I think it was sarcasm

<comment><USER20> Sarcasm is recursive.

<comment><USER21> Yours is the first comment in this chain that I can say pretty confidently isn't sarcasm. So it kind of breaks the chain, making the sarcasm in this chain non-recursive. Which means maybe you were being sarcastic after all? Actually I don't even know if my own comment is sarcasm or not.

<comment><USER20> Your comment comes across as sincere. Mine was sincere, but an overstatement. I should have said that sarcasm tends to be recursive, until broken by sincerity. Anyway, here's my take on the chain:

SomeHacker44 -- sincere

CGamesPlay -- sincere

blktiger -- sarcastic

i_cant_speel -- mildly sarcastic

jazoom -- sincere

<comment><USER22> Yes because what we have always known about sarcasm and what this thread is a perfect example of is how you can define something as sarcastic/not sarcastic just by how it subjectively "comes across".

<comment><USER20> Yes, you can guess. But assessment depends strongly on context. And Pow's Law still applies. People can write messages that seem sincere, and then later claim sarcasm. As in "I was only joking". Or people can write sincerely, but come across as sarcastic, or _vice versa_ , and yet be ambiguous enough that readers can't tell. That's where the /s flag help. Done intentionally, such ambiguous messages can probe the reader's state of mind. Or set traps.

But maybe you're just being sarcastic ;)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> I recently experienced a nasty bug with BLOB in MySQL. The software vendor was storing a giant json which contained the entire config in a single cell. It ran fine for months, and then when it was restarted it totally broke. Reason was: the json had been truncated the entire time in the database, so it was gone forever. It was only working because it used the config stored in memory on the local system. Nasty!

<comment><USER9> For those, like my, that didn't recall off the top of their heads: BLOB in MySQL can usually only hold ~64KB.

EDIT: Though I am curious why MySQL doesn't throw an error when you try to store more than 64KB in BLOB?

<comment><USER24> Huh, I thought BLOB was a backronym for Binary _Large_ OBject, not Binary Medium Object.

<comment><USER25> There are LONGBLOB, TINYBLOB, etc just like the equivalent TEXT fields

</comment></comment></comment></comment><comment><USER26> This problem is more related to a programming underestimation than the actual limitations of a 32bit CPU (which can happily process numbers or IDs that arbitrarily big if you have the memory for it and program it correctly).

That said, this is definitely indicative of what's going to happen in just 20 years, 6 months and 20 days from now. I mean, we're still cranking out 32bit CPUs in the billions, running more and more devices, and devs still aren't thinking beyond a few years out. I know of code that I wrote 12 years ago still happily cranking away in production, and there may be some I wrote even longer than that out there... and I guarantee I hadn't given two thoughts about the year 2038 problem back then, and I doubt many devs are giving it much thought today.

It's truly going to be chaos.

<comment><USER27> The sad part is people are going to look at the lack of a year 2000 event and assume 2038 is going to be a "dud", when they fail to see all the damn work that went into making sure Y2K was a dud including a significant portion of IT hours and probably a lot of extra support laid in.

I expect 2038 to be a rare hell because of the nature of the devices. Y2K was an IT problem, but 2038 will be an embedded system problem and that's going to be a much more painful thing to audit. Moving from the server room to inside equipment and walls is going to be fun.

</comment></comment><comment><USER28> Long long time ago, I created a poll on a small website I was maintaining. I didn't expect much traffic and, so, not thinking too much about it, I put the ID column to be a TINYINT (i.e. max value = 255)...

That was a valuable lesson.

(I actually generated most entries myself while testing stuff - live in prod of course - and while there were probably fewer than 255 votes, the AUTO_INCREMENT did its job and produced an overflow).

<comment><USER29> > "Long long time ago"

Seems you have learned your lesson :-)

</comment></comment><comment><USER30> Reminds me of the havoc that was caused when Twitter tweet IDs rolled over. Resulting in every third party developer to update their apps (and at the time there were a lot of those).

Twitter saw it coming and forced the issue. By saying that at a certain date and time they would manually jump the ID numbers rather than wait for it to happen at some unpredictable time.

<comment><USER31> They didn't roll over, they exceeded 2^53-1 which is the max Number which doesn't truncate when treated as an integer in js. The solution was to treat it as a string.

(Or we're thinking of different events, I apologize if so)

<comment><USER32> Twitter must have been misleading when they communicated the reasons for this change since they did _not_ exceed 2^53-1, nor do they expect to exceed this in the near future.

From a (former) Twitter dev:

> Given the current allocation rate, they'll probably never overflow > Javascript's precision nor get anywhere near the 64-bit integer space.

[https://twittercommunity.com/t/discussion-for-moving- to-64-b...](https://twittercommunity.com/t/discussion-for-moving-to-64-bit- twitter-user-ids/9890/2)

<comment><USER31> Your link discusses 2^64, which applies to languages that have native integer types.

The 2^53 problem was for Javascript, which has no native integer type, and is thus limited by the mantissa size of Number (which is defined as an IEEE double-precision float).

Twitter ids are unsigned 64-bit, since they're generated using Snowflake. That link must pre-date the move to snowflake ids, and is speaking to the count of tweets instead.

<comment><USER33> I'd be incredibly surprised if they overflowed 9 quadrillion tweets. That's like a million tweets per person on earth.

<comment><USER31> Haha, sorry, that thought was in reference to the link saying they hadn't overflowed 2^31 yet. Two billion seems believable for tweets as of 2013.

</comment></comment></comment></comment></comment></comment><comment><USER34> This reminds me YouTube changed its view counter from 32-bit integers to 64-bit integers due to the popularity of 'Gangnam style' [https://www.wired.com/2014/12/gangnam-style-youtube- math/](https://www.wired.com/2014/12/gangnam-style-youtube-math/)

<comment><USER35> That was a joke; it was always a 64-bit integer.

<comment><USER36> WHAT?

<comment><USER37> It was a joke, it was always a 64-bit integer.

<comment><USER36> I really want this not be a joke :(

</comment></comment></comment></comment></comment><comment><USER38> Do we know when chess.com launched? If so, we can calculate the average number of games being played per second.

<comment><USER39> Wikipedia says "June 2007", which I'll approximate to 10 years. That gives us 6.8 games per second.

</comment></comment><comment><USER40> were they ever expecting negative number of games? why signed integer?

<comment><USER41> Because signed is default for some reason in most languages, and most developers aren't taught to think critically about how decisions like simple datatypes might affect scalability.

<comment><USER42> The problem is momentum. I could use unsigned int everywhere, but then I have to constantly typecast to int and back anywhere I use a library expecting signed ints. If we all switched to unsigned int by default, then everything would make more sense but we'll all live in typecasting hell during the migration.

<comment><USER43> Unsigned by default doesn't make more sense than signed by default. The behavior near 0 is surprising; if you underflow you either get a huge value (anything not Swift) or you crash (Swift).

It was a mistake to use them for sizes in C++. Google code style requires using int64 to count sizes instead of uint32 for good reasons.

</comment></comment></comment></comment><comment><USER44> How many other examples like this have occurred throughout computing history?

<comment><USER45> IIRC the whole "Gandhi is gonna nuke the rest of the world" meme came from such a bug occuring in the world-domination strategy game Civilization 2.

<comment><USER46> They had meant to give him the lowest aggression rating possible, but accidentally inputted -1, which then looped back the other way to the highest rating possible. Nukes soon followed.

<comment><USER47> Was it exactly that? I remember it being that you had to create a senate or something (that decreased character aggression by 2 points). Gandhi started with 1, so if you did it with Gandhi, then it'd underflow to the highest possible aggression.

</comment></comment></comment></comment><comment><USER12> Fun to read some of other stories where this bit them too (PacMan, WoW, and eBay)! Anyway, new app has been approved by Apple and should be rolling out soooooooooon....

Thanks for all the comments! Always lots to learn from.

</comment><comment><USER48> So they probably just need to use longs instead of ints. But I'm curious, if you were really stuck with a 32-bit limit on data types, what's your preferred workaround? I'm thinking I'd add another field that represents a partition. Are there other "tricks"?

<comment><USER49> If you could only use 32-bit data types, you can get 64-bits from using 2 integers together like a long number. So the right integer would hit the max, start over at 0, and increment the left integer. Then, using this idea you can create a class of numbers that can have however many bits you want by using more ints.

<comment><USER48> Cool, yeah, that's what I meant by partitioning, which I guess is more of a database term.

</comment></comment></comment><comment><USER50> eBay (almost) had this problem and I cannot find any articles about it online. They were rapidly approaching 2^31-1 auctions. So they switched to a larger integer, the switchover went badly, and they were mostly down for 4 days, if my memory serves. This would be like 10+ years ago I think.

</comment><comment><USER51> A lot of comments but no one said the great time that we are living for chess. So many games online, ready to be analysed and learn from them. After deep blue people thought that it was the end of chess, but it´s only getting better. Computers helping players to improve.

Chess.com is a great site, also lichess.org and chessable.com if you like chess you should check them.

</comment><comment><USER52> That's the most successful reason for failure.

</comment><comment><USER53> The title is probably wrong, off by one.

You probably mean 2^31 -1.

<comment><USER54> Help me, Off-By-One Kenobi! You're one of my two last hopes!

</comment></comment><comment><USER55> These are always the best problems to have

</comment><comment><USER56> The other one to watch out for is the 53-bit javascript integer limit. That caused the twitpocalypse when Twitter tweet IDs hit it. They had to switch to strings in the JSON representation.

<comment><USER32> The 2009 Twitpocalypse concerned overflow of 31-bit precision. Twitter has not yet hit 53-bits for raw number of Tweets, in fact, they passed 32-bits in 2014 and might not have reached 33-bits, yet.

Moving to strings for Javascript was really just safety planning for the future since:

> Given the current allocation rate, they'll probably never overflow > Javascript's precision nor get anywhere near the 64-bit integer space.

[https://twittercommunity.com/t/discussion-for-moving- to-64-b...](https://twittercommunity.com/t/discussion-for-moving-to-64-bit- twitter-user-ids/9890/2)

<comment><USER56> That discussion is about user IDs, not tweet IDs.

Tweet ID from today: 875423039323688960

Number of bits of precision necessary to represent it exactly: 60

Overflowed 53-bit precision long long ago. You can read about it here: [https://dev.twitter.com/overview/api/twitter-ids-json-and- sn...](https://dev.twitter.com/overview/api/twitter-ids-json-and-snowflake)

</comment></comment></comment><comment><USER57> And I was just reading Heroku/Django discussing the same issue this morning!

[https://groups.google.com/forum/m/#!topic/django- developers/...](https://groups.google.com/forum/m/#!topic/django- developers/imBJwRrtJkk)

</comment><comment><USER58> Issues like this are not uncommon on Chess.com. I've been playing there since 2008 or 2009. If you read recent comments about issues as they pertain to the recent "v3" release ... as much is to be expected.

</comment><comment><USER59> > For f sake how are we supposed to Anderstand that. I suppose your French fry > maker is broken ?

Didn't expect Chess.com and YouTube to have a crossover of users? Surprised there isn't active moderation on a site this size.

<comment><USER60> In my experience the chat on chess.com harbors a similar demographic to that of most video games. You'd think that chess would attract a more mature player base, but nope.

<comment><USER61> The only time I've observed people in real life acting like people in video games is at a chess tournament. Constantly trash-talking until they lose, then accusations of cheating. You certainly don't see this type at all (or most) chess events; I think the lack of entry free drew them out into the open.

<comment><USER62> At my local library the loudest people aren't those on their phones or laptops, but the chess players. It really surprised me considering chess can be played completely non-verbally other than calling "check". Every time I'm there, they constantly argue (most of the time it's because someone wants to take back a move), trash talk to get on each others nerves, yell across the table to other players in games, and talk loudly as if they were in a park. On one hand I think it's great that the library provides a community space and lets people use their chess sets, but on the other hand as someone who goes there for quiet, it's very irritating. (I wish they had a game room or something where they could go wild) Once upon a time libraries had mythical status as a place of silence, to the point where people would shush each other for the smallest noises... I actually stopped going to that library because of noise issues and in general because of its size and limited seating.

</comment></comment></comment></comment><comment> yoz-y What would be the best way to test for this kind of issues in advance. Testing at theoretical limits at all endpoints?

<comment><USER63> I'm not sure this falls under testing. If you start with an empty database each time you start the test you may never hit this issue.

I think this is more of a capacity planning issue.

<comment> yoz-y My concern is that even if one plans for a sufficient capacity, there still needs to be testing done to verify that the code actually works if the capacity is nearing the theoretical limit. In this example the database id was transformed into a 32 bit integer somewhere in the application code.

Usually when I hit some sort of unexpected bug in production I try to think about what type of testing will prevent similar problems in the future.

</comment></comment></comment><comment><USER64> Will the Lichess app and platform have this issue? And if not, why not?

<comment><USER65> Looks like lichess is using strings for IDs so they will not have this issue

[https://github.com/ornicar/lila/blob/master/app/controllers/...](https://github.com/ornicar/lila/blob/master/app/controllers/Game.scala)

</comment></comment><comment><USER66> > an unforeseen bug that was nearly impossible to anticipate

Hmmm... :)

</comment><comment><USER67> Real world example of why Apple is killing 32 bit apps on iOS.

<comment><USER68> This has nothing to do with CPU architecture.

<comment><USER69> "The reason that some iOS devices are unable to connect to live chess games is because of a limit in 32bit devices which cannot handle gameIDs above 2,147,483,647."

<comment><USER70> That is a combination of code and architecture, not architecture alone.

</comment></comment></comment></comment><comment><USER71> "Obviously unforeseen.. impossible to predict." Really? You don't know how to properly store ID numbers?

IMPOSSIBLE to predict.

<comment><USER72> That's clearly sarcasm.</comment></comment>


Breaking Signature Verification in Pass (Simple Password Store) (CVE-2018-12356) - <AUTHOR> https://neopg.io/blog/pass-signature-spoof/ <comment><AUTHOR> The project's response is here:

[https://lists.zx2c4.com/pipermail/password- store/2018-June/0...](https://lists.zx2c4.com/pipermail/password- store/2018-June/003308.html)</comment>


Ask HN: What'd you do with an extremely short domain-name? - <AUTHOR> i got my hands on an extremely short domain name, like t.co, j.mp etc.  A quick solution is to deploy a URL shortening service or resell it for a much higher price.
What else would you do with it? Commercial or otherwise. <comment><USER2> Sell it if not a URL shortner service.</comment>


Ask HN: Is there an industry preferred HIPAA compliance certification? - <AUTHOR> Hi HN, I run an Australian digital therapeutics company launching in the US. Basically, being HIPAA compliant is easy enough these days but the trouble is demonstrating this to clients (health payers in particular). Although you don't need certification to be compliant, I wonder if there is a preferred non-official certification that insurers and the like consider highly and would help to make their due diligence of our program more efficient. Any help appreciated! <comment><USER2> When you actually get into contracts with these large cos, they may ask if you are HITRUST audited ( _very_ expensive). If only that were sufficient. Then they will still insist on sending you their 50 page checklist (draw, label, and explain how your NIDS works...) and finally they will want to have a review call (and likely followup calls).

More recently they will ALSO require you (not just your hosting provider, eg AWS) are SOC2 compliant even though there is 99.9% overlap across requirements. Why? Cuz someone in legal now requires that for all vendor contracts.

Efficiency is not their goal. Weeding out small players without the stamina and capital to survive a 36 month sales cycle is their goal.

<comment><AUTHOR> Wow that's really helpful to know. Thanks!

</comment></comment><comment><USER3> HITRUST certification</comment>


Ask HN: Analysis on possible financial crisis for '17? - <AUTHOR> Just had some _interesting_ conversation with my barber today and she was telling how quite a few bankers were telling her that "be prepared for 2017". Not really into gossips and speculations, but if somebody has some links to articles/books or interviews by respected sources/analysts, it would be great if you could share it here.<p>Cheers. <comment><USER2> We have been out of recession (in the USA) since '08, which historically is a long time.

Furthermore, we are at full employment, with unemployment at 4.7%.

So we certainly could see the end of this business cycle soon. That alone is not a cause for concern, but I am worried about the general lack of ammunition available to central banks in the eventurbine they need to stimulate the economy.

<comment><USER3> Economic expansions don't die of old age. The current one is long for the US, but not for many other countries.

That being said, it is a problem that the Fed can't cut interest rates any more, and Congress is vehemently opposed to any fiscal stimulus. I believe our only hope is "helicopter money," ie a UBI executed by the Fed. If the Fed gave out $2000 to everyone (or maybe just the bottom 20% of the income bracket), that could work. It would significantly help the most vulnerable and wouldn't just drive up prices on financial assets. I really think the Fed should start setting up the infrastructure for this now.

<comment><USER4> Tax the wealthy to provide subsidies for the poor, what do you think this is Switzerland? We will probably see more tax cuts for the upper quintile and some yelling about how, eventually, one day, it's all going to come trickling down.

</comment></comment></comment><comment><USER5> Have a look: [http://www.zerohedge.com/news/2016-06-06/morgan-stanleys- dou...](http://www.zerohedge.com/news/2016-06-06/morgan-stanleys-dour- sp500-outlook-5-possible-upside-vs-27-downside) and: [http://www.zerohedge.com/news/2016-06-04/when-will- recession...](http://www.zerohedge.com/news/2016-06-04/when-will-recession- start-deutsche-banks-disturbing-answer)

</comment><comment><USER6> I highly doubt that this kind of information hits public sources before the said phenomenon actually starts to occur. I mean Ron Paulson wouldn't have made $15 billion shorting real estate, if everyone in 2007 knew about the then impending housing crisis.

That said, the debt to GDP ratio of most developed countries is at some of the highest levels ever seen. That could be an issue but am not sure if it's big enough to cause a recession.

</comment><comment><USER7> From casual observation of life, I've noticed an economic recession happens about once every 10-ish years, so the next one should come by 2020. I've been saving quite a bit, so I can buy everything when everyone else is panicking, if my job is reasonably secure.</comment>


BlueStacks And AMD Team-Up To Bring 500,000 Android Apps To Windows 8 - simba-hiiipower http://www.wired.com/gadgetlab/2012/09/bluestacks-amd-android-apps-windows8

<comment><AUTHOR> Awesome. So now developers don't even have to bother with making Windows 8 apps. They can just make Android apps and reach a big portion of PC's, too.</comment>


Learning to Code: The Roadmap I Wish I Had Been Given - <AUTHOR> http://jimmy-li.net/blog/?p=62 <comment><USER3> When someone says "I learned how to ride a bike over the weekend", the response is never "I don't see you doing tricks in a half-pipe, so you really only 'learned how to pedal down the street'. Don't call that learning how to ride a bike."

If "knowing how to code" means that you've built webapps, databases, embedded systems, mobile apps, operating systems, console games, and a compiler and mastered 19 programming languages, then very, very few people in world are coders.

Hacker News, stop being pedantic downers, and instead applaud someone for picking up a new skill in life (and trying to help others learn as well).

<comment><USER4> I think that depending on one's perspective, one might consider this more analogous to claiming to ride a bike, but as it transpires, you only learned how to ride a bike with training wheels. You can write the analogy however you like to make it suit the point you're trying to make.

I don't think it's unreasonable for folks to suggest that "Build web apps" is maybe a more apt title than "code" for what's described here. It would not harm this well-intentioned and well-executed article to do so.

</comment></comment><comment><USER5> "Learning to Develop Websites" would be a more apt title. Beating a dead horse, coding is more than just learning JavaScript and Rails.

<comment><USER6> Agreed, but you have to start somewhere. I think one of the things that turns lots of people off from CS education, and programming in general, is how long it takes to get from just starting out to making something cool.

<comment><USER5> Of course, of course. All I know how to do is web development (besides some Mathematica for research and dicking-around). This isn't like I am standing on top of an intellectual mountain, shouting down at the ignorant masses gathered below, "Stop worshiping your false golden Rails idols".

If I could add a stage though, it would probably be something like "Cluster 5: Why does my website suck?" Sure it's there, it's up on the WWW, but a website made from someone at Cluster 4 isn't something that is going to make you money.

Cluster 5 is when all the CS comes in. You have to learn about algorithms and data structures and regular expressions and what is actually going on behind the scenes. Yes, you can make a website that does the basic simple "of course, here's an exhaustive search" solution to the given problem. But can you make it fast? Or beautiful? Or, heaven forbid, intuitive? Can you fix it after you try and fail to make it the above three? That's the stage that never ends, the one that doesn't take a week of hunkering down with a textbook to get through.

Cluster 5 is the stage that CS education tries to start everybody at without any prior experience. It works for the imaginative people who can make the leaps about why this matters, but for most it just leaves everyone behind. With web programming, you actually have motivation to learn these weird things about patterns of electrons.

Because, honestly, who wants to make websites that suck?

<comment><AUTHOR> I agree with this entirely, and I fully understand that web development represents a tiny slice of coding generally and that what I've presented is a tiny fraction of what you need to learn to be a good web developer.

I plan to edit the post a little to reflect what people have said. Hope the title wasn't too misleading.

</comment></comment></comment></comment><comment><USER7> Finally, a "learning to code" article that actually mentions version control and its importance.

Of course it's an extra thing to learn when all a beginner wants to do is get something cool (often a website or game) working quickly. But what happens when that beginner wants to experiment? "Fail fast" is meaningless if those fast failures irreparably break that simple, cool website or game that used to work. Fail fast means the ability to reset (or even revert) or stash or branch and _keep moving_.

</comment><comment><USER8> [http://webcache.googleusercontent.com/search?q=cache:kdVysoZ...](http://webcache.googleusercontent.com/search?q=cache:kdVysoZ_6XAJ:jimmy- li.net/blog/%3Fp%3D62+&cd=1&hl=en&ct=clnk&gl=us)

<comment><AUTHOR> Site's back up. <http://jimmy-li.net/blog/?p=62>

<comment><USER9> Down for me still.

<comment><USER10> still down

<comment><USER11> Dear Jimmy Li: please up your bandwidth quota.

<comment><AUTHOR> Will do. In the meantime, it's back up.

</comment></comment></comment></comment></comment></comment><comment><USER12> I agree that the title should be "Learning to develop web applications".

"Web Application Development" is only a subset of "Application Development" which is again only a subset of "Coding/Programming".

There are many kinds of application development - web application development, desktop application development, mobile application development, embedded application development, games development etc. So, web application is just the most popular kind of application development.

Also not all coding is done to develop applications. There is difference between a program and an application. Sometimes people code to write utility programs, e.g. shell scripts which isn't application.

I believe undergraduate courses should be designed to provide solid fundamental knowledge of computer science and how various fields of computer science relate to each other while postgraduate programs should provide specialized education.

<comment><AUTHOR> Yeah, you're definitely right. I chose to include "coding" over "web development" in the title only for concision/aesthetic purposes. Thanks for clearing this up for other people. Hope it wasn't too misleading.

<comment><USER13> Great article man. From a newbie, thank you.

</comment></comment></comment><comment><USER14> There are better places than w3schools to learn HTML and CSS. See <http://w3fools.com/>.

<comment><USER15> W3fools is nothing but a jab at w3schools, and most certainly not a place for a beginner to start learning css and html.

<comment><USER16> Where would you recommend?

<comment><USER17> For most web technologies, this is a decent source: <https://developer.mozilla.org/>

For JavaScript: <http://eloquentjavascript.net/>

For HTML/CSS specifically, use Chrome or Firefox's Inspect Element to take a look at web pages. It's especially instructive to examine things like 1kb grid, where the CSS itself is designed: <http://1kbgrid.com/>

<comment><USER16> Thank you so much!

</comment></comment></comment></comment></comment><comment><USER18> I studied programming in college...and while I liked the assembly-code + controller projects, I wish there was more focus on web development...because the one thing that has gotten me excited about programming is the potential to share (i.e. brag) about my work.

Making clever paint/tic-tac-toe/sudoku programs in Java/C++ are good exercises...but I lost interest in programming when I couldn't see it being used for more day-to-day practical tasks.

One specific topic I wish had been taught was regular expressions. In my first year of comsci classes, regexes were in the optional chapters of the book. Knowing about them would've led me to do more data-processing/information- gathering type programming, which is the track I am on now.

Plus, they're just damn plain useful in every coding context, even for project code-search-and-replace.

<comment><USER19> It was my understanding that most CS programs include a course covering formal languages and grammars. At my school it was called (creatively) Theoretical Computer Science.

Learning to break apart a regex and rebuild it as a state machine is where the real magic happens.

<comment><USER20> Any decent CS program should contain such a course, sure, but it is probably not in the required curriculum, and it's probably not taken by very many students.

As for names, at SFU (my alma mater) it's called "Formal Languages and Automata". Well, actually, there are actually about half a dozen courses covering parts of this material, but that's the most-perfect match for what you described.

</comment></comment></comment><comment><USER21> Google cache copy:

[http://webcache.googleusercontent.com/search?q=cache:kdVysoZ...](http://webcache.googleusercontent.com/search?q=cache:kdVysoZ_6XAJ:jimmy- li.net/blog/%3Fp%3D62+http://jimmy- li.net/blog/%3Fp%3D62&cd=1&hl=en&ct=clnk&gl=us)

</comment><comment><USER22> I actually do think the web is a good place to start, especially with a backend in python or ruby. You get to quickly see the results of what your doing, which will spur you to learn more.

I definitely do not think that books, tutorials or classes are the way to learn programming at first. The thrill of discovering the concept of recursion on my own really hooked me onto coding. I remember googling "a function calling itself" semi-hoping that no one else knew about this yet...

I did Neuroscience and BME undergrad, so I only had taken the 1 required class of Java (which I couldn't stand at the time, it was just too messy). I'm glad I didn't take more CS in college, it might have turned me off for good. Yes, once you get to where your fluent, I think classes (or books if your self- motivated) in algorithms, data structures and other hard CS are essential. But to get to that point, think of a creative project and try to build it, you'll really fall in love with the language you use, and you'll understand the real reason why people program: because it makes you feel like god.

</comment><comment><USER23> Great post and a lot of useful information. Particularly relevant for me as I'm a noob starting out on my first project, much like described in the post.

I've followed a very similar roadmap in learning bits of html/css (highly recommend the Head First book), javascript, version control, ruby and doing Hartl's, 'Rails Tutorial'.

I didn't get a job at Pivotal Labs in SF like the author (which I'm guessing would be a pretty awesome learning environment) but I've managed to convince the 'Pivotal Labs' of the Philippines to take me in & provide mentorship ;) If anyone is interested I've just started keeping a log of each step along the way at <http://www.ralphy.tumblr.com>. (Will update with more posts soon).

So far, it's been tough and I'm realizing how little I know in the whole spectrum of Rails, let alone web development. Having said that I'm already building stuff on the web I can actually see and show my friends, which is kinda awesome.

</comment><comment> why-el I am following exactly what this guy says, but it took me a long time, over three years, to finally settle on whats important for this kind of career. I revisited C so that I can keep up with git code and learn from it; I bought a Rails book,and I am trying, although very slowly, to do anything that comes to my mind in Ruby. This is not about Rails, its about a healthy shortcut. I was not lucky enough to read something like this sooner. This is excellent advice, and I commend him for saying it.

</comment><comment><USER24> I have always wondered how much of CS coding knowledge applies to web apps and how necessary it is to take some of the killer math courses offered in university to be able to code web apps proficiently. And if there is that big of a difference between coding and web apps, then shouldn't universities and students be better off learning how to code web apps since they seem to be in dominant usage anyway?

Btw, I am not a technical person, hence the curiosity. Insights would be much appreciated.

<comment><USER24> Thanks for the all the replies below, they clarify quite a bit. Here is another question, how much of the "incredibly difficult" math actually comes in handy and serves real coding purposes other than honing your ability to think logically? Math can be incredibly conceptual at times and as someone who has a psychology background, I know that a person can be not very good at math due to inability to think conceptually, but can be very downright logical on matters that he can understand practically. what do you guys think?

<comment><USER25> While it depends on what you mean by "incredibly difficult", I would say that if you are doing any work with 3d modelling, it would be necessary to understand basic linear algebra. These concepts will transfer directly - <USER2> you are representing your model with points in 3-dimensional space, then displaying those points on a screen is a projection map, and can be described (and quickly calculated) with a matrix. This is a typical example.

Another common example would be a course in number theory. A common topic in number theory is public-key encryption, much more in-depth than is sometimes covered in other courses. In addition, the techniques that you learn in such a course can easily be applied to any "number-crunching" you would need to do. Here is an example:

Problem 1 from Project Euler (<http://projecteuler.net/problem=1>): Find the sum of all the multiples of 3 or 5 below 1000. A brute-force program for this is simple, but it is much faster if we first notice some patterns: (3 + 6 + 9 + ... + 999) = 3 * (1 + 2 + ... + 333). But then (1 + 2 + ... + 333) = 334 _333/2 (this would be easily recognized by someone who has taken a number theory class), and so the sum of all of the multiples of 3 below 1000 is 3_ 333 * 334 / 2. Similarly, for 5, there are 199 multiples, so the sum of all of these is 5 * 199 * 200 / 2. But then we must subtract the multiples of 15, since we double counted them: there are floor(1000/15) = 66, with sum 15 * 66 * 67 / 2. So the answer is (3 * 333 * 334 + 5 * 199 * 200 + 15 * 66 * 67)/2 = 299498.

That was a particularly trivial example - number theory will give you a lot more than some parlor tricks like the above. But this example took a loop through n numbers and reduced it to a single line of simple arithmetic. And for someone who understands number theory, this algorithm is as quick to think of as it is for a typical CS student to think of the brute-force algorithm.

I would also venture that a course or two in "Abstract Algebra" would be both beneficial and accessible to CS majors. This is less immediately practical than linear algebra in the above example, but closer in its style of thought to programming than, say, calculus, topology, or differential equations. The abstraction (which many math majors complain about) would be fairly straight forward for a CS major, I would think.

<comment><USER24> Thanks. Number theory sounds very interesting. I think I am going to pick up a book or a website on it ... really want to look into it.

</comment></comment></comment></comment><comment><USER26> I used the exact same approach, except I went with Django and DotCloud. I think Rails people have it even easier with better guides - and possibly documentation.

</comment><comment><USER27> great article! I wish I had read this when I first started coding. I am sending this to all my friends that are now asking how they can learn to build web apps.

</comment><comment><USER28> While I really like Heroku for the simplicity of use, you're not going to learn a bunch about how a web server actually works by using it.

<comment><USER29> Agreed, but learning web server admin is a pain.

I spent all of yesterday trying to upgrade ruby/rails on my linode for the first time. Kept running into errors and eventually decided to just start over with a clean Ubuntu install. That kind of demoralizing experience isn't a problem when starting with Heroku.

<comment><USER30> RubyGems and Linux (especially Debian / Ubuntu) are like oil and water.

Don't install Ruby libraries through apt-get, and also don't install them through RubyGems globally (i.e. never use "sudo" for installing gems).

Instead install gems for the local user only, with the help of RVM. Then to upgrade, if everything breaks, you can just delete your RVM directory and start from scratch again.

Of course, this brings with it a whole other can of worms, because then it's your responsibility for upgrading your libraries with the latest security- related fixes (which otherwise would have been updated with a simple "aptitude safe-upgrade", which can be a cronjob or something). But then you've got the same responsibility on Heroku.

See <http://beginrescueend.com/>

</comment></comment></comment><comment><USER31> As someone in the process of learning Rails myself I absolutely agree with your blog post. Especially your admonition to begin working on a project of your own much earlier than when you feel ready. That is the surest way to reinforce what you may be learning through a tutorial.

</comment><comment><AUTHOR> Apologies for the site's been down. It's back up now: [http://jimmy- li.net/blog/programming/how-to-get-started-in-w...](http://jimmy- li.net/blog/programming/how-to-get-started-in-web-development/).

</comment><comment><USER32> Sounds very interesting but I think the site is down. All I get is:

Forbidden

You don't have permission to access /blog/ on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

<comment><USER33> +1

</comment></comment><comment><USER34> I wouldn't exactly say web development and CS have no linkage though...

</comment><comment><USER35> The thing is... you probably also need rather high aptitude to make that much progress in 6 months. These blog posts never mention that cause the authors are too modest.

</comment><comment><USER36> Learn Javascript follow some tutorials on jquery ;)

Think it's funny most people see javascript is the same as jquery.

Learn to code is the same a learning a framework?

<comment><USER37> > Think it's funny most people see javascript is the same as jquery.

I don't think it is funny, it is rather sad.

> Learn to code is the same a learning a framework?

In this days of byzantine frameworks apparently yes.

<comment><USER17> JavaScript's a byzantine language on its own.

jQuery's a great choice for beginners learning to program for the first time. Two related frameworks, underscore and d3, both have jQuery-inspired APIs and use higher-order functions extensively. These frameworks teach lessons in functional programming that transfer easily to Python, Lisp, Haskell, and even mathematics.

</comment></comment></comment><comment><USER38> To bad the Roadmap didn't include being able to access your blog/article. I'm forbidden....

</comment><comment><USER13> Thank you.

</comment><comment><USER39> That is learning to build web applications. It is different to learning to code.

<comment><USER24> What are some of the main differences?

<comment><USER4> Well, consider all of the things that have to be in place for the web app to get from where it is served, to where you're reading it.

The web app itself is typically going to be running on a framework, written in another language - for example, a site might use Rails, which is written in Ruby.

This has to be served by a webserver - Apache is a popular choice - I think much of that is written in Java.

The webserver runs on a machine, which might be running, say, Linux, as its operating system. The Linux kernel is written in C.

Now the page has to be transmitted across the network - hopping across the globe from one router to the next. The hardware that does all this switching is in microchips, which are often designed in a language called Verilog. (This is my own little niche area)

The browser that you're using to view the page might be running on a laptop running Windows, which is largely written in C++.

There are countless other fields of "coding", too.

So to summarize, writing web apps is a subset of a vast and complex field of study - and to follow this roadmap (which is probably a good way to learn what the author wanted to learn) will not teach you anything about most of the other things one might want to code.

For what it's worth, in setting out on your journey to learn about programming (in the broader sense), I think you could do worse than to start with C and Scheme.

<comment><USER24> wow .. thanks. That's quite a summary on the mechanics of how it works.

Do you mean to say, it would be a bad idea to start with C coding?

<comment><USER4> No, I'm saying that knowing C and Scheme is a _great_ foundation for future computer scientists and engineers! They lay a solid foundation upon which much can be built.

But probably not a good place to start if, like the original author, you're mainly interested in developing web apps.</comment></comment></comment></comment></comment>


Three Individuals Charged for Alleged Roles in Twitter Hack - <AUTHOR> https://www.justice.gov/usao-ndca/pr/three-individuals-charged-alleged-roles-twitter-hack <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=24011939](https://news.ycombinator.com/item?id=24011939).

<comment><AUTHOR> How is this a dupe? The other link is late to the news and points to a TV website, while this one goes straight to the DOJ.

<comment><USER2> It's the same story. It doesn't make sense to have two threads about the same story on the front page at the same time. Not only does that split the discussion, it takes up an extra front page slot, and those are the scarcest resource on HN ([https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=by%3Adang%20scarce&sort=byDate&type=comment)).

The salient question is whether the two submissions would lead to substantially different threads. If not, then we treat them as dupes, even if they're different articles.

<comment><AUTHOR> I understand what a dupe is. What I don't understand is how my link, which was posted several hours before the other one, was considered a dupe.

You say both tell the same story. Then, in that case, the other link should be the dupe.</comment></comment></comment></comment>


Cosmonaut Crashed Into Earth 'Crying In Rage' - <AUTHOR> http://www.npr.org/blogs/krulwich/2011/03/18/134597833/cosmonaut-crashed-into-earth-crying-in-rage?sc=tw&cc=share

<comment><USER2> Dup: <http://news.ycombinator.com/item?id=2342677>

<comment><USER3> Which is also a Dup, but didn't show up in SearchYC (still doesn't). After someone pointed out it was a Dup I deleted it, but it had already reached the top spot and PG resurrected it and asked why it was deleted. Was Dup detector running and missed it too? Does it run off SearchYC?

<comment><USER2> I'm no longer running DupDetector - I just remembered seeing your submission, and hence recognised this as a Dup. I found yours via SearchYC.

DupDetector never did use SearchYC, it was independent, but when I remember seeing something I check there first. If it's not there, but I'm sure I've seen it, then I check the snapshots I have to see if it turns up there. That's much harder, though.</comment></comment></comment>


Obama Has Gotten 3,000+ Tweets about Encryption. Let's Double That - <AUTHOR> https://www.eff.org/deeplinks/2016/03/obama-has-gotten-3000-tweets-about-encryption-lets-double <comment><USER2> Rather than sending a message to a president who no longer has any elections left and has less than a year in office, wouldn't it make more sense to look up your legislators[1] and write letters to them?

1/3rd of US senators and all representatives have an election coming up. They care more about voters than they do about Apple's $38 Billion[2] in liquid assets, so they need to be convinced that votes are on the side of sound security.

[1] [http://openstates.org/find_your_legislator/](http://openstates.org/find_your_legislator/)

[2] [https://ycharts.com/companies/AAPL/cash_on_hand](https://ycharts.com/companies/AAPL/cash_on_hand)

<comment><USER3> I don't think writing letters to senators do anything. High level elected politicians will likely have access to some kind of political consulting firm that looks at contentious districts or groups with strong get-out-to-vote organization in places that matter. Letters aren't going to fool a political consulting firm into thinking the needle of district opinion has moved somewhere.

Perhaps the software workers of America should consider organizing a professional association, just like the AMA? It would have all sorts of benefits beyond organizing political action.

<comment><USER4> Informing your representatives of issues you care about definitely makes a difference. They have jobs because people vote for them. If a vocal group feels strongly about one issue, and they campaign for that, the representative needs to pay attention or they risk losing their job.

Don't assume that someone else will represent you via a petition. Calling or writing yourself is much more powerful.

<comment><USER3> I believe you have under-clashed with argument, as if I didn't respond head-on to that point already.

(1) If your district isn't contentious, that means the sum of factors aren't of sufficient effect size to care about that specific district. With limited funds, you concentrate elsewhere.

(2) Just because there's noise doesn't mean that people's opinions have changed. You're assuming that people's opinions have not already been modeled. Some elected official may suddenly get a flood of emails about gun rights in proximity to some highly publicized event on gun laws. That does not mean that the distribution or magnitude of opinions have substantively changed.

(3) Some groups do have negotiating power because they're aware of the political calculus more intimately than the average noise-making group like Black Lives Matter. They're able to distribute distilled information to their members and organize effective get-out-to-vote drives in the districts that matter (meaning they also do not wantonly spend their finite resources).

If you don't organize, then you are noise. Organizing is more important than voting (or writing a letter) itself, because part of organizing is dealing with finite resources through the skillful attending to the places that matter, and skillful neglect of the places that don't matter, implying that you can actually deliver on a get-out-to-vote drive when the time (and places) matters.

<comment><USER4> Hmm. First off, you do not really know if senators read letters or pay attention to phone calls or blog posts or not.

Second, my feeling is if someone sits down to think about an issue, writes a letter and stamps their name on it, then they probably become more informed and involved in discussion than another guy who just ticks a box on a petition. This informed person can go on to discuss the issue with friends or form his/her own local group. So, writing letters to senators _is_ useful, even if it is just a first step or means to an end.

Nobody needs to change their opinion as a result of my letter. I wouldn't respect them if they did so without consideration. So (2) is irrelevant.

I didn't intend to clash with you, I'm just stating my opinion which is a bit different than yours. It's perfectly fine if you want to say writing letters is useless. I feel differently.

If you sit back and assume your district is already modeled, etc etc, then you are not participating in democracy and you have not seen for yourself who else out there might agree with you. The most important things about democracy are your vote _and_ your voice. One without the other holds much less strength.

</comment></comment></comment></comment></comment><comment><USER5> Tweets, schmeets. He can ignore 'em all the doo-dah day. Send him a letter.

<comment><USER6> After you do that you can also leave a message at White House comment line, 202-456-1111.

</comment></comment><comment><USER7> I don't encrypt because I have something to hide. I encrypt because I don't want anyone to tell me I can't hide anything.

<comment><USER8> Me too. Also, I have terribly embarrassing secrets.

</comment></comment><comment><USER4> The EFF is fighting the fight we all should be fighting.

In my opinion their letters are too forceful and not understanding of how difficult it is to enforce the law and bring justice to victims. For example, they write

> We call on the Obama Administration to heed the advice of neutral security > experts, engineers, and even his own advisors who have affirmed the dangers > inherent in the order issued to Apple

There's no need for Obama to change his mind here simply because experts say so. In fact, if properly explained, he could understand himself that software is ungovernable. Encryption technology is just words on paper.

Print out an encryption program and send it to your representatives. Let them see how anyone can create it for free. Let's educate our representatives. Enough with this idea that they need to be beaten over the head with a stick. They believe they are doing the job protecting public safety and the constitution. Once you give them that benefit of the doubt, then we will be able to move forward.

<comment><USER9> He doesn't need to "govern" all of software. He just wants to control the dominant platforms, so some percentage of law enforcement efforts can get a little traction there. The fact that a percentage of criminals will use encryption anyway is unavoidable they're not trying to stop that.

<comment><USER4> He has not said that, nor has any representative or DOJ official.

</comment></comment></comment><comment><USER4> By the way, the next meeting of the President's Council of Advisors on Science and Technology (PCAST) is on Friday, March 25, and will be shown live here [1]

You can submit questions to them at firstname.lastname@example.com . This might be another good place to direction questions about the President's understanding of encryption technology.

[1] [https://www.whitehouse.gov/administration/eop/ostp/pcast](https://www.whitehouse.gov/administration/eop/ostp/pcast)

</comment><comment><USER10> Ask HN: A very genuine question.

How do you propose we keep an eye on those who mean to physically harm others? How would you solve this?

<comment><USER11> Terrorism kills fewer people than almost every hazard Americans face. Cancer, auto accidents, drug resistant bacteria, and hundreds of other risks are how 99.5% of Americans will die. So, for the minuscule risk that terrorism presents we've spent billions, give up privacy and consider ever more extreme measures?

How about instead we instead acknowledge the risks are small to Americans, and refocus our attention, our lethal attention, to the clerics, organizations, bankers and states that sponsor terrorism.

Let's talk giving up civil liberties after we have run out of accountable parties to bring to justice.

</comment></comment><comment><USER12> How many of them has he read, though? And, how many of them does he need to read / receive to change his administration's posturing on this?

(My guess: 0 and ∞)

</comment><comment><USER13> Its interesting that such a vocal West Coast crowd votes for Obama, when in fact he has been one of the worst presidents in recent history on use of privacy and security.

Im curious to know why people still follow a person with such a horrible record on the constitution, when he studied in great detail.

<comment><USER14> With Obama's recent actions regarding privacy and encryption, I'm terribly glad I didn't go to work for the US Digital Service.

<comment><USER4> It's not like the President understands that encryption is ungovernable and is pursuing a fruitless path on purpose. He just doesn't get it.

We should be begging smart people to get in the White House and help relate the facts to him. The current CTO Megan Smith is there calling for more people to join. She says the discussion about encryption is "ongoing". She's obviously outnumbered. Tech does not have proper representation in the White House.

<comment><USER13> Stop giving the president just another excuse to give him another out.

He has plenty of smart people around him, yet he still insists on government over privacy.

<comment><USER4> It's not an excuse, he's a lousy guy for not giving tech staff his sincere attention. My point is, nobody has broken through to him yet. It's his fault, but that doesn't mean we should stop trying. We all bear the results of what he says publicly.

</comment></comment></comment></comment></comment><comment><USER15> Do you honestly think he's going to read any of them? I can't imagine him scrolling through his notifications feed, but hey, who knows what he does when he's sitting on the toilet :P

<comment><USER7> Doubtful he has that kind of time but he has staff who will. And if he has any integrity, he will at least take people's concerns into consideration.

<comment><USER16> > Doubtful he has that kind of time but he has staff who will. And if he has > any integrity, he will at least take people's concerns into consideration.

If he's not reading them himself (I agree with you that he probably isn't) he likely only hears what his staffers tell him, so he might not even be aware of some people's concerns.

</comment></comment></comment><comment><USER17> 3001!</comment>


Whats your python IDE? - <AUTHOR>

Share your python dev setup <comment><USER2> If you're looking for a full-featured IDE, I don't think you need to look any further than PyCharm, however, Sublime with it's PEP 8 Linter, and CodeIntel plugins will give you a lighter-weight yet effective solution.

You can even run your tests in Sublime's console if that's something you'd want to do, or use the terminal (as I ended up doing).

Similarly, for vim as people have pointed out, if that's something you're more comfortable with.

<comment><USER3> Sublime Text 3 is easy to use, provides core functionality needed for development, and is customizable.

[https://realpython.com/blog/python/setting-up-sublime- text-3...](https://realpython.com/blog/python/setting-up-sublime-text-3-for- full-stack-python-development/)

</comment></comment><comment><USER4> I've tried pretty much everything, and PyCharm has been the nicest, most productive set-up for me. It features a really nice integrated debugger, a test runner, dependency checking/management and really good code analysis/autocomplete/refactoring.

</comment><comment><USER5> just vim, [https://github.com/alfredodeza/khuno.vim](https://github.com/alfredodeza/khuno.vim) and [https://github.com/hynek/vim-python- pep8-indent](https://github.com/hynek/vim-python-pep8-indent)

<comment><AUTHOR> I tired vim, but I just find debugging so much easier on pycharm

<comment><USER5> And the reverse for me, its just the classic CLI vs GUI personal preference. Every time I touch the mouse in PyCharm, I cringe with the feeling of delay. Python since 2001 here, so there wasn't much GUI python until recently, perhaps I've fallen into a trap :)

Here is some video of myself programming some very boring stuff in python/vim, [https://www.livecoding.tv/jquast/](https://www.livecoding.tv/jquast/) which unfortunately looks like it requires anybody to login/signup to watch, probably won't be using this service again.

</comment></comment></comment><comment><USER6> WingIDE from Wingware is really nice</comment>


Will China's Economy Hit a Great Wall? - <AUTHOR> https://www.nytimes.com/2019/01/15/opinion/will-chinas-economy-hit-a-great-wall.html <comment><USER2> Endogenous growth theory, for which Paul Romer won a 2018 Nobel prize in economics, implies that long-term economic prosperity depends on the spread of knowledge and technological innovation in the economy. [1]

If these are the primary factors, then the closest analogues to China would be other East Asian economies like Japan and South Korea. These nations greatly value education, with top-tiered performance in international tests, and invest heavily in R&D.

An oft-repeated criticism that authoritarianism constrains scientific and technological creativity is still unproven and will be tested in the coming decades by China. [2]

[1] From Wikipedia: "Endogenous growth theory holds that economic growth is primarily the result of endogenous and not external forces.[1] Endogenous growth theory holds that investment in human capital, innovation, and knowledge are significant contributors to economic growth."

[https://www.nobelprize.org/prizes/economic- sciences/2018/pre...](https://www.nobelprize.org/prizes/economic- sciences/2018/press-release/) [https://en.m.wikipedia.org/wiki/Endogenous_growth_theory](https://en.m.wikipedia.org/wiki/Endogenous_growth_theory)

[2] How China could dominate science. [https://www.economist.com/leaders/2019/01/12/how-china- could...](https://www.economist.com/leaders/2019/01/12/how-china-could- dominate-science)

<comment><USER3> > Endogenous growth theory, ... implies that long-term economic prosperity > depends on the spread of knowledge and technological innovation

What if Moore's law wasn't really an exponential, but more of a step function over the past 50 years. What if it was a one-time fluke that greatly advanced society, but we're gearing up for a long haul of flat or linear growth?

It explains a lot, including why China is able to quickly catch up to the U.S. in tech. If U.S. tech was really growing exponentially, it would be impossible for China to gain ground even if it was growing at an equal exponential rate. It also explains why iPhone sales are down. It isn't because of lower consumer demand or market saturation, those are just symptoms of a larger problem. It's because the rate of innovation is slowing down.

We've relied on Moore's law of exponential growth for three generations, but it's sadly dying (if not dead). The ramifications will affect everything.

<comment><USER2> Catching up is usually faster than pushing the state of the art further.

I think the smartphone industry's slower growth is more the result of diminishing returns from the form factor than the cessation of Moore's law.

<comment><USER3> > Catching up is usually faster than pushing the state of the art further.

Not so for exponential growth. e^x will always be greater than e^(x-t).

<comment><USER2> The base for an economic growth model does not need to be _e_ and generally would not be the same for different economies. The base for catching up economies is usually higher than developed economies (say 1.2 vs 1.1).

In any case, a simple exponential equation is too simplistic for real economies.

</comment></comment></comment></comment></comment><comment><USER4> This is an perfect example of a news for the sake of news. The author twice points out that he could be wrong and that they can't really predict at all.

I guess if things do go south, he will be able to use this article to point out that he had predicted it and that he is a economic guru.

<comment><USER5> Honestly, all economic reporting should come with a small box showing the author making a bet on his own analysis. At least if he turns out to be wrong, you would know he was honest and really believed it and that he paid a price for his mistake.

</comment></comment><comment><USER6> As usual, Krugman has little to say and takes his time not saying it.

<comment><USER7> Krugman won a Nobel Memorial prize for studies on a fairly specific topic and since then, hasn't done much other than be a political pundit. At least he's kind of admitting to being wrong with his predictions concerning China.

</comment></comment><comment><USER8> The best thing said in the article is "Many people have been predicting a China crisis for a long time, and it has kept on not happening". Since China has a planned economy with a strong grip from the government, they could keep things going for a while. No planned economy has ever gotten so big

<comment><USER9> The state enterprise side of the economy is planned, but the private capitalist - sorry, communist with Chinese characteristics - sector accounts for 60% of GDP growth and half of fiscal revenue[0].

That strong grip does more harm than good IMHO. Just look at how appallingly badly they mismanaged their domestic stock markets over the last few years.

[0] [http://www.xinhuanet.com/english/2018-03/06/c_137020127.htm](http://www.xinhuanet.com/english/2018-03/06/c_137020127.htm)

</comment></comment><comment><USER10> Seemingly an empty article, as though the author had nothing else to write about.

<comment><USER11> He came up with a great title and then he thought the article should happen. Also he's paid to write.

</comment></comment><comment><USER12> >> _The case for crisis seems compelling – but I said that in 2011, too._

Just a matter of time son, you will be proven right one day. Just keep repeating it.

</comment><comment><USER13> I respect anyone who is willing to point out when they were wrong before.

In regard to China, I think that they (like the Soviet Union before them) were very good at playing catch-up, because command economies are very good at getting everybody on board to do the thing which everyone knows needs to be done. "Do this, or we will put you in prison or worse."

However, once you have (mostly) caught up, it becomes less obvious what the next thing to do is. Literal moonshot? Fiberoptic internet to every house in the nation? Particle accelerator that can hit energies never before reached? Every student gets a spot in a university?

Some of these might be good ideas, some might be boondoggles. It's hard to know, when you're nearing the front of the pack. The Soviet Union was great at playing catch-up until, sometime in the mid 60's, they were too close to the forefront to be able to clearly see what needed to be done next.

China's Communist Party is great at getting everyone to do what they have decided to do. I think it is going to be harder for them to figure out what an economy, of their size and relatively advanced state, should be doing next. If they guess wrong, it will be ugly.

<comment><USER14> I would agree that a developing economy can copy the best practices and latest technology from the leading economies to, relatively, quickly catch up.

You say that the USSR got close to the leading economies in the mid 60's. But that does not explain why they fell so far behind afterwards. How come they did not continue to be just behind for the succeeding decades?

<comment><USER9> The west had institutions and processes for developing new technologies and infrastructure and evolving or renewing and replacing them efficiently. What the USSR did was simply copy what the West had, but at the end of doing so instead of having their own institutions and processes for developing new technology and infrastructure, they had a broken cookie-cutter for an outdated version of an industrialized society the west was already moving beyond. They had no process for evolving it into the future, because they had no real process for getting there themselves in the first place.

It's not that they couldn't develop any new technology. They had, and still have centres of excellence and technology sectors they're very good at, just not enough across the whole economy.

This is why Russia is still such a backwater. It has never developed it's own internal marketplace for ideas, innovation, entrepreneur-ism and technical evolution. The Resource Curse and attendant corruption and political rent seeking has hit them hard. I believe that China has largely avoided this mistake.

<comment><USER15> Besides other problems that USSR had, like the pervasive corruption and the lack of incentives for taking initiative in almost anything, it's worth considering that it achieved economic development by large scale investments. That meant huge farms, huge factories, huge everything please! The good was the immediate results of the said investments thanks to the good (enough) efficiency as the economies of scale kicked in. The bad was in the costs required to keep those damn behemoths competitive as the world evolved! Factor in the fact that the _declared_ reason behind those huge investments was not economic efficiency but employment of people, and you get something that will have trouble in the long term keeping up with their counterparts in the capitalist world. That was short-term (political) capital seeking policy at its best! That however, mattered less because usually it was just about some bureaucrat's career bet for getting results fast, cashing out in time the political merits, and then exit by propelling himself to another position somewhere, a game played up to the highest levels (e.g. Leonid Brezhnev and Virgin Lands Campaign). The ending question is, does China differ in this regard?

</comment></comment></comment></comment><comment><USER16> Something very interesting about this comments section. For years now when HN had a link about problems with the Chinese economy, there would be number of comments from China defenders who would say no, things are fine and the government knows exactly what it is doing. I strongly suspected many of them were paid government trolls.

This time we are aren't getting any such comments. Instead we have gotten a number of attacks on Krugman, without saying anything specific about how his analysis is wrong.

I could be mistaken, but I am guessing that the troll minders see they can't make a real defense, so they are trying to just distract readers away from what Krugman had to say.

</comment><comment><USER17> The manufacturing economy is done. They're trying to re-invent themselves.

They may become the next Japan.

</comment><comment><USER18> [https://www.youtube.com/watch?v=cZ5dVBa3grw](https://www.youtube.com/watch?v=cZ5dVBa3grw). I don't know why anyone still reads or listens to this clown.

<comment><USER10> I think it's because he's a Nobel winner that agrees with the sympathies of the readers of the New York Times. This way the readers can think they're smart, since they can understand the writing of a Nobel, while not being challenged to actually have to think about something they may not agree with.

</comment></comment><comment><USER19> yes, obvi</comment>


Show HN: API Spec Converter – Convert between different API definition formats - <AUTHOR> http://lucybot.github.io/api-spec-converter/ <comment><USER2> Somewhat related, and I know this is so quixotic that it tips over into absurdity, but I somehow managed to register the jschema.org domain in 2011, and I've been working on an extremely simple schema format for JSON docs:

[http://jschema.org/](http://jschema.org/)

I've got some resources to dedicate to building some tools around this, and if anyone is interested in participating please ping me.

<comment><USER3> You and me both: [http://www.teleport-json.org/](http://www.teleport- json.org/) :)

</comment></comment><comment><USER4> It would be nice to have a "Demo"-button to be able to display it immediately. Could be only temporary available for 24h.

<comment><AUTHOR> Sorry, not sure I understand. Display what?</comment></comment>


PayPal video featuring Bitcoin - <AUTHOR> https://www.youtube.com/watch?v=pF7HxLCFMeY

<comment><AUTHOR> [http://blog.coinbase.com/post/96987622472/braintree- partners...](http://blog.coinbase.com/post/96987622472/braintree-partners- with-coinbase-to-accept-bitcoin)

</comment><comment><USER2> The worst promo video I've seen in a while! It's so annoying!

<comment><USER3> But diversity!

</comment></comment><comment><USER2> And it's not even PayPal proper, it's Braintree.</comment>


Speed comparison: cvBlob vs. OpenCV's cv::findContours - <AUTHOR> http://felipedelamuerte.wordpress.com/2011/11/20/speed-comparison-cvblob-vs-opencvs-cvfindcontours/

<comment><USER2> Something I'm wondering: is it relatively easy to just dive into these libraries and start doing _useful_ things with facial recognition?

Or is it more of a toy at this point?

I have a few ideas in that general direction, hence my asking.</comment>


RFind: Extreme Localization for Billions of Items - <AUTHOR> https://www.media.mit.edu/projects/rfid-localization/overview/ <comment><AUTHOR> The full paper, which was published at MobiCom 2017, is available here: [http://www.mit.edu/~fadel/papers/RFind- paper.pdf](http://www.mit.edu/~fadel/papers/RFind-paper.pdf)</comment>


How to pay online without a credit card? - <AUTHOR>

how can you pay online without having a credit card? <comment><USER2> There are pre-pay debit cards from AmEx, VISA, and MasterCard in most supermarkets, pharmacies, and other places. You put money on those. The downside are the monthly, per-transaction, and reload fees.

EDIT to add: There are also Gift Cards for iTunes, Google Play, Barnes & Noble, Sony, and many others that sell online. That's another way to pay. The downside is having a balance too small to spend on anything without getting another card.

</comment><comment><USER3> Paypall.

Question where do you get dummie credit card info? I used to be able to watch movies online free but now there always are asking for credit info to sign up to watch a free movie. So any answers?

</comment><comment><USER4> In the UK you can use GoCardless. They can set up a direct debit instruction for a bank account.

</comment><comment><USER5> Paypal or Bitcoin - though only a small number of businesses accept Bitcoin as payment.

</comment><comment><USER6> toutouastro -- are you including Bank acct. check-cards (i.e. ATM cards), which usually can be used just as would a VISA or MasterCard?

<comment><AUTHOR> I mean without a credit card or bank account how can you pay online ?

</comment></comment><comment><USER7> PayPal connected to a bank account.

</comment><comment><USER8> www.moneypak.com/</comment>