Wednesday, November 23, 2005

Evolution

I find the controversy around Darwin, Evolution, Creationism, Intelligent Design and others to be weird. Weird is not a very scientific term. But for me, it does the job.

For me, what I have faith in, what I believe, and what I know can be expressed as a sort of Venn Diagram with fuzzy edges. I think I have my junior university course in epistemology to thank for that. That course focused on what we know and how we know - what is knowledge. Faith and science really didn't have a place in it.

Faith, or belief, has a huge roll to play in human existence. There are a lot of really simple things we simply can't know. I don't know if I will make it home safely after work. Our human experience is full of unexpected and unpredictable twists and turns. In order to function, we need to believe.

In my Venn Diagram of life, there are areas that must endure the rigors of science to determine truth other areas are exempt. For example, I'm pretty confident that my relationship with my spouse would not endure a series of scientific experiments to test it. I'm quite happy and comfortable just having faith in her.

The fuzzy edges are important. Very little is black and white. Very little requires only science or only faith.

What I believe will happen to me after I'm dead or why I'm here or why this form are questions I'm happy to leave in the realm of faith. I don't need to test any hypothesis about what happens to me after death on myself or anyone else.

How does this relate back to Evolution?

Evolution, to me, is firmly in the realm of science. It's faith that needs to figure it out or rationalize it to make sense of it. People who can't see evolution are stuck in a single frame of a movie. Species change over time. The various breeds of dogs have all morphed from some original mutt. We can observe fly morphology change over time. We see bacteria evolve when drugs stop working. We can see more frames in the movie when we look at fossil records.

Evolution happens.

A theory of gravity doesn't ask if an apple falls. When we speak of the Theory of Evolution, we are not questioning that genomes change over time. We are describing how it happens.

Intelligent design is a theory (or an hypothesis) of evolution. Could it be science? Sure. I'd love to see a report of an experiment reliably testing intelligent design. It isn't science to say just because I don't understand something, there must be a god (or other being) involved.

Interesting to note that http://www.intelligentdesignnetwork.org doesn't say that evolution doesn't happen. It does have a nifty little graphic that has "Design" on one side of a balance and "Evolution, no design" on the other.

The theory of intelligent design (ID) holds that certain features of the universe and of living things are best explained by an intelligent cause rather than an undirected process such as natural selection.


It seems to me that ID advocates are wanting to be both a theory of evolution and a theory of creation.

blah, blah, blah.

Then I read about Faith Academy in New Milford (http://news.newstimeslive.com/story.php?id=76913&category=Local). Perhaps the best evidence for human evolution is the existence of stupid people. The flavors of creationism may have a place in our schools but it isn't in the science classroom, unless we're talking about the anthropology classroom. Religion should be taught in the schools if only to prevent it from oozing into areas it doesn't belong.

Saturday, November 19, 2005

Drag and Drop in n easy steps?

Okay. I've got a bunch of views that contain web pages in my window. I want to draw them without borders. I want to drag my own information into them.
Cocoa:

  • Use WebKit

  • extend WebView, and

  • implement NSDraggingDestination for your new class.


Undo is a gift.

Windows:

  • Do a search for "CCustomControlSite CImpIDispatch" with google.

  • Write the custsite.h, custsite.cpp, idispimp.h, idispimp.cpp. You will probably have to make some modifications to the files you download to make them compatible with your version of visual studio. The various sites that will show up with google will be helpful. Here's a link to Microsoft's site that everybody seems to go back to:
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q236312

  • You'll need to modify the file that defines your CWinApp to accommodate your CCustomOccManager and CImpIDispatch

  • Create a wrapper for your WebBrowser2. Sumit Kapoor wrote one - http://www.codeproject.com/miscctrl/CustomizeWebBrowserCtrl.asp

  • To get rid of the stupid 3D border effect, find CCustomControlSite::XDocHostUIHandler::GetHostInfo and change make sure that
    pInfo's dwFlags has DOCHOSTUIFLAG_NO3DBORDER set.

  • To take control over the drag and drop is a hack. What I did is to set a global for the containing view. That view has a COleDropTarget attached to it. When CCustomControlSite::XDocHostUIHandler::GetDropTarget is called to get the drop target, I return the drop target for the view set globally. It works but I'm not happy with it.

  • Once I have control over the drop target, I can send the messages to the right view.

  • Undo... that's on my to do list to implement for this project.


It's a hack. And I'm sure it will break with the next major revision to IE or Windows.