New Steamed Cod Recipe
I've put my new recipe for Steamed Cod With Ginger And Spring Onions online.
It's a romantic dish to share with someone special.
Here are Rob's Blog entries for May 2004.
Blog entries for other months can be found in the main blog index.
I've put my new recipe for Steamed Cod With Ginger And Spring Onions online.
It's a romantic dish to share with someone special.
I'm at Flatford Mills, deep in Constable Country.
Here is the site of John Constable's most famous painting, The Haywain.

Todays public service announcement is how to read an old Eastern Electricity Multirate Single Phase Watt Hour Meter that was previously on Economy 7.
The LCD Rate display alternates between three figures. These are..

South Central have started their rebranding as Southern at London Victoria station.
The old information office that has been in the old Connex colours of yellow and blue for so long is now in the new Southern greens.
Personally, I'm not sure I like the new logo. It seems inspired by the old British Rail / Southern one at the time of nationalisation.

Selfridges on Oxford Street have a giant statue of Christ The Redeemer above the main entrance to the store.
The statue was donated by the Mayor of Rio and is part of the shop's Brasil 40o promotion of all things Brazilian.
I particularly recommend seeing the carnival girls near the information desk.

After ordering tickets for Twisted Sister's London gig I felt I should reaquaint myself with their music, so I made a quick trip to HMV in Oxford Street during my lunch break.
I bought a copy of 1987's Love Is For Suckers and 1984's Stay Hungry.
Playing them I was amazed at how similar Twisted Sister sound to The Darkness. Looking at pictures, they even seem to dress the same, though Justin Hawkins wears less makeup than Dee Snider did. The songs have the same level of humour, it's just the same over the top rock style.
If you like The Darkness, but have never heard any Twisted Sister, give them a try. You won't be disappointed.
One of the more amusing stories in tonights London Evening Standard is of the poodle who ran off down the tracks at Victoria Station, bringing chaos to rail services.
Thankfully it happened after my train had departed, so I can look at it with a smile on my face.
I can just imagine the faces of all the thousands of commuters stuck there and hearing the excuse, Sorry, there's a dog on the line
.
It's made worse by having to call home and explain why you're running late... I'm sorry darling but you'll never believe tonights excuse...
Kiss 100 have quietly launched the Kiss Radio Player.
All the latest specialist radio shows broadcast on Kiss are available for 7 days, as well as a few of the more popular daytime shows such as Bam Bam Breakfast and Robin Banks.
It requires a Windows Media Player to be installed, but should work on a PC or Mac.
I've been working on this for a bit, so any feedback would be appreciated, just contact me.
I asked on Monday, "Have South Central Changed Their Timetables"?
It turns out they have, and the new summer timetables are on the South Central website.
Speaking to a few friends it seems there are posters at Eastbourne and Brighton stations, but I've still not seen any at Hampden Park or London Victoria, the two stations I mainly use.
More problems with South Central's new Electrostar trains.
This time it seems that some of the new trains do not have working toilets as there is nowhere to empty them when they become full.
The family of a three year old girl from Eastbourne have complained as all the toilets were out of order and she was forced to wet herself. The little girl, Bethan Crotty, is now too scared to travel on the new trains.
The toilets should be emptied at the train depots, but South Central haven't build all the facilities to do so yet.
Old slam door trains just dropped the waste onto the track. The new trains keep the waste onboard until they can be emptied. However, when they are full, the doors automatically lock.
At least I know why my train to Eastbourne was running late on Monday...
One of the new "state of the art" South Central Electrostar trains broke down at left passengers stranded for hours.
The 17:45 from London Bridge to Eastbourne should have taken 90 minutes to complete the journey but in the end it took over 5 hours.
The train broke down 15 mintues into the journey and the 600 passengers were given no information from 6pm to 8:45pm when they were eventually taken to another train at East Croydon, which also broke down.
The new trains don't have windows that can be opened and in the heat of the packed train some passengers tried to force the doors so they could get out.
The cockup comes as the new Electrostar trains take too much power from the old "third rail" electrical supply. The new trains have air-conditioning, faster speeds and even electric toilets. Unfortunately this means that they drain too much power and the power supplies in the South East of the country can't take it.
In this instance the drain on the power supply caused cables to burn out, cutting all electricity to the track. It took several hours until the the fault was traced due to the fragmented management of the privatised rail industry. Under the old British Rail one manager would have been in control of both the track and the trains, with the skills to asses much more quickly where the problem was.
With the rebranding of South Central as Southern, they are telling us to "Expect MORE". I hope they don't mean more massive cockups like this.
The BBC and the London Evening Standard are both carrying the story.
I had an email from Jo Walsh saying that she has accepted my changes to her RDF::Simple::Parser Perl module and a new version is now on CPAN.
You may remember I had a problem using RDF::Simple through a proxy server, the patch I supplied helped to fix the problem.
Jo has also rolled them into the very interesting looking Class::RDF. This is certainly a module I will have to investigate further.
I've noticed yesterday and today that my usual morning train has been retimed to leave a minute earlier, and my return train is now making two additional stops at Glynde and Berwick.
I have a feeling that South Central may have changed to a summer timetable. I looked for posters at Hampden Park and London Victoria station this morning but haven't seen any. I've also looked at the South Central Website but they are still announcing last years winter timetable there.
Yesterdays new South Central Advert advised us to Expect MORE, but they obviously weren't referring to more train running information. They must have meant useless full page adverts.
The South Central website is next to useless. One thing I've noticed is that they advertise the URL www.southcentraltrains.co.uk, but this is different from the home page you get when you click on the sites Home button. This takes you to http://www.southcentraltrains.co.uk/index.shtml. It would seem another filename has a higher precedent in the webserver's DirectoryIndex.
Finally a TRAIN ANNOUNCEMENT you might like the sound of
Or so promises this ad in tonight's London Evening Standard. It goes on to say...
South Central's new name is Southern. South Central is changog. From 30th May, we're Southern. We've introducing modern and more reliable trains. Improved station environments. And better service. All part of a two to three year change programme. Southern will be a different kind of train company. A name worth listening out for.
Southern also have a new slogan, Expect MORE.
I hope they don't mean more delays, the train i'm currently sitting on is already running late.

