1. Introducing FlickrShow

    February 28, 2006

    My previous attempt at gallery software was very popular and I still get requests for the original release even though it hasn't been updated since it was released. It wasn't, however, the solution I really wanted when I set out to make a Flickr driven slide show. My inspiration was and still is Slideshow Pro which I love for it's ease of use and the way you can just drop it into a page. I wanted a Javascript solution that would be as easy to use and provide a similar service.

    The Implementation

    The result of my work is a centrally hosted slideshow that retrieves a photo-set from Flickr and displays the images in a horizontal slideshow format. It can be dropped into a page with just a line or two of script, can fit into any shape HTML DIV and is completely skinable so users can link to their own style sheets if they dislike green. It is encapsulated as a Javascript object using a stripped down version of the excellent prototype library which should reduce any problems with other scripts on the page and ensure it is as compatible and extendable as possible.

    The Challenges

    The biggest hurdle I encountered while creating a Javascript based solution was the inability of AJAX to make queries across domains, (a security feature that does make sense but is very frustrating). To overcome this problem I developed an interesting method of loading subsequent Javascript files using a combination of PHP and Javascript - the FlickrShow script writes new links to external Javascript files into the HEAD with query strings appended containing photo-set requests. Flickarray then retrieves the information from Flickr before sending a customised list of Javascript method calls back to the browser.

    Other problems were more run-of-the mill. Getting the Javascript ‘widget' to display properly across browsers is still an issue, (the IE 6 factor) and there is some inflexibility in the script which means you can currently only call one Flickrshow per page.


    Apart from solving the issues mentioned above, I want to add a play/pause function to remove the need for constant clicking. I also want to retrieve more information on the current photograph, (tags, descriptions and notes) but there are issues with loading times at the moment.

    If you want to have a play I've set up a mini site at Flickrshow.com which is running a demo complete with some stunning photography courtesy of Limonada. There is also a form to help generate the code required to install Flickrshow on your website.

  2. The dangers of customisation

    February 10, 2006

    In the past few years emerging techniques have allowed web site creators to customise their user's browsing environment to an increasing extent. Cascading style-sheets have allowed authors to modify form elements and scroll-bars to more closely match the aesthetics of their sites, javascript can be used to alter window size and shape and the behaviour of toolbars, browser buttons and mouse actions.

    This amount of control is embraced by traditional designers who enjoy maintaining strict control over every facet of their work, and who in the past have struggled with the unpredictable nature of the Internet as a medium of design, but many web developers are wary of the damage this customisation could be doing for the user experience and the effect it could have on how web sites are currently being used. Is there a point at which you can ‘design’ and control too much of the users browsing environment?

    Before the growth of the Internet, users would generally only be exposed to user interface elements that followed their platform developer's Human Interface Guidelines. These guidelines regulate the behaviour of widgets, buttons, mouse clicks and other interactive elements to achieve a level of consistency across applications, allowing a user to become familiar and efficient when using their computer.

    With the growth in usage of the Internet, and web sites that do not follow such specific guidelines, it is important to achieve as much consistency with a users native platform as possible, so that familiar interfaces are present where possible, especially for the more important tasks such as inputting data and navigating information. While it is always important to create a tight and integrated visual style when designing for the web, (or any interactive medium), the demands of the user that the interaction can occur easily and efficiently are equally important. With regards to specific elements or behaviour on the web, the user will have more experience with the elements and behaviour of their own operating system than with your site specific customised controls and mouse actions. If you want them to interact with your site more efficiently, it may be wise to let them use what they know.