<?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>Abeon Tech &#187; Tips</title>
	<atom:link href="http://abeontech.com/tag/tips/feed" rel="self" type="application/rss+xml" />
	<link>http://abeontech.com</link>
	<description>Abeon Techs Geeky blog for Coders, Gamers, Webmasters and Tech Addicts!</description>
	<lastBuildDate>Thu, 28 Jul 2011 18:50:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SEO and Keyword density</title>
		<link>http://abeontech.com/420-webdesign-seo-and-keyword-density</link>
		<comments>http://abeontech.com/420-webdesign-seo-and-keyword-density#comments</comments>
		<pubDate>Sat, 27 Nov 2010 14:36:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://abeontech.com/?p=420</guid>
		<description><![CDATA[Website Search Engine Optimization (generally shortened to <abbr title="Search Engine Optimization">SEO</abbr>) and attaining your desired search engine placement usually relies heavily on a sound keyword strategy.
A website's success, or lack thereof, can be determined on choosing good keywords.
This article details some important information and common mistakes to consider while opimizing your website for search engines]]></description>
			<content:encoded><![CDATA[<p>Website Search Engine Optimization (generally shortened to <abbr title="Search Engine Optimization">SEO</abbr>) and attaining your desired search engine placement usually relies heavily on a sound keyword strategy.<br />
A website&#8217;s success, or lack thereof, can be determined on choosing good keywords.<br />
This article details some important information and common mistakes to consider while opimizing your website for search engines.. <span id="more-420"></span></p>
<p>Author’s Bio: Jeffrey Gross is an Search Engine Optimization (SEO) Enthusiast who lives on Long Island, NY. Jeff&#8217;s <a href="http://www.nPromote.com">SEO Company</a> (nPromote) helps Long Island business owners (and business owners across the country) get their businesses to the top of the search engines. In his spare time Jeff teaches Search Engine<br />
Optimization to small business owners and enjoys lecturing at local colleges and other venues as well.</p>
<p>Anyone with a blog, website, or who has even just been on the internet is likely aware that the way search engines like Google determine where a website will show up involves search engine optimization, or SEO.</p>
<p>There is however quite a bit of misinformation surrounding the relatively new field of SEO, and the web is flush with hacks, cons, and just bad practitioners of search engine optimization.</p>
<p>Perhaps the biggest misnomer is that simply spamming a word within the copy on your page will help you rank higher – it will not. And in fact if Google or other search engines find that the word being spammed is not relevant to the info on the page, there is a chance it could be &#8220;blacklisted&#8221; by these search engines. This, along with the fact that writing for search<br />
engines, instead of the people who will be reading your page (hopefully) just makes it sound horrible, is good reason to really learn a bit more about the field and how to balance your search optimization with content readers will actually be interested in and enjoy reading.</p>
<p>When optimizing the content on a page (not the Meta tags and backlinks &#8211; that is another story) there are 3 primary concerns:</p>
<ol>
<li> SEPS Keyword density – There can be several keywords. And your copy should not be too dense with keywords. It should fall within a percent of total content. Usually between 2-4%.</li>
<li> Main Theme Keyword Density – This is your one main keyword, and should be between 1-3%.</li>
<li> Main Keyword Prominence – This is where in the text the keyword appears, usually somewhere toward the beginning or in the title, and toward the end.</li>
</ol>
<p>Too really get your page top rankings, there are a number of more technical tricks available, and usually you would need to hire someone who specializes in the field to get the most out of your SEO. The real trick though is balancing this with good content. The above tips are a good step that nearly anyone can use to increase ranking though.</p>
<p>And you don’t have to count each keyword. There are tons of free programs available online that let you check the status of your optimization. With the majority of these programs you simply need to copy and paste your content, and verify exactly which keywords you are looking for, and the program will come back with your percentages letting you easily<br />
play with the content until it sounds good and contains the proper number of keywords.</p>
<p>Simply Google &#8220;Free SEO Software&#8221; or something similar and you should find several links to these free programs. Naturally hiring a professional will lead to greater results, but this is a wonderful start for anyone.</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/420-webdesign-seo-and-keyword-density/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inspiron 1545 Flash Crash Bug</title>
		<link>http://abeontech.com/412-mixed-inspiron-1545-flash-crash-bug-windows-7-64-bit</link>
		<comments>http://abeontech.com/412-mixed-inspiron-1545-flash-crash-bug-windows-7-64-bit#comments</comments>
		<pubDate>Sun, 22 Aug 2010 06:04:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mixed]]></category>
		<category><![CDATA[64 bit]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://abeontech.com/?p=412</guid>
		<description><![CDATA[I recently bought a Dell Inspiron 1545 with Windows 7 64bit but was annoyed by the constant browser flash crashing problems.
Fix the flash browser crashing bug.]]></description>
			<content:encoded><![CDATA[<p>I recently bought a Dell Inspiron 1545 which came with a 64bit edition of Windows 7 and a bunch of default software installed.<br />
After playing around and getting use to the new laptop, I started to notice that nearly every flash file viewed in any browser caused serious lag and usually a total browser crash!</p>
<p>It took me a while to figure out what caused the problem, so I thought I&#8217;d post it here incase anyone else has had similar problems.<br />
<span id="more-412"></span></p>
<p>A few things I tried to fix the problem included&#8230;</p>
<ul>
<li>Updated the browser and plugins</li>
<li>Updated Flash to the latest version</li>
<li>Used various 32bit browsers (FireFox, IE, Chrome, Opera)</li>
<li>Closed any unneeded applications</li>
</ul>
<p>&#8230; But the problem persisted.</p>
<p>I knew it wasn&#8217;t Windows 7 causing the flash freeze as it was a clean install and I had uninstalled and disabled everything I could think of.<br />
All the articles I had read simply suggested using a 32bit browser, which I had obviously tried&#8230; Several ways.<br />
It was starting to get annoying as even small flash adverts found on nearly every website were causing a complete browser crash!</p>
<p>I finally decided to completely remove everything that wasn&#8217;t a default part of Windows 7 to work backwards to try and find out what was causing flash to hang.</p>
<p>My Dell Inspiron 1545 came with a years McAfee subscription, which I have never liked or used. After uninstalling the software I noticed some files and registry keys were left behind, so I searched for a complete McAfee removal tool.<br />
The tool did its job and removed the clutter left by McAfee and after a reboot all seemed to work fine!</p>
<p>It&#8217;s worth repeating that this flash error seemed to make FireFox, Chrome, IE (32 bit and 64 bit) and Opera all crash, hang or stop responding.</p>
<h2>Fix Inspiron 1545 Flash Crashing Bug</h2>
<p>The helpfull morons at McAfee have included a tool to help remove the crap they leave behind, a video test / tutorial and step-by-step instructions for the mentally challenged.<br />
Just ignore step3!</p>
<p><a href="http://service.mcafee.com/FAQDocument.aspx?id=TS100507">http://service.mcafee.com/FAQDocument.aspx?id=TS100507</a></p>
<p>Download the tool provided in the article above called &#8220;<a href="http://download.mcafee.com/products/licensed/cust_support_patches/MCPR.exe">MCPR.exe</a>&#8220;.<br />
Close any open applications then run the tool.<br />
Restart your laptop and your done.</p>
<p>You should no longer have problems while viewing flash video or playing flash games!</p>
<p>I recommend using ESET&#8217;s Nod32 Smart security. It&#8217;s a far superior product using less system resources, is more secure, has more granular controls, better program to firewall associations and a lot more&#8230; No I don&#8217;t get any kickbacks from ESET, it&#8217;s just the best AV / Firewall I&#8217;ve used</p>
<p><em style="font-weight:bold">On a side note:</em><br />
In 2003 AMD introduced the very first 64 bit processors (Opteron and Athlon 64).<br />
It&#8217;s now been 7 years and Adobe are still &#8220;developing&#8221; Flash to work on, let alone utilize, 64 bit Operating Systems which are now as standard with most new computers&#8230;<br />
WTF Adobe?!<br />
Do you want Flash to be more hated than it is now?<br />
Have you planned for HTML 5 to kick your ass?<br />
7 years to develop a work around seems a little long to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/412-mixed-inspiron-1545-flash-crash-bug-windows-7-64-bit/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Windows 7 from USB device</title>
		<link>http://abeontech.com/351-mixed-install-windows-7-from-usb-device</link>
		<comments>http://abeontech.com/351-mixed-install-windows-7-from-usb-device#comments</comments>
		<pubDate>Thu, 24 Jun 2010 00:04:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mixed]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.abeontech.com/?p=351</guid>
		<description><![CDATA[The Windows 7 downloaded image that many online software retailers supply is simple too large to install from a single CD, being about 2.2Gb
This short guide has step-by-step instructions on how to install Windows 7 from any USB device with more than 2.3Gb free space.

You will obviously need an original Windows 7 DVD or image file.
If using an image file it will need to be mounted on a virtual drive so you can access the files inside.
There are many free tools available for this, but I use <a href="http://www.daemon-tools.cc">Daemon Tools</a>.
You will also need a Vista or Windows 7 PC as Windows XP doesn't have the "diskpart" or "bootsect" tools.]]></description>
			<content:encoded><![CDATA[<p>The Windows 7 downloaded image that many online software retailers supply is simple too large to install from a single CD, being about 2.2Gb<br />
This short guide has step-by-step instructions on how to install Windows 7 from any USB device with more than 2.3Gb free space.</p>
<p>You will obviously need an original Windows 7 DVD or image file.<br />
If using an image file it will need to be mounted on a virtual drive so you can access the files inside.<br />
There are many free tools available for this, but I use <a href="http://www.daemon-tools.cc">Daemon Tools</a>.<br />
You will also need a Vista or Windows 7 PC as Windows XP doesn&#8217;t have the &#8220;diskpart&#8221; or &#8220;bootsect&#8221; tools.<br />
<span id="more-351"></span></p>
<p>I just downloaded Windows 7 and wanted to install it on a notebook.<br />
There were two main problems with this:</p>
<ol>
<li>The downloaded Windows 7 disc image was 2.23Gb</li>
<li>The notebook I intended to install windows 7 on doesn&#8217;t have a disc dirve!</li>
</ol>
<p>I have a few spare USB drives laying around, so my 4Gb pen drive was the ideal candidate to install Windows 7 from.<br />
Here&#8217;s what I did&#8230;</p>
<p><strong style="font-size:2em">1.</strong> Insert the USB Flash Drive</p>
<p><strong style="font-size:2em">2.</strong> Open the command prompt as<br />
(Start-> All Programs-> Accesories, right click on the &#8220;Command Prompt&#8221; and select &#8220;Run as &#8230;&#8221;</p>
<p><strong style="font-size:2em">3.</strong> To find out what number corresponds to the USB Flash Drive you should type the following in the &#8220;Command Prompt&#8221; window:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">diskpart<br />
list disk</div></div>
<p>The number corresponding to your USB will be appear in the list (see the USB and the capacity of)<br />
This number will need in the next step. The USB Flash Drive is usually disk 1.</p>
<p><strong style="font-size:2em">5.</strong> Format the USB drive by typing the following commands in the same window. Attention, replace the number &#8220;1&#8243; on disk 1 to the number of your drive as emerged from the above list.</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">select disk 1<br />
clean<br />
create partition primary<br />
select partition 1<br />
active<br />
format fs = NTFS<br />
assign<br />
exit</div></div>
<p>When you enter this, you will have a USB Flash Drive formatted to be bootable.</p>
<p><strong style="font-size:2em">6.</strong> So, let&#8217;s make the USB bootable<br />
The application called &#8220;bootsect&#8221; is on every Vista and Windows 7 disc and will help here. Using the same command prompt window from Step 2:</p>
<p>1. Put the Windows 7 disc in the drive of your computer or mount the image.<br />
2. Change the drive in the command prompt to that of your drive. Suppose that the DVD drive is E:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">e:<br />
cd e:\boot</div></div>
<p>3. We will use the bootsect to define the USB as a bootable NTFS drive.<br />
Suppose that the USB Flash Drive is G: \, your position in G: \ put the letter of your USB.<br />
Enter:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">bootsect / nt60 g:</div></div>
<p>4. You can close the command prompt,now the USB is bootable.</p>
<p><strong style="font-size:2em">7.</strong> Copy all Windows 7 files to USB flash device.<br />
Copy all files from DVD and paste it in the USB flash drive. Just copy all the files, you&#8217;re ready.</p>
<p><strong>Now just set your BIOS to boot from your new USB version of Windows 7!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/351-mixed-install-windows-7-from-usb-device/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effective DDO Trading</title>
		<link>http://abeontech.com/393-ddo-effective-ddo-trading</link>
		<comments>http://abeontech.com/393-ddo-effective-ddo-trading#comments</comments>
		<pubDate>Fri, 13 Nov 2009 10:21:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DDO]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://abeontech.com/?p=393</guid>
		<description><![CDATA[Some people like making a Sorcerer character with max charisma to buy or pass items to for sale. This method just seems a little long winded for me, so I usually just buff as much as possible before ...]]></description>
			<content:encoded><![CDATA[<p>There are many ways to get the most out of your gold in <a href="http://abeontech.com/ddo" title="DDO">DDO</a>.</p>
<p>Some people like making a Sorcerer character with max charisma to buy or pass items to for sale. This method just seems a little long winded for me, so I usually just buff as much as possible before any highish transaction.</p>
<p>My level 11 wizard &#8220;Abeon&#8221; is by no means a good trader so needs all the help he can get whilst trading.<br />
The Charisma stat and the Haggle skill are relevant to trading, so here are Abeons&#8217;:<br />
<span id="more-393"></span><br />
<em><strong>Base</strong></em><br />
Charisma = 8 (Base)<br />
Haggle = 5 (Base)</p>
<p><em><strong>Boosted</strong></em><br />
Charisma = 8 (Base)<br />
+4 Wand of Eagles Splendor<br />
= 12 Total</p>
<p>Haggle = 5 (Base)<br />
+1 Voice of the master<br />
+5 Necklace of Haggling<br />
+4 Greater heroism spell<br />
+2 Human versatility skill<br />
= 17 Total</p>
<p>So let&#8217;s compare some loot to see how much more we could earn or save.</p>
<p>Base Loot Sale Value = <em><strong>5,018 gold</strong></em><br />
Boosted Loot sale Value = <em><strong>6,204 gold!</strong></em></p>
<p>Thats 1,186 gold, essentially, for free <img src='http://abeontech.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em><strong>Notes</strong></em><br />
Keeping a few spare items and scrolls / potions handy to swap before a transaction can make trading a lot more profitable.<br />
Some stat and item boosts will stack for trading purposes (Human versatility and Greater heroism, for example), so experiment a little.<br />
It&#8217;s faster to click a few hotbar icons instead of logging in with another character just to trade.</p>
<p>I know it&#8217;s not a monumental amount, but the examples used were just general trader trash and wizards have very low trading skills and not the best haggle / charisma boosting items.<br />
Using a charisma based character or by later levels the profits will increase a huge amount, if you get use to using the method.</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/393-ddo-effective-ddo-trading/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDO General Tips</title>
		<link>http://abeontech.com/395-ddo-ddo-general-tips</link>
		<comments>http://abeontech.com/395-ddo-ddo-general-tips#comments</comments>
		<pubDate>Wed, 11 Nov 2009 10:43:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DDO]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://abeontech.com/?p=395</guid>
		<description><![CDATA[The loading screen tips for Dungeons and Dragons Online are usefull for new players and general tips, but don't help with some aspects of the game.

This topic aims at the slightly more experienced DDO player.
I want to keep this spoiler free, so no quest specific tips are included.

Below is a list of little tips and tricks to help you get the most out of the game.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://abeontech.com/392-ddo-ddo-loading-screen-tips">loading screen tips</a> for Dungeons and Dragons Online are usefull for new players and general tips, but don&#8217;t help with some aspects of the game.</p>
<p>This topic aims at the slightly more experienced <a href="http://abeontech.com/ddo" title="DDO">DDO</a> player.<br />
I want to keep this spoiler free, so no quest specific tips are included.</p>
<p>Below is a list of little tips and tricks to help you get the most out of the DDO game.<br />
<span id="more-395"></span></p>
<p>Carry a spare set of items to use around town.<br />
These should include: Charisma / Haggle / Speed boost items.<br />
&#8212;&#8212;&#8212;-<br />
Running and jumping while using potions or activating abilities is often better than standing still taking a beating!<br />
&#8212;&#8212;&#8212;-<br />
If you have a spare party slot or want to solo a quest, summon a hireling when entering a dungeon and make them stay there.<br />
If you die, use the come command to have them teleport to your location and pick up your soul stone. Then just find a shrine and rez!<br />
&#8212;&#8212;&#8212;-<br />
Stat boost skills like Human Versatility and Rogue Skill Boost will also increase your haggling skill, so hit it just before you buy or sell items.<br />
&#8212;&#8212;&#8212;-<br />
Attacking an Ooze with either slashing or piercing weapons will split it into two. They will also wear down weapons very fast, so use Muckbane, Muckdoom, a cheap weapon or your fists!<br />
&#8212;&#8212;&#8212;-<br />
Casters should carry a high SP item (+100 / +200). Make sure it&#8217;s equipped before you enter a quest and before you shrine.<br />
If the item doesn&#8217;t have other properties you could swap it to a more effective weapon after the SP boost has been used!</p>
<p>If you have any tips to add, and I&#8217;m sure you do, please post them below!</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/395-ddo-ddo-general-tips/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDO Loading Screen Tips</title>
		<link>http://abeontech.com/392-ddo-ddo-loading-screen-tips</link>
		<comments>http://abeontech.com/392-ddo-ddo-loading-screen-tips#comments</comments>
		<pubDate>Fri, 23 Oct 2009 10:16:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[DDO]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://abeontech.com/?p=392</guid>
		<description><![CDATA[DDO has a huge list of tips and hints during most loading screens.
I have posted the list here for easy searching and browsing while I'm bored]]></description>
			<content:encoded><![CDATA[]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/392-ddo-ddo-loading-screen-tips/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy Game Cheating</title>
		<link>http://abeontech.com/309-gaming-easy-game-cheating-guide</link>
		<comments>http://abeontech.com/309-gaming-easy-game-cheating-guide#comments</comments>
		<pubDate>Wed, 17 Dec 2008 04:19:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.abeontech.com/?p=309</guid>
		<description><![CDATA[There are many ways to cheat PC while playing games.
If you're looking to increase your health to beat a boss or get infinite cash to build an empire, there will usually be many ways to make your game time easier!

This article will cover the easiest method and how to implement it on most games...]]></description>
			<content:encoded><![CDATA[<p>There are many ways to cheat PC games while playing.<br />
If you&#8217;re looking to increase your health to beat a boss or get infinite cash to build an empire, there will usually be many ways to make your game time easier!</p>
<p>This article will cover the easiest method and how to implement it on most games&#8230;</p>
<p><span id="more-309"></span></p>
<h2>Why Cheat?</h2>
<p>I have always been an RPG fan, which can be time consuming. I have played most RPGs worth noting and usually decide to replay at a later date. I always try to complete a game before I try cheating but</p>
<p>When I restart a game, I don&#8217;t need to do every little quest or pickup every item needed to know where to go next.</p>
<p>On the other hand, if I ever get really stuck on (or bored with) a game &#8211; I tend to skip ahead to save time and hassle.</p>
<p>I don&#8217;t agree on cheating without being stuck or used as a time saving device. So, let&#8217;s continue&#8230;</p>
<h2>Game Cheat Tools</h2>
<p>As with most niche software groups, game cheating (commonly referred to as &#8220;Trainer Making&#8221;) has several tools which can make the process easier.</p>
<p>A huge amount of skill isn&#8217;t required to start cheating your own games. But if you want to make a game loader or trainer, you will need to learn at least the basics of programming.</p>
<p>The tools below are some of my favourite for the task at hand:</p>
<ul>
<li><a href="http://www.timsvault.com/cheattools/tsearch.zip">TSearch</a> &#8211; Find and alter information stored in memory.</li>
<li><a href="http://www.timsvault.com/cheattools/usged.zip">Universal Save Game Editor</a> &#8211; Modify saved games, surprisingly enough!</li>
<li><a href="http://www.hhdsoftware.com/Family/hex-editor.html">Hex Editor Neo</a> &#8211; Simple file editing.</li>
<li><a href="http://www.megaupload.com/?d=CY1XGLPX">Game Trainer Studio</a> &#8211; Make &#8220;Game Trainers&#8221;. Programs to allow other people to use your cheats.</li>
<li><a href="http://www.ollydbg.de/version2.html">OllyDbg</a> &#8211; 32 Bit disassembler used for many purposes. Not for beginners!</li>
</ul>
<h2>Cheat the easy way</h2>
<p>I recently started playing Fallout Tactics, eagerly awaiting Fallout 3&#8242;s release (which I now have, but doesn&#8217;t work -_-)&#8230; Anyway, this seems like a good example to start with.</p>
<p>I knew from the reviews that I wouldn&#8217;t play Fallout Tactics all the way through.<br />
I had about 5 days to complete it before Fallout 3 was released, so I need a way to get more ammo, health and experience.</p>
<p>Run Fallout: Tactics and start a new game. Create a new character or pick a pre-made one.<br />
Make a note of some info you want to change. Let&#8217;s take the ammo counter as an example.</p>
<p>Open the inventory and note the number of bullets available, as shown below:<br />
&nbsp; &nbsp; &nbsp; <img src="http://i35.tinypic.com/ja83ee.gif" alt="Ammo Count" /></p>
<p>Run TSearch then open the process you want to modify (BOS.exe for Fallout: Tactics):<br />
&nbsp; &nbsp; &nbsp; <img src="http://i35.tinypic.com/2h3sv2s.gif" alt="Open Process" /></p>
<p>Click <strong>Init New Search</strong> Search using the settings below:<br />
&nbsp; &nbsp; &nbsp; <img src="http://i35.tinypic.com/fl8y8n.gif" alt="Search Game" /></p>
<p>The first search will produce a huge amount of unwanted results. So go back to the game and change the number by shooting a few rounds into the ground.</p>
<p>Then switch back to TSearch and continue the search by subtracting the amount of bullets you shot:<br />
&nbsp; &nbsp; &nbsp; <img src="http://i35.tinypic.com/311uywy.gif" alt="Search More Games" /></p>
<p>This time, only one result is shown. So add it to the right hand side.<br />
&nbsp; &nbsp; &nbsp; <img src="http://i38.tinypic.com/vsomqa.gif" alt="Game Result" /></p>
<p>Edit the number and switch back to the game to see if it has any effect.<br />
&nbsp; &nbsp; &nbsp; <img src="http://i35.tinypic.com/15dxefc.gif" alt="Hack Ammo" /></p>
<p><strong>It worked!</strong> So we know simple using TSearch will work on this game.<br />
We could, in theory, edit most other items in the game using the same process.</p>
<p>The change will not always be instant. Sometimes you will need to force a change from within the game before it will register the changes made outside. The character generation process of the Fallout games doesn&#8217;t show the edited numbers until you add or take a point to each attribute.</p>
<p>This method can be used on many, many games because of the way they utilize windows memory.<br />
There is one obvious drawback; Don&#8217;t expect to power level your <abbr title="World of Warcraft">WoW</abbr> character. I can imagine they have a system in place to ban you as fast as you can say Memory Debug!</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/309-gaming-easy-game-cheating-guide/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google. A Power Users Guide</title>
		<link>http://abeontech.com/283-mixed-google-power-users-guide</link>
		<comments>http://abeontech.com/283-mixed-google-power-users-guide#comments</comments>
		<pubDate>Tue, 04 Nov 2008 02:37:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mixed]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.abeontech.com/?p=283</guid>
		<description><![CDATA[Google's search engine is used everyday by many people. But a high percentage of those people use it ineffectively!

The geeks at Google have included some great search operators to make the immense task of searching every site in their cache a little easier.

In this tutorial I hope to teach some quick techniques to make searching Google a breeze.
Put the most powerful software ever made to use!]]></description>
			<content:encoded><![CDATA[<p>Google&#8217;s search engine is used everyday by many people. But a high percentage of those people use it ineffectively!</p>
<p>The geeks at Google have included some great search <a href="http://en.wikipedia.org/wiki/Operators">operators</a> to make the immense task of searching every site in their cache a little easier.</p>
<p>In this tutorial I hope to teach some quick techniques to make searching Google a breeze.<br />
Put the most powerful software ever made to use!</p>
<p><span id="more-283"></span></p>
<p>If you have ever found yourself endlessly searching Google with little luck, this power users guide could help!<br />
Most of this information is available on <a href="http://www.google.com/help/cheatsheet.html">Google&#8217;s cheat sheet</a> page, but I will expand with some real world examples and other additions not included on aforementioned page.</p>
<h1>Google. A Power User&#8217;s Guide</h1>
<h2>Power User&#8217;s Guide Introduction</h2>
<p>Google is a very powerful search engine with a wide range of features and operators to help you find what you need (Be it currency conversions before a holiday or the answer to life at 3am after too many drinks!). It&#8217;s a shame most people just enter a phrase and hit enter as it&#8217;s capable of so much more!</p>
<p>Let&#8217;s start from the ground up and use real world examples:</p>
<p><strong>Lets Google!</strong><br />
If you just type a word or two into Google and hit enter, your missing out on a lot.<br />
Let&#8217;s say we are searching for information on the &#8220;large hadron collider&#8221;, so we enter that into Google.<br />
To place emphasis on a word just include a + before the word, so &#8220;large hadron collider&#8221; would become:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">large hadron collider +news</div></div>
<p>To exclude a word from the <abbr title="SERP">Search Engine Results Page</abbr>, use prefix it with a &#8211; as shown below:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">large hadron collider -news</div></div>
<p>The wild card symbol (*) is used as a wild card, except when used with numbers (see below).<br />
It can be used to guess a letter, word or phrase and can help broaden a search if the incorrect results are shown.<br />
A good example would be:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">vitamin * is good for *</div></div>
<p>Each * represents just one or more words. Google treats the * as a placeholder for a word or more than one word. For example, [ "Google * my life" ] tells Google to find pages containing a phrase that starts with “Google” followed by one or more words, followed by &#8220;my life.&#8221; Phrases that fit the bill include: &#8220;Google changed my life,&#8221; &#8220;Google runs my life,&#8221; and “Google is my life.&#8221;</p>
<p><span><strong><a href="http://www.googleguide.com/wildcard_operator.html">Google&#8217;s Wild Card Operator</a></strong> can give good results if used correctly</span></p>
<h2>Work Productivity</h2>
<p><strong>Spelling</strong><br />
If you enter a miss-spelled word into Google and hit enter, you may see red, &#8220;Did you mean&#8221; text near the top of the page:<br />
<a target="_blank" href="http://d.imagehost.org/view/0646/G1.gif"><img src="http://d.imagehost.org/t/0646/G1.jpg" border="0" width="150" height="33" alt="Google spelling correction" /></a></p>
<p>Just click on the blue text to correct your original search. This is fairly obvious, so swiftly moving on&#8230;</p>
<p><strong>Definition</strong><br />
To get Google to define a word, simple use something like the following:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">define:nutrition<br />
define:equestrian</div></div>
<p><strong>Calculations</strong><br />
Google can act as an effective calculator with very little practice.<br />
The commands are obvious:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp;+ &nbsp; &nbsp; &nbsp;&nbsp; addition &nbsp; &nbsp; &nbsp;&nbsp; (45 + 39)<br />
&nbsp; &nbsp;- &nbsp; &nbsp; &nbsp;&nbsp; subtraction &nbsp; &nbsp; &nbsp; &nbsp; (45 – 39)<br />
&nbsp; &nbsp;* &nbsp; &nbsp; &nbsp;&nbsp; multiplication &nbsp; &nbsp;&nbsp; (45 * 39)<br />
<br />
&nbsp; &nbsp;/ &nbsp; &nbsp; &nbsp;&nbsp; division &nbsp; &nbsp; &nbsp;&nbsp; (45 / 39)<br />
&nbsp; &nbsp;% of &nbsp; &nbsp; percentage of &nbsp; &nbsp; &nbsp; (45% of 39)<br />
&nbsp; &nbsp;^ &nbsp; &nbsp; &nbsp;&nbsp; raise to a power &nbsp; &nbsp; &nbsp;(2^5)</div></div>
<p>Again we will try a real world example:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">(25 * 12) + 14 - 19 =</div></div>
<p>The answer to the above should be 295, which Google returned.<br />
<strong>The spacing doesn&#8217;t seem to be important, but enclosing multiple commands in brackets will stop strange results!</strong><br />
If you know how to use a calculator, you shouldn&#8217;t have much problem with Google&#8217;s version. So we&#8217;ll move on&#8230;</p>
<p><strong>Unit conversions</strong><br />
Google&#8217;s calculator can also convert units such as currency, weight, distance and so on.<br />
A few examples are listed below:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">25 USD into GBP<br />
25 $ into £<br />
25 pounds into kilograms<br />
25 lbs into kgs<br />
25 miles into kilometers<br />
25 feet into inches<br />
25 feet into meters</div></div>
<p><em>Note:</em><br />
Not all conversions are accurate, so double check all answers where possible!</p>
<p><strong>Google Work Tools</strong><br />
At this point we may as well mention the other usable tools Google provides. Some require a Gmail account, but all seem to work great and could improve productivity greatly!</p>
<p>There a a huge amount of <a href="http://www.google.com/options/">tools provided by Google</a>.<br />
The excerpt below is from a page which describes them and lists the locations etc:</p>
<div class="bubble2">
<div>
<div>
<div>
<div>
<div>If you’re like most people, you use Google’s products several times a day to search for information, check email, get a map and lots of other useful functions. What most people don’t know, however, is just how many useful tools Google has out there than can make everything from tracking a package to creating and publishing webpages a breeze. Here are just a few of the products Google offers that may be worth giving a try.
</div>
</div>
</div>
</div>
</div>
<p><span><strong><a href="http://www.collegeathome.com/blog/2008/06/18/57-useful-google-tools-youve-never-heard-of/">57 Useful Google Tools You’ve Never Heard Of</a></strong></span>.</p>
</div>
<p><a name="power-searching"><img src="http://www.abeontech.com/wp-images/bullet.png" alt="Power Searching" /></a></p>
<h2>Power Searching</h2>
<p>Power searching simple involves using Google to it&#8217;s full potential.<br />
A few simple tricks can make sure you get the result you want on page one!<br />
So let&#8217;s give a few examples of a google power searches&#8230;</p>
<p>We could start with searching for information:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">+inurl:gov.uk filetype:pdf<br />
+inurl:gov.uk +hospital filetype:pdf<br />
&quot;ufo report&quot; filetype:pdf</div></div>
<p>With a little imagination, this is an easy way to get information quickly. I use it for financial / business / UFO reports.<br />
You don&#8217;t have to use .pdf as they filetype. .doc or even .txt can work well.</p>
<p>So let&#8217;s move on to music:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&quot;eminem&quot; intitle:index.of mp3 -html -htm -php -asp -txt -pls</div></div>
<p>Simple replace eminem with your favourite artist / band etc. And again, .mp3 isn&#8217;t the only extension you could use. But careful as some .wmv and .wma files are copy protected!</p>
<p>Some sites (I.E. adultsites) get indexed by other people. Why not let them do the hard work?</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">http://*:*@members.poradultsitensite.com<br />
http://*:*@adultsite.com/members<br />
http://*:*@access.adultsite.com</div></div>
<p>Doing some research on the sites domain structure is needed on sites like these. You would need to check the login&#8217;s subdomain or folder location.</p>
<p>Watch your favourite TV shows online:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&quot;south park&quot; intitle:stream -forum<br />
cartoon tv intitle:stream</div></div>
<p>There are many streaming services for TV and videos online, but they are frowned on for some reason. If you can watch them on TV for free, why not online?</p>
<p><strong>Closing Notes:</strong><br />
It&#8217;s best to experiment. If you need to use Google for a certain task, look into how it can be done easier! It could save you a lot of time</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/283-mixed-google-power-users-guide/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Tricks For More Usable Forms</title>
		<link>http://abeontech.com/277-webdesign-simple-tricks-for-more-usable-forms</link>
		<comments>http://abeontech.com/277-webdesign-simple-tricks-for-more-usable-forms#comments</comments>
		<pubDate>Thu, 23 Oct 2008 22:58:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.abeontech.com/?p=277</guid>
		<description><![CDATA[Web developers loathe the task of building forms almost as much as users loathe having to fill them in. These are both unfortunate facts of the Web, but some smart JavaScript and intelligent CSS can go a long way to remedying the situation. In this article, I'll introduce a number of simple tricks for improving the usability of forms, and hopefully inspire you to improve on them and create your own.]]></description>
			<content:encoded><![CDATA[<p>Web developers loathe the task of building forms almost as much as users loathe having to fill them in. These are both unfortunate facts of the Web, but some smart JavaScript and intelligent CSS can go a long way to remedying the situation. In this article, I&#8217;ll introduce a number of simple tricks for improving the usability of forms, and hopefully inspire you to improve on them and create your own.</p>
<p>I&#8217;m going to start off with some simple tricks, before introducing the interesting stuff later on. If the material seems too simple for you, feel free to skip ahead.</p>
<p>It&#8217;s the Little Things that Count.</p>
<p><span id="more-277"></span></p>
<p>You will certainly have encountered our first trick before; it&#8217;s used by Google, the world&#8217;s most popular search engine. Whenever you load up www.google.com, your cursor jumps straight to the search box, ready for you to enter your query.</p>
<p>It happens so fast you may not even have thought about it, but, in fact, it works equally well in any situation in which the primary purpose of a page is to fill in a form. It can be done in a number of different ways, each of which assumes that the form element you want to focus on has an id attribute set to &#8220;myfield&#8221;:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>body <span style="color: #000066;">onload</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;document.getElementById('myfield').focus()&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>This is, more or less, the method used by Google. It&#8217;s short and to the point. It does, however, require the addition of an onload to your body element, which some people find unsightly.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
window.<span style="color: #000066;">onload</span> <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfield'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>This can be added to any point in your HTML file, or hidden away in an external script. If you&#8217;re going to be using a lot of JavaScript on a page, it can make sense to move it all in to an external script file in order to keep the JavaScript code separate from your HTML. This method has the disadvantage that you can only assign one thing to the window.onload event at a time.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
addEvent<span style="color: #009900;">&#40;</span>window<span style="color: #339933;">,</span> <span style="color: #3366CC;">'load'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfield'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #003366; font-weight: bold;">function</span> addEvent<span style="color: #009900;">&#40;</span>obj<span style="color: #339933;">,</span> evType<span style="color: #339933;">,</span> fn<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; obj.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span>evType<span style="color: #339933;">,</span> fn<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj.<span style="color: #660066;">attachEvent</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> r <span style="color: #339933;">=</span> obj.<span style="color: #660066;">attachEvent</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;on&quot;</span><span style="color: #339933;">+</span>evType<span style="color: #339933;">,</span> fn<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> r<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>This uses Scott Andrew&#8217;s addEvent function. This is probably the best approach to take if you&#8217;re keeping your code in a separate file, as it will allow other functions to be attached to the onload event as well.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'myfield'</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>The above will only work if it is placed in the HTML source code some point after the input field. This can be useful if you are working with a server side templating system that makes it difficult to add code directly to the top of a document &#8212; for example, if you are including the top part of the page using a server side include.</p>
<p>The above four options are available for most of the tricks I&#8217;ll demonstrate in this article. For future tricks, I&#8217;ll demonstrate the method using inline attributes such as onload and onclick only, but you should be aware that there are several ways to skin this particular cat.</p>
<h1>Labels</h1>
<p>The quickest way to enhance your form usability is to add labels, if you&#8217;re not using them already. The <label> element has been part of HTML since 1998, but many developers remain unaware of its existence. It allows you to logically relate the text describing a form field to the form field itself. When the user clicks on the label, the browser will move the focus to the related form field, or toggle its state in the case of radio boxes and check buttons. Before you add a label, the form field must have an ID attribute set. In fact, the tips in this article almost all require an ID attribute be set on the form field, as this provides a useful means of targeting that field from JavaScript.</p>
<p>Here&#8217;s the simplest example of a label in action:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>label <span style="color: #000066; font-weight: bold;">for</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;username&quot;</span><span style="color: #339933;">&gt;</span>Username<span style="color: #339933;">:&lt;/</span>label<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;username&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;username&quot;</span> size<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;10&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>Clicking on the word &#8220;Username&#8221; will focus the cursor in the text box. This may not seem like a particularly useful effect, but it gives us a useful hook for styling and potentially adding extra JavaScript behaviour. It also dramatically improves the accessibility of the form for users of assistive software.</p>
<p>Where labels really come in to their own is with checkboxes and radio boxes. Both these widgets are plagued by a tiny active area, sometimes called a &#8220;hotspot&#8221;, which you need to hit dead on with your mouse to cause them to toggle. Adding a label increases the hotspot to cover the text associated with the widget as well:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;checkbox&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;accepted&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;accepted&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>label <span style="color: #000066; font-weight: bold;">for</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;accepted&quot;</span><span style="color: #339933;">&gt;</span>I agree to the terms and conditions<span style="color: #339933;">&lt;/</span>label<span style="color: #339933;">&gt;</span></div></div>
<p>Of course, labels aren&#8217;t much good if people don&#8217;t know they&#8217;re there. One simple but effective trick for increasing the visibility of labels is to use CSS to change the cursor over them:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>style type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span><span style="color: #339933;">&gt;</span><br />
label <span style="color: #009900;">&#123;</span><br />
&nbsp;cursor<span style="color: #339933;">:</span> pointer<span style="color: #339933;">;</span><br />
&nbsp;cursor<span style="color: #339933;">:</span> hand<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>style<span style="color: #339933;">&gt;</span></div></div>
<p>Why the two cursor declarations? The CSS standard dictates &#8220;pointer&#8221; as the value for a &#8220;pointer that indicates a link&#8221;. Unfortunately, IE 5 and IE 5.5 for Windows don&#8217;t understand this value, using &#8220;hand&#8221; to mean the same thing. By placing pointer first misbehaving Microsoft browsers ignore it and use the hand value, while better behaved browsers take pointer and ignore hand.</p>
<h1>Visual Hints</h1>
<p>In a large form, it can be easy to lose track of the form field you&#8217;re currently filling in. A great trick for helping out is the following:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>style type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span><span style="color: #339933;">&gt;</span><br />
input <span style="color: #009900;">&#123;</span><br />
&nbsp;border<span style="color: #339933;">:</span> 2px solid #ccc<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
input<span style="color: #339933;">:</span><span style="color: #000066;">focus</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;border<span style="color: #339933;">:</span> 2px solid #000<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>style<span style="color: #339933;">&gt;</span></div></div>
<p>This causes all input fields to have a 2 pixel wide gray border, while the input field on which the user is currently focused gets a black border to make it stand out from the others. There&#8217;s one caveat: IE on Windows doesn&#8217;t support the :focus pseudo-class! Thankfully, it&#8217;s possible to replicate the effect using java script:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;myfield&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;myfield&quot;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066;">onfocus</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;this.style.border='2px solid #000'&quot;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066;">onblur</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;this.style.border='2px solid #ccc'&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>This brings the effect to IE, at the expense of a lot of extra typing. If you&#8217;ve got a lot of form fields on the page, it makes sense to do this instead, again making use of the addEvent function introduced above:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;height:250px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
addEvent<span style="color: #009900;">&#40;</span>window<span style="color: #339933;">,</span> <span style="color: #3366CC;">'load'</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> input<span style="color: #339933;">,</span> textarea<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> inputs <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'input'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span>input <span style="color: #339933;">=</span> inputs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;addEvent<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> <span style="color: #3366CC;">'focus'</span><span style="color: #339933;">,</span> oninputfocus<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;addEvent<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> <span style="color: #3366CC;">'blur'</span><span style="color: #339933;">,</span> oninputblur<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> textareas <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'textarea'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span>textarea <span style="color: #339933;">=</span> textareas<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;addEvent<span style="color: #009900;">&#40;</span>textarea<span style="color: #339933;">,</span> <span style="color: #3366CC;">'focus'</span><span style="color: #339933;">,</span> oninputfocus<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp;addEvent<span style="color: #009900;">&#40;</span>textarea<span style="color: #339933;">,</span> <span style="color: #3366CC;">'blur'</span><span style="color: #339933;">,</span> oninputblur<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">function</span> oninputfocus<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">/* Cookie-cutter code to find the source of the event */</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> e <span style="color: #339933;">==</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #003366; font-weight: bold;">var</span> e <span style="color: #339933;">=</span> window.<span style="color: #660066;">event</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> source<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> e.<span style="color: #660066;">target</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; source <span style="color: #339933;">=</span> e.<span style="color: #660066;">target</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> e.<span style="color: #660066;">srcElement</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; source <span style="color: #339933;">=</span> e.<span style="color: #660066;">srcElement</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">/* End cookie-cutter code */</span><br />
&nbsp;source.<span style="color: #660066;">style</span>.<span style="color: #660066;">border</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'2px solid #000'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #003366; font-weight: bold;">function</span> oninputblur<span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">/* Cookie-cutter code to find the source of the event */</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> e <span style="color: #339933;">==</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #003366; font-weight: bold;">var</span> e <span style="color: #339933;">=</span> window.<span style="color: #660066;">event</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> source<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> e.<span style="color: #660066;">target</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; source <span style="color: #339933;">=</span> e.<span style="color: #660066;">target</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> e.<span style="color: #660066;">srcElement</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; source <span style="color: #339933;">=</span> e.<span style="color: #660066;">srcElement</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #006600; font-style: italic;">/* End cookie-cutter code */</span><br />
&nbsp;source.<span style="color: #660066;">style</span>.<span style="color: #660066;">border</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'2px solid #ccc'</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>The cookie-cutter code in the above deals with some cross-browser compatibility annoyances.</p>
<h1>Enhancing Text Entry Fields</h1>
<p>The most common form field is &#8230;</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span>&gt;</span></div></div>
<p>We&#8217;ve already seen how auto-focusing on this when the page loads can make a nice enhancement. A useful trick for fields containing a default value that needs to be changed is the following:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;myfield&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;myfield&quot;</span> size<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;30&quot;</span><br />
&nbsp; &nbsp; &nbsp; value<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;This should be changed&quot;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066;">onfocus</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;this.select()&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>When the field receives the focus, the text inside it will be instantly selected; it will be over-written the moment the user starts to enter their own text. This is also useful if the user is likely to copy and paste the text from the widget, as it saves them from having to first select it.</p>
<p>Here&#8217;s a nice trick for forms that are being used to create something that has an obvious title &#8212; for example, an email, or an article on a Website:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;title&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;title&quot;</span> size<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;30&quot;</span><br />
&nbsp; &nbsp; &nbsp; onkeyup<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;document.title = 'New item: ' + this.value&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>This creates an effect similar to many popular email programs, where the text in the title bar of the document changes as the subject of the email is typed. This could be particularly useful in an environment where multiple windows are likely to be open at once &#8212; a Webmail client, for example.</p>
<p>On a related note, sometimes the value of one form field can by initially guessed by looking at the value of another. A classic example is a content management system where each entry has a human readable title and a unique URL. The URL can default to matching the title, but with punctuation removed and spaces converted to underscores. Here&#8217;s the code to do that:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;title&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;title&quot;</span> size<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;30&quot;</span><br />
&nbsp; &nbsp; &nbsp; onkeydown<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;document.getElementById('url').value =<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;this.value.replace(/[^a-z0-9 ]/ig,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'').replace(/ /g, '_')&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;url&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;url&quot;</span> size<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;30&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>The critical thing here is that the user can still over-ride the guessed value for the URL if they want to by entering text directly in the field. If you just want to create a URL from a title without any intervention from the user, it&#8217;s best to do so in the server side code that processes the form.</p>
<h1>Validation</h1>
<p>Client side form validation is one of the most popular uses of JavaScript. Before we go on, I&#8217;d like to point out that if you&#8217;re building a server side application you should always check that data is valid in your server side code, whether or not you have used client side validation. Not doing this can leave your application wide open to all manner of unpleasant security problems &#8212; remember, malicious attackers know how to disable JavaScript in their browser. This point cannot be stressed enough. We now return to our regular scheduled programming&#8230;</p>
<p>Validation is a big topic, and one that has been covered extensively in tutorials all over the Web. Rather than rehash old ideas, I&#8217;m going to focus on a more usable way of validating user input. For instant feedback to the user, how about displaying an icon next to each form field that indicates whether or not that field has been correctly completed? Such an icon can be hooked straight in to the label elements we added earlier, and changed by using JavaScript to alter the label element&#8217;s class attribute.</p>
<p>Here&#8217;s a simple example for a required form field, broken down in to the CSS, the JavaScript and the HTML:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>label <span style="color: #000066; font-weight: bold;">for</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;subject&quot;</span> <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;required&quot;</span><span style="color: #339933;">&gt;</span>Subject<span style="color: #339933;">:&lt;/</span>label<span style="color: #339933;">&gt;</span><br />
<span style="color: #339933;">&lt;</span>input type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;subject&quot;</span> <span style="color: #000066;">name</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;subject&quot;</span> size<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;40&quot;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066;">onblur</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;checkRequired('subject');&quot;</span><span style="color: #339933;">&gt;</span></div></div>
<p>This is simple enough. The label element starts off with a class of &#8220;required&#8221; to visually indicate that the field is a required field. The JavaScript function checkRequired(&#8216;subject&#8217;) is called onblur, which refers to the point at which the focus moves away from the field.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;height:250px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>style type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span><span style="color: #339933;">&gt;</span><br />
label <span style="color: #009900;">&#123;</span><br />
&nbsp;padding<span style="color: #339933;">-</span>left<span style="color: #339933;">:</span> 22px<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">/* To leave room for the icon */</span><br />
<span style="color: #009900;">&#125;</span><br />
label.<span style="color: #660066;">required</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;background<span style="color: #339933;">-</span>image<span style="color: #339933;">:</span> url<span style="color: #009900;">&#40;</span>required.<span style="color: #660066;">gif</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;background<span style="color: #339933;">-</span>repeat<span style="color: #339933;">:</span> no<span style="color: #339933;">-</span>repeat<span style="color: #339933;">;</span><br />
&nbsp;background<span style="color: #339933;">-</span>position<span style="color: #339933;">:</span> 3px 0px<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
label.<span style="color: #660066;">problem</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;background<span style="color: #339933;">-</span>image<span style="color: #339933;">:</span> url<span style="color: #009900;">&#40;</span>caution.<span style="color: #660066;">gif</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;background<span style="color: #339933;">-</span>repeat<span style="color: #339933;">:</span> no<span style="color: #339933;">-</span>repeat<span style="color: #339933;">;</span><br />
&nbsp;background<span style="color: #339933;">-</span>position<span style="color: #339933;">:</span> 3px 0px<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
label.<span style="color: #660066;">completed</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;background<span style="color: #339933;">-</span>image<span style="color: #339933;">:</span> url<span style="color: #009900;">&#40;</span>complete.<span style="color: #660066;">gif</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;background<span style="color: #339933;">-</span>repeat<span style="color: #339933;">:</span> no<span style="color: #339933;">-</span>repeat<span style="color: #339933;">;</span><br />
&nbsp;background<span style="color: #339933;">-</span>position<span style="color: #339933;">:</span> 3px 0px<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>style<span style="color: #339933;">&gt;</span></div></div>
<p>The CSS gives each label a left padding of 22 pixels. The icons we&#8217;ll use will each be 15&#215;15, which gives us a little room to spare. Special classes of required, problem and completed are defined, each with their own background icon positioned to appear in the padding to the left of the form text.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #003366; font-weight: bold;">function</span> getLabelForId<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> label<span style="color: #339933;">,</span> labels <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'label'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span>label <span style="color: #339933;">=</span> labels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>label.<span style="color: #660066;">htmlFor</span> <span style="color: #339933;">==</span> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">return</span> label<span style="color: #339933;">;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #003366; font-weight: bold;">function</span> checkRequired<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> formfield <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> label <span style="color: #339933;">=</span> getLabelForId<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>formfield.<span style="color: #660066;">value</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;label.<span style="color: #660066;">className</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'problem'</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;label.<span style="color: #660066;">className</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'completed'</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>Here, we define two JavaScript functions: one to find the label associated with a specific ID, and another, which checks that a specified form field has something in it, and sets the associated label&#8217;s class accordingly. This is the simplest possible case for validation; additional functions can be written to cope with problems such as checking that email addresses are in a useful format. This technique could be taken even further by disabling the submit button until all the form fields have been correctly completed; however, if this is done, it is vital that the initial disabling of the submit button take place in the JavaScript, to ensure that non-JavaScript enabled browsers can still use the form.</p>
<p>The last trick I will introduce revolves around data that has a very specific format. Rather than reject a user&#8217;s input if it doesn&#8217;t match the format rules perfectly, it is sometimes possible to reformat the user&#8217;s data once they have entered it. A classic example is a form field for accepting US phone numbers. US phone numbers, when the area code is included, are exactly 10 digits long. The traditional way of displaying them is (785) 555-5555. Using JavaScript, we can take the user&#8217;s input, strip out all non-digit characters and, provided we are left with 10 digits, reformat them to look like the above example:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;height:250px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #003366; font-weight: bold;">function</span> checkPhone<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> phone <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'phone'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> label <span style="color: #339933;">=</span> getLabelForId<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'phone'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #003366; font-weight: bold;">var</span> digits <span style="color: #339933;">=</span> phone.<span style="color: #660066;">value</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/[^0-9]/ig</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>digits<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
&nbsp;<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>digits.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;phone.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'('</span> <span style="color: #339933;">+</span> digits.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">') '</span> <span style="color: #339933;">+</span><br />
&nbsp; &nbsp; &nbsp;digits.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'-'</span> <span style="color: #339933;">+</span><br />
&nbsp; &nbsp; &nbsp;digits.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">6</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp;phone.<span style="color: #660066;">value</span> <span style="color: #339933;">=</span> digits<span style="color: #339933;">;</span><br />
&nbsp;<span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span><br />
<br />
&nbsp;&lt;label for=&quot;phone&quot;&gt;Phone Number:&lt;/label&gt;<br />
&lt;input type=&quot;text&quot; id=&quot;phone&quot; name=&quot;phone&quot; size=&quot;20&quot;<br />
&nbsp; &nbsp; &nbsp; onblur=&quot;handlePhone();&quot;&gt;</div></div>
<p>This technique can be taken even further to allow multiple ways of entering structured data, such as a date, with any recognised values being converted to a standard format.</p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/277-webdesign-simple-tricks-for-more-usable-forms/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 Web Design Tips You Can&#8217;t Live Without</title>
		<link>http://abeontech.com/275-webdesign-5-web-design-tips-you-cant-live-without</link>
		<comments>http://abeontech.com/275-webdesign-5-web-design-tips-you-cant-live-without#comments</comments>
		<pubDate>Thu, 23 Oct 2008 22:41:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.abeontech.com/?p=275</guid>
		<description><![CDATA[The web design world is filled with excitement and experience, creativity and skill. Often, experienced web designers utilize a set of solid, proven techniques that others may not notice. Let's take a look at a few of these techniques and how you can implement them into your own site quickly and easily.]]></description>
			<content:encoded><![CDATA[<p>The web design world is filled with excitement and experience, creativity and skill. Often, experienced web designers utilize a set of solid, proven techniques that others may not notice. Let&#8217;s take a look at a few of these techniques and how you can implement them into your own site quickly and easily.</p>
<p><span id="more-275"></span></p>
<h2>1. Metatags make your site search engine friendly</h2>
<p>Metatags are what search engines use to display your site when a user searches for keywords within a search engine. Usually, web designers include at least three metatags, title, description and keywords.</p>
<p>A great thing about metatags is they are easy to implement, directly within the <head> and </head> tags. Let&#8217;s take a look at what the three aforementioned metatags look like.</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">NAME</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Title&quot;</span> <span style="color: #000066;">CONTENT</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Title here&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">NAME</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Description&quot;</span> <span style="color: #000066;">CONTENT</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Description here&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">NAME</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Keywords&quot;</span> <span style="color: #000066;">CONTENT</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Keywords here&quot;</span>&gt;</span></div></div>
<p>You can copy and paste the above three lines of code and place them within your HTML source code; simply type in your web site&#8217;s title, a description (or summary) of your web site, and keywords, usually separated by commas. Then, simply submit your web site to as many search engines as you can get your hands on, and watch your site&#8217;s hits improve.</p>
<h2>2. Take the typography test</h2>
<p>Our web sites are nothing without content, and most content is comprised of simple text. Many web designers neglect to pay attention to their topography, and it shows. Proper topography varies based on where the text is and what purpose it serves. Although there are no rules etched in stone, there are a few general techniques that should be followed. Although some of these tips may seem elementary, I find many of them are not followed.</p>
<h3>Headings</h3>
<p>Clearly, headings should be larger, by 1 or 2 font sizes, than your body text. You may consider bold, but be cognizant of the letter width. Arial Black, for example, may create letters too fat for your taste. When using colors, be sure the colors contrast well with the background color of your site. Black and dark gray do not contrast well, while black and white (or light gray) work quite well. Sometimes, even a simple color change can create useful headings.</p>
<p>Also be sure to cascade your headings. A main heading, for example, would be larger than subheadings. This effect creates a sense of emphasis and flow to the information.</p>
<p>Do not italicize your headings. Italics are meant to underscore particular content, but since the text is a heading and of larger size anyway, italics are redundant and often make the text difficult to read.</p>
<h3>Fonts</h3>
<p>The default is Times New Roman, which works fine, but many think it is boring. I have experimented with Arial, Georgia and Verdana, and have found Verdana the most readable font face available. This is a personal preference, but fonts should be restricted to the above four to ensure compatibility between all users of your web site. If your user&#8217;s browser does not support your font choice, their browser will revert to its default. Since browsers have increased support for CSS, or Cascading Style Sheets, whenever possible, use CSS to define your fonts, rather than HTML&#8217;s <font> tag. Also, be sure to keep your font sizes large enough for visitors of all ages and eyesights.</p>
<h3>Stress Styles</h3>
<p>Avoid using all capital letters within your text, as it makes it difficult to read and implies you are shouting at the reader.</p>
<p>To stress words within your body text, decide on a format and stick with it. Some choose [b]bold[/b], while others choose [i]italics [/i]or [u]underline[/u]. My personal favorite is italics, but any of these can work well. Be careful when using underline, however, as it can be mistaken for a link. In addition, do not overuse these stress styles.</p>
<p>Entire body text should not be bold. Bold, like italics, is used to emphasis words, and usually an entire body of copy should speak for itself in regularly styled text. I like to use CSS to space my body text out a little to increase readability.</p>
<h2>3. Combating Internet Spam</h2>
<p>Often, a bony, lanky black spider will crawl around your web site, wiggle its little feet in excitement, gather up your e-mail address and store it near its pinchers. Then, when it returns to its master, it will religiously add all gathered data to a huge nest of e-mail addresses, then used as bait to sell to marketing firms.</p>
<p>Those little black spiders are software utilities that slither underneath your page&#8217;s surface, at underlying HTML code, specifically for a standard formatted e-mail address (name@domain.com). This can be the most effective method for gathering e-mail addresses and needs to be thwarted. There are a number of techniques web designers can implement to protect against these creepy crawly little annoyances.</p>
<p>Of the many, here are three that can work quite well.</p>
<p>1. Use HTML symbols. To disable spiders from grabbing your e-mail address, some formatting modifications need to be made to fool the software. All e-mail addresses use the at symbol (@), and spiders are taught to look for them. HTML symbols are written directly into the HTML code, but are interpreted by the browser into their actual meaning. The HTML symbol for the @ sign is @. So, how do we implement something like this?</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;mailto:name@domain.com&quot;</span>&gt;</span></div></div>
<p>All we do is replace the @ sign with the HTML symbol that represents it. We have a utility built that will automatically convert your entire email address to HTML symbols. This method, however, is sometimes caught by more sophisticated software. Although most are not quite as advanced, they do exist. How do we surpass this hurdle? Let&#8217;s try some Javascript.</p>
<p>2. Using Javascript, we will simply break up the e-mail address into four different sections, 1: name, 2: the @ sign, 3: domain, 4: extension. Here is a simple implementation of Javascript to perform this action.</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:500px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
<span style="color: #000066;">name</span> <span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;you&quot;</span><br />
domain <span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;domain&quot;</span><br />
extension <span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;.net&quot;</span><br />
document.<span style="color: #000066; font-weight: bold;">write</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;a href=&quot;mailto:'</span> <span style="color: #339933;">+</span> <span style="color: #000066;">name</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">'@'</span> <span style="color: #339933;">+</span> domain <span style="color: #339933;">+</span> extension <span style="color: #339933;">+</span><span style="color: #3366CC;">' &quot; '</span> <span style="color: #339933;">+</span><span style="color: #3366CC;">' &gt;e-mail link here '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>The above code is fairly self-explanatory. We define three variables, name, domain and extension, and simply concatenate those variables within a document.write statement to the browser. Notice we use HTML&#8217;s anchor tags within the write statement so your browser will interpret the e-mail link correctly.</p>
<p>There is another problem with using this method&#8230;can you figure it out? Javascript is client-side, which means although spiders might not be able to interpret your e-mail address, browsers with Javascript capabilities turned off will not either, meaning your e-mail address will not be displayed to the user.</p>
<p>How do we fix this problem? Can we get away with refusing to display any e-mail address? Yes, we can, but we still must provide a way for the user to contact us. The solution is a rather simple email form.</p>
<p>3. The third might be the only full proof method of protecting yourself against spam spiders, and that is simply refusing to display your e-mail address. Instead, if your server supports server-side processing, like Perl, ASP, Cold Fusion or PHP, simply design a feedback form, and call a server-side script to process the data behind the scenes. Sorry boys, spiders can&#8217;t dig quite that deep.</p>
<p>I am a huge advocate of PHP, but choose whatever language that your host supports. Please note that if your server does not support any server-side programming language, you are out of luck in this regard. Chose between the two aforementioned methods, and stick with it.</p>
<h2>4. Always provide a method of contact</h2>
<p>Always, always provide some method of communication for your users. Many web developers will include e-mail links and feedback forms on their site. Doing this tells your users that you care about what they think of your site, and also suggests your encouragement for them to e-mail you are share.</p>
<p>Be sure, then, to check your e-mail often. There is nothing more frustrating then having to wait a week or more for someone to respond to your e-mail. Checking your e-mail ususally takes 2 minutes&#8230;do it as much as you can and keep your web visitors happy.</p>
<p>If your server supports a server-side language, like Perl, ASP, Cold Fusion or PHP, either design one or head off to a script repository and perform a simple search. Listed below are a few resources offering free scripts:</p>
<p><a href="http://www.hotscripts.com/">Hotscripts.com</a><br />
<a href="http://www.scriptarchive.com/">Matt&#8217;s Script Archive</a><br />
<a href="http://cgi.resourceindex.com/">ResourceIndex (CGI)</a><br />
<a href="http://php.resourceindex.com/">ResourceIndex (PHP)</a></p>
<h2>5. Design with the little guy in mind</h2>
<p>In this day and age, all we think about are the bells and whistles, especially when it comes to slick new web designs. Not only are these new technologies often misused, it dramatically slows the speed of your site down, especially large animated .gifs and complex Flash programs.</p>
<p>Although there are more broadband users than ever, never design specifically for them. There are still 28.8 users out there, and designing your site so waiting time exceeds 10 seconds will send those users to a competitor&#8217;s site.</p>
<p>Web designers need to keep their sites simple. Far too many, especially newer web designers, have fixated their eyes upon the gold when they have not yet mastered the silver. Only use graphics where you need them. Never use .gif animations unless absolutely, unavoidably necessary, which is rare. Additionally, do not use large, intricate backgrounds on your pages, as they hinder the readability of your text and increase load time.</p>
<p>Design with the end user in mind. Assume the user is connected through a 28.8 modem with a 15&#8243; monitor at 800&#215;600 resolution using Netscape. Trust me, those visitors will love you (and support you) for it.</p>
<h3>Wrapping it up</h3>
<p>We have looked at 5 tips every designer needs to keep in mind when doing the work they love. Although communication is e ssential, steps can be taken to decrease the amount of spam in your little brown mailbox.</p>
<p>Designers also must make sure their topography is easily readable and logically designed. Moreover, search engine friendly sites are often popular sites, and those who design for the little guy greatly improve compatibility with all potential users.</p>
<p>Using these tips will lift your site to another level and ensure every visitor gets the content they are looking for.<!--diggZ=none--></p>
]]></content:encoded>
			<wfw:commentRss>http://abeontech.com/275-webdesign-5-web-design-tips-you-cant-live-without/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

