HNHacker News
TopNewBestAskShowJobs

mpartel

471 karma · joined December 28, 2013

submissionscomments
mpartel··on Roger Penrose Discusses Consciousness (2017)
Try to make precise what this non-external thing is or provide evidence for its existence. Just come up with one sentence that says something about it that is neither trivial nor so fuzzy that it could mean anything and nothing. -- But be warned, you will have to pass quite a high bar with respect to non-triviality and non-fuzziness to convince me.

If there were a nice answer to this, the "hard problem" would be a lot less hard. But I'll give it a shot.

Along the lines of Descartes, assuming maximal paranoia about everything, it's the thing whose existence you can doubt the least.

That is, let's follow Descartes's line of thinking about how the external world and even all the ideas and concepts in your mind could, in principle, all be an elaborate lie. Then the only thing you absolutely cannot doubt is the existence of the experience of your own thinking. That experience is qualia.

Checking this definition against your criteria:

- Could it mean anything or nothing? It may be ambiguous in that there might be multiple things whose existence you can doubt equally little, but I'd say they're all probably in the ballpark.

- Trivial or fuzzy? Maybe? Admittedly I invoke the somewhat fuzzy concept of "doubt", which I haven't defined properly, and probably can't. But hey, all reasoning builds on some axioms :)

By the way, are you sure your challenge places the burden of proof in the right place? I feel like your position of "our brains are fooling us" is quite a bit stronger and "less default" than my fairly agnostic position. I feel your position at least owes an explanation of why our brains might be fooling us in such and oddly specific and seemingly unnecessary way.

Can you think of an example where we were not only unable to understand something but were even unable to describe the thing we could not understand?

Vitalism (https://en.wikipedia.org/wiki/Vitalism), and the progression from Newtonian physics, are common examples given for this.

Whether we have been unable to describe the things we could not yet understand, I suppose it depends on what counts as a description. We have always been able to point at the objects and phenomena that didn't fit our theories, sure. Qualia on a subjective level might be fundamentally more ineffable for now, but if we insist on immediate objectivity (and I don't think we necessarily should), we can point at qualia too at least on the behavioural level of "we don't know how or why human brains produce this peculiar behaviour of contemplating qualia".

Just like physicists needed to ask the right questions to improve upon Newtonian physics, I think finding correlations between brain activity and (reported) qualia will help us find the right questions, probably at first along the lines of "what's so special about this specific brain region / process". I doubt we'll manage to answer the behavioural question in satisfactory detail without getting at least some new ideas about how to approach the subjective question.

Does that mean that you would be willing to attribute full consciousness to a CPU with some RAM if it ran some software creating the same patterns in memory as they occur in our brains?

The closer the simulation's implementation is to a one-to-one to physical brain processes, the more likely I would think it is to have qualia. If a sufficiently one-to-one implementation of whatever mechanism turns out to be responsible for qualia is possible with CPU and RAM as they exist today, then it'd follow that qualia (and the behaviour of talking about them) are a "by-product" of certain kinds of information processing, rather than some funky physics shenanigans. I'm entirely open to that possibility.

And yes, my sciencey brain also pattern-matches what I just said with "actually having qualia is unnecessary in that statement!", and I'd be inclined to agree with that if qualia weren't so seemingly unnecessary and elaborate for a mere illusion, and if I didn't actually have qualia :)

mpartel··on Roger Penrose Discusses Consciousness (2017)
I agree, we can (vaguely) imagine an AI that simulates human behaviour faithfully and lies about having qualia without actually having them, just like a really accurate physics simulator can in principle simulate physics as accurately as we can hope to measure. But the implementation of a simulated physical machine is very different from the implementation of an actual physical machine. Similarly, if the AI implementation of qualia is based on lies, it does not follow that the human implementation is too. If we only care about externally observable behaviour, then yes, they can be equivalent, but I don't think that's all we should care about.

In other words, knowing how to simulate a phenomenon is not for me a sufficient explanation of the phenomenon, nor even necessarily a very strong indication of what the phenomenon's actual implementation is like.

It seems that only my brain is telling me that there is something more going on in humans but there is no evidence for that, at least none that I am aware of.

Why such distrust in your own brain? :) I think (the existence of) your own immediate subjective experience is evidence, and compelling evidence at that. It's just not the kind of evidence that's currently easily accessible by science. Over the course of history, many things have been inaccessible to science, and then science has progressed.

Science has at least one plausible angle of attack too. Qualia seem to be associated with only some processes in the brain (others are entirely subconscious), some of the time (attention can be redirected). This gives some hope of finding correlations between qualia and brain activity, which AIUI is a major topic in neuroscience currently.

mpartel··on Roger Penrose Discusses Consciousness (2017)
Well, qualia is exactly one of the things I would try to avoid.

That can be useful depending on what you want to achieve in the discussion, but ignoring the qualia question altogether won't make it go away :)

what are objective properties of qualia?

