skysight-inc/HackerNews huggingface dataset:
I must offer my congratulations to you and your colleagues. I am broadly opposed to electronic voting, but the Brazilian implementation seems to be the most sophisticated, elegant and well-engineered.
Absolutely correct. That said, proof assistants are being used. Here's a quote from TFA:

> Lawrence Paulson, professor of computational logic and inventor of Isabelle:
> > [...] This identity holds in quite a few different proof assistants now.
A lender who makes an unsecured or insufficiently-secured loan to a person who makes no attempt to pay interest or return the principal, and has exhausted all means to collect on the debt, is indeed worse off than if he had kept the loaned amount in a risk-free asset (unless, perhaps, there is some compensating tax advantage, though I wouldn't know anything about that, and it seems unlikely that such opportunities would be widely available.)
Maybe by design, depending on what you mean. I think organized crime and state corruption (often hard to separate the two) thrives under all that chaos. Brazil is HUGE and I see many people asking to bring control back to each of the states.

How that would help I'm not sure but it's like the government is isolated in their own safe island and they are in most cases untouchable, or just get a slap in the wrist. I'm surprised how in the poorest and uneducated areas you can get lynched or beheaded if someones yells "thief" or "rapist" (even if you're innocent) but there isn't any acts of organized violence against the government.
Doesn't it allow some kind of custom scripts?
Recently I tried adding U2F support to my chat bot. It was so complicated and I couldn’t find comprehensive documentation for it so I gave up.

Admittedly, the chat bot is a hobby project so I was only looking for a couple of weeks in my spare time, maybe I “looked wrong” but everything I found was focusing on clients and rarely on servers.
Thanks for providing this study.

This reminds me of the Iron Law of Evaluation:

https://www.gwern.net/docs/sociology/1987-rossi

The Iron Law refers social program interventions but I think it is applicable to a lot of health interventions too.

https://www.gwern.net/docs/sociology/1987-rossi
So I still think we should have Voter-ID, but I don't think we're ready for it yet.

My arguments for:

First, don't people have to register to vote in most places? I don't see how bundling your Voter-ID acquisition with registering to vote would be bad.

Second, a valid state ID should be enough to vote even with Voter-ID. This DRASTICALLY reduces the number of IDs we need to handle.

My main argument against not doing it right now:

We'd need proper funding that we're not going to get in the current political climate. A half-assed solution would be BAD.
This is top notch.
> However, it is definitely possible to define some operation such that 1 `op` 0 := 0, just not the inverse operation of multiplication.

If you read the post this is actually exactly what the OP is saying.
Tutorial: Two-Factor Authentication with Meteor and TOTP
Are we reading the same FA? In the section titled "The Real Mathematicians" the author has quotes of mathematicians saying that defining division by zero as zero is OK.
But you propose to simply relabel as function, which doesn't work in general because random variable corresponds to a specific type of function. You could compromise by calling it a probability function, but then you start to collide with other uses of that word.

I agree random variable is awkward, though. I always avoided stats courses because it's full of so much jargon that collides with nomenclature used by mathematicians.
How does this compare to Ember CLI?

https://ember-cli.com
What about krypt.co ?
I think a principled mathematical way to say it is that the multiplicative structure of a field is a group object in the monoidal category of pointed sets and the smash product (with 0 as the point). So the multiplicative inverse of 0 really is 0.
I agree it was not effective, but it's still very concerning that these companies coordinated to do this. Not every action they coordinate on will come to light like this and thus may actually be somewhat effective (think actions against regular users).
Ocaml is not one of those environments. The repl is of limited value in ocaml as the language is not dynamic enough to use it. Much of the language is built on its module system and the repl requires one to write an entire module and (it’s signature) at once. This makes the repl very much inferior to compiled ocaml.

The article suggests that the repl is of use for finding the type of things. This is only half true. Consider the following:

type 'a my_extra_args = foo -> bar -> 'a
val some_fn : (int -> unit) my_extra_args

Now suppose you want to know the type of the function so you ask at the repl:

utop> some_fn;;
val - : (int -> unit) my_extra_args

