Long-dormant bacteria and viruses in ice are reviving as climate warms - <AUTHOR> http://www.bbc.com/earth/story/20170504-there-are-diseases-hidden-in-ice-and-they-are-waking-up <comment><USER2> Soil-borne anthrax is very common; there's in fact "anthrax season" when (usually small) outbreaks happen among wild and farmed animals, from North America to southern Africa, Russia to China and India. (Search for anthrax on [https://www.promedmail.org/](https://www.promedmail.org/), there are 37 reports in 2017 so far.) That a thawed carcass was infected is an interesting anecdote as far as the mode of the transmission, but it isn't surprising. That is, it's not a disease that we've eradicated that is coming back to haunt us.

<comment><USER3> Thanks for this. This isn't the first article I've seen that tried to make tenuous connections between climate change (née global warming) and all manner of horrible, immediate effects. The environmentalist crowd gets frustrated that most people consider their cause to be a far off problem that everyone currently living won't have to bear the burden of, and they use articles like this to try to create fear of immediate consequences in order to advance their agenda. I like to read facts, not speculation created by masters of fearmongering.

<comment><USER4> It may be true that this article is overblown, but let's not pretend that the science for climate change and global warming is not rock solid, even if we can't predict the exact extent of the damage.

Russian roulette is a game for fools and those with no hope, not an intelligent species with only one habitable planet.

<comment><USER3> _> let's not pretend that the science for climate change and global warming is not rock solid_

I didn't say it wasn't. I just said that this article is making giant leaps of logic and science to scare people. Even if I agreed with the policy suggestions of the most extreme environmentalists, I would disagree with this tactic. Science is on their side on a great number of issues, but transparent fearmongering like this will only serve to annoy people and ultimately hurt their cause.

<comment><USER5> Here's a thought. Instead of criticizing the article for scaremongering, how about rebutting the points? If you don't believe the permafrost is melting, say why. If you don't believe the planet is warming up, say why. If you don't believe that humans are contributing to the warming, say why. If you don't believe that ancient microbes thawing out is a matter to be concerned about, say why. By offering this sort of discourse, those of us who don't study microbes and infectious disease, for example, can become better informed.

<comment><USER3> I was agreeing with the facts in the parent comment, rather than the theory presented in the article.

<comment><USER6> There are research papers linked in the article with experimental findings. That is not "theory".

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> The comments on this article are fascinating and why I love reading the HackerNews. Point vs point debates about interesting scientific theory but in a way that average person like me can understand. I used to read about this kind of conversation happening in the late 19th Century in the bars of Royal Science institutions in Europe - it feels a little bit like that. :)

<comment><USER8> Strange, I'm the exact opposite. Reading all this conjecture makes me cringe. I don't know yet if I should consider that a personal failing, or just accept it.

<comment><USER9> I'm with you. Educated comments are rare. The only good articles are HN are business advice. Rest, including technology is fanboyism, conjectures and one- upmanship.

<comment><USER9> Just as an example. A comment down there says heat increases entropy which in turn leads to higher diseases.

That has absolutely nothing to do with diseases. But it sounds so fancy that it's highly upvoted. Just like most other HN comments.

</comment></comment></comment></comment><comment><USER10> My wife always bugs me about the cold. I tell her operating rooms are cold. Heat = entropy, disease vector increase. Any thawing of permafrost will start to revive dormant diseases, viruses and flora. We might as well complete the trifecta and start looking for ancient DNA and revive long gone species for the win. She always tells me cold and drafts = sick, but if you look where the percent of currently diseased - its never in the north - always in tropical places where diseases, worms, parasites have a field day. There will be a day where she'll be begging for the cold :)

<comment><USER11> I believe they figured out that there is some truth to the idea that cold=sick at least for influenza. It doesn't live long while airborne but in a cold environment it can survive a bit longer, meaning in a warm room if someone sneezes you are less likely to be exposed than in a cold one.

<comment><USER12> Doesn't the cold also suppress your immune system, since you're using up calories to warm your body?

<comment><USER13> I read that being in a cold environment weakens the immune response in your nostrils when breathing in that cold air enough to cool off the inside of your nose, where then the pathogen fails to be destroyed as it would have normally had it not been cold.