If we could answer that, we would have solved most of the problem. The closest thing to an objective property is that we indeed talk about them i.e. they do objectively affect the external world. This is true whether they're illusory by nature or not.

I've tried to understand the illusory explanation, but I really can't get over the sheer undeniability of actually having a subjective experience, that being (as Descartes put it) the only thing whose existence I can be really truly certain of. The illusory explanation feels too much like saying "if it doesn't fit our current scientific worldview, it's not real". How did you get over this hurdle?

mpartel··on Roger Penrose Discusses Consciousness (2017)
I very much agree with the call for precise communication. People with a behavioralistic/materialistic/empiric view and people more interested in "the hard problem" often seem to talk past each other as long as they both use just the word "consciousness".

This tends to get cleared up when a keyword like "qualia" gets mentioned, but it's so common to see lots of words wasted before that happens, if it even does. It's interesting how impactful the breadth of a shared vocabulary can be.

mpartel··on Valve Will Not Be Officially Supporting Ubuntu 19.10
I wonder if this statement is mostly an attempt to get Ubuntu to reverse course. It seems unwise to pull support from the most popular distro if it could be supported with additional technical effort, such as bundling the libraries with Steam. Of course that's effort that Valve would likely prefer to spend elsewhere.
mpartel··on Should array length be stored into a local variable in C#?
A good compiler can in a large number of cases infer that it won't modify.

The compiler can explore the call graph of the loop body and find out which methods might be called on the list, and then check that none of those methods write to the list's internal length variable.

How deeply and precisely the compiler (or JIT) analyzes the code in an attept to prove that the length won't change involves a tradeoff in compilation speed, but I'd expect .NET to have found a pretty good sweet spot by now.

mpartel··on Unity Editor for Linux
I've been using the "experimental" LTS 2017.4 Linux version at work for over a year and the only platform-specific issue has been broken .NET 4.6 support, which has long since been fixed in 2018.x. Other than that, I've found the Linux builds to be in good shape since the 5.x series (platform-independent Unity buggyness notwithstanding).
mpartel··on PostgreSQL Features to Try
A possible workaround: have multiple channels so that each channel only has a small number of listeners, and NOTIFY a random channel.
mpartel··on Bosque Programming Language
Reading the publication, I don't see that big a difference to existing purely functional languages. It almost reads like a rediscovery and refinement of the main value propositions of e.g. Haskell.

That said, some of the refinements, especially the (TypeScript-inspired?) record typing and manipulation facilities, look quite pleasant.

mpartel··on Programming: Doing it more vs. doing it better
Moreover, I think there's an 80/20-ish sweet spot. With an attitude of moderation, you can keep a brisk pace and achieve a pretty clean codebase with little extra effort.

It seems best to defer architecting just long enough to see that some component is becoming problematic, but not much longer. Do it too early and you waste effort. Do it too late and you have a much larger mess to clean up.

mpartel··on Animals are no less emotional than we are
My understanding is that most (many?) vegans even today accept killing when it's necessary for survival. That necessity is just extremely rare for modern humans (or it should be, in a fairer world).

That said, I find the idea of game-theory as a "universal basis" of ethics intriguing.

mpartel··on Writing a Faster Jsonnet Compiler (2018)
It's mentioned in passing a couple of times, so I assume they've tried it wasn't faster for them.
mpartel··on VSCode January 2019 (version 1.31) released
It's easier to write correct code when you know certain state changes always entail a full reload. Extension installs are rare enough and VSCode reloads quick enough that the tradeoff seems sensible.

This change introduces a new "extensions changed" event that extension points must (correctly) implement, so the cost is more code i.e. more opportunity for bugs. The essential question is of course, how much more, and I have no answer to that.

mpartel··on Article 13 is almost finished and will change the internet as we know it
Your MEPs, politely and in your own words.
mpartel··on Show HN: TabNine, an autocompleter for all languages
You get a license code that you paste into an editor with TabNine installed. The autocompletion engine sees it and completes the registration. Not sure where it gets saved ultimately.
mpartel··on Show HN: TabNine, an autocompleter for all languages
I'm trying this with VSCode and C#. It's quite neat, though no doubt it'd be even better with a dynamic language.

My main issue is when I type a '.', the C# extension gives me an accurate list of members, but TabNine intersperses its own guesses, which are often wrong.

Possible fixes or mitigations (VSCode API permitting):

- After a '.', discard the TabNine completions whose prefix doesn't match one of the C# completions.

- After a '.', discard all one-word TabNine completions.

- Give all TabNine completions a different icon and maybe sort them all at the top or bottom.

mpartel··on Vectorized Emulation: fuzzing at 2 trillion instructions per second
This is supremely cool!

The masking stuff reminds me of how branching works (or at least used to work) on GPUs, so I wonder, could all this be made to work on a GPU too?

mpartel··on Intel ME Manufacturing Mode: obscured dangers and MacBook vulnerability
Also https://www.raptorcs.com/TALOSII/. Pricy, but no longer impossibly so.
mpartel··on Skip – A programming language to skip the things you have already computed
So, say I have: `characters = [A, B, ...]` and I want to maintain for each character `x` the invariant: `x.target = (first y in 'characters' where y.score > x.score)`

