HN user

puzzledobserver

676 karma
Posts1
Comments149
View on HN

Disclaimer: I'm not a physicist.

For a particle to "oscillate", it must "experience" time. All massless particles travel at the speed of light. As a consequence of special relativity, they don't "experience" time.

Therefore, neutrinos must be traveling slower than light, and they must have mass.

Wikipedia tells me that the package index PyPI (launched in 2003) is about 4 years older than the interpreter PyPy (first released in 2007).

Still, at its core, PyPy is a Python interpreter which is itself written in Python and the name PyPy fittingly describes its technical design.

In Defense of C++ 10 months ago

That claim appears to contradict the second-system effect [0].

The observation is that second implementation of a successful system is often much less successful, overengineered, and bloated, due to programmer overconfidence.

On the other hand, I am unsure of how frequently the second-system effect occurs or the scenarios in which it occurs either. Perhaps it is less of a concern when disciplined developers are simply doing rewrites, rather than feature additions. I don't know.

[0] https://en.wikipedia.org/wiki/Second-system_effect

A natural follow-up to your question might be: "If everything is expanding, then wouldn't the ruler itself be expanding, so the expansion becomes unobservable?"

I'm not a physicist, but from my understanding, the situation is a bit more complicated than the phrasing in your question suggests.

Observation #1: The light from far-away galaxies is redshifted (spectral lines are a bit off from where we'd expect them to be). This suggests that these galaxies are moving away from us. The farther away the galaxy, the more it is redshifted. This suggests that the farther away the galaxy, the faster it is moving. Observations indicate that the recession speed is directly proportional to distance.

This observation is consistent with general relativity, which suggests an expanding universe with homogeneous mass.

But on a smaller scale, gravitational binding somehow takes over, and on even smaller scale, things like electromagnetic and nuclear interactions start having a greater impact, and that's why the Milky Way isn't itself expanding. For that matter, even Andromeda (0.8 Mpc) is too close to be affected by Hubble-style expansion, which only becomes observable at the multi-megaparsec scale.

The Indian Supreme Court introduced the Basic Structure Doctrine in 1970, allowing the judiciary to overrule constitutional amendments if they are found to contradict the "basic structure" of the constitution.

It's original purpose, if I understand correctly, was to guarantee that fundamental rights were an essential part of the constitution and couldn't be amended away.

Wikipedia says that multiple countries appear to have adopted the principle: Pakistan, India, Bangladesh and Uganda.

It's also because making some of these decisions (choosing health insurance, deciding how much to save, etc.) involve two considerations---the first being purely analytic (mundane cost vs. probability of contracting major disease vs. cost of catastrophe) and the other being necessarily extra-analytic (how risk averse the individual is).

One can objectively reason through the first set of considerations, while the second involves a subjective element and is likely heavily influenced by their upbringing and life experiences.

Nobody knows how much to save or how much to spend on insurance. It's completely reasonable to seek advice, and one's parents might be a great starting point.

It looks like the website is based in India.

Instead of the ones(10^0)-thousands(10^3)-millions(10^6)-billions(10^9)-... system followed in most other parts of the world, the Indian numbering system uses ones(10^0)-thousands(10^3)-lakhs(10^5)-crores(10^7)-...

So, for example, half a million subscribers (500,000) would translate to 5 lakh subscribers (5,00,000).

If you ignore syntax and pretend that the following is a snippet of Java code, you can declare that a variable x always holds an int, like so:

var x: int = y + 5

Here x is the variable being defined, it is declared to hold values of type int, and its initial value is given by the term y + 5.

In many mainstream languages, types and terms live in distinct universes. One starts by asking whether types and terms are all that different. The first step in this direction of inquiry is what are called refinement types. With our imaginary syntax, you can write something like:

val x: { int | _ >= 0 } = y + 5

Once again, x is the variable being defined, it is declared to always hold a value of type int at all relevant instants in all executions, and that its initial value is given by the term y + 5. But we additionally promise that x will always hold a non-negative value, _ >= 0. For this to typecheck, the typechecker must somehow also confirm that y + 5 >= 0.

But anyway, we have added terms to the previously boring world of types. This allows you to do many things, like so:

val x: int = ... val y: int = ... val z: { int | _ >= x && _ >= y } = if x >= y then x else y

We not only declare that z is an integer, but also that it always holds a value that exceeds both x and y.

You asked for the type of a function that multiplies two numbers. The type would look weird, so let me show you an imaginary example of the type of a function that computes the maximum:

val f : (x : int) -> (y : int) -> { int | _ >= x && _ >= y } = ...

This doesn't really get you to the maximum, because f might be computing max(x, y) + 5, but it does show the idea.

The final step in this direction is what are called full-blown dependent types, where the line between types and terms is completely erased.

