Richard Harter's World
Site map
March 2011

Letters to the editor, March 2011

This a traditional letter column. You are encouraged to write a letter of comment on anything that you find worthy of comment. It will (may) be published in this column along with my reply. As editor I reserve the right to delete material; however I will not alter the undeleted material. E-mail to me that solely references the contents of this site will be assumed to be publishable mail. All other e-mail is assumed to be private. And, of course, anything marked not for publication is not for publication. Oh yes, letters of appreciation for the scholarly resources provided by this site will be handled very discreetly. This page contains the correspondence for March 2011.

Index of contributors

Other Correspondence Pages

From: Gary Farber
Date: 7 March 2011
Subj: thanks for the nice words

Hi, Richard.

I live to serve. Thanks for the kind mention and credit; always nice to get a bit of egoboo.

If you feel like it, feel free to stick a link under name my name to Amygdala, my personal blog, if you like, or Obsidian Wings, my group blog, if you like, but neither is necessary in the least; I just figured it couldn't hurt to mention that it's always nice.

On Wisconsin, just in case you're interested, I'll throw in a couple of links to posts I wrote recently about this; they're a bit long, and I never expect anyone to read anything I write, nothing is obligatory, so no offense taken if you don't even look, let alone read, and they're dating slightly now, but just for the heck of it:

The Wisconsin Waltz
The New Republican Congressional Revolutionary Volunteers Of America

For what it's worth.Thanks again for the kind mention.
Take care,Cheers,Gary Farber

Of course I will mention your links. After all, I live but to serve. :-)

Theoretically my web site is a fanzine, so it is only appropriate that there be egoboo and locs involved.

Return to index of contributors

From: Marius Grobler
Date: 7 March 2011
Subj: Darwin's theory

Dear Sir/Madame

You state that

"Young Earth creationism, the notion that the Earth is a few thousand years old, was discredited 200 years ago by geological evidence and in the past 150 years by astronomical evidence. Darwin's theory was not relevant for that. Darwin's theory did affect and replace the theory of special creation in which each species or group of species was specially created and remained unchanged as a fixed type over time."
Where is this proof? Where can I find it please? I cannot find evidence of any missing link or links. As far as I could gather the rocks are dated by the fossils. The fossils are dated by the rocks. Is this not circular reasoning? As far as radio isotope dating goes, I believe that it is notoriously inaccurate with some very wild deviations. C14 dating is dead in the water and I do not believe it necessary to go into that. The assumptions are simply wrong and that puts C14 to rest. K-Ar dating in lava has been proven to be wrong. What other sources of geological and astronomical evidence do you refer to?
As a preliminary remark I have a firm policy of not engaging in email debates about evolution and creationism. That said, I will answer your questions and make a few observations.

First of all, the passage is indeed by me, Richard Harter, and appears in a web page entitled "Twenty one Questions". The URL is

You ask what other sources of geological and astronomical evidence do I refer to? The geologists of the 1700's and 1800's looked at the actual geology of the Earth rather than creationist web sites.

"The geological evidence was more serious. It became quite clear that many areas of the Earth had alternated between being land and being covered by seas, that there had been extensive slow sedimentation, that the mountains had not been created in situ as is but rather had a long history of slow deformation, and that long periods of erosion had shaped the Earth everywhere."

From Changing views of the history of the Earth

The nub is that the physical processes like sedimentation and erosion require long periods of time to produce the formations that are actually observed. I will commend the geohist page if you want to know how and why scientists concluded a long time ago that the Earth must be old.

The astronomical evidence I alluded to is quite simple - the universe is big. It takes tens of thousands of years for light to travel from stars in our galaxy to us. It takes millions and even billions of years for light to travel from other galaxies to us.

As far as your comments are concerned, I am sorry to tell you that you have been badly misinformed. C14 dating is not dead. K-Ar dating is reliable. There are many other radiometric dating methods besides those two. The wikipedia article on radiometric dating is a little dry but you might give it a shot.

Contrary to your understading, fossils are not used to date rocks; instead certain fossils called index fossils are used to identify strata. Initially strata ages were rough estimates based on the time required for various geophysical processes. Nowadays they are more accurately determined using radiometric dating.

I hope this answers your questions.

Return to index of contributors

