1 | 2 | 3

1 - 5   [12]

Test Drive Canon 50mm f/1.4 Prime Lens

Relates to Photography

Finally got the chance to do a few test photographs with my Canon D40 and 50mm f/1.4 prime lens. These photos were all taken in natural light indoors on a very dark and gloomy rainy day - off course absolutely NO FLASH was used. I was really just experimenting with the speed of the lens using AV mode (aperture priority) with the aperture at its fullest to see how dark the lens can go.

This first photo was taken with light from the doorway illuminating the surrounds. The creamy background gives an indication of the darkness of the corridor where the next photo was taken. Benji captured at 1/30s @ f/1.4, ISO 320 Benji captured at 1/30s @ f/1.4, ISO 320

This next photo was taken in the darkest part of the corridor with very little light. The AF struggled to find a focus for the shot, and due to the darkness I pumped the ISO upto 1600. But handheld still managed to come out with a workable photo at screen resolution. At higher resolution the image showed the grain inherent in the high ISO and blurriness from the slow shutter speed handheld. Benji captured in almost darkness at 1/10s @ f/1.4, ISO 1600 Benji in the dark corridor at 1/10s @ f/1.4, ISO 1600

These last two photos were taken by the window - the first on the sill and the second underneath in the projected natural light. It was still very dark and dreary overcast drizzle outside! They were principally a test of the shallow depth of field shooting with such a wide aperture which is clearly visible in the samples. Buzzie Bee captured at 1/80s @ f/1.4, ISO 320 Buzzie Bee captured on the window ledge at 1/80s @ f/1.4, ISO 320

Rattler captured at 1 /20s @ f/1.4, ISO 320 Rattler Ball captured at 1 /20s @ f/1.4, ISO 320

In the Rattler Ball frame I tried the photo with an aperture around f/2.8 (since I had initially planned on getting the Canon 17-55mm f/2.8 zoom lens). The shutter speed was simply to slow to get any sharpness handheld. In fact even at f/1.8 the shutter was around 1/5s, leaving the image blurry.

My final test was capturing a photo of a book in the bambino's bedroom. The room was very dark and my eyes could hardly resolve the book. Using ISO 1600 with full aperture the camera had no trouble at all setting focus on the book and capturing a very workable image.

What can I say! I am blown away by the performance of this lens. I am very much an amateur DSLR photographer at the moment but it is clear to me that the Canon 50mm f/1.4 is a very impressive piece of glass and well worth the investment.

Posted on Oct 20, 2008 at 19:13:53.

First Steps into DSLR with Canon 40D

Relates to Photography

There is so much opportunity for stunning photography in the beautiful landscape of Cornwall, that I have been tinkering with extending my repertoire to include a small amount of photographic services. Time to invest in some kit. No simple task with numerous successful DSLR bodies out there and a lot of lenses to choose from.

Once my budget was set and I had chosen to go with, Canon since it would allow me to swap and share lenses with some mates, I had to decide between the 450D and the 40D models. Finally I chose the later for its build quality and faster burst rate. (The 50D was very tempting but would have left me little budget to buy lenses and these are far more important in achieving quality images)

Now to lenses. At first I was set on the Canon EF-S 17-55mm f/2.8 zoom lens which would cover the broad range I was looking for from wide-angle landscape to portrait work. But some strange price jumping activity on Amazon saw it go up in price by £100 days before I was to part with my cash. This left me thinking and I decided it was too soon to invest so much money on a single lens - despite it being probably the single best piece of non-L glass available for the Canon cropped sensor.

So I took a radical about shift and decided to go prime. I intend on doing a lot of internal portrait work and faster would be better. I settled on:

Together these left me with £200 in pocket over the Canon 17-55mm and I thought it would be a good framing experience working with prime initially. Now I am just waiting for the kit to arrive with great excitement and will report back on my initial experiences in due course…

Posted on Oct 18, 2008 at 12:00:11.

Tourism Award for Inaccessible Websites

Relates to Accessibility

Congratulations to classic.co.uk for winning the coveted title of Cornish Tourism Website 2008. It's second significant award of the year having already swooped up Best Website at the Cornwall Business Awards.

Commiseration to both awarding bodies for showing total disregard for the Disability and Discrimination Act and Web Accessibility. Buzz words, maybe, at the turn of the millennium, but now integral to any web developer's tool kit.

From 1st October 1999 a service provider has to take reasonable steps to change a practice which makes it unreasonably difficult for disabled people to make use of its servicesCode of Practice Section 4.7 (p39)

The booking system on the champion website is device-dependent - it is driven by Javascript - rendering this service totally useless to several web demographics. The site has had 9 years to rectify this!

Still, no criticism of the website in question or it's development team, since I am sure the project is driven by business requirements which so often force accessibility out. The criticism is solely of the awarding bodies for failing to recognise the importance of accessibility which in turn can be misguiding to the future crop of web developers that hope to learn and develop their trade from such critically acclaimed websites.

