skysight-inc/HackerNews huggingface dataset:
In some languages, you could define a new division operator that returns an Optional/Option/Maybe result, and then use a nil-coalescing operator to choose what you want in case of division-by-zero. In Swift:

infix operator /? : MultiplicationPrecedence
extension FloatingPoint {
static func /? (lhs: Self, rhs: Self) -> Self? {
return rhs == 0 ? nil : lhs / rhs
}
}
extension BinaryInteger {
static func /? (lhs: Self, rhs: Self) -> Self? {
return rhs == 0 ? nil : lhs / rhs
}
}

10 /? 2 ?? 0 // -> 5
10 /? 0 ?? 0 // -> 0
10 /? 0 ?? 10 // -> 10
Yeah, I bring this up to them roughly once a year. It's crazy that they don't allow you to disable SMS.
While I would like to stop chasing grants as much as the next tenure track assistant professor, I don't think it's fair to characterize "the bulk" of academic work as chasing grants.

If anything, it's responding to emails ;)
State of Cryptocurrency Custody
Ask HN: Are there any tools to perform qualitative analysis on multiple texts?
I’m looking for tools to analyze multiple text chunks to find common themes such as phrases or topics beyond phrase recognition.
Code with Eager Execution, Optimize with Graphs: RevNet as an Example
> I'm not very familiar with DNSCurve but I don't think it has any mechanisms to prevent amplification.

The DNSCurve page discusses amplification:

https://dnscurve.org/amplification.html

The main point is that amplification is primarily a problem because of DNSSEC records causing small requests to generate very large responses, so if people would use DNSCurve instead then even if the responses were somewhat larger than the requests they wouldn't be so by a factor of 120:1 or more, which is the real issue.

But yes, there are multiple ways to solve the problem. CurveCP (a derivative of DNSCurve) does the same thing, requiring the initial packet to be as large as the response. For that matter DNSCrypt is somewhat a derivative of DNSCurve/CurveCP as well.

The point is that it's quite possible to solve the problem and still use UDP.
Those people need to realise that more of their taxes would go to apprehend, try and imprison the same individuals.

I know some people will still prefer punishing others to helping them, but at that point I don't think their opinion is worth much.
No, because in your scenario, you have to get through the deadbolt AND the regular lock. In the Vanguard scenario, you have to get through the deadbolt OR the regular lock.
There are all sorts of reasons that house sales slow down, not the least of which are reduced tax benefits, higher interest rates, and a general market forces.

The interesting thing to watch for is the flipper sales. Which is to say if a significant chunk of the market in your area is actually being held by people who bought the house just to flip it, then when you get two or three months of flat to downward pressure on house prices they will all yell "Peak!" and run for the exits. Then you'll see a nice flurry of downward movement as these folks try to unwind their position before the market falls into a hole that loses them money. Pro tip, there aren't enough chairs and the music is no longer playing :-).

That could bring some welcome relief for home buyers who have struggled in the 'no contingency cash only' markets like parts of the Bay Area.
I've seen quite an evolution over the past 3.4 years I've been using Julia and the 4 JuliaCon's I've attended so far.
Back at the 2015 JuliaCon, a number of us "older" professional programmers felt like we should stage a palace coup, because it did feel like the input of people who had "been around the block" a few times was not really valued. That's changed quite a lot (maybe because in the intervening years many of the core contributors have gotten their Ph.D.s and are having to live off their blood, sweat, and tears (plus lots of joy, to be sure) of producing things with Julia that people will actually pay money for). Yes, it was young and brash, but those awkward years seem to be past, and I feel the future of Julia is quite bright.
That is the problem with quick searches, they are usually incomplete.

1) While Biotinidase Deficiency is rare, Partial Biotinidase Deficiency is not as rare. Combining the two the incidence it is 1 in 61,000

2) There are no good statistics for late onset partial biotinidase deficiency. And they do not know why it happens. This is what I am diagnosed with.