From: Mark Taylor
Date: 4 March 2011
Subj: SAN programming language

Hi Richard,

What became of the SAN programming language? Did you build a working implementation?

I have been working on the design a new pipe/stream based language, and I am keen to look at others.

However, I am struggling to find anything like what I have in mind. This leads me to think that either my ideas are unique, or that they have been tried & abandoned (I think most likely the latter).

As it happens, I didn't build a working implementation - at least not yet. From your perspective, that's the good news. What happened is I started working on the underlying flow processing engine. This, after all, was key, novel element in the implementation.

This has been a major learning experience. The amount of code involved isn't much - a few thousand lines of code. However I've written and rewritten that code a number of times. Why? The answer is simple; the problem is not with writing the code or with making the code efficient (though that is fun) but with understanding what is actually going on in these kind of languages. You also have to get a clear handle on what it is that you want to do, and on what you weren't thinking about that you should have been thinking about.

In the course of events I've looked at languages like axum, erlang, and go!, things that didn't survive like hermes, and a number of languages that nibble at the fringes. I've had a good look at Morrison's flow based programming. One of the things that really comes across is that the creators of these languages do not invest enough time and thought in looking at what other people have done.

I would be more than happy to look at your ideas and offer some commentary. However, if I make a small suggestion, it would be good to sign on to the google group, flow based programming, and post about your ideas there. The group is active off and on, but when someone posts anything interesting there is a lot of good commentary.

The truth is that I'm not particularly happy with the section on agents in the San specification, and I am not sure how I want to proceed. Here is the issue. I have become persuaded that flow based programming requires a "two language" approach. That is, a program or application consists of a description language that describes the connectivity of the flow based network, and the language(s) in which the components are written. In fact, one may really want a third language, a data description language.

Be that as it may, the dataflow engine code is almost ready for prime time. I expect that I will go back and revise the San specification yet again, and then resume implementation.

Return to index of contributors

From: Ben D. Kennedy
Date: 22 February 2011
Subj: Link Exchange with


Sorry about the delay in answering but your message got routed into a spam folder. I added a link to your site at: Just let me know if you would like it changed in some way.

Anywhere you want to place a link back to will be fine and your literature page would be great as there are 10 or 12 full books available online at as well as many other resources related to Joan.

To link to Maid of you can use: Joan of Arc

It's there in the literature page. I hope it is of help.
Return to index of contributors

From: Billy Phillips
Date: 16 February 2011

Hi there,

Curious what you think about this "slidecast" on evolution according to the ancient book of the Zohar...

It's interesting but not terribly convincing. There are major differences between narratives based on the metaphor of ages and the reconstruction of the evolution of humans.
Return to index of contributors

From: euna blaylock
Date: 4 March 2011
Subj: Richard Harter

Our company, works in the E-market for a long time .
nowadays firm start our business in the territory of the EU and we need to hire smart people in USA.
Any concerned can become ouremployee.
company's position is available for you if you are:
- Age/Years: from 18 till 60 years
- Sex/Gender: has no matter
- Education: has no matter
- Other requirements: ability to communicate and access to the Internet.
- Bank account
- Living in the territory of the EU.
No transposition needed, you can do the work in your city.
Let us know if you concerned and our manager will email you within several hours. Thank you for your attention. Top News: ministry calls for nomination of projects for gcc environment award

I gather that you are looking for someone to proofread your emails. I fear that I am not your man. I am over 60, and sex and gender matter to me. Moreover I don't live in the territory of the EU, and if I did I wouldn't be in the USA. However I have just the man for you, a correspondent of mine named Peter N_. Peter has the precision of eye you need, and I am sure he can manage to live in the EU and the USA all at the same time.
Return to index of contributors

From: Keith Goodman
Date: 10 January 2011
Subj: Ascending minima algorithm


Thanks to you I now have four new functions: move_min, move_max, move_nanmin, move_nanmax.

That's good to hear.
Here's the copyright notice I included with the code:

# The minimum on a sliding window algorithm by Richard Harter
# Original C code:
# Copyright Richard Harter 2009
# Released under a Simplified BSD license
# Adapted and expanded for Bottleneck:
# Copyright 2010 Keith Goodman
# Released under the Bottleneck license

