Archive | 2005

Cure Is A Four Letter Word.

14 Nov

But then again, so is ‘love’.

Do you know what? I’m tired of fighting with people. I’m coming off the worst flu I’ve had for nearly 6 years, my wife’s had it, our kids have all had it and I’m physically, emotionally and motivationally drained.

All I wanted when I started this was to document my autistic daughters progress, make the odd little web development post here and there and stand up for what I believe is right. What I believe is right is that autistic people should be respected. I believe society should change to accommodate difference. In the same way that women are equal to men, people of different cultures and creeds are equal to the dominant population in whichever country you live in, senior citizens are as important as young people, homosexuality is as normal (whatever the hell that is) as heterosexuality – people with a different neurology *irrespective of its cause* are just as valid and deserving of rights, consideration and an equal voice as those of us with a typical neurology.

_Is that really so difficult to deal with?_

Autism is not a childhood condition. It first _occurs_ in childhood. Take a look around you. Read the reports. Study the science. Examineour history.

Look, I’ll give you this – its entirely possible autism could be caused by mercury. In some cases. But please try and _think_. All the Amish in the world don’t add up to an autism/vaccine epidemic. All the recovered children in JB’s PDF’s and Erik’s AVI’s don’t add up to a cure.

Why? What is it you think you are curing? If your child doesn’t smear, or headbutt or have constipation – does that mean they are not autistic? _No_. It means they’re not constipated or headbutting or smearing anymore. If thats your child then I offer you my sincere congratulations. I don’t want your child to be in pain any more than I want my child in pain. But I would urge you to be very careful – your child almost certainly still thinks and interacts in ways that are very different than you do. Would that be enough justification for you to carry on ‘curing’? If so, why?

Ginger presents the best argument of all. She says that if a child is likely to grow into an adult that cannot communicate their needs – especially when that person is in danger – then it is worth it to attempt a ‘cure’. And she certainly has a lot of very good evidence that autistic people are routinely abused.

I have no easy answer to this argument. When I read it, I’ll freely admit it, I want to remove everything that threatens my daughter. But is that right? In one way its absolutely right – every parent has a duty to keep their kids safe.

But, I agree with Susan Senator who said:

The “must eradicate” attitude drives parents to be nothing but nutritionists, behaviorists, and therapists, for their children. These parents, however motivated by doing their children good, end up spending most of their parenting time trying to subjugate aspects of their children.

No child – of any neurology – can be kept 100% safe unless you want to take them and wrap them up in cotton wool. Pre-empting Ginger, I think she’d say that this isn’t a case of wrapping them up but of giving them every chance to be independent enough to recognise danger and be able to do something about it. Certainly when I read some of what Amanda Baggs has had to endure at the hands of ‘carers’ my blood boils and my heart quails.

But. I believe that autism is not the cause of this misery. Attitude is. Institutionalised and abusive staff are. The non-recognition of autistic people as having a valid existence causes these attitudes to grow. When someone says ‘all autism is mercury poisoning’, that is essentially taking someones existence and traducing it as poison and invalidating it as viable. As can be seen from the links provided – thiomersal cannot be responsible for all cases of autism. Autism existed before thiomersal. Thats simply a fact. To deny it is not only bizarre it is akin to taking someone by the scruff of the neck and telling them that because they are ill, they are not fit to make decisions and thus abuse is legitamised and around and around we go.

I don’t expect anyone who believes autism is mercury poisoning to give up on their idea. What I am asking is that you can try and at least meet those of us on the ‘other side’ halfway. Try and understand that painting everyone with one brush is tantamount to little more than bigotry. I asked JB once to recant just one aspect of his belief – that all autism is mercury poisoning now and forever. I ask him again, with all respect. If you are an advocate for autism then please try and see that in this one respect you are wrong. All autism is _not_ caused by thiomersal. This isn’t a game. Nobody’s keeping score. I’m more than happy to entertain the possibility that for some children who have become autistic that there is an environmental trigger. If there is ever science that conclusively demonstrates a causative link I swear to you that I will be as vocal in going after the guilty as I am now in going after people like Rashid Buttar. As I say, what I ask in return is that you _see_ that you truly look at the world of autism beyond your child. Look without melodrama and look without preconception. I am deathly afraid that one of the things you are doing is making the world for autistic people less safe. You’ve seen some of the things that a certain Rescue Angel of our mutual acquaintance has written here. JB himself expressed unease at what this person had said. Do you think that such a person is interested in advocating _for_ autistics?

Some people think that if you can communicate you cease to be autistic. Again, I see that as a willful and purposeful denigration of people who’s crime seems to be that they can communicate – the punishment is excommunication from who they are. Invalidated people. And for what? Why would anyone think such a thing? As Tolkein said: “what can we do against such reckless hate?”.

At the core of who I am is a belief in personal responsibility. I take responsibility for who I am and what I do. I believe its the cornerstone of what makes us free people. I will do everything I can to ensure that my kids all have that same belief. We have a duty to our society as well as our children. And society has a duty to us and them. Everything in life works better when its driven by reciprocality. I say society must change for the good of all our children _and_ adults as well. I reciprocate by doing my best to raise self-aware, self-confident children to adulthood. I cannot do that if who they are is withdrawn from them on the basis of political need. I don’t try and stop you from curing (if thats the word you choose to use) your kids. All I ask in return is that you stop insulting mine. If you are right and thiomersal causes autism then I will fight beside you. Will you fight beside me if I ask you to advocate _for_ autistics, instead of _against_ autism? Can you turn some of that energy and anger I see in chatrooms and blogs directed into action to enhance the lives of adult autistics? Can you do it without talking about mercury?

