Live data from Hacker News

A three-page paper that shook philosophy, with lessons for software engineers

jsomers.net

51–60 of 185 posts

Re: A three-page paper that shook philosophy, with lessons for software engineers

#51
post #25

> A philosopher might say that these aren’t bona fide Gettier cases. True gettiers are rare. I beg to differ. Besides the examples in programming the author gave, I can very easily think of examples in medicine, police work (e.g. regarding suspects), accounting, and so on...

Well, why not write them down for us?!

As if they're difficult to derive on one's own?

You believe X has cancer because he has the symptoms and you can see an offending black spot on their X-ray.

The lab results say the black spot was just a cyst but X indeed has cancer in the same organ.

Re: A three-page paper that shook philosophy, with lessons for software engineers

#52
My own opinion is that knowledge is always relative to a perspective. It is only valid in a context.

Nothing is absolute.

Example:

1=1 is something i know is true cause i know the rules of mathematics. There is no absolute truth to that.

Re: A three-page paper that shook philosophy, with lessons for software engineers

#54
post #44

Earlier quoted context omitted.

Say you write some movement software. You expect that people will move forward, left, or right. You didn't expect people to try moving backward. People start moving backward, but the software happens to do the right thing due to how it was written. Is the software defective because of your missed expectation?

Yes, i would still classify the software defective. It did not reject backwards explicitly. Just because by accident it works (i.e., the consumer of the output doesn't care) doesn't mean the defect has gone away. To be not defective, the software has to explicitly reject input that it was not designed to handle. Imagine if the software updated with some changes, and the unknown input now produces an incorrect output.…

> To be not defective, the software has to explicitly reject input that it was not designed to handle.

In some cases that breaks forward capability. e.g. the case where there is an unknown XML tag. You could reject the tag or message. You'll end up rejecting all future change inputs.

If the whitelist of acceptable items is large, it may be acceptable to have a black list however if the above holds, you don't know what you don't know.

Re: A three-page paper that shook philosophy, with lessons for software engineers

#55

My own opinion is that knowledge is always relative to a perspective. It is only valid in a context. Nothing is absolute. Example: 1=1 is something i know is true cause i know the rules of mathematics. There is no absolute truth to that.

10+3 = 13 when talking about coconuts, but 10+3 = 1 when talking about time[1]

[1] In America anyways.

Re: A three-page paper that shook philosophy, with lessons for software engineers

#56
post #27
post #2

The "cow in the field" example reminds me of two heuristics I like: am I right for the wrong reason?; am I wrong for the right reason? Being right for the wrong reason is dangerous: it's not easy to spot, and it perpetuates false sense of security leaving "black swan events" unanticipated. This might occur during debugging as the article points out, or e.g. during A/B testing of a product. Bring wrong for the right r…

> Bring wrong for the right reason is just plain frustrating. what's an example of being wrong for the right reason? I can't think of any cases where this happens...

Nate Silver is widely seen as having forecast the election "wrong" because he said Trump had a 20% chance of winning. AIUI his position is that his model was right and 20% was an accurate probability.

Re: A three-page paper that shook philosophy, with lessons for software engineers

#57
>> He called them “gettiers” for short. So we used to talk about gettiers all the time, no doubt in part just because it felt clever to talk about them, but also because when you’re a programmer, you run into things that feel like Gettier cases with unusual frequency.

Sometimes I think that is what philosophers are doing - feeling clever - perhaps as a defense against some negative inner problem (psychology is an outgrowth of philosophy after all). The whole cow story stinks of telling someone "you're right, but you're also WRONG! Your perception of reality is BROKEN!". To me knowledge is simply having a model of the world that can be used to make useful predictions and communicate (and some other things). Aside from that, it doesn't matter if your model is "grounded in reality" until it fails to work for you, at which time it can be helpful to realize your knowledge (model) needs adjustment.

One way to resolving the authors first software issue would be to check a diff between what he committed and the previous production revision - this would quickly uncover the changes he "didn't make". This is an old lesson for me - what I changed may not be limited to what I think I changed. It's a lesson in "trust but verify". There are any number of ways to view it, but in the end we only care about ways that lead to desired outcomes weather they're "right" or not.

On a related note, I've found that software is one of the only places where there is a "ground truth" that can be examined and understood in every detail. It's completely deterministic (given a set of common assumptions). I've found the real world - and people in particular - to not be like that at all.

Re: A three-page paper that shook philosophy, with lessons for software engineers

#58
post #39

There's a much closer analogy from software development to the cow story. The cow story is confusing because the cow that you see (A) is fake, but the real one (B) you don't know about. So your belief is not a justified true belief because although the real cow exists, the one your knowledge refers (A) to isn't the real one (B). An intertemporal variant of this is race conditions. There have been lots of problems of…

If the real cow (B) was not present, your belief that there was a cow in the field would be justified but not true. Seeing a the fake cow (A) justifies your belief that there's a cow in the field. Adding a real cow (B) that you can't see doesn't remove the justification.

Good point, I've edited "justified" to the full phrase "justified true belief"

Re: A three-page paper that shook philosophy, with lessons for software engineers

#60
post #59

Note most gettier cases are plays on our intuitions: What feels like a pointer is actually a category. That is, it feels like it points to one, but it points to many. Like both examples given here: https://en.wikipedia.org/wiki/Gettier_problem .

For the C heads, you mean what feels like a pointer is actually an array? :-)
Post reply on HN