March 17th, 2005

Apollo 4 on column of fire

eye attacks

Today was at least the third day in which I woke up with blurry vision
in one eye, without apparent cause. Blurry vision in one is a
"normal" aftereffect, in my case, of a so-called and badly named
"cluster" headache -- what I call an "eye attack." A cluster headache
usually wakes a person from sleep, in a memorable way, because they
can hurt like hell. But I don't remember that happening.

The last time I had mysterious blurry vision in one eye, it turned out
that I _had_ been awakened by an eye attack, because Kristy told me
so. Yet I didn't remember.

I conclude, thus, that these attacks are mild and brief, so I fall
back asleep despite them -- probably the doing of the nortriptyline
capsules.

So I'm sitting here typing while looking through just my right eye,
because I have the left eye closed because now it is not just blurry
but also photophobic. Which also explains the wearing of shades
indoors; it's not because I'm mysterious.

For pretentious quasi-artistry I will now change topic bizarrely.

I have been thinking lately of how to make it easier to use C
libraries directly from programs written in Unicon. You want to use
the Unicon runtime's DLL interface; that facility makes it almost
trivial to link with a shared library, and shared libraries are easy
to create in the OSes I use. Between Unicon and the C library you
just need a wrapper function that converts between Unicon types and C
types. C integers of all sizes can be stored in Unicon integers, and
so can all types of C pointers; that works because Unicon integers are
long int and so even on 64-bit AMD64 (which I use) a Unicon integer is
big enough to store a pointer.

Unicon runtime includes easy routines for converting between Unicon
strings and C strings, so that requires no special work. The
more difficult part is how to deal with composite structures like
arrays and structs.

Some desirable constraints:

* C should be able to hide the members of a struct, by not naming
them in header files. This is done in some common libraries.

This means that such C structs appear to Unicon as nought but
pointers, which we represent in Unicon as integers.

* The representation of C structs (and arrays) in Unicon should be
uniform.

This means that even structs with visible members should be
represented as C pointers stored in Unicon integers.

The second constraint did not occur to me until last evening, and in
my early experiments I did not apply it. I had opaque structs
represented as Unicon integers and structs with visible members
represented as Unicon classes.

The constraints lead to (at least) the following implementation:

* C structs are represented in Unicon as integers whose values are
addresses of C structs. (This takes care of structs nested within
structs, too.)

* Allocation of struct space must be done in C code. (I have not
yet investigate Whether the runtime's garbage collector can be
used. In some cases the C code uses malloc() and so in those
cases you would need to call free().)

* Members of a struct should be accessed via C functions. How to
link with those C functions is a design decision with lots of
alternatives. One possibility is a "member access" Unicon class
for each C struct type. A bunch of plain old Icon procedures also
would work. In any case, the structure of a struct is platform
dependent, and so should be calculated ahead of time by a program
that can analyze C struct definitions.
Apollo 4 on column of fire

Bushist freaks disrespect the institution of marriage

I just heard on Air America Radio that Bushists in Congress hope to
intervene in the removal of Terri Schiavo's feeding tube. I think
they feel an affinity: Terri Schiavo is in a persistent vegetative
state, and so are the Bushists in Congress. The main difference is
that congressional Bushists feed on the blood of human beings and can
do so even with the cracked butternut shells they employ as brains.

Bill "Abortion Provider" Frist went before the American People and
proclaimed some lie about a neurologist on Terri Schiavo's case
telling Frist the woman can recover substantially.

I think part of the problem here is the infantile nonsense by which a
human being is seen as a fully functional "soul" constrained within a
possibly dysfunctional "body." People who believe such neolithic
superstition may dare to snicker at the pantheons of ancient Greeks,
who were unfathomably more advanced than that ground monkey Bill
"Abortion Provider" Frist. Heck, neolithic Utzi the Ice Man, who died
about 5000 years ago, had better shoes than ours, though they are not
as nice for walking as are Bill Frist's knuckles. This is the same
Bill "Abortion Provider" Frist whose website once had a poll (on a
subject I don't remember) where sane Americans were "winning", so
every once in a while the congressmonkey would reverse the sense of
the question without changing the vote totals. This hominoid,
"Dr. Fetus Shredder" Frist, belongs in a zoo for the criminally
human-hating.

Anyway, if we reach into our brains, grab the notion of a "soul," and
chuck it before a barreling freight train, we see that it is part of
human wiring to smile and so forth. These are not necessarily
evidence of a working cortex, but rather evidence of some more
primitive structure still operating. Without a working cortex you may
have an individual who can live if others take care of such matters as
nutrition; however, you have none of the functionality that matter to
most of us. I see no reason to interfere with the husband's
prerogative, but the Bushists in Congress apparently spit on the
institution of marriage.
Apollo 4 on column of fire

air compressor woes

The air compressor whose instruction sheet I cannot find was supposed
to make it easier for me to pump car tires. It does not, even though
I figured out by myself how to plug the canister so it can hold
compressed air; I had a screw turned the wrong way. My old way of
filling tires was a very good, hand-operated bicycle pump. This was
too much work for my fibromyalgic sense of discomfort, but bending
over to work with my compressor is even worse.

I need a different sort of compressor, something more "consumer
friendly". It should attach securely to the Shrader valve, have a
built-in tire pressure gauge, and be operable while standing erect.
The bicycle pump meets the first two conditions and comes closer to
the third than does my current compressor.

I saw something in a Sharper Image catalog, but that seems kind of
Yuppy, and I'd rather remain a Girl Power Mama.