And now if you want to know how to call this function you need to try to guess arguments until a type error expands the type.

Alternatively you could use compiled ocaml, write your programs in a sensible editor and then query the type using Merlin (a program to provide ide-like features to editors for ocaml)

On the other hand, I would expect a Common Lisp tutorial to talk about the repl as real world programs are written with the repl (but also in files)
Yeah, I see now. “times i” is discrete 90 degree rotation itself, not just ‘i’, nor ‘b’. Thanks everyone for making that clear.

This though shows that explanations via analogies or non-strict wording may confuse one rather than enlighten. I’m not good at math, but once understood to not search analogies or geometry in things. Instead it is better to “shut up and calculate”. Not sure if imagining something is required to manage it. It’s only our brain’s faulty quirk.

https://m.youtube.com/watch?v=zwAD6dRSVyI
Take the path (x,y)=(17a,a) as a goes to zero one dimensionally.
> With a small microkernel with a good track record [...]

https://media.ccc.de/v/34c3-8730-taking_a_scalpel_to_qnx
24 / 2

17 / 1

1.7 / 0.1

0.17 / 0.01

0.017 / 0.001

...

0 / 0
Minix. Rumor is it runs on a lot of Intel CPUs...
Did you mean $435.79?
The topic is a computer language. I'm referring to utility.
My point is that is isn't just a function, but a measurable one (with weak restriction on the measure space it has as domain) so we can't call it just "function" as you were suggesting.

The actual name might be debatable, but a shortened name rather than the full definition definitely makes sense here. Random variable seems like a good choice of name to me, thinking about the intuition we're formalizing with it.
I interpreted that as not making his "intro to ocaml" REPL-centric, so that things like the build tooling gets covered.
Take the limit as x goes to 0 of (17*x)/(x). Both numerator and denominator go to 0, so this is a representation of 0/0. The limit is then equal to 17.
Yes I know, but in the context of Pony, 1/0==0 only applies to integers, not FP numbers. The article doesn't make it clear.
It's not inconsistent. See this article [1] for an explanation. It's the first thing covered in the "Objections" section.

[1] https://www.hillelwayne.com/post/divide-by-zero/
Without NaN you don't get to see that the computation "went wrong". But that's not necessarily a problem, and only if it is must you check whether those inputs are zero.

Still, I agree that a NaN value(s) is(are) preferable for this reason.
floating point numbers in Pony follow the standard and return Infinity for division by zero. integer division by zero is undefined behavior and something each programming language has to decide how to handle.
OCaml was a required course in school for me. It was immensely useful and allowed me to think differently about programming (I only knew Java,C,C++ at the time).
x=170, y=10
x=17, y=1
x=1.7, y=0.1
x=0.17, y=0.01

The answer keeps being 17, even as x and y both get vanishingly close to zero.

I encourage you to play around with a 3D graphing calculator and see all the different paths you can take along that surface to reach the singularity. They all "reach" it at different heights.
I'm a professor working in AI.

I'd say the raiding of AI faculty is a reality, so Facebook's proposal is better than the raw poaching that is occurring. With salaries more than 3-6x higher in industry than in academia, the cost of being in academia is high for AI researchers compared to other fields where it is close to 1.5x. The program I received my PhD from had many faculty leave entirely to join companies, and this "dual affiliation" seems like a reasonable compromise.

Facebook enables PhD students to be funded, provides access to massive resources for building datasets and for compute power, and removes much of the grant writing burden allowing one to focus more on curiosity-driven research.

Faculty have so many things that pull them away from research, grant writing/fundraising, teaching multiple courses, and university service. Because things are moving so fast in AI, it requires more time to stay current on research activities which is hard to do in academia because so much time is spent doing other things.
For the last year of my degree our teachers were mostly contract teachers taken from industry. The courses they taught suffered fairly heavily for it. Their contracts covered only the time spent at school so marking, coming up with assignments and lectures were all done on the teacher's own time. This led to some pretty half asset efforts by the teachers, arguably not entirely their fault, and one case of a teacher making trouble for students working on a project outside of school and the same teacher using his position to acquire grant money for work he didn't do.
You miss the implication of the comment I was replying too.

