On my model, it’s a matter of basically anything that turns Bits into Its being kinda cursed, especially if whatever process lacks human actuation or even oversight and isn’t done to truly exacting standards. Printing is an example of this; 3D printing and general CNC is another; graphic design (and the depths of what a color is) is a third. I’m thinking of the kind of thing you might find on r/shittyrobots as well; a minimal non-example might be polypeptide/oligonucleotide preparation, though I’m not totally clear on the workflow there or how much human labor is involved.
My gears-level model here is most starkly illustrated by 3d printing—something about the physical object creation might change, or be underspecified, or rely on shoddily-made connectors of some kind, and in any case, the actual machine that does the actuating isn’t set up to check for failures during workflow or indeed do much more than the simple actuation and an initial calibration step. On top of that, the thing goes from being data which is everywhere and wherever you want it, to being a specific thing in a specific place; often you don’t even get to have the affordance of knowing in advance which place it is. Possibly even the yakshaving you notice is a matter of some kind of associated ugh field.
I definitely agree with everything that turns Bits to Its being kinda cursed. I think the natural phenomenon boundary is more general.
Here are some other examples of things which feel terrible in a qualitatively-similar way to printing:
Dealing with the Department of Motor Vehicles or similar bureaucracies.
Working on a mature and messy/poorly designed codebase.
Making a finicky machine work (regardless of whether any Bits are involved).
One piece of what makes these feel similar is recursion—I go on a subquest to solve one subproblem, and that triggers a subsubquest to solve a subsubproblem, etc. One thing I notice about the examples is that the problems maybe typically have to do with assumptions at interfaces—e.g. the printer being out of paper isn’t really about “Bits to Its”, it’s about a finicky machine having been designed with some assumptions about its working environment and those assumptions not always being satisfied.
Anyone who knows enough to even begin to think about doing anything about it, knows enough to not have the problem.
Making it just work is actually a hard problem. Codebases naturally get messy when big, and are born with ontology skew to the eventual ontology. Machines have to be operated with a conscious touch, and therefore the human has to interface with them.
Legacy systems, especially multiple. E.g. your poor printer is supposed to interface with a huge range of computing systems / your poor computing system is supposed to interface with a huge range of printers.
Sure someone could put a ton of effort into making the last mile smoother, but who’s incentivized to do that? The printer does the hard part of printing, what more do you want.
Relatedly, I often feel like I’m interfacing with a process that responded to every edge case with patching. I imagine this is some of what’s happening when the poor printer has to interface with a ton of computing systems, and also why bureaucracies like the DMV seem much more convoluted than necessary. Since each time an edge case comes up the easier thing is to add another checkbox/more red tape/etc, and no one is incentivized enough to do the much harder task of refactoring all of that accretion. The legal system has a bunch of this too, indeed I just had to sign legal documents which were full of commitments to abstain from very weird actions (why on Earth would anyone do that?). But then you realize that yes, someone in fact did that exact thing, and now it has to be forever reflected there.
What this sounds like to me is a system, where all of the parts are designed cleverly with the assumption that their costs are going to be amortized, but because the current reality isn’t fitting the original assumptions, you’re hitting cache misses and full cost on every single operation
Hm. So it’s some larger problem of which the Curse of It From Bit is a subcluster, then? If I’ve understood you right, this is also something I’ve spent time thinking about by way of finding them with my face. Something like… some unfeeling machine/system/structure that fails to live up to its own spec, or which has a bad spec or no spec at all, and which makes that state of affairs your problem, you silly goose who wants to actually do things, you. There’s the flavor of that thing from Zen and the Art of Motorcycle Maintenance where there’s this tiny trivial-feeling problem that humiliates you with a combination of feeling trivially small while nonetheless demanding close attention and deep understanding by way of being a critical blocker to solving whatever problem, I think? I think that the yakshaving bit is downstream of the spec failure piece—it seems like a common failure mode of degraded systems/designs.
The ways that printing and 3d printing are cursed feel different, to me.
My expectation is that if I manage to give a printer any instructions at all, it usually prints the thing I expect. If not, it’s usually because it’s out of paper or (more rarely) ink/toner. If it has raw materials and receives instructions, I expect it to print a document that looks substantially like I expect. But “trying to give it any instructions at all” may well be an exercise in frustration.
With my 3d printer, giving it instructions hasn’t been the hard part. (It’s maybe not quite straightforward. You need a microSD card, formatted correctly, with a .gcode file, and I can see those feeling cursed to someone, but they’re the kinds of problems I know how to solve. Then you put the card in the printer and select it using the sufficiently-intuitive interface on the printer.) The hard part is that the instructions I give it don’t reliably result in a physical artifact that looks or functions like I intended. Airflow, ambient temperature, properties of my filament, bed adhesion, calibration. There’s too much that can vary in the environment, and those differences can mean I need to give my printer slightly different instructions (like different nozzle or bed temperature, more supports, slower speed).
2d printers, in my experience, seem to have solved that kind of problem. Though I imagine professional printers have exciting problems that I don’t.
(John’s blank page 1 is an admittedly weird case here, but “printing a blank page” is still less surprising than, say, “oops, near the top of the page I printed a black area that was too large, and that caused the paper to skip 3mm up higher than the printer thought it was, to fix that next time I need to make sure the printer slows down in that area, or inject some subtle yellow dots”.)
(Maybe part of the difference here is “printing at some point on the paper is independent of printing at some other point”? There might be calibration errors, that mean every point is slightly offset or slightly the wrong color, but because they affect everywhere equally I’m unlikely to notice them. And there might be random errors, where ink is fired slightly too late and a specific red dot is in slightly the wrong place. But I don’t expect that red dot to cause the next line to also be in the wrong place. With a 3d printer, a missing or unexpected bit of plastic causes the next bit of plastic to be in an unexpected place too, so the random errors compound, sometimes into a goopy blob. Part of the point of printing a skirt is to avoid this: the perimeter of the first layer is some of the most likely plastic to be not-where-expected, but if it’s in a skirt it doesn’t get printed on top of so that’s okay.)
Oh! I have thoughts about this one!
On my model, it’s a matter of basically anything that turns Bits into Its being kinda cursed, especially if whatever process lacks human actuation or even oversight and isn’t done to truly exacting standards. Printing is an example of this; 3D printing and general CNC is another; graphic design (and the depths of what a color is) is a third. I’m thinking of the kind of thing you might find on r/shittyrobots as well; a minimal non-example might be polypeptide/oligonucleotide preparation, though I’m not totally clear on the workflow there or how much human labor is involved.
My gears-level model here is most starkly illustrated by 3d printing—something about the physical object creation might change, or be underspecified, or rely on shoddily-made connectors of some kind, and in any case, the actual machine that does the actuating isn’t set up to check for failures during workflow or indeed do much more than the simple actuation and an initial calibration step. On top of that, the thing goes from being data which is everywhere and wherever you want it, to being a specific thing in a specific place; often you don’t even get to have the affordance of knowing in advance which place it is. Possibly even the yakshaving you notice is a matter of some kind of associated ugh field.
I definitely agree with everything that turns Bits to Its being kinda cursed. I think the natural phenomenon boundary is more general.
Here are some other examples of things which feel terrible in a qualitatively-similar way to printing:
Dealing with the Department of Motor Vehicles or similar bureaucracies.
Working on a mature and messy/poorly designed codebase.
Making a finicky machine work (regardless of whether any Bits are involved).
One piece of what makes these feel similar is recursion—I go on a subquest to solve one subproblem, and that triggers a subsubquest to solve a subsubproblem, etc. One thing I notice about the examples is that the problems maybe typically have to do with assumptions at interfaces—e.g. the printer being out of paper isn’t really about “Bits to Its”, it’s about a finicky machine having been designed with some assumptions about its working environment and those assumptions not always being satisfied.
Partial themes:
Anyone who knows enough to even begin to think about doing anything about it, knows enough to not have the problem.
Making it just work is actually a hard problem. Codebases naturally get messy when big, and are born with ontology skew to the eventual ontology. Machines have to be operated with a conscious touch, and therefore the human has to interface with them.
Legacy systems, especially multiple. E.g. your poor printer is supposed to interface with a huge range of computing systems / your poor computing system is supposed to interface with a huge range of printers.
Sure someone could put a ton of effort into making the last mile smoother, but who’s incentivized to do that? The printer does the hard part of printing, what more do you want.
Relatedly, I often feel like I’m interfacing with a process that responded to every edge case with patching. I imagine this is some of what’s happening when the poor printer has to interface with a ton of computing systems, and also why bureaucracies like the DMV seem much more convoluted than necessary. Since each time an edge case comes up the easier thing is to add another checkbox/more red tape/etc, and no one is incentivized enough to do the much harder task of refactoring all of that accretion. The legal system has a bunch of this too, indeed I just had to sign legal documents which were full of commitments to abstain from very weird actions (why on Earth would anyone do that?). But then you realize that yes, someone in fact did that exact thing, and now it has to be forever reflected there.
What this sounds like to me is a system, where all of the parts are designed cleverly with the assumption that their costs are going to be amortized, but because the current reality isn’t fitting the original assumptions, you’re hitting cache misses and full cost on every single operation
Hm. So it’s some larger problem of which the Curse of It From Bit is a subcluster, then? If I’ve understood you right, this is also something I’ve spent time thinking about
by way of finding them with my face. Something like… some unfeeling machine/system/structure that fails to live up to its own spec, or which has a bad spec or no spec at all, and which makes that state of affairs your problem, you silly goose who wants to actually do things, you. There’s the flavor of that thing from Zen and the Art of Motorcycle Maintenance where there’s this tiny trivial-feeling problem that humiliates you with a combination of feeling trivially small while nonetheless demanding close attention and deep understanding by way of being a critical blocker to solving whatever problem, I think? I think that the yakshaving bit is downstream of the spec failure piece—it seems like a common failure mode of degraded systems/designs.The ways that printing and 3d printing are cursed feel different, to me.
My expectation is that if I manage to give a printer any instructions at all, it usually prints the thing I expect. If not, it’s usually because it’s out of paper or (more rarely) ink/toner. If it has raw materials and receives instructions, I expect it to print a document that looks substantially like I expect. But “trying to give it any instructions at all” may well be an exercise in frustration.
With my 3d printer, giving it instructions hasn’t been the hard part. (It’s maybe not quite straightforward. You need a microSD card, formatted correctly, with a .gcode file, and I can see those feeling cursed to someone, but they’re the kinds of problems I know how to solve. Then you put the card in the printer and select it using the sufficiently-intuitive interface on the printer.) The hard part is that the instructions I give it don’t reliably result in a physical artifact that looks or functions like I intended. Airflow, ambient temperature, properties of my filament, bed adhesion, calibration. There’s too much that can vary in the environment, and those differences can mean I need to give my printer slightly different instructions (like different nozzle or bed temperature, more supports, slower speed).
2d printers, in my experience, seem to have solved that kind of problem. Though I imagine professional printers have exciting problems that I don’t.
(John’s blank page 1 is an admittedly weird case here, but “printing a blank page” is still less surprising than, say, “oops, near the top of the page I printed a black area that was too large, and that caused the paper to skip 3mm up higher than the printer thought it was, to fix that next time I need to make sure the printer slows down in that area, or inject some subtle yellow dots”.)
(Maybe part of the difference here is “printing at some point on the paper is independent of printing at some other point”? There might be calibration errors, that mean every point is slightly offset or slightly the wrong color, but because they affect everywhere equally I’m unlikely to notice them. And there might be random errors, where ink is fired slightly too late and a specific red dot is in slightly the wrong place. But I don’t expect that red dot to cause the next line to also be in the wrong place. With a 3d printer, a missing or unexpected bit of plastic causes the next bit of plastic to be in an unexpected place too, so the random errors compound, sometimes into a goopy blob. Part of the point of printing a skirt is to avoid this: the perimeter of the first layer is some of the most likely plastic to be not-where-expected, but if it’s in a skirt it doesn’t get printed on top of so that’s okay.)