Rank-reversal aversion may be causing more social problems than we realize - <AUTHOR> https://arstechnica.com/science/2017/07/intriguing-experiment-reveals-a-fundamental-conflict-in-human-culture/ <comment><USER3> This doesn't touch the real problem. Nobody intentionally creates a policy that will take $20K from someone with $40K and give it to someone with $10K. When that happens at all it's unintentional (e.g. 20 programs to transfer $1K that weren't expected to overlap) and people who discover that outcome find it outrageous.

Because that was never the problem with income inequality to begin with.

The problem isn't that one person makes $10,000 while another makes $40,000. Those people are both struggling. The problem is that one person makes $10,000 (or $40,000) while another makes $10,000,000.

Reversal never even enters into it. If you took $9,900,000 of the richer person's money and split it between 1000 poorer people, the richer person would _still_ have more money. Even though that would imply a 99% tax rate.

<comment><USER4> >The problem is that one person makes $10,000 (or $40,000) while another makes $10,000,000.

Explain to me, how is that a problem. Suppose someone invents a method to make lots of clean renewable energy very cheaply. They make a company and earn $10,000,000. Did they not deserve the fruit of their labour? Is that a problem?

<comment><USER5> Ignoring the 10,000 externalities your scenario completely ignores, why should such a person enjoy any more compensation than any other job? Everyone is enjoying the "fruits of their labour" from their wage. What makes you think this deserves more compensation?

<comment><USER6> > What makes you think this deserves more compensation?

The idea that we live in a meritocracy, and intelligence and novelty are rewarded more than being a corporate drone.

We don't live in a meritocracy, but it's an ideal that many (probably a lot of folks who work in startups) would rather push towards: replace the "lucky" rich with the "deserving" rich.

<comment><USER5> > The idea that we live in a meritocracy, and intelligence and novelty are > rewarded more than being a corporate drone.

But this argument assumes that financial incentives actually encourage and yield good work. Studies have shown this to be false. When you provide monetary incentives to achieve a goal, the outcomes are _worse_ than the outcomes from people who pursued the same goals for no financial incentives.

Without financial incentives, people do work that gives them purpose and meaning, which ends up helping other people more than any financially incentivized goals.

</comment></comment></comment></comment></comment><comment><USER7> " _When the researchers tested children, they found that rank-reversal aversion doesn 't develop until children are 6-10 years old, which suggests that this aversion is learned culturally as the child grows up_"

" _In addition, the Tibetan herders who participated in the study had a markedly higher level of rank-reversal aversion than other subjects. This also suggests the trait is cultural_ "

An all too common kind of sloppy thinking, which generally kills my desire to read any further. No such thing is suggested. The trait may be learned, or it may be completely hardwired, kicking in action between ages six and ten. Different populations may have evolved different inbred attitudes to equality.

<comment><USER8> Just like male facial hair - it doesn't start appearing until the teenage years so its appearance must be cultural :P

When you have a preformed ideological conclusion then logic is the first causality in any study.

<comment><USER9> > logic is the first causality

Probably the opposite of your intended meaning heh

<comment><USER8> LOL. Yes that should be casualty :)

</comment></comment></comment></comment><comment><USER10> It's hard to understand in a lot of detail what the experiment was doing.

It seems like an alternate explanation is that people don't like to artificially pick winners and losers, but they're willing to lessen the gap between winners and losers if it's too big.

There are philosophical concerns about justice and utility in messing with organic selection mechanisms. Perhaps a fear of instability plays into it, but it seems like there are more nuanced narratives that can be applied as well.

<comment><USER11> _It seems like an alternate explanation is that people don 't like to artificially pick winners and losers, but they're willing to lessen the gap between winners and losers if it's too big._

Isn't that the same thing, just rephrased?

<comment><USER10> I think the value implication in the analysis is different. An aversion to rank reversal applies value to rank stability itself. An aversion to picking winners and losers applies value to the selection process. You could argue that the signal is still strong if the winners made twice what others made, but that it's lost if wealth is wholesale shifted from the unfavored to the favored.

<comment><USER12> It's notable this was a experiment from a Chinese university - in the 1950's and 1960's there was significant role reversals in Chinese society - <USER2> had their land confiscated, and those who resisted were rounded up and killed. This was followed up by the Great Leap Forward movement which ended up with millions dying from starvation.

</comment></comment></comment></comment><comment><USER13> Another way of interpreting the results:

\- 76.87% of subjects accepted a 25% tax rate intended for redistribution.

\- 44.80% of subjects accepted a 50% tax rate intended for redistribution.

It's hard to infer much beyond that.

Perhaps they need to test for a larger number or more fine-grained tax levels between 25% and 50% and see if there is indeed a step change (or other sharp decline) in acceptability when it "reverses social order". Or if there is a smooth distribution curve based on tax rate, not relative position.

\---

Even if you take the results as intended, that subjects were considering social order and not tax rate, you still have to concede that this could be about "fairness" and not "rank". It shouldn't be surprising that a majority of people dislike redistributing more than is necessary to achieve equality. That helps explain the results with the children. Ages 6-10 is about where they start to understand "fairness" from the perspective of both parties [1].

Additionally, taking the tax perspective into account, "Person B" appears to be subject to a lower tax rate than "Person A" despite ending up with more money, which subjects would likely see as unfair.

