<?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>modulus blog</title>
	<atom:link href="http://www.modulus.com.au/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.modulus.com.au/blog</link>
	<description>Modulus provides tools and applications to consultancies and website developers; including Business Process Management e-books.</description>
	<lastBuildDate>Sat, 04 Sep 2010 01:04:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>moving on</title>
		<link>http://www.modulus.com.au/blog/?p=58</link>
		<comments>http://www.modulus.com.au/blog/?p=58#comments</comments>
		<pubDate>Sat, 04 Sep 2010 00:51:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[All]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=58</guid>
		<description><![CDATA[For years, I have done the vast majority of my web programming in Perl. It&#8217;s a powerful, flexible language, excellent for CGI programming. Many of its features, especially associative arrays and regular expressions, are so well integrated into the core language that they make coding a particularly genial activity. There are few tasks for which [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
	For years, I have done the vast majority of my web programming in Perl. It&#8217;s a powerful, flexible language, excellent for CGI programming. Many of its features, especially associative arrays and regular expressions, are so well integrated into the core language that they make coding a particularly genial activity. There are few tasks for which Perl is an unsuitable choice; if I were so foolish as to make a  list of these, no doubt someone else could point to an example of, say, Perl performing process control of a nuclear power plant.
	</p>
<p>
	Due to its recent popularity, I&#8217;ve dabbled over the years with PHP as well, and found it great for the tasks for which it was specifically designed and less than great in some other areas. The quality and consistency of its documentation is patchy and its OOP model has only recently fully evolved.
	</p>
<p>
	However, I&#8217;ve taken the plunge and I&#8217;m moving across to using PHP for all my web programming. I want to do more in the way of mobile devices; this made the previous mix of HTML, CSS, Perl, PHP and Javascript untenable. I could not readily achieve fully conforming mobile device web pages with this mix, so I&#8217;m in the process of replacing my Perl modules with PHP versions and, in the process, eliminating as much Javascript as possible. This will enable me to tailor the pages rendered from my website to the particular device and user agent, desktop or mobile, requesting the page. So far, the experience has been quite enjoyable and I have not 	found any insurmountable problems.
	</p>
<p>
The modules which I&#8217;ve already fully ported include the <a href="http://www.modulus.com.au/locations/index.php" title="locations.module - calculate distance between postcodes and localities">locations.module</a>, <a href="http://www.modulus.com.au/sitesearch/index.php" title="sitesearch.module - optimised searching utility with full regular expressions">sitesearch.module</a>, <a href="http://www.modulus.com.au/guestbook/index.php" title="guestbook.module - simple, secure, configurable guest book">guestbook.module</a> and <a href="http://www.modulus.com.au/validlinks/index.php" title="validlinks.module - automated website link checking and status reporting">validlinks.module</a>, with more of them to come shortly.
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>responsible, accountable, consulted, informed (RACI) cheat sheet</title>
		<link>http://www.modulus.com.au/blog/?p=51</link>
		<comments>http://www.modulus.com.au/blog/?p=51#comments</comments>
		<pubDate>Sun, 29 Aug 2010 01:37:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[RACI analysis]]></category>
		<category><![CDATA[bpm]]></category>
		<category><![CDATA[consultancy]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=51</guid>
		<description><![CDATA[An important part of analysisng business processes is covered by RACI analysis, which concerns the determination of who is Responsible, Accountable, Consulted and Informed (RACI) for each business process. Assuming you&#8217;ve got the Identifying, Documenting and Analysing Business Processes e-Book, you will fully understand RACI analysis and how effective it can be in analysing business [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">An important part of analysisng business processes is covered by <acronym title="Responsible, Accountable, Consulted, Informed">RACI</acronym> analysis, which concerns the determination of who is Responsible, Accountable, Consulted and Informed (RACI) for each business process. Assuming you&#8217;ve got the <a href="http://modulus.com.au/ebooks/index.php#teal" title=="Identifying, Documenting and Analysing Business Processes">Identifying, Documenting and Analysing Business Processes</a>  e-Book, you will fully understand <acronym title="Responsible, Accountable, Consulted, Informed">RACI</acronym> analysis and how effective it can be in analysing business processes. To help you apply <acronym title="Responsible, Accountable, Consulted, Informed">RACI</acronym> analysis, I&#8217;ve prepared a <acronym title="Responsible, Accountable, Consulted, Informed">RACI</acronym> <a href="http://modulus.com.au/kpis/raci_cheat_sheet_2_010.pdf" title"Responsible, Accountable, Consulted, Informed (RACI) Cheat Sheet 2010">cheat sheet</a>. It&#8217;s a two-page PDF file which you can <a href="http://modulus.com.au/kpis/raci_cheat_sheet_2_010.pdf" title"Responsible, Accountable, Consulted, Informed (RACI) Cheat Sheet 2010">download</a> and print.
	</p>
<p>
	Print the <acronym title="Responsible, Accountable, Consulted, Informed">RACI</acronym> cheat sheet and put it on your desk; you&#8217;ll find it an effective reminder of the <acronym title="Responsible, Accountable, Consulted, Informed">RACI</acronym> section in <a href="http://modulus.com.au/ebooks/index.php#teal" title=="Identifying, Documenting and Analysing Business Processes">Identifying, Documenting and Analysing Business Processes</a>.
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=51</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>key performance indicator (KPI) cheat sheet</title>
		<link>http://www.modulus.com.au/blog/?p=43</link>
		<comments>http://www.modulus.com.au/blog/?p=43#comments</comments>
		<pubDate>Sat, 28 Aug 2010 08:25:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[kpis]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=43</guid>
		<description><![CDATA[Assuming you&#8217;ve got the Generating &#38; Selecting KPI Sets e-Book, you already have a good idea of how to construct good candidate KPIs and how to select between those candidate KPIs to form effective KPI sets, you&#8217;re all set to go. But can you recall all of the key steps in the process? As an [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">Assuming you&#8217;ve got the <a href="http://modulus.com.au/ebooks/index.php#blue" title=="Generating &amp; Selecting KPI Sets">Generating &amp; Selecting <acronym title="Key Performance Indicator">KPI</acronym> Sets</a> e-Book, you already have a good idea of how to construct good candidate <acronym title="Key Performance Indicator">KPIs</acronym> and how to select between those candidate <acronym title="Key Performance Indicator">KPIs</acronym> to form effective <acronym title="Key Performance Indicator">KPI</acronym> sets, you&#8217;re all set to go. But can you recall all of the key steps in the process?
	</p>
<p>
	As an <i>aide memoire</i>, I&#8217;ve created a <acronym title="Key Performance Indicator">KPI</acronym> <a href="http://modulus.com.au/kpis/kpi_cheat_sheet_2_010.pdf" title"Key Performance Indicators Cheat Sheet 2010"> cheat sheet</a>. It&#8217;s a one-page PDF file which you can <a href="http://modulus.com.au/kpis/kpi_cheat_sheet_2_010.pdf" title"Key Performance Indicators Cheat Sheet 2010">download</a> and print, to guide you<br />
	through the creation of <acronym title="Key Performance Indicator">KPIs</acronym> and <acronym title="Key Performance Indicator">KPI</acronym> sets.<br />
	It leads you through all of the key principles of selecting <acronym title="Key Performance Indicator">KPIs</acronym> and <acronym title="Key Performance Indicator">KPI</acronym> sets, including Kaplan &amp; norton &#8220;Balanced Scorecard&#8221; reminders, as well as <acronym title="Key Performance Indicator">KPI</acronym> system rollout steps.
	</p>
<p>
	Print the <acronym title="Key Performance Indicator">KPI</acronym> cheat sheet and put it on your desk; you&#8217;ll be surpised how effective a remider of the principles of <a href="http://modulus.com.au/ebooks/index.php#blue" title=="Generating &amp; Selecting KPI Sets">Generating &amp; Selecting <acronym title="Key Performance Indicator">KPI</acronym> Sets</a> it is.
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=43</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>constructing and implementing service level agreements (sla&#8217;s)</title>
		<link>http://www.modulus.com.au/blog/?p=36</link>
		<comments>http://www.modulus.com.au/blog/?p=36#comments</comments>
		<pubDate>Thu, 26 Aug 2010 06:38:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[consultancy]]></category>
		<category><![CDATA[service level agreements]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=36</guid>
		<description><![CDATA[Service Level Agreements are agreements for a scheduled set of services to be delivered at an agreed quality for an agreed cost. In this sense, a service level agreement is, formally, just a contract. However, service level agreements are a rather special type of contract; they represent a highly cooperative agreement between two willing participants. [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
Service Level Agreements are agreements for a scheduled set of services to be delivered at an agreed quality for an agreed cost. In this sense, a service level agreement is, formally, just a contract. However, service level agreements are a rather special type of contract; they represent a highly cooperative agreement between two willing participants. Service level agreements spell out the expectations of both the parties; they can be internal (e.g. a <acronym title="Service Level Agreement">SLA</acronym> constructed between the IT department and the operational department of an organisation) or purely external (e.g. a business continuity service level agreement between your organisation and Hewlett Packard). The most common <acronym title="Service Level Agreement">SLAs</acronym> currently in use are IT service level agreements, especially for telecommunication and support services.
		</p>
<p>
		The formalisation of a service level agreement tends to take the emotive content out of service provision; by clear, concise agreement on the scope of services to be delivered, the quality of those services 	and the compensation for provision of those services, each party to the <acronym title="Service Level Agreement">SLA</acronym> is relieved of the emotional baggage of service provision and freed to concentrate on the efficient provision and consumption of those services. Of course, a service level agreement is no panacea for problems arising in the provision of services. However, when tribulations do arise, they can be dealt with within the framework of the service level agreement, even when this means that the agreement needs to be varied.
		</p>
<p>		Service which are suitable for management by Service Level Agreement include:</p>
<ul>
<li>well understood, established services</li>
<li>services which are delivered in small lots, fequently</li>
<li>repeatable, definable services</li>
<li>relatively stable demand for the services</li>
<li>existence of a capable labour pool to fulfill the service level agreement.</li>
</ul>
<p>
		This is not to say that service level agreements cannot be constructed for larger, more complex services or that the realm of service level agreements ios limited to blue collar labour, but it does mean they 	are unlikely to be a good fit for original intellectual property deliver, e.g. a service level agreement for the delivery of poetry is likely to yield doggerel rather than consistently high quality verse.
		</p>
<p>
		To find further information about implementing service level agreements, look at our e-book at: <a href="http://modulus.com.au/ebooks/ebooks.php#plum" title="e-Book - Implementation Guide for Service Level Agreements">e-Book &#8211; Implementation Guide for Service Level Agreements</a>. This e-book includes a complete template for the construction of <acronym title="Service Level Agreement">SLAs</acronym>, enabling you to get a well-constructed agreement in place in minimum time.
		</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=36</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>naming your dog</title>
		<link>http://www.modulus.com.au/blog/?p=29</link>
		<comments>http://www.modulus.com.au/blog/?p=29#comments</comments>
		<pubDate>Sat, 17 Apr 2010 04:11:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=29</guid>
		<description><![CDATA[Naming your dog (or anything else…) is not easy &#8211; it&#8217;s non-trivial. The car manufacturers spend millions of dollars searching for model names, and even then they generate some stinkers. The largest company in the world, General Electric, named one of its Chevrolet cars the &#8220;Nova&#8221;, which in Spanish means &#8220;does not go&#8221;. They are [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
Naming your dog (or anything else…) is not easy &#8211; it&#8217;s non-trivial.
</p>
<p>
The car manufacturers spend millions of dollars searching for model names, and even then they generate some stinkers. The largest company in the world, General Electric, named one of its Chevrolet cars the &#8220;Nova&#8221;, which in Spanish means &#8220;does not go&#8221;.  They are seeking brand recognition and to convey some sense of the qualities of the car they are flogging and sometimes they achieve that. When a car model is called a &#8220;Statesman&#8221;, &#8220;Diplomat&#8221; or a &#8220;Senator&#8221;, you can be reasonably sure it will be an over-long, over-weight luxury lard-arse which guzzles small oilfields while delivering its silver-haired cargo to the gentlemen&#8217;s club. On the other hand a &#8220;Mica&#8221;, &#8220;Pica&#8221;, &#8220;Smart&#8221;, &#8220;Swift&#8221; or similar will be a pint-sized one-point-something-litre built-to-a-price plastic runabout, easily turned into a milk crate by argument with a 4-wheel-drive. These latter tend to have something of the &#8220;terra&#8221; (and sometimes the &#8220;terror&#8221;) in their names. Thus the &#8220;Land Cruiser&#8221; takes off from where the &#8220;Land Rover&#8221; left off, or was that the &#8220;Range Rover&#8221;; anyway, it&#8217;s not too far removed from the &#8220;Desert Runner&#8221; or the &#8220;Bush Buggerer&#8221;. But these semi-innocent, World-War-II-derived devices cannot hold a candle (nor a jack-handle) to the American Sports Utility Vehicle. The SUV as it&#8217;s known to its friends, is not so much a vehicle class as an ongoing competition to float the biggest, brashest, bluffest, thirstiest, post-Gulf-War-1 refutation of ecological sensibility as possible. Witness the High-Mobility-Multi-Purpose-Wheeled-Vehicle-derived &#8220;Hummer&#8221;, which only its mother (the afore-mentioned High-Mobility-Multi-Purpose-Wheeled-Vehicle) could love<sup><small>1</small></sup>.  Or take the Ford &#8220;F-series&#8221; truck which, from modest beginnings in the 1950&#8242;s is now, in its latest incarnation, something like an armed houseboat with air horns. At the leading edge (for certain values of the word &#8220;leading&#8221;) of this class is the Dodge &#8220;Ram&#8221;; now there&#8217;s an evocative name in only three letters, but up to 10 cylinders of grunt. Specifically, you can buy the &#8220;Dodge Ram 3500 dual-rear-wheel 4-wheel-drive quad-cab-with-suicide-doors 8.0-litre Magnum petrol V-10&#8243;. You&#8217;ll be wanting a step-ladder with that, sir.
</p>
<p>
Naming people (at least in Western society)  has been easy; we choose from a limited list of names which wax and wane in their popularity. Only the artists amongst us seem to have any imagination, and Frank Zappa deserves special posthumous praise for naming his progeny &#8220;Ahmet Rodan&#8221;, &#8220;Diva&#8221;, &#8220;Dweezil&#8221; and &#8220;Moon Unit&#8221;.
</p>
<p>
But back to naming your dog. There are certain goals you want to achieve in naming your dog, some of which are purely practical, others more abstract.
</p>
<p>
Like the car manufacturers, you want brand recognition, but by an audience of one, i.e. your dog. To achieve this you should aim for a name of one or two syllables; the first syllable should preferably be of the consonant-vowel-consonant form, the second (if any) can be of any type. Thus &#8220;Rex&#8221;, &#8220;Max&#8221;, &#8220;Jake&#8221;, &#8220;Buddy&#8221;, &#8220;Bailey&#8221;, &#8220;Sam&#8221;, &#8220;Rocky&#8221;, &#8220;Buster&#8221;, &#8220;Fido&#8221; for the boys and &#8220;Molly&#8221;, &#8220;Lady&#8221;, &#8220;Sadie&#8221;, &#8220;Sasha&#8221;, &#8220;Jessie&#8221; et al for the girls are easy for the dogs to hear and recognise. Although you might like the idea of having a faithful hound called &#8220;Santa&#8217;s Little Helper&#8221;, &#8220;Shostakovitch&#8221; or &#8220;Schickelgruber&#8221;, you would be asking your dog to perform an extra-ordinary memorisation feat as its first puppy task. &#8220;Alowishus&#8221; is worse still, since the first syllable is of the vowel-consonant form, harder for dogs to recognise.
</p>
<p>
A second consideration is that you should probably not give your dog a name which is also a common command. Naming your dog &#8220;Sit&#8221; or &#8220;Heel&#8221; can only lead to confusion. Naming your dog &#8220;Attack&#8221; may also cause some contextual difficulty, especially with Pomeranians.
</p>
<p>
Thirdly, dogs&#8217; names should be, broadly speaking, people-friendly. Imagine that you&#8217;re at the picnic park, and your dog wanders over to the Coffin Cheaters Motorcycle Club barbeque; you have to call you dog back in full voice. Suddenly, the fact that he liked tennis balls as a puppy just doesn&#8217;t seem to support your choice of  &#8220;mr. ball-licker&#8221;.  Equally, when you&#8217;re at the church picnic, your dog starts humping the<br />
leg of the organist and you have to call him off, you may regret having called him &#8220;mother f*cker&#8221;, whether or not you used an asterisk.
</p>
<p>
Lastly, the dog&#8217;s name should be kid-friendly. Kids are like people but less so. If you call your dog &#8220;Alejandrina&#8221; (a popular Spanish name for bitches), you might find it sophisticated, but the kids would probably prefer &#8220;Bum-drag&#8221;, and might even teach it appropriate tricks.
</p>
<p><small>1. since I initially wrote this, the Hummer has become a victim of the global financial crisis and its passing will be greatly lamented by&#8230;.. hardly anyone.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=29</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>i.e.g., a perfectly cromulent t.l.a.</title>
		<link>http://www.modulus.com.au/blog/?p=25</link>
		<comments>http://www.modulus.com.au/blog/?p=25#comments</comments>
		<pubDate>Thu, 29 Oct 2009 03:50:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=25</guid>
		<description><![CDATA[When I draft my e-books, my editor often complains about my use of the abbreviation &#8220;e.g.&#8221;. She prefers me to write &#8220;for example&#8221; and, even then, there is always a struggle for me to get the commas in the right places. Even worse, &#8220;for example&#8221; often is not all that I wish to say; often [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
	When I draft my e-books, my editor often complains about my use of the abbreviation &#8220;e.g.&#8221;. She prefers me to write &#8220;for example&#8221; and, even then, there is always a struggle for me to get the commas in the right places.
	</p>
<p>
	Even worse, &#8220;for example&#8221; often is not all that I wish to say; often I&#8217;m trying to say something of the style &#8220;that is, for example&#8221;, so I wind up doubting whether I&#8217;m really wanting to &#8220;i.e.&#8221; or &#8220;e.g.&#8221;
	</p>
<p>
	I&#8217;ve decided to cut the Gordian knot; from this day hence, when appropriate I will use the newly coined T.L.A.* &#8220;i.e.g.&#8221;, meaning &#8220;that is, for example,&#8221;. I&#8217;m sure you will find i.e.g. a perfectly cromulent T.L.A.
	</p>
<p>
	<small>* T.L.A. = Three Letter Abbreviation.</small>
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=25</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rewarding the committed reader</title>
		<link>http://www.modulus.com.au/blog/?p=24</link>
		<comments>http://www.modulus.com.au/blog/?p=24#comments</comments>
		<pubDate>Sun, 14 Jun 2009 01:28:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[good practice]]></category>
		<category><![CDATA[website development]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=24</guid>
		<description><![CDATA[Google vice-president of search product and user experience, Marissa Mayer made an interesting observation recently, when speaking of on-line newspapers: I can go to various newspapers and when you scroll down to the bottom, what do you do next? There were related stories and related videos but those were up on the top. So now [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
	Google vice-president of search product and user experience, Marissa Mayer made an interesting observation recently, when speaking of on-line newspapers:
	</p>
<p>
	<cite>I can go to various newspapers and when you scroll down to the bottom, what do you do next? 	There were related stories and related videos but those were up on the top. So now the most committed user &#8211; the one that reads through the entire piece &#8211;  is now looking at the bottom of the page with nothing to do.</cite>
	</p>
<p>
	It is well worth while looking at each of your web pages with the specific  aim of ensuring that there is something engaging to reward your most committed site visitors, at the end of each article, at the bottom of each page. This is especially true for longer articles or pages.
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>html font sizing</title>
		<link>http://www.modulus.com.au/blog/?p=23</link>
		<comments>http://www.modulus.com.au/blog/?p=23#comments</comments>
		<pubDate>Thu, 28 May 2009 06:11:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[good practice]]></category>
		<category><![CDATA[website development]]></category>
		<category><![CDATA[fonts]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=23</guid>
		<description><![CDATA[When specifying text size in HTML markup by way of the font-size attribute in CSS, the units used can be either absolute or relative. Absolute units (such as pixels) mean that the website designer retains more control over the appearance of the page, but that requests from web browsers for larger or smaller sizes will [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
	When specifying text size in HTML markup by way of the font-size attribute in CSS, the units used can be either absolute or relative. Absolute units (such as pixels) mean that the website designer retains more control over the appearance of the page, but that requests from web browsers for larger or smaller sizes will be ignored. When relative sizes are used (such as ems or percentages) some additional testing is needed to ensure that the page does not become illegible or jumbled at large and small point sizes, but the degree of convenience offered to those whose vision is less than 100% is, in my opinion, well worth the extra five minutes of testing. Furthermore, relative sizing allows for both automatic and manual adjustment of the font size on devices such as mobile &#8216;phones.
	</p>
<p>
	I visited 40 randomly-selected websites and checked each for compliance with requests from the web browser to increase or decrease the text size (note that this is <b>not</b> the &#8220;zoom&#8221; function present in some browsers, it should affect text only. The results are as follows:
	</p>
<table summary="" frame="box" border="2" cellpadding="2" cellspacing="2" rules="all">
<col align="left" valign="top" />
<col align="left" valign="top" />
<thead>
<tr>
<th>degree of compliance</th>
<th>%age of sites</th>
</tr>
</thead>
<tfoot>
		</tfoot>
<tbody>
<tr>
<td>
					full
				</td>
<td>
					38%
				</td>
</tr>
<tr>
<td>
					partial
				</td>
<td>
					30%
				</td>
</tr>
<tr>
<td>
					none
				</td>
<td>
					32%
				</td>
</tr>
</tbody>
</table>
<p>
	&#8220;Full&#8221; means that all text on the site resizes as requested by the browser, and that the end result is still legible.
	</p>
<p>
	&#8220;Partial&#8221; compliance means that while much of the text might resize as requested, some of it does not (or the site becomes illegible due to text overlaps); the most common symptom here is menu text which stays at the same fixed  size.
	</p>
<p>
	&#8220;None&#8221; means that, apart from some minor and accidental spacing changes, none of the text responds to requests for size changes.
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>holy jalpeño chili sauce</title>
		<link>http://www.modulus.com.au/blog/?p=22</link>
		<comments>http://www.modulus.com.au/blog/?p=22#comments</comments>
		<pubDate>Tue, 31 Mar 2009 01:53:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[recipe]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=22</guid>
		<description><![CDATA[Observant readers will know that this is not a recipe blog, except for programming recipes. Nevertheless, this one is about chili sauce. ingredients 550 gm tomatoes 400 gm brown onions 80 gm jalapeño peppers 20 gm red chilis 1 lime 3 cloves garlic 1 cup brown vinegar 1 cup water 1/3 cup sugar 1/2 tsp [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
	Observant readers will know that this is not a recipe blog, except for programming recipes. Nevertheless, this one is about chili sauce.
	</p>
<h2>ingredients</h2>
<ul>
<li>550 gm tomatoes</li>
<li>400 gm brown onions</li>
<li>80 gm jalapeño peppers</li>
<li>20 gm red chilis</li>
<li>1 lime</li>
<li>3 cloves garlic</li>
<li>1 cup brown vinegar</li>
<li>1 cup water</li>
<li>1/3 cup sugar</li>
<li>1/2 tsp salt</li>
</ul>
<h3>method</h3>
<p>
	Dice the tomatoes, onions, peppers, chilis and garlic. Add the zest and juice of the lime and other ingredients, bring to the boil in a heavy<br />
	saucepan and then slowly simmer for 30 minutes. Blend with a stick blender. Makes about 1.5 litres.
	</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=22</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a slimmer thesaurus</title>
		<link>http://www.modulus.com.au/blog/?p=21</link>
		<comments>http://www.modulus.com.au/blog/?p=21#comments</comments>
		<pubDate>Tue, 23 Dec 2008 06:18:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://www.modulus.com.au/blog/?p=21</guid>
		<description><![CDATA[As I often do, when planning development of my text processor I consider first what capability Microsoft Word has. I have Word 2000; its &#8220;Thesaurus&#8221; function is really a list of synonyms (with the occasional antonym) rather than a proper thesaurus. When you look up &#8220;updated&#8221;, the Thesaurus form looks like this: It&#8217;s not very [...]]]></description>
			<content:encoded><![CDATA[<p class="posting">
As I often do, when planning development of my text processor I consider first what capability Microsoft Word has. I have Word 2000; its &#8220;Thesaurus&#8221; function is really a list of synonyms (with the occasional antonym) rather than a proper thesaurus. When you look up &#8220;updated&#8221;, the Thesaurus form looks like this:<br />
<img src="images/thesaurus_word_2000.gif" alt="Word 2000 thesaurus" /><br />
It&#8217;s not very pretty. There are four input boxes, four buttons, three labels and a control alignment which appears to be largely random. The substantive content is a flat list of synonyms. It occured to me that there might be better designs available.
</p>
<p>
After some trial and error, I have ended up with the following design in my text processor, Weblex:<br />
<br />
<img src="images/thesaurus_weblex.gif" alt="Weblex thesaurus" /><br />
The synoym list uses a Windows Tree-view; when you select a synonym by clicking on it, synonyms for that synonym are presented, as is the case for &#8220;modernism&#8221; displayed above.
</p>
<p>
There are two input boxes and three buttons, one label. One of the buttons is additional to the Word fuctionality (&#8220;Find on WWW&#8221;), so the net reduction in clutter is quite significant.
</p>
<p>
The moral of this story is that, despite the owerwhelming number of designers, software engineers, ergonomists, hair-dressers and spin doctors in the larger software development firms, it is still not only possible but indeed <strike>feasible</strike> <strike>realistic</strike> <strike>practical</strike> <strike>workable</strike> viable to compete with them on good design.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.modulus.com.au/blog/?feed=rss2&amp;p=21</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
