<?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>Wekti.com &#124; Tech News and Opinion &#187; JavaScript</title>
	<atom:link href="http://wekti.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://wekti.com</link>
	<description>Geek stuff...</description>
	<lastBuildDate>Mon, 09 Nov 2009 17:15:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>8 Tips to Make Your Web Application Completely Unusuable</title>
		<link>http://wekti.com/2008/06/17/8-tips-to-make-your-application-completely-unusuable/</link>
		<comments>http://wekti.com/2008/06/17/8-tips-to-make-your-application-completely-unusuable/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 02:35:15 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Enterprise Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Product Management]]></category>

		<guid isPermaLink="false">http://wekti.com/?p=34</guid>
		<description><![CDATA[There could be any  number of reasons you&#8217;re looking to build a completely unusable web application: you hate your employer, you enjoy frustrating people, or maybe you just want to make your mark on the world.  The bottom line is: you want to provide basic functionality with your application, but do it in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="border: 1px solid black; margin: 2px; float: right;" src="http://wekti.com/wp-content/uploads/2008/06/hammer2-150x150.jpg" alt="" width="150" height="150" />There could be any  number of reasons you&#8217;re looking to build a completely unusable web application: you hate your employer, you enjoy frustrating people, or maybe you just want to make your mark on the world.  The bottom line is: you want to provide basic functionality with your application, but do it in a way that is confusing, frustrating and downright aggravating to your users.</p>
<p>Whatever your reason may be, here are some important things to remember when building a completely unusable web application.<br />
<span id="more-34"></span></p>
<h1>#8: Use cryptic and inappropriate icons in place of text&#8230; Everywhere.</h1>
<p>One sure-fire way to confuse people is to remove text and replace it with flashy graphics.  Here&#8217;s an example toolbar:</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><img src="http://wekti.com/wp-content/uploads/2008/06/toolbar.png" alt="Toolbar" width="200" height="60" /></p>
<p style="text-align: left;">Care to guess what those icons mean?  From left to right: Save &amp; Quit, Upload, New Data, and Search.</p>
<p><strong>How to do it:</strong></p>
<p>Go to <a href="http://www.iconfinder.net">iconfinder</a> and search for some icons.  Find the least self-descriptive icons possible.  Use them in new and creative ways!</p>
<h1>#7: Disallow the use of the right-click button.</h1>
<p>Let&#8217;s face it: end users can&#8217;t be trusted to do anything right.  They especially can&#8217;t be trusted to use the right-click button. So let&#8217;s start off by disabling that right away.  None of that right-clicking funny business anymore.  Oh, and nevermind that there are hundreds of ways around this, including NoScript for FireFox.  The whole point here is to make an unusable application.</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><img class="aligncenter" style="vertical-align: middle;" src="http://wekti.com/wp-content/uploads/2008/06/no_right_click.png" alt="" width="340" height="133" /></p>
<p><strong>How to do it:</strong></p>
<pre style="padding-left: 30px;">&lt;script&gt;</pre>
<pre style="padding-left: 30px;">&lt;!-- //</pre>
<pre style="padding-left: 30px;">    var msg = "NO RIGHT CLICK ALLOWED BECAUSE WE SAY SO";</pre>
<pre style="padding-left: 30px;">    function BeEvil(a) {</pre>
<pre style="padding-left: 30px;">        if(
((navigator.appName=="Microsoft Internet Explorer")
&amp;&amp;(event.button &gt; 1))
||((navigator.appName=="Netscape")&amp;&amp;(a.which &gt; 1))){</pre>
<pre style="padding-left: 30px;">            alert(msg);</pre>
<pre style="padding-left: 30px;">            return false;</pre>
<pre style="padding-left: 30px;">        }</pre>
<pre style="padding-left: 30px;">    }</pre>
<pre style="padding-left: 30px;">document.onmousedown = BeEvil;</pre>
<pre style="padding-left: 30px;">// --&gt;</pre>
<pre style="padding-left: 30px;">&lt;/script&gt;</pre>
<h1>#6: Make the navigation change constantly and randomly.</h1>
<p>Users will become very comfortable with the navigation in your application if it is located in a predictable spot on the screen and stays uniform.  Mix things up a little!  Change label names, or move the location of navigation depending on where the user is within the application.</p>
<p>The last thing you want is for them to get comfortable!</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><em>Application Screen #1:</em></p>
<p style="text-align: center;"><a href="http://wekti.com/wp-content/uploads/2008/06/navigation_1.png"><img class="size-full wp-image-41" title="navigation_1" src="http://wekti.com/wp-content/uploads/2008/06/navigation_1.png" alt="" width="187" height="132" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;"><em>Application Screen #2:</em></p>
<p style="text-align: center;"><em></em><a href="http://wekti.com/wp-content/uploads/2008/06/navigation_2.png"><img class="aligncenter size-full wp-image-42" title="navigation_2" src="http://wekti.com/wp-content/uploads/2008/06/navigation_2.png" alt="" width="189" height="131" /></a></p>
<p style="text-align: left;"><strong>How to do it:</strong></p>
<p style="text-align: left;">This one will be up to you to figure out.  It depends on what you&#8217;re building your application in.</p>
<p style="text-align: left;">Bonus points: change the title of some areas randomly as well.</p>
<h1>#5: Make the text really, really, ridiculously small.</h1>
<p>Making text readable means that there&#8217;s a chance your users might be able to figure out what you&#8217;re trying to tell them.</p>
<p><strong>Example:</strong></p>
<p><strong></strong><a href="http://wekti.com/wp-content/uploads/2008/06/tiny_font.png"></a></p>
<p style="text-align: center;"><img class="size-full wp-image-39" title="tiny_font" src="http://wekti.com/wp-content/uploads/2008/06/tiny_font.png" alt="" width="240" height="35" /></p>
<p><strong>How to do it:</strong></p>
<p>Use an 8 pixel or lower font, preferably something that will scale reasonably well to the point where the text is nearly readable but not quite.</p>
<pre>&lt;div style="font:7px Verdana"&gt;Do you not want to discard all your
work? Click &lt;b&gt;here&lt;/b&gt; to save.&lt;/div&gt;</pre>
<p>Bonus points: keep the DIV exactly as specified, such that clicking doesn&#8217;t actually do anything.</p>
<h1>#4: Use FRAMESETs and IFRAMEs: Add more scrollbars.  A lot more scrollbars.</h1>
<p>Why bother having the user view different pages, or even just use the built-in scrollbar functionality of the browser?  What any good non-usable application needs is more scrollbars to really put it over the top.</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><a href="http://wekti.com/wp-content/uploads/2008/06/scrollbars.png"><img class="size-full wp-image-40" title="scrollbars" src="http://wekti.com/wp-content/uploads/2008/06/scrollbars.png" alt="" width="232" height="192" /></a></p>
<p><strong>How to do it:</strong></p>
<p>Using an IFRAME with a size smaller than the actual content plus requiring scrollbars will insure that you get the recommended dosage of scrollbars for your unusable application.  Assuming your IFRAME source content is called &#8220;iframe.html&#8221;, the correct usage would be:</p>
<pre>&lt;iframe src="iframe.html" width=180 height=150 scrollbars=yes&gt;
&lt;/iframe&gt;</pre>
<h1>#3: Disregard all common sense about colors.</h1>
<p>Feel free to use really random and odd color schemes, like orange text on a red background, or yellow text on a green background.  This will help to obscure important messages, and generally make sure that the user will not read what the application is trying to tell them.</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><a href="http://wekti.com/wp-content/uploads/2008/06/bad_colors.png"><img class="size-full wp-image-43" title="bad_colors" src="http://wekti.com/wp-content/uploads/2008/06/bad_colors.png" alt="" width="141" height="147" /></a></p>
<p><strong>How to do it:</strong></p>
<p>&lt;div style=&#8221;<strong>color:#bbbb00;background:#ff0000;font:bold 12px Verdana;width:100px;height:30px</strong>&#8220;&gt;Warning: records not saved&lt;/div&gt;<br />
&lt;br/&gt;<br />
&lt;div style=&#8221;<strong>color:#efef00;background:#00ff00;font:bold 12px Verdana;width:100px;height:30px</strong>&#8220;&gt;Cannot input a value larger than 3&lt;/div&gt;</p>
<h1>#2: Sadistic use of AJAX: update parts of the page that are out of view.</h1>
<p>Make sure to have some actions in the application update areas of the screen that are out of view of the user.  This is particularly interesting when combined with the #3 tip about adding more scrollbars.  This gives the &#8220;feel&#8221; that the application is broken, since the user is clicking on it but nothing is happening.  This also gives you the chance to tell the users how ignorant they are not to notice that the information they are looking for is available right on the screen if they come to complain to you later.</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><a href="http://wekti.com/wp-content/uploads/2008/06/evil_ajax1.png"><img class="size-full wp-image-45" title="evil_ajax1" src="http://wekti.com/wp-content/uploads/2008/06/evil_ajax1.png" alt="" width="400" height="542" /></a></p>
<p><strong>How to do it:</strong></p>
<p>You can use whatever AJAX framework you like.  See the post earlier about <a href="http://wekti.com/2008/06/12/5-great-opensource-javascript-libraries/">useful JavaScript libraries</a> for more details.  Prototype is my personal favorite.</p>
<h1>#1: Reverse the order of OK and Cancel.</h1>
<p>Users are so accustomed to seeing the order of confirm and cancel buttons, they don&#8217;t even read them anymore.  Building an unusable web application is a good way to teach your users a lesson about reading the buttons before pressing anything.  Reversing dialog buttons, especially Confirm and Cancel (or OK and Cancel) is an especially easy way to make your application unusable AND teach your users a lesson in reading comprehension.</p>
<p>Tip: make sure to make the buttons equal size as well.  This will help prevent people from reading.</p>
<p><strong>Example:</strong></p>
<p style="text-align: center;"><a href="http://wekti.com/wp-content/uploads/2008/06/save_dialog.png"><img class="size-full wp-image-46" title="save_dialog" src="http://wekti.com/wp-content/uploads/2008/06/save_dialog.png" alt="" width="256" height="82" /></a></p>
<p><strong>How to do it:</strong></p>
<p>Here&#8217;s a sample form that was used to create the dialog above.  Note the use of the same-sized buttons and similar sized text.</p>
<p>&lt;form method=&#8221;post&#8221; action=&#8221;/save&#8221;&gt;<br />
&lt;b&gt;Save this important data?&lt;/b&gt;<br />
&lt;br/&gt;&lt;br/&gt;<br />
&lt;input type=&#8221;submit&#8221; name=&#8221;confirm&#8221; value=&#8221;Cancel&#8221; <strong>style=&#8221;width:100px&#8221;</strong>&gt;<br />
&lt;input type=&#8221;submit&#8221; name=&#8221;confirm&#8221; value=&#8221;Save&#8221; <strong>style=&#8221;width:100px&#8221;</strong>&gt;<br />
&lt;/form&gt;</p>
<h1>Conclusion</h1>
<p>Obviously this is just a guide to get you started in the right direction towards building an unusable application.  But remembering these tips next time you embark on your journey of building  unusable software will help make sure that you don&#8217;t accidentally build something that&#8217;s actually usable.</p>
<p>Know of something that should be on this list?  Let me know in the comments!</p>
<p style="text-align: right;"><em>Hammer picture courtesy of <strong><a title="User:Malene" href="http://commons.wikimedia.org/wiki/User:Malene">Malene Thyssen</a>.</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://wekti.com/2008/06/17/8-tips-to-make-your-application-completely-unusuable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>5 Great OpenSource JavaScript Libraries That&#8217;ll Make Your Life Easier</title>
		<link>http://wekti.com/2008/06/12/5-great-opensource-javascript-libraries/</link>
		<comments>http://wekti.com/2008/06/12/5-great-opensource-javascript-libraries/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 02:06:29 +0000</pubDate>
		<dc:creator>Steve</dc:creator>
				<category><![CDATA[Consumer Web]]></category>
		<category><![CDATA[Enterprise Web]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://wekti.com/?p=28</guid>
		<description><![CDATA[If you&#8217;ve been developing any web application over the last few years, it&#8217;s likely that you may have already heard of at least one, if not all of these JavaScript frameworks.  But if not, you may want to look into these in particular to help make your web application UI development quicker and much [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been developing any web application over the last few years, it&#8217;s likely that you may have already heard of at least one, if not all of these JavaScript frameworks.  But if not, you may want to look into these in particular to help make your web application UI development quicker and much easier.</p>
<p><span id="more-28"></span></p>
<h2><strong>#1: script.aculo.us</strong></h2>
<p>Need to add some nice looking animations to your user interface, but don&#8217;t want to resort to using Flash for animations?  Script.aculo.us offers a wide range of very clean looking animations that you can apply to any image, form element, or HTML entity.</p>
<p><strong>Site:</strong> <a href="http://script.aculo.us/">script.aculo.us</a></p>
<h2>#2: Prototype</h2>
<p>Prototype&#8217;s best feature is its AJAX capabilities.  Prototype makes building AJAX-style applications much, much easier.  It also features: enhancements to JavaScript arrays, a JavaScript class builder, simple methods for manipulating HTML elements, and more.</p>
<p><strong>Site:</strong> <a href="http://prototypejs.org/">prototype</a></p>
<h2>#3: Dojo Toolkit</h2>
<p>Dojo has nearly everything you could want: draggable windows, form controls, a rich text editor, progress bars and more.  Extremely simple, fairly lightweight, and reliable across all major browser versions.  Dojo is simply a must for anyone looking for an end-all be-all JavaScript UI framework.</p>
<p><strong>Site:</strong> <a href="http://dojotoolkit.org/">Dojo</a></p>
<h2>#4: jQuery</h2>
<p>As with all the frameworks mentioned on this list, jQuery provides many JavaScript classes for building and handling AJAX events and parsing JSON, as well as many UI effects that can really improve the overall look and usability of your web application.  jQuery is a tad bit smaller than some (like Dojo and yui), and also has a fairly straightforward interop story with prototype.</p>
<p><strong>Site:</strong> <a href="http://jquery.com/">jquery</a></p>
<h2>#5: Yahoo&#8217;s yui</h2>
<p>Yahoo has made their entire user interface library completely open to web developers for both commercial and non-commercial use.  yui is by far the most complete JavaScript library available, with functions for everything from creating draggable pop-up windows to handling AJAX events and manipulating DOM elements.  yui does tend to end up giving your applications a distinct &#8220;built by Yahoo&#8221; feel, though, so there is a bit of a trade-off. <img src='http://wekti.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Site: </strong><a href="http://developer.yahoo.com/yui/">yui</a></p>
<p>Know of a JavaScript UI/AJAX library I should&#8217;ve included on this list?  Let me know in the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://wekti.com/2008/06/12/5-great-opensource-javascript-libraries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