The comment I was replying too was able to dismiss the legitimacy of the offending 'news' article with a simple observation.

I was commenting on the efficacy of such pity denigration, not the quality of Amsterdam's nightlife.
This is not true if you say division by 0 is undefined or +inf either. It really is totally fine.
Am I the only one who thinks Webpack is really not _that_ bad? I spent a day or two learning it back in 2015 and it's served me well ever since.

Not to mention tools like this end up increasing the net complexity, not reducing it. I recently looked at forking create-react-app to get it working in a custom environment, and wow. What a mess.
Meanwhile, in Python v3.7.0...

>>> 1 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 0 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 1 / 0.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero
>>> 0.0 / 0.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero

Meanwhile, in Elixir v1.7.1...

iex(1)> 1 / 0
** (ArithmeticError) bad argument in arithmetic expression: 1 / 0
:erlang./(1, 0)
iex(1)> 0 / 0
** (ArithmeticError) bad argument in arithmetic expression: 0 / 0
:erlang./(0, 0)
iex(1)> 1.0 / 0.0
** (ArithmeticError) bad argument in arithmetic expression: 1.0 / 0.0
:erlang./(1.0, 0.0)
iex(1)> 0.0 / 0.0
** (ArithmeticError) bad argument in arithmetic expression: 0.0 / 0.0
:erlang./(0.0, 0.0)

Meanwhile, in Ruby v2.5.1...

irb(main):001:0> 1 / 0
Traceback (most recent call last):
3: from /Users/mpope/.rbenv/versions/2.5.1/bin/irb:11:in `<main>'
2: from (irb):1
1: from (irb):1:in `/'
ZeroDivisionError (divided by 0)
irb(main):002:0> 0 / 0
Traceback (most recent call last):
3: from /Users/mpope/.rbenv/versions/2.5.1/bin/irb:11:in `<main>'
2: from (irb):2
1: from (irb):2:in `/'
ZeroDivisionError (divided by 0)
irb(main):003:0> 1 / 0.0
=> Infinity
irb(main):004:0> 0.0 / 0.0
=> NaN

Meanwhile, in PHP v7.0.8...

> echo 1 / 0;
>
INF
Division by zero :1
> echo 0 / 0;
>
NAN
Division by zero :1
> echo 1 / 0.0;
>
INF
Division by zero :1
> echo 0.0 / 0.0;
>
NAN
Division by zero :1

Meanwhile, in Node v10.7.0...

Infinity
> 1 / 0
Infinity
> 0 / 0
NaN
> 1 / 0.0
Infinity
> 0 / 0.0
NaN
It appears this might be related to dropbox (mis)using statfs's f_fsid field as part of its authentication system. The dropbox devs apparently assumed that this field was stable, but on XFS (for instance) it can change.

dropboxforum thread here: https://www.dropboxforum.com/t5/Installation-and-desktop-app...
Good scientific method suggests working in the opposite direction: first make a hypothesis, then test it. Working backwards from the statistical test to the hypothesis is... troublesome.
libertarianism contradicts classical liberalism

