Monsanto Weedkiller Is 'Probably Carcinogenic,' WHO Says - <AUTHOR> http://www.bloomberg.com/news/articles/2015-03-20/who-classifies-monsanto-s-glyphosate-as-probably-carcinogenic- <comment><USER2> I know that its hard for someone to understand who doesn't work with farm chemicals on a regular basis but Roundup is on the low side in terms of toxicity.

Here's a copy of a Material Safety Data Sheet that all those who handle herbicides need to maintain for employee access:

[http://greenhouse.ucdavis.edu/pest/pmsds/Roundup.PDF](http://greenhouse.ucdavis.edu/pest/pmsds/Roundup.PDF)

Almost anything is toxic, even salt, if the dose is high enough. The question that must be answered is if there is a realistic chance that people in contact with the herbicide can receive a high enough dose to raise the chance of cancer. Or that the average person either living in the country or consuming the food has an increased risk.

It's becoming increasingly common for states to take blood tests at the beginning and ending of the season of commercial pesticide applicators to monitor them.

If anyone was to have an increased level of ill health this group, because of the sheer volume of material that they handle, would be the first to show it.

<comment><USER3> Whats your point? That the WHO are scare-mongering? That Monsanto shouldn't be held accountable for knowingly marketing a poisonous, carcinogenic substance and profiting from it in the billions?

<comment><USER4> The acetaminophen in Tylenol ( a common over the counter pain and fever medication used by millions of children and adults every day ) is carcinogenic and hepatotoxic.

" There are, however, published data giving clear evidence that paracetamol causes chromosomal damage in vitro in mammalian cells at high concentrations and indicating that similar effects occur in vivo at high dosages. Available data point to three possible mechanisms of paracetamol-induced genotoxicity: (1) inhibition of ribonucleotide reductase; (2) increase in cytosolic and intranuclear Ca2+ levels; (3) DNA damage caused by NAPQI after glutathione depletion. "

"Paracetamol induced sister chromatid exchange in human cells in vivo, and it was aneugenic and induced chromosomal aberrations but not micronuclei in mammalian cells in vivo. It induced DNA single-strand breaks in mice treated in vivo. Paracetamol induced sister chromatid exchange and chromosomal aberrations in human cells in vitro. It weakly induced cell transformation in a mouse cell line. It induced chromosomal aberrations, micronuclei and sister chromatid exchange in mammalian cells in vitro. It did not induce gene mutation, and the results of tests in mammalian cells in vitro for unscheduled DNA synthesis and DNA damage were inconclusive. Overall, paracetamol was genotoxic in mammalian cells in vivo and in vitro. It was not mutagenic to insects but was clastogenic in plant cells."

And here is an entry from the NIH TOXNET database about liver and bladder cancers induced by tylenol.

[http://toxnet.nlm.nih.gov/cpdb/chempages/ACETAMINOPHEN.html](http://toxnet.nlm.nih.gov/cpdb/chempages/ACETAMINOPHEN.html)

Everything including water is toxic under the right conditions.

<comment><USER3> Oh, well then, no need to worry about this at all .. _everything is toxic in the right numbers_ , so there's no wrong-doing here in the slightest and we shouldn't stop big companies from polluting the planet, because .. after all .. its already all polluted.

What a ludicrous position.

<comment><USER5> Exactly. Especially since it's apples and oranges.

Water is not optional. Without it you die. Roundup is optional. Without it the world can still grow crops (we SOMEHOW have for thousands of generations). Dumping many many tons off chemicals designed to kill (however small the organism) all over our food and planet, let alone planting homogeneous, patented, and GM'd "basic" plants, is a recipe that likely isn't good for the planet over time.

<comment><USER6> >Without it the world can still grow crops (we SOMEHOW have for thousands of generations).

Historical yields were tiny compared to what we get from contemporary farms. I don't know if we need Roundup in particular, but if we went back to traditional farming methods half the world would starve.

There's no going back.

<comment><USER7> Actually there is no evidence of this, a good proportion of of the food produced is actually used to feed animals which is the most inefficient way to produce food.

Just by eating less meat (which makes sense because we are not supposed to eat so much meat), suddenly we don't need to product so much. The actual price of the food is so low currently that what you pay in a supermarket is mostly the externalities. Switching to cleaner methods would not lead to starvation providing that we would eat differently.

<comment><USER8> Most americans would happily choose cancer over vegetarianism. That part isn't Monsanto's fault. Source: I am a vegetarian who talks to omnivores and near- carnivores.

<comment><USER7> Yeah, that's the main problem I guess, the system is providing people what they want but not what they need. It works like any other market, the consumers want cheap meat so the industry is providing cheap meat. The whole industry is then shaped to solve the wrong problem. They don't even need to fully switch to vegetarianism for it to work but they need to understand that eating meat once in a while is healthier and more reasonable than having a diet based on eating meat every day.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This _article_ (not the study) is total trash. Every other thing on this planet - from water to oxygen to sunlight to common cold[0] to _turning a light on when you go pee at night_ [1] apparently causes cancer. People read bullshit like that, start being afraid of everything they interact with, and _then_ newspapers are _surprised_ we have anti-vaccine movements, or that the general population doesn't trust science at all.

If anything is a serious danger to humans here, it's not Roundup, it's _reporting like this_.

EDIT: because it seems not clear to some - "causing cancer" is _not a binary thing_. There are degrees, and types, and required exposure levels, etc., and not all types of cancer are actually dangerous. And all of this is more important than "oh welp, it's carcinogenic", yet none of it is even mentioned in the article.

[0] - [http://www.dailymail.co.uk/health/article-371451/Common- cold...](http://www.dailymail.co.uk/health/article-371451/Common-cold-major- cause-child-cancer.html)

[1] - [http://gawker.com/5515697/turning-on-the-light-to-pee-at- nig...](http://gawker.com/5515697/turning-on-the-light-to-pee-at-night-causes- cancer)

<comment><USER3> The reason this is important to discuss is that Roundup is out there, in massive quantities, and if it is determined that it can cause cancer in much higher rates than previously expected - then something _must be done about it, because of the sheer magnitude of the market penetration of this product_. If it is discovered that Roundup-poisoned regions have extraordinarily high rates of cancer - and this is yet to be determined - then there is indeed an industry- and culture- changing event on the horizon.

We don't get to that horizon unless we discuss the issues - so why are you attempting to thwart discussion of this issue by people who are intelligent enough to understand the science behind the conundrum?

<comment><USER9> I totally agree with you here. And the study done by WHO is a step in the right direction. I'm not objecting studying things - on the contrary, I'd be happy to see more studies about Roundup because, as you said, it's used with our food on a mass scale.

What I'm objecting is _not quantifying the findings_. Asbestos doesn't "cause cancer" the same way Roundup may or may not do, nor is it the same type of cancer. Bundling it all together is what I find harmful. Articles should give threat level.

</comment></comment></comment><comment><USER10> This interview about the topic (Glyphosate by Monsanto) is also quite telling:

[http://m.canalplus.fr/?vid=1122650](http://m.canalplus.fr/?vid=1122650) (English with French subtitles)

Interviewee: It is completely safe and you could even drink it

Interviewer: We got a glass of it here, you want to drink some

Interviewee: No, of course not, I'm not an idiot and the interview is over now.

<comment><USER9> Yes, it's a good clip, I suggest watching it _from the start to the very end_ and then making up your mind.

The interview was apparently supposed to be about the golden rice, which is a topic that is _completely unrelated_ to Monsanto in _any way at all_.

Also, if I was in the shoes of the interviewee, I wouldn't drink it as well, even if I trusted it was completely safe for me - it probably doesn't taste well, and I don't feel like doing a show for a disrespectful jokester in front of me who thinks he's funny, and refuses to talk about the thing he was supposed to.

<comment><USER11> Moore tells the interviewer that one "could drink a whole quart of [Roundup]" without any harm. When Moore is offered a glass of the weedkiller, however, he refuses and says "I'm not stupid." \- Why did he bring it up when he was not going to follow it through.

<comment><USER12> He might have expected a modicum of respect from the interviewer, and not a gimmick to "win" an argument.

<comment><USER13> Saying you are prepared to drink it is a gimmick. The same basic idea has been used a million times before for everything from asbestos to tobacco to coal dust to lead paint. Common enough for it to be parodied in a 25 year old episode of the Simpsons ("Two Cars in Every Garage and Three Eyes on Every Fish").

Also Patrick Moore is a professional science denier. He doesn't deserve respect from anybody.

<comment><USER14> "can drink" and "prepared to drink" are different things.

Also I don't assume that random glasses of chemicals handed to me have been processed and handled in a food-grade manner.

<comment><USER8> Claiming you could drink a quarter of it implies you believe it is food grade. It's extreme my disingenuous to hypothesize that a Roundup bottle imparts more health hazard than the contents.

<comment><USER14> >Claiming you could drink a quarter of it implies you believe it is food grade.

This makes no sense. Chemicals aren't inherently food grade or not. I won't drink a non-food-grade quart of water either.

>It's extreme my disingenuous to hypothesize that a Roundup bottle imparts more health hazard than the contents.

You've heard of agent orange, right? It wasn't the herbicides that injured people, it was small quantities of potent contaminants.

It's not just the bottle, it's every container it's ever touched, every source for dirt or bad-to-ingest chemicals to get in that wouldn't bother plants at all.

Edit: And to be clear, this applies just fine to things that are human-safe in small doses or for farm use. Contamination by literal dirt is a great example of something fine to spray on plants and dumb to consume directly.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Is there a link between the WHO classification and California food labels, as claimed by [http://articles.mercola.com/sites/articles/archive/2015/03/2...](http://articles.mercola.com/sites/articles/archive/2015/03/28/monsanto- sustainable-agriculture-company.aspx) ?

 _Indeed, the IARC's classification of glyphosate as a probable carcinogen is more significant than you may realize. IARC is one of the five research agencies from which the OEHHA—which is the California agency of environmental hazards—gets its reports to declare carcinogens under Prop 65. What this means is that in a few years' time, foods containing glyphosate will have to have a Prop 65 Warning label to be sold in California. While it will take time, that process is now in motion with the IARC classifying glyphosate as a Class 2 carcinogen._

</comment><comment><USER15> I found this NPR article to be a bit more informative: [http://www.npr.org/blogs/thesalt/2015/03/24/394912399/a-top-...](http://www.npr.org/blogs/thesalt/2015/03/24/394912399/a-top- weedkiiller-probably-causes-cancer-should-we-be-scared)

</comment><comment><USER16> The report's a bit light on details. All sorts of things can cause cancer in lab animals if you give them enough. It's more a question of what concentration.

And if the human exposure studies are that bad I wonder why there's not been much fuss since they were published in 2001.

<comment><USER17> The monograph this re-classification is based on is not yet published.

</comment></comment><comment><USER18> It's not a matter of if something is carcinogenic, but how carcinogenic, at what dose and under which circumstances. The article doesn't go into details about whether it'd be carcinogenic at the levels you can get in food.

</comment><comment><USER19> I encourage anyone who wants to know more about glyphosate to watch this video: [https://www.youtube.com/watch?v=MqWwhggnbyw](https://www.youtube.com/watch?v=MqWwhggnbyw)

Stephanie Seneff is a Senior Research Scientist at the MIT Artificial Intelligence lab (BS in Biophysics, MS & EE in Electrical Engineering, PHD in Electrical Engineering and Computer Science) and she has done research suggesting glyphosate is responsible for a whole host of human health issues due to broad spectrum effects on our gut microbes.

Glyphosate doesn't affect any human systems as many may point out, but according to Seneff it does kill a lot of our gut bacteria, and I've seen a lot of articles suggesting how important our gut bacteria are to our health. Seneff suggests that gut bacteria effects are only seen at around the 4 month or later mark in humans, but says every official study has been 3 months or less because they only examined it for toxicity.

There are a lot of take down articles claiming she is a quack, but none I've seen that really call into question the science of what she claims. Most take down articles accuse her of working too far outside her field, as if her BS in biophysics followed by her several advanced degrees shows her unable to gather research in biology. Some people think her claims about autism and glyphosate prove she is not worth listening to, but I disagree that a scientist who does original research should be broadly ignored because a subset of their claims are hard to swallow. Even if the autism connection is false, there are many other issues.

She points out that glyphosate use has grown exponentially in the last 15 years since it went out of patent, and runoff from glyphosate (which kills plants) is causing real harm to our ecosystems. She also says they have new harvest techniques where they just spray the poison on wheat crops before harvest. It kills the wheat but I guess makes harvest easier. So if her claims are correct, your food could have been directly sprayed with this stuff right before it was taken from the farm to the factory. She then points out that until recently no studies of glyphosate occurrence in food have been done, nor had any studies of glyphosate in humans been done. A recent study found something like a third of european food and a fifth of europeans to have measurable levels of glyphosate in their urine.

So there's this chemical that everyone swears up and down is SO SAFE that we don't even need to study it. Meanwhile we have a clearly brilliant woman who makes a compelling case that spraying this stuff left, right and center on our food may be a bad idea.

I do not think the people who say "we shouldn't look into it" have a leg to stand on. Seneff may not be right, but the ONLY way to know is to examine her claims and prove or disprove them. We should examine the data she presents in the youtube talk linked above and try to see if her claims hold water.

If you disagree with me or know more than me, that's fine. I'm just sharing what I know. I'm not saying we shut down your farm, I'm just saying we should have the facts. Her talk has at least convinced me some facts are missing, including long term studies of glyphosate's effect on our gut microbes. If you can point me to a study of this, please do.

<comment><USER20> Quickly looking at her CSAIL page, I note 2 things about her glyphosate research:

(1) Her talks generally are not at scientific conferences.

(2) Her published articles are in "predatory open access journals". Since she is not stupid, I assume she is publishing this work there because she cannot publish in more respected journals.

The WHO is respected, it is relying on well-performed studies. If they say glyphosate is probably carcinogenic, I'll pay attention. Seneff is publishing in Omics and MDPI journals, which are viewed as publication mills by the community. It appears the community has examined her claims and rejected her from being publishing them anywhere respectable.

<comment><USER19> Good points, thanks for the rational assessment.

I still can't tell if her claims don't hold water (specifically, that glyphosate materially harms gut microbes), but your observations do show she has been shunned by the scientific establishment. I'm no conspiracy theorist there, so that does lend credibility to the idea that she's making an error somewhere.

I would love to see a specific debunking of her claims that didn't cop out and say "glyphosate has already been proven safe, DUH" or attack her personally.

But your observations are good food for thought, thanks.

</comment></comment></comment><comment><USER21> Here is a better source for the hypothesis and evidence: Glyphosate probably causes cancer, says WHO + Lancet paper. [1]

Yes, Glyphosate happens to be an ingredient in Roundup, which happens to be manufactured by Monsanto. Neither are the primary subject of the scientific hypothesis.

[1, PDF] [http://www.iarc.fr/en/media- centre/iarcnews/pdf/MonographVol...](http://www.iarc.fr/en/media- centre/iarcnews/pdf/MonographVolume112.pdf)

<comment><USER21> The International Agency for Research on Cancer (IARC), the specialized cancer agency of the World Health Organization, has assessed the carcinogenicity of five organophosphate pesticides. Here is the key finding for glyphosate:

 _For the herbicide glyphosate, there was limited evidence of carcinogenicity in humans for non-Hodgkin lymphoma. The evidence in humans is from studies of exposures, mostly agricultural, in the USA, Canada, and Sweden published since 2001. In addition, there is convincing evidence that glyphosate also can cause cancer in laboratory animals. On the basis of tumours in mice, the United States Environmental Protection Agency (US EPA) originally classified glyphosate as possibly carcinogenic to humans (Group C) in 1985. After a re- evaluation of that mouse study, the US EPA changed its classification to evidence of non-carcinogenicity in humans (Group E) in 1991. The US EPA Scientific Advisory Panel noted that the re-evaluated glyphosate results were still significant using two statistical tests recommended in the IARC Preamble. The IARC Working Group that conducted the evaluation considered the significant findings from the US EPA report and several more recent positive results in concluding that there is sufficient evidence of carcinogenicity in experimental animals. Glyphosate also caused DNA and chromosomal damage in human cells, although it gave negative results in tests using bacteria. One study in community residents reported increases in blood markers of chromosomal damage (micronuclei) after glyphosate formulations were sprayed nearby._

</comment></comment><comment><USER22> Bet you $1000 that some of the commenters here work for Monsanto. :)

<comment><USER17> Bet $2000 that you're right :)

</comment></comment><comment><USER17> Waiting for the pro-GMO crowd to come forward calling all this "anti- science"...

<comment><USER23> GMOs have very little to do with weed killers.

<comment><USER17> Well not when it comes to Round-up Ready. It's Roundup Resistant GMO + Roundup = we kill everything in the field except the crops.

<comment><USER23> Your first comment seems to suggest that people who are pro-GMOs will be going against these findings. GMOs and weed killers are two parts of Monsanto's business model, but as far as the science behind the two goes there is virtually nothing in common.

<comment><USER3> .. except the marketing of Roundup as safe to use only in combination with other GMO products from Monsanto, that is.</comment></comment></comment></comment></comment>


Josiah Wedgwood - <AUTHOR> https://thehustle.co/josiahwedgwood <comment><USER3> Interesting they didn't mention that Charles Darwin was his grandson. The pottery business funded Darwin's voyage on the Beagle.

<comment><USER4> Josiah Wedgwood and Charles Darwin's paternal grandfather Erasmus Darwin were both members of the Lunar Society of Birmingham, which also included the chemist and liberal theologian Joseph Priestly, James Watt of steam-engine fame, and Watt's patron and partner Matthew Bolton, who was as much a technological entrepreneur as Wedgwood.

<comment><USER5> To add yet another connection, Watt is thought to have inspired Smith's physicalist theory of value at the university in Glasgow.

</comment></comment></comment><comment><USER6> "he's been largely forgotten by time"

Perhaps he himself is not well known, but the eponymous company he started in 1759 was the watchword for high-end ceramics for more than two centuries and is still sold to this day.

Towards the end of the 20th century, consumer tastes changed and the company faced stiff competition from cheaper imports. Wedgwood merged with another luxury goods company Waterford Crystal in 1987, to become Waterford Wedgwood. The combined companies fared no better as a unit and went into administration in 2009 though the Wedgwood brand survives after being purchased by a private equity company and now a Finnish consumer goods company.

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

<comment><USER7> Really I think this is just standard America-centric writing - <USER2> Wedgewood isn't well-known in the US, so the writer assumes his prior ignorance to be universal. Kinda the same way that many Americans think the telephone and television were invented here.

<comment><USER8> I don't even think that's accurate. If you watch antiques roadshow, wedgewood pottery comes up all the time. Anybody that's into antiques knows about them.

</comment></comment></comment><comment><USER9> Nice article, but I find it strange that not once was the gorilla in the room mentioned- China. Wedgwood was working in a world that had been re-shaped by Chinese export porcelain, one of the first examples of a truly global product and marketing "brand". Chinese porcelain was of extremely high quality (some of it unrivaled even today), technologically advanced, culturally complex, and cherished by the European nobility. European potters like Wedgwood were desperately trying to re-create the purity and beauty of the Chinese product. I would argue that what Wedgwood came up with was not only technologically inferior but also a strange cultural mishmash of influences with less cultural value than Chinese porcelain.

I highly recommend Joseph Needham's "Science and Civilisation in China" Volume 5, Part 12, covers Ceramic Technology: [https://books.google.com/books?id=mabcHwmAD5oC](https://books.google.com/books?id=mabcHwmAD5oC)

<comment><USER10> >European potters like Wedgwood were desperately trying to re-create the purity and beauty of the Chinese product.

Oh, how the pottery turntable turns.

>Chinese manufacturers like Huawei were desperately trying to re-create the purity and beauty of the American product.

<comment><USER11> I think that's grossly unfair given the American products you refer to are also manufactured in China. So they clearly have the knowhow to produce high quality products - even if they often prefer to target the non-premium market (which probably makes better financial sense when it comes to selling hardware domestically)

<comment><USER10> Manufacturing things is a commodity, creating things is where the value is.

</comment></comment></comment></comment><comment><USER12> > By the time Josiah died in 1795, he'd amassed a fortune of £600k pounds > (more than US $100m today), and was the 4th richest man in all of England.

I found this to be an interesting point about how much the wealth of society has increased since those times. $100m today would not put you anywhere even remotely close to the top of that list.

<comment><USER13> Converting historical currency to modern values becomes increasingly meaningless the longer the time span, and 1795 is a sufficiently different world to today with a different basket of goods that I don't think that's a valuable comparison.

<comment><USER14> By the same formula 100k in todays' money would be $600. Is that realistic?

<comment><USER15> That formula is for old British Pounds which are not even decimal. If go back earlier than that, there's records of whole villages being bought for a pound or two.

</comment></comment></comment></comment><comment><USER16> Jacob Fugger might disagree...

Still, a very interesting read.

</comment><comment><USER17> This article reads a bit too triumphal for my tastes. Factory towns and globalized industrialization have a dark side. Certainly this story can't all be roses?

<comment><USER18> Do you hold tea in your mouth until it tastes bad, too? Things have good and bad sides. Be mindful of each on its own time.

</comment></comment><comment><USER19> i am a potter and i approve of this article :-)</comment>


Show HN: HTML5 Canvas sprite animation library - <AUTHOR> https://github.com/IceCreamYou/Canvas-Sprite-Animations

<comment><USER2> If you are into hacking for STEM education, checkout phyzixlabs.com. I am not familiar with sprite animation, is it something that could be used for building sims?</comment>


The Back Button Dilemma - <AUTHOR> http://ignorethecode.net/blog/2011/07/15/the_back_button_dilemma/

<comment><USER2> No. Just... no.

If I go from a notification to the inner workings of an app, hitting back _should_ bring me right back to the view I was when I selected the notification. If that was the home screen, bring me back to the home screen. If I happened to be writing an e-mail and I got an @-reply on Twiiter with a notification, pressing back after reading the tweet should throw me right back to writing the e-mail.

I said it in yesterday's thread and I'll say it again here: the back button IS NOT an up button. Bad applications will attempt to "re-create" their internal stack of intents when you jump directly into a middle intent (like reading a Tweet or an e-mail), which breaks the back button's functionality. The author touched upon this in his post. A good analogy is Twitter's hash-bang urls breaking the back button in your browser. In this scenario Android's native Gmail app does it right: clicking back from a notification does NOT bring you to your inbox: it brings you right back into whatever you were doing.

Lazy app developers will try to shoe-horn "up" functionality into the back button. They're doing it wrong. What's the proper way to do this? The menu button and/or an on-screen UI element. If you're reading an e-mail and hit menu, there's a quick link to jump to your inbox. Other apps choose to use a button of sorts on the header or title area of their application. Android 3.0 and above have standardized this with the top Action Bar.

In short: there is no back button dilemma. There's a bad developer dilemma.

<comment><USER3> To add to what you're saying: bad developers are often under the impression that their app is the universe within which user activity happens. This is somewhat understandable, since their app is all _that developer_ think about. But it's important to remember that while adding a button go _up_ might be the optimal thing to do _within your app_ , it is unlikely to be the optimal thing to do overall.

Design for the user, not for your ego.

<comment><USER4> I'm not sure it's even the correct action to do within your app. Most of the time there is going to be more than one way to launch an activity even within an app. So going _up_ can ruin the user experience even within your app.

The only time I see a reason to override the back button is in games. When playing a game you don't want the back button to accidentally bring you back to the main menu screen. Most override the button and either ignore it or bring up a pause menu. In non-game apps overriding it just causes problems.

I've also seen apps override it when they choose to have a lot of different functionality in a single activity. This is poor app design.

</comment></comment></comment><comment><USER5> I think this is only a problem for people not familiar with Android. Once you get used to it, it's pretty straightforward and intuitive. Fact is, the back button always takes you back to the previous screen you where on, and it works systemwide. So when you opened an email from a notification, you get taken back from wherever you opened that notification. Yes, apps can mess with that behavior, but only bad apps do and those don't get used anyway. iOS navigation stacks work very differently, so this might be confusing for people coming from iOS.

<comment><USER6> It's not that the behavior is unclear, it's that going back is not always what you want to happen.

Sometimes, you jump directly into an app, but then, you want to do other things inside that app; since the back button normally is used to move up inside an app, it's not always obvious how to do that (and it's sometimes not possible at all).

<comment><USER4> It actually doesn't move up. It always moves back, just like the back button on the browser. If you want to move "up" that is handled by the developer's UI preferences.

Android doesn't know what the correct "up" activity would even be. Unless they've changed that in 3.0, I have only used the 2.2 and 2.3 sdks.

<comment><USER6> "Back" is normally used to move "up" because most of the time, "back" and "up" are the same thing.

<comment><USER4> Possibly true, but users don't expect the back button to move up, they expect it to move back. In the web browser if you click on a link from HN and then hit back you don't expect the browser to direct you to the parent domain, you expect it to return to HN.

<comment><USER6> The web browser is a different case than something like the Gmail app, or the Kindle app.

</comment></comment></comment></comment></comment></comment><comment><USER7> This gets to be particularly annoying if you, for instance, check multiple folders. Of course you can just hold back to quit the app, but that would be an obvious solution, and put designers like this guy out of a job.

As for "no satisfactory solution".. the first thing that comes to mind is having the notification take you to the inbox, but then open the message itself, thereby building the "stack" properly.

<comment><USER8> But no one wants that flow. If I wanted that flow, I'd buy an iPhone so that I have to completely stop what I'm doing and switch tasks (not that I dare say anything bad about iOS multitasking).

I don't want to get a text, reply to it and then have to relaunch my previous app. A tap of the back button and I'm back to doing whatever I was before I sent the text.

<comment><USER7> I wasn't aware that going from say,

browser -> message

to

browser -> inbox -> message

Would suddenly mean that the browser gets killed. Is this really the case?

<comment><USER8> No, but I see no reason that that makes any more sense, the user experience is that they navigate to their browser, surf, drop directly into a message and then go back. Especially since I think you're still thinking about things from an old mindset where users use the homescreen to switch apps. That's fine, but for those of us that want to leverage Android multitasking (and presumably iOS multitasking allows you to jump back into an application via the multitasking pane), it's nice that we have a "history" so to say of our "session".

Not to mention that this simply wouldn't work in Android. If another application is launched via an Intent... and I press the back button and just return to a new level inside the launched application... I'm going to be peeved. Like, I'm removing the app irritated. I'm actually not sure a developer can even do that, thank god.

Why would you want to insert a new activity in the "back button history" that the user never visited? I was be distraught and am when applications screw with the Activity flow is messed with. The Google Voice app is notorious for stacking activities incorrectly to where it makes the back button useless.

That's why I prefer devs let Android handle it. The default behavior allows users to use their phones like iPhones (in terms of just going home -> app all the time) but also allows us to quickly switch into and back out of quick things like checking an email or replying to a text.

<comment><USER7> I can assure you I am not thinking of using the homescreen in that way, since I never experienced android when it worked that way.

In the context of checking inboxes, adding an "inbox" activity does make sense, especially if you receive multiple notifications. Although I don't see why there couldn't be a way for the inbox activity to only be added when necessary.

<comment><USER4> If you receive multiple email notifications it does take you to the inbox. If you only have 1 you go directly to that message.

* note: this is the Gmail app, I'm unfamiliar with the generic email app.

</comment></comment></comment></comment></comment></comment><comment><USER9> I think that the Action Bar in 3.0 (and 4.0) is supposed to solve this problem. It's basically on top of every screen, and clicking the app's icon on the action bar is supposed to take the user back "one level up" in the screen hierarchy.

</comment><comment><USER10> Coincidentally, I just finished a rails plugin that does something like this with rails and posted it a few days ago. In this case "back" is determined by a graph of your web app you feed to the plugin. Never managed to get any feedback on it though. However a similar concept has been running on a production site of mine for years with fairly good success; I just finished turning it into a plugin last weekend

<http://kswope.com/2011/07/10/backstack-rails-plugin/></comment>


Ask HN: I'm poor at explaining things, how can I fix that? - <AUTHOR> Every time I try to explain something to someone, I go either too deep in details or uses wrong examples, leading them to be completely lost.
Today was the tipping when I was trying to explain some basic mathematics to my daughter, and managed to lost here, making her more confused than before.
The worst part is that I love sharing what I know. I want to share my knowledge with my children, sharing my passion with them, and this is a blow for me.
I, unfortunately, don't think I'm not the only one, and I hope that some of you managed to turn the ship around, found help and improved themselves.
If so, I would love to have your insights on it, and what can I do to be a better pedagogue.
Thank you. <comment><USER2> I think this is something most people struggle with. In my personal opinion, when I find it hard to explain things it's often related to one of the following:

1\. I honestly don't know it as well as I think. This is a hard pill to swallow, but most of the time it's the reason why we struggle to explain things in clear terms.

2\. We are often conditioned to use terms that the audience doesn't fully understand. e.g., Industry terms.

3\. I haven't given it enough thought before trying to explain it.

Find someone who is willing to listen to you speak. Hopefully they'll be patient enough to listen to you when you repeat yourself in different ways.

Lastly, I found that sometimes I struggle with trying to over explain things. There's a tipping point where you're audience is "comfortable" with what you explained, but once you go beyond that, it's like dragging them into deep waters.

Learn to be comfortable with not being fully "correct". Meaning, explain enough so they have a good idea of what you're saying. It's a starting point for the next thing they will need/want to know.

<comment><USER3> >1\. I honestly don't know it as well as I think. This is a hard pill to swallow, but most of the time it's the reason why we struggle to explain things in clear terms.

This is extremely true. Students often fall into the trap that they know something just because they can follow along when a teacher is doing it. But following is not the same as understanding and learning.

>3\. I haven't given it enough thought before trying to explain it.

I think this is one of the main reasons we have trouble with explanations. We understand the subject but that doesn't mean we can explain it in terms that newbies can understand. Some of the worst teachers are the experts that have been doing something for a long time. Once they understand something it's hard to see why everyone should not but they don't realize that they've gained much of their understanding over years.

Also, keep it simple. Reddit has the, "Explain it like I'm five" group so just follow that advice. Your subject will let you know if you are being too basic and you can adjust as needed.

My advice is to plan the explanation before you try it, minimize jargon, keep it simple and make sure you know what you are talking about.

</comment></comment><comment><USER4> > Today was the tipping when I was trying to explain some basic mathematics to > my daughter, and managed to lost here, making her more confused than before.

How many questions do you ask during your explanations?

I ask because it's very easy to get wrapped up in your own words, ignoring the blooming confusion in the person you're talking with.

You might try some experiments around asking questions. For example, when you give analogies about math you think your daughter would understand, ask her to explain it back to you - before you're done. Or - after a few sentences, ask her what she thinks will come next.

On the topic of actually explaining things, you might consider doing the "tap test" with your daughter.

Pick a song you're _certain_ she'll be able to recognize, just from the rhythm you tap on a tabletop. Then tap it out. And watch in bewilderment as she has no idea what you're tapping.

Turn it around and ask her to tap a song she's _certain_ you'll recognize. It's a lot of fun and a very good way to understand just how hard it can be to teach anything. Works great with any friend or family member as well.

To be explicit, the outcome of the tap test is surprising because as we tap, we're hearing the rest of the music in our own heads. But the other person can't, of course. That's what happens to a lot of people when they explain things. They hear the parts they're not actually saying, but the other person can't. Understanding this phenomenon is the first step to doing something about it.

You can read more about the tap test in the book "Made to Stick," which is about explaining things in general and is a great read.

<comment><AUTHOR> Thank you for your advice.

I did asked a lot of question, at every step of the explanation, to ensure she was following, but when I tried to wrap it all, that's where I lost her.

I might also have tried to explain her something she's not ready to understand based on her school level, that might be a a part of why she didn't understood my explanation.

<comment><USER5> Can you get her to wrap it all? When teaching, it's often better to get them to draw the conclusion logically, and then have them explain by working an example with you.

I find that I learn as much or more by teaching than being taught. A good teacher, then, is one who gets the student to teach. Set the stage so the next step is obvious and have them make that leap.

I'm not an expert at it either, but that's what I've noticed from my favorite teachers.

<comment><AUTHOR> I haven't done that, but I'll try next time to see how she explains it. That's a good idea, thanks!

</comment></comment></comment></comment><comment><USER6> I don't think that there is a quick fix, but I have found the following useful;

1\. Think in billboards (Construct your explanation in less than 16 words)

2\. Increase your vocabulary. Try wordthink.com daily.

3\. Hold off. Don't speak just yet. Seek to compact your explanation.

4\. Reframe it as an analogy or metaphor

5\. Even if your audience isn't a 5 year old, try to describe your idea in a way that they would understand.

Good luck!

<comment><USER7> > 1\. Think in billboards (Construct your explanation in less than 16 words)

> 3\. Hold off. Don't speak just yet. Seek to compact your explanation.

These have always been the most important/challenging parts of explaining a topic for myself. If I am struggling, I'll take a few moments and ask myself three questions.

1\. What am I trying to explain? (What is in-scope)

2\. What am I _not_ trying to explain? (What is out-of-scope? "We can come back to that later if you're interested")

3\. How would they explain this topic to me? (What is the language the audience would use?)

<comment><USER8> Hi jakamau, I especially like your second question of "What am I not trying to explain?" This is good to think about because sometimes we pack too many things in our explanations, which may not only confuse the audience but may also dilute the point.

This reminds me of Michael Porter's note on strategy: "the essence of strategy is choosing what not to do."

</comment></comment></comment><comment><USER9> If you want to get better at explaining things, you have to explain things to yourself often. Either mentally, or by writing them down. Don't be satisfied with the first draft; refine the explanation. Also, read or listen to other people's explanations.

Perhaps the issue is you're too smart, and consequently don't work with explanations. You don't explain things to yourself, but just admit considerable increments of complexity as-is and understand it without having to reformulate it for your internal five-year-old. You don't bother with explanations from others; you get bored and prefer the raw facts. You snoozed in lectures and aced exams.

Explanations don't have to be accurate. Any simplification embodies a lie. It has to, because there is a difference between the simplification and the real subject.

Wittgenstein's Ladder and all that.

Engineers and scientists -- STEM people -- sometimes have a problem with telling technical lies in order to simplify something, in order to protect their "face". The trick is to introduce lies as such. "I'm slightly going to lie to you, but the gist of how it works is ...".

</comment><comment><USER10> I tended to over-explain but I developed a few tricks that help me keep things simple. I follow this five-step process, especially when writing answers:

1\. What is the question? Too often, I found I was speaking about the topic, but not actually answering the question.

2\. Wait, what is the real question? I try to take a moment and think about the question and what information the asker is actually trying to get.

3\. Did I answer the question? Or did I ramble about unrelated minutiae?

4\. Did I answer the real question? Or will there need to be follow up questions because I didn't get to the heart of the answer?

5\. Did I actually make sense?

\---

Whenever I have to answer hard questions, I try to write down succinct answers in less than 3 sentences. This helps me practice getting to the point, rather than my natural rambling.

</comment><comment><USER11> I had the same problem at work. My former manager recommended me to read about storytelling and especially "the pyramid principle" [1] by barbara minto. It helped me a lot in how to frame a message and make the message logically easiest to absorb.

[1] Barbara Minto - The Pyramid Principle

<comment><USER8> Hi domod, this is a good reference to bring up. It's a book used by many consulting folks. Some love the pyramid principle while others are put off by it.

Please note that there has been criticism raised in recent years about the pyramid principle. Some argue that it turns people's writing in "McKinsey" style, which could be even more confusing to the audience. For instance, Duff McDonald writes in his book, "The Firm", the details on Barbara Minto's text, "The Pyramid Principle". He offers a useful critique of writing things in that style.

Minto's book is useful to read, but just be aware of the criticism raised. This will help when you're thinking about your audience and hoping to explain things to them.

</comment></comment><comment><USER12> Rehearse. Try to explain something, as if you were explaining it to someone else. (It doesn't have to be out loud - you can do the conversation in your head.) You can kind of tell that some parts don't work. Try again. And again. After several times, you find better ways to explain it.

Now go try it on a real person. At this step, it may work out differently than it did in your own head! Don't get discouraged by that. Keep trying.

You finally explained that in a way that someone understood? That's great! Take a moment to feel good about that. Then pick something else, and start rehearsing that.

<comment><AUTHOR> Yep. I think I need to keep working on trying to explain things, finding alternative ways to be understood and find something that works.

Thanks :)

</comment></comment><comment><USER13> I try a simple practice technique before big presentations. Just sit in a room alone and record your voice as you present. That will help you see your communication errors, slows, bad sentences etc. Its just practice. I learned from working with some of the best presenters I know, they spent years working very hard before each presentation/discussion and that helps them get better. They make it all look magical but its just a lot of hard work behind their seamless flow of thought.

</comment><comment><USER14> I have a young daughter, and I try to explain a lot to her.

I have found concrete examples she can relate to are the best.

For instance I was trying to explain the mental model of inversion.

I explained it using with the example of deciding what she wants to eat. If she is not sure, then lets list all the things she does not want to eat first. Then from that, it helps narrow in on what she does want to eat.

</comment><comment><USER15> Before I got into tech, I worked as a full-time tutor with high school and middle school students for a few years. That was the best practice for improving my ability to explain things. I usually think about the meta-game of improving in roughly three different ways:

1\. Explaining many things to many people: you really get good at thinking on your feet, reading how well different people understand things, and coming up with new ways of explaining things. It forces you to be flexible, and you can build a general framework for walking through something new.

2\. Explaining many things to one person: you learn to see how that person learns. What kind of prior knowledge do they have, and how do they like to work through understanding something new? You can tailor your explanations to them, and since explaining requires a lot of active listening to make sure the person is with you, you can get much better at identifying when they're lost so you can circle back.

3\. Explaining the same thing to many people: you hone your explanation skill for that one thing. Once you've explained the concept to multiple people, you can see what works and what doesn't work. You understand the sticking points, the easy parts, the analogies that work, and the ones that don't. Having multiple students working on the same concept at the same time would be great! I'd have to work harder for the first student, but by the end of the week I'd have it down pat.

For me, it came down to practice, repetition, and really knowing the material. Striking the balance between explaining and active listening for ~8 hours a day was a fantastic way to get better, and I don't think I'll ever forget how to walk someone through the tricky parts of AP Calculus. Now that I'm far from the tutoring world, I try to practice by writing and will try to keep that part of my brain active in the future through some sort of teaching.

I'd recommend practicing as much as you can. Keep practicing your explanations and active listening with your daughter. As another user said, make sure you know the material. Walk through it yourself, and try a dry run of explaining some math. I recommend explaining to a pet, which is the equivalent of rubber duck debugging. You won't get the feedback, but you'll be able to think it through first, which absolutely helps. Writing also doesn't offer you a similar feedback loop, but it does force you to walk through your thoughts and identify any missing parts of your own understanding.

Disclaimer: I mostly worked 1:1 with students. Managing an entire classroom is an entirely different beast!

<comment><AUTHOR> As others said, "really knowing the material" is one of the important things that can cause confusion.

Practicing is also important, but for that, I need people that are willing to listen to me struggle.

Thank you for your help.

</comment></comment><comment><USER16> If you are able to put yourself in the shoes of the people to whom you are explaining something, the rest will follow. Consider what they already know and how you can bring them to your point by starting with something familiar and known.

If you have that point covered, the rest is "thinking clearly" and "expressing oneself clearly". These require practice as much as placing yourself in the shoes of the audience.

<comment><AUTHOR> I have the faculty to feel what others feels, and that's worse in my case. I feel when I lose them, which make me start to want to explain more, which in turn worsen the situation.

Maybe in that case I should try to stop that feeling and go with my initial idea ... while keeping in mind whom I'm adressing to (like you say in your comment)

<comment><USER16> One aspect of placing yourself in their shoes is to feel how they feel. Another aspect is to see what they understand from what you are trying to explain. This requires a different kind of skill - of trying to see things from the perspective of different context, culture, skill, knowledge or language (do these words mean the same things for them?). It is this aspect that I had in mind and from your answer I get the impression that you meant the former instead.

</comment></comment></comment><comment><USER17> One thing might be to start by describing things at a less detailed level, perhaps focusing on _why_ something is interesting, or a personal story like how you learned about this thing, or something else that lets you share your enthusiasm without getting bogged down in fully teaching the thing. Hopefully this can be done in a way that sparks the curiosity that will let you proceed to more engaged discussion.

<comment><AUTHOR> Yep. I need to work on filtering what I'm explaining, keeping the simple things at first, then increasing the difficulty if asked.

That's a challenge in itself :)

</comment></comment><comment><USER18> I'm sorry, I don't quite understand what the issue is. Could you maybe rephrase it more directly, without so much details and confusing examples?

<comment><AUTHOR> Ahahahah ... oh wait, are you serious? ;)

</comment></comment><comment><USER19> Try explaining hard things to kids. That's the best way to understand how to teach.

</comment><comment><USER20> Write.

Listen.</comment>


The Scary Robots Are Coming - <AUTHOR> http://www.feld.com/wp/archives/2010/05/the-scary-robots-are-coming.html <comment><USER2> This video was submitted recently, but <http://searchyc.com> doesn't seem to be indexing the site at the moment, so I can't find it.

Any idea what's up with <http://searchyc.com> ??

</comment><comment><USER3> Need to put a furry hat on it or something. Looks like a scarab beetle.</comment>


Raspberry Pi as Home Server and Reverse Proxy - <AUTHOR> https://aos.sh/2019/07/26/raspberry-pi-as-home-server-and-reverse-proxy/ <comment><USER2> The raspberry PI is an atrociously bad computer to use as a home server, if your data is worth anything.

Until the rpi4, disk i/o performance was ridiculous and contended with network i/o.

Don't get me wrong, I love the pis,but "home serving" is probably the worst possible usage for a raspberry pi.

Any core i5 4th/5th gen or later will do wonders. If you factor in the price of the rPI and all the things you actually need to make it usable, you might as well buy a refurbished Dell Optiplex, with more extensibility and reliability.

<comment><USER3> What about the rpi4, though?

From the benchmarks I've seen it looks more than enough for most "home serving" uses.

In addition, if you use it as public server (as done here) then the bottleneck is likely your broadband's uplink.</comment></comment>


Numerical Recipes in C - <AUTHOR> http://www.nrbook.com/a/bookcpdf.php

<comment><USER2> I thought this bit of the license was hilariously draconian:

        You can type the programs from this book directly into your
        computer. In this case, the only kind of license available to
        you is the free "immediate license" (see below). You are not
        authorized to transfer or distribute a machine-readable copy to
        any other person, >> nor to have any other person type the
        programs into a computer on your behalf <<.

Do I also have to shield my screen to make sure no one else can see the programs I've typed? :)

<comment><USER3> Well, in all fairness that's the no muss no fuss you don't have to pay extra to get softcopy from them license. Hardly the end of the world if your're something is limiting you to that.

For that matter, the subtle errors you're likely to introduce into the code gives them a strong reason to require you to keep it to yourself.</comment></comment>


A Z-Machine in OCaml (2016) - <AUTHOR> https://ericlippert.com/2016/02/01/west-of-house/ <comment><USER2> Incidentally, the execution model and abstract machine for OCaml (more accurately Caml Light) is based on Xavier Leroy's paper "The ZINC experiment: an economical implementation of the ML language" [1] - an all time CS classic. Reading that paper and the surprisingly approachable source code for OCaml's interpreter [2] is a great way to demystify functional compilers.

[1] [https://caml.inria.fr/pub/papers/xleroy- zinc.pdf](https://caml.inria.fr/pub/papers/xleroy-zinc.pdf)

[2] [https://github.com/ocaml/ocaml/blob/trunk/runtime/interp.c](https://github.com/ocaml/ocaml/blob/trunk/runtime/interp.c)

</comment><comment><USER3> This is an excellent series from one of my favorite technical bloggers. It is one of the most accessible introductions to a language I've encountered. It is also a great introductions to creating a VM. Highly recommend for anyone that is curious about OCaml or how older adventure games worked.

</comment><comment><USER4> While it's true the Z-Machine predated the CLR and JVM by a long time, but similar virtual machines as a general concept predates the Z-Machine by a long time as well.

BCPL "O-code" dates to 1966. Pascal P-code, from the early 70's was better known, being a major part in Pascals early success, and popularized in particular with UCSD Pascal from the late 70's.

I don't know to what extent the Infocom developers were aware of those forerunners, but it seems likely. I don't know if either of those forerunners supported paging though.

</comment><comment><USER5> I remember following this a while back while working on my implementation of the z-machine. I don't think he finished it though ( neither have I! )</comment>


Ask HN: Engineers/Designers in London, how is Brexit impacting you? - <AUTHOR> Fellow designers and engineers in London, European citizens or not, I was wondering if you guys were considering moving out of the UK (and London in particular) following the current Brexit situation?
It sounds like the UK is officially divorcing entirely from the EU, and the recent announcements regarding the rights of EU citizens, the non adhesion to the customs union as well as the lack of clarity on EU citizens rights following Brexit is clearly not helping having a clear view of what the future holds for immigrants in the UK.
I was therefore wondering if that was having an impact on your future, and what was your sentiment on all this? I would also be happy to hear the view of people who are/were planning to move in the UK. <comment><USER2> I'm applying for Polish citizenship (available to me through my Polish grandfather) in order to retain my EU citizenship in case I'm forced to leave the UK. I would be very concerned as to what right to live and work elsewhere in Europe I would have without that. Potentially very little. I have no firm plans for leaving the UK at present however.

</comment><comment><USER3> I'm quite happy that I have Canadian citizenship, so if things continue down the current path, I at least have an exit strategy...</comment>


Marriage Chances Rise with Your Salary - <AUTHOR> http://shine.yahoo.com/financially-fit/marriage-chances-rise-salary-195200744.html <comment><USER2>
      Given the correlation between education levels and income, it is easy to see that the more you earn -- or potentially earn -- the more likely you are to take at a walk down the aisle.

Well, that sounds like science to me.

I know "correlation is not causation" is a cliche, but in this case its not hard to figure out that marriage is expensive and hence people with more money to spend are more likely to use it on getting married.

<comment><USER3> Also possible that people that are good at acquiring money tend to also be good at acquiring mates, and that the money isn't the primary cause.

This sentence borders on absurdity: "Not only does income increase the amount of marriage, marriage also increases the amount of income." .. They are essentially arguing that marriage and money have circular causation.

The only information in the article is that marriage, money, and education are positively correlated.

</comment></comment><comment><USER4> Is there anyone who hadn't figured this one out? "It is a truth universally acknowledged..."

</comment><comment><USER5> Many times, women want someone who is stable and can support a family. A better salary supports this.

</comment><comment><USER6> Obligatory: <http://xkcd.com/552/></comment>


BlazingSQL is Now Open Source - <AUTHOR> https://blog.blazingdb.com/blazingsql-is-now-open-source-b859d342ec20 <comment><USER2> This seems pretty cool, and I'll probably play with this at some point, but sadly literally all of my GPUs are AMD or Intel at this point.

I'm sure you had a good reason, so I'm genuinely curious to why CUDA was chosen instead of something like OpenCL?

(I'll add my typical disclaimer that I'm not saying this as some passive- aggressive way to criticize; I'm genuinely curious to the reasoning behind the choice.)

<comment><USER3> Thats a great question. The answer is two-fold.

Early on when we first started playing around with General Processing on GPU's we had Nvidia cards to begin with and I started looking at the apis that were available to me.

The CUDA ones were easier for me to get started, had tons of learning content that Nvidia provided, and were more performant on the cards that I had at the time compared to other options. So we built up lots of expertise in this specific way of coding for GPUS. We also found time and time again that it was faster than opencl for what we were trying to do and the hardware available to us on cloud providers was Nvidia GPUs.

The second answer to this question is that blazingsql is part of a greater ecosystem. rapids.ai and the largest contributor by far is Nvidia. We are really happy to be working with their developers to grow this eco system and that means that the technology will probably be CUDA only unless we somehow program "backends" like they did with thrust but that would be eons away from now.

<comment><USER2> Thanks for answering my question so quickly!

That seems like a pretty good reason...I have been looking to learn some GPU programming to optimize some matrix math that I've been doing for a pet project, and while my first instinct was telling me OpenCL since it's portable, if people who actually know what they're talking about are saying that CUDA is simpler to start with, it might be worth it to me to pick up a cheap Nvidia GPU/Jetson Nano and do some processing that way.

<comment><USER3> The collab link below let's you use a gpu for free on Google cloud

</comment></comment></comment></comment><comment><USER4> Discussed twice last year:

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

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

Also 2017: [https://news.ycombinator.com/item?id=15819489](https://news.ycombinator.com/item?id=15819489)

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

</comment><comment><USER5> This is great. The BlazingDB guys are awesome and now that the project is open source this is another good reason for my teams to experiment with different workloads and compare it against a SparkSQL approach

<comment><USER6> +1, this is very cool, but would love for the BlazingDB team to show benchmarks here

<comment><AUTHOR> Tons of benchmarks at blog.blazingdb.com

Check it out, it's fast.

</comment></comment></comment><comment><USER7> Can someone give me some use case examples?

I read that site, and the RAPIDS site - but would like to hear from some ppl using this in prod/test and what they are using it for...

<comment><USER8> We worked with the team early on it. In turn, that means it's inside one of the powertools at gov, bank, etc. teams, even if most of the users don't quite know what a GPU DB is :) We do GPU visual graph analytics over event data (security, fraud, customer 360, ...). We use for a bunch: interactive sub-100ms timebars, histograms, etc. Any full-table compute stuff you'd do in pandas, sql, spark, etc. Any UI interaction like a filter can trigger tons of queries, and w/ GPUs, that means they can quickly compute all sorts of things.

The reason Graphistry picked BlazingSQL is it fit in as part of our approach of end-to-end GPU services that compose by sharing in-memory Apache Arrow format columnar data. When the Blazing team aligned on Nvidia RAPIDS more deeply than the other 2nd-wave GPU analytics engines, it made the most sense as an embedded compute dependency. Going forward, that means Blazing can focus on making a great SQL engine, and we know the rate of their GPU progress won't be pegged to their team but to RAPIDS. A surprise win over just cudf (python) was eliminating most of the constant overheads (10ms->1ms / call), and looking forward, seems like an easier path to multi/many-GPU vs. cudf (dask).

We should share a tech report at some point - bravo to the team!

<comment><USER3> Thanks Leo! We love having you all as early adopters of our tech!

</comment></comment></comment><comment><USER9> Looks like an good way to do analytics on the GPU. The Python API is clean and simple.

The premise is that GPUs will accelerate columnar data analytics. And, with "Dask" [1], you can run those worldloads on a cluster.

I wonder if careful indexing on initial write would outperform this system. This system looks like it's best when you have totally raw, unindexed data. Perhaps a future thing to do is to generate a side index during initial column scans to speed up future queries?

Also, GPU memory is pretty expensive. How does the total-cost-of-ownership compare to just running on RAM with powerful multi-core CPUs? There's like 512-bit vector operations these days.

[1]: [https://rapids.ai/dask.html](https://rapids.ai/dask.html)

<comment><USER3> GPU memory is expensive but a big as #@$% computer is even more expensive. When we show comparisons to things like spark we are doing so use cost basis. So if we say something like we are x times faster than this technology on this workload what we did was launch clusters that have similar costs. Total cost of ownership is also reduced by the fact that the engine itself is totally ephemeral. You can turn it off and on within seconds.

</comment></comment><comment><USER10> I had never heard of this before, anyone in HN has used this before? If yes, where and more specifically what was your use-case? Thank you!

</comment><comment><USER11> What kind of benefits does CUDA bring to databases? I've never heard of running a database on a GPU before. Couldn't find anything on their homepage other than comparison with a few other db options

<comment><USER12> Check out [https://www.omnisci.com/learn/resources/gpu- database](https://www.omnisci.com/learn/resources/gpu-database)

In summary, you get snappy, interactive query speeds on large data sets. I've ran that locally and the results are pretty amazing compared to Postgres or even Tableau in-memory.

I'm personally more excited about GPUs in stream processing; its just quite a natural fit: [https://github.com/rapidsai/cudf](https://github.com/rapidsai/cudf)

<comment><USER13> If you're interested in stream processing, check out FASTDATA.io PlasmaENGINE. We do both stream and batch processing with Apache Spark on the GPU.

[https://fastdata.io/plasma-engine/](https://fastdata.io/plasma-engine/)

* It's not open-source and I work there.

<comment><USER14> Hi Kichik :)

</comment></comment></comment></comment><comment><USER15> Is this due to PartiQL?

<comment><USER16> PartiQL is a query language, based in SQL and extended to be more natural with unstructured and nested data. It can be used with various database and querying engines.

BlazingDB/SQL is a querying engine, more similar to Presto or Apache Drill, and specializes in using GPUs for processing power.

</comment></comment><comment><USER17> Does this only run on NVIDIA/CUDA systems?

<comment><USER18> > BlazingSQL is built entirely on top of cuDF and cuIO.

Yes.</comment></comment>


Dmytri Kleiner: Kickstarter will never become big with it's current model - <AUTHOR> http://www.dmytri.info/for-projects-like-kickstarter-to-scale-they-can-not-depend-on-the-limited-funds-workers-are-able-to-divert-from-consumption-and-must-tap-into-the-real-source-of-accumulation-surplus-value/

<comment><USER2> Only, under current laws, this is impossible due to restrictions on non- accredited investors.

That is why the crowdsorcing investment laws snaking their way through Congress right now are so exciting.

I don't see what is stopping other countries with less restrictive laws from incubating such a company, though.</comment>


Using IM-Visor to stop untrusted IME apps from stealing sensitive keystrokes - <AUTHOR> https://cybersecurity.springeropen.com/articles/10.1186/s42400-018-0007-6 <comment><AUTHOR> I think the cool factor here is that they "propose a new idea, pre-IME, which guarantees that "Is this touch event a sensitive keystroke?" analysis will always access user touch events prior to the execution of any IME app code."

In the paper they note as "a pre-IME design, IM-Visor always recognizes and isolates sensitive keystrokes before the IMEs could access them. To achieve this, whenever a user intends to type in a soft keyboard, the STIE will be initialized to intercept touch events and analyze whether it is a sensitive keystroke."

This model is one that begs a matching and reversed exploration of "sensitive keystroke" emulation and whether such pre-IME analysis can be fooled.

</comment><comment><USER2> I'm not sure this is a good solution, but maybe it's the best "general" fix.

Basically an OS should be able to easily identify when you're using a platform password field for instance and not interact with the IM (although that causes problems with assistive technologies). But the OS can't really handle every third party reimplementation of password fields. Presumably a 3rd party solution would be able to rev faster and stay more up to date than the OS. (The risk balance when the OS is involved is higher than for just the IM as if it does break you can always remove the "visor", but doing so in the os is harder.

<comment><AUTHOR> Agreed. I do like the creative thinking here, though. And it makes one think about what an IM-Visor means for InfoSec outside this scenario; I'll be honest, I've not thought about it and I see all sorts of topics here worth exploration. For instance, what's to stop a malicious app to install and emulate the IM-Visor essentially intercept the data "acting" as the pre-IME defense stage?</comment></comment>


Show HN: Ladder App – Highlight your professional achievements at work - <AUTHOR> Hey everyone,
I'm very happy to share this mini-project I've been working on with some college friends.
I just graduated in May this year and I've found joining the workforce very exciting. But I thought the traditional approach to employee-boss relations could use a communications upgrade; this is the solution I came up with.
->> https://ladder-app.github.io/
I'm still trying to figure out what would be the most useful for people. What would you like to see? Please check it out and jot down some feedback and ideas - I'll do my best to implement quickly.
Love you all lots.
xoxo <comment><USER2> Cool little side project. However, I'd recommend launching an open beta.

Also, I don't see how you can charge for this, especially when tools like toggl, be limitless chrome extension, rescuetime, and wakatime are free, are more appropriate for what a manger would like to see, generate a dashboard that is constantly updated instead a static pdf report, have integrations with many other time-tracking/quantified self apps, and in the cases of be limitless, rescuetime and wakatime, track your time and computer usage automatically and, although yours is a work in progress, have a UI.

Here's what I'd like to see:

1) A dashboard instead of a pdf report that is updated in real time. My team typically works in sprints, so management typically wants to see what our progress is in weekly increments, not monthly. I like to examine my stats daily to see where I'm spending too much/not enough time so having up to date numbers is very important. One option is to integrate your app with Rescuetime since they provide their own dashboard. Also, having a real-time dashboard that you check daily allows you to discover any problems (spending too much time on one project, etc.) before your manager can find it.

2) I'd focus on one set of metrics first. I want to spend as little time as possible filling out the metrics relevant to my profession. When I track my projects using Toggl, I simply enter my current task, hit start and hit stop when I'm done. I don't want to spend any more time than that tracking as it becomes counter-productive and takes me out of my flow.

3) Tasks should be entered as you do them, not at the end of the day. Not only are you more likely to forget, you may be in such a rush to leave work that you simply do not fill it out.

4) Create a better landing/coming soon page, especially if you're putting it on Show HN. There's so many professional looking free templates out there and, to be blunt, this looks like you just discovered bootstrap yesterday. Include mockups as well so that I have some idea how the product functions and a clear list of features. I'm sure it'll look just fine in the end, but first impressions are important.

<comment><AUTHOR> Hey, FullMtlAlcoholc!

Thank you so much for this incredible, in-depth feedback and analysis! You took the time out of your day, you called it like you saw it, and you made a ton of constructive suggestions - I sincerely appreciate what you did. For that, thank you!

I read and re-read the points you raised, and then read them a couple more times. You're absolutely right about the lack of UI/beta, and I need to look into those apps more to give an answer that's worth anything to the other questions.

Here is what I propose: I (very gratefully) take everything you wrote above, do research around it as best I can, and use that to actually BUILD a beta which you can then test. Instead of just writing back vague responses, I'll put what you said into action and get back to you ASAP!

How do I reach you?

Thanks again!

<comment><USER2> Just updated my profile. Feel free to email me!

<comment><AUTHOR> Will do! I probably missed the profile update (or don't know where to look!)because I can't see your email... :(

Thanks again for all the help!</comment></comment></comment></comment>


David Hockney: More Light - <AUTHOR> http://www.nybooks.com/articles/2017/12/21/david-hockney-more-light/ <comment><USER2> An utter genius. I am a cynical person, especially around concerns of art, but the remaining celebration of Hockney gives me hope. Great article.

</comment><comment><USER3> I saw this exhibit at the Tate and it was fantastic. I guess it's just opened in New York; see it if you're nearby.</comment>


Wire – modern, private messaging from Skype co-founder - <AUTHOR> https://wire.com <comment><USER3> Previous discussion from over a year ago:

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

<comment><USER4> Yeah, Wire has been out for a while.

</comment></comment><comment><USER5> Enough of fenced services owning the users. I'm fed up with carouselle of new services for same features. I'm going to stick with XMPP, which is openly federated and free as in freedom. It is now technically capable of chat sync, sent messages editing, end to end encryption (there are alternative modes to fit different usecases), videocalls, and many more things. There are working gateways to many other networks, including Skype (not fully, but mostly enough to start transition away from skype).

<comment><USER6> XMPP could be a fantastic option but it's missing push notifications, which are an absolute killer these days. You either don't use XMPP on mobile or take a massive hit to your battery.

ChatSecure has a nice writeup about this: [https://chatsecure.org/blog/fixing- the-xmpp-push-problem/](https://chatsecure.org/blog/fixing-the-xmpp-push- problem/)

<comment><USER7> Conversations have Push Notification support [https://github.com/siacs/Conversations/issues/1171](https://github.com/siacs/Conversations/issues/1171). There is a standard and it's implemented in some XMPP servers as well.

</comment></comment></comment><comment><USER8> Well, some source code is on [https://github.com/wireapp](https://github.com/wireapp)

But it seems that only some crypto libraries are opensourced, no frontend and things like that.

</comment><comment><USER9> I just tested the video call with my parents that still have an old adsl link to their home, it was crystal clear. Both skype and hangouts struggle when doing the same. Hangouts actually makes the audio choppy.

I'm a bit worried about using something that is free and has no ads while maintaining central servers though..

<comment><USER10> I just gave it a shot too, and it works well. I deleted my account though, because I only need voice chat with my team and Discord has this app beat hands down for collaboration and team rooms.

<comment><USER11> Discord isn't encrypted (Only client-to-server) and it's not open source at all.

It's too bad though - as you say - it is very nice for collaboration and teams (It's geared exclusively towards gamers).

</comment></comment></comment><comment><USER11> They just added encrypted voice and video calls (1to1) in the latest version (Guess that's why this is posted now).

<comment><USER12> So far only calls were E2EE. Video was added this Thursday and full E2EE switched on for all comms.

</comment></comment><comment><USER13> > all your data is protected by European privacy laws.

Interesting to note that "American" is implicitly synonymous with "insecure".

<comment><USER6> There are two things I'll note:

\- As a non-American, I see America as one of the least safe places to store my information. The Snowden leaks showed that the US government has zero respect for the privacy of non-Citizens.

\- As someone who's lived both inside and outside America, I've noticed that privacy laws in the US are weak relative to other countries (much of Europe, Australia) that I've been in. Europeans have things like Right to be Forgotten. Americans have companies that have refused to remove my personal information after I terminated my account with them.

<comment><USER14> As an Australian, I would argue the metadata retention laws leave us just as weak as the US - if not, worse. I'd be surprised if the US equivalent of Greyhound Racing Australia had legally mandated, warrantless access to every ISP's metadata.

<comment><USER6> The laws you're likely talking about aren't as bad as you might think. They made a number of changes before it passed that make it more reasonable: [http://parlinfo.aph.gov.au/parlInfo/search/display/display.w...](http://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;query=Id:%22legislation/bills/r5375_aspassed/0000%22)

It doesn't affect:

\- "contents or substance of a communication"

\- "information that states an address to which a communication was sent on the internet, from a telecommunications device, using an internet access service provided by the service provider and was obtained by the service provider only as a result of providing the service"

When they first introduced that bill it was rather scary looking but by the time it passed it's not too bad.

<comment><USER14> Well I did say "metadata", rather than "traffic content". There are always different way to look at it, but the absurd ease with which groups that are not law enforcement have access to such data is the issue to me.

<comment><USER6> Internet metadata is specifically excluded from retention though:

"information that states an address to which a communication was sent on the internet"

</comment></comment></comment></comment></comment></comment><comment><USER15> Does anyone know of an independent audit/confirmation of the robustness of their privacy / security? I don't really know enough about crypto or security to be able to tell.

<comment><USER3> I'm wondering the same, it is a shame there's not a whole lot of end to end encrypted applications, it's a conspiracy all of it's own or something? Maybe cryptologists are sparse or this is just not in their available time for the type of problems to tackle, not sure. The need is clearly there for more open source secure applications, hopefully we see more.

<comment><USER16> My theory, as way out there as it might seem, is that there is hardly any interest for actual encryption. GPG's unique maintain was struggling to make ends meet until last year when he made it in the news.

I have yet to find someone, even among the "privacy aware" people to chat on Facebook using Pidgin's OTR plugin.

<comment><USER17> >I have yet to find someone, even among the "privacy aware" people to chat on Facebook using Pidgin's OTR plugin.

That's because the "privacy aware" folks don't use Facebook. And if they did (likely a damn good reason) they would. Makes it all the less likely for you to have met them

</comment></comment></comment></comment><comment><USER18> XMPP strong selling point is federation. You can run your own private server and it does encryption. There is plenty of implementations from servers to clients, most being open source. It seems to me just one of the Zillion messaging alternative available.

<comment><USER19> Why hasn't there been a beautiful XMPP apps created? A company could come in and provide effortless XMPP server setup for a monthly price, and provide great apps for all to use, no?

<comment><USER7> There is. You can have a look at Conversations for Android [https://play.google.com/store/apps/details?id=eu.siacs.conve...](https://play.google.com/store/apps/details?id=eu.siacs.conversations) and I'm also working on Movim [https://movim.eu/](https://movim.eu/) ;)

</comment></comment></comment><comment><USER20> The app is free. What do they make money from, do they have ads?

<comment><USER8> They say "No advertising" on the front page.

<comment><USER20> So, philanthropy?

<comment><USER17> Currently VC backed (Iconical, Skype co-founder Janus Friis), premium services in the future.

<comment><USER21> So will be dead in a year or two when they run out of cash or sell.

</comment></comment></comment></comment></comment><comment><USER22> I really don't get this. What's their advantage over using this over... well, anything else?

They seem like a complete copy of Signal to me: they're a centralized service with open source clients that promises end-to-end encrypted communication. I see no difference between them. It's like re-inventing the wheel. Honestly, I don't see a single reason why I should use this.

<comment><USER23> The problem with Signal (at least for me) is that its desktop client relies on your phone's Signal app, which feels weird and "duct tape-ish". I've been spoiled by the ease of using iMessage with multiple devices (phone, tablet, desktop, or otherwise): just sign in and it works, no janky-feeling interdevice communication necessary, and I've come to expect that from any messaging service I use.

Signal is great for those who confine their instant-message-like communication to their phones, since desktops being treated as second class citizens isn't an issue for them. I am not one of those individuals. I want to be able to read and reply to messages on whichever device I'm using at the moment without having to think about my phone's presence at all.

<comment><USER24> Well, when you consider that the keys are ethereal, it makes it clear why it's "duct tape-ish". You could argue they should have a syncing protocol but now you need to come up with a secure syncing protocol.

</comment></comment></comment><comment><USER25> Wire launched at least a year ago, if not earlier, and I have the same question now that I had then: Why should I use it?

For good security, I have email/PGP which has few of my friends, but lots of usage for secure communication.

For secure chat I have Signal which some of my friends use, but not many.

For most of my chat I have WhatsApp which is relatively secure, and has a relatively good UI. Almost all my friends and family have this.

For the rest of my chat I have Facebook Messenger which isn't secure in the slightest, but it also has almost all of my friends and family on it. It has a very good UI, and lots of features that I make good use of.

Wire on the other hand has almost none of my friends, isn't open, so can't be any more secure than WhatsApp, and has a pretty but ultimately annoying UI, and very few features.

<comment><USER26> Hi Dan,

I'm not using Wire yet - so I'm just quoting their marketing material - <USER2> they directly address your comments: "Wire uses open-source cryptography to encrypt all content. We made the source code for data handling available to the public under the GPL License. This means that anybody can review the source code." "Only Wire offers fully encrypted calls, video and group chats available on all your devices, on any modern platform. Unlike niche security apps we do not sacrifice usability for security — Wire is simple and straightforward to use."

<comment><USER27> It sounds like the app itself is closed though. Skype probably used openssl (open source crypto) on Linux but that didn't make it secure.

</comment></comment></comment><comment><USER28> I think this looks good - whether long term use is sustainable is dependent on whether they open up their protocol to interoperability via some sort of consortium. Email rules, not because of its brilliance, but because of its level of standardisation and ubiquity. The trick will be to provide a transparent P2P solution that can somehow be boosted by leaving nodes online.. now provide pay for service that can run the nodes for people - business plan (tm).

On second thought this kind of thing is already done around the torrent sub- culture with regards to seed boxes..

</comment><comment><USER29> Yet another WhatsApp, Messenger, Viber, Line, WeChat, Skype ,<Insert your own closed protocol, walled garden, messaging app here>.

So innovation, much technology ...

</comment><comment><USER30> All modern platforms? I don't see the Linux version.

Plus, for any such application to have trust these days, it should be open source both for clients and servers. Enough of this walled garden closed instant messaging.

<comment><USER31> > I don't see the Linux version.

It runs in the browser so technically it runs on Linux.

</comment></comment><comment><USER13> Safari unsupported for web version:

> Download the latest version of Google Chrome, Mozilla Firefox, Opera or MS > Edge to use Wire for Web.

<comment><USER12> Safari lacks WebRTC support in a manner that would play nice with Wire features. Thus no support for now.

</comment></comment><comment><USER32> A new messaging app each week.</comment>


Eclipse Vert.x goes Native - <AUTHOR> https://vertx.io/blog/eclipse-vert-x-goes-native/ <comment><USER2> This is impressive, although the cynic that I am can't help pointing out that we must have gone wrong somewhere when a "hello world" HTTP server application "only" taking 40MB of RES is seen as an improvement. That's more than 40 million bytes to open a socket, receive a few bytes, parse them and then write a few bytes back. The overhead of modern software development is insane.

Of course I'm not not being entirely honest, a lot of this overhead is probably a constant and wouldn't grow linearly for more complex applications.

<comment><USER3> Every application comes with an entire operating system's worth of code nowadays.

Download a desktop chat client or a little menu bar utility — each app includes its own copy of Electron at 150MB.

Make a "Hello world" web client app using React with the recommended "create- react-app" toolchain — your project will first download nearly 200MB of code via npm (and each project you start will have its own copy of this stuff).

Make a web server with a framework like Rails, Vert.x or whatever — be prepared to spend hours downloading dependencies and setting up your local environment just so.

I don't have any good ideas for how to break this cycle. By 2028, I expect every to-do app will include its own 4GB copy of Ubuntu because it's convenient.

<comment><USER4> > I don't have any good ideas for how to break this cycle. By 2028, I expect > every to-do app will include its own 4GB copy of Ubuntu because it's > convenient.

2028? More like 2015. It's already like that for much of what runs in Docker containers.

<comment><USER5> Kind of, except that the base ubuntu image is more like 70MB.

<comment><USER3> I was thinking of the Ubuntu desktop. Each desktop utility could be its own virtual machine, and it wouldn't be so far removed from what already happens with Electron.

<comment><USER6> see [https://www.qubes-os.org/](https://www.qubes-os.org/) and [https://www.qubes-os.org/news/2018/01/22/qubes-air/](https://www.qubes- os.org/news/2018/01/22/qubes-air/)

</comment></comment></comment></comment></comment></comment><comment><USER7> Missing under limitations is lack of Windows support (though it's coming they say). Also, I would caution anyone from putting their eggs in this Oracle basket. This is not a community project and we know who the owner is and they do have a premium version. Sure, if you have existing JVM stuff and want a native app, go ahead, just don't build a reliance on it. Otherwise, even if you believe Oracle will be good stewards of the project (which I do believe), it's still ok to avoid it on principles around the owner's other activities. Of course stances like these can't be 100% consistent across everything (especially legacy or defacto standards) but just something to keep in mind.

</comment><comment><USER8> I hadn't heard of Vertx until my most recent job where we use it for our platform. We currently deploy in openjdk docker containers.

This seems neat, but I'm wondering about dependencies. Does Graal rebuild all your dependent jars to be native? What if you have unsupported things like reflection in a dependency? I'm looking through their website and can't seem to find any answers.

We've already run into dependencies for Vertx that puke on Java 9 (depreciated/removed API) and are currently still on Java 8. This seems nice, but I have a feeling that, for production, you'd end up writing a lot around GraalVM.

<comment><USER9> The "limitations" link in the posted page has a section on "Reflection", [1]. It says: "Support Status: Mostly supported ... Individual classes, methods, and fields that should be accessible via reflection must be specified during native image generation in a configuration file ..."

I'd assume libraries your app depends on should be usable via Reflection as well, and that their own calls to reflection APIs should work as well, as long as the classes your code, or the library codes, want to reach are somehow included in the Java --> Native conversion configuration files.

[1] [https://github.com/oracle/graal/blob/master/substratevm/LIMI...](https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md#reflection)

</comment></comment><comment><USER10> Excellent! I've started using Vert.x with Kotlin instead of PHP for making restful API's and it's wonderful. Event driven, strongly typed and performant. Looking forward to trying this out.

<comment><USER11> Did you find the documentation to be a bit painful? I gave it a shot for API endpoints too, and was very frustrated that Kotlin felt like a fourth class citizen... and the existing docs displayed one of my biggest pet peeves with most Java-esque docs; "we won't mention the imports, you'll probably have an IDE that figures those out magically". As a Vim user, that's a bit more difficult.

</comment></comment><comment><USER12> AOT compilation for Java alone is just a technique to improve startup time for command line apps vs actually native apps; AOT shared libs still need JVM infrastructure for GC.

Also, going all-in on async doesn't seem that helpful on the JVM where the vast majority of existing code (= what makes the JVM valuable) uses synchronous I/O.

So what's the point of this? To start a webserver really fast? I always thought the value of vert.x is to become part of a node.js/CommonJS runtime for the JVM (like what Oracle and RedHat were trying a couple years ago).

<comment><USER13> I've messed with async on JVM. In my experience, it doubles speed at most for CRUD apps with heavy DB access. Async is only useful if you're thread starved, and most DB calls are fast enough that it never happens.

The one place it makes a huge difference is when you're waiting on other, possibly slow, services like third party REST calls. If you have 100 threads and each call takes 1000ms you will run out of threads at 100 req/sec which is quite low for the JVM.

Using async in these situations allows thousands of threads to be paused while your 100 still do work, allowing you to handle maybe 10k req/sec even with a slow partner service.

A lot of JS programmers don't understand the relation between thread starvation and async, they act like async is magic. If you're not thread starved (everything you do is pretty quick) then async is useless

<comment><USER14> > I've messed with async on JVM.

What library or framework did you use? Using ExecutorService or similar would still have those 100 threads blocked even if they run in their own future, correct? The only thing it would allow is queuing the other incoming requests, but it does not time slice or switch to another request upon hitting an IO request.

<comment><USER13> You can use fiber libraries like quasaras your executor, just like Go uses for regular threading.

The double edged sword of Java is that you can do anything. But the learning curve is huge because there's so much crap out there

</comment></comment></comment></comment><comment><USER15> Great but whats the gc story? Does substrate vm include a generational gc?

<comment><USER16> Yes, according to [https://nirvdrum.com/2017/02/15/truffleruby-on-the- substrate...](https://nirvdrum.com/2017/02/15/truffleruby-on-the-substrate- vm.html):

"... the SVM has a new generational garbage collector (GC) that's different from the JVM's. The SVM ahead-of-time (AOT) compiler uses a 1 GB young generation size and a 3 GB old generation size by default."

</comment></comment><comment><USER17> My bro and my bestie worked on a Vert.x project. So I got to hear all about it.

I can only comment thru comparison. Due to multiple poor life choices, I'm currently stuck maintaining multiple large nodejs code bases.

I'm "maturing" our code base from callbacks to promises (futures) to async/await as able.

It's terrible.

Whatever the future of async I/O programming is, it's not events, promises, callback. I've been reading about and playing with actors, CSP, Erlang/Elixir/Phoenix. If I was doing greenfield, that's where I'd place my bets.

<comment><USER18> There is a great approach in Quasar [1] where you program simple blocking code, and the runtime (bytecode manipulation with a Java agent) unmounts and remounts thin contexts in the fat thread you are in. A light thread, if you will. No events/promises/callbacks. It does require unmounting-aware APIs, though; making you incur the usual fat thread mounting/unmounting cost if they are not available.

The author of this project is currently implementing the base element of this approach (continuations) in the JVM [2]; probably along the required rewrite of the Java standard library. I'm very excited about this!

You could start writing code in Quasar, IIRC they said it will use these continuations when they are made available. I would not be surprised if it is one of the first frameworks to make use of it.

[1] [http://docs.paralleluniverse.co/quasar/](http://docs.paralleluniverse.co/quasar/)

[2] [http://cr.openjdk.java.net/~rpressler/loom/Loom- Proposal.htm...](http://cr.openjdk.java.net/~rpressler/loom/Loom- Proposal.html)

<comment><USER19> > unmounting-aware APIs

Does that mean libraries need to be rewritten to support it? In my experience, important IO-driven libraries like database access/ORMs tend to be extremely poorly supported for non-language-native concurrency strategies, or even concurrency strategies added late in a language's lifecycle.

<comment><USER18> > Does that mean libraries need to be rewritten to support it?

Yup. Here are the list of supported libraries [1].

> even concurrency strategies added late in a language's lifecycle

Quasar code uses a regular Java Exception as a trick to stop execution and unmount, to sort of piggyback on the language features. Fibers do also implement the Thread interface; I think what you pointed at was indeed a concern of the author. I don't know how the Loom initiative look like.

If you want to see how a library is adapted, here is JDBC [2].

[1] [http://docs.paralleluniverse.co/comsat/#getting- started](http://docs.paralleluniverse.co/comsat/#getting-started)

[2] [https://github.com/puniverse/comsat/tree/master/comsat- jdbc/...](https://github.com/puniverse/comsat/tree/master/comsat- jdbc/src/main/java/co/paralleluniverse/fibers/jdbc)

</comment></comment></comment></comment><comment><USER20> Does native code execution outweigh the loss of JIT optimisation?

<comment><USER21> If I understand it correctly JIT compiles down Hotspots to native code, so if the entire executable is already native it must be just as fast or faster.

<comment><USER22> JIT compilation makes decisions on how to optimize the generated code based on run-time analysis the program. AOT compilation doesn't have access to that information, which can lead to slower code.

However, because AOT compilation isn't delaying the execution of the program, it is allowed to take much more time to optimize the output.

<comment><USER23> You can AOT compile with PGO (Profile Guided Optimization) though.

<comment><USER24> And if you can record profiling data from every machine the code will run on you might be able to be confident no JIT could do better, until a new processor (that is a compatible architecture to the executable) that wasn't available at the time of compilation comes around and JIT can still tune for things like cache sizes or processor features and the AOT executable is stuck not being able to take advantage of them.

<comment><USER23> Agreed, but there are ways around it.

For example, Android P will upload PGO data into the store, which is then distributed across all devices, and fed into the on-device AOT compiler.

<comment><USER24> I would argue that is still a JIT in the spirit of this discussion so far. That, or we need another term to disambiguate the cases of AOT(pre- distribution) and AOT(post-distribution)

<comment><USER23> It is called PGO.</comment></comment></comment></comment></comment></comment></comment></comment>