300,000 requests / second - <AUTHOR> http://qos.doubleclick.net/

<comment><USER3> If their speed goes over 600,000 impressions per second, does their data center blow up? Where's the red zone?

It is cool, I suppose, but also vapid. It's a meaningless boast. Reminds me of the McDonald's _how many billions served_ signs.

<comment><USER4> Never heard that no manager has ever been fired for hiring IBM?

When you go with the market leader, or a big player, the perception is that there's a smaller chance of things going wrong, and when they do, they have more resources than the smaller player.

It's Marketing 101.

<comment><USER5> I thought that had more to do with the fact that if something goes horribly wrong no one will fault you for going with the market leader - where as if you took a risk on something unproven you may have also risked your job.

<comment><USER4> Yes, and the reason none will fault you is because the perception I spoke of, which is molded by marketing campaigns like we're seeing here. So I was talking about the reasoning of _why_ being perceived as the leader, or as the best tech supplier, is important.

</comment></comment></comment></comment><comment><USER6> That's just incredible. I wonder what Google's doing with AdSense on top of that.

<comment><USER7> Google owns DoubleClick. (<http://en.wikipedia.org/wiki/DoubleClick>)

<comment><USER8> Grandparent's question implies to me he's aware of that, and is wondering how much traffic AdSense drives _on top of_ the DART stuff.

<comment><USER9> You can traffic AdSense through DART, so it is possible that the number has already been inflated with some AdSense numbers.

<comment><USER10> I think it's fair to count those though. If you have a DART tag on your page, the request needs to be handled by DART's ad server regardless of if it returns an image or a redirect to another network.

</comment></comment></comment></comment></comment><comment><USER11> On what structure? A single IP? A single hostname? A hundred servers? Same datacenter? From a single SPARCstation 5 under the floor?

Without context, a number like this is meaningless.

<comment><AUTHOR> It's ads served per second by DART. Doesn't count adwords, adsense. It is served from several data centers and this is the total.

<comment><USER12> I (think) know that mongo was created by doubleclickers.. am I right? Is doubleclick actually using it?

What I'd love to know is.. what kind of sharding is in place accomplish that?

<comment><AUTHOR> Correct - MongoDB project was started by ex-DoubleClickers.

DoubleClick doesn't use MongoDB (afaik). My understanding is that it is switching over gradually to internal google infrastructure services - <USER2> presumably bigtable like things, and its internal successors, whatever those are. That said, MongoDB is basically what I wish I had had when we began building DART long ago.

In the early days of DART we build a proprietary distributed key/value store called UIS. It was super simple and super fast and worked well. The request volume, both read and write to it, was huge: it was hit in realtime by the ad servers.

</comment></comment></comment></comment><comment><USER13> These numbers just make me sad. That much advertising trying to warp and control us. We've come a long way, baby.

<comment><USER14> Unfortunately it's hard to get a web job today that isn't ultimately about advertising. We're all advertisers now.

<comment><USER15> ? Huh. Not necessary. Don't equal programing = server side = free only sites. Some of us are actually building products that people are paying money for, with no ads. supported model whatsoever.

<comment><USER16> But how is that, as guelo said, a "web job?"</comment></comment></comment></comment>


API Practices If You Hate Your Customers - <AUTHOR> https://queue.acm.org/detail.cfm?id=3375635 <comment><AUTHOR> Summary:

#1: Don't have an API

#2: Make signups difficult

#3: Charge extra. A lot.

#4: Hide the API docs from Search Engines

#5: Use a terrible protocol

#6: Permit only one API key

#7: Maintain documentation manually

#8: Ignore the IaC revolution

#9: Don't be idempotent</comment>


How I Got Fired From a Hot Startup - <AUTHOR> http://whatspinksthinks.com/2014/05/06/how-i-got-fired-from-a-hot-startup/

<comment><USER2> It's cool. The rites of passage for a Real Startup Warrior are (in any order):

\- Your own failed startup

\- Surviving involvement with a fast talking jackass

\- Getting fired from a hot startup</comment>


Hacker Typer: How To Look Insanely Busy In A Coffee Shop (2011) - <AUTHOR> http://hackertyper.net/

<comment><USER2> Can we get a (2011) appended, please?

Sources:

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

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

[http://whois.domaintools.com/hackertyper.net](http://whois.domaintools.com/hackertyper.net)

</comment><comment><USER3> OT but this is the first time I've seen the ternary operator used with only one operand. Apparently, it's only valid in GNU C though.

[https://en.wikipedia.org/wiki/%3F:#C](https://en.wikipedia.org/wiki/%3F:#C)

<comment><USER4> I've seen it used a lot in Objective-C for default values:

        NSNumber *value = dict[@"key"] ?: @1;

<comment><USER5> ?: is the "Elvis" operator.

<comment><USER3> That's pretty a hilarious name for it. Is this from the Groovy community?

</comment></comment></comment></comment><comment><USER6> I once wrote a quick Java program that recorded our project's build output (about 5 minute's worth at the time) and captured the time between each line of the output. Then it could play back the build output at the same pace. I could run that in a loop in a shell window and I could nap for an hour while it looked like I was waiting on a build to finish.

We joked about having a screensaver that looked like code being written and played realistic keystroke sounds like you were typing.

<comment><USER7> Why not just write a script to continuously run the build?

<comment><USER8> Because that would need more energy, maybe.

</comment></comment></comment><comment><USER9> The code comes from the Linux kernel: [http://lxr.free- electrons.com/source/kernel/groups.c](http://lxr.free- electrons.com/source/kernel/groups.c)

</comment><comment><USER10> Tip: Hit Cap Lock 3x (Then hit Alt 3x)

</comment><comment><USER11> This has been posted so many times, very old

</comment><comment><USER5> I remember readying an magazine article (K-Power?) about the 1983 TV series "Whiz Kids". They used a similar typing simulation to make the hacker kids appear to be perfect speed typists. The magazine even include a BASIC program so you could run it on your home computer, too. :)

The Associated Press review of the show said: "Whiz Kids does not make a whimper on the sex-and-violence scale, yet it may be more dangerous to children than anything on television this season. Our adolescent heroes – sort of Hardy Boys high on silicon chips – engage, willy-nilly, in assorted illegal activities: computer tampering, driving without licenses and grave-robbing."

[https://en.wikipedia.org/wiki/Whiz_Kids_%28TV_series%29](https://en.wikipedia.org/wiki/Whiz_Kids_%28TV_series%29)

</comment><comment><USER12> Original post: [https://news.ycombinator.com/item?id=2480946](https://news.ycombinator.com/item?id=2480946) Another: [https://news.ycombinator.com/item?id=3997664](https://news.ycombinator.com/item?id=3997664)

</comment><comment><USER13> The file you appear to type is groups.c from the linux kernel: [https://github.com/torvalds/linux/blob/dc0755cdb16cb129c4054...](https://github.com/torvalds/linux/blob/dc0755cdb16cb129c4054c85d62bce83a18bcbcf/kernel/groups.c)

</comment><comment><USER14> Be warned: if you type like this: [http://www.youtube.com/watch?v=sffBHGpIRZE](http://www.youtube.com/watch?v=sffBHGpIRZE)

...people will know that you're faking it.

<comment><USER15> Only if you make the " _bing_ " noise though. Don't be so obvious.

</comment></comment><comment><USER16> This is hilarious! I wish I could really write code that fast.

Most of my actual coding is head-scratching and browsing documentation.

</comment><comment><USER17> First day of freshmen programming class our professor made everybody go on this site when students came in late... One kid literally walked in, turned around, walked out and dropped the class.

</comment><comment><USER18> It's not hilarous on an iPad 1. Nothing happens beside the prompt blink. How could I look insanely busy with that in a coffee shop ? ;)

<comment><USER19> Can't look busy on my phone either.

<comment><USER18> I guess we are supposed to bring our desktop computer in the coffee shop ;) it's for laptop users, but this is so oldish. Who is still doing that ?

</comment></comment></comment><comment><USER20> The best part IMO is that backspace functions like backspace.

</comment><comment><USER21> I cracked up when I tried this. Not sure why

</comment><comment><USER22> Ahhhh, so this is how Win8 was written.

</comment><comment><USER23> This is hilarious! Great work

</comment><comment><USER24> Clever and satirical. Nice.

</comment><comment><USER25> This is very funny to me I started cracking up right away nice.

</comment><comment><USER26> this hardly belongs on the front page of hn.

</comment><comment><USER27> Genius!</comment>


NIST's cryptographic standardization process - <AUTHOR> http://blog.cr.yp.to/20140411-nist.html

<comment><USER2> Also interesting are the other three blog entries, particularly "Entropy Attacks!" that talks about how hashing RDRAND into an entropy pool right before using it (an obvious use that seems like a good idea) could, with a malicious implementation, cause a lower entropy output that would reveal your DSA private key...

</comment><comment><USER3> Final paragraph:

> _When I heard about this draft I assumed that NIST had engaged in (1) an > honest retrospective review of known security flaws in NIST standards and > (2) an honest analysis of ways in which those flaws could have been avoided > by modifications in NIST 's standardization process. The current draft is, > unfortunately, very far from this, and as a result is very difficult to take > seriously._</comment>


A Response to a Facebook Recruiter - <AUTHOR> https://twitter.com/jpanzer/status/1186405306802130944 <comment><USER2> This is a very unnecessary and long winded answer rejecting a position towards a Facebook recruiter. Going as far as throwing in political differences or statements puts you at risk in applying at other places if employers search up your Twitter account (Especially as this guy is a Googler). I won't be surprised if this tweet gets deleted soon.

One sentence saying "No, I'm not interested" would have just been enough.

<comment><AUTHOR> This answer is undoubtedly long but interesting on the fact that it represents a state of mind of the industry. Also I don't think that being against Facebook is an argument for not being recruited by other companies in the future. If even people working for giants have decided to take a stand, it may be interesting for companies to focus on ethics to attract talent.

</comment></comment><comment><USER3> Nice rant considering he works for Google and is posting it on Twitter. Twitter and YouTube refused to pull the same ads as he's complaining about with FB: [https://techcrunch.com/2019/10/13/ban-facebook-campaign- ads/](https://techcrunch.com/2019/10/13/ban-facebook-campaign-ads/)

</comment><comment><USER4> The fact that he's happily employed at Google is ironic. Google will happily put their grubby hands on whatever personal data they can find. And they have worked incredibly hard at making themselves the middle-man that stands between people and the world's information.</comment>


Ask HN: In 2016, how would a open source software make money in Bay Area? - <AUTHOR> The question is not new, but the world changes and the system of opportunities change as well... Is it possible to do an open source product and still make money out of it? <comment><USER2> Yes, but...

Making money from software is hard. When you're talking about creating a new product or service, the odds are against you i.e. it's more likely that you'll fail than succeed.

Making money from open-source software is 5-10x harder because open-source removes exclusivity, which is the most important thing that pushes people over their dislike of paying. If they can get your thing for free, they won't pay.

That being said, sometimes well executed hybrid "open-source + something exclusive" strategy is the only way for a given product.

For example, MySQL would have no chance against Oracle, DB2 or SQL Server if it tried to compete as another expensive, closed source database. They pretty much had to give away their stuff for free to gain massive market share and sell "something exclusive" (expensive support contracts) to a small subset of their users.

One successful hybrid strategy is open source + hosting. WordPress, Ghost, Discourse, Vanilla Forums - those are all projects that are open source, you can host them yourself for free but most people don't have skills or desire to self-host, so, like MySQL, they use being open source as free marketing to gain market share and sell convenience to a small subset of their users.

You didn't specify if you're talking about single person business or a bigger team.

Hybrid strategies are usually too difficult to execute for a single person, there's just too much work writing the software and managing hosting, providing support etc.

At the end of the day you should decide what's more important: money or writing open source code.

If money, then don't take additional risk of open source.

If open source, then don't expect money.

If both then accept that you will most likely end up with neither.

</comment><comment><USER3> The closing of RethinkDB shows that it's not easy, at least.</comment>


Ask HN: How do you feel about 'selling' data? - <AUTHOR>

Whether you're exchanging it for a free service or selling it for cash, how do you feel about giving away your data in exchange for value? <comment><USER2> I feel good if there's enough value being returned in exchange for content that I create.</comment>


Former Apple employee sues for violation of labor code - <AUTHOR> http://www.macworld.com/article/134862/2008/08/lawsuit.html <comment><USER2> It's sad that so many companies force overtime without compensation. My time is the most valuable thing in the world to me, I couldn't imaging being given the choice of donating it to my company or finding another job. Maybe I'm just lucky to have avoided that situation so far?

I understand that there might be times when it's necessary but they should be few and far between.

<comment><USER3> Hours and wages are negotiated between the employee and the employer.

Everybody should know how many hours a week they are expected to work and/or be on call before they start. And, you can ask for that in writing. If you ask them "how many hours a week am I expected to work" and they say "40", but they fire you for working less than 60, then the company defrauded you. But, if they say "60" and they fire you for working less than 60 then you only have yourself to blame.

If you have a written statement about the hours you are required to work or be on call, you can pretty much never be fired for failure to work more without compensation. Get it in writing.

<comment><USER4> What if they fire you for some shitty pretext?

<comment><USER3> Let's say your employer lied to you in the interview, then fired you because you stuck to the original agreement. Then they lied about the reason they fired you so that you will have a difficult time getting unemployment benefits and you will have no reference to use for future interviews. What should you do?

A lawyer will be able to give you much better advise than I can. My guess is that your lawyer will help you get a nice little severance package and help ensure that your lying, cheating employer provides you with a solid reference to help you attain future employment.

I am not saying that you should get a lawyer so that you can sue them; I am just saying that a lawyer will be very helpful to understand the situation and for negotiating the terms of your departure. A lawyer's stationary is a very valuable negotiation tool.

Obviously, you should never sign anything or agree to anything, without your lawyer's advice. I think such a sneaky employer might try to trick you into signing away your rights immediately when they fire you. But, if you refuse to sign, what are they going to do? Fire you again?

</comment></comment></comment></comment><comment><USER5> 8/7/2008 9:57am Central Time. This headline appears right above, "Parasites that Brainwash their Host."</comment>


Zuckerberg says he worked out why US is so divided - <AUTHOR> https://www.ft.com/content/8936e254-c645-11e7-a1d2-6786f39ef675 <comment><USER2> paywall</comment>


Notice of Shutdown - <AUTHOR> https://www.docracy.com/shutdown <comment><USER2> It was very generous of the founders to arrange to keep Docracy up for this long, even after the business was shelved. I enjoyed seeing the stats on the few docs I had shared on Docracy over the years. The business model was obviously not quite there, although there is perpetual interest in any kind of tech that reduces legal costs. It is a shame that firms are so jealous about sharing knowledge publicly.

</comment><comment><USER3> I would love to see some of these projects simply go open source, or have an 'open for offers' time for other companies to bid on taking over operations. I'm sure many people (myself included) would be happy to keep services like this running, instead of simply turning the lights out and putting the code in the trash.

<comment><USER4> > I'm sure many people (myself included) would be happy to keep services like > this running

Why don't you then? Send an email saying you're willing to donate whatever it costs to keep the servers running.

Yeah. Thought so.

<comment><USER5> A thousand people running various size instances of the service versus a single company running it for everyone has significantly different cost properties, for each involved party

</comment></comment></comment><comment><USER6> Is this something that Internet Archive or Public Resource would take over? Seems like it'd be best under a NFP.

<comment><USER2> Many of the forms are scraped from EDGAR anyway, so if you really need a standard contract you can usually find an exemplar. Typical startup docs can be had from Series Seed, NVCA, Clerky or one of the many marketing sites like cooleygo. I wish there was a more focused and well-funded effort by the big firms to agree on standard forms, and to annotate them. But people who have tried can tell you it is a Sisyphean task to actually make this happen.

</comment></comment><comment><USER7> This is a shame! I've been using Docracy for years as a good, free alternative to echosign. Hopefully something similar will spring up in its place.

</comment><comment> 52-6F-62 Is there any similar service to Docracy or will they be leaving a noticeable void?

<comment><USER8> They're shutting down, because not enough people are using them. Not sure if that means the void is unnoticeable.

</comment></comment><comment><USER9> I find it really irritating when project like this decide to just shut down without any alternative. Why not give your users some options? After all, your users are the people who generated all of the free content for your site. It's the least you can do.

For example, instead of shutting down, you could open source it, or at least allow people to download and host their own mirror.

If you aren't willing to do that, then why not offer some kind of paid option or donation option?

I get it. Their dream was for the site to be free and ad supported. But if their hosting costs are that high, at least give people the option of pitching in! It would take 5 minutes to post a paypal link or a bitcoin link. But nope, they haven't even done that.

Ugh. So irritating.

<comment><USER10> I am planning on doing a site rip for my personal reference, in case I need to leverage any of these documents in the future. I've never used the site before but it seems like a nice resource that I would like to have.

If I do the site rip are you interested in obtaining a copy?

EDIT - in case it wasn't obvious, I am only interested in and referring to the publicly available documents aspect of Docracy, which is what I assumed you were talking about. But I realize you may be using their other, private features like holding private contracts and digitally signed documents. If you are interesting in my pending rip of the freely available documents, let me know.

<comment><USER9> Sure! I'm definitely interested! Thank you for doing that work. I was thinking about doing it myself, to be completely honest...

<comment><USER10> Would you mind putting your contact email in your profile? The other commenter intersted in this (manglav) already has this in their profile. I need a way to contact you.

FYI - this should be done very shortly. I ran the script last night to scrape the site of all the relevant info. The actual download of all the files is running right now.

<comment><USER9> I'd rather not publicly tie my email address to my hacker news profile... Is there any way you could reply to this comment with a download link?

I would also be happy to tip you some bitcoin for your trouble, if you give me a bitcoin address

<comment><USER10> No need for the BTC, but I appreciate the offer.

[https://www.4shared.com/zip/AdAKc8akca/Docracy_Site_Rip.html](https://www.4shared.com/zip/AdAKc8akca/Docracy_Site_Rip.html)

You'll need a (free) account to download from that site if you don't already have one. You can create one just for the site or you can use Facebook, Twitter, or Google to log in. I recommend creating a regular, unlinked account.

The main Excel excel file is the actual HTML scrape for the data I pulled. It's pretty self explanatory. The documents directory holds all the files. The filenames match exactly what is in the Excel file except that they are also prefixed with the unique ID the site assigns for every document to avoid filename collisions. 200mb unzipped. There are 12 "documents" on that site that were actually just pages that contain mini-blog entries that are links to multiple contracts because they are, for example, things like "contracts for your personal life" and "top legal documents for freelancers". I added "topic, group, multiple" to the tags and keywords columns in Excel to identify these items.

</comment></comment></comment></comment></comment></comment><comment><USER11> Bummer. I use their service and would have paid but they never asked. Good alternatives paid or otherwise?

</comment><comment><USER12> damn shame.</comment>


Ask HN: Resources on bots, spiders - <AUTHOR>

Hi guys, are there some resources and mainly IDEAS for usage of bots, spiders and other software agents to help your business (ex. competitive inteligence)? I already read book Webbots spiders and screenscrapers from Starch press and I really like it. Could you recommend other interesting resources? <comment><USER2> Regarding "competitive intelligence" you could check out RivalMap for some ideas, which is a cool looking service.

<http://www.rivalmap.com></comment>


Shakespeare's Genius Is Nonsense - <AUTHOR> http://nautil.us/issue/18/genius/shakespeares-genius-is-nonsense <comment><USER2> The subject of the piece (Stephen Booth) has written "400 pages of virtuosic commentary exploring the ambiguity and polysemy of Shakespeare's verse." Does anyone know if he addresses Step Zero of appreciating the sonnets, which is to use Original Pronunciation (OP)? [1] Many of the sonnets don't even rhyme properly when pronounced in modern British or American English, but they do in OP. [2]

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

[2]: See, for example, the recitation of Sonnet 116 at [https://www.youtube.com/watch?v=bt7OynPUIY8](https://www.youtube.com/watch?v=bt7OynPUIY8).

<comment><USER3> I find David and Ben Crystal's efforts to promote the Original Pronunciation admirable, but ever since I've heard their version of Sonnet 116 a few years ago, I've harbored doubts about their particular choices. Several books I read on Early Modern English phonetics agree that love-prove, love-move, love- remove etc. are not visual rhymes. But Ben Crystal chooses to pronounce all these words with the short [ʌ] sound (like the vowel of modern 'cut'). And I think it's wrong (well, not on my own authority, I'm not a linguist or a specialist in this area, just someone very interested in historical phonetics of English who read a bunch of books and articles).

Words like move, remove, prove used to be pronounced with the long [o:] sound before the Great Vowel Shift (which is how they got their spelling), and by Shakespeare's time they moved to [u:], which they retained until modern times. I tried to find any evidence _other than the love- rhymes_ that these words could be pronounced with a short [ʌ] sound, and couldn't.

On the other hand, "love" was probably pronounced usually with a short [u] sound, the same sound we use today in "put". All the words with u in a closed syllable used that sound as well, like "cut", "but", "cup" "sun" etc. The change from this [u] to [ʌ] happened after Shakespeare's time, mostly later in the 17th century, resulting in the familiar pronunciation of "but" "cup" "sun", but leaving after it a fair number of exceptions that refused to follow the change, such as "put" "push" etc.

"prove" and "love" did rhyme when Shakespeare used them; but perhaps the rhyme was a bit inexact, rhyming long [u:] of "prove/move/remove" and short [u] of "love" (but still much more exact than modern [u:] and [ʌ] of course). Or, as Charles Barber claims in his "Early Modern English" (unwieldly Google Books links: [http://bit.ly/1uI7SWQ](http://bit.ly/1uI7SWQ)), "love" was exceptional in having a variant [u:] pronunciation especially beloved by poets, precisely because they could use it to rhyme it with handy words like "prove" and "move". Either way, the love/move rhyme did not sound at all the way Ben Crystal pronounces it.

<comment><USER4> The sound we use today in "put" isn't [u], it's [ʊ]. Today, it would definitely not be considered an adequate rhyme for [u:]; would you call "look" [lʊk] an inexact rhyme for "Luke" [lu:k]?

On the other hand, I tend to suspect that [u], if it occurred, would be accepted as an exact rhyme for [u:]. Any line-final [u] in a poem would sort of necessarily be promoted to [u:], though.

On an unrelated note, are there areas that use a [lʊv] pronunciation of "love" today? That might explain the to-me odd use of "lurve" in humor.

<comment><USER3> Thank you for correcting my careless notation. I often forget about the differences between some of the u-sounds, because my native language (Russian) has just one. To me, "look" and "Luke" actually sounds like a passable rhyme, and in general one feature common to nearly everyone who speaks English with a Slavic accent is that they do not distinguish between [ʊ] and [u:]. I know the difference intellectually, and I try to pronounce them correctly, but I probably still get it wrong every now and then.

I believe [ʊ] used to be [u], but I don't remember when this quality change happened.

I think there are still current dialects in the center and north of England where this split didn't happen, so they would have [lʊv]. Here's an interesting self-aware example: [http://linguistics.stackexchange.com/questions/6911/understa...](http://linguistics.stackexchange.com/questions/6911/understanding- the-strut-vowel-as-a-listener-without-the-split)

</comment></comment></comment></comment><comment><USER5> "Shallow processing explains our predisposition to miss the problem of whether a man should be allowed to marry his widow's sister."

What a neat example!

<comment><USER6> Is that shallow processing or the presumption of coherence? People frequently say things using linguistic shorthands that are literally nonsense, and we are only able to communicate because we routinely impose a generous interpretation on statements that would otherwise be incoherent. Since the literal interpretation of "Should a man be allowed to marry his window's sister?" makes no sense, reading it "incorrectly" in a way that does make sense makes sense.

<comment><USER7> *widow's sister

The other is even more nonsense :-)

<comment><USER8> For certain definitions of nonsense:

[http://www.youtube.com/watch?v=2-QoGKj6YQM](http://www.youtube.com/watch?v=2-QoGKj6YQM)

:)

</comment></comment></comment></comment><comment><USER9> TLDR is actually in the middle of the whole text:

The Shakespeare expert wrote a book (more than a decade ago!) on how Shakespeare is a genius apparently for controlling and using the nonsense in his verses.

Much ado (the linkbait quality title) about connoisseur (as in xkcd).

</comment><comment><USER10> For further reading, this is Booth's book on nonsense generally: [http://publishing.cdlib.org/ucpressebooks/view?docId=ft538nb...](http://publishing.cdlib.org/ucpressebooks/view?docId=ft538nb2zt&brand=ucpress)

</comment><comment><USER11> Very cool article. For those who didn't read and might wonder why someone is arguing that Shakespeare isn't a genius, the title is a play on words. The article argues that Shakespeare's unusual use of language ("nonsense") is what makes his work genius.

<comment><USER12> Thanks. I have a hard time defending Shakespeare well enough, but now I don't have to.

I wonder what translation of Shakespeare, to Italian for example, Booth prefers. Translators can make the archaic stuff accessible again, and so maybe the italian crowd gets the jokes that are lost on the english one.

<comment><USER13> Yep, that's it. Shakespeare's dialect is full of false friends.

 _Indeed, the irony today is that the Russians, the French and other people in foreign countries possess Shakespeare to a much greater extent than we do, for the simple reason that unlike us, they get to enjoy Shakespeare in the language they speak. Shakespeare is translated into rich, poetic varieties of these languages, to be sure, but since it is the rich, poetic modern varieties of the languages, the typical spectator in Paris, Moscow or Berlin can attend a production of Hamlet and enjoy a play rather than an exercise. In Japan, new editions of Shakespeare in Japanese are regularly best-sellers—utterly unimaginable here, since, like the Japanese, we prefer to experience literature in the language we speak, and a new edition of original Shakespeare no longer fits this definition. In an illuminating twist on this, one friend of mine—and a very cultured, literate one at that—has told me that the first time they truly understood more than the gist of what was going on in a Shakespeare play was when they saw one in French!_

\-- [http://www.tcg.org/publications/at/jan10/shakespeare.cfm](http://www.tcg.org/publications/at/jan10/shakespeare.cfm)

<comment><USER14> The flip side is that English speakers get to enjoy a treasure trove of 500 years of stories that are basically riffs on his works and a vast collection of day to day sayings and words which color our everyday language.

We actually get to live intimately with his works even if we can barely understand the originals.

<comment><USER15> So do you when you speak German and French. Shakespeare isn't just an English classic, he is an European and a World's classic and in Europe, many countries have lived intimately with him for centuries as well.

Granted, not all went as far as the Germans and Klingons, but thinking that only the English people have a long lived history with Shakespeare is false.

I looked at what Wikipedia had about Shakespeare's influence in non-English countries and was surprised that this is hardly mentioned.

Is this really an obscure fact that for example in the 19th century Shakespeare was widely more popular in Germany than in Britain or that Goethe and Voltaire were avid admirers of Shakespeare?

</comment></comment></comment></comment></comment><comment><USER16> Looks like the headline got changed. It was, "Shakespeare's Genius Is Nonsense" which I thought was both more correct (by HN rules) and more entertaining.

The headline is currently "What Shakespeare can teach about language and the limits of the human mind."

<comment><USER17> Ok, we put it back. The HN rule, by the way, is to not use misleading or linkbait titles. This one is obviously the latter. But if it's that descriptive of the content, we can let it go. (Edit: I'm moving this subthread to the root level so we can mark it off topic without penalizing the parent.)

<comment><USER18> Since when did legitimately clever headlines, once a source of pride for any editor, become "obviously linkbait"?

<comment><USER19> It's clever in context; that is, once you know what the article is about. On the face of it, someone is saying "it's nonsense that Shakespeare is considered a genius", and is thus more linkbait than the average, descriptive title.

<comment><USER18> Shakespeare's penchant for making up words and wordplay is well-known; there is enough context for an educated reader to figure it out before clicking on the link.

<comment><USER6> In a world where the most banal and boring article gets tortured into clickbait, this educated reader wondered, "Is that something interesting do to with Shakespeare's use of language, or something dull and stupid that has been given a ridiculous headline to attract the gullible?"

So no, there is not enough context for "an educated reader" to figure it out.

<comment><USER20> You conflate "educated" with "superficially cynical."</comment></comment></comment></comment></comment></comment></comment>


Hootsuite employees describe internal chaos following mass layoffs - <AUTHOR> https://www.reddit.com/r/vancouver/comments/bjlpem/hootsuite_employees_describe_internal_chaos_and/ <comment><AUTHOR> > _On April 29, Hootsuite CEO Ryan Holmes emailed staff saying layoffs were > coming and would be completed by end-of-day on April 30. He said the firm > would give a "full debrief" at a town hall meeting on May 2. "I appreciate > these next few hours will be stressful," he wrote._

> _Some employees said they waited at their desks the rest of the day for news > about who would be affected. The majority of the cuts were in North America > and Asia, with the Singapore office being closed entirely, according to a > post from one employee. The company's European workforce also saw > reductions. "_

> _"The way this was handled…was insane," wrote one employee. "You try sitting > all day with that email hanging over your head and then being let go and > bundled out the door as if you are a risk to company moral [sic] – as if > anything could be more demoralizing than seeing valued colleagues get frog > marched out of the office as they are crying. Absolute shit show."_

I wonder if there is a management chapter somewhere that walks you through how to do a mass layoff? Telling everyone to sit at their desks and wait to see what happens.. seems like a bad option. I guess there are no real good options here but this seems extremely stressful and rushed.

<comment><USER2> There are definitely better options though. At least warn people and give them a chance to make plans. Years ago I worked at a startup during the first dot- com crash. The president and the CEO had a falling out and decided to split up the company and spin the software development side into it's own biz under the former CEO. After a few months the upper management decided to lay-off 90% of the new company's employees without warning. All of whom previously worked at the parent company, some for several years. The few employees that weren't laid-off were told to stay home that day and none of the managers or the even the CEO showed up either. Everyone else came into work with a form letter waiting on their desks telling them they'd been fired. Nice to see nothing has changed in the industry over the past 20 years.</comment></comment>


Social Security, Treasury target taxpayers for their parents' decades-old debts - <AUTHOR> http://www.washingtonpost.com/politics/social-security-treasury-target-hundreds-of-thousands-of-taxpayers-for-parents-old-debts/2014/04/10/74ac8eae-bf4d-11e3-bcec-b71ee10e9bc3_story.html

<comment><USER2> Ridiculous.

Question: In EU countries debts expire after 3 or 5 years, if no party claims them. It is not possible to remember and start collecting 10 years old debts. Is there similar period in US?

<comment><USER3> It varies by state. Anywhere from 3 to 10 years (for non-IRS collections) depending on the type of agreement.

</comment></comment><comment><USER4> If they don't have proof of the debt. Then what is triggering them to collect? How do you collect money that you don't even know is owed to you.</comment>


Mountain Project's response to the accusation of IP theft - <AUTHOR> https://www.mountainproject.com/forum/topic/119186390/nick-wilders-response-to-recent-allegations <comment><AUTHOR> I thought this was a pretty interesting little event in the climbing world and was interested in peoples' thoughts related to the tech aspect.

Nick Wilder's post essentially covers everything with related links, but this all blew up from a blog post: [https://www.melaninbasecamp.com/around-the- bonfire/2020/7/6/...](https://www.melaninbasecamp.com/around-the- bonfire/2020/7/6/how-mountain-project-stole-from-a-woman-of-color)

After skimming through Melissa's proposal, it appears that she put a lot of work into what should have really just been a suggestion for a feature.

To me, her proposal looked like someone who was new in tech trying to get something in her portfolio. However, the interesting aspect of this story, in my opinion, is the question of how should the show-runners of these relatively small websites be open to accepting feedback/suggestions but also not get accused of stealing IP.

Obviously the suggestion of it being a race related incident made it blow up more than it likely would have but it's still something that I worry about myself when it comes to someone giving me advice for my own personal projects.</comment>


Use of Goto in Systems Code - <AUTHOR> http://blog.regehr.org/archives/894

<comment><USER3> The page linked has a good rule of thumb for the gotos: don't use backward ones. All the "escape" uses of goto - breaking out of loops, jumping to the appropriate part of the cleanup code, emulating exceptions behavior are forward jumps.

Back in the day hand coded assembly had jumps into the middle of functions' bodies which was a space-saving idiom for things like default initialization - the beginning of the function had some initialization code but you could jump into the function body (and skip this initialization block), provided that you did your own init and set the proper registers yourself.

<comment><USER4> There is however one valid case for using backward gotos - it's the loop restart.

      again:
         for ( ..container.. )
         {
             ...
             if ( ... )
             {
                 touch(container);

                 /*
                  *   If touch() changes container in a contrived
                  *   way, then restarting the loop is sometimes
                  *   the cleanest option.
                  */
                 goto again;
             }
         }

This obviously requires caution to not enter an infinite loop, but that's usually easier to guarantee than to reconcile the consequences of touch().

<comment><USER5> Java has exactly this. It's called "labelled continue".

        again:
        for(...) {
           ...
           continue again;
           ....
         }

</comment></comment></comment><comment><USER6> What almost all modern programmers, fortunately, are not exposed to are the goto-infested programs common during the time preceding this technical note. For one example, Fortran II was quite common at the time. IF statements were made up of a numerical test, and three branches: less, equal, greater. This made even simple programs quite difficult to understand.

Dijkstra, as noted in another comment by 'arocks, was a little alarmed at some taking the principle to the extreme. I am afraid that I was one of them for a while.

But the structured programming movement that followed and resulted in a great improvement in readability and in program reliability.

</comment><comment><USER7> It still seems like there would be an opportunity for a smarter language here. Like, the reason that `goto` appears here is because the language does not know how to clean up the mess that it's making, thus the code requires humans to jump back and forth between the top and bottom making sure that each cleanup section properly cleans up the corresponding mess above. This is true of both the `if` and `goto` code; and we could do this much more easily if those pieces of code were side-by-side.

<comment><USER8> GCC and LLVM offer a "cleanup in this scope" attribute, so you can write:

        __attribute__((cleanup(free_indirect))) char *foo = strdup ("bar");

where free_indirect is a simple wrapper around free. It's used in the systemd code (making it GCC/LLVM-specific of course).

<http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html>

</comment></comment><comment><USER9> One thing about replacing goto with if's: CODE COVERAGE, specifically: BRANCH COVERAGE.

In situations where you have to prove 100% testing of all code, with full branch coverage and absolutely _no_ dead code, the goto is preferred. This is simply because it is a faster instruction that does not depend on any other values being "valid" in order to function.

Why is that important? Bit-rot, folks. Like it or not, but we still have to ensure that the bit that is 1 is a 1 and not a 0, in this day and age - especially for safety-critical/life-dependent systems. The goto gives both full coverage capabilities (good for testing/certification) as well as providing one less path for radiation to be rotting bits.

(And before we get into the NAND/ECC discussion, remember: this is for _software_ certification requirements.. it doesn't matter how hard your hardware is, what matters is how hard your software is ..)

<comment><USER10> Firstly, I really don't follow your argument about code coverage. If you need to ensure that some unit of code is executed, why can't you make it a function and call it?

Secondly, you have misunderstood what bit-rot is. Bit-rot is not cosmic rays flipping bits, it is a humorous term to describe what happens when code that used to work and has not been touched no longer works.

EDIT: It seems Wikipedia disagrees with me on the second point. My apologies.

<comment><USER9> Just FYI, I've been working in the safety-critical industry for decades. If I've misunderstood bit-rot, by now some of my colleagues would have .. corrected .. me. ;)

Code Coverage means that you have demonstrated, beyond a doubt, that every single path in your code has been tested as functional and per-spec.

An if statement requires (minimally) two things to happen (sometimes three, depending on the compiler/architecture): a compare of some values, then a branch. A goto requires one thing: jump.

This then, reduces the cyclomatic complexity of your code path, and for coverage purposes is ideal because you're testing a simple jump, not a load, compare, branch. The use of if, in the example given, makes the testing complexity a lot higher - what if the if is broken somehow? (bit-rot: it still happens) In safety-critical, you have to test for that case, or else you don't get full coverage...

(edit: s/cycolmetric/cyclomatic/ .. its a european thing..)

<comment><USER11> As someone who has also done safety-critical software for a while allow me to interject this, your wrong.

That is by far one of the _worse_ excuses for goto's I have ever seen. If anything they make full branch analysis more difficult then using conditionals. I have never sat down at a gap analysis and had someone say I don't know if this branch is tested because it uses an if statement instead of a naked goto. I have had people say does control ever get to this point since its at a label and we need to trace the code to find where the goto for the label is and then check the conditions for reaching the goto then check the validity of those conditionals at some non syntax designated point in the code.

Also bit rot as you describe it is not a common occurrence and is something almost no one has to deal with. In fact most safety critical systems I deal with are designed to be replaced before we would ever need to worry about that. The more common use of bit rot is the second definition given in this[0] wikipedia article. Unused code which goto's can be a real headache for.

0\. <http://en.wikipedia.org/wiki/Bit_rot>

<comment><USER9> You've misunderstood my point in order to make your argument, I think. I didn't say that someone won't "know if this branch is tested because it uses an if" - obviously, they won't get certification if they don't _know_.

But the point is, they will have to write _MORE_ tests to prove this knowledge. In other words, _BREAK_ the conditions of the if statement in order to test - so simulate a full bitrot scenario on the conditional-branch. We've actually had to write tests to do this, but then been able to rewrite the code to use goto, effectively and without any of the disadvantages you mention - <USER2> fact, reducing the cyclomatic complexity of the entire system. This is a good thing.

Bit rot, not common? Well, if you're really safety-critical trained, you would simply never say that, in my opinion.

FYI, my software is running the trains in 38 countries around the world, track-side in thousands of locations. Replace the hardware? Forget it: that hardware will be there, in torturous environments, for years upon years and therefore: _must_ be SIL4 rated. There is no exchange of hardware after a crash.

<comment><USER11> All hardware gets replaced. If your not establishing a planned maintenance schedule for your hardware then your asking for failures. That's why companies give MTBF. The PLC's I have worked with have shelf life's of 30+ years , but we still have planned maintenance periods where we examine and replace and worn components and we have a tech refresh period designed to prevent anything from ever reaching a point of failure.

In addition every type of media I know of to store computer programs will physically degrade before suffering "bit rot". Most of the industrial controllers I have used ( everything aside from the most basic of uControllers ) have refresh cycles for their programs preventing this supposed bit rot by refreshing the signal on the media on a very regular basis.

FYI trains stations aren't torturous at all. I have put stuff on weather decks of naval warships now thats torturous.

</comment></comment></comment></comment></comment></comment><comment><USER12> Dijkstra himself later clarified: "Please don't fall into the trap of believing that I am terribly dogmatical about [the go to statement]. I have the uncomfortable feeling that others are making a religion out of it, as if the conceptual problems of programming could be solved by a single trick, by a simple form of coding discipline!"

</comment><comment><USER13> Structured programming with goto statements by Knuth is a nice paper on the topic.

[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103....](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.6084)

<comment><USER14> Hah, his example 1 looks like a motivating example for Python's for-else.

</comment></comment><comment><USER15> I found it enlightening to learn about the context in which the GOTO was first "considered harmful" by Dijkstra in 1968[1].

This is a period of time when the concept of higher level languages with specialist if-then, loops and return statements were still relatively new.

Most programmers in the world had cut their teeth on assembly language. In that model the natural way to think of programs is as a sequential series of addresses in memory that contain instructions.

Since all control structures are merely jumps to a new address, so why were all those grumpy ivory tower idiots so keen on abolishing goto?

Probably the biggest blow to the pro-goto camp in those days was the discovery of the "Structured Program Theorem" in 1966. It was proved that any computable algorithm can expressed in any higher level language that has sequencing of instructions, ability to select an execution path and iteration. The ability to jump is _not_ required. For the times it was an critical discovery because it meant higher level language designers could proceed with the confidence that any HLL they designed with those three properties would be usable for any algorithm in theory.

Finally, Dijkstra (and the other European greats like Hoare and Wirth) had in mind a particular vision of what programming ought to be. He didn't see it so much as an engineering activity. He wanted to treat programs as mathematical objects. Controlling the scope of languages can make this more or less tractable. So for example the "one return from a function" rule goes back to this vision, but has since gone on to live a care-free life of its own.

[1] [http://www.u.arizona.edu/~rubinson/copyright_violations/Go_T...](http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html)

<comment><USER14> It's also important to realize that the "go to" Dijkstra is complaining about isn't seen in modern languages. It's the goto of unstructured Basic and early Fortran where you're doing an unconstrained jump to some other part of the program source by line number. It has no real counterpart in C. Unless your entire program is one long main() function, forward and even backwards C goto within a function is a tamed HLL version that can be reasoned about.

<comment><USER16> It is possible to reason about the effects of a goto into the middle of a for loop (or switch case), of course, but doing so is likely to make you angry. :)

I believe those are reason enough to avoid doing those particular things, even if the global jumping of assembly of course is even worse.

<comment><USER17> Of course, this is the part where someone mentions Duff's Device, which uses a do..while spanning multiple switch labels. This is possible because switch works a lot like goto.

<http://en.wikipedia.org/wiki/Duffs_device>

</comment></comment></comment></comment><comment><USER18> If (for whatever reason) you have to write code with support for exception handling compiled out, goto statements are incredibly useful. While not quite as syntactically nice as a try/catch/finally paradigm, the combined use of error checking macros and a "cleanup" label can rather elegantly emulate the control flow of exception handling where appropriate.

<comment><USER19> They're really a closer cousin to the RAII pattern common in C++ than exceptions. Exceptions usually imply action across functions, but here they're just trying to enforce end-of-scope invariants. So if you're writing C++ code with "exception handling compiled out" (such as with Embedded C++, if anyone still uses that) you can still leverage RAII to do a lot of that type of cleanup.

That said, "goto" gets a bad rap in my opinion. Anyone can parrot Dijkstra's "considered harmful" line, but few know the context that it came from. If you've seen large FORTRAN programs from that era, where "GO TO" was the main control flow choice and labels had to be integers you know how even simple algorithms could be made unreadable. Effectively Dijkstra was extolling ALGOL programers not to code as if they were writing FORTRTAN -- in a structured language "goto" is the control structure you need to use least.

Still, there are places where "goto" is the cleanest way to accomplish what you want to do, and you shouldn't fear using it. (Please pick a good name for the label though!) I've seen programmers write crazy twisty code with all sorts of strange temporary variables simply to avoid the use of the forbidden "goto" keyword. Clarity should be your aim, not religious purity.

Also remember that "break;" (except at the end of a switch case) "continue;" and even early "return;" are morally equivalent to the dreaded "goto;" when you think about it. They don't get the same bad press for some reason.

<comment><USER3> > Also remember that "break;" (except at the end of a switch case) "continue;" > and even early "return;" are morally equivalent to the dreaded "goto;" when > you think about it.

To a degree - they can't go backwards and what's more important they can't jump into the middle of other control structures. The second case was what's really made it hard to reason about code with gotos.

<comment><USER19> OK, I'll give you that. A goto into with a tricky destination is a particularly bad case, worse than most uses of "break;" I was just trying to point out that they're all violations of the LISPy ideal where all control flow forms a hierarchy.

OTOH, with nested loops its easy to misinterpret where a "break;" or "continue;" will actually go. This is something that's bitten me many times over the years, especially when reading code with poor or inconsistent indentation. At least a goto is visually unambiguous and maybe even has a helpfully descriptive label.

Also: "continue;" goes 'backwards' for a "while" or "for" loop but "forwards" in a do-while. It's probably the most confusing of the bunch.

</comment></comment></comment></comment><comment><USER20> Lua 5.2 introduced goto, which was interesting, see <http://www.inf.puc- rio.br/~roberto/talks/novelties-5.2.pdf> for some explanations as to why.

</comment><comment><USER21> TeX is more or less one big pascal function with lots of gotos. While this makes it very hard to port to a more modular (and non-pascal) system, the source code (in typeset format: <http://abel.math.umu.se/~lars/misc/tex.pdf>) is very readable.

</comment><comment><USER22> couldn't you just say:

if(allocate_memory() != SUCCESS) { free_memory(); return error; } ...

The other examples provided make a better use case of GOTO.

<comment><USER23> Well, for starters the semantics of allocate_memory are (in general) such that a SUCCESS == false condition mean that no memory was allocated. So freeing the memory would be an error itself. This is me being a bit pedantic, but it is important to note that the error condition for resource allocation is generally "there is nothing from this step to deallocate". This can turn into an "off by one" error in cleanup if you aren't careful.

Second, say your allocate_memory is successful... your next n steps look like:

       if (allocate_memory() != OK) { return error;}
       if (allocate_resource1() !=OK { free_mem(); return error;}
       if (allocate_resource2() !=OK { free_r1(); free_mem();}
       ....
       if (allocate_resourceN() !=OK { free_N-1();...;free_r2(); free_r1(); free_mem(); return error;}
       // .... CODE
       free_N();
       free_N-1();
       ...
       free_r2();
       free_r1();
       free_mem();
       return success;

There are two things to note here. First of all, the if lines get very long when you have to do all that unwinding at the loop. This is ugly and annoying, but itself not a problem. Second, and this is a code smell, you've gone and seriously repeated yourself. Now every time you add a resource allocation, you have to update the unwinding in several places. There is more room for error, more chance of subtle issues in order creeping in. etc. This pattern is a way to avoid it.

The author addresses doing the whole chain in nested ifs in the original article.</comment></comment>


Mongrel2 got mirrored on github. - <AUTHOR> http://github.com/nvartolomei/Mongrel2

<comment><USER2> is this a good thing? my tiny brain is confused...</comment>


Is cloud computing more than just smoke? - <AUTHOR> http://www.news.com/newsblog/8301-10784_3-9902616-7.html?tag=nefd.top

<comment><USER2> I'm actually employed to do research in grid computing... one thing I've found is that for all the talk of cloud computing, there are very few mature actual implementations of software solutions for it, and the one I've worked with (Globus) is chaotic and byzantine in its architecture, difficult to set up and difficult to use! (It was designed by committee, as far as I can tell.) If Globus is any indication of the state of art, the field needs for someone to totally rethink our approach and make a simple solution, not a committee solution.</comment>


International evaluation of an AI system for breast cancer screening - <AUTHOR> https://www.nature.com/articles/s41586-019-1799-6.epdf?shared_access_token=kVvZMoNQY1E60a9V4HRgz9RgN0jAjWel9jnR3ZoTv0M5zwPVx5jT4z_z-YkUZTBTE1cippy6E3F3qd68BjOQxslFJ4XPytLp4iDhuNLXcChKCLDbaOud4l8DoxozA37iL2-mcZ1zUHf9b_cMFME3CA%3D%3D <comment><USER3> A bit unrelated, but I'm surprised because of how second readings are performed.

_In the UK, each mammogram is interpreted by two readers, and in cases of disagreement, an arbitration process may invoke a third opinion. These interpretations occur serially, such that each reader has access to the opinions of previous readers._

I wonder if it's sensible to condition the opinion of the second radiologist this way. My first impression is that this should be done blindly or the temptation of just confirming the previous reading because of fatigue/lazynes or to avoid confrontation could severely affect the results.

Similarly, a future in which the radiologist gets too much support could just impair their skills and turn them into a sort of a mechanical worker who simply accepts what the AI overlord has decided.

</comment><comment><USER4> I'm not a huge fan of turning the BI-RADS classification scheme into a ROC curve. From what I've seen, BI-RADS is something like a yes / no / maybe scheme for mammograms. I don't think it was designed to be treated like a test score, so using it to generate a ROC curve feels like an unfair comparison between the AI system and current clinical practice.

What they're doing is interesting, but it's still very academic. I have little doubt that eventually some sort of AI system will benefit clinical practice, but based on the sheer number of studies that fail to make it over the line, I'm not sure I have high hopes for this one. Why they've done so far is the equivalent of "It works in vitro..."

<comment><USER5> As I understand, for comparison, they _also_ turned AI system output to BI- RADS class and then back to ROC curve.

<comment><USER4> Huh, where does it say that in the article? I don't think I spotted that.

All the same, it feels sort of beside the point to me. It just doesn't feel right to take a medical diagnostic tool - whose intended purpose is for communication among doctors - and treat it as a test score. That's just... not what it was designed for.

<comment><USER5> In page 3, "Readers rated each case using the forced BI-RADS scale, and BI- RADS scores were compared to ground-truth outcomes to fit an ROC curve for each reader. The scores of the AI system were treated in the same manner (Fig. 3)."

This isn't as clear as I want it to be, but Fig. 3 shows both "AI system" and "AI system (non-parametric)" ROC curve. My understanding is that the former is fit from discrete BI-RADS class, and the latter is "raw" output.

</comment></comment></comment></comment><comment><USER5> > Notably, the additional cancers identified by the AI system tended to be > invasive rather than in situ disease.

This is probably due to invasive cancers being more common (~80%) than in situ cancers. I am not sure why this natural explanation was not suggested.

</comment><comment><USER6> > Screening mammography aims to identify breast cancer at earlier stages of > the disease, when treatment can be more successful. Despite the existence of > screening programmes worldwide, the interpretation of mammograms is affected > by high rates of false positives and false negatives. Here we present an > artificial intelligence (AI) system that is capable of surpassing human > experts in breast cancer prediction. [...]

> In an independent study of six radiologists, the AI system outperformed all > of the human readers: the area under the receiver operating characteristic > curve (AUC-ROC) for the AI system was greater than the AUC-ROC for the > average radiologist by an absolute margin of 11.5%. We ran a simulation in > which the AI system participated in the double-reading process that is used > in the UK, and found that the AI system maintained non-inferior performance > and reduced the workload of the second reader by 88%. This robust assessment > of the AI system paves the way for clinical trials to improve the accuracy > and efficiency of breast cancer screening.

So, there you have it: AI not "either/or" humans, but _both_ , in conjunction, as a _composition_ of the best of both worlds.

At the very least, that's how civilization will massively and intimately introduce true assistant AI.

It's also somewhat counter-intuitive to think that the most specialized tasks are the low hanging fruits; i.e. that the "difficult" to us, culminating years of training and experience for humans (e.g. how to read a medical scan) may be, per its natural advantages (like speed and parallelism), "easy" to the machine.

That space (where machine expertise is cheaper than human) roughly maps to the immense value attributed to the rise of industrial-age narrow AI; therein lies not a way to replace humans — we never did that in history, merely destroyed _jobs_ to create ever more — but rather to _augment_ ourselves once more to whole new levels of performance.

Anything more than this is AGI-level, science-fiction so far — and there's not even a shred of evidence that it's theoretically a sure thing, possible in the first place. Which is not to say that AI safety research isn't _extremely important_ even for the narrow kind (manipulation comes to mind), but we shouldn't go as far as to bet future economic growth on its existence. Like fusion or interstellar travel, we just don't know. Yet, and for the foreseeable future, because scale.

<comment><USER7> Exactly this. This is where I see AI possibly going: To be a complimentary tool or second pair of eyes to speed up the work for the professionals rather than replacing them. I also see this research as a very positive step forward for using AI for good and especially bringing highly accurate results that can used as a aid for health professionals.

However, given that this research used a deep learning (DL) based AI system in the medical industry, there are still questions around this AI system explaining itself and its internal decision process for the sake of transparency, which will almost be ignored in other news reporting sites and will focus only on the accuracy. DL-based AI systems will still be a concern towards both patients and clinicians and I would expect this to be a focus point in the future, despite the welcoming results which is still very interesting anyways.

Other than the transparency issues behind the AI system, I'd say this is a great start into the new decade for AI.

<comment><USER8> Agreed. The ability of the someone/AI to explain their decision making process, is critical in determining whether such a decision has been adequately thought out or not. If a PhD must go through a viva, surely it is also incumbent on anybody pushing "AI" to also be able to "survive" such a viva. Otherwise, we might as well just go back to the days of reading entrails, flipping coins, etc. [edit: typo on viva]

</comment></comment></comment><comment><USER9> There were like 80 different vendors showing assisted ai in many different spaces at RSNA 2019

Well known every major pacs vendor is looking for assisted findings (some have been available for ages, ex: icad bi-rads finding for telling rad to check) or even just case prioritization for radiologists. (Ex: aidoc has an algorithm for brain bleed for case prioritization, not a diagnosis).

They all are employing machine learning really (zebra medical claims 30 million scans processed).

Medical "ai" "algorithms" companies are vastly growing in the past few years

<comment><USER10> > Ex: aidoc has an algorithm for brain bleed for case prioritization, not a > diagnosis).

Eh... well it's more complicated than that. These systems CAN diagnose, but their regulatory approval is only for use as an aid, not as a diagnosis tool.

</comment></comment><comment><USER11> Paywalled scientific research, no source code and the reviewers who don't mind calling run off the mill CNNs as "our AI system".

How far Nature has fallen these days? How long before Nature is merely PR agency for the big tech?

<comment><USER5> Not only is this "no code", it is also "no data"! At least data availability statement is now required so we know data is not publicly available...

<comment><USER12> [https://twitter.com/drhughharvey/status/1212646954477539328](https://twitter.com/drhughharvey/status/1212646954477539328)

</comment></comment></comment><comment><USER13> Related from 2 days ago: [https://news.ycombinator.com/item?id=21917747](https://news.ycombinator.com/item?id=21917747). This looks like different work though?

<comment><USER5> Yes, it is a different work. The current one published at Nature is from DeepMind.

It is interesting to note the differences. For example, DeepMind notes "In our reader study, all of the radiologists were eligible to interpret screening mammograms in the USA, but did not uniformly receive fellowship training in breast imaging." whereas DeepHealth notes "All readers were fellowship trained in breast imaging", so +1 to DeepHealth.

On the other hand, DeepMind says "Where data were available, readers were equipped with contextual information typically available in the clinical setting, including the patient's age, breast cancer history, and previous screening mammograms." while DeepHealth says "Radiologists did not have any information about the patients (such as previous medical history, radiology reports, and other patient records)", so +1 to DeepMind. And so on. These differences make direct comparison between studies very difficult.

<comment><USER14> This "+1" thing is damaging and incorrect.

Depending on the context the model ends up being used in something that appears good may not be. For example the fellowship training thing - <USER2> non-fellowship trained radiologists are doing this task now, so it is absolutely reasonable to assess against them to test real-world performance.

It would be interesting to see if the fellowship trained radiologists did actually perform better in all circumstances (in some fields the better trained radiologists end up not using their skills on as broad a range of patients, so their performance is actually worse one some subsets of data).

<comment><USER5> +1 was mostly to indicate whether you should upgrade or downgrade the reported result to be comparable with other studies. I didn't mean to imply whether it improves clinical relevancy.

<comment><USER14> Yeah that is fair.</comment></comment></comment></comment></comment>


How do CIA hacking tools for SSH work? - <AUTHOR> https://www.ssh.com/ssh/cia-bothanspy-gyrfalcon <comment><AUTHOR> Technical analysis of how BothanSpy and Gyrfalcon work, what they can be used for, and how easy they would be to reimplement. I am somewhat puzzled by them though...</comment>


Firefox: The Effect of Ad Blocking on User Engagement with the Web [pdf] - <AUTHOR> https://research.mozilla.org/files/2018/04/The-Effect-of-Ad-Blocking-on-User-Engagement-with-the-Web.pdf <comment><USER2> > In the group that installed an ad blocker, we find significant increases in > both active time spent in the browser (+28% over control) and the number of > pages viewed (+15% over control), while seeing no change in the number of > searches.

I'm struck by the almost numerical identity of their adblock correlate on page views with the long-term causaleffect on total site traffic I estimated in my banner ad A/B test ( [https://www.gwern.net/Ads](https://www.gwern.net/Ads) ) of (15% vs my 14%, 13-16% CI). The unit of analysis isn't the same but they're arguably equivalent.

This is also interestingly parallel to Pandora's giant A/B test: Huang et al 2018's [https://davidreiley.com/papers/PandoraListenerDemandCurve.pd...](https://davidreiley.com/papers/PandoraListenerDemandCurve.pdf) "Measuring Consumer Sensitivity to Audio Advertising: A Field Experiment on Pandora Internet Radio".

<comment><USER3> It seems to me like this study is looking at the correlation of heavy usage and ad blocker usage, and jumping to the conclusion that blocking ads is a _cause_ for using the web more, and not the other way around.

<comment><USER2> It is correlational, yes, but it's consistent with what we expect (surely no one expects ads to have zero or even positive effects on Internet usage?), the direction & size of the effect are consistent with the 2 most relevant randomized experiments (linked in my comment), and they have longitudinal data which lets them control for a decent number of baseline characteristics like, to quote from the propensity scoring section:

\- Active hours: Total time the user spent interacting with the browser \- Session length: Total browser session time \- Number of subsessions: Total Telemetry reports \- Total tab open events: Number of tabs opened \- Total URI count: Total number of pages loaded \- Unique URI count: Number of unique websites (TLD+1) visited \- Address bar searches: Number of searches initiated from the address bar \- Search bar searches: Number of searches initiated from the dedicated search bar \- Total Yahoo searches: Number of searches made using the Yahoo search engine \- Total Google searches: Number of searches made using the Google search engine \- Total searches: Total number of searches overall initiated from one of the Firefox search bars \- Number of bookmarks: Total bookmarks added \- Length of history: Total number of pages visited

So everyone with an adblocker had normal activity levels at the start (compared to the non-adblock-user they are 'matched' with by the propensity scoring), but after installation, then the adblocker people saw large increases in activity that their non-adblock counterparts, who were web browsing just as much before hand, did not experience.

This largely rules out the reverse causation of 'browsing -> adblock installation'. It could still be driven by people forecasting that they will be doing a lot of web browsing in the future and installing adblock _before_ they begin doing all the extra browsing, but this feels a lot less plausible to me.

</comment></comment></comment><comment><USER4> If you accept that advertising is necessary to some business models, I hope to see publishers move ads back to the server because I think eliminating all the code from the client would drastically improve user experience.

This would make them tougher to block and hinder users ability to control privacy, but it would also restrict tracking to that specific site.

<comment><USER5> > If you accept that advertising is necessary to some business models, I hope > to see publishers move ads back to the server

The problem is the big guys can do this easily, but e.g. someone running a blog cannot easily serve ads from the server.

Ad networks are about ad auction and showing the highest paying available ads for a site. Client side ad solutions makes this easy for the little guy, because ad selection is done on the client by the ad network.

The big players (facebook, etc.) can easily alter their methods or require subscription if necessary. It's not so easy for the little guy, so a change of the current model without offering a similarly effective alternative is going to kill many little sites, blogs, forums, while the big players will keep thriving regardless.

<comment><USER6> If the small players can only continue to exist by serving malvertising, some might opine that they might not have a right to continue to exist with that business model.

<comment><USER7> Why must non-server advertising be the same as malvertising? The integration type is different from the ads that are possible. Server-side integration doesn't affect what ads are available.

<comment><USER8> Don't all the ad networks use JavaScript? Has any network never let malicious code from advertisers slip through? (I guess Google? But I'd prefer not to have even more people embedding their js everywhere I browse)

<comment><USER7> Yes, there are networks that have always remained clean. It's a business problem more than technical.

But the topic was smaller sites running 3rd party networks which necessarily only integrate via client-side JS. That has nothing to do with what kind of ads are being run. It's the same exact ad calls to the ad exchanges, just done via HTTP from the server rather than JS in the browser.

<comment><USER9> You can't virus-scan an e-mail that doesn't pass through your server. How would you inspect javascript that doesn't pass through your server?

Or do you have to just get a bit of paper from the ad network saying they won't make any mistakes, then take their word for it without any way of auditing their claim?

<comment><USER7> That's not how it works. The payload is dynamic javascript. Just because you make some calls on the server-side doesn't mean you can inspect the payload with any real reliability, and if it was that easy then it would already be done by the ad exchanges who send the payloads in the first place.

There is an entire inner industry around security and malware for programmatic ads, with a few companies that are pretty good at it, but it is not something that can just run as a simple server for any small publisher to deploy.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> > adblocker | either AdBlock Plus (ABP) or uBlock Origin, the two most popular > ad-blocking Firefox add-ons

Adblock Plus ("ABP") does not block a lot of ads by default, as ABP's "Acceptable ads" is opt-out -- i.e. it is enabled by default.

I wonder if this was taken into account, and if not surely this affected the result of measuring "the effect of ad blocking on user engagement with the web", as you can't categorize ABP's "acceptable ads" as "ad blocking".

<comment><USER2> If many of the 'adblock users' are still being exposed to occasional ads which are 'acceptable', then presumably the true effect of ads is even worse than estimated.

</comment></comment><comment><USER11> > We conclude that ad blocking has a positive impact on user engagement with > the Web, suggesting that any costs of using ad blockers to users' browsing > experience are largely drowned out by the utility that they offer.

Facebook: "This user isn't clicking any ads; let's keep them engaged more with pointless content until they do."

<comment><USER12> Facebook: "This user isn't clicking any ads, and will probably never click any ads. That's fine; their presence and contribution to the platform helps us attract and retain other users, some of whom will click ads, and so is inherently valuable to us."

</comment></comment><comment><USER13> Companies like WP, NYT, and Ars should conduct similar analyses focused on their own sites to see if reducing the number of ads (or their size in pixels or bytes) results in more engagement, and ultimately a larger number of ad views.

<comment><USER14> There is absolutely no doubt that all those sites, and many others, are continuously running such experiments.

There are also new financing methods, paywall implementations, prices, cooperations, etc. being tested all the time, with some successes and many failures.

While people here and in general often seem to consider publishers to be rather stupid, I think there's enough evidence at this point to conclude that it has become a particularly difficult business, what with almost half of revenue almost instantly disappearing when classifieds move to the net, and people generally considering to appear out of thin air because the costs of copying are zero.

<comment><USER2> > There is absolutely no doubt that all those sites, and many others, are > continuously running such experiments.

They are running randomized experiments, but they are not necessarily running the _right_ experiments. If the bottom line is revenue, then attrition may not be directly measured; if they are testing on per page-view or per session instead of bucketing users _permanently_ , then they can miss effects too; and if they are testing by bucketing users simultaneously, they can miss non- additive site-wide effects. If you look at my comment, I link two publicly- documented randomized experiments, and both set up/analyze their tests in an unusual way.

After I published my results, I heard about some parallel results, but not that many. I heard whispers that Google might (or might not) have internally run equivalent tests; I heard from Chris Stucchio that an unspecified company he worked for had run an A/B test with similar results; I heard from a mobile developer that they had run a similar experiment but found no effect of ads; Pandora subsequently published their A/B test; and Mozilla has published this. I also read through most of the 'advertising avoidance' literature in academia going back 30 years, and found nothing relevant. And that's it.

So, if everyone is always continuously running obviously relevant experiments... where are they?

<comment><USER7> Do you mean where are the published results? That's not something publishers do, so most of the intel will be internal. It's also unlikely that are running experiments constantly as the basic stuff has been figured out.

Also most of the innovation happens with adtech vendors who try out new ways to get attention and payments. TrueX and Sourcepoint have been working on some new stuff, along with the various formats that keep being invented.

<comment><USER2> > Do you mean where are the published results? That's not something publishers > do

Publishers like Google, Microsoft, and Yahoo do publish many research papers going in depth on A/B tests - such as the effects of page load time - and I've benefited from reading them over the years. So yes, it is something they do.

<comment><USER7> None of those companies are considered publishers, and that seems to be more generic UX research rather than ad focused.

For example, Washington Post runs experiments specifically with ads as a digital media/news publisher, but you won't see that research published anywhere.

<comment><USER2> They publish a ton of stuff and are some of the biggest media properties on the Internet. Other publishers like the NYT or the BBC also do writeups of A/B tests and lessons, but they're such small fry I didn't want to mention them. And if 'page loads harm user retention' is worth publishing, 'ads harm user retention' definitely is and they are exactly the companies best placed to find that out.

<comment><USER7> We're just going in circles here. You asked about relevant experiments as a reply to comments about media publishers and ads. I'm telling you why you don't see that research as official papers.

Google, Microsoft (Bing), and Yahoo are not considered media publishers because they are ad networks first.

If you just dismiss actual media publishers like NYT and BBC as small fry (when they are some of the biggest) then I'm not sure what you were expecting as an answer.

Even if you don't discount their sizes, they do not reveal their research because there's no time or incentive to reveal things like yield management, which is complex, audience specific, and contains competitive intel. That's why it can't be officially found, but you can get details if you talk to their dev teams.

<comment><USER2> > I'm telling you why you don't see that research as official papers.

Which is a strange thing to claim since what you claim never happens, happens all the time with some of the largest media publishers in the world. Think of how many pages Google serves via AMP, or Yahoo's front page, or Google News, quite aside from their companies literally being based on advertising. If they are not media publishers who are doing experiments of the relevant sort, no one is and you are blatantly no-true-Scotsmanning.

There are large entities, better positioned than anyone else in the world to know, who run experiments constantly, and publish the results constantly.

So.

Where are they?

> they do not reveal their research because there's no time or incentive to > reveal things like yield management, which is complex, audience specific, > and contains competitive intel.

Congratulations, you have disproved the existence of hundreds or thousands of papers and blog posts. I must be hallucinating them all.

> That's why it can't be officially found, but you can get details if you talk > to their dev teams.

Really? Then why, when _I_ talk to them, I never hear any specifics, I always get told either they don't know or no one's checked, and only once in a blue moon do I hear something relevant (always without details)? Since you apparently talk to so many dev teams and they tell you all about the effects of ads on user retention and total traffic from the many experiments they run but never ever publish on, perhaps you could summarize them and provide the details for the rest of us.

<comment><USER7> >> If they are not media publishers... no one is

No, Google, Microsoft, Yahoo are not considered media publishers by any actual media publisher; because they are ad networks that do some news aggregation at best and do not produce original content. There absolutely is a definition that you are refusing to recognize for some reason.

>> There are large entities..., who run experiments constantly, and publish the results constantly. So. Where are they?

Again, what are you referring to here? The big companies are not publishers and what they do is closer to Amazon.com testing page speed rather than NYT testing ad load. Actual media publishers do _not_ publish results constantly, if ever.

>> Congratulations, you have disproved the existence of hundreds or thousands of papers and blog posts. I must be hallucinating them all.

What? How are you asking about the lack of research and then saying there's research everywhere? Again, what are you talking about here? What media publisher* is printing heavy insights into their ad yield management?

>> ...when I talk to them, I never hear any specifics, I always get told either they don't know or no one's checked...

Because it's internal intel. Do you know anyone on the revenue team? They might be more open to details but won't know the technical background. You can look at trade publications like Digiday, Adweek, Mediapost, Adexchanger and others to find details and some rare whitepapers.

>> perhaps you could summarize them and provide the details for the rest of us.

You need to have specific questions, but here are some details:

Top sites are focused on revenue over UX. Sites have found equilibrium between ad load and retention with maximum time spent. Users rarely stop visiting sites, they just come back with adblockers instead, which has led to strategies like free articles per month and increased direct-sold campaigns and native ads from brand studios (for pubs that can afford a team). WSJ and other pubs have stopped the google-search free entry workaround as well.

UX changes include never-ending feeds and auto-changing articles to minimize bounces, along with less ad slots but more ad refreshes to increase total impressions. Tech-forward pubs like WaPo have built their own adtech stacks to show users different formats and ad frequencies depending on how they respond. Subscribers get less ads until churn is minimized. No ads for subs just leaves money on the table and even FT.com runs plenty of campaigns. Video has also invaded everything with 5x higher prices than banners.

Overall pubs have managed to squeeze out the same number of impressions from just the non-adblocked market, while optimizing paid conversions for adblockers and capitalizing on their uninterrupted attention to show more high-touch direct campaigns. Readership is up all around and both segments make more money than before.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I don't object to advertising. Highly optimized images can load quickly. I object like a banshee to the insane amounts of js that is raining down on my connection. The bad things that people are doing with that js, from crooked, inept, unprincipled, to down right criminal, well that's just the icing on the cake...

<comment><USER16> This is why I block nearly all adverts. I wouldn't object to ads that don't track me, or autoplay sound/video, or obscure the content, or waste my bandwidth.

</comment></comment><comment><USER17> Mozilla should work on a micro-payment system that is inbuilt into the browser. Ultimately that is the only solution to a web that values user privacy and prevents the psychological toll of ads.

1\. Obviously, the micro-payment system should not be selling my usage data to anyone. Perhaps some cryptographic techniques can be used to increase trust in the service.

2\. The price for each page should be low - a cent or less for most articles, less than 5c for more serious journalism. Maybe 2 cents/day for social media websites. I would guess for most people in the west 30 dollars/month would be the max they are willing to spend and for other countries, ~5 dollars/month.

3\. In return for paying for a page there should be 0 off-site advertisements on the page.

4\. People are going to say - such a business model will not work because too many decisions. Look at places like South Asia where hundreds of millions of people use prepaid phone services where they get charged for every call/sms at very low rates. And they would not have it any other way. I am sure consumers in the West can be trained similarly.

<comment><USER18> _micro-payment system_

This comes up regularly. All the enthusiasm for micropayments comes from people who want to collect micropayments. Not from the users who would pay them.

<comment><USER19> > This comes up regularly. All the enthusiasm for micropayments comes from > people who want to collect micropayments. Not from the users who would pay > them.

All the enthusiasm for ads only comes from the people who want to show/sell them. Not from the users who would be subjected to viewing them.

I think it's still a worthwhile discussion. Presumably the micropayments have fewer (or at least different) unintended consequences. And since in both cases (ads, micropayments) the side collecting the money is the one pushing them. So discounting micropayments solely on this basis isn't really a good way to discriminate.

<comment><USER20> _> All the enthusiasm for ads only comes from the people who want to show/sell them. Not from the users who would be subjected to viewing them._

Yes, it does seem that way because nobody actually says, _" Please please give ads because I love them!"_

Instead, the correct way to frame what users really want is to separate _" stated preferences"_ from _revealed preferences_.[1]

The _stated_ preference, of course, is for users to complain about ads and loathe them. Another source of stated preferences is marketing surveys and questionnaires.

But the _revealed_ preference is different because it's the observation of _what really people do_ instead of what they say they'll do. Most would rather watch youtube for free rather than pay $9.99 for YoutubeRed. Same for Spotify free tier with ads rather than $120 a year Spotify Premium. Most would rather read the 5 free articles with ads from New York Times rather than pay a subscription.

Another interesting example was Amazon's Kindle e-reader. They had a version with ads (what they call "with Special Offers") for $114 ... and one without ads for $139. _More buyers chose the device with ads._ [2]

Did Kindle users want ads?!? Of course not. But they valued the $25 savings more than the the ad-free experience. Basically, they "do want ads" \-- in a roundabout way.

The micropayments enthusiasm doesn't really change the consumers' _priority_ of "free with ads" over "pay for zero ads". People really really like the economics of "free". Unless micropayments is $0.00 -- which would be an oxymoron -- it will always have that economic handicap to widespread adoption.

 _> Presumably the micropayments have fewer (or at least different) unintended consequences._

One unintended consequence is that authors and creators end up with _less revenue_ if they restrict their output to only subscribers making micropayments.

[1] [https://www.beyondcostplus.com/blog/stated-vs-revealed- prefe...](https://www.beyondcostplus.com/blog/stated-vs-revealed-preferences- pricing)

[2] [https://www.pcmag.com/article2/0,2817,2385398,00.asp](https://www.pcmag.com/article2/0,2817,2385398,00.asp)

<comment><USER21> These things are very much aggregates and averages.

A significant number of people do subscribe to spotify, and some is buy the ad-free kindles.

<comment><USER21> some _of us_ buy the ad-free...

sigh, phone keyboards and a lack of proof-reading.

</comment></comment></comment></comment></comment></comment><comment><USER22> I don't see anyone here pointing out an alternative explanation: It could be simply that more active users are more likely to install ad blockers.

<comment><USER23> They seem to cover that:

> We then compare test group Web usage after installing the ad blocker to > control group usage over a comparable period, _controlling for baseline > usage levels._

Emphasis mine.

<comment><USER22> Interesting, thanks.

</comment></comment></comment><comment><USER24> Interesting, but I do want to know if a randomized study produces the same results. Users who use adblockers are much more likely to be power users.

Mozilla does control for that by separating any add-on from adblockers, however. So maybe the finding is generally true. This is not very surprising if true, given the difference in experience across most websites when adblocking is on.

<comment><USER25> Brave is extending ad-blocking beyond the power-user domain, and into the general user base. We recently passed 4 million monthly active users, and 10 million Android downloads. With our built-in ad-blocking, the practice is becoming more ubiquitous among non-technical users. In fact, prior to Brave, ad-blockers had appeared on more than 600M devices. There's a clear and strong trend towards more and more blocking/privacy-by-default on the web.

</comment></comment><comment><USER26> More people are voting with their wallets that online advertising is executed poorly and an annoyance to a threat vector for malware. More people need to stop the advertising from even coming down their wire. I'm happy with Pi-hole: [https://pi-hole.net/](https://pi-hole.net/)

<comment><USER25> This is what we do with Brave ([https://brave.com](https://brave.com)). We stop it from even touching the network; after all, much of the ads and trackers we download aren't benign. Many are aggressively trying to monitor our online activity at best, or infect us with malware at worst. Brave blocks these requests from taking place.

We offer the user an option instead to support online properties (websites, YouTube channels, Twitch streams, etc.) with pro-rata contributions of Attention Token (BAT). Brave stakes users with free BAT grants each month to prime the system.

Understanding that the web runs on advertisements, we're also working on an alternative advertising model wherein the user gives explicit consent to participate, matching happens on-device via machine learning, and revenues are shared with the end-user (as much as 70%).

</comment></comment><comment><USER27> I think I would just rather have advertisers barrage me and I'll continue to block them.

<comment><USER25> Something has to be done about the sustainability problem though, otherwise you'll have fewer and fewer sites to visit in the future.

Brave is working on an alternative digital advertising platform based on explicit user buy-in. If the user does not consent, the user does not see these third party ads and trackers.

As part of an incentive to get user consent, Brave's model pays the user for their attention (as much as 70% of ad revenue). After all, attention is a limited commodity, and you should get paid for yours.

In the Brave model, ads are matched locally, on the user's device via machine learning. This reduces complexity, thus reducing opportunity for fraud and abuse. As such, we expect to see more revenue for the content creators themselves (in addition to the users).

</comment></comment><comment><USER28> > We find that installing ad blocking extensions substantially increases both > active time spent in the browser and the number of pages viewed. This > empirical evidence supports the position of ad blocking supporters and > refutes the claim that ad blocking will diminish user engagement with the > Web.

This gives me echos of "thrift paradox" \- kind of behavior which is great for you as long as most of the other folks behave otherwise. If a majority of users continue viewing ads and thus provide monetary returns for content creators, then the minority users of ad blockers get a better experience and hence they are more engaged with the web.

On the other hand, if everyone starts using ad blockers, then how are content creators going to survive? Probably, a bunch of copycats and click-baiters deserve to perish. But this can also have unintended consequences of niche blogs vanishing and/or paywalls going up and/or survival of only those with some benefactor (Washington Post) or cross-subsidizing business empire (Murdoch). Do we want that kind of future?

<comment><USER29> Small independent creators cannot rely on ads for income already and fund some other way. And so almost all of the websites, except for some thousands of top ones. But those can probably find a way to survive another way.

Blocking ads may not actually affect anyone beyond online advertising corporations.

<comment><USER25> Content creators have been hurting for some time, and it doesn't just impact those who have seen diminished returns. Many have been unable to monetize their content at all (which we see quite often on YouTube, etc).

We built Brave Payments (now Brave Rewards) into the Brave browser to _re- monetize_ the web. Each month we give out BAT grants to our desktop users, which fund their favorite online properties (sites, streams, channels, etc).

Brave is also standing up an alternative ad-model which requires explicit user consent. If a user participates, ad-matching happens locally, on the user's device. This protects privacy, cuts out middle-men, reduces fraud, and more. Furthermore, the users are compensated for their attention (up to 70% of ad revenue), which adds to the sustainability of the web.

</comment></comment></comment><comment><USER30> I smell a Correlation-Is-not-Causation fallacy here.

<comment><USER25> Could you elaborate as to why you believe there is no causation here? Those who use ad-blockers do so for the explicit reason of making the web more tolerable; a more tolerable web is therefore more desirable to browse.

<comment><USER3> This is proving just as clearly that the more you use a web browser, the more likely it is that you will block ads.

The only _evidence_ here is correlation.

<comment><USER2> > This is proving just as clearly that the more you use a web browser, the > more likely it is that you will block ads.

No. That's the point of using propensity matching in a longitudinal dataset. What this 'proves' is that 'when two new Firefox users who use a web browser an equal amount (as defined by a number of variables like time-in-browser or total-TLDs or total-URLs) are compared, one of whom installs adblock and one who does not, afterwards, the adblock user subsequently increases their web browser use compared to the non-adblock user'. As they put it:

> Restricting to new users who installed Firefox during a specific time > period, we select a test group of users who installed an ad blocker, and a > control group that did not. The selection is performed using a matching > technique applied to baseline user features, which allows us to infer a > degree of causality from the observed effects. We then compare test group > Web usage after installing the ad blocker to control group usage over a > comparable period, controlling for baseline usage levels. This is sometimes > referred to as analysis of covariance, and is closely related to difference- > in-difference analysis...This is achieved using matching. Each test group > member is paired with a similar member of the control group, where > similarity is determined based on features observed during the baseline > period. This ensures that the groups start off "more or less the same", e.g. > that one group is not biased towards more engaged users...Taking into > account the matching and adjustments made to ensure comparability between > the groups, we find that installing an ad blocker does in fact have a strong > effect on average Web engagement. Users who installed an ad blocker were > active in the browser for around 28% more time on average, and loaded 15% > more pages (URIs), controlling for baseline activity.

(Which of course still doesn't prove causation, because there is 1 remaining possibility: some third factor caused both the adblock installation and then later in time the increased web browsing. But it doesn't prove what you say it does.)

</comment></comment></comment></comment><comment><USER31> TL;DR: _We find that installing ad blocking extensions substantially increases both active time spent in the browser and the number of pages viewed._

(also known as "water is wet")

<comment><USER32> Water is wet, but to what degree?</comment></comment>


Explorations in Point Cloud Slitscanning - <AUTHOR> https://github.com/golanlevin/ExperimentalCapture/blob/master/students/michelle/project3.md <comment><USER2> I wrote a slitscan algorithm in 2008, started with Processing too but instead I ported it to a shader written with vvvv.

<comment><AUTHOR> Is there a public link to your work? I just checked out vvvv (interesting stuff!) and also found a JavaScript version: [https://github.com/zauner/vvvv.js](https://github.com/zauner/vvvv.js) (Don't know compatibility though).</comment></comment>