I’m not asking you to change your beliefs. We both know you don’t agree with mine and I don’t agree with yours. But there should be lots we can agree on. Can we?

E-commerce With PHP: Creating Unique Download Areas

10 Nov

I’ve posted a few snippets from the client-side that have touched on a project I’ve been working on recently. This project is an e-commerce based website that takes a payment (via WorldPay) and then generates a download of the product the shopper has just purchased.

Offering paid-for downloads via the web is a tricky proposition. There are lots of security factors that need to be considered. You don’t want your product to be actually on the webserver for example as its possible for someone to stumble across it and download it. On the other hand, you don’t want to make it very difficult for a user to get to the right place to download their product from – that would defeat the whole point.

The product we’re downloading is approaching 60mb in size so we have another issue – that PHP doesn’t handle downloads of big files very well. So we need to find some way of making sure PHP doesn’t choke.

Further complicating this particular solution was the fact that WorldPay doesn’t offer a ‘download’ solution – it only offers solutions for objects that are sent offline (books, CD’s, clothes, whatever) so I was limited in that respect.

The whole process is complicated. The shopper fills out their details (name, billing and shipping address, email, tel etc) on our site. These details first get input to our database and then get sent to WorldPay along with a unique id for this purchase. The shopper then fills out their card details which WorldPay then process. If the transaction is successful then a variable called ‘transStatus’ is set to ‘Y’. If its declined its set to ‘C’. This variable is sent via POST to a callback script which sits on our server (this part of the process is invisible to the shopper). The appropriate markup is generated via this callback script and sent back to the shopper at WorldPay. Part of this generated markup (assuming a successful transaction) includes a link with a variable appended to it (the unique id for this purchase) which points to a script back on our server. When the shopper clicks this link they get returned to our server and the download process starts in earnest.

At this point the script needs to do the following. First, it needs to compare the sent back value to a value in the db and pull out the purchase details that apply to that value. It then needs to generate a unique serial number (quick side note: this is returned to my script via an XML-RPC script that connects to a Java web service one of the developers wrote). It also needs to create a PDF invoice (quick side note no. 2: I used the rather marvelous R & OS PDF Class to generate the PDF).

What it also needs to do is create a new directory, copy a file from an old directory to this newly created directory and then send the newly created URI to the user. As a point of interest, you should note that the file that is being copied is _not_ the downloadable file. As this is over 60mb in size it makes no sense to copy this across for every shopper. Instead we copy across a very small file that triggers a download of the downloadable product file. OK so first of all I uploaded the downloadable file _and_ the file to be copied into a directory _above_ the web root, thus ensuring they can’t be browsed to. I then set about creating the PHP to store the download script:

$oldPath = "/home/somedir/";
$filename = "myscript.php";

So, first we set two variables; the path to the directory above the web root that contains the download script and the name of the download script itself.

