skysight-inc/HackerNews huggingface dataset:
They were investigating him but he was largely unknown outside of some financial and biotech circles. After Daraprim and the subsequent public outrage, not to mention his grating "bro" public persona, he became one of the most hated men in America. They were going to nail him for something as a result of that investigation.

Remember, they got Al Capone in the 1930s for tax evasion - not all the other things he was certainly guilty of. Several other gangsters were convicted of things like mail fraud.

If you're guilty, or even just under investigation, don't paint a target on your back. A smart person would know to lay low. Schkreli ... didn't.
>Like Morgan on the Walking Dead. I do believe Martin is a good guy on the wrong path.

Not sure how you can defend that with this floating around.

I’m definitely the real fucking deal. This
is not a fucking act. I threatened that
fucking guy and his fucking kids because
he fucking took $3 million from me and
he ended up paying me back. He called my
bluff. He said, “You’re not fucking going to
go after me.” [I said] “Yes I motherfucking
will.” I had two guys parked outside of
his house for six months watching his every
fucking move. I can get down. I don’t think
RZA knows that. I think he thinks I’m
some powder puff white guy CEO that’s
got too much money. No. No, no, no.

http://mic.com/articles/125657/turing-ceo-martin-shkreli-wan...

http://hiphopdx.com/interviews/id.2825/title.martin-shkreli-...

https://news.ycombinator.com/item?id=10750928
> reproducible random sequence

That’s a hell of an oxymoron.

Edit Yes, I know obviously the intent was to refer to a pseudorandom sequence, but that’s not what was said. It’s also not what Math.random promises. It promises random-seeming output, nothing more, nothing less. It did not promise a cross-platform, reliably reproducible stream of pseudorandom numbers, and it would be in error to abuse a black-box "random" API by considering it to be a fully specified pseudorandom stream.
Here are some of the relevant rows from your second link (hottest values in one of the “GLOBAL” columns). I’m not sure I completely understand what the columns all mean though. Can you elaborate a bit?

YEAR MON GLOBAL NH SH TRPC NO.DAYS GLOBAL NH SH TRPC DAYS
1990 11 0.255 0.268 0.242 0.121 0 -0.005 -0.037 0.026 -0.092 0
1998 11 0.121 0.126 0.116 0.111 0 0.484 0.502 0.465 0.733 0
2001 11 0.168 0.203 0.133 0.153 0 0.101 0.108 0.095 0.013 0
2002 11 0.196 0.164 0.227 0.242 0 0.215 0.172 0.257 0.192 0
2005 11 0.198 0.234 0.161 0.209 0 0.197 0.240 0.154 0.293 0
2009 11 0.277 0.203 0.350 0.428 0 0.093 0.091 0.094 0.122 0
2010 11 0.170 0.260 0.080 -0.202 0 0.343 0.405 0.281 0.430 0
2014 11 0.229 0.251 0.207 0.239 0 0.178 0.203 0.153 0.127 0
2015 11 0.330 0.433 0.228 0.525 0 0.248 0.343 0.153 0.314 0

Maybe you can also extract and quote the relevant data from your first link? I’m not sure what I should be looking at.
As someone who maintains a hand-written configure script for a project that I build on just a handful of platforms, I have to disagree. There is plenty of cruft there to detect and take care of.

For example, recently I discovered that -D_FILE_OFFSET_BITS=64 works on 32 bit Solaris 10 for large file support. However, fseeko and ftello are not declared. For that you need something special, namely -D_LARGEFILE_SOURCE --- this is not just assumed from _FILE_OFFSET_BITS=64.

New developments in POSIX have created a fuzzy landscape which resembles some of the confusion in 1990 Unixes. This platform needs _POSIX_C_SOURCE=<at least such>, another has the same thing under _XOPEN_SOURCE. Apple won't declare anything useful to you without -D_DARWIN_SOURCE.

Some platform needed __EXTENSIONS__ to declare struct winsize. I don't remember which one, but my script detects that.

