skysight-inc/HackerNews huggingface dataset:
I think this is huge. It reminds me of the early days of Firefox (back then still known as Phoenix) in a world where IE6 and pop-up ads dominated. At launch IE6 was really the best and most innovative browser of it's time (IMHO). But after IE6 had beaten Netscape, Microsoft stopped putting money in IE development and the situation got worse over time. It was Phoenix with, among other things, a pop-up blocker that was on by default that brought down Internet Explorers hegemony.

Today, with Chrome being dominant the situation is different because Google is still innovating Chrome at light speed. The one and only Achilles heel to beat this giant is by attacking their business model, which is to enable ad blocking by default. I expect this is something people want, just like pop-up blockers back in the days. Google will never be able to lead, or even follow in this direction without changing their business model.

Unfortunately, Mozilla’s own business model also heavily relies on selling ads, albeit indirectly. According to this statement from an independent audit report[1]:

"Note 10 - Concentrations of Risk:

Mozilla has entered into contracts with search engine providers for royalties which expire through November 2020. Approximately 93% and 94% of Mozilla’s royalty revenues were derived from these contracts for 2017 and 2016, respectively, with receivables from these contracts representing approximately 75% and 79% of the December 31, 2017 and 2016 outstanding receivables."

In other words, $539 Million, which is 93% of their total revenue, comes from companies that have selling ads as their business model (Baidu, Google, Yahoo and Yandex [2]).

I really hope Mozilla will be able to change this revenue stream to better align with their mission[3]. They have been trying to diversify their revenue since 2014 [4] and although they might not be as dependent on Google as they once were, they're still almost fully dependent on ads.

Oh, and yeah, of course simply making a better browser than Chrome would also help ;)

Background:

* https://www.mozilla.org/en-US/foundation/annualreport/2017/

* https://assets.mozilla.net/annualreport/2017/mozilla-2017-fo...

[1] https://assets.mozilla.net/annualreport/2017/mozilla-fdn-201...

[2] https://wiki.mozilla.org/Global_Search_Strategy_Status

[3] https://www.mozilla.org/en-US/mission/ "An Internet that truly puts people first, where individuals can shape their own experience and are empowered, safe and independent."

[4] https://blog.mozilla.org/advancingcontent/2014/02/11/publish...
Great website, thanks for supporting classical music!!
So weird, I just read this on Quillette. More detail on this story in there by the way. The LA Times article is definitely more to the point.

https://quillette.com/2019/02/18/the-internet-locusts-descen...
Agreed. My previous company has to deal with trolls like this. They somehow managed a patent on turning 2d pictures into 3d panoramas which Google and iPhone do in the phones. We used software from Germany but since it violated the patent and we were tiny, boom lawsuit. This supreme Court ruling saved the company because we got it transferred to our state and the judge laughed them away.

It would be like suing a grocery store because Microsoft word violated you're spell check patent.

They only go after like guys who can't fight back.
How do you prevent Iframes from communicating their cookies to the parent window? Using window.postMessage?

Disable all cookies for iframes? That seems like it would break the internet.
When the whole battery debacle was happening, I could only reach the battery replacement page on Safari. On Chrome and Firefox, the pages would give and error (I wanna say the same gateway errror)
> Facebook would be a pointless exercise, since the <div> names are automatically generated.

Also:

> all ads are supposed to contain the word “sponsored” as part of a mandatory disclosure, so users can distinguish between ads and their friends’ posts. Our tool recognized ads by searching for that word. Last year, Facebook added invisible letters to the HTML code of the site. So, to a computer, the word registered as “SpSonSsoSredS.” Later, it also added an invisible “Sponsored” disclosure to posts from your friends.

https://www.propublica.org/article/facebook-blocks-ad-transp...
What Tesla’s Union-Busting Trial Means for the Rest of Silicon Valley (2018)
Alternatively titled: "How to go to war with your linter, type checker and other static analysis tools and win"
I'd say the Cable News Network's website is a news site.
This is a perennially recurring article. Seems like every few years someone is adding base pairs to DNA. The first one I can recall used the Greek letters kappa and chi for the novel base pair. I thought it was cool and exciting at the time, which was probably around 1992. They keep coming up with new ones, and reviving the "6 letter DNA alphabet" articles.

2-amino-8-(2-thienyl)purine and pyridine-2-one

7-(2-thienyl)imidazo[4,5-b]pyridine and pyrrole-2-carbaldehyde

7-(2-thienyl)imidazo[4,5-b]pyridine and 4-[3-(6-aminohexanamido)-1-propynyl]-2-nitropyrrole

2-(2-Deoxy-β-D-erythro-pentofuranosyl)-6-methyl-1(2H)-isoquinolinethione and (1R)-1,4-Anhydro-2-deoxy-1-(3-methoxy-2-naphthyl)-D-erythro-pentitol

