skysight-inc/HackerNews huggingface dataset:
Unpredictability is irrelevant to a use case like shuffling an array. Moreover, your conjectured polynomial-time perfect CSPRNG may actually produce a less useful stream of entropy for this use case than a good non-CS PRNG because its cycle length may well be shorter, and all that matters is uniformity (which can actually be guaranteed, not just conjectured and measured empirically) and enough seed entropy to kick things off. Top it all off with the non-CS PRNG being perhaps orders of magnitude faster.

I'll repeat once again that I do think people should generally default to CSPRNGs, but I really don't understand why everyone involved in crypto insists that there are no valid use cases for non-CS PRNGs / that CSPRNGs are uniformly better for all use cases when it seems very obvious to me that they are not. I don't see any reason why a good PRNG and a good CSPRNG shouldn't exist in every standard library. Am I missing something?
Using UUIDs does not magically solve your problem of using a bad PRNG. RFC 4122 imposes no guarantees on how random the V4 UUIDs really are. You'll still need to verify yourself if the method you use to generate them is good enough for your application. Especially if you need your UUIDs to be unpredictable. It even says so explicitly:

Do not assume that UUIDs are hard to guess; they should not be used
as security capabilities (identifiers whose mere possession grants
access), for example. A predictable random number source will
exacerbate the situation.

So many people use UUIDs for session cookies, where the unpredictability is vital.
I worked for a major US consulting company doing work for General Motors. It was soul-sucking. I spent about 7 hours a day in MS Word updating and adding documentation. On the extremely rare occasion i pulled code - it felt weird and anxious. I was terrified of making a mistake. I now work at a digital agency where things are much more chill...I am happy.
https://en.wikipedia.org/wiki/Polyus_(spacecraft)
I just started learning a little CUDA, but otherwise I know little about GPUs.

Is it surprising that they are Turing complete or surprising that they are using a von Neumann architecture?

You seem to be referring to Turing completeness when talking about branches. von Neumann architecture means you can execute data as code, which seems to be more what the presentation is about (?)

Given that CUDA exists, I don't see why it is really surprising that you can do advanced things with OpenGL shaders, given that they are running on the same hardware. CUDA is definitely turing complete and I think OpenCL is the same.
Artificial Intelligence Program Passes College Entrance Exam
There's also a reason why you see countless European international students in the American higher education system. While Europe has some great universities, many of them are lackluster. What you can do/know can be greatly impacted by the people you're around and the people teaching you. When people are competing for slots at places where you can network with the best and brightest, competition will be fierce.
It is amusing. hey gov: Can I think in private?
A: Of course! But to keep everyone safe we must have your thoughts.
Antibiotic resistance: a clear and present danger
We fucked up by not vetting the algorithm, that's definitely the primary lesson here. Mea culpa.

Bingo. Exactly.

