Lesson learned from my biggest business mistake - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2008/12/lesson-learned.html

<comment><USER2> If only the future was as obvious now as it used to be in the old days...

</comment><comment><USER3> >Instead of building a search engine...

oh, yeah, I'm sure you would have kicked google's ass ;-)

</comment><comment><USER4> _The strategy that provided you victory, may not be repeated in the same way._

\--Sun Tzu

</comment><comment><USER5> Speaking of understanding ecosystems, hasn't Seth cottoned on to blog comments?!

</comment><comment><USER6> obligatory hindsight is 20/20 comment?</comment>


Under the hood of Google Maps 5.0 for Android - <AUTHOR> http://googlemobile.blogspot.com/2010/12/under-hood-of-google-maps-50-for.html

<comment><USER2> The new maps are simply amazing. The 3D building with pan and rotate make me feel like I live in the future.

<comment><USER3> The old mobile maps were frustrating to use. Very data hungry and high latency and with quirky UI bugs. It was very much a translation of the web app meant for desktop use on low latency broadband to a mobile app with only a few tweaks. For example, pinch zooming would work surprisingly, by zooming the low-res tiled image and then effectively translating into a button press to zoom in/out one level, leading to a very frustrating and clunky experience that essentially removed any advantage of using multi-touch gestures over just pressing the zoom in and zoom out buttons.

Google has not only fixed those problems, they've improved the experience several times over. It's fabulous. It's faster, it's responsive, it's seamlessly interactive, it's a pleasure to use.

<comment><USER4> I totally agree with you about the previous version's shortcomings, but it is a little like "my hovershoes! The fusion drive only lasts for 8 hours!"

You have a frickin map of the earth in your pocket. With a database of all places in the earth and directions to anywhere on the earth.

I mean, holy crap.

<comment><USER3> Oh, I quite agree, and that alone is one of the major reasons why I finally upgraded to a smartphone this year after resisting for so long.

</comment></comment></comment></comment><comment><USER5> Between this and adding priority inbox to the Android gmail app, Google has given some phenomenal holiday presents. This will be really nice to still be able to access (most of) the maps while on the subway. It'd be great if they gave you the option of always caching certain areas.

</comment><comment><USER6> Google Maps and Navigation for Android really makes me want an Android phone now. How long until Android actually runs (well) on my iPhone 4?

<comment><USER7> Probably never. The iPhone lacks the 4 button configuration that's standard on Android phones. It can be made to work, but it will always be a hack.

Also, not to sound like a fanboy, but why would you want Android on your iPhone? I can understand iOS fans' concerns about the UI on Android not being as polished as iOSes, but it seems like if you're going to use Android, using an Android phone just makes sense.