3) Combine even a minimal decrease in biotinidase deficiency with a slight holocarboxylase synthetase deficiency and you can look like you have Biotinidase Deficiency when your enzyme assay is not that low. This can be cured with biotin as well. So how many is it now? 3000 or 300,000?

4) yes, there is more than BTD Deficiency that is wrong with me. I was stigmatized by doctors and psychiatrists for 25 years because all they saw was my mental illness. If it was not for Dr. Barry Wolf I would be dead.

5) so how many other causes of depression are there that do not get fixed with working out?

6) One of the people who authored this study is linked to Spring Health. Whose motto is “We use #data to help you choose the right #antidepressant”.

My point is that mood disorders are complex, and studies like this, that simplify mood disorders, are damaging to the people who have them. The company attached to this research is promising AI to find ways to help people’s mental health when there are currently no clear causes or treatments. I wonder if their app will tell people to get their B12 checked or send them to a doctor for Prozac when the jogging dies not work...

It’s vapor ware and they put out these studies to help them seem like they are not.
What if it reduces the disincentives to becoming a heroin addict?
X / (divisor || 1).

It's invalid code in C, C++ and Java.
code iterating along some line segments that forgot to account for the possibility of a zero-length segment

Out of curiosity, could you describe what you were doing and why 1/0 = 0 would have returned the correct result?
But in context I was clearly talking about the former, because the topic is software exploiting CPU backdoors.
Companies also have this problem...
Pony does have exceptions, and indexing an array does raise if the index is out of bound. It doen't have runtime errors because all exception must be handled somewhere in the call stack, the sooner, the better.

Because of this rule, defining / as a partial function forces the user to fence every single division in a try clause.

Using boxed integer as Elm does is not an option as Pony targets high-speed computing, not browser rendering. Different fields, different trade-offs.

Defensive users can well define `div(I32, I32): I32?` that throws an error and use it instead of `/`.

As repeated in this thread, 1/0 is undefined because nonsensical. So, it's OK to have any sane, consistent and well documented behaviour. At least with Pony, the user can choose speed and convenience when they're sure there is no possible 0 at this place. Well, TBH, I think it's always the case. Because there is no such thing as a division by zero, you're algorithm is simply wrong and unsound if it ends up dividing by 0, and that's where this case differs from integer overflow

Note: in Pony literature, "partial" means "can throw an error". "partial" as in "doesn't apply to the whole domain of the arguments types"
Good point, it's an issue of optics really, regardless of the actual costs involved.

It's certainly not the drug itself that is so expensive; the unit cost of an individual dose of any of the common opiates, when purchased through a pharmaceutical channel, is going to be less than a rounding error.
it is truly amazing to me that an ML language never made it mainstream. an OOP-enabled ML like F# or Ocaml beats the pants off of the likes of something like python, but here we are where python is taking over the world. and everyone else is clinging to java and c++.

f# and ocaml aren’t even hard to learn! i mean, one can learn Standard ML in a couple of weeks using dan grossman’s programming languages course! i understand, f# and sml and even some scala after just some small reading. but i took a semester long course in c++ and never understood it.
The story of what happens if we defined, for example, 1/0 = 0 is a little more complicated. I will include it because it is sufficiently interesting.

Equality of fractions is defined differently when zero divisors are allowed in the denominator. A zero divisor is a non-zero number that can multiply with another non-zero number to get zero. For example, if we work mod 12 then 3 is a zero divisor because 3·4 = 0.

If we want to allow zero or zero divisors in our denominators then we say that a/b = c/d if and only if there is some value s such that s·(a·d - b·c) = 0 where s is anything allowable in the denominator. If we are working with the integers, including this s term does nothing because s has to be something that can be a denominator and we only allow non-zero denominators.

So, even if we define 1/0 = 0 then literally every fraction would be equal to every other fraction.

These conventions can be broken (like, for example, addition of floating point numbers is not associative as pointed out by other comments) but it is definitely not "natural". In other fields of mathematics, like measure theory, it is possible to define things like "zero times infinity is zero" which is traditionally undefined but is a convenient shortcut and does not break anything that people working in measure theory care about.