I would urge the judges of these awarding bodies to take a good look at Accessites.org criteria for the Art of Accessibility and consider more than just business logic and financial success when appraising websites.

I have just read an e-mail from one of the developers on the classic.co.uk website in response to my original post informing me that they are in the process of actually rewriting the site: In rewriting the site we are taking the opportunity to address many of the issues you have pointed out. This is good news although I did point out (as stated above) my post was at no time a criticism of the website itself and it's builders. However, I am not really sure what this says about the Cornwall Tourism Awards and Cornwall Business Awards if the winning site feels its own current incarnation is far from satisfactory. Perhaps the judges were missing something!? Enough said on the subject…

Posted on Oct 18, 2008 at 11:35:32.

My Final Top 50 Albums

Relates to Music

Here is the final instalment of 50 albums that are always on my iPod. I wouldn't claim that these are in my humble opinion the greatest 50 albums ever composed since many of them simply appeal to my own personal tastes. Plus a few obvious albums of note from the likes of Pink Floyd (Dark Side of the Moon), Dylan (Blonde on Blonde), Led Zeppelin (IV) and some of the Jazz masters (Coltrane and Mingus in particular) have slipped through unnoticed simply because I have listened to them so much over the years they have become overplayed for my ears.

I should also mention a handful of soundtrack albums and classical albums also have permanent residence on my iPod but I decided these fall into their own category. Another chart, another day perhaps…

Hope you find something new and interesting in this list. Discovering new music from the past is an inspiration!

Posted on Oct 15, 2008 at 09:53:52.

Selecting Next and Previous - MySQL and PEAR::MDB2

Relates to PHP and MySQL, PEAR

Quite a considerable time ago I discussed methods for selecting the next and previous records from a MySQL database using MySQL variables. This method required sending multiple requests to the database via the abstraction layer - at the time I was using PEAR::DB.

Things have progressed a bit since early 2004 with more recent versions of MySQL introducing sub-select queries and PHP5's PEAR::MDB2 abstraction layer offering better handling of parameters in SQL queries. Such that the entire process of selecting the next and previous record can be simplified into a single query. Let us dive straight into the code and then I will break it down:


$query = "SELECT IF(publish_date < :publish_date, 'prev', 'next') as position, title, CONCAT(:archive_dir, permalink) as link FROM news WHERE id IN
          (
            SELECT id FROM news WHERE 
              id = ( SELECT id FROM news WHERE publish_date < :publish_date AND post_status = 'published' ORDER by publish_date DESC LIMIT 0,1 ) 
                OR
              id = ( SELECT id FROM news WHERE publish_date > :publish_date AND post_status = 'published' ORDER by publish_date ASC LIMIT 0,1 )
          )";

$parameters = array(
  'publish_date' => $this->dataset->publish_date,
  'archive_dir' => self::getDirective('ss_news_archive_dir')
);
        
$links = $this->db->getAssoc($query, null, $parameters);

The objective of the above code is to get the next and previous news entries published. So comparison is done on the publish dates relative to the current record.

Preparing to execute the query establishes two parameters (in $parameters) which will be passed to the MDB2 query. The publish date of the current record ($this->dataset->publish_date) is the first parameter while the second parameter is a configuration directive for the current News module.

Note that the actual call to the MDB2 layer ($this->db) requires the use of the Extended module so establishing a connection to the database may be as follows:


$this->db = MDB2::factory($dsn);
$this->db->loadModule('Extended');
$this->db->setFetchMode(MDB2_FETCHMODE_OBJECT);

Now to the actual SQL query. Working backwards from the inside of the query the following three processes are taking place:

  1. The ID of the previous and next records are retrieved by comparing the publish dates with the current record. This is analogous to the engineering described in the original post back in 2004.
  2. These two results are then fed into a Select query for a single column
  3. Which then allows this column to become the search parameters for the actual SQL query which returns the complete set of data for the next and previous records (using the IN operator)

It is the second phase in the process above which essentially acts as a glue and allows what would otherwise have to be a set of unique queries to be amalgamated into a single query. A typical result from the above code might be:


Array
(
  [prev] => stdClass Object
  (
    [position] => prev
    [title] => The previous post
    [link] => /newsdesk/previous_post.html
  ),
  [next] => stdClass Object
  (
    [position] => next
    [title] => The next post
    [link] => /newsdesk/next_post.html
  )
)

I forgot to mention from a performance perspective this is very efficient and a few rough benchmark tests showed that execution time was similar to running one of the three (or four) queries required to achieve the same data without sub-selects. Performance could possibly be improved even further, if required, by using an inner join instead of sub-select (but I am yet to try this method).

Posted on Oct 14, 2008 at 12:00:19.

Breadcrumbs Trail

[ Home ] -> TW Blog -> Archives for October 2008
Site Map

The Severn Solutions website achieves the following standards:

[ XHTML 1.0 ] [ CSS 2 ] [ WAI AA ] [ Bobby AA ]

Page compiled in 0.008 seconds