HNHacker News
TopNewBestAskShowJobs

reuben364

176 karma · joined April 21, 2015

submissionscomments
reuben364··on OpenWorm
Yes, but this is arbitrary. That is my point. There's no reason to believe that you can extrapolate your own subjective experience to others based on their similarity to you.
reuben364··on OpenWorm
> Of course we take the pragmatic approach of deciding things that look like suffering to us is suffering.

Hence why I said this. There is nothing you can use to believe a human's claims over the text-to-speech's claims, so we choose what looks like suffering to us. However, my point is that it is an arbitrary choice.

reuben364··on OpenWorm
And on what basis do you claim that computational complexity is a necessary condition for consciousness and suffering? There is only one datum you have for consciousness. Other people can tell you that they experience consciousness, but so can a Text-to-Speech program
reuben364··on OpenWorm
The only consciousness we experience is our own. In the extreme, we can no more say a chair suffers than a human being other than ourselves. Of course we take the pragmatic approach of deciding things that look like suffering to us is suffering.
reuben364··on Helium: South Africa strikes new 'gold'
I've heard this a lot recently in regard to Intel's latest CEO coming from an engineering background. I can intuit it, but is there something to back up this claim?
reuben364··on The strangely difficult problem of drawing a box around text
Case in point: Microsoft Teams. On Chrome it gives an option to use the web client. On Firefox it doesn't even show it as an option. For the longest time I thought that Teams didn't even have a web client.
reuben364··on The danger of hidden functional roles
Here is a video on the topic of bacteria in an experiment evolving to use a second source of food: https://www.youtube.com/watch?v=w4sLAQvEH-M. I'm not sure if they depend on it being present though.
reuben364··on Feds order Google to track people searching certain names or details
By my interpretation, the empty set would cover no users, not all of them.
reuben364··on Feds order Google to track people searching certain names or details
I would guess {"google"} would cover almost all users.
reuben364··on Doom Rendered via Checkboxes
While not a novel port of doom, there is this texture pack that replaces every thing in it with a picture of Tim Allen. I still chuckle every now and then when I think about it. (https://www.youtube.com/watch?v=Ji9qSuQapFY)
reuben364··on Group effort to study the mathematical sciences for “saving the planet.”
Well, one of the possible applications is game theory. Maybe these techniques could be used to design incentive structure that work. This of course is very loose reasoning on my part as I don't really know the details.
reuben364··on Where do type systems come from? (2017)
A more degenerate argument: a type system that rejects all programs will prevent all bugs.
reuben364··on Where do type systems come from? (2017)
As good as you can get without being able the read the programmer's brain to figure out what they really wanted in the first place. To talk about correctness formally in the first place, you need to specify what you want and when you do that there is no guarantee that that is actually what you want.
reuben364··on Ruby removed “Participants will be tolerant of opposing views” from its CoC
I think he's referring to the idea of petty HOA politics where motivated power hungry people drown others out and selectively apply rules to make others miserable.
reuben364··on Ruby removed “Participants will be tolerant of opposing views” from its CoC
s/^.*$/
reuben364··on Ruby removed “Participants will be tolerant of opposing views” from its CoC
I've seen this in very incel-y contexts, but I can't imagine it being anywhere as pervasive in the context of GitHub. "Everybody hates me even though I'm a really nice guy, but man those class of people are ****" doesn't really have a place to show up.
reuben364··on Where do type systems come from? (2017)
Generics are not really the statically typed answer to duck-typing. Subtyping with structural types, such as in TypeScript, is.
reuben364··on Where do type systems come from? (2017)
I guess; in the sense that it frees cognitive load from reasoning about properties of your program that are easily computed to think about properties that aren't. Even then, maybe thinking about the former primes you to reason about the latter. But even if the compiler tells you what the type of something should be, you ultimately have the synthesize something of that type.
reuben364··on 'Google' is most searched word on Bing
Adding more fuel to the fire is that most of the benefit in learning the underlying principles of software is being able to build, modify and introspect it. In a terminal, to view a text file, you could use cat. On a phone, you download an app. However, you can't pipe your Free TXT Viewer 2000 to another app (and if you could, it would probably inject ads). As the walled garden closes in, the incentives to learn diminish as being able to accomplish anything with such acquired knowledge will be severely limited.
reuben364··on Where do type systems come from? (2017)
Semantics of programs in type theory are most of the time described by a small step relation which describes, possibly non-deterministically, how to perform one step of computation. Separately one can consider which terms are values, indicating a successful, terminating computation. Type theory would then involve proving properties about the semantics of typed programs.

One can give a small step relation for a Turing machine and one could possibly come up for a type system for it, but generally one starts with the semantics for untyped lambda calculus.

Some of the more advanced type theory stuff unifies the notions of terms and types, meaning arbitrary computations can happen in type checking and so properties about types can involve properties about computation in general.

reuben364··on Where do type systems come from? (2017)
I'm struggling to fit this into my current understanding. I guess I don't really know how incompleteness looks in a type theory setting. Terms are proofs, types are propositions. _ are theories, _ are models, _ are valid formulas?
reuben364··on Where do type systems come from? (2017)
Not qualified to answer, but my thought is that if you have a statement that is true that cannot be proven, you could write a program whose correctness implies the statement, then proving the program correct amounts to proving something that can not be proven.
reuben364··on What is the Axiom of Choice?
Constructive mathematics by it's nature does not use LEM. The idea is that proof of existance must be done by construction of the object in question. LEM implies DNE, which means existance can be shown by showing non-existance is not the case.

EDIT: Apologies, misunderstood.

reuben364··on Parse, don’t type-check
Reading articles like this make me want to avoid OOP.

It seems that like the concept is so over-complicated that it requires developers to invent an entire religion to be able to effectively apply it to real world use cases...( my procedural philosophy is so simple, I could explain it to a 10 year old).

There are many ways to build software, but only few ways to build it reliably. One major aspect of reliable software is composability, so that may ensure correct large systems are out of correct smaller systems. Correctness in the small, trivial bits and their glue is what makes correctness at large. You say you just have to think about what's best for your project. Why not think about and understand the problem in general and build tools to tackle the specific complexities you have.

Feel free to not use Haskell. Just keep in mind that you too live in a bubble with a certain mixture of doctrine and trade-offs.

reuben364··on Linux touchpad: preliminary project funding, survey results
I realize now that you were talking about changing types, which I didn't factor in. I guess what would happen is you would cascade the hot swapping, reloading anything which depends on the function for which the type has changed.
reuben364··on Linux touchpad: preliminary project funding, survey results
Replying because its too late to edit EDIT: I'm struggling to find the source connecting lenses to dynamical systems. I might have misremembered, and was pretty tired, so take that with a grain of salt.
reuben364··on The unreasonable effectiveness of declarative programming
I thought so too, but Haskell was an object of adoration and envy for me long enough for me to become hooked.

If Martians visited Earth, surely you'd want to learn their language. :)

reuben364··on Linux touchpad: preliminary project funding, survey results
So there are sort of several ideas floating in my head. Keep in mind, these are very loose and I am talking way out of my league here.

I said lenses, but the more general term is optics (still vague and unsearchable, I know). A certain representation of optics was popularized in Haskell by Edward Kmett partly as a way to solve the record access problem, but they are way more useful then that.

Lenses, in a context of programming, can sort of be seen as a vast purely functional generalization of l-values.

When you are manipulating affordances in a user interface, you can view it as manipulating part of larger state. That is something that fits very well into the framework of optics. A simple example would be a color picker using different color models. HSV and RGB are both views of the same object. A slider for each of hue, saturation, value, red, blue and green can be seen as a lens from color to a magnitude. By adjusting the slider, you change the state.

Some parts of a user interface are dynamical systems, i.e. evolve over time based on state and locally available actions. One can imagine a platformer game with changing player position, or a media player with a slider. FRP delves into this, but I'm not too familiar with the literature. I am vaguely aware that lenses can be connected to dynamical systems, but I don't understand it at all.

As far as reinterpreting code. In Haskell and typed functional programming in general, there is this tower of different abstractions you can use to describe different levels of reified computation (Functors, Applicatives, Arrows, Monads). You also get effects systems, which make it more tractable for the layman that doesn't want to read ω+1 monad tutorials.

In these abstractions, one can make "free" constructions, which sort of have the flavor of making the thing as syntactic as possible while still following the laws that must be upheld by the abstraction. This makes it possible to write code separately from the way it is interpreted.

I only have a vague feeling that these concepts will fit well together. Perhaps my head is too far in the clouds.

EDIT: As far as model view separation, that it is. But the idea is to stratify it even further. You have your larger state of the whole application in which you can increasingly select parts of the whole and manipulate them. The lens part not only captures the translation from the model to the view, but also from actions on the view to the model.

reuben364··on Linux touchpad: preliminary project funding, survey results
That's one thing I have been thinking about. I think Haskell and other statically typed functional programming languages would benefit from a more interactive REPL like experience for "non-pure" programming where you are sort of changing the wheels on a moving car.

This has a very reactive flavor, so I think you could have a sort of functional reactive approach where your hot-swappable definitions are represented as behaviours over time.

How to make that get out of your way until you actually want to swap things out, I have no clue. I think it will involve some sort of effect system, but I'm not sure if that will solve the problem.

reuben364··on Linux touchpad: preliminary project funding, survey results
One thing one my wish list of things that will probably never happen is an extensible EMACs, Jupyter hybrid with a full on highly extensible dependently typed programming language. By keeping the specification of the components as abstract as possible, one could reinterpret the same code to give a completely different and customizable user experience. Probably with a lens based GUI toolkit for interactive widgets.

I have no idea if it is possible, and maybe I should be the change I want to see in the world.

EDIT: I realize now this doesn't quite follow the conversation, but I wanted to get the thought out somewhere.

← PreviousPage 4 of 5Next →