I heavily criticized you in another post for 1) your initial choice of substandard algorithm and 2) your rationalizations (e.g. Google's "good reputation").

But that is ancient history. Here you're admitting that you fucked up, which IMO you didn't admit previously.

Also, kudos for your article which kicked off this entire discussion. In that article you showed that you carefully analyzed what was happening, how you went wrong, and how you could improve.

Even more important, you did this all publicly, both your article and your responses here on HN. Everyone learns from this. I commend you for your openness.
Statistical simulations require good randomness (or your simulation might give a wrong result) and high speed but not cryptographic security. See, for example, xorshift* (http://xorshift.di.unimi.it), which is efficient and high-quality but not cryptographically secure.
The fact this is front page news on multiple outlets , and a pile of cynical comments here, underscores how weird America is with attitudes around "paid insurance benefits", whether healthcare, vacation, and parental leave.

Unlimited vacation policies are intended to make people act more like Canada or Europe where 4-6 weeks paid vacation is common. Most civilized countries have employer benefits plans that cover most of your salary as a parent for 12-16 weeks, and by the government (up to ~$50k annually) for 52 weeks shared between parents.

Mark is doing what most Dads do, and it's a good example.
"large organizations are inherently broke" - you don't grow to be a 30BN/YR company by being inherently broke.
I like the new design. I hadn't realized I had visited Io before. I found the new site like a pamphlet - easy to hit a menu item, simple, clean design. I find some other language websites too technical or crowded. This drew me (back) in, and I found it easy to answer all of the typical questions I have when checking out a programming language page. I'll give Io a try now!
You wouldn't. I wouldn't. Members of general population... that's a different story. Companies do everything in their power to make people choose smart TVs. They deceive people with marketing and price smart TVs below dumb TVs. They also make sure customers aren't aware of the expected lifetime of such smart TV. Couple it with the fact that for a non-technical person, setting up two separate devices that sorta, maybe will work together is infinitely more complex than just getting one that has all the "smart" features bundled and working out of the box, and there's no surprise that people buy those.
Mobile phones always had a clear core market who genuinely had an answer to that question, even when the phones were so heavy they were 'carphones'. The market expanded as cost and weight went down.

The categories of home IoT device that seem to have a good answer are the fitness sensors and security systems. The smart kitchen on the other hand is probably doomed to be a bad idea.
Of course you can't compare the trouble Sun originally had in creating ZFS with the difficulty of porting it to Linux when it has been used for years and you can built on stable code and learn by the other implementations. This comparison is quite unfair and lacking in substance. It's not like the ZoL guys had to start from scratch and reverse engineer

It depends of course, I would always choose FreeBSD over Linux when it comes to ZFS, but then again I would always choose a BSD-OS regardless of whether I want to use ZFS or not.

Take it certainly with a grain of salt, but the developers themselves announced ZoL to be production ready in 2013/03[1], Richard Yao (also a developer of ZoL) argued in a blog post in 2014/09[2] that ZoL was stable and production ready and elaborated on this. Some interesting comments also are here[3].

And all this also was quite a while ago, ZoL has been used by users for years now, it's come a long way, I have used it to some extent a while ago and had no bad experiences.

In the end everyone has to decide for themselves what "production ready" really means, and how high the threshold is to deserve that label. But I think that you can reasonably make the argument, that it is...

[1] https://groups.google.com/a/zfsonlinux.org/forum/m/?fromgrou...

[2] https://clusterhq.com/2014/09/11/state-zfs-on-linux/

[3] http://linux.slashdot.org/story/14/09/11/1421201/the-state-o...
uMatrix is from the same developer and incredibly useful.
Well ZuckerBerg is still in his early 30s, it's probably too early to say that he will stay at Facebook forever. People change with age as well, no matter what he may be thinking about currently.
Weirdly enough, high school in Palo Alto sucks for the same reason recruiting is hard.

Relevant anecdote: I had beers tonight with a friend who was going through some strange feelings about some acqui-hire interviewing with Google. (To be clear, Google's acquiring his company, not the other way around.) He's brilliant, and he's got literally a couple decades of experience in engineering, product, design, etc -- and yet he walked away not knowing why some of the team members were acqui-hired and others were a 'pass.'

So why does Google's interview process feel like the SATs, or this girl's description of high school? Perhaps our 'measurement' systems for 'human quality' are really, really bad. Probably because human 'quality' isn't really quantifiable (or even well-defined, or static under observation), definitely because there is no clean test for such things, and because intelligence is a slippery, poorly-defined quality, and definitely not a quantity.

High school is the worst example of this: it can be weirdly competitive, the stakes are irrelevant/stupid (scores on standardized tests?), and everything is scaled incorrectly.

For my own son (he's 4), I hope he just finds something he wants to do. I will be hugely proud if he figures out what makes him happy and does it. I would definitely have fun if he enjoyed building things, because that's something I enjoy, and I'd love to share it with him. But I swear I'd love him just as much if he became a lawyer. (No, HN, seriously, even a lawyer! if you have been sued and don't have kids you wouldn't understand; I've had both.)

Now, Palo Alto is a weird case, but I grew up in Mountain View (granted, a generation ago), and there was a little of the same competitiveness going on. But it wasn't institutional, it was parent-driven. Get enough like-minded parents in one spot, well, then I guess it feels like reality. But I think the central fiction of the entire affair is that grades, top colleges, some sort of context-free "achievement" is a first-order good. But it's not a filter for anything that really matters... for example: empathy, thoughtfulness, humility, etc. Or being able to create value for the world.

Or even capital-A achievement (which is only a poor proxy for value-creation). These qualities (and others) are more important for getting something done than pure intellect... if such a thing even exists, frankly -- I'm more inclined to believe in domain-specific aptitude than some sort of pure 'IQ' score, like a D&D character attribute... far too reductive to be real. Testing well on the SAT is a reliable indicator of being good at taking standardized tests... full stop.

And being good at interviews is 100% correlated with being good at interviews. I can't say much beyond that.
The Chopras – Interactive Webinar on Pathway Programmes to Study Abroad
Communal cooking and eating. Cooking for four is usually only slightly more work than cooking for one.
Checkout my latest dotfiles for web development for OS X machine
First, I thought my internet connection went down while loading and half of stylesheets weren't loaded properly. Second, I didn't know where should I click first.

Language site doesn't need good UI, just provide what it is and why we should go ahead with it and minimal examples on front page.
What is a coder's worst nightmare? (2014)
Ringelmann Effect vs. Agile
You can also share up to 52 weeks with the other parent, paid (though not very much). https://www.gov.uk/shared-parental-leave-and-pay
Windows 10/Chrome 47(x64) links don't work for me
Getting Featured by Apple
So can you (or me), or all the lucky ones above a certain threshold. We all have the same time! Which is the biggest leveler. Our only handcuffs are our own making, say after you have FU money[1]. (e.g. having a million dollars net worth is not safe enough. Got to be at least 10s of million dollar networth. And this would keep changing. )

[1] https://www.youtube.com/watch?v=xdfeXqHFmPI (NSFW. Had seen if shared on HN few years back, can't recall by who)
Protecting Yourself from Electro Magnetic Pulse (1989)
The Polyus is a great example of my point (and that Wikipedia page does not provide an abundance of references, although I enjoyed the Buran book). It was a failed mission whose expectations were drastically downgraded several times and launched seemingly for the sole purpose of posturing on the international stage. All of the primary technology like the Energia rockets were simply oversized versions of their predecessors like the Proton rocket, except designed in the mid 70s and cobbled together in the 80s.
NixOS. I'm not interested in any other distro except Guix, which is similar. I've used Slackware, Red Hat, Gentoo, Arch, Debian, and Ubuntu in the past. NixOS won't botch your dist-upgrades; you can even Ctrl-C any time in the middle to immediately and completely abort, since upgrades are atomic. You can also choose to only download everything and only do the actual upgrade steps at reboot time.
Fuck up the planet in order to preserve the ecconomic system. Does anything strike you as wrong with that?
Not rude at all. They're actually all good questions.

> Why? Why do your identifiers need to be cryptographically secure at all?

They don't have to be cryptographically secure. They just need to be unique. Using random identifiers are easier to generate than deterministic/semi-sequential identifiers which would require some form of coordination, which is a pain in the ass and a point of failure. We switched to a cryptographically secure PRNG because it is higher quality than the non-CS alternative.

> Well.....except that if you had done the former, you wouldn't have had to analyze collisions because, you know, they wouldn't have happened.

You're assuming a UUID library that didn't just use Math.random() under the hood. Many libraries at the time of this incident did. Either way it would have been work to find one we could trust, vs. 10 lines. Also, UUIDs are 36 characters and not suitable for some use cases like short identifiers that will appear in URLS (which might need to be typed oh phones, etc).

> why does the library need to be kept "up to date"?

We would have had to update it when someone realized it was using Math.random() under the hood, for instance. In general there's a certain amount of maintenance involved with any dependency.

> why couldn't you just build a dead simple add-on/module in C++

Because 10 lines of Javascript vs. that.

> it was all for naught.

The random identifier generation was relatively irrelevant / just a fun narrative around the real story, which was about the subtleties of PRNGs, doing your homework, and Math.random() being crappy. If you don't think that use case is legitimate, that's fine. There are lots of other use cases where Math.random() is problematic, like shuffling an array (for an unbiased shuffle of a length n array you need a cycle length of n!).
>Language site doesn't need good UI, just provide what it is and why we should go ahead with it and minimal examples on front page.

What you're describing is actually good UI. A good UI makes it easy for people to do what they're trying to do.
The newer (haswell or later) Intel gpus DO have ECC for the gpu caches. I guess marketing missed that one or engineering insisted.
I'd like the ability to put an extension of my choice in a privileged mode so that it could escape such limitations. But sadly, given such feature, the usual response of asshole evil developers will be to ask users to give privileges to their extensions for "enhanced experience" or "to ensure that the extension works properly".
Mark Zuckerberg hit the lottery by fucking over the people who hired him, too; his careless ethics allowing him to "win the lottery." Not going to say more about this because the rabbit hole goes pretty deep when I've tried to get into discussion about this on fairness and the way people try to justify it is remarkable.
Rare, ancient and pink. The world's most valuable diamonds
Very recent. Like last month or so.
Watergate Complex
Ask HN: Double the income of 10 million people? (Hult Prize)
http://www.hultprize.org/en/compete/2016-prize/2016-timeline/

This year's Hult Prize is based on 'Crowded Urban Spaces' and has the challenge - "Can we build sustainable, scalable and fast-growing social enterprises that double the income of 10 million people residing in crowded urban spaces, by better connecting people, goods, services and capital?"

I was brainstorming for ideas but this seems a pretty audacious goal - to double the income of 10 million people. It probably isn't a hard requirement but it got me thinking - what kind of social enterprise could increase the income of so many people? Some sort of unskilled crowdsourced jobs, an "uber for jobs"? Presumably it would help poorer classes of society more, so internet-connected mobile apps are ruled out. How can we enable people to create value for others (thus increasing their income) in this manner? Also I assume this can't require too much manpower - is my assumption correct i.e. startups can't have manpower/capital for a grassroots movement.

Can this value creation be bought about by
1.a clever use of technology
2.IoT sensors
3.crowdsourcing previously-individual jobs (eg transport)
4.govt and NGO help for reaching out to end-users?

Would appreciate some brainstorming.
I've read the difference, ublock doesn't seem very harmful, would I should I be wary ? Is it just because it's not free on ios or something ?
> WinXP

Never heard about the Windows NT operating system series?

WinNT series:

WinNT 3.5 (1988-1994, based on VMS a bit on OS/2 designs) -> WinNT 4 -> Win2000 -> WinXP (August 24th 2001) -> WinVista -> Win7 -> Win8x -> Win10 (2015) [exluding all service packs]

MacOS X:

NeXTSTEP (1987-1989, based on Unix) -> OPENSTEP -> Rhapsody (1997) -> Mac OS X Server 1.0 -> Mac OS X Public Beta -> Mac OS X 10.0 (March 24th 2001, this is the first MacOS X you know) -> 10.1 -> 10.2 -> 10.3 -> 10.4 -> 10.5 -> 10.6 -> 10.7 -> 10.8 -> 10.9 -> 10.10 -> 10.11 (= El Capitan, 2015)
I think the point is that mistakes happen; the important is how you handle them. In contrast, there are plenty of cases where the company tries to hide them instead.
There have been many bad points for chrome this year, I'm glad I switched a long time ago to firefox.
tl;dr: spend 3 hours a week doing food prep such that you can throw together many quality meals with minimal fuss over the next week.

Food prep: buy your veggies, Broccoli, Asparagus, meat, potatoes et al on Saturday.

Boil, bake and prepare the food on Sunday so that on Monday, Tuesday, Wednesday, an easy breakfast, lunch or dinner is made by tossing two eggs (or other protein source: roasted turkey or whatever you prepared on Sunday), roasted potatoes, spinach, Broccoli and the like and you're good. At least one good meal per day.

I do this for our family of three and we eat at least two high quality meals per day.

Food prep takes practise. Eventually its like clockwork and you can crack out a lot of food in 3 hours.
That was actually a very interesting read.

http://motherboard.vice.com/read/john-aaron-apollo-12-curios...
You can't use a PRNG from multiple threads without synchronizing either. And interlocked increment is probably a thousand times cheaper than mutexing a PRNG...
There should be some balance.
I do similar shit and i stay up till I absolutely have to go to bed, then I can't sleep for 2 hours, despite quite strong sleeping/calming drugs, because I'm coding/doing PCB layout/whatever in my brain still
If you need to identify, to name, something uniquely and dynamically:

1) Do NOT use a non-deterministic generator, you'll thank me when debugging

2) find what uniquely identifies the object and generated deterministically string from those values

For example to identify a request to a service on the internet you can use microtime, IP and a counter and so on.
Astronomers Indirectly Spot Neutrinos Released 1 Second After the Big Bang
If the attacker might gain something by being able to predict the next ID in the sequence then you should be using a CSPRNG. That's not a problem here. There's nothing for them to gain.

It absolutely is sensible. Adding node IDs and timestamps leaks information. If you add a hash function now you have two problems -- the hash of a random value is actually a _new_ random value with entirely different characteristics. You're falling into another trap. Which is why you might not want another layer of safety -- you're introducing another layer of complexity and another place to fuck up. You had good intentions, but in the scenario you described you've just introduced an additional point of failure with limited upside. Why wouldn't you do the math and implement the simpler solution using a generator that won't fail?

As I've said elsewhere, the likelihood of collision with our identifiers is lower than the uncorrectable error bit rate of a HDD. In other words, it's more likely for a perfect deterministic method to generate a collision because there was a hardware failure persisting it to disk. Or, more pragmatically, the risk is far below the level that any sensible person should ever be worried about.
GUIs are there to distribute choices and permissible actions across a Cartesian plane, so that you can glance at a field of view, and quickly pick the thing you'd like to do right now, from a memorable/legible spatial arrangement.

The reason we benefit from GUIs is the same reason we benefit from our predatory binocular vision. A hunter that can see its prey can home in on a target quickly.

Terminal commands are a completely different strategy. Terminal commands only become intuitive, once you memorized chains of commands, and learned their interchangability.

Terminal commands gain practicality through practice, like knowing where all your home's light switches are in the dark. After you've lived there for a while, your hands move to them involuntarily, when you get up in the middle of night for a glass of water. But try the same thing in a hotel room.

All of this rides on top of a layer of muscle memory, but it's an order of magnitude more advanced, and decoupled. In league with playing an instrument, stenography and taking letters by dictation, that sort of thing. It's all blind and sightless.
Oh, it's a purchasing order. I misread it as a commanding order and thought there's some emergency or something.
Fast hash functions can be really important for performance of hash sets and maps. In my experience high speed is more important than a low collision rate.

That was for primitive types, it may well be different for types where comparison is more costly. And of course if you need protection from algorithmic complexity attacks, then you will need to take that into account.
It would be easiest to do so for 10 million of the poorest. Microlending and clean water initiatives like Living Water give a lot of bang for the buck, both in providing water for small-scale agriculture and saving the immense amount of time and effort it takes just to haul water for drinking and household use, often poor quality water at that.
The niche situations aren't going to use the built-in rand() anyway because they can write their own or use someone else's that's faster. Even if they end up using the same algorithm (e.g. a Mersenne Twister) they can still often go faster.

Interestingly according to https://bocoup.com/weblog/random-numbers Firefox is just going to use its CSPRNG once the crypto api is ready. (Bug 322529 is still in NEW state, though.)