These all work fine when copying DNA sequences using existing cellular mechanisms and PCR. As far as I know, it remains to be seen whether they can encode for proteins.

RNA transcription is complicated by "wobble pairs" with uracil, inosine, and uridine variants, occurring in RNA, with the four bases present in DNA, and with each other. There isn't a 1-to-1 correspondence from DNA base to RNA base. It may be that our DNA uses only the four specific bases guanine, cytosine, adenine, and thymine because wobble pairings provided additional mutation resistance, or offered additional structural options for transcribed proteins.
From the article you linked, it looks like the term dates to George Akerlof's paper, The Market for "Lemons": Quality Uncertainty and the Market Mechanism (Nobel prize winning 1970 paper).

https://en.wikipedia.org/wiki/The_Market_for_Lemons
US vs. Christopher Paul Hasson: Motion for Detention Pending Trial [pdf]
I use a cylinder of wire mesh on something heatproof, in the garden.

Better than a cheap shredder by miles, and some nice heat that makes it pleasant in wintertime. :)
> Well, if this is what it takes to stop the outrage cascades from taking over HN too, I'm quite fine with it.

I would guess that what it takes to stop outrage cascades is heavy handed moderation of the comments that promote it, either you agree with them or not. E.g. all outrage comments ends as dead either they believe in AGW or not.

With a few exceptions [0] I find it better to hold a reasonable concersation with people I disagree with than making them martyrs.

I personally think it would be extremely much more useful to discuss hot topics openly, remove flagging privilege for people who abuse it to flag honest questions (just look how short time it takes from a poor soul asks an honest question about actual numbers in a climate thread before downvotes and flags pile up because "just asking questions" is always just a tactic.)

Same with a lot of other stuff. Just on my way home I had a very interesting discussion with a former UN soldier who disagrees with me on a topic that interests both of us.

But it was interesting because I'm actually listening to verify if I'm missing something, and I guess it was interesting for that other person as well because even if I objected to a couple of points I did so by pointing to verifiable information that could nuance tjat persons opinion (if they wanted) instead of saying "you are wrong".

[0]: for a good example I personally don't argue with actual nazis - but you might find me trying to talk sense into people who get called nazis but are really just unreasonably worried about immigration or aren't too good with statistics.
People will run their Java Scripts on whatever architecture AWS provides for them. Do Linus really think the bulk of developers, the line of business developing kind, cares or even knows what CPU architecture is running beneath it all?
Robots have been killing people by accident for years, soon we will find a way to turn this bug into a feature!
Is Being VC Backed Startup Compatible with Open Source Business Models?
> You don't understand that many people prefer interacting with other people in person instead of via a slack channel?

> I wonder if you have tried socializing in person and via a computer. It's so much better in person, that I don't care about not having logs. If you don't understand that, you may be a robot.

Your point would be a lot more effective without the insults. I also wonder if you are unable to see the irony of your assertion that different people have different preferences and then telling me I must be a robot if I don't share your preference.
Isn't that already happening?
Should they not punish the region? The Eastern district is corrupt.
Ahahah, it's amazing.

Agreeing with other comment, having a quota to use would seem like a better thing. You could spread it over time or over multiple people.
Chances are that after the first few noodz the target is going to block the number.

Even better yet : offer a fake/proxy number for people to get rid of the ones that do not take no for an answer and reply with only noodz ;)
I think it is a fair point to make that economics relies a fair bit on the concept of the equilibrium, a fact that may be historically grown. Equilibria and how they arise were discussed long before the concept was formalized. On the other hand, at least in describing macro-system, one was interested to find simplified analogies to physical systems. Yet, equilibria also arise from the behavioral assumptions we place on micro-behavior. As such, I think it is difficult to give only one reason as to why equilibria are used so often.
At the very least, each econ model needs to content with the question whether the equilibrium of the system is a relevant concept to analyse.

What I think is not fair assertion, and the article is especially full of hype, is that there has no reflection.
Herbert Simon introduced bounded rationality in 1947 or earlier. This is the conception of when agents may not act rational (ie. collectively seek equilibria) because they do not understand the game sufficiently. This is not far later in time from when the equilbrium, as we know it today, emerged in the literature.

The article presents a narrative where economists do not understand these bounds, and the authors are the first to do experiments on whether people find equilibria, when in truth this has been going on almost since Nash. The whole field of behavioral economics exists... More intricate formal equilibria concepts, as opposed to behavioral and experimental analysis, have not been en-vogue since the 1980s!

Similarly, the (formal) question whether behavior of agents can converge to an equilibrium, whether it is unique, and how fast this happens, is intimately related to the whole literature.
The exact question of myopic best replies, for example, was certainly formally tackled in the 80's, (Milgrom and Roberts, I think), if not before.