It might take me a while to get to it but I also need a moving window median. I see you wrote an article on that, so I'll be back to read that in the future.

Don't bother with that page. There is no code there and the algorithm would be a mess to implement. More to the point, I doubt that it is an improvement on using two heaps. Now that I think about it, I'm pretty certain that tracking the median is O(log window_width) at best. The obvious way to do it is to use two heaps, one containing window elements smaller than the median, and one containing window elements larger than the median. I think that I can prove that one can't do better than O(log window_width) but I haven't nailed the proof down yet. Even so I'm pretty sure one can improve performance by using something like a fibonacci heap. If I come up with something inspired I will let you know.
Return to index of contributors

From: Keith Goodman
Date: 10 January 2011
Subj: Ascending minima algorithm

I'd even be interested in a standard two heap implementation if you come across one.

For the non-moving window median I used the Wirth method from here:

I looked at the page; it's quite useful and has most of the good stuff. There are design issues to consider in the moving window case. The most important is whether we are talking about a one dimensional window or a multi-dimensional window. My feeling is that we should reduce the multi-dimensional case to a product of one-dimensional cases. Suppose we have a NxN window for which each move takes off an Nx1 slice on one side and adds an Nx1 slice on the other side. Then instead of computing the median of the entire NxN box, compute the median of each slice and update the median of the medians.

Applying this technique to the minima/maxima cases is exact. The median of the medians is not; there can be slight differences between the median of the medians and the median of the whole. However there is a major improvement in speed. The median of the medians is a O(N) process; the median of the whole is a O(N*log N) process.

The other question is whether to use a histogram based technique or to use a tree based technique. Histograms are potentially faster since they can exploit knowledge about the data; however trees require less special information, are simpler, and have better bounds.

One idea I have is to use trees that have a fixed layout in the same way that heaps usually have a fixed layout. I haven't quite decided whether to use two heaps (one for small, one for big), a binary search tree, or a heap structured search tree. All choices are O(log N).

In any event, I have a moving window median on my project list. I will let you know when I have some code. useful.

Return to index of contributors

From: Keith Goodman
Date: 12 January 2011
Subj: Ascending minima algorithm

BTW, multiple passes of a 1d window moving min/max/sum are a clever way to handle nd moving windows. I'll have to add that to the Bottleneck manual.

My apologies for not getting back to you sooner. I have posted an article about median filtering at C code for an implemntation can be found in the directory I hope this will be useful.
Return to index of contributors

From: Keith Goodman
Date: 22 February 2011
Subj: Ascending minima algorithm

Very nice. I like your new front page to your collection of algorithms. And the copyright notice is nice too.

This looks harder (compared to the rolling min/max) for me to port to cython. I might have to learn how to wrap C code with cython.

I'm looking forward to trying it out. Might take me a while to get to it.

The version I did may not be a good one for porting - C is a rather idiosyncratic language. In fairness the task is harder than the rolling min/max. For porting it is worth while to step back and consider the problem more abstractly. Initialization consists of finding the median of the initial window, dividing the initial window value into two sets, small and big, and then creating a heap for each set. The root of "small" heap is the largest "small" and the root of the "large" heap is the smallest "large". A data structure must be chosen that ties heap position to window position. A very simple method is to have objects (structs) with two fields, (a) the element value, and (b) a link field. The link fields hold the window elements in their original order as a queue. The heaps are arrays of objects; the standard doubling and halving algorithm is used for locating children and parents. One heap operation must be implemented: An element is replaced by a new element with a different value; it is then sifted up or down as needed to restore the heap property. There are two distinct cases to consider then the window is updated. If the new and old elements are in the same heap make the replacement using the heap update operation. If they are in different heaps then the root of the heap that the new will join replaces the old object and the new replaces the root of the heap it is joining. The heap operation is performed on each heap. I don't know if this helps any, but I thought it might. Best of luck. Incidentally it might be worth while implementing the simple array algorithm. It would be a lot easier and it isn't bad unless the windows are quite large.
Return to index of contributors

From: Keith Goodman
Date: 24 February 2011
Subj: Ascending minima algorithm

Thanks for the insight.

What is the array method?