[1] [https://www.theatlantic.com/science/archive/2015/11/how- fair...](https://www.theatlantic.com/science/archive/2015/11/how-fairness- develops-in-kids-around-the-world/416520/)

</comment><comment><USER14> Instead of overthinking and assume that people don't want to upset social hierarchy, I suggest the researchers to take a step back and consider that people prefer symbiotic over the antibiotic scenario. In this "game", we may not know how A came to wealth, but we would be certain how A lost wealth. Similarly in the second scenario, while we know B is still less wealthy compared to A, at least B is wealthier than before. Value creation vs Value transfer. (Entrepreneur v. Investment Banker)

<comment><USER15> I was wondering about this too.. when I got to the part about how the Tibetan herders were even more against rank reversal, it reinforced it for me.

When someone is a herder, the only way to earn wealth is by working long hours, busting your butt day in day out, and being careful about what you have.

I'd wager their mindset is that they know the pain, effort, and time it takes to accumulate wealth so they're loathe to take it from someone else.

<comment><AUTHOR> _" they know the pain, effort, and time it takes to accumulate wealth so they're loathe to take it from someone else"_

Except that the scenario was explicitly designed to make clear that the wealth in question was _not_ a result of effort but was acquired purely randomly.

<comment><USER16> Yeah, but not sure that simple statement is enough to completely undo generations of cultural belief/experience regarding how wealth is earned.

</comment></comment></comment></comment><comment><USER16> Not sure why they draw the conclusion that the aversion is about not wanting to upset the social hierarchy. That's an amorphous statement in any case and carries different connotations.

Seems a more succinct conclusion is that it's about fairness. Most view the economy as a zero-sum game, and we generally measure our standing in society relative to others. So, the idea of redistributing wealth to the point where relative fortunes are being inverted may violate our sense of fairness.

</comment><comment><USER17> I assume that it has less to do with upsetting the social hierarchy than it does with the possibility that _my_ wealth might be redistributed to someone else.

<comment><USER18> Directly in the article:

"What's especially intriguing is that this study reveals that people didn't like to see other people's fortunes reversed. So this isn't about selfishness or protecting what's yours. It's some kind of fear of upsetting the hierarchy that goes beyond greed."

The article then goes on to present possible hypothesis for this behavior.

<comment><USER17> I disagree with the thesis.

<comment><USER19> This is anecdotal, but I've seen it in my own life. People treat you completely differently if they think you come from a privileged background (or a disadvantaged one), and one of those differences is their willingness to grant you opportunities, and how much they're willing to pay you.

The fact that I come from a broken abusive home and a really messed up difficult childhood is a secret I guard pretty closely. The day I started wearing nice collared shirts and very subtly encouraging/allowing people to assume I come from privilege like they do (like almost everyone reading this does), I experienced an incredible reversal in career momentum. It completely turned my life around.

Not only that, but it totally changes the calculus of what people are willing to pay you. If someone has nothing and is desperate, that means they'll be willing to work for less, and anything higher would be charity. Your expectation is that they will be happier with less, and that they will be thankful for it.

If you think someone's parents own a nice lakefront house and a yacht, and they're young and white and wear nice shirts like you do and live in the bay, well clearly that person wouldn't accept less than $140k base. Your expectation is that not only will they demand fair and competitive pay, but also that dollar figures all seem low to them because they've been around money their whole life, so you better offer them more.

I don't know if it's as simple as "rank-reversal aversion." I think it's much bigger and more complicated than that.

In the broadest possible terms: People as a whole profile and categorize each other, and those categorizations are reflected in nearly every aspect of how people interact with each other. Part of the outcome of that is a tendency to reinforce success in the already-successful, and a tendency to reinforce failure in the already-failing.

<comment><USER5> > The day I started wearing nice collared shirts and very subtly > encouraging/allowing people to assume I come from privilege like they do > (like almost everyone reading this does), I experienced an incredible > reversal in career momentum. It completely turned my life around.

Sorry to hear that, but do you really think it's the perception of privilege? Isn't it more likely that you just started projecting the image of a competent pro that has his shit together, and people just responded to that? The only way to know for sure is to maintain your image while divulging your background. If your fortune changes, then you were right. Personally, I suspect people will respect you even more because you're even more competent and accomplished than your false image.

</comment></comment></comment></comment></comment><comment><USER20> arrow's theorem can be used to point out problems with social rank-reversal aversion, too, imo

<comment><USER21> Can you explain?

</comment></comment><comment><USER22> This article makes me uncomfortable

</comment><comment><USER23> if we could only get over these pesky biases we might finally start introducing 150% marginal tax rates and let the middle class taste life at the upper middle class level. (by taking it from them, exchanging their places.)

as it stands the middle class really has no way of "trading places" with the upper middle class, who can always out-earn them.

a marginal tax rate above 100% would close this loophole.

yes this comment is sarcastic.

</comment><comment><USER24> Most seem to miss the bigger picture with this study. People don't like rank in general, even when it's reversed. In other words most people, in there heart of hearts are communists and would prefer a classes society.

<comment> barry-cotter Egalitarianism is not Communism. Humans have had agriculture for about 5,000 years and states with hierarchy about the same amount of time. Before that behaviourally modern humans were around for ~200,000 years. They lived in bands and tribes that may occasionally have gotten as big as 200 people, almost all of whom would have been either related or in a relationship with a relative.

Humans are egalitarians and would prefer a classless society. Ants are Communists.

On human egalitarianism

[http://www.overcomingbias.com/2012/05/forager-vs-farmer- mora...](http://www.overcomingbias.com/2012/05/forager-vs-farmer- morality.html)

<comment><USER25> Humans have and have always had social status structures, reaching back into evolutionary time. This is why such a huge portion of our psychology is devoted to dealing with status issues.

Animals have status too. Various primates form stable status hierarchies in their bands. Chimps are a great example. Canine species do this as well. And other animals, too - all the way down to lobsters. Basically any animal with any intraspecies interaction has some concept of status hierarchy.

And like the animals, humans _like_ their hierarchies - the hierarchy fulfills a psychological need, the way being in a herd makes a herd animal feel safe.

People like knowing where they stand. They like having a role to play and knowing others are playing their roles. Without a clear hierarchy people feel nervous, the way a dog acts out from anxiety when the humans don't take charge.

Some people are driven to climb the hierarchy but most just want a stable existence somewhere in the middle of the pack where they can "camouflage against the herd" and avoid being noticed too much.

Most people like security and dislike responsibility for hard choices. Having others of higher status to take on those challenges absolves them of the need to make such decisions.

Egalitarianism is definitely also a part of human nature, but it's as a psychological counterpoint to the status hierarchy. People want the hierarchy to exist - but they want it to seem fair and legitimate and they want people to deserve their positions. People only dislike a hierarchy that seems illegitimate according to their mental heuristic.

So no, humans would not prefer a classless society, and such a society can never exist. If it existed for a moment, it'd cease to exist the next since classes would instantly form along the various dividing lines between groups of different personalities, proclivities and capacities. Level everyone's wealth and you quickly just end up with the same distribution as before, as we've seen after various bloodbaths in China, Russia, etc.

<comment> barry-cotter Having social status structures doesn't mean having social class. I don't see anything in what you wrote that I'm not in agreement with. Violent agreement for all.

</comment></comment></comment></comment><comment><USER26> This says nothing about why people don't support realistic measures to alleviate income inequality which don't upset the social order. I'd say almost all if not all realistic programs and solutions proposed do not upset said order so why aren't they supported by over 70% of the population? Or maybe they are and our representatives just ignore us. I'm not talking about stupid ideas like communism but things like raising the minimum wage.

<comment><USER3> > I'm not talking about stupid ideas like communism but things like raising > the minimum wage.

The minimum wage is an old rally flag, but it affects the bottom 1% when the problem is the top 1%. It's not the difference between the 1st percentile and the 25th, it's the difference between the 25th (or even the 90th) and the 99.9th.

The policies to fix _that_ aren't the "help the poorest" ones, they're the ones that help small businesses and help consumers. Trust busting, lower housing costs (especially middle class housing), reducing regulatory compliance (paperwork) costs on small business, government spending on infrastructure, municipal fiber, patent-free basic research funding, etc.

Minimum wage is a distraction from the things that would actually help.

<comment><USER27> > The minimum wage is an old rally flag, but it affects the bottom 1%

I was skeptical when you suggested that it was that small, but the most recent Pew study says that only 2% of workers earn the federal minimum wage in the U.S. [1] But they go on to point out that 30% of American workers earn "near- minimum wage" i.e. ≤ $10.10/h. If minimum wage were increased to $9/h, that would probably affect the earnings of nearly all of those people.

[1]: [http://www.pewresearch.org/fact-tank/2014/09/08/who-makes- mi...](http://www.pewresearch.org/fact-tank/2014/09/08/who-makes-minimum- wage/)

<comment><USER3> That is missing the point. Even assuming all of them went from $15K/year to $19K/year, that doesn't bring back the middle class.

It's not enough to get the people at the 5th percentile to where the people at the 25th percentile are. We need to get the people at the 25th percentile to where the people at the 50th percentile are now, and the people at the 50th percentile to where the people at the 75th percentile are now etc.

Trying to lift up _only_ the bottom is what hollows out the middle. We need to lift up the middle too.

</comment></comment></comment></comment><comment><USER28> There is a lot to be said for not wanting to piss off the people who control the money that flows to you. I am not as certain that people would choose to keep things the way that they are if they also weren't keenly aware (as say, someone might especially be in China) that the State might be monitoring their answers.

It's also very important to remember that most people who manage wealth well, on the other hand, do so in a way that benefits those who do not, and as such retain their responsibilities as money managers because they are one half of a financially symbiotic system of exchange.

There are also a lot of social factors to consider that didn't necessarily (and understandably so) make it into the studies dependent or independent variable sets. The attractiveness of each party needs to be controlled for, as there is a definite bias to give money to those we find attractive. The age of someone is another control variable that needs to be accounted for, as the elderly are generally (and correctly, generally speaking) more adept at managing money, for how else would they have survived so long?

All in all, I think mostly what this tells us is that we are cautiously optimistic about the belief that those who have less in our social hierarchy are capable enough to have more, but that it's important to preserve and honor the way in which wealth flows because it flows in a way that has kept us progressing for millenia.

I would be much more interested in reading about _how_ much wealth they believed should be distributed rather than simply _if_ it should. That would give us more than a binary response from which to extrapolate data.

</comment><comment><USER29> On the OP Web page, the lines commonly have about 96 characters. On my 14" screen with a Web browser magnification that lets a whole line show at once, the text is so small it is totally unreadable.

With more magnification from my Web browser, there are still 96 characters per line so have to use the horizontal scroll bars twice on each line to read it.

So, since I was interested in the article, I selected all of the text, copied it to my system clipboard, pasted it into a new e-mail in my e-mail program that reflowed the lines and used a larger font, and then read some of the article.

With 96 characters per line, apparently the Web site is determined, feet locked deep in reinforced concrete, with iron-clad rigidity, to discourage as many readers as they can.

Ah, since the OP is about psychology, the 96 characters per line and the whole OP is really just a psychology experiment?

Curious that a Web site would want to work so hard to discourage readers.

<comment><USER30> I also find text to often be uncomfortably small. I can highly recommend using a 'readability' or 'read later' bookmarklet (InstaPaper offers a decent one), as it will clean things up and allow larger font sizes with one click.

<comment><USER29> I can get larger font sizes, plenty large, with just one keystroke to my Web browser, Ctrl-+. But for the Web page I mentioed, that keystroke doesn't solve the problem because the lines still have 96 or so characters. Then, as I mentioned, I have to use the horizontal scroll bar twice for each line to be read.

Apparently the default in HTML is to have the window width fixed and let Ctrl-+ increase the font size AND reflow the text to fit in the same, fixed window width. If the window does fit on my screen, then I can just hit Ctrl-+ a few times and have fonts nicely large so that I can lean back and read the text. So, it takes some work in HTML and/or JavaScript to ruin this good default behavior.

The Web page I mentioned is only one; the Web is awash with people using tiny fonts and packing a single page with all sorts of stuff. With the layout the page has, to have the fonts large enough to read would need a screen, say, 4 feet wide. Any wider and, then, instead of scroll bars would have to walk side to side to read the screen.

Newspapers partially solved this problem long ago: Newspaper columns commonly have only about 40 characters per line. For the Web, 50-60 is about the upper limit. 96 characters per line is too many, way, Way too many, for newspapers, books, PDF files, Web pages, or anything else.

I'd think that by now Web sites would notice that 96 characters per line was too darned many and cut it back, permit Ctrl-+ to reflow the lines, etc.

So, I tried to make an issue of the 96 here. People with screens 4 feet wide won't agree with me.</comment></comment></comment>


New VC Service Level Agreement - <AUTHOR> http://startupboy.com/2013/06/28/a-venture-sla/

<comment><USER2> Key parts:

Imagine this pitch (a VC pitching a founder):

"Hello, we're Founder Friendly Capital. We

• Give you a quick and clear answer. 3 meetings, 2 weeks, yes or no. • Sign up to a plain-English, Founder-Friendly Termsheet. We pay our own legal costs. • 1x Liquidation Preference, no veto on Arms Length transactions. Four weeks to decide. No one-way NDAs. • We'll always do our pro-rata in the future or sell you back our stake. • Will never bring in an outside CEO without at least 50% Founder consent. • You'll get access to the following resources. X hours of our recruiter time. Access to Y network. Office hours with your Partner. • Board Seat above $X, Board Observer below that, no Board Control • No Option Pool Shuffle – the Pre-Money is the true Pre-Money • Minimum investment amount is $__; Minimum ownership percentage is __% • Choose your Partner – don't be embarrassed to ask • 10% of the Round can be used for Founder Liquidity …"

Well said, Naval.</comment>


Artificial Sweeteners May Change Our Gut Bacteria in Dangerous Ways - <AUTHOR> http://www.scientificamerican.com/article/artificial-sweeteners-may-change-our-gut-bacteria-in-dangerous-ways/ <comment><USER2> I'm currently trying to kick a Diet Coke habit (my equivalent of smoking), which I think is contributing to several health problems, not the least of which is carrying about 40 pounds more than I should around.

Part of it, which isn't covered by these studies, is how a reliance on diet soda affects your diet overall. It serves as a lubricant, for lack of a better word, for dense starchy carbs and salt. I can wolf down french fries with diet soda, but it's a lot harder with just water, which doesn't cut the salt or grease.

My real warning to cut back came from my mouth. I have an autoimmune problem that causes sores similar to cold sores. My salty, sour, spicy diet aggravates it, and the diet soda enables that diet (and is itself acidic). I'm tired of pain, so I'm cutting back.

Lost five pounds in an instant.

<comment><USER3> Sorry to ask this personal question, do you know if there is a name for the autoimmune problem that causes scores?

<comment><USER4> Some such sores, if occasional, may just be canker sores:

[http://www.healthline.com/health/canker- sores](http://www.healthline.com/health/canker-sores)

I've noted a correlation with: stress or lack of sleep; candy binges; eating scratchy foods like say popcorn.

<comment><USER5> I've been suffering from these blasted things for 18 years, and have similarly noted the same sorts of correlations. My best efforts: cutting out gum; cutting out sharp foods; cutting out acidic foods; taking vitamins B-12 and C, L-lysine, and zinc; switching toothpastes and brushing techniques. I regret not recording my history of occurrences, but I perceive things are improving. At the very least, it's safe to say the cause of canker sores is multi- factorial.

Sorry, I'm rambling. No one in my life can relate, so I'll take any chance to talk about it.

<comment><USER4> You reminded me: I switched years ago to SLS-free toothpaste (Biotene), because that's supposed to help. And for many reasons, I now eat way less sugar and sugary drinks. Maybe because of those changes, or just age, I get canker sores much less frequently. When I was younger, it was maybe 2-3 times a year, and sometimes 2 at once. Now I go a year or two between single, smaller ulcers. Good luck!

</comment></comment></comment></comment></comment><comment><USER6> It's entirely possible that this is just sloppy science journalism, but the distinction the SA article mentions sounds a bit ridiculous.

"In the Israeli experiment, 10-week-old mice were fed a daily dose of aspartame, sucralose or saccharin. Another cluster of mice were given water laced with one of two natural sugars, glucose or sucrose.

After 11 weeks, the mice receiving sugar were doing fine, whereas the mice fed artificial sweeteners had abnormally high blood sugar (glucose) levels, an indication that their tissues were having difficulty absorbing glucose from the blood. "

So you feed group B sugar, and group A things that are not sugar, and then you put both groups through a glucose challenge, administering a calibrated amount of sugar, and group A's blood sugar spikes higher than group B's, which is not acclimated to metabolizing sugar. This is not surprising.

I suppose I'd need to read the journal article later when I have time, to be sure. There are a lot of things that look like interesting correlations in tests like this that actually aren't, when you control for _all_ of the variables, and consider the short-term and long-term adaptations the body makes.

<comment><USER7> Researchers actually went much further than you assume and used microbe transplants to show that the gut microbiome from the sugar-fed mice rescued the artificial-sweetener-fed mice. And that similar transplants in the other direction resulted in the bad outcomes in the sugar-fed mice.

I don't think your speculation and armchair research is any more more helpful than the bad science journalism you complain about. If you don't know what you're talking about, maybe you could try keeping it to yourself.

<comment><USER8> > I don't think your speculation and armchair research is any more more > helpful than the bad science journalism you complain about.

Anonymous people on the Internet can't be held to the same standards as a research paper. On the contrary, since this is largely a public opinion forum I believe that commenting without evidence is encouraged and it's up to the reader to make a determination about said opinion.

What a silly idea that we aren't allowed to publicize opinion.

<comment><USER9> There is Kind of a big difference between saying that a comment is not helpful and that you are not allowed to make a comment, you know.

Random unscientific speculation on scientific matters is a problem and should not be encouraged.

</comment></comment></comment></comment><comment><USER10> I can't remember the source, but somebody was speaking recently on the US healthcare system.

He made the point that the proof our healthcare in this country is broken is that when you go to the doctor to complain about illness nobody has ever been asked "How have you been eating?". Unless you have specific medical restrictions, there is little time spent on how your diet affects your health. My dream of quantified-self is a disrupted healthcare system focused on gestalt care.

<comment><USER11> I think part of the reason for this is that generally speaking, people who eat poorly know they're eating poorly and would rather have their cake and eat it too. They know soda is bad for them and that apples are good for them. That sitting all day long doesn't expend a lot of energy and running the back hills for a half hour does.

So when someone asks an ill person who eats poorly "How have you been eating?" they know they're about to receive a long story about how they've tried and failed, or that lately they've been "cheating" or that they've been super busy at work and kids and life is hard and they have no time for such things. What's the doctor supposed to say after this? Nothing. Because people are only going to change themselves when they truly want to and not when someone tells them they should.

So instead they look for more efficient routes at attempting care. Drugs are pretty good at this for a while. Got high blood pressure? Here's some beta blockers. You got an aching back? Here's some pain medication for that. They make more money this way, their patients can reliably take the 3 seconds to swallow a pill everyday, and everyone seems to be pretty happy until they have a heart attack or need a wheelchair. It's a good thing that those things come with old age so their poor health condition can be blamed on yet again something other than their continued poor diet and lack of exercise.

It's funny how simple being healthy is. Sleep, diet and exercise.

<comment><USER12> Meh, your both wrong. When appropriate, doctors do ask about diet, they do recommend changes to diet, it does make a difference, and being healthy is not necessarily simple.

<comment><USER13> You basically reinforced his point. People know what they're doing wrong, and _when_ they want to change that part of their lifestyle, then they will and any doctor will be more than happy to help them. There's such a thing as a dietitian after all.

</comment></comment></comment></comment><comment><USER14> Very early in the research, if I am to just go off the article. First, the article really only addresses saccharin. Second, the healthy volunteer study appears to use max daily acceptable intake, which sounds reasonable at first. The amount, however, is the equivalent of 250 packets of sweet and low:

[http://www.fda.gov/Food/IngredientsPackagingLabeling/FoodAdd...](http://www.fda.gov/Food/IngredientsPackagingLabeling/FoodAdditivesIngredients/ucm397725.htm#SummaryTable)

</comment><comment><USER15> Aspartame (Nutrasweet) is pretty controversial in how it got approved by the FDA.

See: [http://www.huffingtonpost.com/robbie-gennet/donald- rumsfeld-...](http://www.huffingtonpost.com/robbie-gennet/donald-rumsfeld-and- the-s_b_805581.html)

When I was 8 years old, I started having grand mal seizures and my parents noted a strong correlation between drinking a Diet Coke and having a seizure. When they eliminated it from my diet, my seizures declined. Fortunately I stopped having seizures around 12 years of age. But given my experience, I continue to avoid all artificial sweeteners.

I know sources like [https://en.wikipedia.org/wiki/Aspartame#Safety_and_approval_...](https://en.wikipedia.org/wiki/Aspartame#Safety_and_approval_controversies) claim that it is safe... and I agree that for most people it is probably okay in moderation. But based on my experience and the history of how Aspartame (Nutrasweet) got approved, I have serious doubts about its safety.

<comment><USER16> That article has a lot of fear mongering about artificial sweeteners and then at the bottom an ad for "certifiedorganicevaporatedcanejuice.com". Maybe it's not the most objective source of information?

<comment><USER15> Rumsfeld was the CEO at Searle - the makers of Aspartame... And he used his political influence to replace the FDA commissioner so Aspartame could be legalized. That's a conflict of interest.

<comment><USER17> While scummy, that doesn't necessarily mean that Aspartame is dangerous.

</comment></comment></comment></comment><comment><USER18> Science reporting is really hard. This story comes off as if there was enough research to start to move away from the researched sweeteners. Especially the part in the end is laughable: "Segal, for one, is taking no chances: he says that he has switched from using artificial to natural sweetener in his morning coffee."

However the study done on humans had small sample size, the only studied sweetener was saccharin and the subjects were given the full ADI. These are very preliminary studies and are useful mostly for deciding future study targets. So not really studies to base your diet decisions on.

</comment><comment><USER19> "He and his team analyzed a database of 381 men and women and found that those who used artificial sweeteners (...) were also more likely to have impaired glucose tolerance."

So those who are intolerant to glucose tend to avoid glucose? That hardly seems surprising.

</comment><comment><USER20> > had 50 percent fewer Bacteroidetes bacteria and 50 percent more Firmicutes > bacteria than normal mice did. When they transferred a sample of the > Firmicutes bacterial population from the obese mice into normal-weight ones, > the normal mice became fatter.

Woah. I assume someone is now doing research on introducing Bacteroidetes into the guts of obese people?

<comment><USER21> I know you can buy probiotics. Can you buy just Bacteroidetes ?

<comment><USER22> General Biotics [[http://www.generalbiotics.com](http://www.generalbiotics.com)] has some more information available on that (and a product based on the research).

</comment></comment></comment><comment><USER23> Meh. Let me know when useful long term test are actually done on humans and not mice models.

<comment><USER24> It is already happening with all those people drinking soda. And everyone knows it is not healthy.

</comment></comment><comment><USER21> Does anyone have any thoughts how Xylitol or Erythritol might fare under a study like this? They're currently my go to sweeteners. I'm not sure why they're not more popular.

<comment><USER25> Sugar alcohols can have some unpleasant side effects, which make them unpopular for general use. They can cause bloating, flatulence, and diarrhea if you consume too much of them. The pop-culture example of this is the review section on [http://www.amazon.com/Haribo-Sugar-Free-Gummy- Bears/dp/B008J...](http://www.amazon.com/Haribo-Sugar-Free-Gummy- Bears/dp/B008JELLCA), or in a less ridiculous form at en.wikipedia.org/wiki/Xylitol#Safety and [http://en.wikipedia.org/wiki/Erythritol#Side_effects](http://en.wikipedia.org/wiki/Erythritol#Side_effects).

That's not at all to say they're bad or poison; I love sugar-free gum a lot, but the amount of sugar alcohol in each piece is very low. The problem is just that the side effects mean that if they're widely used, eventually someone is going to crap themselves and blame your product, and almost nobody wants that.

<comment><USER21> I put two tbsp of xylitol into my smoothies and I've never had a problem. It's also supposed to be good for your teeth.

I do wonder how something can be so dangerous for dogs and safe for humans. Aren't our cells almost identical?

<comment><USER25> Yeah, xylitol inhibits bacterial growth in the mouth. I like it in gum, it seems to help me. It seems like different people have different tolerances for xylitol to some extent; I know that my wife, who is much smaller than me, has a higher absolute tolerance than I do (i.e. if we eat the same amount without accounting for body weight, I will experience discomfort and she will not).

I'm not a vet but I'm waiting on some batch tests at work so I did some reading. According to [http://veterinarymedicine.dvm360.com/new-findings- effects-xy...](http://veterinarymedicine.dvm360.com/new-findings-effects- xylitol-ingestion-dogs), dogs absorb Xylitol much more quickly than rats or humans do. Xylitol also provokes dogs to release insulin, but not people. The reasons behind that are not completely clear to me, but since they quickly and completely absorb Xylitol, they end up producing a ton of insulin very quickly which tanks their blood glucose levels. That's dangerous without any complicating factors.

Additionally, dogs metabolize xylitol differently, and it's thought that a side effect of the metabolization is to deplete adenosine triphosphate in the liver, which can cause liver necrosis (obviously very bad news).

Humans don't absorb xylitol well (it's only partially digestible and some of it acts as dietary fiber, sort of), and we don't metabolize what we do absorb very efficiently. The difference is likely in both the dose relative to body weight, and the intensity (since dogs metabolize it much faster and more completely).

That's all secondhand info though, I don't have a JSTOR or equivalent account so I couldn't read any interesting primary papers. If we coincidentally have a vet wandering through I'd love to learn more about this.

<comment><USER26> You can adapt to xylitol in your diet. It is best to introduce it slowly into your diet. Chewing gum is a great way to use it daily and increase your intake over time. Dental recommendations are 6-10 grams per day, but most people would experience discomfort starting off at that amount.

</comment></comment></comment></comment></comment><comment><USER27> Purely anecdotal: what I remember from the time the Doc was trying to determine what was making me sick while eating was the list of items totally off my diet. Besides the obvious, no dairy, no carbonated, no caffeine, and limit on other items like fats and salts, was no artificial sweeteners.

I didn't question it at the time as I was desperately in need of getting the situation fixed. Turned out the Ciphro I had taken; as last resort type medicine; had killed all the good bacteria and such in my intestinal tract letting something else move in. Another series of drugs later and that was cleared up but he still left me with a list of items to curtail for the next six months until all tests came clean and one was artificial sweeteners.

</comment><comment><USER28> Stevia was not included, so for now I'll assume it is safe. It does have some positive effects such as increasing insulin sensitivity.

I only had diet soft drinks very occasionally, but I think I'll eliminate entirely and stick to water or juice.

<comment><USER29> I'm not sure that stevia is an "artificial" sweetener.

<comment><USER6> Your body doesn't care whether something was made by humans or whether it was made by nature. It only cares about the particularities of the molecules involved.

<comment><USER30> Yeah, it appears that stevia would likely have similar effects, as it has been suggested that tasting sweetness causes an spike in insulin without a corresponding bump in blood glucose levels, leading to an excess of insulin[1].

What causes the difference in effect between glucose and artificial sweeteners appears to be the taste of sweetness without the carbohydrates that would go along with natural sources of sweet taste.

[1] Sucralose Affects Glycemic and Hormonal Responses to an Oral Glucose Load -[http://care.diabetesjournals.org/content/early/2013/04/30/dc...](http://care.diabetesjournals.org/content/early/2013/04/30/dc12-2221)

</comment></comment></comment></comment><comment><USER31> Also: [https://news.ycombinator.com/item?id=8331474](https://news.ycombinator.com/item?id=8331474)

</comment><comment><USER32> So sugar is good again?

<comment><USER33> > Methadone is really harmful.

> So heroin is back in?

Evidently, both are bad and it doesn't seem to be immediately clear whether real sugar or artificial is _more_ harmful. But we do know for a fact that excess carbohydrate intake causes _numerous_ serious health problems (heart problems, obesity, diabetes, Alzheimer's, etc).

<comment><USER34> Which is depressing because carbohydrates are _so_ tasty. It's all I can do to resist them.

<comment><USER35> Same here though I've heard that with carbs and sugar, after a week or two without you find you don't crave them anymore. "I've heard" because I've not yet been able to attempt that particular experiment. :)

<comment><USER33> I've been doing low-carb (to varying degrees) for about 4 years now and love it.

I used to be all about potatoes, bread, pasta, milk, etc. Never big on sweets, but the complex carbs... oh yes. Once I almost hit 200lb at 17-ish I decided to cut carbs (/r/keto) and it worked wonders. I was down to about 150 (a healthy weight for my size) in about a year, but the weight loss is asymptotic. I lost like 10 pounds in my first two weeks, but it took me another 8-9 months to lose the other 40.

The first week or two are somewhat hellish for some people because you're essentially going through a withdrawal. It's nearly identical in mechanism and symptoms of a drug withdrawal. If anything, that should underline how detrimental regular excess carb intake can be. What's even worse than the normal "withdrawals," though, is when you cheat.

When I first went to college I ate an absurd amount of carbs for a rush event (aka fun/eating challenge) and literally fell asleep _at the table_. Then I felt like shit for the next 3 days. That was my last time cheating :)

You're absolutely right, though, after the first 1-3 weeks, your cravings stop, headaches stop, brain fog clears, you sleep amazingly, feel energized, and _don 't even notice_ the dessert menu. It's fascinating and I highly recommend it. You may hate it, you may love it. It has benefitted me in a lot of ways, and it continues to even as I somewhat elevate my carb intake in order to work out effectively.

</comment></comment></comment></comment></comment><comment><USER36> Fake sugar tastes bad and is unnecessary. Let's get rid of it already. Eat whole foods!

<comment><USER22> It's funny how extracting and concentrating sucrose from certain hemi- and cellulose fibers (like their sponsor does) isn't very different from extracting and concentrating xylitol from other hemi- and cellulose fibers, but to some, it's worlds apart.

</comment></comment><comment><USER37> No Fucking Shit

</comment><comment><USER38> Shocker.

Glad I stick with drinking tea, milk and water.

Soda is bad news.

</comment><comment><USER39> I really don't understand the need for "diet" soft drinks.

I mean, soft drinks are ok, to drink sometimes. But if someone is drinking enough soft drink to worry about the amount of sugar intake, then he is drinking too much sodas. Soft drinks are like "light" cigarettes.

What is the problem about drinking water?

<comment><USER40> I once made fun of a friend for drinking a "diet" soft drink. Turns out he was diabetic and couldn't drink regular ones. I stopped making fun of people drinking diet soft drinks after that.

I agree though that water is the best :-)

<comment><USER39> I was not making fun about people drinking soft drinks. My point is that sweet drinks are unhealthy, no matter witch kind of sweetener they use. For me, the fact that there's people that ONLY drink soft-drinks (including fruit juices) is quite shocking. But anyway, seeing the amount of downvotes I got, I guess I touched some kind if american social tabu.

</comment></comment></comment><comment><USER41> I think one of the most important things to keep in mind when reading articles like this is the old mantra that "correlation does not equal causation". I'm always a bit skeptical when studies show partially successful statistics.

I've done a lot of research on the subject at hand, and I still believe that consuming real sugar is orders of magnitudes worse than using sweeteners.

<comment><USER42> > "correlation does not equal causation"

I hate this phrase so much because it's so often used to imply that "because there is correlation it means there can't be causation"

> Tufte suggests that the shortest true statement that can be made about > causality and correlation is one of the following:

> "Empirically observed covariation is a necessary but not sufficient > condition for causality."

> "Correlation is not causation but it sure is a hint."

<comment><USER43> So often used to imply _what_? I've seen a lot of people ignoring correlation when they really shouldn't, I have never in my life seen them using the implication backwards. How often do you see that?

<comment><USER42> I might be misunderstanding what you're saying, but I see exactly what I mentioned in the parent comment, which is why I wrote my comment.

<comment><USER43> I don't see it like that. Large claims require large proof, that's all I see in the comment. Shocking numbers need more investigation, and need a big grain of salt, but that is still taking the result as weak support of causality, not a counter to it.

I think you're reading "skepticism" as "the opposite is likely" and I'm reading it as "assign low weight".</comment></comment></comment></comment></comment>


Ask HN: Are you a part-time stock investor? - <AUTHOR>

If so, how do you test your stock investment strategy? Do you rely on intuition? <comment><USER2> Hi Zhangela,

Yes I am. I utilize value investment methodology which is the brainchild of Benjamin Graham.

On the few aspects on stock evaluation, among them are: \- Company's financial statements (Balance sheet, Cash flow statement and Income statement) \- The company's management profile (from remuneration comparison from company-to- company to governance and each individual's background) \- The company's activity as published by the Exchange \- Overpriced/Underpriced compared to book value and also intrinsic value

In order to check the performance of my investments, I measure from two perspective: \- Realized gains/losses - (dividends received and gains or losses from sale)/(amount of money put up to purchase the stock) \- Unrealized gains/losses - (Mark-to-market gains or loss)/(amount of money put up to purchase the stock)

From the figures attained, I compare them with figures such as fixed deposits and performance of index funds

<comment><AUTHOR> Thanks so much!!</comment></comment>


OpenJDK is now on GitHub - <AUTHOR> https://mail.openjdk.java.net/pipermail/jdk-dev/2020-September/004694.html <comment><USER2> [https://github.com/openjdk/jdk](https://github.com/openjdk/jdk)

<comment><USER3> It's really weird a choice in the email to provide links that looked like they weren't on GitHub to redirect to the GitHub URLs... For a moment, I was wondering if they had like a self-hosted GitHub Enterprise setup or something, until I noticed the URL redirected anyways.

<comment><USER2> That's intentional. Links will contain the redirecting address on our domain so that when we move off of GH (some day; nothing lasts forever), links will continue to work.

<comment><USER4> This strategy has saved our bacon at work more than a handful of times. All the URLs we ship in our apps point to a "lookup" server (just Nginx with a huge list of redirect rules), such that if the URL we were using in the app disappears, we can change it on the server side rather than requiring a client update.

</comment></comment></comment></comment><comment><USER5> Is anyone else worried about the mass centralization of Open Source projects at one central point of failure on github?

especially since it's owned by an American company and I assume hosted within the United States

<comment><USER6> Not me. The fact that it's in git makes it easy to mirror and export, so I don't consider github to be a central point of failure. Issue tracking and PR handling lives in the github UI, but the significant change here is a change from Mercurial to Git, which I hold as a positive development.

Fundamentally git is a data storage format that is very well-defined, with a standard command-line interface which is fine, not great. Mercurial has an arguably better command-line interface, but a data structure that is not well- defined or documented, and the main interface to hg is through python-based plugins, which is just awful.

<comment><USER7> You even see GitHub mirrors for got projects hosted privately, which is good.

If github went away, tons of projects would need to rework their workflow, but very few people would actually lose their code, which is the most expensive asset to restore.

</comment></comment></comment><comment><USER8> Unfortunately, similar to a number of other Enterprise Open Source projects, despite being on GitHub, potential contributors still cannot open any tracked bugs, and need to _print and scan_ a CLA before submitting any code.

</comment><comment><USER9> I apologize as it's _slightly_ off-topic, but for anyone that is stuck working on old gear that still uses a java interface/JNLP and doesn't want to run JAVA 6 - here's an open source project that's keeping JNLPs alive and as secure as they can:

[https://openwebstart.com/](https://openwebstart.com/)

[https://github.com/karakun/OpenWebStart](https://github.com/karakun/OpenWebStart)

Been a life saver for me (and I am in no way affiliated).

When I switched to OpenJDK I was dead in the water for JNLPs until I found it.

<comment><USER10> > JAVA 6

Why do you capitalise it like this? It's not an abbreviation.

<comment><USER11> Nor an acronym.

</comment></comment></comment><comment><USER12> Title clarification: OpenJDK specifically, there are many name-branded JDKs in circulation.

<comment><USER13> Most of which take the OpenJDK source, sprinkle in some "secret sauce" and then compile the entire thing for convenience of users.

It's not a trivial undertaking to compile OpenJDK from sources.

There are not very many JDK implementations that don't have OpenJDK sources at their core.

OpenJDK is also treated as the reference implementation, and is where JEP's and things are worked out. Effectively, OpenJDK is "upstream" Java.

<comment><USER8> > It's not a trivial undertaking to compile OpenJDK from sources.

uh? assuming you already have a working C toolchain and JDK installed, you just hg^Wgit clone; bash configure; make.

edit: you may have more trouble compiling it on windows, but compiling _anything_ on windows is a pain unless it uses the entire proprietary non- portable microsoft-specific project management tools.

<comment><USER14> RE: compiling on windows

Apple is honestly giving Microsoft a run for their money here. Many FOSS apps seem to have given up on OSX and few ever tried with iOS.

<comment><USER15> IMO it's harder to compile for macOS than for windows.

I don't have a macbook. I can legally run a trial copy of windows in virtualbox to test out cross-compiling stuff, or spin up a windows EC2 instance for a few hours, or even use circleci or other CI system's windows workers to build stuff.

For macOS, I can't legally run a VM on my hardware, ec2 doesn't support it so I can't spin up a VM, and most CI platforms don't support it (probably because many of them just resell fleets of ec2 instances).

Many FOSS developers are just hacking away on 3 year old laptops or desktops for fun, and can't afford a $2k investment just to support one more operating system for their little project.</comment></comment></comment></comment></comment>


Portrait of the Predator as an Evolutionary Dead End - Rob-Goodier http://www.popularmechanics.com/technology/digital/fact-vs-fiction/portrait-of-the-predator-as-an-evolutionary-dead-end

<comment><AUTHOR> Anyone else bothered by the shallowness of this article?

Maybe Predators are not technically biological predators, but the biological definition isn't the only use of the word (e.g. sexual predators). Using the word "Predator" instead of "Hunter" suggests that Predators derive something essential from their activities-- it's not a sport for them, it's a way of life.

This article also gives too much credit to simplistic evolutionary-biological explanations of modern cultures. Assuming that Predators were shaped by evolutionary pressures like ours, then concluding that they are "failing as a species" because they are "acting against Darwinian pressures", is intellectually lazy.

This whole thing reminds me of the kind of pseduo-intellectual justifications historically given for slavery. They are part of a "backward" culture in some ill-defined way.

Whew, maybe this is an over-serious reply to this article, but I prefer to practice critical thinking when I can, especially when it comes to portraying other cultures or species (fictional or non) as backward.

<comment><USER2> Yes. It could have been much better.

Now, I think it's interesting to speculate how the Predators might have evolved (unlike the Aliens, whose life cycle appears to be just plain nutty). The two things we do know about them are that they're technologically advanced _and_ have an extreme interest in hunting. They also look like biological predators, with their sharp teeth. So I'm guessing that they're a bit like what would happen if a pure carnivore, rather than an omnivore, had developed brains as big as ours.

I see nothing wrong with the idea that a species could have evolved to enjoy extremely dangerous forms of hunting if that helped with sexual selection. Much like peahens find males who carry around enormous handicapping tails to be attractive, female Predators may be attracted to males who hunt ridiculously dangerous game at great cost to themselves.

I'm not sure about the binocular vision thing: don't Predators have binocular vision? Pictures on wikipedia make it look like they have two eyes.

What I think we _can_ say is that Predators would be crappy predators if it weren't for their technology, but they might have been sufficiently good to get away with it in whatever conditions they evolved in. Crocodiles are pretty crappy predators too, but they seem to get away with their tiny niche quite nicely.

<comment><AUTHOR> Another way their evolution could have affected them is if their reproduction strategy was different than ours. If they had extremely large numbers of offspring (instead of the few we humans have), they might not emphasize individual survival as strongly as we do, and might value competition and risk-taking so as to keep only the fittest children.

I don't know how seriously I can take this kind of speculation, though. Unfortunately, we only have one data point to work with when it comes to technologically advanced species.

For more on how different other intelligences could be from us, here's some entertaining sci-fi: <http://lesswrong.com/lw/y4/three_worlds_collide_08/> Previous posting: <http://news.ycombinator.com/item?id=1387771>

<comment><USER2> Hmm, there's a question: are there any predators on Earth which use the "large numbers of offspring" strategy? Seems to be more common among prey animals than predators.

This kinda makes sense. For a rabbit or fly, food is plentiful and the biggest threat to your survival is predators, so it makes sense to have loads of offspring in the hope that some will survive. For a lion, predators are nonexistent but the biggest threat to survival is lack of food, so if you have too many children in the same territory you run the risk that they'll all starve.

Exception that "proves" the rule: frogs are incredibly fecund predators, but tadpoles are herbivores.

Hmm, I guess I'm forgetting spiders.

</comment></comment></comment></comment><comment><USER3> Huh.

I've always thought of the Predator series as being based off _The Most Dangerous Game_ : i.e., these guys had become such ruthless and efficient killers that going after their normal prey just wasn't fun anymore, and they had to get their kicks by hunting sapients like us.</comment>


Usql – Universal command-line interface for SQL databases - <AUTHOR> https://github.com/xo/usql <comment><USER2> An unfortunate name, given that MS has had a language called U-SQL released for their data lake platform for a number of years now. The title of this post made me think they were bringing the functionalities to their SQL Database at a quick glance.

[https://msdn.microsoft.com/en-us/azure/data-lake- analytics/u...](https://msdn.microsoft.com/en-us/azure/data-lake- analytics/u-sql/u-sql-language-reference)

</comment><comment><USER3> So this looks like a nice client which can be used with different databases, but do I still have to write database specific SQL?

The first example I can think of is the way you set the size of the result set in for the different databases (TOP vs. LIMIT vs. ROWNUM)[1]. I mean having one client to rule them all is good, but in my experience the harder problem is to learn all the different dialects depending on what database you use.

[1]: [https://www.w3schools.com/sqL/sql_top.asp](https://www.w3schools.com/sqL/sql_top.asp)

<comment><USER4> This is something we have to blame the vendors for.

There is an international SQL standard from ISO, it's just not commonly followed.

However, sometimes the standard isn't very useful in itself. For this example, FETCH FIRST x ROWS ONLY is the syntax mandated by the standard. Although some databases accept this in the meanwhile, LIMIT might have been a better choice as it is supported by more databases.

[https://www.slideshare.net/MarkusWinand/modern- sql/120](https://www.slideshare.net/MarkusWinand/modern-sql/120)

 _Edit_ : ps.: Please don't use w3schools.com as a SQL reference. It's utterly outdated, prefers vendor syntax over standard and is sometimes just straight wrong.

<comment><USER5> There's a few areas I think ANSI SQL falls down compared to some of the vendor syntax. eg I really hate the way table joins are done in ANSI SQL. I get the logic behind the syntax but the PL/SQL syntax for table joins gives me far less mental gymnastics. In fact it is probably the only thing about PL/SQL that I actually like.

<comment><USER6> Most DBAs I know consider any comma join syntax difficult to maintain and difficult to debug because it's often difficult to tell the difference between join conditions and filter conditions. It's also very easy to mistakenly create a CROSS JOIN with comma join syntax, too.

The real pain comes when you try comparing the old vendor specific OUTER JOIN syntax for Oracle and SQL Server. I guarantee you'll love JOIN ... ON ... over comma joins.

Oracle:

       SELECT *
       FROM T1, T2
       WHERE T1.PK1 = T2.FK1(+)

SQL Server:

       SELECT *
       FROM T1, T2
       WHERE T1.PK1 *= T2.FK1

Note that the outer indicator goes on the opposite side. Oh, and, of course, if you flip the order of the fields around, you've got to remember to flip the (+) operator. Which of these three are identical:

       SELECT *
       FROM T1, T2
       WHERE T1.PK1(+) = T2.FK1

       SELECT *
       FROM T1, T2
       WHERE T2.FK1(+) = T1.PK1

       SELECT *
       FROM T1, T2
       WHERE T2.FK1 = T1.PK1(+)

Now imagine you're joining 5 tables and want to reuse the JOIN syntax.

Yeah. Fuck that. I'll take this any day:

       SELECT *
       FROM T1
       LEFT JOIN T2
           ON T1.PK1 = T2.FK1

<comment><USER5> I have genuinly written a lot of complex SQL for both MySQL and Oracle and honestly I do prefer Oracles syntax for joins. But I did spend several years writing PL/SQL before learning ANSI SQL so I guess it might just be a question of what you're used to?

<comment><USER6> I would just be aware that the prevailing opinion is that the ANSI syntax is considered better because it's considered clearer, more maintainable, and more functional. I was perfectly fine with comma joins until I had to interact with both SQL Server and Oracle. Then I found all kinds of hidden benefits. Like if I want to query the same set of tables, I can just copy the whole FROM clause and reuse it whole-hog. The logical separation is just nice, too. My _tables_ know how they relate to each other. They know what type of join is being done. I don't have to tell the _fields_ how they relate to each other. Even if I get my join conditions wrong, the relationships are correct.

Even Oracle's own documentation[0] tells you to avoid the (+) syntax:

> Oracle recommends that you use the FROM clause OUTER JOIN syntax rather than > the Oracle join operator. Outer join queries that use the Oracle join > operator (+) are subject to [several restrictions], which do not apply to > the FROM clause OUTER JOIN syntax[.]

The doc itself lists all the issues, which is about 10 of them. None of these are opinions, either. They're actually technical limitations with (+), though they may not be ones that you encounter. The only advantage I know of for the (+) syntax is some uncommon issues with materialized view optimizations.

[0]: [https://docs.oracle.com/cd/B19306_01/server.102/b14200/queri...](https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries006.htm)

</comment></comment></comment></comment></comment></comment><comment><USER7> [https://news.ycombinator.com/item?id=17299356](https://news.ycombinator.com/item?id=17299356)

</comment><comment><USER8> Was confused at first, since it uses the same name as Microsofts Azure Data Lake language:

[https://msdn.microsoft.com/en-us/azure/data-lake- analytics/u...](https://msdn.microsoft.com/en-us/azure/data-lake- analytics/u-sql/u-sql-language-reference)

Hint: its not related!

</comment><comment><USER9> I'm really waiting for "Todo -> General -> 13\. proper PAGER support". Because the sqlite3 cli never had support if I remember correctly, so piping to less was always neccessary. A pager is key to getting comfortable on the cli imho.

<comment><USER10> Yes, that's a good feature to have. IIRC, IPython does not have it either, so, for example, if you do a dir(object_name) for some object, like a module, class, function, etc., if it has too many attributes, they scroll off the screen, more so since IPython prints the attributes one per line. The CPython shell is better for this, since it prints multiple attributes per line. For IPython, I have to do this:

        for at in dir(object_name):
            print at,

and that will still scroll off if it is too long (although in that case it would scroll off in Python too). So a built-in pager would be useful for many such apps, since it will allow you to stay in the app; if you pipe the app's output to less, you cannot interact with the app via the keyboard, until you quit the less invocation.

<comment><USER11> %page dir(object), %pinfo or %help object are your friends.

<comment><USER10> Great, will check those out, thanks.

</comment></comment></comment></comment><comment><USER12> It's missing completion for now, unless I'm mistaken?

Definitely a project to follow, though.

<comment><USER13> For me it's also a deal breaker, but I will keep an eye on it.

</comment></comment><comment><USER14> Nice. IBM have for some time now provided an Oracle-style SQL*Plus command line utility for DB/2 with almost complete compat. I wonder if that could be a common syntax for such DB-specific utilities, or if the usql folks have insight to share towards another proposal.

</comment><comment><USER15> I already use pgcli, written in Python, in conjunction with pspg to tabulate results. I can't imagine what Usql would offer above what is already available through pgcli. Could anyone comment?

<comment><USER16> The creater of dbcli answered this question in the other usql thread [0]

> _usql is a great tool if you 're familiar with Postgres' psql client and > wish you could use it for other databases like MySQL, Cassandra etc._

> _dbcli tools are designed to preserve the usage semantics of the existing > tools but improve on them by providing auto-completion. For instance you can > use `\d` in pgcli and `SHOW TABLES` in mycli. This was a conscious decision > to make pgcli and mycli drop in replacements for of MySQL and psql. I was > also working under the assumption that people rarely use multiple databases, > you 're either a postgres shop or a MySQL shop. If you have a mix of both, > there is a good chance that not a single person is interacting with both of > them on a daily basis. You have different teams using different databases. > But my reasoning there could be flawed._

> _There is nothing stopping someone from adding an adapter to the usql tool > to make it behave like MySQL (because they like the mysql client better) > based on a command line argument, for instance._

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

</comment></comment><comment><USER17> Looks good. I miss beeing able to pipe sql to the client via stdin. At least I didnt see it in the README.

<comment><USER18> Yes, it reads from STDIN. If it doesn't, it's a bug, and please file an issue on GitHub.

<comment><USER17> Thanks! Didnt try it, just couldnt find it in the examples.

</comment></comment></comment><comment><USER19> Looks nice. It would be incredible if it supported autocompletion of table names and queries.

</comment><comment><USER20> SQL Server's own tools are so good one doesn't really need this.

<comment><USER21> If you're developing against MS SQL server from linux or mac, you absolutely need something like this.

<comment><USER22> [https://github.com/dbcli/mssql-cli](https://github.com/dbcli/mssql-cli)

</comment></comment></comment><comment><USER23> Has anyone noticed that it is always mentioned that a tool is written in Go, even if this implementation detail has no relevance for the user?

Nobody would write "Universal C++ CLI ...".

<comment><USER24> It _does_ matter to the user.

A Java based tool requires installation of a JVM and likely has a non-trivial startup time. A Python / Ruby tool requires a runtime and probably some kind of mucking with virtualenv or rvm to work properly. A Node.js tool would require (haha!) a Node runtime and crossing your fingers that the NPM dependencies for what you're going to use to connect to your database haven't been compromised since the last build.

A Go based tool would be statically compiled, start up quick, and not have any external dependencies.

<comment><USER25> not if you use GraalVM :D

<comment><USER26> Or if you bundle your JVM... you can do it with the regular Java stack.</comment></comment></comment></comment>


Kotlin 1.0.5 is here - <AUTHOR> https://blog.jetbrains.com/kotlin/2016/11/kotlin-1-0-5-is-here/ <comment><USER2> Kotlin has been a joy to use. Really happy with it. Our Android app ([http://play.google.com/store/apps/details?id=com.eatsa.app](http://play.google.com/store/apps/details?id=com.eatsa.app)) is 100% Kotlin (with a good amount of Java libraries of course).

Some highlights:

\- Great type system, with type inference.

\- Full Java interop. You can literally copy/paste Java code from Stackoverflow and it's automatically translated to Kotlin. It doesn't feel like 2 different languages. Working with Java libraries doesn't feel awkward or foreign, like in many other JVM languages.

\- Beautiful syntax that allows to construct some pretty advanced DSL, yet because it's statically typed the IDE can always resolve the DSL constructs and take you "under the hood" to the actual code that's going to be executed. This is in contrast to languages such as Ruby where most of the time when you encounter a DSL construct there's no easy way to understand what's going on.

<comment><USER3> Why not use Xamarin? it has a better lenguaje (C#) and is free.

<comment><USER4> Probably because IntelliJ is a superior IDE, Kotlin is a better language than C# and Xamarin apps look and perform like ass.

<comment> V-2 I like both, but why do you consider Kotlin better than C#?

I also don't get your point about how lame Xamarin apps look. Xamarin apps use native layout components (could be wrapped with lowest common denominator abstractions in case of Xamarin.Forms, but it's optional), so they're 100% capable of looking the same way your native app would.

<comment><USER5> iOS and Android UX guides have completely different approaches to the logic of user interaction. AFAIK, Xamarin does not allow to have different layouts generated from shared code. So, even that components are native, their placement is alien.

<comment> V-2 > _Xamarin does not allow to have different layouts generated from shared > code_

That's true, but noone says or recommends that _all_ the code is shared. Typical Xamarin architecture and good practice assumes sharing the business (or domain) layer, and coding the views separately. In terms of reusability it's still superior in comparison to writing both versions natively. Obviously the level of reuse you can achieve that way very much depends on the nature of the application.

</comment></comment></comment></comment></comment></comment><comment><USER6> I have became a 100% Kotlin convert. Every single project I work on now is using Kotlin.

I have also found that if you are using LibGDX Java game framework, it's very trivial to convert it to Kotlin. I have been doing that pretty extensively and it has been very pleasant. Feel free to check my GH for some examples. Most notably, the Bayesian Classifier.

Also be sure to check out the Kotlin slack room. It is filled with a bunch of great and active people.

But most importantly, just go try it. If you come from Java and are hesitant to leave given all the nice libraries available in Java, Kotlin is for you.

<comment><USER7> On the topic of using the JVM to make games, do you find yourself using the trick of not allocating any new objects (wither from Java or Kotlin) within the game loop? I've heard of that trick, and am considering using it because GC pauses are the main reason I'm considering avoiding the JVM for games.

<comment><USER8> Have worked on many games and game engines for several decades. Here's some quick advice that applies mostly regardless of the JVM.

1\. Allocations of any kind are often the most expensive operation per frame, or at least some of the ones that are fixable (you can't just not have physics in some games). As such, avoid allocations per frame.

2\. Notice transition screens, loading screens before levels, brief artistic animated overlays (things like ROUND 1 - READY!). These just aren't for fun or to hide just disk IO, they can actually be used as a time to do controlled allocations. Let's say you're doing a Metroidvania for instance - perfect time when changing areas to load new stuff.

3\. Use fixed-sized data structures like arrays. Vectors, Lists, any kind of dynamically resizing data structures are generally your enemy. Sure you can use them in non-essential parts, but it's an easy thing most of the time. These help you control the amount of allocations, and moreover ensure that your game runs predictably, especially when pushed hard. You shouldn't be letting your game get into insane states that would allow allocating 5 billion bullet objects even if your vector and a machine with 64 gigs of rams can handle it. Obviously some exceptions, but there's sound reasoning.

4\. Operate on fixed-sized data structures in sequence. It's harder on the JVM, but in most platforms you can start trying to use this to help the runtime optimize for you, or better yet, get things to fit nicely into cache lines. Things like "events" and "callbacks" may seem helpful, but they are actually your enemy, even on the JVM. You are better off using a queue or mailbox approach if you need more performance and less GC surprises.

5\. Pool. But don't just pool and allocate, make sure you are pooling efficiently. On some platforms, this means tightly packed structures with no holes. One cheat you can do is actually use an ID system and work with that to index into an array-based pool by getting via index instead of a search. Using dicts/maps for this is the wrong approach for so many reasons. There's an older GDC presentation about this somewhere I can't remember, but it talks about this in relation to entity systems and uses the term prius a lot. Free list might be something else on your google for this.

6\. Pack your textures when you can. Do things like use a sprite sheet. It's not just the GC pauses that are the enemy on the JVM, but also hitting the file system. This will help reduce it at the cost of potentially more memory for a single texture.

7\. Don't go wild with classes. Try a data-based approach. This cuts down on GC and is the basis for some flexible architectures like entity systems. Of course you may still need classes as containers if you are using Java, but you'll end up with less ugliness and perhaps less classes and instantiations of those classes this way.

8\. Check out your JVM flags and tweak things more if you must. Check out [https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc...](https://docs.oracle.com/cd/E40972_01/doc.70/e40973/cnf_jvmgc.htm#autoId0) for an example. Not the best guide, but my first google hit to just demonstrate. On a semi-related note, don't do stupid stuff like reflection or dynamically load in things that are just going to make the JVM angry. Simple is better than clever here.

9\. Use a good time step for your game loop where you separate your sim time. It doesn't necessarily fix GC pauses, but it does ensure that if things are running slow you can respond and interpolate.

10\. Related to the last point, try to do more per frame and don't assume all work is the classic game loop of render per tick. Naughty Dog did an interesting presentation on The Last of Us port to PS4 you can read about where they talk about optimizing the way they process frames. If your game permits similar approaches, it gives you a chance to squeeze out some performance this way.

I have many more tips, but this is just off the top of my head. Some of these might seem like micro-optimizations, but they actually end up shaping your game's architecture so it is definitely important to think about it early if you are serious about not putting yourself in a performance corner.

You can certainly develop games on the JVM. I personally don't recommend it unless it's for pleasure. C or C++ is still the way to go. I am sure you can have fun with Rust too doing it, but there's just so much ecosystem and people talent tied up in the former choices that it effectively makes anything else far behind. That said, you can write a good game in any language, and if you are just sane about your game it will be fine. Even with GC pauses, for some type games, ex: strategy that isn't real-time, your users would barely notice and it wouldn't effect gameplay. In short, be pragmatic no matter the language, stick to some of the above, and enjoy yourself and just get it built. Language is the least of your worries in the end, but still worth paying attention to on some level.

<comment><USER7> Wow. Thanks for all this.

I've casually read a lot of people's advice on game dev, and while some of it is reflected in what you said, your comment kind of ties it all together. And it confirms something I've been thinking for a few months (possibly years)...

Everything needed to write a simple game is right there in C, using structs, pointers, and functions! Anything beyond that is over-engineering. And the conveniences that languages like Java bring are just simply not worth it in this context.

Because as far as I can tell, writing a game is basically writing a tight loop that enumerates arrays and calls functions on them. There's basically no need for any OOP beyond the simplistic method of using structs, pointers, and functions.

And considering I've just had 4 years of practice using data and functions (full time job writing Clojure), I think I'm a lot more comfortable with this pseudo-OOP approach than I would be trying to jimmy-rig Java to basically be C.

So that's what I'll probably do. Write a SNES-style metroidvania in C using SDL2. (Although I'm open to alternative suggestions, but from what I've read, SDL2 is probably best for this job.)

Thanks for your advice and for bearing with me as I think this through in this comment :)

<comment><USER8> What you are saying is mostly right, perhaps somewhat of an oversimplification. Interestingly, these days I work with quite a bit of Clojure.

Most of what I've been describing came about because people were in OOP hell, and decided to move towards composition vs. inheritance. As multi-core machines, GPUs, and more sophisticated games arose as well, there was more of a need to start thinking more in terms of what the CPU wants and pipelining things for the CPU, GPU, and such (think PS3 for instance). To some degree, this thinking was always there and circling back to 80s game programming, but a lot of people got off-track. For example, memory allocation was always a thing to the point where no sane person every used anything in C++ from std because of allocations and bad memory layouts. Structure packing has always been a thing of course too. Another was thinking about v-tables and how they just get in the way, especially when working on more limited platforms like the NES, 286, etc. in those days.

Games are mostly about enumerating a lot of stuff, very fast, per some measure of time, and then repeating. If this sounds a bit like a map or a reduce in functional terms, it should because it is. You have loops inside loops, and you try to operate on similar blocks of data, rather than jumping around all over the code or iterating mixed collections (or hybrids using co/contravariance). It turns out computers, especially x86, really like it when you enumerate things in a line. There's a fun presentation somewhere where Stroustrup himself shows how an array can be faster in many situations than a linked list when the linked list fits the exact description of the correct data structure.

Anyway, you can rig a lot of this into Java as you say, but fighting the GC is still considerably hard. Clojure itself is even worse because it generates garbage like nuts and you also end up doing things like transient! or using volatile! to work around other speed issues. I'm not sure about Kotlin would be, but as a JVM language dealing with JVMisms, I suspect largely the same as Java. Other languages that are more predictable or not GC'd fair much better for games, they are just not used as much because of the people in the industry, technical debt, tool chains, know-how, risk, etc.

Where I'd disagree with what you said is that those constructs are all you need. For certain parts of your game you still need quite sophisticated stuff. Threading primitives and complex pieces of code help that are a pain to write with just what you described. But these things are generally higher level. For example, scripting engines are a good thing to have and often not written in the same language (ex: lua). Editors are another example. They aren't part of your game directly necessarily, but these days they increasingly are on some level, at least some form of them. Either way, you benefit from building toolchains in a variety of languages to help a game. It's not just a single code-base and ultimately you only have so much time, so you take shortcuts like throwing in Lua to make life easier.

Regarding SDL2, it's probably great for what you are doing. It's more low- level, but if you want to build things from the ground up, it's a fine and well-tested choice. There are other alternatives, but mostly in the form of full game engines. Certainly you could do this with something like Unity and it'd be good enough. If you're going 2D, the one piece of advice I'd give you is I'd say probably these days you can get just as much done by making things 3D and fixing the camera most of the time, or using a hybrid. 2D is more difficult than people think and often sucks in certain engines (ex: Unity :) ). Anyway, it's just a matter of some head banging and time. If you go SDL, you'll learn a lot, just remember, build games, not game engines.

<comment><USER7> Thanks for the advice. Best of luck, especially if you're dealing with burnout which it sounds like you might be from your other comments. I'll definitely be taking your advice and trying something in SDL. Maybe a simple SNES Mario-like clone for starters [1]. Man, it's been 10 years since I last tried that, and back then it was in Freebasic! What a wild ride. Okay I think I'm too tired to adequately form a comment properly. Stayed up too late for this election and the speed. Man, what a wild ride! Well anyway good night and thanks again.

[1] : [https://github.com/sdegutis/mario- sdl2](https://github.com/sdegutis/mario-sdl2)

</comment></comment></comment></comment></comment></comment><comment><USER9> Saw a great Kotlin talk by Hadi Hariri from JetBrains at Javazone this year. [1] What I liked about it was that instead of the usual "this is how you do X in language Y" it focused on the immediate value it could bring to professional developers used to Java. Made me really want to try it out and start using it at my job.

[1]: [https://2016.javazone.no/program/kotlin-ready-for- production](https://2016.javazone.no/program/kotlin-ready-for-production)

</comment><comment><USER10> Kotlin is great and we're using at in the backend at Datawire.io. Also we're hiring! Check us out if you're a backend JVM/Kotlin developer and are in the Boston, MA area!

[https://www.datawire.io/careers/](https://www.datawire.io/careers/)

<comment><USER7> Do you use any specific Kotlin (or other JVM lang) web framework for your backend, or did you roll your own?

<comment><USER10> Vert.x 3 currently. First class Kotlin support is dropping before the end of the year according to the Google Group for Vert.x but for right now the excellent Java/Kotlin interop hasn't prevented us from building.

<comment><USER11> vertx looks very slow compare to other java frameworks. And the fact that you can use them and you will the same speed asta java...

[https://www.techempower.com/benchmarks/#section=data-r12&hw=...](https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=query&l=27wqyn)

<comment><USER10> Hard to say what's going on there. Vert.x itself is quite speedy. The DB access module they use ([http://vertx.io/docs/vertx-mysql-postgresql- client/java/](http://vertx.io/docs/vertx-mysql-postgresql-client/java/)) is still in technical preview so there may be legitimate issue with the module or something wrong being done (I only glanced quickly and didn't see anything immediately obvious). Vert.x really isn't much more than a pleasant facade over Netty so it's hard to imagine what's actually wrong.

It appears there may be an issue with the benchmark? [https://github.com/TechEmpower/FrameworkBenchmarks/issues/21...](https://github.com/TechEmpower/FrameworkBenchmarks/issues/2117)

Personally, I don't really care about benchmarks. Getting stuff done is more important at this stage. Eventually this may become more important but I'm not going to worry about it until it becomes and issue for us specifically.

</comment></comment></comment></comment></comment><comment><USER12> I'm torn on this. On one hand, Kotlin is great. It's not Scala but it gives you a whole lot while maintaining the ability to very easily swap in for Java.

On the other hand, it's controlled by Jetbrains—the company that now offers a "yearly license" of many of its compilers at the same price point it once sold them for, after which time they forcibly downgrade the software their users have paid for. It's not illegal and some even agree with the practice on an ethical level, but it's clear that Jetbrains is all about hoarding as much consumer surplus for themselves as they can.

If only Kotlin were truly an open project and well supported outside of the Jetbrains marketplace, e.g. by VS Code, I'd be cheering it on.

-former webstorm/rubymine customer

<comment><USER13> I don't really get that. Kotlin is open source. You can write and compile Kotlin code without paying JetBrains a penny, it's not hard. There's even an Eclipse plugin - written by JetBrains.

I'm not sure what more is required to make it truly open.

<comment><USER12> What non-Jetbrains IDE supports Kotlin well? What % of its contributions come from outside the Jetbrains ecosystem?

Once Jetbrains no longer controls Kotlin's future and most Kotlin users are _not_ Jetbrains customers, then I'd consider it truly open.

<comment> trevor-e I think you're confusing language openness with freedom of choice for consumption.

<comment><USER12> I think you're confusing deduction with speculation. I'm fully aware of the difference between language openness and "freedom of choice for consumption". I just don't agree with the wisdom in tying my workflow to a company like Jetbrains.

<comment><USER11> why? What is wrong with jetbrains, and also what is the connection between then and a free software(kotlin) also, vs code is by microsoft. Any time microsoft can say that plugins needs to be review by them. also vscode is ahead is a very hard option?

Are you upset for the election in USA?

</comment></comment></comment></comment></comment></comment><comment><USER14> Saw this pop up in my IDE this morning, excited to upgrade. The auto-for-loop- refactoring is interesting. I've found I _never_ use for-loops in Kotlin - between the abundance of iterator methods and concise trailing-closure syntax, it always ends up being more concisely expressed as collection.forEach { ...body... }. Seems like the language may be going that way too; I wonder if we'll eventually see the for-loop start to fall out of use in modern languages.

<comment><USER7> But does .forEach compile to an efficient for-loop in Kotlin?

<comment><USER14> Not completely sure about the internals of the Kotlin compiler, but I believe it does. You can do a non-local return (i.e. return from the top-level function, not the lambda passed to .forEach) from inside them. This would be very difficult if the body were not inlined, because you'd need to store a lexical stack of return addresses and ensure that the closure never escapes the HOF. (I think it actually does perform this escape analysis; I've gotten error messages before when trying to pass a lambda with a non-local return into a functional argument that _wasn 't_ one of the basic collection iterators.)

</comment></comment></comment><comment><USER15> Anyone using Kotlin to compile to javscript in a large app care to share some experiences?

<comment><USER16> JS support was an experimental and TODO for a long time. Is it ready now?

<comment><USER17> I don't believe JavaScript will be "un-experimental" until Kotlin 1.1 is out.

</comment></comment></comment><comment><USER18> I can also vouch for Kotlin. I am actually not an Android dev and I started using Kotlin for a backend project (uses Spring Boot) and I was pleasantly surprised how easy my switch to Kotlin was.

</comment><comment><USER19> It also finally solves the Android Studio bug that would show all the Databinding code as erroneous in the IDE.

The tooling is still a bit rough around the edge compared to the base Android one, mostly because the android tools team really does an awesome job.

It is still useable though, and the language is so much better than java that it is a breeze to use.

The only downside is that you have to interface it with java code, which brings a couple of issues.

</comment><comment><USER20> Hi guys, what is the Kong term story here ? We have been yearning to use kotlin for our Android app and backend...but have been worried about Oracle doing something that breaks compatibility, or jetbrains going out of business as a company.

I see a few people have adopted it - what do you guys see as the future of the language? Do you think java8+Lombok is moving in a direction that makes kotlin useless ?

</comment><comment><USER21> Is there a lambda-to-loop refactoring? Every refactoring should have its inverse. For loops are often better than map() calls (not always).

</comment><comment><USER22> Congrats to the entire Jetbrains team.

Great language, greater IDE.

</comment><comment><USER23> I'm curious to hear from anyone with a Groovy background that has worked with Kotlin as well.

<comment><USER24> Apache Groovy's original creator, James Strachan, worked on Kotlin for a while after, er, leaving the project, as also did Alex Tkachman, creator of Groovy++ which was cloned as the static typing facility in Groovy 2.x.

</comment></comment><comment><USER25> Is there anybody switching from Scala to Kotlin?

<comment><USER26> I can't imagine anyone who has used Scala for long would switch to Kotlin. Kotlin is 'Java++'. Scala is a fully featured functional language.

Kotlin is missing all of the most powerful Scala features. No type classes, monadic comprehension, higher kinded types, adhoc polymoprhism. :(

<comment> V-2 Well, it's kind of the point. Kotlin is supposed to be light weight and easy. Besides, using Scala for Android, while possible, is cumbersome. Kotlin wins this one hands down.

<comment><USER27> Scala for Android is fine. The only thing that makes it harder than Kotlin is JetBrains disingenuously shipping their Kotlin plugin but not their (more popular) Scala plugin by default, which they could fix tomorrow if they wanted to.

<comment> V-2 Last I checked, Kotlin plugin isn't installed (in Android Studio) by default. Are you referring to IntelliJ Idea?

I tried to use Scala for Android in the past and I gave up after attempting to set it up for a few hours. Admittedly it was a while back, perhaps things have improved.

Your claim that Scala on Android works fine got me interested again, so I googled around, found that blog post from May this year (that's more recent than my own experiments), and apparently there are still hurdles: [http://blog.scalac.io/2016/05/19/reflections-on-starting- and...](http://blog.scalac.io/2016/05/19/reflections-on-starting-android- project-with-scala.html)

With this type of issues the thing that I'm wary about is not getting a "hello world" app to compile once, but that I can get a project up and running, then need to add something else to the equation (say, a DI, or some code processor), and things fall apart again in an X-Files fashion.

I've heard that Scala has long build times, too, but maybe it's a thing of the past as well - no first-hand experience here as I never got to that stage.

<comment><USER28> The article isn't very good, even the link to the 'official' page is outdated.

Just use sbt-android and skip all the other nonsense.

Compilation is impressively fast, as the plugin uses the information from incremental compilation to skip ProGuarding completely for things that haven't changed.

</comment></comment></comment></comment></comment></comment><comment><USER29> For those who use Kotlin to target Javascript, how does it perform against something like Elm?</comment>


Ask HN: How to grow a distributed computing project - <AUTHOR> I'm trying to grow the userbase for Compute for Humanity (https://www.computeforhumanity.org), my distributed computing project, but I've been unable to really gain traction with any group of users.
I've tried posting on HN, writing blog posts, posting on lots of subreddits and relevant forums on various websites, pitching articles to journalists and tech news sites, and adding mild gamification sharing features to the app. So far, nothing's really caught on.
I've gotten some feedback that it seems "untrustworthy," but I'm not really sure how to fix that. I've revised the website text many times to make it friendlier and easier to understand.
Any advice or honest feedback would be supremely helpful and appreciated! <comment><USER2> One issue that you can't fix is: there is money involved (vs other projects, that donate compute power for scientific purposes. Even though they could be running coin miners and most users wouldn't know, on some level it feels different).

At some point, the user has to trust you that you do the right thing with the money. I don't know if you can make that more transparent? Ideally, I as a user of the software could check each step of the way what happened. Right now, I can look at your /financials page, but I can't trace "x% of the coins were mine, and that was the conversion rate back then, and ...".

If you find good charities that take BTC, or a reputable service doing the giving, you could make all steps really transparent. Links to blockchain viewers etc, allow to say " _I_ mined the coins at that address, and then it went to there, and _here_ is the transaction that goes to the charities address". But even if you don't, you can make the flow before you convert to USD more transparent, and hopefully can find a way to prove you donated the money.

Potentially, allow users to set up their own miner and donate the coins. Blockchain stuff can be really transparent, and if you want to target bitcoin/... enthusiasts that might be your chance to convince them you are legit.

(EDIT: also, how _does_ your project look once you factor in energy cost? If I spend more money generating coins then I end up donating through it, it's not very efficient...)

<comment><AUTHOR> Thanks for the feedback!

I agree that money does complicate things (doesn't it always?) here. Unfortunately, Dwolla (my fee-free payment processor) doesn't have a way of making transactions publicly viewable (though I'll be making the feature request—thanks for pushing me on this). I've seen other projects use letters from the nonprofits as "proof" of the donations, but since this project only donates a few cents at a time I thought it wasn't worth imposing that on the charities—but perhaps that's not true (since I'm sure they have to write those letters all the time).

Bitcoin definitely can make things very transparent, and I appreciate your thoughts around taking advantage of that. I'm somewhat worried about driving away non-technical users with an overemphasis on cryptocurrencies though. It's been a tricky needle to try to thread.

Anyway, lots of good stuff to ponder here—thanks!

</comment></comment><comment><USER3> \- Improving a site's design usually helps.

\- I clicked to install it and, like you mention, I too thought it's untrustworthy. How do I know you won't steal the data on my computer? Is it open-source? Where can I download it? Can I compile it from source? How?

Why are you working on this? Are there other ways to solve the problem you're trying to solve?

<comment><AUTHOR> Thanks so much for the feedback! To address your questions about trust:

> How do I know you won't steal the data on my computer?

The website footer has a link to the privacy page: [https://www.computeforhumanity.org/privacy](https://www.computeforhumanity.org/privacy) From what I've seen the privacy link in the footer is pretty standard.

> Is it open-source? Where can I download it? Can I compile it from source? > How?

The main page of the website says "All code (including the code for this website!) is open source." next to a link to the GitHub page.

Clearly the website isn't communicating well if you have these questions even after visiting the site. Do you have advice on how I could improve the website to better address these questions?

To answer your last questions, I'm working on this because I think distributed computing projects have enormous potential but they typically:

\- are confusing to explain \- are complicated to install \- only support very technical causes (like finding extra-terrestrial life) rather than things like ending global poverty

<comment><USER3> To improve the site, instead of adding a lot on it have very little on it: only what's needed to get someone to install the software. I suggest you erase EVERYTHING from it, and start from a clean, single white page trying to get people to download it.

Make it legible first. What you have isn't legible no matter what the page says. When my eyes land on the site they move away from the site within 1 second:

\- I didn't see the website footer.

\- I didn't see the "open source" part.

\- All I saw was the pictures and the orange button.

Assume a visitor will give the site no more than a 2 second glance. Design for that.

I would change "save the world from your sofa" to "end world poverty" and increase the font size from 30px to 60px.

I wish there were instructions for me to compile the software from source. In Linux I can often run ./configure && make && make install; and know that I'm installing something clean from source. Can I do the same with this software?

Now, onto why you're working on this. Do you have a specific "enormous potential" problem -- AN ACTUAL PROBLEM -- that you, personally, needed to fix yesterday?

Do you personally need to end global poverty? Why? How will distributed computing end it anyway? How many years have you spent being in poverty to understand that the one and only solution for poverty, out of the possibly thousands, is distributed computing?

Are you doing this because you believe distributed computing will mine Bitcoins, change that into money, and donate the money? If that's the plan, it never crossed my mind after visiting the page.

I'd be great if global poverty ended. I'm not saying distributed computing can't end poverty but I'm not fully convinced either.

All this said, don't get discouraged. You may find that what you're working on could easily change into something else. But whatever you release try to do a great job at it.

For example, what if I'm willing to just donate something to end poverty and not hog my CPU? That would be a completely different website. If you can make me trust you that the money won't be mishandled, maybe I'm willing to just donate $5 a month to end poverty, and not have to compile anything from source. If I can afford $2k for computing equipment, maybe I can afford $60/yr to end poverty and not hog my CPU.</comment></comment></comment>