At the very least, it seems that the article was not peer reviewed sufficiently.

But this is very common with econophysics. Their solution, however, to get rid of strategic interaction and instead consider people as myopic, non strategic particle-like beings to be described by complex, yet non-interdependent functions, has to this day not yielded any appreciable advances in understanding economic issues - at least in the micro field.

In contrast, game theory, mechanism design and auction theory have been tremendously successful in describing certain interactions. At least they are what drivers much of the online business today, as one example. The key is, by the way, not only how well people understand the game, but also whether the interaction is indeed anonymous or more socially complex.
But again, this is old news.
It really depends on why you need your computer. I have an Asus CA302 and it works great for most of my usage like watching Netflix and browsing the web. But for any coding, I explicitly use my Thinkpad X62 that's running Ubuntu and it works flawlessly. If you're willing to pay for Cloud9 or EC2, I think you're better off buying an ultraportable gaming laptop like a MSI running Ubuntu, but they are much more expensive. If GPU isn't a requirement, a Thinkpad T-series is the way to go.
So you're saying they use the Android app permissions model?
People try to shoehorn Dunning-Kruger into situations where it doesn't make much sense.

Dunning-Kruger boils down to something a lot like "people tend to think other people are like themselves". So if you are low-skill at some task, you tend to think other people are low-skill, and as a result you see yourself as roughly average. If you are high-skill at some task you tend to think that other people are also high skill, so you over-estimate the average skill level.

This article is an example of shoehorning it in when it makes little sense, and I argue that they are claiming that Dunning-Kruger says the opposite of what it actually does. Yes, people can be arrogant and incompetent, but they can also be arrogant and highly competent. Dunning-Kruger would imply that someone who is highly competent would not be likely to be arrogant, since they would overestimate other people relative to themselves, and as a result they would give more credence to the ideas of others than is warranted given their relative skill levels. A total incompetent would indeed overestimate their own ability, but they would still see themselves as roughly average, which you wouldn't think is likely to be the trigger for an arrogant attitude.

All people will from time to time feel like the ideas of another person are silly or not worth listening to, but of course it is considered extremely rude to express those feelings. I think arrogance is just the expression of those feelings, which makes it a symptom of poor socialization.
I can't see when I'd find an hour or two undisturbed to learn to solder! And it's not something you want to be doing with younger kids around necessarily - even though the older of your children might be old enough to learn to solder, you may still be looking after younger children. Even with something as simple as getting out all the painting stuff, I have to be the right frame of mind to be able to cope with the chaos and mess!
Ah, but can objects be used to implement Duff's Device?
They should make a statement to Australia and block access and sales to the entire country for their anti encryption law.
You're right, that's blocked. User-agent "(Linux)" is blocked, however User-agent "Linux" is not, while "X11; Linux" is blocked.
This wouldn't really be Hacker News unless an arrogant Lisp devotee shows up and claims that Lisp does everything better, so I'll now try to be that arrogant Lisp devotee.

Sean Johnson has given a fantastic talk about pattern matching in Clojure:

https://www.youtube.com/watch?v=n7aE6k8o_BU

He offers some interesting comparisons between Clojure and Erlang.

Going even further, I recently discovered Dynamatch:

https://github.com/metasoarous/dynamatch

"Dynamatch addresses these challenges by enforcing a certain structure in our ordering of match clauses such that many of the incidental complexities of order dependence in a dynamically extensible pattern matching system become more manageable."

Sometimes it seems like Erlang or Haskell has the last word in Pattern Matching, but I'm not aware of anything like Dynamatch in those languages.
I mis-read the title as meaning a preference for using classes to handle each case over ML-style switch/case statements.