if (file_exists($oldPath . $filename)){
	
		$mdy = date("mdy");
		$hms = date("His");	
		$rightnow = $mdy.$hms;
		$dir = md5($rightnow);		

Next we open a check to ensure the file exists,r eferencing the two variables we set up first. If the file _does_ exist then we create a fairly random string of letters and numbers by taking the current date, current time, appending them together (no spaces or punctuation marks) and then hashing them using the md5() function. This pretty randomised string of letters and numbers will be the name of the directory we’re going to create.

$newDir = "/home/somedir/public_html/dowmloads/" . $dir;	
mkdir($newDir, 0777);

So here we actually create the new directory – first we use the new name and append it to the location we want the new directory to live in and then we do the actual creation using mkdir(). Note that we set the access rights to this new directory in the second parameter of the function.

$newLoc = $newDir . "/" . $filename;		
$oldLoc = $oldPath . $filename;
			
copy ($oldLoc, $newLoc) or die ("Could not copy file");	
$uri = "http://www.blah.co.uk/downloads/" . $dir . "/" . $filename;

echo $uri;

Next we create two variables which contain a string referencing the new and old locations (i.e. where the file to copy exists now and where we want it to be copied to) and we then go ahead and actually copy the file over.

After that its a simple case of building the URI from a string and then doing what you want with it. Your original file (myscript.php) will now have been copied into the newly created directory. Just put an ‘else’ clause in to tidy up and the code in full is:

$oldPath = "/home/somedir/";
$filename = "myscript.php";

if (file_exists($oldPath . $filename)){
	
  $mdy = date("mdy");
  $hms = date("His");	
  $rightnow = $mdy.$hms;

  $dir = md5($rightnow);		
  $newDir = "/home/somedir/public_html/dowmloads/" . $dir;	
  mkdir($newDir, 0777);
		
  $newLoc = $newDir . "/" . $filename;		
  $oldLoc = $oldPath . $filename;
			
  copy ($oldLoc, $newLoc) or die ("Could not copy file");	
  $uri = "http://www.blah.co.uk/downloads/" . $dir . "/" . $filename;
		
  echo $uri;
		
} else {

  echo "Uh-oh, it went bad.";

}

So what about the file ‘myscript.php’? What does this do? Well, its there to actually grab the file that needs to be downloaded. Using lots of small files instead of lots of large ones makes a lot of sense. It also means we can script solutions for large files.

$filename = "/home/somedir/myprogram.exe";
$filename = realpath($filename);

if (!file_exists($filename)) {
 die("NO FILE HERE");
}

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename="".basename($filename)."";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".@filesize($filename));
set_time_limit(0);
@readfile("$filename") or die("File not found.");

The first two lines are straightforward. First create a reference to where the file to be downloaded resides. then use realpath() to get the absolute path. Now, after that we perform a simple check to ensure that the file is there. if not, error out. If yes, then proceed.

The interesting bits of this script are the Header declarations. These are necessary for various thigns to make sure the download is fetched properly.

header("Pragma: public") works with header("Content-Disposition") as a known issue with IE6 is that the filename attribute of Content-Disposition is not always recognised. Using Pragma: public resolves this.

Cache-Control: must-revalidate and Cache-Control: private, falseensures the file is never cached.

Content-Type: application/octet-stream is the content type for application files and Content-Transfer-Encoding: binary ensures the correct transfer type is used (binary in this case).

The all-important line here is set_time_limit(0);. The time limit refers to the amount of seconds that PHP allows a script to execute. The default is 30 seconds which is obviously no good for a 60mb file. By setting the time limit to zero we set no upper limit on script execution time.

Lastly, we use the readfile() function to actually start the download off. Job done.

Curious Search Terms

7 Nov

Every so often I amuse myself by trawling through the search terms people use on Google, yahoo etc to find their way here. Some of them are fairly obvious – I rank pretty well on autism and web related terms.

However I occasionally find some downright bizarre or otherwise funny terms. Some of them are so odd I simply can’t figure how any engine returned my site as a match. I thought what I’d so was to share some of the more odd phrase that turn up in my web logs on occasion.

can ingesting mice urine make humans sick?

Pure genius. This is one of those great questions that answers themselves. Simply remove the ‘Can’ and the ‘?’.

quack jeff bradstreet quack

OK, I agree but the funniest thing about this is the mental image of someone shouting “Quack Jeff Bradstreet, quack!” in some sort of demented orgy of duck-related flagellation.

ipods cause autism

I must admit that a mouthful of tea very nearly hit my monitor when I first read this. I feel sure that in the coming months we will see a rise of parent-lef groups campaigning to rid the world of evil MP3 playing devices. ITS THE MUSIC PLAYERS, STUPD!!

stop the pigeon

I loved that cartoon. Second only to Pinky and the Brain. I have no idea how it ended up in my web logs though.

play extremist deth

??? Are ‘extremist deth’ a group? Some kind of sick board game? It sounds like some sort of Metallica/Napalm Deth offshoot to me.

theres a voice keeps on calling me! down the road thats where i ll always be!!!

I frigging hated the Littlest Hobo. Sorry America. But this was such a surreal phrase to turn up in my web logs that it kept me giggling for hours.

naughty policewoman

Er…OK. There’s only one guy I know of who hangs about with Strippers and lap dancers (its his job the lucky git). I promise I don’t keep any ‘naughty policewomen’ related imagery.

Not on my web server anyway.

nicest ass in the internet

Heeyyyy…..thanks unknown searcher. Seriously though? I really doubt it. I’m large, shambling, hairy with wild eyes etc. And _in_ the internet?

how to say subjcts in french

I love irony as much as the next man.

powerpoint noise induced hearing loss

One of my personal favourites. Is there a support group for people who’ve lost their hearing due to Powerpoint related noise? If not, there really should be. The suits I know love to put swishy noises on there terminally dull presentations. Possibly someone got carried away in an apocolyptic cacophony of MS-plinky action noises.

how do i speak to my dead husband

OK now, I try not to be cruel but I defy anyone not to think wicked thoughts. Its not so much that this person wants to speak to their dead husband so much as she _searched the internet_ looking for sites to tell her how to do it.

And thats it for my web logs – got anything amusing, odd or downright peculiar lurking in your search terms?

Two Little Snippets

7 Nov

Part of my continuing quest to use Javascript in responsible, degradable ways is documented below.

I’m coming to the end of a development period that involved building an e-commerce solution and sign up procedure. I saw two possible uses for some nice unobtrusive Javascript here.

In the first example (and this is one is very simple indeed) I wanted a way to have a value in a form field as per WCAG 1.0 guidelines dictate. However, whenever I see these implemented, the author fails to clear the form when the field in question gains focus meaning a user has to manually clear the placeholder value themselves – something of a pain. The solution in this case is as simple as:

window.onload = function() {
	if (!document.getElementById) return false;	

	var e = document.getElementById("email");
	e.onfocus = function() {
		e.value = "";
		return false;
	}	
}

And the markup:


So, the Javascript first checks that the function we need is supported by the browser. If its not then thats that – it won’t work but nothing is visually affected and no error alerts will appear. The worst case scenario is that the user muse clear the field manually.

If getElementByID() _is_ supported then we declare an onfocus() function that clears the value – and thats that. Job done.

My second idea was to aid the process of filling out address details. In most cases when you are buying from an online shop you must specify and billing address _and_ a shipping address. Obviously, its easy to grab the values of one set of fields and marry them up with another set but all the solutions I’d seen had no non-js fallback position and most had loads of JS attrtibutes in the markup which is something I really want to avoid. So, first lets look at out form:

	

	

		<h2>Billing Address</h2>
	
		Address
		
		
		
		
		
		
		
		
		Town
		
		
		County
		
		
		Post Code
		
		
		Area
		
  		  United Kingdom
                  Australia
                  Belgium                     
                  Canada
                  Denmark
  		  France
                  Sri Lanka
                  Venezuela
                  Zimbabwe
				
			
		<h2 id="addLnk">Shipping Address</h2>
	
		Address
		
			
		
		
			
		
		
			
		Town
		
			
		County
		
			
		Post Code
		
			
		Area
		
			
	
	

*NB: No, thats not the whole form, this is just the bit we’re interested in.*

Now, what I wanted was an easy way for the billing address details to be copied to the correct shipping address sections but if the user had no JS then to leave the form exactly as it was. Here’s what I did:

window.onload = function() {
	if (!document.getElementById) return false;
	if (!document.createElement) return false;
	if (!document.createTextNode) return false;
	if (!document.getElementsByTagName) return false;

	var h = document.getElementById("addLnk");
	var p = document.createElement("p");
	var a = document.createElement("a");
 	a.href = "#ready";
	a.className = "ditto";
 	a.appendChild(document.createTextNode("Shipping address is the same as the Billing address"));
 	h.appendChild(p);
	p.appendChild(a);

	var z = document.getElementsByTagName("a");
	var x = document.getElementById("buyFrm");
	for (var i=0; i<z.length; i++) {
		if (z[i].className == "ditto") {
			z[i].onclick = function() {
				x.sh_add1.value = x.add1.value;
				x.sh_add2.value = x.add2.value;
				x.sh_add3.value = x.add3.value;
				x.sh_town.value = x.town.value;
				x.sh_county.value = x.county.value;
				x.sh_pcode.value = x.pcode.value;
				x.sh_area.value = x.area.value;
				return false;
			}
		}
	}
}

The first four lines check that all the functions we need are available in the users browser. If they're not then nothing gets executed, nothing happens and the suer has the markup above presented to them.

The next section firstly looks for an element with an id of 'addLnk' (look in the markup above for it) and when it finds it, it dynamically creates then appends the following bit of markup:

Shipping address is the same as the Billing address

The link to ‘#ready’ simply moves the user down to the submit button (not shown in the above markup) for another added usability wrinkle. The meat of what this link does is triggered from the class ‘ditto’. Take a look at the last section of Javascript. This basically says that when a link with a class name of ‘ditto’ is clicked then copy the contents of one set of fields to the other. And thats it – job done here too.

These are both very simple bits of scripting but I hope they demonstrate real world practical use but executed in a way that ensures that the code is graceful in its degradation, accessible and separate from the semantic level.

Andrew Wakefield: Beginning To Regret Libel Case?

6 Nov

There’s new legal paperwork up at Brian Deer’s personal site. It reveals some very interesting facts about two things: First that Andrew Wakefield is instructing his legal team to use his Libel action against Brain Deer as a ‘gagging order’ and secondly that Andrew Wakefield is obviously getting extremely nervous about the effect his GMC hearing will have on his Libel case.

There are three separate actions involving Andrew Wakefield and Brian Deer. One is between Wakefield and the Sunday Times, the other between Wakefield and Brain Deer personally (in respect of his website) and a third one (the one under discussion here) between Wakefield and Channel 4/Twenty twenty Productions.

The ruling judge in this case first said that it was certain that the outcome of just one of these actions would determine the outcome of the others as all three rest on the exact same subject matter. [edit – not sure I got that exactly right – if anyone reads it and comes to a different conclusion, please let me know]

Andrew Wakefield has applied for a ‘stay’ in this case (the C4/2020 one). This means he essentially wants to put this action ‘on hold’. He wants to do this because he claims that the GMC case has seniority over this one. Justice Eady remained distinctly unimpressed with this argument:

In the light of this timescale, it is impossible to envisage the trial of these libel proceedings taking place before the Michaelmas term of 2007. Much of the evidence relating to the issue of justification relates to the mid-90s and a delay of that kind would be plainly undesirable. It would, moreover, involve a gap of three years between the broadcast in question and the trial. That is beyond what is normally regarded as acceptable in the modern climate for the span of a libel action between publication and trial – even in a complicated case…

In British law it is part of the case to consider that a Libel action should be acted on as hastily as possible as the defendant may have good need to clear their name – people like Brian Deer for example who, as an investigative journalist, needs to be trusted to be employable.

So why would Wakefield wish to grant a stay to after the GMC hearing? Because he wants to ‘test the water’ with the GMC action which at most can strip him of his license – a minor inconvenience for one who’s already making a living in Texas – whereas a libel action can strip him of a hell of a lot more. I’m guessing that when things go bad for him and the GMC strip him of his license that all other actions will be quietly dropped.

However, even though he has asking for a stay of this particular action Andrew Wakefield is not above using it as a weapon to browbeat people:

These factors loom even larger in the present case in the light of certain conduct on the Claimant’s part which Miss Page has prayed in aid. It is her case that *the Claimant is seeking to take full advantage of the fact that he has issued libel proceedings while avoiding any detailed public scrutiny of the underlying merits*. In other words, she argues, he is seeking to adopt a strategy comparable to that generally characterised by the phrase “a gagging writ”. It is necessary to consider these allegations in a little further detail.

A few of you may remember that Wakefield took part in their original Power of Parents rally in the US during which he read an extract of a statement in which a small British paper (the Cambridge Evening News) backed down from a report it had made about Wakefield. Obviously the American parents lapped it up to riotous applause. However, what had _actually_ happened is that Wakefield had instructed his legal team to threaten the Cambridge Evening News with an action like that he had over the Sunday Times:

“You should be aware that proceedings in defamation have already been commenced against The Sunday Times in respect of the article published by Mr Brian Deer on 22nd February 2004. Your article has gone even further than the allegation in The Sunday Times which are currently being litigated and allege impropriety on the part of Mr Wakefield to receive money from lawyers to achieve a predetermined outcome.”

Justice Eady took exception to this:

In my view that paragraph was misleading. Mr Browne (Wakefield’s QC) argues that, even if the circumstances had been set out more fully and accurately, it would have made no difference to the outcome. The editor would still have acknowledged that he had got his facts wrong. That may be, but the important point at the moment is that the editor was given a misleading impression. Because of the stay, to which I have referred, the allegations in The Sunday Times were certainly not “currently being litigated”. They were stayed pending the outcome of serious allegations of professional misconduct against the Claimant, to which no reference was made. It thus appears that the Claimant wishes to use the existence of the libel proceedings for public relations purposes, and to deter other critics, while at the same time isolating himself from the “downside” of such litigation, in having to answer a substantial defence of justification.

And there’s more: Dr Evan Harris MP had criticised Wakefield on a radio programme. He also got a letter:

“[Mr Andrew Wakefield] has asked us to inform you that defamation proceedings have been instituted against Mr Brian Deer and The Sunday Times newspaper in relation to articles that have been appeared [sic] and statements that have been made by them which are defamatory of [him]………..Mr Wakefield has drawn our attention to a number of statements made by you in connection with Mr Wakefield and the question of MMR both in newspapers and in BBC broadcast programme……Given … the fact of litigation having been instituted in defamation and the existence of the General Medical Council inquiry we hope you will agree that further comment on Mr Wakefield’s conduct by you or anyone else should be limited until the outcome of those proceedings has been determined. This will avoid Mr Wakefield having to consider further legal proceedings at the present time”.

Justice Eady took a grave view of this too:

I regard that as a threat that libel proceedings will be issued against Dr Harris unless he “limits” any further comment – not in itself objectionable. On the other hand, the threat is backed up by reference to litigation against The Sunday Times and Mr Deer which, by the date of the letter, had already been stayed. The implication is that for rather vague “sub judice” reasons it would not be appropriate to comment until the proceedings have been determined. At that stage none of the libel actions was “active” within the meaning of the schedule to the Contempt of Court Act 1981 and there was accordingly no reason why Dr Harris should not comment further, if he wished to do so, subject always to the constraints of defamation. Again, one sees the same pattern. The Claimant wishes to use the proceedings for tactical or public relations advantage without revealing that they have been put on the back burner.

And, incredibly, Wakefield also instructed his team to go after the Dept. of Health:

“…In the circumstances Mr Wakefield is concerned and surprised to note that your official website on behalf of the Department of Health offers links not only to Mr Deer’s own website, but also the Channel 4 website on the programme. It seems extraordinary to us and wholly wrong that the Government’s official organ should direct website visitors to another site which not only records partisan and hotly disputed opinions on the subject but is also the subject of defamation proceedings. You will appreciate our grave concern that this fact appears to suggest that Government offers this subject matter official weight and authority.”

This letter is intended to provide formal written warning that the links provided to these two websites are allowing the dissemination of defamatory material. Since this is so you are now invited to withdraw the Department of Health link to these two websites forthwith given that this is an inappropriate use of Governmental weight and authority in such a controversial area”.

Just as a side note I find it incredible that anyone should try and go after a website which links to Brian Deer’s. For their further legal presumption I’d like to present a list of sites that link to Brian Deer’s. I await your issue of a writ against Wikipedia and Google with interest.

Anyway, back to Justice Eady:

I am quite satisfied, therefore, that the Claimant wished to extract whatever advantage he could from the existence of the proceedings while not wishing to progress them or to give the Defendants an opportunity of meeting the claims. It seems to me that these are inconsistent positions to adopt. This conduct is a powerful factor to be weighed in the exercise of the court’s discretion in circumstances which are clearly unique.

And indeed so powerful that Justice Eady ruled that:

I have come to the conclusion, bearing all these considerations in mind, that the interests of the administration of justice require that the Channel 4 proceedings should not be stayed pending the outcome of the GMC proceedings. I appreciate that there will be an increased workload for the Claimant’s advisers, but I do not have any reason to suppose that the firm is incapable of absorbing that extra burden. It is, after all, their client who chose to issue these proceedings and to use them, as I have described above, as a weapon in his attempts to close down discussion and debate over an important public issue. (I note that separate teams of counsel are instructed for the GMC proceedings and the defamation claims.)

So far as the website proceedings are concerned, I see no advantage in those continuing in parallel. There is a significant overlap. I am persuaded that this overlap is so significant, in relation to the defamation proceedings (unlike the GMC disciplinary process), that the outcome of the Channel 4 proceedings is likely to be in practical terms determinative of the others. Mr Deer acts in person in the website proceedings, and a very considerable burden would be placed upon his shoulders if he had to progress that litigation in parallel to the other action, in which he has the advantage of legal representation. Indeed, it may well be that there is a whiff of tactics in the Claimant’s change of stance, whereby he wished to have the website proceedings continue – but only provided there was no stay of the Channel 4 litigation. This is borne out by the suggestion that, before the Claimant should serve his reply, Mr Deer should be obliged to serve a defence in the website proceedings. That proposal has all the hallmarks of a tactical ploy to put Mr Deer at a disadvantage. It would have the effect of isolating him. I am not prepared to go along with that.

Its not looking good for Andrew Wakefield. He’s now been exposed as a bully who likes to threaten with what he has no intention of pursuing. He’s also looking like he’s beginning to realise that he has no chance of escaping the GMC hearings unscathed. Hopefully all those who like to bandy around legal action as a threat will see that a hot head often gets regretted when the facts are examined.

A New Blog In Town

27 Oct

Its not often I feel compelled to write a whole entry just for the creation of a new blog but every so often one pops up by an author that you know is going to have an impact. I’ve ‘known’ Hurricane (its up to you to tell you his real name if he so desires) for a couple of years mostly meeting at an online cesspit of debauchery and web design that I keep forgetting to go and revisit.

To put it plainly and with all false modesty aside, ol’ H is smarter than a bag of spanners at the technical side of things like accessibility, standards and CSS. In fact he cares so much he’s fully prepared to (sort of) launch his new blog in an unfinished state presumably so he can further the concept of a live re-design to a live _start up_ .

Already, H has posted some good stuff. Hopefully thats the start of a long blogging career established.

I recommend adding his feed to your feed reader and paying a visit. And maybe you should go leave a comment too – if only to tell him that he may want to rethink the grasshopper imagery ;o)

