Probably gaming metrics. “87% of users used my team's program this month!” Who cares if 87% of those did it unintentionally? That's some other team's problem.
Exactly this.
The telemetry stats will bubble up to some level of management and it will show, "after making the play key launch the music app more people are using it". That's it. Explanations won't fit on the slide deck. In fact it probably isn't even that much, it would just be a graph with "line goes up" after the making play launch the music app.
I recommend starting with ECMA-35. The actual structure of escape sequences is explained there. Otherwise it gets lost that it's the ESC [ that is the entire escape sequence, an alternative form of CSI, and that this actually is one part of an entire mechanism of escape sequences with intermediate and final bytes. It's a control sequence that CSI then introduces.
The important part is that the escape prefix is just an alternate way to represent each of the 32 C1 control characters with a pair of 7-bit characters.
Fork is conceptually simple. Without bringing in any other layers, you start a process with the one thing known to exist: yourself.
Otherwise you need multiple steps to create a process, fill it with something to run, and arrange for it to execute. Or like Win32 you permanently smush them together with other layers, like filesystems and object loaders and linkers.
It's not conceptually simple. No other object creation API works by copying an existing thing and then modifying it. You don't create a new file by copying an existing one and then modifying it. You don't create a new window by copying an existing one and modifying it.
Attempting to justify clone/exec as a reasonable design is just Stockholm syndrome.
> Clone-and-modify is almost universal in version control systems.
It's closer to copy-on-write. Also, it actually makes sense there because in 99.999% of cases a commit actually is a modified copy of its parent. That isn't true for process spawning.
The only thing I want to inherit from the parent process is its cwd and environment variables, even those are often overridden. The rest can easily be passed explicitly through other channels like pipes or command line arguments.
Back to the example from the article. It makes no sense that a git-subprocess forked from a web server need to have any process state inherited from the web server.
Yes, exactly. Cloning, as a process creation primitive, is the one thing that doesn't need to be concerned with other stuff.
> … a git-subprocess forked from a web server …
That's pulling in a whole load of assumptions that are distinct from process creation. You can have processes in an environment that has no concept of file system or persistent storage at all.
I gues that way of thinking makes sense if you have a certain model of what a process is, in terms of the data structures and runtime state etc. But, tbh, I think of processes as glorified function calls, which happen to have that stuff involved as an implementation detail. And if spawning a process call is supposed to act like a function call, then of course it should not inherit state. You should call the function you want to call, not call yourself with an instruction to switch over to it instead.
Only some dark mode does this to me, and only on some screens. I find "light mode" bearable, but anything else cute like custom fonts or whatever and I am seeing 33 as 88 and 100 as loo.
I have schwas in my vision, like swishy halos around light sources. At one point I counted 12 distinct mirrored images. Driving was awful.
Reading my 4k screen was impossible, gave it to my wife and switched to a 2k HDR at 175%.
I still have swishes but only 1.5-2 and much dimmer. It used to be impossible to read the clock on my stove at night because it would just be a green smear!
I don't think there's any common 5V esp32 boards. You should be able to wire up some level shifters to connect it to 5V (or a range of other voltages). Sparkfun sells boards with a TXS0108E on it as well as simpler transistor based ones.
reply