Systems are not becoming more alike. Even when it comes to standard stuff, they vary in their conformance to POSIX, and in how they declare identifiers and the exact headers that have to be included and such.
Yup. The actors don't even need to trust each other that much, because they each still need to use their public key to execute a transation. The level of trust is just that everyone will play nicely, such as not purposefully ignoring transactions.

The Bitcoin model is good at incentivizing actors to play nicely. Banks have no need to create this incentive, it's already in their interest. The Bitcoin mining system also solves another problem: how to evenly distribute new money in a fair way. Banks have no need for that either.
Lex Luthor and Mr Glass did horrible things intentionally to inspire humanity to find its strength / find a superhero.
I've heard the same stories from serious applicants to the astronaut program. A major problem they cite: living in Houston for N years, doing training, waiting to fly.
While you are correct that hoping he gets beat up in jail isn't right, that does not suddenly mean he's some sort of martyr. We are accountable for our actions and his actions were to buy up drugs that people depend on and then gouge the shit out of them because they have few/no other options. No matter what way you slice it he is not a "good guy".
Right, but I'm observing a lot of sentiment around "grad school is the answer" as what comes right after "college is the answer" has proven wrong for people without a clear goal. It's just more debt piling up.
I'd say these are just weak arguments. Bitcoin has pioneered many things in cryptocurrency area. Sure it has not yet disrupted the currencies, but then nobody claimed it did. :)
> That was weird, the no-js version didn't work. It just sat there spinning.

What extensions do you have installed? There's a known and unfixable issue with browsers that both block JS and absolutely block all requests to tracking domains (eg AdAway, which modifies /etc/hosts).

> What, why would I unblock those?

To incentivise better behaviour by web publishers and advertisers!
So many of you 20-somethings interviewing really make me cringe! Basically, many of you are a stark mirror in which I can see how terrible I was as an interviewer in my 20's and 30's.

Be honest now, do you do this?

1) See something or think of something
2) Decide that it's the most important point
3) Go on a "fishing" expedition to try and get the interviewee to see it
4) If the interviewee can't figure out what you're hinting at, decide
s/he's completely worthless! (Or if she gets it, decide she's the ultimate!)

A lot of you do this. Cut it out. It's idiotic. It presupposes a pretty arrogant view of the relative value of your own perceptions. What you really need to be doing is listening.

I had the experience of someone doing this to me with concurrency, then concluding I'm an impostor, while I'm telling him about 3 concurrent systems I've worked on. The disconnect? He was "fishing" for the current undergrad spiel about scheduling. Sorry, we covered it, but that wasn't emphasized in the same way when I was an undergrad, and the poorly thought out puzzle you came up with on the spot wasn't such a great hint.

Given the number of times I was mis-identified as an impostor programmer during interviews (a minority of instances, but still) there is clearly something going on. You guys are just like the young Ivy league grads in Mad Men. You just have different clothes and different language, but you are looking out for the signs of your own tribe just the same.
"good CSPRNG, with a fixed 256-bit seed at process startup from /dev/urandom" does describe a secure system. It doesn't take a syscall, and it's not fake-secure.

The failures come when you try to seed in userspace. Not when you use urandom to seed a standard algorithm, with no customizations.
You don't go to prison for white collar crime. That's almost impossible to prove.

You go to prison for getting caught lying during an investigation about white color crime.
My main objection is that technology companies appear to have very high turnover rates. By design? Are the companies "loyal" to their employees?

Many surveys have reported extremely short average or median durations for technology jobs, meaning 1-2 years, especially in software development.

Payscale did a survey that listed both Google and Amazon as having extremely short durations among employees.

http://www.payscale.com/data-packages/employee-loyalty/least...

The New York Times recently published an article reporting extremely difficult working conditions at Amazon resulting in a perhaps intentional high turnover rate:

http://www.nytimes.com/2015/08/16/technology/inside-amazon-w...

See also coverage of working conditions at Electronic Arts and other gaming companies.

It is true that some people are able to get jobs at technology employers and stay for several years. Even among these, very very very few seem to make it past ten years at a single employer.