Memo to self: fix the height problem that makes smaller entries look crap without comments.

Autism, Respect and the Mercury Militia

25 Oct

What was a disagreement about the causes of autism is widening into a war. This isn’t a war between parents and scientists. Its a war between one set of parents and a group comprised of other parents, scientists and autistics themselves. Its a war between flexibility and acceptance on one side and a rigid determination to ‘cure’ on the other.

To cure what? Good question. Some believe that autism and its attendant comorbidities are interchangeable. That constipation and a different way of looking at things are the same thing. That dyspraxia and a lack of imaginative ability are the same thing. Others believe that the two things are quite separate. That the comorbidities that are attendant with autism in _some_ people cannot be used to define autism. That the condition of being autistic bequeaths gifts as well as troubles (and it does bequeath troubles, lets not pretend it doesn’t) and that keeping the troubles is a small price to pay for keeping the gifts.

There are lots of questions that arise from these ideas of course but lets further examine the stance of the opposition to these two camps. For those that see autism as a medical as well as developmental issue there seems to be a residual pool of dislike, verging into outright hatred for those that don’t. They think that their opposition are abandoning kids to their horrible autistic fate. For them there are no shades of grey – its either black or white. These people also seek to play down and even attempt to rewrite official diagnostic criteria to downplay the ‘higher’ end of the spectrum.

