Wednesday 27 June 2007

Shame on the BMA

The number of abortions carried out in England and Wales has been steadily increasing from the moment it was legalised 40 years ago.

In 1968, the first year after abortion was legalised, just over 22,000 terminations were carried out. In 2006 the figure was a staggering 193,700. (Source: http://www.dh.gov.uk/)

The vast majority of abortions - almost 97% - are because of "injury to the physical or mental health of the pregnant woman" - a broad category which covers almost every cause of an unwanted pregnancy.

And what does the BMA call for in response? To relax the rules even further and to make access to abortion even easier.

They should be ashamed of themselves.

Friday 22 June 2007

Drawer Your Own Conclusions


From the London Metro, 21 June 2007. (Sorry about the poor image quality.)

Thursday 14 June 2007

De-Junking DNA

It is becoming more and more apparent that so-called "junk DNA" is not junk after all.

Like so-called vestigial organs, some atheists have claimed that large portions of the human DNA is an evolutionary artefact that serves no present-day purpose.

According to a recent BBC News article, new research, part of the Encyclopaedia of DNA Elements (Encode) study, suggests "genes, so called junk DNA and other elements, together weave an intricate control network".

The researchers focussed on 1% of the human genome sequence, carrying out 80 different types of experiments that generated more than 600 million data points.

The surprising results, explained Tim Hubbard from the Wellcome Trust Sanger Institute, "transform our view of the genome fabric".

Previously, genome activity was thought of in terms of the 22,000 genes that make proteins - the functional building blocks in our cells - along with patches of DNA that control, or regulate, the genes.

The other 97% or so of the genome was said to be made up of "junk" DNA - so called because it had no known biological function.

However, junk DNA may soon need a new moniker.

Dr Hubbard said: "We are now seeing the majority of the rest of the genome is active to some extent."

He explained that the study had found junk DNA was being transcribed, or copied, into RNA - an active molecule that relays information from DNA to the cellular machinery.

He added: This is a remarkable finding, since most prior research suggested only a fraction of the genome was transcribed."

Once again we see evidence that we are "fearfully and wonderfully made". I don't hold out much hope, though, that mainstream biologists will at last start to acknowledge the hand of the superb designer in what they are studying.

Thursday 7 June 2007

Working with GetOpenFileName

In Excel 2003 VBA, you can use GetOpenFileName to display the standard Open dialog box. If you set the MultiSelect parameter to True it is supposed to return an array of file names from the user. It returns False if the dialog is cancelled.

One standard way of calling this function is along the following lines:

Dim fileNameList
Dim fileNum As Integer

fileNameList = Application.GetOpenFilename( _
      "Text Files (*.txt), *.txt", _
      1, "Select One Or More Files To Open", , True)

If fileNameList <> False Then
  For fileNum = 1 To UBound(fileNameList)
    Call ProcessFile(fileNameList(fileNum))
  Next fileNum
End If

However — even when MultiSelect is True — GetOpenFileName doesn’t always correctly return a variant array; sometimes it returns just a single file name. This causes a Type Mismatch error on the subsequent call to UBound.

The following alternative code can be used as a workaround. It tests whether the function has returned a string or an array and acts appropriately:

Dim fileNameList
Dim fileName As String
Dim fileNum As Integer

fileNameList = Application.GetOpenFilename( _
      "Text Files (*.txt), *.txt", _
      1, "Select One Or More Files To Open", , True)

If fileNameList <> False Then
  If TypeName(fileNameList) = "String" Then
    fileName = fileNameList
    Call ProcessFile(fileName)
  ElseIf TypeName(fileNameList) = "Variant()" Then
    For fileNum = 1 To UBound(fileNameList)
      fileName = fileNameList(fileNum)
      Call ProcessFile(fileName)
    Next fileNum
  End If
End If