For more: https://en.wikipedia.org/wiki/Localization_of_a_ring#For_gen...
We don't "have an answer." We can speculate that they're related. If someone gets an answer out of them or it leaks, we will have an answer. Until then it's a mystery.

(And even then, are you sure you should believe the answer?)
60k per year doing internships? I thought a typical tech internship paid $5-8k/month, which means at most $25k over the summer. (Maybe my number is for undergrads, and grad student interns get paid significantly more?)
Pretty sure my ancestral home is somewhere on Mayfair. I demand access to an affordable London flat thereabouts!

Also if you're talking about the Bay Area, much of the real estate pricing there is driven by the anti-development tendencies of the owners of ancestral homes, either lining their own pockets or pushing some misguided political wheelbarrow (especially in SF). In that sense it's largely self inflicted. In other places even uneven economic growth tends to create bigger cities as the wealth spreads through the economy via construction and services and the like. It's when you try to fight the market that you get unintended consequences.
>You mentioned Python 3, not me.

Yeah sorry, I was just acknowledging that I was wrong when I found the PR and noticed the mistake. I guess it come across oddly.
Not really a fan of the NYT but this article seems to lay out most of the issues around the book.

The diary as originally presented to the public, was edited by Otto Frank: https://www.nytimes.com/1989/06/08/books/an-authenticated-ed...
I’m not sure if a general system should deviate from established definitions but in specific programs I certainly bend the rules.

For instance, I made a game, and I might accidentally end up with a value that won’t modulus correctly due to zero denominator. In that app, mathematical accuracy for this single outlier does me no good at all because it manifests as “might crash randomly” when I want “doesn’t crash, period”. I therefore wrote a “safe modulus” routine that essentially guards against zero and makes a command decision to return a value. The added robustness against crashes is preferable, since I may not know if I have found every stupid case of the math accidentally working out to exactly zero.

In fact, more generally, exact zeroes mask lots of bugs. They are often default initial values, meaning you might not notice something working accidentally. Sometimes I use a really tiny float as my “meant to be zero” to distinguish, e.g. 0.0001 means “item was supposed to appear at coordinate 0”, that way anything that accidentally ended up at 0 is easier to detect.
Different ways of caching and maintaining cache consistency
Have you guys tried legalizing drugs yet? I don't mean decriminalizing small quantities of weed or even legalizing weed like Uruguay. I mean full out legalization with legal stores everywhere and legal pipelines. To me that's the giant elephant in the room, the clearly obvious solution. Not to mention all the things that tax money could go to. Now drug manufacturers, transporters, and dealers don't have to resort to violence and you can use the money to improve everyone's lives. Sure, the US might be pissy for a bit, but you can have some balls and stand up to our stupid, crumbling empire, or you can just keep going on the way things have been for decades: more violence, more incarcerations, more of the same shit that doesn't work.
>on most platforms malloc is guaranteed not to return NULL

This is only true on Linux, and isn't even guaranteed there. I'm pretty sure the default overcommit handling mode is still to refuse allocations that are much larger than there is free memory to support. (This was the case around 2.6.)

It's generally preferable for software to check if malloc() failed and have a chance to recover.
(1) Interesting that this is presented as a webpage instead of a normal paper on eprint or arxiv.

(2) If Mike Hamburg is behind it (no author information is available on the page), then it has high credibility.

I would take objection to the following statement: "However, modern elliptic curve implementations with fast, simple formulas don't provide a prime-order group."

The Broker-Stevanhagen (and prior) methods can find good curves with prime order, and complete formulas for these curves that are reasonably efficient are given by Renes, Costello, and Batina in
https://eprint.iacr.org/2015/1060

So this performance knife-fight in the ellpitic curve streets may require some benchmarks to resolve.
Potentially, as there is some evidence that Hashimoto's has some increased interleukin 17a (what cosentyx targets). However, it was my understanding that Hashimoto's is something that could be treated long term with thyroid hormone supplementation (synthroid, etc).
So, this is literally the whole point of this article: it turns out that that is a bad idea, in the long run.
Have you tried an external LCD monitor that is big enough for you to increase the viewing distance to about 40"/100cm? As a simple experiment, move your current laptop further away, increase the font size and see if the time-to-eyestrain gets longer.