I think this is where I read the best argument for this (https://chomsky.info/government-in-the-future/) but I might be thinking of a different essay
The real issue is that Pony doesn't have the concept of an unrecoverable error. All exceptions in Pony are checked, but sometimes if an error happens there's nothing your program can do and it should just crash.

Edit: Although Pony claims that programs should never crash, the language designers clearly understand the pragmatism of an unrecoverable error because it happens on OOM and stack overflow
> the "cheap" $20 ones are literally worse than useless.

How so?

> 2FA's future is in touchID (integrated into touch bar on mac) and push to a phone app.

As another person pointed out, this is quite literally what krypt.co's Krypton app does and it integrates with existing U2F/FIDO standards so either a hard or soft device can be used.
> That's the problem: You're locked into one particular library.

But that's not a issue resolved by any particular language; Julia appears to be free of lock-in because it hasn't had time to develop multiple, exclusive approaches to the same problems. Perhaps Julia builds into the language the ultimate performance solutions, so ok, then, for example, wait until there are N different web frameworks, and there you will find your silos. Python has many approaches to making things fast, which is why there are silos. /shrug

> I switched already

I probably would too if I was still a grad student.

> why you hang out in a thread about Julia

I was perusing whilst waiting for my Python code to complete, when I saw someone suggesting Python is already quite OK, catching some hate. I'm more than happy for the Julia community, but I think it's helpful to get exchanges accurate and critical.
no, pedantant is what you are doing: correcting above comms
Most likely Dropbox needs to set these limits so that they can allocate their quality assurance department to very thoroughly test what they claim they support.

I'm an architect for a Dropbox competitor. Sometimes we need to draw a line in the sand for what we support, and what we don't support. This is mostly due to balancing cost / benefit. A customer may do something strange that we don't support, and we have to weigh how many engineering resources it will take to support the customer. This can apply to unusual filesystems that we don't actively test our product with.

IMO, Dropbox did the right thing. It's only real technical users who get into different kinds of filesystems; and these are the same kind of users who can understand, "Dropbox only works on X, Y, and Z."
"to put that into context" -me

I was giving context of what that number means. Not claiming Chicago is more violent than Caracas.
It’s common for 1/0 = 0 to be exactly what you want. Array average for example. That said raising exception would be the only consistent behavior if a language supports that.
> This seems just as bizarre, since zero times anything shouldn't become 1, no matter how big or how many times you do it.

It isn't bizarre, because there's an equal and opposite argument that anything times infinity is infinity, no matter how small the thing you multiply by.

If you actually do infinity * 0 you get NaN since there's no way to determine (without more information) whether the result should be 0, infinity, or anything in between.
Most of those are not school shootings. Here's a more comprehensive list: https://en.wikipedia.org/wiki/List_of_school_massacres_by_de...

As you can see, the vast vast majority of school shootings occur in the US, with China coming in at a distant 2nd place. There are only 4 school massacres in Brazil (of which only 2 involve a gun according to wikipedia), and Brazil is a country with a population of more than 200 million.

Gun violence in Brazil has historically been rampant, but school shootings there are in fact _extremely_ rare.
You mentioned Python 3, not me. Btw, I did look through your DE packages, and they are definitely an amazing contribution not seen in Python; I've recommend to colleagues.
It's quite staggering how many people have posted on this thread without reading the article. Nearly all the objections people have raised are directly addressed in the post.

For those who still object to the argument, would you object to me defining the piecewise function f:R->R defined to be 1/x for x =/= 0 and 0 for when x=0?
> Lawrence Paulson:

> > These things are conventions, exactly the same as announcing that x^-n = 1/x^n and that x^0 = 0.

Say what? x^0 is 1, and not by convention, other than in the 0^0 = 1 case.
I think it depends on the use case. I've found Webpack unintuitive, heavy and complex but I can see how flexible and expressive it would be for people who need to do more than I need to.
Assuming an exception is equivalent to any non-exceptional value doesn't break anything. See "Fast and Loose Reasoning is Morally Correct".
U2F through the yubikey doesn’t work on iOS devices because iOS NFC is only 1-way outside of Apple Pay.
And in other cases you really do want the infinities. For example fast ray-AABB tests like https://tavianator.com/fast-branchless-raybounding-box-inter...
Why are there so many fish?
The article uses two example theorems to justify this: a * (b/c) = b * (a/c), which can be extended to cover the c=0 case, and a/a = 1, which can be extended to cover the a=0 case. I can see how this can be useful in some situations, but it's not natural in the same way as e.g. analytical continuations of complex functions are.
I'm curious to what platform do you go if they do that
Another Brazilian here. I’ve lived in Australia for 15 years, Brisbane for 5 and Sydney for 10.

I reckon both cities are some of the cleanest safest cities in the world.

I grew up in Rio, left when I was 20. Still to this day I’ve got the street reflexe. My partner, who’s Swedish, finds it mostly amusing, sometimes rude.

For example:

I won’t sit with my back to a door or a hallway, corridor etc.

I don’t tolerate people walking behind me closer than 5-10 meters, I’ll literally turn around and pretend to tie my shoe laces or look at a shop window.

And I think most of all, I can tell immediately if someone is sussing me out, looking for a vulnerability, something of value I’m wearing, etc. I see the eyes, I hear the body language.

All of this from someone who grew up in a middle-upper class neighbourhood in Rio (Ipanema).

I’m wearing an Apple Watch and I’ve got an iPhone 8 Plus in my pocket atm. I often leave the house with a $2000 dollar Sony a7iii câmera just because I “might see something I want to photograph”. My friends in Rio simply wouldn’t comprehend...
Industry Teardown: The True Cost of Building the Best Content
> But my bank doesn‘t. My insurance companies don‘t. My broker doesn‘t. It‘s all very sad.

Disappointingly, my (former) bank, insurance, and broker companies only supported "2"FA via SMS, which is even worse--in my opinion--than not supporting anything at all because it gives a false sense of security. My bank and my mobile phone provider would both allow me to completely reset my credentials using solely a verification via SMS, so anyone who hijacked my phone number could steal from me.

Even more obnoxiously, lots of businesses don't accept "VoIP" SMS numbers because they are deemed "insecure," even though my VoIP numbers are hardened behind much better account security than anything my mobile provider offers.
Common compared to what? Taking an average of an empty array is nonsensical.
Also, the new Firefox is just better. I left Firefox years ago as my primary browser for chrome, always occasionally using Firefox for testing and some browsing. They finally one me back. Especially since I can sync my browsers including Firefox on Android which allows me to use ublock origin.
Once a mathematician explained to me in mind-numbing detail why dividing by zero is impossible, so I understand why this is gross better than I ever wanted to.

But having said that, I do not remember when I last saw a Divide-by-Zero-error in the wild. In practical terms, this is the last kind of bug I worry about.
Did you get deep enough into WebKit to see that the namespace for the utility functions is called WTF? :)