My plan for a brute force attack was to find the median in the initial window. My median function leaves all the elements to the left of middle of the array less than or equal to the median and all the elements to the right greater or equal to the median. Then advance one step. If the new number entering the window is, say, less than the median and the old number leaving the window is also less than the median then there is no need to recalculate the median since the median does not change. So I'll only have to recalculate the median half of the time.

Oh, now I remember. The tough part of my brute force plan was keeping track of where in the array the element leaving the window is located. I guess I'd need a second array to keep track of that.

Right. You have two different data arrangements to account for. You need two different arrays (or their equivalent) to represent them.

In the "array method" that I alluded to, there are two arrays. The first is a circular buffer holding the window values in data sequence order. The second is an array holding the window values in sorted order. When you do an update, do a binary search to find the deleted value and then slide the values between the deleted value and the new value over one and then insert the new value in the opened spot. (If this seems unclear draw a picture and it should be obvious.) This is an O(n) worst case algorithm. However the code is very simple and the loops are tight.

The notion of having a "small" region and a "big" region is attractive; you don't have to do data moves, just one or two data swaps. However the logic is more complicated. Essentially you have to do the same thing that I did in the double heap implementation. One way is to let array two be divided into small, median, big, and let array one (the window circular buffer) hold pointers into array two. There are only one or two data swaps involved, but the search is O(n) half of the time.

My impression is that the sorted array method is simplest to code. I suspect that it is also faster but that probably depends upon the quality of implementation.

Return to index of contributors

From: Keith Goodman
Date: 12 January 2011
Subj: Ascending minima algorithm

BTW, multiple passes of a 1d window moving min/max/sum are a clever way to handle nd moving windows. I'll have to add that to the Bottleneck manual.

My apologies for not getting back to you sooner. I have posted an article about median filtering at . C code for an implemntation can be found in the directory . I hope this will be useful.
Return to index of contributors

From: Albert Williams, Not an Attorney
Date: 11 February 2011
Subj: How to argue effectively

This message with regards to

Stuart J Williams, Attorney at Law was my father, and a big Dave Barry fan. He probably forwarded the text of the article to friends, who did not see the attribution and uploaded it online, assuming my dad had wrote it. Even more likely, my dad did not attribute it at all, and assumed that his friends would understand that it was from Dave Barry.

I hope this new information (my dad's appreciation for Dave Barry) and my theories would sate any curiosity anybody might have. I was personally very confused with the line "And not by Stuart J. Williams, Attorney at Law", which I initially took to be some sort of inside joke. As for Andrew Moore, the irate correspondent responsible for the correct attribution of the article, you can tell him the best way to contact Stuart J. Williams, Attorney at Law is with a Ouija Board.

Albert Williams, Not an Attorney

Thank you for writing. At this remove it is unlikely that we will ever know the precise details of the misattribution, but I think that you have the right of it. I suspect what happened is that your father sent to a friend of mine, also a lawyer, who forwarded it to a humor mailing list he maintains. Somehow the original sender was assumed to be the original author. Be that as it may, it's good to see the attribution corrected.

The "and not by" line is a bit of an inside joke, poking fun at Mr. Moore. I expect that I should put in a little explanatory note at the end. I see no need to disturb Mr. Moore in this matter. I am sure that he feels that he has done his duty as he sees it.

Return to index of contributors

From: Irini
Date: 22 February 2011
Subj: Hello

I read a blog that is from april 4th 2002! Very old blog & I was wondering if you completed the task of losing weight?

I think so, though I never got down quite as far as the article mentions. In it I was thinking of getting down to the 175-180 range. Instead I got down to the 180-185 range. Since then it has fluctuated, depending mostly on the time of the year, and how much I traveled.

I have a confession. I have become a compulsive weight checker. I weigh myself twice a day, in the morning when I get up and in the evening when I go to bed. I keep the results in a file on my computer. Every month I update a chart that shows the range of morning weights for the previous month. The URL for that chart is:

As you can see my weight stays within a broad range, but it does shift back and forth. I don't diet anymore, but I am quite aware of what my weight is doing, and I have become a bit of a food fascist. I am obsessive about reading labels. Etc.

Here are a couple more URL's for articles I wrote about losing weight.

"One year later" is a retrospective after one year:

"Fatland" is an article about a book of that name. It is about how obesity became a plague.

If by chance you are thinking of trying the "Harter diet" here are some odds and ends that weren't in the articles. The "diet" is a fresh fruit and vegetables diet with just a few hundred calories of prepared food. Be aware that it will loosen your bowels. It's not balanced - it's very low on fat and protein. I balanced it with an occasional protein bar. Also accompany it with plenty of physical activity. I walked three miles a day as a regular thing and did yard work as well. As the chart notes, I lost 7-8 pounds a month like clockwork.

There, now you know more than you ever wanted to know.

... continued on next rock ...

Hello again,

I actually have no idea how I came across your blog. I wasn't looking for diets or anything. I am 5'0" 117lbs so I'm alright with all of the weight stuff. I had fun reading your blog and thought I could email you to let you know. :) You mentioned you were 66 years old and I have to say I am very impressed that you are so connected with everything online. That is fantastic!

If you ever write anymore blogs let me know. :)