There are those who suspect that many companies have a covert policy of hiring young, single, mostly male employees, getting them to work large amounts of unpaid overtime through various deceptive tactics ranging from free food to continuous grossly unrealistic schedules and deadlines, often coupled to PR events like trade shows intended to create a perpetual crisis atmosphere. Inevitably and by design this burns out large numbers of people, leading to large turnover rates and other problems.
I don't know, I take that as a nerdy white dude who desperately seeks attention trying to impress the hip hop heads out there (that kind of talk is extremely common in the rap game).
It's great !!!
Thanks. Had used it a bit a while earlier. Not sure why I stopped. Maybe due to some phone issue. Will try it again.
Excel-as-a-front-end hooks in so nicely and easily to SQL Server Standard via standard ODBC/ConnectionStrings. You get audit tables, integration with Active Directory, SSRS, concurrent modifications, the ability to dynamically perform queries (i.e. [1], if you enable a filter clause on your projection from one of those DropDownLists, it will send it out to SQL Server and then return the resultset), audit trails, permissions, and most importantly you can set all of those NON NULL, FK, restraints at the database level, and use SQL Server Reporting Studio (comes with Standard) to perform your reporting. Priced out per CPU you can get it for under 10k. I've done it legally for free too[3] in my early years, but if your client won't pay 10k for a RDBMS, you've got a tire-kicker who won't respect net/90 much less net/30. I've done literally dozens of times for every type of industry you can imagine and I can count on my left hand the number of times those clients needed to later supplement their infrastructure with an actual data-warehouse. (Also the newer Excel versions allow data constraints to a certain degree, so you can avoid that unnecessary transaction/lock acquisition in an anticipatory fashion.) Combine SSAS/SSRS, and the free downloads of PowerPivot and PowerBI and you have a _very_ robust, flexible system that can handle millions of rows easily.

[1]https://www.ablebits.com/_img-blog/find-duplicates-excel/sel...
[2] https://www.microsoft.com/en-us/server-cloud/products/sql-se...
[3] SQL Server Express + the Express version of the Business Intelligence Suite was free for production use up to 4 GB and 2(?) processors [things might have changed since then, SQL Server 2008]. A few hundred lines of SP's to dump stale data out and the client was golden.
It might be part of his plan to launch his hip hop career.

http://hiphopdx.com/interviews/id.2825/title.martin-shkreli-...
An interesting article, but (understandably, if frustratingly) very light on the details. It reminds me of some of the work being done in the Artificial General Intelligence (AGI) community. In AGI, you are looking to come up with more universal approaches to mimicking intelligence, rather than bake-an-architecture-solve-a-specific-problem.

