HNHacker News
TopNewBestAskShowJobs

Kutta

711 karma · joined July 14, 2009

submissionscomments
Kutta··on HBO's Chernobyl may yet become the highest rated TV Show ever
As a mid-level Chernobyl geek, I found this show generally underwhelming. I admit it may hold much more interest for those who are not yet familiar with the story. But I must say, there are so many things which could have been done spectacularly, and instead we got a very pedestrian TV affair, with ample use of disaster movie and horror movie cliches and tropes, and basic bitch cinematography. Chernobyl should deserve a more flavorful adaptation if anything does. I also hate the gray-blue color grading, it would have been far more interesting to portray Pripyat as the rather vivid and young city which it was, with warmer color tones and more humane elements, instead of defaulting to dumb USSR cliches.
Kutta··on Starlink satellite-train visible with the naked eye
You can only see LEO satellites near dawn and dusk. They are in shadow most of the time at night.
Kutta··on GitHub Sponsors
Agreed. Conjunction fallacy galore in parent post.
Kutta··on Adding an Effect System to OCaml [video]
You mean algebraic effects? Monad transformers are an effect system as well.
Kutta··on Titans of Mathematics Clash Over Epic Proof of ABC Conjecture
That's irrelevant, all mainstream proof assistants are compatible with classical logic.
Kutta··on 1/0 = 0
Wrong. Division is not part of the field axioms, it is a defined function, and changing its definition has absolutely no bearing on the consistency of your equational theory.
Kutta··on Haskell’s State monad is not a monad (2014)
> no matter how many layers of indirection you might add the binary size and runtime performance would be unaffected

This is an unfortunate glaring false statement in the Morte documentation. Correctness of refactoring and code abstraction is understood to be with respect to semantic (extensional) equivalence, while normalization only works up to beta-eta equivalence. It can't eliminate abstraction in general.

Examples in Morte which suggest otherwise use hand-crafted forms of Church-encoded operations which are known to fuse, but there are many equivalent definitions which don't fuse, and which are actually more natural to write. Converting non-fusing definitions to fusing definitions is equivalent to supercompilation, which is generally undecidable, and thus can be implemented only up to some approximation.

Kutta··on Making WebAssembly better for Rust and for all languages
Not wanting to learn a different language is a justifiable preference. Software is full of cost/benefit questions like that. Believing true things also doesn't make you uncharitable.
Kutta··on Tough questions we get asked: 2018 Annual Letter
> is it impossible for a criminal to be a hero?

I think this is an awful question with awful answers.

http://squid314.livejournal.com/323694.html

Kutta··on U.S. tests nuclear power system to sustain astronauts on Mars
> small portion of the radioactivity escaping the containment shell

The Chernobyl reactor was very unsafe by modern standards, it did not have a containment vessel and tens of tons of reactor material was blown into the air, not a small amount.

Kutta··on My unusual hobby
> The more expressive a type system is, the more difficult type inference becomes.

This is always mentioned and I always fail to see the relevance. Inferable terms stay inferable when we add dependent types.

Kutta··on How to compare two functions for equivalence, as in (λx.2*x) == (λx.x+x)?
Unfortunately, beta-eta reduction on Church-coded terms (as in Morte) is much weaker than what is commonly understood as supercompilation, and it is false that "no matter how many layers of indirection you might add the binary size and runtime performance would be unaffected". This kind of statement can only theoretically hold for something like simple type theory with strong finite products and coproducts, for which (quasi) normalization has been recently shown in

https://arxiv.org/abs/1610.01213

Kutta··on Tech bosses are globalists, not libertarians
The society can't ever be honest and collectively stop enabling whatever. Everyone all the time responds to incentives, and power goes to whoever is lucky and good at collecting votes and support. Competence, technological acumen or vision is an extra. Altman being governor would be a high percentile outcome considering all of this.
Kutta··on Breaking Through the Normalization Barrier: A Self-Interpreter for Fω (2016) [pdf]
I am familiar with all of your listed sources (even attended one incarnation of the Érdi Gergő talk).

Section 3.2 of the paper absolutely does not say that the result does not hold. The main point of the construction is that typed quoted representations can preserve totality by disallowing diagonal application. Interpreting untyped quoted representations is impossible all the same, which is what I said in grandparent post.

I know Conor's views on total programming and share them, but the 2015 comment is not particularly relevant to the current topic, nor does it reflect on the folklore self-interpreter argument.

