PayPal stops payouts to models on Pornhub - <AUTHOR> https://www.vice.com/en_us/article/d3abgv/paypal-pulls-out-of-pornhub-payments <comment><USER2> Financial deplatforming is a monster, long-term trend to watch over the next decades. Deplatforming happens with sex workers. It also happens in the US marijuana industry. It happens with perfectly legal political content.

The number of ways in which someone, somewhere will be offended by products or services for sale is growing, driven by a rapidly improving worldwide communication network and delivery system, and by people terrified of the change that brings.

The response by PayPal and many others has been to cut service. With each case, the circle of people finding themselves cut off from the traditional economy grows.

Bitcoin is often criticized for its lack of use cases. I find a very high correlation between the strength of this belief and lack of awareness of financial deplatforming in its many guises.

<comment><USER3> I've had several friends in the adult industry have their checking accounts closed at a several major banks as well. Traditional banking should definitely not be discriminating against fully legal activities.

<comment><USER4> Forbidden in germany. There is literally a law, which basically says: everyone needs to have and is allowed to have a banking account.

<comment><USER5> I'm living in Germany, the bank account of my neighbor in Commerzbank was closed because he wrote "hooker money" in description when sending money to one of his friends. At least that's what we believe because they refused to explain why. He could easily open another account in Volksbank and according to him, when the new account manager asked and learned why his previous account was closed, they had a pretty good laugh.

I used to get "funny" too when sending money through PayPal to friends, never again.

<comment><USER6> I've been with my bank for 15+ years. One time I sent a payment of several hundred £s to a friend who's paid my share of a holiday when booking.

In the description I put "fun times". I had a call from my bank asking me to explain the payment the next day. I've never been called before nor since that.

It certainly feels like they're a bit touchy about certain references.

<comment><USER7> > In the description I put "fun times".

I recently started using Venmo to pay a few people and the things I have wrote are awful. Recent examples include: "Human organ trafficking" "Lunch and murder for hire", "sack of shrunken heads" and so on. Let them call me.

<comment><USER8> I put "Crimea" in a venmo transfer to my own wife and they will no longer allow me to transfer funds to her.

<comment><USER9> I'm American. I went on a trip to Cuba for a free software conference, and someone from the conference borrowed a few Cuban Pesos from me to get some food before going to the airport. Later he sent me USD on Venmo for "Cuban cash transfer" and they threatened to close his account, but he managed to convince them that he was sending me money for lunch at a Cuban restaurant in the US. Ever since then, I'm cautious about descriptions when I Venmo people money.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Whatever you might think of the various professions... As long as it is legal, it seems the major payment service providers should not pass on their moral code onto everybody else.

What's next? You get no water/power/whatever if you run a business that the service providers simply do not agree with?

<comment><USER11> Water/power are utilities and are regulated differently than other industries.

But your general question is an open debate. If you run a hosting company do you have to host things you disagree with? If you run a transaction company doy you have to exchange with parties you disagree with? What if a certain type of transaction is too high risk, do they have to do it anyways?

Personally I'd like to see things lean more towards being agnostic to avoid amplification of the popular opinion but it isn't a cut and dry topic without corner cases or hard to define regulations.

<comment><USER12> I think the test should be whether another company could offer a service giving the same result.

So for instance this would be fine:

\- A web hosting company refusing clients, because you can use another one

\- Amazon refusing to sell the item themselves, because other companies can sell on the Amazon marketplace

\- A bank refusing a client, since you can just use another bank

This would not be fine:

\- Apple refusing to list an app on the app store, since no else can do so

\- Amazon refusing to allow an item on its marketplace at all, since there is no other way to sell to people who buy on Amazon

\- Google banning something from their search engine, since that's the only way to reach people who search with only Google

\- PayPal refusing a client, since using PayPal is the only way to easily accept payment from PayPal account holders

<comment><USER13> So the general rule is that if the companies holds some kind of user lock in they now must accept all legal users. Since a hosting company has no such lock in and moving to another one lets you reach exactly the same audience then they are safe.

</comment></comment></comment></comment><comment><USER14> A chilling effect on free speech. Real alternatives to paypal and credit cards need to enter the market.

