Friday, September 4, 2015

theory

No one seems to be talking about hardware architecture. I'm looking everywhere and it's barely even mentioned.

When you start a computer, electrons begin to flow through an closed circuit. They enter through a single wire, and then that wire divides again and again.

Hmm. At the very beginning, most of the switches must be automatically open. Electrons need to initially flow along very specific paths that check certain things and then close and open switches to initiate a cascade of events that brings the computer into a certain state, where, normally, it waits for further instructions.

It seems that memory is a network of nodes and an impulse applied to a node on its surface cascades through it creating changes, somehow. I don't understand it. Telling me that isn't starting at the beginning and then proceeding to the end. It's for whatever reason not forthcoming.

At some point the startup process checks various ports for initialization files or some such thing. It basically moves the code in those files, or, the data, into specific portions of memory. If you connect some kind of media to one of those ports, with a file in it with a certain name, the contents of that file will be mapped to some location in memory. And once that is done, something will appear on the screen. It will invite you to touch it.

Let's say it's a cursor on an otherwise blank screen. What you want to do now is type in ones and zeros and, after that, save them as a file, or the file, of the ini or config type type, on your media. Then you re-start.

So you think we are too dumb to do this? What's brilliant about you is that you did it first. It's not that you are the only person who will ever do it, or can ever do it, or should ever do it.

Now there's a white or beige box on the black screen, and the cursor is in that. Actually, no, there are two of them and the cursor is in the first one.

Maybe it's like this ... i mean, if you press a key, a character is inserted at the cursor location. Pressing that key creates a pattern of ones and zeros on some part of the surface of memory, and then that moves through the layers of memory and emerges as a pattern on the opposite surface. Maybe that pattern acts as a kind of filter that happens to send various amounts of ... well ... color, to a pixel on the screen.

Going over and over this in my mind. No, I don't think that's how it actually works. I don't know how it works. I can't tell you how it works. But there's some layer of functionality that's built into the hardware, maybe in layers, like some part of it actually is software but it rarely changes. Or never. So it is hardware, really. Anyway, software is required to go further, but you could give me an original screen where I can type. Listen, machine language has to exist, but I'm actually not completely stupid and I don't think that's really what I'm talking about. Or how about this: what kind of abstract language is built into the computer? None? It all comes from media? It's limited to this: plug in media with these files on it and I'll run?

Well, OK, I can accept that. That's fine. My computer did come with all sorts of software installed, and, as a result, it does basically anything, or can. And there's this thing I forgot, which is that I can still create a blank slate of some kind. It's a blank slate in a full one, but I can do it.

The question is, what is it supposed to do? I mean, you could ask, "what is a blank slate?" And the answer is, it does something. True, on the surface there's a blank screen, and around it are controls. Oh, right! The controls are part of the slate! But then there's also something behind the slate, or behind the surface, which is blank, which is, really, a sea of data, but also, represented in it, a sea of imagery, and the controls can explore into that and bring images to the surface.

Where does this imagery originate? Plenty of it was loaded with the new ready to use computer, and then it comes from your camera, or, that is, your cameras, and then it comes from the Web. In fact, it is the Web.

This is why I say I'm writing about operating systems. It might be an app, that runs in an environment that runs the hardware, sort of. I mean, it does, but it also creates an environment that is full of its own features, and what I want so badly seems to be an environment that sort of has no features. It's just space. That is, by the way, very deliberately a feature, zennish, a design. But I say I am writing about operating systems because I am writing about, well, not the machine, but its product, image data, and also because I am writing about windows, which are an operating system feature. How can you not see, all of you, every one of you, how completely wrong you are about windows? For one thing, just for starters, there should be multitudes of them, and not just a few, and very few of them should be large, or none of them, except as desired, and they should certainly not be cluttered with menu options, there should be basically only one, and it should occupy a small space nearby, and when you click it, it will create another window, or does, because this is what an interface does, and the window should be starkly borderless, but all these windows will be of various sizes and they will float around each other and you can move them, and more than that, you can re-size them. I don't mean you can change their shapes, you can change their sizes. The whole window becomes either larger or smaller, and so does everything in it. Why don't you see that this is an essential function of windows? Why don't you see that without it windows are on the edge of uselessness? So we are going to create a browser window. It's a window, on our screen, and, actually, it's displaying a web page. Let's say this is a Firefox window, which displays a page of frequently visited sites, with colorful screenshots, something like that. But I've got lots of stuff on my screen, and I don't want this window to cover it all up, so I make it a really small window. I mean, I can see it, there. I can see it's that new Firefox window. And if I want to see it up close, I can enlarge the window. But I might not really want to do that. It's disconcerting. It changes the desktop. There's another approach which doesn't and we'll get into that. But there's this other thing: windows can overlap, and you should be able to overlap them with complete control, all these different windows, and you should be able to work in a window that's behind another window. Without bringing it out in front. This has all sorts of useful implications, but it's also just strictly correct.

I started thinking about something else, but I can't quite remember what it was. There are all sorts of interesting things to be implemented in this framework, but this was something somehow theoretical.