Thursday 30 September 2010

Photo processing

Today I was just sorting, metadataring, and processing photos most of the day.

The weather was nice in the morning so I was planning to go out in the afternoon, but the sky got covered in thin cloud. While the weather was still nice, a white sky doesn't usually make for good photography.

In the afternoon I did go out in the garden for a bit.

In the evening I watched 3 Power Rangers episodes with L.

Mauser came back from his trip round Europe and Morocco, and got me a Soviet pilot's hat from East Germany. Nice!

Wednesday 29 September 2010

Comp working again!

This morning I went on the internet on Mauser's comp, until my new graphics card arrived around midday.

After installing the new card and latest drivers (and having lunch) I spent most of the afternoon catching up on my email.

In the evening I sorted some photos and did a backup.

Sunday 26 September 2010

Pogging and metadataring

This morning I started cutting out some pogs in Photoshop, then went to Church. After Church I finished cutting out the pogs in Photoshop.

After dinner I checked my email while waiting for the pog images to upload. I updated my pog website, then started adding metadata to the photos I took yesterday.

I had some trouble geo-coding the photos, as Robogeo said it couldn't geo-code some of them and would have to convert them to jpegs (I was geocoding a mix of JPG and RAF files). I spent quite a while trying to find what the problem was, and see if there was some way to export the list of geocoded files so I could use exiftool to do the geocoding, but couldn't get anything to work.

Eventually I just downloaded the latest version of Robogeo, it doesn't mention anything in the recent changes about RAF support (and I had tried the previous Robogeo I had installed with the latest version of exiftool already). But it did work, and geocoded my JPEG and RAF files successfully. Unfortunately it couldn't read the save file I had created with the previous version of Robogeo, so I had to re-gecocode (using Google Earth) all the photos.

I also watched an episode of Jetman with L in the afternoon.

In the evening I carried on adding metadata to the photos and uploaded some of them. I did a backup and then went to bed.

Saturday 25 September 2010

IRing

This morning I did some more work on my geoclustering script, and my Fuji IS Pro arrived. I charged up the battery and read Thom Hogan's review of the S5 Pro, and unfortunately you can't use the D200 battery in the IS Pro, despite the cameras and batteries looking identical.

When the battery had finished charging, I spent a long time trying to get a hood onto the Cokin P holder that would extend behind and in front of it (to stop light hitting the back of the filter as well as stopping light hitting the filter at oblique angles on the front). Unfortunately I couldn't get this to work, so I decided to just mount a hood behind to stop light hitting the back of the filter.

I went out for a short walk and took a few shots, and was impressed with how the IR photos looked on the camera's screen, though you can't zoom in much on the screen.

We went out to a small lake in Corby for a picnic lunch, where I took a few more shots with the IS-Pro. When we got home I processed a few photos and watched an episode of Jetman with L.

Then I spent the rest of the afternoon making Cinnamon Swirls with L. After dinner I finished making the Cinnamon Swirls with L and also had loads of washing up to do (all the dinner stuff plus the cooking stuff, plus picnic stuff).

For the rest of the evening I watched a couple of episodes of Power Rangers with L and processed a couple more IS-Pro photos from today. I'll have to metadata and upload them tomorrow (after doing the pog stuff first).

Friday 24 September 2010

Uploading and reading

This morning I uploaded a photo to a few photo sharing websites, which actually took quite a long time. I did some vacuuming and sorted and uploaded some photos to my website as well.

In the afternoon I sorted and uploaded more photos, then started looking into the Fuji IS-Pro that I bought yesterday (particularly looking at the filters etc. needed for normal, IR, and UV photography).

In the evening I baked some cookies and carried on looking into IR, and UV photography. For UV photography, it seems that you need a specialised, expensive, and hard to get hold of filter.

For IR photography there are quite a few filters available, so I was mainly researching which one to get. I do have a Hitech Infrared Resin filter already, but it seems very flare prone. I was mainly looking at the B+W 093 and the Hoya R72 filters. The B+W is a higher cut-off, and only passes Infrared, while the Hoya passes Infrared and a bit of visible light.

From what I could gather, it seems like the Hoya R72 is better for false colour IR, while the B+W 093 is better for contrasty black and white true IR photos.