Mr Lietch (sic) thinks it is in the child’s best interest to do absolutely nothing to ameliorate this condition [the writers son] . And, he and his associates knock parents for trying to help our children

John Best Jr

This condition. Autism, one assumes. The question to which I repeatedly put to John Best was what constituted autism? Best constantly (and still does) fails to appreciate the distinction:

…You claim head banging and feces smearing are not autism. Is this supposed to obscure the issue? These are not normal and are very much a part of autism….

John Best Jr

Up until now all we have is debate – its a debate that takes no prisoners to be sure, but its a debate nonetheless. However, things invariably take a turn for the worse:

Your neurodiverse pals who sneeringly refer to people who try to help children as “curebies”

Sounds diabolical doesn’t it? Us sneeringly cruel ‘neurodiverse’ (sic) want to stop people helping children. Something of bizarre belief seeing as quite a lot of people who consider themselves aligned with the notion of respecting autism are parents themselves. But wait! We forget that…

Anyone who is not chelating to get rid of the mercury is guilty of child abuse. Every doctor who is not telling their patients to chelate is guilty of malpractice….. Any parent who listens to the doctors tell them that there is no known cause or cure for autism is too damn stupid to have kids.

John Best Jr

Except of course the truth is somewhat different. The truth is (as I have repeatedly said) that respecting autism is not the same thing as respecting someone gastric issues. If your child smears faeces then find out why and intervene. If your child bangs their head on the wall, buy them a scrum cap, figure out why and intervene. If your child has gastric issues, find out what they are and intervene. *If your child is mercury poisoned then get a proper doctor to chelate them*. But don’t fool yourself that by removing someones need to bang their head against a wall you are removing their autism as you are not and cannot. that doesn’t mean you shouldn’t do it. It does mean you need to have realistic expectations. It does mean you need to be prepared to look at your child at the beginning, during and end of the process of treatment you have for them and say ‘I would love you no matter what’. You need to understand that because someone can’t speak doesn’t mean they can’t hear and to hear who they are described as ‘rotting in an abyss’ or ‘worse than hell’ or ‘diseased’ is going to do that child no good at all.