<comment><USER8> Honeycomb has on-screen buttons: [http://www.phonedog.com/2010/12/14/honeycomb-does-not- requir...](http://www.phonedog.com/2010/12/14/honeycomb-does-not-require- physical-buttons/)

WRT Android on the iPhone, it's like Linux on a Mac: the hardware is usually higher quality. A 3GS and a Samsung Intercept go for the same price on a 2 year contract, but the Intercept feels like a cheap toy compared to the 3GS.

<comment><USER9> And, like Linux on a Mac, the drivers will never be just perfect.

<comment><USER8> I don't know, my 13" MacBook Pro is pretty good driver-wise with Ubuntu: <https://help.ubuntu.com/community/MacBookPro7-1/Maverick>

Yes, a bit of manual configuration, but it seems to work pretty well.

(Also, I've used quite a few Android phones with incredibly broken default drivers. YMMV)

<comment><USER9> I run Ubuntu on my MacBook as well, but the camera fails sometimes, the brightness control is wonky, the sleep is hit and miss, etc. Still, what am I going to run? OS X?

</comment></comment></comment></comment></comment></comment><comment><USER10> the math on this is pretty staggering to me.

360 billion 256 pixel square image tiles is about 21PB! (uncompressed, of course)

[http://www.google.com/search?q=(256*256*360000000000)%20byte...](http://www.google.com/search?q=\(256*256*360000000000\)%20bytes%20in%20PB)

and you know they have multiple copies cached around the world for redundancy/speed.

<comment><USER11> It's generated on the fly from vectordata. The dataset is huge, but not at all on that scale.

<comment><USER10> That doesn't make sense to me, the article clearly says "pre-rendered". Maybe they don't render the middle of the ocean tiles beforehand but there would be no reason not to save a tile once it has been rendered.

<comment><USER12> Article says that cells sent to device prerendered it doesn't say ALL cells prerendered.

<comment><USER10> Right, but there are layers that can't be pre-rendered (satellite) or are probably slow to render (terrain).

</comment></comment></comment></comment></comment><comment><USER13> It's a great change and a great tool, but:

Am I the only person who thinks the color scheme changes are bad? Subtle, but the greens and yellows are harsher than the pre-rendered versions. Not a defeater: just a tiny, tiny complaint.

</comment><comment><USER14> I had noticed _something_ was different about the new Maps app but I hadn't paid attention to the details and put it together what was happening. Of course now that they mention it's all vector based it's blatantly obvious when you watch the screen render. Absolutely wonderful.

</comment><comment><USER15> The new maps are really good, but the readability of the labels, a feature covered on HN quite recently, has suffered as a result of the upgrade.</comment>


Software-only companies are saturating the market - <AUTHOR> http://hunterp.wordpress.com/2012/03/13/software-only-companies-are-saturating-the-market/

<comment><USER2> "I develop relationships with them, and at the end of the day, I am done, there is nothing to do except go out for dinner, drink beer, and have fun. No deadlines, no all night code sessions. This is how life should be."

I know it's hard to believe because such environments don't get all the press. Yet in my 20 years of IT, the vast majority of work has been just as you describe your vegetable selling job. Software development can work out just fine with 40-hour weeks, relationships with real people, and plenty of time for fun!</comment>


LAN Manager Product Specification, 1987 - <AUTHOR> http://www.os2museum.com/wp/lan-manager-product-specification-1987/ <comment><USER2> It is an interesting piece of history. This dates back from when MS thought that all networking should be peer-to-peer (and that 640K was a lot of memory). IBM knew better and built domain controllers into OS/2.

As an anecdote - I worked on the team that was sub-contracted by IBM to write this. The spec was considered super secret and so had to be kept under lock and key. IBM security would confiscate any loose documents and leave a red card. One red card is a warning, two and you're off the project, three and the project is cancelled.

We'd just had a red card so were on alert when, late one evening, we discovered an unlocked cupboard on the final sweep. So we saved the spec in another cuprboard and for a joke left the old red card behind. The PM, who's spec it was, came in early the next day - obviously before the devs who left late the night before, found the red card and phoned security to get it back.

The ensuing "YOU'VE LOST THE SECRET SPEC!" conversation spiralled around like crazy until we came in and managed to calm everybody down. The PM still had to do a lot of grovelling. Moral of the story - probably best not to attempt a joke with anything security related.

<comment><USER3> It's not just about security related things. This is generally a danger of pulling a prank when you're not around to observe how it unfolds. You can't step in and stop it before it goes down some unexpected side track and involves too many people.

</comment></comment><comment><USER4> I never used LANMAN, but the spec makes for some interesting reading...

 _> NOTE: Due to a temporary restriction in CMD.EXE, it is not possible to use the DIR command on a UNC pathname, as in DIR \ \BIGSERVE\ANYNAME. This will be fixed in a future release. The DosFindFirst API call will accept UNC pathnames._

I always wondered about this... apparently the restriction carried over to the Windows port and was never fixed... maybe they didn't want to bloat cmd.exe with needing to "NET USE" UNC paths behind the scenes? Who knows!

<comment><USER5> tip - if you want to cd into a UNC path, you can't; but you can pushd into one and it'll create a temporary drive letter mapping and unmap it when you popd out

<comment><USER6> Where were you and your helpful tips 30 years ago when such knowledge would have been actually handy? :-) Cool tip, though.

</comment></comment></comment><comment><USER7> Direct link to PDF : [http://www.os2museum.com/files/docs/os210sdk/lanman- prod-spe...](http://www.os2museum.com/files/docs/os210sdk/lanman-prod- spec-1987.pdf)

As a new-ish PM, I find it fascinating to read specs like these. Gives me valuable ideas on how the specs I write should look like. Fellow HN readers : Got any other good spec sheets you have seen?

</comment><comment><USER8> better late than never</comment>


Tradebot had zero trade-lose days in last 4 years - <AUTHOR> http://www.cnbc.com/id/37190208 <comment><USER2> The entire movement against automated / high frequency trading is a hoax.

Remember how much Dick Grasso was paid as head of the NYSE? Typical exchanges charge substantial membership fees and reap massive profits.

In the age of computers the traditional exchange becomes a lot less valuable, since it's easy to match buyers and sellers over any computer network.

The law requiring all trades to be filled at the lowest price was motivated by major exchanges not wanting to be cut out of the action (even though a trader might be OK with getting not quite the lowest price in exchange for much lower transaction fees overall).

Also, the majority of HFT platforms run off of the major exchanges on private networks that only sometimes pass orders on to the rest of the market. The more liquidity/volume occurs on these smaller networks, the less relevant the older established players (NYSE, NASDAQ) become. Exchanges have traditionally been gatekeepers charging fees to use their monopoly product.

This battle has been going on for a long time (and so far the upstarts have been winning in spite of the hurdles imposed by the influential old timers).

FUD about algorithm based trading strategies is just a part of this larger battle and it's 100% nonsense.

<comment><USER3> Hmm,

So it doesn't bother you that this "investment" doesn't have any relation to building productive enterprises of any sort?

One might might think that the nastiness of 2008 would wake people up to the idea that markets can generate destructive speculation as well as constructive investment. But fixed ideas mostly resist reality.

And contrasting the NYSE profiteering to high frequency profiteering is kind of false argument. It's more a matter that deregulation has been a disaster and the situation cries for a modern version of re-regulation - except that the inmates are still well in control of the asylum.

<comment><USER2> Are you serious? The idea that speculation is bad dates back to old and embarrassing ant-Semitic rhetoric.

Speculation is an inevitable property of markets and is indistinguishable from more "concrete" behaviors such as hedging. Suppose a farmer buys rain insurance but not hail insurance. He's hedging one and gambling on the other. Yet he bought no contract for the latter.

Such transactions do help build productive enterprises, as they help with price discovery of the shares and add liquidity (which makes the investment more sound for everyone).

<comment><USER4> <http://mises.org/daily/320> a history of speculation and a rebuttal of many of its disparagements

<comment><USER5> That _does_ come from mises.org, though, and sort of says what you'd expect the Mises Institute to say about speculation. Which doesn't make it wrong, but does mean you're getting one particular side of a long-running debate in economics (roughly, the Austrian-School side). There are a lot more perspectives in the literature: [http://scholar.google.com/scholar?hl=en&q=%22role+of+spe...](http://scholar.google.com/scholar?hl=en&q=%22role+of+speculation%22)

<comment><USER2> Search this doc for "speculators" to see where this is really coming from. The modern arguments against speculation are just echoes of this.

<http://www.jrbooksonline.com/Intl_Jew_full_version/ij23.htm>

<comment><USER5> It surely doesn't come from that, which you must know is a kind of lame slander, the usual "the Nazis did [x], so you're a Nazi" non-argument.

General attacks on speculation and finance go much further back than anti- Semitic worries about "Jewish finance", to long before the medieval era when European Jews became associated with finance--- the Jewish scriptures themselves, and writings of the early Christians, both have a bunch of attacks on finance in them. Surely the Talmud itself isn't anti-Semitic?

And a modern quantitative understanding of the role of speculation is pretty unconnected to Jews (most financiers are atheists or Christians, anyway).

<comment><USER6> Not to take any sides, but you're wrong on two counts.

First, Talmud itself may well be anti-Semitic in this sense, only this is irrelevant. For example, the Bible says, quite clearly and redundantly, many things that Christians reject. Bible doesn't matter--Christians and their actions do. Likewise, Judaists matter and not the Talmud.

Second, Jews, in the sense of targets of most anti-Semitism beyond the troglodytic variety, are not a religious, but rather a social construct. Hitler wrote this in Mein Kampf, and this is why it's not okay to talk about anymore. The thing that makes it tricky is that while the racial aspect is relevant, it is not relevant in the way that makes criticizing Jews racist. That would have been Jew-by-culture <=> Jew-by-race. Instead, we have Jew-by- culture => Jew-by-race.

<comment><USER3> Huh?

 _"Talmud itself may well be anti-Semitic in this sense"_ In what sense? In the sense of attacking speculation since it's been pre-decided that all attacks on financial speculation are anti-semitic going back to Roman times?? The possibility of the Talmud being anti-semitic was simply assumed and implicitly rejected by parent as a standard _rhetorical device_ so I'm not sure what you're driving at here. (and while usual the homily about actions mattering more than words is appropriate in some context, here it's apropo of nothing given that the overall discussion concerns the origin and implications of various criticisms).

Modern antisemitism may indeed involve the cultural racial equation you describe but this doesn't demonstrate that either modern finance theory and early Jewish scripture, the criticisms of finance mentioned by parent, have any relation to modern antisemitism.

<comment><USER6> I don't understand your question.

Edit: I see that you've edited your post.

_delirium's post had two things in it that are incorrect. It was highly rated, so many other people are presumably wrong in the same way. I pointed out why they're wrong.

On most other topics, it wouldn't occur to anyone to object to my pointing out why some things are wrong, just because it wasn't apropo [sic] the origin of the thread. This is why I don't talk about this and a few other topics publicly unless I'm anonymous, and mostly even then. People just tell me to shut up, in so many words (and that's if I'm lucky).

<comment><USER3> The two main point's of Delirium earlier post were: * Critiques of financial speculation go back to times before modern antisemitism. * Modern quantitative critiques of speculation aren't connected modern antisemitism.

When I described your points as "Apropo of nothing" I meant related neither to the thread's topic nor Delirium's post. You should be able to read above why.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm dubious on this matter. While, yes, high frequency traders are (in some ways) making the market more efficient, it is still extremely difficult to think that a hyper-efficient but potentially unstable market is preferable to a moderately-efficient but much more robust market.

I mean, a bug in my coding means someone potentially doesn't get an email with a download link. A bug in theirs potentially means millions of shares are tossed around, possibly even confusing other "well-coded" terminals to trigger a feedback loop.

I am interested to know if the stop command was a "save your own skin" move or a "save the market" safeguard.

<comment><USER8> >I am interested to know if the stop command was a "save your own skin" move or a "save the market" safeguard.

Definitely "save your own skin." The consequences can be dire when trades are "busted" (as many were). Consider this hypothetical situation:

Shares of a stock are trading at $50. After that plunge on Thursday, it's trading at $18, and an algorithm jumps in. The shares rally and at $22, the algorithm sells the shares for a quick profit, and calls it a day. The shares go back to $45 by the end of the day. (This is basically what happened).

The next day, NASDAQ rules that all trades at a price below 40% of the price before the plunge [are invalid]([http://www.streetinsider.com/Insiders+Blog/NASDAQ+Busts+A+Nu...](http://www.streetinsider.com/Insiders+Blog/NASDAQ+Busts+A+Number+of+Trades,+But+Says+Its+System+Ran+Problem- Free+During+the+Crash/5607699.html)). Now that purchase at $18 didn't happen, but the sale at $22 did, and the high frequency trader is _short_ the stock at $22, with the current price $45. That's why lots of high frequency trading shops shut down when trades are in danger of being busted.

Note: I don't do high frequency trading, this was just from interested reading after that plunge happened last Thursday. It seems bizarre to me that they can rule a purchase invalid but keep the sale, but I believe that's what happens.

<comment><USER9> Can I get a link to that? Not doubting you, but I am very skeptical. That seems like a nightmare for whoever has to find those shares to fill the short order.

<comment><USER8> I wish I could find a good source. Basically I heard it from people like these (<http://www.elitetrader.com/vb/showthread.php?threadid=198241>), but I don't know for sure they're not just echoing what they heard (like I just did). There was one guy I remember reading, who seemed pretty authoritative, who echoed it, but I can't find a link to him.

</comment></comment></comment></comment><comment><USER10> "Tradebot, one of the biggest high-frequency traders around, had not had a losing day in four years, he said."

Bernard Madoff used to have a reputation like that. I rather suspect that the only way to be a winner that consistently is to do something as shady as what Madoff did.

After edit: noting downvote, I'll give one example of a possible shady practice in this industry mentioned in other comments on this thread. Not following the price time rule, which the trader mentioned in this thread says can happen "unwittingly," despite a regulation requiring the first order placed to be the first order filled.

<comment><USER11> _can happen "unwittingly," despite a regulation requiring the first order placed to be the first order filled_

You put quotes around "unwittingly" like you don't believe it. It really _is_ unwittingly - the high frequency shop submits a bid at the same time as another place (or even afterwards), but the exchange fulfills the HF order first. See page 17 in <http://sec.gov/comments/s7-02-10/s70210-129.pdf> for how it occurs and page 18 for some real world examples.

<comment><USER10> In a given trade, the violation of the price time rule may be inadvertent, but evidently the pattern that this happens is well known. So I put the word "unwittingly" in quotation marks, not to show exactly that I don't believe it, but to adopt the exact language that was quoted in this thread. And now I raise the question: if the trades that violate the price time rule cease, how different would the performance of the traders be? Does this known phenomenon of violating the regulation have a predictable effect on some kinds of trades that is different from faultlessly following the regulation?

<comment><USER11> _if the trades that violate the price time rule cease, how different would the performance of the traders be?_

"Empirically there is a 1.7 cps difference in profitability for a posted share that is first in line vs one which is last in line" (pg 17 from the document linked above. You have read, that, right?)

There's what sounds like a reasonable proposal in that document too.

</comment></comment></comment></comment><comment> brown9-2 _Unlike old-fashioned specialists on the New York Stock Exchange, who are obligated to stay in the market whether it is rising or falling, high- frequency traders can walk away at any time._

Can anyone explain what the first half of this sentence means?

<comment><USER12> I am not a Wall Street expert, by any means, but...

The NYSE has guys (mostly guys) who stand around on the floor and act as market makers for various stocks. They call 'em specialist. They stand around and run the auctions for shares, match up bids and so on. Basically, they make sure that if you want to sell a stock, there is somebody buying, and vice- versa. This is their business, and they can't just throw up their hands and wander away, ruining the market in some given stock.

The high-frequency traders provide a similar function in electronic exchanges. However, they all threw up their hands and walked away, exacerbating an already bad situation as the liquidity left the market.

<comment><USER13> pretty close. They're talking about designated "market makers" (of which specialists are a subset) who get into a contractual obligation with an exchange to be in certain markets for specified percentages of the trading day. They've been part of the exchange landscape for a long time, and they've been largely displaced by HFT firms. To say that this changing landscape is somehow to blame for the flash crash is dubious, at best, however.

</comment></comment></comment><comment><USER14> So, this is kind of off topic, but the guys from Tradebot also run a local venture fund called Tradebot Ventures (<http://tradebotventures.com>) that the last company I worked at was funded through. The founder, Dave Cummings, also founded a stock exchange here in Kansas City called Bats Exchange, where one of my brothers works.

</comment><comment><USER15> _"Several high-frequency trading firms that I know about stayed in the market that day," he said, "and had their best day of the year."_ Some of the very biggest HFT players stayed in the market, partly because they are obligated to being liquidity providers, and retrospectively because it became a very good day for those that did.

</comment><comment><USER11> Why don't more people do this themselves?

Every few months a post like this comes up on HN or Reddit and the general consensus seems to be that Goldman Sachs etc are too smart, too fast and too good to compete with.

I got a bit curious and did some digging, and it turns out that yes, some people are doing it themselves, quite successfully. See [http://www.elitetrader.com/vb/forumdisplay.php?s=4a039395d01...](http://www.elitetrader.com/vb/forumdisplay.php?s=4a039395d01ceaced87f28585ba24e5d&forumid=48) for example.

I for one think this looks doable.

<comment><USER16> The problem is access to liquidity. People do do it themselves, but they can only trade very small amounts of money and thus make only a little return (albeit with pretty limited risk). If you have a good brokerage account (like most prop firms) or are a bank you can essentially trade for free. Your brokerage account will only charge you for the overnight holding as the cost of capital (you get charged transaction costs but no need to buy leverage). So, firms with a good amount of capital can use their balance on a brokerage account and who do not have overnight holding (common for these strategies) essentially don't need capital to trade.

Its just how much you want to scale. Also, if something goes wrong, you can lose your capital very quickly. An easy risk to cover for a multi-strategy prop firm, but it could sink an independent trader. I've spoken to a lot of these guys, and a new strategy mysteriously losing 1MM+ in a couple minutes is pretty common.

Back to access: The types of connections these firms have to exchanges are very expensive. If you dont have the scale necessary to cover 10k per month per connection than you can't compete with all of the other players in the market. Then it goes down to execution speed, colocation, etc - those are the things that make non-bank prop firms like Tradebot or Getco successful. The strategies are only a part of the equation, the trading systems are what really separates the pack.

Most of these firms have way more developers than traders, and the developers they have would make Google jealous.

<comment><USER11> I agree about the liquidity.

I'm not convinced about the access thing, though. <http://www.interactivebrokers.com> has decent looking connections for non- crazy prices, and their brokerage fees are good too.

I don't think you'd be able to do a pure HF strategy using it, but it's possible a strategy based on volatility trading could work maybe(?)

<comment><USER16> Interactive Brokers has an internal prop fund, Timber Hill, that uses the trades happening on the brokerage to execute their trades (its a proprietary form of liquidity - every major electronic brokerage does this). Basically, you aren't just paying for the trade you are also paying for it in that you don't have direct access to the markets and IBKR will front run you before your trade is ever executed. Its like an implicit trading cost thats hidden.

Volatility trading is more math-focused, but requires discretionary trading as well. Its less automated, and requires more specialized knowledge than other strategies. Volatility strategies aren't run by random people coming out of school or other industries. They are almost always run by a trader with a very well developed back-end including a quant (who is trained in volatility modelings - not as easy as the books lead you to believe) and still a very sophisticated trading system with access to both the options exchanges (which are unwieldy) and "normal" equities exchanges.

Its all possible, but can you make a living at it? Its a big maybe. Can you actually make more than your normal job or even a fraction if you were with a well endowed quant fund? No way. Not unless you have been in the industry for a long time.

<comment><USER17> If IB front runs you, call the SEC. That's highly illegal. It's far more likely that they just use your trades to fill their orders. That's a good thing for both you and them.

The mechanics:

IB wants to buy X at $100, you want to sell $X at 100. Normally your order would be routed to the exchange and so would theirs. Both would go to the back of the queue: if Foo/Bar placed buy/sell orders at $100 before you, they get filled first.

Instead, both you and IB get to bypass the queue by trading directly with you. The only real cost to you is that this probably incurs some latency.

<comment><USER16> Front running is at most a grey area, and what is front running to you, the trader, is different than what the legally malicious definition is.

Don't get me wrong: These firms do provide liquidity, which is great for anyone trading in the markets, but if you are going to try to play these firms' game of running liquidity providing strategies or even stat-arb style strategies, on their home court you just aren't going to be very effective. That is unless you are running something totally new. (Side note: I knew a guy trading MBS based off of an obscure NY state housing law. The strategy was totally unique, and ran like clock work. If you have something like that, than you could be marginally successful. He was making like 300k a year off of 60k in capital).

</comment></comment></comment></comment></comment></comment><comment><USER18> I guess it makes complete sense that the markets would plunge simultaneously. Tradeworks had to dump their inventory all at once, otherwise other high frequency tradebots would have been tipped off.

BTW, that high frequency trading is good for the market because they provide liquidity, is bullshit. High frequency traders do not trade in stocks with low volume (because it is risky), so they don't add any liquidity that wasn't already there.

There's no legitimate reason, AFAIK, for high frequency trading to be allowed. All they do is syphon away our milkshake in transit from Alice to Bob, because their speed allows them to.

We should be taxing these quick buy-sell trades. At least that way more of the money goes to benefit society. Some equation that taxes at the rate of:

80% profit tax for selling stocks held 10 minutes

50% profit tax for selling stocks held 1 hour

10% profit tax for selling stocks held 24 hours

no tax for selling stocks held 1 week

seems quite fair, would have zero impact for real investors (who are investing in wealth creation, not money creation), eliminate these crazy price fluctuations (that could damage unsuspecting investors' portfolios with stop- sell orders that were meant to _protect_ their investments), and generally help everyone live more meaningful lives.

<comment><USER17> _High frequency traders do not trade in stocks with low volume (because it is risky), so they don't add any liquidity that wasn't already there._

Utter nonsense. Many HFT firms trade low volume stocks - low volume stocks have a smaller number of trades, but a higher margin per trade.

<comment><USER18> OK, but we're probably just arguing about definitions.

My argument remains that whatever benefit of liquidity that is injected into the market by HFT is offset by the margins that they take away.

</comment></comment></comment><comment><USER19> Can anyone in algorithmic trading/investment software suggest a good place to start reading and learning about the subject? In particular, I'd like to learn about investment strategies and algorithmic trading. It seems like many of you work in the field and know quite a bit about the subject, whereas some of us are on the outside trying to look in.

</comment><comment><USER20> Much has been made of Kurzweil's idea that computers will eventually overtake the raw processing power of the human brain. I wonder what will happen economically if/when software market algorithms become more efficient than the distributed human-driven algorithms of today. (And I would wager that the latter will happen well before the former.)

<comment><USER11> Software algorithms already are a _lot_ better than humans at technical analysis (<http://en.wikipedia.org/wiki/Technical_analysis>) by almost any measure.

There is still some way until they are there in fundamental analysis (<http://en.wikipedia.org/wiki/Fundamental_analysis>). I think there are some pretty good opportunities in automated fundamental analysis and trading, though. If I had the capital I'd build a trading bot which traded on the basis of automatic news analysis.

<comment><USER21> I would love to do that too. Here's a head start ("Machine-readable economic indicators from the lockups to your trading algorithm"): <http://www.needtoknownews.com/>

</comment></comment></comment><comment><USER22> Firms like this do tens of thousands of trades per day. It's just a consequence of the law of large numbers.</comment>


How to Show Available WiFi Networks on Linux from the Command Line - <AUTHOR> https://www.linuxuprising.com/2019/11/how-to-show-available-wifi-networks.html <comment><USER2> Oddly nobody here mentions horst. Quit a nice CLI package for exactly this (and a little more).

From their github:

horst is a small, lightweight IEEE802.11 WLAN analyzer with a text interface. Its basic function is similar to tcpdump, Wireshark or Kismet, but it's much smaller and shows different, aggregated information which is not easily available from other tools. It is made for debugging wireless LANs with a focus on getting a quick overview instead of deep packet inspection and has special features for Ad-hoc (IBSS) mode and mesh networks. It can be useful to get a quick overview of what's going on all wireless LAN channels and to identify problems.

[https://github.com/br101/horst](https://github.com/br101/horst)

</comment><comment><USER3> If you switch to iwd from wpa_supplicant there is also iwctl.

<comment><USER4> I strongly recommend iwd over wpa_supplicant. It is simple, intuitive, and just works. I have been using it on my laptop for over a year with no issues.

</comment></comment><comment><USER5> Is iwlist not the thing anymore?

<comment><USER6> both iw and iwlist are still a thing. There is probably some convoluted proc path that gives a listing as well.

<comment><USER7> procfs is unlikely. Scanning is not something that the kernel does by itself, a userspace application (usually wpa_supplicant) needs to perform it actively. You can see this by running e.g.

      sudo iw dev $IFACE scan

on a system running wpa_supplicant (e.g. through NetworkManager). Every so often you'll get a "Device busy" error because wpa_supplicant is scanning already.

</comment></comment></comment><comment><USER8> I tend to use wicd[1] they have gtk/curses/cli versions , I've had problems with nm before.

(1) [https://launchpad.net/wicd](https://launchpad.net/wicd)

<comment><USER9> I loved wicd, and had had problems with nm.

Then I had a problem with wicd - interface issues caused by the deprecation of ifconfig in favor of "ip" tools (Debian). Wicd is a set of Python scripts that call ifconfig.

So I submitted a patch to fix my issue, and tied it to the multiple bug requests already reporting the issue...

Wicd hasn't been updated in years though. With ifconfig starting to break (at least in some situations) it's going to need some updates soon.

I switched back to nm and found it's working extremely well these days.

</comment></comment><comment><USER10> I usually go with nmtui. You can also connect using it.

</comment><comment><USER11> What works best for me (as a sway user): attaching a keyboard shortcut that opens / closes a floating window of nmtui.

<comment><USER12> I prefer the simplicity of [https://github.com/firecat53/networkmanager- dmenu](https://github.com/firecat53/networkmanager-dmenu), which works fine under sway

<comment><USER13> If I remember correctly, that one didn't mask my password with rofi.

</comment></comment></comment><comment><USER14> One of the nice things about OpenSUSE is that you can use Yast from the gui or the console and it works identically. It's very nice. You can hand off configuration to Network Manager, or just configure everything in Yast's Network module.

</comment><comment><USER15> Pleasantly surprised that this is actually very simple, was psyching myself up for some horror of pipes and /dev.

The output from nmcli is quite pretty to boot!

</comment><comment><USER16> I find nmtui imminently usable, for scanning _and_ connecting, especially in Sway where nmapplet doesn't work.

<comment><USER17> I agree and that's what I use most of the time, but sometimes nothing beats the simplicity of doing

        nmcli c my-wifi up

When you know you want to connect to a Wi-Fi network you know is in range. Also, nmtui doesn't support "enterprise" Wi-Fi (PEAP, for eduroan, for instance).

</comment></comment><comment><USER18> I use `wifi-menu` to connect to new networks. It creates the profile for me (generally just works) and everything. Otherwise, `wavemon` for general scanning.

</comment><comment><USER19> what is the best way under Raspian Buster without installing anything?

<comment><USER20> `iwlist wlan0 scan` works

<comment><USER19> Thanks!

</comment></comment></comment><comment><USER21> It's kind of funny that it's espousing GNOME tools for command line work. ;-)

<comment><USER22> NetworkManager does not depend on GNOME. It's part of the freedesktop.org stack and used in server distros likewise.

<comment><USER21> My bad. I forgot it was freedesktop.org, not GNOME. Sure it's used in many server distros, but it's really a desktop tool.

<comment><USER22> To me, scanning wireless networks is primarily a desktop task, and some desktop software is CLI or TUI and doesn't need a GUI.

<comment><USER21> Would you consider an access point or embedded device a desktop?</comment></comment></comment></comment></comment>


Which Test Won? Shared A/B test results. - <AUTHOR> http://whichtestwon.com/

<comment><AUTHOR> I found a lot of the tests pretty interesting - this one about a free software download is a standout for me: <http://whichtestwon.com/archives/4823></comment>


How I Did It: From Psych Degree to VP of Data Science at Top Startup - <AUTHOR> https://eugeneyan.com/2020/02/28/psych-grad-to-vp-data-science <comment><USER3> When I was doing a cyber training exercise in the military, we had an Air Force general tell us that the best technical officers they had started out with non-technical degrees. They said that officers with undergrad degrees in things like IT, Software Engineering, and Computer Science, weren't very good at thinking outside of the box because everything they did was fairly low level and had a provably correct solution. The officers with degrees like psychology and political science were better at taking in large amounts of information, and deducing a "best" answer to a problem that didn't have a "correct" answer. I noticed the same thing when I started teaching after I got out of the military; people with technical backgrounds wanted a checklist to follow, and didn't really care about the end result as long as the steps were followed. Non-technical students would look at what the result should be, and do whatever was necessary, creating their own checklist as they went along.

<comment><USER4> As a technical person, I find it interesting that so many technical people are that way.

I start to get into a motivational rut if all I'm doing is working on a list of technical things to complete. Engineering disciplines are some of the few degrees that provide you the ability to both directly solve other people's problems and have close customer contact - that was a major reason why software engineering attracted me as a career rather than just a hobby.

<comment><USER3> I think it's a learned behavior, they were mainly talking about people fresh out of college who were evaluated based on "use the fastest algorithm for a mostly sorted set of data" type assignments. I worked with a lot of people with technical degrees who learned to think outside the box, but it seemed easier to teach technical knowledge to non-technical people than it was to teach technical people that they needed to change the rigid way of thinking that had been drilled into their head for 4 years.

<comment><USER5> Easier to teach the skill than the attitude.

</comment></comment></comment></comment><comment><USER6> VP at a top startup mean very different things to different people. To somebody who values sr titles it's Substantial. To somebody who views titles as a measure of how much and what you contribute will only view this as substantial in the context of where you operate - VP of the lemonade stand vs VP at a large company (by revenue,employees etc). Most of the experienced crowd on this site will generally take the latter view. Most of the young/fresh grad kind of people on this site will take the former view. As for yourself I would suggest you measure yourself by impact and not title.

<comment><USER7> Article suggests he has 3 direct reports

More of a PM

</comment></comment><comment><USER8> Awesome post! Thank you for taking the time to document down your learnings along your journey of pursuing data science. What I really like about your journey is how one thing manages to lead to another in the most amazing way. Some people attribute it to luck, but I guess in your case you really have made your own luck by taking actions to move towards your goal! Congratulations on your accomplishments thus far! I just have a few questions which would love if you can elaborate further on.

Firstly, it seems to me that the online course enabled you to reach top 3% of a Kaggle project which led to a series of career opportunities. However, I believe that being able to reach the top in Kaggle competition is not an easy feat. This kind of process is not really replicable especially for the people who are just starting out in Data Science. In that case, what would you recommend them to do?

And secondly, what is the end goal of a data scientist or at least for you as a data scientist? Would it be going into research? Continue to climb the ladder till you reach the top of the company? Data science and engineering in general are great as a form of intellectual challenge. However, personally sometimes I feel that there is a lack of meaning in the thing that I am doing as engineer/data scientist (especially if the culture of the company is very bottom-line driven). Just want to hear your thoughts! :)

<comment><USER9> On the first point: I assume you're asking for avenues to practice and demo your work. If so, personal projects are a great way.

The most impressive candidates can demo something they've deployed. This demonstrates the ability to apply what you've learned AND learn the rest of the stuff as needed (e.g., spin up EC2, build basic front end, maintenance, etc.). The latter is more important and gives confidence that you take ownership and likely can do the same (i.e., end-to-end with results) in the company.

On the second point: having meaning in work differs from person to person. Some people enjoy pushing the envelope (research), others enjoy staying hands- on (individual contributor, IC), while some big picture thinkers enjoy coordinating (PMs). It's helpful to think back on what gave you the greatest satisfaction and work with your leaders to be a role that lets you perform your best.

I find it most fulfilling to build data products that are useful, relative to generating tons of revenue. I would be equally happy as an IC doing the hands- on or leading a small team and mentoring them to become more effective.

</comment></comment><comment><USER10> Awesome work, Eugene!

I had almost the exact same experience going from a psychology degree, to coding in SF, to heading up analytics for the Trail Blazers. Luck, self-study, and Kaggle! Really cool to hear that someone else also took the psychology to data analysis route.

<comment><USER11> Me three (except for the VP part ;))

</comment></comment><comment><USER12> One of the interesting aspects of this account is the role of online classes (Coursera and edX).

I always thought that those kinds of things are useful and should be effective but (online) anecdotes suggest they are not. Seems like there is a missing step and the author was able to find that step. (Branded company work?)

<comment><USER9> Author here: I believe the missing step is being able to APPLY the knowledge and skills (learned from online courses) to create value.

It's not difficult, you just need to know that creating an artifact is not the end of your job--it needs to be used to benefit customers and generate value. Remember to measure the impact after your feature/system is launched.

I've seen many interview candidates struggle with this (missing step) too. Those that get past it were hungry enough to want it, as well as followed up with proper validation and measurement.

</comment></comment><comment><USER13> Its often the case that less technically minded people move into management.

<comment><USER14> So they can make technical decisions. This is one of the reasons I hate programming at companies. I didn't serve in Iraq so I could work my butt off to get a degree and then spend years working professionally while continuing to learn and do side projects to have someone who doesn't know anything tell me what to do.

<comment><USER15> So they can empower their teams to make the best possible technical proposals that they then champion as the path forward.

And that's assuming there at only technical considerations and not broader ones involving discussions with many other stake holders.

</comment></comment></comment><comment><USER16> Ok, this is shameless self promotion masquerading as a casual, "Hey I've got an interesting story". I notice that he conveniently left out the part where Alibaba promoted him to VP, Data Science at the same time he started an MSc at Georga Tech which he completed in two years which is an impressive thing to do while you're working so I suspect there is more to the story. If working in NYC has taught me anything, always be promoting yourself while simultaneously putting everyone else down. "I guess I just worked harder and smarter than all those PhD's around me".

</comment><comment><USER17> According to his LI, he was a VP at Lazada for 1yr and then became a senior data scientist at another company.

<comment><USER9> Yes I left soon after it was acquired by Alibaba (didn't like the 996) and wanted to put my skills to help in healthcare (in a 10-man startup).

</comment></comment><comment><USER18> Fabulous post but this caught my attention: "The learning curve was steep. Pushed me 2x beyond my existing abilities. Exhilarating."

What is meant by "steep learning curve"? [https://english.stackexchange.com/questions/6209/what-is- mea...](https://english.stackexchange.com/questions/6209/what-is-meant-by- steep-learning-curve)

I don't mean to be rude, just that it is interesting.

<comment><USER19> A learning curve is a plot of work required for achieving some amount of learning. Those guys just didn't get that that was how it's being used.

"How hard is it to learn Haskell?" Not "How much time does it take to learn Haskell?"

For instance, people will say some things are easy to learn, hard to master (playing Go). Other things are hard to learn but once you have, you're close to mastering them (kinds of problems that have a trick - like integrating e^ax cos bx).

</comment></comment><comment><USER20> Curious how the author got better at communication. What are good resources or books for doing so?

<comment><USER9> I didn't recall any books helping much on communication.

With regard to presentation and speaking, I had great leaders around me who provided candid feedback the presentation was off-point, too long, or had to be re-ordered (e.g., when presenting to non-tech folks, results before methodology). It was also useful to "rehearse" any conference presentations at meet-ups and get feedback.

Feedback to improve written communication is harder to come by. Few people feedback on your design documents or reports. For this, I find blogging and seeking feedback from writers whose writing I enjoy to help the most.

</comment></comment><comment><USER21> How is this new? Non tech people have been running tech people for quite some time.

</comment><comment><USER22> very inspring story. thanks for sharing.

i experience many things similar with yours.

\- progress plateau is scary. whenever i experience this, I try very hard to get out of it.

> I needed practice too. The data team wanted to launch an internal newsletter > to spread awareness—I volunteered. Someone had to visit overseas markets to > do a data science roadshow—I volunteered. We wanted to present our work at > conferences—I volunteered.

this is where I'm currently at.

</comment><comment><USER23> This self promotion boast blog posts says nothing. Most data science people are self taught and don't study "data science" in college.

</comment><comment><USER24> Key lessons that I'm picking up:

> _In year two I was internally transferred to the workforce analytics team, > working to forecast job demand and build a job recommendation engine to move > people within the organization._

I'm hearing this a lot from friends.

> _On the side, I continued self-learning. I picked up Python (love it) and > took classes in machine learning. Spark, a shiny (pun intended) big data > framework was emerging and provided free courses on EdX—I devoured these > too._

I'm currently noticing this myself. I'm devouring content on Hack The Box. I'm currently making 16 hour days and am at 200+ hours within 2 weeks, and devoured half of their active boxes.

You don't need a background once you have 16 hour per day (every day) determination. There are people who need more than sheer determination, but enough don't. They simply need Elon Musk level determination.

> _They were struggling with accurate product categorization and had heard > about my sharing on the Kaggle competition._

Use the right status symbols. It used to be university, now it is being at the top of a competition.

> _My family and closest friends thought it was risky. However, deep down, I > knew I would regret not accepting the offer._

A potential pitfall that he avoided. I've been heavily hit by this and kind of stalled my life for a year. So yea, he could've listened to them. I know I shouldn't have, but I did. He didn't and pushed forward.

> _The failure and embarrassment was very public. But so was the recovery and > success._

One that I know from my personal circles: go to a public embarrassment that isn't yours and no one dares to touch and make it into a success. It's not easy to do but if you can do it, then do it, in the right company this will transform your life. Or at least, it transformed the lives that I know of whom did it. They didn't do it consciously though, it's upon reflection that they realize.

> _But once in the field, there were PhDs with more experience around me—why > did I get promoted above them?_

When I read this I'm simply thinking that he didn't get promoted _above_ them. Being a VP is something different, I imagine, than being a data scientist, so different skills are at play. Yes, you need technical competence but you also need VP skills. Let's see what he says.

> _The measurable value I created was 3x that of an average data scientist._

Well, he could also communicate that. Could the avg data scientist do that? I don't know, I bet half of them couldn't or wouldn't care.

> _I was promoted to be a role model and to mentor the team to deliver and > communicate better._

Like I said, VP skills.

\-----

To close:

I think he's right in his assessment, simply by looking at my successful friends, family and acquaintances and by constantly asking what they do.

I'd summarize his success as:

A) Get in (I'm struggling super hard at this part, "you can problem solve but have too little experience" is what I get, it's depressive, it's a key stage)

B) Create trust with _everyone_

C) Be the best pick for the new position out of your team

From those key stages one can distill that technical skill is initially important and communication later.

\-----

If anyone wants to hire me as a mix between a hacker and programmer anywhere in the world let me know! I have 1 year of work experience in software engineering (excluding the bootcamp I taught for a year). My Hack The Box profile is looking to be more impressive every day.

<comment><USER9> Wow, thank you for dissecting the post and and sharing your personal experience and lessons as well. Those are great learning points!

</comment></comment><comment><USER25> Did being asian had anything to do with this?

</comment><comment><USER26> inspiring!

</comment><comment><USER27> Getting to VP level at a "top startup" has little to do with data science, and everything to do with your ability to play the networking game. Depending on the size of the company, VP level jobs are more about management skills than technical proficiency.

<comment><USER28> Why does this community (HN) have such a proclivity for these types of bitter responses?

This comment makes wild assumptions, doesn't assume best intentions, and really just makes `brenden2` sound like a nasty person. Yet here it is, top comment on the front page.

Nice work OP! You are flexing a very unique set of muscles (technical + leadership + communication + ambition) that very few people have. You will go far in life.

<comment><USER29> Tech startup as a phenomenon of the last 25-ish years is maturing and has become sufficiently mainstream that it has attracted a very wide spectrum of people, so much so that the majority of them are - as you would expect - <USER2> average. It turns out that being average is not enough to beat the odds, and those are quite stacked against early-stage startups. So you end up with fairly low chances of success and the resulting bitterness. As this industry continues to mature, the next step will be calls for regulation, unions, etc.

None of this is new - it's happened to all industries after they became sufficiently mainstream. Take a look at aviation - at first it was the wild west at the beginning of the century, then WW1 and WW2 brought some rapid advances, and in the last 70 years things have been relatively stale. Anyone dreaming of designing the next airliner today is a very different person from those who designed them at the beginning of that cycle.

I am not even saying there's anything wrong with all of this. As an industry matures and becomes more mainstream (aka, affects more people), we have to put some safety mechanisms in place. That means discussions become more about safety and less about achievement, and this attracts a fundamentally different group of people - more average, more bitter.

Kudos to the OP: just like syndacks, I am rooting for him and hope he'll use his enthusiasm to continue to shoot for the stars!

<comment><USER30> That's a nice theory but tech people have been bitter since the invention of Usenet.</comment></comment></comment></comment>


Surveillance Database of Journalists to Be Compiled in US. Where Is the Outcry? - <AUTHOR> https://tutanota.com/blog/posts/journalist-surveillance-usa <comment><USER2> Reasonable thing to point out but the article doesn't offer any solutions or cogent ideas. It just seems like a bunch of quotes and links slapped together.</comment>


'Punk In Africa' At The New York Film Festival [10/3] - <AUTHOR> http://www.okayafrica.com/2012/10/01/punk-in-africa-new-york-film-festival/ <comment><USER2> til conscientize: to make somebody/yourself aware of important social or political issues</comment>


GrabaGoodDomain.com - Get a Great Domain - <AUTHOR> http://www.grabagooddomain.com/ <comment><USER2> I'd pay 100$ for a really good one that describes one of my sites in a non- limiting way, and has ALL of the good qualities that a domain name should. I am just nearly certain that all of these that consist of any keywords that describe my sites are taken.

So, last night I registered for a similar service for 50$. But feeling guilty for spending money that I don't really have without exhausting every other option, I wrote a program to use letter/letter combination frequencies from a number of various data sets to find the best available names consisting of pseudo-words that are left.

It's man against computer, and this time I'm betting on the computer.

<comment><AUTHOR> timg, We will prove to you that we are the best. Send me the infortion found on <http://grabagooddomain.com/?q=node/3,> and I will give you suggestions. If you use my suggestion you can pay us $100. Just this one time, you don't even need to make a deposit. This is to show you how certain we are that GrabaGoodDomain.com is better than computer programs or anyone else...

</comment></comment><comment><USER3> Our service will do the same or better job for only $50. Just because someone is asking for twice the going rate, doesn't mean they necessarily do a better job.

Please check us out at <http://PowerNamer.com>

</comment><comment><USER4> How do you expect to differentiate yourself from pickydomains.com?

<comment><AUTHOR> We provide better results. You get what you pay for. Quality costs more money. In any case, its risk free.

<comment><USER5> If you think finding a great domain is hard, try selling a great domain. heh.

/trying to sell eskimokissing.com.

<comment><USER6> i just find it kinda funny that eskimo kissing came to mind while trying to register domain names. :)</comment></comment></comment></comment>


Ask HN: What do you like to do late at night? - <AUTHOR> <comment><USER2> None of your business!</comment>


Why Companies Aren't Spending More Money - T-A http://www.businessinsider.com/el-erian-on-corporate-cash-piles-2014-3

<comment><AUTHOR> The flip side of this is that technology has enabled more and more mediocre companies to stay in business. _All_ companies will be mediocre at some point; tech enables latching at that state and coasting. Jack Welch codified the rules for living off the stored energy in a formerly-good company's flywheel and that's been the standard.

Not to be rude, but touting Apple's brilliance at design is a bit of buying PR-propaganda spiced with cynicism about leaving buttons off things. I saw the transition back to Jobs' leadership indirectly, through people I sort of knew online leaving Apple. It struck me then as Welch-ism writ large.

</comment><comment><USER2> Direct link to El Erian's article with his 5 reasons.

[http://bit.ly/1kCYOM5](http://bit.ly/1kCYOM5)

If you read his 5 reasons, you'll notice that there's one string that ties them all together: interconnected global economy with strong influence by large conglomerates.

The more your country is dependent on these multinational companies, more you will be at the mercy of ups and downs of business cycle.

Sadly, most industrialized countries are full of them, but there are some exceptions, including Iceland. Iceland, despite almost going under, recovered quickly partly because it unloaded its debt fast, and its small size made the country relatively free of multinational's influence.

Japan seems to be everyone's punching bag for being in economic doldrums. But a visit to the country will make you realize that there's a fair balance of multinationals and local companies that evens out the pace of domestic consumption and investment. However, that balance has been breaking for awhile.

</comment><comment> T-A Not really "new", though. Sounds a lot like Average is Over: [http://online.wsj.com/news/articles/SB1000142405270230334210...](http://online.wsj.com/news/articles/SB10001424052702303342104579097482945031804)</comment>


I, Cringely What's happening at IBM (it's dying) - <AUTHOR> http://www.cringely.com/2016/03/08/whats-happening-at-ibm/ <comment><USER2> My god, I usually ignore articles like these, but does anyone actually listen to this idiot? I remember reading his IBM articles in the past, and he has such a personal beef with them he seems incapable of rational thought. I don't even know where to begin.

1) There is a disconnect between how happy engineers are and the performance of the company. Sorry, but its true. Just because people are getting laid off does necessarily mean the company is doomed; we need more information.

2) For his "citation", he links to a Seeking Alpha article, which openly admits they are bearish on IBM, then mentions how Buffett hedges on comments on his IBM position. Buffett _never_ prescribes stock positions to people, and he's not going to start now. He _always_ says things like, "well, I may be wrong..." and the like.

3) If we really want to know how IBM will do, we have to look at what we know, and what we know is, a) there are significant governments and companies (financial institutions and more) that want / need the custom offerings IBM has, and are not switching anytime soon. This provides a floor on earnings. b) Microsoft is their only real cloud competitor. Amazon is only just now getting some big-time corporate clients, and these are still mostly tech players, and Google is so far behind its not worth mentioning. Hybrid solutions are a must- have for many clients.

4) Just with these considerations, IBM will be fine. Watson is promising, but nobody at this point knows how this will play out.

IBM may (probably?) not return to its huge glory days, but that doesn't mean its doomed. Come on, folks. This guy reads like a TechCrunch intern.

<comment><USER3> > does anyone actually listen to this idiot?

Nobody.

He's had brief episodes of luck with a movie, and an interview with Steve Jobs. And that's it.

</comment></comment><comment><USER4> My impression is that Cringely is far more cynical of IBM than others. Still, the outlook for IBM proper doesn't look great. However, as a new grad joining Watson, how do those prospects look? Will IBM's issues effect me even within a division they are heavily investing in? Would love to get some feedback from current/former IBMers.</comment>


Ask HN: Getting prototypes from China [Indian firm] - <AUTHOR>

Folks
A local startup is planning to get funding from state government on there idea of a portable toilet for villages.
These people want to get a operational prototypes (number:20) done for there project to show the value prior to reaching out to goverment. Getting this done in India locally is posing as a costing nightmare. Could you suggest good Chinese manufacturer, who these people can partner with? or lease what is the correct process for getting started with manufacturing from China. <comment><USER2> Hey chirag, do a search on alibaba.com for manufacturing and fabrication providers in the material you are looking for. If you contact the provider maybe he'll fill you in on the rest of the details, although 20 seems like very small order.

<comment><AUTHOR> Thanks</comment></comment>


GameStop Lays Off 120 - <AUTHOR> https://arstechnica.com/gaming/2019/08/gamestop-lays-of-120-corporate-staffers-as-stock-continues-to-tumble/ <comment><USER2> I have a lot of fond memories of going to the local video game shop with my friends to look at boxes, or a mid-night opening to pick up Diablo 2 before a weekend-long LAN party. I miss the meaty manuals, that I still have for games like Baldurs Gate or X-com because they are just such awesome pieces of art and arguably part of the game story.

Things move forward of course, chains like GameStop killed that local video game shop I mentioned. I'm sure my children will have fond memories with digital downloads, after all it was the friends/LAN party that was the important part. So I'm probably just an old nostalgic git, but digital distribution will just never be my cup of tea.

<comment><USER3> > So I'm probably just an old nostalgic git, but digital distribution will > just never be my cup of tea.

I like physical copies but IME this is becoming no longer viable. I went to pick up a game recently from a shop that used to have massive game sections and the only had maybe a dozen switch games, nearly all of which were the more child oriented ones. The playstation and xbox sections weren't faring much better and I couldn't find the PC section.

Throw in gaming-as-a-service models and indie developers with zero retail presence being the only (non-nintendo) developers making games I like and physical copies have become a thing of the past.

<comment><USER2> Even when you buy a physical copy it's often just a steam activation code in an empty box.</comment></comment></comment>


The Secret to AirBnB's Freakishly rapid orgy response: "Scenario Planning" - <AUTHOR> http://www.fastcompany.com/3027798/the-secret-to-airbnbs-freakishly-rapid-orgy-response-scenario-planning

<comment><AUTHOR> Sorry if a repost, I could not find original if it exist. I found this interesting, and more startups / companies can use these sort of planning with risk assessment and plans of actions given different scenarios.</comment>


Apple & AT&T are Pulling a Thelma & Louise - <AUTHOR> http://www.victusspiritus.com/2009/08/01/apple-att-are-pulling-a-thelma-and-louise/

<comment><USER2> Geek rage, not really worth the read.

At the end of the day the issue is this: almost all of the "rage" is coming from developers and tech geeks. the former, for the most part, are still churning out cool apps and the latter make up a tiny percentage of Apple's market.

Crucially Apple don't, unlike some companies, have to rely on the bloggers and tech-lovers any more to keep their products in the public eye. They have a rock solid brand.</comment>


P5.js – Interaction demonstration video (hilarious without sound) - <AUTHOR> http://hello.p5js.org/

<comment><USER2> This p5.js thing actually looks pretty interesting. I was actually taken aback with how well they handled interactive objects overlaid on their demo video.

The title's unnecessary though. Sure, the video's kinda zany and the chroma- keying's terrible, but that's no reason to discount their technology. What they made was cool. It doesn't deserve ridicule.

<comment><AUTHOR> It wasn't meant to discount it, I just happened to watch it without sound and found it amusing and thought others would enjoy both the technology plus a little humour :)

<comment><USER2> Fair enough :)</comment></comment></comment>


Ask HN: What are some problems you have that you'd like people to solve? - <AUTHOR>

I'm learning how to code in rails, and am getting ready to release my first web application. After I'm finished with my first web app, I'll be looking to create new applications, and I'm interested in hearing about problems people have that would they would be willing to pay for solutions  that are valuable. Please let me know your thoughts! <comment><USER2> Unfortunately, that's the million dollar question. All start-ups try to ask the same thing to launch a product that is actually needed.

Most people these days don't know what they want or need through an online application. The difficulty of online applications is you have to make the person realize how useful an application is, and why they should continue to use it.

I don't really have any ideas for you, sorry. If I did, I'd have made them a long time ago :-/

<comment><AUTHOR> No worries, and thanks for your comment! I'm hoping that a couple of people will respond with ideas!

</comment></comment><comment><USER3> "What people would be willing to use" seems like a more fertile approach. Open your eyes and spot repetitive, boring task that one has to deal with on a regular basis !

If you have users, everything else with follow. Good luck !</comment>


Why Self-Driving Cars Must Be Programmed to Kill - <AUTHOR> http://www.technologyreview.com/view/542626/why-self-driving-cars-must-be-programmed-to-kill/ <comment><USER2> Groan. Are we going to take every college philosophy exercise idea but scratch out "human" and replace it with "robot"?

What next - do we need to program airplanes to crash in order to avoid being used as weapons? Cars programmed to torture people to reveal where the nuclear bomb is hidden?

More useful, (re)read the Asimov robot series and the effects of the zeroth law of robotics.

</comment><comment><USER3> Look at the picture in the article[1]. Why is the car programmed to kill the only person actually obeying the law and not standing on the road?

1) [http://www.technologyreview.com/sites/default/files/styles/v...](http://www.technologyreview.com/sites/default/files/styles/view_body_embed/public/images/Ethical%20cars.png?itok=A_wye_WL)</comment>


Designing a Lock-free, Wait-free Hash Map - <AUTHOR> https://shlomisteinberg.com/2015/09/28/designing-a-lock-free-wait-free-hash-map/ <comment><USER3> For those interested in the subject: Cliff Click of Azul Systems had a presentation on his design for a hash table meant for heavy multithreading. One part I remember was that he stored the hashes of keys alongside the keys, allowing for faster resolution of the "not match" case (you compare the hashes before doing the full key comparison).

[https://web.stanford.edu/class/ee380/Abstracts/070221_LockFr...](https://web.stanford.edu/class/ee380/Abstracts/070221_LockFreeHash.pdf)

While searching for the above, I also found this: [http://preshing.com/20130605/the-worlds-simplest-lock- free-h...](http://preshing.com/20130605/the-worlds-simplest-lock-free-hash- table/)

<comment><USER4> The beautiful (and I think novel) aspect of his design is the underlying FSM.

<comment><USER5> FSM's are a good way to think about any problem you'd like to address lock- free, since they map so well to CAS.

<comment><USER4> His FSM is a bit more elaborate than merely modeling a CAS. 3 states, if I recall correctly.

[edit: [https://web.stanford.edu/class/ee380/Abstracts/070221_LockFr...](https://web.stanford.edu/class/ee380/Abstracts/070221_LockFreeHash.pdf) See page 32]

<comment><USER5> Right, but you can implement atomic state transitions quite naturally with CAS.

<comment><USER4> I suggest you actually listen to Cliff explain why he did what he did before you belabor the obvious. (Those state transitios are all CASed ..)

<comment><USER5> I have no idea what you think we're disagreeing about. I've watched Cliff's presentation a handful of times over the past decade and implemented something similar (albeit simpler) myself. Yes, the particular FSM in his hash table is interesting and novel, but just as insightful to me was his argument that data structures implemented as state machines built on atomic CAS can save you much of the trouble of proving you've put memory barriers in the right places. "All" you have to do is demonstrate that every possible state is valid.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I was recently wondering whether Intel Transactional Synchronization Extensions(TSX) will replace lock-free patterns in latency-critical programming. However, I have seen few benchmarks on this topic.

<comment><USER7> TSX is actually relatively bare for what it offers as transactional memory. IBM's Power8 and Blue Gene are significantly robust in that area.

For numbers, here's some for Thread-Level Speculation [0], though simulated and not against TSX. Performance comparisons are at page 9.

[0] [http://www.cs.cmu.edu/~tcm/tcm_papers/isca00.pdf](http://www.cs.cmu.edu/~tcm/tcm_papers/isca00.pdf)

</comment></comment><comment><USER8> It'd be nice if this was a bit readable. Thin fonts and light grey is impossible for old eyes.

<comment><USER9> Reader mode in Safari (at least on iOS) renders this nicely for me automagically, and turns the grey to a nice black.

For the desktop I was going to recommend Distill Mode in Chrome (add --enable- dom-distiller to the command line/launcher, then it's available from the vertical "..." menu top right) but it didn't behave the way I remembered it. You get a nicely formatted page with all (or at least most) of the extraneous crap filtered out, but the grey remains.

Internet Explorer supposedly has a Reading Mode too, but I can't find it on my desktop.

<comment><USER10> Firefox has a reader mode too, which works perfectly also.

</comment></comment></comment><comment><USER11> Just making sure I understand this correctly: so at a high level you're just trading software locks for hardware locks (which are most always more granular)? If you didn't have hardware atomic support, the same "lock free" data structure would be one where locks are held for as few instructions as possible (and that exhibits the same functional characteristics around memory ordering etc.)?

<comment><USER12> > Just making sure I understand this correctly: so at a high level you're just > trading software locks for hardware locks

But the use of hardware 'locks' here has the 'lock-free' property. ('Lock- free' and 'locks' do not use exactly the same definition of 'lock'.)

<comment><USER13> Exactly. Its about blocking vs making guaranteed forward progress.

<comment><USER14> To support what dkersten said: there's a trade-off when deciding to go with lock-free or lock-based structures. Lock-based structures tend to have _less_ synchronization instructions in total, but the inherent mutual exclusion means that usually only one thread can make progress at a time. (And the cheap locks are non-deterministic as to who gets the lock next.) Lock-free algorithms tend to have _more_ synchronization instructions in total, but all threads tend to be able to make progress at all times.

In general, lock-based structures and algorithms are better in low contention situations, and lock-free structures and algorithms are better in high contention situations. The intuition is that in low contention (either few threads, or few _interfering_ threads), there's little harm in forcing mutual exclusion, so it's not worth paying a bunch more synchronization instructions. But in high contention (lots of threads, or lots of interfering threads), mutual exclusion can mean that most of the threads are sitting idle waiting for the right to do some work, so it's worth it to pay a bit more overhead so the whole system can more often progress.

<comment><USER15> > Lock-based structures tend to have less synchronization instructions in > total, but the inherent mutual exclusion means that usually only one thread > can make progress at a time [...]. Lock-free algorithms tend to have more > synchronization instructions in total, but all threads tend to be able to > make progress at all times.

technically not correct. In a lock based implementation, it is possible that no thread is making progress, i.e. no guarantees. Lock free is the guarantee that at least one thread makes progress. Wait free is the guarantee that all threads might be making progress.

<comment><USER14> _Technically_ correct because I deliberately used weasel words ( _tend to_ , _usually_ ). Refining the specifics of a post doesn't have to be couched as a contradiction!

</comment></comment></comment></comment></comment></comment><comment><USER16> Although semi-related, a wait-free stack was discussed on HN previously[0].

[0]: [https://news.ycombinator.com/item?id=12109206](https://news.ycombinator.com/item?id=12109206)

</comment><comment><USER17> > You can verify that your implementation is capable of performing lock-free > atomic operations on double-machine-word primitives with > assert(data_ptr.is_lock_free()).

This may be true when compiling for a 32bit process and running on a 64 bit machine, but is not true for the more common 64 bit program on x86_64 (since pointers are 64 bit.)

<comment><USER5> data_ptr is an atomic-wrapped struct of an int and a pointer. If it's lock- free you must be running somewhere with at least DCAS.

(Maybe you're saying the statement is true but that assertion will be false on x86_64? But CMPXCHG16B has been around for a while.)

<comment><USER17> It is false for x86_64 when compiling with gcc 7.2 or clang 4.0. Not sure you can make atomic.h use CMPXCHNG16B.

<comment><USER5> That's very surprising. Did you specify -march? If the compilers have to support ALL x64 then they can't use it, since it's a 2004-ish addition.

<comment><USER15> std::atomic<something-128bit-sized> do, or at least did last time I checked, use cmpxcg16b on gcc. There were talks about changing that because of surprising behavior: as there is no 128 atomic load, even loads need to use the cas, making them significantly slower than 'normal' atomic loads; also const std::atomic<128bit> is unusable in read only pages which is an expected use case for atomics.

I do not know whether that has actually been 'fixed' though.

</comment></comment></comment></comment></comment><comment><USER18> Ah, template<typename T>, how I've not missed thee.

<comment><USER19> For what it's worth, unless you're writing a library, you probably shouldn't be writing your own template code. Most uses of templates I see are unjustified complexity.

That said, template generics are pretty damn awesome in terms of performance/behavior guarantees

<comment><USER20> It's not the complication that bugs me: it's the runtime inefficiency! Used carelessly, C++ templates produce massive code bloat from repetitive instantiations.

<comment><USER21> > It's not the complication that bugs me: it's the runtime inefficiency! Used > carelessly, C++ templates produce massive code bloat from repetitive > instantiations.

You mean you actually experience slowness clearly attributable to instruction cache misses? I don't know if I've ever had that. What bugs me is the _compile-time_ inefficiency. A lot of times the same method gets regenerated for every time in the enclosing class even though most if not all of it could just as well be in the base class without the template parameter, to only get instantiated once.

<comment><USER22> There are tricks to avoid it if you really want to. Precompiled headers, force instantiating templates you need with LTO enabled and caching. Merging source files in the build system (possible thanks to ODR). Calling the compiler with many source files at once to use compiler cache.

The remaining inefficiency is supposed to go away with the upcoming module system.

<comment><USER23> > The remaining inefficiency is supposed to go away with the upcoming module > system.

That's really not the main goal of the module system. It's more about code hygiene, no matter how much people are hoping it will completely solve the issue with compile times.

</comment></comment></comment></comment></comment></comment><comment><USER24> This just shows how much a leg up garbage collected languages have when it comes to standalone lock-free structures.

Sure, this is technically a wait-free hashmap implemented in C++, which is pretty cool... but it makes _two_ atomic operations on _every read_. Pure reader threads accessing the same element will contend over the same cache line. One of the very desirable aspects of a lock-free concurrent hashmap is cheap reads, since read-only scenarios are so common. The proof is in the pudding: as noted at the end this map is 200% slower than a lock-based implementation for a read-heavy load, which is exactly a type of load where the lock-free map should be able to exploit full concurrency.

Java has had zero-atomic ConcurrentHashMap reads since inception, and they are fast (a couple nanos or so). I'm sure other garbage-collected languages are the same. The big thing garbage collection gives you is automatically solving the memory reclamation problem: it's no coincidence that problem is highlighted in the article and that the atomic-ops-on-read comes directly from it. Garbage collection avoids it entirely, because you never explicitly delete the removed nodes, leaving it up to the garbage collector which can use magic beyond the read of the mere mortal to free them safely at a later time.

To get a concurrent[1] hashmap with reasonable read performance, i.e., "solving" the I am only aware of the following techniques:

1) Something like quiescent-state based reclamation: basically each thread occasionally signals when it is definitely not referencing any map nodes, at which point (or some later point) the implementation can determine it is safe to clean them up. Effectively it allows many fast read calls by batching up the "ok to reclaim" notification into a single occasional quiescent checkpoint call. It introduces some delay in reclamation, and you have to have a suitable place to put the quiescent checkpoint. If it works, I think this is perhaps the fastest. See for example [https://github.com/rmind/libqsbr](https://github.com/rmind/libqsbr) .

2) Use some kind of dekker-like flagging to coordinate between readers and deleters. E.g., a reader sets a going_to_read_flag and a deleter sets a going_to_delete flag and then each side checks the other flag and proceeds only if it is not set. This doesn't work with "plain" writes and reads on almost any arch because nearly all (including x86) allow store-load reordering, so you need a barrier. The good news is that you can move all the cost of the barrier to the writers with an async membarrier like [http://man7.org/linux/man- pages/man2/membarrier.2.html](http://man7.org/linux/man- pages/man2/membarrier.2.html) . The cost for the deleters is very high though (a syscall at least), so you have to have a heavy read load to make this work. It's not as fast as QSBR since you still need to do some extra (non-atomic) ops on the read side and you have to figure out how to handle multiple reads).

3) Never actually free the memory. Rather than using plain malloc/free for nodes, just keep recycling the same nodes over and over, so once a reader gets a node, it is always "safe" to access it. Of course, this means that nodes aren't immutable, so readers may see a different value when a node is recycled. That's probably fine since the implementation can just make a copy (return "by value") - but you have to handle reads where a node is part way through the transition, to avoid returning a split read. If your data is small (8 bytes or less) that's easy since plain reads are atomic at that level. For larger values you could use a seqlock.

4) Transactional memory stuff, e.g., Intel HTM.

Has any seen any other approaches out there for native code?

The complexity and tradeoffs involved are why I don't think we'll be seeing a concurrent map in standard C++ any time soon.

\---

[1] Not all of these may be strictly lock-free, certainly not wait-free - <USER2> an approximation that works well in practice is often much better than the 100% authentic read-deal when it comes to this kind of thing. That compromise is why you hear much more about "lock-free" than "wait-free" even though the latter is strictly better in a theoretical sense and Herlihy proved that wait- free algorithms generally exist when lock-free ones too (and indeed provided a recipe for changing the latter into the former).

</comment><comment><USER25> > for (int i = ; i < chunks; ++i) {

> int old_val = ;

Please tell me this is a bug in the example and not some new C++ initializer syntax.

<comment><USER26> I can't find anything about that so I guess it's a problem with the page.

<comment><USER27> I thought at first glance it might be a reference being swallowed by the browser thinking it was an html entity ( &whatever; ).

I don't see anything in the page source either though. So if it was something swallowed as an entity it didn't make it into the final source at all. Perhaps an editor expanded it automatically into nothing.

        old_val = ;

</comment></comment></comment><comment><USER28> Kind words... "a little weird to put 100 hours into something that won't be noticed by its absence" "I don't want to give people problems they didn't know they should have though so it was worth fixing."

<comment><USER29> Wrong thread.

<comment><USER28> quoted from the piece. not into making a quilt.</comment></comment></comment>


Solving Depression with Analytical Thinking - <AUTHOR> https://rockentry.com/blogs/the-crux/avoiding-problem-paralysis <comment><USER2> Dude, you had some unfortunate life events piled on top of each other causing turmoil. I sincerely don't wish that to happen to anyone and I congratulate you on feeling better, but..

I want to point out that your episode is not to be compared with actual sustained major depression, which will _eat you alive_. So utterly and completely will your soul be crushed that taking your own life will feel redundant, unnecessary. You have literally no idea of how deep this rabbit hole goes, thank god, but your advice trivialises the depth of depression and I have to wonder how this got so high on HN.. This is a blog with one post, one.

<comment><USER3> I think his advice is garbage, but it doesn't trivialize depression at all. Depression is an umbrella term, he's speaking honestly about his own experience. It's still "depression".

There's always this sort of reaction anytime someone shares solutions, for severe depression or otherwise, casting it as patronizing and demanding more caveats and tip-toeing. You'd think they'd rather see wallowing in self-pity. In no instance are these meant to reflect personal failures.

<comment><USER2> > I think his advice is garbage, but it doesn't trivialize depression at all. > Depression is an umbrella term, he's speaking honestly about his own > experience. It's still "depression".

Actually, I overreacted and I agree with you here. "Depression" is actually quite well defined by the DSM, but the common use of the word covers a lot of ground indeed. So, I read "clinical depression", but I should have read what was actually in the article: just "depression", being "depressed".

Excuse me, for me it's a delicate subject.

</comment></comment></comment><comment><USER4> The recurring theme in almost all accounts of depression that I've read is the lack of will and/or care to get out of the state (and/or care for much of anything).

This guy had a real problem - several of them, actually, and I admire him for pulling himself by the bootstraps going up; and for avoiding paralysis which is indeed an issue in situations like this. But being depressed for specific reasons (marriage failure, financial problems), solvable or not, is very different from clinical depression - which may look similar on the outside, but doesn't have a good reason.

I don't want to belittle anyone or anything, but ... I've read countless descriptions of depression, and this one is unlike the others. The author may have suffered from real depression, but I don't believe his experience is applicable to other cases.

To each his own, but the reason I'm pointing this out is to (hopefully) stop HNrs who are unaware of this, who may show this to their clinically depressed friends or family and say "see, you just need some analytical thinking". It may work - some people manage to overcome schizophrenia with analytical thinking - but they are AFAIK a tiny minority.

</comment><comment><USER5> I know some people, who are in complete paralysis thanks to (overly) analytic thinking. On the other hand, from all the people I know having a major depression, nobody was able to advance simply by analyzing, deciding, acting, and without help. That said, it might worked for the author, but I doubt that it would work that smoothly for the majority of people with problem paralysis, let alone depression.

</comment><comment><USER6> I wonder if it's not so much analytical thinking as opposed to just going out and doing something. Several forms of depression are exacerbated by ruminative thinking [1]. I'm not sure many depressed people would be able to successfully navigate the steps involved for analytical thinking without falling back into rumination.

Rather than attempting analytical thinking first, I think it'd be much easier to initiate a simple activity, walk around the block, see a happy movie, visit a bookstore. Once one gets out of this cycle of ruminative thinking can one have the wherewithal to begin analytical thinking.

[1] [https://psychcentral.com/blog/why-ruminating-is-unhealthy- an...](https://psychcentral.com/blog/why-ruminating-is-unhealthy-and-how-to- stop/)

</comment><comment><USER7> Lest anyone take the advice in the OP to heart, there is no shame in obtaining a bankruptcy discharge - it's just another tool in your financial toolbox. Moreover, it's needlessly stressful and harmful to struggle under the burden of managing someone else's debt while also going through a divorce and suffering a serious illness. I marvel at the dude's strength and if he were participating in the comment thread I'd ask if in retrospect he'd change anything.

<comment><USER8> There is shame in breaking a promise. Bankruptcy breaks a promise. Being a tool in your toolbox, even being necessary some times, doesn't neutralize a shamefully act, to the extent that your choices contributed to it.

<comment><USER9> The bank charged you interest based on what they thought the risk was of you breaking that promise. They knew the risk when they put out that loan.

<comment><USER8> True, but I feel I would still feel shame in failing to keep my word, regardless of the intention of the other party, as long as they keep theirs.

<comment><USER10> > True, but I feel I would still feel shame

Please keep your shame to yourself. Your other comments in this thread sound like you're trying to invoke your shame upon others for declaring bankruptcy.

If your intention was consistently "I would still feel shame" rather than "You should feel shame", that's fine, but please make that clearer.

<comment><USER8> I would still feel shame, to the extent that the bankruptcy was due to my choices. I would judge others on the same basis.

<comment><USER4> May I ask what your cultural background is?

"Choice" is a funny concept. There are cultures that made people choose between Seppuku and shame, with Seppuku being the honorable "choice". You seem to be accepting and even advocating a financial version of that "choice".

It's not quite as common these days, and for the best IMO.

<comment><USER8> If I go bankrupt because I get hit by a bus on the sidewalk, I wouldn't feel ashamed of that. If I go bankrupt because I got drunk and ran into a bus, I'd feel ashamed of that. If I go bankrupt because it's more convenient than paying my debts, I'd feel ashamed of that.

A family member did that. I felt ashamed of him and less of him. I'm less likely to make him a loan. He lost credit with me. I think that's healthy.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> One of the most insidious aspects of depression is thinking that you can solve it easily on your own. Holding the idea of "if I just do x, y, and z then I'll be ok" in front of you, then consistently failing cements the feeling that it's "your fault".

</comment><comment><USER12> My depression only lifted after I switched to keto, I've been depressed for 30 years. Low energy and everything was a drag until the switch... People(psychiatrists and psychologists) don't want to hear it, but food is connected to how we feel.

<comment><USER3> I think this is understated. I went a different direction, but all the same, I think self-experimentation / personal science is worthwhile to that end. Diet and exercise should be the first line of defense.

</comment></comment><comment><USER13> The article is titled "Avoiding Problem Paralysis". The HN submission title is rather unfortunate, I think.

</comment><comment><USER14> > My first real experience with depression occurred when I was 25. I had > recently separated from my ex-wife, and our divorce was pending.

> My ex-wife had a tumultuous upbringing — her mother walked out on the family > when she was eight, and her father died when she was 19, leaving her > effectively the head of her household which included two younger brothers. > She was at a time of great need, and we decided to get married because we > were deeply in love, and I wanted to contribute to her stability.

Incredible amount of red flags here for a working marriage. I'm sorry this happened to OP, but I'm really surprised his parents didn't try to stop this way before it happened.

</comment><comment><USER15> This corroborates how I got out of my own depression. No episode in particular caused it, just growing up around shitty people that mined my self-confidence and social skills.

How did I get out of it? Just like the author, a switch flipped. I could keep the status quo and be miserable, or I could do something about It. Read that again: We require a definition of "It".

I did therapy for years, which helped me learn how to organize my feelings and know myself better. What happened is that eventually I was able to identify all of what was making me sick - before that, I couldn't put it into words, I was simply miserable.

In my particular case it stemmed from spending my early childhood in a first world country and moving back to our third world country when I was 7. Dealing with the aggressiveness and irrationality of my native culture is something that left me unable to successfully integrate in that society. This in turn of course means I had few friends, trouble finding a girlfriend and difficulty entertaining myself. I had to find a way out. Moving out of course would be difficult. Third world salaries, family didn't support my decision to leave the country, no good way to insert myself in a first world society with security.

Fast forward 10 years: I managed to immigrate back into the first world through an education visa and convert it into a work visa. Have stable work with good pay, like-minded friendships, amazing girlfriend.

I still have "scars" from back then: some social awkwardness is still there, and sometimes I have blue days. But I know how to manage myself and work to identify and attend to what's bothering me.

The takeaway for me (not a doctor) is that some forms of depression manifest themselves in a healthy nervous system that's exposed to an adverse environment. We have some control over the environments we're in and that's where we should act.

Standard disclaimer - still look for a doctor. Therapy was enough for me, but it may be the case you needs drugs. Seek help. While you don't have to do this alone, you _can_ take ownership and try to solve your problems, even though it might take years. It's worth fighting for.

</comment><comment><USER16> I don't think anybody is "solving depression" by tackling problems some way or another.

Rather: you're getting out of your depression and that allows you to tackle problems.

<comment><USER17> Depression is an umbrella term that covers a wide range of experience, and includes different types of illness.

That makes a clumsy title -- "I solved the particular sub-type of depression I was experiencing with analytical thinking". We don't need that cumbersome language if we just remember that the word depression covers different stuff.

<comment><USER16> Sure, but that's not what I was trying to say. "The only times I left the room was to eat and use the bathroom" isn't "I was feeling kinda down because I suddenly was $60k in debt and I didn't know how to go about paying that off", and I don't believe that most people can climb out of a hole that deep by basically "just sorting your bills by importance".

I believe that, yes, you can greatly improve your situation by reducing external stressors. But you'll have to get to a point that allows you to do that first, and when you're basically either sleeping or staring at the wall all day, you are not in that state.

To me, "chicken or egg" is rather clear: the depression must give way enough so you can get things done that will improve it further. Suggesting otherwise sounds dangerously close to "hey, if you just wanted to, you could just get rid of depression" which puts suffering from depression close to "it's a choice" territory.</comment></comment></comment>