I also like how there are at least five string classes (to be fair, there are good reasons for most of them): String, AtomicString, StringImpl, CString, WebString.

Edit: If you're feeling particularly brave, look up some of the text-run and unicode bidi algorithm related code. I don't remember how old that code is, but some of the darker corners of WebKit go back literally decades.
We will be introducing two sets of integer math operators in Pony. The current which are non-partial and can over/underflow + division by zero == 0 AND new ones that will be partial functions that cause an error on under/overflow and division by zero.
Ruby defines division by zero for Floats

1.0 / 0
=> Float::INFINITY

and

0 * Float::INFINITY
=> Float::NAN

I think infinity is a more intuitive result, but most of the time i get this as a user i would rather see 0 (bought books per month: Infinity). As a programmer i like to get an error, because i forgot to handle an edge case...
> But similarly frequently, I end up crapping out annoying little bits of code

Isn't this reason the the point of having a utils library with commonly used pieces of code?
It's true up to NaNs, which we can treat as bottoms.
Ah yes, the wobbly-step school of language design.
Honestly, OpenGL isn't that great for how people think. IMO a scene graph API is much better in that situation.

The boilerplate in Vulkan is a lot of work to get to a triangle on the screen, but once you're there it really isn't much more work to do whatever. The boilerplate isn't linear with lines of code, and honestly anything nontrivial with modern OpenGL is probably going to have more boilerplate.

It's sort of an unfortunate consequence of how code architecturally should change with log10(cloc). Examples in Vulkan look verbose, but as soon as you get out of examples, it's a lot nicer. So, with a simple game, I'd probably end up using something like Vulkan too.
Rust macros are intended to be powerful, by design.
> This is calling for an Ariane 5-type crash because an underflow error caused a value to suddenly fall from 10e6 to 0.

That’s the opposite of what happened. A value overflowed, which triggered an exception, which caused a module to emit diagnostic information, which was misinterpreted by other systems as flight data. Interestingly, the value which overflowed was part of a system which was only used until LT+7, which had aleady passed…

In short, if the overflow had simply saturated or wrapped around to 0 or given some other garbage result, the Ariane would have not crashed.