Frequently those if us who believe in acceptance are told by those that don’t that we are ignoring childrens needs:

And, Kev, have you done research on the trailer-dwelling coo-coos you now are affiliated with? You keep harping on the symptom profile of autism. Look, mate, our kids ALL share the same physical symptoms. I had twin autistic boys over to my house this weekend. They are six. They’ve never been treated. They can’t talk, much less function, they require 24 hour care. They have all the same physical issues my son HAD, which have since resolved. In your coo-coo world these parents would do nothing. Shameful and idiotic.

JB Handley

I have to admit to not being too sure what ‘coo-coo’ means but I’m assuming its not good. As ever though, the point is missed – no-one, repeat *no-one* is saying parents shouldn’t intervene where kids can’t talk or can’t function and I challenge JB Handley (or anyone else) to find any statement where I have advocated that belief. Its increasingly hysterical fear-mongering because its rapidly dawning on these people that they are looking increasingly fundamentalist and fringe.

You might note I’ve quoted extensively from JB Handley and John Best Jr here. I do so because they are both strongly affiliated with Generation Rescue, the group that apparently gives parents the knowledge to make an informed choice. Yeah. Knowledge like:

There is no evidence to suggest that autism is genetic. No autism gene has ever been found and the search will be endless – how can you have a gene for a mythical condition? Autism is mercury poisoning

Generation Rescue.

So, John Best Jr and JB Handley are all about promoting choice and informed decisions. So much so that they launch into full on attack mode and misrepresent people’s beliefs. Sometimes the attacks get very, very personal indeed:

