The Equifax Hack Has the Hallmarks of State-Sponsored Attack - <AUTHOR> https://www.bloomberg.com/news/features/2017-09-29/the-equifax-hack-has-all-the-hallmarks-of-state-sponsored-pros <comment><USER4> I guess a "State-Sponsored Attack" sounds better than "we got pwned with a bug that was known since March that we didn't patch and could have been exploited by a guy in a basement" [[https://qz.com/1073221/the-hackers-who-broke-into- equifax-ex...](https://qz.com/1073221/the-hackers-who-broke-into-equifax- exploited-a-nine-year-old-security-flaw/)]

<comment><USER5> I hate this grubby finger-pointing to a state actor. Sadly, the majority of non tech readers will take is as given.

<comment><USER6> Considering everything we now know about Russia's attempts to influence our elections and sew division, is it really unreasonable to think they might try to throw a wrench into our credit system?

<comment><USER7> Did not they just buy ads on Facebook instead of hacking it?

<comment><USER8> They also attempted hacking (according to the intelligence services) 21 state's election systems, with varying degrees of success.

Pretty sure that qualifies as 'unauthorized access'.

<comment><USER9> The _Washington Post_ basically exposed this as "Fake News".

[https://www.washingtonpost.com/news/the- fix/wp/2017/09/23/wh...](https://www.washingtonpost.com/news/the- fix/wp/2017/09/23/what-we-know-about-the-21-states-targeted-by-russian- hackers/)

And in case you're interested, here it is from a more _colorful_ source;

[https://theintercept.com/2017/09/28/yet-another-major- russia...](https://theintercept.com/2017/09/28/yet-another-major-russia-story- falls-apart-is-skepticism-permissible-yet/)

</comment></comment></comment></comment></comment></comment><comment><USER10> And Equifax linking to a fake phishing site by mistake, was that also "state sponsored"? Give me a break...

The Equifax hack has the hallmarks of Equifax's complete incompetence when it comes to security, and that is all.

<comment><USER11> My version of Hanlon's Razor:

Be cautious when declaring an event as being born from malice, when the event is adequately explained by incompetence.

<comment><USER12> My version is: Never attribute to malice what could be attributed to profit motive.

<comment><USER13> Profit at the expense of anything else IS malice

</comment></comment></comment></comment><comment><USER14> Ah yes, the super-spy excuse. That worked well before, why not go for it again.

It basically boils down to "Don't blame us, we are up against the super- sophisticated Chinese / KGB / aliens etc". It's a way to deflect blame.

> . In a speech at the University of Georgia last month, he [now ex-CEO] > described a stagnating credit reporting agency with a "culture of tenure" > and "average talent."

When the CEO talks publicly about average talent, you can be sure the real talent is well below average.

<comment><USER15> > > . In a speech at the University of Georgia last month, he [now ex-CEO] > described a stagnating credit reporting agency with a "culture of tenure" > and "average talent."

That was his description of the organization he inherited, in 2005. It was not his opinion of the organization as it stands now.

<comment><USER16> Right, clearly there's been a vast improvement under his tenure! /s

</comment></comment></comment><comment><USER17> Perhaps, but I'm not convinced that nation state resources were needed.

A different Equifax site had an admin account with the password..."admin"

[https://www.cnbc.com/2017/09/14/equifax-used-admin-for- the-l...](https://www.cnbc.com/2017/09/14/equifax-used-admin-for-the-login- and-password-of-a-non-us-database.html)

<comment><USER18> Even if nation state resources weren't _needed_ that doesn't necessarily take away from the fact that it [may] have the hallmarks of a nation state attack.

I only scanned TFA but it didn't' seem to say "Wow, this was a sophisticated attack only a country could pull off," but more of "the [scant] evidence so far seems to point to..."

<comment><USER15> No, it goes into considerable detail about the nature of the attack, how it changed once it was passed off from an "entry team" to a more advanced group of hackers, and the level of sophistication.

<comment><USER18> Right, but maybe I wasn't clear, by "pulling this hack off," I meant the _initial_ intrusion, not what happened next.

<comment><USER15> Again, the article mentions that the initial group struggled to get any sort of foothold after the initial intrusion...it wasn't until the "advanced" team took over that the _real_ breach began: bypassing firewalls, installing back doors and web shells, etc.

</comment></comment></comment></comment></comment><comment><USER19> Claiming victimization by a "state-sponsored" actor has now become the "go to" tool in public relations crisis management of data breaches.

Rather than admit their own complete failure and negligence these companies are now seeking to portray themselves as victims along with the people they have permanently put at risk and profited from in the process. It's disgusting.

If you leave your car unlocked with the keys in the ignition and someone steals the car, you are not a victim you are an idiot.

<comment><USER20> "If you leave your car unlocked with the keys in the ignition and someone steals the car, you are not a victim you are an idiot."

Well, no. You are both a victim and an idiot. These things are not mutually exclusive.

</comment></comment><comment><USER21> The Equifax Hack Has the Hallmarks of... complete incompetence that may, on this occasion, have been exploited by a state-sponsored actor.

Who knows what other actors could have exploited it instead or as well?

In any case the incompetence was the root cause and I wouldn't trust Equifax to speak my weight.

</comment><comment><USER22> > Mandiant, the security consulting firm hired by Equifax to investigate the > breach, said in a report distributed to Equifax clients on Sept. 19 that it > didn't have enough data to identify either the attackers or their country of > origin.

Isn't it possible that with the incredible bounty of state-power hacking tools floating around the web that it's just a criminal organization? Or are we trying to paint a cold-cyber-war narrative to put Equifax in a sympathetic light?

</comment><comment><USER23> Horseshit. Don't blame your systemic incompetence on a state actor. A five year old could get in.

<comment><USER6> The fact that the hack was simple due to incompetence, and the possibility of it being state sponsored are not mutually exclusive.

<comment><USER24> True. If that's the case, one could make the argument that they let both our country, and their customers down.

</comment></comment></comment><comment><USER25> I have to say at first I felt the same way most of the other commenters did: Claiming this was a state-sponsored attack is a convenient scapegoat.

I'm still skeptical, but I wouldn't dismiss it outright.

I think in the next 6-12 months, if a wholesale PII marketplace doesn't appear, the odds of a state-sponsored attack go up dramatically. The economics of wholesale fraud are such that you make money selling to other fraudsters, not trying to exploit the information yourself (setting up new accounts, taking over existing accounts, etc..).

For what it's worth, even if this attack was executed by actors unaffiliated with the government, this information WILL make it's way to intelligence organization(s) in their home country. Unlike in the US, foreign and domestic intelligence services maintain a much closer relationship with the hackers in their home country.

<comment><USER26> It's a good test, though the exploit was so egregious I really doubt it was one person or group who took advanatage of it.

If the data never sees the light of day in the shadier parts of our internet then their narrative is more belieavable.

</comment></comment><comment><USER27> > muh russian hackers

This nonsense is really getting old

<comment><USER28> Get used to it. Cyberwarfare is only going to increase.

And there's little doubt Russia interfered with the USA's election. To what degree is being investigated.

<comment><USER29> Because as we all know, the US is special and gets to fuck with everybody else's elections (up to and including the violent overthrow of a democratically elected government and state executed assassination), but do it to them and suddenly it's a warlike act.

<comment><USER28> > Because as we all know, the US is special and gets to fuck with everybody > else's elections (up to and including the violent overthrow of a > democratically elected government and state executed assassination), but do > it to them and suddenly it's a warlike act.

I have no idea of your political inclinations, but generally I find it odd that the right is overall giving a pass to Russia with this. Deflecting as you are doing, and not answering the issue at hand.

Russia, formerly via Communism, was all but our enemy shortly after WW2. They are still an adversary. So, we decided it was in our best interest to fuck with them, and many other countries because we were "the good guys". Yes, this got convoluted and contrived, and completely futile -- especially w.r.t. Vietnam, the Bay of Pigs, Panama, and many others I imagine.

But even considering all that, it still doesn't justify Russia interfering with our election. Surprising? No.

But why are so many on the right giving Russia a free-pass? It all seems to be the same motivation that kept us in Vietnam for years after it was known to be a waste: To avoid admitting you were wrong; to try and save face.

<comment><USER29> I don't think they should get a free pass, so good job on your assumptions there, kiddo.

I'm more taking issue with people that are shocked, just shocked that other counties would treat the US the way that the US treats other countries. It's childish and amusing. The power of American Exceptionalism, what can you do?

<comment><USER28> > I don't think they should get a free pass, so good job on your assumptions > there, kiddo.

The first sentence of my reply explicitly stated that I was not talking about you, just that you are doing the same thing the right is doing to deflect. Remember, this was your original low effort post:

>> muh russian hackers >This nonsense is really getting old

So to claim now that:

> I'm more taking issue with people that are shocked, just shocked that other > counties would treat the US the way that the US treats other countries.

Is what you are taking issue with appears to be disingenuous. You implied all this Russia hacking stuff was nonsense.

</comment></comment></comment></comment></comment></comment><comment><USER30> "The business generates a gross margin of about 90%."

Well, I can see why they would have to cut costs associated with employing customer service representatives to handle requests for copies of credit reports from consumers.

Faced with such financial pressures, they probably had no choice but to make private consumer data accessible via public internet and use a "web app" in order to scale back their costly customer service headcount.

This has all the hallmarks of sound business judgment.

</comment><comment><USER31> > Groups known to exploit web shells most effectively include teams with links > to Chinese intelligence, including one nicknamed Shell Crew.

That's just silly. It is very common when exploiting web apps to utilize a web shell to persist your access and then to work from that to implement better and more permanent access.

Web shells are easy to find and they make a lot of noise (POSTs in the web logs). They are very easy to spot in any org that has their web/app roots under version control, so advanced adversaries will use them temporarily - <USER2> install 30 of them

> One of the tools used by the hackers—China Chopper—has a Chinese-language > interface, but is also in use outside China, people familiar with the > malware said.

China Chopper is an old web shell[0]. It works by having a very thin server component that simply runs an eval of a POST variable. Most of the intelligence is in the thick client (read about it at the links below - <USER3> pretty cool but by no means advanced).

While it was developed in China - the interface is in English[1]. There isn't even much of an interface, as it will reconstruct the server file explorer, shell, db connection etc.

You can't identify China Chopper from just the server component, since it is a simple:

        <% Runtime.getRuntime().exec(request.getParameter("password"))

Most decent scanners will have a signature for "exec("[1]

This is what I still don't understand about the Equifax hack. They had an entire infosec team, ran a SOC, had all sorts of high-end product installed (including complete traffic logs) yet someone could exfil 10GB+ of data using a known web app exploit and simple web shell.

There is more to this story, and it will be told in what happen once the attackers penetrated the first web server and how they were able to pull of the lateral moves to get to the credit database. I sense there is going to be some horrible security practice and hygiene on the internal network that allowed this to happen (think broad permissions, full database access, no db query monitoring, no encryption internally, etc.).

[0] [https://www.fireeye.com/blog/threat- research/2013/08/breakin...](https://www.fireeye.com/blog/threat- research/2013/08/breaking-down-the-china-chopper-web-shell-part-i.html)

[1] [http://informationonsecurity.blogspot.com.au/2012/11/china-c...](http://informationonsecurity.blogspot.com.au/2012/11/china- chopper-webshell.html)

[2] [https://www.tenable.com/pvs-plugins/9488](https://www.tenable.com/pvs- plugins/9488)

</comment><comment><USER32> So then it follows that Equifax and similar agencies are structural weak points in our banking system and dismantling them asap is vital to national security.

Too big to flail.

</comment><comment><USER33> Not that I agree or disagree with the attack being state sponsored, but what other way to find people potentially ripe for being turned into spies than those with crushing debt, or other publicly available judgements against them?

Money is a great motivator, especially when you can use one database to find those in most desperate need of it who are also working for companies ripe for exploitation.

</comment><comment><USER34> It was terrible security, implemented poorly.

It doesn't matter if it was as state or not, it should have been so comprehensive, or easy.

The basic design of where the data was placed, and how easy it was to traverse the network, combined with a stunning lack of monitoring means that it could have almost have been a script kiddie who did this.

_almost_

</comment><comment><USER35> "Never attribute to malice that which can be adequately explained by stupidity, but don't rule out malice." \- 'Hanlon's Razor' (possibly Heinlein's Razor), by Robert Heinlein and others

</comment><comment><USER36> And I suppose the Chief Security Officer at the time, who held a degree in music an had no relevant experience in technology or security, was a state- appointed spy, too? Surely the Russians pulled a lot of strings to get her into that position. There is no other possible explanation.

[http://www.marketwatch.com/story/equifax-ceo-hired-a- music-m...](http://www.marketwatch.com/story/equifax-ceo-hired-a-music-major- as-the-companys-chief-security-officer-2017-09-15)

<comment><USER15> > had no relevant experience in technology or security

This has been thoroughly debunked. She had extensive industry experience in a series of increasingly important security and compliance roles going back at least 15 years. Furthermore, the Bloomberg article even paints her in a positive light as someone trying to do the right thing against corporate opposition.

<comment><USER36> I didn't know that'd been debunked. They should correct the article if that's true.

</comment></comment></comment><comment><USER37> Nice national security cover to preempt lawsuits. Can't be sued if Uncle Sam failed to protect you. Or can you still be sued?

</comment><comment><USER38> Sure, it's possible it was a state-sponsored attack, but that mostly doesn't matter. What matters is that this system should have never been set up in the first place. There's no reason that we need to consolidate this data into one big target, and then put that target into an easily breachable safe.

</comment><comment><USER39> I'm surprised how many readers reject the premise outright. I thought the part 'this wasn't a credit card play, this wasn't a get info on every American play' was somewhat compelling. plus the part about looking into a handful of people with high security value?

</comment><comment><USER40> Well, if Hilary can use this excuse...

</comment><comment><USER41> "remember the credit agency" doesn't have much of a ring to it, though.

</comment><comment><USER42> Why is the news spouting this BS? I assume a state-sponsored attack makes for more readers. Sigh.

<comment><USER43> Could be native advertising?

</comment></comment><comment><USER44> TL;DR:

All in all it revolves around:

>... some investigators inside Equifax to suspect a nation-state was behind the hack. Many of the tools used were Chinese, and these people say the Equifax breach _has the hallmarks of similar intrusions_ ...

The following sentence:

>Others involved in the investigation aren't so sure, saying the evidence is inconclusive at best or points in other directions.

is the exact opposite.

And the one following is even worse:

>One person briefed on the probe being conducted by the Federal Bureau of Investigation and U.S. intelligence agencies said that there is evidence that a nation-state may have played a role, but that it doesn't point to China. The person declined to name the country involved because the details are classified.

So with the investigation still not concluded there is a small number (not quantified) of people saying it was a Nation-State AND Chinese, another small group (also not quantified) saying that it was NOT a Nation-State (and thus NOT Chinese) and ONE single person stating that State-Sponsored intelligence "may have played a role" BUT NOT Chinese.

All the rest ia about how good are (or were) the people at Equifax and how hard they tried to make this not happen, but of course you can do nothing if you are the target of a Nation-State intelligence, particularly if Chinese.

<comment><USER25> > Many of the tools used were Chinese

The web shell identified, China Chopper, actually has an English UI (not Chinese as the article claims). The only relationship to China is that it was originally compiled by a user that regularly visits the Google HK domain.

</comment></comment><comment><USER45> Hope I don't forget about this case, when I need to argue about maintenance costs, security upgrades etc, also that's why I like Go so much, you don't need or supposed to use a full fledged framework, at most a router with no dependences and lightweight, but best if nothing.

<comment> nv-vn What does Go have to do with Equifax?</comment></comment>


Ask HN: How to reach the "IT guy"? - <AUTHOR>

Hi!
I'm about to launch a new website+Android app to help companies to manage their fleet of Android smartphones (it's maybe a little bit ahead of the current needs, but I beleive that the continuous consumerisation of IT will leave companies no choices). I also have others B2B projects that targets IT.
I'm curious if you have any idea on how to market these kind of websites, how to "reach the IT guy".
Twitter, HN, specialized subreddits, AdWords : Check
Any idea ?
Thanks. <comment><USER2> _Twitter, HN, specialized subreddits, AdWords : Check

Any idea ?_

It's funny you mention everything but the most powerful one, LinkedIn. Research your company, check your network, find links to the IT guy at the company and then use those links to get an audience with the IT guy. If you do not have a network connection, find a common group that they belong to and participate in the group. Make sure you have a common interest in the group or you will come off as an unauthentic sales person, because well you will be an unauthentic sales person. Participate in something that your are authentic about will give you a common ground to build a connection with the person on. Then and only then can you establish a connection. Please not this strategy only works with high ticket value items, if your product is low cost the effort will not pay off.

<comment><AUTHOR> Networking thru LinkedIn ? How could I forget!

Thanks :)

<comment><USER2> Not a problem, don't forget about Facebook too.

</comment></comment></comment><comment><USER3> Why do you want to reach the IT Guy? He doesn't make any buying decisions.

You're looking for the CTO, or even better the CFO if you can show a cost savings. Efficiency combined with cost savings are the best way to sell a product in B2B.

For smaller companies, you still don't want the IT guy, you want the president.

As to your question - since you are selling a technical product to a non- technical crowd, you're looking at business journals, specific industry websites, etc. You'll need to do your homework here to make it effective.

<comment><AUTHOR> I should have specified that the solution is in the $19-$499/month, so it mainly targets the small to medium companies (where I beleive the IT guy can still propose solutions). Big corporations will buy a licence from the non- Saas companies and install it in their datacenters.

But I'll think of a strategy to target the CTO/CFO/president, which is not a "scalable strategy" but it could pay for itself (more $$$/month).

Thanks for your input.</comment></comment>


Please rate my project finderous - <AUTHOR>

Hello, I have made a location based short QnA website called finderous (http://www.findero.us). I would appreciate if you folks could review it and pass on some feedback and comments. Thanks. <comment><USER2> Cool idea. Here are a few ideas:

1\. I second what eykanal said. That wide button looks kind of weird and I didn't see it right away.

2\. I would rewrite the text for the Ask, Reply, and Follow sections from the perspective of a power user. Imagine that you are simply a user of the site, you love it, and you are giving your friend an elevator pitch of why they should use it, too. As it is, you are just explaining the actual functions of the service, but you are not conveying the value proposition. After reading each little section, a prospective user should think "Oh, nice, that solves a problem that I have." To add another layer to this, be compelling and tell a story. You could even use a use-case example. For instance:

\- Ask people which food truck is best in Midtown, NYC \- Let people know about that amazing slice of pizza in Brooklyn \- Keep track of activity in the East Village

3\. The stream seems really wide. Maybe you can have two columns: one for questions and one for answers. Then they would be thinner, easier on the eyes, and it would showcase what your service does a little better.

Hope this helps!

<comment><AUTHOR> Great tips. I will work on them to implement as you suggested. About the stream, I think I will put some images related to the question areas or may be some additional info on each question. I need to learn to be good at story telling. I have tried so many times, but this is all I could come up with. May be I should sit with my friends to come up with a good and a compelling story. Thanks for the great advice.

</comment></comment><comment><USER3> First feedback - redesign the front page to make the "sign up/sign in" form much more prominent. See tumblr's front page (<http://www.tumblr.com/>) for a good example of how to do this; I'm sure there are other very good examples.

<comment><AUTHOR> Thanks for the feedback. We are testing different home page designs that would give prominence to the sign up page.</comment></comment>


People with depression use language differently – here's how to spot it - <AUTHOR> https://stg.bigthink.com/the-conversation/people-with-depression-use-language-differently-nil-heres-how-to-spot-it <comment><AUTHOR> Interesting analysis using online forums as a data source to determine that certain words are used more frequently by people exhibiting depression.

Here's a link to the full paper: [http://journals.sagepub.com/doi/full/10.1177/216770261774707...](http://journals.sagepub.com/doi/full/10.1177/2167702617747074)</comment>


Show HN: Compete Hub – discover, share and manage your triathlon race schedule - <AUTHOR> https://www.competehub.com/

<comment><USER2> Really cool. I'm training for my first triathlon now (NYC Tri with Team in Training), and I'm hoping to do many more Olympic-distance Tris thereafter.

Honestly, I've been wanting better training apps (and a good online training community) more than anything. Garmin Connect, for example, has great potential but isn't social enough / doesn't help you discover much beyond your own stats. Obviously that's a harder nut to crack for a relatively small market.

Maybe someday I'll be ready to find more races, though. Nice job!

<comment><AUTHOR> Have you checked out Strava for the training stuff? They're getting more and more triathletes on there.

</comment></comment><comment><USER3> Well design site. Maybe I'll get off my lazy butt and do a triathlon... or not.

How do people keep sites like this up-to-date when there are so many repositories of information and/or small players that are not standardized? Do they have go event by event or store by store? Is there a better way?

<comment><AUTHOR> Let's get you on that bike soon!

re: updating - Good question. Lanyrd did this really well with professional events and Yelp did it with restaurants. It's a unique combination of crowd- sourcing, manual work, and incentivizing the organizers of the events.

</comment></comment><comment><USER4> My girlfriend is a triathlete. She'll love the crap out of this. I'm just a runner, so it's not really my cup of tea. I'll get her to sign up tonight and try and submit some feedback.

<comment><AUTHOR> Don't worry, running events coming VERY soon :) Feel free to sign up if you haven't already and we'll notify you when it gets added.

</comment></comment><comment><AUTHOR> Founder here, looking for feedback!

<comment><USER5> Nice looking site! Just some things I noticed:

-when I search, it's not automatically filtered by date

-when I search "woodlands" I get 0 results but when I search "the woodlands" I get 85, none of which are [http://www.ironman.com/triathlon/events/americas/ironman/tex...](http://www.ironman.com/triathlon/events/americas/ironman/texas.aspx#axzz31iuXmGSF)

-I have no idea what SPR, OLY, and CUS are and when I mouse over them it doesn't tell me anything

But, I'll definitely show this to my more active friends; nicely done!

<comment><AUTHOR> Sweet, thanks for the feedback. CTO is constantly tweaking the search so we can make it as "free form" as possible. We're trying to get away from "filter drop down" hell

<comment><USER4> Check out Elasticsearch as a search index. It does a pretty good job of full text searches, and it's free. I use it for a lot of my projects, and I think it's one of the better ones out there. Let me know if I can help! Good luck!

<comment><AUTHOR> Yup, we use ES and love it! Thanks for the offering, I'll let philipDS know if he hits any stumbling blocks to get in touch.</comment></comment></comment></comment></comment>


What Did the U.S. Get for $2T in Afghanistan? - <AUTHOR> https://www.nytimes.com/interactive/2019/12/09/world/middleeast/afghanistan-war-cost.html <comment><USER2> > $30 billion on other reconstruction programs > Much of that money was lost > to corruption and failed projects.

Back in HS we had a local veteran/father come in to our classroom to talk about things. What stuck with me the most was his experience with distributing aid funds to Afghan citizens. Apparently there was 0 accountability in this process: he would pick up a package of raw cash, take it to a school/hospital/whatever, hand it to some "in charge" person, and walk away. No contract, progress report requirement, or anything. Further, the recipient didn't even need to sign for the money, because of this he felt concerned that US Govt. might some day come after him on suspect of money mishandling, so he took pictures of him handing the money over to each person. He showed us the photos, but says the Govt. has never requested them, or any other confirmation that he didn't just pocket it all.

<comment><USER3> The disparity between that and the government correcting me for being off on my tax by $500 is breathtaking.

Obvious question - _cui bono?_

<comment><USER4> If the government is correcting an error for $500 on your taxes, its almost certainly doing that using an automated system with very little human-time- per-case for oversight. This is possible because of developed-world infrastructure -- all relevant numbers are digitized and entered into computers, all people are documented and contactable, etc. -- which is missing in Afghanistan, so it's not super surprising.

Edit: Woah, HN, you have truly gone crazy. My comment is an explanation for why accountability is so much harder in Afghanistan than the developed world. It is not a general defense all US tax-collection procedures, and it is _especially_ not a place for you to vent frustration about how the lack of pre-filled-out returns in the US benefits tax software makers.

<comment><USER5> If they have the software why not just send me a rundown of how much I owe and I could just sign over to them how much they want.

Arghhh this frustrates me every tax season.

<comment><USER6> Because Intuit wouldn't make money if that happened.

[https://www.propublica.org/article/inside- turbotax-20-year-f...](https://www.propublica.org/article/inside- turbotax-20-year-fight-to-stop-americans-from-filing-their-taxes-for-free)

[https://priceonomics.com/the-stanford-professor-who- fought-t...](https://priceonomics.com/the-stanford-professor-who-fought-the- tax-lobby/) (and lost)

</comment></comment></comment></comment></comment><comment><USER7> I see astronomical figures like $2T and I wonder how anyone can seriously entertain the argument that the US cannot afford free health care for all of its citizens.

<comment><USER8> That's over twenty years. So $100B/year. There are 0.3B of us. So that's $3000 per person per year. That's about what my employer pays for a BCBS elite HD- HSA PPO for my group of relatively young, affluent, healthy tech workers in Boston.

It doesn't come close to covering all of it.

There are 3M nurses and 1M doctors in the US. That $100B/yr could pay each $25k in salary, and cover no equipment.

Let's say we want to pay nurses $150k and doctors $250k, good middle class salaries comparable to tech incomes. You need $700B per year.

That's not impossible to find at [https://www.usgovernmentspending.com/US_fed_spending_pie_cha...](https://www.usgovernmentspending.com/US_fed_spending_pie_chart), and I think we should—but it's not obvious how to do so or what to sacrifice.

<comment><USER9> The US pays more per citizen for healthcare than any civilized country in the world, and gets poorer outcomes.

There is a LOT of room for lowering your costs and improving your outcomes when you're ready to redesign it. But yeah, if you just try to duct tape over a crack here, and bolt a new feature on there, nothing seems to work.

</comment></comment></comment><comment><USER10> "The final total is unknown, but experts project another trillion dollars in costs over the next 40 years as wounded and disabled veterans age and need more services."

Add to this the unquantifiable lost opportunity from dead civilians, dead soldiers...

<comment><USER11> Actuarially speaking, the 2,372 American deaths in Afghanistan at 7 million per individual roughly cost about $17 billion dollars. A drop in the bucket compared to $3 trillion dollars.

It's hard to see dollar figures and realize we are watching the productive lives of half a million people being spent so easily. Then again, we don't know the economic benefits we gained from the Afghanistan war so it's hard to balance the sheet.

Maybe it netted us some benefit with regards to world trade we aren't seeing? Or maybe it only hurt us in that regard and $3 trillion is just the beginning?

Then again this is just economics without considering the ethics of such "peacekeeping missions".

<comment><USER12> What about the non-American deaths?

<comment><USER5> As long as the US does not pay monetarily for non-American deaths, as cruel as it sounds they are not relevant to the US's budget.

<comment><USER11> In my opinion, the US does more to prevent civilian deaths than any other superpower. The evidence is in the fact that an insurgency, using civilians as cover for their operations, and engaging in covert warfare are being routinely defeated by American forces. Of the people killed, only about 3.8% are non- combatants. I don't know how accurate that reporting is, but if true that is amazing. To compare, World War II saw something closer to a ratio of 2:1 civilian to soldier deaths.

[1] [https://watson.brown.edu/costsofwar/costs/human/civilians/af...](https://watson.brown.edu/costsofwar/costs/human/civilians/afghan)

</comment></comment></comment></comment></comment><comment><USER13> "In the councils of government, we must guard against the acquisition of unwarranted influence, whether sought or unsought, by the military-industrial complex. The potential for the disastrous rise of misplaced power exists and will persist."

-Dwight Eisenhower farewell address

I assume we got $2 trillion transferred to Halliburton and associated war companies.

<comment><USER12> This is exactly right.

War in the United States exists now largely as a money laundering scheme to transfer taxpayer dollars to military contractors.

<comment><USER14> There's a long history of making war in the middle east for profit. See: the crusades.

</comment></comment></comment><comment><USER15> Quite likely, the US got a few billionaires that are now a bit richer at the taxpayers' expense.

US General Smedley Butler explained it in simple terms in "War is a Racket" [1]:

"War is a racket. It always has been. It is possibly the oldest, easily the most profitable, surely the most vicious. It is the only one international in scope. It is the only one in which the profits are reckoned in dollars and the losses in lives.

A racket is best described, I believe, as something that is not what it seems to the majority of people. Only a small "inside" group knows what it is about. It is conducted for the benefit of the very few, at the expense of the very many. Out of war a few people make huge fortunes.

In the World War a mere handful garnered the profits of the conflict. At least 21,000 new millionaires and billionaires were made in the United States during the World War. That many admitted their huge blood gains in their income tax returns. How many other war millionaires falsified their income tax returns no one knows.

How many of these war millionaires shouldered a rifle? How many of them dug a trench? How many of them knew what it meant to go hungry in a rat-infested dugout? How many of them spent sleepless, frightened nights, ducking shells and shrapnel and machine gun bullets? How many of them parried the bayonet thrust of an enemy? How many of them were wounded or killed in battle? "

[1] [https://gutenberg.ca/ebooks/butlersd- warisaracket/butlersd-w...](https://gutenberg.ca/ebooks/butlersd- warisaracket/butlersd-warisaracket-00-h.html)

<comment><USER16> Totally agree. And he's talking about WWII, a war the US was actually attacked in and defended itself, not a war purely for profit like Afghanistan. So knowing this, and you don't need to be a genius to understand his argument, why are we still honoring and thanking people for their "service," when their service is just to get a few people rich? Maybe we ought to consider that without the millions who are willing to fight and die to make a few people rich are part of the problem themselves, useful idiots. And maybe we need to respond to their actions in a more genuine way: with contempt and disdain. After all, all of our armed forces are volunteer based so no one is conscripted to kill for profit. The simply choose to. For their own little profit (free tuition, salary, pension, etc.) and for the profit of their billionaire masters. It's about time we stop glorifying war and the people that participate in it voluntarily.

</comment></comment><comment> at-fates-hands in a nutshell. .

\- We went after the Taliban and failed to extinguish its power and reach.

\- We attempted to equip and train afghan forces to defend and maintain peace in their own country and failed. I have several family members who have done numerous tours in the Middle East and they've referred to the Afghan "trainees" as "clowns" who don't care at all about what they've been tasked with doing. All they care about is getting a few extra dollars to give to their family.

\- We spent a ton of money of economic development but most of it was siphoned off because of corruption.

\- We spent a ton of money of additional reconstruction programs but most of that money was wasted because of poor planning and corruption.

\- And we spent a few trillions taking care of the vets who fought in the war. Not sure why this on the list, since you would think we should take care of our veterans regardless of what conflict they fought in.

Despite all this money. . .

 _Still, life has improved, particularly in the country's cities, where opportunities for education have grown. Many more girls are now in school. And democratic institutions have been built — although they are shaky at best._

To conclude, it would seem the Afghan people are just fine living under an oppressive regime in the Taliban, delight in taking the US money and siphon it off to their tribal leaders or families who are in positions of power and have no desire to be free or to even fight for their own freedom. The middle east has become a bottomless money pit and its time we get out and let these people fight their own wars and secure their own freedom on their own.

<comment><USER17> >\- And we spent a few trillions taking care of the vets who fought in the war. Not sure why this on the list, since you would think we should take care of our veterans regardless of what conflict they fought in.

No, not exactly: in an alternate timeline where we never invaded Afghanistan, the actual costs of taking care of vets would be much, much lower. We wouldn't have had nearly as many vets in the first place (recruiting goes way up when there's a conflict), plus the actual costs to take care of them go way up with a conflict because of all the damage they suffer (injuries, PTSD, etc.). Sure, we should take care of our vets, but the cost to do this is a small fraction when there was active conflict. The costs of taking care of our vets who served in the 1980s, for instance, is probably relatively puny, and the costs for taking care of our vets who served in the late 1990s is probably next to nothing.

<comment> at-fates-hands >> taking care of our vets who served in the late 1990s is probably next to nothing.

No, not really. Have you forgotten about the Gulf War Illness?

 _In the 25 years since Desert Storm, about 250,000 of the almost 700,000 involved in the Gulf War 1 theater have suffered from some version of the complex of symptoms now called Gulf War Illness. This illness was discussed in a recent symposium co-hosted by the Brookings Institution and Georgetown University Medical Center._

 _While Desert Storm battle casualties were light, military personnel were exposed to various chemical and biological agents. These included Pyridostigmine Bromide, to prevent the effects of nerve gases which had been used previously by Iraq; organophosphate pesticides (such as DEET) which were embedded in clothing; particulate airborne matter from oil fires; and, possibly sarin exposure from a plume arising from an Iraqi munitions depot at Khamasiyah._

[https://www.healthaffairs.org/do/10.1377/hblog20160804.05603...](https://www.healthaffairs.org/do/10.1377/hblog20160804.056038/full/)

There's also new studies claiming Gulf War vets are aging faster as well:

 _"Gulf War veterans are showing accelerated aging patterns resulting in more and earlier chronic medical conditions than the general population of civilians," says study senior author Kimberly Sullivan, research assistant professor of environmental health. "There is precedent for this type of toxicant-induced disorder in veterans from other wars. For instance, many Vietnam veterans developed chronic conditions of high blood pressure, diabetes, and many types of cancers that were related to exposure to Agent Orange."_

[https://www.bu.edu/sph/2019/03/18/gulf-war-veterans-aging- fa...](https://www.bu.edu/sph/2019/03/18/gulf-war-veterans-aging-faster/)

<comment><USER17> >No, not really. Have you forgotten about the Gulf War Illness?

No, I didn't forget, but I disagree that it cost much to deal with. As I remember, the VA just completely ignored it, so it probably didn't cost the taxpayer much at all. Sure, it was terrible for the vets who suffered with it, but that's a different matter.

</comment></comment></comment></comment><comment><USER18> It's not like the fedgov _spent_ that entire $2 trillion _over there_. Most of that got spent into the military-industrial complex, right here at home.

The US got a jobs program for veterans, and a graft trough for the politically well-connected, operating "Beltway Baron" companies in the DC Metro, and the cities just outside of all military bases in the continental US.

If it wasn't justified by suppressing support for terrorism in Afghanistan, it would have been justified by quashing drug smuggling by rebel factions in South America, or by protecting naval shipping routes near the Philippines, or some other pretext to keep pumping the tax money to the same old people.

Not accomplishing the mission as publicly stated is a feature, not a bug, because it obviates the necessity to create some new problem that needs to be fixed with military force.

</comment><comment><USER19> Cheaper heroin

</comment><comment><USER20> I don't know what the United States got there but I can tell you I got post- traumatic stress disorder in Afghanistan. Throwing money at the problem was one of the worst things we can do I remember this one time a local Town had just been bought new fire trucks courtesy of the United States government local Taliban stole the trucks filled them with liquid propane and then blew up half our base.

</comment><comment><USER21> What the U.S. got was a bad reputation and war profiteers got most of the $2T. Nowadays war is just another neoliberal business scheme

</comment><comment><USER22> Something that we did get was better positioning to launch intelligence operations in Iran. Afghanistan and Iran share a considerable border. It would presume that if the United States felt Iran was a threat, building some type of forward intelligence operation Afghanistan might be beneficial.

<comment><USER23> Iran is as much of a threat as Iraq and Afghanistan were

<comment> at-fates-hands The problem is we want the Iranian people to stand up to the Mullahs, but if we press too much, they are a very, very nationalist people and will side with the Mulahs when push comes to shove for them.

It's a balancing act on a razor's edge.

<comment><USER24> > we want the Iranian people to stand up to the Mullahs

How are you defining "we" here?

<comment> at-fates-hands the US government, the people who are nervous about Iran obtaining nuclear arms capability, the people who think Iran purposefully destabilizes the whole region, the people who don't like the fact Iran supports Russian proxy wars and finance more terrorism in the region and abroad then an other Middle Eastern country??

</comment></comment></comment></comment></comment><comment><USER25> I bet a significant chunk of the money went into the pockets of well-connected Washington insiders and their friends. People like Paul Manafort who lobby for any dictator who is willing to pay have a lot of influence. Defense companies probably made a lot of money too.

</comment><comment><USER26> I've heard it described as we got a bunch of combat experienced veterans.

</comment><comment><USER27> Yet more more proof of the adage "never fight a land war in Asia" ?

<comment><USER28> I don't understand the downvotes, this comment is quite on point. Both the British and the Soviet ended up fighting in Afghanistan and regretting it. It's an historical fact, regardless of what you think of the US invasion.

<comment><USER27> I think the downvotes came because it comes across as a mere pop culture reference, which is frowned upon. Sorry.

The Princess Bride, 1987: [https://www.youtube.com/watch?v=7LUUk6wVNrY](https://www.youtube.com/watch?v=7LUUk6wVNrY)

However when posting it, I was well aware that the quote is older than that: [https://en.wiktionary.org/wiki/never_fight_a_land_war_in_Asi...](https://en.wiktionary.org/wiki/never_fight_a_land_war_in_Asia)

And that the Soviets and the British ( [https://en.wikipedia.org/wiki/First_Anglo- Afghan_War](https://en.wikipedia.org/wiki/First_Anglo-Afghan_War) ) both found this out the hard way.

<comment><USER27> Further to that, Afghanistan is sometimes called "The graveyard of Empires". [https://www.quora.com/Why-is-Afghanistan-called-the- Graveyar...](https://www.quora.com/Why-is-Afghanistan-called-the-Graveyard-of- Empires)

Apparently that hasn't changed yet.

</comment></comment></comment></comment><comment><USER29> I bet if they would have just given each Afghan a monthly stipend of the same amount, there would have been peace in no time.

</comment><comment><USER30> A ton of debt.

</comment><comment><USER31> Revenge.

</comment><comment><USER32> Everyone really should read the WP documents [0].

Michael Flynn's 'LESSONS LEARNED RECORD OF INTERVIEW'[1] is some astonishing reading. Yes, _that_ Mike Flynn [2]. You really should read it yourself, but I'll summarize my impressions of it [3].

Flynn essentially makes the point that the total war effort was, start to finish, a chuckle-fuck. He goes into a few specific points and events for him. One event (the New Ansari Bank heist) reads more like a Clive Cussler paperback. Though he is picking out events that support his thesis, the summation he has is that The Beltway and White House have all but forgotten him and his efforts. And those sacrifices that others made, not just for the US, but for Canada, the UK, and Afghanistan proper.

He specifically calls out the culture of 'blowing smoke up your ass' that was the reporting situation on the ground. Time and again, commanders only choose the rosy bit and leave out the mountain of shit. Time and again, new commanders come in, are flabbergasted at reality, and then do the same to their next in line.

Honestly, the _tone_ that I get is one of exhaustion. But, clearly in the RECORD, there is a simmer of hatred for the whole debacle. Personally, I get a whiff of vengeance.

That RECORD was taken at 9am EST on Nov 10 2015.

Exactly one month and two hours later, Dec 10 2015 7pm MSK, Mike Flynn is at dinner sitting directly next to, shoulder to shoulder with, Putin and Gorbachev[4].

Mike is very likely a traitor. But his testimony in the RECORD shows a very long, clear, logical, and sympathetic path towards his decisions.

We should take note here, the Military is becoming frayed, badly so. NFL games and Applebee's discounts aren't making up the difference

This war is intolerable to them. And we are seen as complicit.

[0] Honestly, they are very approachable. Whomever is on their 'data viz' team is doing a great job. Somehow, very boring text documents become exciting.

[1][https://www.washingtonpost.com/graphics/2019/investigations/...](https://www.washingtonpost.com/graphics/2019/investigations/afghanistan- papers/documents-database/?document=flynn_michael_ll_11102015)

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

[3] Reminder, these records are what WP could publish at all and they state that these records are very 'sanitized'. Also, just reading the red highlights is good too. Really, read it.

[4] [https://en.wikipedia.org/wiki/Michael_Flynn#/media/File:Vlad...](https://en.wikipedia.org/wiki/Michael_Flynn#/media/File:Vladimir_Putin,_Russia_Today_television_channel_\(2015-12-10\)_04.jpg)

</comment><comment><USER33> Betteridge's law states "nothing".

<comment><USER34> I'm almost inclined to agree but I think that would be optimistic. The U.S got a lot of collateral damage to itself and that region for $2T. That $2T fed and grew a now hopelessly bloated war-hawk adjacent bureaucracy that continues to weigh the country down and waste a significant portion of the very sizable lower to middle-class tax payments, not to mention stoke nativist fears and increased police militarization domestically and an ever-present domestic surveillance apparatus, which can't even keep its own intel safe.

Afghanistan is another step in a long line of post WWII follies that stretches back to Vietnam and earlier. What a tremendous waste of resources.

</comment></comment><comment><USER35> bullshit jobs (but necessary jobs)! every $100 toilet lid or $100K grenade launcher purchased by the military trickles down to hundreds of jobs that otherwise would not exist.

American capitalism is perhaps the most "socialist" society in the world.

Imagine the pandemonium and social unrest that would happen if we wiped out half of the economy that produces weaponry. Literally there would be nothing to do for half of the population.

It is the irony of being the world most efficient and productive society that it has to come with a built-in and pre-approved waste that acts as a channel to fund otherwise non-existing jobs. The genius is packaging this waste as "defense"

Edit: I am amused by the number of downvotes on the post. Looks like the HN crowd hates the idea that military spending provides actual jobs.

<comment><USER36> > Imagine the pandemonium and social unrest that would happen if we wiped out > half of the economy that produces weaponry.

Take look no further than what has happened to USSR. Double digit of USSR economy was military economy, with most of it being so irrational, unreasonable and wasteful that it would've made F35 program a model of prudence and cadence in comparison.

In my hometown we have a patrol boat that did cost the exchequer 160 million Union's roubles (almost $220M) just because it had a "super secret laser pointer" (12081 Aquilon) installed to blind enemy sensors. In real life, it can barely pop air baloons a kilometre away.

</comment></comment><comment><USER37> Israel ended up a lot safer, so it wasn't all bad.

<comment><USER38> Hey, I don't think anyone was invading Afghanistan on behalf of Israel, nor would anyone consider Afghanistan a significant security risk to Israel. This is a poor read of the situation

<comment><USER39> The destruction of the middle east is an Israeli agenda. Thinking that the US government and its media apparatus gave us all the facts of 9/11 is a poor read of the situation. The official story is a farce. The entire explanation is absurd.

<comment><USER38> I think there is strong contrary evidence for this claim. Please don't think I'm shilling for Likud when I share it, I'm also very opposed to US foreign adventurism.

Invading Iraq was broadly popular among Americans with strong interests in Israeli security, but it was broadly unpopular in Israel's military establishment. The closest thing to the Israeli military establishment's consensus view was that invading and occupying Iraq was a poor choice for their own security. Given that, I cannot see why they would agitate for it. I also cannot see how, since the US decision processes that lead to Iraq 2, which were farcical, are well documented and do not suggest that Israel agitated for the invasion and occupation.

There are plenty of things to be mad at the Israeli government for. This is not one of them.

</comment></comment></comment></comment><comment><USER40> They got to feed their industrial machine. That money re-entered the American and Global economies in ways that non-warfare economies could never provide.

It was never about making the country peaceful or stopping al qaeda (though I'm sure there were realpolitik reasons, such as staving off Russian influence).

<comment><USER41> Raytheon, etc.. charge a $90MM for a complex project. They then pay the salaries of 100 people for 3 years for a total cost of $30MM. Where did the other $60M go? Raytheon top executives.

To Recap: that $90MM mostly came from the 99% and 60% of it is now permanently in the hands of the 1%. We definitely don't have a modern day Robin Hood.

<comment><USER42> > that $90MM mostly came from the 99%

Is that really surprising? The 1% still pays ~38% of taxes by the way.

> We definitely don't have a modern day Robin Hood.

And we shouldn't. Stealing from the rich is still stealing.

<comment><USER41> > And we shouldn't. Stealing from the rich is still stealing.

I was speaking of "modern day Robin Hood" as a concept. It is implemented via taxes, but this whole example shows how flawed it is. Also who are you? the Robin Hood story characterizes Robin Hood as the hero because the rich were taking money in bad and terrorizing ways. If you want to take my robin hood concept literally, then take my example of the rich implementing programs and policies as literally terrorizing too.

<comment><USER42> > It is implemented via taxes

The purpose of taxes isn't to take from the rich and give to the poor.

> Also who are you?

Huh? I'm nobody, why are you asking?

</comment></comment></comment></comment></comment><comment><USER41> Knowing a modern war costs $2T means there are probably a lot more effective ways to take out bad leaders (bribes anyone?). What if the future of war was simply monetary leverage - no more boots on the ground.

For example: Want to take out Mawlawi Hibatullah Akhundzada? Offer $40MM for the head. Has to be literally turned in.

<comment><USER43> Great, now you've handed $40 million to a bloodthirsty follower and new head of the organization. There's a reason we sent in our own troops to get Osama bin Laden.

<comment><USER41> OR That no one will trust and now the new leader is going to be double watching his own back. The corruption will dismantle the organization and lead to infighting and dissolution.

</comment></comment></comment><comment><USER44> Am I not mistaken in saying that the USA has gotten the new afghan government to pay all the war costs in the form of issuing sovereign bonds?

Those bonds may stay outstanding for decades or even centuries, but if afghanistan is ever successful in the future, they will end up paying for the whole war plus interest.

<comment><USER45> I wonder, how has that worked in the past?

Beyond that, what's the rate of return relative to any other investment we might have made with $2 trillion?

For comparison, what would it cost to eradicate hunger? Estimated at about $30 billion a year. I wonder what that would have meant?

<comment><USER46> It did sort of work for Germany and the First World War.</comment></comment></comment>


Ask HN: Why is 911 so expensive? - <AUTHOR> <comment><USER2> Can you add relevant articles or statistics to your question?</comment>


Who Wrote the Anti-Trump New York Times Op-Ed? Using Tidytext - <AUTHOR> http://varianceexplained.org/r/op-ed-text-analysis/ <comment><USER2> The trick behind NLP that's surprisingly under discussed is that you _must_ use apples-to-apples comparisons between datasets. Using simple tweets as a proxy for style against a professionally-edited NYT op-ed is silly, but this analysis (along with the previous analyses) is transparent about that fact.

<comment><USER3> The OpEd reads more like a speech. I'd assume there are some publicly available speeches (or videos with subtitles) that can be analysed instead.

Some articles mention that anonymous sources specifically take note of the speech patterns of other people so they can use those to throw off the trail. I'd be very surprised if the author didn't at least try to do that, or agree to have the NYT rewrite each sentence while preserving the meaning.

It's an interesting exercise and can and might be able to rule out some authors, but it seems like someone harboring such opinions and wishing to express them to some extent (and has with others -- in the resistance) will be discovered in short order.

Outing this person might be an even bigger story than the OpEd itself. But I put my money on old fashion journalism rather than text analysis.

<comment><USER4> Presumably the candidates for consideration have speech writers and staff who would either write a given speech outright or influence it heavily. So, that would likely rule out any speeches related to their position.

<comment><USER5> The speechwriters and staff are in some cases valid guesses in their own right, but don't have a unique corpus.

</comment></comment></comment></comment><comment><USER6> Yeah so a linguist already looked at this

[https://www.thedailybeast.com/this-linguist-helped-catch- the...](https://www.thedailybeast.com/this-linguist-helped-catch-the- unabomber-heres-his-take-on-the-new-york-times-resistance-op-ed)

> "What's been done so far is not scientific and simply silly," he said.

People. Don't get too drunk on your own kool-aid. Do I need to write an op ed that there are adults in the room :P ?

<comment><USER7> This is a very quick dismissal, when the article _itself_ mentions this! It's entire purpose is to show off their neat library, not to give a substantive prediction on who the author is.

</comment></comment><comment><USER8> It's worth noting that Sec. Mike Pompeo used to be the director of the CIA and would probably know someone who could tell him about NLP and how to avoid it. The difference between identifying Shakespeare and identifying present-day politicians is that the politicians alive today have a chance of knowing about technology used today!

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

<comment><USER9> Not sure if you've ever worked at a large company but that isn't how it works. CEOs don't know most of the people at the lower levels other than at company functions e.g. roadshow. They spend 99% of the time with their direct reports and the board.

And even if Pompeo did know a Data Scientist who could tell him about NLP why would he ask them how to avoid being detected when writing a scathing op-ed piece ? You don't think that person would potentially leak ?

<comment><USER10> I'm not sure, perhaps if he had been presented with briefings containing evidence derived from these techniques he might be aware of their existence.

At any rate, I would expect him to be familiar with the idea of analyzing a text to find a leaker. It just seems like he in particular would be more careful.

But who knows? Speculating about this stuff is fun. You have some great points, remember how incompetent Manafort was?

</comment></comment></comment><comment><USER11> Is it also not somewhat equally likely someone who wanted to remain unknown to mask their own lexicon so as to make it harder to detect who the real author(s) were?

If someone were to do something like this, would it not be in their interest to assume someone else's lexicon or, at least, coopt the lexicon of others in general to throw of the lexicographic 'scent'?

In other words we can't only make the presumption that this is the author(s)' natural language.

<comment><USER12> At the end of the article the author discusses this, quoting this tweet: [https://twitter.com/dmimno/status/1037490608015925248](https://twitter.com/dmimno/status/1037490608015925248)

"Now might be a good time to remind everyone that "distinctive phrases" and rare words (high TF-IDF) are not as good for stylometry as subtle differences like "and" vs "the" ratios. If you can easily notice it, someone can easily spoof it."

<comment><USER13> Then again stylometry would be the thing you'd expect to change most between a tweet and an article published with style checkers and editors.

</comment></comment></comment><comment><USER14> One would assume that the author, who decided to publish a time-insensitive piece anonymously, was smart enough to employ language to intentionally misdirect analytical methods.

<comment><USER15> I think the editors likely worked the content over as well to mix multiple styles into it, which would make analysis like the OP difficult or impossible. If you know people will analyze content using common tools, you can too and keep mixing until its too fuzzy to be id'd.

<comment><USER15> They say they didn't, but that doesn't mean the author didn't do it themselves.

</comment></comment></comment><comment><USER16> I have a suggestion, which others may have thought of: can you randomize the style using programs?

1\. You write an essay.

2\. [Word-level randomization] An algorithm looks at it, as a first cut, replaces uncommon words with common equivalents.

3\. [Sentence-level randomization] Changes each sentence to a randomly selected grammatically correct equivalent.

4\. [Paragraph-level randomization] Adds spurious repetitions, replace some paragraphs with automated summarized versions.

i.e. destroy the rhetorical effect, but get the message across so as to defeat NLP-based identification. If the content of the message is important, and the final version is okay to the author, this might be safer for anonymous disclosures.

<comment><USER17> Perhaps it would be enough to just Google-translate the text to some other language and back?

<comment><USER16> Yes, translating different paragraphs into different languages and back might work.

</comment></comment></comment><comment><USER18> I wonder if there are any ethical issues in outing someone using these techniques.

<comment><USER2> Analyzing writing patterns to determine the author has been a tool around for decades and predates statistical techniques like TF-IDF.

<comment><USER19> How is that relevant? Are old things automatically ethical?

<comment><USER20> Well, they're common knowledge.

If I refuse to do something millions of others can easily do, it won't change anything.

</comment></comment></comment></comment><comment><USER21> This situation reminds me a little of the Unabomber, who was finally caught entirely because somebody (his brother) simply recognized his writing style.

<comment><USER4> Ted Kaczynskis writings were probably influenced a great deal by his mental illness, which would make him an outlier. In contrast, those in bureaucracies will likely tend towards milquetoast language over time, making recognition more difficult.

</comment></comment><comment> village-idiot I think if I planned to write a piece like this, I'd give an outline to a close confidant, such as my spouse, and have them write it. Assuming said confidant doesn't have a ton of public writing samples, this would frustrate any textual analysis.

<comment><USER22> Or write an outline, have someone at the NYT write it, then send it back to you and edit it for clarity and accuracy.

<comment><USER23> Someone someone at NYT could just writing it without the outline.

</comment></comment></comment><comment><USER24> I did a end-of-semester project on stylometry on my masters, and no-where in our literature review did we see anyone comparing TF-IDF's scores for authorship attribution.

Other than some guy on twitter saying TF-IDF, on what grounds is this classifier chosen?

Other mention that "This is about showing off the library". In that case, the authors should chose to show case their tools for a problem they are ment to solve.

"Check out my hammer, here's how to use it: First, you get some screws..."

</comment><comment><USER25> I really wish some news outlet was circulating the headline "text analsysis shows Trump to be most likely writer of anonymous memo!"

</comment><comment><USER26> The op-ed was a plant, personally approved by Trump. This has literally been his standard MO for decades: plant fake stories and weaponize the press for his own use. And it works. He effectively ended the entire Manafort/Cohen news cycle overnight.

Think about the plausibility of this story for even a moment. There's a list of less than 10 people that could have possibly written the op-ed, and what it amounts to legally is a _written admission of high treason_ , a felony punishable by death. Do you seriously think _any_ reasonable person would ever do that and assume they would get away with it?

The entire administration has been one massive psy-ops campaign against the American public. Don't listen to a single word they say. Just watch their actions, and react with your own judgement accordingly.

<comment><USER27> >and what it amounts to legally is a written admission of high treason, a felony punishable by death.

Here is the legal definition of treason in the US (at the federal level).

"Treason against the United States, shall consist only in levying War against them, or in adhering to their Enemies, giving them Aid and Comfort. No Person shall be convicted of Treason unless on the Testimony of two Witnesses to the same overt Act, or on Confession in open Court."

Nothing in that letter comes close to fitting that definition.

> He effectively ended the entire Manafort/Cohen news cycle overnight.

The Manafort Cohen news cycle was already ended by the Woodward book preview. All this letter did was make the accusations in the book look even more plausible.

<comment><USER28> I haven't heard anything at all from my peers about the Woodward book. I have heard about the essay. So if it was a plant, it was geared towards the book and not recent trials.

</comment></comment></comment><comment><USER29> Unless "gutless anonymous" is a fool, they got someone else (e.g. NYT staffers) to write the actual text. Better to look at individuals who had recent physical contact with NYT senior level employees since they would certainly avoid telephone calls and email. Fairly likely the manifesto was written on a Remington or Underwood.

<comment><USER30> Step 1: write the Op-Ed Step 2: using google translate, translate the article from English to a different language, let's say German. Step 3: still using google translate, translate the German version into a different language, let's say French Step 4: translate from French back to English Step 5: have someone else re-edit it back into English

<comment><USER31> If you're that paranoid, why would you trust Google?</comment></comment></comment>


The Joy of File Formats - <AUTHOR> http://blog.openmicroscopy.org/file-formats/2014/10/16/file-formats/

<comment><USER2> I absolutely love how the author linked the standards XKCD ([http://xkcd.com/927](http://xkcd.com/927)), then goes to say "In our next chapter, we'll look at how this approach actually helps build an image metadata standard.".

Oh, the irony.</comment>


Google releases Gmail's priority inbox secrets - <AUTHOR> http://econsultancy.com/uk/blog/7144-google-release-gmails-priority-inbox-secrets-its-engagement-jim-but-not-as-we-know-it

<comment><AUTHOR> Also, you can download the priority inbox PDF here: [http://static.googleusercontent.com/external_content/untrust...](http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/36955.pdf)</comment>


Ask HN: What are the limits of machine learning? - <AUTHOR> Machine learning seemed to be all the hype for at least the past 4 years now, with major companies like Google putting it to all of their products. In fact, there is a post on front page right now about ML and infosec.
In the wild, I see products like Google Now/Siri, various image recognition applications, and as extreme as AlphaGo. They seem all to be solving problems where it is very difficult to come up with a theoretical model from a large volume of data.
At the same time, while I have no evidence to back this up, from things I've read online and discussions I've had with people IRL, machine learning seems to be people's universal answer to modeling phenomenons without actually doing the work. To me it feels like, instead of trying to work out models for the world, like Newton's 3 laws, we are just "throwing machine learning at it" and hope for >99% accuracy.
I've taking Andrew ng's ML course when it first offered. I also dabbled with projects to classify news articles and such. It feels like just another way to process data rather than some magical bullet that everyone tries to market me. However, I'm far from an expert so I would like to know what people who actually work on this stuff thinks:
1. What actually qualifies as machine learning? Facial recognition? Detecting anomaly like sudden burst of traffic?
2. What can machine learning do and what are the limits?
3. Why does it have so much hype over it? Why does it seem like the preferred solution over coming up with a real model. <comment><USER2> If "machine learning" is a tactic for (relatively) quickly selecting programs that do specific things out of the set of all possible programs, then... The sky is the limit! Especially if some new tactic is discovered.

NB. I am not a computer scientist.</comment>


Why Crystal is the most promising programming language of 2018 - crypto-jeronimo https://medium.com/@DuroSoft/why-crystal-is-the-most-promising-programming-language-of-2018-aad669d8344f <comment><AUTHOR> I've been keeping my eye on Crystal for a while now thinking about making the plunge and writing something production ready in it.

But I'm a bit vary as for the casual observer the Crystal project github ([https://github.com/crystal-lang/crystal](https://github.com/crystal- lang/crystal)) seems brim with unsolved issues (over 500 issues!) and stale PR-s (over 105!). I'm not sure if this is a sign of poor project managment, development stall or poor community engagement but still it leaves a bad first impression. Contrast this to elixir project page ([https://github.com/elixir- lang/elixir](https://github.com/elixir-lang/elixir)).

Maybe someone who is actively involved in the development of Crystal could shine a light?

<comment><USER2> The number of open issues is a bad correlation for how well a project is managed: rust has nearly 4000 open issues. Most of these are either feature requests we'll get to some day, or minor bugs. Crystal development is proceding nicely and we will have two developers (bcardiff and me) working full-time on crystal this summer.

<comment><AUTHOR> That's great and thank you for responding! I agree that the number of open issues is not a good indicator of project management. I was more worried about PRs being open in 2016, 2017 and still lingering - this in connection with a large number of open issues seemed like a possible red flag. But it may be just an issue of triage.

Keep up the good work!

<comment><USER2> Every project has it's warts, long running feature requests, and it's bugs so minor nobody's gotten around to fixing them.

Some projects decide to hide those by closing the issues, we generally keep them open, because they are still valid issues.

<comment><USER3> And I think this is a good sign of a projects positive health ^

</comment></comment></comment></comment></comment><comment><USER4> > Nothing else puts all of these ingredients together (compile-time macros, > static typing, C-like speed, Ruby-like syntax, gem-like package ecosystem, > native binary compilation, fibers, and cross-platform support)

Something I've noticed when reading 'X language is great' posts, the comparison is usually limited to a narrow subset of what's out there.

As an example, I think D meets all of the above criteria. Maybe I'll give on Ruby-like syntax, which D instead has more of a C-like syntax with adjustments to improve compile time.

There are lots of great languages out there and it really irritates me when I see claims of 'X is better than Y or Z' and it seems no effort is made to see what else already exists with the same (or greater) set of features.

<comment><USER5> This is the entire reason I got burned out on new languages.

<comment><USER6> I learned to minimize burns by looking at everything that comes out as learning process, there is always something that makes us better developers.

However for production code I only use the programming languages directly supported by platform owners.

Of course others rather take part in ramping up eco-systems and that is fine as well, otherwise we wouldn't get new toys adopted by platform owners.

<comment><USER5> True. I guess I mean that after a while I started classifying languages like this as "flavors of C". There are just so many languages that are fast, it's no longer a selling point.

Out of all of the languages I've read about the past few years, only 3 jumped out as bringing real value to the table compared to the other options that are already out there: Go, Rust and Elixir.

<comment> crypto-jeronimo Could you elaborate about the value of Elixir, please? It's been on my radar for quite a while now.

<comment><USER7> So a lot has been written on this topic already. I would personally direct you to read this (on Erlang, but Elixir is basically Erlang with nicer syntax and a few added bits) - [https://ferd.ca/the-zen-of- erlang.html](https://ferd.ca/the-zen-of-erlang.html)

Fundamentally though, Erlang/Elixir is a language built from first principles to achieve reliability in concurrent, distributed contexts. It's quite unique in that regard. Even the language it's most directly compared to (Go, in having go channels that are sort of but not quite like Erlang/Elixir processes) is built instead from concurrency first, not reliability (and having concurrency flow out from that as a required feature).

</comment></comment></comment></comment></comment></comment><comment><USER8> Well, here is why not. AFAK, it still lacks support for parallelism / multicore programming. Please correct me if I'm wrong.

Once it has that, I'll be happy to learn it, but currently it's concurrency seems to be as limited as Racket's. That's a big obstacle for early adoption, since the trend is going towards 64 cores sooner than later. My current CPU already has 8 physical cores and 16 logical cores, and I'd like to use all of them.

This is not a critique on Crystal or Racket, I understand perfectly well the challenges that parallelism poses to language implementers. But it's definitely a massive shortcoming.

<comment><USER9> Are you sure Racket doesn't support parallelism?

<comment><USER8> Racket's support for parallelism with futures and places is in my experience almost unusable. I don't understand why they have chosen these horrible abstractions rather than providing access to OS-level threads plus some reasonable synchronization mechanisms like channels, shared memory, or actors.

Before you criticize me for this statement, please let me assure you that it's based on plenty of experience. I'm using Racket for almost all my programming since Racket 2 and have contributed libraries.

My hope is that they add good parallelism support in Racket 7, and since it's based on Chez scheme all thread support should already be built in. Places suck.

</comment></comment></comment><comment><USER10> > Because Crystal is compiled, it is impossible to have a true REPL

First of all, the problem isn't that it's "compiled" \- Python is "compiled" too, but still has one of the best REPLs available.

The problem is that the language is static. But static (and compiled) languages can have REPLs, for example C++ has an excellent REPL called Cling.

It's not impossible, just requires some more effort.

As for Crystal, it looks like a neat language. However, if it's going to try to compete with the fast compiled runtimes such as Java, it will need some parallelism support.

<comment><USER3> Yeah, to clarify this should be possible, but I don't think it's going to happen for some time. There is a shard that creates a REPL, but it re-executes all previously executed commands each time you enter something new, which is super bad and dangerous. What we need is something that will compile just the line that was entered, and somehow "inject" that line into the existing program, and execute only that next line. Also there might always be a bit of lag between when you enter a line and when you get your response because the compiler is invoked. I'm not sure if that could be optimized to the point where it isn't noticable, but that would be super cool. I added on functionality for the Amber framework that allows you to execute one liners via `amber exec "code here"` as a replacement for `rails console` (amber is basically the rails of the crystal world).

<comment><USER11> Both scala and Java provides a REPL by compiling each lines + maintaining a context containing all local variables, functions, classes, etc

</comment></comment></comment><comment><USER12> > Recently Crystal shocked the world when it rose from 60th place to 32nd > place in the Tiobe index in a mere month

Meteoric! Because we all know the the Tiobe index is incredibly accurate.

Would have been nice to see some code examples, rather than just handwavey bullets points that you could write about nearly every up-and-coming programming language.

<comment><USER13> Also, "meteoric rise" is kind of silly. That's not how meteors work.

<comment><USER14> A meteoric rise means a rise up into the sky.

Meteoros is Latin and means "to raise up", usually into the sky. Hence "meteorology" which is the study of the sky and "meteors" which are bright lights in the sky.

<comment><USER13> "Well actually ..." but still no.

People don't say "meteorological rise" do they? They're not talking about gradual lifting, or about eyes. They're talking about a _meteor_. That's a real English word for a real physical thing, which by definition is approaching the earth - i.e. falling. Even if there's some etymological relationship to rising, the dominant relationship between the metaphor and the thing to which it refers in practically any listener's mind is all screwed up. Learn a better phrase, or even better make one up, instead of rationalizing one that's broken.

</comment></comment></comment></comment><comment><USER3> hey guys OP here just a note on parallelism -- once windows support is done (very soon), parallelism is the #1 priority of the dev team. If you are looking for syntax examples check out the docs there are tons of examples here: [https://crystal-lang.org/docs/syntax_and_semantics/](https://crystal- lang.org/docs/syntax_and_semantics/)

<comment><USER15> I think not having a parallelism first mindset will be the killer of the language. It's too important in today's world to not have that be an essential part of the language from the beginning. Rust and go for example we're 100% designed around parallelism.

<comment><USER2> I think you're getting confused by concurrency and parallelism. Crystal is concurrency-first and uses the same concurrency model as go. Expanding that to run fibers on multiple cores is just an implementation detail.

A difficult implementation detail, but it shouldn't affect the core of the language.

<comment><USER16> You posted a message that's essentially hand-waving. Discussing semantics means nothing if the language supports neither parallelism nor concurrency.

<comment><USER2> But crystal support concurrency, and it supports it very well. That's why it achieves about 100,000 HTTP requests per second per core, you just can't get that kind of performance on a single core without using evented IO.

</comment></comment></comment></comment></comment><comment><USER17> I'm reading through the list and it looks like D has all these, except the ninth one ("meteoric rise in popularity"). However, it does have binary compatibility with C and the binaries are much leaner.

<comment><USER3> Both are also difficult to google search XD

<comment><USER18> Searching for "dlang" returns decent/passable results.

<comment><USER3> with crystal we have to deal with all these stale "crystal reports" results as well :/

</comment></comment></comment></comment><comment><USER19> > Because Crystal is compiled, it is impossible to have a true REPL

This has nothing to do with being a "compiled" language, nor with being a statically types language for that matter.

If languages like Haskell and Idris can have a repl, very basic languages like Crystal certainly can. I can imagine it not being their top priority though.

</comment><comment><USER20> This is what I appreciate about HN: reading that I was pretty convinced and had no idea what Crystal's shortcomings might be.

Then I read the comments and the largest single complaint is lack of parallelism, by which people seem to mean being able to utilize all the cores of the processor.

I've been programming for a while, but haven't run into this issue.

Can someone explain who uses parallelism, for what, and in what context?

<comment><USER21> Parallelism is large part of the answer to question of "how do we make this thing as fast as hardware allows" (most people will add "easily" to that). Or "as fast as our users demand" if it makes it easier to understand. The use for that comes with scale, there is a one caveat though: it is often impossible to add this as an afterthought to your program and to programming language. If you choose programming language (or architecture) that does it poorly, you are digging yourself a hole you won't be able to get out of. This is main reasons why it is important even for cases when you don't need it right now.

<comment><USER20> Thank you for taking the time to answer the question.

In principle, I know how it ought to work. But when would I need to use it?

For instance, if someone is making a web api, and you're pulling data from a database, should one think about it?

If one is doing some data analysis, should one think about it?

I always thought that it is a "low level" program that takes care of it. So tensorflow might worry about it, but I wouldn't if I use tensorflow. Or perhaps mapreduce worries about it, or the ORM worries about it.

But when should I worry about it?

<comment><USER22> I don't know your experience so I'll do my best to draw on examples _I suspect_ you might be familiar with. I'll try to keep this simplified but deep enough. I'm taking a shot in the dark and hoping you're more familiar with the one of the python/node/ruby world.

You should worry about it when you want to do something faster than you are already or want to do more things at once. Maybe someone's framework/service has done it for you maybe not.

For a web api, the workload _usually_ looks like: {database call} -> {do some work} -> {maybe more calls} -> {more local work} -> {done}.

In the python/node/ruby world where you have mostly single process workers. You get some parallelism by doing work locally while the database call is made asynchronously. If you want to handle more requests on a host you'll just run more processes and load balance across the front (nginx, gunicorn, etc). In languages with threads you usually do that INSIDE your program. A single process load balances across worker threads internally.

At first blush, multiple threads are pretty similar to just running multiple programs. It gets more complicated when you start talking about how you want to communicate between them or share resources across them.

For data analysis you often have algorithms that are embarrassingly parallel[0] chained together. You use threads the same way you'd call three friends to help you move. You all pack boxes at the same time without really needing to coordinate and then you start loading the truck where you have to talk more. One might wait in the truck and organize while 2 or 3 others might be shuttling boxes outside. Maybe everyone sits around while the stairs are blocked by one person moving a shelf. It just depends. Having 4 people helps sometimes or is disruptive in others.

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

P.S. - To address your examples: tensorflow, map-reduce, orms. etc.

It's all still about parallelism but not necessarily about threads.

Parallelism is just doing more things at the same time. Threads are (mostly) about CPU parallelism, but many of those use other resources to get parallelism. Tensorflow might use the GPU, which has many threads internally (simplification), to do one thing while the CPU does another. Mapreduce will use a lot of different machines across a cluster, but maybe only a thread or two on each, to archive parallelism (and really getting disk IO parallelism). And ORM will call the database and let it do work while your CPU else instead of wait.

<comment><USER20> Great answer. You should post that on a blog if you have one.

This was the best part if you want to expand on it in a longer post: "You should worry about it when you want to do something faster than you are already or want to do more things at once. Maybe someone's framework/service done it for you maybe not.

For a web api, the workload _usually_ looks like: {database call} -> {do some work} -> {maybe more calls} -> {more local work} -> {done}.

In the python/node/ruby world where you have mostly single process workers. You get some parallelism by doing work locally while the database call is made asynchronously. If you want to handle more requests on a host you'll just run more processes and load balance across the front (nginx, gunicorn, etc). In languages with threads you usually do that INSIDE your program. A single process load balances across worker threads internally.

At first blush, multiple threads are pretty similar to just running multiple programs. It gets more complicated when you start talking about how you want to communicate between them or share resources across them."

<comment><USER22> Thanks, I'm glad it was helpful! I don't have a blog yet, but I started commenting a month back to build up some writing chops so I'm especially happy to hear it.

</comment></comment></comment></comment></comment></comment><comment><USER23> Don't forget about Nim. Nim is similar except it's Pythonish syntax with C speed instead of Rubyish syntax.

<comment><USER24> ... but with garbage collection

</comment></comment><comment><USER2> Crystal 0.25.0 has just been released, you can check out the new features here: [https://crystal- lang.org/2018/06/15/crystal-0.25.0-released....](https://crystal- lang.org/2018/06/15/crystal-0.25.0-released.html)

</comment><comment><USER22> Looks cool, in a similar vein as Zig or NIM it seems?

A few questions:

Out of curiosity, is there a company behind Crystal? or is it a BDFL situation? The press on Crystal has been pretty significant lately which is great. I ask mostly out of historical interest. IIRC Rust/Go seem to had company backing while gaining traction but Python/Ruby were more organic BDFL led projects. Naturally C/Java/C# were literal company products.

While the Ruby-like syntax is not to my taste (prefer Python) it got me thinking about what are the big syntax families? Off the top of my head I count: Lisp, C, Python, Ruby, Prolog, ML, APL? Preemptively apologizing for only knowing the popularizers over the originals.

</comment><comment><USER24> I think some of the comments here are unfair to Crystal and the careful thought (and lots of work!) that has been put into it. Projects like this should not be so easily dismissed as "also-rans".

I read through the Crystal language docs (meaning just the syntax etc) and as a seasoned C++ and Python developer who is _constantly_ looking for something with better performance (than Python) yet much cleaner (than C++), I think Crystal has a lot going for it so far.

Any "great" language should be able to take a thought in a developer's head and easily allow 1) the concise expression of that thought, and 2) efficient evaluation of that thought. I mean, those things we probably would all agree on.

It saddens me to say this, but C++ is falling over as a result of it's own weight. It's become a language for experts. Perhaps more than any popular language, it can take a simple idea in a developer's head and turn it into pages of code. It's actually quite embarrassing. I won't go into that further; judge for yourself (and sorry if that comment offends anyone -- I love C++ and use it every day). But you just can't beat the speed... Well-crafted C++ _should_ exceed the speed of even C (Why? Because templates...). As an aside, it's disingenuous to put Java in the same speed category as C/C++... The "fast" Java programs out there are basically C with Java wrappers (ducks thrown tomatoes). And just like C++, Java is very noisy (but for different reasons).

Python as we all know sort of takes the opposite approach, with dynamic typing a design-as-you-go mentality. And boy what a success it has been, with a flourishing package ecosystem. There's lots of good things to say about Python, but it's f*cking slow as hell (Cython is a hack, Numba shows promise, but PyPy isn't much faster... I was excited about Pyston but don't know where that went). It's not the fault of Python that it's slow -- it's the price of such a wonderfully dynamic language.

So enter things like Crystal. And trust me -- it's definitely early days with this language. But I like the fact that the designers really seem to care about the things that (to most of us I think) matter.... Taking an idea in our brain and putting it (simply) down in code, and then having that code run quickly. Yay!

In this day and age where we are swamped with hype from all of these new languages, let's give praise where it's warranted -- to the people are out there that are trying to refine decades worth of thought and finally "get it right".

My hat is off to those people out there that are forging ahead with these types of projects. Don't mind the criticism -- keep it up and great job.

<comment><USER25> I'm similar to you. An every-day / almost every day C++ user. I've been using Clojure for a personal project and I really enjoy the much-reduced overhead imposed by the language. Unfortunately it runs on the JVM so that's not something I'm super stoked about. But this language seems interesting. The interoperability with C libs gives it a head start. The syntax seems much nicer than Rust. Too bad about the parallelism but frankly you can get by with a single core for a lot of things, I'm sure it's on the roadmap anyhow.

<comment><USER24> Lisps are all very, very cool -- you basically get to build your own world. And the macros -- so powerful. But the parens! Not the number of them, as that is about the same as other langs, but the placement of them:

Sample factorial function:

(define fac (lambda (n) (if (= n 0) 1 (* n (fac (- n 1)))))) ; <<\--- look at those parens!

And with Clojure, you don't have proper tail recursion, so you'll have to add some Clojure-only thing in there to prevent the above code from blowing up for large numbers.

There's really no getting around it -- Lisp, for many people, is just hard to parse. Consider:

def fac(n): n < 2 ? n : n * fac(n - 1)

Yay! No noise. But I agree, there are some cool things about Clojure.

<comment><USER26> yes, lisp is a fossil of a time before precedence was invented.

what I dream of is a Lisp with an additional mechanism to define precedence of functions/operators. And infix operators. Almost like Haskell.

<comment><USER27> > mechanism to define precedence

Read syntax:

[https://en.wikipedia.org/wiki/CGOL](https://en.wikipedia.org/wiki/CGOL) [1973!]

[https://www.cliki.net/infix](https://www.cliki.net/infix)

Macros:

[https://stackoverflow.com/questions/25434538/define- function...](https://stackoverflow.com/questions/25434538/define-function-for- evaluating-infix-expressions-in-lisp)

</comment></comment></comment></comment></comment><comment> yoz-y I never seem to be able to get into all of these new languages, mostly because I do not see a clear use case for it. The last two languages I learnt were Python, because we have our backend written in it and Swift for a personal project because it is what one writes iOS apps in today.

I fail to imagine a kind of application that would warrant to learn a new general purpose language on top of what I already know. Well, except massive parallelism for which I would probably reach for Erlang or Go.

<comment><USER3> At BlockVue we are using crystal in production to solve some very computationally expensive constraints programming problems that we would otherwise likely have to tackle in C/C++.

<comment> yoz-y Is this something which is inherently better handled by Crystal? For example does it have good libraries for contraint solving? What was your main motivation to choose Crystal?

</comment></comment></comment><comment><USER28> no parallelism hmm right thats such a small tradeoff in a world where 32 core 64 HT CPUs are available from mainstream vendors. I'll take Elixir and/or Rust.

<comment><USER3> They already have go-style parallelism working in a branch -- its coming very soon

</comment></comment><comment> crypto-jeronimo Also:

\- [https://hackernoon.com/why-crystal-is-my-favorite- programmin...](https://hackernoon.com/why-crystal-is-my-favorite-programming- language-of-2017-and-beyond-ee733224e6f2)

\- [https://hackernoon.com/an-introduction-to-the-crystal- progra...](https://hackernoon.com/an-introduction-to-the-crystal-programming- language-b9e0222b5b5e)

</comment><comment><USER26> The next big programming language will compile to WebAssembly, crystal doesn't (yet).

<comment><USER3> Yeah I'm really crossing my fingers for this one as well. Imagine writing all your server side code in crystal, as well as your front end. Droool..

</comment></comment><comment><USER29> > Because Crystal is compiled, it is impossible to have a true REPL

Impossible, or just hard?

<comment><USER30> The main difference between compiled and static languages is that compiled languages go through a phase of "checking your work", where it compares parts of your program to other parts before running it. For example, if you misspelled a name, the compiler will look everywhere in your program for that name before you run it, and tell you it can't find the name. That's why we like compiled languages. By contrast, dynamic language handle this by looking up the name right before the code in question is executed. If the name's not there at that time, an error is thrown.

Now think about this in the context of a REPL, which again stands for Read, Evaluate, Print, Loop. If you write code and evaluate it right away, this whole business about checking your work won't work right. You would basically have to recompile your entire program on every REPL eval, which defeats the whole purpose of a REPL. There are lots of other tricks to getting this to work, as the article hints at, but they're all very unsatisfactory in delivering the freedom of a dynamic language.

<comment><USER31> Really?

SBCL:

        * (defun foo (a) (+ a 42))

        FOO
        * (defun bar (b) (foo 10 20))
        ; in: DEFUN BAR
        ;     (FOO 10 20)
        ;
        ; caught STYLE-WARNING:
        ;   The function was called with two arguments, but wants exactly one.

        ;     (SB-INT:NAMED-LAMBDA BAR
        ;         (B)
        ;       (BLOCK BAR (FOO 10 20)))
        ;
        ; caught STYLE-WARNING:
        ;   The variable B is defined but never used.
        ;
        ; compilation unit finished
        ;   caught 2 STYLE-WARNING conditions

        BAR

<comment><USER30> That's not the point. You _can_ run static languages in a REPL. Some easier than others. You've chosen a particularly easy static language to write REPLs for as a counterpoint. LISPs and other homoiconic languages are especially well suited for interpreters because they're especially well designed languages.

Languages like C which require header files and a pre-processor are much harder to write REPLs for. You can try to do it and you can build a thing that works kind of like a REPL (look I type code and press enter and it evaluates, yay), but the experience always falls short of using a dynamic language in a REPL. It's just not even close, and that's just due to the simple fact you're trying to use something in a way it's not intended. Compiled languages simply are not designed with a tight development loop as a major design goal.

<comment><USER31> SBCL is compiled, dynamic and supports REPL based programming.

<comment><USER30> Like I said, Lisps are well suited for REPLs.</comment></comment></comment></comment></comment></comment>