Secrets of Resilience: Lessons from adults who overcame difficult childhoods - <AUTHOR> https://www.wsj.com/articles/the-secrets-of-resilience-1510329202 <comment><USER2> My most upvoted comment on HN was when I made reference to fact that I had grown up in African village. I was totally unaware that this was a something worth sharing but it seemed to pique people's interest. As I didn't know any better at the time, I never felt that I lacked anything. I had two parents, grand parents and many cousins around. We spent the whole time playing, "exploring" and "hunting". Not once did it occur to me that we didn't have running water or flushig toilets and hence I was worse off. We had chores, looking after the livestock and helping out with the harvest. We had at most three pairs of clothing and hardly wore shoes.

We moved to town and my siblings were born in town. To this day me and my older brother, the village kids have always been more independent. During the time I was in school my parents didn't glance at my homework. Later on when my younger brother who is 11 years younger than I am was in school my mother had "learnt" that good mothers help their kids with homework. To this day my little brother cannot do anything on his own without help (accept poetic license for the sake of being brief).

I read somewhere though, I think one of those decade long Harvard studies that having chores when young was the biggest factor in how successful people became. I presume poor kids have to play a bigger role, hence have more chores in ensuring that household is fed and clothed.

<comment><USER3> I didn't really have a childhood that could be described as "difficult", but having grown up on a farm and having ended up workin' in the big city for a tech company, I suspect we have at least one common experience.

Do you ever sit and think sometimes how weird it is, to know all these things and have all these skills from your earlier life that have, like, no relevance or use in your current life?

It's weird to me how much I know about pigs, tractors and corn/soybeans/wheat that just doesn't come up much when you're sitting at a computer typing all day. (Hay bales should be stacked "sideways", to allow air to flow up through them, so that they will dry safely and not spontaneously combust. With straw it is fine to stack it any which way; some people prefer to stack it with the wires up so that it is easier to walk on, others the same as hay for consistency.)

<comment><USER2> :-). I totally agree. I keep an eye on rainfall totals because that determines how good the harvest with be. Nevermind the fact that I buy all my food from the shop. I don't see cow dung or any farm animal dung as being dirty. We used to use it as binding agent for the mud huts and spread it on the floor, to make the floor. I often terrorise my city slicker friends with cow dung. I can make cars out of wire. When I see wires I often find myself visualisng the cars I could make. We used to milk cows and goats, plough with cows, pull carts with the donkeys, fish with home made hooks and nets. None of this useful when trying to tune my SQL queries.

<comment><USER4> I grew up rather privileged,but I share a lot of the same sentiments, having paid a lot of attention to my father who was raised on a farm. I love knowing about farms/nature and still hope to continue learning more.

</comment></comment></comment></comment><comment><USER5> A topic so close to my heart I can barely engage with it.

I credit my resilience to a sense of absolute worthlessness.

If you have seen the film Gattaca and the bit at the end how the non-modified person can beat the modified person... it comes down to not being afraid of the consequences, of literally being willing to die trying because what do you have to lose? That you would accept that, to die trying, stems from the worthlessness that one feels totally, and the worthlessness that the world and everyone around you communicates when you are so low.

Resilience, taking risks, fighting harder than anyone else, needing to always drive forwards or else fall backwards... for me it has an underlying secret: the profound sense of worthlessness as a human. From never really accepting you are valid and valuable even when you have "made it" by some definition. This is why I've made some decisions the way I have, I have nothing at all to lose... not even the value of life itself.

Which loops back to another recent theme on Twitter and HN and elsewhere... those dark thoughts of suicide if once thought, they never ever really leave.

NB: I'm fine, just being honest, feeling OK, in a good place... but this is what a hard life creates and such lives aren't lived for the purpose of being a lesson to others, and I'm not sure anyone should learn this lesson.

<comment><USER6> This line from Gattaca always hits me so hard (when the genetically engineered brother asks the protagonist how he always won when they competed to swim as far out from shore as possible):

"I never saved anything for the swim back."

<comment><USER7> He only beats the improved one once, as far as I can recall - the last time, the one that matters, when they go all out.

</comment></comment></comment><comment><USER8> I too had a difficult childhood and overcame some moderate difficulties. Then I proceeded to waste my adult youth (20s and most of my 30s) in a multi decade pit of depression and withdrawal from the world. So let's not forget survivorship bias.

<comment><USER9> I can echo that. Low middle class, alcoholic parent, failed family businesses that I wasted teenage and early 20s in, just rebuilding now.

Tragic.

<comment><USER10> Add me to that list. Became sole breadwinner at 22 for a family that had $2M in debt due to failed business. At one point, I was held hostage at gun point by a debt collector. Deeply scarred by debt to this day. Scared of investing anywhere and just hoarding for a rainy day. No family to speak of except wife and child. Very few friends. No purpose to life other than seeing my child grow up and be successful.

<comment><USER11> > No purpose to life other than seeing my child grow up and be successful.

FWIW, in my opinion (and in the opinion of evolution and biology), raising children _is_ the purpose to life. By having children, we give another human the ability to experience life. And, for most of us, they are the only lasting mark we will leave on existence.

<comment><USER12> Aside from the philosophical side of your argument, there is of course the biological argument: There are far too many people. I understand that anyone who advocates reproductive moderation will get out-competed by everyone else, but that doesn't mean that we have to accept mentally that this is the purpose of life. I'd argue that seeing this as your one and only purpose makes you akin to a cancer. Your genes exist to consume, but fulfill no real goals.

<comment><USER11> > Your genes exist to consume, but fulfill no real goals.

Can you give me an example of what you would consider a "real goal"?

</comment></comment></comment></comment></comment></comment><comment><USER13> I've had both experiences. I had very difficult home circumstances, and I "overcame" them at a challenging boarding school. Then I "couldn't handle" them in a challenging Ivy League environment, where I felt isolated and developed depression.

I have a few takeaways from these experiences:

1\. The difference for me between "succeeding in spite of" and "failing because of" was in a few areas. One, good help being available if I sought it out. Two, being able to find a few niches - academically or in extra- curriculars -- where I could excel and feel mastery. And three, having involved, concerned adults around who cared -- even if they weren't "yours" (not _your_ family, not teachers in _your_ major -- they're still there and they still care).