The JavaScript 'object' here is called "map" or "dictionary" etc. in other programming languages. (And the article's technique is fine).
> I think the root of the perceived unfairness here is that people think a take it or leave it attitude is not fair.

I think the root of the perceived unfairness is that forced arbitration concerns using a power disparity to force renunciation by default of fundamental political rights (access to the court system) to the benefit of the powerful party.

The take it or leave it attitude is fine, but only when the parties are on fairly equal footing.
Better than sitting in a cube all day like a lot of sw eng...
Sometimes you feel like you aren't ready because you aren't ready.

This seems like advice for people who have enough money to fail repeatedly, or post-hoc advice from people who spun the chamber and survived.

There's this idea that it's solid generalized advice... to tell people to stop thinking and pour themselves into a gamble. Because it worked for a billionaire. I would not be surprised if ninety-nine out of a hundred people who could take this advice literally end up buying into an MLM, or starting a shitty restaurant, or whatever.
Very cool design, but I feel myself spending unnecessary brain cycles when trying to parse that weird font.
agreed. Further if they can convince other tech companies not to pander to this district, they may reconsider their position. This has long been a money play by that judge/lawyers in the area.
I've never used this pattern in Javascript, but it's somewhat common in Python because of how handy the dictionary.get() method is. A few problems TFA solves in JS are much easier with .get(), like defaults and false values.
Climate Change and the Threat to Companies
I don't build things that will kill people if they're wrong. If I get this slightly wrong, the wrong people will be advertised the wrong car. The world won't end.
I recently picked up a Yoga C630 out of curiosity. I figured that if the chromeos thing didn't work out, then I could probably install linux. It turns out that the C630 is a pretty capable machine - I'd initially toy'd with developer mode but gave up pretty quickly once I found crostini.

The chrome crostini project [0] basically gives you a little container in which you can run a terminal (probably more, but a terminal is good enough for me). Docker is supported so I can run additional containers within the crostini.

I've pulled all of my dotfiles into the crostini terminal, and have encountered very few issues experimenting with docker, python/flask, ruby, and C/C++ locally. I can't speak to emacs, but vim/tmux run as expected.

The C630 in particular has worked out remarkably well: the hardware is much better than I'd expected, the battery is very good, the touchpad is second only to my macbook (this is what piqued my curiosity initially), and the display, while not matte, is big and bright enough to split a browser and terminal side-by-side.

The C630 would probably fit the bill for a nice travel box. It's not as pricey as a macbook, but at $600-700 it's a little more than most chromebooks.

The only real concern I have is the reliance on Google and the G-ecosystem.

[0] https://chromium.googlesource.com/chromiumos/docs/+/master/c...
It is a good novel, but flawed, and not I think up to the hype it has received over the last dozen years.

No, a novel doesn't need morally ambiguous characters. However, it does need believable ones, and I think that Edith fails there.
I think the largest issue would be hiding the plugin from their eyes. Like youtubeDL sort of being a secret. The noise creating plugin can't be advertised as such because then the new history is easily un-noiseable.

The tool would need to be something like a color picker that has a hidden command to run headerless searches in a tab of your browser.

This (sort of) worked for teenagers hiding pictures on a fake calculator app on smartphones years ago, but your mom wont try to pry at your facebook obfuscation.

Just a thought
Data-Driven Flowcharts in R Using DiagrammeR
1. Anonymize the data in the machine learning training corpora.

2. That's it. Problem solved.

Question for extra credits:

These machine learning models you speak of, do they mostly do stuff that...

a) is in the interest of the users

b) goes against the interest of the users

Society does not have an obligation to tolerate negative externalities just to protect someone's business model. That is precisely what regulation is for.
≥Object lookups are fast and they're faster as their size grow

It's difficult to imagine a switch large enough where the performance difference would matter, but this ignores the memory required to store the lookup in the first place. In all of the switch examples a switch is more straightforward.

In the latter examples (see the Boolean example) we now perform the lookup twice if the value is present. I feel like this is just another case of "use the right tool for the job".
> have to implement the simple user.delete.all.data()

That may not be as simple as you think. FB probably has thousands of data types and each one needs to define how a deletion should affect everything else. E.g. if I delete my comment, what happens to your reply? That one is obviously solved already since it's a core part of the product, but there are probably lots of pieces of data that were never designed to be deleted so will need effort to support.
I use Toggl to track time that I spend working for clients. It's ok but I find their reporting / filtering to be seriously lacking. I'm in the process of building my own tool because it's such a pain in the ass. But I do absolutely need this kind of software.
I remember getting in arguments when I was doing F# over my use of Maps of functions to basically handle dynamic dispatch. I would construct a map like `let handlers = [| "somekey",func1; "otherKey", func2 |] |> Map.ofArray`, and then when I needed to handle something down the line, I would write something along the lines of:

let myHandler = defaultArg (Map.tryFind theKey handlers) (fun x -> //default stuff)

myHandler theValue
....

I liked this approach, since I could dynamically add functionality, and it could be completely decoupled from the business logic, and I didn't have to use strings for keys, but my coworkers didn't like that how dynamic it was, since in fairness, it did sometimes make it a bit more difficult to figure out which path the code was going to go down.

Never really determined who was "right" in this case, but this post reminded me of that.
The fifth choice presented in this Upshot piece is whether there should be some form of cost sharing in a universal health care system.

The argument against cost sharing is that it penalizes the poor, who are likely to put off treatment if they can't afford it.

The argument in favor of cost sharing is that it helps prevent people from taking advantage of the system.

I wonder if it might be possible to strike a balance using graduated (rather than fixed) cost sharing based on income.

So, let's say the cost sharing for a monthly prescription is normally $30.

But someone with an AGI below $50K might pay $20, and someone with an AGI below $30K might pay $10, and someone with an AGI below $10K might pay $5.

You would always have to pay something (because, as NYU's Glied points out, "the biggest effects are moving from zero to something"). But that something would be proportionate to your means.