Mormonism and Multilevel Marketing Companies - <AUTHOR> https://www.cambridge.org/core/journals/journal-of-institutional-economics/article/institutions-the-social-capital-structure-and-multilevel-marketing-companies/D9F67620E7B64D6B473A348C0C2273FA# <comment><USER3> Stay-at-home moms are another big reason for this besides the missionary experience. It is very common for Utah Mormon women to stay at home raising children.

The traditional full-time workplace totally disrespects that choice. SAHMs are not compensated for the hard work they do. It makes sense they would look for something part time to do to make a little money and think about something besides kids. But how can they do that in the traditional American workplace that expects 40+ hours a week and a resume with no gaps?

Many MLMs are built for SAHMs. They build on SAHM social networks and many of them are explicitly about making domestic life more bearable (kitchen gadgets, home goods, clothes, beauty and health products).

I think there's a story here about SAHMs as a neglected overlooked and disrespected population, and how MLMs fill a need for them.

BTW, I hate MLMs generally, I'm just pointing out that Mormon missionary service isn't the only thing attracting MLMs to Utah.

<comment><USER4> We should have part-time remote jobs (20 hours per week). Something like maintaining WordPress website or designing mock-ups with Sketch. Too bad these kind of jobs are rare.

<comment><USER5> > Too bad these kind of jobs are rare.

MTurk is basically this, so they're far from "rare". They're just not very interesting for first-world workers.

<comment><USER6> A big part of why they're not interesting is because they generally pay a small fraction of minimum wage. The median is about $2 an hour. So I don't think MTurk serves as an adequate example of the type of job the op referenced.

<comment><USER7> Much of the work done by stay at home moms pays less than minimum wage, though: Etsy stores, clipping coupons / general penny pinching, these MLMs.

I do think that the main difference is that the mechanical Turk work is just soul-crushingly boring.

<comment><USER6> Clipping coupons is soul crushingly boring as well. I also run an Etsy store as a side activity and make about $25 per hour, 5-10 hours a week. Median for all Etsy is still about minimum wage, which, again, is significantly better than MTurk @ $2 an hour. And I'd argue the high volume low margin work for Etsy stores looks every but as soul crushing.

</comment></comment></comment></comment></comment></comment><comment><USER8> You are going to find this effect in any strong community where social capital is present and influential. There's nothing specific to Utah's LDS community that leads to MLM peddling/participation. It's just that this community is one type of community where social capital plays a large role.

By the way, tech communities are not immune to it. It might not be MLM, but think about how frequently you encounter tech products and services that seem to be flying on nothing but hype and charisma.

<comment><USER5> Yup, from the abstract: "Successful MLMs require a social capital structure where members can access and mobilize both strong and weak social ties. ... The LDS Church's institutions foster a social capital structure where (almost all) members have access to and can leverage social capital in all its forms. LDS institutions encourage members to make meaningful social connections characterized by trust and reciprocity with other church members in local neighborhoods and across the world." This is the point of this article; not so much MLM itself, but how even something "weird" like MLM can be a relevant indicator wrt. the strength of social ties.

Social capital is a very good thing indeed; it is the foundation of a truly inclusive society where people are not going to be marginalized and neglected in their most pressing needs, regardless of outside factors like income, class or socio-economic status. And we know of very few ways of sustainably fostering this kind of grassroots social capital, other than community-based groups, often based on some sort of established tradition or religion.

<comment><USER9> Eh, I'm not sure about separating class from social capital. In Bourdieu's framework (which tbf is dated), there are definitely haves and have-nots. The way different forms of social capital are valued in different contexts is one of the major ways that social hierarchies gatekeep and maintain themselves.

<comment><USER5> Even in Bourdieu's framework economic, cultural and symbolic capital might well be more relevant to class distinction. That would seem to be the gist of his work on distinction and the judgment of taste, at least. Social capital plays a role in that it can be _downstream_ of the distinction created by other dynamics, but not necessarily in "more" social capital throughout a community leading to "more" distinction. If anything, one would expect the opposite.

<comment><USER9> That's fair. In retrospect I was thinking more of cultural capital (which I'll chalk up to how contemporary critiques of Bourdieu tend to conflate them).

</comment></comment></comment></comment></comment><comment><USER10> Data point: I once went to an "employment presentation" by a member of local Mormon leadership, when I lived in PDX. The meeting was held at his large and rather conspicuous residence. The event had been pitched to church members.

It turned out to be a presentation on a health products MLM with some crazy amount of buy-in required up front. The presenter had a huge amount of the social capital that the research talks about. He was very charismatic in addition to holding the religious rank, so to speak.

Also relevant to another article on the front page, his wife walked in mid- presentation to show us the MLM pills she was taking to fight cancer.

