NA's profileqBSMDPhotosBlogNetwork Tools Help

Blog


    September 15

    Categorization of belief



    Note: there is a third axis at the lower right corner along which different dogmas fall. This axis collapses to a single line between the agnostic and atheist corners in the same way that the ontological axis collapses to a point at zero certainty on the epistemological axis.

    In "The God Delusion", Richard Dawkins described a sliding scale of belief from 1-10, with 1 being certain that there is a god, 10 being certain that there is not, and 5 as agnosticism. Later I saw a blog (I will provide a link when I find it again) that put all belief into 4 boxes: agnostic theism and agnostic atheism at the top, and gnostic theism and gnostic atheism on the bottom. This provides two dimensions: and epistemological and ontological dimension, but still seems too limiting.

    My attempt at expanding this is provided here, and includes the two axes, but fleshes them out more. For example, deism does not fit neatly into ay of the four boxes, or anywhere on Dawkins' scale. Also, no atheist (at least no one I've ever read about) has claimed to be 100% certain about anything really. Atheism tends to be associated with a skeptical epistemology. Therefore any atheist can make the claim that they aren't really an atheist, but an agnostic, even when they believe exactly the same thing as someone who calls himself\herself an atheist. Describing belief on this diagram clarifies the problems of classifying peoples' beliefs with neat labels. Later I will add to this diagram to show the atheist's boundaries for where atheism and agnosticism are, along with the agnostic's and theist's boundaries for the same.

    This blog entry has been in my head for a while, but was directly motivated by this post at WEIT. Coyne's opening, "God-is-but-a-transcendence-beyond-a-symbol theology is not only unrepresentative of religion in general, but hard to distinguish from atheism" is consistent with my understanding of pantheism and its placement on this diagram, I believe, clarifies the point.

    Of course the reason why there is confusion in the first place may be intentional: people who want to avoid being labeled "atheists" move definitions around and create new labels to accomplish that goal.




    July 02

    continuation of eye evolution

    function [score,out]=visiontest(layer)      %Like the eye doctor for a brainless, computer generated eye.
    [nm,nn,nl]=size(layer);
    %xx=reshape(layer(:,2,:),nm,nl);             %Calculate x and y coordinates
    %yy=reshape(layer(:,3,:),nm,nl);             %for eye for display.
    raymult=10; numpos=nm;                      %Number of angles at which to test vision.
    r=10*max(max(layer(end,2:3,:)));            %Calculate safe distance (not inside eye).
    rayth=atan2(layer(nm,2,nl)-0 ,r-layer(nm,3,nl));%Calc angle from center to outside of outer layer.

    for ii=1:numpos
        %hold off;plot(xx,yy,'.-');axis([-r/10,r/5,-r/10,r/5]);hold on;
        theta=pi/2/numpos*(ii-1);               %Put object at angles as measured
        x=r*sin(theta); y=r*cos(theta)+max(max(layer(:,3,:)));%clockwise from straight ahead.
        out(:,ii)=retina(layer,x,y,raymult,rayth);%Get output on retina from source @ (x,y).
        %pause(.3);
    end                                

    ret=sum(sum(out')~=0);                      %Number of used retinal cells
    s=sqrt(sum(out.^2));                        %Magnitude of retinal response at each angle
    f=find(s~=0);                               %Angles for which response exists (in fov)
    fov=length(f);                              %Number of angles inside field of view
    focus=mean(sum(out(:,f)~=0))/fov;           %Mean number of retinal cells responding at each angle
    lightr=mean(max(out(:,f)))/raymult/nm/numpos;%Intensity of image seen, % of light recieved/light sent
    %tst=out(:,f)'*out(:,f)./(s(f)'*s(f));       %Cosine of angles between retinal activation patterns:
    %percept=sum(sum((eye(length(f))-tst).^2));  %Linear independance of patterns from each source angle
    %complex=1+nm*nl/1000;                       %Punishes unecessary complexity
    %light=sum(sum(out))/raymult/nm/numpos;      % % of light hitting retina
    score=(nm-ret)/ret+focus/lightr;                     %Fitness measure (lower=better)
    %[focus,ret,light,score]                     %wants exactly one retinal cell to
                                                %respond strongly for each angle,
                                                %i.e. a bright, focused image.

    function out=retina(layer,x,y,raymult,rayth)
    %monte carlo method; generates nm random rays from point (x,y) and counts hits on retina
    [nm,nn,nl]=size(layer); out=zeros(nm,1);
    thl=atan2(layer(1,2,nl)-x ,y-layer(1,3,nl));%Calc angle to center of outer layer.
    thr=atan2(layer(nm,2,nl)-x,y-layer(nm,3,nl));%Calc angle to extreme of outer layer.
    thcen=(thl+thr)/2;                            %Calc angle to center.
    thl=thcen-rayth; thr=thcen+rayth;             %Reset to consistant boundaries.
    for ii=1:raymult*nm                            %Proportionally to resolution of retina,
        theta=(thr-thl)*rand+thl;                 %generate random ray hitting epithelium of eye.
        rout=raytrace(layer,x,y,theta);            %Run raytracer below, and
        if rout(1)~=0                              %if ray hits retina,
            out(rout(1))=out(rout(1))+rout(2);     %add result to correct retinal cells.
            out(rout(1)+1)=out(rout(1)+1)+1-rout(2);
        end
    end


    function out=raytrace(layer,x,y,th)
    %uses linear interpolation of properties specified in "layer" to track light ray
    % from x,y @ angle th to retina of eye
    %angle is measured from down, positive to the right
    [nm,nn,nl]=size(layer); out=[0,0,0];                    %Zero output flag.
    for ll=nl:-1:1                                          %Loop over all layers:
        %xold=x; yold=y;
        thhit=[0,0,1000000];                                %Initialize variable to store segment.
        for mm=1:nm                                         %Loop over all segments:
            thtest=atan2(layer(mm,2,ll)-x,y-layer(mm,3,ll));%Calculate angle from source to current cell.
            d=(layer(mm,2,ll)-x)^2+(layer(mm,3,ll)-y)^2;    %Calculate distance to current cell.
            if mm~=1&&d<thhit(3)&&thold(1)<=th&&th<thtest   %If ray hits this segment, and is closer
                thhit=[thold(1:2),d];                       %than last hit segment, remember this.
            end
            thold=[thtest,mm,d];                            %Right bound becomes left bound of next segment.
        end
        if thhit(2)==0                                      %If no segment is hit,
            return;                                         %no retinal response.
        end
        xl=layer(thhit(2),2,ll); xr=layer(thhit(2)+1,2,ll); %Get left and right
        yl=layer(thhit(2),3,ll); yr=layer(thhit(2)+1,3,ll); %coords of segment
        x0=x; y0=y;                                         %and source.
        cth=cot(th);                                        %Calculate slope from source to layer,
        x=((xl-xr)*y0+xr*yl-xl*yr+x0*xl*cth-x0*xr*cth)/...
            (yl-yr+(xl-xr)*cth);                            %then calculate x and y coords of
        y=(y0*(yl-yr)+(xl*yr-xr*yl+x0*(yl-yr))*cth)/...
            (yl-yr+(xl-xr)*cth);                            %intersection of ray with layer.
        q=norm([xl,yl]-[x,y])/norm([xl,yl]-[xr,yr]);        %Calc % of direction from left cell to interpolate properties.
        segang=atan2(yr-yl,xr-xl);                          %Calculate angle of segment hit by ray.
        th=th-segang;                                       %Snell's law requires angle of ray relative to segment.
        if ll==nl                                           %Calculate index of refraction before transition,
            n1=1;                                           %assuming that n=1 for environment,
        else
            n1=q*layer(thhit(2),1,ll+1)+(1-q)*layer(thhit(2)+1,1,ll+1);%and n for anything else is specified.
        end
        %plot([xold;x],[yold,y]);   %Display rays (not recommended except for making graphics for presentations).
        if ll~=1                                            %If not on retina,
            n2=q*layer(thhit(2),1,ll)+(1-q)*layer(thhit(2)+1,1,ll);%calculate index of refraction after transition,
            th=asin(sin(th)*n1/n2);                         %and angle of refraction from Snell's Law:
                                                            %n=c/vp, sin(th1)/sin(th2)=v1/v2=n2/n1
            if imag(th)~=0                                  %If total internal reflection,
                %plot(x,y,'rx');
                return;                                     %(past critical angle) ignore ray.
            end
            th=th+segang;                                   %Get angle relative to absolute coordinate frame.
        end
    end
    out=[thhit(2),q,d];             %Return index of retinal cell left of where ray hit, and interpolation value.

    Eye evolution

    Purpose of writing this program:
    I started reading RichardDawkins.net, read a few of his books, and later started reading Pharyngula. "Climbing Mount Improbable" and "The Selfish Gene" are a better description of evolution than anything else I've ever seen. I'll admit to having some doubts as to how an unintelligent evolutionary process could produce complexity, but they were demolished by those books. At some point one of those sites linked to something that linked to some creationist site (I can't find it now) claiming that a computer program reproducing eye evolution referenced in "Climbing Mount Improbable" doesn't actually exist. I found that paper, and it in fact describes the small changes that could occur producing advanced eyes from simple light detecting cells in order to calculate the time necessary, and does not claim the authors produced a computer program reproducing this.
    I wrote a quick and dirty version of such a program.

    Why I am posting this:
    I wanted this code to be openly available. This is intended mostly for engineering students, or people in a university setting in general. Apparently there are more creationists among engineers and computer scientists (and physicians and mathematicians) than biologists, chemists, or physicists. I've met some of them. This program is written in MATLAB, which is an industry standard for engineering, and should be available to every engineering student in the country (probably the world). MATLAB is a relatively easy language, and the code is heavily commented, so I expect any engineer to be able to read it. Those of you who know creationist engineering students can challenge them to look at and run this program, and find a problem.

    Preemption of criticism:
    I know there are issues with the ray tracer: I made assumptions when writing it that the algorithm naturally did not respect (damn unguided evolution). The most obvious is that it is two dimensional, and has constructed things that would never occur in three dimensions. Similarly, I am not a biologist, so nothing here represents the real development of an eye, nor is it subject to the same physical limitations. Finally, the fitness functions used are constant, and naturally don't take into account everything that would matter in an organism.
    The program does demonstrate the evolution of complex structures that perform useful functions from simpler ones, which was MY goal in the first place. The inaccuracies mentioned don't change the fact that an unintelligent algorithm (anyone feel like arguing that?) creates complexity (same question) based on Darwinian principles of variation generated by random mutation selected by relative fitness. It just happens to be part of an artificial structure selected in an artificial universe according to its artificial laws of physics.
    I know there are better ways to implement many parts of this. Maybe someday I will. If you modify something here and get a useful result, please send it to me, so I can post it here.
    My next post will show how to use the program and some results and conclusions.

    =======================================================================================================
    %version 5
    function [besteye,bestem,score,out]=evolveeye(n,emin,s)%data fields on emin: refractive index, x delta, y delta for each cell
    %allows an eye to evolve from a flat plate of light sensing cells
    format short g
    if exist('s','var')
        rand('state',s);
    end
    embryo{1}=emin; ss=1; fn=1;                 %Set save to file parameters.
    for tt=1:n                                  %generational loop:
        layer{1}=groweye(embryo{1});            %Create
        [score,out]=visiontest(layer{1});       %and test parent eye.
        best=[1,score];                         %Initialize structure to track most successful mutant.
        for ii=2:10                             %population loop:
            embryo{ii}=mutateall(embryo{1});    %duh
            layer{ii}=groweye(embryo{ii});      %Create
            [score,out]=visiontest(layer{ii});  %and test mutant eye.
            if score<best(2)                    %New best variant found,
                best=[ii,score];                %save appropriate data.
            end
        end
        [tt,best(2)]                            %Display progress.
        embryo{1}=embryo{best(1)};              %Best variant from this generation
        layer{1}=layer{best(1)};                %becomes parent to the next.
        [nm,nn,nl]=size(layer{1});
        c=reshape(layer{1}(:,1,:),nm,nl);       %Prepare shading for plot.
        x=reshape(layer{1}(:,2,:),nm,nl);       %Prepare x coords for plot.
        y=reshape(layer{1}(:,3,:),nm,nl);       %Prepare y coords for plot.
        figure(1);hold off;colormap('gray');contourf(x,y,c);%Shade refractive index.
        hold on;plot(x,y,'.-');%axis equal      %Plot current eye.
        if mod(tt,10)==0||tt==n                 %Store every tenth generation
            saveeye{ss,1}=layer{1};
            saveeye{ss,2}=embryo{1};
            ss=ss+1;
            if ss==11||tt==n                    %and save to file every hundreth generation.
                eval(sprintf('save eye%03d saveeye',fn));
                ss=1; fn=fn+1;
            end
        end
        pause(.01);                             %Necessary to update display.
    end
    score=best(2);                              %Set useful outputs.
    besteye=layer{1}; bestem=embryo{1};

    function layer=groweye(em)
    %grows an eye from a "stem cell" defined by a location and property
    %using programmed embryology defining change in location and
    %properties for each new cell.
    [nm,nn,nl]=size(em); layer=zeros(2*nm-1,nn,nl);
    for ll=1:nl                                     %loop over all layers of eye:
        for mm=1:nm                                 %loop for radial position of eye:
            if ll==1&&mm==1                         %Start point is
                layer(nm,:,1)=em(1,:,1);            %defined by stem cell.
            elseif mm==1                            %First axial position is
                layer(nm,:,ll)=layer(nm,:,ll-1)+... %modified from cell below
                    em(1,:,ll);                     %by embrylogy instructions.
            else                                    %Other cells are
                layer(nm+mm-1,:,ll)=...             %modified from next cell axially
                    layer(nm+mm-2,:,ll)+em(mm,:,ll);%by embrylogy instructions
                layer(nm-mm+1,:,ll)=...             %in both directions horizontally.
                    layer(nm-mm+2,:,ll)+[1,-1,1].*em(mm,:,ll);
            end
        end                                         %end radial loop
    end                                             %end layer loop

    function em2=mutateall(em)
    %Add random data to embryology and correct to physical posibilities.
    [nm,nn,nl]=size(em); mutmag=.001; sizefreq=.0001;
    %mutmag=.0001 goes nowhere after 8000 iterations
    em2=em; resizer=rand; r2=rand;                  %Random value to add new axial or radial positions.
                                                    %Matlab command provides
                                                    %equal probability distribution between 0 and 1.

    if resizer<sizefreq                             %sizefreq% chance of
        tmpi=floor(nm*r2)+2;                        %inserting new layer
        if tmpi-1>0&&tmpi<nl                        %at random position
            em2(:,:,tmpi+1:end+1)=em(:,:,tmpi:end); %either by interpolating
            em2(:,:,tmpi)=(em2(:,:,tmpi+1)+em2(:,:,tmpi-1))/2;
        else
            em2=em; em2(:,:,end+1)=em(:,:,end);     %or copying onto the outside.
        end
    elseif nl>2&&resizer<2*sizefreq                 %given enough layers,
        tmpi=floor(nl*r2)+1;                        %sizefreq% chance of
        em2=em(:,:,[1:tmpi-1,tmpi+1:end]);          %losing random layer.
    elseif resizer<3*sizefreq                       %sizefreq% chance of
        tmpi=floor((nm+1)*r2)+1;                    %randomly inserting new radial station
        if tmpi>1&&tmpi<nm                          %by either interpolation,
            em2(tmpi+1:end+1,:,:)=em(tmpi:end,:,:);
            em2(tmpi,:,:)=(em2(tmpi+1,:,:)+em2(tmpi-1,:,:))/2;
        elseif tmpi==1%add center
            em2(tmpi+1:end+1,:,:)=em(tmpi:end,:,:); %copying a new center,
            em2(1,:,:)=em(1,:,:);
        else%add end
            em2=em; em2(end+1,:,:)=em(end,:,:);     %or copying the outermost location.
        end
    elseif nm>2&&resizer<4*sizefreq                 %given enough radial stations,
        tmpi=floor(nm*r2)+1;                        %sizefreq% chance of
        em2=em([1:tmpi-1,tmpi+1:end],:,:);          %losing random radial station.
    end
    [nm,nn,nl]=size(em2);
    em2=em2+mutmag*randn(nm,nn,nl);                 %Generate variation in genome,
    em2=fixeye(em2);                                %and repair any impossibilities.

    function em2=mutate(em)
    %Add random data to embryology and correct to physical posibilities.
    [nm,nn,nl]=size(em); mutmag=.001; sizefreq=.0025;
    em2=em; resizer=rand; r2=rand;                  %Random value to add new axial or radial positions.
                                                    %Matlab command provides
                                                    %equal probability distribution between 0 and 1.

    if resizer<sizefreq                             %sizefreq% chance of
        tmpi=floor(nm*r2)+2;                        %inserting new layer
        if tmpi-1>0&&tmpi<nl                        %at random position
            em2(:,:,tmpi+1:end+1)=em(:,:,tmpi:end); %either by interpolating
            em2(:,:,tmpi)=(em2(:,:,tmpi+1)+em2(:,:,tmpi-1))/2;
        else
            em2=em; em2(:,:,end+1)=em(:,:,end);     %or copying onto the outside.
        end
    elseif nl>2&&resizer<2*sizefreq                 %given enough layers,
        tmpi=floor(nl*r2)+1;                        %sizefreq% chance of
        em2=em(:,:,[1:tmpi-1,tmpi+1:end]);          %losing random layer.
    elseif resizer<3*sizefreq                       %sizefreq% chance of
        tmpi=floor((nm+1)*r2)+1;                    %randomly inserting new radial station
        if tmpi>1&&tmpi<nm                          %by either interpolation,
            em2(tmpi+1:end+1,:,:)=em(tmpi:end,:,:);
            em2(tmpi,:,:)=(em2(tmpi+1,:,:)+em2(tmpi-1,:,:))/2;
        elseif tmpi==1%add center
            em2(tmpi+1:end+1,:,:)=em(tmpi:end,:,:); %copying a new center,
            em2(1,:,:)=em(1,:,:);
        else%add end
            em2=em; em2(end+1,:,:)=em(end,:,:);     %or copying the outermost location.
        end
    elseif nm>2&&resizer<4*sizefreq                 %given enough radial stations,
        tmpi=floor(nm*r2)+1;                        %sizefreq% chance of
        em2=em([1:tmpi-1,tmpi+1:end],:,:);          %losing random radial station.
    end
    [nm,nn,nl]=size(em2);
    c=[ceil(nm*rand),ceil(nn*rand),ceil(nl*rand)];  %At random location in genome,
    em2(c(1),c(2),c(3))=em2(c(1),c(2),c(3))+mutmag*randn;%generate point mutation,
    em2=fixeye(em2);                                %and repair any impossibilities.

    function em2=fixeye(em)
    %Add random data to embryology and correct to physical posibilities.
    constr=.2;
    em2=em;
    [nm,nn,nl]=size(em2);
    test=groweye(em2);                             %Make eye to look for problems.

    % c=reshape(test(:,1,:),2*nm-1,nl);       %Make data and show running plot.
    % x=reshape(test(:,2,:),2*nm-1,nl);       %Make data and show running plot.
    % y=reshape(test(:,3,:),2*nm-1,nl);
    % figure(1);hold off;colormap('gray');contourf(x,y,c);
    % hold on;plot(x,y,'.-');%axis equal
    km=nm-1;                                    %Embryo to eye index conversion
    for ll=1:nl                                 %Loop over all layers of eye:
        for mm=1:nm                                %Loop for radial position of eye:
            if mm==1                               %Center of layer is constrained to axis of eye.
                em2(mm,2,ll)=0;
            elseif em2(mm,2,ll)<0                 %Radial distance between points
                em2(mm,2,ll)=0.01;                 %is constrained by minimum value.
            elseif em2(mm,2,ll)>constr
                em2(mm,2,ll)=constr;
            end
            if mm==1&&ll==1
                em2(mm,3,ll)=0;
            elseif mm==1&&em2(mm,3,ll)<0
                em2(mm,3,ll)=0;
            elseif abs(em2(mm,3,ll))>constr        %Radial distance between points
                em2(mm,3,ll)=sign(em2(mm,3,ll))*constr;             %is constrained by minimum value.
            end
            if test(mm+km,1,ll)<1               %If refractive index is not physically
                em2(mm,1,ll)=em2(mm,1,ll)+1-test(mm+km,1,ll);%possible, correct this.
            end
            test=groweye(em2);
            if ll>1                               %For layers above the retina,
                if mm==1||km<=1                   %y location of layer below is calculated
                    y=test(mm+km,3,ll-1);          %knowing that the center of that layer
                else                               %is directly below this center,
                    tmpi=find(test(nm:end,2,ll-1)>test(mm+km,2,ll));
                    if length(tmpi)==0             %or by finding the points under the current point
                        tmpi=nm;
                    end
                    tmpi=tmpi(1)+km;              %and interpolating the height below the current point.
                   

    y=(test(mm+km,2,ll)-test(tmpi-1,2,ll-1))/(test(tmpi,2,ll-1)-test(tmpi-1,2,ll-1))*(test(tmpi,3,ll-1)-test(tmpi-1,3,ll-1))+test(

    tmpi-1,3,ll-1);
                end
                if test(mm+km,3,ll)<y             %The current layer is constrained to not be below
                    em2(mm,3,ll)=em2(mm,3,ll)+y+0.01-test(mm+km,3,ll);%the underlying layer.
                elseif test(mm+km,3,ll)>y+constr       %The current layer is constrained to not be >constr
                    em2(mm,3,ll)=em2(mm,3,ll)+y+constr-test(mm+km,3,ll);%over the underlying layer.
                end
            end
            test=groweye(em2);                   %Test eye is regenerated to account for modifications.
        end                                     %end radial looptest=groweye(em2);
    end
    % c=reshape(test(:,1,:),2*nm-1,nl);       %Make data and show running plot.
    % x=reshape(test(:,2,:),2*nm-1,nl);       %Make data and show running plot.
    % y=reshape(test(:,3,:),2*nm-1,nl);
    % figure(2);hold off;colormap('gray');contourf(x,y,c);
    % hold on;plot(x,y,'.-');%axis equal

    Continued here.
    May 28

    Science, Skepticism, and Flat Earth

    Science, Skepticism, and Flat Earth

    The amount of scientific investigation had lead to a situation where far more information about the universe is known than any one person could ever learn. Therefore, even though science is all about openness and reproducibility, everyone can't check everything. Therefore, even though some people know that quantum theory works or know how an engine works, most other people only believe quantum theory is what physics professors say, or believe that engines work the way engineers say they do. For a few aspects of science, some random group of people for whatever reason decides not to believe blindly. Since science is open and reproducible, these people could learn and know that whatever they doubted is true, but scientists are usually not the best at making such information easily available and comprehensible.
    When people are skeptical of a claim, there are a few methods of dealing with it. As discussed here, one can investigate scientifically, i.e. proposing hypotheses and then developing experiments to test them. A scientist will then admit when an hypothesis is falsified by those experiments, and work on a new one. A "kook" will generally not do experiments, but instead insist that others do them to prove things. Kooks will then reject as biased or inaccurate any experiment that does not produce the results they wanted. An interesting case study of this phenomenon is the Flat Earth Society, who have decided that the Earth is actually flat, and that the US, Russian and Chinese governments and space agencies are conspiring to hide that information. Given the case they present, most people probably believe the Earth is round, but do not know it. Here I will demonstrate how a scientist would investigate this question.

    The conventional model:

    The earth is an oblate spheroid with a polar radius or 6356.8 km and an equatorial radius of 6378km. Due to gravitational interaction, it orbits the sun, which has a radius of 6.96E8m, with a semi-major axis of 149597887.5km once every 365.256 days (the .256 creates the need for leap days).
    For more information, see The Sun and The Earth Wikipedia pages.

    The flat earth model:

    Information from The Flat Earth Society Homepage.
    The earth is a 24900 mile disk, with the North pole at its center. The sun and moon are 32mile diameter spotlights at a height of 3000miles that circle the north pole over the equator. Since they are spotlights, only part of the earth is illuminated at any given time. Gravity is not real, things fall because the earth, moon, and sun are accelerating upward at 9.8m/s.

    The evidence:

    geometry and astronomy:

    Sunrise and sunset and time zones are superficially addressed by the flat earth model, but in a very hand wavy way. The sun appears to rise in the east and set in the west. North of the Tropic of Cancer, the sun is always to the south of vertical, and south of the Tropic of Capricorn, it is always to the north. The flat earth model described would predict that the sun would not move more than a few degrees from vertical, and rather than setting, would just appear to fade out.
    The ancient Greek, Eratosthenes calculated the radius of the Earth in 240 BCE. His method begins with the knowledge that the sun is far enough away to be treated as a parallel ray source, which can easily be demonstrated. Then the difference in angle between the sun and the ground in two different locations is used to determine the difference in ground orientation between the two locations.
    travel time between cities-> distance between cities
    One can see satellites, and the international space station, for more information, see heavens-above.com.
    More evidence the ancient Greeks noticed: when a ship was approaching shore, the masts and sails became visible first, then the rest of the ship, while on a flat earth, one would expect to see the entire ship at all times until it became a featureless dot. At the flat earth forum here people seemed unable to comprehend that point.

    inertia:

     Coriolis effect & hurricanes
    The following devices demonstrate the difference between an inertial frame and the rotating earth:
    Foucault's Pendulum
    gyroscope
    or with modifications a gyrocompass

    gravity:

    Gravity has been observed to vary from the poles to the equator and with altitude.
    The Cavendish experiment which is used to determine the gravitational constant. It involves a torsional pendulum (a bar with two lead balls on the ends supported by a wire), which twists according to the force applied. Placing more lead spheres near the ones suspended on the wire causes a measurable deflection, which allows the gravitational attraction between the spheres in the horizontal plane to be measured. Pasco sells one for physics lab classes. This effect was mentioned in a flat earth forum and its scientific merit was completely ignored.

    Conclusion

    I am posting the following message on a flat earth society forum:
    There are many observations one can make that fit a round earth model but not a flat earth one. Many of them have already been brought up in these forums, and never satisfactorily answered. To save space and repetition here, I will simply provide a link ([url]http://qbsmd.spaces.live.com/blog/cns!5BA0601679A003C2!111.entry[/url]) containing all of those observations. The purpose of this post is to ask what, if any observations do you claim support a flat earth model, that do not support a round earth model?





    April 15

    Expelled


    In response to PZ Myers' request, I am adding a link here to Expelledexposed.com, in order to help increase this site's visibility relative to the dishonest propaganda it exposes for people searching for information about Expelled, The Movie.
    March 25

    test

    This is a test of blog functionality.