Conversation

gates_garden🏴🏴‍☠️ verified_neko

> Did users want the operating system where bugs didn’t get fixed? Not likely. Did users want the operating system with a terrible tool set? Probably not. Did users want the OS without automatic command completion? No. Did users really want the OS with a terrible and dangerous user interface? No way. Did users want the OS without memory mapped files? No. Did users want the OS that couldn’t stay up more than a few days (sometimes hours) at a time? Nope. Did users want the only OS without intelligent typeahead? Indeed not. Did users want the cheapest workstation money could buy that supported a compiler and linker? Absolutely. They were willing to make a few sacrifices.

(The Unix-Haters Handbook)
1
1
0

A truly portable X application is required to act like the persistent customer in Monty Python’s “Cheese Shop” sketch, or a grail seeker in “Monty Python and the Holy Grail.” Even the simplest applications must answer many difficult questions:

Server: What is your Display?
Client: display = XOpenDisplay("unix:0");
Server: What is your Root?
Client: root = RootWindow(display,DefaultScreen(display));
Server: And what is your Window?
Client: win = XCreateSimpleWindow(display,
root, 0, 0, 256, 256, 1,
BlackPixel(display,DefaultScreen(display)),
WhitePixel(display,DefaultScreen(display)));
Server: Oh all right, you can go on.
(client passes)

Server: What is your Display?
Client: display = XOpenDisplay("unix:0");
Server: What is your Colormap?
Client: cmap = DefaultColormap(display,
DefaultScreen(display));
Server: And what is your favorite color?
Client: favorite_color = 0; /* Black. */
/* Whoops! No, I mean: */
favorite_color = BlackPixel(display,
DefaultScreen(display));
Client: /* AAAYYYYEEEEE!!*/
(client dumps core and falls into the chasm)

Server: What is your display?
Client: display = XOpenDisplay("unix:0");
Server: What is your visual?
Client: struct XVisualInfo vinfo;
if (XMatchVisualInfo(display,DefaultScreen(display),
8, PseudoColor, &vinfo) != 0)
visual = vinfo.visual;
Server: And what is the net speed velocity of an XConfigureWindow request?
Client: /* Is that a SubStructureRedirectMask or
* a ResizeRedirectMask?
*/*
Server: What?! how am I supposed to know that? Aaaauuuggghhh!!!!
(*server dumps core and falls into the chasm
)

0
1
1