In the end I decided to just purchase the B+W 486 UVIR cut filter so I can use the IS-Pro as a normal camera (S5 Pro). It was expensive though, $100 for a 67mm filter! I decided to go for a 67mm filter size as that fits my current lenses, and I can't really think that it will be a great loss if I purchase a lens with 77mm filter size in the future and so can't use it for normal photography on the IS-Pro.

One thing I did find a bit disappointing is that both UV and IR light focus at different points to normal light, and so a photo taken with visible and UV and IR light will likely be soft. Also, it seems that some lenses aren't suited to UV or IR photography, and according to Bjørn Rørslett, most (all?) of my lenses aren't that great for IR photography.

When I get the camera and we get some decent weather (i.e. not overcast), then I can try the camera with my Hitech resin infrared filter, and see if there is any problem with my lenses or the Hitech filter.

Thursday 23 September 2010

My best evening

I spent quite a bit of this morning working on my geo-clustering script, but got stuck and couldn't work out what the problem was. So I spent the rest of the morning and the afternoon taking, sorting, uploading, and processing photos. I also read a few forum threads on dpreview.

I had a really exciting evening buying a new camera and helping L make a video.

I was looking at a camera website that had been emailed to me as being a cheap camera website, not looking to buy anything, but just to see what the prices were like. The prices did look quite good to me. Then I saw they were selling the Fuji IS-Pro for over £1000. I remembered that it was about £500 on Warehouse Express, so I looked on the WEX website, but it was no longer listed.

So I checked the Fuji website, which gives a list of suppliers that you can buy the Fuji IS-Pro from. But when you click through to the retailer, it is just the Fuji category or search page on their website with a search query like Fuji or Fujifilm. And when you look through the items on each retailers website, none of them actually sell the Fuji IS-Pro!

So I google searched, and found Clifton Cameras were selling them for £350. But they had a thing saying something like 'Very special limited offer'. So given that
  • The Fuji IS-Pro is hard to find available for sale
  • It is normally around £1000
  • It was only available at the discounted price for a limited period
I decided that I might as well go ahead and purchase it. Unfortunately the user agreement that you have to sign upon purchase precludes you from reselling it, otherwise I could probably buy a few and flip them on ebay. I think there was one on ebay recently (in the US) that went for the equivalent of over £1000, but it didn't even meet the seller's reserve price!

Of course, it will be annoying if Nikon or Canon (or Fuji) announce a new camera shortly that does IR, since the IS-Pro is quite old and lacking in things like high ISO quality and megapixel count.

