 |
 |
 |
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
I started my working life as a computer programmer, and though it has been many years since I’ve
done any programming professionally, I found it fairly easy to teach myself basic web programming
techniques.
This site is built using a set of standard web technologies. At the core is PHP, a scripting
language integrated with the Apache web server and specifically designed to generate, or create
dynamic content within, HTML pages.
The layout and content of the image galleries are defined in data structures that
PHP scripts interpret and translate into HTML pages. This design means that additions and
changes to the galleries are a simple matter of maintaining data, and that reliability is high
since PHP scripts generate all the linkages. (I must say I am not sure I would take this approach
if building the site today, when it is so easy to publish HTML or Flash galleries directly out
of Adobe Lightroom, or use one of numerous other products and services to create high quality
image galleries. However, I invested the time to write the underlying code some years ago for
an earlier version of the site, and it continues to work well for me.)
CSS is used to control all of the web typography, but old-style nested tables are still used
for most of the page layout. If starting from scratch today I would build entirely with CSS,
but much of the current site evolved from earlier versions created before browsers were
sufficiently standards-compliant to support CSS positioning consistently.
With most of the application logic on the server side through PHP, the intent was that the
use of JavaScript should be modest. This held true in earlier versions of the site, but the advent
of modern mobile devices has made this design philosophy obsolete. The need to detect display resolution,
the implementation of touch-swipe gestures on touchscreen devices, and other device-specific
functionality have made client-side logic implemented through JavaScript an unfortunate requirement.
The increasing use of JavaScript on the site is based upon
the jQuery library, which provides some of
the image transition effects and is the platform for several of the additional JavaScript tools I employ:
Matt Bryson’s
TouchSwipe
plugin is used to implement gestures on touchscreen devices, and Nathan Searles’
SlidesJS
plugin is used for alternative slideshows on devices where Flash is not supported.
The approach for detecting and delivering high resolution content to Retina and other such
displays is twofold and I am grateful to the writers of blog posts that provided the basis for both
solutions: Ben Doran published an article in 2012 which outlined a jQuery-based solution
for linking to alternative high-resolution images. I no longer find this article on the web, but
the code I am using is, with small adaptation, a direct lift of the JavaScript he suggested. That
approach does not work in all cases in my site design, and in these situations I instead
use a cookie-based approach that is described in multiple places on the Internet. An article I
found particularly useful and which is the direct basis for the code I employ was written by
Drew Gourley at Oxide Design Co.
As of this writing, the article remains on the web
here.
The Flash slideshows and image wrappers are made using Dominey Design’s SlideshowPro, now obsolete but still working fine in its
final implementation. The XML files that define content to SlideshowPro are generated dynamically by PHP
scripts based on my own proprietary gallery data structures, so in practice I need to return to SlideshowPro
only if a significantly different slideshow layout is required.
Sound recordings are hosted on SoundCloud,
and SoundCloud’s Flash or HTML5-based widgets are used for the players embedded in my web pages.
Development is done on desktop and laptop Apple computers running Apache and PHP under Mac OS X. The
PHP code and the HTML markup are hand-coded in BBEdit. The image JPG’s and the GIF’s are
created in Adobe Photoshop and/or Lightroom.
From a design standpoint, this is the third major version of Kin Corning Photography. I have
tried to make the site’s structure straightforward, to keep the navigation buttons in view and in the
same position as you page through the galleries, and to size the images as large as possible while
avoiding scrolling on most modern monitor resolutions (except the very smallest laptop
computers). With this latest implementation, I have also tried to make the site as friendly as
possible to tablets, phones, and other such devices without having to revert to a trimmed-down
alternative mobile version.
The site has been tested with a large number of browsers, but no doubt less
widely than a professionally-made site would be tested. Things have been further complicated by
the wide range of Internet-enabled mobile devices, only a few of which are available to me for testing.
I therefore appreciate reports of any bugs in the site using particular browsers or devices (and any
feedback about the site generally).
|
|
 |
 |
 |