2\. Other peoples' judgments about whether you are "succeeding" or "failing" are, in fact, part of the problem. That's why I put those terms in quotes. Sometimes leaving a bad situation to take care of yourself is success. Sometimes forcing yourself to look good on paper but ignoring your insides is failure. Who knows what's really going on with other people? Not me.

3\. Good health care, especially good mental health care, _especially_ good mental health care that looks at the whole body -- these are extremely important.

4\. Focusing on resilience is important, but it's only half the story. The truth is, most kids who experience hardships are affected by them, often quite seriously. It's better that we as a society figure out how to reduce poverty and misery to help _most_ kids, rather than figure out how to help a few more kids be the exception to the rule.

We need to get back more to a group mentality, rather than an individualistic rising-from-the-trash-fire mentality.

<comment><USER3> I think it's very easy to forget that the same thing can both create advantages and handicaps. Take being an outsider in a field.

Being an outsider in a field can be a huge advantage sometimes. You know things other people in the field don't, you aren't bound by the same prejudices and preconceptions as the insiders, and you'll try things no one else would consider because of your radically different starting point. It can be a huge advantage, setting you apart from the crowd and letting you succeed where others fail.

But you'll also make mistakes no one else in the field does, suffer from and for gross misunderstandings of the simplest things everyone else takes for granted (and never be corrected of them, because no one could even conceive you would not know such a basic thing), and waste huge amount of times and money and effort going down dead-end rabbit holes everyone else would discard out of hand.

At the end of the day, most outsiders in a field will fail - hard and fast - because of the handicaps, but every once in a while an outsider will come along and revolutionize a field, because they are an outsider.

(Or at least, that is the cultural myth ;-)

</comment></comment><comment><USER14> For me, resilience is about having security. As someone who grew up with all of the "poverty, abuse, absent parents, alcoholism, serious illness or some other misfortune" traits, my ability to succeed was directly related to my ability to find a "gang" of others of similar circumstance and trusting them for shared security. It also helped to live in the 80s and 90s when it was easier to "fly under the radar" from external threats like police, government, hostile groups, etc.

The pain of early trauma never goes away. But, I would never be able to cope with that pain if I didn't have the ability to reach out to people I trust for support.

</comment><comment><USER15> I've spent a bit of my life thinking about this as I come from a bit of an odd circumstance as my parents purposely raised me poor (despite having wealth), didn't offer much support and made me struggle thinking it would make me very resilient. They very much believe that anything that doesn't kill you makes you stronger.

The biggest problem with childhood adversity is that you are risking your health. My physical health started to fail and I've been unable to work for the last few years. I wasn't born with the strongest constitution, but I do think my upbringing is a large contributor to my health problems.

I have friends who grew up in wealthy supportive environments, they are doing absolutely fine but the article is right in that they don't have the drive or sacrifice to accomplish huge things. They are also by and large, very healthy. On the other hand, with my immigrant friends (many of whom are very successful), even though most are healthy there is a way higher percentage of health problems.

Another problem that I have is that I have some poor people impulses and habits, like issues with instant gratification. I did get some benefits in that I am amazingly resourceful and have great problem solving skills. I have the resilience to navigate awful bureaucracies and deal with everyday problems which has been helpful in my attempts to restore my health. I do know a lot of normal people would've given up by now.

<comment><USER13> The ACES study really backs up what you're talking about. Adults with high ACE scores (Adverse Childhood Experiences) have a much higher rate of multiple diseases than adults with low scores. [https://acestoohigh.com/](https://acestoohigh.com/)

