<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>isambard &#187; web</title>
	<atom:link href="http://isambard.com.au/blog/tag/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://isambard.com.au/blog</link>
	<description>musings on information design and architecture</description>
	<lastBuildDate>Mon, 30 Jan 2012 04:20:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Stop this UI Madness: Confirming visible fields</title>
		<link>http://isambard.com.au/blog/2010/10/23/stop-this-ui-madness-confirming-visible-fields/</link>
		<comments>http://isambard.com.au/blog/2010/10/23/stop-this-ui-madness-confirming-visible-fields/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 22:52:30 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[interface design]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=408</guid>
		<description><![CDATA[Enough people.    Please stop building forms where I&#8217;m asked to confirm a field I can see quite clearly.  Like this example: Or here&#8217;s another example. Which shows right and wrong use of duplicated fields and (horror or horrors) disables cut&#038;paste. The only requirement for a confirmation field is when entering a value that is [...]]]></description>
			<content:encoded><![CDATA[<p>Enough people.    Please stop building forms where I&#8217;m asked to confirm a field I can see quite clearly.  Like this example:<br />
<a href="http://isambard.com.au/blog/wp-content/uploads/2010/11/confirm-email.png.png"><img class="aligncenter size-full wp-image-409" title="confirm-email.png" src="http://isambard.com.au/blog/wp-content/uploads/2010/11/confirm-email.png.png" alt="" width="420" height="124" /></a></p>
<p>Or here&#8217;s another example.  Which shows right and wrong use of duplicated fields and (horror or horrors) disables cut&#038;paste.</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2010/10/repeat-email.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2010/10/repeat-email.png" alt="" title="repeat-email" width="397" height="184" class="aligncenter size-full wp-image-459" /></a></p>
<p>The only requirement for a confirmation field is when entering a value that is not visible, i.e. a password.  For anything else I can see the value I&#8217;ve typed and &#8220;confirm&#8221; it&#8217;s correct without retyping.  Don&#8217;t make me repeat myself.</p>
<p>If worried about validity, beef up your error-checking.  Don&#8217;t delay me with pointless re-typing (or more usually, cut&amp;pasting).</p>
<p>And another thing.  While making me repeat myself is bad enough, making me repeat myself and then disabling cut&amp;paste in the repeated field gets you your own special corner of hell.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2010%2F10%2F23%2Fstop-this-ui-madness-confirming-visible-fields%2F&amp;title=Stop%20this%20UI%20Madness%3A%20Confirming%20visible%20fields" id="wpa2a_2"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2010/10/23/stop-this-ui-madness-confirming-visible-fields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the week (21 December)</title>
		<link>http://isambard.com.au/blog/2009/12/21/quote-of-the-week-21-december/</link>
		<comments>http://isambard.com.au/blog/2009/12/21/quote-of-the-week-21-december/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 04:50:44 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=253</guid>
		<description><![CDATA[From Robert Brault: A blogger is an average person who happens to have a need to count his friends every half hour.]]></description>
			<content:encoded><![CDATA[<p>From <a href="www.robertbrault.com">Robert Brault</a>:</p>
<blockquote><p>A blogger is an average person who happens to have a need to count his friends every half hour.</p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F12%2F21%2Fquote-of-the-week-21-december%2F&amp;title=Quote%20of%20the%20week%20%2821%20December%29" id="wpa2a_4"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/12/21/quote-of-the-week-21-december/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bad usability calendar</title>
		<link>http://isambard.com.au/blog/2009/11/27/bad-usability-calendar/</link>
		<comments>http://isambard.com.au/blog/2009/11/27/bad-usability-calendar/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 19:40:25 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Uncategorised]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=227</guid>
		<description><![CDATA[I&#8217;m a firm believer that one of the most effective ways to learn is to study mistakes, yours or other peoples. Which is why I used to live at Web pages that suck when first starting out in developing web content. Just come across a similar, humoured, approach to usability in the Bad Usability Calendar. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a firm believer that one of the most effective ways to learn is to study mistakes, yours or other peoples.  Which is why I used to live at <a href="http://www.webpagesthatsuck.com/">Web pages that suck</a> when first starting out in developing web content.</p>
<p>Just come across a similar, humoured, approach to usability in the <a href="http://www.badusability.com/">Bad Usability Calendar</a>.  Highlights a different usability issue for each month.  Which means it&#8217;s not much use as an actual calendar but very useful as a quick usability prompt.</p>
<p>Granted a bit late now to pick up the 2009 edition.  But watch the space for the 2010 copy.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F11%2F27%2Fbad-usability-calendar%2F&amp;title=Bad%20usability%20calendar" id="wpa2a_6"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/11/27/bad-usability-calendar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the week (21 September)</title>
		<link>http://isambard.com.au/blog/2009/09/21/quote-of-the-week-21-september/</link>
		<comments>http://isambard.com.au/blog/2009/09/21/quote-of-the-week-21-september/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 21:53:24 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[interface design]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=171</guid>
		<description><![CDATA[From Carl Sagan: All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value.]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://en.wikipedia.org/wiki/Carl_Sagan">Carl Sagan</a>:</p>
<p>All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value. </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F09%2F21%2Fquote-of-the-week-21-september%2F&amp;title=Quote%20of%20the%20week%20%2821%20September%29" id="wpa2a_8"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/09/21/quote-of-the-week-21-september/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS 101: Changing link appearance</title>
		<link>http://isambard.com.au/blog/2009/09/10/css-101-changing-link-appearance/</link>
		<comments>http://isambard.com.au/blog/2009/09/10/css-101-changing-link-appearance/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 05:49:40 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[interface design]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=682</guid>
		<description><![CDATA[[Had a few people ask me about this. Easier to write it down....] By default, links in HTML: are underlined are in the same font as the rest of the document change colour depending on whether the link target has been visited or is yet to be visited in the current browser session. Note this [...]]]></description>
			<content:encoded><![CDATA[<p>[Had a few people ask me about this.  Easier to write it down....]</p>
<p>By default, links in HTML:</p>
<ul>
<li>are underlined</li>
<li>are in the same font as the rest of the document</li>
<li>change colour depending on whether the link target has been visited or is yet to be visited in the current browser session.</li>
</ul>
<blockquote><p>Note this the last rule &#8220;link has been visited&#8221; is slightly different to the expected &#8220;link has been clicked&#8221;.  Your links can therefore change their appearance to indicate a visit without ever being clicked.  For example if you have two links to the same page, both will change colour when you click one of them and visit the target page.</p></blockquote>
<p>To change any of these defaults you simply need to define an alternate style for the links.</p>
<h2>A word of warning before we start</h2>
<p>Be careful when updating the default styles for your links. Users are used to the defaults given above.</p>
<p>If you change them too dramatically some users may not be able to identify your links and not access your content. If changing the styles, ensure you provide some other method to identify the links as links. For example, position in an obvious-looking menu, use different colours/fonts, add an icon or image, use standard wording, etc.</p>
<h2>Styling links based on their status</h2>
<p>A link is added using the <code>&lt;A&gt;</code> tag. However adding a style for this tag is slightly complicated because the link has four different statuses, called pseudo-classes, and styles can be set for each:</p>
<ul>
<li>A:link &#8211; link that has not been used, and the mouse is not pointing at it</li>
<li>A:visited &#8211; link that has been used, and the mouse is not pointing at it</li>
<li>A:hover &#8211; link that has the mouse pointing at it (but not clicking it)</li>
<li>A:active &#8211; link (visited or not) that has the mouse clicking on it</li>
</ul>
<p>There are some rules about the order to define the pseudo-classes:</p>
<ul>
<li>a:hover MUST come after a:link and a:visited</li>
<li>a:active MUST come after a:hover</li>
</ul>
<h2>An example</h2>
<p>For example, assume you want to remove the underline style for the link, but show the underline when the mouse hovers over it. Additionally you do not want visited links to show a different colour to unvisited links. A sample style definition would be:</p>
<pre>A:link, A:visited {
        color: #0066ff;
        text-decoration: none;
}

A:hover, A:active {
        color: #0066ff;
        text-decoration: underline;
}</pre>
<p>Note how the different pseudo-classes for the link tag are identified by &#8220;:name&#8221;. Eg A:hover defines the style for the hover status of the link, etc. Also note how the same definition can be used for multiple statuses simply by separating the names by commas.</p>
<p>Obviously you can do anything you want on those styles. For CSS <code>text-decoration</code> is the attribute that determines underlined or not.</p>
<h2>using these styles in your page</h2>
<p>To make use of these styles on your page you need to include your new style definition:</p>
<ul>
<li>in the <code>&lt;HEAD&gt;</code> section (add a <code>&lt;STYLE&gt;</code> section within the head), or</li>
<li>as a separate, linked CSS file</li>
</ul>
<p>To add the above definitions in the document, add a <code>&lt;STYLE&gt;</code> section in the document head. For example:</p>
<pre>&lt;head&gt;
        &lt;style&gt;
        A:link, A:visited {
                color: #0066ff;
                text-decoration: none;
        }
        A:hover, A:active {
                color: #0066ff;
                text-decoration: underline;
        }
        &lt;/style&gt;
&lt;/head&gt;</pre>
<p>To link as a separate stylesheet, save the style settings in a text file (don&#8217;t include the <code>&lt;style&gt;&lt;/style&gt;</code> tags) and then add the link to that file in the document head. For example:</p>
<pre>&lt;head&gt;
        &lt;link href="styles/main.css" type="text/css" rel="stylesheet" /&gt;
&lt;/head&gt;</pre>
<p>If you want to add comments/descriptions in your stylesheet file (you know you ought to!) use /* &#8230; */ to indicate those comments.</p>
<h2>Styling based on location on the page</h2>
<p>Only other point of interest is that you can also set styles for your links depending on where they appear in your HTML. For example we often use links in table headings to allow sorting (click on heading to set order, etc). Since headings have a different default style, we need different link styles just for headings:</p>
<pre>TH A:link, TH A:visited {
         color: #ffffff;
         text-decoration: none;
}

TH A:hover, TH A:active {
         color: #ffffff;
         text-decoration: underline;
}</pre>
<p>Notice how this CSS just refers to links within the  tag to allow me to finetune their appearance.</p>
<h2>more information</h2>
<p>Once you know the pseudo-classes for manipulating link appearance, you are obviously free to make any changes supported by CSS. All these pseudo-classes are part of CSS1 &#8211; the full CSS1 specification is on the W3C website.</p>
<p>A useful primer on using CSS and styles is provided by <a href="http://www.w3schools.com/css/">W3Schoools</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F09%2F10%2Fcss-101-changing-link-appearance%2F&amp;title=CSS%20101%3A%20Changing%20link%20appearance" id="wpa2a_10"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/09/10/css-101-changing-link-appearance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the week (27 July)</title>
		<link>http://isambard.com.au/blog/2009/07/27/quote-of-the-week-27-july/</link>
		<comments>http://isambard.com.au/blog/2009/07/27/quote-of-the-week-27-july/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 20:12:18 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=132</guid>
		<description><![CDATA[From Dr. George Lundberg: Information on the Internet is subject to the same rules and regulations as conversation at a bar.]]></description>
			<content:encoded><![CDATA[<p>From Dr. George Lundberg:</p>
<p>Information on the Internet is subject to the same rules and regulations as conversation at a bar.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F07%2F27%2Fquote-of-the-week-27-july%2F&amp;title=Quote%20of%20the%20week%20%2827%20July%29" id="wpa2a_12"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/07/27/quote-of-the-week-27-july/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the week (13 July)</title>
		<link>http://isambard.com.au/blog/2009/07/13/quote-of-the-week-13-july/</link>
		<comments>http://isambard.com.au/blog/2009/07/13/quote-of-the-week-13-july/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 17:39:47 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=122</guid>
		<description><![CDATA[From Benjamin Pollack: &#8220;There is a tremendous amount of spit and polish that goes into making a major website highly usable. A developer, asked how hard something will be to clone, simply does not think about the polish, because the polish is incidental to the implementation. &#8221; The quote was part of a response to [...]]]></description>
			<content:encoded><![CDATA[<p>From Benjamin Pollack:</p>
<p>&#8220;There is a tremendous amount of spit and polish that goes into making a major website highly usable. A developer, asked how hard something will be to clone, simply does not think about the polish, because the polish is incidental to the implementation. &#8221;</p>
<p>The quote was part of a response to a suggestion to duplicate Stack Overflow, and thus save subscription fees to the original.  You can read <a href="http://blog.bitquabit.com/2009/07/01/one-which-i-call-out-hacker-news/">Benjamin&#8217;s entire rebuttal</a>, or <a href="http://www.codinghorror.com/blog/archives/001284.html">Jeff Attwood&#8217;s succint commentary</a> for more details.  Jeff&#8217;s article in particular does a good job in summarising what &#8220;polish&#8221; entails, and by doing so makes it clear how such polish is integral, not incidental, to eventual success.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F07%2F13%2Fquote-of-the-week-13-july%2F&amp;title=Quote%20of%20the%20week%20%2813%20July%29" id="wpa2a_14"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/07/13/quote-of-the-week-13-july/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sorting a PHP multi-column array</title>
		<link>http://isambard.com.au/blog/2009/07/03/sorting-a-php-multi-column-array/</link>
		<comments>http://isambard.com.au/blog/2009/07/03/sorting-a-php-multi-column-array/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 00:57:50 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=125</guid>
		<description><![CDATA[PHP support for arrays is fantastic, particularly for those of us with a history using ASP. Sorting a single-column array is straightforward (there is a sort() function). But what about sorting a multi-column array? Well, there is a function (array_multisort()) that does it, but understanding how to use it is a challenge. This article hopefully provides [...]]]></description>
			<content:encoded><![CDATA[<p>PHP support for arrays is fantastic, particularly for those of us with a history using ASP. Sorting a single-column array is straightforward (there is a <strong>sort() </strong>function). But what about sorting a multi-column array? Well, there is a function (<strong>array_multisort()</strong>) that does it, but understanding how to use it is a challenge. This article hopefully provides a simpler explanation.</p>
<blockquote><p>
If you are using a multi-column array to store data from a database, it is much simpler and faster to get the data directly from the database in the order required (use the <strong>ORDER BY</strong> clause in your <strong>SELECT</strong> statement).  This function is best used for multi-column arrays that are generated locally, or only in part from a database.
</p></blockquote>
<h2>How to</h2>
<p>To sort a multi-column array:</p>
<ol>
<li>determine which columns you want to sort by</li>
<li>for each column you want to sort by, copy its contents into a separate, single-column array</li>
<li>build your <strong>array_multisort()</strong> command:</li>
<ul>
<li>add the new single-column array as a parameter</li>
<li>optionally follow the array with parameters for sort order and type</li>
<li>repeat above two steps for each column to be sorted on</li>
<li>complete command with name of multi-column array to be sorted</li>
</ul>
</ol>
<h2>sort type and order</h2>
<p>Sort type can be:</p>
<ul>
<li>SORT_REGULAR &#8211; compare/sort normally (default)</li>
<li>SORT_NUMERIC &#8211; compare/sort as numbers</li>
<li>SORT_STRING &#8211; compare/sort as strings</li>
</ul>
<p>Sort regular uses standard ASCII order (&#8220;ABa&#8221; is 3 characters in regular order). The other two options operate more logically (eg &#8220;aAB&#8221; is the same characters now in string order).</p>
<p>Sort order can be:</p>
<ul>
<li>SORT_ASC &#8211; ascending order (default)</li>
<li>SORT_DESC &#8211; descending order</li>
</ul>
<h2>For example&#8230;</h2>
<p>For example. here&#8217;s a 3-column array we want to sort:</p>
<pre>&lt;?php
  $data[0]['name']= 'Google';
  $data[0]['url'] = 'http://www.google.com';
  $data[0]['rank'] = 45;

  $data[1]['name']= 'Yahoo';
  $data[1]['url'] = 'http://www.yahoo.com';
  $data[1]['rank'] = 17;

  $data[2]['name']= 'MSN';
  $data[2]['url'] = 'http://www.msn.com';
  $data[2]['rank'] = 6;
?&gt;</pre>
<p>
Assume we want to sort this array by rank (ascending order). The first step is to store the rank column as a separate, single-column array. This is easy to do using the <strong>foreach </strong>command:
</p>
<pre>&lt;?php
  foreach ($data as $val)
  {
    $sortArrayRank[] = $val['rank'];
  }
?&gt;</pre>
<p>
To sort by this column, use <strong>array_multisort</strong> and pass our newly created rank array as the first parameter:</p>
<pre>&lt;?php
  array_multisort($sortArrayRank, $data);
?&gt;</pre>
<p>
To change the sort to descending order, add the required order parameter after the 1-column array:</p>
<pre>&lt;?php
  array_multisort($sortArrayRank, SORT_DESC, $data);
?&gt;</pre>
<p>
To sort by more than one column (eg to sort by rank, then name), simply repeat the above steps for the subsequent column(s) and add the paramaters to the list.</p>
<pre>&lt;?php
  foreach ($data as $val)
  {
    $sortArrayName[] = $val['name'];
  }
  array_multisort($sortArrayRank, SORT_DESC, $sortArrayName, $data);
?&gt;</pre>
<h2>more information</h2>
<p>The official explanation of array_multisort can be found in <a href="http://au.php.net/array_multisort">the PHP manual</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F07%2F03%2Fsorting-a-php-multi-column-array%2F&amp;title=Sorting%20a%20PHP%20multi-column%20array" id="wpa2a_16"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/07/03/sorting-a-php-multi-column-array/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Accessibility in a nutshell</title>
		<link>http://isambard.com.au/blog/2009/05/15/accessibility-in-a-nutshell/</link>
		<comments>http://isambard.com.au/blog/2009/05/15/accessibility-in-a-nutshell/#comments</comments>
		<pubDate>Fri, 15 May 2009 03:03:13 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Nutshells]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[interface design]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=14</guid>
		<description><![CDATA[The term accessibility has quite specific connotations in the internet world.  It describes the capability of your site to support users with disabilities: colour blindness sight loss (up to and including complete blindness) hearing loss (up to and including deafness) reduced motor skills, etc. Additionally the disability to be considered may not need to be [...]]]></description>
			<content:encoded><![CDATA[<p>The term accessibility has quite specific connotations in the internet world.  It describes the capability of your site to support users with disabilities:</p>
<ul>
<li>colour blindness</li>
<li>sight loss (up to and including complete blindness)</li>
<li>hearing loss (up to and including deafness)</li>
<li>reduced motor skills, etc.</li>
</ul>
<p>Additionally the disability to be considered may not need to be one that is &#8216;part&#8217; of the user but could be one imposed on the user by circumstances.  For example accessing your site via a mobile device, or in a bright environment.</p>
<h2>Published guidelines</h2>
<p>As is the way of the web, a series of guidelines have been developed (see <a href="http://www.w3.org/WAI/"><span>http://www.w3.org/WAI/</span></a> for details) that provide tangible steps a site designer can take to address accessibility issues.  These are prioritised as 1,2,3 depending on to what extent your site is to meet accessibility needs.  From the guidelines:</p>
<ol>
<li>A Web content developer <strong>must</strong> satisfy this checkpoint. Otherwise, one or more groups will find it impossible to access information in the document. Satisfying this checkpoint is a basic requirement for some groups to be able to use Web documents.</li>
<li>A Web content developer <strong>should</strong> satisfy this checkpoint. Otherwise, one or more groups will find it difficult to access information in the document. Satisfying this checkpoint will remove significant barriers to accessing Web documents.</li>
<li>A Web content developer <strong>may</strong> address this checkpoint. Otherwise, one or more groups will find it somewhat difficult to access information in the document. Satisfying this checkpoint will improve access to Web documents.</li>
</ol>
<p>A site that meets all priority 1 requirements is given a conformance level of A, priority 2 = AA, priority 3 = AAA.  You&#8217;ll see some sites reporting this conformance level.</p>
<h2>What guidelines do you need to meet?</h2>
<p>Only government sites, or government sanctioned/supported sites may have mandated conformance requirements.  This is particularly the case in the US where federal laws determine the levels of accessibility to be supported.</p>
<p>For the rest of us the choice is private.  Grade A (meeting all level 1 items) can be considered the de-facto standard for any site, irrespective of audience or content.  It includes such straightforward requirements as providing ALT descriptions for all images (so text readers can describe them) and generally using HTML (and particularly CSS) correctly so different presentations can be created easily.</p>
<p>There is considerable work involved in conforming with the higher accessibility grades, particularly if reworking an existing site or content.   We may therefore choose only to go those levels if our particular audience requires it, or if particular elements in our site require it (eg online policies for disabled access would attract more users with accessibility issues and thus warrant higher conformance levels).</p>
<h2>Testing compliance</h2>
<p>The first step in considering accessibility is reviewing the guidelines and conducting a code review (and/or developing a coding standard depending on project status) which encompasses the core elements.</p>
<p>There are several online tools or services available to allow published sites to be tested easily (and regularly &#8211; important if content is changing).  The UK&#8217;s Royal Institute for the Blind maintains a <a href="http://www.rnib.org.uk/xpedio/groups/public/documents/PublicWebsite/public_tools.hcsp"><span>comprehensive list of such testing services</span></a>.  One of the most famous/useful testing sites was <a href="http://bobby.watchfire.com/"><span>Bobby</span></a>.  Unfortunately this appears unavailable at present.</p>
<h2>Accessibility and SharePoint</h2>
<p>SharePoint can be configured/developed to provide compliance with several accessibility guidelines.  And for sites requiring a higher level of conformance there is a downloadable <strong>Accessibility Kit for Microsoft Office SharePoint Server 2007</strong>.  This <a href="http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?List=8d9e2a99-f288-47c2-916b-2f32864f7b82&amp;ID=111"><span>Sharepoint team post on accessibility</span></a> explains approaches using both standard SharePoint and the accessibility kit.</p>
<h2>Conclusion</h2>
<p>As any other core business system, an intranet needs to comply with the firm&#8217;s directives for supporting staff with disabilities.  The W3C guidelines provide a clear and comprehensive method for assessing, ensuring and displaying that support.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2009%2F05%2F15%2Faccessibility-in-a-nutshell%2F&amp;title=Accessibility%20in%20a%20nutshell" id="wpa2a_18"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2009/05/15/accessibility-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website copyright in a nutshell</title>
		<link>http://isambard.com.au/blog/2008/08/26/copyright-and-your-website/</link>
		<comments>http://isambard.com.au/blog/2008/08/26/copyright-and-your-website/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 01:45:17 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Nutshells]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=36</guid>
		<description><![CDATA[Copyright is simply the protection given to an author to allow them to enjoy the fruits of their labours. It is generated automatically and freely whenever anyone creates an original expression of an idea (be it a web page design, a sound clip, a paragraph in an article, etc). For anyone creating/administering a website, copyright [...]]]></description>
			<content:encoded><![CDATA[<p>Copyright is simply the protection given to an author to allow them to enjoy the fruits of their labours. It is generated automatically and freely whenever anyone creates an original expression of an idea (be it a web page design, a sound clip, a paragraph in an article, etc). </p>
<p>
For anyone creating/administering a website, copyright therefore impacts you in two ways: </p>
<ul>
<li>copyright in your original content (eg <i>protecting your site from others</i>). </li>
<li>copyright in non-original content that you are using, and honouring that copyright (eg <i>protecting your site from yourselves</i>) </li>
</ul>
<h2>protecting your site from others</h2>
<p>For your site, copyright in its content exists automatically once the content has been created.  That copyright continues, also automatically, until a significant period after the author&#8217;s death (in Australia its 50 years; other countries 50 or 70 years). You do not need to apply for copyright<br />
or register in any way. </p>
<p>Not all your content is/can be copyrighted. For example facts can not be copyrighted (you cannot sue someone else for repeating your statement that England won the 1966 World Cup). Also non-copyrighted are names, short phrases, or ideas. For example, if you have a great idea for a killer website, and mention that idea on your site, you have no recourse on anyone who actually builds that site. Your idea is not protected, only its expression. Hence to protect it, build it. </p>
<h3>To &copy; or not to &copy;</h3>
<p>If you look at most websites, you will find a copyright notice (with the special &copy; character &#8211; added as &amp;copy;). This is actually unnecessary as all countries that are signatories to the Bern Convention (which includes all those you&#8217;ve actually a legal chance of having your copyright honoured in) agree to respect your copyright without the symbol/notice. </p>
<p>However adding the notice is recommended, not for legal purposes, but for a prompt to your users that you are serious about protecting your interests. Place it clearly on your home page and all other pages that might attract copying. If you have some content you are happy to be copied under certain conditions, link your copyright prompt to a statement of those terms and conditions. </p>
<h3>preventing copying</h3>
<p>Obviously copyright does not stop the unscrupulous from copying your hard work. And in reality, there is little that can be done to prevent the determined thief. There are some ways of slowing them down (using secure PDFs, spreading content over multiple pages, etc), and there are lawyers to help when found out, but in reality the best defense against copying is encouraging the reader to view your content, in your context. Provide a reason why it is better to link to your content than copy it, and you may prevent one more copy. </p>
<p>Additionally, it may be prudent to accept that some content will be copied, and provide terms/instructions by which it can be copied &#8220;on your terms&#8221;. Eg if you&#8217;ve written a useful piece of code, let others use it providing they include a reference/link to its origin. This way, whilst you&#8217;ve not prevented the copy, what you&#8217;ve actually done is convert it into an advertisement! </p>
<blockquote><p>
If you are prepared to allow your content to be copied or developed on (within limits), consider <a href="http://creativecommons.org/">Creative Commons</a> licensing.  This alternative to normal copyright protection allows you to specify simply and quickly the terms under which your content can be used by others.  For example if you&#8217;re happy for your artwork to be used for not-for-profit work but not for commercial gain, then you can add a Creative Commons licence that provides exactly that right.</p>
<p>
The Creative Commons movement is building a great deal of momentum worldwide.  It is well worth investigating if you feel the &#8220;all-or-nothing&#8221; approach to existing copyright is not the fairest way forward for your own efforts.
</p>
</blockquote>
<h3>If you find an unauthorised copy</h3>
<p>If you are unlucky enough to find a site that is copying your material against your wishes, then you have a variety of options available, best approached in the order shown: </p>
<ol>
<li>contact the infringing site<br />
<br />Mail/email the administrator of the infringing site, identifying which of their content is actually infringing your copyright, and detailing exactly what restitution you would like (eg remove it, mention your name, etc). When contacting them, do not immediately assume that the copying is malicious and deliberate. Sometimes the source of material cannot be identified, with even the best intentions. Try and keep it civil, at least at first! </li>
<li>contact the infringing site&#8217;s host or service provider.<br />
<br />If you are unhappy with the response from the site administrator, consider contacting the site&#8217;s host or service provider. As a business, they are often more cogniscent of the rights of others, and thus more interested in protecting their own legal interests. </li>
<li>contact a lawyer<br />
<br />If the copyright infringement is costing you serious money, then get a lawyer. And get a lawyer that specialises in copyright and/or online law. This will cost serious amounts of money, and thus only worthwhile if your reputation, or bottom-line, is being seriously impacted. </li>
</ol>
<h3>Proving it&#8217;s a copy</h3>
<p>As you can imagine, it&#8217;s often difficult to prove someone has copied your content. Obvious clues (like file dates) are easily modified. Therefore if you are significantly worried about copying, consider &#8220;seeding&#8221; your content. </p>
<p>Seeding entails hiding identifying marks/symbols within your content. For example add a deliberate spelling mistake or two, use a peculiar piece of code, add some useless/unnecessary HTML tags, etc. The aim is to add something that anyone generating the page themselves would not have included; finding these in another site therefore provides strong evidence that they&#8217;ve copied your original. </p>
<h2>Protecting your site from yourselves</h2>
<p>Often it&#8217;s not the risk of having to sue others that you need to consider on your site. You can also easily end up where someone is in a position to sue you. </p>
<p>The best defense against unintentional copyright infringement is education. Make sure that all parties that contribute to your site are aware of its requirements. It is also suggested that your formal content publication process (you do have one?) includes a step/check of copyright status. </p>
<h3>Who owns your company&#8217;s copyrights?</h3>
<p>Whilst copyright is normally vested in the author, for employees their standard employment terms usually specify copyright of anything produced whilst employed is vested in the employer. However you might need to check this. </p>
<p>For others providing you with material (consultants, bureaus, contractors, etc) check the terms under which they have been employed. If needing to employ such a third party, ensure the issue of copyright is resolved in the contract. </p>
<p>Remember that for your company documents, just because they have been published in one format, or to one audience, does not necessarily mean that they are free to be published on your website. For example, many annual reports contain stock photos or images. These may have been purchased from a bureau without online publication permission being included in the terms. </p>
<h3>If you&#8217;d like to copy something&#8230;</h3>
<p>The purpose of copyright law is not to prevent copying, just to prevent unauthorised copying. Hence, if you find some content, online or otherwise, that you&#8217;d like to include on your site you may be able to. The steps to do so are quite simple. </p>
<ol>
<li>ask the author for permission to copy. If the content is online, this is easy, and often simply requires e-mailing the site owner/administrator.
<p>When asking, make clear exactly how/where you wish to re-use their content. We won&#8217;t give permission to someone to &#8220;copy your site&#8221;, but if you want to take this article, we&#8217;d be more sympathetic. </p>
</li>
<li>respect the response given. This can range from &#8220;not at all&#8221;, through &#8220;yes &#8211; but with conditions&#8221; to an unqualified &#8220;yes&#8221;.
<p>Possible conditions can include to identify the origin of the material (with/without a link to it),<br />
to not alter or modify the material (eg not to take one part deliberately out of context), or not defame or denigrate the original (we don&#8217;t all want to be listed on your &#8220;worst website of the week&#8221; page). As with these examples, they are not often onerous. Most authors will be flattered you want to use their work. </p>
</li>
</ol>
<h3>Content not under your control</h3>
<p>Your website may contain content that is not under your direct control. For example you may run a discussion forum that the public can contribute to. For such areas you need to demonstrate your own commitment to the law (by notices/terms for submitters) as well as, potentially, monitoring submissions for infringements. And if any are identified, by yourselves or another party, then they should be acted on swiftly. </p>
<h3>I don&#8217;t want to copy it, just link to it&#8230;.</h3>
<p>For all those who consider the internet a lawless land, the law of copyright applies quite simply and fairly to it. However it is when considering the legal role of hyperlinks that the issue becomes a little greyer. With hyperlinks, sites can ostensibly include content produced<br />
by others, without taking a physical copy. The issue becomes even fuzzier when considering frames: using them it is possible to load an entire site &#8216;inside your own&#8217; and hence imply ownership of it in all total. </p>
<p>If your presentation of the link or content implies ownership, then you&#8217;re potentially up for double legal whammy. If the lawyers don&#8217;t pursue you for copyright infringement, then they could also pursue you for deceptive/misleading trading (in the same way as implying your homebrand PC is made by IBM by just sticking a logo on the front). </p>
<p>Another potential risk situation is that called &#8216;deep-linking&#8217;. This is where you link to content deep within a site, not to imply ownership, but to circumvent other pages/details the owning site require its users to view beforehand. For example you could replicate a job posting from a site without reproducing some of the advertisement or owner information that they require to be displayed. If in doubt, always check with the author about what conditions, if any, they will accept your links. </p>
<h2>Conclusions</h2>
<p>This article provides an introduction to the issue of online copyright and provides an outline of the various facets of it that may impact your organisation as it goes online. </p>
<p>The key point to remember is that copyright law is built to enable and manage copying and the distribution of ideas, not to restrict it. Your aim therefore, should not necessarily be to prevent all copying, but to ensure that whatever copying is undertaken under terms you have dictated. </p>
<h2>More Information</h2>
<p>A quick internet search will highlight a series of useful sites on which the issue of copyright can be further investigated. Some suggested starting points: </p>
<ul>
<li><a href="http://creativecommons.org/">Creative Commons</a><br />
<br />Main website for this flexible approach to copyright licensing.</p>
<li><a href="http://www.copyright.org.au/">Australian Copyright Council</a><br />
<br />An excellent starting point. This non-for-profit organisation provide a series of newsletters and seminars educating Australians in all aspects of copyright law. </li>
<li><a href="http://www.dcita.gov.au/ip/">Commonwealth Department of Communications, Information Technology and the Arts</a><br />
<br />The Australian Government&#8217;s own intellectual property area. </li>
</ul>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2008%2F08%2F26%2Fcopyright-and-your-website%2F&amp;title=Website%20copyright%20in%20a%20nutshell" id="wpa2a_20"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2008/08/26/copyright-and-your-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