There are gaming monitors which have faster refresh rates.

Dry eyes need to be addressed, as the tear film contributes to clear vision. You can use a "sipper" bottle of water to keep your upper respiratory track moistened. Yawning can trigger lubrication of the eyes, if you are drinking enough water.

Do you have EMF sensitivity?
Gun control laws in these countries are very effective. They're effective at making sure law-abiding citizens remain unarmed and can't defend themselves.
> The set of integers do not form a field

The set of integers represented by the integer types of pony can be treated as a field, since they have discrete ranges.
Maybe? Sounds cool! Can you send me a very very short email (my email is on my HN profile page) as a point of contact for further communication?
It's probably us that are using types in a weird way so it's my lack of explanation that's the issue. Types in Julia undergo multiple dispatch, so by passing a type into a generic function you can make the same generic algorithm run in different ways. So I use types to parallelize my code, calculate derivatives, propagate parameter uncertainties, and things like that. This talk from JuliaCon discusses a lot of the things for free that were developed by taking a type from one package and putting it into another:

https://www.youtube.com/watch?v=dmWQtI3DFFo
> there's nothing in the language that prevents this from working with the autograd package, except no one's taken the time to implement it (https://github.com/HIPS/autograd/issues/47).

I believe it's more complicated than most posters there realize, especially in the context of PyTorch (which uses a fork of autograd under the hood) with its dynamic graphs... Anyway, AD deserves its own discussion, that's I didn't want to concentrate on it.

> I'd be interested in a side by side comparison as well, and I was thinking that the main difficulty would be that I couldn't write good Julia code, but maybe we can pair up, if that'd be interesting, to address several common topics that come up (fusion, broadcasting, generics but specialization, etc).

Sounds good! Do you have a task at hand that would involve all the topics and could be implemented in limited time? Maybe some kind of Monte Carlo simulation or Gibbs sampling to get started?
> Shit, so now I can't turn on my desktop remotely and supply the password through SSH later? That's a huge inconvenience.

a) This hasn't ceased to work for your desktop - you can continue to do this through the upgrade cycle, as it would only affect new installs (safely converting native fs to dmcrypt isn't possible, AFAIK)

b) during an installation you could eschew FDE and opt for a PV, as I do, that you put your selected, secure LV's onto. I use Debian in preference to Ubuntu, but I'm sure they're materially identical in this case -- two physical partitions -- /boot and not-boot. /boot isn't encrypted in my case, but /, and /home (and a couple of others, though not swap of course) are LVM2 volumes sitting on top of the encrypted 'rest of the disk' partition. If you have /home only with noauto option in fstab , pointing to a an LV on the crypted partition, you could continue to do what you're doing, with the same reduced security confidence.
As someone who's spent decades programming in C/C++, and diving into assembly code (and writing a fair share when the compiler just couldn't do what I needed), I love being able to directly inspect the output code at many levels, including all the way down to "bare metal".
Yes, there's a lot of work to be done in the area of debuggers for Julia, but there are already useful debugging tools (like Rebugger) that I haven't seen for any other language.
I'll submit a resume and a CV sometime late next week. :)
Working 80% for Facebook basically precludes the time commitment for teaching classes.
That's not really what happened in the last crash though. The people who bought, held. The only people who got hurt were home owners who go underwater and then lose a job. They can't afford to wait it out, they can't afford to make the payment, so they end up in foreclosure. Then the bank holds and it ends up as a zombie home.[1] The zombie falls to pieces, so the bank gets a bail out, the home is written off, and the market is just as tight as it ever was. All the flippers are going to do is rent the places out while they hold on for the next run up. At least, that's what I witnessed in the last crash.