Muslim terrorists who fly planes into tall buildings have a different set of beliefs than others. Your neurodiverse pals who sneeringly refer to people who try to help children as “curebies” and go to extreme measures in attempts to discredit those people are in the same class.

John Best Jr

John Best associating the World Trade Center attack with my belief that acceptance and flexibility is best. I couldn’t quite believe he’d actually said that so I asked for clarification:

You spout your nonsense in much the same way that terrorists shout for Allah before they blow things up with bombs strapped to themselves. That agenda is more than a little bit wacky to most people who are thinking straight.

John Best Jr

Yup, he meant it all right. Don’t forget, John Best Jr is a ‘Rescue Angel’ – one who is charged by Generation Rescue with informing parents about mercury and chelation. He is a spokesman for Generation Rescue.

The populace of Generation Rescue have a particular dislike of Kathleen Seidel. They see her as the ‘spokesperson’ of ‘the neurodiverse’ probably because of the domain. In a very disturbing attack, Best again mistakes autism with comorbidity, goes after Kathleen and at the same time confirms that for him, ‘better dead than autistic’ is certainly true:

..So they miss out on curing their children and the kids wind up spending their lives in institutions. In effect, they never enjoy one second of the lives they could have had if only the mercury had been removed from their brains. Ms Seidel might as well have put a bullet in those kids so they would not have suffered. Does that sound about right, Kevin?

John Best Jr

One wonders – is ‘better dead than autistic’ a policy decision of Generation Rescue?

John Best, that (typical?) fine, upstanding member of Generation Rescue also has views on the failings of the diagnostic criteria for autism:

Your adult Asperger’s friends would have been called by a different name when I was young and nobody was aware of the effects of the mercury they’ve been shooting into us since the 1930’s. They would have been called nerds.

John Best Jr.

Nice.

Best is, of course, attempting to paint all within the ‘neurodiverse’ (sic) movement as AS. Of course, his theory founders on the fact that it is not. But still, I wonder – is insulting autistics another policy of Generation Rescue?

I don’t believe for a moment that everyone in the Biomed community thinks like Best, or Handley come to that, which makes it a pity that so very many in the Biomed community see that our thoughts as a threat to them – so much of a threat that even an appalling loss of life such as the World Trade Center attacks is not above being denigrated in an attempt to demonise people such as I.

I’ve said it before and I say it again now. The Biomed community needs to take a long hard look at itself and who its most vocal proponents are. Do you honestly believe that your cause is well served by referring to others as akin to bombers? Or child abusers? or nerds?

Is this something you really think will attract people to your way of thinking?

Is this a position from which you think is substantial enough to build from?

Are these words which you feel serve you well, personally?

Splitting AJAX Returned Data

21 Oct

I’m working on a new product site for the company I work for at the moment and am trying to utilise as much sensible AJAX as possible in order to enhance the usability of the pages without destroying the IA or accessibility.

One of the intriguing challenges I came across today was using innerHTML in a more refined way.

Lets say I have data I need to return from a PHP script that I need to funnel into separate markup elements when they’re returned to the page. How to do this perplexed me for awhile – my experiences of innerHTML was that results are returned in a big chunk.

First lets have a look at the PHP:

$type = $_GET['type'];

if($type == "1"){
	echo "Vat No";
        echo "";
}

And the markup I wanted to receive each of these two strings was as follows:

<p id="label"></p>
<p id="inputElem"></p>

*NB: No, I didn’t really put my form elements into p tags, this is a smaller example of what I did.*

Obvious what I want to do isn’t it? I want the phrase to go in the ‘label’ id element and the field to go in the ‘inputElem’ element. Here’s the Javascript I started with. First we set up the AJAX connection:

// 'xmlhttp' variable will hold the XMLHttpRequest object
var xmlhttp = false;
        
// If the user is using Mozilla/Firefox/Safari/etc
if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
        xmlhttp.overrideMimeType('text/xml');
}

// If the user is using IE
else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

And after that I declare a function that can be called onclick later:


function getUK() {
	var lB = document.getElementById("label");
	var iE = document.getElementById("inputElem"); 
 
	var url = "_inc/vat.php?type=1";    
	xmlhttp.open("GET", url, true);
    
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {

			var r = xmlhttp.responseText
			lB.innerHTML = r;

		}else{
			lB.innerHTML = "Error";
		}				
	};
	xmlhttp.send(null);  
}

Which is crap. I can’t get both elements in and seperate them. So what we need to do is make our string passed through from PHP to actually be an array object that we can split. So we change the above PHP to this:

$type = $_GET['type'];

if($type == "1"){
	echo "Vat No|";
}

Now we can refer to the responseText as an array like so:


function getUK() {
	var lB = document.getElementById("label");
	var iE = document.getElementById("inputElem"); 
 
	var url = "_inc/vat.php?type=1";    
	xmlhttp.open("GET", url, true);
    
	xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 4) {

			var r= xmlhttp.responseText.split("|");
			lB.innerHTML = r[0];
			iE.innerHTML =  r[1];

		}else{
			lB.innerHTML = "Error";
		}				
	};
	xmlhttp.send(null);  
}

The important lines are:

var r= xmlhttp.responseText.split("|");
lB.innerHTML = r[0];
iE.innerHTML =  r[1];

in which we split the string on the ‘|’ character (or any other character you care to use yourself) and then refer to individual elements in the array in the appropriate place.

Autism: A Novel Form Of Mercury Poisoning

14 Oct

Many in the Neurodiversity and Biomed communities are aware of this paper. It forms one of the lynchpins of the Biomed communities belief system – that autism and mercury poisoning are the same.