Thanks for answering back. I wouldn't say that I am connected with everything online. I don't tweet - I'm not a little bird. I do the facebook thing from time to time, but I don't blog as such. I do an electronic magazine (e-zine) instead. Anyway, it's good to know that somebody thinks I'm connected.
Return to index of contributors

From: Dr. J. Alva Scruggs, BS, MS, MA, EdD
Date: 26 February 2011

Libya is another one of America's chickens coming home to roast. The world revolts against world tyrants in the Middle East is generally a common result of citizens in countries that are supported by American money and policies that overlook the violation of human right in these nations.

Today, February 26, 2011 it is reported that Gaddafi is threatening to use the chemical weapons of Mustard Gas on his own people. The chaos in Libya has raised fears about the security of deadly mustard gas stockpiled in the country and whether Libyan leader Moammar Gadhafi might use it on his own people. (NavyNurse, LIBYA MUSTARD GAS STOCKPILE, Washington (CNN), Feb 25, 2011) Don't be surprised to find that this Mustard Gas was supplied by the US or US Military or affiliated Corporations! In addition, some of the aircraft used to attack Libyan citizens were supplied by the US. All of the military equipment has some connection with US suppliers of the world's war material. (Frances Ann Burns, "Nerve Gas Defendant Due for Sentencing," United Press International, July 22, 1989. Daniel J. Wakin, "Man in Custody for Alleged Attempts to Buy Nerve Gas for Exportation," Associated Press, January 13, 1989) In addition, China is reported to have been involved in the supplying of gas to Gaddafi also.

Rumors alleged that Gadhafi is providing about $400.00 (CNN) per person to Libya citizens and $3 Billion to Republican Party to support him!! Gadhafi has taken a page out of the CEO Kock's book, who has tried to buy some State Governors support to stop the Union (Middle Class & Poor) resistance. He wants to buy the attention of Republican leaders!

Moreover, this whole multi nation revolt in the Middle East can be traced back to the corrupt and misguided policies the American Government has accepted that is mainly to provide advantage for corporation's to exploit the resources of oil in these nations. It did not matter that these nations were not democracies and had tyrants as leaders. In fact, corporations and US Governments prefer to do business with dictators. They also preferred these leaders to be ignorant, barbaric, and cruel. Dictators are more like successful CEOs in that they are singular minded, greedy, amoral, and criminal. Collateral damage (human rights or deaths) is not an issue with a dictator.

This is Obama's dilemma and an impossible task to resolve! As the citizen revolts in the Middle East continues the reasons for the up-heaves remain the same. Further, Obama must know that the union VS State Republican Governors such as those of Indiana, Ohio, Wisconsin, etc. (MSNBC) has the same issues as these in the Middle East, The Middle Class VS Wealth

The nice thing about being a fanatical partisan is that anything will do for a source as long as it agrees with your prejudices. What is more everything that happens is due to the bad behaviour of your chosen set of villains.

That said, the man does make some good points. America is the principal arms supplier to the world. We operate on the principle that we entitled to do pretty much anything we want to (and can get away with). We support anybody who will let us use them.

Perhaps our foreign policy would be better if it were infused with a bit more modesty. We are not the answer to the world's problems. We are not the one true source of light and goodness.

Of course, that's just my opinion. Nobody is asking for it. Pity. The world would be a better place if they did.

Return to index of contributors

This page was last updated March 8, 2011.

Richard Harter's World
Site map
March 2011