Teleconverters – should you use them?

I have to agree with the conclusion of this photo.net article. Teleconverters are handy but it’s very difficult to get usable, good quality images from them.
I use a third party 2x TC on my Sony F717 from time to time, and there’s visible degradation of image quality. The article above recommends using a powerful lens and at most a 1.4x TC so I’m seeing the most dramatic distortion. It does help if I set the EV down one stop but that’s not always an option, especially in cloudy and overcast Ireland!

Open source 'too costly' for Irish e-gov

According to this report the Irish Government has found that using “only open source software could, in the long run, be more expensive.”
The announcement came from “Mary Hanafin, Ireland’s Minister for State with responsibility for the Information Society, who was speaking at the Irish Software Association’s 16th annual conference, sponsored by Microsoft, O’Donnell Sweeney and ACT Venture Capital.”
Draw your own conclusions about who’s influencing government policy these days..
Padraig Brady has started a thread on the ILUG about this so no doubt we’ll get plenty of opinions as the day draws on.

PHP, MVC And Smarty Caching

Following on from previous posts on PHP and MVC and in particular on using Smarty caching in the MVC design pattern, I used Smarty to cache the output of an app at work this morning.
I agonised in my last post about where to put the caching, should it go into the viewer, or the model, or the controller?

  • I finally decided to make the viewer responsilble for deciding if the template is cached or not.
  • The controller then asks the viewer if the current page is cached, if it’s not, then it runs whatever functions the model needs to generate the page.

class mvcViewer
{
  function mvcViewer()
  {
    $this->cacheKey = md5( $_SERVER[ 'REQUEST_URI' ] );
  }

  function display()
  {
    // modified to use the cacheKey.
    $this->assign();
    $this->smarty->display( $this->formTplName . ".tpl", $this->cacheKey );
  }

  function is_cached()
  {
    return $this->smarty->is_cached( $this->formTplName . ".tpl", $this->cacheKey );
  }
}

class mvcController
{
  function main()
  {
    switch( $this->page )
    {
    default:
    $this->model = new mvcModel( $form );
    $this->view = new mvcView( $this->model, "mvc-Index" );
    if( $this->view->is_cached() == false )
    {
      $this->model->doSomethingHere();
    }
    break;
    }
  }
}

The beauty of this is that the model doesn’t need to know about the caching at all. The developer can concentrate on the business logic of his application without worrying about the underlying architecture. That’s one reason for keeping the cache key in the viewer too. Don’t lets confuse the developer!
Of course, this presumes the most simplistic caching system, but it would suffice for most cases!