[Another poem I don't expect to ever publish... sort of in the "New Door" vein, if only because I was just as distracted on the day I wrote this.]
I am working on a painting. I don’t want to seem unhealthy to you. Every day the painting grows taller; I am smoking a lot less now. I can barely see anything else, and the only sound is the cream-colored traffic outside. Now, was that thinking?
I am expecting your phone call. It grows on me, this feeling of love and dread. I could return to the painting, of course; of that, I have to remind myself. Because the painting is a lot of work, I am reminded that I often feel tired in certain situations. Maybe not this one, but other times. Perhaps also this one, but were that to be the case I wouldn’t have to be “reminded” of anything. But reminded I am, and have forgotten that you are about to call.
The painting depicts... well, it is gray. It has a red ellipse somewhere in the lower left-hand corner, like the spot on Jupiter. I think a bit of that spot on Jupiter, how I would describe it — the painting, I mean — were there to have been no spot on Jupiter. It’s so exhausting to be original.
I own a televisions set, too. It is dark right now, because it is not on. I can’t paint with these sorts of distractions, though know others can, and do; and even want to, that’s part of the “life.” "Cultured" distractions. The things of the world. But as my mind is on that spot on Jupiter, which, I suppose, they don’t show frequently on TV, I rarely have the set on when painting. It would be too – too distracting. And as I am trying not to think of your call, and trying to think of my painting, probably an easy thing to do (when you think about it), nonetheless the television is off, keeping the “things of the world” and the “life” at bay. This is a cozy situation. But, indeed, it makes me nervous.
I’d like to be healthy. But, now, I have these sores in my mouth. They are purplish, though you can‘t really see them, as they are inside the mouth. Not on the lips, or on the skin, but inside. Imagine them, then.
When I am done with this painting, I will call you at once to remind you about it, and about them, and me.
But some variables are immortal. These variables are declared outside of blocks, outside of functions. Since they don't have a block to exist in they are called global variables (as opposed to local variables), because they exist in all blocks, everywhere, and they never go out of scope. Although powerful, these kinds of variables are generally frowned upon because they encourage bad program design.
Posted by: Justinian at January 18, 2004 07:01 PMLet's see an example by converting our favoriteNumber variable from a stack variable to a heap variable. The first thing we'll do is find the project we've been working on and open it up in Project Builder. In the file, we'll start right at the top and work our way down. Under the line:
Posted by: Joshua at January 18, 2004 07:02 PMFor this program, it was a bit of overkill. It's a lot of overkill, actually. There's usually no need to store integers in the Heap, unless you're making a whole lot of them. But even in this simpler form, it gives us a little bit more flexibility than we had before, in that we can create and destroy variables as we need, without having to worry about the Stack. It also demonstrates a new variable type, the pointer, which you will use extensively throughout your programming. And it is a pattern that is ubiquitous in Cocoa, so it is a pattern you will need to understand, even though Cocoa makes it much more transparent than it is here.
Posted by: Sybil at January 18, 2004 07:03 PMOur next line looks familiar, except it starts with an asterisk. Again, we're using the star operator, and noting that this variable we're working with is a pointer. If we didn't, the computer would try to put the results of the right hand side of this statement (which evaluates to 6) into the pointer, overriding the value we need in the pointer, which is an address. This way, the computer knows to put the data not in the pointer, but into the place the pointer points to, which is in the Heap. So after this line, our int is living happily in the Heap, storing a value of 6, and our pointer tells us where that data is living.
Posted by: Mable at January 18, 2004 07:04 PMWhen compared to the Stack, the Heap is a simple thing to understand. All the memory that's left over is "in the Heap" (excepting some special cases and some reserve). There is little structure, but in return for this freedom of movement you must create and destroy any boundaries you need. And it is always possible that the heap might simply not have enough space for you.
Posted by: Roger at January 18, 2004 07:04 PM