skysight-inc/HackerNews huggingface dataset:
Just for the record: I'm not really kidding.

The first film only had a black mayor (who used to be a cleaner) and a group of black musicians (who smoke weed out back during the break). Their entire purpose, for the most part, is to serve as the butt of several jokes (e.g. the cleaner being overly excited that he's going to become the mayor in the future, the musicians scaring the ruffians by outnumbering them) and Marty directly gets credit for the achievements of at least two black men (the cleaner getting the idea and confidence to enter politics and run for mayor, one of the black musicians calling Chuck Berry, giving him the idea for Johnny B Goode when Marty is performing).

Martys girlfriend is left out of the majority of the first film's plot, spends the majority of the second's film knocked out (both initially and again later) -- pretty much only serving as an excuse to distract Marty and Emmet long enough that bad things can happen, and then only returns at the very end of the third film.

The only strong female character is the teacher in the third film, whose first appearance is literally as a damsel in distress and who again ends up in distress during the film's climax (so Emmet can save her). Heck, a lot of the plot of all three movies is built around saving damsels in distress.

Don't get me wrong. Personally I think the three films make an awesome trilogy and I understand why they have become the pop culture icon they are, but they make incredibly easy targets if you want to call out racist/sexist stereotypes in popular media.
IRS possesses Stingray cellphone surveillance gear
So you're saying that in effect "negative phlogiston" is the right theory...
This is where the idea of highway and surface streets being solar panels becomes interesting. This isn't science-fiction either, there are a few pilot deployments already such as:

http://thinkprogress.org/climate/2015/05/11/3657220/solaroad...
Weather+in+Chandari+-+AccuWeather+Extended+Forecast+for+Georgia
so does NASA time it's launches to when it get's to 0.5 AU? you'd think we'd have expeditions to mars every 2 years by now.
The results in the blog post wouldn't do to launch a probe, but they do give you a good idea of how the distance varies over time. It's a little surprising that such a simple calculation works as well as it does. More accurate calculations would be interesting, much more complicated.
> as they seem not fully aware of the standard order of conflict resolution

I'd say it's the other way around - a lot of usages of !important are due to lack of understanding of CSS specificity, usually as a symptom of something else like using IDs in selectors..

If you avoid using IDs in selectors and avoid deep nesting of classes, then overriding styles works as you expect - apply a more specific selector to override the style.

Selector order only comes in to play rarely, and you can structure your files to start with less specific (base) styles first.

I see !important as more of a workaround than a solution, and I don't think it is used as it was originally intended.
That makes some sense, performance is dependent on how writes are distributed in the key space. For logging analytics or telemetry data with keys that are roughly timestamps you get a really nice seekable log and usually good compression ratios and minimal to no compaction. Also for an application that was mostly any kind of writes & deletes I would guess LSMs would do pretty well.
Create Instagram filters with CSS
> The proposed settlement bars Facebook from making any further deceptive privacy claims, requires that the company get consumers' approval before it changes the way it shares their data, and requires that it obtain periodic assessments of its privacy practices by independent, third-party auditors for the next 20 years.

https://www.ftc.gov/news-events/press-releases/2011/11/faceb...

What's the point of FTC's "20 year privacy monitoring" of Facebook, if with each new update, Facebook resets everyone's privacy settings again and makes everything public? It only seems to confirm what I already believed when it happened - rather than being an actual oversight thing it's more like a "badge" Facebook gets to have for "complying with the privacy requirements" of FTC (even though it doesn't actually happen).
Today, Hock is on the advisory board of Xapo, claiming that "Bitcoin is one of the best examples of how a decentralized, peer-to-peer organization can solve problems that these dated organizations cannot." How about that pivot!

https://blog.xapo.com/announcing-xapos-advisory-board/
Ask HN: Best way to design an API authentication mechanism?
I'm designing a new API and use some insight and understanding about how best to authenticate callers to an API. For my use case, almost all calls will be from automated, non-interactive systems while perhaps 1% of calls will be from users in a browser. From industry as well as academic papers, here are the styles that I've seen thus far:

- Username/password provided in the clear (whether or not they use TLS to secure the channel)
- Generated token provided in the clear (whether or not they use TLS to secure the channel)
- A token with two parts: public and private where a signature is generated from the contents of the HTTP request, e.g. URL, request method, HTTP headers, etc.

Furthermore, I've seen the above values located in various places on the HTTP request:

- The "userinfo" portion of the request
- In one or more query string parameters
- The Authorization HTTP header
- Various other custom headers, e.g. X-Authentication, X-Api-Key, etc.

A lot of the academic guidance I've seen points to signed requests with the signature populated in the Authorization header as being the most secure and canonical location for the authentication information. The trouble is that, except in a few cases, "industry guidance" (e.g. the API specifications of major industry players) does not follow the academic findings. Industry players typically will use a generated token sent in the clear in the query string or in the Authorization header.

It appears that the main concern around providing a signature-based approach is a decreased adoption of an API. This style appears to significantly increase the barrier to entry for using a given API. Wouldn't providing language-specific SDKs or at least sample code in multiple languages reduce or eliminate this concern?

I'm definitely not interested in inventing some weird, custom authentication scheme, but I am curious to hear everyone's thoughts on this.
I think so, but I was more thinking about what people actually do when you tell them "write like you speak." Most people I've seen then proceed to dump stuff onto the page and it's even worse.

The advantage of reading it out loud is (I'm guessing) that you process it with a different part of your brain. When you just read it, the words are your own and you don't process it the same way, whereas when you hear it the words in a sense sound external and it is easier to hear where it sounds awkward.
> taken something super simple, but opaque, and made it super complicated for no good reason

They're just being consistent with the way most software is written nowadays.
Coal is terrible, but it's not the only alternative. Nor is coal the cheapest alternative.
PieterH, how did the experiment with CZMQ turn out? I read the article. It sounds good. I just checked CZMQ, but I couldn't find any sign of SBOM in CZMQ.

I want to see a concrete example.
Technology at it's best
Remember that politics in wealthy countries is all about doing approximately what people want you to do. The payoff is that you get some leeway on issues people don't care about (which is where members of congress earn their money). It's the same with the EU. The EU is not magical; everything agreed on is a compromise between member states, many of which have radically different priorities.
You'll probably be interested in this guy, who does graph coloring problems for 7 year old kids. He even has coloring books:

http://jdh.hamkins.org/math-for-seven-year-olds-graph-colori...
I think in this thread when we talk about "pattern matching" (which _is_ awesome) were caught up with two notions: pattern based destructuring of input and type enforced exhaustiveness checks. Java 8's Optional does give the latter:

> maybeT.map(t -> ...).orElse(...)

The author does make a good point that 'get' is unsafe. I think it was a necessary concession to team members who are learning how to program in this manner.
A deep study of the technicalities of race and its sociobiological construction reveals a shocking result: asians aren't white.
"Leaving quickly" seems to be common. The guy I'm sitting next to spent two years at Amazon (he left there a year ago) and said that at 18 months he was one of the longest employed in his group.

I don't know how you get any semblance of a team with that kind of turnover.
Cloudflare posts to HN should be in the same category as post about YC companies that are hiring. Ads. No voting.

It is difficult to believe that CF does not have a "special relationship" with YC, give PG's close ties to Project Honeypot, the precursor to Cloudflare. Nothing wrong with that.

And one could argue even the "informative and well-written" posts are always done with a purpose: recruit developers. These blog posts almost always read like a PR piece described in PG's "Submarine" essay. Again, that's fine.

But they also get promoted to the first page on HN with uncanny efficiency.
It's a political problem, not science problem. We could have already completed the Yucca Mountain project, if not for the anti-science anti-nuclear fear mongers and NIMBYs.
Also look at the sudoku solver code by peter norvig on his website. He explains it in a very simple way for a beginner and his code is short and simple.

http://norvig.com/sudoku.html
iTunes runs on Windows
The issue with nesting rules like "max three" is that you really don't want 3 levels of nesting, you want zero. Setting an arbitrary cap isn't a bad coping mechanism, but you might end up with pervasive low-level nesting, even though you almost certainly don't need it.

In almost all cases I see, when people nest with SASS (or less), they don't really mean "in this context, this item is styled like this", what they mean is "this item only ever exists in this context". And if you use nesting for that, then you have at least one of three problems:

- it might be entirely redundant - as in you get exactly the same style if you just omit the surrounding selector blocks. This is quite common if you're using classes heavily.
- it might be a "clever" way to avoid using a class name. This is terrible idea; it's not clever to call something `.frugal > div > span > span > b`, not even via nesting, it's simply undescriptive. Give the beast a name already, and use that. If you're after this style, why not use inline style tags? (No seriously - that's not as terrible as it sounds).
- You've got too many catch-all selectors, and are fighting a selector specificity battle. Nesting here is again a really, really terrible solution, because you've just made the problem that much worse. Nobody is ever going to understand why the components layout breaks when they refactor if and one layer is added or removed. If your style depends delicately on these kinds of interactions, you're in a world of pain. Use @import, and consider refactoring your usage of general or catch-all selectors.

I think its good advice to avoid nesting, especially more than one level of nesting. It's never necessary (just use compound selectors instead), and where compound selectors turn into a tedious, repetitive mess you've got techdebt you should be resolving, not making worse.

Avoid doesn't mean "never use" - but if your css has even one instance of three-level deep nesting, I feel confident in suggesting that you're making things fancier than they need to be. Nobody likes that programmer that left behind his "clever" solution to save a few dozen keystrokes once, but that needs lots of context to understand, and that's exactly what nesting in SASS is.
I don't have anything new to say about TMI/PBR/PBM, etc., however this sentence stands out:

"You'd need a long cascade of extremely unlikely events in order for it to dangerously fail"

Have we learned nothing at all ? Even when given extremely relevant and instructive examples within the last 10 years ?

From Fukushima to Lehman Brothers, we continue to be shown that these unlikely events are highly correlated - even if they are extremely unlikely individually.

The Tsunami comes with the Earthquake
This question is as vague as it gets, and so wil be the answers.

I say first decide is it an experiment, or for profit? Depending on that you'll need different research methods, planning, and tools.

Especially if you envision some ultimate goals, quickly forget those and formulate the first milestone reachable with minimal effort. At most a proof of concept to take hurdles (function, technical, or other), not a prototype.
You shouldn't see any slowdown. The code uses minimal resources - reads the table data, calls a webservice and injects the keyword volume and cpc numbers.
I think he was referencing more shareholders and owners like Lucas (who was given "menial tasks"). Absentee owners is absolutely a common thing in all walks of business.
VW and the never-ending cycle of corporate scandals
So if I'm not mistaken (my wife's family is of Lebanese descent, so I did short course on Arabic years ago; also I had to learn a little when I was working on LibreOffice) but the difficulties with Arabic are:

- Each character can have a final, medial or initial form; it all depends on where the character is located in the word

- it's a cursive script, so letters join together...

- it uses ligatures in (what appears to me at least) complex ways

- kashida elongates letters, but there are typographic and aesthetic rules for when and how it should be used.

- there are complexities galore around diacritics [1] and text justification [2]

1. http://arxiv.org/pdf/1107.4734.pdf

2. http://www.tug.org/tugboat/tb27-2/tb87benatia.pdf
I know that's the conventional top down narrative and I think you presented it well.

I'm proposing that as a bottom up narrative, they continue to include extensive grind barriers such as peculiar scheduling and pacing, someone else designing arbitrary barriers in terms of assignments with firm due dates, etc. Yet the reward has been cut out as per reasons in the top down narrative, etc. So from the bottom up perspective you're left with a stereotypical grind game where the reward has been removed, and from that theoretical model, the dropout rate makes sense. Then when people sign up and get something out of partial participation, it makes no sense to use a successful grind game metric measurement when its a failed grind game therefore the players aren't cooperating because they feel no need to do so. Because "MOOC as a grind game" has failed, a MOOC is a place to learn, not a place to jump thru hoops or not get a reward other than making someone else's completion metric result look good.

You can run a grind game without a vocational meal ticket reward model. WoW and Eve do just fine.

My suggestion would be to use advanced technology to abandon the grind game aspects, assuming higher completion rates are inherently valuable. Even if completion rates are not valuable, removal of pointless grind will result in better operating conditions for the students. Why must class schedules correspond vaguely to the northern hemisphere agricultural growing season? If you're not teaching project management, why are due dates so important? Why is there (typically) only one very fixed learning track if more exist or there is a "chose two from column B and three from column C" aspect inherent in the field itself? All of that would be very difficult to implement at Harvard in 1640, but due to technological advances would not be very challenging to implement today.
Right, this is your opinion, and I applaud it. Except it is a stark contrast to the backlash this company is getting from right wingers in general. Does the general conservative population actually support the free market or do they just support letting themselves be rich and their workers be poor?
Six months after Price's announcement, Gravity has defied doubters. Revenue is growing at double the previous rate. Profits have also doubled. Gravity did lose a few customers: Some objected to what seemed like a political statement that put pressure on them to raise their own wages; others feared price hikes or service cutbacks. But media reports suggesting that panicked customers were fleeing have proved false. In fact, Gravity's customer retention rate rose from 91 to 95 percent in the second quarter. Only two employees quit—a nonevent. Jason Haley isn't one of them. He is still an employee, and a better paid one.
The point of the new Optional type in Java isn't to prevent NPEs, it's to make using the new Streams API cleaner. Since you can now flow through optional values in a stream you can ignore whether the stream contains optionals or not and only deal with them at the end. It's certainly possible that in a future version of Java the optional type might be paired with something like pattern matching to prevent NPEs with some syntax sugar, but that's not the reason that the Optional type exists today.
Founders and shareholders take on risk and create value by providing sweat equity and capital.
This seems a bit too unpragmatic. Would you also require the user to explicitly handle:

* Index out of bounds on every array op

* Integer overflow on every arithmetic op

* OOM on every allocating op

Maybe if you're writing an ironclad RTOS for a critical system without any good redundancy? Otherwise these are such pervasive operations that most have accepted that they're not worth handling everywhere they happen. Requiring that really dilutes the value/meaning of errors.

Given this signature:

fn do_thing() -> Result<T, E>

There's a clear signal that there's legitimate error conditions that you probably want to think about today. If every function that accessed arrays, worked with integers, or allocated memory returned a Result, it would border on meaningless. It would be like if there was no Throwable/Exception distinction in Java. Everything would `throw Exception`, eliminating the value of even noting that something can fail.

I think the only way such a system could be tolerable is if the language in question had really good dependent type support (but that wouldn't handle the OOM issue -- which you can't even reliably handle on some systems).

Unwinding/crashing is valuable in a truly robust system, because it needs to handle crashes anyway. Might as well punt obscure problems to that level of the reliability system. (This is basically the basis of Erlang's task system, AFAIK)
Sorry for the confusion! I meant 'unsafe' as in partial (not safe for all inputs). Not as in Rust's unsafe keyword.
> I don't know what gigawatt means because I don't shop for power, I don't compare power output of one reactor to another, and I don't worry about power consumption because it's all covered by my wall outlets.

Okay. 1000 watts are roughly one 1.3 HP, everybody knows what a horse power is. So a megawatt is 1300 hp and gigawatt is 1 300 000 hp. We use cars all day - we have idea how much a horse power is.
There's owners and then there's owners. With a publicly traded company 'owner' is any one with enough cash lying around to buy a share.

Then there's also owners who did a lot of hard risky work several decades ago, now insulated from that by layers of management, but don't contribute any more value to the company right-now than any project manager or warehouse supervisor.

Or ownership via nepotism which is a bit of a crap shoot. Sometimes sons and daughters work their ass off; some times they're just barely competent enough to not cause a revolt when given the keys.
Basically: Don't eat anything because it will give you cancer. I've been living by that rule for about 15 minutes now, but I'm starting to get hungry.
What's the motivation to pick

.navbar { &__element { &__hover { ... } } }

over

.navbar__element__hover { ... }

?
Sorry to break this to you. CloudFlare posts get upvoted on HN because people like them, not because of any special relationship.

Was PG involved with Project Honeypot? I wasn't aware of that.

But yes, recruiting is a very important reason why we write very detailed, useful and informative blog posts and open source a large amount of code.
Nice work Jeremy!
Do Farmers Want GM Crops?
"The steady leak of its best workers to direct employment arrangements with its own (now former) clients."

This is a huge hurdle in any direct services market. While you're not likely to hire your own private driver and thus end your working relationship with Uber, you're probably very likely to find a cleaner that you like a lot and who does a great job cleaning your house and go on to form an exclusive working relationship with them instead of continuing to use a service that sends you random cleaners from a wider pool. Same with services of the same type- babysitters, dog walkers, etc.
Ask HN: Tips for first time Mac buyer
Just ordered my very first Mac (Macbook Pro). I used to think that Macs are for hipsters but after repeated feedback from my friends/family that Mac have one of the best hardware etc, decided to give it a try.

But I am a Mac noob. What are some of the important tools that I should use specially for developer stuff ?

Any tutorials (I hope I don't need one though :) for some shortcuts etc will help.
Non-commercial plants have been fully decommissioned, I don't know about commercial ones. (The NASA Plum Brook research reactor is completely gone now).
You can generally replace

<some hard to remember command with like 4 flags to unpack,
plus hope it ends up in a subdirectory and does not put all files in this dir>

with

tar -xf <filename>
You have to make relative impact judgement eventually. Pure relativism will just paralyze you.

No reasonable person is going to think that replacing 1km^2 of the central Sahara is equivalent to bulldozing 1km^2 of the Amazon. "More life" might be simplistic, so call it more life*biodiversity for total impact or whatever you want.

And in this specific example, the fact is that you are impacting almost no desert species in the dry parts of the Sahara. I suspect you are conflating low-moisture "deserts" like the Sonoran desert, where there is in fact life to impact:

http://t2.gstatic.com/images?q=tbn:ANd9GcTQQZ0DZRlKp1Ht0B-4W...

with the central sahara:

http://media-2.web.britannica.com/eb-media/09/550x366x152309...

Where no, there is really nothing to impact.
> I'm curious about that statistic. A lot of these business could be hobby or other casual enterprises, tax avoidance schemes, and doomed businesses started by naive people. It doesn't mean a whole lot without some more context.

All models are wrong, but some are useful. That particular stat covers a pretty good cross section of legitimate small businesses. Some small businesses may be a cover for an underground marinara sauce operation used by the mafia to funnel dollars to a dog fighting operation..... Sure we could muddy it up more, but I don't think that stat is all that malicious or disingenuous.

> Become a teacher!

This claim does seem to be a bit disingenuous and exaggerated. Sure teachers cover an unfair amount of supplies and get paid very little. Do they really rent their classrooms, buy their own computers, and pay for 100% of everything out of pocket?

> Social factors aren't irrelevant.

My post was refuting the claim that entrepreneurs aren't taking real risk. Granted if you come from a wealthy family you aren't taking as much risk starting a business as someone taking a small business loan. I still contend that the risk to an individual (relative to them-self, not others) is greater when starting a business than taking a job.