https://newyork.cbslocal.com/2014/07/25/zombie-homes-without...
Just today (in Austin) I saw a banner by the road outside a bank offering "100% financing" for homebuyers. If banks breathlessly pitching to lend buyers the entirety of a home's price is not a sign of an overheated debt-led housing market, I don't know what is.
Boolean operators returning values is common, especially in dynamically typed languages. The code is valid in JavaScript, for example, and in Python (except it uses "or" instead of "||").
The concerned reader might wonder how it is possible to assert that there is _one_ correct definition of an extension of the factorial function to the real/complex numbers. Why is the gamma function better than any other extension?

The answer is that the gamma function is the unique logarithmically convex extension of the factorial function.
Am I the only one that dislikes webpack? It's a lot slower than just good ol' browserify, when using watchify.

Even if you precompile libs
1/0 = 0 is just plain lazy. So is 0^0 = 1. Now some might argue it is a matter of how you define the operators. What I say is that then separate them cleanly. e.g.
pow(0,0) = 1
powr(0,0) = NaN
It's trivial to structure grants (or indeed contracts) such that they have concrete deliverables, even for academic research.
It’s a sausage fest here lol
Allow me to clarify that point. The idea is that - conceptually speaking - mathematics cannot be used to tell you empirical axioms about the world in which we reside. All it can do is tell you what must be true given certain well-defined assumptions. It is a phenomenally powerful tool for proving things about the world from empirical axioms, but which empirical axioms we choose to rely on in engineering is mostly the domain of physics or the sciences.

The underlying point here is mostly a philosophical one, but it has some bearing on the matter at hand. In effect, the definition (or lack thereof) for division by zero in fields is of no practical consequence for the real world impact of implementing an operation which admits division by zero. I can define an algebraic structure in which division by zero is sane (it is not in fields, despite what the article states!), or I can define an algebraic structure in which division by zero is insane. Both can be coherent, consistent and genuinely useful.

But whether or not I can define something that works has nothing to do with what happens "when the rubber meets the road", so to speak. It was a mistake to open up an argument about programming division by 0 using the field axioms in the first place. There is no "one truth", there are only facts which must follow as consequences from assumptions. This is especially the case for programming, considering that computers are fundamentally incapable of working with real numbers in the first place.
From my benchmarks (oh hi I'm the author of a multi-provider elliptic curve digital signature library for Rust), ed25519-dalek (with curve25519-dalek's AVX2 backend) seems to be winning:

https://twitter.com/bascule/status/1024313525554925568

...for both signing and verification, beating out the fiat-crypto P-256 implementation (in ring, a Rust cryptography library that wraps BoringCrypto).

libsecp256k1 seems slightly slower than fiat-crypto's P-256, even with the endomorphism optimization enabled. The Rust crate presently provide knobs for either of these things, hence the low Signatory benchmarks.

These curves predate Broker-Stevanhagen, however all of the implementations I'm comparing are production(-ish) quality.
It's the default filesystem on RedHat, CentOS and Fedora. Looks like they will be dropping that.
It's relatively easy to structure a grant program such that the rights are either shared, or can be licensed for a pretty nominal amount. There are other sectors of academic research that are quite good at this.
It gets worse than that,

https://www.lendingtree.com/home/mortgage/interest-only-mort...
> You use the tool as it is intended. With Keybase if you are opening and working directly from the Keybase folder that is mounted then you are using it wrong, so your scenario wouldn't happen if you are using Keybase correctly.

You may be misunderstanding intent.

Consider https://keybase.io/blog/encrypted-git-for-everyone
STEM is a categorization of academic disciplines in K-12 and university education. Sysadmin and IT support are not academic disciplines. If software doesn’t fall under the (T)echnogy category in STEM then I don’t know what does.
All true, I was thinking about the 'home price recessions' that happen periodically as opposed to the mortgage crisis which was precipitated in part by synthetic CDOs masking poor lending processes.
In brief: Walmart’s $16b takeover of Flipkart gets regulatory nod
The article title needs punctuation.
Flippers are like canaries in the mine. They are usually leveraged like crazy on short term loans, not flipping the house quickly can be fatal to them. Rental won’t let them pay off there loans when they come due in a couple of months.