It sadly looks like my favorite hope is still not ready, but I am hopeful that this is due to slow and careful development that will lead to a stable long term outcome. [https://taler.net/en/faq.html](https://taler.net/en/faq.html)

<comment><USER15> There are alternatives. Even obvious ones like wire transfers (ACH, SEPA) which have less fraud due to enforced two-factor and better online banking cyber security. PayPal, on the other hand, is free game after you infect a Windows PC with any malware.

The problem is that your CC number is both username and password. Cardsters are looking ways to convert soft credit card money to something without chargebacks. These services are fraud and money laundering magnets. Think it as a same as publishing fake eBooks on Amazon and then sell them to launder your income clean.

[https://techcrunch.com/2018/02/26/crooks-launder-money- using...](https://techcrunch.com/2018/02/26/crooks-launder-money-using-real- and-fake-amazon-ebooks/)

<comment><USER16> > enforced two-factor

In what world do wire transfers require 2FA?

<comment><USER17> The old world. Europe.

</comment></comment></comment></comment><comment><USER18> I'm surprised that people suddenly think that banks aren't greedy enough to profit from the porn industry!

Maybe the reason PayPal and so many other companies won't service adult industries is that there are laws that put them within arms reach of criminal liability?

On a related note, this reminds me of Operation Choke Point (2013-2017), where the DOJ harassed banks that did business with customers in legal, but "undesirable", industries [1].

[1] [https://cei.org/blog/operation-choke-point-targets-porn- and-...](https://cei.org/blog/operation-choke-point-targets-porn-and-firearms- potentially-violating-constitution)

[2] [https://reason.com/2014/04/28/doj-operation-chokepoint- and-p...](https://reason.com/2014/04/28/doj-operation-chokepoint-and-porn- stars/)

<comment><USER19> What a legendary name for an operation.

</comment></comment><comment><USER20> A contributor once wrote on hn about the huge market for a porn friendly payment system. Key feature, must not look suspicious on credit card bill...

<comment><USER21> There are plenty of porn friendly payment providers. They just cost a lot of money relative to "normal" merchants because of a few simple reasons:

1) Chargebacks -- people chargeback the shit out of these kinds of transactions. Significant other sees the bill, gets pissed / confused about the charge / whatever and gets it charged back. 2) Fraud -- people use stolen CC's to pay for this kind of thing. 3) Porn operators are, as a whole, rather shady themselves and present their own set of risks to a payment provider. A lot of those chargebacks in #1 are actually valid chargebacks.

You could say "use bitcoin", which would solve the chargeback problem but do nothing for fraud and shady porn sites. If anything it would exacerbate the shady behavior because consumers would have no recourse against fraud.

In short, collecting payment for porn sites a tough, costly business.

<comment><USER22> > Porn operators are, as a whole, rather shady themselves and present their > own set of risks to a payment provider. A lot of those chargebacks in #1 are > actually valid chargebacks.

...is there a logical reason for this?

<comment><USER23> Society holds such jobs in low esteem, so the kind of people who take them are the ones that are not worried about their reputation. There are a few who buck the trend and keep it classy, but most are just the kind of people who will do anything for a quick buck, including double-charging paying customers.

It's a viscous cycle, really. We treat porn producers like dirt only only dirty people want to take the job which further reinforces our stereotypes about said people. Plus the barrier to entry is real low and brand loyalty is almost nonexistent so it's a prime industry for fly-by-night operators.

</comment></comment></comment></comment><comment><USER24> I'm the last person to jump on the bitcoin bandwagon, but this is one case where I think it's warranted.

<comment><USER25> Nothing better than receiving your salary in a token with huge minute-to- minute volatility.

<comment><USER26> Crypto replaces a major painpoint (chargeback, getting 0% of your money) with a minor painpoint (volatility, losing or gaining <10% of your money).

There are other cryptocurrencies (eg Tether) that follow USD (eg 1 Tether is almost always equal to $1.00 USD), to avoid issues with volatility.

I guess another issue is that you'd have to pay taxes on any gains/losses between receiving your crypto and cashing it in for USD, and that would be pretty annoying to calculate manually.

I'm not the biggest fan of crypto but I think it actually solves this problem pretty well. There are probably other solutions too though (like only accept debit cards / payment methods that can't be charged back).

<comment><USER27> > There are other cryptocurrencies (eg Tether) that follow USD (eg 1 Tether is > almost always equal to $1.00 USD), to avoid issues with volatility.

One of us is behind the times on Tether; last I heard they were in pretty significant legal/financial trouble re: money laundering, not actually having most of the backing dollars they claimed to, and possibly market manipulation.

<comment><USER28> There have been various stories floating about litigation, solvency, and market manipulation in tether. So far, the market [1] remains unconvinced: tether trades pretty close to parity (sometimes even at a premium; liquidity preferences being what they are), and prices between tether-based exchange and USD-based exchanges are also pretty tight. So for the moment accepting payment in tether USD is entirely feasible.

[1] [https://trade.kraken.com/markets/kraken/usdt/usd](https://trade.kraken.com/markets/kraken/usdt/usd)

</comment></comment></comment></comment></comment><comment><USER29> I hate that any online company can set arbitrary Terms of Service which they know for a FACT I have not read (I didn't click) and then decide to pull the rug out from me at any time because of that.

These companies are seriously important in our lives. If you take away my payment source or my email or whatever you are potentially setting me on a path to ruin.

I don't know what the answer is but I do think these companies should be required to have an appeal process of some kind that's regulated. They have so much power.

<comment><USER30> Even if you did click to accept the terms of service, their server knows you probably didn't read it. They know exactly how long it was between you being served the contract, and you accepting it.

Clearly if that time is anything under a number of minutes or hours you can't possibly be agreeing to the contract and so they should be duty bound to refuse service.

I look forward to a test case where a judge rules a terms-of-service contract unenforceable because the vendor logged that I read it in 3.2 seconds and accepted that as me having read it.

Or maybe it's time to start being _that person_ again, who reads contracts slowly and in full before signing.

<comment><USER31> Actually I'd suggest we all take some time to learn the law. Actual legal practices and whatever. I'm increasingly of the impression that lawyers are the real first class citizens of a constitutional government.

</comment></comment></comment><comment><USER32> Reminds me of this:

[https://medium.com/incerto/the-most-intolerant-wins-the- dict...](https://medium.com/incerto/the-most-intolerant-wins-the-dictatorship- of-the-small-minority-3f1f83ce4e15)

Private companies have no incentive to take a stand for individual freedom and will always bow before the demands of a (loud) minority

</comment><comment><USER33> Perhaps an opportunity for Pornhub themselves to get into the payments business? I assume they have enough transactional volume and vendors to make it happen.

<comment><USER34> My hunch is that would incur unwanted liability from FOSTA-SESTA [1]. Producing content and paying talent out directly is fairly straightforward for adult entertainment. There be dragons if you're attempting to build a marketplace to do something similar.

"The Stop Enabling Sex Traffickers Act (SESTA) and Allow States and Victims to Fight Online Sex Trafficking Act (FOSTA) are the U.S. Senate and House bills that as the FOSTA-SESTA package became law on April 11, 2018. They clarify the country's sex trafficking law to make it illegal to knowingly assist, facilitate, or support sex trafficking, and amend the Section 230 safe harbors of the Communications Decency Act (which make online services immune from civil liability for the actions of their users) to exclude enforcement of federal or state sex trafficking laws from its immunity. Senate sponsor Rob Portman had previously led an investigation into the online classifieds service Backpage (which had been accused of facilitating child sex trafficking), and argued that Section 230 was protecting its "unscrupulous business practices" and was not designed to provide immunity to websites that facilitate sex trafficking."

[1] [https://en.wikipedia.org/wiki/Stop_Enabling_Sex_Traffickers_...](https://en.wikipedia.org/wiki/Stop_Enabling_Sex_Traffickers_Act)

<comment><USER35> Genuine question, MindGeek[1] is a private Canadian company, why are they subject to U.S. law if they build payment network outside of US?

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

<comment><USER36> Doing business with US customers in US dollars and interacting with US banks automatically places you under the jurisdiction of US laws.

Investigators in EU countries often work with US agencies because our laws are so much stricter, and often urge people under investigation to cooperate otherwise they'll turn over the case to the Feds.

Tom Hayes, of LIBOR scandal fame, spilled his guts and signed a confession after being told he might be handed over to the Americans. Then he tried the aspergers defense, followed by the "I only confessed because they threatened me" defense, but neither swayed the jurors and he got 14 (reduced to 11) years in a UK prison.

That's not unique to the US. Countries own their currency and regulate their banks therefore using them gives a country the right to control what you do.

This is grossly oversimplified but generally speaking, if I lived in France and started a payment service that accessed the Japanese banking system and performed transactions in Yen, I would be subject to Japanese banking laws as well as French laws.

</comment></comment></comment></comment><comment><USER37> Would be interesting to see if this pushes PH to build their own infra top to bottom

<comment><USER38> necessity breeds innovation

<comment><USER39> Porn breeds innovation.

See also: Flash video.

</comment></comment></comment><comment><USER40> I know of Spankchain[1] who are working on solving this on the Ethereum network.

Otherwise, I see DAI token being ideal for this coupled with locking your DAI in MakerDAO [2] to earn interest.

[1] [https://spankchain.com/](https://spankchain.com/) [2] [https://cdp.makerdao.com/](https://cdp.makerdao.com/)

<comment><USER41> It's a shame nobody cares

</comment></comment><comment><USER42> See, if you have zillions of dollars there all kinds of financial instruments that harm society (say, by reducing taxes paid), but any vice the little people can partake in, either as producers or consumers, well, we have to keep that on a short leash. Or kill it.

The financial industry's policies around sex and pot need a reboot. It's ridiculous what they're restricting.

"I Hope PayPal's Dick Falls Off" [https://gizmodo.com/i-hope-paypals-dick- falls-off-1839870796](https://gizmodo.com/i-hope-paypals-dick-falls- off-1839870796)

</comment><comment><USER43> Presumably there's a reason that payment processors have straight up ban customers instead of increasing fees to cover costs? I mean different industries already have different risk profiles and fees.

I can think of an analogy to interest rates, which vary tremendously depending on risk.

</comment><comment><USER44> 17 years ago, my business partners and I were approached by a porn website looking to get their website redone. (We didn't take the job, but it was an interesting meeting.) He said that his biggest problem was "refunds".

It seems it was a common thing for people to buy his service (access to porn), and then a few days later claim to the credit card company that it was an unauthorized charge.

He told a story of an irate wife calling him on the phone one day and demanding the charge be taken off her husband's credit card bill. She was insistent that there was "no way" her husband would sign up for a porn website. Well of course he did (or was it their son?). But he couldn't admit it to his wife. And so she called the office of the porn website to complain.

I'm sure that hasn't changed 17 years later. Credit card chargebacks must still be a huge problem.

Chargebacks make it a customer service nightmare. One of the highest refund rates that credit cards get, the highest incidence of actual fraud (charges that really weren't authorized), undisclosed recurring charges, etc.

Still, cutting off service to the models seems unfair. But refusing to deal with the websites themselves actually has underlying business reasons other than morality.

<comment><USER45> I have signed up for trials just because I wanted to grab a certain clip. And while I was in there I would download as much as I can and then cancel. And there is also that once you are done watching the last thing you want to do is watch more. And did I just pay for that? Wasn't worth it.

Family Guy sums it up nicely.

[https://youtu.be/IzhIiJJdD9g](https://youtu.be/IzhIiJJdD9g)

</comment></comment><comment><USER30> What are the biggest cost centers for a new payment provider? Software engineers? Rack space? Dispute (fraud) resolution? Marketing?

<comment><USER21> Fraud.

One of the factors in determining your interchange fees as a merchant is your risk profile. It is why a grocery store has a different fee structure than a gas station or a restaurant.

Almost the entire industry is driven by risk profiles.

<comment><USER30> It feels like there's two kinds of fraud, and I think you mean both?

(1) I buy a camera online, but the store mails me a brick. The payment provider steps in (at their own cost) to investigate and resolve the fraud, which is costly.

(2) The technology of the payment provider itself is subverted. For example, someone clones the mag stripe on my 1980s credit card and goes on a spending spree. Again, the payment provider picks up the cost of hunting down the malefactors, and they also compensate me. Cost cost cost.

When the payment system is _cash_ , fraud is avoided by using vendors with good reputations, or at least with verifiable business names and addresses to allow legal action if they sell me a 24 megapixel brick. Protecting against subversion of the payment mechanism itself is up to me (keep my wallet safe) and the treasury (fancy holograms on bank notes.)

With modern online payment systems, are they legally obliged to always be on the hook for the first type of fraud? Is the obligation because they are providing a credit line? (I think this is the case in UK law at least, with the Consumer Credit Act.) If the payment provider didn't want to have to deal with that sort of fraud, do they just have to avoid looking like they are offering credit?

I hope that we can assume that in any modern online system, the only occurrence of the second type of fraud is from insiders, as at launch (or at least, over time) the crypto is unlikely to be breakable on the wire / with card cloning / etc.

</comment></comment></comment><comment><USER46> IANAL, why isn't a payment processor refusing to service a payment a form of tortious interference?

<comment><USER47> Refusing to facilitate isn't interference.

</comment></comment><comment><USER48> How thorough is Pornhub's KYC?

In a business like that it may be quite difficult to detect exploitation. If they don't strive do a good job at it (which doesn't especially align with maximizing revenue), PayPal's decision may be hard to criticize.

</comment><comment><USER49> >"... is a private company and it is their right to refuse service to anyone"

>"Freedom of speech does not mean freedom from consequences"

>"en.wikipedia.org/wiki/Slippery_slope_fallacy"

Nothing is out of the order.

<comment><USER50> Just because something is legal, doesn't mean it's necessarily neutral. We can still argue this development being negative, for reasons unrelated to "freedom of speech".

<comment><USER51> We can also argue how it's a positive development.

</comment></comment></comment><comment><USER52> Sounds like Vice Ventures ought to fund a payment startup: [https://news.ycombinator.com/item?id=21538235](https://news.ycombinator.com/item?id=21538235)

</comment><comment><USER53> There is an alternative called Liberapay[0] but I haven't tried it, so I can't vouch for it. There is also Flattr[1], but Flattr is more for small micropayments to show your appreciation for a project or piece of software (not to mention you need a Paypal account to cash out your earnings). There's also things like Buy Me A Coffee[2], but again, centered around small micropayments (I imagine these performers need more than a coffee, although when you have several fans buying you a coffee it's a good gig). Also: I'm surprised nobody is talking about Patreon[3] (Prolly against their terms of service too though)

[0] [https://liberapay.com/](https://liberapay.com/)

[1] [https://flattr.com/](https://flattr.com/)

[2] [https://www.buymeacoffee.com/](https://www.buymeacoffee.com/)

[3] [https://www.patreon.com/](https://www.patreon.com/)

</comment><comment><USER54> With any luck this will compel Pornhub to make a more free financial platform. They certainly have the technical capability.

</comment><comment><USER55> Didn't Pornhub "verify" an account of a 15 year "model"?

[https://twitter.com/PornhubHelp/status/1189445175929647104](https://twitter.com/PornhubHelp/status/1189445175929647104)

That will probably give a pause to any payment provider.

</comment><comment><USER56> Square and Cash App now is your time. You talk about economic empowerment but are you really bout that life?

<comment><USER57> Doubt. Porn is one thing, but, to take a moral public stand in the same year of the Chef/Github/ICE controversy seems risky.

</comment></comment><comment><USER58> An alternative would be a system like M-Pesa. It's based on your personal phone line using the SIM toolkit, though there's also an app. Transactions can only be carried out on the phone with the SIM installed though.

It's great for personal transfers, and many in Kenya already use it to pay sex workers (usually cam girls selling nudes).

Corporates can have numbers (called paybill) where payments are made, though they are vulnerable to government interference. Safaricom (the network carrier running the M-Pesa platform) has already been ordered to shut down accounts belonging to betting firms. But for personal transactions, regulation is hard since nobody can tell why you sent a certain person money.

M-Pesa has never quite gained traction outside Kenya though.

</comment><comment><USER59> There are so many stories of small time vendors just thousands of $ of funds frozen out of nowhere, with no way of contacting PayPal about it.

What is their incentive to do this? Is PayPal in the business of randomly hassling people? Is it for the entertainment of some executive?

</comment><comment><USER60> Banks and other financial institutions are all about minimizing risk. If there is a risk that an account enables sex trafficking or money laundering there may be an internal policy to close the account as well as an obligation under anti money laundering laws to report it to the government. It comes down to the risk appetite of the bank. The bank stands to be fined if it is found not to have reported on suspicious activity and there is reputational risk as well. This is the reason a lot of banks would choose to de-risk and close the accounts.

</comment><comment><USER61> Since I tend to read ToS and other agreements prior to signing, I was quite surprised to see a similar restriction for Revolut.

In their case it is actually phrased in a way that makes it seem like you are not even allowed to pay for pornographic content with Revolut, not just receive money for it.

Not a problem for me personally but why would payment card providers make such restrictions?

It had some other weird restrictions as well.

</comment><comment><USER62> I'm surprised paypal ever worked with pornhub because they have always been skitish about pornography. More than a decade ago I was given a Girls Gone Wild dvd and sold it on ebay only to find out that paypal didn't allow my buyer to pay for pornography. (The seller just used paypal to directly send me money that wasn't tied to ebay so it worked out in the end)

</comment><comment><USER63> And this is where Square & Patreon's toe-dipping shows it's effects. You can NEVER. N-E-V-E-R allow an organization to have that much power and then not say anything just because they are targeting groups that you happen to also be against, because in the end, they will get a taste of the power they wield, the control they have, and they _will_ abuse it.

</comment><comment><USER64> Having a legal background, I would really like to evaluate the grounds for a class action for discrimination. Legal tech companies are increasingly taking moral stands, poorly motivated on dubious reasons, on legitimate and lawful activities, while at the same time the industry has a tremendous responsibility in enabling hate speech and gals information.

</comment><comment><USER65> It really sucks if your money is being seized. I'm now in a situation at MisterTango where they froze my assets because i need do show where my bitcoin money came from. The power they have over you is so great, it really makes you sick.

</comment><comment><USER66> If Brave/BAT plays its cards right ... look at the top 2 entry at [https://batgrowth.com/publishers/website](https://batgrowth.com/publishers/website)

</comment><comment><USER67> Yet people still refuse to acknowledge permissionless crypto as an alternate form of exchange. Instead of sticking it to the Man, they want to stick to the Man until the bitter end!

</comment><comment><USER68> Sounds like a great opportunity to start another payment service. PornHub already has a strong dev team, from what I understand, and it would probably be relatively easy for them.

</comment><comment> t-h-e-chief One of the many reasons why I hate PayPal, Visa and MasterCard

</comment><comment><USER69> The Adult industry has always been pretty hot on emerging tech, whilst a shitty move from Paypal, Im sure that they might move to something a little less standard.

</comment><comment><USER70> I stopped using Paypal a while back ... don't won't any bizarre US cultural norms and govt politics affecting my choices.

</comment><comment><USER71> I wonder how these kinds of trends will impact bitcoin and crypto. May be this is good for crypto currencies.

</comment><comment><USER72> Sounds like an opportunity for Mindgeek / Manwin to build their own payment system.

</comment><comment><USER73> I wonder how much money PayPal will make off of the interest on these frozen funds..

</comment><comment><USER74> If you give the philistines the power to terrorize their fellow beings, they will.

</comment><comment><USER75> This just lends more evidence to the view that the system is rigged.

</comment><comment><USER76> Good, hopefully it hurts the porn industry as a whole.

</comment><comment><USER77> Talk about one sided agenda driven reporting... Vice is such a sad excuse of journalism. Too bad it is so representative of the entire media world. Most of us forget something different can exist.

<comment><USER77> To be clear, there are many issues with this industry, most players are very sketchy especially how they treat the performers. Thats part of the reason why mainstream businesses don't want anything to do with it. Maybe if they'll clean up their act and get rid of the criminal elements, an article with this tone would be warranted.

</comment></comment><comment><USER78> How much is it a issue of chargebacks?

</comment><comment><USER79> SpankChain.com may be a alternative?

</comment><comment><USER80> Good time to buy bitcoin..

</comment><comment><USER81> They should use Spankcoin

</comment><comment><USER82> It's really disturbing how your "cash register" can dictate what you can sell ?

I hope blockchain payments will come soon as possible to destroy these slow, old school, opinionated payment gateways.

We are not free, we cannot have opinions or say publicly anything against the system.. We are living like any other communist country.

Sad sad situation !

</comment><comment><USER83> There's always bitcoin

</comment><comment><USER84> "Models"?

They're modelling?

</comment><comment><USER85> "models"

</comment><comment><USER86> Decent pun.

</comment><comment><USER87> Calling Sex Workers 'Models' is kinda rich.

<comment><USER88> They so stuff for people to look at at sometimes copy. That's modelling.

</comment></comment><comment><USER89> Damaging the porn industry AND promoting crypto? Christmas came early.

</comment><comment><USER90> This is the best title.

</comment><comment><USER91> Altered name of story, actually:"Paypall pulls out of Pornhub"

</comment><comment> ur-whale One more - in what is now a very long list - argument for bitcoin.

</comment><comment><USER92> Bitcoin Cash to the rescue!

<comment><USER93> Remind me again how you plan to pay your employees when all the fiat gateways also preclude this kind of transaction?

<comment><USER94> I think the lofty and idealistic "end goal" for cryptocurrencies is to be fiat independent, so you don't need any fiat on/off ramps and you will be able to use it for everyday purchases.

Whether that will realistically happen or not I have no idea, but that's the promised land held onto for true believers.

</comment></comment></comment><comment><USER95> Bitcoin will solve this problem.

<comment><USER96> Not until it's near as stable as the dollar it won't.

<comment><USER26> Tether follows the dollar (1 Tether === $1.00 USD).

<comment><USER27> Not anymore, is it? Last I heard they were in pretty significant legal trouble due to not actually having the 1:1 real-doller backing they claimed to, or other assets of equivalent value, among other issues.

<comment><USER26> "All Tether tokens are fully backed by reserves."

[https://www.coindesk.com/tether-says-its-stablecoin-is- fully...](https://www.coindesk.com/tether-says-its-stablecoin-is-fully-backed- again)

Tether (USDT) $1.00 USD

[https://coinmarketcap.com/currencies/tether/](https://coinmarketcap.com/currencies/tether/)

</comment></comment></comment></comment></comment><comment><USER97> I am vehemently against the illiterate rubbish posted on vice but this article is an exception.

</comment><comment><USER98> Ironic that the story is on a website called Vice.

</comment><comment><USER99> "...Pulls Out..."?!

An improper metaphor since it was the performers who got screwed, not Pornhub.

But, in the end, Pornhub _will_ be screwed (no pun intended).

</comment><comment><USER100> I'm working on a decentralized app to remedy these type of moves by big payment processors.

The new flow I suggest is: BTC -> Coinbase -> PayPal.

Withdrawals are instant & only subject to standard fees. The can funds can also be instantly converted to cash, via the PayPal Business Debit Card.

References: [1] [https://blog.coinbase.com/instant-paypal-withdrawals-now- ava...](https://blog.coinbase.com/instant-paypal-withdrawals-now-available- for-all-u-s-customers-58b2958a13aa) [2] [https://support.coinbase.com/customer/portal/articles/295995...](https://support.coinbase.com/customer/portal/articles/2959952-paypal- faq) [3] [https://support.coinbase.com/customer/en/portal/articles/210...](https://support.coinbase.com/customer/en/portal/articles/2109597-coinbase- pricing-fees-disclosures) [4] [https://www.paypal.com/us/webapps/mpp/business- debit-card](https://www.paypal.com/us/webapps/mpp/business-debit-card)

<comment> ur-whale > The new flow I suggest is: BTC -> Coinbase -> PayPal

The flow still can be censored. As a matter of fact, you now have two opportunities for your payment to get nixed.

<comment><USER101> The point is to spend out of btc via means of PayPal though. The shift card died because Switzer land couldn't hold it up.

<comment><USER93> The issue is and always will be the fiat gateways. If you do sufficient volume, someone's going to snoop around and ask questions like, oh, I don't know "where did you get this money and what did you say your business does again?" BTC is not a solution to this problem either. Maybe for the buyer since they're low volume enough not to raise eyebrows one way or the other, but as the vendor it just won't help.</comment></comment></comment></comment>


Characterizing the Performance Impact of AMP - <AUTHOR> https://blog.apnic.net/2019/08/08/amp-up-your-mobile-web-experience/ <comment><USER2>
        Where is the performance improvement coming from?
        The largest performance benefits comes from a drastic reduction in the number of various objects loaded in AMP

For the millionth time, you don't need AMP to improve your website performance. The reason there is "better performance" in the AMP vs non-AMP pages according to this article, is that there are fewer assets and objects to load in the AMP pages due to some of the restrictions AMP imposes.

In other words, load fewer assets, write less code, and you'll have better performance.

AMP is still bad, and it does not itself make the web faster.

<comment><USER3> But publishers weren't doing that before AMP came out. What AMP does is provide a tangible thing devs can sell to higher ups in order to be allowed (or just given the time) to write less code and load fewer assets. AMP also helps search engines (not just Google) be able to preload websites without violating user's privacy, which seems like a good thing, no?

I honestly don't get all the hate AMP gets around here. From a consumer standpoint AMP provides nothing but benefits compared to what we had before.

<comment><USER4> > I honestly don't get all the hate AMP gets around here. From a consumer > standpoint AMP provides nothing but benefits compared to what we had before.

Two main reasons:

1\. The obfuscation of AMP source URLs in Google search results is usually the biggest reason for the hate.

2\. The "AMP Carousel" in Google search results is _designed_ to keep people on Google and makes it much less likely people will leave to explore other pages on the publisher site (I can't find the article now but I recall reading a report from one publisher that showed a HUGE dropoff in users viewing an article and then going to view other articles on the site).

So it's less about the technology of AMP per se and more that, the way it's currently implemented, is about Google dictating more and more the way the web works.

<comment><USER5> #1 is being fixed for supporting browsers (Chrome so far). [https://webmasters.googleblog.com/2019/04/instant-loading- am...](https://webmasters.googleblog.com/2019/04/instant-loading-amp-pages- from-your-own.html)

You can see it for a number of sites already. For example, search for an AMP result from collins dictionary.

<comment><USER6> So essentially yet another standard pushed out by google via Chrome with 0 feedback from other browser vendors.

<comment><USER4> No, the other vendors gave feedback and objected to it: [https://www.theregister.co.uk/2019/05/30/mozilla_web_packagi...](https://www.theregister.co.uk/2019/05/30/mozilla_web_packaging/)

<comment><USER6> That sound even more like Google's modus operandi when it comes to browser development!

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> > AMP viewer versions are worse than their cached version in > this graph > since this plot does not capture the impact of > pre-rendering.

I'm confused by what the "AMP viewer" plot-lines represent then, but not including the actual pre-rendering is leaving off a huge source of improvements.</comment>


Three Things I Wish I Knew When I Started Designing Languages - <AUTHOR> https://www.infoq.com/presentations/language-design-process <comment><USER2> The semantics of negation is like security: there's an urge to ignore it at the beginning because it's not the use case you have in mind, but it turns out that it's absolutely fundamental to everything. You have to build it in from the beginning; you can't layer it on afterwards.

Different negation semantics put you in different computability classes. And there's a tension: you want more powerful semantics, but they take longer to run. Full first-order logic is great, but it's also exponential time to evaluate. (Also, the semantics of negation for FOL are easy to explain but not actually very similar to what you expect negation to mean in real life, leading to unexpected semantics.)

</comment><comment><USER3> "He summarises by saying the only good reason to design a programming language (I assume he means a radically novel language) is to shape your understanding of the problem. No regrets of being the only user of his first language, Datalist, because the point is that it shaped all his later thought in his research."

I don't design languages but I speak and write (iterating between different forms) for much the same reason. Thoughts made concrete in some way are much easier to manipulate. Programming can be much the same.

<comment><USER4> This is also why I'll often not ask important questions in meetings and will instead ask them in a chat message or email.

Not only does the act of writing it out make me ask a better question (and there are times I answer the question myself before sending it!), but the answers are often much better when written down. (Not to mention the additional benefits like easier searchability)

<comment><USER5> Discussion is cheap. If it is on topic, saying something stupid quickly and then rolling back the conversation is a far more efficient use of your time.

You do need to pick your audience.

Some people really struggle with this style of conversation. The rapid depreciation/substitution of facts can be a tad tiring.

But for those that can take it, this is essentially the same as writing things down but it's faster and has the added benefit of at least one other person "checking your math" as you go.

<comment><USER4> Don't get me wrong, a realtime discussion is extremely important in many cases. When brainstorming or talking through bugs or building something collaboratively, it doesn't get any better than an in-person or video meeting.

But when it comes to more complicated details, one-off questions, important decisions, or bringing the "results" of an investigation to a group, text is just better a lot of the time.

I can't count the number of times that a decision was made verbally in a meeting only to find that half the meeting misunderstood the decision or can't remember details about it the next day. Or going to discuss a complex bug/problem and having to spend a significant amount of time talking about the "setup" to the problem rather than the problem itself.

It's those cases where spending 5 minutes writing the question up and letting people read and understand it before jumping into a meeting, or even something as simple as following up a meeting with a written summary of the important points made can be very powerful.

<comment><USER6> > I can't count the number of times that a decision was made verbally in a > meeting only to find that half the meeting misunderstood the decision or > can't remember details about it the next day.

I've had the same experience, but I tend to follow a hybrid approach; bring up everything you can think of in the meeting, then immediately following up with an emailed recap of what was agreed upon. It helps make the verbal decisions explicit and iron out additional details.

</comment></comment></comment></comment></comment><comment><USER7> > Jeff Ullman's claim that encapsulation and declarativity are in tension

Can someone provide an elaboration on this, or link to this claim?

<comment><USER8> SELECT name FROM users;

Users.getName();

The above is "encapsulated" meaning that you need to have done the extra work to write "getName". Encapsulation is a bad solution to a worse problem (changing state).

If you hide information you have to do extra work to get it out. This "extra work" is in tension with a declarative approach which uses general verbs across domains, requiring therefore, these domains expose their data.

<comment><USER9> >This "extra work" is in tension with a declarative approach

No it isn't. They work complementary to each other. If User is an interface then retrieving the name could be a call to a db, read from a file, read in memory, http GET request, it doesn't matter. The declarative component here does not care how the request is fulfilled as long as the interface is respected.

<comment><USER10> The problem is that encapsulation makes it hard to specify reasonable constraints. For example, a "getter" might come with a constraint that "x = myobj.GetX(); myobj.SetX(x);" should not change the observable behavior of myobj. Or that "myobj2.ConstructFromXY(myobj.GetX(), myobj.GetY());" should result in a "myobj2" that's in some ways indistinguishable from "myobj". With a "declarative" approach, these constraints are implied in the system itself.

</comment></comment></comment></comment><comment><USER11> Url changed from [http://lambda-the-ultimate.org/node/5569](http://lambda-the- ultimate.org/node/5569), which points to this.

<comment><USER12> The virtue of the LtU link is that it gave a brief outline of the talk.</comment></comment>


LLVM's New Versioning Scheme - <AUTHOR> http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html <comment><USER2> It's nice that they're being explicit about breaking changes, but it's still a pain that they're doing them in the first place. I understand the argument for moving quickly, but projects that use LLVM suffer as a result.

Basically, any code that uses LLVM bitrots very quickly because the API is (potentially) incompatible on each release. The way that large projects (like Rust [0]) generally deal with this is by sticking close to the bleeding edge of development, and have an established process for integrating changes as they come. But smaller projects just don't have the resources to do this.

KLEE (a symbolic execution engine) appears to be 5 versions behind the newest release [1]. Terra (a language focusing on metaprogramming for high performance) [2] is only one version behind, but the maintainer has since graduated and I'm worried the community is too small to keep it from bitrotting.

Nominally the C API is supposed to solve this by being more stable, but it achieves this by exposing a smaller surface area, which means you can't do a lot of what you might need to do with this API.

I'd like a stable, full-featured API for LLVM. It sounds like they're going this way with the bitcode format, and I think they could start to move in this direction with the API as well. When the project was young, the argument was that avoiding stability allowed the developers the flexibility to explore design decisions and make different tradeoffs over time necessary for the long-term health of the code base. I understand that. But this instability makes it essentially impossible to maintain client projects without ongoing effort, and means that small projects almost always bitrot.

I think we know enough now to develop a pretty decent stable API for LLVM. And I'd be a lot more confident in trusting smaller projects that use LLVM if such an API existed.

[0]: [https://www.rust-lang.org/](https://www.rust-lang.org/) [1]: [https://klee.github.io/getting-started/](https://klee.github.io/getting- started/) [2]: [http://terralang.org/](http://terralang.org/)

<comment><USER3> Thank you for the only comment that isn't shallow semver debate.

And for being spot on.

LLVM is an incredible piece of software, but it's the lowest part in the stack.

Sure, clang, rust or swift have enough manpower to always follow, but smaller languages / compilers can't possibly hope to deal with breaking changes all the time.

The constant breaking changes also make it very hard to support multiple LLVM versions simultaneously.

Which makes development and deployment harder, because you can usually only install one LLVM version via distro packages.

So if you want to compile something that depends on an older / newer LLVM version, you have to compile LLVM, which takes a loooong time and is not something you can bring many people to do.

<comment><USER4> > The constant breaking changes also make it very hard to support multiple > LLVM versions simultaneously.

Rust supports LLVM 3.7, 3.8, and 3.9, and it isn't particularly hard to do so. Very annoying, yes, hard, no. It does need a bit of manpower though.

<comment><USER5> in open source man power is the hardest part, no?

</comment></comment></comment></comment><comment><USER6> I, for one, cannot keep track of which version we're currently at. It used to be that a major version was introduced with fanfare and broke things. The holy 1.0 or versions such as Python 3 and or Gnome 3. I will always remember if I'm running 2.x or 3.x.

Some time after the major version hits 3, the madness seems to begin. Am I running Firefox 73 or 85 or was that last years version? I honestly don't know anymore. Are the stable versions even, odd, Fibonacci or prime?

Why not be brave about it and use date-based numberings such as 16.12!

<comment><USER7> I like the idea of Semantic Versioning, but it does cause problems where if I'm going to do several breaking releases one after another I have to keep bumping the major version, and I hate that. I've actually put off doing breaking changes simply because I didn't want to bump the major version number, but I don't like that either.

Thinking on it now, I wish instead of major.minor.patch the format was major.breaking.minor.patch, where the first component is for "significant" releases, and the second component is what you use when you're simply introducing breaking changes (but doesn't qualify as a "significant" release).

<comment><USER8> > major.breaking.minor.patch

That's the same thing as projectName.major.minor.patch in some respects. You could just rebrand the project if it's a _completely_ different direction. There's not a technical reason to keep the name, just a marketing/political/organizational reason.

<comment><USER9> Exactly. You can keep the brand while still communicating the fact it's an overhaul.

</comment></comment></comment></comment><comment><USER10> I'm glad that semver is being widely adopted outside of the npm/rails world. It's incredibly useful to understand how much work will go into upgrading a package.

I think the attachment around "saving" major releases are really just attachments to marketing messages of yesteryear. It still feels good to announce "Library Version 3!", but from a technical perspective, semver is far more consumable and sensible. I'd rather be confident Lib v27.3.0 -> v27.4.3 won't break my build than having v2.9.0 -> v2.10.11 break my build, but look nicer.

</comment><comment><USER11> Postgres is going in this direction starting with the next release: [http://www.databasesoup.com/2016/05/changing-postgresql- vers...](http://www.databasesoup.com/2016/05/changing-postgresql-version- numbering.html)

</comment><comment><USER12> Why can't they just go with a year based version number like Ubuntu and Windows? $year.$month-$patch so LLVM 5.0 would be LLVM 17.09 (September 2017).

<comment><USER13> Nice, introduce a bug every century when 00 > 99.

<comment><USER14> There are numbers greater than 99.

I'd like to provide some examples but I can't find my calculator :(

</comment></comment></comment><comment><USER15> They still haven't got it right ; you can only decide how the version number should change by comparing the software to previously released versions. Deciding ahead of time how it will change on a periodic basis is a mistake.

</comment><comment><USER16> So stupid. The old scheme is easy to read if you just remove the dot in your mind: 3.8 -> 38, 3.9 -> 39\. Now They make it complex by 38.0 -> 38, 39.0 -> 39\. Removing a dot and a zero. Not helpful and So stupid.</comment>


Ask HN: What are the PL features that would get the most out of the human brain? - <AUTHOR> Imagine running software on someone's brain. What are the features of a programming language that could harness the most out of it? Just curious. <comment><USER2> I would think that it would have to be a syntactically simple language. The human brain isn't super efficient at processing instructions in the traditional CPU sense, so it would perform better if it "compiled" into reusable bits of "code" that could be made a habit.

Not exactly a programming language feature, but it would be nice to have a scheduler implemented somehow if that's possible. You can sort of train yourself to do this, at the cost of context switching inefficiency. Context switching is really expensive for the brain in time but can be feasible if done at boundaries of "task units" and only every few seconds.

</comment><comment><USER3> Lisp macros. Code as a data structure is a concept that the human brain would adapt to easily(and hopefully not misuse)

</comment><comment><USER4> Declarative programming languages based on formal logic. Have a look at the Prolog programming language to get an idea.

<comment><AUTHOR> I agree. Prolog seem pretty good for tersely writing predicates in a natural/human way.</comment></comment>


The Application Delivery Spell Book: Detect Invisible (Application) Stalkers - <AUTHOR> http://devcentral.f5.com/weblogs/macvittie/archive/2009/11/23/the-application-delivery-spell-book-detect-invisible-application-stalkers.aspx

<comment><USER2> This quote is astounding: "What I discovered is that our Web sites are being 'scraped' by other companies -- our competitors! Some of the information on our sites is valuable intellectual property. It is provided online, in a restricted manner (passwords and such), to our customers. Such restrictions aren't very difficult to overcome for the Web crawlers that our competitors are using, because webmasters usually don't know much about security. They make a token attempt to put passwords and restrictions on sensitive files, but they often don't do a very good job."

So this company puts "valuable intellectual property" on the Internet behind token passwords?

And if their competitors are accessing their Web site using stolen/guessed credentials, then I think they need the FBI, not F5.

</comment><comment><USER3> Executive summary: people can crawl your website, so buy a web application firewall from us.</comment>


Thousands of tardigrades crash-land on the moon. Did they survive? - <AUTHOR> https://www.washingtonpost.com/science/thousands-of-tardigrades-crash-land-on-the-moon-did-they-survive/2019/08/09/41944b72-b927-11e9-a091-6a96e67d9cce_story.html <comment><USER2> While they may have survived the impact as such, tardigrades being some tough little critters an'all, the Moon is rather unlikely to become a tardigrade Eden anytime soon.

Without water, they go into a dormant state from which they may revive after decades if water is supplied; however the extreme temperature swings on the Moon's surface is likely to do most of them in within the month.

<comment><USER3> "They can survive a wide range of temperatures and situations. Research has found that tardigrades can withstand environments as cold as minus 328 degrees Fahrenheit (minus 200 Celsius) or highs of more than 300 degrees F (148.9 C), according to Smithsonian magazine"

[https://www.livescience.com/57985-tardigrade- facts.html](https://www.livescience.com/57985-tardigrade-facts.html)

"The average temperature on the Moon (at the equator and mid latitudes) varies from -298 degrees Fahrenheit (-183 degrees Celsius), at night, to 224 degrees Fahrenheit (106 degrees Celsius) during the day."

[http://coolcosmos.ipac.caltech.edu/ask/168-What-is-the- tempe...](http://coolcosmos.ipac.caltech.edu/ask/168-What-is-the-temperature- on-the-Moon-)

I should have looked up the specific species of tardigrades and where they crashed to be sure, but it looks like they might be okay with the temperature swings.

<comment><USER2> -They will not die instantly, for sure, but the temperature extremes will definitely not do them any good over time - I'd be lying if I said I sat on the edge of my seat during biology class, but I think survival at those extremes was measured in days if not hours.

</comment></comment></comment><comment><USER4> Panspermia in action.

</comment><comment> lota-putty Invasion of moon by micro-aliens?

<comment><USER5> "Due to a terrible miscalculation of scale their entire invasion fleet is accidentally swallowed by a little dog."

</comment></comment><comment><USER6> Coming soon to Netflix: The Wrath of Tardigrade.

</comment><comment><USER7> Subscribe to read…

<comment><USER8> Alternate source for story: [https://www.theguardian.com/science/2019/aug/06/tardigrades-...](https://www.theguardian.com/science/2019/aug/06/tardigrades- may-have-survived-spacecraft-crashing-on-moon)

</comment></comment><comment><USER9> You, for one, will welcome our microscopic proto-arthropod underlords for the few hours that they last before going to the great tardigrade mosh-pit in the sk...

Oh. Carry on then.</comment>


The Macroeconomics of Stablecoins - <AUTHOR> https://medium.com/@rchen8/the-macroeconomics-of-stablecoins-5bb7f36afc07 <comment><USER2> I understand the utility of stable coins, but am not sure that consumers would be interested.

It's a non-appreciating asset, so no real consumer benefit to buying with USD and holding. However, consumers still have risk of oracles failing or flaws in software costing them money. What is the economic incentive to use a stablecoin?</comment>


MAGFest 2020 Swadge - <AUTHOR> https://swadge.com/super2020/ <comment><AUTHOR> I didn't see a video for 2020's so here is 2019's video.

[https://youtu.be/hfqV1GamDgA](https://youtu.be/hfqV1GamDgA)</comment>


Ask HN: Do you feel Excel is dangerously overused? - <AUTHOR> I'm an MBA and I took a data analytics course where we used Python and Pandas to manipulate decently-sized datasets.  Now I'm taking an optimization course and we use only Excel. However, I'm less confident in my Excel models than I ever was in my pandas-based models.
I feel like we're stretching Excel further than it really should go because it hides a lot of complexity and doesn't allow for easy testing.  Couple this with the fact there doesn't appear to be a large open source movement around Excel models so fewer people can verify its correctness.
Here's another a Reddit thread that inspired me to ask this question: http://www.reddit.com/r/finance/comments/35esdl/inside_the_johns_hopkins_finance_class_thats/ <comment><USER2> The problem is that the surrounding tooling is underdeveloped. Spreadsheets give the most widely accessible programming language available today, with a feature set that makes it an order of magnitude faster for making solutions to certain problems than any other language. Terrific!

But do you have source control? Diff? Three-way-diff? Unit tests? Code review? Any process at all?

Any programming language lets you hack up a solution for one-off problems; for most languages there are tools and an ecosystem to help "production" code meet higher standards. The problem isn't that Excel is commonly used, it is that there is no ecosystem to support its "production" use.

<comment><USER3> In fairness, the ecosystem around Excel is more than 30 years old and the community's expectations reflect that. There's nothing stopping someone from writing a test harness for Excel files...it's all automatable. There's nothing preventing a person from storing Excel files in version control or running a diff on the underlying XML.

The reason it isn't done is because by the time end users care about those things enough to get around to implementing them, they're probably ready for a process that already addresses those problems with baked in functionality...e.g. an RDBMS and application layer. When there's a business case for something better than Excel there are products and services and consultants that serve that business case.

</comment></comment><comment><USER4> Excel is used as a RDBMS. It is used as an analytics system. It is used as a workflow management tool. It is used as a templating system - I've even seen it used to print credit card statements with z/OS on the backend (so it is not like developers or budget are lacking). It is really easy to use, and everyone uses it. It can easily conform to the Agile method for creating dashboards and reports.

If you're concerned, perhaps write (or get someone to write) modules for it that you can import. A lot of proprietary stuff gets done in C++ modules, from investment to HR. These modules are pretty easy to break down complexity and testing, and are defacto in my industry (banking).

Excel is, simply, not going away.

</comment><comment><USER5> Yes. Yes. Yes! Omg. Yes.

The worst I have seen was a team of several hundred people who, on $200 half- broken laptops, were running - in parallel - 500MB Excel files for hours every day, which basically did a few linear operations on about 30 variables, before joining the results in a superfile itself taking up to 20 minutes just to open on a gaming-specced desktop.

In another case, I broke down an Excel model with over 50 tabs and discovered that there were only 2 input variables. Unfortunately the CFO of that business decided to go for the ostrich strategy (after all the monster model impressed investors).

Every business I have ever worked in had some convoluted, cumbersome, buggy, opaque, human-dependent Excel processes. My co-founder and I finance our startup replacing these with tight scripts running on AWS (amongst other things) - it's low hanging fruit. We approach these things as a black box, figure out desired behaviour, and rebuild from scratch.

Excel wins all the time because it's a UI that managers are familiar with, and they are often either the consumers, or want to audit your data processes. It's got a LOT of tooling that lets non-technical users do things they shouldn't.

If you thought Python Pandas was an improvement, try learning about the relational model and how to use a decent relational database (I recommend PostgreSQL, whose error messages will teach you a few things and which has a saner type system where you CAN compare two different integer types without getting NULL). You'd be amazed how far you can go with just SQL.

You should also do so from a UNIX OS, and from the command line (using pg, editing a file then running \f blah.sql). It will take you a few hours of pain but will be worth it in added productivity and transparency over any point and click alternatives.

What you're touching on is the power of abstraction, functional vs imperative programming, and particularly how proving programs can be enormously productive. SQL is powerful for this because it is declarative and very close to mathematics (Codd brought set theory to databases).

The next steps are category and type theory and then the Haskell/Mercury/Idris/Coq rabbit hole... an unpopular one because, as someone once told me, "businesses are resilient to application errors"...

<comment><USER6> >The worst I have seen was a team of several hundred people who, on $200 half- broken laptops, were running - in parallel - 500MB Excel files for hours every day, which basically did a few linear operations on about 30 variables, before joining the results in a superfile itself taking up to 20 minutes just to open on a gaming-specced desktop.

This is my nightmare. I work on a sharedrive with large Excel files that conk out Excel. We are working on building a tool to do this work but it is slow going.

<comment><USER7> What does the tool do exactly?

<comment><USER6> It's a custom developed planning/forecasting tool. It's a P x Q thing, but the P and Q are variable as to the type and mix of the Ps and Qs and need to be combined/sliced into many different ways for analysis/planning/forecasting. The team actually developing it has been very challenged.

<comment><USER5> You're not _really_ challenged until the growth rate of their Excel monster outpaces the rate at which you automate the existing stuff... thankfully Excel has a 1 million row limit, and it always takes them time to figure out how to shard an Excel database :P

<comment><USER6> Well in this case it's actually mine and the rest of the finance group's Excel monsters (plural) that are being automated. The devs are doing yeoman's work.

</comment></comment></comment></comment></comment></comment><comment><USER8> An friend of mine told me a story about excel abuse in her company. She's in HR, and it was annual review time. They were passing around a spreadsheet with 'employee name' and 'raise %'. Each manager was supposed to enter the raise for their employees.

So, a few days later, the spreadsheet came back, and the HR director was ready to process all these raises into payroll. My friend took a look at the sheet, and nothing made sense. Low performers were getting high raises, and vice versa.

After some investigation it turned out that some of the managers had sorted the spreadsheet so that they could find their employees better. But someone had screwed up, and only selected the name column. So, everything got messed up.

What was amazing that even after this was pointed out, the HR director was still pushing for the raises to go through as-is, because it would take too much time to do everything again.

</comment><comment><USER9> Many people here have already echoed the overuse of Excel as a RDBMS - I have noticed this as well. The problem however (at least in my area - education) has come from the DB admins not wanting anyone to access "their" data due to security and speed concerns. Their solution - give someone CSV output from the table rather than allow then read only access to the data. Problem is you get CSV files saved to excel files and you end of with thousands of Excel files floating around between people all based off the same sets of data - that if given a better method of direct access could be more accurate and effective. The lack of a direct connection to the database of record is what I have seen causes much of the overuse of Excel and if more tools (i.e. Tableau) were implemented to make those connections I think (again in my area at least) the use of Excel would dramatically decrease.

</comment><comment><USER3> People have "voted with their feet". That is why they use Excel...and before it Lotus 123...speaking of which my experience of editing letters that the VP of Engineering wrote in 123 is illustrative of why people use Excel for so many things: when faced with a problem Excel is cheap and available (and by cheap I mean the purchase is already a sunk cost). The VP of Engineering wasn't budgeted for a copy of Word Perfect and had he been he probably wasn't going to have the time to learn how to use it before the letter needed to be out.

There is, at least in my mind, perhaps a lesson for a prospective MBA here. People are not stupid and when everyone is doing something that isn't ideal, it may be because it is good enough or even the best alternative in practice. Part of the reason there isn't a large open source community around Excel is that there good professional support is ubiquitous and Excel has commercial grade documentation in such a diversity of forms that there is something close to any user's particular needs or expectations.

[http://www.dummies.com/how-to/computers-software/Software- Fo...](http://www.dummies.com/how-to/computers-software/Software-For- Seniors/Using-Office-2010/Working-with-Excel.html)

<comment><USER10> Adding to brudgers comment:

Rather than "Excel dangerously overused", I feel that technology is generally overused in an undisciplined unmindful inefficient way. Excel is often presented as the exemplary to such overuse.

I think that's because people who are motivated to come up with a solution to their common or more pressing problems of the day will naturally reach for the immediately accessible tools, and the more familiar the tool the better. In the usual corporate environment, Excel is already available for use.

Such people will be subjected to annual reviews that will not explicitly include any acquired or proven computer savviness. Instead they will be measured against the expectations of their job roles, which is likely not "applications developer". If they manage to create custom tools (via Excel or the many other manifestations of Microsoft Office) that have empirically demonstrated their worth to somehow become part of the production environment, then so much the better as far as the department or business is concerned (at least at first).

These people are not looking to become programmers. And besides, corporate desktops have gotten tremendously locked down since the late 1990's. It would take a fair bit of effort to make a business case to allow for some other computing environment (or tool) to be put on a corporate device. Which means experimentation would have to be done at home on their own time. Has it been mentioned that these people are not looking to become programmers?

We should put this sort of situation in perspective, and celebrate that there were and are folks willing to really learn a tool sufficiently as part of their problem solving in becoming more effective in their job roles. At some point of course the home-grown Excel-based solution will hit its limitations, which is where we as the truly expert computing professional types step in and get to work. If you really understand Excel and VBA and COM, you can really tease out quite a bit of the user story and business logic out the Excel "prototype" and come up with the more elegant solution.

And we can do this because we should be well versed at using this sort of technology in a more disciplined mindful efficient way.

<comment><USER11> The problem is that prototypes hardly ever remain prototypes and get hacked and hacked until they are a true nightmare.

</comment></comment></comment><comment><USER12> The point is that many BI enterprise solutions are mere data extractor with very little intelligence built into them. That means that people have to download big chunks of data and run models in Excel. No, you won't convince people to move away their models from Excel, but you can/should build an analytical layer on top of your BI warehouse solution so that people will use Excel less. Unfortunately, big BI stuff is very unflexible and building good models (aka: dashboards) can take months or even years. Excel is the de fact answer to that unflexibility, solve that and you will see far less spreadsheets moving around.

</comment><comment><USER13> I've participated in several assessments of a companies and departments. An inevitable question in the interview process for department heads is: "tell me about your Excel addiction". This is a sign that their BI tools have failed them and frequently that they have neglected to invest in reporting. The next level down is that they are performing operations necessities with Excel. The last level is that they have no operations software and it's all done in Excel.

</comment><comment><USER14> Excel is a great tool. It's great for keeping track of small or ad hoc collections of data. The problem is that it doesn't "grow" naturally with its needs.

A small business or project can start with Excel, then migrate to Access, then migrate to SQL Server for ACID compliance. But each migration step is not trivial.

I keep thinking that Kexi would be a good way to go rather than Access, but it is Linux-only.

</comment><comment><USER15> Programming is hard, period. You have to visualize the data in your head, write code to operate on it, and iteratively keep improving it or tracking down wonky bugs until you get "the right" answer. It becomes time consuming, tedious at times, and can lead you down rabbit holes for perpetuity. In fact, it requires a certain way of thinking that not everyone possesses or has the desire to develop the skills in.

Excel, on the other hand, lets you bypass a lot of these issues with programming and get to results faster in some situations. First, it is completely visual. I don't have to visualize the data, it's right there in front of me. This reduces the cognitive load on the worker. Second, I can develop iteratively and see the results immediately. Yes, you can do this in programming, but any changes require a recompile-->execute-->look at the data process that Excel includes intuitively. Third, Excel is accessible. People don't need to memorize syntax or commands, they can simply got to the formula finder and start typing in what they're looking for and excel will load the formula for them.

Can you build amazing Excel programs/spreadsheets? Yes. Can you build wonky spreadsheets that would make Bill Gates cry crocodile tears? Yes. Can you build amazing programs? Yes. Can you build convoluted programs that would send the flying spaghetti monster running in terror? Yes. There are two different problems conflated here. One problem is how do I answer a question. In some situations, especially small data ones, excel will provide a faster and more intuitive way of getting to the answer that is easily understood by the widest audience. The other problem is how do I build something that fulfills the requirements and isn't a mess. I think a better question might be what are Excel best practices that keep spreadsheets from becoming a mess.

</comment><comment><USER16> Yes, it's a (reasonably) intuitive front-end for a lousy data format.

Xlsx is supposed to be an 'open' format but it's overly complex and a PITA to parse. Like most things produced by Microsoft, there are a ton of unnecessary and overly-complex features added on that have little/nothing to do with data/calculations.

External tooling sucks (because documentation of the format sucks). The additions that are supposed to support networking suck. The security features that are supposed to ensure read-only access suck. The file size of XLS files are unnecessarily large and not conducive to transmission over the web. If there was some way to reasonably decouple the data from all the formatting, object, validation, security, and scripting overhead it wouldn't be so bad to work with.

Unfortunately, it's the most complex data structure manipulation format that 'business types' can reasonably understand so it gets used for anything and everything that deals with data and/or calculation.

</comment><comment><USER17> Excel can be a great prototyping tool. I'm a statistician/programmer, and yet, I sometimes like to explore some ideas quickly in excel. It has a reactivity that many programming languages like... it's very nice to change a parameter and see an entire computational graph update and a chart change in real time. The optimizer is actually decent and allows you to fit a lot of models. Excel is actually really cool.

BUT

using excel for ANY business critical purpose is insanity. Some desks in some banks rely on crappy old buggy spreadsheets to track the p&l of some large transactions, it's horrible. Academics use excel models and have been bitten because the models they produce are very hard to audit and to check for bugs.

So by all mean, use excel to play around with data if you would like to, and when you get a feeling of what you want, build a clean, well documented script with python tied to a database.

</comment><comment><USER18> You may he interested in the EU SPreadsheet Risks Interest Group which talks a lot about the problems of error checking and auditing spreadsheets.

[http://www.eusprig.org/](http://www.eusprig.org/)

Ray Panko also has some excellent work on this.

[http://panko.shidler.hawaii.edu/SSR/](http://panko.shidler.hawaii.edu/SSR/)

Personally: yes, spreadsheet use is scary. They're error prone; hard to audit; overly trusted. One person will create a very complex spreadsheet. If that person moves on the company is stuck with a mostly opaque blob created by someone who hasn't had any training in creating readable maintainable code. There are risks for sensitive data to be inadvertantly distributed to the wrong people.

</comment><comment><USER19> The issue with Excel is that it is extremely easy to use and is widely popular, especially for new companies as it is available to anyone with an Office plan, which is available on almost any Windows computer with very few exceptions. So when it comes to that a new business will rarely use something more complex and more expensive in the short term, they just prefer to use the Microsoft Office programs.

This is something I have mey a lot, including in the hotel/restaurant niche, where I work. All of them use it exactly because it is easy and is insanely powerful even for newbies. On the other hand at a certain point they start to learn about the negatives of it and an application that will do what they did in Excel in a proper way, is very easy sell.

Oh, about that... Pandas is great!!!

</comment><comment><USER20> Personally, I think Excel models are overly relied upon (which pretty much amounts to the same thing).

Excel provides a great tool, my issue starts when too many Excel spreadsheets are being used to provide decision support, with little or no control / audit of the logic in these sheets.

</comment><comment><USER21> I spent 2 years at a major bank converting processes from Excel sheets to a database with a strong distributed processing platform around it. They were doing risk analysis of tens of billions of dollars in CDO swaps (hey, it was 2007, these things were like printing your own money). That's where I learned about how much you can abuse Excel. FTP CSV output to servers? No problem. Copy data out to custom XML and import it back? Sure. Shell out to command line quant programs to run simulations? Fuhgeddaboudit.

So much abuse.

</comment><comment><USER7> I think you're correct in that its overused, but the jump from using a spreadsheet and programing even the simplest macros, is a big one for a large portion of the those use Excel. Much less using a RDBMS or programming in Python. Even trying the macro recorder makes most users assume 'that's not meant for me'. If the requirement of the job include building a model that can be used and manipulated by anyone than Excel is the only tool for the job, anything else requires more training.

</comment><comment><USER22> I think excel has a lot of good features for small samples. But when it comes to larger datasets, the macro and scripting capabilities (in Visual BASIC) are just too slow to be practical. So in that way, yes it's overused for large datasets, there are many many better/faster toolsets out there.

</comment><comment><USER23> Excel is fine for what is intended to do. However, too many people use it as a database.

</comment><comment><USER24> A wise man once told me: all project management eventually becomes an Excel spreadsheet.

</comment><comment><USER25> 35,000 line spreadsheet? Gosh, I couldn't imagine how that could be a bad thing...</comment>


Google News Growth Hack Exposed - <AUTHOR> http://jmarbach.com/google-news-growth-hack-exposed <comment><USER2> This could be what we consider "cloaking" in the ad industry. Ads containing legitimate content are submitted, but when a user clicks it, a risk assessment is done based on the users information (ip/location/js enabled/saving cookies etc).

If it's determined that you're unlikely to be a crawler or a person affiliated with the host site (google employee in this case) you're served a "Blackhat" ad, which is generally worded much more aggressively and against the TOS. High risk users are redirected to "Whitehat" pages which follow the TOS and generally don't attempt to actually convert a user. These high risk users are considered dead clicks.

A few years ago this was an _insanely_ profitable industry on Google Adsense, but they've cracked down a lot. The new major space for this type of advertising? Facebook.

<comment><USER3> Facebook cloaking is pretty huge right now. Even more so now that they've started cracking down hard on affiliate ads. Still, everyone knows that when you are cloaking it's just a matter of time before your account gets banned. FB is getting harder to cloak everyday. (Not that I do any advertising on FB, it's too stressful.)

</comment></comment><comment><USER4> This author needs to build his case before jumping to the conclusion, "And now, I hesitate to recommend it to anyone for any use." This was one article, on one day. It was clearly a scam, but it was one article. And if the Google complaint form is more focused on the publisher maybe that is because most of the problems submitted are from publishers.

The author needs to submit the complaint and move on.

<comment><USER5> I agree, there was an "other" section on the complaint form for him to use.

</comment></comment><comment><USER6> This is nothing new. "Publishers" get in all the time with less than spectacular backgrounds. Google provides a method for reporting sources that shouldn't be there.

[https://support.google.com/news/publisher/contact/report_iss...](https://support.google.com/news/publisher/contact/report_issue_content)

</comment><comment><USER7> Well that's certainly one weird old technique from a malicious advertiser.

</comment><comment><USER8> "I bet they are the only publishers violating the guidelines" \- should be "aren't"?

</comment><comment><USER9> Isn't this just a very sparse interstitial in front of the article placed by the publisher?</comment>


A full port of LINQ for JavaScript - <AUTHOR> https://github.com/Anstinus/lazy-linq <comment><USER2> One of the C# language features that makes LINQ so powerful is expression tree support; this allows the lambda (i.e. x => x * 2) to be read as a structured object and turned into something else (such as sql).

This would be pretty useful in ES7 or whatever spec is coming down the road for javascript.

<comment><USER3> In practice, it ends up being _too_ powerful. The expression tree stuff tends to mostly be useful when you're using the IQueryable<T> interface. If there's a way to use IQueryable<T> to much effect without breaking encapsulation and creating tight coupling, I haven't seen it.

<comment><USER4> When you're directly interacting with the database tight coupling is always going to happen, and trying to hide that only adds needless complexity.

The nice part about using Linq and IQueryable instead of e.g. query strings, is that the compiler (and intellisense) can check for some errors at compile- time instead of run-time. Just have to make sure your database model is 1:1 with the actual database.

After you have the data you can throw it into a non-database DTO to re-couple a bit and pass it between layers.

<comment><USER3> If you're looking for compile time type checking, I'd say you should go one further and just write your data access layer in F#. The SQL type provider gives you much more thorough compile-time error checking than anything I've seen in an ORM.

There are a couple different ways you can set it up to use the actual database to do this, thereby eliminating the extra work of having to maintain two different copies of your schema in two different languages, and making sure they're kept in sync.

<comment><USER5> People tend to drop type providers in F# for non-trivial programs, because the benefits need to be extreme in order to justify adding flakiness to the build. Type providers also have the problem of yielding errors to people who may not be in the best position to fix them. In a bigger team, it may be better to have one part of the program be yield errors at runtime, but still compile, so the team can keep on working until it is fixed. (The alternative of course being code generation, which is triggered intentionally.)

<comment><USER6> Disagree with this; because it very much depends on the program being written. From what I've seen they've become more popular with ironically the exception of the SQL ones for the reason you describe. As long as you can get the schema/example file locally on the source tree without the type provider needing to fetch it remotely it saves having to write up a lot of classes by hand. E.g with web UI calls just get the swagger Json and download it into your solution, for rest/json APIs just drop all the example documents into a folder and have the type provider reference that. Once the source data is local the flakiness mostly goes away and it just becomes a much quicker/less error prone way of expressing schema from a wide variety of sources. It's personally saved me a lot of time in development especially when interacting with many data sources at the same time - that's a lot of Dtos I would have to craft myself and I would in this case probably moved to a dynamic language a while ago for the work I do. A type provider that allows local schema would deal with your issue and then you would get type checked SQL queries at compile time without the direct db dependency and connection latency.

<comment><USER5> If you only use it that way, type providers are only slightly more convenient than doing what everyone already does for every other language: code generation.

See quicktype, for example, which supports a lot of languages.

[https://quicktype.io/](https://quicktype.io/)

This isn't built in to the editor, but can be run from the command line. A benefit is that it does not suffer from the other problems with type providers, like not supporting the full language, (e.g., records and discriminated unions in F#).

<comment><USER6> Having 10 lines of code for 10 different data sources and having a explorable Intellisense API for all of them is much nicer though than having 10 code generator + command line tools in my now required build pipeline, each one with a different syntax. Don't get me wrong - I will resort to code generation for some things if there isn't a type provider available but I always find more friction with this path and still doesn't give me all the benefits of type providers (e.g the SQL static type checking aspect). It works across different IDE's, don't need to introduce more build tooling, generated code is obvious vs a code generator, is as cross-platform as the underlying language/runtime is, etc.

Slightly more convenient for one source becomes very convenient as the amount of data your analyzing increases. It's not the be-all-end-all it was promised to be as a feature but it is easier than code generation IMO. If you can get rid of the disadvantages by keeping reference schema locally in its native form (e.g no flakiness you mention) then why not use it?

<comment><USER5> Fair points. I consider the lack of support for the good F# features like records and DU to be an extremely big downside. I think we agree on the facts, just weigh the costs and benefits differently.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Too bad this project does not supply Typescript typings. LINQ works best together with strong typed programming model.

</comment><comment><USER8> Not to steal attention, but i found this: [https://github.com/mihaifm/linq](https://github.com/mihaifm/linq) and have been using this for quite a while now.

<comment><USER9> There's also IxJS: [https://github.com/ReactiveX/IxJS](https://github.com/ReactiveX/IxJS)

It additionally has the benefits of ESNext (Stage 3) AsyncIterable support, and some synergy with RxJS.

</comment></comment><comment><USER10> I wonder why the examples do not use arrow functions. That'd make them more readable IMHO.

</comment><comment><USER11> This is great stuff! Thanks for this project!

</comment><comment><USER12> Any reason to use this over lodash and such?

</comment><comment><USER13> Could someone explain what the word "transpired" means in the context of the README ?

<comment><USER14> [https://github.com/Anstinus/lazy- linq/pull/1](https://github.com/Anstinus/lazy-linq/pull/1)</comment></comment>