I was very angry to realize that the meeting was MLM related. Meanwhile the local employment center run by the same church was staffed by a member of the boards of several high-profile fast food chains (you'd know them), and he basically showed us that there was a fax machine and computer we could use. He was a nice guy but this was very frustrating in comparison to the comparatively warm and attentive MLM pitch.

</comment><comment><USER11> You can read the full paper here: [https://sci- hub.tw/https://www.cambridge.org/core/journals/j...](https://sci- hub.tw/https://www.cambridge.org/core/journals/journal-of-institutional- economics/article/institutions-the-social-capital-structure-and-multilevel- marketing-companies/D9F67620E7B64D6B473A348C0C2273FA#)

<comment><USER12> Thanks! It actually ended up being pretty interesting.

</comment></comment><comment><USER13> I don't have access to the paper so I can't comment on its entirety, but the abstract is spot on in my personal experience.

One thing not mentioned in the abstract (but perhaps it's mentioned in the paper) is how many missionaries do door-to-door sales when the return home. Many don't, but a nontrivial number do. I suspect that that missionaries play a role in the popularity of MLMs: either because of former missionaries joining MLMs (because some missionary skillsets are applicable to MLM marketing/selling), or because a nontrivial number of people in Utah have a soft spot for missionaries and I think MLMs often exploit that same soft spot.

<comment> dorian-graph I would have some doubts about this because the LDS members who go on missions are predominantly male and from what I'm aware of, those members involved in MLM are predominantly female.

There has been a large increase in the number of female members serving missions since a few years ago though, but has MLM already been popular since before that?

These are verifiable things though, if you have the data.

There is a large amount of male returned missionaries who do stints at a handful of companies (e.g. some solar one) who do door-to-door sales though, and can leverage their former experience.

<comment><USER14> I'd imagine going door to door offering X% savings on your monthly electric bill is so much easier than pitching the Native Americans are actually just a 3000 year old lost tribe of Israel. [0]

[0][https://www.bibleodyssey.org/en/places/related- articles/morm...](https://www.bibleodyssey.org/en/places/related- articles/mormon-scripture-and-the-lost-tribes-of-israel.aspx)

</comment></comment></comment><comment><USER15> This is recognized and lampooned even from within the LDS community.

For example, in the LDS film "the RM", the main character's parents are running a ridiculous MLM scheme called "LD3" (Latter Day Discount Distributors).

<comment><USER16> Absolutely. I'm LDS and myself, my family, and my friends that are LDS abhor MLMs. But I guess I self-select into a lot of that group.

</comment></comment><comment><USER17> I live in Utah, can confirm this is a huge thing here. Fortunately (I say fortunately because I hate MLMs) the leaders of the dominant religion here have been pretty vocal about being a little smarter with "shady investments", and I think some of them are trying to allude to MLMs. Hopefully they just say it outright some day

<comment><USER18> I also see that this seems more specific to the culture of Utah than of the Mormon religion as you don't see this same behavior in other places with large Mormon populations such as Mexico or Brazil.

<comment><USER19> Do Mexico and Brazil have a lot of MLMs yet?

</comment></comment></comment><comment><USER20> That's interesting in the context of this other post also submitted to HN:

"How Mormons Built the Next Silicon Valley While No One Was Looking"

Direct link: [https://marker.medium.com/how-mormons-built-the-next- silicon...](https://marker.medium.com/how-mormons-built-the-next-silicon- valley-while-no-one-was-looking-c50add577478)

HN post: [https://news.ycombinator.com/item?id=23882224](https://news.ycombinator.com/item?id=23882224)

<comment><USER21> I've heard this phrase, that SLC is supposed to be the next Silicon Valley quite a few times, but in all of those cases it was from people living in SLC or around it.

<comment><USER15> "Silicon Slopes"

Qualtrics, Blendtec, LucidChart, Domo are all successful Silicon Slopes startups

</comment></comment></comment><comment><USER22> They don't say it explicitly in the summary, but there's obvious power structures in play as well...real pressure to participate.

I remember once getting a haircut, and the barber starting to pitch me an MLM holistic health thing in the middle of the haircut. Tried my best to say no in the politest way.

</comment><comment><USER23> "Under the Banner of Heaven" explains this effect a bit.

[https://www.amazon.com/dp/B00CZCGPUA/ref=dp-kindle- redirect?...](https://www.amazon.com/dp/B00CZCGPUA/ref=dp-kindle- redirect?_encoding=UTF8&btkr=1)

</comment><comment><USER24> I grew up outside Utah, but have lived here now for 20 years.

To me, the abstract reads like "water is wet". Both true and obvious to anyone experiencing it. Because I'm not willing to willing to pay for the actual paper, I don't know if it contains any inaccuracies or misunderstandings—there often are when describing Utah's peculiar culture—but scanning the citations it appears very well researched.

While MLMs are unreasonably successful in Utah, don't get the wrong idea. In my experience, the majority of Utahns dislike them just as much as everyone else. It's just easier for MLMs starting in Utah to target the willing minority and expand globally.

Update:

Having read the paper thanks to the free links in the comments, I can say it's pretty accurate. The description of Church programs is a bit idealized compared to messy reality, but that's to be expected. I really only disagree with one statement:

> In addition to the social capital and cultural explanations, legal > institutions may also be contributing to the prevalence of MLMs in Utah.

It's a generous statement, but as a local I believe the opposite to be true. The prevalence of MLMs has co-opted legal institutions resulting in more friendly laws.

</comment><comment><USER25> It's not purely based on religious structure and institution, it's also a convenient "side hustle" for large families (though that's a religious consequence), especially with the common stay-at-home mom in Utah - <USER2> county in particular.

</comment><comment><USER26> I'm unable to open this without permission, but I'm curious about the extent to which they interrogate the combination of rigid gender roles and wage stagnation.

I'm not mormon, but grew up in an evangelical christian community that held many similar cultural ideals, especially the importance of maintaining a "traditional" nuclear family, where the father is expected to be the primary breadwinner and the mother is expected to play the role of homemaker and often home educator.

I'd speculate that a big factor in its adoption is that it's an income supplemental that allows you to continue childcare or homeschooling.

</comment><comment><USER27> Is there a way to read the full paper? Seems like a fascinating read. ( not sure what it has to do with tech though )

<comment><USER28> [https://sci-hub.tw/https://doi.org/10.1017/S1744137420000284](https://sci- hub.tw/https://doi.org/10.1017/S1744137420000284)

<comment><USER27> Thanks!

</comment></comment></comment><comment><USER29> I know very little about life in Utah, but it seems to me that MLMs provide a way to monetize social capital, for those who wield it. It's well known that many MLMs do an insignificant amount of sales outside of the org, and mostly serve as a pyramid scheme, where earlier players are compensated by the startup costs of later players. Most players will never recoup their startup investment by recruiting or external sales.

It strikes me that the mid-level players who make it to profitability probably have enough skills that they would make far more money in something closer to a regular corporate or sales environment. If handy work and piece work were the original gig economy, and the app-driven gig economy is the modern incarnation, MLMs are the intermediate wave.

</comment><comment><USER30> Passes the sniff test. I spent a good deal of time in SLC when I was 18/19\. This was the 90s and I remember even back then that almost all of the classified job ads were setups to entice you into a MLM presentation.

</comment><comment><USER31> Also industries that require the ability to relentlessly "sell, sell, sell".

Many political advertising and online DTC mattresses companies (to name a couple) are based Utah.

<comment><USER32> It is one of our weaknesses as a people, honestly. I love my church, but we have a go-getter culture that often conflates hard work (and sales _is_ hard work, just not necessarily _good_ hard work) with virtue.

We tend to do well in corporate culture---which says good things about corporate culture, and bad things about us.

</comment></comment><comment><USER33> This is a well noted connection between MLM and religious fundamentalism.

[https://www.patheos.com/blogs/rolltodisbelieve/2018/02/28/ov...](https://www.patheos.com/blogs/rolltodisbelieve/2018/02/28/overlapping- venn-diagram-christianity-mlm/)

</comment><comment><USER34> I've got to commend the OP here for having the guts to title this appropriately whereas Cambridge titled it "Institutions, the social capital structure, and multilevel marketing companies" when the abstract states that they explicitly (exclusively?) focus on MLMs in relation to Utah/Mormonism.

<comment><USER35> Wouldn't it even be better to have titled it "Utah Mormonism and Multilevel Marketing Companies" then?

As a Washingtonian Mormon, the social system is different out of Utah than in. And again a change as you move out of the northwest to areas where there are less adherents again.

<comment><USER36> The cultural aspects of Mormonism are muted out of state, but even out-of- state Mormons are inextricably tied to the Utah (University, relatives, friends who moved from or to Utah).

I've hit all four quadrants of the Mormon/Non-Mormon, Utahn/Non-Utahn matrix and from my perspective, we still shared much of the Utah culture (though I never would have admitted it at the time) when I grew up in another state.

</comment></comment></comment><comment><USER37> This is common knowledge in the U.S. Of more interest to us is "Mormonism and Intel Corporation."

</comment><comment><USER6> TLDR: Mormanism is a very missionary-driven religion. Success in MLM's requires a similar missionary-style dynamic. Therefore Mormanism is fertile ground for MLM's.

</comment><comment><USER38> Herbalife is very popular in Hispanic church communities in Chicago, Texas, etc. John Oliver did a story on how 60-80% of new members were Latino.

[https://www.latimes.com/business/la-xpm-2013-feb-15-la-fi- he...](https://www.latimes.com/business/la-xpm-2013-feb-15-la-fi-herbalife- latino-20130216-story.html)

</comment><comment><USER39> >"In multilevel marketing companies (MLMs), member-distributors earn income from selling products and recruiting new members. Successful MLMs require a social capital structure where members can access and mobilize both strong and weak social ties. Utah has a disproportionate share of MLM companies located in the state and a disproportionate number of MLM participants. We argue that Utah's dominant religious institutions have led to the emergence of a social capital structure, making MLMs particularly viable. Utah is the most religiously homogeneous state; roughly half its population identifies as members of the Church of Jesus Christ of Latter-day Saints (LDS Church). The LDS Church's institutions foster a social capital structure where (almost all) members have access to and can leverage social capital in all its forms. LDS institutions encourage members to make meaningful social connections characterized by trust and reciprocity with other church members in local neighborhoods and across the world."

I intuited this interesting relationship when I worked in Utah for an MLM in 2007-2008.

But MLM's and LDS -- is not the end-all understanding of that relationship!

You see, if you wanted the bigger picture, the larger understanding, you'd compare the above things with Corporate Hierarchies, Government Hierarchies (foreign and domestic), Social Hierarchies, Financial Hierarchies, and even such things as the hierarchies of Ancient Rome (probably the biggest MLM (and later in its history) Ponzi Scheme that ever existed(!), in that the earlier you were a settler, the more you were rewarded (earlier settlers and their descendant families became Rome's Patrician class, at the top of the social hierarchy), while latecomers to that party got increasingly smaller shares of land, property, privilege, etc. ("Those who are tardy do not get fruit cup" \-- to quote the Mel Brooks film, "High Anxiety" <g>))

Also, you'd clearly define MLM Vs. Ponzi schemes -- they're basically the exact same thing, except that one has an underlying good, service, or something of value which is fairly exchanged, whereas in a Ponzi scheme, the underlying good, service or value either doesn't exist, or exists only in a partial, malformed state. (That is, the value exchange in transactions is asymmetric -- due to fraud of some sort...)

But let's kick those understandings up a notch!

Let's throw some gasoline on that fire!

To this ecclectic mix, to really get an understanding, you'd throw on some Jordan Peterson, specifically what he says about Dominance Hierarchies in society!

And then to season it, you'd add to this some Adam Smith, who can probably be said to be not only the guy that codified Capitalism, but could safely be said to have been the ultimate master of games relating to anything having to do with finance, but more broadly, with the broadest definition of capital.

Basically what Sun Tsu was to War -- Adam Smith was to Capital, in its broadest definition.

So, if you really wanted an understanding, you'd take all of these ecclectic ingredients, mix them all together, season, heat and serve!

But this article is a great first step in that direction!

</comment><comment><USER40> You can be Mormon and also not engage in MLM. Nothing about being Mormon means you have to be stupid enough to fall for such scams.

</comment><comment><USER41> Exmormon and former missionary here. Pretty much, makes sense. And that's all that I can charitably contribute to the conversation, IMO.

<comment><USER42> "How can you tell if someone is Vegan" applies pretty well here.

<comment><USER41> Or exvegan.

</comment></comment></comment><comment><USER43> My uncle was raised LDS. When you lapse from the faith but remain friendly and on good terms with active members you are considered a "Jack Mormon," which he classified himself.

Coffee is a prohibited food for active members which is why he would occasionally send me a pound of Jack Mormon Coffee on my birthday.

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

Great guy, gracious, engaging, and always liked to laugh.

</comment><comment><USER44> Religion and MLM go hand in hand, that's interesting.

I will push the concept further: Are religions another form of MLM?

In both cases, we are trading our time, effort, and money for status within a community; there are hierarchical ranks, obtained by recruiting more people and proselytizing effectively...and MLMs and religion both seek to answer tough questions, whether that be creation or health, salvation or financial freedom. And both MLMs and religion rely upon false premises, mythology, peer pressure, and irrational fears.

Lastly, If MLMs or religion had extremely solid evidence behind them, would they truly be MLMs or religion? This seems the most important linkage, these institutions (and many others) prey upon inherent weaknesses in the human psyche for their own advancement.

Downvote brigade has arrived, I love receiving downvotes for playing devil's advocate; respond to me if you're disagreeing, don't downvote and bury what you dislike.

<comment><USER8> You're being downvoted, I assume, for breaking HN guidelines, specifically around the accusation of brigading: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER44> I should have included the following characters "Edit:"...I was downvoted multiple times before I even mentioned brigading. That was a post-hoc edit after I'd been downvoted multiple times, I think I was at -2 within 1-2 minutes.

HN commenters simply downvote things they disagree with, even if it pushes the narrative further and promotes more thought. IMO, downvotes should be reserved for low-effort wastes of space comments, not dissenting viewpoints.</comment></comment></comment>


Ask HN: Is there a RapGenius for contemporary art? - <AUTHOR>

Much like rap songs, I think art, and particularly contemporary art, is one of the most mysterious things to understand. So I was wondering if there's a RapGenius for art. <comment><USER2> We're building this at Artsy.net! It's in early stages but this week we opened up the ability for all users to contribute insights about artworks on the site (through "Posts", the best of which get featured on artwork and artist pages).

Everyone should contribute! Here's some artworks with great insights our early contributors (art world insiders, art historians) have made:

[http://artsy.net/artwork/diego-velazquez-the-toilet-of- venus...](http://artsy.net/artwork/diego-velazquez-the-toilet-of-venus-the- rokeby-venus) [http://artsy.net/artwork/manuel-alvarez-bravo-la- tolteca](http://artsy.net/artwork/manuel-alvarez-bravo-la-tolteca) [http://artsy.net/artwork/nick-darmstaedter- sting](http://artsy.net/artwork/nick-darmstaedter-sting) [http://artsy.net/artwork/marc-chagall-clown-with- mandolin](http://artsy.net/artwork/marc-chagall-clown-with-mandolin)

</comment><comment><USER3> Unfortunately, I cannot think of such a service. But your question leads me to imagine an annotation system for the Google Art Project that could be rather interesting. It would be great to be able to select a piece of artwork and then see particular parts of it analyzed / critiqued upon by professors, art historians, other artists, anyone who has something to share &c. (obviously these annotations would be hidden by default as not to mar the beauty of the piece in question).

Personally, I think such annotation systems could be the future of internet sharing / collaboration. It would be very useful, to me at least, to be able to visit a site, whether it be a text article or image gallery and see interesting annotations. Such a thing could be implemented as a browser plug- in tying back to an online service - i.e., you can make annotations in your browser but then visit the main site and search for pages and see annotations others have made. The "pinning" of annotations could also lend itself well to the Pintrest format / formula.

<comment><AUTHOR> Oh yes, some kind of add-on for the Google Art Project would be really cool!</comment></comment>


Why Why Functional Programming Matters Matters - <AUTHOR> http://weblog.raganwald.com/2007/03/why-why-functional-programming-matters.html# <comment><USER2> It's nice to see this surface again. Personally I think it's interesting, and useful. If you want to read previous discussions about it from here on HN, here are some references:

<http://news.ycombinator.com/item?id=1048304> <\- 9 comments

<http://news.ycombinator.com/item?id=3934> <\- 4 comments

The original "Why Function Programming Matters" has, of course, also been submitted:

<http://news.ycombinator.com/item?id=50193>

<http://news.ycombinator.com/item?id=983401>

<http://news.ycombinator.com/item?id=1482797>

There was less commentary on that.

<comment><AUTHOR> You know... I often do not give encouragement and/or express gratitude because I am afraid of being corny.

But I am beginning to see that even if you already know the value you bring to HN, or even if it seems sycophantic to say I appreciate you, it never matters so much that it should suppress a sincere, neighborly, human, "thank you, keep it up"!

So even if this is the wrong place (or even the wrong way) to do this -- an upvote seems insufficient -- I want to _say_ thank you, RiderOfGiraffes, for all that you bring to the experience that is HN; may your tribe increase.

<comment><USER2> Thank you - appreciated.

</comment></comment></comment><comment><USER3> "It is a logical impossibility to make a language more powerful by omitting features" - false. Different designs have different limitations. C can't have precise garbage collection. Shared-memory threads can't be isolated and so can't be automatically migrated. Pure functional code can be rewritten by the compiler in a way that imperative code can not. A language that omitted any global construct would be intrinsically sandboxed against use of any functionality not injected. And so forth.

<comment><USER4> I think we're in violent agreement. Removing a feature only makes things better when it permits the addition of another feature. This is the point I trying to make about pure functional programming. Removing the ability to arbitrarily entangle state in time does not make a functional language more powerful, but adding lazy evaluation does make it more powerful.

Am I correct that we are seeing things the same way, even if my ability to explain it is poor?

<comment><USER5> Ah,

You are looking at the situation from a pure semantic point of view and from there, you are correct.

I think the parent is looking thing from the point of view of effective computing and they are correct from their point of view.

The viewpoint are perhaps incompatible.

One thing to consider is that I would _say_ that I "can't" implement a recursive descent parser in Ruby because Ruby is too slow. Thus from the point of view of effective computing, adding features that make Ruby slow also removes some power.

I wouldn't say either position is "correct" but I think you have to take both into account.

</comment></comment></comment><comment><USER6> The link to the original paper seems to be broken.

I found this one on Kent's website: [http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pd...](http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf)

</comment><comment><USER7> An argument for functional programming languages that I've heard many times is that they can be optimized very well for (automatic) multi-core parallelism and even GPUs.

But I've never found any actual examples, evidence or benchmarks showing this in practice.

Anyone have any pointers on this?

<comment><USER8> You should listen to Guy Steele's talk he gave on 2009's ICFP: "Organizing Functional Code for Parallel Execution: or, foldl and foldr Considered Slightly Harmful" (<http://www.vimeo.com/6624203>).

He drives the point home, and adds that you also need appropriate data structures.

</comment></comment><comment><USER9> "And one reason many people consider Java "better than Ruby" is because you cannot open base classes like String in Java?"

Do people really say this? The ability to monkeypatch classes is one of Ruby's many strengths. It would only add unnecessary complexity if there were any "special case" classes. I guess it's somewhat helped by the fact that people generally modify base classes responsibly.

Rspec is one example of how this is used to great effect:

      my_object_of_any_kind.should == "pretty awesome"

      MyModel.should_receive(:find).with(id).and_return(@mock_model_instance)

<comment><USER10> People do argue that by allowing monkey-patching, you guarantee that groups of developers will step on each others' toes. Refinements in 2.0 ([http://ruby.about.com/od/advancedruby/a/Refinements-The- End-...](http://ruby.about.com/od/advancedruby/a/Refinements-The-End-Of- Monkey-Patching.htm)) are an answer to that.

</comment></comment><comment><USER11> I disagree with a lot of the points in the article, but I think its well- written, thought out, and worth reading.

<comment><USER4> I'm interested! Can you elaborate a little on which points clashed with your experience?

<comment><USER11> Sure. Here's one example, " _It looks at first like there's a clear factoring 'Baltic Avenue has a method called isUpgradableToHotel,' but when you look more closely you realize that every object representing a property is burdened with knowing almost all of the rules of the game.

The concerns are not clearly separated: there's no one place to look and understand the behaviour of the game._"

The concerns are clearly separated, but they're separated along a different axis than what you're looking for. I'll argue that for any partitioning of concerns there will be a concern that is not adequately separated.

With that said, I must admit I'm unclear why each property object has to know all of the rules of the game. They don't have to know most of the rules AFAICT. This may seem like a small point, but I do think its important. I think the only thing they have to know if their cost to buy, upgrade, and rental price (I'm not a monopoly expert, so its possible I've missed something).

To buy there's a fixed price associated with the property-- you just need to not be owned by someone else. To upgrade I assume its a fixed price. I think the only requirement is you own all the colors. In which case you defer their ability to buy to another class -- the property group class. Baltic Ave doesn't need to know what the actual rule is -- it just asks "Light Blue Property Group Object -> Can I be upgraded?"

But the property object has no idea about passing Go, what Jail is, how many dice are used, what Chance cards are, who their neighbors are, how many other like-colored properties there are, what special powers railroads have, if there's a community pot, or how many players are even playing the game. The partition of concern has been made along some axis that this programmer thought useful.

Another is the telephone test and entangling what and how. I think what and how are the same thing. The for-loop example though is solving a different problem than the select example. It's solving a more constrained problem that you can't generally solve with the select syntax. It turns out though that what _you_ are looking for happens to be provided by both solutions. As you move up the stack your problem requirement may be less constrained, in which case you don't need the _rigor_ , but we should note that the _rigor_ isn't simply the _how_ , but just a degree of rigor (unfortunately standard languages with for-loops have to solve more constrained versions of the problem). What the telephone test is really about is that for anything you actually care to discuss on the phone will not be extremely rigorous.

But I feel like those are nits which I probably uniquely have, which is why I didn't actually mention them. But I wanted to point out that I disagreed, because I think it strengthens how much I enjoyed it. And while I disagree today, the fact that I read it and thought about it may mean that I disagree less tomorrow.

<comment><USER12> _I think what and how are the same thing._

I'm really surprised by this statement, and I hope you will expand on it. I think the example of relational databases and SQL (which is very close to the example in the blog post) demonstrate conclusively that there are _many_ case where huge gains are attained (in development time, maintenance, flexibility, ...) by building systems that allow a question to be answered by specifying "what" instead of "how".

Now I suppose you could argue that writing a SQL statement doesn't _really_ specify "what"; it still specifies a "how", it's just that the "how" includes things like "let the RDBMS decide what indexes to use to answer this query, what order to access tables, whether to get data from disk or in memory, etc". But then I would ask what you propose as an alternative to the what/how distinction ... because there very clearly _is_ a difference between SQL and hand-crafted for loops.

<comment><USER11> To me they're just degrees of abstraction/assumptions/givens (I'm not really sure what the best/right term is).

There's an evolution from:

       label:
          if (i > size) goto exitLabel;
       yada yada yada

To iterators. When you see an iterator you don't care if there's an exitLabel or fall-through. For the most part you don't care if the loop counter is an int or long, or if there's no loop counter at all, as its using a null terminator or something. The iterator is the "what", the old skool method is the "how".

But the walk from iterators to select is similar. A select statement (grossly simplified) is simply a for-loop over a collection where you don't care about order:

       select * from collection

That's not so intersting. So lets look at a common looping construct. It might look like:

       for (obj in collection) {
          if (obj has some property) { add_object_to_new_collection}
       }

We can abstract that and make it:

       select * from collection where property_holds;

Of course, this select, again, doesn't care about the order of the iteration at all (which also likely means doing things like having side effects evaluating the property will result in non-deterministic behavior). The iterator has become the "how" and the select the "what".

But while this is one man's high level abstraction this is another man's "how". For example, if I'm looking for anomalies in the data, I may not care to specify what the anomaly is. Just something that looks "out of the ordinary". One could imagine a language saying:

       find uncommon relationships in collection1 x collection2

It should have well-defined semantics, but these semantics probably don't care if you use the "select" statement or the "for-loop" or some other mechanism. Those are just implementation details. Those are both "how's" not the "what".

To me you're just walking a chain of abstractions. There's no discontinuity where things suddenly break from "how" to "what".

Remember when Fortran was created it was a revelation because you could now just tell the computer what to do, not how to do it. You no longer had to load specific bits into specific locations in specific flags or accumulators. We certainly would no longer consider Fortran specifying the "what", but people did.

Now when I see people saying here's an abstraction so you don't have to specify "how", my question is "what are the assumptions?"

I don't think this is a fundamentally different way of looking at things, but rather a way that puts the emphasis on the nuance rather than the benefit.

One more point I should make on assumptions (and this goes to the convention vs ceremony debate) is that I think that part of why Raganwald like the notion of "what" is that it captures the _right assumptions_ or _best practices_. Like above when I mentioned the side effects during property evaluation -- that's a pretty yucky thing. Just makes reasoning hard. Part of what makes good library/language design is capturing assumptions that bend programmers to make usually _good_ tradeoffs. This is the whole trend of conventions in frameworks. But again, to me this is a gradient -- not black and white.

<comment><USER12> OK, this all makes sense. But why does it matter? Am I as a programmer going to make mistakes if I try to write programs in a "what" manner instead of a "how" manner? Is there some other, better distinction that I should be making?

Are you really saying that what matters is _abstraction_ , and that we would be better off thinking about higher vs lower levels of abstraction instead of the more subjective what vs how? I think I might agree with that, but then you do get into the problem of deciding which of two pieces of code is more abstract, and I think you are going to end up with the same problem all over again of it depending on your assumptions.

Oh, and thanks for the interesting comments!

<comment><USER11> I don't think you should look at what is more vs less abstract. Rather I think you should ask, "what maps closer to the problem I'm trying to solve" and implicit in that "what are the assumptions in the abstraction?". Although I suspect this is what you do already, as most good devs do, whether they articulate it or not.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> What about the stack? With all these function calls, it's nightmarish to optimize.

<comment><USER14> (I think) you're starting with the flawed assumption of what "the" stack is, while functional languages like Haskell have a stack, it is very different from the stack as you may now it in C, so the optimization issues are different too. The assembly of functional calls in functional languages can be a lot more lightweight then in for example C.</comment></comment>


Visualization of NBA games from raw SportVU data logs - <AUTHOR> https://github.com/linouk23/NBA-Player-Movements <comment><USER2> This is awesome!</comment>


Ask HN: Books on managing engineering teams - <AUTHOR> Hi!
I'm a co-founder of a young startup and slowly growing into the leadership role of our team of developers.
I'd be interested if anyone knows good books or resources on managing people but also more specifically managing engineering teams with regards to code review guidelines, permission freedom to publish to production resources etc. <comment><USER2> "ReWork" [https://37signals.com/rework](https://37signals.com/rework) and "Smart & Gets Things Done" are worthwhile.</comment>


Learn how to make almost anything - <AUTHOR> http://fabacademy.org <comment><AUTHOR> This might be interesting for anyone without a formal engineering degree to learn a bit about a lot of different subjects. They have cohorts all around the world.</comment>


AdNauseam: Fight Back Against Advertising Networks and Privacy Abuse - <AUTHOR> https://github.com/dhowe/AdNauseam <comment><USER2> I approach this differently. There are a few use cases I go to the web for. For each use case that is not a free browsing I create an electron app, that never executes any code from the web or uses any external style. It only uses XHR to fetch html pages/json data/other static stuff and then transforms that data and uses it in the custom UI designed for the use case.

For example one use case is collection of news. My app looks almost like a typical RSS feed reader, except that article content is full and interactive. I can inline stupid image galleries that break article flow, I can convert custom video players into a simple <video> tag, I can drop what I don't care for. I can switch between tor/non-tor mode in a secure way that doesn't leak anything and is probably more secure than torbrowser.

I have direct access to any OS programs, so I can easily open m3u8 videos in mpv player on one click or using a keyboard shortcut, or I can download streaming videos locally and convert them to mp4 on the fly, save useful content of the pages to the database, including relevant images, etc.

All JS code is controlled by me, web servers serve me only as data sources.

What is key to make this fun and useful is structuring the app as a unified UI for multiple data sources and to be able to define data sources quickly. Fortunately ES6 generators can be used in a way that makes fetching and transforming data without the need for callbacks, or promises very easy and clear. Adding a new source is usually a matter of minutes.

It is also nice that when improving the UI, I get a new feature for all the websites that I frequent at once.

It allows me to consume content the way I want, without much exposure to tracking. All the website gets from me is an access_log entry, no cookies, nothing.

I'd say I'm quite ahead of the "war" between users and advertising networks.

<comment><USER3> Do you have a repo up with the code?

<comment><USER4> Seconding. I totally want to start doing this myself.

That, and finally write a decent Hacker News suite for Emacs.

<comment><USER5> Browsing HN with the built in web browser is surprisingly nice due to HN's simple structure.

</comment></comment></comment></comment><comment><USER6> I'm out on this.

1\. They say it's legally not click fraud. To me it sounds like regular fraud: "deception to secure unfair or unlawful gain, or to deprive a victim of a legal right". I'm not concerned with breaking the law I just don't want to act in the spirit of it.

2\. This could hurt small startups that are very carefully managing an ad budget. They say the market will adjust, but until it does small startups take a hit. People we know.

3\. I dislike activism without clear objectives. I see no list of guidelines here or good behavior that companies could adopt to immediately place them on the side of the good guys.

<comment><USER7> >3\. I dislike activism without clear objectives. I see no list of guidelines here or good behavior that companies could adopt to immediately place them on the side of the good guys.

The goal highly specific. It is to make Internet advertising artificially expensive, and it is to make harvested data about users inaccurate.

There are no "good guys" on the other side. People shouldn't track me, that one's obvious, but they also shouldn't advertise at me, ever.

Human attention is extremely valuable, by far the most expensive commodity on the planet. If advertising companies want my attention so damn bad, they can pay me ~$65000 a year for it, same as my employer does. Otherwise, they can piss off.

<comment><USER8> It's not like the ads just appear while you're sitting around doing nothing. You see the ads when you are receiving something with them. The ad companies are paying for your attention with the content you consume.

<comment><USER7> My attention is more valuable than that. It's /my/ attention, I get to set the price, and I don't accept their offer. They're welcome to block me from their websites, if they feel that's not acceptable.

<comment><USER8> You set the price when you consume the content that you know is funded with ads.

It is your attention which you are agreeing to trade for information or entertainment.

>They're welcome to block me from their websites, if they feel that's not acceptable.

This is more commonly happening now. Then we all have to deal with people complaining about that. Taking up /my/ attention which they are refusing to pay for. Pay me for reading your posts.

<comment><USER7> >You set the price when you consume the content that you know is funded with ads.

You're objectively wrong. If that were the case, I would be blocked from accessing the content without "paying the price".

The situation is instead clearly analogous to a "pay what you feel it is worth" model.

The creators of the content allow anyone to view it, regardless of whether they run an ad blocker or not. Sometimes, they place alternative content where the ads would be, requesting that I disable my ad blocker, or like them on facebook as an alternative.

I think the "recommended price" of this "pay what you feel it is worth" model, which is usually watching advertising and allowing myself to be tracked, is too high.

I have once or twice directly sent the creator $5-10, when they offered a payment method that didn't require a paypal account. If it's good content, that's pretty reasonable. Dans Data[1] /is/ good content, even if it's getting a bit dated these days.

[1] [http://www.dansdata.com](http://www.dansdata.com)

<comment><USER8> Content creators have gone with not blocking blockers up until now because it's not an issue. As it becomes more of an issue you start seeing more and more anti-blocking scripts.

Once or twice in all your years online you have agreed to an alternate funding method and you think that is sustainable for content creators?

You can make a lot of arguments for ad blocking. I ad block because it slows my computer down. Making the claim that you ad block because your attention is more valuable though is a joke.

<comment><USER9> You can think it's a joke, but I agree with parent completely. Ultimately, it doesn't really matter, since I get to choose what runs on my hardware, and I choose not to see ads.

Whether something is sustainable for content creators is not the users' concern, you don't go around worrying whether Walmart can make profit, why do you worry whether a random internet blogger can?

<comment><USER10> I don't steal from or scam stores even if I can get away with it, because while I don't deep-down care if they make a profit, I do feel it's wrong to cheat them out of it. If I want what a store is offering, I feel like I should deal with them fairly. If I don't want it, I just don't patronize the store.

<comment><USER11> My program (Browser) can ask their program (Server) do things. It may deny ANY request it wishes based on ANY criteria that THEY get to set. Their program is under no obligation to do anything my program asks.

Their program (Server) may ask my program (Browser) to do things and my program may deny ANY request based on ANY criteria that I get to set. My program is under no obligation to do anything their program asks.

This is all perfectly reasonable and fair.

<comment><USER10> Given the same premises, you can prove invasive tracking to be "reasonable and fair." I mean, they're just using information you sent them, right? In fact, it's not right, because this deliberately blinkered view of the interaction misses a lot of important details.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Good. I'm done being nice to advertisers.

They are actively poisoning the internet in more ways than one.

They had their chance to work out better ways to advertise, and they instead redoubled assaults on attention.

This is getting installed on all of my browsers on all of my PCs. If your startup is advertising based, find a different model, or do without my business. I have no obligation to help you fund yourself or use your product if I find the monetization model insidious.

<comment><USER13> clicking all the advertisers links seems like an awfully nice thing to do for them, assuming they're paid per click

<comment><USER4> It _may_ seem nice at the beginning, but as you saturate the service with fake clicks, the PPC value will drop to near-zero.

<comment><USER14> Some keywords are so competitive that they have PPC rates that are close to $100 PER CLICK

For example, anything related to pyramid schemes like Xango, Avon, etc. Keyword space is SUPER competitive for "indenependent distributors" and so their PPC rates are through the roof

<comment><USER4> MLMs seem like one of the best target for indiscriminate application of AdNauseam, for more than one reason.

</comment></comment></comment></comment></comment><comment><USER15> I dislike ads as much as the next person (and indeed run uBlock on nearly every site), but I'd feel wrong using this because of the cost to the advertisers. It would be further lining the pockets of ad networks while increasing expenses for, at least in some cases, legitimate businesses. Sure, it's a bit of fighting fire with fire, but I'd rather not be an unnecessary expense for someone in my fight against intrusive ads.

<comment><USER16> Advertisers will just lower their bids, so it mostly hurts the publishers of the websites you visit.

<comment><USER17> > Advertisers will just lower their bids, so it mostly hurts the publishers of > the websites you visit.

... who will then have to revert to a more sane monetization scheme, which doesn't mess with their visitors' data.

<comment><USER16> I understand where you're coming from, but this seems an awfully aggressive way to send that message to websites that you presumably like and find useful. Merely blocking ads isn't enough?

<comment><USER18> There have already been multiple attempts at allowing acceptable, quality ads. Nobody played along. Subtle didn't cut it, so now we're escalating to aggressive.

Advertisers had their chance and they blew it. No sympathy from me

</comment></comment></comment></comment></comment><comment><USER19> Hm...

From the perspective of the ad network:

Lower click quality drives up the merchant's cost of sale (COS). Sitting between the merchant and the publisher, the ad network tries to balance this out, by

      - mixing good and bad traffic sources
      - encouraging the merchant to spend more money
        so they can buy better traffic and/or rank the offers higher on their publisher's sites
      - punishing the publisher for sending bad traffic by lowering the amount the publisher is paid for each click
      - filtering out extraordinarily bad traffic

AdNauseam will increase the amount of bad traffic. Merchants have to pay more money to get their ads through to those people who do not create fraudulent clicks. Publishers will receive less money per click. Ad networks will try harder to invade your privacy(1) so they can get more comprehensive data about those people who are worthy to be targeted. Startups which promise to detect fake traffic will get a boost. Companies which manage advertising via social influencers or in-game mobile ads etc cannot care less.

I do not see the direct benefit of this for the end user...

(1) for example by paying more money to antivirus providers to send your browsing habits their way.

edit: formatting

<comment><USER4> > _I do not see the direct benefit of this for the end user..._

The hope is that publishers will understand _why_ they're getting hit by the collateral of the fake-click barrage and move out of the blast range by changing their ads into unobtrusive ones, or even moving away from ads entirely into models like:

\- treating your webpage as an investment

\- sponsorship / patronage

\- subscriptions

\- paywalls

Additional hope is that the whole ad industry finally implodes.

<comment><USER20> How naïve. You think the entire advertising industry is going to throw their hand up and say "Hey, you got us. We'll just cave to your demand and drastically reduce our profits"?

This will just be another volley in the ever escalating ad arms race.

<comment><USER21> It creates opportunity for disruption. The established players see their costs go up and effectiveness go down. A new player comes in who has non-obtrusive ads, and sees outsized success. Everyone else either dies off or fast-follows.

I'm curious how The Deck is doing these days, seemed like they could have been that player.

<comment><USER20> So lets imagine somehow beyond all odds this doesn't result in escalation and actually has the effect you describe;

How does AdNuseum detect the good from the bad?

How does a "good" advertiser submit themselves to some kind of whitelist?

How does AdNuseum verify the advertisers claims?

<comment><USER4> > _How does AdNuseum detect the good from the bad?_

It doesn't. Or it gets evolved until it does, but there's no incentive to do that while there are very little "good" ads.

> _How does a "good" advertiser submit themselves to some kind of whitelist?_

They don't, that's the point. As AdNauseam currently works, there are no _good_ advertisers, and for now it's a good enough heuristic. Any ad with an active component is a legitimate target.

> _How does AdNuseum verify the advertisers claims?_

It doesn't. It does not care.

</comment></comment></comment></comment></comment></comment><comment><USER22> I block all ads, tracking, beacons, etc. because they are now the single largest vector for malware.

I use Firefox largely because it's the most hackable browser. I tweak Firefox to do and not do several things:

\- I don't allow sites to see my history \- I don't allow peerconnect \- I don't allow WebRTC (shows private address schemas) \- I don't allow much JS \- I don't allow fingerprinting beyond pure basics \- I don't allow HTTP/S referrer

I do block everything not associated with the pure content of the page. This is getting more difficult, but the tools to help are keeping pace.

<comment><USER23> Would you mind elaborating on the tools you use?

<comment><USER22> Sorry for the delay in answering your question. I don't use anything elaborate.

I use the following Firefox addons:

\- uBlock Origin

\- Disconnect

\- Decentraleyes

\- Webmail Ad Blocker

I make the following changes in Firefox's about:config:

layout.css.visited_links_enabled (Toggle to false)

media.peerconnection.enabled (Toggle to false)

network.prefetch-next (Toggle to false)

network.http.sendRefererHeader (Set to 0 (zero))

network.http.sendSecureXSiteReferer (Set to false)

I also sometimes set dom storage to false, but this can sometimes interfere with some webmail clients.

If you're unsure of a setting, reference the Mozilla KB: [http://kb.mozillazine.org/About:config_entries](http://kb.mozillazine.org/About:config_entries)

</comment></comment></comment><comment><USER24> At first I thought this was a great idea, but then I thought about it more. I think this is the digital equivalent of an angry mob throwing bricks through windows. We aren't doing any good, just destroying the community we live in. What would it be like if all the content creators that are incentivized by ad revenue lost their revenue? And we lost their content? I don't like being placed into an artificial bubble of customized content by tracking services, but i don't think this is the solution.

<comment><USER21> False dichotomy. There is a third alternative: a non-abusive advertising model takes over the industry.

It's certainly plausible. All pre-internet advertising avoided tracking of individuals. There exist even now advertising agencies that cannot possibly serve up malware to their customers. Arguably Google achieved its great success by being a less-abusive advertising platform in its day.

<comment><USER24> What advertising model are you suggesting? Perhaps it could be added to the Readme on the repo to help point advertisers in the right direction.

</comment></comment></comment><comment><USER25> As someone in another, related, thread said: AdNauseum users will account for X% of clicks, and advertisers/publishers will simply take clicks - X% to get the real number, and we're back to where we started. (EDIT: credit where credit is due: [https://news.ycombinator.com/item?id=13221653](https://news.ycombinator.com/item?id=13221653))

<comment><USER26> It would take a while for the ad industry to adapt to that. Also there might be technical limitations.

<comment><USER27> I was the one who made the original comment. The ad industry does not have to adopt at all, because they use a bidding system. Just advertisers have to adopt by bidding less. Sophisticated advertisers will automatically do that because they keep track of conversions.

<comment><USER28> Maybe an auto-clicker could use ABP's acceptable ads filter to focus on reducing the effectiveness of "unacceptable" ads. (But the ad networks are just going to figure out how to detect the clicks and mark them fraudulent anyway.)

</comment></comment></comment></comment><comment><USER29> If I'm already blocking the ads and their tracking scripts, why would I let it load them first, 'click' them and then block them afterwards?

Doesn't it just re-open the attack vector?

<comment><USER30> I'd love for this to be inside some kind of proxy server - stripping ads for my browsing whilst simultaneously clicking every one of them under a fake profile of some kind...

</comment></comment><comment><USER31> Ok, so I may or may not have actually used this extension in the past (I may or may not be really vague as I don't really understand if this is legally fraud). The extension may or may not suck really bad. It may or may not lock up your browser when it clicks all the ads on a site. It may or may not 'work' at all in conjunction with TrackMeNot (a similar extension that flak-cannons trackers) and BSOD your laptop all the frickin time. I may or may not have uninstalled the extension within a hour due to how bad things got.

I think it's a fun concept, but the implementation of it may or may not be something that you want to fight with for less than a day before swearing it off. It's possibly so bad that I think it may have been written in order to turn people off from this 'attack' towards trackers as it may or may not remind one of the repulsion that rotten milk has upon first sniff.

<comment><USER32> Don't worry! I've been using it all today and so far it's had none of the bad effects you describe whatsoever. I plan to continue using it.

It does actually let through ads uBO doesn't (though it embeds uBO and uses the same filter lists), but nothing I can't live with. Doing my bit to make Internet advertisers' lives that little bit more miserable is pretty much an ethical obligation at this stage.

The FAQ does say only to run it if you know what you're doing. But I think anyone who reads HN will have no problems whatsoever in running this extension. If they do, the code's right there.

</comment></comment><comment><USER33> this is so crazy it might work.

Automatically sending the click beacon for every blocked ad will increase advertising costs but it will also increase vendor profits, motivating them to add even more ads.

Until the 3rd party click validators start to filter out clicks generated by this somehow. And then we will have yet another arms-race besides the adblockers one.

<comment><USER34> We are all going to need a lot more bandwidth!

<comment><USER33> bandwidth nowadays is a given. the only problem now is latency. but we don't care about that for background stuff.

<comment><USER34> So true! Latency may be very difficult to reduce given our reliance on the internet protocol.

</comment></comment></comment></comment><comment><USER35> I feel like this would be better if it didn't click every ad, but had some sort of method (even if it was random) to pick ads.

<comment><USER36> Seems like it'd be easy enough to slap in there

[https://github.com/dhowe/AdNauseam/blob/master/src/js/adn/co...](https://github.com/dhowe/AdNauseam/blob/master/src/js/adn/core.js)

</comment></comment><comment><USER37> I'd considered doing that in Ad Limiter, but didn't want the headaches. I was considering replying to all ad links from an add-on to see where they ended up after redirection, so the final destination site could be rated properly. But the bandwidth usage is excessive.

I should try sending HEAD requests to ad servers, to see if they return a redirect. No idea what the ad brokerage systems will do with those.

</comment><comment><USER38> Worst case is if this leads to "sponsored stories" where an article is about one thing and they sneak an infomercial in there for ad revenue but in a very subtle way such that it doesn't name a product even.

Effectively, this would make it impossible to tell ads from not-ads leading to a much worse experience for everyone.

<comment><USER39> Which ever publisher that do so hopefully live in a country which doesn't have advertisement laws (and tax laws, if they try to be sneaky with the source of this new revenue). There is currently several cases in Sweden, and I heard similar tales in several other countries including the U.S.

I would say that for once, the law is actually catching up with Internet activity that would clearly be illegal if done on a physical paper.

<comment><USER38> How can it possibly be illegal? I can understand if it's a public newspaper, but private media companies can do whatever they want.

Like are you going to fine a movie studio for having an actor in a movie drinking Coca-Cola or driving a Volvo?

Which specific laws are banning this practice in Sweden for private entities?

<comment><USER39> > are you going to fine a movie studio for having an actor in a movie drinking > Coca-Cola or driving a Volvo?

Just a few months ago a case was started in Sweden based on such situation. The movie studio got hit by breach of contract by the publisher along with charges of illegal advertisement.

> Which specific laws are banning this practice in Sweden for private > entities?

Marknadsföringslagen (2008:486) is the primary source for laws that regulate advertisement for private entities, however there is actually more. The European Advertising Standards Alliance has a local representation called Reklamombudsmannen, which is a self-regulating entity for advertisement. This one has some support by law, and some support by other means such as black- lists, and can issue fines. Last there is also the International Chamber of Commerce. Publishers in any form of media can also loose the right to publish, which is an automatic granted right which the court can take away. Since TV and radio is attached to spectrum allocation, there is also additional conditions on them in regard to advertisement (which is the reason why the movie studio got hit by a breach of contract in the above case).

</comment></comment></comment></comment><comment><USER40> From a privacy perspective, is there a difference between never clicking an ad and clicking all the ads?

</comment><comment><USER41> I like to fight against invasive ads by using Google Contributor, which prevents Google-based ad networks from even serving me the content. That way, the sites I use are still supported and I am seemingly protected.

Only costs me a couple bucks a month too.

</comment><comment><USER18> Hm... The element picker doesn't seem to work, and the default color-scheme is horrible. I don't see any way to change that. I like the premise though. Hopefully it will improve with time.

<comment><USER32> This is literally a link to the code :-)

</comment></comment><comment><USER42> I don't like this. While I strongly oppose tracking and have a variety of privacy extensions installed on my browser, clicking on ads is simply wrong. Someone will have to pay for those clicks. Not to mention that if something like this gets wide adoption then it will make click fraud detection even harder. A bunch of browser sessions randomly clicking on ads will have no difference from a bot doing the same thing.

<comment><USER43> > Someone will have to pay for those clicks. Not to mention that if something > like this gets wide adoption then it will make click fraud detection even > harder. A bunch of browser sessions randomly clicking on ads will have no > difference from a bot doing the same thing.

I believe that's the point of it.

</comment></comment><comment><USER44> How am I just now learning about this? Been looking for something that does this for a long time. Will start using today.

</comment><comment><USER13> They say it silently clicks all the ads in the background - doesn't that just help them? They want clicks right? Obviously the customer wants legitimate leads but the advertiser the guy we hate doesn't care if the clicks are legit or not. For him the more clicks the better, no?

<comment><USER45> By "advertiser guy we hate" you mean the publisher? The one who built the page you went to?

<comment><USER13> Well yeah, but we don't literally hate him, we just hate that he's using invasive ads right?

</comment></comment></comment><comment><USER46> So these click the ads presented to the user -- from their IP, so the user is still identified?

</comment><comment><USER47> This is rather cool. But you still download ads, which wastes bandwidth. I wonder if ads could get routed to a VPS, running AdNauseam. Ads aren't private, and normally aren't HTTPS. Would that be doable with an add-on?

</comment><comment><USER48> Aside from driving up costs, from a privacy perspective, would this offer any advantage over simply _never clicking_ on ads? I worry that it might flag me as a high-engagement/ad-tolerant user.

</comment><comment><USER49> Anyone else find the Author/Developer separation odd. I mean it is a software project, so the developers are the authors. If you don't write the software, what are you the author of?

<comment> ryan-allen It's not too different to having capital, employing programmers to do the work, yet you own the business/IP.

</comment></comment><comment><USER50> Interesting idea, but clicking on a temporally stable subset of ads would be way harder to deal with than a user session that clicks on all ads.

</comment><comment><USER51> There is some bad concept, but clicking on every ad is problematic. I would love to target specific ads from unethical business or deceptive.

</comment><comment><USER52> I dont understand. Why adnauseam clicks ads? isnt that against the purpose of an ad blocker?

</comment><comment><USER53> At least the name is great. I think it's reason enough to install it.

</comment><comment><USER54> k-anonimity is an awesome concept, and truly the only way to protect outselves these days - it's however difficult to successfully implement.

glad to see more software out there based on this concept.

</comment><comment><USER55> Actually slows down browsing for me, going back to ublock for now

</comment><comment><USER56> What if you get someone's adsense account banned

<comment><USER44> I don't see what the problem is.

</comment></comment><comment><USER57> I'm not sure the folks who created this understand how ad tracking works. Clicks are such a small part of the equation that this is laughable.

</comment><comment><USER58> does AdNauseam work if I have something like Ghostry (ad blocker) running?

</comment><comment><USER59> Very cool name. Fitting.

</comment><comment><USER60> Not sure if this may be in violation of terms of service in some websites.</comment>


It's Official: Ubuntu Will Embrace the Cloud--Flexibly - <AUTHOR> http://ostatic.com/blog/its-official-ubuntu-will-embrace-the-cloud-flexibly

<comment><USER2> This is awesome.

<comment><USER3> But what does it mean?</comment></comment>


One-way backup in the cloud with snapshots - <AUTHOR> we have a linux server, and we need to make a daily incremental backup somewhere in the cloud, which keeps snapshots (last 7 days, last 12 months, every year). Unlike dropbox.com, we require a one-way synchronization (from our server to the cloud). We need 3TB of space. What are good online services? <comment><USER2> We use [https://www.rsync.net/](https://www.rsync.net/) because they can guarantee our data does not leave the European Union. Then [http://duplicity.nongnu.org/](http://duplicity.nongnu.org/) in cronjobs.

[https://www.backblaze.com/](https://www.backblaze.com/) is US-based.

<comment><AUTHOR> Thanks! Looks good! However, we finally decided to buy two cheap Synology diskstations (one located in the office, another located at home), and use a daily crontab with rclone for synchronizing. It's much cheaper.</comment></comment>


Dijkstra's argument on why numbering should start at zero [pdf] - <AUTHOR> https://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF <comment><USER2> I'm not convinced that (a) is the "best" way to denote 2, 3, ..., 12. My preference would be 2 ≤ i ≤ 12.</comment>


Why we are not satisfied with the personal work - <AUTHOR> http://write.visualcake.org/why-we-are-not-satisfied-with-the-personal-work/

<comment><USER2> > "Hey! You can do this better than this faggot!"

Wow. Dominik, if you're reading this, you should know that this is unacceptable language.

<comment><AUTHOR> Changed it. Sorry for this!

</comment></comment><comment><USER3> The more general phenomenon was analyzed and described far better (and without calling some other designer a faggot) by This American Life's Ira Glass, summarized as "your taste is why your own work disappoints you":

<http://www.youtube.com/watch?v=BI23U7U2aUY>

</comment><comment><USER4> iduuck you should be ashamed for your casual bigotry, and additionally your pushing your casual bigotry out to the HN Community.

> "Hey! You can do this better than this faggot!"

I am sorry if beavis and butthead are still your role models for acting like a decent human being to everyone. There is no acceptable "fag means bad" meaning anymore. It's all bigotry

</comment><comment><USER5> I'd say, staying unsatisfied is a trait of a great person. The smartest people I know don't settle for being however good they are at whatever they do. Instead, they're constantly striving to improve.

</comment><comment><USER6> Dominik, when you zoom in on an iPhone the top-right mountains logo and text covers the post.

<comment><AUTHOR> Will fix this tomorrow. Thanks for reporting!</comment></comment>


Results of the 2011 State of Clojure survey - <AUTHOR> http://cemerick.com/2011/07/11/results-of-the-2011-state-of-clojure-survey/

<comment><USER2> On discussing the 2% of respondents who found the Clojure community to be a problem:

 _...rather than simply bask in the awesomeness of the Clojure community, let's ask: is it possible to make that number be 0% next year? What can we do to minimize those negative interactions? Are they caused by random misunderstandings, or are there just a few bad apples?_

This is how programming communities should be discussed. This statement gives me hope.

<comment><USER3> #clojure on freenode is glorious. I've never seen such a round-the-clock cadre of participants in an IRC channel who will take the time to give such thoughtful explanations. It reminds me of a time before the explosion of documentation for about everything on the web, when going to an IRC channel was the authoritative way of getting hard questions answered.

<comment><USER4> Indeed.

I find #python similarly useful, although people do tend to be less patient and more likely to tell you you're wrong (which I think is good, most of the time).

</comment></comment></comment><comment><USER5> I haven't touched Clojure yet, although discussions on HN have made me interested, and getting a solid grasp on functional languages seems like the next logical step in my evolution as developer.

If you had to point a newcomer to a single 15-30 minute resource - blog post, tutorial, code sample, whatever - that can give them a true "aha!" moment about Clojure, what would it be?

<comment><USER6> I don't know about 15-30 minutes, but for anyone interested in learning Clojure, I have collected these links that I found interesting:

<http://www.youtube.com/watch?v=Aoeav_T1ARU>

[http://blip.tv/clojure/clojure-for-java- programmers-1-of-2-9...](http://blip.tv/clojure/clojure-for-java- programmers-1-of-2-989128)

<http://4clojure.com/>

[http://www.ibm.com/developerworks/podcast/ag/gloverseries- ha...](http://www.ibm.com/developerworks/podcast/ag/gloverseries-halloway.mp3)

[http://www.infoq.com/presentations/Value-Identity-State- Rich...](http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey)

<http://clojure.blip.tv/file/4824610/>

<http://clojure.blip.tv/file/4457042/>

<http://vimeo.com/11236603>

<http://www.infoq.com/presentations/Clojure-in-the-Field>

Visit them roughly in order.

As for books, there are a few good ones, but I acutally recommend the documentation on clojure.org more than any book. It's clear and compact.

</comment></comment><comment><USER3> Why is the "State of Clojure" held more than once ever, let alone annually? Everyone knows Clojure's state never changes.

<comment><USER7> Au contraire! Clojure's state does change; it's just explicitly managed.

<comment><USER3> Then a report seems like an unnecessary side effect!

<comment><USER3> Not sure if the downvotes are for the terrible joke or from people who don't understand FP

</comment></comment></comment></comment><comment><USER8> As was noted in the article, protocols and multimethods seem to be somewhat undervalued by the community. Maybe its because so many new users come from Java, Ruby and Python, where you only have standard OO(whatever that means). It would seem prudent to me to address this issue, and popularize them more, with more tutorials or blog posts.

I don't use clojure much these days, but in Common Lisp I use generic functions(the original inspiration for protocols and multimethods) all the time, and find them the second most important feature of CL after macros.

<comment><USER9>
      standard OO(whatever that means)

I think it means: \- single dispatch, based on the type of the default ("this") object; \- class-based inheritance.

Anything else?</comment></comment>


Novus closing NVD3, author forking to open source - <AUTHOR> https://github.com/bobmonteverde/nvd3

<comment><USER2> Don't know why but this reminds me of a Richard Stallman quote "To understand the concept of free software, you should think of 'free' as in 'free speech', not as in 'free beer'."

</comment><comment><USER3> For anyone looking my fork appears to be the lastest:

<https://github.com/RobertLowe/nvd3></comment>


Steve Jobs – Courage [video] - <AUTHOR> https://www.youtube.com/watch?v=65_PmYipnpk <comment><USER2> A better title would be Focus.

Steve Jobs loved to improve by cutting. When he got back to Apple, at its brink, it had been churning out a hodgepodge of products: several models of desktop and laptop that confusingly overlapped. Jobs brought the product heads together and showed them a grid with four squares:

                   | laptop | desktop |
      </comment><comment></comment><comment></comment><comment>----+</comment><comment>---+
      consumer     |        |         |
      </comment><comment></comment><comment></comment><comment>----+</comment><comment>---+
      professional |        |         |
      </comment><comment></comment><comment></comment><comment>----+</comment><comment>---+

He cut most of Apple's products. Yes, that takes courage, and Steve Jobs must have had that or a complete disregard for the opinion of other people. But clearly he was driven by more than a desire to simply Think Different.

His core design mantra, in my eyes, was Minimalism. He cut things as soon as he could, because he was dying to cut them, because he first and foremost made things for himself, and he happened to be a Minimalist.

</comment><comment><USER3> I don't think anyone is really criticising the phasing out of the jack port. The main issue is AirPods seem to feature a lazy design, some obvious usualybility issues around them falling and some techinal issues like pairing. Jack ports is not been replaced by something 10x better.

<comment><USER4> And the fact that jack hasn't been replaced by another port, and the fact that Apple insist on Lightning for their mobile devices, while using USB-C ports in their Macs.

<comment><USER5> Why wouldn't they use USB-C on all their new Macs? They were the first major PC vendor to ship the original USB port, by about 5 years. Now they can consolidate Thunderbolt and USB.

[http://www.cnet.com/news/thunderbolt-3-and-usb-type-c- join-f...](http://www.cnet.com/news/thunderbolt-3-and-usb-type-c-join-forces- for-one-port-to-rule-them-all/)

You want them to switch mobile again? You couldn't convince people that the massive 30 pin adapter was worth replacing.

[http://www.macworld.com/article/2012137/hands-on-with- apples...](http://www.macworld.com/article/2012137/hands-on-with-apples- lightning-to-30-pin-adapters.html)

I believe Apple will stick with lightning until they go completely wireless. Within 5 years?

<comment><USER6> I have the new MacBook as well as a (pre-ordered) iPhone 7. I use both at work using headphones for private listening. If I want to use my iPhone 7's headphones, I will need to purchase an adapter that does not yet exist (3.5 > lightning).

I'm left with two options: 1) buy wireless headphones, 2) buy 3.5mm headphones and use the adapter when using the iPhone. It's not a huge issue, but it's not the "just works" motto when I have to finagle a way to make headphones work with two Apple products.

<comment><USER7> The adaptor comes in the box (if it didn't, it would seem to me an underhanded way of increasing the cost of the phone) Granted, I'm still not convinced it was the right time to phase out the port.

<comment><USER6> The included adapter is going the wrong way. I'd need female thunderbolt to male 3.5mm. I have to either buy an adapter or new headphones to use with both devices.

</comment></comment></comment></comment></comment></comment><comment><USER8> [https://www.youtube.com/watch?v=65_PmYipnpk#t=30s](https://www.youtube.com/watch?v=65_PmYipnpk#t=30s) He stumbles when talking about death.</comment>


Chrome Devtools Tips and Tricks - <AUTHOR> http://mo.github.io/2015/10/19/chrome-devtools.html <comment><USER2> The author's frustration with the lack of customizable shortcuts is my biggest issue with chrome devtools as well. This is especially frustrating when I just want to pop a debugger statement in the middle of a node.js unit test so I can step through things, but node.js requires that you use the browser for debugging. (EDIT: apparently there is an IDE from jetbrains[1] that lets you do this too) This past Friday I started poking around to see what it would take to write a terminal-based browser in the style of the python debugger and found that the v8 team at Google has been working making the debugger separable from the browser since at least February of this year[2].

[1] [https://www.jetbrains.com/webstorm/](https://www.jetbrains.com/webstorm/)

[2] [https://github.com/nodejs/node/commit/14174a95a597cac7b848fe...](https://github.com/nodejs/node/commit/14174a95a597cac7b848fe4b3e439814390d6ec6#diff-38574c080d4e2eb38c49b86e6588ad98R64)

<comment><USER3> Also, visual studio community edition is free[1] can debug nodejs with an extension[2]. And the capability is integrated into VS Code[3] which works cross-platform.

Those and webstorm/intellij are the ones I have experience with. But most of the time, I just use the CLI debugger -- it's not hard.

[1] [https://www.visualstudio.com/en-us/products/visual-studio- co...](https://www.visualstudio.com/en-us/products/visual-studio-community- vs.aspx)

[2] [https://github.com/Microsoft/nodejstools](https://github.com/Microsoft/nodejstools)

[3] [https://code.visualstudio.com/](https://code.visualstudio.com/)

<comment><USER2> Which CLI debugger are you talking about? I thought one didn't exist

<comment><USER4> It has a built-in debugger that you start using `node debug /path/to/script`. See more here: [https://nodejs.org/api/debugger.html](https://nodejs.org/api/debugger.html)

</comment></comment></comment></comment><comment><USER5> >The little magnifier glass icon that shows you which CSS class/selector in what CSS file that ultimately decides the styling for a specific element and CSS property.

FML. I hope this is a recent feature, I have wasted so much time missing something like this while trying to reskin a fairly large web app.

I suspect that Chrome devtools is so good because Google has access to a large number of web developers within the company to directly talk to. Chrome seems to have a solution for all the problems that developers face. My recent experiences with Firefox devtools has been bad. Specifically Firefox was not displaying js files loaded dynamically ( through require() ) in the debugger even though they were present in the page inspector.

<comment><USER6> If you happen to have a link to a page where the Firefox devtools are not doing what they should, and happen to remember which version of Firefox you were running at the time, I would very much appreciate that!

<comment><USER5> It is already present in Mozilla bugzilla : [https://bugzilla.mozilla.org/show_bug.cgi?id=1044522](https://bugzilla.mozilla.org/show_bug.cgi?id=1044522)

<comment><USER6> That bug is marked as a duplicate of a bug that's been fixed for close to a year now. So either you're seeing a different issue, or your recent experience wasn't all that recent. If it's the former, I really would appreciate more details so we can fix it; if it's the latter, give it another shot. ;)

<comment><USER5> Maybe I should go more into detail. The problem we had was that some charts and graphs in our application was not showing up only on Firefox ESR 38.3. Examination of the problem revealed that rickshaw was not loaded. The console had thrown an error from rickshaw.js saying that d3 was not loaded. But rickshaw.js was not available in debugger console !

The reason I did not raise a bugzilla was because the issue was intermittent ( ! ) and also I cannot share the whole application user interface with outsiders yet. Anyway, my working conjuncture is that these files are loaded from callbacks of AJAX requests and the problem happens when the callback for loading rickshaw fires before the callback for loading d3 has had a chance to fire. We ended up loading d3 manually as a workaround. But it is important to show rickshaw.js in the debugger since it enables us to set breakpoints there.

<comment><USER6> Hmm. The bug you link to was fixed in 36, so in 38.3 you're seeing a different problem.

I understand the difficulty in filing bug reports on pages that you can't show people yet. If you get to a point where you _can_ show it to people (even just a limited set, not the whole world), and you're still running into the problem, the bug report would be very much appreciated.

<comment><USER5> OK. Thanks for your response regarding this.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> My latest find: if you right-click a variable that was output in the developer console, you can choose "Create Global Variable" to access it. It's super- useful combined with lodash to inspect large arrays of elements, for example.

<comment><USER8> Also, if you're paused at a wait point, the console has access to local scope, so you often don't even need to create a global variable, just start using the local ones directly.

</comment></comment><comment><USER9> Something that saved me a lot of time recently is that from the network request list, you can right click the request and "Copy as cURL" to get a full cURL equivalent command of the request.

</comment><comment><USER10> You can format minified js code by clicking the pair of curly braces in the bottom left corner of the source window. This has saved me a lot of headaches.

</comment><comment><USER11> Some more tips on Chrome DevTools here: [https://umaar.com/dev- tips/](https://umaar.com/dev-tips/)

<comment><USER12> Hi Umar, I subscribed a little while ago after discovering some of your tips on Twitter. They've been really useful, especially with the animated GIFs... thanks very much for making them.

<comment><USER11> Appreciated, glad you enjoy them.

</comment></comment></comment><comment><USER13> In terms of finding code that runs when clicking something, there's a extension Visual Event which works really well. [https://chrome.google.com/webstore/detail/visual- event/pbmmi...](https://chrome.google.com/webstore/detail/visual- event/pbmmieigblcbldgdokdjpioljjninaim)

</comment><comment><USER14> I've been using chrome since it's beginning but just recently really digging into it. There's a ton of cool stuff in it. Just recently discovered the "snippets" section which lets you save a piece of js code and rerun it whenever you want (under Sources -> Snippets -> rightClick - add).

I'm also working on my first chrome extension if anyone's interested in helping or could give some feature requests/advice. [https://github.com/jxm262/consoletap](https://github.com/jxm262/consoletap)

<comment><USER15> This is a great tip, thanks!

Using it to store this snippet which invokes the debugger when something tries to redirect you from the page, allowing you to inspect the state and any network requests (last time I checked, "preserve log on navigation" was buggy and didn't preserve all details of the request from a previous page):

      window.addEventListener("beforeunload", function() { debugger; }, false)

</comment></comment><comment><USER16> Paul Irish ([https://news.ycombinator.com/user?id=paulirish](https://news.ycombinator.com/user?id=paulirish)) should write a book about this topic.

<comment><USER17> Addy Osmani is a great resource as well: [https://plus.google.com/+AddyOsmani/posts](https://plus.google.com/+AddyOsmani/posts)

</comment></comment><comment><USER18> I just recently found out about Chrome Devtools' multiple cursor support by accident, and didn't know about the navigation shortcuts at all until now.

Once it gets shortcuts customization support, I think I might try to use it as my main editor for a while and see how that works out. I have it open almost constantly during development anyways, so using it as an editor would get rid of that redundant dedicated editor window and streamline my workflow by quite a bit.

</comment><comment><USER19> Another tip: you can click and hold the "dock" icon in the upper right corner. You can't right-click it.

(I never understand the UI design paradigm here)

<comment><USER20> It has been fixed in unstable / canary. The selection is now inside an overflow menu.

Which brings me to another tip: in a multi-head setup, having devtools in an undocked window in a separate screen is very nice.

</comment></comment><comment><USER21> > "Just like atom"

No, just like Sublime Text. Atom copied these features and shortcuts from ST.

<comment><USER22> It's "like" both editors. He's not attributing its origin, just comparing the feature.

</comment></comment><comment><USER23> Nice list of new niceties in Dev Tools. Thanks for sharing!</comment>


Ask HN: Relocation and new jobs - <AUTHOR>

As an IT professional in the Northern-Midwest with a few years of experience under my belt I am feeling ready to move on with my career and to somewhere I'd rather live (east or west coast, somewhere where winter doesn't last 5-6 months) with a company I'd be interested in working for.
My question to you all - as I imagine there are many in this position or who have gone through this: What are the best steps for preparing/applying for a job across the country? (How to minimize costs for travel, minimize time off from current job for interviews, questions to ask the potential new employer, etc)
Thanks for any input! :) <comment><USER2> It really depends on the role within IT you're considering: software development, system administration, project management, network analyst, support technician, database admin, etc.

What kind of role are you looking for?

<comment><AUTHOR> Right now I am a Windows sysadmin with a lot of support experience, looking in to furthering windows experience and hopefully get some project management or network stuff to expand my skillset and stuff.

Thanks for the reply</comment></comment>