</comment></comment><comment><USER16> This link works: [http://facebook.com/l.php?u=https://www.wsj.com/articles/the...](http://facebook.com/l.php?u=https://www.wsj.com/articles/the- secrets-of-resilience-1510329202)

<comment><USER17> Here is a bookmarlet[1] that will allow you to bypass paywalls. What it does is redirect you to FB outgoing page. Since news networks allow Facebook users to see their entire content, you get access to the article.

javascript:window.location.href=decodeURIComponent('https%3A%2F%2Fm.facebook.com%2Fl.php%3Fu%3D')+encodeURIComponent(window.location.href);

[1] [http://bookmarklets.org/what-is-a- bookmarklet/](http://bookmarklets.org/what-is-a-bookmarklet/)

<comment><USER18> This is very interesting and useful! Thanks.

</comment></comment></comment><comment><USER19> [http://archive.is/wfNSb](http://archive.is/wfNSb)

</comment><comment><USER20> _Grew up in rural Asia on a small farm. Every morning I have to wake up before the sun goes up to fetch water to take care of the animals.

The animals we had to sell to get basic necessities such as salt, paper, clothing, gas and oil for light and cooking. We ate meat for at most 10 days a year. Always for a special occasion. The rest of the time was mainly potatoes, cabbage, and carrots. Usually diluted into soup.

Coming to America where even poor Americans can enjoy something like a McDonalds burger every single day was unimaginable.

Sadly there are still people right now in these rural impoverished areas growing up like I did. You don't realize it when you are poor and haven't experienced anything else.

One of the most amazing experiences was flying in a plane for the first time in my life._

-From my father who managed to obtain a PHD after fighting through hell created by Communism

</comment><comment><USER21> When you have nothing to lose, you have everything to gain. Every day brings new opportunities - take each one as they come. Believe that anything is possible, even if improbable. Give a fuck, but not too much.

<comment><USER22> Can I get that on a t-shirt?

</comment></comment><comment><USER23> Most cultures have some variant of "shirt sleeves to shirt sleeves in three generations". People not socialized to earn it, don't.

I grew up dead broke. It's in the very core of my being that I have to succeed. There's no home to swim to.

</comment><comment><USER24> If you let your circumstances swamp you and you end up being a victim you don't have the fight to change it. If you have that internal spark to drive you out of the situation then that drive always stays with you and you keep on riding it. Many people don't and continue in the quagmire.

Drifting along as a peaceful and well brought up youth can often continue so you don't have that drive and determination deep rooted in you.

</comment><comment><USER25> I had a somewhat difficult childhood and by about 12 was plotting a way to get the fuck out of my neighborhood. Self taught programmer/business guy who did well. Wife is far smarter and better educated but not interested in making money. She came from a good family and reckons my drive came from the background.

</comment><comment><USER26> An more interesting thing to me is why resilience is so overlooked nowadays. We "design" young people to shatter like a glass when bad things happen.

<comment><USER14> Do you have evidence that things have changed?

I suspect that if you took random samples of young people from several generations and followed them throughout life, the rate of success and failure relative to their peers would be the same across generations.

<comment><USER26> Most people can manage frustration correctly. But some outliers, instead...

[https://en.wikipedia.org/wiki/List_of_school_shootings_in_th...](https://en.wikipedia.org/wiki/List_of_school_shootings_in_the_United_States)

I wonder how this would look in a chart.

[http://www.gunviolencearchive.org/charts-and- maps](http://www.gunviolencearchive.org/charts-and-maps)

[http://www.gunviolencearchive.org/past- tolls](http://www.gunviolencearchive.org/past-tolls)

<comment><USER27> Relevant xkcd: [https://xkcd.com/1138/](https://xkcd.com/1138/)

Also, there's a lot of terrible ways to manage stress without going postal (or some variant thereof) and there's plenty of things other than stress that can lead people to going postal.

<comment><USER26> Xkcb is always a good distraction, but not.

What is interesting is not that there aren't mass murderings in the desert or the sea or that more people are shooted where the bulk of the people lives. This is obvious. The interesting part is that there are _a lot_ of mass murderings in USA and a lot of children and young people killed also. (and those are only the first six months of the year).

Was the same trend in 1970 or 1860 after adjusting the diference of population? If not... well, maybe something has changed.

<comment><USER27> Are we talking about murder in general or just the tiny fraction of it made up of people snapping and committing semi-random violence?

The things that cause of typical murders and the things that cause mass shootings are very, very, very different as are the options for solving those problems. Trying to consider them as related is not productive unless the goal is to create confusion in order to push an agenda that is not supported by facts and statistical evidence we have.

Most murder is basically a symptom of illegal drug trafficking (either directly or indirectly) and the problem is made worse and harder to solve by a bunch of systemic issues (racism, incompetent government, etc.).

Mass murder (the real kind where people commit senseless violence, not the kind where it's just multiple normal murders at one time that people use to inflate the numbers) is basically a publicity problem[0]. Once a few people start doing it and everyone becomes aware of it the people who were on the fence figure why not. Same goes for suicides, riots and a lot of other things.

[0] [https://www.nationalreview.com/corner/why-do-mass- shootings-...](https://www.nationalreview.com/corner/why-do-mass-shootings- happen-best-explanation/)

<comment><USER28> Aren't most murders familly members and friends? That is how I recall it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> I credit any of my "success" to the struggles I had as a child. Our world isn't perfect, and some of us experience different & harsher aspects of its flaws. I think the earlier some experience these flaws, the more they learn to adapt and realize truths of human nature. We learn that many things aren't going to be handed to us and to get what we want we will have to work a bit harder, or struggle a bit more (In the military we called this "Embrace the Suck").

We learn that our families aren't the same we see on our favorite TV shows. It hurts & its sad for young children to experience a struggle, but I think they can ultimately strengthen them -- unless the difficulties are so severe, or misguiding, that they lead children down the wrong path of life (i.e. severe psychology disorders, crime).

Again though, the world/nature is a tough place, and its nice to want to enforce being easier on and conceal realities from children, but I think there is something of value in experiencing "realness"/struggle -- a simple & less- harsh example is the losing team getting no trophy.

<comment><USER30> I was deeply depressed and anxiety strikken during my entire adolescence. After dropping out of university at 20 I got diagnosed with ADHD and Bipolar. While sometimes I wish I'd had a normal life with parents that taught we good life lessons, in hindsight I feel like I've learnt even more fundamental lessons and have experienced some "truths" that I would not have experienced otherwise.

</comment></comment><comment><USER31> I consider most of that stuff to be trash. I think, according to common sense, bad things happening to you is actually bad (for a variety of reasons). Many people who make it out of difficult situations end up with minds and belief systems so twisted that they borderline can't function in human relationships (e.g. a relative who would borderline abuse his children by screaming at them until they were crying and cowering over minor infractions because he believes you choose how you react to external circumstances and his dad pulled a gun on him so this obviously isn't even a big deal and the kid needs to stop overreacting and just try harder)

</comment><comment><USER32> I had a pretty rough childhood. I've always been a bit different (something that I'm now proud of). Not sure if it's spectrum or something else; it doesn't really matter in this context.

I was bullied to the point of physiological symptoms - by everyone except my family. This carried on well into high school (I finally broke free when we moved to a different country). My "friends," at least the closest I had to that idea, _all_ abandoned me in the most demeaning way possible. A teacher picked on me, telling me that I would amount to nothing.

I decided that I would never treat any person that way. Everything changed. I was still (and still am) meak about what is done to me - but I stood up for outcasts. Spreading my time across cliques took effort initially, but it became natural. People started seeing me as a leader, even the popular crowd. The students around me became intolerant towards bullying and ostracization (through avoidance though, not action). I work hard to make people feel special, but it does come off way too too strong right now :).

I'm still broken in many ways, but I am aware of them and work on them. Thanks to the abandonment I experienced, if I feel as though I am being abandoned or betrayed I have an extended panic attack: becoming distrustful and pitiful as it subsides. I'm told I'm attractive, but my mental image is still a 15y/o kid being told "I don't know why anyone would kiss him" by my crush/bully (Stockholm Syndrome much? :)).

It all came down to a choice, spread acceptance, and I've often wondered if explaining that choice would amount to anything. That choice was made more than half my life ago and it is so critical to my being that I couldn't be swayed any other way. If I had chosen to isolate myself, that would have worked perfectly for avoiding those situations - it would have become a reliable and trustworthy solution. Even if I wanted to change that, after being convinced to, it would be habit.

The only real advice I can offer is to teach your children acceptance. They even have to accept the bullies. They have to understand why bullies do what they do. They can be guided to the choice to not repeat what was done to them. I have no idea how to approach an adult with advice: I strongly believe that an adult needs therapy (CBT or somesuch) after a difficult childhood. You just can't let go of nature that has worked for at least a decade based on advice.

I would err against resilience: that is inaction. Becoming the opposite of what tortures you is action.

</comment><comment><USER33> This article is disgusting. Really, what a load of harmful garbage. At risk of overreacting or ignoring the experiences of other people who have experienced hardships such as abuse, mental illness, and others, I want to say that the authors of this article fundamentally misunderstand what they are talking about.

I was severely physically and emotionally abused throughout my childhood and have suffered bipolar 2 disorder my whole life. I am only in my early twenties, but I might be lucky enough to be considered one of those who became "successful" after experiencing such hardships as the article fetishizes: I am attending a good college, earning a good degree, developing experience in a high-demand field, and well on my way to becoming materially successful. By all measures, I am doing very well compared to my peers. In this, I think I am in the minority of people who have gone through similar experiences. I think the majority of people who have experienced these things end up either addicted to drugs, developing alcoholism, living with severe depression, or committing suicide or struggling with self-harm. I don't think there is any difference in the personality or resilience of these people and myself which led down paths different than mine. I think it's just luck.

I don't think I am a winner. This kind of trauma, especially trauma in your formative years, changes you whether you want it to or not. In order to survive, I learned very specific behaviors as a child, such as deescalation and avoidance of conflict, lying effectively about what I've done and how I feel, telling people what they want to hear, and pushing down and ignoring my feelings. I think everyone who goes through experiences like this learns skills that help them in the short term. If you are very lucky, I think (at best) you can learn not to automatically revert back to these behaviors as an adult most of the time. The people who can learn let go of those behaviors well enough might be the lucky ones, but I think they are rare. Don't get me wrong here: I don't think my fate is sealed. I know how to work on unlearning deceptive and destructive behaviors. I always do my best to work with what I have (I learned to do that as a kid, too), but realistically speaking, I will probably never have (for example) a trusting relationship with a woman or ever trust myself enough to raise children (I'm irrationally worried that I would abuse them and become just like my parents).

In a strange way, perhaps some things I learned in order to survive helped me after the abuse, but by and large they were terrible for me. When I was a teenager, I made it my one goal in life not to kill myself. Anything else I accomplished was just extra credit. When I fail in a big way, it's not a big deal for me because I've always had low expectations for my life. I think this might help me instantly rebound from failures and rejection, and end up with opportunities less persistent people might have not gotten. I still force myself to go out there and try my best, because the medication that keeps me functional probably won't keep working forever, so the time I have left is probably significantly limited.

Do you think I'm resilient? Do you think I'm one of the winners?

<comment><USER34> This the same thought that came to my mind as well. We can all romanticize the tough rural life but in my experience it act as a big obstacle in advancement. Having a supporting family who you can turn to for advice and who will encourage you , is not a bad thing. Abuse can leave scars that almost never leave you.

</comment></comment><comment><USER35> There's a good saying:

"Time heals all things...but you might not live that long..."

</comment><comment><USER36> Lessons from adults who overcame difficult adulthoods: the word is "resilience".

<comment><USER37> While the parent post isn't phrased very helpfully, it raises a valid issue: beyond outcomes and people's retrospective explanations of those outcomes (which are, generally speaking, notoriously unreliable bases for forming useful theory), what are we actually talking about when we talk about "resilience"? What occurs differently such that one person develops this pattern and another doesn't? This essay sort of stumbles around these question, but ultimately falls back on describing resilience in terms that are more mythic than scientific. Admonishments like "own the fighter within" are what I expect from oily self-help hucksters, not credentialed psychologists writing in major publications.

</comment></comment><comment><USER38> Why post articles from wsj, it doesn't show the full story.

<comment><USER39> If there's a workaround, it's ok. Users often post workarounds in the threads, e.g. see [https://news.ycombinator.com/item?id=17371963](https://news.ycombinator.com/item?id=17371963).

More here:

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

[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

[https://hn.algolia.com/?sort=byDate&dateRange=all&type=comme...](https://hn.algolia.com/?sort=byDate&dateRange=all&type=comment&storyText=false&prefix&page=0&query=by:dang%20paywall)</comment></comment>


Show HN: Generate REST APIs for Existing Applications - <AUTHOR> http://www.emergentone.com

<comment><USER3> Love this, sorry about the hate brigade from HN. Anecdotally, it seems to be getting worse lately...

To start, at Zapier, we and our customers have a huge need for something like this for any install of open source software with no API or _crazy_ REST APIs. You should get in contact with us. Being the REST API for standard OS packages is something you should do yesterday. :-)

The credential thing is something we fight as well, but people in pain of a solution won't freak out too much, especially since they can just modify the access control to only expose the critical bits.

All-in-all, big fan. I like it.

<comment><USER4> Maybe the comments have changed since you wrote this but I see very little hate amongst the comments - only 1 could be deemed uncivil to my eyes.

[and I know I'm guilty of this at this precise moment but not sure if leading with a meta-comment is especially constructive in itself. If you don't like the tone, then lead by example]

</comment></comment><comment><USER5> Wait, tell me again why I should trust you with database credentials? Whitelist you in my infrastructure? Allow you to define an entry point to my app?

I would honestly rather pay for a product like this and get the source than what is in this offering.

It's interesting nonetheless.

<comment><AUTHOR> We totally understand the hesitation there. We're launching with the hosted direct-connection form, but we have tons of plans to specifically address this concern.

First, we're actively working on a database agent (like chart.io using reverse-SSH tunneling) for increased security and control.

Second, we have longer term plans to offer this platform as an appliance, so everything stays within your infrastructure. That's obviously a much larger project.

In the mean time, we have the advantage of being able to make constant improvements to your API while being hosted.

</comment></comment><comment><USER6> I can see the pros and cons of the idea.

Pros

1\. Expose your data through an API without writing much (any ?) code.

2\. Time saving.

3\. Since the API itself is fed by the framework, the opportunity for bugs is limited.

4\. I can think of some people / businesses that would pay for this service.

Cons

1\. I cant quite get why a service like this would limit its requests / month [1]. My take on it was that you are selling the transformation of the data into a service - as a service. I guess the calls / month is to also benefit from the value that your service adds to the data ? Number of calls made might not directly translate to value.

2\. You are limited to relational models.

3\. There are tricky conditional requests / data munging / orchestration etc that REST services are expected to take care of sometimes. It can quickly become messy if a client wants this. Is there a translation / conversion layer that can be inserted between the API and its caller ?

Some feedback...

1\. Is there some way a developer can try this out before pitching it to a product manager or a higher-up ? There seems to be no direct way to do that. All plans under pricing are tied to money so some folks might be averse to signing up. Most devs just want to download and hack something out to show someone what a product is capable of. The dev can be your marketer within a company.

2\. The layout of your site is neat. The call to actions are very specific and targeted.

3\. I think your product has the potential to be awesome. Good luck.

[1] - <http://www.emergentone.com/pricing/>

</comment><comment><USER7> I hate seeing logos from publications apparently praising/reviewing a product (if you could call TechCrunch a publication) without a link to their article. It just seems fishy to me... It's a "Show HN" and a new product, so I'm sure it wasn't intentional - But just wanted to let you know that I personally close such tabs immediately _(unless I've heard about the product from someone else, and it wasn't just a random Google search result)_ :)

<comment><AUTHOR> Apologies for this oversight - we'll fix it ASAP. In the mean time, here are the articles we were mentioned in:

TechCrunch: [http://techcrunch.com/2012/04/11/techstars- debuts-11-cloud-s...](http://techcrunch.com/2012/04/11/techstars- debuts-11-cloud-startups/)

Gigaom: [http://gigaom.com/cloud/apis-and-data-dominate-techstars- clo...](http://gigaom.com/cloud/apis-and-data-dominate-techstars-cloud-demo- day/)

TNW: [http://thenextweb.com/insider/2012/04/11/these-eleven- compan...](http://thenextweb.com/insider/2012/04/11/these-eleven-companies- relocated-to-san-antonio-to-join-the-first-techstars-cloud/)

</comment></comment><comment><USER8> This looks like a pretty neat web app. Nice UI and promo video, also. I think the core audience for this, is people who are somehow locked in using MySQL, though. For someone starting out, it seems like a bad idea to use this because it is sort of encouraging bad habits, right?

For example if you making a new sandwich, why would you make a device that takes the peanut butter from the jar, puts it in a bigger jar, then you use a knife to get the peanut butter from the bigger jar to put on your PB&J? It just seems like a bad middle man, if you are starting a new project.

Maybe I'm wrong, but again, it looks neat for people maybe in old companies where they have no choice but I just hope this doesn't encourage people to start with MySQL just for this app or with a purpose to only turn it into an API.

Or maybe another application of this is turning an existing blog with WordPress (MySQL) into an API? Not sure...

<comment><AUTHOR> We definitely built the product with existing applications (without an API) in mind. We found it much more difficult to add an API after-the-fact than if you design for one in the beginning. In fact, the idea came to us after attempting to build an API for a 10 year old PHP application at Rackspace.

</comment></comment><comment><USER9> Nice piece of software, I used the trial for a bit and was able to get an API up faster than I could program out one myself. As a consultant I have a few clients with rather bad old websites who could use something like this for new mobile apps they are wanting to develop. This makes it a bit easier to scale out to that.

</comment><comment><USER10> Another app that generates REST code for you (in PHP) as well as a simple web interface is <http://phreeze.com/>

</comment><comment><USER4> A couple of philosophical objections:

1\. There is a real benefit to building an API into the core of your app - <USER2> forces the kind of loose coupling that will improve your entire architecture.

2\. Your db schema != your business logic. The API should mirror the latter and not the former.

Having said that... Automatic language bindings? I want some of that...

</comment><comment><USER11> I'm most excited about the idea of automatic Client Bindings. I've been thinking about how cool it would be if you could dynamically generate a Ruby gem for your REST API, as well as a documentation site. There's already grape (<https://github.com/intridea/grape>) and grape_doc, so it looks like 'grape_client' is the only missing piece. Imagine being able to automatically generate versioned client libraries for ruby, php, iOS, android, etc.

Would be super awesome if emergentone could get behind an open source project like that.

EDIT: Welp, looks like 'swagger' is way ahead of me! <http://swagger.wordnik.com/>

EDIT2: The grape-swagger gem is even further ahead of me! <https://github.com/tim-vandecasteele/grape-swagger>

</comment><comment><USER12> For a n00b like me this looks interesting. Wouldn't mind taking a test drive to see if it's something that could work long term. I agree with @josegonzalez. Seems like a leap of faith and you lose a bit of control. However, if in the long run it's a stable environment and everything works as promised could be a solid solution.

</comment><comment><USER13> Well-presented, nice work. See also: <http://apify.heroku.com/>

<comment><USER14> Also <http://developer.yahoo.com/rss/> and <http://developer.yahoo.com/yql/> to some extend.

</comment></comment><comment><USER15> I would have killed for this a few months back and actually googled around without much success.

I look forward to experimenting with this, I think it's a great idea.

</comment><comment><USER16> Nice application but I think it would be something like library because it doesn't seem a good idea that sharing database credentials to a startup.

</comment><comment><USER17> This should serve as a loosely coupled, managed API server which acts as a load balancer to a larger extent, if it can intelligently cache requests and act like memcached for API requests.

Worth mentioning, this can be a big time saver to generate APIs for legacy type websites, small new frameworks and languages that don't provide native framework level support to build API's.

<comment><USER18> > This should serve as a loosely coupled, managed API server which acts as a > load balancer to a larger extent, if it can intelligently cache requests and > act like memcached for API requests.

I would pay for this.

</comment></comment><comment><USER19> <http://minuteproject.wikispaces.com/REST>

</comment><comment><USER20> Maybe you should re-title this "Generate REST APIs for Existing Databases". IMO, database != application. I opened this in anticipation of something that would generate REST APIs for legacy (ws, corba, rmi, etc) interfaces.

</comment><comment><USER21> Another one!? How hard is it to write a few lines of Sinatra, Express, Flask ... code, then deploy with Heroku? This is getting ridicilous. Are programmers becoming so dumb they can't create an API on their own?

<comment><USER22> Enterprise applications are usually so deep and far away from the database that building an API by hand, per se, would be nearly impossible. This product is targeted at those companies, not small, agile ones.

<comment><USER23> As someone who works on a deep and far away application I would have a hard to seeing how connecting to our datasource (which has been abstracted to hell by ORM layers) would be a better option for developing a rest interface than using existing infrastructure. That being said, I like the path they are taking and think it's a valid approach... just not sure how many people actually need it.

</comment></comment></comment><comment><USER24> my 2c: As a developer I wanted a one line explanation of what the technological solution is. "Generate a new API for your existing application!" is far too vague. It doesn't tell me any of the most important things I need to know about the product.

the Product page has the stuff on it that I wanted to read. IMO that should be a primary link from the front or part of that content should be on the front. at the moment its all "BUY NOW" and yet I have no idea what it is unless I watch the video. so that causes buyer suspicion.

</comment><comment><USER25> Can they generate API to get me the connection path between two people on facebook :) :)

</comment><comment><USER17> How is this different from apigee?

</comment><comment><USER26> Would love to see mongodb support.</comment>


Show HN: ReadHNLater – A HN PWA with a "Read It Later" Feature - <AUTHOR> https://github.com/brapifra/readhnlater-pwa <comment><AUTHOR> Thank you for the support guys! I've updated the PWA and you can now access the comments and ASK HN items!

</comment><comment><AUTHOR> As I couldn't find any HackerNews PWA which allowed me to save items for reading them later, I decided to create my own. I'm aware that it has some flaws (Comments & Ask HN items are not working right now), but I'll add more features if people are interested.

Tech stack: React.js, styled-components, redux, redux-offline and HN Firebase API

</comment><comment><USER2> Hacker News already has a similar feature..

You can just up vote a submission (or click favorite), then go to your user profile and view it later.

This could just integrate into that BTW.

<comment><USER3> If you're running Safari, right-click link → Add to Reading List. It's site agnostic, syncs across devices, and you can even have Safari fetch and cache your reading list for offline access.

<comment><USER4> I wonder how solid that caching feature is, and whether it works for eg a JS- powered PWA that's fully client-side rendered.

</comment></comment></comment><comment><USER3> Looks good, but it seems to be missing a home screen icon. On my iPhone it uses a screenshot for its icon.

A dark theme option might be nice.

</comment><comment><USER5> Would be nice if the `more` button replaced the existing stuff instead of adding to the bottom.

<comment><AUTHOR> Yeah I agree, but as far as I know, we can't paginate any firebase request. That means that this feature is not possible unless we load the first 60 entries and show only the 30-60 ones, which is kind of a useless solution :(

</comment></comment><comment><USER6> On Firefox, I am unable to access the comments. Clicking on the comments link results in nothing happening.

<comment><USER7> Yep I also run into this issue.

<comment><AUTHOR> I've updated the PWA and now you can access the comments!

</comment></comment></comment><comment><USER8> isnt that what browser Tabs are for?

<comment><USER4> They most definitely...

 _sound of mechanical HDD churning_

...are, and I'll catch up on...

 _disk I /O LED is on solid_

...all of them when...

 _" Tabs Unresponsive" window briefly flashes opens for 343rd time today, then disappears after one second_

...my computer's a little more...

 _everything I 've just blindly typed finally appears in the textarea, all at once (oh hey no typos!)_

...responsive, and I can smoothly...

 _renderer stalls again and I return to blindly typing_

...use my computer to actually read through and close everything.

\--

I have a MASSIVE MASSIVE HUMONGOUS SO INCREDIBLY ANNOYING problem with modern tabbed browsing: tabs are processes. This reeks of 1970s-era software design.

This disasterous model makes switching between large numbers of open tabs impossible unless you have an industrial-workstation-class machine. You know, >=24 cores, >=64GB RAM.

...Coincidentally (or perhaps not), the kind of machine Chrome is developed on. :/

I only have 8GB RAM, and, as I noted before, a mechanical HDD which is not especially fast.

I have upwards of fifty screenshots of my load average skating around the 30-40 mark, solely because of Chrome swapping.

I've also had Chrome swap to disk (HDD LED on solid) for seven hours straight.

\--

For the past couple of years I've used The Great Suspender to help me try to manage open tabs. I've slowly reached the conclusion that using it has largely been extremely destructive to my sanity and quality of life. The above scenarios are happening because of TGS.

This is because TGS allows me to open a truly stupendous number of tabs - about 800-1200 (yup!) - and because of how Chrome's process model works, all these tabs get bound to one renderer process, so they all only need the overhead of the one process instead of like say 30 host processes, and the net total memory usage is only around ~1.5-2GB or so.

Sounds impressive... until you learn that this ~2GB blob of uselessness _cannot_ be swapped to disk - in the sense that Chrome (for whatever inane reason...) needs to constantly chat with the process over IPC, which works by twiddling bits in the process' shared memory allocation, and then the process does even more twiddling as a result of the IPC.

From this point, either two things happen.

\- Let's say I'm doing a large pile of research/work and opening new tabs at a furious rate. TGS suspends tabs after half an hour, so I can pile up a large bunch of unsuspended tabs. At some point the RAM used by the unsuspended tabs will exhaust my RAM and I'll begin swapping to disk.

\- The other possibility is that I keep the number of un-suspended tabs fairly low, so 99% of them are suspended. This will allow me to eke ever closer to the 1200 tab mark, at which point the suspended-tab host process will actually be using close to 3-4GB RAM, leaving comparatively little RAM for the OS, the browser, other services, and (oh hey) the unsuspended tabs I have open.

In either of these situations, the exact moment I hit certain watermark, system performance and responsiveness unravels at a remarkable rate, it becomes utterly impossible to even use the computer (as I noted before about high system load), and I have to get the number of tabs down to about 200 before everything rights itself.

At this point my only viable practical option is to use something like Session Buddy to dump all the tabs I have open to disk, and then batch-close all of them, regardless of whatever was open.

:(

To answer your question - honestly, and fairly - no, tabs are NOT a viable read-later mechanism.

\--

Obviously I don't have all the time in the world to simply sit on HN all day - or, at the very least, the physical attention span to focus on reading.

Some extremely successful experimental medication has helped me to be able to think several orders of magnitude more clearly than I could ~15 years ago, so in the interests of being as relevant as possible to the workplace when I'm finally able to look for work, I'm doing my level best to catch up and absorb as much information as I can while I have the time.

I open HN, scroll through the frontpage, open about 30 more tabs, and... oops, now I have 30 things to read. They're genuinely interesting! I carefully evaluate each headline as I'm middle-clicking to filter out what I don't think I'll benefit from reading (in the long-term).

I don't want to close unread tabs. In a lot of cases what I find on here has helped me connect dots in incredibly helpful/relevant ways, clear up misconceptions I've had for years, or shown me how to articulate something I've been tripping over for longer than I can remember.

So, it's not really a case of prioritization: I'm trying to information- download as much as I can. In the interests of viability I'm only clicking on things that I am genuinely interested in.

Over 10 years ago I was diagnosed with high-functioning autism (I'd say mid- to-high-functioning myself), and this meant my worldview was very narrow/shallow - in the sense that "only X, Y and Z are interesting", and everything else was evaluated within those scopes, for better or (often) worse. My brain's been freed from that bondage - I can now evaluate things on their own terms - so as far as absorbing information goes, my interests are now [able to be!] "basically everything"!

But this presents a great problem, because I'm still working on my ADD, so I physically can't sit still for long enough to _actually read the articles_.

Perhaps you see the dilemma: a "read later" list would just be another interpretation of a "18,932" over an email icon. I actually have approximately 20k bookmarks, so this is literally the case.

\--

I'm not sure why I wrote all of this. The bit about TGS was easily a rant. I think the last section is perhaps a plea for help. I've had "rewrite all the extensions you use into a single helper tool that integrates everything together" on my todo list for about two years, but I still haven't started it because I've absolutely no idea where to start. Perhaps someone will read this and have some objectivity on the above that I most definitely don't, in which case I would highly appreciate your advice.

<comment><USER9> Install The Great Suspender chrome plugin. Turns your life around.

<comment><USER10> > Install The Great Suspender chrome plugin. Turns your life around.

The parent already tried TGS or, _The Great Suspender_. Their whole post was about how TGS failed them.</comment></comment></comment></comment>


Ask HN: Have I found a big flaw in iCloud two factor authentication? - <AUTHOR>

I just set up two factor authentication. The only trusted device I have is an iPhone. I signed into the iCloud website on my laptop to test it out, and the two factor code SMS then appeared right on my messages app on the laptop itself. This seems to defeat the purpose.
I have Yosemite/iOS 8's new SMS forwarding set up so I can text my Android-owning friends from my laptop. I suspect this is the culprit.
The solution would be using some Authenticator app on the iPhone itself, but without that, it seems like 2FA isn't safe if you're using SMS forwarding with the new versions of Apple's OS's.
Am I missing something obvious?
Thanks <comment><USER2> The phone needs to be connected over the same wifi for the sms messages to be pushed to the computer.

It wont happen if the phone is not on the same wifi. So the assumption is if both your devices are on the same wifi network, you have ownership of both and can verify. Now if someone steals both, you have bigger problems.

Go ahead and test this after turning off wifi on your iPhone and see if this happens.

<comment><USER3> No, thats phone calls. SMS relay works no matter what network the units are connected to.

</comment></comment><comment><USER4> Doesn't this only happen if you were on the same Wifi network with your phone and laptop?

</comment><comment><USER5> This is the same question that I had while using Pushbullet. If notifications appear on the laptop, then 2FA isn't really helping.

Pushbullet allows you to "mute" SMS notifications, but that's one of the key features. How do others solve this?

<comment><USER6> Like in iPhone you can choose what content you want to display in your notifications. Pushbullet should push an update so that people can choose to display only the title of the notification and not the body.</comment></comment>


Algorithmic symphonies - HTML5 generator - <AUTHOR> http://www.olegkikin.com/audio/audio.html

<comment><AUTHOR> Inspired by this post:

<http://news.ycombinator.com/item?id=3063359>

You can append a custom formula as a hash tag:

[http://www.olegkikin.com/audio/audio.html#(t>>12|t&#...</a>

</comment><comment><USER2> I love when posts inspire other posts, awesome stuff! Here's my contribution: Math.pow(Math.sin(t * 4),t * 3)

</comment><comment><USER3> ARGH MY EARS! What the hell?! I wear headphones!</comment>


Cognitive Biases in Programming - <AUTHOR> https://medium.com/@evidanary/cognitive-biases-in-programming-5e937707c27b <comment><USER2> This is a list of five cognitive biases that one could go research a lot deeper. On its own, the post doesn't offer much actionable advice on how to use or avoid these day to day. They even conflict in nonobvious ways. For example, I use the arrow keys in VIM rather than learning more efficient, more efficient navigation. You could call that hyperbolic discounting, but I consider it avoiding premature optimization (I don't use VIM often).

Getting caught up in cognitive biases is itself an example of a problem that interferes with our productivity. It doesn't strike me as a useful view of the big picture, other than the realization that perhaps software engineering is all about balancing these sorts of conflicting factors. E.g., know when to experiment, quick and dirty, and now when to go deep in refactoring.

<comment><USER3> Just to play devil's advocate: maybe you would use vim more frequently if you were more efficient and thus more productive with it?

<comment><USER4> To be honest, I found this to be an unfortunate example, especially when mentioned in the same paragraph as writing tests. Knowing all the shortcuts in VIM -- in fact, using VIM at all -- has _very little_ impact in software productivity and quality. Remember, how efficiently a single programmer types matters very little, because that's not where most time in software development is spent, or where most problems arise, for that matter.

<comment><USER5> Learning vim commands won't increase how fast you type, it will increase how fast you edit.

<comment><USER4> Again, does it matter how fast you edit when compared to spotting _what_ to edit, _which_ change to make, and _how_ to explain it to your teammates? I think it matters very little. Obviously, if you're so slow you it drives your teammates crazy then it becomes a problem, but really, I don't think the difference lies in learning VIM's shortcuts.

</comment></comment></comment></comment></comment><comment><USER6> Hyperbolic Discounting Sounds really weak. So what if I use the arrow keys in my editor rather than learn some obscure magic to get where I want a bit quicker? Likewise, testing is always in that area that is nice to have in code that is going to last more than a few days, but adding them in up front when you are still exploring the design and solution space is just dumb (up there with premature abstraction).

<comment><USER7> _> So what if I use the arrow keys in my editor rather than learn some obscure magic to get where I want a bit quicker?_

Editor magic is overrated. I learned on vim and was proficient in it, but over time discovered productivity was higher by just using dumb navigation.

Every editor feature I need to think about is some feature about the problem I'm working on that I need to forget.

<comment><USER8> Sounds like you were not proficient at all. I only ever need to think of vim features when it comes to macros/substitute, but those are things that save me tens of minutes of manual input. The rest is muscle memory. The key is to not religiously learn the shortcuts but only stick with the ones you need daily.

<comment><USER4> Do you think learning you editor's shortcut significantly affected the success of the product you were developing, as opposed to thinking about the problem, choosing the right design and architecture, writing useful tests, having good communication with the rest of the team, prioritizing the right features, etc?

I mean, I'm sure it had _some_ impact, but how did it compare to the other factors I mentioned? My guess: proportionally, its impact must have been insignificant.

</comment></comment></comment></comment><comment><USER9> Hmm,

I would like to add a couple more - I'd be interested if either of these has a name:

* Assuming that complexity is additive.

* Assuming that complexity of an extension to a piece of software is proportionate to the difficulty of imagining such an extension.

<comment><USER10> These are good.

I love it when my initial assumption that an imagined new feature would be a complex and painful refactoring exercise only to find out that a few lines of change was all that was required!

Those days I almost feel like the universe has purpose.

<comment><USER11> Sadly, those days are few and far between.

</comment></comment></comment><comment><USER12> A bunch of non-falsifiable claims with a colorful unrelated brain graphic. Not very useful.

</comment><comment><USER13> There needs to be one about scar tissue. Programmers tend to fear doing anything that they feel burned them in the past.

<comment><USER14> Weird. They almost sound like.... humans, or something.

</comment></comment><comment><USER15> All of these biases certainly exist. What I want to see is some evidence of how often these actually occur, how much damage each one does, and what ways exist to mitigate them.

I would agree it helps to become aware, but I honestly don't know how to mitigate any of them. It seems like all of them involve predicting the future. I don't know what payoff I'm going to get if I learn vim's wacky and hidden keyboard commands, and the payoff isn't likely to be large if I avoid using vim whenever possible.

Hyperbolic discounting seems like a generally good bias to have - unless I have a very specific bet in mind or the big payoff is an obvious benefit to me or a requirement of some kind, then choosing quick wins is probably the right choice more often than not.

Premature optimization seems like almost the exact opposite of hyperbolic discounting, and avoiding premature optimization feels like the right decision the majority of the time.

But I never know for sure which one was actually the right choice until long after the decision has been made. I've certainly optimized things that didn't need to be, and I've certainly gone for quick wins and regretted not planning for a bigger payoff.

</comment><comment><USER16> IKEA Effect: This is a good one, however I think it's also a bit oversimplified...

>If you've ever worked for a company that used a dumb internal tool rather than a better out-of-the-box solution, you know what I'm talking about.

This is probably not what the author is talking about, but there is a valid case for "inferior" in-house tools or libraries this overlooks. In some cases a suitable off the shelf component exists, but is an over-generalised, over- complicated black box with the associated disadvantages. If this component is an important piece of your product or business, and you only need a fraction of the functionality provided by the off the shelf one, then it can be preferable to create an in-house version to gain simplicity, focus, insight and control.

As i'm sure many people have experienced the opposite of "dumb internal tools" in the form of frustratingly buggy and unpredictable off the shelf components, when these problems are too broad to reconcile with upstream contributions it's sometimes worth creating a less-capable "inferior" internal version more suited to your use-case.

<comment><USER17> > As i'm sure many people have experienced the opposite of "dumb internal > tools" in the form of frustratingly buggy and unpredictable off the shelf > components

For example pretty much everybody who has to use SAP, Navision or other such tools. Especially when it comes to upgrading all the local little modifications to the next service release, gah!

</comment></comment><comment><USER18> > _Have you ever found yourself using the arrow keys in Vim?_

Real problem is that you are forced to use Vim.

For a long time it was the only decent code editor for terminal. Vi is still default editor on many distros.

</comment><comment><USER19> The brain can make real-time decisions because it does not evaluates reality from scratch at every moment, but rather runs everything through a learned model of the world. That model is based off incomplete information, and will always be biased.

</comment><comment><USER20> "IKEA effect" seems to be a different name for the "NIH syndrome", which I prefer to call "ownership preference" anyway, mostly because it doesn't use a brand name or an acronym.

</comment><comment><USER21> I'd like to add one which I might call "Excessive machine sympathy." This is where the programmer shies away from using a certain technique because it's too difficult, not quite grasping that it's difficult for the _computer_ but not for the programmer. I often see newer programmers acting like:

      f1()
      for element in array {
        f2()
      }

Is easier to code than:

      for element in array {
        f1()
        f2()
      }

<comment><USER22> Did you mean to say 'easier'? I don't think I understand the point unless that should be 'harder'. Maybe I'm guilty of the bias you're talking about.

<comment><USER21> Yes, I see people thinking the first one is easier because they're thinking that you only do f1() once, instead of doing it thousands of times. In reality, both are equally easy to write, but it's hard for some people to shift their thinking from the work the computer does to the work the programmer does.

<comment><USER22> That's really interesting. So the point is that they're effectively the same in the sense of the amount of work necessary to write the code, and putting in the effort to code the first one might be premature optimisation if running f1() thousands of times isn't actually an issue, or that you might need to debounce f1(), or guard against side effects, which is 'harder'.

I think I'd find it _really_ hard to let go of the idea that my code might be doing something wasteful like calling a function it doesn't really need to call. Maybe it's because I've been coding since the early 90s when clock cycles and memory actually mattered a bit more. It's certainly given me something to think about. Thanks.

<comment><USER21> What I've seen isn't even a matter of worrying about being wasteful with CPU cycles, it's a gut reaction against it because it feels like more work.

<comment><USER23> Well, it's a good gut reaction to have. As you wrote yourself "In reality, both are equally easy to write" \- therefore the first one is a good default to assume, because in some cases it may actually matter.

If you choose good default, then you won't spend any more time thinking about it; if you have bad defaults, then you will have to figure out where the slowdown comes from and eliminate it.

<comment><USER21> It's a bad gut reaction to have for a newer programmer who is struggling to find any solution to the problem at hand.

<comment><USER23> So, if I understand your point correctly, you mean that newer programmers, who are struggling to find any solution at all, would go for the (subjectively) easier one, i.e. the one with f1() outside of the loop?

I agree they would go for the easier one, but I don't understand why they would perceive the first version to be easier. And even if they would, why is it bad?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> Seems like an aggregate explanation for why technical debt exists. :-)

</comment><comment><USER14> People who don't use their text editor in the manner I do have a brain disease- oops, I mean _cognitive bias_.</comment>


Booking.com hiring 20+ Perl devs, but you should know truth - <AUTHOR> http://blogs.perl.org/users/bookingemployee/2012/03/truth-about-bookingcom.html

<comment><USER2> Sounds like a nightmare to work there. How can they be successful with this attitude towards programming?</comment>