<?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>stevenclark.com.au &#187; javascript</title>
	<atom:link href="http://stevenclark.com.au/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://stevenclark.com.au</link>
	<description></description>
	<lastBuildDate>Tue, 22 May 2012 09:55:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Cheap Off-shore Web Design is Risky Business</title>
		<link>http://stevenclark.com.au/2011/03/24/cheap-off-shore-web-design-is-risky-business/</link>
		<comments>http://stevenclark.com.au/2011/03/24/cheap-off-shore-web-design-is-risky-business/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 09:31:34 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[contracts]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[justice]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=7449</guid>
		<description><![CDATA[Telephone conversations can be revealing. A recent discussion came around to an Australian professional consultancy and their choice to contract work out to a perceived cheaper option &#8211; a Bulgarian web design firm. It&#8217;s a strong business temptation in the hyper-networked world. But before they went down that route I&#8217;d have offered some food for [...]]]></description>
			<content:encoded><![CDATA[<p>Telephone conversations can be revealing. A recent discussion came around to an Australian professional consultancy and their choice to contract work out to a perceived cheaper option &#8211; a Bulgarian web design firm. It&#8217;s a strong business temptation in the hyper-networked world.</p>
<p>But before they went down that route I&#8217;d have offered some food for thought.</p>
<h3>Some Contracts may resemble Toilet Paper</h3>
<p>The first point to clarify is the country the contracts apply to&#8230; where they were signed&#8230; the jurisdiction of any legal resolution &#8211; where you have to appear in court if the contract comes to a dispute.There are three major legal systems and they don&#8217;t treat contracts equally &#8211; Common Law (the British System), Civil Law (the European System) and Islamic Law. Each individual country also has it&#8217;s own business context including political risk and economic profile. And specific countries offer unique challenges to doing business that should be considered.</p>
<p>If the contract is Bulgarian then you might have to hire lawyers and attend hearings on specified dates in Eastern European Civil Courts.</p>
<p>On the other hand, <a href="http://stevenclark.com.au/2009/11/07/contracts-101-part-1-outline/">if this is an Australian contract</a> then how do you force the Bulgarian web design firm to appear on a given date in the appropriate court in Sydney? And how do you force them to adhere to the Australian court&#8217;s judgement? If you were awarded AUD$20,000 damages then how would you enforce that fine in Bulgaria? Or African or Middle Eastern countries? Or the United States where you might be sued on that contract, have to fly to appear with US lawyers and fight an extended and expensive legal battle with huge monetary consequences if you lose.</p>
<p>Were you to have a legal contract with an Indian firm&#8230; any court would take between 10 and 20 years to hear the case due to stress on the Indian legal system. You may never see a resolution.</p>
<p>The bottom line is that a contract you can&#8217;t enforce or that has you at such a disadvantage is worse than toilet paper to your business. It might lead to your being sued in a foreign country under a different legal system and possibly in another language.</p>
<p><span id="more-7449"></span></p>
<h3>Client Privacy and Security Concerns in a Wire Canoe</h3>
<p>The next consideration has to be privacy and security. Were you to send client data (ie. access to database content or client files) to another country then THAT COUNTRY determines the appropriate privacy laws and enforcement. This was true when Telstra sent all of our Australian accounts offshore to Indian call centres exposing their customer base to increased identity theft. If the Bulgarian web firm stole and misused this customer data then it could kill your business.</p>
<p>At the same time the entire infrastructure of the online business is exposed to an overseas business entity that, let&#8217;s be honest, you really don&#8217;t know anything about. What are their business motivations and relationships? Have they used black hat search engine optimisation techniques? Did they insert malicious code? Are your website visitors going to be installing malware under your name? These cheaper Bulgarian web designers are being provided access to your passwords, file structure, email accounts and sensitive information.</p>
<p>If that isn&#8217;t bad enough &#8211; what are the consequences if they betray your trust? You could go out of business. You may have no financial capacity to recoup the loss or pay for the damages out of your own pocket. Just as any 60 year old pervert can say they are a 12 year old girl in an Internet chat room&#8230; anybody can tell you they run a web design business in Bulgaria.</p>
<h3>A Dollar Spent Elsewhere doesn&#8217;t turn the Merry-go-round</h3>
<p>Believe me, I&#8217;ve got an MBA and understand the ideals of globalisation and free trade as much as the next guy. But the reality is that by chasing the budget option off-shore there are hundreds or a few thousand dollars no longer circulating in your local community. That&#8217;s a bigger deal than it sounds.</p>
<p>When you spend dollars at the local grocer to buy milk then the grocer can buy shoes for his child and the dairy farmer can buy the newspaper. In turn the shoe seller and the newspaper seller receive their portions of that dollar and can buy goods they need or want for their families. Money isn&#8217;t a one-time transaction, it continually renews itself through a community increasing the social value of it&#8217;s footprint. Not investing in local talent is shooting your community in the foot &#8211; less money attracted for business investment, less money for schools and infrastructure, less money for the merry-go-round of opportunity for your own children.</p>
<p>Because what looks like a good deal &#8211; getting somebody to work at $5 per hour &#8211; is at the heart of it exploitative anyway. It&#8217;s no different than a large company moving production to India to avoid labour laws or safety regulations.</p>
<p>I&#8217;m not saying never to outsource overseas&#8230; but do it for the right reasons and be prepared to pay the appropriate value for their work. Make that decision with an understanding of the inherent business risk that comes with the decision.</p>
<p>There&#8217;s a saying in business &#8211; &#8220;There&#8217;s no such thing as a free lunch.&#8221; Whatever decision you make about your web design services be prepared to grab your wallet.</p>
<p><img src="http://stevenclark.com.au/wp-content/uploads/2011/03/Hobart_tas.jpg" alt="Hobart, Tasmania" title="Hobart, Tasmania" /></p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2011/03/24/cheap-off-shore-web-design-is-risky-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 is HTML and HTML5 means Open Web Platform / Web Standards</title>
		<link>http://stevenclark.com.au/2011/01/21/html5-is-html-and-html5-means-open-web-platform-web-standards/</link>
		<comments>http://stevenclark.com.au/2011/01/21/html5-is-html-and-html5-means-open-web-platform-web-standards/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 23:07:59 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=7048</guid>
		<description><![CDATA[Update 22 January, 2011: Ian Jacobs has clarified on the W3C blog that the statement about HTML5 meaning HTML, CSS, SVG etc has been removed and that it now simply refers to&#8230; shock, horror&#8230; HTML5. However, still find it daytura-esque to run HTML as a generic specification with a live document.[end update] Call me old [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong> 22 January, 2011: Ian Jacobs has <a href="http://www.456bereastreet.com/archive/201101/html5_logo_faq_updated_to_add_clarification/">clarified on the W3C blog</a> that the statement about HTML5 meaning HTML, CSS, SVG etc has been removed and that it now simply refers to&#8230; shock, horror&#8230; HTML5. However, still find it daytura-esque to run HTML as a generic specification with a live document.[end update]</p>
<p>Call me old fashioned but I like to call a spade a spade&#8230; not a spade a shovel and a spade a shovel, garden fork, car hoist, jimmy bar and antique musket. To the average person on Earth this sounds like rubbish&#8230; as it should. </p>
<p>HTML 5 is now HTML and HTML5 now means HTML, CSS, SVG, JavaScript, WOFF, XML and anything that fits into the area I always understood to be called Web Standards&#8230; or what I&#8217;d agree to be called the Open Web Platform. </p>
<p>To make that smorgasborg of self-reference even more interesting&#8230; like someone spent a little too long on the loo after suspect vindaloo&#8230; the W3C is going to be releasing a snapshot of HTML5&#8230; which is and isn&#8217;t HTML&#8230; because HTML will be a live unversioned document that changes over time. Leaving the question&#8230; what is the real world use of the snapshot if it&#8217;s not the HTML specification? </p>
<p>I do know HTML5 (HTML) is a specification document meant for browser developers and not people like me&#8230; but how logistically viable would it be for anybody to read the live HTML specification with reliance on it&#8217;s validity even 2 or 3 days later? How do you have conversations about its content? A specification without versioning CANNOT BE RELIED UPON TO BE TRUE AT ANY POINT IN TIME. Because it can change. It probably has changed since you last read any part of it &#8211; the wording and / or intent of already complex ideas.</p>
<p>But hey&#8230; I&#8217;m not a specifications expert. I know my limitations (vomit in a bag would smell better than trolling through W3C specifications in my world). I&#8217;m just a little worried about having a versionless live document as a W3C specification because versioning is a fundamental principle of software engineering. Would you like PHP to take that route, or C++ or Ruby or practically anything else you can think of in software? A versionless Photoshop? A versionless operating system?</p>
<p>Not to mention the overall ambiguity of trying to jump on the marketing buzzword of HTML5 as though it can be captured for all time. Buzzwords fade&#8230; Ajax became a dirty word in conversations simply because buzzwords don&#8217;t mean the same thing in everybody&#8217;s mind and can&#8217;t be captured in neat little jars like butterflies. At least Web Standards meant something&#8230; and if that lost efficiency due to it becoming a buzzword then at least the Open Web Platform is what it says it is &#8211; a spade that is indeed a spade.</p>
<p><span id="more-7048"></span></p>
<p>Its only my opinion but I think the problem is that HTML5 could not contain itself due to the idea that it could be all things to all people through a Utopian democratic approach via a benevolent dictator. The more you offer a greedy child the more they will ask for and expect &#8211; which is why HTML5 (HTML) will never be complete. Which is why HTML5 (HTML) has to remain a live document &#8211; the alternative would be to say ENOUGH and draw a line across the pages of Hixie&#8217;s Empire with a timestamp for approval. And in Hixie&#8217;s Empire that was no alternative&#8230; all dictators are benevolent until you try to resist.</p>
<p>So that left the term HTML5 hanging in the wind&#8230; the pennant of the Empire. The pennant that had been so maligned by marketers over the last few years that it came to mean nothing much at all. &#8220;Here&#8217;s your HTML5 hotdog, sir, and could I run you a HTML5 bath in HTML5 water&#8221;? OK I&#8217;m labouring my point.</p>
<p>HTML5, the marketing buzzword, suddenly becomes the official stance of the W3C and the Empire&#8217;s benevolant dictator. The pennant flies&#8230; all hail the benevolent dictator.</p>
<p>You might think what is happening makes perfect sense. I don&#8217;t. My opinion is that the flaw of HTML5 isn&#8217;t that it doesn&#8217;t end&#8230; that&#8217;s a symptom of a problem. The flaw is that a never-ending democratic process is a crap way to do complex things. Versioning documentation is important to software. Badging everything up in a marketing buzzword that&#8217;s past its used-by-date is counter-productive.</p>
<p>All hail the benevolent dictator. And those who bow with right knee to the ground are either soldiors or the afraid. Yep, that&#8217;s what I think. It will be so because Hixie told you&#8230; you will like it because you must. That grit in your eye will sting for a moment but you&#8217;ll be back on parade before the bell tolls. HTML5 (HTML) my arse. And don&#8217;t get me started on that HTML5 logo / tshirt campaign (my arse has its limitations without that same vindaloo).</p>
<p><img src="http://stevenclark.com.au/wp-content/uploads/2011/01/snoop.jpg" alt="Snoopy and Donkey plastic figurines" title="Snoopy and Donkey plastic figurines" /></p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2011/01/21/html5-is-html-and-html5-means-open-web-platform-web-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Books are on my Office Bookshelf?</title>
		<link>http://stevenclark.com.au/2010/02/17/what-books-are-on-my-bookshelf/</link>
		<comments>http://stevenclark.com.au/2010/02/17/what-books-are-on-my-bookshelf/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 03:52:31 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[legal]]></category>
		<category><![CDATA[novels]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=5127</guid>
		<description><![CDATA[Here&#8217;s an interesting question and I&#8217;m sure its going to rivet everybody to their office chairs&#8230; what books are on my office bookshelf? Only the candid reporting of actual facts will be enough to assuage the curiosity of other information addicts. Just remember, information addiction is not a crime &#8211; its an illness. Treat us [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an interesting question and I&#8217;m sure its going to rivet everybody to their office chairs&#8230; what books are on my office bookshelf? Only the candid reporting of actual facts will be enough to assuage the curiosity of other information addicts. Just remember, information addiction is not a crime &#8211; its an illness. Treat us nicely.</p>
<h3>Text Books &#8211; Management</h3>
<ul>
<li><strong>Fundamentals of Management</strong> (Pacific Rim Edition) by Danny Samson and Richard L. Daft</li>
<li><strong>International Business: Managing in the Asia-Pacific</strong> (3rd Edition) by Greg Fisher et. al.</li>
<li><strong>Strategic Management: Competitiveness &#038; Globalisation</strong> (Asia Pacific Third Edition) by Hanson et. al.</li>
<li><strong>Cold Steel: Lakshmi Mittal and the Multi-Billion-Dollar Battle for a Global Empire</strong> by Tim Bouquet and Byron Ousey</li>
<li><strong>Managers and the Law: A Guide for Business Decision Makers</strong> by Lynden Griggs, Eugene Clark and Ian Iredale</li>
<li><strong>Essential Foundations of Economics</strong> (4th Edition) by Robin Bade and Michael Parkin</li>
<li><strong>Accounting 4: An Introduction</strong> by Atrill et. al.</li>
<li><strong>Principles of Managerial Finance</strong> by Gitman, Juchau and Flanagan</li>
<li><strong>Organisational Behaviour on the Pacific Rim</strong> (2nd Edition) by Steven McShane and Tony Travaglione</li>
<li><strong>Organisational Behaviour</strong> (5th Edition) by Robbins et. al.</li>
<li><strong>Marketing Principles &#038; Best Practices 3e</strong> (International Student Edition) by Hoffman et. al.</li>
<li><strong>Internet Marketing: Strategy, Implementation and Practice</strong> by Dave Chaffey et. al.</li>
<li><strong>Human Resource Management: Strategies and Processes</strong> (5th Edition) by Alan Nankervis, Robert Compton and Marian Baird</li>
<li><strong>Writing for Journalists</strong> (2nd Edition) by Wynford Hicks et. al.</li>
<li><strong>Editing Made Easy</strong> by Bruce Kaplan</li>
</ul>
<p><span id="more-5127"></span></p>
<h3>Text Books &#8211; Computing</h3>
<ul>
<li><strong>Artificial Intelligence: Structures and Strategies for Complex Problem Solving</strong> by George F. Fluger</li>
<li><strong>Operating System Concepts</strong> (7th Edition) by Silberschatz, Galvin and Gagne</li>
<li><strong>Your UNIX: The Ultimate Guide</strong> (2nd Edition) by Sumitabha Das</li>
<li><strong>Data Communications and Networking</strong> (4th Edition) by Behrouz A. Forouzan</li>
<li><strong>PHP and MySQL Web Development</strong> (2nd Edition) by Luke Welling and Laura Thomson</li>
<li><strong>Java Software Solutions: Foundations of Program Design</strong> (3rd Edition) by Lewis &#038; Loftus</li>
<li><strong>Data Abstraction and Problem Solving with JAVA: Walls and Mirrors</strong> (International Edition) by Frank M. Carrano and Janet J. Prichard</li>
<li><strong>Data Structures and Algorithm Analysis in C</strong> (2nd Edition) by Mark Allen Weiss</li>
<li><strong>Object-Oriented Software Engineering: Using UML, Patterns and Java</strong> (2nd Edition) by Bernd Bruegge and Allen H. Dutoit</li>
<li><strong>The C Programming Language</strong> (2nd Edition) by Brian W. Kernighan and Dennis M. Ritchie</li>
<li><strong>Computer Confluence: Exploring Tomorrow&#8217;s Technology</strong> (IT Edition) by George Beekman and Eugene J. Rathswohl</li>
</ul>
<h3>Text Books &#8211; Not Mine (But Read)</h3>
<ul>
<li><strong>Management Information Systems: Managing the Digital Firm</strong> (International Edition) by Kenneth C. Laudon and Jane P. Laudon</li>
<li><strong>Electronic Commerce: A Managerial Perspective 2006</strong> by Efraim Turban et. al.</li>
</ul>
<h3>Non-Fiction Purchases (Web Development)</h3>
<ul>
<li><strong>Designing with Web Standards</strong> by Jeffrey Zeldman</li>
<li><strong>The Zen of CSS Design</strong> by Dave Shea and Molly E. Holzschlag</li>
<li><strong>Transcending CSS: The Fine Art of Web Design</strong> by Andy Clarke</li>
<li><strong>Bulletproof Ajax</strong> by Jeremy Keith</li>
<li><strong>DOM Scripting: Web Design with JavaScript and the Document Object Model</strong> by Jeremy Keith</li>
<li><strong>DHTML Utopia: Modern Web Design Using JavaScript and DOM</strong> by Stuart Langridge</li>
<li><strong>The PHP Anthology: 101 Essential Tips, Tricks &#038; Hacks</strong> by Davey Shafik et. al.</li>
<li><strong>Core MySQL: The Serious Developer&#8217;s Guide</strong> by Leon Atkinson</li>
</ul>
<h3>Non-Fiction Purchases (Other)</h3>
<ul>
<li><strong>Sketching User Experiences: Getting the Design Right and the Right Design</strong> by Bill Buxton</li>
<li><strong>Here Comes Everybody: The Power of Organizing without Organizations</strong> by Clay Shirky</li>
<li><strong>Monkeyluv: And Other Stories on our Lives as Animals</strong> by Robert M. Sapolsky</li>
<li><strong>Confessions of an Eco-Sinner: Tracking Down the Sources of My Stuff</strong> by Fred Pearce</li>
<li><strong>What the Dog Saw: And Other Adventures</strong> by Malcolm Gladwell</li>
<li><strong>Outliers: The Story of Success</strong> by Malcolm Gladwell</li>
<li><strong>The Limits of Power: The End of American Exceptionalism</strong> by Andrew J. Bacevich</li>
<li><strong>The Accidental Guerrilla: Fighting Small Wars in the Midst of a Big One</strong> by David Kilcullen</li>
<li><strong>No Standing Only Dancing: Photographs by Rennie Ellis</strong>, National Gallery of Victoria</li>
<li><strong>Impossible Nature: The Art of Jon McCormack</strong> by Jon McCormack et. al.</li>
<li><strong>The Fabulist: The Incredible Story of Louis De Rougemont</strong> by Rod Howard</li>
</ul>
<h3>Electronic</h3>
<ul>
<li><strong>Blue Planet Run: The Race to Provide Safe Drinking Water to the World</strong> by Rick Smolan and Jennifer Erwitt</li>
<li><strong>The Public Domain: Enclosing the Commons of the Mind</strong> by James Boyle</li>
<li><strong>Remix</strong> by Lawrence Lessig</li>
<li><strong>The Future of Ideas</strong> by Lawrence Lessig</li>
<li><strong>Code: version 2.0</strong> by Lawrence Lessig</li>
<li><strong>Web Form Design: Filling in the Blanks</strong> by Luke Wroblewski</li>
<li><strong>Mental Models: Aligning Design Strategy with Human Behaviour</strong> by Indi Young</li>
<li><strong>Build Your Own Ruby on Rails Web Applications</strong> by Patrick Lenz</li>
<li><strong>The Art and Science of CSS</strong> by Cameron Adams et. al.</li>
<li><strong>The Principles of Successful Freelancing</strong> by Miles Burke</li>
<li><strong>How to Make a Book</strong> by the Blurberati</li>
<li><strong>Street Photography for the Purist</strong> by Chris Weeks</li>
<li><strong>The Photoshop Anthology: 101 Web Design Tips, Tricks and Techniques</strong> by Corrie Haffly</li>
<li><strong>Tribes: We Need You to Lead Us</strong> by Seth Godin</li>
<li><strong>The Dip</strong> by Seth Godin</li>
<li><strong>99 Cows</strong> by Seth Godin</li>
<li><strong>Bootstrapper&#8217;s Bible</strong> by Seth Godin</li>
<li><strong>Unleashing the Idea Virus</strong> by Seth Godin</li>
</ul>
<h3>Fiction</h3>
<ul>
<li><strong>The Collectors</strong> by David Baldacci</li>
<li><strong>Hannibal Rising</strong> by Thomas Harris</li>
<li><strong>A Most Wanted Man</strong> by John LeCarre</li>
<li><strong>All the Colours of Darkness</strong> by Peter Robinson</li>
<li><strong>Red Rabbit</strong> by Tom Clancy</li>
<li><strong>The DaVinci Code</strong> by Dan Brown</li>
<li><strong>Velocity</strong> by Dean Koontz</li>
<li><strong>The Darkest Evening of the Year</strong> by Dean Koontz</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2010/02/17/what-books-are-on-my-bookshelf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web Security and Ways to Fix It</title>
		<link>http://stevenclark.com.au/2010/01/15/web-security-and-ways-to-fix-it/</link>
		<comments>http://stevenclark.com.au/2010/01/15/web-security-and-ways-to-fix-it/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 21:31:15 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=4817</guid>
		<description><![CDATA[One issue that almost always crops up in web development work is the appreciation for web security. It&#8217;s probably what defines a good team from a bad team along a continuum from ignoring the security specialist to having complete faith in their advice. The first take-away from Christian Heilmann&#8217;s article on Smashing Magazine titled Web [...]]]></description>
			<content:encoded><![CDATA[<p>One issue that almost always crops up in web development work is the appreciation for web security. It&#8217;s probably what defines a good team from a bad team along a continuum from ignoring the security specialist to having complete faith in their advice.</p>
<p>The first take-away from Christian Heilmann&#8217;s article on Smashing Magazine titled <a href="http://www.smashingmagazine.com/2010/01/14/web-security-primer-are-you-part-of-the-problem/">Web Security: Are You Part of the Problem?</a> is that you need to make sure at least one member of your team is up to speed. Everybody else needs to appreciate the importance of what that person tells them.</p>
<p>The second take-away is that no matter how much the world looks like a rosy cake of graphic design skills in our industry, it isn&#8217;t. Its in the marrying of good interface design, graphic design, business acumen and coding skills that make a good website. Unfortunately we&#8217;re in a world that tends to judge almost entirely on the superficial 6 seconds after the user arrives on a website &#8211; how does it look trumps is it secure? In other words, there is always pressure to make things look good but nobody pressures about writing better code until after you&#8217;re butt-shovelled by a Russian spamster or three.</p>
<p>And the third take-away from Christian in this article is to trust nothing &#8211; all data needs sanitising before you use it &#8211; and that URIs should be treated with similar mistrust. This is where the crappy web person is vastly different from the great web person if you&#8217;re out there hiring, employing or getting hold of a freelancer&#8230; the crappy person being the one who comes out with phrases like <em>but it works, doesn&#8217;t it</em>? How often have you heard that smidgen of cop-out?</p>
<p>Seriously, when it comes to your business and the web professional then you need to know up front before everybody&#8217;s credit card information is compromised that <em>the web solution more than works, it works effectively</em>. Securely.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2010/01/15/web-security-and-ways-to-fix-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evolutionary Standardistas</title>
		<link>http://stevenclark.com.au/2009/04/24/evolutionary-standardistas/</link>
		<comments>http://stevenclark.com.au/2009/04/24/evolutionary-standardistas/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 09:48:14 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=2665</guid>
		<description><![CDATA[Do you remember when you discovered the awesomeness of creating web pages? For me it was about six years ago and my first foray with the web was The Idiots Guide to Creating Web Pages &#8211; ewww, too right. It was about the time I enrolled in a Bachelor of Computing at university, and I&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>Do you remember when you discovered the awesomeness of creating web pages? For me it was about six years ago and my first foray with the web was The Idiots Guide to Creating Web Pages &#8211; ewww, too right. It was about the time I enrolled in a Bachelor of Computing at university, and I&#8217;d also enrolled in a Certificate 4 in Website Design at TAFE College. The teacher of that course, Mike Marinos, was a <a href="http://www.alistapart.com/articles/alphabet">Web Standardista</a>.</p>
<p>So my discovery of Web Standards was spoon fed from Mike through exposure to a huge number of resources that espoused a radical and unpopular theory &#8211; web pages should be quality products. While the web is a robust medium it doesn&#8217;t mean we should just create any old crap that works; we were all talking scientifically and justifying the business case (yes, I got caught up in it quite fast).</p>
<p>With revolution comes a certain passion. Web Standardistas seem to start out with a devout dogmatic passion of the inquisition to drag down and burn all the non-conforming everybody they can get there hands on. Right answers and wrong answers are black and white in that stage of the (R)evolution. I think we can all see a cringe-worthy moment from our past in that picture. At some point we commented on someone&#8217;s website telling them they were crap at their job. In fact, I&#8217;ve had a smattering of faymus web standards names tell me over the years, here and on other incarnations of this blog, that I&#8217;m a dumb anti-christ fucker upper of HTML and other sundry technologies&#8230; for example, John Oxton of the <a href="http://therissingtonpodcast.co.uk">Rissington Podcast</a> simply commented that the site was fucked. Brilliant. Take a lollypop and fuck off home, I guess&#8230; oh those were joyous times&#8230;</p>
<p><span id="more-2665"></span></p>
<p>The next step of the evolution of a Standardista comes with a realisation of the true depth of the issues. There isn&#8217;t one way to do something in every situation. At this point it&#8217;s apparent that while we&#8217;re trying so hard to be perfect, and we actually know how to write <a href="http://www.456bereastreet.com/archive/200711/posh_plain_old_semantic_html/">POSH</a> (Plain Old Semantic HTML) markup, there&#8217;s always something in our work that falls short of the ideal. Compromise exists. In our criticisms we move from the words <em>must not ever</em> to the words <em>should not if possible</em>.</p>
<p>The next step again in the evolution of a Standardista is maturation, the pragmatic stage. It&#8217;s a little less passionate. It&#8217;s a whole lot more effective. In the maturation stage the objective is to create working solutions within the constraints of real world problems (as opposed to idealic theories) and the medium for this embraces compromise. You simply cannot be all things to all people, and neither can your web application / page / widget / thingey. At this stage you might better appreciate the business case and the goals and objectives in the world of your client.</p>
<p>Another way of looking at these three phases are to replace them with the words &#8216;intolerance&#8217;, &#8216;intelligence&#8217;, and &#8216;creative compromise&#8217;. At stage two you&#8217;re aware of compromise; but at stage three it&#8217;s a part of your determination to be a better web professional. Web Standards aren&#8217;t about any one thing in isolation at the cost of everything else. But they&#8217;re about building web products in the best way possible &#8211; cutting edge professional products.</p>
<p>However, don&#8217;t mistake that third phase for the lack of an ability to provide valid critique and input into the conversation. That&#8217;s another story entirely.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2009/04/24/evolutionary-standardistas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Professional Frontend Engineers</title>
		<link>http://stevenclark.com.au/2009/04/22/professional-frontend-engineers/</link>
		<comments>http://stevenclark.com.au/2009/04/22/professional-frontend-engineers/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 08:01:33 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=2657</guid>
		<description><![CDATA[One issue we always seem to run into as front end web professionals is a lack of understanding from within the industry, and from the external world at large, about what it is we actually do. People generally consider websites as easy to design and produce. But when you think about it for a little [...]]]></description>
			<content:encoded><![CDATA[<p>One issue we always seem to run into as front end web professionals is a lack of understanding from within the industry, and from the external world at large, about what it is we actually do. People generally consider websites as easy to design and produce. But when you think about it for a little time you realise that most people only have the <em>visual interface</em> for assessing what we&#8217;ve done. Even worse, if we&#8217;ve done a good job then the complexity is transparent!</p>
<p>Nate Koechley&#8217;s video explaining <a href="http://video.yahoo.com/watch/4671445/12486762">Professional Frontend Engineering</a> (about 90 minutes) goes a long way to filling in those gaps. I&#8217;d also recommend listening to <a href="http://billbuxton.com/#talk">Bill Buxton</a> speak about Design with a big D and the Design Ecosystem. The very nature of what we&#8217;re employed to do on projects is to minimalise most of those things you would have otherwise stumbled over.</p>
<p>The website you sit down and use is the tip of a very large iceberg, in fact. The better the team below that berg the better your user experience, the faster the rendering, the better the adaptability to other browser environments and platforms. If you don&#8217;t have to think then it&#8217;s probably because frontend engineers (whatever the job tag) considered the technicalities and implemented the solution. And when we&#8217;re really good you won&#8217;t notice our footprint at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2009/04/22/professional-frontend-engineers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daring to be Different at 24ways.org?</title>
		<link>http://stevenclark.com.au/2008/12/09/daring-to-be-different-at-24waysorg/</link>
		<comments>http://stevenclark.com.au/2008/12/09/daring-to-be-different-at-24waysorg/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 23:17:55 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[accessibility]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=1720</guid>
		<description><![CDATA[There isn&#8217;t any doubt that Drew McLellan has a successful website with 24ways.org and I&#8217;ve been a passing fan of Time van Damme&#8217;s Made By Elephant for some time. Tim provided the latest 24ways.org web design that&#8217;s getting discussed heavily in Veerle Pieter&#8217;s comments. So this post should hopefully not be taken as anything other [...]]]></description>
			<content:encoded><![CDATA[<p>There isn&#8217;t any doubt that <a href="http://allinthehead.com/">Drew McLellan</a> has a successful website with <a href="http://24ways.org/">24ways.org</a> and I&#8217;ve been a passing fan of Time van Damme&#8217;s <a href="http://madebyelephant.com/">Made By Elephant</a> for some time. Tim provided the latest 24ways.org web design that&#8217;s getting discussed heavily in <a href="http://www.duoh.com/news/article/do-you-innovate-or-opt-for-the-safe-route-in-web-design/">Veerle Pieter&#8217;s comments</a>. So this post should hopefully not be taken as anything other than respectful regardless of the direction it takes. Because the danger of being different, of searching for design innovation, is always the underlying risk of likes and dislikes in the user community. Being different not only forces us to consider that conventions may be wrong, it also makes us consider whether they were right.</p>
<p>Veerle&#8217;s post in defence of 24ways.org&#8217;s design innovation definately comes from the graphic designer as is clear from her comment reply regarding usability. I&#8217;d put forward tentatively that just because something is accessible doesn&#8217;t mean it can&#8217;t be beautiful, and the same should apply to usability. When we step beyond the user&#8217;s importance to weigh in with our trump card of design as art &#8211; that&#8217;s a particular kind of design arrogance. But that&#8217;s another discussion entirely, so back to 24ways.org.</p>
<p>The problem is that in the great web tradition of trolling and flaming the comments about the redesign are often acutely negative. Part of the relationship between a popular site and high traffic will mathematically transpose to a higher number of negative comments, right? Well, sort of. The problem is that rather than critique, which very few of us are professionally trained to provide, we give opinion. As time short as we are that opinion can be reduced to a series of caveman grunts &#8211; don&#8217;t like, is shit, pull in your head. Personally, I&#8217;d consider just pulling those out in moderation simply because they don&#8217;t add to the conversation &#8211; water off a ducks back. But Veerle has a valid point, we ask for innovation but bowl anyone over in an instant who dares move outside the conformist circle (remind me tomorrow to do my graphic design post, by the way &#8211; I have similar issues with a lot of graphic design).</p>
<p><span id="more-1720"></span></p>
<p>Personally I find the current design of 24ways.org difficult to use because it&#8217;s hard to read. There seems to be some disconcerting level of grey overlay that is purposefully trying to make my life more difficult. Usability, from my user perspective, is more important than beauty. After all, it&#8217;s an information site.</p>
<p>So let&#8217;s cut to the chase. What makes a successful website? Accessibility? Usability? Beauty? Functionality? Is it the slickness of the commenting system? Rather than criticism of the design I&#8217;d be interested in the statistical results and how those results meet the business case. Because web sites aren&#8217;t artistic silos, they&#8217;re business solutions to business problems. Does it make money? Does it meet it&#8217;s goals?</p>
<p>The criteria for 24ways.org would be reasonably simple. Has traffic increased or decreased this year? Are users staying to read the articles or bailing out? Next, ask yourself what is the purpose of 24ways.org &#8211; disemmination of contemporary best practice information? Is it about raising the profile of the website itself?</p>
<p>I&#8217;d suspect I&#8217;m far from the only person who finds the interface difficult to negotiate. But I&#8217;d have to concede that from a business perspective as long as the statistics are supporting this year&#8217;s design and the information is being effectively spread throughout the designer / developer community then it&#8217;s meeting those underlying goals. And, oddly enough, the controversy around the design itself can be (although a risky strategy) enough to raise the profile of 24ways.org to reach more of our industry radars. It&#8217;s better to be talked about than not mentioned at all. Right? So without knowing the brief it&#8217;s a bit hard to see if Tim&#8217;s met it &#8211; or pushed convention too far.</p>
<p>It&#8217;s always a little dangerous when the user is placed behind the importance of the graphic design. If that weren&#8217;t the case we&#8217;d be praising small grey on grey text along with mystery meat navigation, we&#8217;d have animated gifs and blinking text &#8211; try to read that man! Cool. But I think 24ways.org is a little more sophisticated than that.</p>
<p>The short answer to Veerle&#8217;s post would be that I agree, trolling and flaming are an industry bore. But it&#8217;s the web in a nutshell. Anonymity breeds a prolific audio-vomit we don&#8217;t meet in regular life. Delete those comments that don&#8217;t contribute critique, and move on. However, the design consciously impacts my ability and desire to read the articles. The page has been open on a Firefox tab for a week and I haven&#8217;t completely read a single one. That might not be so good a sign that it&#8217;s a great redesign.</p>
<p>At the end of the day market forces will determine the business answers to 24ways.org. They&#8217;ll survive for another year, the content ensures it. But for a lot of people expecting best practices it might eat at the street cred. That&#8217;s the innovator&#8217;s risk.</p>
<p><img src="http://stevenclark.com.au/wp-content/uploads/2008/12/24.jpg" alt="24ways.org" title="24ways.org" /></p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2008/12/09/daring-to-be-different-at-24waysorg/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Progressive Enhancement with JavaScript</title>
		<link>http://stevenclark.com.au/2008/11/05/progressive-enhancement-with-javascript/</link>
		<comments>http://stevenclark.com.au/2008/11/05/progressive-enhancement-with-javascript/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 06:48:54 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[business]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/?p=1289</guid>
		<description><![CDATA[In this month&#8217;s A List Apart Aaron Gustafson concluded his trilogy of posts about progressive enhancement techniques. His first installment was Understanding Progressive Enhancement (issue no. 269) where he discussed the subtle difference between progressive enhancement and graceful degradation with the diagramatic analogy of the separation of layers (content, presentation and client-side scripting) as a [...]]]></description>
			<content:encoded><![CDATA[<p>In this month&#8217;s A List Apart Aaron Gustafson concluded his trilogy of posts about progressive enhancement techniques. His first installment was <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement">Understanding Progressive Enhancement</a> (issue no. 269) where he discussed the subtle difference between progressive enhancement and graceful degradation with the diagramatic analogy of the separation of layers (content, presentation and client-side scripting) as a peanut M&amp;M. In his second installment <a href="http://www.alistapart.com/articles/progressiveenhancementwithcss">Progressive Enhancment with CSS</a> (issue no. 270) Aaron explained how to organise your stylesheets and how to deal with Internet Explorer 6.</p>
<p><a href="http://alistapart.com/articles/progressiveenhancementwithjavascript">Progressive Enhancement with JavaScript</a> (issue No. 271) explains the intelligent approach to including JavaScript in your work. Not as a fix all kludge but as something which gracefully enhances your website for users who have the browser support while not impacting those users with outdated browsers. He briefly explains the basic strategy of placing your JavaScript into external files and writing <a href="http://www.onlinetools.org/articles/unobtrusivejavascript/">unobtrusively</a>, as well as the need for maintaining style separation.</p>
<p>In nearly every experience on teams where I&#8217;ve been involved, or even entered the conversation, these concepts have failed to be fully grasped. And they need to be grasped. Managers need to ditch the myth of pixel perfection across browsers and devices in favour of setting an acceptable baseline that enables users to access websites, then provide progressively enhanced features that can improve the experience for those with browsers that can handle it. The trick is ensuring that data is available at the baseline level rather than writing it in with your scripts. Does the baseline case work? Does it work without throwing errors?</p>
<p><span id="more-1289"></span></p>
<p>Because used wisely and proficiently JavaScript is an empowering language for the web development behaviour layer. Used wildly it&#8217;s the bane of users and site maintainers far and wide. The difference between class and arse, so to speak. Excellent series from Aaron that needs to be carved into hardwood and bonked on the heads of certain managers and acedemics repeatedly (with a soft cushion perhaps).</p>
<p>You could understand your website as a scone which by itself and straight out of the oven might be oh so yummy! But you could enhance that with butter if you weren&#8217;t lactose intolerant and jam if you weren&#8217;t diabetic. So you can hand out scones quite freely as your baseline while those with knives and lactose tolerance can enjoy buttered scones and so forth. Does that make sense? As long as everyone gets the scone then you&#8217;ve provided a valuable service. What you need to avoid is depriving a lactose intolerant person of the scone simply because they don&#8217;t have a knife or can&#8217;t swallow the enhancement.</p>
<p>JavaScript, like a gun, doesn&#8217;t set out to harm anyone. The power is in the hand of the JavaScripter to appreciate the technology at hand and use it with discretion.</p>
<p><img title="baseline scone with enabler knife and progressive enhancements of butter and jam" src="http://stevenclark.com.au/wp-content/uploads/2008/11/enabler.jpg" alt="baseline scone with enabler knife and progressive enhancements of butter and jam"  /></p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2008/11/05/progressive-enhancement-with-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Ain&#8217;t Magic, Joe</title>
		<link>http://stevenclark.com.au/2008/09/20/javascript-aint-magic-joe/</link>
		<comments>http://stevenclark.com.au/2008/09/20/javascript-aint-magic-joe/#comments</comments>
		<pubDate>Sat, 20 Sep 2008 00:51:45 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/2008/09/20/javascript-aint-magic-joe/</guid>
		<description><![CDATA[Understanding when to use JavaScript (and when to use something else) is a skill every web designer needs to get a handle on &#8211; and there&#8217;s always that grey area of &#8220;it depends&#8221; where you know the targeted users have the appropriate technology, or the application is such that it could be a reasonable expectation. [...]]]></description>
			<content:encoded><![CDATA[<p>Understanding when to use JavaScript (and when to use something else) is a skill every web designer needs to get a handle on &#8211; and there&#8217;s always that grey area of &#8220;it depends&#8221; where you know the targeted users have the appropriate technology, or the application is such that it could be a reasonable expectation. Those cases aside, JavaScript ain&#8217;t magic, Joe.</p>
<h3>It&#8217;s Our Design Problem</h3>
<p>The key thing to take away from this post is that JavaScript runs on the client side. The server doesn&#8217;t run the script, the client does. That means in most general real world situations you, as a designer, have to consider the wider case of whether or not the user can be expected to have that capability on their machine. Seriously, what if they don&#8217;t have JavaScript enabled (I&#8217;ve heard statistics over the years that this demographic can be as high as 10%). And, if they do have it, what version? This isn&#8217;t just a binary black and white answer &#8211; maybe JavaScript is disabled because of security concerns at their company; maybe they don&#8217;t have the latest version; and, maybe they&#8217;re not in a position to change the state of that paradigm right at that moment. So, you can see that it&#8217;s not their problem &#8211; it&#8217;s our design problem.</p>
<p>It&#8217;s a part of our job to design around constraints and limitations in elegant, intelligent ways.</p>
<p><span id="more-696"></span></p>
<h3>Just Because You Can Do Something&#8230;</h3>
<p>The dumbest thing ever said to me by an academic was this year at an assessment for a 3rd Year Bachelor of Computing unit &#8211; KXT301 Software Engineering Project A. Our code did all the major validation of a contact form in the PHP (Hypertext Preprocessor) on the server side &#8211; we actually used Jeremy Keith&#8217;s <a href="http://domscripting.com/blog/display/41">Hijax</a> technique. However, a 4th Year Honours student invited to contribute to assessing our team&#8217;s work kept asserting to me that all our validations could have been achieved in JavaScript &#8211; WTF? This included checking the MX value, port 25, and anti-spamming checks using regular expressions &#8211; is this a real user with a real email address that is active? He marked our project below a pass mark for his worthy opinion (I still got a High Distinction). Now, when you think about that in the real world do you appreciate that any spamming form hijacker isn&#8217;t going to realise that and just turn off JavaScript? Please tell me that everyone can understand the difference between server side and client side validation&#8230; because that was academic bullshit! But it&#8217;s something we see a lot in real world web development as well &#8211; simply not considering the whole picture.</p>
<p>Just because you can do something with JavaScript doesn&#8217;t mean it&#8217;s the appropriate technology for the task.</p>
<h3>We Have No Control Over the User&#8217;s Environment</h3>
<p>So, JavaScript ain&#8217;t magic. It&#8217;s got a strong role to play in what we do but we have to realise that we have no control over the user&#8217;s hardware / software configuration so a large part of what we do as designers is to work smarter &#8211; we care about these what ifs. We use JavaScript appropriately in the context of the big picture, instead of just saying wow cool this is snappy &#8211; remember the DHTML (Dynamic HTML) crap from a few years ago?</p>
<h3>When Not to Use JavaScript</h3>
<p>The second point then is that JavaScript is also not the magic bullet for some things. Understand the flaws of running code on the user&#8217;s computer instead of the server &#8211; would you use it for a shopping cart on an e-commerce site? No. Would you use it for search on an information site? No. In fact, you&#8217;d be a little naive to use it for anything critical to your site&#8217;s functionality or for security or for processing information like the prices of products in a shopping cart.</p>
<h3>When to Use JavaScript</h3>
<p>So when to use JavaScript? As the behaviour layer of your website it&#8217;s obvious that JavaScript has it&#8217;s place. You can use it wisely to enhance the user experience, you can use it to pre-validate input fields to save unnecessary page refreshes for minor form errors, and you can manipulate the <a href="http://www.w3.org/TR/REC-DOM-Level-1/">DOM</a> (Document Object Model) to do lots of other great things. Just not site critical things. And you should do JavaScript <a href="http://www.onlinetools.org/articles/unobtrusivejavascript/">unobtrusively</a> &#8211; in external stylesheets, without inline event handlers, use object detection before running the script, and do your work via the DOM. Think about the experience for users who don&#8217;t have JavaScript. Consider the broader question of usability &#8211; is this just a swishy navigation enhancement that gets in the way of the user&#8217;s goal, or does it enhance and speed up their progress?</p>
<h3>What About Ajax Applications?</h3>
<p>Yes these have their place. But Ajax (Asynchronous JavaScript and XML) should be used responsibly. If you&#8217;ve got an application where user response times could be slick and you&#8217;ve thought about how to deal with issues like updating the user of page changes, and you&#8217;re aware of the down side &#8211; hey Ajax can be brilliant. But the same rules apply. If you&#8217;re going to use some fancy Ajax widget on your site like a fancy calendar &#8211; the same criteria applies. Usability? Accessiblity? No JavaScript? Wrong version JavaScript? Security? Efficiency? Necessity? And, is there a business case to support it?</p>
<h3>No, It Ain&#8217;t Magic</h3>
<p>Used wisely JavaScript is arguably the most exciting layer we get to work with as front-end web designers. We can use it to create slick, magical experiences OR we can blow our site users away with insecure, unusable rubbish. It&#8217;s our job as designers to understand the difference. The key points are that it&#8217;s run on the users computer (client side), and the flow-on is that we therefore have no control over the environment. For resources on writing great JavaScript and using it wisely the best places to go are:</p>
<ul>
<li>Jeremy Keith on <a href="http://adactio.com/">Adactio</a></li>
<li>Peter Paul Koch on <a href="http://www.quirksmode.org/">Quirksmode</a></li>
<li>Robert Nyman on <a href="http://www.robertnyman.com/">Robert&#8217;s Talk</a></li>
<li>Chris Heilmann on <a href="http://www.wait-till-i.com/">Wait Till I Come!</a></li>
<li>Roger Johansson on <a href="http://www.456bereastreet.com/archive/categories/javascript/">456 Berea Street</a></li>
</ul>
<p>If you start from there with an open mind you&#8217;ll become a JavaScript megastar and a way better designer.</p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2008/09/20/javascript-aint-magic-joe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Accessible Popup Windows (If Coerced)</title>
		<link>http://stevenclark.com.au/2008/08/10/more-accessible-popup-windows-if-coerced/</link>
		<comments>http://stevenclark.com.au/2008/08/10/more-accessible-popup-windows-if-coerced/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 05:44:33 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://stevenclark.com.au/2008/08/10/more-accessible-popup-windows-if-coerced/</guid>
		<description><![CDATA[There&#8217;s something extremely annoying about pop-up windows and yet clients often seem to demand them as though they were the answer to that internal fear users will follow a link and never return. My advice from the beginning is if you have such a link remove it immediately &#8211; problem solved. There&#8217;s a lot to [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s something extremely annoying about pop-up windows and yet clients often seem to demand them as though they were the answer to that internal fear users will follow a link and never return. My advice from the beginning is if you have such a link remove it immediately &#8211; problem solved. There&#8217;s a lot to be said for never linking to sites far more interesting than your own.</p>
<p>In real life this fear just isn&#8217;t founded and the last thing you should be doing is trying to hold your users captive. If they want to leave then let them, for Christ&#8217;s Sake! It&#8217;s repeat visitors and conversions that make a successful site not keeping your window open in some sub-level dungeon on the task bar. You&#8217;ve probably figured already that pop-ups confront users with a back button that isn&#8217;t going to work. And sometimes the window is chromeless. It&#8217;s obtrusive, offends a large number of your users, and will confuse the hell out of sighted users let alone someone using assistive technology. And they should never EVER occur without a warning! OK the rant is over for now so we&#8217;ll carry on (we understand that pop-up windows are <a href="http://www.useit.com/alertbox/990530.html">bad for usability</a> and shitty and considered industry worst practice). About the only thing you should be popping up in a new window is a PDF (Portable Document Format) file in its native application.</p>
<p><span id="more-667"></span></p>
<p>But sometimes you&#8217;re forced with your back against the wall to suck air and implement the suckers! You&#8217;re handed deprecated <code>target="_blank"</code> attributes on external links that smack the users in the forehead [Steven takes forefinger and pokes each reader three or four times firmly on the forehead saying "How do you like that?!"]. Delete all those <code>target="_blank"</code> attributes for a start, its a behaviour not content and you&#8217;ll oneday have to go clean the suckers out of there eventually so now is the best time to do it. They&#8217;re even the most primitive way of achieving popup windows, so get the fuckers out of there now! Begone shite. Don&#8217;t you loathe the way <code>target="_blank"</code> instantly throws up a full sized new window &#8211; Whoa, where the friggen hell am I again? WTF (again)? How about letting me, the user, make the decision about whether or not to open a new window [ranting again!].</p>
<p>OK the torture is getting prolonged here. If coerced into doing this, you need to look at pop-ups as a behaviour layer issue. If it&#8217;s this or <code>target="_blank"</code>. Yes it&#8217;s <a href="http://www.smashingmagazine.com/2007/09/27/10-usability-nightmares-you-should-be-aware-of/">sucky</a>, but at least you can implement them in a sensible way if you&#8217;re ever coerced by the prospect of unemployment. So you&#8217;re looking for an <a href="http://onlinetools.org/articles/unobtrusivejavascript/">Unobtrusive JavaScript</a> solution, not a content solution to achieving your result. The benefit of this is you can at least provide for <a href="http://accessites.org/site/2007/02/graceful-degradation-progressive-enhancement/">graceful degradation</a> (if they don&#8217;t have JavaScript they get a normally functioning link to a new page), window size (definately not full screen) and browser features available to the user (preferably all of the features enabled).</p>
<p>I&#8217;m not sure where exactly this snippet came into my arsenal (mainly because I have hardly ever had a call to use it). But maybe it will come in handy for your coerced situation. There&#8217;s no crime in trying to make an intolerable thing out of an abject bad situation. Name this script popups.js (I should metion this code wasn&#8217;t written by me) and call it from an external file in the head section of your document. Then when you want your external link to open in a new window just include <code>rel="external"</code> as an attribute of the link. In that way, only links you specifically want to open in new windows will do so.</p>
<pre>
<code>function prepareLinks()
{
    if(!document.getElementsByTagName) return false;
    var links = document.getElementsByTagName("a");
        for(var i=0; i&lt;links.length; i++
        {
            if((links[i].getAttribute("rel") == "external") ||
               (links[i].getAttribute("rel") == "pdf"))
           {
                links[i].onclick = function()
               {
                   popUp(this.getAttribute("href"));
                   return false;
              }
          }
    }
}</code>
<code>function popUp(winURL)
{
    window.open(winURL, "external", "width=420,
    status=1,scrollbars=1,toolbar=1,
    location=1,menubar=1,
    directories=1,resizable=1");
}</code></pre>
<p>Roger Johansson has <a href="http://www.456bereastreet.com/archive/200605/using_javascript_instead_of_target_to_open_new_windows/">another script</a> using class instead of rel to trigger the opening of new windows. My preference goes to the rel attribute, but you&#8217;re free to choose. Either way these scripts fall back nicely for non-JavaScript enabled users. So, overlooking the suckiness of having to implement a feature that continuously turns up as one of the 10 biggest web design mistakes, and was identified as long ago as 1999 by Jakob Nielsen as having usability issues &#8211; there you go. You can run along and shoot your foot off with it.</p>
<p>If I recall where I picked this script up I&#8217;ll put a link here, it&#8217;s a rather short list of suspects. Best of luck. And doesn&#8217;t it strike you as odd that since popups have been criticised now for at least 9 years at a high professional level we&#8217;re still having to do this shite? I&#8217;m friggen bowled over. Another WTF moment brought to you by the letter K and the numbers 3, 4 and 25. Exit and run&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://stevenclark.com.au/2008/08/10/more-accessible-popup-windows-if-coerced/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