For the video, I was helping L make a birthday video for YoshiElectron as it is his (YE's) birthday today. Unfortunately the eyetoy wasn't working on Mauser's comp (probably due to the comp being virused). And Mauser has my old camera (which does low quality video) on holiday with him. So we decided to do a stop motion video.

Obviously, this takes quite a lot longer to both set up and film, and then put together on the computer. So doing that took most of the evening, even though the video is only very short. Actually, L cut quite a lot of the frames from the final video.

Wednesday 22 September 2010

iframes and objects

This morning I was doing some more work on my photo website. I was happy to see that my lightbox close icon was now showing up again in Chrome, so the reason it wasn't displaying before must have been Chrome bugginess rather than my own fault.

Then I had a similar thing with IE6. The lightbox was displaying at a small size, so I undid the changes I made to the code yesterday, refreshed the page a few times, but it was still the same. I then started up Visual Web Developer Express so I could debug the problem, but when I loaded up the site for debugging, it displayed okay!

I was worried that it might be that the site only works properly in IE6 when Visual Web Developer Express is worried, so I closed that and checked the site, but it was still working okay. I just don't understand how computers can be so illogical.

Next I changed the page headers so that it would be sent as html instead of XML + XSLT to IE. But when I refreshed the page, I just got the HTML in the style that IE uses to display an unstyled XML document (i.e. like viewing source). So I installed Fiddler2 to double check the headers that IE was receiving from the page, but when I restarted IE, the page now rendered correctly!

I think that probably IE must cache the content-type of a page, so if you refresh a page, it will use the content-type that the page had when it originally requested it.

After doing this, I found that my page still won't work properly when moving an object in the DOM in IE, despite working in my test page.

I spent the rest of the morning debugging this, and creating a test page: http://www.iliveinabin.com/iframe-object-test/page.html

I found that in IE, the google maps page stops working when you move the object in the DOM, and the map has been initialized using a callback function. Strange.

On my test page in IE6, it will create an object in the page, but it won't load the object's contents. Strangely, it works okay on my real website (where I use jquery to create and append the object) though.

In IE8, it won't load the Amazon home page in an object. Presumably it doesn't like it because it's a different domain to the containing page.

In Chrome and Firefox (but not IE), moving an object in the DOM reloads it.

In Chrome, when setting the display of an object to 'none', and then setting the display back to 'block', this will cause the object to reload its contents.

I found this bug report for Firefox, which says:
Whenever an iframe node is pulled from the DOM tree, the contentWindow is set to null, forcing a reload of the iframe's content when it is placed back into the
DOM tree.
So I tried cloning the iframe, using both shallow ( iframe.cloneNode() )and deep cloning ( iframe.cloneNode(true) ), but the cloned iframe always had a contentWindow of null (even though the iframe I was cloning from had a contentWindow of DOMWindow.

I also tried assigning the contentWindow of the iframe to a variable before moving it, then setting the contentWindow of the moved iframe to the variable, but this didn't work. I tried both iframe.contentWindow = oldContentWindow and iframe.setAttribute('contentWindow', oldContentWindow). Neither worked, and doing the same thing with contentWindow.document didn't work either.

It seems that storing the old value in a variable works okay, but setting a new value for contentWindow or contentWindow.document doesn't work.

The only way I can think of that you could move an iframe (or object) in the DOM without it looking like it had reloaded is to keep track of all relevant interactions with the iframe before it is moved, and then recreate these interactions programatically after moving it. E.g. if the iframe contained just a simple scrolling page, you would have to get the scroll positions before moving the iframe, then set them again after moving it.

Looking into that took all morning and a bit of the afternoon. I went out in the garden and took some photos of Red Admirals, then spent the rest of the afternoon and most of the evening working on my geo clustering script.

Tuesday 21 September 2010

Metadataring

I spent all this morning and quite a bit of the afternoon writing descriptions, keywording, etc. my Melton Mowbray photos from Friday.

When I'd finished that, I uploaded them to the website, checked a few emails, and took some photos of Red Admirals in the garden.

After L came home from school I watched an episode of Jetman with him.

In the evening I watched a Power Rangers episode with L. I also did some work on my photo website, until Chrome decided to stop showing one of the images on the website (a close button for a lightbox) for no reason (that I could see).

Monday 20 September 2010

Processing photos

Today I was just uploading the photos from my walk with McRad on Friday, and processing the photos from Melton Mowbray.

I also watched an episode of Jetman with L, and 4 episodes of Power Rangers with L. Strangely, at 4 episodes long it must have been about as long as the film, and the story etc. was very similar to the film. We were glad to see that they didn't use bad CGI graphics for the ninja zords in the TV episodes though.

Sunday 19 September 2010

Metadataring

This morning I cut out some pogs in Photoshop, then went to Church. After church I updated my pog website.

After dinner I watched an episode of Jetman with L. Then I spent the rest of the afternoon and most of the evening writing descriptions and adding keywords to my photos of the walk I went on with McRad on Friday. I was hoping that I'd get them all done, uploaded to the website, and have started work on the photos from Melton by the end of today, but I only managed to get the descriptions and keywording finished.

So I'll have to do the uploading and work on the Melton photos tomorrow.

In the evening I also watched a few Power Rangers episodes with L, which featured the Masked Rider (who later got his own spin-off series).

Saturday 18 September 2010

Photo processing

Today I was mostly just processing some of the photos from the walk I went on with McRad yesterday. I managed to get them processed, but only got a few descriptions done. Then I've still got all the photos from Melton yesterday to process as well.

I also watched an episode of Jetman and Power Rangers The Movie with L. Power Rangers The Movie was alright, but the computer graphics they used for the zords were worse than the normal models / suits. It was a lot higher budget than the normal episodes, and while quite stupid, not as stupid or funny as the average power rangers episode.

I made a swiss roll in the afternoon with L as well.

Friday 17 September 2010

Walking and geocoding

This morning I went on a walk with McRad near Melton, then we went to Melton and had lunch in a big park there.

In the afternoon I geo-coded the photos and went on the internet while waiting. It took double time for the photos to geo-code because I had forgotten to sync my gps' and camera's clocks, so I had to first adjust the time of all the photos before I could geo-code them.

While working on the google maps integration for my website, I also found that some of my photos are geo-coded with the wrong locations. So I decided to check all of today's photos before performing the actual geo-code operation. Some did need slight adjustments, but there weren't any that were way off.

I also watched an episode of Jetman with L, and processed a few of the photos after they'd finished geocoding.

In the evening I watched an episode of Power Rangers with L, and also the Power Rangers Christmas Special, which was maniacal, but not really in a good way. I processed a few more photos as well, then went to bed about 21:30 as I was feeling really sleepy.

Thursday 16 September 2010

Javascripting

Today I was just working on my javascript overlay / lightbox for displaying my google map. I found that the info given on the web about how to calculate the page size or window size using javascript wasn't necessarily wrong. It seems that the problem is if you add or change something that modifies the page or window size, then check the page or window size, the browser won't yet have calculated the changes to the window / page size from your previous command.

So the solution is to make sure you leave some time between doing anything that modifies the page / window size and checking the page / window size (i.e. use a setTimeout).

I also found that IE would make a <object> element non-interactive if you move it in the DOM. (at least where the <object> is being used as an iframe containing a google maps page.

And the other browsers all return the <object> to it's default state when you move it in the DOM or set its display to none.

Wednesday 15 September 2010

Cross browser woes

This morning and this afternoon I spent most of my time refreshing IE6, making a small change in my code, then refreshing IE6 again. I was trying to find out why the info windows in my google map would sometimes get their parts splattered all over the map.

There was also something else strange in IE6. In my script, it fires off an AJAX request, then displays an info window saying 'loading' while it waits for the AJAX response. When the response is received, this is processed by a callback function that then updates the info window with the actual content. But in IE6 the info window saying 'loading' would never be displayed, it would just be displayed when the AJAX callback function had updated its contents.

I tried putting the AJAX request in a timeout and also doing an alert straight after the AJAX request, and it did appear that the request was asynchronous. It was just the info window wouldn't show up until the AJAX callback had finished for some reason.

It will be interesting to see what happens when it is on the live website instead of just my local dev environment.

In the evening I spent most of my time trying to figure out how to get the page and window heights using javascript. There's a lot of info on the net about how to do this, but I didn't find any that worked for getting the page height. Using the developer tools in Safari, I could see that both the html and body elements were smaller than the actual page height. I'll probably carry on working on that tomorrow.

The weather today started off sunny but very cold and windy. Then throughout the morning it became overcast, and rained a bit in the afternoon and evening.

Tuesday 14 September 2010

Google Mapping

Today I was mainly just doing more work on my google maps implementation for my photo website. After spending the last few days trying to get it to work with info bubbles that use iframes, I eventually gave up on that idea.

The problem was IE6, which throws an error about iframe.contentWindow being undefined. The problem with this is, that it throws that error when you're trying to check if the contentWindow property exists.

So
  • if(iframe && iframe.contentWindow)
  • if(iframe && typeof(iframe.contentWindow) != 'undefined')
both give the same error about contentWindow being undefined. The annoying thing is, when using MS Visual Web Developer Express to debug the error, it will break at the error, and if you check the value of iframe.contentWindow, it shows it as being a real property (with many sub properties of its own), and certainly not 'undefined').

Since the problem was impossible to debug or fix, I decided instead to just use AJAX to retrieve the page I was previously loading in the iframe. Using jquery this is relatively easy, and certainly much quicker to implement than all the tens of hours I spent on the iframe method.

Monday 13 September 2010

Javascripting and KMLing

This morning I was doing some testing to see how anonymous functions compare to named functions when doing something like setting a click event handler for multiple elements (in javascript).

I found (using the Profiler built into Chrome's developer tools) that using named functions uses less memory and is faster than anonymous ones.

However, when I tried using jquery to add the function, I found that it used the same or less memory with anonymous functions. My guess is that jquery caches the anonymous function, making it so it's not really anonymous.

The rest of the day I was working on my google maps / earth implementation. I thought I had the basics working with google maps, so I uploaded the relevant files to the web server. But when I tried it out on the live website, I found that the iframe load event I was relying on only fires when all the images and resources in the iframe have finished loading.

So I tried various things to try and listen for the DOM in the iframe being ready instead, but didn't get anywhere.

Sunday 12 September 2010

Javascripting

This morning I cut out some pogs in Photoshop, then went to Church. On the way back from Church I walked through the town as it was Arts Fresco today. It was 12pm, which was when it was supposed to start, but there weren't any acts around. Lots of people though.

In the afternoon I updated my pog website, watched an episode of Sentai Jetman with L, then went to bed as I had a headache.

Later in the afternoon I was going to go over to Lubenham to see the scarecrows, but I couldn't as L had gone out and didn't have a key, so he would have been locked out if I'd gone out.

So for the rest of the afternoon and most of the evening I did some more work on my google maps implementation.

Also in the evening, I watched 3 episodes of Power Rangers with L. In them Rita and Lord Zedd get married. The party when they get married is stupidly good, it's like the producers just tried to make it as stupid as they could.

Saturday 11 September 2010

Photoing and google mapping

I spent most of this morning and the first part of this afternoon adding metadata to some photos, then uploading them to my photo website.

For most of the afternoon and evening I was working on my google maps implementation.

Also today, I watched a couple of episodes of Sentai Jetman with L.

In the evening I went out in the back garden to photograph a bumble bee. There was a really nice sunset where at least half the sky was lit up a firey orange colour, so I was annoyed that I hadn't decided to go out in the countryside with my tripod. By the time the sunset had started it was too late to go out somewhere suitable for a photo as it only lasted a few minutes.

Friday 10 September 2010

Processing photos

This morning I finished updating my pano website with the panos I processed yesterday, then did a backup. For the rest of the day I was processing photos, and also took a few new photos.

Thursday 9 September 2010

Photo processing

Today I was just processing the photos I took yesterday evening.

In the evening I also watched an episode each of Power Rangers, Sentai Jetman, and Super Mario Bros Super Show.

Wednesday 8 September 2010

Google Mapping

Today I was still doing google maps stuff most of the day.

I also watched an episode each of Sentai Jetman and Power Rangers with L.

In the evening I went out to try and get some sunset pics. The sunset / twilight was okay, but nothing special. The rest of the evening I went on the internet while waiting for the photos to geocode and for a pano to stitch.

Tuesday 7 September 2010

Geoclustering

Today I was just working my geo clustering script. A lot of the time I was trying to work out how get the Haversine distance between 2 points so that the distance would be relative to the zoom level of the map.

In my efforts I realised that the mercator distance used in Introduction to Marker Clustering With Google Maps (which my script is based on) is suitable for clustering for google maps, but may not be suitable for google earth. This is because google earth uses a spherical projection instead of mercator. In mercator projection the sphere becomes stretched horizontally near the top.


$clusters_by_id = array(
array(array( 'lat' => 52.477631239722, 'lon' => -0.92094183),
array( 'lat' => 52.478271239722, 'lon' => -0.92094183), 15
),
array(array( 'lat' => 52.477631239722, 'lon' => -0.92094183),
array( 'lat' => 52.477641239722, 'lon' => -0.92094183), 21
),
array(array( 'lat' => 0, 'lon' => 180),
array( 'lat' => 0, 'lon' => -180), 21
),
array(array( 'lat' => 52.477631239722, 'lon' => -0.92094183),
array( 'lat' => 52.477631239722, 'lon' => -0.92095183), 21
),
array(array( 'lat' => 0, 'lon' => -0.92094183),
array( 'lat' => 0, 'lon' => -0.92095183), 21
),
array(array( 'lat' => 0, 'lon' => 180),
array( 'lat' => 0, 'lon' => 0), 10
)
);
foreach($clusters_by_id as $val){
$this->_zoom = $val[2];
$totalPixWidth = ((self::OFFSET * 2) >> (21 - $this->_zoom));
echo "

".$totalPixWidth;
echo '
pixelDistance = ' . $this->pixelDistance($val[0]['lat'], $val[0]['lon'], $val[1]['lat'], $val[1]['lon'], $this->_zoom);
$haversineDistance = $this->haversineDistance($val[0]['lat'], $val[0]['lon'], $val[1]['lat'], $val[1]['lon'], $this->_zoom);
echo "
haversineDistance = " . $haversineDistance;
$sphericalCosineDistance = $this->sphericalCosineDistance($val[0]['lat'], $val[0]['lon'], $val[1]['lat'], $val[1]['lon'], $this->_zoom);
echo "
sphericalCosineDistance = $sphericalCosineDistance";
}


Gives the following results:

8388608
pixelDistance = 24
haversineDistance = 14
sphericalCosineDistance = 854

536870912
pixelDistance = 24
haversineDistance = 14
sphericalCosineDistance = 854

536870912
pixelDistance = 0
haversineDistance = 0
sphericalCosineDistance = 158795416

536870912
pixelDistance = 15
haversineDistance = 9
sphericalCosineDistance = 511

536870912
pixelDistance = 15
haversineDistance = 14
sphericalCosineDistance = 854

262144
pixelDistance = 131072
haversineDistance = 131072
sphericalCosineDistance = 923030.0017659664154053

As you can see, near the equator there isn't a large difference between mercator (cylindrical) and spherical projections, but as you get further north (or south) the differences become larger.

So I may end up having two clustering scripts (and two sets of clustering tables in the database), one that uses mercator projection (for google maps), and the other that uses spherical projection (for google earth). But I intend to see how the points actually look in google earth and maps first before I go to the trouble of doubling up.

The spherical cosine distance seems to give a totally different value, not sure why. I got it from this page: Calculate distance, bearing and more between Latitude/Longitude points.

After making various different versions of my geo clustering script, I ran a very basic benchmark to see what difference in speed the changes made.
dk_geo_clusters_create Comparison

Each version is the same as the previous version, except with a few changes made (detailed in the Difference column). So the %age difference column is how faster one version is compared to the previous version, not how much faster it is compared to the base version.

I think the difference in speed between versions 2, 3, 4, and 5 can probably be discounted. Each version was only run 5 times, and the difference is small enough that I'd want to run each version more like 100 times to get a more accurate figure for those.

Once I have clustering working well, I may look again at those changes to see if they have any effect.

The conclusions I think that can be drawn is that:
  1. Performing fewer database queries doesn't make a lot of difference (v1 has 43 database queries while v2 has 3 queries, yet is only a tad faster).
  2. Feeding the clustered points back into the cluster function for each successive zoom level is much faster than clustering all points for each successive zoom level (v1.5 vs v2).
  3. Performing the geo coordinates to mercator pixel coordinates transformation when the records are retrieved from the database instead of when calculating the distance between two points (within the clustering function) has a massive benefit (v6 vs v5).
  4. Using Haversine distance (v7) is faster than v5, but slower than v6.


The last two items I haven't done yet, I need to get google earth and google maps working with the v6 version to check it is okay. And I need to see if using the mercator pixel distance based clustering is okay for use with Google Earth. Once I've done that, I'll work on the last two, and then possibly test the v2, 3, 4 and 5 changes again.

In the evening I also wrote this blog post and watched an episode each of Sentai Jetman and Power Rangers with L.

And a useful page I found yesterday, but forgot to mention is: InnoDB vs MyISAM vs Falcon benchmarks – part 1. I was wondering whether to use InnoDB or MyISAM for my cluster table, based on the results there I decided to go for InnoDB.

Monday 6 September 2010

Clustering

Today I was just working on my google maps clustering. I decided to change the method I was using, to use just the method detailed here. Except instead of doing the clustering at request time, my script does the clustering once, then writes the clusters to the database, so no clustering is done at request time.

While this makes each request faster, the initial clustering script takes about 11s to run, and I only have just over 1000 records for it to process. Obviously, my method would be no good if your database was being updated regularly and you wanted to serve fresh geo-data.

But for my purposes it should be okay. I need to go through the script and see if I can make any changes to make it run a bit faster though.

I also watched an episode of Power Rangers and Sentai Jetman with L. In the morning there was a power cut so while I waited for the power to come back on I finished reading John Shaw's close-ups in Nature.

Sunday 5 September 2010

Poggin' and photo processing

This morning I started cutting some pogs out in Photoshop, then went to Church.

After Church I finished cutting out the pogs in Photoshop and updated my pog website.

In the afternoon I did a backup and processed a few photos. I watched an episode of Sentai Jetman with L as well.

In the evening I finished processing the photos I was working on and watched an episode of Power Rangers with L.

Saturday 4 September 2010

Pano processing and metadataring

This morning I processed one of the panos I took yesterday evening, and then started processing the other one. For lunch we all went out on a picnic and short walk round Welford Reservoir.

In the afternoon I finished processing the other panorama from yesterday evening, and also processed a panorama I took on our walk round Welford Reservoir. I watched an episode of Super Sentai Jetman with L as well.

In the evening I spent most of my time researching descriptions for the panos I'd processed today. I found a bit of info about Lubenham Church. I couldn't find much info on Thorpe Lubenham or Thorpe Lubenham Hall though. And while I could find a little bit of info on Welford Reservoir, I couldn't find any info on the old building that I'd taken a photo of there.

In the evening I also watched an episode of Power Rangers with L, and made a banana cake with L.

Friday 3 September 2010

Getting annoyed

In the morning I took some photos of a moth that I'd captured in the house yesterday evening. I had also captured a yellow underwing, but it was such a maniac, constantly flying into the sides of the tank I'd put it into, that I just let it go in the garden.

Also this morning and part of the afternoon I was working on my google map, but got stuck. It seemed like it was retrieving all geocoded records in the database, when it should have only been retrieving all the ones for the UK (since I was only viewing the UK on the map).

Eventually I gave up and processed the moth photos from this morning instead.

In the evening I watched an episode of Sentai Jetman with L, then went out on a walk to try and get some sunset photos. Despite there being clouds around the horizon, and there being very little wind, the actual sunset wasn't very good (photographically). But twilight was good.

When I got back home I geo-coded the photos, then watched an episode of Power Rangers with L. I stitched one pano, ready for processing in Photoshop tomorrow.

Thursday 2 September 2010

Google Mapping

Yesterday evening I was looking at my website error logs, and I noticed they were all empty since about March.

So this morning I tried to find out why. I think the problem was that previously I had my error logs using the debug level. Then in March, I removed the debug level for the error logs from the different website configs, which meant that the error log level defaulted to crit. So because there weren't any critical errors, this meant the error logs were blank.

I would rather be advised of all errors than just critical ones, so I changed the error log level to warn.

After that I checked the Google Maps API forum to see if I'd had any replies to my question about the map tiles not being loaded in Firefox. I hadn't had any replies, and judging by the large number of threads there with no replies, it looked like I was unlikely to get a reply.

So I tried to debug the problem a bit further myself. I found that it worked when the page was served as text/html but not when served as application/html+xml. I found this XHTML document.write implementation, which didn't make any difference - the tiles still wouldn't load. Next I tried John Resig's implementation of XHTML compatible doument.write, but that didn't make any difference either.

So I gave up trying to get google maps working in an XHTML page, and instead put the google map in an HTML page. Then I made an object in my XHTML page that included the HTML google map page. I had read that using object as a substitute for an iframe in XHTML pages doesn't work properly in IE, so I was very surprised when it did work. I was also surprised to see that it worked in Konqueror too.

I tested:
  • IE6 on XP
  • IE7 on XP
  • IE8 on Win7
  • Opera 10.6 on Win7
  • Safari 5 on Win7
  • Chrome 5 on Win7
  • Arora 0.10.0 on Win7
  • K-Meleon 1.5.4 on Win7
  • Firefox 3.6.8 on Win7
  • Conkeror (not sure what version) on Ubuntu 10.04 LTS
  • Konqueror 4.4.2 on Ubuntu 10.04 LTS
  • Firefox 3.6.8 on Ubuntu 10.04 LTS
And amazingly it seemed to work okay in all of them. Surely something can't work cross browser without considerable hacking... CAN IT?!?!

I suspect that problems might arise if trying to communicate between the parent page and the page embedded as an object.

The rest of the day I was mainly working on my google map, which I did make a bit of progress on, so that was nice.

I also watched an episode of Super Sentai Jetman with L, and an episode of Power Rangers with L. I did some gardening, cutting down all the seeding Willowherb near the compost bin, and topped up the pond.

I made a carrot cake with L and watched an internet marketing webinar in the evening.

Wednesday 1 September 2010

Profile updating

This morning I was trying to get Google Maps working on my photo website, but in Firefox it wasn't loading any tiles. After some debugging, I still couldn't work out what the problem was, so I posted to the Google Maps API forum to try and get some help.

In the afternoon I did a backup to my WD 1.5TB replacement hard drive that arrived yesterday. While the backup was running (and also for the rest of the day), I updated my profile on some websites with a photo of a Silver Y moth, and checked my email.

I also watched an episode of Super Sentai Jetman and an episode of Power Rangers with L.