Tuesday, 30 December 2014

A king head

I woke up with a bad headache this morning, so spent most of the morning in bed (taking paracaetamol / ibuprofen a couple of times).

In the afternoon I recovered a bit from the headache, but I had to wait in for a delivery, just so I could refuse it. (I ordered a new jacket from Sports Direct, plus a cheap shirt since I had to pay the postage costs for the jacket anyway. But then they cancelled the Jacket and just sent the shirt. When I emailed them to cancel the order, they said I should refuse the delivery, then they'll refund me when the item arrives back with them.)

When that was done, I went out to test some new IR filters I received recently. Unfortunately I didn't get to fully test them as a cloud rolled in front of the sun. Typical, as it had been sunny all the rest of the day.

After I had packed up my camera I found that actually I could have just waited for the cloud to pass. Although the sun was very low in the sky, it stayed above the horizon for quite a while after emerging from behind the cloud. Never mind, I did try out a different softening filter after the sun came out again.

Monday, 29 December 2014

Debugging in IE with Visual Web Developer: Breakpoint cannot be set in this location, the code in the document is not loaded

Today I was testing one of my websites in IE7, and had an error message popping up, saying there was a javascript error, and would I like to debug it. So I clicked Yes, but nothing happened.

I opened Visual Web Developer 2010 Express to start debugging from that, since there is no Developer Tools for debugging js in old versions of IE. I started debugging, loaded the page, and got the same message. Clicked OK to debug, but nothing happened still. In Visual Web Developer it had opened the js file where the error had occured, but it hadn't paused the script at all. I couldn't see any error at the line the error was occuring.

So I tried adding a breakpoint before where the error was occuring, but the breakpoint was a yellow outline of a circle with a small warning notice, rather than the usual filled red circle. Hovering the mouse over the breakpoint gave a tooltip that stated Breakpoint cannot be set in this location, the code in the document is not loaded. Strangely I couldn't set any breakpoints at all in this script file, they all gave the same result (and wouldn't be hit when running the page, yet the error caused by that script file was still occuring).

I found a list of suggested solutions here: ie8 javascript not running or loading. However, none of them helped. Eventually I had to try commenting out a block of js in the javascript file, refreshing and seeing if the error still occured. If not, comment out a smaller block to try and find exactly where the error was occuring.

After doing this I found what the issue was, and it was about where IE said it was (technically IE gave the correct line number, but I needed to look very carefully at the line above to spot the error). The problem was that I was declaring an object with various properties, but I had a trailing comma after the last property. So IE was being better than the other browsers by flagging this, and it was just a case of me not being able to spot the issue.

Wednesday, 24 December 2014

Cleaning up my eBay watch list

