2797: Actual Progress

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
Actual Progress
Slowly progressing from 'how do protons behave in relativistic collisions?' to 'what the heck are protons even doing when they're just sitting there?'
Title text: Slowly progressing from 'how do protons behave in relativistic collisions?' to 'what the heck are protons even doing when they're just sitting there?'

Explanation[edit]

An edge case is a situation, often in software engineering but also in other domains, that is rare and may need special handling and does not perform the way most of the situations do.

At the start of tackling a complex problem, somebody may come up with a simplified interpretation of it, see it as simple, and implement and even deploy a system that uses their interpretation. These partial (incorrect) and ingeniously useful solutions are called heuristics in software engineering. If the developer is unaware that their formation of the problem is incorrect, they may happily dive into edge cases hoping to hash them out and resolve them, only to uncover that the very underpinnings of their possibly-live system are based on false perceptions or logic and then often even be at a loss as to how it is working at all.

Similar issues can arise in the physical sciences. A few pieces of experimental data, taken under novel conditions, may not fit the currently-accepted model. Attempts to reconcile them may lead to the discovery that many other pieces of data, which previously had been taken to confirm that model, lead to problems when they are examined carefully. Ultimately, a better, more generally applicable model may be found. For example, Mercury's orbit isn't consistent with strictly Newtonian mechanics, a problem that resulted in many theories but which was ultimately resolved by Einstein's Theory of General Relativity. Extremely careful measurements of other planets' orbits would have revealed that they, too, don't conform to Newtonian mechanics; the effect is general, but most easily observed with Mercury because of its relative proximity to the sun. (More commonly, the few pieces of data that don't fit may be found to be invalid, a result of experimental error under the novel conditions. "They laughed at Galileo... but they also laughed at Bozo the Clown.")

At this point it may be the case that the developer is actually working on a cutting-edge research challenge, unaware that this is the case, and the problem space they have to grapple with is one that is actively being worked on, yet nobody has yet completely addressed. In 1425: Tasks, a naive boss asks an engineer to perform two tasks that the engineer gives wildly different estimates for the developmental timespan. Before the easy accessibility of research papers it was much less obvious when this was or was not happening. And today, when many historically very hard problems have many more well-known solutions, and many of the very hard problems that have been intractable in the past are demonstrating aggressive progress that anyone can step in and review, the situation is quite different and much more tangible.

Another quite common software engineering situation like the comic is when working with a codebase that has been rushed to market without organizing and modeling its underlying concepts well: “spaghetti code”. At first one may think they can enter the software and simply patch a fix, but past similar patches have made the parts needlessly intertwined and baked any heuristics in in an unmaintainable way.

The joke regarding “actual progress” is both sarcastic and possibly referring to how the most progress is made on a problem when its general structure and underpinnings are addressed directly: when it is better understood and its root causes engaged. This appears ironic when it means breaking apart the solution to unusability before rebuilding a better one, which is usually what happens here; this is called refactoring and is analogous to taking everything off the shelves of a slightly-messy room, making it very messy, before putting everything back in a new mess-free organization. In both situations if your new solution has a crucial mistake you end up with a much worse situation.

The title is similar to 1906: Making Progress which shares a similar structure of "I Started... But now, After..." but ends up with problems listed in a spreadsheet rather than more confusion.

The title text may have been partially inspired by the PBS Spacetime episode "Did AI Prove Our Proton Model WRONG?" released twelve days before this comic, which discusses how physicists don't have a proven accurate model for the internal structure of a proton at rest and that having an AI analyze collision data resulted in a model significantly different from human-made ones.

Transcript[edit]

[Cueball is sitting on an office chair at a desk and has his hand on a laptop. Ponytail is standing behind him.]
Cueball: When I started this morning, there were a few edge cases I was confused about.
[Panel of just Cueball sitting on the office chair.]
Cueball: But now, after a full day of research,
[Same scene as in the first panel, but Cueball has his hand on his lap.]
Cueball: I'm confused about all the regular cases, too.
Ponytail: Ah, actual progress!


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

So true! If the outliers look weird, it's often because you've misunderstood something about the whole set. ProphetZarquon (talk) 17:11, 3 July 2023 (UTC)

It may be good to start to ask whether your nice obedient little line is just a coincidence in your testing data. 172.71.26.159 17:22, 3 July 2023 (UTC)

By the time you've happily worked out why the strange exceptions aren't actually strange/exceptions, you realise that there's no real underlying reason that carefully regiments the 'clearly patterned' bits and that's just a pure artefact of data... 172.70.86.132 18:24, 3 July 2023 (UTC)
Related: You have two numbers which are supposed to be same but differs. Sure there is small bug in computing one of them ... and sure you find it, fix it ... and the difference became about twice as big. -- Hkmaly (talk) 20:10, 3 July 2023 (UTC)

When I read it, helped also by the title, I thought at scientific research more than software engineering. So I felt the explanation slightly off - not sure if I am alone. Vdm (talk) 22:12, 3 July 2023 (UTC)

For me it reminded me of something I was doing recently. Boiling down some text, within which were numeric values (allied to descriptors that related to what those numeric values were). Dealt with the the distinction between floating point and (intentionally, not just coincidentally) integer numbers in various places, but then had to deal with various other notations. The first surprise was negative small values (should have been ~0, perhaps, for 0<=x<MAX, but smudged and badly re-normalised before getting into my hands), then there was exponential notations (multiple types), and then there was a set like 4.30k, 8.05M, 5.46T, 8.12Qu, 3.67Qi (had to presume Short Scale was in use, despite being the more illogical version) which I only discovered by checking for word-boundary exceptions for values when checking there weren't any currency or unit-of-measure aspects I needed to be aware of. When I process what I've extracted a bit more, no doubt I'll find other things to add to my edge-condition checklist. But it's already been 'fun' getting past the hurdles I know about!
Now, this isn't really what I think the comic is about (at its core, even if closely related), and I think the Explanation is a little too bloated/all-over-the-place at the momemt already so I won't try to add anything from this experience in there as well. Just recording my own prosaic tale of recent experience, which probably says more about my bad choice of source data than anything else... 172.70.86.73 07:12, 4 July 2023 (UTC)
Agreed on the bloated explanation - I don't think the third paragraph is doing anything to explain the comic at all at the moment. 141.101.99.72 11:52, 4 July 2023 (UTC)


Such a common scenario. In code you often wonder once you isolate buggy behavior: Why does anything work at all? It is usually because another bug cancels out this bug for the common cases. Not entirely sure what two bugs cancelling eachother out would mean in the realm of particle physics :D 162.158.95.80 11:08, 5 July 2023 (UTC)

In QFT applied to code, with the introduction of a photon, bugs and antibugs can be generated spontaneously, but then cancel each other out, producing a photon. This type of activity makes for virtual bugs and virtual antibugs.