Not really.

Or at least not completely extinct in South India. Some of my favorite childhood memories are from these messes (short for mess hall, I assume). You go there, pay what they ask, eat what they serve.

MTR, Brindavan on MG Road (though that's long gone), Iyer Mess in Malleshwaram.

What they lack in choice they usually make up for in taste.

You're right that they have a more traditional ambience and newer restaurants offer more choice, but they are definitely thriving in the parts of Bangalore that I grew up in.

I agree that over-reliance on pictograms frequently causes confusion.

I remember reading an article some time ago about European vs North American traffic signs. The article was praising the European system that relies more heavily on icons over the North American system which is more text-heavy. I can't remember the details now, but I remember disagreeing vehemently with the article.

I find many of the traffic icons (particularly the ones indicating something about parking, stopping and one-way streets) very unintuitive. I strongly prefer the text-heavy signage that I see in the US.

I had never thought about point 1, and never knew about points 2 and 3.

Growing up in India, iodized salt was the norm. Given that I'm vegetarian, now that I have moved the US, I have continued to use iodized salt for my own cooking. Whatever Morton / Kroger / other grocery store brand is most readily available. I usually keep it stored in an airtight plastic jar but use it for cooking like normal.

Should I be worried about iodine loss during cooking?

Treewidth? 2 years ago

I am a computer scientist working in programming languages (so with no particular expertise in combinatorics).

In my experience, treewidth is one of those ideas at the outer limits of my ability to understand.

I have spent several hours staring at the idea on several different occasions, and at the end of each of these sessions, I come away with a vague sense of why it is important and why the definition is natural, only for its complexity to completely overwhelm me the next time I encounter the concept.

I am not a mathematician, but here is a motivation I read somewhere some years ago.

There are basically two ways to produce big numbers: add two small numbers, or multiply two small numbers. You can produce all positive integers by starting with zero and repeatedly adding one. You can almost do the same thing with multiplication too, except for these pesky primes, which are somehow atomic. Naturally then, one might ask: (a) How many primes are there? (b) How frequently do they occur? (c) Can we look at a number and determine whether it is a prime? Now consider: Despite being among the oldest of the mathematical disciplines, there are still open problems about primes that can be explained to high school students.

Also, multiplication and addition are not simply operations that are of interest with respect to integers, but similar ideas apply to a bunch of other domains too. Polynomials, for example. So primality and primality-like ideas are like catnip for mathematicians.

I share this experience.

Perhaps another way of asking the question is: Are there any results, either about individual programs or in PL theory as a whole, that were made simpler / clarified / generalized because of category theoretic insights?

If I understand correctly: The idea is to scan every ballot, and upload all scans to a public website. The system preserves anonymity because voters are not required to write their names or other PII on the ballot paper.

I still have lots of questions:

1. Doesn't this system raise the possibility of coercion? For example, a goon or abusive spouse might, under threat of violence, force you to vote in a certain way and mark your ballot for them to audit afterwards. Isn't plausible deniability also one of the key desiderata of the election process?

2. The system allows me to mark my ballot paper and confirm that my vote was correctly counted, after the fact. But I still need to trust all the other votes uploaded to the website. Of course, the presence of independent election observers (who watch the counting process and the ballot boxes being moved around) would mitigate this fear.

As someone who is intimately familiar with Datalog, but have not read much about Logica:

The way I read these rules is not from left-to-right but from right-to-left. In this case, it would say: Pick two numbers a > 1 and b > 1, their product a*b is a composite number. The solver starts with the facts that are immediately evident, and repeatedly apply these rules until no more conclusions are left to be drawn.

"But there are infinitely many composite numbers," you'll object. To which I will point out the limit of numbers <= 30 in the line above. So the fixpoint is achieved in bounded time.

Datalog is usually defined using what is called set semantics. In other words, tuples are either derivable or not. A cursory inspection of the page seems to indicate that Logica works over bags / multisets. The distinct keyword in the rule seems to have something to do with this, but I am not entirely sure.

This reading of Datalog rules is commonly called bottom-up evaluation. Assuming a finite universe, bottom-up and top-down evaluation are equivalent, although one approach might be computationally more expensive, as you point out.

In contrast to this, Prolog enforces a top-down evaluation approach, though the actual mechanics of evaluation are somewhat more complicated.

There's an interesting article by David Graeber on how we characterize play and fun among animals: https://davidgraeber.org/articles/whats-the-point-if-we-cant....

I can't say that I've understood it all, but he appears to criticize scientists for not thinking about play seriously, and instead reducing most aspects of animal behavior to things like survival, fitness, and evolutionary pressure.

I think this is the real question to ask.

Does the complicated flowchart point to deficiencies in the Slack user interface? If the user cannot intuit the flowchart, then how can they (as several sibling comments rightly point out) reliably turn notifications on or off?

Algorithmic transparency should be a thing, no?

I mean, it is similar in spirit to a LOTO (lockout / tagout) lock, no? Except without the who to contact bits, perhaps.

"Don't turn this knob. But if you really need to, talk to this person first."

And that little bit of process is perhaps what keeps many industries safe.

I'm right-handed, and usually use scissors with my right hand. When I try using them with my left hand, two things happen: First, they doesn't sit right in my palm, because of the way they are sculpted. Beyond this, and more importantly, they are no longer as effective in cutting things.

Here's my understanding of why this is. When holding the scissors with your hands, in addition to the up-and-down force you exert on the blade with your fingers, you also exert a small side-to-side force with your fingers. With my right handed scissors in my right hand, this force pushes to the outside on the upper handle and to the inside on the lower handle. This force also makes the scissors feel more comfortable.

On the other side of the fulcrum, though, the upper handle controls the lower blade and the lower handle controls the upper blade. Here, the lateral forces end up drawing the blades closer together, giving a tighter pair of edges between which shearing forces are applied. This makes the cutting action more effective than if lateral forces were absent.

In my left hand, the (outside at the top and inside at the bottom) lateral forces end up pushing the blades further apart on the other side of the fulcrum. This reduces the shear force and makes the cutting action less effective.

To compensate for this while operating the scissors with your left hand, you would need to adopt a weird style: Consciously pull to the inside with your thumb, and to the outside with your remaining fingers. You'll notice that the scissors are now much more effective than before. It is also a deeply uncomfortable grip.

The issue is that scissors are (surprisingly) chiral sculptures. In the case of regular right-handed scissors, when viewed edge down, the handle closer to the viewer passes through the left of the fulcrum. I have never used a pair of left-handed scissors, but I would presume that for them, the closer handle passes through the right side of the fulcrum.

I see a number of comments here about giving awards to organizations rather than individuals, and counter-comments pointing out that Nobel's will disallowed it.

How is the Nobel Prize actually administered? For how long is the Nobel committee bound to follow Alfred Nobel's will? And aren't there laws against perpetual trusts? Or is the rule against awarding the technical awards to organizations one that the committee maintains out of deference to Nobel's original intentions?

One thing that I've always wondered about: Is the CAP theorem really making a non-trivial claim?

If a distributed system is consistent and available, it must return the last written value, and successfully do this all the time. How can it do this if the system is partitioned, and the node receiving the last write was unable to propagate this to other nodes?

The proof described in this website appears to confirm this. Am I missing something?

I recall seeing the following very neat idea on HackerNews some time ago, but can no longer find it:

The idea, if I remember correctly, was to intercept system calls and play a sound every time one occurred. So you'd get a series of beeps every time the disk was accessed, somewhat similar to the spinning noise from HDDs. It would play a different type of noise every time the network was accessed, memory was allocated or freed, and so on.

They reported that developers got pretty good at diagnosing and debugging their programs, purely from listening to it run.

What about skin types which are most likely to suffer from paper cuts?

For myself, I find that most paper cuts happen during winter, when my skin is dry. Would regularly using moisturizer reduce their frequency?

Several other commenters have brought about the sneaky wordplay involved in saying "identity theft" instead of simply calling it "fraud on the bank", and somehow turning the person into the victim rather than the bank that has been defrauded.

Has anyone tried to argue this point in court? Has this survived / how did this terminology shift survive judicial scrutiny?

I suspect that it isn't the unpredictability, rather it is the acceptable margin of error.

Say you have a 1500 kg car with a 100 hp engine, which starts from a standstill and runs for 5 seconds. How fast will the car be moving at the end of this run? This depends on how much friction the vehicle experiences, and is difficult to accurately predict. Try a similar calculation with a rocket in space, and you can calculate its final speed with a very high degree of certainty.

But now consider the potential impact of a malfunction: if the car engine fails to start, you might be inconvenienced, but you will be fine. On the other hand, if the rocket engine fails to ignite in space, you can't perform necessary orbital maneuvers and you might be in deep trouble.

It's something about environment on Earth being fundamentally hospitable to human life, and environment in space being similarly inhospitable. Because of this, malfunctions and unpredictable system dynamics on Earth are most often just minor inconveniences, while malfunctions in space / underwater / deep underground are disastrous events.

While we hear a lot about isotopes (nuclei with same proton count but different neutron count), we don't hear as much about nuclear isomers (nuclei with the same proton count and same neutron count, but somehow having different configurations).

1. Are nuclear isomers a thing?

2. Corollary: Could it be the case that some nuclei are stable and others are unstable, even though they have the same numbers of protons and neutrons?