Kutta··on Breaking Through the Normalization Barrier: A Self-Interpreter for Fω (2016) [pdf]

    f :: String -> ()
    f g' = case (eval g' :: Maybe (String -> ())) of
      Just g  -> g g'
      Nothing -> ()

    loop :: ()
    loop = f (quote f)
Kutta··on Breaking Through the Normalization Barrier: A Self-Interpreter for Fω (2016) [pdf]
Previous discussion on /r/haskell:

https://www.reddit.com/r/haskell/comments/3s93w1/a_selfinter...

To summarize, there are a number of different notions of self-interpretation. The strongest notion is interpreting from raw untyped syntax (which entails that the input is first type checked and some failing result is returned if it's invalid). This can be relatively easily proven to be impossible in any total language. The weakest notion of interpretation is the no-op embedding: quoted terms are terms themselves and self-interpretation is the identity function.

The weakest self-interpreter is trivial to implement but useless. The strongest one is very useful but impossible. The paper presents something which is weak enough to be possible but strong enough to be useful. It essentially Church encodes the terms of System F-omega as a fold over their structure. This makes it possible to implement pretty printers or structural equality. However, in this scheme all quoted terms are well-typed to begin with, also, quotation can not be invoked at runtime and is available through external preprocessing step only.

Kutta··on The Boring Company [video]
You know about the word "evidence"?
Kutta··on Idris 1.0
I've seen this over and over but it's false. Adding dependent types do not negatively affect type inference for the non-dependent fragment in any shape or form. On the contrary, Agda/Coq type inference is far more powerful than in Haskell. While Agda/Coq do not have let generalization, that is by purely a design decision and not some kind of limitation.
Kutta··on Compile-Time Evaluation in the Zig System Programming Language
Obviously, we should not compare small personal project languages with decades-old industry languages by factors determined by the sheer amount of work thrown in. We compare them mostly by fundamental design principles.

In this case, partial evaluation is a massively more principled and efficient way of doing metaprogramming than preprocessing or macros. There are limitations compared to Lisp-style unrestricted untyped metaprogramming, but not any that I would much miss in practice.

With partial evaluation, we automatically get type and scope safety, and also only need one language instead of several. Optimizations also cascade in a principled way: we can compile code-generating code to fast machine code, which we then use to generate faster code or generate it faster, but the then-resulting code can be also used to generate code, and so on.

Kutta··on Harvey Friedman bringing incompleteness and infinity out of quarantine
The same thing as far as I see.
Kutta··on Harvey Friedman bringing incompleteness and infinity out of quarantine
I'm fine with classical reasoning and uncomputability, and I acknowledge the intuition for classical truth (it got popular for a reason). But pretty much all the useful classical math can be performed all the same in type theory without significant change, therefore the presence of "useful math" is not an argument for or against type theory and classical foundations. Rather, the main thing is that type theory is just better for formalizing things, and while type theory can conveniently embed classical reasoning and talk about various levels of constructivity, classical foundations is not convenient for constructive reasoning. Math with justification in ZFC is useful in practice, but ZFC itself is mostly not. I would like to see eventually many or event most things formalized, and for that we need fundamentals for more than justification.

On the more philosophical side, "philosophers should care about computational complexity", certainly, but it's not like one cannot have gradation in philosophical appeal. Also, it definitely helps to have computation at hand if we want to talk about feasible computation.

Kutta··on Harvey Friedman bringing incompleteness and infinity out of quarantine
HoTT doesn't build on any notion of omega groupoids; at the lowest level it's a collection of typing and computation rules which one can apply successively to do proofs and constructions. The resulting constructions can be interpreted as talking about properties of spaces. The rules themselves are very stripped-down and abstract when viewed in a homotopical light, like "every path can be retracted to an endpoint" or "the interval has two points and a path between them". Originally the basic rule for reasoning about paths ("path induction") was intended to allow construction of equality proofs between elements of types. Later people discovered that equalities can be interpreted as paths in spaces (and equalities of equalities as homotopies and so on).

Remarkably, the four typing rules of equality suffice to generate all homotopical reasoning in classic HoTT. However, they aren't enough to prove univalence as a theorem, or at least no one knows how to do it. If we switch to cubical type theory, we get considerably more structure which allows us to prove univalence. But cubical type theory is also "synthetic" and builds up notions of spaces from ground-up.

Kutta··on Harvey Friedman bringing incompleteness and infinity out of quarantine
Evaluation is always implicitly used in any sort of mathematical formalism. "2 + 2" is a program which evaluates to "4". Type theory just makes the computation arising from substituting definitions rigorous. Not letting "2 + 2" be equal to "4" by definition would be weird and inconvenient.
Kutta··on Harvey Friedman bringing incompleteness and infinity out of quarantine
My perspective is that classical axiomatic theories have a far weaker philosophical grounding than constructive type theories.

In type theory every definable natural number is a program which evaluates to a concrete finite numeral. You can't get more grounded than that. Of course, there is still a large variety of standard and nonstandard models of type theory as well, but the computational interpretation already corresponds very closely to intuitions about intended (standard) models.

In contrast, the lack of clear computational meaning in classical theories makes it necessary find philosophical justifications, which in turn usually refer to other theories without clear computational meaning. Of course, we can compile classical proofs to programs as well through a variety of transformations, but they tend to be sort of unsatisfying, for example we may get functions with empty domains that we can't actually call, instead of programs evaluating to numerals.

So, Peano arithmetic is just too loose and fuzzy for my taste. It's full of things which aren't numbers, rather statements referring to things which have properties which we think numbers should have. And then we can choose between sticking to first-order logic and leaving non-standard models in, or switching to second-order induction which lets us prove more statements at the cost of completeness and leaning more on ambient set theory.

Simpson seems to be critical of second-order logic because it's set theory in disguise; but to me that kind of dispute is moot because I find any sort of classical logic unsuitable for mathematical foundations.

Kutta··on Modern garbage collection
malloc and free are indeed far more expensive than allocation in a runtime system with copying GC.
Kutta··on Immutable-cpp: persistent immutable data structures for C++
Yes. Copying GC with bump pointer allocation is critical for pretty much any persistent data structure. In C++ and Rust one should use memory pools/arenas for them instead.
Kutta··on Master Plan, Part Deux
Musk doesn't primarily raise capital by selling prospects of eventual dividend. He openly doesn't care at all about profitability, he only cares about the oft-stated SpaceX/Tesla goals, and is pretty much willing to take any money and opportunity that comes his way, be it public rounds or government support. Musk raises capital by selling the prospect of the achievement of his stated goals. Part of the investors care about Musk's goals, and another part invest in Musk because they think that other people caring about Musk's goals sets Tesla's market value.
Kutta··on SpaceX lands rocket at sea second time after satellite launch
You have given a fairly comprehensive explanation (here and in other comments) as to why it's unreasonable to be disturbed by the chanting and why it would be beneficial for SpaceX employees to be let chanting as they wish.

I don't think is enough or appropriate. A significant fraction of global viewership is disturbed and alienated by the chants. It might well be that they're having the wrong feelings for wrong reasons, but realistically they will not adapt, and SpaceX's actions will not change their attitude in this regard, and they will continue to feel alienated.

I would like to see this properly weighted and considered as a consequence. It's similar to many other situations where you believe that people with different religions and attitudes are offended for ultimately wrong reasons, but you still don't go casually provoking them or making them feel bad.

Kutta··on If cryonics suddenly worked, we'd need to face the fallout
Pascal's wager's application to real-world cost-benefit calculations is pretty much always a fallacy:

http://lesswrong.com/lw/z0/the_pascals_wager_fallacy_fallacy...

Large payoff and small chance (with a wide confidence interval) has nothing to do with "infinite" payoff and "infinitesimal" chance. There are valid and interesting decision theoretic problems and paradoxes that arise with unbounded payoffs, but those aren't real-world in the way that outlier risk scenarios are real-world in banking and investment.

Cryonics is absolutely real-world in that sense, and we can and should hang some expected value tag there.

I have a fairly low confidence that cryonics will in fact work, but I wholly stand by my point that if it turns out to work, then that should be cause for a huge "we fucked up" moment coupled with a copious amount of soul-searching. But this shouldn't be put into a reference frame centered on "guilt" or "responsibility", although such things would be inevitably involved. Rather, it's a case of established models turning out to be wrong, and what matters is that everyone updates and learns from it as quickly as possible. Ignorance can be condoned but not willful and destructive ignorance in the face of ample evidence.

Kutta··on If cryonics suddenly worked, we'd need to face the fallout
If cryonics suddenly worked, we'd need to face the extremely serious question of why we let almost everyone die before, i. e. how we could've made one of the most catastrophic humanitarian and public health oversights ever.
← PreviousPage 2 of 5Next →