skysight-inc/HackerNews huggingface dataset:
My favorite example of code you should almost always[0] duplicate are view classes (in MVC terminology).

Instead, I see people subclassing views to change their behavior and dealing with absolutely mind-numbing behavioral bugs in their subclass. Furthermore, the subclass's implementation is totally dependent on the _exact_ implementation of the superclass. Change it, and you get a whole crop of new, hard to debug, bugs.

Solution? When you have a view class that almost, but not quite, does what you want, copy the entire class, rename it, and make it do what you want. You'll be done before your next break, and nothing that happens anywhere else will cause it to break in the future.

[0] The one exception are situations where all you are doing is configuring an existing view class in code and/or adding behavior in places that were _specifically_ anticipated by the class in question. For example, setting up the options on an existing table view class, and responding to row selections using a method meant to be overridden by subclasses.

But if your table view is actually different than the class you've got now—for example, it does something strange in responses to selections—you're much better off finding an open source replacement for the table view (if it's vendor-provided, like UITableView in iOS), copying it, renaming, and modifying it to do exactly what you need to it do.
I fully expect UK companies to ignore the EU GPDR assuming it's not passed into law due to Brexit, and gain significant competitive advantage over EU software firms as a result. I expect the EU will react by not really enforcing it to try and win back the firms that will leave.
Direct link to paper in html format: http://www.texmacs.org/joris/fontart/fontart.html
If refactorings were described as bidirectional ST (syntax-tree) transformations we would automatically get the defactoring and the refactoring.

I could definitely use "inline method" or "name mangle method and special case".

https://en.wikipedia.org/wiki/Bidirectional_transformation
Don't forget leaving only for Britain never to invoke Article 50...
The hybrid ciphersuite idea comes from [1, Section 5.2], though you could also chalk it up to common sense. I don't think the blog spells out how it's done.

[1] https://eprint.iacr.org/2014/599
That's true, for some reason the shortcut does not always work for me either on Windows and on OS X.
Isn't it really "Why am I not doing anything about it?". And the little voice inside answers "because there's nothing I can do about it". So does everyone else's little voice inside. And there you go.

Right from the article:

"What, however, can the man of good will do to combat this deeply rooted prejudice? He must have the courage to set an example by word and deed, and must watch lest his children become influenced by this racial bias.

I do not believe there is a way in which this deeply entrenched evil can be quickly healed. But until this goal is reached there is no greater satisfaction for a just and well-meaning person than the knowledge that he has devoted his best energies to the service of the good cause."
Indeed true. However, it boils down to the "video game UI makes killing easier" discussion. Which in this case, as far as I am concerned, is not the discussion to have.
I think it actually distracts from the discussion we should have: Why do so many police interactions end with casualties in the US, compared to other countries. Obviously many think it's racism, and that may well be true, but I think it's also bad training and maybe a wrong overall approach to policing.
Since we're talking about key exchange, shouldn't it be called CECPQ1-ECDHE? ECDSA is for the cert...
How do you make programmers work 60-80 hours per week?
I understand the intent. I still believe the advice is dangerous if improperly applied.
You mean HTML, not HTTP, no?

Otherwise I'd be curious to hear how or why including web page layout semantics in HTTP would be useful.
> Human managed honeybee populations are not in decline

You could find this map interesting:

http://www.blereamiedesabeilles.fr/wp-content/uploads/2014/1...
doesn't seem to work for Firefox :/
That's something that I'm currently trying to understand myself. I haven't yet found what exactly is contained in those WARC files...
Recent discussion about post-quantum cryptography at Google: https://news.ycombinator.com/item?id=12050220
I think not only can we do things, but we are obligated to. Cheering on from the sidelines or even worse offering platitudes like "I support your goals but not your methods" while offering no help or alternatives isn't really helping. If you support change, the do something about it. Call your local officials or congressmen. Donate money to political action committees. If you make peaceful change impossible, then violent change becomes inevitable. We might feel safe today while we're sipping lattes in our gentrified neighborhoods and tisk tisk on Reddit and hacker news, but that safety might be illusory.

The wave is coming. You can either help guide it safely to shore or get drowned by it.
The problem with premature abstraction is that it becomes difficult or impossible to reabstract since you're not looking at the root issue anymore but rather attempting to unroll a failed abstraction.

Often by the time the abstraction is such a failure that it needs to be rewritten, it's evolved into its own system with a menagerie of hacks latched on to let it live another day. You're not going to just come up with a regeneralization because more often than not it's not generalizing anything anymore.

Seems a bit much to "throw up in your mouth a little". Premature abstraction and the high cost of indirection are responsible for some of the hardest problems in software and you don't offer a solution beyond "try anyways".
Another interpretation of finding that people we perceive as noble turn out to have flaws might be that noble people are people, and people have flaws. If anything, being flawless would actually take away from their success since they wouldn't be dealing with the same crap as the rest of us.

Einstein appears to have been a big-time philanderer, for example. Doesn't detract from his contributions to our society in my view.
(Uh, I wasn't the one to suggest that, seeing as how I knew from my mother these details. Sorry for my lack of clarity.)
This also applies to CSS and is the reason why most CSS codebases are a mess. Functional CSS mitigates this (at the cost of duplication, but personally I've found it much more easy to maintain).

The original problem comes from trying to map logical components to CSS classes and forcing inheritance. This is a good intention but doesn't work well. With the project evolving, it gets complicated to alter something without breaking something else, because the inheritance chain means that rule conflicts are likely and not that easy to spot, so to have a mental model of how the element will behave visually means a lot of cognitive load.
The other option would be to face reality that outside Android Java has lost all meaning regarding mobile OS portability and use C++ instead, which is a first class language in all mobile SDKs.
https://news.ycombinator.com/item?id=11647165

https://news.ycombinator.com/item?id=12049410

Not sure if the other 2 winners have posted anything new or not.
One in a million, among hundreds of millions, is still quite a lot.
Both of those points also apply to Netflix.
>Programmer A replaced the duplication with a new abstraction at step 3

Why would deduplication stop maintenance? Unexpected NullPointerExceptions are found. Unexpected UTF-8 string inputs are discovered. An interger overflow is discovered. A memory leak is found in the method. The method is used in a performance critical loop and now must be optimized.

Maintaining code is the majority of programming work that I've witnessed. If multiple copy/paste methods have to be maintained, it always devolves into a mess of technical debt until someone comes along, pays the debt, and pulls them all up into the same abstraction.
This was the title of the article yesterday: https://twitter.com/lyon01_david/status/751530478335823875

> HTTPS crypto on the brink of collapse. Google has a plan to fix it.

Apparently it was changed for a less click-baity title. But in my opinion it still shows a bias on the hypothetical outcome of Quantum Computers. No, HTTPS crypto's days are not numbered for sure.
This seems like more of a work around for limited languages which lack the features for constructing certain abstractions. Work arounds are often a good engineering practice, but let's recognize them for what they are.
I think in the article he himself described why he had a different point of view. He was indeed an outsider. His mind was not shaped by past generations, because there were no slaves and thus very few black people in Germany.
No worries! Thank you for offering to pay the fee! Randall has humbly taken care of it this time though :) (Thanks RKoutnik!)
As a flight simulator occassional player, one would think that ILS, VORs, GPS assisted flight routes, ATCs and the countless procedures that need to be followed by a flight of such characteristics would prevent this from happening...
This doesn't validate the procedural position in a procedural vs polymorphism debate; if anything, the example can be summarized by "there was a good polymorphic abstraction, programmer B came along and couldn't figure out how to extend the abstraction to implement his new requirement, so he made the abstraction less polymorphic and more procedural, and then this happened over and over again until the accumulated procedural logic made the whole thing unbearably bad".

I think the appropriate summary for this article would be: bastardized abstraction < duplicated logic < proper abstraction.
> Modern web sources aren't meant to be read by humans and it's really only one or two steps above being handed a compiled binary.

Modern web sources are also made by people out for money and/or marketing, who by now even seem to have forgotten about graceful degradation and other things that would slow them down.

You don't ask IKEA what the best wood for a solid table is, what means "best" for them has to do with money and the ability to produce in bulk, while a carpenter who worked with all sorts of wood and isn't bothered about those restraints as much will give you a completely different answer. That's kind of how the web became, because IKEA is making more money with selling tables than master carpenters, or even just because they occured later chronologically, because they are "more modern" (which says nothing about quality and only something about time), they are now somehow seen as experts on tables.
Almost open: https://en.wikipedia.org/wiki/California_Department_of_Food_...
[pdf] “Cloning considered harmful” considered harmful (2008)
I believe you got the wrong link.
I think this is just the unorganized data dumps direct from the archive team. Most likely someone will now go through and combine all the dumps and make it more usable and put it at a different URL
I think this whole article misses the point. The SWAT team decided to kill the gunman with demo. They used a robot instead of one or more officers to place the demo in order to eliminate the possibility that the officer(s) involved in placing the demo would be killed in the process of doing so. The technology involved here is at least a decade old in implementation; EOD guys were doing this all the time during Al-Fajr, for example. I'm actually very surprised that this is the first example of cops in the United States employing this particular TTP.
House being built into a cliff, thanks to internet
> but the consensus that this is physically possible is pretty overwhelming

Most of what I read is "it might happen". No one knows for sure. Most of the claims come from people in need of funding for Quantum research, so this is to take with a grain of salt.
If you are doing games then yes C/C++ can work. However, since Android widgets are written in Java then it's a second class citizen there as you need to go thru the slow JNI bridge for widget access there.

Since we are talking about portability I guess most client developers abandoning Java go to JavaScript not C++.
Then again, Linus Pauling thought Vitamin C cured cancer.

It certainly would be nice to have Einstein back again. He could weigh in on whether or not string theory is a load of mathematical hooey, remind us that he was right about the cosmological constant, and share his secret formula for turning "Negroes" into Jews.
At the top, maybe only visible when you are logged in as a security precaution.
50 DIRTY TRUTH OR DARE QUESTIONS
Yes, it totally is a thing, although it's usually described more as "C(++)'s undefined behavior isn't a problem because any good programmer should be able to easily avoid it"--a sentiment that I have seen (and challenged) on Hacker News a fair amount. The contention that I (and the authors) have is that integer overflows are so pervasive that it's not practicable to expect that even good developers are capable of avoiding them.

Some things to really emphasize here:

1. This study found 47% of packages tested exhibited undefined integer overflow on their test suite. This isn't using fuzz testing or anything to try to find corner cases to make overflow far more likely, this is more or less "opening the application triggered undefined behavior"-level pervasiveness.

2. The study also looks at unsigned integer overflow, which is well-defined but often no less problematic. The classic example I'll give is the calloc bug--calloc takes two arguments and multiplies them to find the size to allocate, and virtually every time that I've seen this function implemented, an exploitable CVE can be found (when the multiplication overflows).

3. The prelude to this work (that produced the IOC, and, ultimately, Clang's UBSAN) is what really woke the community up to the problem. It actually did prompt the C and C++ specifications to make changes (INT_MIN % -1 is now considered UB, and C++, but not C, makes 1 << 31 == INT_MIN defined behavior).

Now that memory errors are slowly disappearing, it's integer problems that are becoming the pain-in-the-neck for exploits. My personal opinion is that the treat integers as ℤ_{2³²} model is no longer a good idea as the default integer model, and we need to start looking at bringing back models like big integer (à la Python), saturating, or explicit trapping models (à la Ada); I was quite disappointed when Rust opted to keep the wraparound model.
tl;dr:

Monorail

Moving walkways

Pneumatic trains

Single-person car

Jet pack
Why do so many artists have synesthesia?
Drone reveals devastation in Baghdad
Author here.

> perhaps he is suggesting the standard loading icon should switch to a sort of unobtrusive network in/out indicator after the initial rendering

yes, that was what I implied, which is why I wrapped "\"loading icon\"" in quotes :) I agree though that the wording isn't very clear, my bad!
I saw "(snapshots are directories created by wget)" and felt compelled to suggest using the WARC format. Recent wget supports it and there are great projects like https://webrecorder.io/ , https://github.com/ikreymer/pywb , warcprox etc
The 1 Painfully Obvious Reason Nobody Follows You on Social Media
Archive.org does amazing work, I would highly recommend donating to them if you can.
It's great that there's a central place for this, at least once it's organized sensibly.

The stupidest, most counter-productive aspect of all these MOOC systems is the artificial schedule imposed on the course. While I've been able to take a couple to completion, I've had to let some by the wayside due to scheduling. Once that happens, you're disincentivized to catch up because of being behind and those that affect scoring. When I've gone back to finish courses that I had to leave by the wayside for the moment, sometimes I've lost access to the materials because the course has shifted to its next "semester". There's absolutely no reason for that. While there are a few courses like music or writing where you are collaborating or cross-reviewing other people's work, most of them are standalone lectures, homework, and tests.
How Berlin can become Europe’s No. 1 tech hub
Here's one of Austria's most famous exports.

Arnold's 6 Rules for Success:
https://www.youtube.com/watch?v=2RQO_OoNASU

Surely it can't have been too bad for him!
> See, for instance, the following from someone with no connection to FP Complete that I'm aware of

You may be interested to know that Carter (the guy you're quoting) knows better today, and has even become a Hackage Trustee whose mission is more or less to uphold those very PVP upper bounds ;-)
Interesting. That is actually quite helpful. My fiance is INFJ and Aspergers, and I am ENTJ and not Aspergers. She gets excited and blurts things out, where as my excitement builds as my mental model of something does.
Time to switch to iOS then
The simple answer is "no they weren't." The nuanced answer is "it's complicated." But anyway, you are forgetting the countless Jews who were saved by the Vatican.

And in Nazi Germany the Church was persecuted.

Edit: s/which/who
s/jew/Jew
Simple questions to help reduce AI hype
Moreover what we know from the physics of our current general purpose quantum gates (different rules apply for quantum annealers like the D-Wave but these cannot perform Shor's algorithm) it is unlikely it will take more than that to perform a computation. Quantum states in circuits decohere quite rapidly; this is the main obstacle we face in developing them. Chances are we won't have a choice but to do things relatively quickly with quantum computers (there are some possibilities where we need to take time to prepare resources for the computation, but these have the advantage of being trivially parallelizable).

On the plus side, all quantum algorithms will be unable to perform a Logjam-style attack[1] where you do part of the computation once because the same parameters are reused by many servers. You can't copy quantum memory in any useful sense.

[1]: https://weakdh.org/
I suspect it's against the website's interests. If you provide semantic marks, it makes it easier to crawl your website, extract the actual content, and leave the ads behind.
I mean, it's called "Hacker News," right?
This article sounds almost like a word-for-word reworking of the Wikipedia article, which I just read yesterday.

I recommend reading that as it includes some great quotes from witnesses and a better overall structure: https://en.wikipedia.org/wiki/Tunguska_event
What I find interesting is how the media presents little to no statistics to back up their claims of blacks being subject to de facto police genocide.

Here are some statistics: http://webcache.googleusercontent.com/search?q=cache%3ADqQNf...

A couple key points:
- More people in the US are struck each year by lightning than are killed by police. (373)

- Of the 1,491 persons that died from police use of force from 2009-2012:
915 (61.4%) were white males
481 (32.2%) were black males
48 (3.2%) were males of other races
28 (1.9%) were white females
15 (1.1%) were black females
4 (0.2%) were females of other races

- Of the 56,259 homicides from 2009-2012, 19,000 (33.8%) were killings of black males.
Comparisons by types of homicides of black males:
481 (2.5%) were the result of police use of force
152 (0.8%) were the result of a negligent accident homicides (i.e., child playing with a gun)
648 (3.4%) were the result of a justifiable homicides by private citizens acting in self-defense
17,719 (93.3%) were criminal homicides (murders)

More blacks are killed in justifiable self-defense scenarios than are killed by police. And overwhelmingly more are killed in homicides, mainly by other blacks.

Also note: According to the US Department of Justice, blacks accounted for 52.5% of homicide offenders from 1980 to 2008, with whites 45.3% and "Other" 2.2%. The offending rate for blacks was almost 8 times higher than whites, and the victim rate 6 times higher. Most homicides were intraracial, with 84% of white victims killed by whites, and 93% of black victims killed by blacks. (Whites are being lumped in with Hispanics here.)

It's fairly clear that there isn't an epidemic of wide scale police violence against blacks. Instead, a few incidents have been blasted onto social media, and uncritical leftists have picked them up and ran with them. I see Black Lives Matter more as an expression of intergroup competition and aggression against traditionally white power structures. Other leftist groups take the same approach, e.g. with feminist fabrications about mass rapes on college campuses - college campuses are in fact among the safest places in the world, but feminists treat them as though they're some Mad Max-esque raping dystopia by claiming nonsense like 1 in 4 college girls get raped. They're mysteriously silent about places where real mass raping occurs, such as Africa and the Middle East.

I could go on, but suffice to say, I believe we're in a period of mass hallucination and hysteria, with entire movements justifying their existence on statistically nonsensical claims. This has happened many times throughout history, and it's leaned to both the right and left axes of the political spectrum. This time the wind just happens to be blowing to the left.
If this were the reason, I would expect police unions to speak up in favor of gun control.
It was just inside the center. A few others said this to me.

I've travelled to Morocco and felt insulted at being constantly ripped off because I was a tourist. Well, now I know it doesn't happen just in Morocco.
Here's the HN thread: https://news.ycombinator.com/item?id=8745540
WARC files are raw recordings of crawler runs, including HTTP headers and other metadata. The raw, archival result of the downloads, that you can extract the files downloaded from.

https://en.wikipedia.org/wiki/Web_ARChive
`chrome:extensions` works too :)
THE 12 TRICKS TO KISSING LIKE a TOTAL PRO
Agreed! Brno would be an awesome place to make a startup. Cheap, good talent, lovely old town, and near the nature.
You don't have to choose. If you have a function* with excessive arguments, it has too many responsibilities. Identify the responsibilities and make a function for each. Then replace the call sites of the original function with only the new functions that are appropriate for that use case. If you find that the same N new functions are repeatedly called in the same places, you can pull those out into a new function as well. It's all very simple, though learning to decompose responsibilities correctly takes practice.

* For sanity's sake, I'm just going to say "function" in place of "abstraction".
I must admit, I don't understand this view. If "everybody might have a gun," why are police, who also have guns, more likely to live in fear than anyone else?

In the USA, especially in certain parts such as suburban Michigan, where my wife is from, there are a huge number of guns being carried all around at all times. But I don't feel the least bit unsafe; to the contrary, I like knowing that the people I'm meeting or hanging out with are able to defend the group without our having to call the police.

I assert that, at this moment in history in the USA, with gun ownership being what it is and police militarization having gone so far, disarming police will bring greater peace than disarming non-police.
(Un)Fortunately, that, along with a couple other things were removed from chrome 51. See https://bugs.chromium.org/p/chromium/issues/detail?id=588790
Coursera actually has a solution to this and it involves rolling over from your enrolled session in to a later one.

To tell you the truth, I find it a great system because it gives me a sense of the time frame I should realistically be completed the course.

Although, at the same time I tend to do deep dives on a course and complete them as fast as possible blowing past the schedule anyways.

If you don't want to subscribe to a self-imposed schedule the audit option basically allows you to learn the material on your own time.
They may yet. This is, to my way of thinking, a seriously dystopian situation.