Can Skip maintain such a self-referential invariant automatically? Does the answer depend on A and B's mutability?

(This "graph as array" escape hatch seems to come up in many language designs with compile-time pointer analysis. It's useful, maybe even essential, but you tend to lose some nice language features/guarantees with it, in my limited experience.)

The GC thing sounds excellent!

mpartel··on Skip – A programming language to skip the things you have already computed
This could be really useful for game development!

Certain kinds of networked games are built as a model, deterministically updated by clock ticks and commands from the server, and a view layer on top of that. And even model-level objects often monitor each other for changes. Seems like a perfect fit.

Game objects often have graph-like (not tree-like) dependencies though. E.g. two characters may want to move towards each other, creating a pointer cycle. Ideally I'd want one to be "magically" updated if the other disappears or changes state. I wonder if Skip has a good answer there, or if a good language-level answer is even theoretically possible.

mpartel··on EU approves internet copyright law, including ‘link tax’ and ‘upload filter’
Well this sucks a lot, but if I'm reading this right, they at least amended it to be _slightly_ less awful: https://juliareda.eu/wp-content/uploads/2018/09/Copyright_Se...

It seems to contain a bunch of amendments that seem to make at least Article 13 a bit less draconian. In particular, 13.2b seems to require a human-reviewed and appealable complaints mechanism.

All in all, it's still very shitty.

I intend to save the list of those who voted for and set a reminder to dig it out when the next EU elections come up. I hope people with more social media presence than I do the same.

mpartel··on EU copyright reform: the facts
Please write in your own words, and preferably from your own e-mail address! I can't see getting a bazillion of copies of the same message being anything but annoying and I wouldn't be surprised if they block the sender of such tools.

I wrote to them last time this was voted on and expected zero replies (partly due to the late hour), but actually got 2 out of 13, one of which indicated they had actually taken a few seconds to read some of my words. I later read they had received "thousands" of messages on the subject. I can't imagine most of them getting anything close to even this small amount of attention.

mpartel··on Intel Publishes Microcode Patches, No Benchmarking or Comparison Allowed
It's not quite that clear cut IMO.

E.g. "intel-microcode-legacy" and "intel-microcode" would be more diplomatic (disgustingly so IMO).

And one could argue that every package in non-free would deserve a "-legally-restricted" suffix.

mpartel··on Intel Publishes Microcode Patches, No Benchmarking or Comparison Allowed
Good thing we still have a somewhat anonymous internet. I'd be surprised if there wasn't a benchmark or two on the HN front page by tomorrow.

Might even come from a media organization if their lawyers deem this sufficiently unlikely to be enforcable in their country.

mpartel··on Intel Publishes Microcode Patches, No Benchmarking or Comparison Allowed
My guess is Intel will revert the license change soon. It's just too absurd to stay. But if not, I wonder if distros could have two packages, named with appropriate and well-deserved passive-aggressiveness, e.g.: intel-microcode-insecure and intel-microcode-legally-restricted.
mpartel··on Never patterns, exhaustive matching, and uninhabited types in Rust
Performance is not the only benefit. You also get freedom from data races, and (arguably) the borrow checker imposes structure that makes the program easier to read and reason about, because it's clearer who "owns" (and can mutate) what, and what is shared.

I've missed this property when writing Java and JS even before Rust was a thing, and Go has felt the same.

mpartel··on Google Plans to Launch Censored Search Engine in China, Leaked Documents Reveal
A massive difference in the amount of censorship, for one.

Arguably (very arguably), US and EU censorship is somewhat justified by the attempt to protect individuals, but Chinese censorship is pretty blatantly about protecting existing power structures (in the name of "stability").

mpartel··on Global variables are bad (2013)
Ah, I meant to reply specifically to the command line flags use case.

For most other uses of globals, I fully agree.

mpartel··on Global variables are bad (2013)
In general I fully agree, YAGNI and all that, but from experience, mutable globals, unless used very sparingly, rigidify the codebase to a surprising degree and make it more error-prone, often for very little actual gain.

As with any software engineering guideline, there are exceptions. E.g. Java-style loggers are so ubiqitous and "not that mutable", that it's generally good for them to be global.

Edit: also from experience, suddenly wanting two of something where before there was only one, is not that uncommon.

mpartel··on Global variables are bad (2013)
I'd rather readers of such code take the (IMO minor) extra effort to consider the possibility of the worlds being different rather than bake the assumption that they're the same into even more code. That's how globals spread around your codebase, little by little, until it's very hard to refactor away from them. Better to just say no from the start.

Also, if you have so many globals that passing them around as parameters / instance variables becomes truly tedious, that can be a valuable signal that the program is poorly structured.

Of course, none of this matters in small codebases, as long as they stay small.

← PreviousPage 3 of 5Next →