table of contents
Collected editorials

The seat stays up

When life begins

When it comes to the abortion debate, I figure that I don’t have much of a say in the matter. It’s not as though pregnancy and abortion are options for me. Still, that doesn’t stop me from sticking my foot in my mouth.

One of the striking thing about the debate is that the debate is often framed in terms of “When does life begin?” At first sight the question doesn’t make a lot of sense. Conception creates a new living organism. It may not last very long, but it is definitely alive. End of story.

Ooops, there is more story on the next page. The deal is that “alive” and “life” are two different terms. In biology life consists of things that are alive.

When humans are at issue the language changes. Clearly a zygote, a blastula, and a fetus each are living biological organisms. They are alive. More than that, each has the potential of becoming a human being outside the womb. So what does it mean to say that “life begins at …”?

It would mean little were it not that we humans feel that we are special, that human life is sacred and privileged. So the answer seems to be, life begins when a potential human being is it so close to the realization of its potential that we do not feel right about cutting its life short. Evidently we feel that the developing baby accumulates humanity as it gets closer to birth. When it accumulates enough it counts as a human being.

When you cut through all the self righteous rhetoric about the right to choose and the right to life it comes down to where your comfort zone is. So when does life begin? At conception? When pregancy is first evident? In the first trimester? In the second? In the third? Ten minutes before birth?

Evidently there is no real answer. It is all a matter of your comfort zone.

The seat stays up

Many years ago (at least 14) I wrote a scholarly essay A game theoretic approach to the toilet seat problem. It is a nice little essay; it has been stolen, reprinted, and linked to numerous times. It addresses that age old question, should the toilet seat be left up or down. Men say up, women say down. In the article I show with impeccable mathematics that a compromise is in order – part of the time it should be left up and part of the time it should be put down. I am told that women have difficulty with mathematics and in evidence I need only point out that no woman has ever accepted the conclusions of the article.

The article had a serious fault, one that I was not aware of because at the time I was not the resident host of any cats. In consequence I was in blissful ignorance of certain of their habits. I speak of course of their preferred choice of water bowl. We have a water bowl for the cats. They even use it from time to time. However there is something special about those ceramic bowls. I don’t know what it is, but then I am not a cat.

So what you ask? Well, it’s like this. Cats like to go outside, rain or shine. When they come in they are utterly indifferent to the muddy little paw prints they leave behind as they make their way to their favorite water dish. When the seat is up it doesn’t matter. Alas, when it is down they leave their muddy little paw prints on the seat. Yecch. Double yecch if you didn’t check for muddy paw prints on the toilet seat.

The moral of the story is that if you have cats, leave the seat up!

We all hope it works out okay

Monday, March 5, I am supposed to be starting on a course of treatment for my MDS (that’s myelodisplastic syndrome, but every body knows that). Briefly I get an infusion of vidaza for seven days and then I have a break of 21 days until I start the whole thing over again. What is vidaza? It is a hypo-methylating agent. We all know what that is, right? Well, maybe not. What it does is to reprogram stem cell DNA by removing methyl groups. It’s sort of like scraping off barnacles. I’d explain about what methyl groups do, but I’ve been told that there is too much science in these editorials as it is.

As a bonus they have put a port-a-potty, er, ah, a catheter port in my chest. This will mean that they don’t have to poke holes in my veins. My port-a-potty is covered with a flap of skin. When they want to put something in my blood, they poke a needle through the skin into the port-a-potty where a solid connection is made to a catheter that dumps the “stuff” into my heart. They tell me this is much better. Everybody I know who is a nurse or a doctor says so. Oddly enough, I haven’t heard many ringing endorsements from people with the damned things. I assume that is because they are so satisfied that they never bother saying anything about them.

The doctor wanted to start this a month ago. I said that I wanted to get more information and possibly another opinion. I now have piles of material from the NIH, the National Cancer center, wikipedia, and the hematological journal about Myeloproliferative Neoplasm, Myelodisplastic Syndrome, etc. I even learned enough to ask semi-intelligent questions. The upshot is that vidaza is a good treatment for later stages of MDS. Success rates run 60+%, where success is good enough to restore one to normal life and normal blood counts. Most studies focus on the later stages. I am in an early stage. There is less the treatment of early stages in the literature, other than supportive care. However I’ve read enough and heard enough that it seems like a good thing to do to go ahead with the treatment.

On of the motivations is simply that I hope to feel better. I have low red blood cell counts and low platelet counts. The low platelet counts aren’t all that much of a problem, although I have to be careful about bruising and bleeding. The low red blood cell counts are another matter – basically I have anemia, which means that I tire easily, have low energy, and am often short of breath. My RBC counts aren’t so low that I need transfusions, just low enough to reduce my quality of life. I’ve always been a fairly active person – I played competition volleyball for twenty years, and I like to walk and to garden and to do woodwork. It would be nice to have more of my life back.

Flow based programming

For the past few years I have been working on my own version of something called flow based programming (FBP). What is FBP? It’s a different way of thinking about and doing programming. How different? A lot different. More different than the differences between object oriented programming, imperative programming, and functional programming. Really different. And, yet, the fundamental idea is pretty simple.

If you look at conventional programming languages and conventional programming they all look pretty much alike. In them the fundamental unit of programming, the one that enables decomposition of programs into pieces, is the function. Functions call each other; when function A calls function B it passes some arguments to function B, it goes to sleep while function B does its thing, and wakes up again when function B returns a result.

In flow based programming the fundamental unit of programming is the process. Processes don’t call each other; they pass data back and forth between each other. When process A sends data (those function arguments) to process B it sends a message. Instead of going to sleep it keeps doing whatever it was doing until it doesn’t have anything more to do. Usually this happens when process A runs out of inputs to process. In the meantime B is busy doing its thing. When it wants to pass on some data it also sends a message. It doesn’t have to send it back to A; usually it will send it on to another process, say process C.

Notice that A and B run independently of each other; in the jargon they can be concurrent processes.

At this point my unix hacker friends will say, we know about that; you’ve got processes and pipes. Nope, there is much more to it than that. Unix pipe programming is linear because it is expressed in linear lines of code. FBP programming is non-linear because processes can (and do) have more than one input and output. The natural way to display an FBP program is as a graph with processes as nodes and data pipes as edges.

Flow based programming doesn’t replace conventional programming. Instead it relegates conventional programming to handling the internals of processes. Conventional programming is a wonderful way to write small programs. It’s an ugly way to write large programs. One reason why are those function calls. Go back to our A, B, and C. In conventional programming A calls B, gets X back, and then calls C with X. In FBP X goes directly from B to C. In conventional programming A is necessary as a supervisory routine. And that is what is wrong with large scale conventional programming – you end up with layer upon layer of supervisory code. Data flow gets convoluted and more and more copying has to be done to get data from one place to another.

I would say more, but there is a limit to how much programming stuff I can put in my editorials. I have to respect the sensibilities of decent folks, you know.

This page was last updated March 3, 2012.

table of contents
Collected editorials