<comment><USER14> I recently saw an article on HN (don't have a link, sorry) that said that cold did not, in fact, do anything to make us sick or help us catch stuff[1], EXCEPT that it made it more likely to spread something due to running nose or other contact with body fluids.

[1] it may have been specifically about cold and flu, I don't remember exactly. It was within the past month or two in case you feel like searching...

<comment><USER11> Air circulation is compromised in the winter because we close all the windows and doors, and generally we congregate closer together.

For a long time that was considered to be the only reason colds happen more in cold weather. This thing with influenza viability would change that (of course, what one study finds another refutes, so who really knows).

<comment><USER15> Here in Florida no circulation season is April - November. And yet flu season is still winter, the only part of the year where people even consider opening windows.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> I'm surprised that Fortitude [1] hasn't been mentioned yet.

It's a fairly good TV show on this topic.

[1] [https://en.wikipedia.org/wiki/Fortitude_(TV_series)](https://en.wikipedia.org/wiki/Fortitude_\(TV_series\))

<comment><USER17> I was about to comment the same thing, but Ctrl-F'd for Fortitude first.

It's a great show, and without spoiling _is_ on-topic for this subject. Season 2 is a bit out there, but I really recommend people watch it.

</comment></comment><comment><USER18> There are quite a few sci-fi novels and one show I saw that feature nightmare scenarios based off of thawing ice. I seriously doubt we will see something catastrophic though. It's been a while since I took bio but bacteria/viruses from thousands if not millions of years ago will most likely not be able to bind to our cells.

<comment><USER19> The Red Queen hypothesis suggests that the struggle between organisms and their parasites involves a constant reshuffling of offensive and defensive strategies, so it may be entirely possible that, if one of the bacterial/viral species released were originally adapted to infecting mammals or even our ancestral primates, they could target a pathway that humans (or more likely, some subset of humans) have stopped defending because modern parasites don't currently target that pathway.

It'd be sort of like airport security letting through someone with a blowgun because they're trained to look for modern guns.

Ideally we'd quickly gain immunity to the parasite or there would sell be some subset of humans with a resistance that they could spread to the rest of the population, but that's not always a given.

<comment><USER20> There's also the thought that evolutionary adaptations are so tightly coupled with environmental landscape that it'd primarily work the other way around. For whatever defense mechanism we lack for that particular parasite, they lack _anything_ to combat their own million-year-more-efficient predators (like our immune system). It is less about evolution moving forward and being more 'advanced', and more about evolution ensuring an efficient equilibrium with a crazy-dynamic environment. Jumping into a new environment after being conditioned for a very different one likely leads to death much much more often than an accidental advantage. You might not be able to even breathe were you transported a few hundred million years either forward or backward.

Depending on how far back you go, today's planetary environment is a very different place - in terms of chemical food, predatory tactics, biochemical efficiency, atmosphere, etc. Having to compete against organisms that are efficiently adapted in our current environment will almost certainly be immediately lethal for these revived organisms.

<comment><USER21> But you only need one organism to end up with an accidental advantage to result in a catastrophe.

<comment><USER20> Not really. A single organism (outside of the human race) cannot call the full force of an entire 'environment' against another species. And species (outside of humans) must abide by natural laws of energy transfer - for every advance there is an energetic tradeoff. The more different the organism is the easier it would be to target with drugs that only target precisely those differences. The less different, the easier our own bodies would work on it. The more lethal it was, the less it would spread. The less lethal, the more time there would be to figure it out. Without bringing to bear the force of an environmental change (shifting the equilibrium or set-point), there is very little that could be biologically catastrophic for the human race.

That is not to say that a virulent plague would not be a bad thing for a lot of individuals, if not the human species - but it'd be pretty challenging to even design worse than already exist out there - HIV, ebola, marburg or smallpox.

<comment><USER22> > biologically catastrophic for the human race

Something equivalent in virality and lethality to smallpox could be catastrophic if you consider the geopolitical consequences as well as the initial biological impact.

A nonlinear system, like an epidemic, can have phase changes. Most epidemics don't make it very far, but we should still be nervous about that one which crosses the manifold into pandemic.

<comment><USER23> One should keep in mind, for example, that less than 1% of the Liberian population ever caught Ebola, but the consequences for the country have been serious and long-running.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I'll just add this to my list of things that I probably should give some thought, but won't because the top of the list includes refugee crisis, income inequality, and all the less Crightonesque consequences of climate change.

<comment><USER25> The idea is that this might harm YOU, not a person in Libya or a poor person in Kentucky.

If it materializes, I'm sure you'll set you priorities straight

<comment> crush-n-spread That's if it materializes. What's already material is 410 ppm carbon in the atmosphere and rapidly thawing polar sea ice that regulates ocean temperatures. If you are scared about some ice germs then you might as well be reading USA Today for sensationalism. The truly scary stuff is not fun to read about like this.

</comment></comment></comment><comment><USER26> I'm not saying this isn't a threat. But it doesn't seem as scary as the title or comments are making it out to be. The article admits that most bacteria can't survive this long frozen. Only certain types that have adapted to serving in the cold long term by forming spores. It only mentions one bacteria that harms humans that can do that, botulinum. Which isn't contagious and is only a problem with improperly canned food. And anthrax which is deadly but fortunately not very contagious.

Viruses are more of a concern, but the article doesn't make a great case there either. They mention that scientists found a smallpox victim but were unable to recover a complete smallpox virus. Just fragments of it's DNA. The scariest thing recovered was Spanish Flu. Which fortunately many people have already been vaccinated against: [http://www.reuters.com/article/us-flu-vaccine- idUSTRE65E65S2...](http://www.reuters.com/article/us-flu-vaccine- idUSTRE65E65S20100616)

</comment><comment><USER27> Reminds me of the anthrax outbreak in Russia:

[http://www.npr.org/sections/goatsandsoda/2016/08/03/48840094...](http://www.npr.org/sections/goatsandsoda/2016/08/03/488400947/anthrax- outbreak-in-russia-thought-to-be-result-of-thawing-permafrost)

</comment><comment><USER28> Diseases from early humans are an interesting point of worry. What tends to make a deadly disease deadly is that it is able to infect us, but is poorly adapted to us. A disease that is adapted to a close relative of ours is likely to both infect us and not be well-adapted to modern humans.

Which could be really, really bad.

</comment><comment><USER29> A legit fear, but it could be a positive.

When you consider, for example, the Zika virus and it's effect on the human brain, perhaps - on the other hand - we have a virus to thank for making homo sapiens more intelligent than our then "competition"?

Bacteria, could be a positive well.

Of course it's a roll of the dice either way. C'est la evolution.

<comment><USER30> Large parts of our genome do contain viral DNA, and we rely on symbiotic bacteria to digest food.

<comment><USER31> > _we rely on symbiotic bacteria to digest food_

All I know of are colon-dwelling bacteria fermenting and otherwise breaking down "indigestable residue" ("fibre", cellulose, seeds etc --- which certainly helps _voiding_ such roughage and may furnish some butyrate and possibly a few B-vitamins to the colon mucosa in the process) and other refuse. Do you host bacteria in your small intestine, the prime site of digestion and absorption? Or do you count the colon as a site of "digestion"? Maybe I have the wrong understanding of the word..

<comment><USER29> For the most part the phrase "the gut" seems to be in fashion. I'm not so sure we know much about what's going on where, when and by what "third parties."

From what I understand, we have bacteria on the skin as well. And that full body washing with soap might not be a great idea. Sure, get the obvious dirty bits ;) but the rest probably just need a water wash.

<comment><USER31> Now that you mentioned it, I took a look and behold, TIL! There _are_ microbes in the small intestine indeed: [https://microbewiki.kenyon.edu/index.php/Small_Intestine](https://microbewiki.kenyon.edu/index.php/Small_Intestine)

And among many other non-digestive contributions, they do contribute to furnishing short-chain fatty acids and K+B vitamins from incoming substances. Glad I looked that up then =)

<comment><USER29> Fwiw, the watershed moment for me was an article in the NY Times Magazine approx 3 yrs ago about gut bacteria. Blew. My. Mind.

As a side note, one of the key takeaways I extrapolated from that article was bacteria have a direct effect on life expectancy.

For example, they say, when you have a partner you're likely to live longer. But is that love, or because you get to swap bacteria? The same for having pets. They too help to strengthen the system within your body. And so on.

Sometimes I wonder if we're more bacteria than we are human. That is, who is the host and who is the "parasite."

<comment><USER31> An interesting question with the partner or pet example for me is whether it's truly "win-win" \--- do both "live longer" or one does and the other now lives less longer, unwittingly =)

<comment><USER30> I always assumed that most of the health benefits came from things like increased social interaction, and the simple fact that if you have a heart attack or stroke or a fall, someone's there to dial 911.

I imagine that for the social aspect of it, it's only a win/lose if one person gets more stress than joy out of the relationship.

<comment><USER29> I think that's the standard interpretation (i.e., human interaction is the lifesaver). However, when you start to drill down on the whole (gut) bacteria thing, I think things change. Sure, emotions also have impact on the immune system, but so do bacteria. Love IS a powerful emotion. As bacteria are as well ;) The irony (?) is gut bacteria have also been linked to mental conditions / emotions.

I love you...because your gut told my gut to say that? :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> I'm not a microbiologist but when accounting for evolution, you'd think that a microbe which was locked away in ice for millions of years would be maladapted to modern animals - Particularly in terms of transmission between hosts.

I would be more afraid of pathogens that were frozen more recently.

<comment><USER33> Doesn't this work both ways though, where modern animals would not be well equipped to defend against a microbe that has been locked away for millennia?

<comment><USER32> Maybe, but in terms of survival, the onus is on the virus to fit into the new structure of the world not the other way around.

</comment></comment></comment><comment><USER34> Conversely modern bacteria and viruses are going to sleep in the Antarctic.

[https://www.nasa.gov/feature/goddard/nasa-study-mass- gains-o...](https://www.nasa.gov/feature/goddard/nasa-study-mass-gains-of- antarctic-ice-sheet-greater-than-losses)

</comment><comment><USER35> Read the 'Drowned World' by J.G. Ballard, humans start having ancient dreams.

'Just as psychoanalysis reconstructs the original traumatic situation in order to release the repressed material, so we are now being plunged back into the archaeopsychic past, uncovering the ancient taboos and drives that have been dormant for epochs… Each one of us is as old as the entire biological kingdom, and our bloodstreams are tributaries of the great sea of its total memory.

The Drowned World, J.G. Ballard, Millennium 1999, p. 41.

</comment><comment><AUTHOR> Revel with me in the thought that we —humans— think we are center of the world.

That Earth is made for us and we have the power to shape it in whichever way we wish. That we own the planet.

But, in reality, we don't. We are here only temporarily. There are powerful organisms hiding out there who are perennial.

And they act like guards. If we push it too far, we set off the right conditions for them to spring to life, and restore balance on Earth by anhililating the threat — i.e. us.

What a time to be alive!

<comment><USER30> > _restore balance on Earth_

Who's in charge of what constitutes balance?

<comment><AUTHOR> Balance can be technically defined as homeostasis. In the biosphere, a well known concept is the Gaia Theory. More here: [https://en.m.wikipedia.org/wiki/Homeostasis](https://en.m.wikipedia.org/wiki/Homeostasis)

<comment><USER36> ecological homeostasis has been discredited for nearly half a century

</comment></comment></comment></comment><comment><USER37> This sounds like a very manageable threat. We already have systems in place to identify and control the spread of diseases. It's already equipped to deal with new or rare diseases. This will be an added burden but probably no more difficult than dealing with something like ebola. Likely easier due to the geography and population density involved.

</comment><comment><USER38> > From the bubonic plague to smallpox, we have evolved to resist them

We have antibiotics for plague, and vaccination / eradication for small pox. That doesn't feel like we evolved any resistance. A couple of thousand cases of plague are reported to WHO each year.

<comment><USER39> We have evolved to resist if we assume our intelligence is an extension to our body, and intelligently managing diseases is an extension to our immune system.

<comment><USER24> You are being pedantic on purpose.

<comment><USER40> Which do you have an issue with, the idea, or the person expressing it?

While we're at it, I can't recall the last time I met an accidental pedant.

<comment><USER24> The idea is neither novel, nor does it add to the discussion. It simply purposefully distorts the original commenter's intended meaning for "resistance".

</comment></comment></comment></comment></comment><comment><USER41> Reminds me of this horror flick I watched a couple of years ago

The Thaw [http://www.imdb.com/title/tt1235448/](http://www.imdb.com/title/tt1235448/)

</comment><comment><USER42> I guess I prefer that they stay there... but can't help but to say that it seems fascinating that there are these dormant antique lifeforms just waiting to be discovered. Hope they don't kill us.

</comment><comment><USER43> I bet the CIA is sweating about that Winter Soldier that froze in the 60s.

</comment><comment><USER44> This has been happening for at least a couple of hundred years. Mammoth bodies have been exposed in Siberia since at least the 18th century and probably much further back than that.

</comment><comment><USER45> Over the past 5-10 years I've gone from being mostly optimistic about our collective future to quite pessimistic. It's looking increasingly likely that we're unable to solve problems like climate change that require mass cooperation and that too many people are too selfish and short-sighted to allow for collective action. And in the (hopefully unlikely) event that industrial society collapses (from a pandemic, mass political instability, etc) any surviving humans won't be able to restart it because we've already used all of the "easy" fossil fuels. This is pretty much our only shot at making civilization work.

<comment><USER46> It may help you to ponder that in the 1980s, a lot of people were extremely confident human civilization was doomed, doomed, _doomed_ by certainly no later than 2000, and even setting the date that late was terribly optimistic.

There are people who profit from selling this doom. Buy less of it.

I'm not a binary thinker, so just because I'm saying "don't feel quite so doomed" does not mean I'm advocating for the polar opposite blindly sunny disposition either. I said "buy _less_ of it" rather than "stop buying it" quite deliberately. But doom has been "real soon now!" for, like, 60+ years, and it's an important perspective to keep that in mind when you hear today's confident doom-mongers promising immanent doom Real Soon Now (TM). (More than 60 years, really, you can find people complaining about how society is going downhill in antiquity. But the modern brand is about 50-60 years old.)

<comment><USER47> > _It may help you to ponder that in the 1980s, a lot of people were extremely > confident human civilization was doomed, doomed, doomed by certainly no > later than 2000, and even setting the date that late was terribly > optimistic._

I imagine a lot of people thought things were going to be fine too as the Roman Empire collapsed. Or at the start of the Dark Ages. Or when the Black Plague began. Or when the 1929 market crash that kicked off the Great Depression. Or on the eve of both of the World Wars.

The point being: yes, most of the time, humanity muddles its way through its crises successfully. Until one day, it doesn't...

<comment><USER48> Of those, I would only classify the plague and the wars as some sort of crisis for humanity.

For example, the fall of Rome did not involve a decrease of average living standards. Rather it is the opposite that is the case as it happened at roughly the same time as the abolition of slavery in Europe.

You should not conflate crises that affect only the ruling classes with crises for humanity.

<comment><USER49> What are you talking about? The fall of Rome involved the loss of a huge amount of technology and learning, as people abandoned the idea of specialization of labor and cities so they could go work as serfs in the fields for feudal lords. For the citizens of Rome (not just the ruling classes), it was absolutely a large decrease in living standards, and in overall civilization. There's a reason the period following is called "the Dark Ages": there was very little education any more, and no one wrote anything down like they used to, so that period is largely a mystery (relative to how much we know about the Roman times). It took 1000 years for western civilization to get anywhere near the level of civilization that Rome had developed.

Now you're right that it wasn't exactly a "crisis for humanity" because it only affected one part of the world--western Europe (the eastern Roman Empire continued), and also didn't involve a massive die-off, just a regression of civilization in that one area.

</comment></comment></comment></comment></comment><comment><USER50> Drilling in the frozen north and releasing an ancient monster is the subject of the first episode of the revamped Mystery Science Theater on Netflix.

<comment><USER51> And John Carpenter's The Thing.

<comment><USER52> Minor nit, but I don't think they reveal that the creature in The Thing was cut out of the ice and revived until the much later 2011 prequel. [https://en.m.wikipedia.org/wiki/The_Thing_(2011_film)](https://en.m.wikipedia.org/wiki/The_Thing_\(2011_film\))

Edit: Looks like I'm wrong. Apparently the ice block is in the John Carpenter film, but things aren't spelled out in great detail. I need to watch both of these again...

</comment></comment></comment><comment><USER53> No matter the climate change is due to human or nature. The fact is the temperature is getting higher and it is the problem.

<comment><USER54> Climate fluctuations will happen regardless of whether we do anything to cause warming/cooling. We need to focus on protecting ourselves from it by using more energy... because both heating and cooling our living rooms and cars requires energy... and make artificial heating/cooling accessible to more and more people... regardless of whether or not our activities warms up or cools down the earth.

Why we are focusing on what happens to the overall earth's climate makes zero sense to me... I'm sure it is entirely political and it is a fight between few rich corporations and political powers where everyone has been dragged into. Climate will change very drastically like it has done in the past, with or without human activities. We should be working on how to save ourselves from changes in the future... not desperately trying not to breathe too hard which might cause some tsunami in another part of the world (butterfly effect)... specially because nobody can correctly predict if it will.

<comment><USER55> People do lots of hand wringing about climate change but really we could and surely will just do what you say and protect ourselves from whatever comes. Air conditioners where it becomes too hot, sea walls where storm surges become too frequent, irrigation where rainfall is reduced, moving people around where arable land moves, etc. We already do all these things on a massive scale. They're nothing unrealistic.

</comment></comment></comment><comment><USER56> Nature has given us a whole CDC vault for free. Seems like a golden moment for science akin to corpse in the Alps.

</comment><comment><USER57> We're all gonna die!

</comment><comment><USER58> we've already been de-seleceted. now it's just a matter of time....

<comment><USER58> ahhh yes, down-voted due to what, the pain of a reality check? interesting...

</comment></comment><comment><USER59> What a time to be alive.

</comment><comment><USER60> > "as climate warms"

How much warming, in degrees F, C, or K, since when, measured how, by whom, published where, compared with what other measurements?

Why ask these questions? For one, AFAIK "climate warms" essentially has not been happening to any significant extent for about 20 years and, really, since the coldest of the Little Ice Age -- apparently there was some cooling from 1940 to 1970 so some warming since then. On the Little Ice Age, there was ice skating on the Thames River in London.

Reference for temperature over the past 2000 years? Okay:

Committee on Surface Temperature Reconstructions for the Last 2,000 Years, National Research Council, _Surface Temperature Reconstructions for the Last 2,000 Years_ , ISBN 0-309-66264-8, 196 pages, National Academies Press, 2006, available at

[http://www.nap.edu/catalog/11676.html](http://www.nap.edu/catalog/11676.html)

In the Medieval Warm Period, did all the ice and permafrost melt and make everyone sick? Well, if it all melted, then what's in the ice and permafrost now is not so old and maybe safe. But I didn't hear that diseases released by the melting ice and permafrost made lots of people sick during the Medieval Warm Period.

My guess: The BBC is pushing made-up, cooked-up, stirred-up, gang-up, pile-on, continually reinforced fake, nonsense scare stories to get continuing eyeballs, ad revenue, and British government subsidies.

Not reading it.

For some simple evidence: The Little Ice Age really was significantly cooler, but there is no evidence that it was preceded closely by lower concentration of CO2 -- the lower temperatures had some cause other than lower CO2.

The Medieval Warm Period really was warmer, but there is no evidence that it was preceded closely by higher concentration of CO2 -- there must have been some cause other than higher CO2.

It appears from ice core samples and more that the temperature of the earth has varied significantly over at least the last 800,000 years. Maybe CO2 has had something to do with warming since the Little Ice Age, and otherwise it looks like the causes of warming/cooling had little or nothing to do with CO2.

It appears that people who talk about warming are blaming CO2, in particular from human activities, and from what I've seen in the temperature records for the past 800,000 years, the only time when CO2 might have caused significant warming was since the Little Ice Age -- even if we accept this, there's the problem of the cause of the cooling from 1940 -- 1970. Otherwise the temperature changes had other causes -- so, my guess is that the temperature change since the Little Ice Age also has some cause(s) other than CO2.

Is CO2 a greenhouse gas, that is, absorbs Planck radiation from the surface of the earth? Yup, absorbs in three bands in the infrared; since we can't see CO2, it does not absorb visible light. So, is there a warming effect from that CO2 absorption? Well, maybe, but water is also a greenhouse gas so that maybe the radiation would be absorbed by water instead of CO2. But even if CO2 is the only way that infrared radiation can get absorbed, it's still not clear how much warming, net, all things considered, it would cause. E.g., lighting a match will also warm the earth.

Is there more CO2 in the atmosphere now? Apparently the concentration someplaces is 400 ppm (parts per million) -- IIRC that would be in Hawaii, right, near a volcano, and volcanoes are supposed to be one of the major sources of CO2. Also there's CO2 in the ocean, and warm water absorbes less CO2 than cold water, so maybe recently some of the ocean around Hawaii is warmer and the source of the Hawaii CO2.

I've seen no good presentations of CO2 levels over time with explanations of the causes.

I've seen no good data on CO2 sources, sinks, or flows.

E.g., first cut, how much CO2 is in the atmosphere now? Then, how much CO2 enters the atmosphere from human activity each year now? If the ocean warms a little, say, from an el Nino, how much CO2 is released into the atmosphere? At what rate do green plants take CO2 from the atmosphere? My guess is that CO2 from human activities is comparatively tiny, that the basic data would show this, and this is why we don't get the basic data.

I see lots of articles on CO2 and warming, but I don't see articles with even this basic, first cut data.

So, to me, the articles don't really have a case since if they did they would make their case. In the articles I see efforts to grab people emotionally but darned little data to convince people rationally.

BBC: "as climate warms" is where you lost me.

Or with this logic, we could write even more shocking articles:

As the next galactic gamma ray burst hits the earth, all the atmosphere will be blown off the earth, and everyone will die. Moreover, since the gamma rays will come at the speed of light, we will never be able to see them coming. Now, get scared. Get afraid. Be very afraid. Watch the BBC for hourly updates 24 x 7 for the rest of your life to keep up on just what will happen as the next gamma ray burst hits the earth. Same for marauding neutron stars, highly magnetic neutron stars, and black holes. Read BBC tomorrow for the results as the next black hole hits the earth. For more, the expansion of the universe is slowing down, and we may be in a _big crunch_ and all compressed to a point -- see the BBC next week for the details when this happens. Back home, see what will happen when Yellowstone blows again -- last time it put ash 10 feet deep (it's rock and enough to crush nearly any roof) 1000 miles down wind or some such. Remember, those bacteria are down there, fighting every second among themselves, evolving, just to come out and kill everything else, including YOU!!!

<comment><USER61> Your comment is absolutely huge and most likely not worth reading. All of the scattered sentences I skim read are just rambling fear mongering, doubt and general misinformation.

The climate is warming. The permafrost is melting, more and more each year. You have to be living in an echo chamber to not understand this.

</comment></comment><comment><USER62> Oh. Goody.

<comment><USER62> What, should I have made it clearer I was being sarcastic?

<comment><USER63> I think that it doesn't matter if you were or not - it was a low-effort contribution to the discussion.

</comment></comment></comment><comment><USER64> Pleistocene Park, the project to keep permafrost in Siberia, at Kickstarter: [https://www.kickstarter.com/projects/907484977/pleistocene-p...](https://www.kickstarter.com/projects/907484977/pleistocene- park-an-ice-age-ecosystem-to-save-the/description).</comment>


Seriously, why do you still have an iPhone? - <AUTHOR> http://opensource.com/life/10/6/seriously-why-do-you-still-have-iphone

<comment><USER2> Seriously, why do you assume that every single open-source fan likes free software on ideological instead of pragmatical grounds? Has it dawned on you that a development philosophy that works for the server room may not be the best approach for developing mainstream consumer devices.

<comment><USER3> I agree. Its pretty impossible to argue that Apple's strategy isn't working for them. They make marvelous products.

</comment></comment><comment><USER4> Seriously; as soon as someone makes a phone better than the iPhone, I'll buy it. I've used Android phones and I feel they have a lot of potential, but the lack the polish, the fit-and-finish that the iPhone has. Frankly; I don't enjoy using them because they always seem laggy or the UIs between apps are wildly inconsistent.

These are fixable issues, but I haven't seen anything yet.

</comment><comment><USER5> The main reason I'm completely happy with my iPhone, even with all its closed- ness, is because for me, it's just a phone. All I want out of my device is basic phone functionalities, a simple camera, access to the Internet, and the ability to play some games.

Until there are several features I truly feel like I'm missing out on because I'm stuck in Closed iPhone Land, or until there's a distinctly better device out there, I'm going to stick with it.

</comment><comment><USER6> Well I don't have either, but if I were buying, my thoughts would go like this:

"If I get an iPhone, I know which one to buy (iPhone 4), and I know it will all work out of the box".

"If I buy an Android phone, I have to compare between about a bazillion models, and I don't know whether each has a separate app store, and if I get the 'wrong' Android phone I'll regret it".

Basically, there's /too much/ choice in the Android market.

<comment><USER7> Are there actually any Android phones with a separate app store?

It sounds like your thinking has been seeded with plenty of Android FUD. The differences between models are not as substantial as that.

(If you're talking about fragmentation from the developer's point of view, don't forget that the iOS ecosystem is not immune to it either. Some iOS devices have an advanced GPU with shader support, others don't. Some devices have a camera and microphone, others don't. Many iPod touches have not been upgraded beyond the original OS release that they shipped with, because the newer version costs $20. And so on...)</comment></comment>


Biology's Beloved Amphibian--the Axolotl--Is Racing Toward Extinction - <AUTHOR> https://www.scientificamerican.com/article/biologys-beloved-amphibian-the-axolotl-is-racing-toward-extinction1/ <comment><USER2> At 32 Giga-base pairs, ten times the length of the human genome. The Axolotl salamander possesses one of the largest genomes known in the animal kingdom. And is thought contain genes that are key to regeneration and rejuvenation. The assembly of such a large genome is itself an algorithmic "marvel". Extinction would mean the end of natural evolution in its wild state. And with it, the possible termination of whatever mysterious process was iterating it to its possible endgame of age defying immortality!

The axolotl genome and the evolution of key tissue formation regulators

[https://www.nature.com/articles/nature25458](https://www.nature.com/articles/nature25458)</comment>


Show HN: An easy way to create a will online - <AUTHOR> https://belikewilliam.com <comment><USER2> Nice idea but with my legal hat on:

1) Does this deal with trusts and more complex will structures? 2) How do you deal with formal validity in terms of signing requirements? 3) How are you judging capacity? 4) What about international moveables and immoveables?

I get that this is probably a prettier and online version of the 'Post Office Will' and I'm all for legal tech but there are a lot of steps to get right with this sort of thing.

Otherwise it's a got a great design and looks like a cool service :)</comment>


Ditch your welcome email - <AUTHOR> http://kissflow.com/kissu_kissu/ditch-your-welcome-email/ <comment> martin-adams For me, I find value in knowing I got a welcome email as a subtle confirmation that I entered my correct details, and if I didn't, I have a way to recover it. I can now safely forget the name of the can't-quite-remember-how-they- spelt-it-startup domain name, my password, username, etc, knowing that I did get my email registered with the company and I have a record of it.

But the article isn't saying to ditch it, it's saying to use that opportunity for something much better. This is a good idea when the goal of it has a benefit to the user. It also builds more value to your brand by being a real entity backed by real people.

<comment><USER2> I don't know who you are using but..

> my password, username, etc

I would immediately reply to the company rescinding my account and informing them this highlights a total lack of understanding of securing peoples personal details.

<comment><USER3> Why? It seems common that if you can supply the email you signed up with, you can recover your username and get a password reset. Especially true if the website is not somewhere you go to very frequently like the original comment seems to be insinuating and you are using different passwords for every account you make.

<comment> martin-adams Yes, it's being able to use a password reset function. I have different passwords for all sites and with some more strict password rules, I know I'll struggle to remember it.

I do use a password vault, but only for really important accounts.

</comment></comment></comment></comment><comment><USER4> A provocative but misleading title. The article actually is just a modification of a welcome email, indeed it makes it worse as it doesn't just inform but demands immediate attention too. Title should be "badgering your potential customers to respond immediately in your welcome email increases responses".

It probably works well as a sales tactic but TBH I'm not inclined to do business with companies that demand I work to their schedule in their welcome email. I mean 'drop everything and respond to us within 30 mins' is pretty aggressive.

<comment><USER5> "I will call you in the next 30 minutes or do you want to do this over email?"

It certainly asks for time in the next 30 minutes, but you're free to do it async on a longer timeline.

<comment><USER6> But you have to do something in the next 30 minutes (responding to the email) in order to not have to do something in the next 30 minutes. There's no "I'm too busy for this" default (except not taking their call, I guess. That's probably what I would end up doing.)

<comment><USER7> You are kinda overblowing this. Simply say do it via email and tell them to reschedule.

Some people prefer the phone to get shit done faster and move on.

YMMV

<comment><USER6> What if you're too busy to bother reading the email in the first place? What if you signed up, and then instead of fishing out the confirm link, you got distracted and went off to do something else? Now someone's calling you and you don't know why.

<comment><USER7> I don't usually field calls if I'm busy. I mean everybody has their own style of work. If you are in sales, this is standard.

</comment></comment></comment></comment></comment></comment><comment><USER8> As a consumer, If you threaten to call me in 30 minutes if I don't respond to the email, you will lose my business. This is, at best, obnoxious advice.

<comment><USER9> Insurance companies are the absolute worse about that. I'm shopping around for insurance and get 10 quotes. Then I'll pick one company to go with and sign up. I'll either do it online or I call a rep to finish the signup.

Now 5 of the remaining 9 companies I got quotes from but decided not to pick decide I need a phonecall (or less obnoxiously but still obnoxious) email. "Hi, I saw you got a quote on our site, can I help you sign up?" "Would you like to talk about the quote you received on our website?" The best was when I replied "No, I already bought insurance" and the rep was like really confused as to why would I get an insurance quote if I already had insurance. She seemed surprised it would be a possibility to get a quote and NOT sign up. Or even to shop around. Sometimes I even get quotes once in a while to get an idea if I can get a significantly better deal somewhere else. Then I get phonecalls.

I started replying "If I wanted to talk on the phone or sign up I would have called you." and hang up. Its so rude but really, I don't want to talk to them, if I was interested after I got a quote I would call them. Do people really go "oh, yeah, I wasn't going to sign up but since you called me during dinner I changed my mind."?

<comment><USER10> > I started replying "If I wanted to talk on the phone or sign up I would have > called you." and hang up. Its so rude but really, I don't want to talk to > them, if I was interested after I got a quote I would call them. Do people > really go "oh, yeah, I wasn't going to sign up but since you called me > during dinner I changed my mind."?

I guess the sales calls convert - otherwise the companies wouldn't spend the money on phone calls.

</comment></comment></comment><comment><USER11> I think the high reply rate is due to this phrase in the new mail: "I will call you in the next 30 minutes or do you want to do this over email?"

If I wouldn't want anybody to call me, I would probably reply.

<comment><USER12> Quoting @substack [1] "A phone call is a hostile act of aggression. First you interrupt someone with an infuriating sound and then you demand their attention."

[1]: [https://twitter.com/substack/status/292461828368396288](https://twitter.com/substack/status/292461828368396288)

<comment><USER13> From patio11:

"There is no chasm in America, not even between Red/Blue, so deep as that between Phone People and Email People."

[https://twitter.com/patio11/status/519869383372320768](https://twitter.com/patio11/status/519869383372320768)

With LiberWriter - a service geared to _authors_ , no less - a certain percentage of our customers really, really wants to talk to someone on the phone.

</comment></comment></comment><comment><USER14> Kudos on the plain text email. I wish more people did this. Especially if your audience is tech-oriented a fair number of them may be using Mutt or reading email in emacs or vim. Even if they are not, they will likely appreciate a straight email that doesn't look like a magazine advert.

<comment><USER15> I personally would appreciate text only email since my phone is generally the first place I see emails these days.

On another note, not everyone technical is a Richard Stallman that reads email inside of emacs.

</comment></comment><comment><USER16> The first line of this article, "Don't know Lincoln Murphy? Then, I would pretty much assume you are _not_ in the SaaS Business and you may well skip the rest of this post and do something more useful. :-) !"

Sounds good to me. _clicks "back"_ (I've been in the SaaS world for 5+ years.)

<comment><USER17> I was similarly turned-off. It's one thing to credit your influences, but this came off as name dropping with a side of social shaming.

</comment></comment><comment><USER18> Often a "welcome" email is the canary in a coalmine for a service that will annoy me with repeated unwanted communication.

</comment><comment><USER19> A welcome email is the most dreaded thing in my inbox - I delete them as soon as they land in my inbox.

It's content free, I haven't started to play with the app/site/tool yet (which means I don't know if I like it yet, and I have no real questions until I actually start working with it), and basically, has no value aside from reassuring that someone is available to help.

And even in that case, the welcome email is sent by a robot! Which means that it's not a real person anyways.

<comment><USER20> In many cases, as soon as I see the welcome email, I hit report spam to block any further email. If it's something I will be using for a long time or for specific purpose, I will bother fiddling with their email settings so I don't get overloaded. If it's a one-off or an app or something, I literally never want to hear from you. So I preemptively mark the first email as spam so I never have to see another one.

No, Runkeeper, I don't need an email when I set a personal record. You told me that in the app, literally as it happened. That's why I reported your email as spam and blocked everything you have to say to me. You're an app, you already have a way to contact me.

<comment><USER21> > In many cases, as soon as I see the welcome email, I hit report spam to > block any further email.

What the hell? This is crazy. Reporting an email as spam does not just protect you from receiving further emails, it reduces the reputation of the sender and makes it less likely their emails will get through, _even to other customers who want them._

It would be like walking through a bookstore, deciding not to buy anything, then reporting them to the Better Business Bureau as a scam. You are making things worse for everyone else, as a matter of personal convenience.

<comment><USER20> Yup. Just like using Adblock hurts companies who have decent advertisements on their site, not just abusive advertisers. For sites I frequent that do not have abusive advertisements, I make exceptions for them in AdBlock. Otherwise, everything gets wiped out, on every site. If you're caught in the swath of the innocents, sorry, but I'm not sorry.

Long ago, companies, startups, blogs, etc, declared war. They decided that their readers, their users, their customers aren't good enough and they need to wring from them more money, more attention, more clicks, more engagement. And they are willing to do whatever they can get away with in order to do this, no matter how much it pisses off their customers. I'm not dealing with it. I used to only block actual spammers. And then it got to be so many emails to opt out of, and so much junk coming in. I used to click "unsubscribe", and then they started to pretend the word unsubscribe meant "I'm a real human, spam me more!" I'm happy to give you my email address, because you demand that I do so. But the minute I hear from you at a time when I did not ask you to speak, I no longer care what you have to say, ever again. Why should I go out of my way to figure out how to opt-out when I never opted in?

It's not that I'm walking out of a store without buying anything. It's that I'm walking into a store, being followed by a salesman who is telling other stores in the area that I am out shopping, and then being upsold on everything whether I want to buy it or not, for weeks, months, or years after I walk out of the store. And when that happens, I'm going to tell my friends not to shop there. _That_ is what "report spam" means.

It's the right thing to do, and I'm not going to apologize for it. I would say "just stop being abusive and I'll stop reporting you as spam", but no, like online advertisements, it's too late for that. I will always block your ads, and I will always report you as spam. The privilege has been abused for too long.

<comment><USER21> Account creation emails are a _security feature._ If someone sets up an account to pretend to be you, the account creation email will alert you that it is happening.

Account creation emails are a _data quality_ feature. People don't always type their emails correctly, so the account creation email confirms that the provider has the correct email address. If you create an account with a typo'd email, you will not be able to log in because you won't know there was a typo --you'll enter your actual email address on the login form and get denied.

Account creation emails are a best practice that has obvious benefits. I can't understand the mindset that objects to them.

</comment></comment></comment></comment></comment><comment><USER22> I'd like to know a bit more about sending emails with Google Apps instead of something like Mailchimp, specifically how automated you can get, what tools are available, and what the risks are. It sounds like a good idea in theory but you presumably run the risk of getting blacklisted for SPAM if you're not careful so I'll assume this only works for businesses with high touch customer processes / fewer signups who don't need to send a whole ton of emails.

</comment><comment><USER23> Welcome emails are useful for 2.5 things:

        - Confirming that your registration was successful
        - Remembering that you signed up for something in the first place
          - Finding useful information pertaining to the account and the service: the unsubscribe link, the TO field (for remembering the site specific extension you gave), link to TOS, etc.

Keeping these things in mind would make a whole lot of my archived mail more useful.

</comment><comment><USER24> This is what happens when "growth hackers" get a hold of your sales strategy.

They re-frame the conversation to center around meaningless (although indirectly related to sales performance) metrics that give the sense of success but do everything to shroud real success. Kudos this this marketer for labeling his/her metric improvement "10X conversations" giving it at least a tinge of humanness.

There's nothing wrong about trying to improve these metrics in and of itself, but when the entire tactic is based on tricking or threatening people into initiating "conversations" (ie. when those conversations are more "Please do not call me" as opposed to "Please tell me more about your product") then the real goal of said marketer is not to sell the product, but to sell their own usefulness within a company.

</comment><comment><USER25> The author here is certainly using some provocative language in their email. I can't comment on the long term effectiveness of that, but I do believe in the power of the plain text email.

We've been using "handwritten", plaintext emails from the beginning at Cronitor. I copy and paste a few bits but I always write something individual for each signup. The days we get 5-10 signups make that a little more challenging, but you won't find us complaining. And I feel better knowing that everybody who took a moment of their day to signup and checkout Cronitor got a moment of mine in return.

</comment><comment><USER26> Shouldn't this be qualified with "...if you signup to KISSFLOW"? There are certain types of customer that would consider it superfluous, but often a welcome email will have other information that would be nice to have, just so I don't need to login again.

So a rose by any other name, perhaps, but it's still a welcome email.

</comment><comment><USER21> TL;DR: If your success metric is "conversations with a new customer", then you can increase it by forcing the customer into a conversation via your first email.

However, I bet that many SaaS vendors don't consider that metric as their #1 concern.

</comment><comment><USER27> Nice rant against using MailChimp et all for the first contact mail. GMail dumps them in "Update" way too often...

</comment><comment><USER28> This doesn't have to work always. This is obviously a huge risk. I'd say you just got lucky!

<comment><USER29> It worked for them, so good on them for trying something different and also sharing about it!

As always, what works for one company, won't always work for the next :-)

</comment></comment><comment><USER30> Is this parody?

"Conversation rate", seriously?

The metrics you are looking for are _conversion_ rate and retention.</comment>


4/7 Engineer - <AUTHOR> I've been at a new job for about a month. So far it's great, catered meals, WFH days, nice work-life balance and so-on.
Yesterday I had my first 1:1 with my manager, in which he told me the company has rated me as a "4 out of 7" in terms of skill. The conversation was pretty friendly, we were laughing etc. but as the day went on I kept thinking "4 out of 7? Based on what metrics?". I asked my manager what the rating is based on over Slack, no response. Later in the day after we had talked about other stuff, asked again briefly, no response.
What the job has been like so far:
• I worked with design in my 1st week to prototype 3 different design systems in CRA apps – basically todo-list apps using different UI libraries. The goal was to see which React app was easiest for designers or Rails devs (and anyone else who is anti-styled components) to jump in and modify styles, and which system seemed easiest to extend. Ended up choosing a system, and building a bridge between CSS and styled so devs can use styled-components and designers can use SASS and both will work, design seemed happy, we presented to the company, everyone clapped. Yay, great first week.
• The next week was training 8 hours a day with the other new hires, and I got no tasks for a week.
• Third week I'm back into the mix. We just switched to Auth0 so I was tasked to write the e2e tests to test logging in with our new provider, using various authentication methods. I also reviewed a number of PRs, and fixed some small/easy front-end bugs.
• 4th week I had my 1:1 where they said I'm a "4 out of 7". I know I haven't exactly been doing rocket science in my first month here, but I've done everything they've told me to within the allotted time. We have 2-week sprints and usually only have a couple of tasks. From my perspective this job is really easy, so I'm confused.
Anyone heard of this system, or know what I can do to improve my rating? <comment><USER2> Metrics like that are bullshit. They're worthless carnival cash designed to keep employees in line lest they demand actual compensation for the value they truly provide.

Measuring developer proficiency in terms of a single number is particularly ridiculous.

Every D&D character is more multifaceted than that.

<comment><USER3> This.

Make sure you are getting paid what you are worth, and ignore the rating system.

</comment></comment><comment><USER4> That seems like a good, in-person direct question for a 1:1 with your manager when you have plenty of time to follow up with questions. It deserves having its own time devoted to it, which is (presumably) the point of your 1:1s.

It doesn't sound like you've been able to ask it that way yet, and that would probably be the best way to get a feel for what it means, your manager's expectations, and how to improve.

</comment><comment><USER5> It's a sign of poor management, add a strike against the company in your mental tally then stop caring about it and do your job with a smile.

When you can't be bothered with your bad manager/company any more get a different job.

Don't burn bridges.

Working for someone is a business transaction, not a school class. No company should grade you like a child and you should judge the company as such.

</comment><comment><USER6> I'm about to say something that has the potential to sound demeaning, but I promise that is not my intent.

I think you're taking this way too seriously. The conversation was friendly, there was no warning or PIP attached, and finally, you've only been there for four weeks.

Put it out of your mind and keep doing what you're doing. It sounds like you've had an impressive first month. Be proud!

</comment><comment><USER7> This is common in the corporate world, and a form of stack ranking. Top of the stack = promote and give large raises, middle of the stack = keep and give small raises if any, bottom of the stack = get rid of. 4/7 says "keep" to me. Bosses often have a distribution of 4's, 5's, 6's, etc. they have to line up with their staff as per company policy. This means marking up your top performers as 4/7 sometimes to keep them from shrinking your staff.

It's a bit like "buy", "strong buy", "hold" recommendations for stocks, which translate better to "hold", "buy", "sell".

It's only been a month, but this metric is stupid to have, and even more stupid to share with employees. The problem with stack ranking is if you have an all-star team or an F troop in your organization. At some point you're promoting and getting rid of the wrong people. It's a subjective political metric.

Workplace psychology doesn't match with it either. An average Uber driver still expects 5 stars. Give him 3 even if you believe he deserves 3, and he'll resent you. Maybe he'll refuse your ride next time if he finds out.

4/7 isn't an insult to a new hire, just an insulting metric to a workforce.

</comment><comment> BA4gDY-cqjsEPWn You have to gauge the company culture and figure out what's most likely.

Could be that they didn't want to overwhelm you so you got less than usual work to begin with and their expectation was that you'll come asking for more work (that's what I do when the job is "easy").

Also could be that the incumbents are defending their positions by rating you lower than you should be. If they put you in a bracket below themselves then it's increased job security for them and a higher probability for raises/promotions.

<comment><USER8> Could also be part of the ratings scheme.

Maybe there are events triggered by a score (e.g. 3/7 is a review of skills, 6/7 is consider a promotion).

Or perhaps the manager has to justify any above-average ratings to their superiors -- meaning that "everyone gets a four" makes the wheels move slowly.

I think the most likely answer though, is that they don't feel they know you well enough (yet) to judge. One month isn't very long at all. Once you've been on a few projects, your manager will get a better feel for your skillset.

When you get to a 6- or 12-month appraisal, ask again -- but ask it differently. The question you want to ask is "Are there any things you think I could improve / any skills you'd recommend I learn or improve on?"

</comment></comment><comment><USER9> There appears to be an assumption that this is a linear rating list. Have you asked how the ratings were derived?

Second, it appeared if your rating was based purely on your perception of the first week your score would be higher. As usually the first impression is important.

I find your comment: From my perspective this job is really easy, so I'm confused.

Did you ever think they gave you easy stuff to see how you reacted? If it was easy did you make sure what you did was extra perfect (documented, tested etc, good grammar?) If it was so easy, then an above average person would have asked for more work, or more challenging work.

Lastly, they just hired you. They expected you to perform at level X. Had you been rated a 7/7 then maybe they hired you at too low of a level. If you were a 1/7 then you were hired way above your skill set. A 4/7 says you are a perfect fit for the job they hired you into.

</comment><comment><USER10> You say the job is really easy, and your manager rates you a 4/7\. Maybe you're playing the game in easy mode? I.e. doing (well) what's asked of you but not doing the implicitly expected (finishing tasks earlier than you said you would, writing a post on the company blog, volunteering for pager duty, whatever)

To be clear, it's absolutely your manager's job to set expectations and to walk you through the cultural norms of the company, but bad managers happen. Maybe it's worth having a chat with some of your colleagues who've been in the company for a few months to understand how their integration went and see if they have some tips for you (assuming your manager isn't more forthcoming on how to get a higher score).

</comment><comment><USER11> To fixate on a rating seemingly based on a likert scale is a rather strange conundrum to have, after a month into a new job, especially considering that everything is hunky-dory.

On the other hand, a 7/7 rating would probably set off a full-blown existential crisis..

</comment><comment><USER12> If you could write a blog post on how you bridged two CSS systems and why some engineers are anti-styled components you'd be a 7/7 engineer in my books. Thanks.

</comment><comment><USER13> You were rated after one month at the company? This is absolutely not normal. Places like FB don't even really rate you until the 2nd performance cycle, between 7 and 11 months after your start date.

</comment><comment><USER14> Just reply that you rate him 3/7.

<comment><USER15> Good one.</comment></comment>


Is TermKit dead? Why? - <AUTHOR> http://www.reddit.com/r/programming/comments/137kd9/18_months_ago_termkit_a_nextgeneration_terminal/

<comment><USER2> Such a beautiful demo. I was (am?) really looking forward to this "making it." I do think it's going to take a pretty massive development effort to make it work well though.

For starters, you're going to want to be dealing with objects or structured data rather than raw strings. So you'll be rewriting or writing wrappers for a lot of Unix. Powershell hasn't really been ported to Unix yet, presumably because the "unix greybeards" as he puts it are dogmatically attached to plain text as the communication medium, and not without reason. Maybe if you made HTML or JSON the medium you could simplify this? I suspect you'll want the opacity only live objects can provide though, and that probably means you're opening yourself up to the usual parade of problems.

He mentions that Unix's execution model makes this kind of a non-starter. I have no idea which things here were actually the problem, but I can definitely see how building on very early Node exacerbated the problem. OTOH Node seems like the "correct" platform—Lighttable is also arriving as essentially a browser bundled with embedded Node.

In all, I hope he does pick it up. I would bet that part of why this hasn't happened before or since is because there are many ways to approach the problem that would work but they all probably involve deep changes to the OS—or at least lots of new code. Microsoft can get away with these kinds of things because they also have the whole OS and VM, and they could throw a lot of people at an inelegant solution and still make it work. One guy, working on it in his spare time probably can't produce that volume and there will always be the nagging sensation that if approached from another angle it would be less work. I don't think it's true, but I could see falling into the trap.</comment>


Delta Dumped Jet Fuel on a Bunch of Elementary School Kids - <AUTHOR> https://www.vice.com/en_us/article/v74dbb/delta-dumped-jet-fuel-on-a-bunch-of-elementary-school-kids-what-the-hell <comment><USER2> This is from seven weeks ago and was covered at the time.</comment>


Twitter's response to the developer community - <AUTHOR> http://groups.google.com/group/twitter-development-talk/browse_thread/thread/3f9023afef934d91

<comment><USER2> Basically this boils down to "don't build apps with similar functionality to twitter.com". While that may sting some developers, at least it's a pretty clear and unambiguous signal.

One nice thing is that they're spending time and effort to talk to their dev community. Much better than the Apple approach, which is to make large disruptive changes without warning or explanation.

<comment><USER3> What percentage of lines of code written for the twitter platform have just been clients? I'd be shocked if it wasn't the overwhelming majority.

It may be a simple principle but it is a change in position and it screws over _a_lot_ of people.

<comment><USER4> So you pivot. Implement a feature that a niche will really like, but that the official Twitter app won't implement because it complicates things for those that don't care and fills a fairly small niche.

For example, I'd love to have a client that lets me filter extremely powerfully. I should be able to filter by any field (for example, filter out whose source is Ad.ly because it's all ads), use regular expressions, etc.

I think some apps come close, but I don't think any are quite as powerful as I'd like. Even if one is, there are plenty more niches to fill. An iPhone client that's not as pretty or feature-packed, but which loads instantly, for example.

</comment></comment></comment><comment><USER3> How can you reconcile:

 _"...when we dug in a little bit we realized that it was causing massive confusion among user's who had an iPhone and were looking to use Twitter for the first time. They would head to the App Store, search for Twitter and would see results that included a lot of apps that had nothing to do with Twitter and a few that did, but a new user wouldn't find what they were looking for and give up. That is a lost user for all of us."_

with:

 _"We will also admit our mistakes when they are made and the Blackberry client should never have been labeled "official". It has since been changed and you won't see that language used with Twitter clients in the future."_

\</comment><comment></comment><comment></comment><comment></comment><comment>

In the one case the lack of an official client was hurting new user acquisition and in the other (Blackberry) case it was stepping on developer toes?

<comment><USER5> I have a feeling that the word "official" connotes "authentic." E.g., I would trust the "official" version of a music video to not having any surprises, while the unofficial versions are less trustworthy.

I think Twitter realizes that using the word "official" to describe their apps makes it seem like other developers create unofficial apps, when in fact the developers are using the same officially-sanctioned APIs.

</comment></comment><comment><USER6> Sorry, latest move may chafe some developers, but in the current offerings of Twitter clients, users suffer.

At least in my view, where none of the "third party" Twitter client choices are acceptable (though, disclaimer, I've not experienced Tweetie, but a half dozen others that inevitably send me back to Safari).

Contrast to Facebook where the iPhone app is extremely polished and eloquently bundles just about all of the core functionality.

<comment><AUTHOR> I've not used Facebook for the iPhone but last time I used it for android it was basically for notifications and sent me to the mobile interface for all meaningful interaction.</comment></comment>


Show HN: Qanairy Beta – AI Powered UI Testing Service - <AUTHOR> https://www.qanairy.com <comment><USER2> "Failed to load resource: the server responded with a status of 429 (TOO MANY REQUESTS)" when going to [https://app.qanairy.com/](https://app.qanairy.com/)

<comment><AUTHOR> I'm sorry that you experienced this issue. We aren't aware of any issues with 429 status codes. Would you mind providing the browser type and version that you are using?

<comment><USER2> (still not working today, blank page when heading to [https://app.qanairy.com](https://app.qanairy.com))

</comment></comment></comment><comment><USER3> In latest Firefox and Chrome [https://app.qanairy.com/](https://app.qanairy.com/) shows a javascript error and otherwise blank page for me.

<comment><AUTHOR> We should be working for all recent browser versions. If you have an ad blocker in your browsers it may be causing the issue. We have had other users report that their ad blockers were preventing them from accessing the service. Would you mind giving it a try again and providing the javascript error if you see it again?

<comment><USER4> same blanck for me on latest FF.

Removed ublock for app

still blanck

ping me when solved :)</comment></comment></comment>


Why I prefer scheme to Haskell - <AUTHOR> http://slidetocode.com/2012/04/09/why-i-prefer-scheme-to-haskell/

<comment><USER2> In addition to the Debug.Trace facility that others have mentioned, it's also worth noting that GHCi has a built in debugger. I find that I need it pretty infrequently, since you can inspect anything defined at the top level simply by loading your module in GHCi and evaluating the expression in question. But if you need to inspect more local bindings, such as functions defined in a `where` clause in the body of a function, the debugger works really well.

The only funny thing about it is that, since Haskell's syntax isn't organized in the "one statement per line" manner like most imperative languages, you often have to specify breakpoints not just by the line where execution should pause but by the column as well. For this, I recommend using an editor that can easily display the column number that the cursor is in.

Most of the author's other comments I can understand, even if I don't share his opinions. There is certainly a cognitive barrier to entry inherent in a lot of the language's concepts. All I can say about this is that as I've used the language more and more, these barriers seem to have melted away to the point where, simply by browsing the types of names exported by a library module, I can pretty much intuit how it works. A lot of libraries are very well-documented, and some are definitely not, but even in the latter case, the type signatures alone can go a long way to helping me understand.

I'd probably be a Scheme addict myself if Haskell hadn't convinced me of the indispensable power of strong static types. I love how elegantly simple Scheme is, and how you can construct so much from such humble beginnings. It feels like it distills functional programming down to its very essence. SICP is a beautiful thing as well. But Haskell naturally guides me to writing better, more robust, more correct code in ways that dynamic languages simply aren't capable of, and I just find myself getting frustrated when using other languages because I always end up wasting time fixing bugs that I know GHC would have caught for me up front.

Someone in the Haskell community (I can't recall who it was) has said: "I think of types as warping our gravity, so that the direction we need to travel to write correct programs becomes 'downhill'." I couldn't agree more.

Edit: I also have to state my disagreement about monads being a "wobbly crutch". While it is true that they are more or less necessary in order to introduce practical impurity into Haskell, being necessary doesn't make them a shim or a hack. Not only are they an elegant solution to many problems, but they are really quite simple to use. If people spent as much time actually writing monadic code as they do reading the zillions of silly, confusing monad tutorials, they'd quickly reach the point where they no longer see what the big fuss is about. There is nothing truly scary here; the worst part about monads is the name.

<comment><USER3> Assuming that Debug.Trace offers similar functionality as "observe" does, I have to briefly mention that this tracing might not be overly helpful, precisely because of the lacking control over evaluation order, as you write later on. I had to write a parser using both, combinatoric and monadic style, and debugging was a major turn off because I could not easily see what went wrong (though I seem to remember that using observe the ouptut was reverse to actual program flow, at least the one I have in my head.)

<comment><USER4> I usually use `trace` like so:

        f _ _ _ | trace "print something profound" False = undefined
        f normal arguments here = ...

That way the trace output will be printed whenever the function is evaluated, which typically mimics a lexical call stack unless you use laziness in some particularly interesting way.

</comment></comment></comment><comment><USER5> _As elegant and appealing as Haskell's purely functional foundation is, it prohibits simple, but crucial, impure tasks such as writing to files and communicating over networks. [...] but they make it neither intuitive nor easy._

Actually, such tasks have become much simpler thanks to the recent surge of packages such as conduit. These make typical I/O work easy, and very much resemble a UNIX pipe. You have a pure or impure source that produces data (e.g. reading a file), conduits that manipulate data, and sinks that consume data (e.g. writing data to a file, or storing it in a list).

In fact, I have started to like conduit so much, that I/O in other languages feels quite kludgy.

 _If you wish to debug a function in Haskell you can't insert a printf to inspect its inner workings unless that function happens to be on the IO monad._

Actually, you can, using Debug.Trace.trace, which takes a String and an expression. The string is first printed, then the expression is evaluated. No need to be in the IO monad:

[http://www.haskell.org/haskellwiki/Debugging#Printf_and_frie...](http://www.haskell.org/haskellwiki/Debugging#Printf_and_friends)

 _After a frustrutating hour with my Haskell version I was still struggling to understand the monadic API required to work with the XML parser and I gave up._

I had to parse some XML data and used hexpat-pickle. Once you get the hang of it, it is pretty simple. But I agree that there is a learning curve involved.

With such tasks, it usually takes longer to come up with an initial Haskell solution. But then that solution is usually very clean and elegant. If you have to write something quickly, it is not ideal, but often the things that we wrote quickly end up being used for years anyhow ;).

By the way, my experience is exactly the opposite. I wrote some code in Clojure (which I do like very much, since it manages to leverage the Java platform while staying very clean). But I noticed that my productivity dropped - lots of things that Haskell detected through static type checking I had to verify myself by hand and write tests for.

<comment><USER6> A bit off topic, but a question I've been wondering:

How do conduits differ from arrows? They seem to occupy a similar space. Is one more general than the other?

<comment><USER7> They actually occupy radically different spaces. Arrows are a generalized computational tool, along the lines of applicative functors and monads. Conduits are basically the next step from iteratees. Iteratees are essentially a functional/compositional way of dealing with I/O. Prior to iteratees, you essentially had to choose between using lazy I/O and ignoring the problems or writing C in Haskell if you needed performance and determinism. Conduits take the benefits of iteratees, simplify the coding and give you more concrete guarantees about when resources will be acquired and released.

In fact conduits/pipes/iteratees are all more useful than arrows outside academia. The only library you're likely to encounter arrows in is HXT and there are other XML libraries. You're likely to encounter one of the conduit/pipe/iteratee libraries using any Haskell web framework and probably any other system doing a lot of I/O where guarantees need to be had.

I haven't yet seen evidence that arrows are actually useful at all outside very limited circumstances. The difficulty of learning them and using them is exacerbated by the fact they have something like 11 laws you must obey to create your own arrow versus three for a monad. There's also a lot more going on in the pretty arrow syntax than in do-notation, which desugars pretty easily by comparison. It would all be justified, I suppose, if using arrows enabled crazy functionality that isn't available via simpler abstractions, but that just doesn't seem to be the case.

</comment></comment></comment><comment><USER8> > This has always been my problem with Haskell; it is beautiful, but it is > useless for hacking.

Don't confuse a lack of experience and skill with an advanced tool's (Haskell in this case) lack of practical value. It's one thing to say "Haskell takes a long time to become useful for the average person" and another to say "Haskell is useless for hacking (as in quick prototyping as I understand from your article)".

I, for one, can produce quick mock-ups and prototypes way faster in Haskell than in any other language I know; and I consider myself an advanced user of Ruby and Python. You need to, of course, absorb and internalize a large number of use cases and concepts in Haskell before you get to this point, but it is quite extraordinary once you're there. High expressiveness, modeling to fit the domain even for small, one-off tasks (thanks to algebraic data types) and many other elegant aspects all become second nature and really really fast once you're expert enough.

dons' slides come to mind as a presentation on a related topic if anyone's interested[1].

[1]: <http://donsbot.files.wordpress.com/2009/01/semicolon.pdf>

<comment><USER9> But that is I think OP's point, Haskell _forces_ you to "model", versus something like scheme or python where you can just sling dicts around.

Haskell absolutely forces you to do a non-trivial amount of thinking up front, which is counter-productive when you're trying to throw something together in 10 minutes.

<comment><USER10> You can sling dicts around in Haskell too if you want to. The reason people don't is that the alternative is easier.

<comment><USER9> But, if I remember correctly, the haskell map is typed, isn't it?

In python you can mix the types of both keys and values in a single dict freely.

<comment><USER11> You can easily define your own type that is "everything". But how useful is a dict in python with keys and values of varying types? I've certainly never used one.

<comment><USER9> It's very useful.

Use it like you'd use a bare object in Javascript, as a freeform data container to hold whatever properties you need. A bit like a key-value NoSQL store, actually.

<comment><USER11> Values, yes, but keys?

<comment><USER9> Sure, why not. I mean, I can't offhand of a time that I've really used mixed keys, but I also can't come with any compelling reason why it's a bad idea. Ad-hoc data comes up all the time.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> OP wasn't aware of Debug.Trace: [http://www.haskell.org/ghc/docs/latest/html/libraries/base/D...](http://www.haskell.org/ghc/docs/latest/html/libraries/base/Debug- Trace.html)

Otherwise, this seems pretty light on technical details -- and big on hyperbole -- "Scheme shares Haskell's unsuitability for production code" -- I'm very wary of people who make claims like that, despite all the evidence to the contrary...

<comment><USER13> how do the hundreds of KLoC of Haskell in production at a certain bank headquartered in Singapore feel about Haskell being unsuitable for production?

<comment><USER14> [http://code.haskell.org/~dons/talks/padl- keynote-2012-01-24....](http://code.haskell.org/~dons/talks/padl- keynote-2012-01-24.pdf)

</comment></comment></comment><comment><USER15> Fortunatly, repeatedly saying the same things

      "Scheme shares Haskell's unsuitability for production code"

      "it prohibits simple, but crucial, impure tasks such as writing to files and communicating over networks"

      "it is beautiful, but it is useless for hacking"

doesn't make them true. Plenty of people use successfully Haskell in production. I wonder what kind of motivation one can have to say with such emphasis a tool is useless while they simply can't use it properly.

</comment><comment><USER10> Haskell is not a language that you can expect to pick up and be writing awesome stuff by lunch time.

There's no substitute for humbling yourself and learning to program all over again. I understand that it's difficult; you think you've mastered the art of writing programs, but suddenly you're back at square one.

No language is perfect, but if you persist and stick with it long enough to become productive, you will have learnt a huge amount and that knowledge is useful in the real-world.

<comment><USER14> Haskell is very fun, and well tutorialized now (2nd half of Thompson book is very good tutorial(2nd ed, $5), there are small speed bumps:

I needed a little better glossary than book provides for "invariant", "witness", other terms folks sling around. It took me a while to figure out hoogle, and I needed to ignore blog posts about bijective vs surjective functions and category theory as a beginner. Also the ghc instance extensions are probably the most thinly documented corner:

        TypeSynonymInstances, -XUndecidableInstances, Flexible, Overlapping, etc

<comment><USER16> While we're at it, let me throw out a shoutout for _Learn You a Haskell For Great Good_. One of the best programming books I've read, Miran is excellent at explaining programming concepts.

</comment></comment></comment><comment><USER17> Lisping (written by the author of the article) purchaser here - a really interesting product.

Now, nit-picks with this article: mostly that Haskell and Scheme are not suitable for production.

I am fairly weak with Haskell. I have bought three books, read through parts of them, and played with a lot of little bits of code. My non-expert opinion based on reading people's and company's success stories with Haskell convinces me that either the language is fit for production or the people who use Haskell are great developers and can ship with anything. Probably both possibilities are true.

I do have a lot of experience with Scheme (I wrote a (not very good) Springer Verlag Scheme book in ancient times, once ported all of OPS5 from Common Lisp to Scheme in about 10 hours flat, and lots of projects...). I find Gambit Scheme great for writing small and efficient utility programs and the Racket system certainly has a lot of available libraires for getting stuff done.

</comment><comment><USER18> _If you wish to debug a function in Haskell you can't insert a printf to inspect its inner workings unless that function happens to be on the IO monad._

Sure you can.

        f x =
            let intermediate = 2*x
                intermediate2 = unsafePerformIO $ do
                                  putStrLn ("intermediate value is " ++ (show intermediate))
                                  return intermediate
            in
              (intermediate2 * intermediate2)

Output:

        intermediate value is 6
        Result is 36

It's a little uglier, since you need to make sure intermediate2 is actually evaluated. The better way to go would be:

        f x =
            let intermediate = intermediateComputation x
            in
              (intermediate*intermediate)

        intermediateComputation x = 2*x

And then you just don't expose intermediateComputation to stuff outside the module. This has the advantage that you can use quickCheck on intermediateComputation. If the value isn't what you think it is, quickCheck will tell you what it actually is.

<comment><USER19> Your unsafePerformIO version is essentially what Debug.Trace does.

</comment></comment><comment><USER20> It took me two months to really comprehend monads. Now I find them very intuitive and easy. However, they are definitely not easy to learn. It is like you are learning programming for the first time. Initially, they seem weird. Haskell requires patience. It is not a language where you can jump in and immediately see results, like jumping from C to Python. Someone who starts learning vi might be frustrated too. You need to learn ten keys before it becomes as productive as notepad.

> In Ruby or a similar object oriented language you expect to find three > APIs/gems, all with a similar object oriented syntax, but for three Haskell > DSLs designed for three different tasks to share syntax implies that their > authors failed to optimise them for those tasks, hence instead of five > minutes with API documentation you have hours of DSL tutorials ahead of you > before you can begin work.

You need to learn monads only once. I can use new monads without any trouble.

<comment><USER21> What makes it difficult to "really comprehend monads"? Why did it take two months for you to really comprehend them?

<comment><USER2> I can't speak for the poster you're replying to, but in my personal opinion, monads exist at a higher level of abstraction than most people, even experienced imperative programmers, are accustomed to. The formal definition of a monad is quite simple, but it can be challenging for a newbie to extrapolate from the literal code that defines a monad to see how and why that pattern is widely applicable to so many seemingly distinct, unrelated problem domains. Eventually, through usage, you develop an intuition for it and it seems plainly obvious. But despite the proliferation of "monad tutorials", there are no magic words that bring understanding. Newcomers want to have it explained to them without having to get their hands dirty by writing code, but the only way to really acquire an intuition for something this abstract is through experience.

The other problem I see is that monads are really hyped (over-hyped, in my opinion) as a huge stumbling block for new Haskellers, and this turns out to be something of a self-fulfilling prophecy. By the time you reach the monads chapter of whatever book you're learning from, you've already read 5000 blog posts and HN comments about how difficult and confusing monads are going to be, so you go in expecting to be confused. And this just contributes to the confusion. I think that it's much easier to learn this sort of concept if you can go into it without any preconceived notions about what to expect. But since monads are something that all Haskell users like to talk about, publicly, it's next to impossible to introduce a newbie to the concept without them having already heard about the difficulties they're about to face.

<comment><USER22> This is so true. I managed to covertly teach monads to a coworker who had never heard of monads or functional programming before, all without uttering the word monad. Luckily they were familiar with LINQ notation (which is pretty much do notation) and I used analogies such as wrapping and unwrapping. I used a custom c# maybe type as the concrete example. They were able to intuitively grasp it in a couple of days (whereas it took me about 2 months stumbling through online tutorials learning it myself).

</comment></comment></comment></comment><comment><USER23> I was once one of the people who was incorrectly told, and therefore believed simple tasks like IO in Haskell was hard. Though it couldn't be further from the truth.

        main = do handle <- openFile "filename.txt" ReadMode
                  contents <- hGetContents h
                  putStr contents

Now that simple bit opens a file, reads its entire contents, and prints it to stdout.

Look at something similar in Java:

       FileReader file = new FileReader("filename.txt")
       //Then I have to choose how to read the file in, how to
       //buffer it, ect.
       String contents = file.read(...)
       //...
       System.out.print(contents)

In my opinion the Haskell approach is much cleaner and closer to reading a file in Python or Ruby, and more intuitive then trying to figure it out in Java.

</comment><comment><USER24> If you use windows or mono is an option, F# is an alternative to Haskell. F# comprises on purity for practicality, and adds a couple of niceties of its own over the ML core. It also allows convenient OOP, but in now way forces to use it if your whole code base is F#.

And if you are using Scheme, Racket is a scheme derivative which provides a nice and extensive library.

<comment><USER25> Does F# let you debug using printf? I stopped reading the linked post at that point.

<comment><USER25> For the record, this was sarcasm. It's 2012. I really hope you guys aren't debugging using printf still.

You'd think someone into esoteric languages would've heard of a debugger.

<comment><USER26> Print/Trace statements are invaluable in several situations.

I don't trust debuggers for multi-threaded applications or applications with open, time-sensitive resources (open sockets etc..)

Installing and firing up a debugger is not an option in a customer's system.

> It's 2012

I expect to be using Printf's in 2022 and beyond.

</comment></comment></comment></comment><comment><USER27> For debugging Haskell, use trace to print things inside pure functions. [http://stackoverflow.com/questions/3546592/how-to-debug- hask...](http://stackoverflow.com/questions/3546592/how-to-debug-haskell-with- printfs)

</comment><comment><USER28> _The success of Parsec and its ilk has filled Hackage (the Haskell module repository) with hundreds of DSLs covering any task you care to mention._

This is exactly why I've grown wary of DSLs. They have their place, but in a really expressive language like Ruby or Haskell I'd often just prefer to code in the native tongue.

<comment><USER29> DSLs have a significant up-front cost. If all goes well, the cost gets amortized over many usages and you come out ahead. But it takes a while. One- offs are not worth it. This is probably true of abstractions in general and not just DSLs.

Another thing about DSLs is that you have to nail both the D and the L in order to get it right, so they are hard to make. Language design is not at all like program design.

<comment><USER30> Do you believe this about bottom-up programming in general, or is your concern specific to parsed DSLs?

<comment><USER29> Hmm, good question. I'd say it's less true of bottom-up programming because there you're generalizing code you've already written. It's possible to get that wrong, i.e. introduce abstractions that capture what was there before but don't make it easier to write the program going forward, in which case the best thing to do is rip them out and replace them with their compiled equivalents until a better idea emerges. But it's all very incremental and the cost of getting any individual construct wrong is relatively low.

Classical DSLs are harder because of the D. You have to nail the domain/language fit or it's more trouble than it's worth. Even then you don't necessarily win enough to justify the cost: a specialized language needs to be significantly better than "just coding your domain model in your general- purpose language", which is a high bar. There isn't only the cognitive cost of learning a specialized language, there's the interoperability hit (can a general program call the DSL and vice versa), lack of tool support and so on. It doesn't make sense for most domains, especially business domains that don't lend themselves to technical notation.

The thing that bottom-up programming has taught me, not that I'm in any way sophisticated at it, is that good language constructs need to be an order of magnitude more lightweight than good application constructs. Application constructs are what you pack in your car for a road trip, language constructs are what you put in your backpack for a hike. Or another metaphor: application constructs are factory equipment, language constructs are hand tools - if you have to think about how to use it, it sucks. I find it's hard mentally to go back and forth between these two design levels. I'm spending a few days at the language level right now so these things are on my mind.

</comment></comment></comment></comment><comment><USER31> I would pose a harsher criticism against Haskell then the one posed in this article. I believe that logical relations are a better foundation for declarative programming then functions. As such, even when it comes to declarative programming I'd much rather use Prolog then Haskell.

Fortunately, there are Prolog systems compatible with the JVM and most scheme environments so you can embed Prolog in Clojure and Scheme for declarative programming tasks.

</comment><comment><USER32> _It would be dishonest not to point out that despite it's utility to hackers, Scheme shares Haskell's unsuitability for production code. The difference is that Scheme is limited by its minimalistic standard library, not by a flaw in the language, and you can "upgrade" to a syntactically similar, but heavyweight, cousin such as Common Lisp, or Clojure, to get work done._

I wonder if there's something to this notion. Would it be useful to study the "standard" libraries of various languages to determine what constitutes "suitability for production code?"

Most likely, everything is relative to the particular application a shop wants to build.

</comment><comment><USER33> " was trying to express my frustration at not being able to insert a little impure code temporarily to tweak behaviour and help with debugging."

Why would you want to do that? Haskell is a functional language. You evaluate expressions, which can be done nicely in GHCI.

When I first learned Haskell, I was also trying to apply my procedural programming habits. Looking back, the pain was a sign of doing it wrong. Once I learned to look at solutions 'functionally', it turned out not to be a big deal, and the resulting code is arguably better. However, it does sometimes become painful going back to procedural languages.

<comment><USER34> One obvious reason would be if the input to your expression is relatively large or complex (e.g. a file).

<comment><USER33> That would not be obvious to me. I often have to process quite large and messy XML files and a functional approach works well. I'm not even sure how inserting print statements would be helpful.

<comment><USER34> There may be far better ways of doing it, but for a Haskell beginner (and I'm certainly one of those), being able to quickly display what each function was seeing as its input/returning as its result as it chugged through a complex file would have made life a lot easier for me when I first tried this kind of parsing in Haskell.

</comment></comment></comment></comment><comment><USER35> I used to have the same opinion about print debugging, but after a few months exclusively using pdb, I can say I'm a debugger convert.

If Haskell's debugger is good, that point is moot.

The other points still stand, of course.

</comment><comment><USER36> I love Haskell, but parsing XML with it is a huge pain. Someday I want to write a better XML parsing library, but for now I use HXT. I wrote a blog post a while back that shows some sample usage: [http://adit.io/posts/2012-03-10-building_a_concurrent_web_sc...](http://adit.io/posts/2012-03-10-building_a_concurrent_web_scraper_with_haskell.html).

<comment><USER33> I use hexpat and it works nicely. I wasn't able to get very far with either haxml or hxt before having grief.

<comment><USER36> I use HXT to parse HTML. AFAICT, Hexpat doesn't do much besides parse the XML file into a tree. It doesn't have the niceties that Nokogiri or BeautifulSoup do. For example, I can use Nokogiri to get all the links on a page like so: page.css("a").

HXT allows me to come close to this:

tree >>> getXPathTreesInDoc "//a"

But I haven't seen a single Haskell XML parsing library that is as nice as Nokogiri.

<comment><USER33> In my work, I read in XML, parse its elements, attributes, and data, producing new XML. Along with Parsec, Hexpat is well-suited to the task.

I haven't had to parse HTML in Haskell. I use BeautifulSoup for that. I wouldn't be surprised if the Haskell libraries aren't as useful for that kind of thing.

<comment><USER36> I wrote up a guide to working with HTML in HXT: [http://adit.io/posts/2012-04-14-working_with_HTML_in_haskell...](http://adit.io/posts/2012-04-14-working_with_HTML_in_haskell.html)

You might find it handy if you decide to give HXT another go :)

</comment></comment></comment></comment></comment><comment><USER37> That bank headquartered in Singapore uses something different from Haskell. It is almost Haskell in most aspects... but uses strict evaluation.

</comment><comment><USER38> A little typo, I think you mean Backus-Naur form?

</comment><comment><USER39> He seems to prefer ruby.</comment>