One thing I've started to do for web based admin systems is a far greater use of JavaScript.
One task I find I do quite frequently is copying from a list of options to a sublist of selected options. For example, a list of all blog entries to a sublist of related blog entries.
I do this by using a version of the following JavaScript. It takes a <select> HTML element with the property multiple="multiple" set, and copies to another <select> HTML element, also with multiple="multiple" set. I have a button set to execute the JavaScript via an onClick handler.
Lets have a quick look at the code...
First we need to define our function. Here I've called it doCopy and it takes two parameters which are the two <select> elements from the DOM, eg document.formname.selectname.
function doCopy(list1, list2) {
Now we need to iterate over the first list to check each <option> to see if it has been selected.
for (var i=0; i< list1.length; i++) {
if (list1.options[i].selected == true) {
If the current <option> is selected, we need to iterate over the second list, making sure we don't already have it in the list. I'm setting a temporary variable, cancopy that is set to false if we find we already have it in the second list.
var cancopy = true;
for (var j=0; j< list2.length; j++) {
if (list1.options[i].value == list2.options[j].value) {
cancopy = false;
break;
}
}
If cancopy is true, then we're OK to copy the item over to the second list. To do this we have to create a new Option object. Let's have a quick look at the Option class in JavaScript. We can constuct a new Option like this...
new Option(text, value, defaultSelected, selected)
Where text is the text to show, value is value, defaultSelected is a boolean defining if we want the defaultSelected property set, and selected is a boolean defining if we want the selected property set.
We need to initialise our new Option with the value and text of our original option from list one, and set it as selected. We insert this into the secondlist by adding it to the very of its array. This will grow the list automatically.
if (cancopy == true) {
list2.options[list2.options.length] = new Option(list1.options[i].text, list1.options[i].value, false, true);
}
Lets put this all together for our final code...
function doCopy(list1, list2) {
for (var i=0; i< list1.length; i++) {
if (list1.options[i].selected == true) {
var cancopy = true;
for (var j=0; j< list2.length; j++) {
if (list1.options[i].value == list2.options[j].value) {
cancopy = false;
break;
}
}
if (cancopy == true) {
list2.options[list2.options.length] = new Option(list1.options[i].text, list1.options[i].value, false, true);
}
}
}
}
Here is some example HTML that uses the JavaScript to copy from list1 to list2.
<form name="mytestform">
<select name="list1" multiple="multiple">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
<input type="button" value="Copy" onClick="doCopy(document.mytestform.list1,document.mytestform.list2);" />
<select name="list2" multiple="multiple">
</select>
</form>
We should now be able to copy between the lists when we click on the Copy button.
Before my laptop died, I had just discovered Bruno R. Marcos's excellent free Star Wars games, Battle Of Endor and Battle of Yavin.
They are excellent, but suffer from a minor problem in Windows XP where if you play with a mouse they can minimise and you won't be able to restore the game. This is apparently a known problem that Bruno is working on fixing.
These are really addictive games, and it's hard to believe they are free. Get them while you can!
Very annoyingly my Hewlett Packard Pavilion laptop has just died. To be a bit more accurate the hard drive seems to have given up the ghost and now isn't even recognised by the BIOS when I try to boot up the machine.
Thankfully I actually purchased an extended warrenty through PC ServiceCall so I'm currently trying to see what they can do. It seems I am covered for a return to base repair and they are arranging a courier to collect it. I'll be blogging my experiences with them as they happen.
In the meantime it's back to my trusty old P133 desktop machine...
I've added a new feature to my blog that allows me to easily link to related blog entries.
Lookout for little boxes appearing in stories with related links in them. At present they are a lovely green colour to tie in with the current look of the site.
At present they only link forward, though I am toying with the idea of having the related stories link back automatically as well. I'm not sure if that would take them out of context or not. Feel free to contact me with your feedback.
The next step is to look at incorporating the data into my RSS 1.0 feed as the data really seems to lend itself to the RDF format.
I've just won my first eBay auction, and I should shortly be the owner of a Targus Stowaway foldup keyboard for my Handspring Visor Delux.
I may complain alot about South Central Trains, but I don't take the extreme measures one commuter took against them.
Simon Taylor from Polegate parked his car over the level crossing at Berwick when he was told that the 6:30 service to Victoria wouldn't stop at his station last September.
With the car blocking the line, no trains were able to get through for 6 minutes and South Central were fined 1,272UKP for the delay, a cost they are now hoping to get back from Mr Taylor.
Taylor is also now facing a prison sentence for his actions.
I regularly travel on the same line and that train is probably one of the new Electostars. London Victoria trains are formed of up to 12 coaches and Berwick station has a short platform. Around the time of the incident there were problems with only opening the doors of carriages at the platform so they were running services fast. My usual train was an old slam door that was making additional stops to compensate for this.
The BBC has the story online as, Commuter used car to halt train.
Readers using my RSS 1.0 Feed will have started to have noticed a few changes to it.
Last month when I asked, Is RSS Clogging The Web? I mentioned the use of the RSS 1.0 syndication module. Well I have now incorporated it into the feed.
It's very simple to do, firstly we have to add the namespace into the document.
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
Then we just add updatePeriod, updateFrequency and updateBase data that defines how often the feed is updated to the channel.
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2004-05-19T10:15:00Z</sy:updateBase>
Despite previously saying how I like to keep my site datafeeds small, I am very tempted to incorporate the use of the RSS 1.0 content module as it provides a way of including markup in the feed for compatible readers.
I've also taken the opportunity to correct the MIME types being returned by all the different feeds on my website. Using Apache this was achieved by adding the following to a local .htaccess file while I arrange changing the server's main configuration file.
addtype application/rdf+xml rdf
addtype application/rss+xml rss
addtype application/atom+xml atom
addtype application/xml xml
Jon Mitchell has released a Sinclair Spectrum emulator written in Perl.
It certainly looks very cool. You'll need Perl, Gtk2 and gtk2-perl installed to run it.
It appears the hydrogen powered London bus on route 25 is in a spot of bother.
It's currently sitting outside the office with its hazard lights on, forcing the other buses to squeeze between it and and a traffic island.
At least it's giving the driver the chance to catch up with his newspaper, and for me to take a quick snap.

South Central trains have have decided to rebrand themselves and from the 30th May 2004 will be known as Southern.
I wonder if their new strapline will be...
Sit back, we're taking you for a ride!
:-)
Whilst trying to write the entry TV Being Installed On South Central Trains I wanted to get some quotes from the TNX website. However, it's flash based so I wasn't able to cut and paste the text, and I didn't feel like typing it by hand.
I had a look at what the flash file was doing over my network by running Ethereal.
It turns out the flash file is calling the news stories from a dedicated page at http://www.tnx.tv/selectNewsArchive.asp.
This file returns the number of news items, and the items themselves in the same format as a CGI POST. For example...
&noOfRecords=10&ID0=17&Title0=TNX+Television+Enters+into+Agreement+w
The body data returned is in html format, so it's trivial to output the news to a browser. Here is an example Perl CGI script that can be run to return the news to a browser.
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
use CGI;
my $url = 'http://www.tnx.tv/selectNewsArchive.asp';
my $page = get $url;
my $CGI = new CGI($page);
print $CGI->header();
print "<html><head><title>TNX News</title></head><body>\n";
for (my $x = 0; $x < $CGI->param('noOfRecords'); $x++) {
print '<h1>' . $CGI->param("Title$x") . "</h1>\n";
print '<img src="http://www.tnx.tv/images/' . $CGI->param("Image$x") . '">' . "\n";
print $CGI->param("Body$x") . "\n\n";
}
print "</body></html>\n";
We download the page, pass it to the CGI module, and just iterate over the data, outputting the results as we go.
TNX TV have just announced a deal to install their commercial TV offering in all of South Central's new trains.
The deal will last for 5 years and will see TV screens installed in carriages blasting out commercials and other programmes to trapped passengers onboard. The sound system is designed to compensate for the noise of the train and adjust itself automatically.
However there is hope for passengers who don't want to be subjected to this as a "quiet zone" will be provided. These will account for only 20% of the train.
The two companies have this to say about the new deal...
We are delighted to have signed this agreement with South Central Ltd, the first of the major London commuter train operators to convert their letter of intent into a formal agreement," said Stephen Ollier, Managing Director of TNCI UK Ltd. "We are confident that the TNX system will significantly enhance the daily commuting experience. The South Central commuter demographics also provide an excellent opportunity to optimize our advertising.
South Central is always seeking ways to improve the journey experience for its passengers" said Charles Horton, Managing Director of South Central. "We believe the TNX system will provide a valuable service to our customers, with a range of entertaining, stimulating and informative programming that includes news provided by ITN. In the future, we have the potential to use the system to improve passenger information and enhanced security through CCTV
Personally I don't think this is a very good idea. During the morning commute to London most passengers sleep, and having TV's blasting out ads will mean not being able to do so. It also means fighting to try to get into a quiet zone. On the way home I like to read and relax, and I don't think TNX TV will let me do that as it would be too distracting. Good news maybe for advertisers, but bad for me.
It would appear I am in a minority however. Apparently 80% of passengers want this installed. I can see it working on short trips, but I'm not so sure on longer journeys.
Looking at the technical details of the system, they are using wifi to transmit updated content to the train each time it stops at an enabled station. I wonder how long it will be before some sniffs the wifi network to work out how to hack the screens. That could be amusing :-)
Where We Go with Peter, Jane and Pat the dog!
It's reassuring to know that even in the 60's, before I was born, childrens book characters were travelling on the same trains I have to use everyday on South Central.
There is an exhibition of Ladybird book covers at the Towner Art Gallery in Eastbourne at present. This book cover is 5a and unfortunately the original art was not on display for this piece. However, there are plenty of other original works of art that were used in the books on display, and the whole show made me feel very nostalgic for my days at infants school.

Now I have my Jenoptik Smartmedia Reader working on XP I was able to download a few of the photos I took during the fireworks at Sovereign Harbour in Eastbourne on Monday evening.
I was particularly pleased with this shot capturing several explosions at once.

I have an old Jenoptik SmartMedia reader than I needed to reinstall after my laptop crash last month.
The supplied JenReader software only supported up to Windows 2000, where as my laptop is running Windows XP.
A quick search of the web found the updated Windows XP Jenoptik Smartmedia driver, and this has now been successfully installed and is running fine.
There is currently a beautiful double rainbow outside that is brightening up my journey on the battered old slam door service to Eastbourne. The colours are very vivid, but i don't think my Nokia 7250's camera has caught them very well.

I came across a problem with JavaScript earlier trying to see if a variable actually exists or not. For example...
if (x) {
// x exists.
} else {
// x doesn't exist.
}
Unfortunately this causes an error if x hasn't been defined, eg...
var x = "robs test";
The solution came after a read of JavaScript: The Definitive Guide chapter 4. It explains about the Global Object, and that all global variables are located there. For client side JavaScript this is the Window object. So to see if x has been defined we need to check window.x, eg...
if (window.x) {
// x exists.
} else {
// x doesn't exist.
}
This means if I forget to define x it will default to the block of code saying that x doesn't exist. Of course, I shouldn't really be in a situation where variables haven't been defined, but sanity checking is always a good idea, especially with development code.
After hearing many good things about the Cosmo Restaurant in Eastbourne I decided to check it out for myself with a friend.
It's a fixed price oriental buffet, and at 10.95 I found it quite expensive. When asked what to drink, I replied that tap water would be fine, only to find that it is not available. Instead you have to pay extra for mineral water.
The staff are very rude and are the most miserable group of people I've seen in a long time. However, one girl was very friendly, so hats off to her.
The seating is rather cramped with people always squeezing past to load up their plates. Don't take a date there for a quiet romantic meal.
The food itself is self service from a set of central heated tables. They claim to have over 50 dishes available, though most of them seemed to be side orders like chips, prawn crackers and spring rolls. The main food itself was nothing special. The noodles were cold and very greasy, the chicken and sweetcorn soup was very nice though. The duck pancakes were nice, but as everyone else was going for it, it was normally empty. For dessert you can help yourself to economy ice-cream or try some of the other items available.
All in all I was very disappointed. I found the food of a low quality and overpriced. However, it was very busy, all my friends really love it and lots of young families seemed to be there enjoying the freedom of having as much food as they want for a fixed price.