It's time to clean up my eBay watched items list again, so I thought I'd make a note of some of the high / low prices people paid for items:

  • Canon EF 800 mm IS f/5.6 L Lens failed to sell for £3400 - this lens retails for about £10,000 new! They're not often on eBay, but I think around £5000 - £6000 is probably more the going 2nd hand price. I actually really wanted to buy this lens as it is such a good deal. But I can't really justify spending that much money on a lens I wouldn't be using constantly. It was later relisted and sold for £2,900! Condition was only used a couple of times for testing and warranty not registered. (Though I think you would need a retail receipt for the warranty, so that probably doesn't make any difference). No feedback has been left for the seller for this transaction though, so it's not possible to say if this was a real deal or not.
  • Samyang 14mm f2.8 ED AS IF UMC Lens - CANON EF Fit with Filter Holder - Boxed sold for £202 - not a stunning deal, but pretty good. The lens by itself normally sells for around £200-250 2nd hand.
  • A Canon FD 800mm f5.6 lens sold for £685.66. I guess that's a good price for a 800mm lens, even if it is manual focus.
  • DE OUDE DELFT HOLLAND LENS Objektiv RAYXAR E65/1.0 sold for £27.85
  • DE OUDE DELFT HOLLAND LENS Objektiv RAYXAR E50/0,75 sold for £83.94
  • DE OUDE DELFT HOLLAND LENS Objektiv RAYXAR E65/0,75 sold for £63.54 (but was then relisted, so presumably the high bidder didn't pay. The second time it sold for £78.45.) As far as I'm aware there's no way to get 'usable' results with any of these lenses on a digital camera as they need to be positioned too close to the sensor.
  • Samyang 14mm f2.8 ED AS IF UMC Lens - CANON EF Fit Boxed but no lens cap sold for £149. That's at least £50 under the normal price, maybe the lens cap costs £50? Or maybe bidders were put off by it having no lens cap, but the seller claiming it had only been used a couple of times. How could they have lost the lens cap with that amount of usage?
  • CANON EF 50mm f1.0 50 1.0 with HOOD in VERY GOOD CONDITION was sold for £2,051. However, the buyer later left feedback saying Never received! Made some excuse up about breaking it!! No evidence, AVOID!!!!
  • A Novoflex Castbal T-S Tilt & Shift Bellows with rail, right-angle bracket, and Nikon attachments sold for £225. This was Mint condition with original boxes and When bought as new... would cost well over £400.
  • Canon EF 600mm f/4L IS II USM Lens Super telephoto sold for £5,577.35, that's right, nearly twice as much as the 800mm IS lens sold for.
  • Novoflex 35mm/3.5 Noflexar Weitwinkel für Exa/Exakta sold for £44.72. Condition was D = Gebraucht und funktionsfähig. Die Linsen sind sauber, alle Ringe laufen, stark abgegriffen. (that's D = Used and functional. The lenses are clean, run all the rings, heavily worn.. It looks okay in the pictures, so I'm not sure what the problem was with the condition.
  • A different copy of the Noflexar 35mm f/3.5 sold for £65.11. Yet a copy that had issues with the optics (soft images when viewed at 100%) sold for £77. Normally this lens sells for around £100.
  • Canon soft focus 135mm lens hardly used (but looks like no box) sold for £81. That's pretty good for this lens, usually £100 - £150. Another lens I would really like but can't justify spending that much money on given how much I'd use it.
  • Lensbaby Soft Focus Optic sold for £22. I wish I'd bid on that now. There was also another seller offering a few new ones for about £30 BIN. But I checked a few weeks ago and they'd now sold all their stock. :( Another one that was missing some of the aperture rings sold for £18 (BIN).
  • tomodachi life Nintendo 3DS New and sealed sold for £31.50 despite only being £25 on Amazon at the time.
  • An unusual item - CANON EF 400/2.8 L USM II mit ORIGINAL Madonna Signatur sold for £2,008.30
  • Olympus OM Zuiko 18mm f3.5 sold for £485.15. That's not a really high or low price compared to the normal selling price. But it still seems a lot compared to similar modern lenses to me.
  • NiSi GND8 100x150mm Square Reverse Nano Graduated Neutral Density Filter -MARKED sold for £9.50. This seems pretty good to me. The filter did have a scratch, but reverse split ND filters are pretty expensive.
  • Very Rare Kuribayashi K.C Petri Orrikor 35mm f/3.5 lens - UV Transmission sold for £53

Sunday, 21 December 2014

Adobe tricked me

Yesterday I was processing a pano. Then I spent quite a lot of time trying to write the description for it. There was a big building in the photo that I thought held a big float. So I spent some time researching, trying to find out what those big floats are called.

Then, after I had found the info and written it up, I found a blog post that contained an image of the park map where the pano was taken. This showed an image of a boat, not a float. So I then spent quite a while trying to figure out what it said.

The text was very small on the map photo. I could see in my pano the building had the same text on the edge of it. But in my photo the text was quite small, and some characters were partially or completely covered with leaves.

A further problem is that I'm rubbish at writing Chinese / Japanese characters, where the stroke order, direction, and number of strokes are all important for the MS IME to detect what character you're trying to write. But I did eventually manage to get a few of the characters correct, and with Google's help, managed to find the full name of the building.

When I'd finished writing the description, I went to add it to my photo, but the Adobe XMP FileInfo panel I use wasn't there, since I reinstalled Windows a week or so ago. I tried to find a backup of the panel file, but it seems I never made one.

I still had the source files for the panel, so it seemed I would need to compile it again. Looking at the Adobe website, it seems that CC 2014 uses a different method fr creating custom FileInfo panels to CC and CS6. But is Bridge CC or CC 2014? I tried installing one of the custom panels included with the CS6 XMP FileInfo SDK, but I could not get it to load.

Today I was continuing to try and solve this problem. It turned out that the issue was to with the location I was specifiying in the Flash Trust File. I had installed the panel to the already existing folder C:\Users\\AppData\Roaming\Adobe\XMP\Custom File Info\4.0\panels. But it seems that this is just a cheeky joke on Adobe's part by creating this folder. You actually have to install the panel to C:\Users\\AppData\Roaming\Adobe\XMP\Custom File Info Panels\4.0\panels.

Once I had figured this out and got the basic sample panel to load in Bridge's FileInfo, I tried to build my custom panel. But it wouldn't build. After a bit of working out what the problem was, I realised that the directory paths in the build.properties file need to use forward slashes as directory separators, not back slashes as windows uses. Quite confusing!

After solving that, the problem was now that it was Unable to locate tools.jar. It was looking for it in the jre directory, not jdk, so no wonder. The solution to this was to change the %JAVA_HOME% environment variable to explicitly point to the JDK directory. (Previously I just had it set to C:\Program Files\Java).

Well, hoo-ray my panel would build. But boo-ray, it wasn't showing up in Bridge. The answer - I needed a manifest.xml file for the panel. After doing this I could open the panel, but it would make Bridge freeze. I had to close the Bridge process from Task Manager to terminate it.

I tried building the basic sample panel to see if it was a problem with my panel. After correcting an error in the panel's code, which meant that the panel couldn't compile, I built the sample panel okay. But after adding it to the custom FileInfo panels folder, and opening Bridge, switching to the panel had the same effect - Bridge would crash and freeze.

I thought maybe this issue was the Flex project, now under Apache rather than Adobe, has had some changes made that make it incompatible with the old Adobe released Flex. So I downloaded the latest version of Flex from Adobe. After building the basic panel with that, I still got the same result.

So I tried using Flex 3 from Adobe (rather than Flex 4). And hey-ho, it worked! After some Googling, I came across this post from an Adobe employee, who does say that it needs the Flex 3 SDK to work, and won't work with Flex 4: Re: How to create a custom panel in the right way (without having an empty panel in the file info) ? A pity they couldn't be bothered to include that information in the XMP FileInfo panel SDK documentation.

With that done, all I had to do was copy over the XMP FileInfo settings (which I had backed up). Strangely these do go in a Custom File Info folder that had already been created, you don't have to create a new Custom File Info Panels folder for them. Maybe Adobe did this just to make it all as confusing as possible. Thankfully this was quite painless, and when I opened Bridge again, all my keywords were there (I also copied over the Bridge settings, which are separate to the XMP settings), and my custom FileInfo panel had all its data there too.

So, it's probably taken over a day's worth of work just to research the description and then be able to add it to my image.

Wednesday, 17 December 2014

Quoting something a spider makes (Websiting)

So, what have I been doing lately no-one is wondering. Well, no-one, I'll tell you:

On Sunday I wrote an article for my photo tips website.

On Monday I did some work on my pano website and made some Eccles Cakes.

On Tuesday I was mainly just working on my pano website.

Today (Wednesday) I was again working on my pano website. Quite a bit of time was spent just waiting for the various android SDK packages to download so I could test my site in the android emulator. I also made some Choux buns.

Friday, 12 December 2014


Yesterday I was still working on the article for my photo tips website, recording some videos for it and inserting all the images, then proof-redaing it when it was finished.

I had some trouble recording the videos as at first my microphone seemed not to be working. Then I realised that actually no sound at all was working. I had to reinstall the drivers for my sound card. I'm not sure why they didn't work the first time. Possibly they did work then windows update installed some not working ones. Any way, at least it is working now.

This morning I prepared my pog website update and watched a couple of photography business related videos.

Most of the afternoon was spent checking my emails. I also updated the resizing embedded youtube videos javascript I worked on the other day. The issue was that I was firing it on the window's resize event, with no throttling. Now I've throttled it, so it will only run once every 250ms while window is resized.

In the evening I listed to Wilhelm Challenger and did some sculpey with Billy. (Well Billy actually did painting). I was working on a frog that I'll do for HAH. Making the colours took quite a long time. Then I needed to make the model. And after that I had to make another one and take photos of the process for the instruction leaflet.

Wednesday, 10 December 2014

Not Blogging

I think I ought to start blogging more often again. I often wonder where my time has disappeared to, and if I record what I've been doing in my blog, then at least I'll know.

Monday this week I was fixing some website stuff.

Yesterday (Tuesday) in the morning I went down town to post an ebay item (my old broken sandisk ssd) and try to get a christmas present for Mauser. In the afternoon and evening I prepared Mauser's present package, researched the postage costs, purchased and filled out all the related postage stuff, and started work on an article for my photo tips website.

The vast majority of today I was working on the article I started yesterday. In the morning I went out to try and get some photos to work on for it. I had to install Photoshop Elements trial, which took ages to download and then quite a long time to install.

In the afternoon I also made some Japanese Scotch Eggs. But I cooked the egg a bit too much so the yolk wasn't gooey, and I didn't actually like the flavour of the meat much either.

In the evening I watched an episode of Power Rangers with Billy and played a few online Mario Kart races. Then the rest of the evening was spent working on my article. I'll have to try and finish it off tomorrow.

Monday, 8 December 2014

Fixing setAttribute(...) is undefined error when setAttribute actually is defined

I was fixing up some website issues today. One of the problems was with a page that contained a youtube video. Because Youtube uses static sizing on their embed codes, the video was breaking out of the page on small screen sizes. I found a solution to this issue here: Fluid Width Video.

The site this was for uses plain js rather than jQuery, so I re-wrote the solution given in the CSS Tricks article. However, when I ran it, I recieved the following error:

TypeError: vid.setAttribute(...) is undefined

Yet I could go into the console and run vid.setAttribute (with the script paused where the error occured) with no problem. After much head scratching I finally decided to try the page in Chrome, rather than FireFox, which is what I was using. And I now saw what the real problem was - Chrome did not report that .setAttribute was undefined, but rather that .removeAttribute was not defined, which was the line below. Firefox (Firebug) was confusingly throwing the error a line early.

I was trying to use chaining, but setAttribute does not return the element you are calling it from. So you can't use chaining with it. The lesson - if the debug info in one browser doesn't make sense, try another.

Saturday, 22 November 2014

Writing and moving words

The past week I've mainly been putting the church magazine together and working on a couple of articles for my photo tips website. This morning I made some Gingerbread Latte syrup. I had some in a Coffee with plenty of milk, but it didn't seem very tasty. Maybe you need 1½ teaspoons to taste it better.

Monday, 3 November 2014

Giving up on Vagrant

Well, I probably haven't got everything working with my Vagrant box yet, but I can at least access a local copy of my website through it.

The first issue I had today was that Nginx wasn't starting with the machine, and my @reboot cron job wasn't being run either. I found the reason and a solution here: If Nginx doesn’t restart on Vagrant up. The problem is because vagrant (virtualBox) only mounts the shared folders after init and cron have run. So, in my case, the nginx conf files were in my shared folder, and the script I wanted to run @reboot was too. The solution is to add an init conf file to /etc/init that will start nginx / run the script when the vagrant shared folders are mounted.

Another issue I had was that although I had imported my mysql database, the users / privileges didn't seem to have carried over. I found the solution to this here: How can I export the privileges from MySQL and then import to a new server?. Strangely there were quite a few privileges for tables that no longer existed, so I had to delete those to get the import to import everything successfully.

So far, there are three points that seriously hamper the usability of Vagrant for me. Actually, these aren't really related to Vagrant, but problems using shared folders with VirtualBox when running a linux guest OS on a Windows host OS:

  1. Permissions can't be set properly. You can set permissions for a whole folder through the mount_options when mounting a shared folder, but this applies to the whole folder contents, and is a bit of a kludge.
  2. You can't create symbolic links in the shared folder. If you do it from Windows, then the VM can't read the link.
  3. Shared folders aren't mounted early enough, causing issues with init scripts and @reboot cron jobs.

Despite these problems, I intend to persevere, at least for the moment. The issue with using a standard VM without shared folders is that even if you only change 1 byte of code in a single file, then you have the whole VM to backup. I guess you could always just backup the files from the VM, but that means having to start up the VM and use FTP whenever you want to backup.

Aggh! I just found another issue with the shared folders - it seems that the VM has the same restrictions as windows when working with long filepaths in the shared folders! There is a possible solution given here: VirtualBox bug tracker: long paths (>260chars) cannot be created using a host:win + guest:linux setup.

However, I couldn't get that to work in combination with Vagrant. I tried specifying the path in the VagrantFile, but that gave an error about //?/E not being valid when trying to vagrant up. (I was using an absolute path to a folder on my E: drive). I tried running the command, which added the folder, but VirtualBox would not auto mount it. And you couldn't set the Auto Mount option for it using the VirtualBox GUI (the OK button was greyed out).

I also tried setting that up, then using a standard path in my VagrantFile, but the path in the VagrantFile overwrote the path set up using VBoxManage.exe. Thus the \\?\ at the start of the path was lost.

So it seems to me that with all these issues, Vagrant using VirtualBox with Shared folders on a windows host OS is just not usable at the moment. I'm going to go back to my VMWare Ubuntu VM for now. It took me over a week to try and set up this VM, only to have to abandon it. But I did learn some things along the way. Most of them I'll probably forget, but hopefully I can take a look at replacing my current shared hosting account with a VPS at some point.

Sunday, 2 November 2014

Spyro Gyra got played on "HFM through the night" (no DJ)

Today I was still trying to get my Vagrant box set up. I'm getting closer, but still not quite there yet. I think if I've learned one thing from this process, it's that I really ought to be using VPS hosting so I don't have to compile everything from source. It would make installing, and just as importantly, keeping everything up to date, so much easier.

I also had another issue with Vagrant / VirtualBox, which is that as well as not being able to create symlinks in a shared folder, it can't read them either. Quite annoying, as I was thinking that creating the symlinks from windows might have been a solution in some instances.

I was quite happy with myself today as I managed to start writing an article in the afternoon, and had it ready to publish by 9pm. As usual finding and inserting the pics took a lot longer than the actual writing process, but I was able to find relevant pics a lot faster than I usually can.

Friday, 31 October 2014

Still Vagranting

This morning I got a bit further with setting up my Vagrant box - I can now access static HTML pages!

The first issue I had today was that I couldn't ssh in with my user. I found this is because I'm passing the password as a parameter when creating the user, and this requires a password encrypted using crypt(3), not a plain password as I was using. But when I tried to use crypt, I got a message that it wasn't installed and I needed to install mycrypt to use it. So how was passwd generating a password if crypt wasn't available?

I tried installing mcrypt, but that gave me crypt(1), not crypt(3). I'm not sure what the difference is, but man useradd does specifically say the password should be The encrypted password, as returned by crypt(3). I then found this resource: Generating Passwords Using crypt(3), which gives a number of options.

I tried the openssl method, and it worked. I don't understand how though, as each time I used it, it gave a different output. Presumably it uses a variable salt, but since the salt is not recorded I have no idea how it can decrypt the password or encrypt subsequent input of a password in the same way for comparison.

After fixing various problems with my nginx install script, I tried testing a webpage, but it didn't work. Unfortunately Fiddler2 didn't show any IP address information, so I couldn't tell whether it was even trying to connect to the Vagrant box.

After restarting Chrome though, Fiddler did give some information. Instead of the webpage I was trying to load, Fiddler output as the response that the connection was refused, and also included the IP address, showing that it was correct. Checking the running process on the Vagrant box ps -A, I found that the frontend Nginx wasn't running. A mistake on my part - I had service nginx reload when it should have been service nginx start.

With that up and running I could now connect OK. The next steps then, are installing my local copies of mysql and php.

In the afternoon I spent ages trying to get a directory protected under apache, but with access to certain files allowed by basic auth. I tried lots of different things, and couldn't understand why they weren't working. Then I realised - my FilesMatch block was never matching because the filename I was matching had brackets in it. After escaping the brackets I got it working how I wanted quite easily.

Installing mysql on my Vagrant box took ages - I would guess at least an hour for building the dependencies, and at least another hour for mysql itself. When it was installed I had some trouble getting it running, and this was due to permissions problems related to having my.cnf located in my shared folder. You can read more about this issue here: vagrant permissions and foldering.

Thursday, 30 October 2014

Vagranting still

After spending quite a bit of time this week in trying to get a Vagrant box set up I discovered an issue today that hampers its usability. Actually this issue is not with Vagrant, but rather using VirtualBox on Windows. The big benefit of this setup is being able to have all your work stored in Windows, and then having that folder available in the VM. But symlinks can't be created in the shared folder from the VM.

I think I'll probably be able to work around this issue, but it is a pain.

Wednesday, 29 October 2014

Still trying to set up Vagrant

Today I was still working on getting a Vagrant box set up for my web development environment. To get the box set up you have to create a shell script that will be run when starting up, and in this script you need to install and configure everything.

I wanted to test the script as I write it, to ensure that it works correctly. The simplest way to do this is to ssh into the box and then execute the script from there. However, when I tried to execute the script I got the error ": No such file or directory". I checked the permissions for the script, and execute was marked, so that wasn't the problem. After a bit of googling I found this thread, which had the answer: No such file or directory error when trying to execute startup script in Debian.

When I ran file ./Vagrant_Bootstrap.sh, I got the output:

./Vagrant_Bootstrap.sh: a bash\015 script, ASCII text executable, with CRLF line terminators

Note that it is not a bash script, but a bash\015 script, and also that it has CRLF line terminators. The script needs to use LF line terminators, which I thought that my editor Scite used. Obviously not. After converting to LF, the file command now gave:

./Vagrant_Bootstrap.sh: a bash script, ASCII text executable

With that done I could execute the script, though it didn't work. I found I needed to sudo the script to run it since it installs software. (Not that surprising). Presumably Vagrant sudo runs the script when running it as a bootstrap, since they don't use sudo in front of the commands in the script in their examples.

I found that I couldn't get apache2 to start as my configuration uses SuPHP_UserGroup, and this is not available in the libapache2-mod-suphp build from the Ubuntu repository. So you have to build it from source: How To Install suPHP On Various Linux Distributions For Use With ISPConfig (2.2.20 And Above). But I then had a load of issues getting that to install (no libtool or make installed by default, needing to libtoolize, etc). I need to try it again from fresh to check if all the steps I used in finally getting it to compile are needed or not.

After getting it compiled I still couldn't get apache2 to start. From the log, it looks like this is because the error log directories specified for the sites enabled didn't exist. So this essentially means getting most of my home directory copied from my current Linux VM over to the shared Vagrant folder in Windows.

The issue with doing this was that I have some filenames that aren't acceptable to Windows, such as filenames with '?' and ':' in them. As much as I dislike arbitrary restrictions like this, the only way I could think of dealing with this is to rename the problematic files to remove the problematic characters.

I have a lot of tabs open with setting up Vagrant related stuff, so I'm just going to list them here in case I want to come back to them:

Tuesday, 28 October 2014

Trying to setup a Vagrant box

This morning the weather was sunny, so I went out on a walk to take a few photos. I would have preferred a few clouds in the sky, but sun was the main thing I wanted. It was actually pretty hot, even in my T-shirt.

In the afternoon I geo-coded and processed a few of the morning's photos. Then I carried on trying to get a vagrant box set up, which I started yesterday.

The first issue I had was that there was no ssh on my system. So I had to install git and add its bin dir to the %PATH% environment variable.

But with that done I still couldn't get Vagrant working. I followed the tip here: Vagrant stuck connection timeout retrying to modify the VagrantFile so that the VM would be opened in a VirtualBox window. That showed that the VM booted up with no issues. When I tried Vagrant ssh nothing would happen and cmd would just go onto a new line.

I found someone with a similar issue here: Nothing happens when I type "vagrant ssh", though their vagrant up appears to work okay rather than getting an ssh connection timeout as I was. Reading more suggestions in the stack overflow thread, and this comment in particular, I found the solution - downgrade VirtualBox to 4.3.12. After doing this Vagrant up works with ssh connection issues and subsequently Vagrant ssh will ssh into the VM successfully.

Hopefully this will let me drop my VMWare Ubuntu machine and work from windows with the lighter weight Vagrant VM instead. I'll need some time to learn and practice before I can know whether this will actually be practical or not.

Saturday, 25 October 2014

Eating Woody Woodson

This morning me, Clare, and Brian went out on a walk. After the walk we went to Wigston, where there was a small shop that sold mainly seafood, but also Pigeon (or 'Pidgeon' as they had on their sale board). Seeing pigeons in the garden everyday, I've wanted to eat one for quite a while.

So I bought a couple, and then spent quite a bit of the afternoon getting them ready for cooking. They were very smelly! Thankfully they were already feathered and gutted.

After pulling / cutting the skin away from the breast, I could then cut the breast meat away. I also skinned the wings, which looked like they had a bit of meat on them. There didn't really seem to be any meat elsewhere on the birds.

Pigeons before skinning
Skinned but breast not removed
Frying the wings and a small offcut of breast
Left overs

They must have been Woodies rather than reared pigeons as they had a few bits of shot in them.

We used a Pigeon Casserole recipe, but Clare made some Cheese scones to go on top, and we had vegetables with it rather than in it. You brown the pigeon pieces in a hot frying pan, which is very quick, then add them to the casserole dish. Then fry up the veg (we just used leek) and add that to the casserole dish. Then cover in gravy and cook. We did 15 minutes at 160 C fan I think, added the cheese scones, then 20-25 minutes at a slightly higher temperature.

When it came to eating it, the wing pieces were just too tough. It seems like they are covered in sinews rather than meaty muscle. The meat was cooked nicely, and tasted like liver. So, I can't say I was a big fan. I don't mind liver occasionally, but it's not something I particularly like. Still, at least now I know what pigeon tastes like. I forgot to take a photo of the cooked meal though. Doh!

In the evening me and Billy watched Gandhi. It was very good and featured the actor that plays Dhalsim in Street Fighter the Movie. Really we wanted to watch Thunderbirds the Movie tomorrow, since that features Ben Kingsley too. But sadly that film doesn't seem to be available for download anywhere. (Well you can rent it for £2.50 from the Google Play store, but that seems like an extreme rip-off given the film's reputation).

Saturday, 18 October 2014

Forgot to put a title

I finally received my replacement hard drive today, I ordered it on the 11th, so it took a week to arrive. The postage actually only took one day, but it was only dispatched yesterday. I ordered through Flubit, and the deal provider was given as Fireworks Express (eBuyer).

Looking at Flubit, and how it works, companies sign up with Flubit and for each product they stock, set the price they are willing to sell at. When you request an offer through Flubit, Flubit than takes this base price and adds on a bit for themselves, which gives you the offer price. This doesn't really make too much sense for me, why don't the companies sign up with Flubit just sell at that price level anyway, and then they would also take the 'extra' that Flubit adds on for themselves.

Maybe it's just that most people don't use Flubit, and so if you can sell a product at a higher profit level normally, and just reduce your profit for a few transactions through Flubit, then it makes sense to keep your standard price high. Assuming my hard drive came from eBuyer, it was a lot cheaper than they sell the item for on their website. If they made a profit on the drive they sold to me, with Flubit taking a cut, they must make massive profits on sales through their website.

Another thing with Flubit is about who Fireworks Express are (which was the company providing my order through Flubit) - they are a company owned by Flubit. Fireworks Express has links with 800 companies, and is used to provide products that other merchants aren't covering. What I don't understand is that they seem to work in exactly the same way as Flubit itself works. Why have a company within Flubit that works with 800 companies and Flubit itself also working with X number of companies? Why don't all the companies just sign up with Flubit, since surely signing up to work with Fireworks Express is exactly the same?

Kudos to Flubit though for openly and transparently explaining how they work and who the mystery Fireworks Express are. (I got the above info from the Flubit website).

Yesterday I watched Jurassic Park with Billy, and today we watched The Lost World. It definitely isn't as good as "Jurassic Park" (so many great one-liners), but still pretty good. I really liked the bit near the start where a woman on the island sees her daughter getting eaten by dinosaurs and screams, then it cuts to Jeff Goldblum with a blue sky and palm trees behind him, but the scream continuing. He steps away and you realise the background behind him was just a poster, and he's in a tube station - the screaming sound is the train brakes. Just genius.

Doesn't Steven Spielberg mean Steven Game Mountain?

Wednesday, 15 October 2014

Watching and writing

Today I watched Creative Wow: Drone Photography and Creative Wow: Macro Photography, both with Jack Davis on Creative Live. I wrote an article for my photo tips website as well.

Watching the workshops, I got the impression that Jack doesn't really know a lot about what he is talking about. That's not to say he doesn't know anything - he clearly does. Just he does not come off as an expert.

The Drone photography workshop was really just about how to operate a DJI Phantom II and then how to process the images (which is basically the same as any other photo). A lot of the info was new to me, but it seemed like he just had some experience with Drone Photography rather than being an expert. There was a guy in the audience (who was specially invited because of his experience) who obviously new a lot more than Jack.

He said that you can't create a panorama using a fisheye image, so it needs to be defished first. That may be true for Photoshop (I don't know), but certainly isn't true for other software.

In the Macro workshop he kept referring to dynamic range when he meant Depth of field. (If he did mean Dynamic Range, then what he was saying wouldn't make any sense). I think he does understand the difference between DR and DoF, just kept using the wrong term without realising it.

He stated that a reversing ring allows you to get much closer with any lens (or something along those lines), but actually any true macro lens above 50mm won't focus as close when it is reversed.

He said that using a really small aperture gives you image noise. But this is only true if you boost the ISO to compensate for the small aperture (or underexpose).

Now, this may be my misunderstanding, but he stated that the higher the bit depth, the greater the dynamic range. My understanding is that the bit depth deals with the gradation of tones (more tones = more even gradation) rather than the absolute exposure range that can be produced. I should probably read up on that a bit more to understand whether he is correct or not.

His macro shots he took using a high ISO, which resulted in grainy images. I guess that's a personal preference, but I think the images would have looked a lot better shot at a low ISO (and properly exposed).

When taking a shot with a zoom lens on extension tubes, he zoomed it in (to 200mm) and used the focusing ring for focusing. Maybe he mentioned it in a bit I missed, but I got the impression that he didn't realise that the shorter the focal length, the higher the magnification (with both a reversing ring and extension tubes).

I don't think he covered the use of close-up diopter filters or reversing a lens on another lens (both have the same effect) at all.

He didn't cover the use of flash at all (unless it was in a short bit I missed).

Most of the work he covered was close-up and not macro. I don't think he mentioned what macro means, though he did say that he would have preferred the course to be called Close-up and Macro photography, so maybe he did understand that.

He did cover focus stacking, but just in Photoshop and Helicon focus. He didn't cover any of the technical details of the best way to shoot a focus stack. And it's my understanding that Zerene stacker is the premier stacking software. Covering something like Zerene, CombineZP, and Photoshop CC probably would have made more sense than the PS CS6 - PS CC - Helicon Focus comparison he did.

He mentioned a few times that the Nikon D7100 has an FX size sensor, which gives a 1.5x multipler compared to a full frame DX sensor. (He got the terms FX and DX mixed up, F stands for Full Frame).

None of this detracts from his artistic ability. You don't necessarily have to understand how something works to achieve great photos. But I do think that understanding the technicalities behind how something works can help you achieve better results.

I also suspect that when you are presenting a show it is probably very easy to forget to mention things or use the wrong term to describe something. So it may well just have been the pressure of doing a live show making it look like he didn't know a lot.

One thing I had always thought was that adjustment layers in PS were non-destructive. In the sense that if you pull curves down in one adjustment layer and then pull the curves back up in another adjustment layer, then PS would calculate the processing based on all the adjustments together, in effect not performing any pixel munging. However, Jack stated that the adjustments in PS don't work the same way as they do in ACR, where it calculates the actual adjustments needed based on all the adjustments made to an image. I just tested this, and he appears to be correct. It looks like PS does process the image at each adjustment layer, moving up the layer stack.

So having a lot of adjustment layers can result in image degradation. It seems strange to me that PS should work like this.

Saturday, 11 October 2014

Investigating cloud storage solutions

This morning I finished processing the pics I was working on yesterday. Then I looked to see if there was an alternative to Microsoft OneDrive that didn't have sharing limits (or had generous sharing limits).

Google Drive is one possibility, but it appears they have undisclosed limits, just like the Microsoft solution: Does Google Drive have a download bandwidth limit? and Google drive limit number of download. Like Microsoft, Google do not make this information easy to find. Indeed, the 'best answer' chosen by a Google employee states that there is no limit, so it seems like Google are trying to purposefully mislead people, which is even worse than Microsoft.

Still, I get the impression that the limit on Google Drive is likely higher than the limit on MS OneDrive.

Copy sounds like an interesting alternative, but again, they do not supply any information about sharing limits. There is a question on their forums about it (Fair usage limitation - are there any?), but it doesn't have an answer. So I messaged their support to try and find out the answer.

Another cloud storage solution is Box. While they're not up front about their sharing restrictions, they do have it covered in their help articles: How Does Box Measure Bandwidth Usage?. The article tells you the limits, and I get the impression that you can monitor how close you are to your limit from your account.

There is a max file size of 250MB for free accounts, which would mean that uploading a zip of RAW files might be too much. But they are up front about this, you don't even have to search their support docs to find this out.

Yandex.Disk has sharing restrictions. They won't tell you what they are, but do at least tell you they exist in their FAQ: Yandex.Disk FAQ: Why is access to a public file restricted?

Most of the rest of the day I was working on an article for my photo website.

Friday, 10 October 2014

Dead drive :( :( :(

This morning was a bit like yesterday evening. It just seemed to pass without me actually doing anything. I checked my emails and did some vacuuming, and that was about it.

Oh, I did spend some time trying to get Mauser's comp to work, so I could test my Sandisk SSD with it. Sandisk replied to my support request about the drive not working to say try it on another PC, and if that doesn't work, then RMA it. But I couldn't get Mauser's comp to switch on, it seemed like now that had broken too!

And I took the icing off the cake I made the other day (which pulled off some sponge with it). Then I added some more icing sugar and vanilla to it and put it back on the cake. It's nicer now, though I think it could still do with more vanilla.

In the afternoon I processed some pics.

When Billy got in I asked him to look at Mauser's comp, and the problem was that the motherboard power cable is a bit temperamental. I tested the drive on that PC, and it had the same problems. Since I bought it 2nd hand I won't be able to RMA it, and it seems I'll have to shell out for a new HD :(

I was thinking about uploading the RAW files of some of the images I was working on, to allow others to have a play with them. There are a lot of files, so it would be a big upload, and I wouldn't really want it hosted on my own hosting.

I looked at Microsoft OneDrive (previously SkyDrive previously Microsoft Live Drive). However, it seems that there are quite a few restrictions making this service unsuitable for generally sharing files. (And these restrictions are not obvious - you have to search Google to find the information that Microsoft should be telling you up front about the service).

One restriction is that users must have a microsoft account to download files over 25MB. Another restriction is that there is a 'daily sharing limit'. According to a Microsoft employee on that thread:

...newly created accounts still need to build account credibility or reputation to increase daily limit. This is to prevent account abuse and spamming. You need not to worry as your limit will increase through continuous use of the service.

As the reply to that post states, there is no way to check what "crediblity" "reputation" and what transfer limits are in place.

So the service is only of use if you are sharing files with close friends who have a microsoft account and won't be perturbed if they can't download the files because you've reached your hidden sharing limit. Why don't Microsoft just state that instead of making people have to spend time in researching what the sharing restrictions are?

And on the subject of Microsoft, Mauser's comp uses Windows 8. What an abysmal OS! I hadn't used it before, but it seems they changed it to make everything hidden by default, and make it so it takes 10 clicks to do what used to take 1 or 2. Big corporations (and Government organisations) always just seem to make everything as unusable and inefficient as possible, with no logic behind their decisions at all.

Since I need to buy a new SSD, in the evening I looked at what upgrading my motherboard would cost. My computer is pretty old and only SATA2, so in theory a new one could provide quite a good performance improvement.

Of course, since my PC is old, then upgrading the motherboard would also require me to upgrade the RAM and CPU. And, yikes, it gets expensive quickly. I priced it as follows:

X99 mobo
Intel Core i7-5820K 3.30GHz processor

And that's without even looking at the cost of a decent graphics card (the one I have at the moment is pretty poor). Ideally I'd like 32GB of RAM too. These aren't top spec components or anything, but neither are they the very cheapest. I looked at what gives the most 'bang for the buck', so to speak.

So, sadly I don't think I'll be upgrading my 6+ year old PC at the moment. While prices do come down over time, I can't help thinking that it will be quite a while before those prices get much lower. If the Mobo was £100 and the processor £150, it would still be quite a lot for me, but a more realistic proposition.

Thursday, 9 October 2014

Broken HD (again)

Yesterday I was still fixing website issues that I'd uncovered during my stats checking on Tuesday. This morning I couldn't start up my Ubuntu VM that I do all my web dev work on. Thankfully all (or nearly all) the work that I'd done yesterday I'd uploaded to the live sites. So if the VM image had become corrupted, then I wouldn't loose much work, it was just be a bit annoying trying to synchronise back the changes I made from the webserver.

I tried one of the other VMs I use for testing IE, but that wouldn't work either. In both cases the VM would start up, but then it would be very slow and stay on the loading screen for quite a while. Then you'd get an error about not being able to read the VM image.

I ran an Extended SMART test on the drive the images are stored on, and tried restarting the PC too. But the test came out okay and the problem persisted after a switch off and switch on again. So I thought the only recourse left was to do a Secure Erase.

But this exacerbated problems, and now the drive seems not to work at all. The computer won't even start up when it's plugged in. So I sent a message off to Sandisk support to see if they can help figure out the problem and how to fix it.

So dealing with that took up quite a bit of the morning. I also made a walnut cake in the morning, and had a slice for lunch. It's okay, but the icing would have been better if I'd halved the margarine amount and added the equivalent amount of icing sugar instead. Plus added more vanilla. (The recipe was for a coffee and walnut cake, I just made it without the coffee and with vanilla extract instead).

In the afternoon I prepared my pog website update.

In the evening I'm not sure what I was doing! It went by so quickly. I think I must have spent most of it just reading about photons and whether they 'exist' or not.

Tuesday, 7 October 2014

Stats checking

This morning I switched my PC on, and when windows loaded the PC started making a loud noise (like a bad fan). So I switched it off and started it up again, but this time the noise started even before Windows had loaded.

I tried to find the source of the noise, and eventually tracked it down to the front case fan. I put my finger in / on the fan blades, temporarily stopping the fan. I removed my finger and when the fan got its speed back, it was now silent. That's #computercasefanlogic

In the morning I was checking my web stats. I found quite a few problems, mostly due to some changes I've made to some of my sites recently. So most of the rest of the day was spent trying to fix these issues.

Friday, 3 October 2014

Ray Singh, Sir Kitt

I had an email from Google that my Google Play credit was going to expire in a few days, so I thought I had better spend it. About a week ago I received an email from them saying that they were doing some albums for 99p. I did look at this at the time, but didn't think any of the albums they had listed were worth getting (as an mp3 album) for 99p. But since I had credit that was otherwise going to go to waste, I thought I might as well take a look at them again.

The page has a list of albums, and when you click on one it takes you to a page for that album. On that page you can then click a Buy button. But this showed the price as being £3.99, which is also the same price displayed on the page with the list of 99p albums. According to the email from Google, Once you add an album to your cart, your exclusive discounted price will be reflected in the purchase total. However, it is not clear what this 'purchase total' they are referring to is. I would have thought it was the price displayed when you click the buy button.

Then, checking the small print of the email, I realised the issue: Offer expires 11:59 p.m. BST Saturday, September 27, 2014. So why didn't they just print this larger in the email? Don't they know that having a tight deadline for a deal will only encourage action if you actually publicise the tight deadline? Or did they just decide to hide it in the small print to annoy people like me?

So, after that, I decided to see if there were any ebooks I would be interested in. But when I searched for specific books they were nearly all the same price or more expensive than the print copies!

So I tried browsing the books, but the Google Play store only displays about 50 results per page, and has no pagination. So weird, why would you ever think of only allowing people to only view the first page of results? Also, there was no ability to sort the books by price.

When you search for a term, the situation is very similar - only a single page of results. You do get a filter by price option, but you can only choose 'free' or 'paid'. Better than nothing I suppose, but still a real #googlelogic decision.

So, in the end I wasted some time and am unable to spend my credit due to the extremely poor design of the google play store.

I did some website updates and went out for a little while to take some test photos, and that's about it for today.

Thursday, 2 October 2014

Ah, you mean graffiti drawn with a device that applies ink from its nib (Oh pen graff)

Part of today I was trying to fix the open graph tags on one of my sites. You can find the open graph documentation here: The Open Graph Protocol, which gives the following tags as being required for every page:

  • og:title - The title of your object as it should appear within the graph, e.g., "The Rock".
  • og:type - The type of your object, e.g., "video.movie". Depending on the type you specify, other properties may also be required.
  • og:image - An image URL which should represent your object within the graph.
  • og:url - The canonical URL of your object that will be used as its permanent ID in the graph, e.g., "http://www.imdb.com/title/tt0117500/".

Now, for me, I have lots of pages that don't have an image. This is for a Wordpress blog, and I'm pretty sure the Yoast SEO plugin's solution for when an explicit image is not set, is to add og:image tags for all images in the page. The Jetpack plugin for Wordpress apparently adds a link to a blank image hosted on Wordpress.com if there are no images found.

Searching for how other websites deal with this issue is rather difficult, at Google just returns results dealing with how to add og:image tags, rather than what to use as the value when you don't have an image. However, I did find this page: Default OpenGraph Image for Jetpack. This suggests just using a standard default image, which was the only solution I could think of too.

Checking for the best size for a default image, I found Facebook Content Sharing Best Practices: 4. Optimize your image sizes to generate great previews gives a size of at least 1200 x 630 pixels. So I just made a pic that large with my logo and a picture that I often use to represent the site as an avatar / social media profile background. Then I can modify my theme to use that as the default og:image for non-singular pages, or when a featured image hasn't been set.

Friday, 5 September 2014

Still Buggin'

Today I was doing some more website testing. Weirdly I managed to come across two IE bugs I've never noticed before. One was that IE6 doesn't support multiple CSS class selectors, e.g. if you have <span class="something green" /> then the CSS selector .something.green doesn't work properly.

The other issue was with IE8, which will shrink PNG images to 0px wheb they have a max-width of 100% applied. The solution to this is quite simple - just add width: auto; to your img ruleset.

An issue I had with Android (but not in Safari 5.0, despite them both using the same Webkit engine) was that overflow-x: hidden wasn't being respected properly. The page looked fine on load, but when you scrolled down if you scrolled off the right side slightly you'd find the page extended to the right (just full of whitespace). This is because I was hiding the site's sidebar off the right edge of the page. So I had to rewrite how I was hiding the sidebar.

Annoyingly it still has some hidden whitespace off the edge of the page in Android 2.3.3 and I also have other issues with the site in that browser. However, without debugging tools finding the issue could be very problematic, so I'm just going to ignore those issues for the moment. You can still read the site's content in that browser anyway, which is the main thing.

Saturday, 30 August 2014

A sarcastic can (Wry tin')

I spent most of today writing an article for my photo tips website.

In the late afternoon and evening I watched an episode of Power Rangers in Space and played Mario Kart with Billy, did some website work, visited KK, did some gardening.

Tuesday, 19 August 2014

No more Joker of the week :(

The last three days I've been writing an article for my photo tips website. Yes, it really did take 3 days to write a single article. Well, actually most of the time was spent finding and taking photos to illustrate it. But the writing did take up quite a bit of time too.

In the evening I was listening to HFM, and Liz Osborne said she'd scrapped Joke of the week! Can you believe it! That was the only reason for listening to her show as she mostly plays generic pop rubbish.

Thursday, 14 August 2014

Just buggin'

Today I was just testing my photo website in various browsers, then with the W3C Validator, and then in the IIS SEO / Site Analyzer. At each stage I've been finding various things that need fixing. I still have a load of stuff the IIS Site Analyzer brought up that I'll have to get on with fixing tomorrow.

Monday, 11 August 2014

Article writing

Sarah came up with Levi yesterday evening, so I spent a bit of today looking after Levi. But most of the day was spent writing an article for my photo tips website. And I thought it was only going to take 1-2 hours to finish. As it is, I still haven't finished it and will have to finish it off tomorrow.

The writing took a lot longer than I thought it would. But finding relevant pictures to illustrate it was also a lot more difficult than I thought it would be.

Sunday, 10 August 2014

I can't think of a title

This morning I did some more work on the google custom search form for one of my websites. An issue was that Google uses a namespaced element with gcse as the prefix. But they don't supply a namespace URI for you to use, resulting in invalid XHTML. Looking into this, I found some people had implemented a fake namespace such as:


However, I then found that Google actually offer an HTML5 syntax for the search elements, meaning you don't need to used the gcse prefixed elements at all. I wonder why they provide the generated code and all code examples using the namespaced elements if they actually support a valid HTML5 syntax that could be used instead? Seems quite silly.

Friday, 8 August 2014

Website stats checking

Today I was doing webstats checking. I noticed that I was getting a lot of 404s for pages with /RK=0 tacked on the end, so I wondered why I was getting requests with RK=0 on the end. (Actually I've been getting these for a long time, I just decided to look into it more today). I found the answer here: Server Logs with RK=0/RS=2 .... I now know what these are.

Apparently they are from bots scraping Yahoo search results. If you check that link, it gives a bit more detail about why bots are scraping Yahoo search results and where the RK0 bit comes from.

Anyway, it seems it's not bots searching for a site vulnerability or anything legitimate either, so they can just be ignored.

Something I noticed when checking the browser stats for a site was that I had a visit from someone using IE 999.1. After doing some research, it seems that this UA string is used for people using the stealth mode in Symantec software: What does the Stealth Mode Web Browsing feature in SEP 11.x / 5.x do?.

Going back to 404s, another problem I noticed was URLs with &cfs=1 appended on the end. There seems to be very little information on this (probably partly due to the uselessness of search engines when searching for non human text). I did find this post, which suggests it is malformed requests generated by Facebook: URL Parameter (&cfs=1) Causing .NET Exceptions.

It does annoy me that large sites like Facebook and Google send these made up requests. We have enough problem with dodgy bots without Google and Facebook adding their own dodgy bots to the mix. On one of my site probably the majority of dodgy requests come from Googlebot.

Still on the 404s, I noticed that I was getting 404s for URLs that exist with a hash / fragment identifier on the end e.g. /url/#respond. I was perplexed at how these could 404, since it was a valid URL. Then reading this post: Why URI-encoded ('#') anchors cause 404, and how to deal with it in JS?, it became obvious. The browser does not send the hash to the server. So if a browser does send a request with a hash in it, it means that it is requesting an actual address (file) with a hash in it. So the 404s were quite correct. (It appears to be a bot sending these dodgy requests as in the logs I would see a request for the page and then a requests for the url with various anchors linked to as hashes).

Checking my sites in Google and Bing Webmaster tools, I noticed an unusual search impressions graph. Every weekend the searches drop off dramatically, then pick up again on Monday. I wonder if people only search for info on the subject that this website covers when they are at work?

Amazingly I did manage to get through checking all my website stats today, despite also doing some other stuff as well.

Thursday, 7 August 2014

Trying to update website search page

The vast majority of today was spent trying to update the search page on my photo website so that the google search results would fit okay on a small screen.

The issue was that although you can use a javascript variable (window['googleSearchFrameWidth']) to set the width of the iframe that the search results are displayed in, Google wasn't actually respecting this value. After reading various forum threads / blog posts, I tried a few things and got a better result. But the results were still about 400px or so wide. And since the results were being displayed in an iframe on a different domain, there was no way to get the width below this.

Then I discovered that there is a new Google Custom Search, which does scale automatically to fit on small screens. After implementing this on the search page, I tried to see if there was a way to have the search box on other pages as well, but always display the results on the search page. (By default the results are displayed below the search box). However, I couldn't see anyway to do this.

So instead I decided to have a fake search box on each page that would submit the search to the search page. Then I used some js on the search page to grab the submitted search query and programatically add it to the google search box on the search page and click the search button. This way a search box can be used on any page, and the results will appear on the search page.

However, I noticed in the console a message saying that it looks like I'm trying to do a search programatically and should consider using google.search.SearchControl instead. Well, the first thing I thought was how clever it was of Google to detect that, and very helpful of them to include that message. However, when I searched for google.search.SearchControl it brought up documentation saying that the API is deprecated and only allows limited searches.

I then tried to see if there was a more up to date API, and there is. Actually it's the same as the search code I got for my Google Custom Search form, just with a few modifications. You can find the docs here: Custom Search Element Control API. Basically you just use <gcse:searchbox-only resultsUrl="http://www.mysite.com/mySearchPage"> on any page you want your search box to appear. When the user searches, the URL set as the resultsUrl attribute will load. On this page you include either <gcse:searchresults-only> (for results only) or <gcse:search> (for search box and results).

So most of today was wasted, and the actual solution I wanted was very easy. Still, at least I did get what I wanted in the end. (Though I do still need to do some work in styling the search form).

Wednesday, 30 July 2014

Insulting a daisy (Diss aster)

This morning I was updating the CTH website, then for quite a bit of the rest of the day I was working on my photo website.

I had an annoying problem with my PC where it suddenly 'lost' the drive that my Ubuntu VM is located on. I restarted, but the drive wasn't loading during the POST. So I shut down and fiddled some wires, but then I got a message about the drive not being bootable, and Windows wouldn't start.

So I fiddled the wires a bit more, started the PC up again, and went into the BIOS setup. During POST the 1st drive wasn't loading now. I checked the drive priority settings, and modified these so I could choose my Windows drive as the boot drive. I fiddled the wires a bit more, saved the settings, and thankfully it restarted with all drives detected and booted from the Windows drive successfully.

Friday, 25 July 2014


This is probably one of the most unusual super telephoto lenses I've seen for sale - a Canon 400mm f/2.8L II (non IS) lens signed by Madonna - http://www.ebay.co.uk/itm/261541744647.

Wednesday, 23 July 2014

Oh the joys of IE

Today I was testing my new responsive design on IE11-8. It works fine in IE11 and other modern browsers, but there were numerous problems that needed fixing in the older IEs (different problems for each version). So most of the day was spent trying to figure what the problem was, then how to fix it.

I guess I should really be thankful that Chrome and Firefox both update their browsers often and automatically, so I only need test in the current versions of the rather than having to test in 30 different versions.

Saturday, 19 July 2014

Stormy and sunny

Today I spent quite a bit of time working on the church 'mag'. I also watched some more of Art Wolfe's Creative Live seminar, which was mostly just 3 episodes of his 'Travels to the Edge' TV series. The seminar didn't really teach anything new, but it was still full of good advice / reminders. The main points he made were:

  • Don't put your horizon line in the centre of the image - include more of whatever is most interesting (sky or foreground).
  • Get closer to (interesting) foreground elements to help make them more of a real part of the image and anchor the image / create depth.
  • Make the interesting thing in the frame larger, don't include elements that either don't add to or distract from the subject
  • Choose unusual angles - he likes shooting down on subjects a lot
  • Work the scene - start at a wide angle, then go in closer to something in the scene, he often ends up with something that is just an abstraction
  • Not mentioned in the bits of the seminar that I listened to, but in the TV series I noted that he nearly always uses a tripod (slows you down, makes you think more, keeps the camera steady)

Wednesday, 16 July 2014

IE wasting my time (as usual)

This morning I spent a lot of time trying to debug two issues I was having with one of my websites in Internet Explorer. The first was that a border that was meant to have rounded corners (using border-radius) did not have rounded corners. Yet the border-radius properties were showing up in the IE Developer tools correctly.

Eventually I tracked this down to a bug in IE9, which means that a fieldset cannot have rounded borders when it contains a legend: IE9 fieldset rounded corners.

As part of debugging this issue, I found that IE wasn't acknowledging my X-UA-Compatible meta tag. After researching that, it seems that this tag must come before any other script or link tags in the page's head: X-UA-Compatible is set to IE=edge, but it still doesn't stop Compatibility Mode. So I just changed the site to send it as an HTTP header, as recommended in that thread.

The other main issue I had was that IE was overflowing text out of some table cells. I did recall that I had had a problem with this before, due to single long words breaking it. But I was sure that I had fixed that. It took a lot of debugging, but eventually I did track the issue down.

As described in this thread: word-wrap:break-word not working in IE8, it turns out that the element must have hasLayout for the word-wrap to be applied. To get it to work, I had to style my anchor containing the long word so that it had display: block and a max-width set. Other tricks to force hasLayout didn't work for me. (And the IE Developer tools for IE 9 weren't helpful at all here as they don't seem to show whether the element has hasLayout at all. Luckily the IE8 Developer tools do.)

In the afternoon I spent quite a long time trying to work out how to get an element to stretch to the height of its parent table cell (actually a li with display: table-cell). Reading various threads on Stack Overflow it seemed they all came to same conclusion - it's not possible. Actually, it is possible if you use position: absolute on the child element, and set the top, left, bottom, and right to 0. But then I couldn't find any way to get the contents of the child element vertically centred. So in the end I went with a flexbox menu rather than a table one.

I've now tested my site in various browsers, and will hopefully make the changes go live tomorrow. The main problem I have is that while I test in IE going back to IE6, I have no way of testing in the much more used browsers on phones. When the site is live I can hopefully use modern.ie to get some screenshots of what it looks like in various browsers including phones.

Tuesday, 15 July 2014

Exercising & Bread making & Birds

Today I spent quite a bit of time exercising, bread making, and doing bird related stuff.

Most people probably wouldn't consider what I did today as exercising. But because I'm such a feeble Chinese person (weak Ling), it was exercising for me. As well as doing some weights, I went shopping. This involved carrying a 12.75 kg bag of bird food and two 4 pint bottles of milk back home from the shops, so that counts as exercise as far as I'm concerned.

Similarly, making bread is good exercise as you have to knead the dough for 10 minutes. This gets my poor little arms quite tired.

I made two loaves today. The first was just to use up the rest of a pot of yoghurt. I used a fruit loaf recipe and added the yoghurt instead of part of the milk. I also added in some fresh apple and pumpkin and sunflower seeds I bought at the shops.

I was surprised by how expensive the seeds were in the shops. The seed were 85 p each, and they're only really tiny packets. Pine nuts were £2 for the same size tiny packet!

This got me thinking whether you could just have bird seed instead. After doing some research online, I couldn't find anything saying that you shouldn't eat bird seed. Only that it contains lots of bits of stalk and dirt and stuff.

So I went through some of the bird seed and took out some of the wheat (it seems the bird seed is around 90% wheat) and some small round seeds, maybe millet? Then I made some more bread, and put the wheat seeds in one half and millet (or whatever it is) seeds in the other half. I soaked the millet for about 5 minutes in warm water, but I forgot to do that with the wheat.

After cooking, I think I didn't really have enough seed. The wheat one has a lot more seeds than the millet, but because I didn't soak the wheat, the grains are quite hard and crunchy (not bad, but probably would have been better soaked). The millet one I can't really taste the grains as I didn't get enough.

^ Bird seed loaves and Seed and fruit loaf
^ Seed and fruit bread
^ Birdseed bread

I think in the future I might try making some bread (or other food) using sunflower kernels bird food. It should be much easier to get the seeds from that than the mixed birdseed I used today. With the mixed birdseed it contains chaff, sunflower seeds with the hard outer casing still intact, bits of corn, and bits of plant (I even found a poppy head), as well as the wheat and millet. So separating out the wheat and millet suitable for adding to the bread from the rest of the stuff isn't as easy as you might first think.

Eating a slice of the fruit and seed loaf, I felt like a combination blackbird-sparrow. Does that make me a pigeon?

Friday, 4 July 2014


Today I was still geo-coding my holiday photos.

On eBay I noticed there was a listing for a Nikon 500mm VR lens, which had a very cheap buy it now price (£2,200). The picture appears to be the same one as has been used in some previous fraudulent listings, though it seems I've deleted them from my watch list, so I couldn't find them, and Google Image search was no help.

I thought I would let eBay know of my suspicions, but the 'Report item' link didn't work. I tried it in both Chrome and IE, but it didn't work in either browser. However, there was a 'eBay Live help' chat box (not seen that before) that popped up on the page, so I thought I should report the item through that.

However, I received no reply to my message, and then after a bit just got the message 'Chat closed'. I guess that goes to show how seriously eBay takes fraudulent listings. Really they should be policing these high ticket items themselves. I would guess that around 50% (or maybe more) of listings for Canon / Nikon prime super telephoto lenses are fraudulent ones. (And normally obviously fraudulent, with the description stating a buy it now price and saying to email a gmail address).

Edit: Actually I just realised why they didn't reply - the auction wasn't on eBay at all, but a fake site. Weird thing is, the My eBay link goes to the real eBay, not a fake eBay page asking you to sign in (so they can collect your account details). Also, the auction counted down and ended when it should have, so they must have put some work into this fake site.

However, it is still concerning, since I got to this site through clicking a link in an eBay watched search email:

Trying the link again today it appears it does go through to the real eBay, where I see a brief flash of a page with 'the seller ended this auction early because there was an error in the listing', then the fake page loads up. Maybe eBay allow you to include javascript in your auction listings? Rather dodgy however they've managed to hack it.

Wednesday, 2 July 2014


Today I was doing various church related work and geo-coding photos.

Monday, 30 June 2014

Yes or no?

I spent quite a bit of today making some Melonpans. Unfortunately I overestimated how long they'd take to rise (I made them using wholemeal flour, so I thought they'd need longer than normal), and when I checked on them they had risen too much and 'popped' (deflated to be wide and flat). Still, they tasted quite nice when baked.

I also spent quite a bit of time working on one of my wordpress plugins and writing a blog post for my photo tips website.

With regards to my photo tips website, I was checking the G+ page for it and found that Google have introduced a stats page. However, the stats page shows that I had 663 new followers in the past month. This definitely is not correct, unless a load of people also unfollowed me. The stats show a big spike on one day, so maybe a load of spam accounts followed me on that day in the hope I'd follow them back, and then subsequently unfollowed me?

Whether the stats are wrong, or are correct but don't show unfollows, they seem to be pretty useless. Manually noting the number of followers and then seeing how it goes up or down still seems to be the only option for the moment.

Saturday, 28 June 2014

Forcing refresh of Hosts file in Windows / Filezilla

As part of my web dev work I use an Ubuntu VM. Sometimes I need to transfer over files from the host machine, which I do using FTP through Filezilla. However, the IP address assigned to my Ubuntu VM sometimes changes, which means updating the Hosts file on the host machine with the new IP for the VM.

This used to work quite nicely, but the past few months I'd found that I needed to restart my PC otherwise Filezilla would still try to connect to the old IP even after the hosts file had been updated the new IP address. However, I found today that this was not actually an issue with a Filezilla update as I had previously thought. Instead it seems that it is because I have moved the location of the hosts file, and symlinked C:\Windows\System32\drivers\etc\hosts to the new location.

It seems quite strange to me that the system would refresh the DNS immediately when the hosts file is directly edited, but not when it is symlinked to a file that is edited. Anyway, I found the solution to avoid having to restart the PC to refresh the hosts file / DNS: Simply open a command prompt, then run ipconfig /flushdns.

In other news:

Saturday, 10 May 2014

Quack Quack

Well, it's come to a point where I'll be off on holiday soon and so the importance of holiday related tasks has risen so much that I must deal with them now. And as I deal with them, I find it would have been much better if I'd dealt with them earlier. But of course, then something else (that at the time seemed more important) wouldn't have got done.

To give an example, I need some more socks. On eBay you can buy packs of Slazenger coolmax socks fairly cheaply, which look they are also reasonable quality. However, I can't buy them as they ship from Korea, and so would likely arrive too late. So instead I'm stuck buying more expensive socks that probably aren't as good, but are sent from the UK.

Another example, the rear thread on my DIY M42 lensbaby adapter is not tall / deep enough to screw into my DIY M42 mount adapter. So I need to purchase a M39-M42 adapter. They only cost 99p from China, but since I need it quickly I had to buy from a UK seller for £4.

I discovered the first casualty of my new Windows installation today - I've lost all my Google Earth places. Oh well, thankfully I had only put quite a bit of work into it, not loads.

Wednesday, 30 April 2014

Oh Windows, you are awful!

So, I am back online with my slightly upgraded computer. Things didn't go very smoothly with the upgrade.

The first problem I had was that after installing Windows I found that the WiFi drivers I had didn't work. So I had to use another PC to find the correct ones, then copy them across. And when I installed them, they also installed a useless wireless utility. So I uninstalled them then told Windows to look in the driver folder for the device drivers, which worked okay.

But then when I restarted the PC, I got a message that no boot drive was found. I messed around with the SATA cables, trying to get the new OS drive to be the boot drive, but nothing worked.

Then I realised that actually you can the set the drive order in the BIOS. (I had tried setting the boot order in the BIOS previously, but this just allows you to choose Floppy, CD, or the 1st hard drive). But after setting the OS drive to the 1st drive, and as the 1st boot device, I still got the same message about there being no boot device.

So I decided to install Windows again. Thankfully this time after the install was complete I could reboot and shut down, and the machine would boot back into Windows successfully.

However, after I installed the WiFi drivers Windows became unresponsive and blue screened. Then I got the same no boot device message after restarting. Looking in the BIOS, the drive wasn't listed.

After a bit of cable fiddling the drive was found again, and Windows would boot. But one of the other drives now wasn't appearing.

With some more cabling fiddling and multiple tries this morning I finally managed to get it all working with all drives recognised. (As well as one of the hard drives, the DVD drive also kept disappearing). Just have to be very careful not to move any cables inside the PC!

After getting it working, and installing the graphics card drives I had to restart. Windows tried to install 136 updates on shut down. This took ages, and after restarting it took ages finishing installing them all.

Except, that it didn't actually install them. It said update failed after a bit, then rolled back all the updates. So that was about an hour wasted.

I manually used Windows update to install the updates 18 at a time (which required a restart after each batch). This probably took about an hour too, but at least it did install the updates successfully.

Really MS should offer downloadable DVD images of updated Windows installs that contain all updates so far. Then you could just burn it to a DVD and install from that without having to spend ages downloading millions of updates. Since you still need a valid serial number to activate Windows I don't think there should be any reason why they couldn't do this.

Since installing the 136 updates earlier, there have been about another 30 updates I've installed. And I just checked again now, and there another 89 important updates that need installing.

I had some trouble getting my VPC VMs working. They all said that the parent disk image was missing. But the parent disk image did not appear to be missing. After a bit I figured out the issue - all my disk images were differencing disks from a 'Windows XP Mode.vhd', which was in itself a differencing disk from 'C:\Program Files\Windows XP Mode\Windows XP Mode base.vhd'. This base image was what was missing. After installing that, the VPC VM would start successfully.

Well, actually, it only got as far as asking me for a username and password. But what on earth would this be? Searching yielded no useful information. Apparently Windows XP Mode should ask you for a username and password when you install it. Having just installed it, I can say that it certainly did not ask me for this information.

Eventually I managed to guess the correct combination - XMPUser as the username, and the password was what I had set as my Windows password.

The next issue was that the internet wasn't working in the VM. I had to go into the VM settings and change the Network adapter to shared NAT. I'm sure that's what it was set to previously though, so I'm not sure why that would have changed.

A couple of things I had forgotten to back up were my Filezilla config and hosts file. So I had to manually edit them to add back in the essentials that I need.

In terms of speed difference with the OS installed on an SSD rather than two standard HDs in RAID 0, the TTLS is about the same. But from login to Windows loading fully and being ready to use is much faster.

Tuesday, 29 April 2014

Neutral Bye for now

This morning I was writing an article for my photography tips website. In the afternoon I was trying to find images to illustrate it.

During the writing I found this website: Richard Mosse | The Photographers' Gallery, which features photographs of fighters in DR Congo captured on Kodak EIR film. An interesting and unusual idea.

Here's an interesting item I found on eBay, a 37mm-37mm 37-37 mm 37 to 37 Step down Ring Filter Adapter. Given that one side of the ring is clearly much larger than the other side, it's clearly not a 37-37mm ring. Maybe a 37-67mm step up ring. But it's not a typo on the seller's part, it actually says 37mm-37mm on the ring. Apparently 5 have been sold too.

That's it for now as I'm about to remove my RAIDed OS hard drives and replace them with my new larger HD for storage and small SSD for the OS, which I will have to install from scratch. I hope I can successfully swap the drives and unRAID them without problems.

Saturday, 26 April 2014

Copying and verifying

Today I was still copying files and verifying the copies. One issue I had was that when I plugged a drive into the internal SATA, it was not showing up Windows. I tried searching for advice, but everything seemed to just say to check the Disk Management panel. But the hard drive was not even showing up Disk Management for me. It was showing up during BIOS / bootup though, so I knew the problem was not with the drive / connection.

Then I finally found the answer - the drive did show up in Device Manager, and had a little arrow showing the device was marked for safe removal. I use Zentimo xStorage Manager for hot-swapping hard drives, and the system must have remembered that I had previously safely removed the drive and kept it in the same state. So I just needed to use Zentimo to return the device, and then the drive showed up properly.

Another issue I had today was there were two files that refused to be copied - they would apparently copy okay, but then they would remove themselves after you did anything with them (e.g. select them / view properties, etc). They both appear to be partial mp3 downloads, so I'm not bothered that they won't copy, but the behaviour is rather weird.

Still lots more copying and verifying to be done tomorrow.

Friday, 25 April 2014

Copying files

The time has come for some more storage for my PC, which involves the inevitable movement of files from the existing drives to the new one and backups.

Currently I have two RAIDed 500GB drives as a single 1TB drive. This contains a partition for the OS and software, and another partition for storage. So the first job was to copy all the files from the storage partition to my new 3TB drive (and 2 backups). But just copying to the first drive took up most of the day!

When the copying is all done to the three new drives, they will then need to be verified against the existing backups. So this is all going to take rather a long time.

And when that's done, I'll then need to look through the OS partition in case there is anything in there (e.g. program settings, plugins etc) that I want to keep). Then it will be a case of adding the new drives (one 3TB for storage and a 120GB SSD for the OS) and removing the old drives. Reinstalling Windows, installing the ten billion windows updates, and installing all the software I use again will likely take longer than a day.

While I could probably use some software to mirror over the OS partition to the new drive, I'd rather start from scratch. Yes, installing everything again is a pain, but I find that a fresh install is generally faster than an older install where many programs have been installed and uninstalled.

So it wouldn't surprise me if the process of what is effectively upgrading from a 1TB drive to a 3TB drive will take me about a week.

I don't actually have an SSD drive for installing the OS on yet. I was looking at prices, and they've come down quite a lot from even a few months ago, when I bought my Sandisk SSD (which I use for VMWare VMs and Photoshop scratch disk). I did order the Samsung 840 EVO 120GB drive today, but even with my Amazon Prime trial it wouldn't be delivered until Tuesday. So I cancelled the order. I think I will wait and see if I am granted membership of Flubit over the weekend. If I am, then hopefully I can get a better price on the drive. If not, I'll just have to order on Monday and possibly wait a day longer for delivery then if I'd ordered it today.

While I've been waiting for the first copy to finish, I've been going through some of emails. I receive a lot of spammy emails offering me SEO and website design services. However, one that stood out was one that has a subject line of 'Creating Mobile Apps!' and came from 'soccer babe babe' (actual email mobile.apps.services04@gmail.com). The to field was also some other email address, not mine.

Usually these emails have a proper from address, and are addressed just to your email address. But it seems these guys didn't care about making their email as spammy as possible. This is the email content:


I am Picke– Marketing Executive (iPhone & Android Apps)

we are a web development company specializing in development of iPhone and Android applications. We have more than 3 year of experience in developing custom mobile applications. Each application is reviewed and designed especially for each customer to fit the specific requirements and objectives.

We help your business combine two modern business directions: wireless devices with web-based applications. High quality and customer-oriented approach are guaranteed.

Why iPhone Apps?

  • Instant gratification
  • Ease of use as it can be accessed anywhere
  • Attracting new customers
  • Increasing Revenue

For business, finding the right iPhone apps developer could be a key factor to adapting their product to the marketplace and for the right audience.

Give us an opportunity to serve you. I assure you would like our solution and services


Picke- Marketing Executive


The stupid thing is, most of these emails (including this one) are sent to an address for a website that is quite clearly not a business and does not sell anything.

Something random I found recently was this modification that mates a torch, slide holder, and camera lens to become a projector: Guerilla beam. Seems very expensive to me, but a clever idea.