In particular, this reminds me of some of the operational logic work done in OpenCog (http://opencog.org/) and, especially, Pei Wang's Non-Axiomatic Reasoning (http://cis-linux1.temple.edu/~pwang/papers.html). I've liked Non-Axiomatic Reasoning for a long time, and this sounds in the same broad area.

Pei Wang, incidentally, came up with the best operational definition of intelligence I've seen (and one I apply to other systems and approaches): Intelligence is the ability to act appropriately with limited knowledge and limited resources (including time and space).

For what it's worth, my (published, although very open to change) position is that a layered architecture (akin to old-school subsumption architectures) is probably going to be most effective here. Combining the 'symbol creation' abilities of a deep neural network with the evidential reasoning, generalisation, and planning capabilities of a cognitive layer will allow us to get the best of both worlds.
If your team lives in Slack, you may want to consider responding to tweets (in real time) via https://sameroom.io/attend
Yes, everyone knows you can change the user agent string, but how do you change the list of plugins returned by the browser? Do you have to actually patch the binary?!
'I changed Tunisia's history. I regret it all now' – video
The Golden Ratio Between Product, R&D, Design and QA
Yup, I've held multiple titles here, I'm in California.

I started as a Print Graphic Designer, then moved to I.T. Due to more layoffs I then became I.T./ Web Dev. I weathered the storm once again and had my job mutated into I.T. Assistant/ Web Dev/ Digital Campaign Coordinator.
OS X users, what is your preferred method to install a language dev env?
> Not sure how you can defend that with this floating around.

I bet the author of the parent comment to yours — like myself — was ignorant of this.
Hot code reloading in Python
Just published this library for hot code reloading and live-coding in Python on Pypi.

It allows you to change the source code of a function or a class while it is being used, without having to restart your program.

I hope it saves you many restarts !
Transphporm – A Different Kind of Template Engine
If the right to not be tortured is debatable, why do you refuse to debate me when I assert that it is absolute?
This seems silly. So why doesn't the attacker just rip out the whole of the decryption function from the binary instead of just the key? What's stopping an attacker from re-running that function in another program?
There is a common perspective in this thread that XYZ skills/knowledge are useful to understand (even if one's not seeking the social signaling associated with a top tier MBA).

Can anyone post some favored texts/resources for self-directed learning?

What do we include in the HN home-brew MBA?
The important use case is to allow people to write web applications with their language of choice, instead of horrible javascript. And get near full performance.
It doesn't particularly matter. The loop:

a, b = some input arrays of identical length
c = the output array
for(int i = 0; i < c.length; i++)
c[i] = a[i]+b[i]

can be easily run in parallel, each iteration of the loop kernel is independent of every other iteration. And, with OpenMP a #pragma could make that loop run in parallel without any difficulty (long time since I've used it, forgotten the actual code needed to make it happen but it's easy).

vector_sum([],[]) -> [];
vector_sum([A|Atail],[B|Btail]) -> [A+B|vector_sum(Atail,Btail)]

(it's been a while since I erlanged, probably messed up the syntax)

Each iteration should be independent, but the way we've constructed it it's not easily transformed to run in parallel now. In fact, that's a bad construction because erlang does have TCE and that recursion isn't in tail-call form.

EDIT: Also, iteration and recursion are transformable to each other. If you have a language with tail-call elimination, then recursive code with tail-calls should be equivalent to code using more conventional loop structures.

If no data needs to be retained between the recursive calls (consider this probably bad code):

int[] vector_add(int[] A,B,C, int index) {
if(index == C.length) return C;
C[index] = A[index]+B[index];
return vector_add(A,B,C,index++);
}

assuming A,B, and C are all initialized correctly outside this call, it's fundamentally identical to (with TCE, actual assembly may not be the same without a bit more care taken in defining the function):

int[] vector_add(int[] A,B,C) {
for(int i = 0; i < C.length; i++)
C[i] = A[i] + B[i];
return C;
}

That's a trivial transformation. Now, if we need to somehow retain some data (like an accumulator) it's not much harder:

int factorial(int N) {
int result = 1;
for(int i = 1; i <= N; i++)
result *= i;
return result;
}

int factorial(int N, int result) {
if(N = 0) return result;
return factorial(N-1, result*N);
}

call the second one as factorial(N, 1), you'd likely have a wrapper to abstract that out for any user so they only have to call factorial(N).

What if the recursion isn't a tail-call, how can we transform it? (bad factorial):

int bad_factorial(N) {
if (N == 0) return 1;
return N * bad_factorial(N-1);
}

Assuming we want to keep this stack, the equivalent code with a loop would be like:

int bad_factorial(N) {
int result = 1;
Stack values = new Stack();
for(; N > 0; N--)
values.push(N);
while(!values.isEmpty())
result = values.pop();
return result;
}

That stack we've created replaces the program stack that was used implicitly in the recursive version. I won't guarantee the performance or assembly is identical (they won't be) but they're on the same order for both execution time and memory use.
I did know the name from a while back, but not sure whether I'd tried it earlier or not. Will give it a whirl.
Or buy a straight edge razor, a strope and a stone, and be done for the rest of your life. There's something to be said about shaving with a sharp blade every single time!
huzzah! Another step closer to the dream of fully autonomous automobiles! Though human uber drivers must know that they are, at max, 5 years away from obsolescence?
> The Bitcoin mining system also solves another problem: how to evenly distribute new money in a fair way.

I was going to disagree with this, but I reconsidered my initial comment and will offer this modification:

"The Bitcoin mining system also solves another problem: how to evenly distribute new money in a provably fair way to those with the resources to participate."
Yes! How would you say "I'm a generic modern browser that can interpret HTML5. Do not send me flash."
Web assembly doesn't add new APIs or capabilities to the web platform. It only makes code run faster and makes porting C++ code easier. What about that is hateful or abusive?
No clear and obvious winner. They should all have pretty similar capabilities. I haven't tried any of the motion input systems of the headsets besides the HTC Vive, but I've heard they're comparable (Rift's will probably be slightly better than Vive's, and Morpheus's slightly worse)
This is so important. I also believe that this is the central conflict between the disenfranchised and the entitled. Yes, we despise evil, but we do nothing but help create it by turning on those we perceive as bad people the second we're given the go ahead.

"I can do better as a human being with empathy towards someone who is broken; sad and probably doesn't understand why people hate him."

If we ever want to stop hatred, if we ever want to stop violence, if we ever want to fundamentally stop the same alienated people who turn to mass violence as their destructive outlets, we have to do it with empathy.

This article is great, and I post it every time the gun control argument comes up after every mass shooting that comes up:

http://markmanson.net/school-shootings

Empathy is the only thing that will save us. It might not save us all, but we have to try.
Is there (or are there any plans to add) a WebAssembly -> asm.js compiler, so that I can write some code by hand in WebAssembly and still get it to run fast in old browsers? Or are there features of WebAssembly that would be impossible to add in asm.js?

The reason I ask is that asm.js is really painful and cumbersome to write by hand and wasm seems substantially nicer, but I only have small bits of numerical hot loops which I want to use wasm/asm.js for, and I have no desire to bring a bunch of code written in C into my little project.
I always bring up Switzerland. Their gun culture is completely different which is very important. But it shows that guns aren't the problem - the people and their culture are.

[0] https://en.wikipedia.org/wiki/Gun_politics_in_Switzerland
Honest question: why is this of interest to HN outside of schadenfreude?
Today? It should be fairly easy to recover anything you want with a debugger, given sufficient time and effort.

In future versions once SGX is available (>= Intel Skylake)? Good luck extracting data from an encrypted enclave. This is, after all, the intended purpose[1] for SGX - to create the "trusted computing" (DRM) that Microsoft has wanted for the last decade[2]. It's not like these new instructions are for the end-user; Intel has to authorize[3] you binary before it can be loaded into an enclave.

Anybody using the CDM - even sandboxed - is helping to create that future. If this isn't fought and rejected now, yet another battle in the War On General Purpose Computers will be lost.

[1] https://software.intel.com/en-us/blogs/2013/09/26/protecting...

[2] "Palladium" / "Next-Generation Secure Computing Base" in the early 2000s

[3] https://jbeekman.nl/blog/2015/10/intel-has-full-control-over...
What does this even mean?
Cool. I don't use a Mac though. Linux and Windows.
New Zealand PM John Key under fire for participating in 'prison rape' radio joke
The police becoming "as effective" as organized crime at "keeping publicly hyper-violent criminals in line" is easy, traditional police are more effective and use similar methods - there's a line you can't cross.

David Simon describes both this phenomena and how the war on drugs tossed this approach [1].

That said, this hardly eliminates crime or makes it OK. Poverty and the turf wars over facilities for victimless crimes are always going to spur violent crime.

[1] https://www.themarshallproject.org/2015/04/29/david-simon-on...
Texas company gives every employee $100K bonus
Appending properties of any type to Swift objects at runtime
Sorry, I don't follow. I am doing out-of-tree builds?

The problem is that there is no way to generate multiple files from one rule. If you write:

$(OBJDIR)/foo.o: src/foo.c

...you get one rule, which will build one object file. If you want to generate two object files with two different settings, you have to have two rules.

$(OBJDIR1)/foo.o: src/foo.c
$(OBJDIR2)/foo.o: src/foo.c

There is no way round this. Target-specific variables look like they solve this, but they basically don't work for anything useful. There are only three options here: (1) hardcode multiple rules; (2) use make macros to generate multiple rules; (3) invoke the makefile multiple times with different settings. All of these options are horrible.
Machine Learning Works Great–Mathematicians Just Don't Know Why