15 ms·
Gettiers in software engineering (2019)
- Animats 2y agoThe link to the actual paper [1] seems to be overloaded. [1] http://www-bcf.usc.edu/~kleinsch/Gettier.pdf http://www-bcf.usc.edu/~kleinsch/Gettier.pdf
- jacurtis 2y agoAlternative host [no paywall]: https://fitelson.org/proseminar/gettier.pdf https://fitelson.org/proseminar/gettier.pdf
- kortilla 2y agoMeh, these are just examples of the inability to correctly root cause issues. There is a good lesson in here about the real cause being lack of testing (the teammate’s DOM change should have never merged) and lack of monitoring (upstream mail provider failure should have been setting off alerts a long time ago). The changes only had adjacency to the causes and that’s super common on any system that has a few core pieces of functionality. I think the core lesson here is that if you can’t fully explain the root cause, you haven’t found the real reason, even if it seems related.
- DJBunnies 2y agoYeah why did he rebase unreleased code? And the “right” RC only has to be right enough to solve the issue.
- CleverLikeAnOx 2y agoAn old timer I worked with during my first internship called these kinds of issues "the law of coincidental failures" and I took it to heart. I try a lot of obvious things when debugging to ascertain the truth. Like, does undoing my entire change fix the bug?
- K0balt 2y agoYeah, good times. I just recently had one that was a really strong misdirection, ended up being 2 simultaneous other, non related things that conspired to make it look convincingly like my code was not doing what it was supposed to. I even wrote tests to see if I had found a corner-case compiler bug or some broken library code. I was half way through opening an issue on the library when the real culprit became apparent. It was actually a subtle bug in the testing setup combined with me errantly defining a hardware interface on an ancient protocol as an HREG instead of an IREG, which just so happened to work fine until it created a callback loop inside the library through some kind of stack smashing or wayward pointer. I was really starting to doubt my sanity on this one.
- foobarian 2y ago> corner-case compiler bug They say never to blame the compiler, and indeed it's pretty much never the compiler. But DNS on the other hand... :-)
- throwup238 2y agoThe joys of modbus PLCs, I take it?
- K0balt 2y agoAh, yes. But a roll- your own device with C++ on bare metal, so lots more fun. (we’ll need a few thousand of these, and the off the shelf solution is around 1k vs $1.50 for RYO ) By the way, the RISC V espressif esp32-C3 is a really amazing device for < $1. It’s actually cheaper to go modbus-tcp over WiFi then to actually put RS485 on the board like with a MAX485 and the associated components. Also does ZIGBEE and BT, and the espressif libraries for the radio stack are pretty good. Color me favorably impressed with this platform.
- JohnMakin 2y agoI wasn’t aware there was a term for this or that this was not common knowledge - for me I refer to them as “if I fix this, it will break EVERYTHING” cases that come up in my particular line of work frequently, and my peers generally tend to understand as well. Cause/effect in complex symptoms is of course itself complex, which is why the first thing I typically do in any environment is set up metrics and monitoring. If you have no idea what is going on at a granular level, you’ll quickly jump to bad conclusions and waste a lot of time aka $.
- K0balt 2y agoThis is horrifying, and needs a trigger warning lol. It gave me a sense of panic to read it. It’s always bad when you get so lost in the codebase that it’s just a dark forest of hidden horrors. When this kind of thing tries to surface, it’s a warning that you need to 10x your understanding of the problem space you are adjacent to.
- JohnMakin 2y agoI guess I’ve worked in a lot of ancient legacy systems that develop over multiple decades - there’s always haunted forests and swaths of arcane or forgotten knowledge. One time I inherited a kubernetes cluster in an account no one knew how to access and when finally hacking into it discovered troves of crypto mining malware shit. It had been serving prod traffic quietly untouched for years. This kind of thing is crazy common, I find disentangling these types of projects to be fun, personally, depending on how much agency I have. But I’m not really a software developer.
- namuol 2y agoThe surest way to get yourself into a mess like this is to assume that a sufficiently complex codebase can be deeply understood in the first place. By all means you can gain a lot by making things easier to understand, but only in service of shortcuts while developing or debugging. But this kind of understanding is not the foundation your application can safely stand on. You need detailed visibility into what the system is genuinely doing, and our mushy brains do a poor job of emulating any codebase, no matter how elegant.
- jayd16 2y agoHmm, are there better cases that disprove JTB? Couldn't one argue that the reliance on a view that can't tell papermache from a cow is simply not a justified belief? Is the crux of the argument that justification is an arbitrary line and ultimately insufficient?
- dherls 2y agoI was thinking that one solution might be to specify that the "justification" also has to be a justified true belief. In this case, the justification that you see a cow isn't true, so it isn't a JTB. Of course that devolves rapidly into trying to find the "base case" of knowledge that are inherent
- eynsham 2y agoThis and many other suggestions have been explored, and usually found wanting (see e.g. https://plato.stanford.edu/entries/knowledge-analysis/#NoFalsLemm https://plato.stanford.edu/entries/knowledge-analysis/#NoFal...).
- aithrowawaycomm 2y agoYes, the paper itself is much more unambiguous (and very short): https://courses.physics.illinois.edu/phys419/sp2019/Gettier.pdf https://courses.physics.illinois.edu/phys419/sp2019/Gettier.... These are correct but contrived and unrealistic, so later examples are more plausible (e.g. being misled by a mislabelled television program from a station with a strong track record of accuracy). The point is not disproving justified true belief so much as showing the inadequacy of any one formal definition: at some point we have to elevate evidence to assumption and there's not a one-size-fits-all way to do that correctly. And, similarly to the software engineering problems, a common theme is the ways you can get bitten by looking at simple and seemingly true "slices" of a problem which don't see a complex whole. It is worth noting that Gettier himself was cynical and dismissive of this paper, claiming he only wrote it to get tenure, and he never wrote anything else on the topic. I suspect he didn't find this stuff very interesting, though it was fashionable.
- abeppu 2y ago
- kronodeus 2y agoI usually just call these red herrings: https://en.wikipedia.org/wiki/Red_herring https://en.wikipedia.org/wiki/Red_herring
- codeulike 2y ago“I am sitting with a philosopher in the garden; he says again and again 'I know that that’s a tree', pointing to a tree that is near us. Someone else arrives and hears this, and I tell him: 'This fellow isn’t insane. We are only doing philosophy.” ― Ludwig Wittgenstein
- tucnak 2y agoI often wonder if LLMs would have made Wittgenstein cry...
- awanderingmind 2y agoI don't know, but I reckon he would have been unimpressed.
- tucnak 2y agoI would argue the opposite; LLM technology is the first viable means to computing "language games" as such, and quite in line with the late W. theory.
- pjc50 2y agoIt's remarkable how LLMs have skipped any kind of philosophical grounding for "how do we know that this output is valid?" and just gone straight to "looks good to me". Very postmodernist. Also why LLMs are going to turn us into a low-trust society. A tool for filling the fields with papier-mache cows.
- ben_w 2y ago> A tool for filling the fields with papier-mache cows. Cargo culting as a service.
- ndndjdjdn 2y agoThe scary thing is excellent advances in all the other AI/ML need to fake people: text to speech and back, yolo, video generation. The illusion might become the reality. We need a few generations to die (100 years time?) before we will shake of this need to even be human! Who is going to say no to a perfect memory implant. Now a never get dementia implant. And so on! Finally what is the cow even?
- barrystaes 2y agoWell this is a roundabout way of justified thinking about a belief that just happens to align with some actual facts..
- barrystaes 2y agoOn a more serious note: populist politicians seem to like making gettier claims; they cost a lot of time to refute and are free publicity. Aka the worst kind of fake news.
- mistermann 2y agoA rather ambitious claim considering the context!
- namuol 2y agoI always come back to this saying: “Debugging is the art of figuring out which of your assumptions are wrong.” (Attribution unknown)
- PaulDavisThe1st 2y agoAs long as "your assumptions" includes "I know what I am doing", then OK. But most people tend not to include that in the "your assumptions" list, and frequently it is the source of the bug.
- recursive 2y agoWhat if you never believed that in the first place?
- PaulDavisThe1st 2y agoThen you're good to ignore that as a possible source of the problem.
- mannykannot 2y agoThen, to be consistent, you should not trust either your deductions or even your choice of axioms. In other words, it looks like a form of solipsism.
- orbisvicis 2y agoYou can not know what you are doing and still trust in logic. But what world it would be if you could flip a coin on any choice and still survive! If the world didn't follow any self-consistent logic, like a Roger Zelazny novel, that would be fantastic. Not sure that qualifies as solipsism, but still. Would society even be possible? Or even life? Here, as long as you follow cultural norms, every choice has pretty good outcomes.
- mistermann 2y ago
- w10-1 2y agoThe "programmer's model" is their mental model of what's happening. You're senior and useful when you not only understand the system, but can diagnose based on a symptom/bug what aspect of the system is implicated. But you're staff and above when you can understand when your programming model is broken, and how to experiment to find out what it really is. That almost always goes beyond the specified and tested behaviors (which might be incidentally correct) to how the system should behave in untested and unanticipated situations. Not surprisingly, problems here typically stem from gaps in the programming model between developers or between departments, who have their own perspective on the elephant, and their incidence in production is an inverse function of how well people work together.
- hibikir 2y agoYou are defining valid steps in understanding of software, but attaching them to job titles is just going to lead to very deceptive perspectives. If your labeling was accurate, every organization I've ever worked at would at least triple the number of staff engineers than it does.
- PaulDavisThe1st 2y ago> true, because it doesn't make sense to "know" a falsehoood That's a problem right there. Maybe that made sense to the Greeks, but it definitely doesn't make any sense in the 21st century. "Knowing" falsehoods is something we broadly acknowledge that we all do.
- n4r9 2y agoCould you elaborate what you mean by that?
- PaulDavisThe1st 2y agoWe all carry around multiple falsehoods in our heads that we are convinced are true for a variety of reasons. To say that this is not "knowing" is (as another commenter noted) hair-splitting of the worst kind. In every sense it is a justified belief that happens to be false (we just do not know that yet).
- bee_rider 2y agoWhat exactly does it mean to know something then? As distinct from believing it. Just the justification, and then, I guess it doesn't have to be a very good justification if it can be wrong?
- PaulDavisThe1st 2y agoI think I would say that knowing means that your belief can resist challenges (to some degree) and that it is capable of driving behavior that changes others' beliefs. The strength of the justification is, I would suggest, largely subjective.
- n4r9 2y agoMy issue with this definition is that it includes deluded charlatans, can be applied to unfalsifiable (unknowable, even) propositions, and depends on the gullibility and cognitive biases of the general populace. So for example, Jesus "knew" that he was the son of God, even though a more rational interpretation is that he was mistaken in his own belief but charismatic enough to convince many others. (Please replace Jesus for another religion's prophet if you are Christian!) Also I don't think this definition fits with people's intuition. At least, certainly not my own. There are times where I realise I'm wrong about something I thought I knew. When I look back, I don't say "I knew this, and I was wrong". I say "I thought I knew this, but I didn't actually know it".
- rhelz 2y agoThe impossibility of solving the Gettier problem meshes nicely with the recent trend to Baysianism and Pragmatism. Instead of holding out for justified true belief and "Bang-Bang" either labeling them True or False, give them degrees of belief which are most useful for prediction and control.
- ars 2y agoI don't understand the Gettier problem. The example of the cow for example: You do not have a justified belief there is a cow there, all you can justify is that there is the likeness of a cow there. To be able to claim there is a cow there requires additional evidence.
- mistermann 2y ago> You do not have a justified belief there is a cow there, all you can justify is that there is the likeness of a cow there. Is this assertion not self-refuting though?
- rhelz 2y agoThe cow example is a confusing example; I like the clock example much better. You are in a school building, with hundreds of classrooms, and there is a clock on each wall. All of the clocks are working perfectly, except for one classroom where the clock is stuck at 2:02. Every other time you've been in that school building, the clocks have shown you the right time, so you feel very confident that the clocks on the wall are accurate. But this time, you happen to be in the room with the non-functioning clock. It says "2:02" but by great good fortune, it actually happens to be 2:02. So your belief is: 1. True. It actually is 2:02. 2. Justified. The vast majority of the time, if you see a clock on a wall in that building, it is working fine. But should we say that you know the time is 2:02? Can you get knowledge of the time from a broken clock? Of course not. You just got lucky. In order to count as knowledge, it has to be justified in the right way, which, alas, nobody has been able to specify exactly what that way should be. So far, nobody has come up with criteria which we can't find break in a similar way. // all you can justify is that there is the likeness of a cow there // If you see something which looks real, you are justified in believing it is real. If you see your friend walking into the room, sure, you've seen your friend's likeness in the room. But you are justified in believing your friend is in the room. So if you see something that looks like a cow in a field, you are justified in believing there is a cow in a field, even though looks may be deceiving.
- jldugger 2y agoAlso known as: "how did this ever work??"
- jstrieb 2y agoRelevant (deleted, as far as I can tell) tweet: > When I talk to Philosophers on zoom my screen background is an exact replica of my actual background just so I can trick them into having a justified true belief that is not actually knowledge. https://old.reddit.com/r/PhilosophyMemes/comments/gggqkv/gettier_it/ https://old.reddit.com/r/PhilosophyMemes/comments/gggqkv/get...
- CamperBob2 2y agoHmm. That seems like a better example of the problem than either of the examples at https://en.wikipedia.org/wiki/Gettier_problem https://en.wikipedia.org/wiki/Gettier_problem . The cases cited in the article don't seem to raise any interesting issues at all, in fact. The observer who sees the dark cloud and 'knows' there is a fire is simply wrong, because the cloud can serve as evidence of either insects or a fire and he lacks the additional evidence needed to resolve the ambiguity. Likewise, the shimmer in the distance observed by the desert traveler could signify an oasis or a mirage, so more evidence is needed there as well before the knowledge can be called justified. I wonder if it would make sense to add predictive power as a prerequisite for "justified true knowledge." That would address those two examples as well as Russell's stopped-clock example. If you think you know something but your knowledge isn't sufficient to make valid predictions, you don't really know it. The Zoom background example would be satisfied by this criterion, as long as intentional deception wasn't in play.
- Cushman 2y agoIt’s not super clear there, but those are examples of a pre-Gettier type of argument that originally motivated strengthening, and externalizing, the J in JTB knowledge— just like you’re doing! Gettier’s contribution — the examples with Smith — sharpens it to a point by making the “knowledge” a logical proposition — in one example a conjunction, in one a disjunction — such that we can assert that Smith’s belief in the premise is justified, while allowing the premise to be false in the world. It’s a fun dilemma: the horns are, you can give up justification as sufficient, or you can give up logical entailment of justification. But it’s also a bit quaint, these days. To your typical 21st century epistemologist, that’s just not a very terrifying dilemma. One can even keep buying original recipe JTB, as long as one is willing to bite the bullet that we can flip the “knowledge” bit by changing superficially irrelevant states of the world. And hey, why not?
- nmaley 2y agoGettier cases tell us something interesting about truth and knowledge. This is that a factual claim should depict the event that was the effective cause of the claim being made. Depiction is a picturing relationship: a correspondence between the words and a possible event (eg a cow in a field). Knowledge is when the depicted event was the effective cause of the belief. Since the paper mache cow was the cause of the belief, not a real cow, our intuitions tell us this is not normal knowledge. Therefore, true statements must have both a causal and depictional relationship with something in the world. Put another way, true statements implicitly describe a part of their own causal history.
- bbor 2y agoDumb counterpoint: if it’s not a true belief, is it a false negative or a false positive? Any third option I can think of starts with “true”… QED - proof by terminological convention!
- SuchAnonMuchWow 2y agoMathematicians already explored exactly what you describe: this is the difference between classical logic and intuitionistic logic: In classical logic statements can be true in and of themselves even if there as no proof of it, but in intuitionistic logic statements are true only if there is a proof of it: the proof is the cause for the statement to be true. In intuitionistic logic, things are not as simple as "either there is a cow in the field, or there is none" because as you said, for the knowledge of "a cow is in the field" to be true, you need a proof of it. It brings lots of nuance, for example "there isn't no cow in the field" is a weaker knowledge than "there is a cow in the field".
- ndndjdjdn 2y agoIt is a fascinating topic. I spent a few hours on it once. I remember vaguely that the logic is very configurable and you had a lot of choices. Like you choose law of excluded middle or not I think, and things like that depending on your taste or problem. I might be wrong it was 8 years ago and I spent a couple of weeks reading about it. Also no suprise the rabbit hole came from Haskell where those types (huh) are attracted to this more.foundational theory of computation.
- wslh 2y agoYou can also download the paper from [1] since the link on the article seems unavailable. [1] https://fitelson.org/proseminar/gettier.pdf https://fitelson.org/proseminar/gettier.pdf
- conformist 2y agoThis is very common in finance. Knowing when finance research that made right predictions with good justifications falls into the "Gettier category" or not is extremely hard.
- recursive 2y agoSeems somehow related to "parallel" construction of evidence.
- verisimi 2y agoIt absolutely is. A fake cow or whatever, provides the evidence for justified belief.
- lifeisstillgood 2y agoOh this is such a better and more useful idea than some other common ones like “yak shaving” or DRY Love it
- akoboldfrying 2y agoI think those other two are also very useful. I've actually had a lot of traction with introducing "yak shaving" in everyday life situations to non-programmers -- it applies to all kinds of things. EDIT: Deleted paragraph on DRY that wasn't quite right.
- hamandcheese 2y agoI believe that schrodinger's cat also applies to software bugs. Every time I go looking, I find bugs that I don't believe existed until I observed them.
- FigurativeVoid 2y agoI have similar belief, but only when it comes to bugs that make me look foolish. The more likely a bug is to make me look dumb, it will only appear as soon as I ask for help.
- orbisvicis 2y agoThe bugs that always disappear when I try to demonstrate them to others - my favorite. Reminds me of the "Tom Knight and the Lisp Machine" koan. This is largely true, but I remember a failing piece of authentication hardware that I didn't understand but was convinced was failing. Every time I called someone over it would work, so I couldn't get it replaced. Eventually the failure rate got so high that everyone agreed the damn thing had failed, "dead as a brick". But until then I was SoL. What are the chances that something 99% towards "dead as a brick" would always work around a superior.
- tshaddox 2y agoGettier cases are fun, although the infinite regress argument is a much clearer way to show that JTB is a false epistemology.
- cratermoon 2y agoQuestion I like to ask my colleagues. Suppose you have a program that passes all the tests. Suppose also that in that program there is a piece of code performs an operation incorrectly. The result of that operation is used in another part of the code that also performs an operation incorrectly, but in such a way that the tested outcome is correct. Does the code have 0 defects, 1 defect, or 2 defects?
- userbinator 2y agoI can understand 0 and 2, but what's 1? The "I don't know how to count" answer?
- Izkata 2y agoThe second part could instead be more like "detects an edge case and handles it, accidentally working around the first defect".
- cratermoon 2y agoIt could be counted as a single defect because both pieces of code must be corrected to keep the test happy.
- skybrian 2y agoThis seems to essentially be saying that coincidences will happen and if you’re fooled by them, sometimes it’s not your fault - they are “justified.” But they may be caused by enemy action: who put that decoy cow there? I guess they even made it move a little? How careful do you have to be to never be fooled? For most people, a non-zero error rate is acceptable. Their level of caution will be adjusted based on their previous error rate. (Seen in this sense, perfect knowledge in a philosophical sense is a quest for a zero error rate.) In discussions of how to detect causality, one example is flipping a light switch to see if it makes the light go on and off. How many flips do you need in order to be sure it’s not coincidence?
- bhickey 2y ago> How careful do you have to be to never be fooled? This is where Contextualism comes into play. Briefly, your epistemic demands are determined by your circumstances. https://plato.stanford.edu/entries/contextualism-epistemology/ https://plato.stanford.edu/entries/contextualism-epistemolog...
- nighthawk454 2y agoSeems like the terminology of calling it a ‘true’ belief led to some confusion. Of course there is an huge difference between evidence and proof. Correlation is not causation, Godel’s incompleteness theorem, all abstractions are leaky, etc. Desperation to ‘know’ something for certain can be misleading when coincidence is a lot more common than proof. Worse yet is extending the feeling of ‘justified’ to somehow ‘lessen’ any wrongness, perhaps instead of a more informative takeaway.
- ern 2y agoWould a merge instead of a rebase have made it easier to find the bug? (Serious question)
- salomonk_mur 2y agoYes, most likely. Rebase hides the fact the 2 changes happened separately, a merge would make it much easier to see the different avenues that may lead to the bug. We purposefully try not to do rebases in my team for this reason.
- IAmLiterallyAB 2y agoI'm not sure I follow, do you have an example where merging makes things more obvious?
- Izkata 2y agoIn this case it would not, you can see the commits between tag A and tag B either way. He simply didn't bother checking, either that there was no bug after rebasing or that the commits he'd rebased onto hadn't been released yet.
- orbisvicis 2y agoI'm not sure I see the big deal. Justification is on a scale of 0 to 1, and at 1 you are onmiscient. We live in a complicated world; no one has time to be God so you just accept your 0.5 JTB and move on. Or for the belief part, well, "it's not a lie if you believe it". And as for the true bit, let's assume that there really is a cow, but before you can call someone over to verify your JTB, an alien abducts the cow and leaves a crop circle. Now all anyone sees is a paper-mache cow so you appear the fool but did have a true JTB - Schroedinger's JTB. Does it really matter unless you can convince others of that? On the flip side, even if the knowledge is wrong, if everyone agrees it is true, does it even matter? JTB only exist to highlight bad assumptions, like being on the wrong side of a branch predictor. If you have a 0.9 JTB but get the right answer 0.1 times and don't update you assumptions, then you have a problem. One statue in a field? Not a big deal! * * Unless it's a murder investigation and you're Sherlock Holmes (a truly powerful branch predictor).
- orbisvicis 2y agoedit: Then there's the whole "what is a cow" thing. Like if you you stuffed a cow carcass with a robot and no one could tell the difference, would that still be a cow? Or what if you came across a horrifying cow-horse hybrid, what would you call that? Or if the cow in question had a unique mutation possessed by no other cow - does it still fit the cow archetype? For example, what if the cow couldn't produce milk? Or was created in lab? Which features are required to inherit cow-ness? This is an ambiguity covered by language, too. For example, "cow" is a pejorative not necessarily referring to a bovine animal. edit: And also the whole "is knowledge finite or infinite?". Is there ever a point at which we can explain everything, science ends and we can rest on our laurels? What then? Will we spend our time explaining hypotheticals that don't exist? Pure theoretical math? Or can that end too?
- yldedly 2y agoYou've called J and T into question, so let's do B as well. Physicists know that QM and relativity can't be true, so it's fair to say that they don't believe in these theories, in a naive sense at least. In general anyone who takes Box' maxim that all models are wrong (but some are useful) to heart, doesn't fully believe in any straightforward sense. But clearly we'd say physicists do have knowledge.
- tottenhm 2y agoI enjoy this metaphor of the cow and the papier-mâché. Presumably, there is a farmer who raised the cow, then purchased the papier-mâché, then scrounged for a palette of paints, and meticulously assembled everything in a field -- all for the purpose of entertaining distant onlookers. That is software engineering. In Gettier's story, we're not the passive observers. We're the tricksters who thought papier-mâché was a good idea.
- zmix 2y agoFrom the examples he mentions, aren't these just "race conditions"?
- nanna 2y agoMaybe it shook analytic philosophy, or some subdiscipline thereof, but this really was not registered beyond that within philosophy. Analytic philosophy likes to imagine itself to be philosophy propper, which is nonsense. It's just an over confident, aggressively territorial branch which hogs all the resources, even though the majority of students yearn for the richness and breadth of something more akin to what is today going by the moniker of Post-Kantian Philosophy (formerly Continental or Modern European philosophy).
- tedheath123 2y agoWhich texts would you recommend students read to learn about Post-Kantian philosophy?
- kreyenborgi 2y agoThe non-bovine examples are in a way more complex (but also more common), since they involve multiple possible causes for an event. In software engineering, bugs and outages and so on are not just caused by lack of testing, but lack of failsafes, lack of fallbacks, coding on a Monday morning, cosmic background radation, too many/few meetings, etc. etc. And it's hard to pinpoint "the cause" (but perhaps we shed some light on a graph of causes, some of which may be "blocked" by other causes standing in the way). Are there any good examples of gettiers in software engineering that don't rely on understanding causality, where we're just talking about "what's there" not explaining "how it got there"?
- yak90 2y agoI would even say the two real-life examples given in the blog are not Gettier cases at all. Gettier is about the cause of the "knowledge," not about knowledge of the cause. For the autofocus example, if the statement in question was "my patch broke the autofocus," it would not be Gettier because it is not true (the unrelated pushed changes did); if the statement in question was "my PR broke the autofocus," it would not be Gettier because it is JTB, and the justification (it was working before the PR, but not after) is correct, i.e., the cause of the belief, the perception, and deduction, are correct; Same if the statement in question was "the autofocus is broken." It would be Gettier if the person reporting the bug was using an old (intact) version of the app but was using Firefox with a website open in another window on another screen, which was sending alerts stealing the focus. The most common example of true Gettier cases in software dev is probably the following: A user reports a bug but is using an old version, and while the new version should have the bug fixed, it's still there. The statement is "the current version has the bug." The reporter has Justified Belief because they see the bug and recently updated, but the reporter cannot know, as they are not on the newest version.
- oersted 2y agoIt's likely that I'm wrong, I need to look deeper into it. But isn't the paper-mache cow case solved by simply adding that the evidence for the justification also needs to be true? The definition already requires the belief to be true, that's a whole other rabbit hole, but assuming that's valid, it's rather obvious that if your justification is based on false evidence then it is not justified, if it's true by dumb luck of course it doesn't count as knowing it. EDIT: Okay I see how it gets complicated... The evidence in this case is "I see something that looks like a cow", which I guess is not false evidence? Should your interpretation of the evidence be correct? Should we include into the definition that the justification cannot be based on false assumptions (existing false beliefs)? I can see how this would lead to more papers. EDIT: I have read the paper and it didn't really change my view of the problem. I think Gettier is just using a sense of "justified" that is somewhat colloquial and ill defined. To me a proposition is not justified if it is derived from false propositions. This kind of solves the whole issue, doesn't it? To Gettier it is more fuzzy, something like having reasonably sufficient evidence, even if it is false in the end. More like "we wouldn't blame him for being wrong about that, from his point of view it was reasonable to believe that". I understand that making claims of the absolute truthfulness of things makes the definition rather useless, we always operate on incomplete evidence, then we can never know that we know anything (ah deja vu). But Gettier is not disputing the part of the definition that claims that the belief needs to be true to be known. EDIT: Maybe the only useful definition is that know = believe, but in speech you tend to use "he knows P" to hint that you also believe P. No matter the justification or truthfulness. EDIT: I guess that's the whole point that Gettier was trying to make: that all accepted definitions at the time were ill-defined, incomplete and rather meaningless, and that we should look at it closer. It's all quite a basic discussion on semantics. The paper is more flamebait (I did bite) than a breakthrough, but it is a valid point.
- kijin 2y agoIndeed, there needs to be some sort of connection between the truth and the justification, not just "true && justified". The problem is that when you're working at such a low level as trying to define what it means to know something, even simple inferences become hellishly complicated. It's like trying to bootstrap a web app in assembly.
- therein 2y agoI just called it a red herring or a false signal and everyone understood what I meant.
- oersted 2y agoThe link to the paper seems to be down, here's an alternative one. https://fitelson.org/proseminar/gettier.pdf https://fitelson.org/proseminar/gettier.pdf It's really worth a read, it's remarkably short and is written in very plain language. It takes less than 10 mins to go through it.
- mihaic 2y agoAfter Godel published his landmark incompleteness proof, that a logical system can't be complete and also without any internal inconsistencies, I would have expected this to trickle into philosophical arguments of this type. I see no practical usefulness in all of these examples, except as instances of the rule that you can get correct results from incorrect reasoning.
- dist-epoch 2y agoPhilosophy is quite far away from pure math for Godel's argument to really matter.
- mihaic 2y agoWhy though? You lose quite a bit of credibility when you say that theorems that apply to any system of logic don't apply to you in any way.
- dist-epoch 2y agoIf philosophy was just about logic, it would be called math, wouldn't it. But it's also about fuzzy stuff which doesn't follow the A or not A logic.
- mjburgess 2y agoGodel's theorem is irrelevant to systems of concepts, conceptual analysis, or theorising in general. It's narrowly about technical issues in logic. It has been "thematically appropriated" by a certain sort of pop-philosophy, but it says nothing relevant. Philosophy isnt the activity of trying to construct logical embeddings in deductive proofs. If any one ever thought so, then there's some thin sort of relevance, but no one ever has.
- rnhmjoj 2y agoNote that Gödel's incompleteness theorems do not apply to just any system of logic: they are about particular formal systems that can prove certain facts about the arithmetics of integers. So, for them to fail, it doesn't even take a non-mathematical formal system, just something that has nothing to do with natural numbers, for example, Euclidean geometry, which happens to be fully decidable.
- williamdclt 2y agoPhysics has kinda-solved what it means to know something. - JTB is not enough, for something to be “true” it needs _testability_. In other words, make a prediction from your knowledge-under-test which would be novel information (for example, “we’ll find fresh cow dung in the field”). - nothing is really ever considered “true”, there’s only theories that describe reality increasingly correctly In fact, physics did away with the J: it doesn’t matter that your belief is justified if it’s tested. You could make up a theory with zero justification (which doesn’t contradict existing knowledge ofc), make predictions and if they’re tested, that’s still knowledge. The J is just the way that beliefs are formed (inference)
- diggan 2y agoWhy did the physicist stop hanging out with philosophers? Because every time they said, "I've found the absolute truth," the philosophers just replied, "Only in your frame of reference!"
- PaulRobinson 2y ago"Testability" to me sounds like a type of "justified" - I can be justified for many reasons, and testability is just one of those. But there are reasons where I might be justified but where testability is impossible. For example, if I toss a coin and it comes up heads, put the coin in my pocket and then go about my day, and later on say to somebody "I tossed a coin earlier, and it came up heads", that is a JTB, but it's not testable. You might assume I'm lying, but we're not talking about whether you have a JTB in whether I tossed a heads or not, we're talking about if I have one. There are many areas of human experience where JTB is about as good as we are going to get, and testability is off-limits. If somebody tells me they saw an alien climb out of a UFO last night, I have lots of reasons to not believe them, but if this a very trustworthy individual who has never lied to me about anything in my decades of experience of knowing them, I might have a JTB that they think this is true, even if it isn't. But none of it is testable. Physics - the scientific method as a whole - is a superb way to think about and understand huge swathes of the World, but it has mathematically proven limits, and that's fine, but let's not assume that just because something isn't testable it can't be true.
- mistermann 2y ago
- abathologist 2y agoThe hubub around the Gettier paper is surely among philosophy's most shameful moments.
- ndndjdjdn 2y agoThe problem is the word "know" being overloaded. First person know is belief. To some extent: this is just faith! Yes we have faith that the laws of physics wont change tomorrow, or we remember yesterday happened etc. Science tries to push that faith close to fact by verifying the fuck out of everthing. But we will never know why anything... The other "know" is some kind of concept of absolute truth and a coincidence that what someone belives matches this. Whether that coincidence is chance or astute observations or in the paper's case: both.
- EasyMark 2y agoMaybe, but it’s still a useful overload. No one wants to be pedantic every time they say they know something. It’s more of a spectrum which is really my own overloaded expression. My other one is “it’s a probabilistic matter, there’s no absolute here”
- EVa5I7bHFq9mnYK 2y agoSo the statement is "I know every knowledge is a probabilistic spectrum". Sounds a liar paradox to me.
- dsr_ 2y ago[Among the problems with] Justifed True Beliefs being "knowledge" is that humans are very bad at accurately stating their beliefs, and when they state those beliefs, they often adopt the inaccurate statement as the actual belief. Let's take the obscured cow example. Nobody outside the confines of a philosophy experiment believes that there is a cow in the field. They believe that they see something which looks like a cow (this is justified and true) and they also believe, based on past evidence, that what they are seeing is a cow (this is justified but not, in this special case, true.) But if you play this joke on them repeatedly, they will start to require motion, sound, or a better look at the cow shaped object before assigning a high likelihood of there being an actual cow in the field that they are observing. They will also ask you how you are arranging for the real cow to always be conveniently obscured by the fake cow. Unsurprisingly, gaining additional evidence can change our beliefs. The phenomenon of a human gaining object permanence is literally the repeated updating of prior possibility estimations until we have a strong base estimation that things do not cease to exist when we stop observing them. It happens to all of us early on. (Bayes' Theorem is a reasonable approximation of mental processes here. Don't conclude that it accurately describes everything.) The papier-mache cow simulation is not something we normally encounter, and hypothesizing it every time is a needless multiplication of entities... until you discover that there is a philosophical jokester building cow replicas. Then it becomes a normal part of your world to have cow statues and cows in fields. Now, software engineering: We hold models in our brains of how the software system works (or isn't working). All models are wrong, some are useful. When your model is accurate, you can make good predictions about what is wrong or what needs to be changed in the code or build environment in order to produce a desired change in software behavior. But the model is not always accurate, because we know: - the software system is changed by other people - the software system has bugs (because it is non-trivial) - even if the software system is the same as our last understanding of it, we do not hold all parts of the model in our brains at the same weights. A part that we are not currently considering can have effects on the behaviour we are trying to change. Eventually we gain the meta-belief that whatever we are poking is not actually fixed until we have tested it thoroughly in practice... and that we may have introduced some other bug in the process.
- mjburgess 2y agoBayes theorem isnt a reasonable approximation, because it isnt answering the question -- it describes what you do when you have the answer. With bayes, you're computing P(Model|Evidence) -- but this doesnt explain where Model comes from or why Evidence is relevant to model. If you compute P(AllPossibleModels|AllSensoryInput) you end up never learning anything. What's happening with animals is that we have a certain, deterministic, non-bayesian primitive model of our bodies from which we can build more complex models. So we engage in causal reasoning, not bayesian updating: P(EvidenceCausedByMyBody| do(ActionOfMyBody)) * P(Model|Evidence)
- nmeofthestate 2y agoThis makes me think of the "Person unimpressed by Place | person amazed by Place (Japan)" meme. In this case it feels like "Person unimpressed by basic concept | person amazed by basic concept (Philosophy)".
- rjrodger 2y agoGood to have a name for this! My favourite debugging technique is "introduce a known error". This validates that your set of "facts" about the file you think you're editing are actually facts about the actual file you are editing. For example: is the damn thing even compiling?
- meowface 2y agoI rely on this one a lot. Can save a ton of time that would otherwise be wasted.
- merryocha 2y agoI was a philosophy major in college and semantic quibbling over Gettier problems was popular while I was there. I have always believed that Gettier's popularity was due to the fact that the paper was only three pages, and therefore it was the only paper that the academics actually read to the end. I never thought there was anything particularly deep or noteworthy about the problem at all - it is fundamentally a debate over the definition of knowledge which you could debate forever, and that's exactly what they were doing - arguing about the definition of knowledge, one 30-page paper at a time.
- artursapek 2y agoI was going to say, I don’t even understand how the second example in this post is a gettier. He thought one event caused the issue to start, but a different event did instead. And they happened around the same time. Ok? This doesn’t seem very philosophical to me.
- Maxatar 2y agoThat's what a gettier is, it's when you have a justified true belief about a proposition but the justification is merely coincidental. You were still justified to believe the proposition, the proposition is still true, and so under the "justified, true, belief" model of knowledge you would be considered to have known the proposition, and yet as this example and others demonstrate, that's not really what we'd consider to be knowledge, indicating that knowledge is more than justified, true, belief. Whether you agree or disagree is a separate matter and something you can discuss or ponder for 5 minutes. The article is about taking a somewhat interesting concept from philosophy and applying it to a routine software development scenario.
- artursapek 2y agoRight but merely what time two events occurred doesn’t seem like enough to “justify” a belief. It can be a suspicion but that’s about it.
- jerf 2y ago
- nickdothutton 2y ago> “I started poking around, only to discover that I couldn't seem to get the correct behavior back. No matter what code I changed, which lines I commented out“ Hello darkness my old friend…
- d--b 2y agoThe original name of Genius was RapExegesis, which only confirms the main point of the article: that Genius' founders were mostly pedantic Yale grads. /s
- silent_cal 2y agoOne way out is to just admit that "justified true belief" is not a satisfactory definition of knowledge. I know that's not really the point of this article, I'm just saying.
- yyyfb 2y agoReminds me of "how did this ever work in the first place" bugs. Something that used to work stops working, you look into it, and it seems that the thing looked broken to begin with, but by some lucky miracle something was making it work.
- visarga 2y agoKnowledge and truth are "centralized" concepts. I prefer "models" which don't have such issues, all models are imperfect and provisional, and there are many models for the same process. Knowledge and truth have a way to lead to endless debates, while models are better understood in their limitations and nobody claims they can reach perfection. In programming we call them abstractions and we know they are always leaky. I think there are plenty of philosophical problems that emerge from our desire to describe things in centralized ways. Consciousness, understanding and intelligence are three of them. I prefer "search" because it is decentralized, and cover personal/inter-personal and social domains. Search defines a search space unlike consciousness which is silent about the environment and other people when we talk about it. Search does what consciousness, understanding and intelligence are for. All mental faculties: attention, memory, imagination, planning - are forms of search. Learning is search for representation. Science is search, markets are search, even DNA evolution and protein folding are search. It is universal and more scientific. Search removes a lot of the mystery and doesn't make the mistake to centralize itself in a single human.
- goatlover 2y agoBut search is a functional term, while consciousness is experiential. Deep philosophical problems exist because there are very puzzling things about existence. Changing terms doesn't make that puzzlement go away.
- ajuc 2y agoThese things happen very often in programming because programming has feedback loops. If there's a bug - things on other levels will adapt to that bug, creating a "gettier" waiting to happen. Other feedback-related concept is false independence. Imagine a guy driving a car over a hilly road with 90 mph speed limit. The speed of his car is not correlated with the position of the foot on the gas pedal (it's always 90 mph). On the other hand the position of the gas pedal and the angle of the road is correlated. This is example popular in macroeconomics (to explain why central bank interest rates and inflation might seem to be independent).
- csours 2y agoPuttiers: When a junior engineer fixes something, but a different error is returned, so they cannot tell if progress was made or not. *** justified: in the sense of deriving from evidence true: because it doesn't make sense to "know" a falsehoood belief: i.e., a proposition in your head *** Justified: there is an error message true: there is an error condition belief: the engineer observes the message and condition --- Where's my cow? Are you my cow? [0] 0: https://www.amazon.com/Wheres-My-Cow-Terry-Pratchett/dp/0060872675 https://www.amazon.com/Wheres-My-Cow-Terry-Pratchett/dp/0060...
- dang 2y agoDiscussed at the time (of the article): A three-page paper that shook philosophy, with lessons for software engineers - https://news.ycombinator.com/item?id=18898646 https://news.ycombinator.com/item?id=18898646 - Jan 2019 (179 comments)
- pugworthy 2y agoWhen wondering if there was some dumb programming joke about "settiers" to go along with "getteirs" it dawned on me that there's a certain gettier nature to Get/Set encapsulation. Suppose you've got a class library with no source, and the documentation defines a get method for some calculated value. But suppose that what the get method actually does is return an incorrectly calculated value. You're not getting the right calculated value, but you're getting a calculated value none the less. But then finally suppose that in the same code is the right calculated value in unreachable code or an undocumented method. On the one hand, you have a justified true belief that "the getter returns a calculated value": (1) you believe the getter returns a value; (2) that belief didn't come from nowhere, but is justified by you getting values back that look exactly like calculated values; (3) and the class does, in fact, have code in it to return a correctly calculated value.
- lapphi 2y agoPoliticians all across the globe know and utilize this concept
- thewileyone 2y agoRecently experienced this. Business users were reporting an issue in a system and were demanding an bug-fix. After reviewing their observations and stepping through the issue together, turns out the root cause was something completely unexpected that was in the background. Saved the tech team time chasing from a wild goose.
- onursurme 2y agoToday, I encountered an issue where the modal's close button appeared to be unresponsive. Upon reviewing the modal and the button, everything seemed to be set up correctly, yet clicking the button didn’t close the modal. I later realized that multiple instances of the same modal had been opened. When I clicked the close button, only the topmost modal closed, leaving the others still visible underneath.