I’ve long been confused by this belief. Its plainly wrong and I’m amazed so many seemingly intelligent people believe it. I’ve posted about it numerous times both on here and in the comments of others blogs and the answers from its proponents when I question it veer from outright hostility to laughter at my supposed naivety in not being able to see ‘it’.

Its quite obvious to me that the symptoms of mercury poisoning tally very loosely with some comorbidities of autism but that as these things _are_ comorbidities, they cannot be used to diagnose autism and that therefore the two things cannot possibly by the same thing.

Just for your own information, here are the clinical symptoms of mercury poisoning and here is the diagnostic criteria for autism. But don’t just read the links I provide, go find some of your own.

After you’ve read around a bit you’ll probably conclude as I did: The idea that the two tally is ridiculous. However, Kathleen made me aware of a commentary piece in Pediatrics that backs up my position. I didn’t even know it existed until now so ‘thanks’ to Kathleen for posting its details.

Here’s a few quotes from the commentary – the full piece is available from the link I provided.

In mercury poisoning, the characteristic motor findings are ataxia and dysarthria. These signs, along with tremor, muscle pains, and weakness, are noted on relatively high-dose exposure, acute or chronic. In 3 Romanian children accidentally exposed to ethyl mercury in a fungicide, these same symptoms were prominent. The outcome of fetal methyl mercury poisoning in severe form also included spasticity. In contrast, in autism, the only common motor manifestations are repetitive behaviors (stereotypies) such as flapping, circling, or rocking. Persons with Asperger syndrome may be clumsy, and hypotonia has been noted in some infants with autism; the frequency of clumsiness and hypotonia in autism spectrum disorders is not established. *No other motor findings are common in autism*, and indeed *the presence of ataxia or dysarthria in a child whose behavior has autistic features should lead to careful medical evaluation for an alternative or additional diagnosis*.

Other signs that may appear in children with chronic mercury toxicity, such as hypertension skin eruption and thrombocytopenia are seldom seen in autism.

When severe mercury poisoning occurs in prenatal life or early infancy, head size tends to be small and microcephaly is common. Prenatal exposure to other neurotoxins—lead, alcohol, and polychlorinated biphenyls, for example—also predispose to decreased head size. In contrast, in autism increasing evidence indicates that head size and, as measured by volumetric magnetic resonance imaging, brain size tends to be larger than population norms.

At sufficient dose mercury is indeed a neurotoxin, but *the typical clinical signs of mercurism are not similar to the typical clinical signs of autism*.

Mercury poisoning and autism both affect the central nervous system but the specific sites of involvement in brain and the brain cell types affected are different in the two disorders as evidenced clinically and by neuropathology.

Nonspecific symptoms such as anxiety, depression, and irrational fears may occur both in mercury poisoning and in children with autism, but overall the clinical picture of mercurism—from any known form, dose, duration, or age of exposure—does not mimic that of autism.

What Am I Missing?

13 Oct

JB Handley, golden boy of Generation Rescue recently spoke to another newspaper. I thought the reporter did a very good job of showing both sides of the issue (Kirby, Olmsted take note).

I did however, have to read the article a few times until it sunk in. These were the passages that confused me.

Jamie’s moods progress fluidly from joy to concentration to panic. He has full run of his parents’ sprawling home, a hypoallergenic realm with wool carpets, insulation made from blue jeans and HEPA filters to clean the air.

One afternoon this summer, Jamie dragged his father by the finger to a mattress in the middle of the basement floor and, holding onto both of his hands, began jumping up and down, lofting higher and higher with each leap. The game was an autistic obsession. The blond boy sprang up again and again, never tiring, his face frozen in an expression of total joy.

Jamie eventually moved from the mattress to his train set, another obsession, and later to the table, where he covered reams of paper with spiraling circles, using his teeth to uncap each pen in the box until all the lids and pens lay on the floor where he cast them aside. All the while, he didn’t speak a word.

Three months later, Jamie had learned to point at things he wanted and to wave goodbye. He still screamed shrilly, ran back and forth, and didn’t speak in front of a reporter. His parents have augmented the biomedical regimen with other treatments—speech and occupational therapy and applied behavioral analysis, an intensive program that teaches autistic children to mimic “normal” behaviors, like waving goodbye.

So what am I confused about? Well, Jamie sounds exactly like my child. She does all the things Jamie is listed as doing above. In fact, in terms of her progress, she sounds ‘further along’ than Jamie. She has a few words now and the beginnings of a sentence or two although of course, like Jamie she has setbacks and meltdowns.

In fact the only appreciable difference between them as far as I can tell is that JB and Lisa chelate Jamie and we don’t chelate our daughter.

As I say, I’m totally confused. I thought chelation was supposed to ‘cure’ or ‘reverse’ autism? I was expecting to read about a Son-Rise style reversal where Jamie is verbal, engages constantly with the reporter etc. What I’m reading here is the normal progression of an autistic child. Now, granted I don’t know the exact program that Jamie is on but I know he must’ve been on it for a few months now. I’m also aware that he’s on TD DMPS. Read into that what you will.

I don’t mind admitting I’m a bit shocked by this. I was curious as to what a ‘recovered’ autistic child would be like and now it seems I have my answer – they’re just like an autistic child but without the sometimes painful comorbidities. If the Handley’s have removed those painful comorbidities then they’re to be congratulated. I am, however, at a loss to explain their statement that:

evidence that their cure is working can be seen in Jamie’s behavior

Cure for what? Mercury poisoning? Possibly. Autism? I really don’t think so. I didn’t before but I’m even less convinced after reading this.