<?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"
	>

<channel>
	<title>jh labs</title>
	<atom:link href="http://www.jhlabs.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jhlabs.co.uk</link>
	<description>Blog of a web developer / designer living and working in Swansea, Wales</description>
	<pubDate>Thu, 19 Mar 2009 18:53:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>jQuery Slide Show Fading Content by Clicks</title>
		<link>http://www.jhlabs.co.uk/2009/03/jquery-slide-show-fading-content-by-clicks/</link>
		<comments>http://www.jhlabs.co.uk/2009/03/jquery-slide-show-fading-content-by-clicks/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 18:45:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[change content]]></category>

		<category><![CDATA[click]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Effect]]></category>

		<category><![CDATA[fadeIn]]></category>

		<category><![CDATA[fadeOut]]></category>

		<category><![CDATA[function]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[show]]></category>

		<category><![CDATA[slide]]></category>

		<category><![CDATA[slideshow]]></category>

		<category><![CDATA[transition]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=25</guid>
		<description><![CDATA[
Previously I wrote a script which would allow a user to click a piece of text, and it would fadeout the content and fade in a new piece of content. This script expands on the previous one. It was inspired by a comment a user had left me.
The commenter wanted a script where by he [...]]]></description>
			<content:encoded><![CDATA[<div style=" float:left;width:100%; background-image:url(http://www.jhlabs.co.uk/wp-content/uploads/2009/03/fade.jpg); background-position:center 390px; height:100px;"><!-- x --></div>
<p>Previously I wrote a <a title="fade out change content, fade in with new content" href="http://www.jhlabs.co.uk/2008/07/jquery-function-fade-out-change-content-fade-back-in/">script</a> which would allow a user to click a piece of text, and it would fadeout the content and fade in a new piece of content. This script expands on the previous one. It was inspired by <a title="user comment" href="http://www.jhlabs.co.uk/2008/07/jquery-function-fade-out-change-content-fade-back-in/#comment-280">a comment</a> a user had left me.</p>
<p>The commenter wanted a script where by he had multiple &#8217;slides&#8217; of content, and when a user clicked on one of the slides, it would fade out the current slide and fade in a new slide. I wrote a brief script to try and help him. However i felt that other people may want a similar script.</p>
<p>So now i have created a more SEO friendly script, which is alot more dynamic and allows for easy manipulating of content. As well as the features above, it will allow the user with  javascript turned off to see all the content.</p>
<p>I&#8217;ve created an example file located <a href="http://www.jhlabs.co.uk/wp-content/uploads/2009/03/jquery-slideshow-effect.html">here</a>, where you can <a href="http://www.jhlabs.co.uk/wp-content/uploads/2009/03/jquery-slideshow-effect.html">download</a> and view the code. The example given, shows slides from a presentation i gave last year.<span id="more-25"></span></p>
<h3>About the Code</h3>
<p>Now i&#8217;m going to tell you a bit about the code, and how you modify it to your needs. If you view the source of the document, and look at the actual html (located towards the bottom of the document). You will notice, Each slide is wrapped in a div element.</p>
<p>Each <code style="display:inline;">div</code> is given an incremental id e.g. <code>page_1</code>, <code>page_2</code> etc, this allows the slideshow to find which &#8217;slide&#8217; is next. As well as the incremental id&#8217;s each slide is of class <code>page</code> and <code>box</code>. The <code>box</code> in this example, is purely used for CSS/visual purposes, and can be removed. However each slide must be of class <code>page</code>, this allows the script to detect which <code>div</code>s are slides and what are not.</p>
<p>You can put anything between the opening and closing tags of the page divs, and it shall be displayed on the slide. I&#8217;ve just used images, and text, to help highlight some of the possible uses.</p>
<p>Once you reach the end of your slideshow, an alert is shown, this is just to let you know there are no more slides, you may remove this line of code and replace it with what ever you wish.</p>
<p><sup>Photo by <a href="http://www.flickr.com/photos/marcus_hansson/">Marcus Hansson</a></sup></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2009/03/jquery-slide-show-fading-content-by-clicks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Catching the Crook Who Stole Your Laptop!</title>
		<link>http://www.jhlabs.co.uk/2009/01/catching-the-crook-who-stole-your-laptop/</link>
		<comments>http://www.jhlabs.co.uk/2009/01/catching-the-crook-who-stole-your-laptop/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 14:40:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Other Random Stuff]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[bash]]></category>

		<category><![CDATA[catch]]></category>

		<category><![CDATA[crook]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[speech]]></category>

		<category><![CDATA[stolen]]></category>

		<category><![CDATA[terminal]]></category>

		<category><![CDATA[thief]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[webcam]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=23</guid>
		<description><![CDATA[
After reading multiple articles, on how people had managed to catch crooks who had stolen their laptops, and reading xkcd. I thought i might as well try creating my own solution.
Before I go any further, this solution is a Mac OSX solution, and requires, that you have some webspace, with FTP access.
I will explain what [...]]]></description>
			<content:encoded><![CDATA[<div style=" float:left;width:100%; background-image:url(http://farm2.static.flickr.com/1205/861321715_bf69d39359.jpg?v=0); background-position:center 390px; height:100px;"><!-- x --></div>
<p>After reading multiple <a title="BBC Man catches crook with webcam" href="http://news.bbc.co.uk/1/hi/magazine/4276851.stm">articles</a>, on how people had managed to catch crooks who had stolen their laptops, and reading <a title="XKCD" href="http://xkcd.com/530/">xkcd</a>. I thought i might as well try creating my own solution.</p>
<p>Before I go any further, this solution is a Mac OSX solution, and requires, that you have some webspace, with FTP access.</p>
<p>I will explain what I wanted the software to do, and how it accomplishes these aims.</p>
<ol>
<li>Firstly I wanted the software to recognise if the laptop has been stolen.</li>
<li>If the laptop is stolen, take photos of the user, and upload them to my webspace,</li>
<li>As well as uploadinging photos of the user, record their ip, and upload a copy to my webspace.</li>
</ol>
<p>The above 3 points were the basics of the app. However after reading xkcd, i thought it would be cool to get the application to announce to the world (via its speakers) that it is stolen property, at full volume.</p>
<p>Now i have told you what i wanted the app to be able to do I will explain, how it actually does it.<span id="more-23"></span></p>
<p>The way the app works, is firstly trys to access the a page on your webserver, for this example, im using this webserver. The page will contain one of three things. Either</p>
<pre class="textmate-source monokai">unstolen</pre>
<p>or:</p>
<pre class="textmate-source monokai">stolen</pre>
<p>or:</p>
<pre class="textmate-source monokai">stolen-shout</pre>
<p>Depending on what is contained in the file, depends on what the script does.</p>
<p>If the laptop is in either the stolen or stolen-shout states, then steps 2 &amp; 3 will be invoked, whereby the laptop will take photos of the users silently, as well their ip address. However if the laptop is retrieves the stolen-shout state, it will then turn its volume up-to level 5 of a possible 10, and shout out that the laptop has been stolen, and keep doing this until the process is killed, or the laptop is shut down.</p>
<p>The hardest part of the script was, getting my Mac&#8217;s webcam to take a photo and save it, but luckily enough i cam across the wacaw script which is released under the GNU/GPL license, which is free to use and distribute.  ( you can get it <a title="WACAW" href="http://sourceforge.net/project/showfiles.php?group_id=155269">here</a>). So anyway to cut to the chase the script is below:</p>
<pre class="textmate-source monokai"><span class="source source_shell"><span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span>!/bin/bash
</span>
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Get Date &amp; Time
</span>DATESTRING=<span class="string string_interpolated string_interpolated_backtick string_interpolated_backtick_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">`</span>date &#8220;+%Y_%m_%d%.%H_%M_%S&#8221;<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">`</span></span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Get status message and save it to status.txt
</span>curl &#8211;basic http://www.jhlabs.co.uk/wp-content/uploads/2009/01/laptop-status.txt -o status.txt
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Get a list of all wifi points
</span>/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s <span class="keyword keyword_operator keyword_operator_redirect keyword_operator_redirect_shell">&gt;</span> <span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>DATESTRING</span>.wifilist.txt
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Get Users IP Address.
</span>curl &#8211;basic http://www.jhlabs.co.uk/wp-content/uploads/2009/01/laptop-ip.php -o <span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>DATESTRING</span>.ip.txt

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Read the message
</span>T0=<span class="string string_interpolated string_interpolated_dollar string_interpolated_dollar_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">$(</span>cat status.txt<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">)</span></span>
T1=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>unstolen<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
T2=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>stolen<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
T3=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>stolen-shout<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> FTP Details
</span>server=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>ftp.server.com<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
route=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>public_html/laptop-stolen-photos/<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
password=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>serverpassword<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
username=<span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>serverusername<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Check if the Laptop is Safe
</span><span class="keyword keyword_control keyword_control_shell">if</span> [ <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span><span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>T0</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span> = <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span><span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>T1</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span> ]<span class="keyword keyword_operator keyword_operator_list keyword_operator_list_shell">;</span> <span class="keyword keyword_control keyword_control_shell">then</span>
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> If the laptop is safe, do nothing.
</span>  echo <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>All is well<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
<span class="keyword keyword_control keyword_control_shell">else</span>
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> The laptop has been stolen! Do the following:
</span>
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Upload the user&#8217;s ip file.
</span>    curl -v -T <span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>DATESTRING</span>.ip.txt ftp://<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>username</span>:<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>password</span>@<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>server</span>/<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>route</span>

<span class="keyword keyword_control keyword_control_shell">while</span> [ 1 ]<span class="keyword keyword_operator keyword_operator_list keyword_operator_list_shell">;</span> <span class="keyword keyword_control keyword_control_shell">do</span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Take a Picture, Say Cheese!
</span>
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Take the picture (save it sas buggered underscore date and time . jpeg)
</span>        ./wacaw -n 10 &#8211;jpeg  &#8211;VGA  gotya/buggered_<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>DATESTRING</span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Shout Out It Has been Stolen?
</span>            <span class="keyword keyword_control keyword_control_shell">if</span> [ <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span><span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>T0</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span> = <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span><span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>T3</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span> ]<span class="keyword keyword_operator keyword_operator_list keyword_operator_list_shell">;</span> <span class="keyword keyword_control keyword_control_shell">then</span>
say -v alex <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>This Laptop Has Been Stolen!<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span> <span class="keyword keyword_operator keyword_operator_pipe keyword_operator_pipe_shell">|</span> osascript -e <span class="string string_quoted string_quoted_double string_quoted_double_shell"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_shell">&#8220;</span>set volume 5<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_shell">&#8220;</span></span>
<span class="keyword keyword_control keyword_control_shell">fi</span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> wait 2 seconds, repeat procedure.
</span>        sleep 2

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_shell"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_shell">#</span> Upload the photos
</span>        curl -v -T gotya/buggered_<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>DATESTRING</span>.jpeg  ftp://<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>username</span>:<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>password</span>@<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>server</span>/<span class="variable variable_other variable_other_normal variable_other_normal_shell"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_shell">$</span>route</span>

<span class="keyword keyword_control keyword_control_shell">done</span>

<span class="keyword keyword_control keyword_control_shell">fi</span>

</span></pre>
<p><sup>Photo by <a href="http://www.flickr.com/photos/grimages/">Grimages</a></sup></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2009/01/catching-the-crook-who-stole-your-laptop/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP Frameworks, Why you should be using them!</title>
		<link>http://www.jhlabs.co.uk/2009/01/php-frameworks-why-you-should-be-using-them/</link>
		<comments>http://www.jhlabs.co.uk/2009/01/php-frameworks-why-you-should-be-using-them/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:51:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[code igniter]]></category>

		<category><![CDATA[codeigniter]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[frameworks]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=21</guid>
		<description><![CDATA[
Over the christmas break, I decided to get my hands dirty, and do some coding for some projects I&#8217;ve been wanting to get started for the past few months, but have been too busy to start working on. A great thing about working on personal projects is that you have the ability to test out [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-22" title="Frame Works" src="http://www.jhlabs.co.uk/wp-content/uploads/2009/01/framework_image.jpg" alt="frame work by kaz k" style="clear:both; width:490px;" /><br />
Over the christmas break, I decided to get my hands dirty, and do some coding for some projects I&#8217;ve been wanting to get started for the past few months, but have been too busy to start working on. A great thing about working on personal projects is that you have the ability to test out new technologies, and techniques, without worrying about the commercial implications if you dont something correct the first time.</p>
<p>I knew i wanted to write some PHP applications, and wanted to take a strict <abbr title="Model View Controller">MVC</abbr> approach to coding them. The advantage of this is that my code would be cleaner and easier to manage.</p>
<p>So what is a framework some people may be asking.  As a very basic definition I would say it is a collection of classes and functions which will reduce the amount of coding you have to do, which will enable you to perform common tasks.<span id="more-21"></span></p>
<p>I&#8217;ve had some experience using the following frameworks  before; <a title="Adobe Developer Toolbox" href="http://www.adobe.com/products/dreamweaver/addt/">Adobe&#8217;s dreamweaver developer toolbox</a> / <a title="MXKollection" href="http://www.interaktonline.com/Products/Bundles/MXKollection/Statement/">Interakt&#8217;s MXKollection</a> &amp; <a title="Joomla! CMS / Framework" href="http://www.joomla.org/">Joomla!</a> However i didnt want the overhead each carried with them. MXKollection is outdated, huge and generally pretty horrible to work with if you don&#8217;t to click and drag &#8216;components&#8217;. Whilst Joomla! is alot sleeker, lighter and more up to date. However the one disadvantage in my eyes is you have to rely on using a Joomla! site, as the base of your site.</p>
<p>So I started to look for other alternatives, and i came across <a title="CodeIgniter" href="http://codeigniter.com/">CodeIgniter</a>, some how it seemed to appeal to me more than <a title="CakePHP" href="http://cakephp.org/">CakePHP</a>, <a title="Symfony" href="http://www.symfony-project.org/">Symfony</a> and <a title="Zend" href="http://framework.zend.com/">Zend</a>. I do admit the others were tempting but just didn&#8217;t seem to fit the bill correctly for what i was looking for in the framework. CodeIgniter seems to be most flexible, lightweight PHP based framework out there, and seemed rather easy to learn from the user guide (which is fantastic! i might add).</p>
<p>Now i had picked my framework, i wanted to start learning how to use it and get it configured, i started working my way through the user guide, which took a mere hour and an half. Got the example blog up and running, so though i might start building my first application.</p>
<h3>My First Application.</h3>
<p>The first application i wanted to start making was a basic one, essentially it was a job board, where organisations and individuals would be able to go to a site, and post job vacancies. The jobs vacancies would then be made public.</p>
<p>Two of the features i wanted to integrate, were that i wanted the jobs to be categorised, so users could pick an industry and it would show all jobs from that industry. Also I wanted a basic search form, so users could enter job titles, or a location, so they could find jobs with similar titles, or in a specific location.</p>
<p>I got the application up and running using codeigniter, in under 6 hours, with me writing less than 250 lines of code, (note this does not include views). If i was writing the same application without using a framework i would easily be quadrupling the amount of code, i would be writing.</p>
<p>As a php framework, codeigniter would probably suit most develpers. It has enabled me to write clean, uncluttered code, and has caused me to start writing other applicatons which i can throw up in a short period of time. One of the really nice features i would have to say about codeigniter, is the way in which code igniter, implements validation of forms (using server-side methods) , and its security features. The validation class will save you literally hunderds of lines of code if your form has multiple inputs, which are content sensitive. E.g. data must be required, or it must be of certain type.</p>
<p>So i thoughrly recommend you take a good look at frameworks if your thinking of building any apps, and if your not sure which is right for you why not give CodeIgniter a go.</p>
<p><sub>Photo credit goes to <a href="http://flickr.com/photos/kazk/">Kaz K</a></sub></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2009/01/php-frameworks-why-you-should-be-using-them/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Off to Carsonified Events with a little help from my Friends?</title>
		<link>http://www.jhlabs.co.uk/2008/09/off-to-fowa-09-fom-09-fowd-09-with-a-little-help-from-my-friends/</link>
		<comments>http://www.jhlabs.co.uk/2008/09/off-to-fowa-09-fom-09-fowd-09-with-a-little-help-from-my-friends/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 23:16:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Events &amp; Conferences]]></category>

		<category><![CDATA[Other Random Stuff]]></category>

		<category><![CDATA[Carson Workshops]]></category>

		<category><![CDATA[Carsonified]]></category>

		<category><![CDATA[Competition]]></category>

		<category><![CDATA[Competitions]]></category>

		<category><![CDATA[Conference]]></category>

		<category><![CDATA[Conferences]]></category>

		<category><![CDATA[FOM]]></category>

		<category><![CDATA[FOWA]]></category>

		<category><![CDATA[FOWD]]></category>

		<category><![CDATA[Fuel]]></category>

		<category><![CDATA[Golden Ticket]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=19</guid>
		<description><![CDATA[The wonderful guys over at Carsonified are throwing a contest, which will allow one lucky &#8216;golden ticket&#8217; holder to a free ticket to ALL Carsonified 2009 events. Which includes Future of Web Design, Future of Web Apps, Future of Mobile, Fuel and all Carson Workshops. Theyre calling it &#8220;The Carsonified Golden Ticket&#8221;.
As well as giving [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-20" title="The Carsonified Golden Ticket Competition" src="http://www.jhlabs.co.uk/wp-content/uploads/2008/09/20080915-bhbwsxbnfpacgemgjed3bmdxee.jpg" alt="The Carsonified Golden Ticket" style="clear:both;" width="500" height="320" />The wonderful guys over at <a title="Carsonified" href="http://www.carsonified.com/">Carsonified</a> are throwing a contest, which will allow one lucky &#8216;golden ticket&#8217; holder to a free ticket to <strong>ALL</strong> Carsonified 2009 events. Which includes <a href="http://futureofwebdesign.com/">Future of Web Design</a>, <a href="http://futureofwebapps.com/">Future of Web Apps</a>, <a href="http://future-of-mobile.com/">Future of Mobile</a>, <a href="http://fuel-conference.com/">Fuel</a> and all <a href="http://carsonworkshops.com/">Carson Workshops</a>. Theyre calling it &#8220;The Carsonified Golden Ticket&#8221;.</p>
<p>As well as giving you a free ticket to all the carsonified 2009 events, they are also offering to <strong>fly you</strong> out to one of their events, and <strong>put you up in a hotel </strong>for the event!</p>
<p>If that wasnt enough already, you will get an all-access backstage pass at all the 2009 Carsonified events, and an invite to the VIP speaker dinner at one Carsonified event of your choice!</p>
<p>I&#8217;ve been to FOWA 2007 and FOM 2007. I have also bought my tickets for FOWA 2008 and FOM 2008. All I can say is they&#8217;re excellent events. I very much encourage you to attend these events if you want to keep up to date with what&#8217;s happening, in their respective fields. These events give you a key insight of trends and developments currently on the web, and currently emerging on the web.</p>
<p>The line-ups have always been great, and are always action packed. Not to mention a live diggnation at the end of last years FOWA 2007, and again this year at FOWA 2008.</p>
<p>As well as a great entertainment and atmosphere, the Carsonified events are truly at the forefront of what&#8217;s happening on the web &#038; the other fields their conferences cover. For example FOM 07 was the first place that Google&#8217;s Android was demonstrated.</p>
<p>To be eligible to <strong>enter the competition</strong>, you must do the following:<span id="more-19"></span></p>
<ol>
<li>Write a blog post about wanting to win the Golden Ticket, linking to this post</li>
<li>Drum up 25 comments on the post (they can’t be you or spam and only one comment per person)</li>
<li><a href="https://carsonified.wufoo.com/forms/carsonified-golden-ticket-competition/">Submit the URL</a> by <strong>October 1st at Midnight UK time</strong><a href="https://carsonified.wufoo.com/forms/carsonified-golden-ticket-competition/"><br />
</a></li>
<li>Watch the live draw on UStream on Thursday, October 2nd at 5pm London time</li>
<li>Party accordingly!</li>
</ol>
<p>There are some terms &amp; conditions so i suggest you see the original post over at carsonfied website <a title="Carsonified Goldent Ticket Competition" href="http://www.carsonified.com/events/carsonified-golden-ticket">here</a>.</p>
<p>I&#8217;ve been fortunate enough to be able to attend these conferences due to Carsonified offering great student priced tickets. I will be graduating in July &#8216;09. So will then have to pay full price like everyone else. However I would love to attend more Carsonified events! </p>
<p>I would be really appreciative if you guys &amp; gals could leave a comment on the bottom of this post, to allow me to be eligible to enter for this competition I would really appreciate it.</p>
<p>P.S. I so want to do a blog post with the following video in it now. The grandfather is soo cool!</p>
<p style="text-align:center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/qdBGYfzYWLo&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/qdBGYfzYWLo&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/09/off-to-fowa-09-fom-09-fowd-09-with-a-little-help-from-my-friends/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Im off to Future of Web Apps &#8216;08</title>
		<link>http://www.jhlabs.co.uk/2008/07/future-of-web-apps-london-2008/</link>
		<comments>http://www.jhlabs.co.uk/2008/07/future-of-web-apps-london-2008/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 23:51:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Events &amp; Conferences]]></category>

		<category><![CDATA[Conference]]></category>

		<category><![CDATA[Diggnation]]></category>

		<category><![CDATA[Event]]></category>

		<category><![CDATA[FOWA]]></category>

		<category><![CDATA[FOWA London 2008]]></category>

		<category><![CDATA[London]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=17</guid>
		<description><![CDATA[Its been about a year since I attended the Future of Web Apps (FOWA) conference in London, and im off again this year.

There were a host of excellent sessions last year and seem to be a great line up again this year. If you want to learn about the web industry, and pick up some [...]]]></description>
			<content:encoded><![CDATA[<p>Its been about a year since I attended the <a title="Future of Web Apps Conference London 2008" href="http://london2008.futureofwebapps.com/">Future of Web Apps</a> (FOWA) conference in London, and im off again this year.</p>
<p style="text-align: center;"><img src="http://www.jhlabs.co.uk/wp-content/uploads/2008/07/fowa_badge1.png" alt="FOWA London 2008" /></p>
<p>There were a host of excellent sessions last year and seem to be a great line up again this year. If you want to learn about the web industry, and pick up some very very good tips. Get yourself a ticket!<span id="more-17"></span></p>
<p style="text-align: center;"><img src="http://www.jhlabs.co.uk/wp-content/uploads/2008/07/digg_is_back_large.png" alt="Diggnation at FOWA London 2008" width="300" /></p>
<p>Also the guys from Diggnation will be there again this year! So head over to <a title="Future of Web Apps London 2008" href="http://london2008.futureofwebapps.com/">FOWA</a> site and get your tickets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/07/future-of-web-apps-london-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>An Introduction to SEF URLs</title>
		<link>http://www.jhlabs.co.uk/2008/07/introduction-to-sef-urls/</link>
		<comments>http://www.jhlabs.co.uk/2008/07/introduction-to-sef-urls/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 19:53:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Search Engine Optimisation]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[Introduction]]></category>

		<category><![CDATA[ReWrite]]></category>

		<category><![CDATA[ReWriting]]></category>

		<category><![CDATA[Search Engine Friendly]]></category>

		<category><![CDATA[SEF]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[URLs]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=14</guid>
		<description><![CDATA[First of all what are SEF URLs? SEF stands for Search Engine Friendly and URL stands for Uniform Resource Locator (this is what you type into your browser to find a web site e.g. http://www.google.com/.
Examples of SEF URLs
An example of a SEF URL would something like the example below:
http://www.myshop.com/products/books/frankenstein.html
Whilst an unSEF URL would be something [...]]]></description>
			<content:encoded><![CDATA[<p>First of all what are <abbr title="Search Engine Friendly">SEF</abbr> <abbr title="Uniform Resource Locators">URLs?</abbr> <abbr title="Search Engine Friendly">SEF</abbr> stands for Search Engine Friendly and <abbr title="Uniform Resource Locators">URL</abbr> stands for Uniform Resource Locator (this is what you type into your browser to find a web site e.g. http://www.google.com/.</p>
<h3>Examples of <abbr title="Search Engine Friendly">SEF</abbr> <abbr title="Uniform Resource Locators">URLs</abbr></h3>
<p>An example of a <abbr title="Search Engine Friendly">SEF</abbr> <abbr title="Uniform Resource Locators">URL</abbr> would something like the example below:</p>
<p>http://www.myshop.com/products/books/frankenstein.html</p>
<p>Whilst an <abbr title="unSearch Engine Friendly">unSEF</abbr> <abbr title="Uniform Resource Locators">URL</abbr> would be something like:</p>
<p>http://www.myshop.com/products.php?type=45&amp;itemid=4234</p>
<p><span id="more-14"></span></p>
<h3>Why <abbr title="Search Engine Friendly">SEF</abbr> <abbr title="Uniform Resource Locators">URLs</abbr> are Important</h3>
<p>From looking at the second <abbr title="Uniform Resource Locator">URL</abbr> you would not know what we were shopping for, but using the search engine friendly <abbr title="Uniform Resource Locators">URLs</abbr> you could see we were looking for a book, and in particular Frankenstein. By having keyword rich <abbr title="Uniform Resource Locators">URLs</abbr> you are helping the search engine become lazy, and search engines love it when they can be lazy.</p>
<p>The URLs also let people who browsing through a page of search results find relivant pages quicker. For example if you searched for &#8220;Book Frankenstein&#8221;  and the two given URLs above were listed which one are you more likely to choose, the one with &#8220;books&#8221; and &#8220;Frankenstein&#8221; in it or &#8220;products.php?type=45&amp;itemid=4234&#8243;?</p>
<p>Most if not all Search Engines now provide a line showing what the URL is that the result point to. In a Google results page, the resulting URL is in green, with the keywords you searched for bolded. In the below example i searched for &#8220;Swansea&#8221; and &#8220;Shopping&#8221;. Notice how swansea is highlighted and also shopping in the URL.</p>
<p style="text-align: center;"><img title="SEF URL Result" src="http://www.jhlabs.co.uk/wp-content/uploads/2008/07/sef-result.jpg" alt="Google Search Result Page highlighting SEF URLs" /></p>
<h3>Making your URLs Friendly</h3>
<p>So now you know what SEF URLs I will now introduce you to creating your own SEF URLs. Before we carry on I am working in a LAMP (Linux, Apache, MySQL and PHP) environment with Mod ReWrite Enabled (this is. So if you are not running Apache or PHP this example will not work for you.</p>
<p>The way I go about creating SEF URLs is as follows. I have a page which loads dynamic content, lets call it page.php</p>
<p>The contents of page.php are as follows:</p>
<pre class="textmate-source monokai"><span class="source source_php"><span class="source source_php source_php_embedded source_php_embedded_block source_php_embedded_block_html"><span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_begin punctuation_section_embedded_begin_php">&lt;?php</span> <span class="comment comment_block comment_block_documentation comment_block_documentation_phpdoc comment_block_documentation_phpdoc_php"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_php">/**</span></span>

*   File:       page.php

*   <span class="keyword keyword_other keyword_other_phpdoc keyword_other_phpdoc_php">@author</span>     Jon Hurlock

*   <span class="keyword keyword_other keyword_other_phpdoc keyword_other_phpdoc_php">@version</span>    1.0

*

*   The page will print out a message, followed by a content items id.

*

*   <span class="keyword keyword_other keyword_other_phpdoc keyword_other_phpdoc_php">@return</span>     the dynamic content item&#8217;s id

<span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_php">*/</span>
<span class="comment comment_line comment_line_double-slash comment_line_double-slash_php"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_php">//</span> print out a the following line of text and GET the content&#8217;s id</span>

<span class="support support_function support_function_construct support_function_construct_php">echo</span> <span class="string string_quoted string_quoted_single string_quoted_single_php"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_php">&#8216;</span><span class="meta meta_string-contents meta_string-contents_quoted meta_string-contents_quoted_single meta_string-contents_quoted_single_php">You wish to load content with an id of #</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_php">&#8216;</span></span><span class="keyword keyword_operator keyword_operator_string keyword_operator_string_php">.</span><span class="variable variable_other variable_other_global variable_other_global_php"><span class="punctuation punctuation_definition punctuation_definition_variable punctuation_definition_variable_php">$</span>_GET</span>[<span class="string string_quoted string_quoted_single string_quoted_single_php"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_php">&#8216;</span><span class="meta meta_string-contents meta_string-contents_quoted meta_string-contents_quoted_single meta_string-contents_quoted_single_php">content_id</span><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_php">&#8216;</span></span>]<span class="punctuation punctuation_terminator punctuation_terminator_expression punctuation_terminator_expression_php">;</span>
<span class="comment comment_block comment_block_php"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_php">    /*</span></span>

* if i loaded page.php?content_id=5, it should print out:

* You wish to load content with an id of #5

<span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_php">*/</span>
<span class="punctuation punctuation_section punctuation_section_embedded punctuation_section_embedded_end punctuation_section_embedded_end_php"><span class="source source_php">?</span>&gt;</span>

 

</span></span></pre>
<p>We also need another file for the SEF URLs to work, this file is named &#8220;.htaccess&#8221;. Please notice the full-stop or period before the htaccess, the contents of this file are:</p>
<pre class="textmate-source monokai"><span class="source source_apache-config"><span class="comment comment_line comment_line_number-sign comment_line_number-sign_apache-config"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_apache-config">#</span> Make sure the apache rewrite ,odule is on  

<span class="support support_constant support_constant_apache-config">RewriteEngine</span> On
<span class="comment comment_line comment_line_number-sign comment_line_number-sign_apache-config"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_apache-config">#</span> The following line says to translate a-nice-story.html to /page.php?content_id=123</span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_apache-config"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_apache-config">#</span> So when ever a-nice-story.html is loaded, actually load /page.php?content_id=123 but</span>

<span class="comment comment_line comment_line_number-sign comment_line_number-sign_apache-config"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_apache-config">#</span> keep the url as a-nice-story.html</span>

<span class="support support_constant support_constant_rewriterule support_constant_rewriterule_apache-config">RewriteRule</span> <span class="string string_regexp string_regexp_rewrite-pattern string_regexp_rewrite-pattern_apache-config">^a-nice-story\.html$</span> <span class="string string_other string_other_rewrite-substitution string_other_rewrite-substitution_apache-config">/page.php?content_id=123</span>

 

</span></span></pre>
<p>As you can see page.php prints out the following message &#8216;You wish to load content with an id of #99&#8242; where 99 is passed to the page through a GET request. So if we loaded page.php?content_id=123 you would see &#8216;You wish to load content with an id of #123&#8242;.</p>
<p>Now by using the .htaccess file we are saying if a user navigates to a-nice-story.html it will load the content as if page.php?content_id=123 was loaded, however the URL which is displayed is a-nice-story.html</p>
<p>The line beginning RewriteRule in the file .htaccess uses regular expressions to match SEF URLs to the &#8216;true&#8217; URL.</p>
<h3>URL Rewriting Conventions</h3>
<p>Most URLs that are re-written follow a simple convention. Only the alpha numeric characters are used except for en-dashes (e.g. -), underscores (e.g. _) and full stops / periods (e.g. .). However the fullstop /.period is only used if you want to give your re-written URL an extension such as .html or .php etc. I have createn a simple SEF URL Generator ti see if your generated URLs conform to the standard. It is written in jQuery. just start typing in the input box to see if it conforms. If the box turns green it is ok, if it turns red it doesnt follow the convention.</p>
<ul>
<li><a href="http://www.jhlabs.co.uk/wp-content/uploads/2008/07/jquery-sef-url-checker.html">click here to access the jQuery based SEF URL checker</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/07/introduction-to-sef-urls/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery: Fade Out, Change Content, Fade Back In</title>
		<link>http://www.jhlabs.co.uk/2008/07/jquery-function-fade-out-change-content-fade-back-in/</link>
		<comments>http://www.jhlabs.co.uk/2008/07/jquery-function-fade-out-change-content-fade-back-in/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 00:46:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[DOM]]></category>

		<category><![CDATA[Effect]]></category>

		<category><![CDATA[fadeIn]]></category>

		<category><![CDATA[fadeOut]]></category>

		<category><![CDATA[function]]></category>

		<category><![CDATA[javascript]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[transition]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=11</guid>
		<description><![CDATA[I&#8217;ve been searching for a jQuery function which when a user clicks on a piece of text, the text fades out, then the original text is replaced with a new piece of text, after that the new text is faded in, and couldn&#8217;t find one. So decided to make my own.
I have now updated the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been searching for a jQuery function which when a user clicks on a piece of text, the text fades out, then the original text is replaced with a new piece of text, after that the new text is faded in, and couldn&#8217;t find one. So decided to make my own.</p>
<p>I have now updated the function, making it use ques rather than relying on the <code>setTimeOut</code> call. If you have any suggestions or questions about the function, dont hesitate to ask me.</p>
<p><del datetime="2008-07-15T14:00:36+00:00">I&#8217;ve hacked together a first draft. The only thing i am unhappy with at the moment, is that the function relies on a <code>setTimeOut</code> call. The reason this this line is included, is to remove the clicking functionality, it does this by changing the elements ID.</del></p>
<p>I have included a copy of function below, and an example of it in use.</p>
<p><span id="more-11"></span></p>
<h3>The Function Version 2 (current)</h3>
<pre class="textmate-source monokai"><span class="text text_html text_html_basic"><span class="source source_js source_js_embedded source_js_embedded_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_script entity_name_tag_script_html">script</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">type</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">&#8220;</span>text/javascript<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">&#8220;</span></span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">charset</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">&#8220;</span>utf-8<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">&#8220;</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span>
  <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="support support_class support_class_js">document</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>ready<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span>
            <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_single string_quoted_single_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8216;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8216;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_dom support_function_dom_js">click</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span>
                <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> time in milliseconds
</span>                <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> 500 = 1/2 a second, 1000 = 1 second etc&#8230;
</span>                <span class="storage storage_type storage_type_js">var</span> timer <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="constant constant_numeric constant_numeric_js">500</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
                <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> insert Analytics Code Here
</span>                <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> tracker. . . . . . . . . . . . . . . . . .
</span>              <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>animate<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span> opacity: <span class="constant constant_numeric constant_numeric_js">0</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>timer <span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
              <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>queue<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="meta meta_function meta_function_js"><span class="storage storage_type storage_type_function storage_type_function_js">function</span> <span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span>
                    <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> if you dnt wan the text to chang color remove the
</span>                    <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> &#8216;&lt;span class=\&#8221;newContent\&#8221;&gt;&#8217; part and the &#8216;&lt;/span&gt;&#8217;
</span>                    <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> parts from the next line.
</span>                    <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="variable variable_language variable_language_js">this</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>empty<span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>append<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>&lt;span class=<span class="constant constant_character constant_character_escape constant_character_escape_js">\&#8221;</span>newContent<span class="constant constant_character constant_character_escape constant_character_escape_js">\&#8221;</span>&gt;fade me in!&lt;/span&gt;<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
                    <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="variable variable_language variable_language_js">this</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>dequeue<span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
                  <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
              <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>animate<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span> opacity: <span class="constant constant_numeric constant_numeric_js">1</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span>timer <span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
              <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>queue<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="meta meta_function meta_function_js"><span class="storage storage_type storage_type_function storage_type_function_js">function</span> <span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_begin punctuation_definition_parameters_begin_js">(</span><span class="punctuation punctuation_definition punctuation_definition_parameters punctuation_definition_parameters_end punctuation_definition_parameters_end_js">)</span></span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span>
                    <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="variable variable_language variable_language_js">this</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>removeAttr<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>id<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
                    <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="variable variable_language variable_language_js">this</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>dequeue<span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
                  <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
            <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
  <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
<span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_script entity_name_tag_script_html">script</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span></span></span></pre>
<pre class="textmate-source monokai"></pre>
<h3>The Function Version 1</h3>
<pre class="textmate-source monokai"><span class="text text_html text_html_basic"><span class="source source_js source_js_embedded source_js_embedded_html"><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;</span><span class="entity entity_name entity_name_tag entity_name_tag_script entity_name_tag_script_html">script</span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">type</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">&#8220;</span>text/javascript<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">&#8220;</span></span> <span class="entity entity_other entity_other_attribute-name entity_other_attribute-name_html">charset</span>=<span class="string string_quoted string_quoted_double string_quoted_double_html"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_html">&#8220;</span>utf-8<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_html">&#8220;</span></span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span>
<span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> when document is ready load this function
</span><span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="support support_class support_class_js">document</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>ready<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span>
    <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> when someone clicks on the element with id of elementToFade
</span>    <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_single string_quoted_single_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8216;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8216;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span><span class="support support_function support_function_dom support_function_dom_js">click</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span> <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span>
        <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> Fade Out Text, then remove text &amp; insert &#8217;slide 2&#8242;, now fade back the text in.
</span>        <span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>fadeOut<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>fast<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span><span class="storage storage_type storage_type_js">function</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">{</span><span class="keyword keyword_operator keyword_operator_js">$</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>#elementToFade<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>empty<span class="meta meta_brace meta_brace_round meta_brace_round_js">()</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>append<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>slide 2<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_delimiter meta_delimiter_method meta_delimiter_method_period meta_delimiter_method_period_js">.</span>fadeIn<span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_single string_quoted_single_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8216;</span>slow<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8216;</span></span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
        <span class="comment comment_line comment_line_double-slash comment_line_double-slash_js"><span class="punctuation punctuation_definition punctuation_definition_comment punctuation_definition_comment_js">//</span> change the span&#8217;s Id to noId, making it unclickable, bit of a hack  not really that ideal
</span>        <span class="storage storage_type storage_type_js">var</span> t <span class="keyword keyword_operator keyword_operator_js">=</span> <span class="support support_function support_function_js">setTimeout</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">(</span><span class="string string_quoted string_quoted_double string_quoted_double_js"><span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_begin punctuation_definition_string_begin_js">&#8220;</span>document.getElementById(&#8217;elementToFade&#8217;).id = ‘noId&#8217;;<span class="punctuation punctuation_definition punctuation_definition_string punctuation_definition_string_end punctuation_definition_string_end_js">&#8220;</span></span><span class="meta meta_delimiter meta_delimiter_object meta_delimiter_object_comma meta_delimiter_object_comma_js">, </span><span class="constant constant_numeric constant_numeric_js">500</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
    <span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
<span class="meta meta_brace meta_brace_curly meta_brace_curly_js">}</span><span class="meta meta_brace meta_brace_round meta_brace_round_js">)</span><span class="punctuation punctuation_terminator punctuation_terminator_statement punctuation_terminator_statement_js">;</span>
<span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&lt;/</span><span class="entity entity_name entity_name_tag entity_name_tag_script entity_name_tag_script_html">script</span><span class="punctuation punctuation_definition punctuation_definition_tag punctuation_definition_tag_html">&gt;</span>
</span></span></pre>
<h3>Example of the Function in Use</h3>
<p>An example of the function in use can be found <a title="jQuery: Fade Out, Change Content, Fade In" href="http://www.jhlabs.co.uk/wp-content/uploads/2008/07/jquery-fadeout-fadein.html">here (v1)</a> &amp; <a href="http://www.jhlabs.co.uk/wp-content/uploads/2008/07/jquery-fadeout-fadeinv2.html">here (v2)</a>. In the example there is a telephone number, but the user has to click the text to see the telephone number. I recommend you view the source code to see how it works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/07/jquery-function-fade-out-change-content-fade-back-in/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SEO Basics</title>
		<link>http://www.jhlabs.co.uk/2008/07/seo-basics/</link>
		<comments>http://www.jhlabs.co.uk/2008/07/seo-basics/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 07:20:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Search Engine Optimisation]]></category>

		<category><![CDATA[Services]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[Blogging]]></category>

		<category><![CDATA[Content Optimisation]]></category>

		<category><![CDATA[Copyrighting]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Live]]></category>

		<category><![CDATA[MSN]]></category>

		<category><![CDATA[Search Engine Marketing]]></category>

		<category><![CDATA[Search Engine Submission]]></category>

		<category><![CDATA[SEM]]></category>

		<category><![CDATA[Submission]]></category>

		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=10</guid>
		<description><![CDATA[Alot of my clients have asked me what is search engine optimisation, and why do i need it? Search engine optimisation is the process of submitting your website to search engines, as well as optimising your website (and its content) to be parsed (read) by search engines.
Its all about getting your website listed on search engines and [...]]]></description>
			<content:encoded><![CDATA[<p>Alot of my clients have asked me what is search engine optimisation, and why do i need it? Search engine optimisation is the process of submitting your website to search engines, as well as optimising your website (and its content) to be parsed (read) by search engines.</p>
<p>Its all about getting your website listed on search engines and targeting keywords and phrases to help people find your site. Ideally you want to get your website to top of a search results page. Hopefully this post will help you to achieve this.</p>
<p>This guide will take you through four basic steps. <span id="more-10"></span>Some knowledge of HTML is assumed, however if you do not know any HTML I highly recommend you buy &#8216;<a title="HTML, XHTML &amp; CSS by Elizabeth Castro" href="http://www.elizabethcastro.com/html6ed/">html, xhtml, and css</a>&#8216; by Elizabeth Castro. The book assumes no prior knowledge of web design or programming. It gives example snippets of code, explains the code line by line, and also shows the output of the code. I give each of my clients a copy of this book. It is a must have.</p>
<h3>Step I:   Optimise your site</h3>
<p>When &#8220;reading&#8221; your site, search engines want to put in as little effort as possible. The quicker they can read your site the happier they will be. To allow your websites to be read quickly it is helpful to make your website conform to standards. An organisation called the <a title="World Wide Web Consortium" href="http://www.w3c.org/">W3C</a> (World Wide Web Consortium) has introduced standards for HTML, XHTML and various other markup languages. If your site conforms to these standards, it is more likely to be read quicker. To check if you website conforms to these standards you can check your website by insertinig the websites address of your site <a title="W3C Validator" href="http://validator.w3.org/">here</a>.</p>
<p>Also if you can use text, rather than images do so! Search engines can not read text in images! There are tricks whereby you display an image to users, and display text to search engines. This is a more advance topic, and wont be covered here.</p>
<p>Tables are for data only! If you designing sites using tables stop! Tables are meant for tabular data only. If you do not understand what i mean it is worth reading <a title="Site Point Tables Vs. CSS" href="http://www.sitepoint.com/article/tables-vs-css/">this</a> article.</p>
<p>Get to the content! A search engine does not want to have to traverse 40% of the markup before it gets to the content. If you can minimise the amount of markup on the site do it.</p>
<p>Meta tags, and title tags; you should be filling these in religiously. There are many meta tags you can use, but you should definitely be filling in the description meta tag, this is what people will see in the search engine results page. Personally i find the description tag, and the title tag weight very heavily when targeting keywords and phrases. Personally I find the keywords meta tag is redundant. If you can provide unique description tags and title tags for each page, this can really help when users are searching for your site. I would recommend something along the lines of &#8220;Your Company Name : Page Name&#8221;, where Your &#8216;Company Name&#8217; is your companies name and &#8216;Page Name&#8217; describes the page, e.g. Home / Contact Us etc.. If your business is geographically conscious (e.g. you want to target somewhere close to home) then i highly recommend putting the business location in your title tag ( e.g. &#8220;Your Company Name, City : Page Name&#8221;).</p>
<h3>Step II:  Optimise your content</h3>
<p>Optimising content is different from site optimisation. Site optimisation is more about the template of your site. Optimising your content is more about copyright, and the structure of your content.</p>
<p>You should think about your content as a document. It has a single heading, paragraphs of text, sub headings, and sub sub headings. H tags (eg. <code>H1</code>, <code>H2</code>, <code>H3</code> etc..) should be used appropriately <code>H1</code> being the documents heading, <code>H2</code> a sub headings and <code>H3</code> a sub sub headings. Please put paragraphs in <code>P</code> tags. There are standards and you should be conforming to them.</p>
<p>When writing your content you want to be dropping in keywords, or words which may be associated with the topic that you are writing about.</p>
<p>You may be targeting a certain phrase, be aware potential readers may call it something else. For example &#8220;stand up paddle surfing&#8221; is the same as &#8220;stand up paddle boarding&#8221;. If i forget to mention stand up paddle boading, when writing about stand up paddle surfing. Search engines wont pick up on it. Expand your use of language, different people search for different things, but can be looking for exactly the same thing.</p>
<p>Write your keywords as you say them. I have several clients who&#8217;s business names are two words without a space between them. However looking at what people search for, they are searching for a mix of two words joined together (e.g. &#8220;jhlabs&#8221;), and the two words with the space(e.g. &#8220;jh labs&#8221;). So mix it up a bit.</p>
<h3>Step III: Submiting your Site</h3>
<p>Heres a secret most companies wont tell you. You yourself can submit your site to seach engines! There are two ways of doing this. FIrst if your website gets linked to by another site that is already listed, it will most probably be automatically submitted.</p>
<p>However the more reliant way is to directly add your site to search enginges. To do this you can use their search enginge submission tools for Free. Normally all you have to do is fill in a form with your website address, and brief description of your site (no more than 50 words).</p>
<ul>
<li><a title="Google Submission Tool" href="http://www.google.com/addurl/">Submit your site to Google</a></li>
<li><a title="Yahoo Submission Tool" href="http://search.yahoo.com/info/submit.html">Submit your site to Yahoo!</a> (requires you to register with a Yahoo account)</li>
<li><a title="Microsoft Live Submission Tool" href="http://search.live.com/docs/submit.aspx">Submit your site to Microsoft Live / MSN Search</a></li>
</ul>
<p> If you want to submit to any other search engines just search for the search engines name and submission. E.g. &#8220;Google Submission&#8221;. I do not recommend tools which state they submit your site to X number of search engines. Also these companies can not guarantee that you will be listed, there is a very very high probability that you will be listed. But search engines can refuse to list you.</p>
<h3>Step IV: Promoting your Site &amp; Keeping it fresh</h3>
<p>Once your site has been submitted, the worst thing you can do is let it stagnate. No one wants to re-visit a site with no fresh content on it. Also no one likes  a site with incorrect details on it.</p>
<p>Content is king! The more quality content you have the better. Ideally you want to become an authority site on your desired product/market/niche. To become an authority site you need to be known, and talked about. If you can get other sites to link to your site it can help its &#8220;authority ranking&#8221;. However I recommend that if you do purse this route, make sure they are either geographically linked, or have a common interest. There is no point you being a online clothes shop in Swansea, and linking sharing with a fishmongers in London.</p>
<p>Have a blog! By keeping a blog you are informing the world of what is happening with your site and your business. The advantage of blogs is everything is time stamped. So a search engine will be able to recognise if content is fresh. I highly recommend downloading and using <a title="Download Wordpress" href="http://wordpress.org/">wordpress</a> as a blog system, or <a title="Expression Engine" href="http://expressionengine.com/">expression engine</a>. Blogs are great for targeting keywords and phrases, and can really help SEO wise. Just please remember never to stop blogging.</p>
<p>This tutorial barely scratches the surface of SEO techniques, and is intended to be a beginners/introduction guide. In the  coming months i shall be writing about more in-depth and advance SEO techniques. I hope this tutorial has helped you. If you have any questions and/or comments please feel free to ask/comment. I will try to respond as soon as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/07/seo-basics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Links for Designers &#038; Developers</title>
		<link>http://www.jhlabs.co.uk/2008/05/links-for-designers-and-developers/</link>
		<comments>http://www.jhlabs.co.uk/2008/05/links-for-designers-and-developers/#comments</comments>
		<pubDate>Mon, 26 May 2008 15:23:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[Web Development]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[CSS]]></category>

		<category><![CDATA[developer]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[frameworks]]></category>

		<category><![CDATA[grid]]></category>

		<category><![CDATA[hosting]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[media queries]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[nginx]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[regular expressions]]></category>

		<category><![CDATA[RoR]]></category>

		<category><![CDATA[screen casts]]></category>

		<category><![CDATA[sIFR]]></category>

		<category><![CDATA[slicehost]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[web]]></category>

		<category><![CDATA[web design]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=9</guid>
		<description><![CDATA[I recently wrote an e-mail for a couple of guys that I know from Square Tab. It was a list of links that i have found usefull over the last few months, so I thought i would share these links to the rest of the internet. I&#8217;ve split the links into categories depending on the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wrote an e-mail for a couple of guys that I know from <a title="Square Tab Web Development &amp; Graphic Design" href="http://www.squaretab.co.uk/">Square Tab</a>. It was a list of links that i have found usefull over the last few months, so I thought i would share these links to the rest of the internet. I&#8217;ve split the links into categories depending on the technologies they use.</p>
<h3>CSS</h3>
<p>The first link i sent over was about the user of <em>media queries</em> in CSS3. Basically media queries allow you to display different implementations of CSS depending on what device the page is being viewed on. E.g. you can say if your screen is 800px wide, display this otherwise display this. Its got some more advance stuff, but that was just a simple example. Anyway heres the link:</p>
<ul>
<li><a title="CSS3 Media Queries" href="http://www.css3.info/preview/media-queries/">http://www.css3.info/preview/media-queries/</a></li>
</ul>
<p><span id="more-9"></span><br />
The second of my links I sent was about <em>CSS Frameworks</em>. These allow you to save time when creating CSS based templates. They also normally incorporate a <a title="Mark boulton Articles on Grids" href="http://www.markboulton.co.uk/articles">grid</a> based systems which can aesthetically make your site more pleasing to the eye. I have recommended two frameworks.</p>
<ul>
<li><a title="the 960 grid system" href="http://960.gs/">http://960.gs/</a></li>
<li><a title="BluePrint grid system" href="http://code.google.com/p/blueprintcss/">http://code.google.com/p/blueprintcss/</a></li>
</ul>
<p>There are many many more frameworks, but these are the ones i suggested. A list of other frameworks can be found <a href="http://css-tricks.com/css-frameworks-roundup-and-some-thoughts/">here</a>.</p>
<p>After writing the e-mail I came across an article on sitepoint titled &#8216;<a title="Tomorrow's CSS Today: 8 Techniques they don't want you to know" href="http://www.sitepoint.com/article/tomorrows-css-today">Tomorrow&#8217;s CSS Today: 8 Techniques They Don&#8217;t Want You To Know</a>&#8216;. It contains some very cool techniques such as using <em>regular expressions</em> to check what a link links to e.g. a PDF document, word document. Depending on what the link links to, a little background graphic will display next to the link with a meaningful icon (e.g. a PDF icon for a link linking to a PDF document).</p>
<h3>JavaScript</h3>
<p>Although the link that I sent is not strictly for developers, it can server as a gentle introduction to <a title="JQuery javascript library" href="http://www.jquery.com/">JQuery</a>.</p>
<blockquote><p><span class="startQuote">“</span>JQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages.<span class="endQuote">”</span></p></blockquote>
<p style="text-indent:60%;"><cite> - <a href="http://www.jquery.com/">jquery.com</a></cite></p>
<p>The link I sent was about introducing JQuery effects to web designers. It requires a basic knowledge of javascript &amp; the <abbr title="Document Object Model">DOM</abbr>. It shows you how to apply JQuery to a page, and how to insert some rather cool effects. The tutorial walks you through the code, which is downloadable, and has live examples. So you can see the code in action! Anyway heres the link:</p>
<ul>
<li><a title="JQuery Effects for web designers" href="http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/   ">http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/</a></li>
</ul>
<h3>Flash</h3>
<p>Ever wanted text have that cool font. But dont want to use an Image, because no-one else has that font? Well heres an accessible, SEO friendly approach sIFR. sIFR uses CSS, javascript &amp; flash, to do text replacement or should i say font replacement. The link i sent is definately worth a read (in my honest opinion):</p>
<ul>
<li><a title="font replacement with sIFR" href="http://www.mikeindustries.com/blog/sifr/">http://www.mikeindustries.com/blog/sifr/</a></li>
</ul>
<h3>Ruby on Rails</h3>
<p>I myself am exploring the world of ruby on rails. As a PHP developer it is a total different way of thinking. To be honest i&#8217;m not totally convinced <em>yet</em>. However i chucked in some links for the guys to introduce them into the world of ruby on rails.</p>
<p>With the advent of Rails 2.0 some of the tutorials will be out of date, however they still serve as good tutorails if you want to experiment with Rails</p>
<ul>
<li><a title="Peep Code provides excellent rails based Screen Casts" href="http://www.peepcode.com/">http://www.peepcode.com</a><a title="Rails Casts Free Rails Screencasts" href="http://www.railscasts.com/"></a></li>
<li><a title="Rails Casts Free Rails Screencasts" href="http://www.railscasts.com/">http://www.railscasts.com</a></li>
<li><a title="creating a blog in 15 minutes" href="http://media.rubyonrails.org/video/rails_take2_with_sound.mov">http://media.rubyonrails.org/video/rails_take2_with_sound.mov</a></li>
</ul>
<p>If you are a PHP Developer I highly highly recommend getting a copy of <a title="Rails for PHP Developers Book" href="http://railsforphp.com/">Rails for PHP Developers</a>. It servers as an excellent guide to Ruby on Rails. Whilst <a title="Agile Web Development with Rails" href="http://www.pragprog.com/">Agile Web Development with Rails</a> (<em>the 3<sup>rd</sup> edition covers Rails 2.0</em>)is for those who have little / no programming experience, and thus can be very waffly at times.</p>
<h3>Web Server (Linux, Apache / Nginx, MySQL, PHP / Ruby on Rails)</h3>
<p>If you ever want to create your own webserver, or if you have unmanaged hosting (VPS or Dedicated). I cant recommend the next link enough.</p>
<ul>
<li><a title="SliceHost Articles" href="http://articles.slicehost.com/">http://articles.slicehost.com/</a></li>
</ul>
<p><a title="Slicehost VPS web hosting" href="http://www.slicehosts.com/">Slicehost</a> provide low cost VPS hosting as all their &#8217;slices&#8217; are unmanaged, however they have brought out great articles for setting up different VPS setups . Their articles cover VPS setups for the following Linux distributions Ubuntu, Debian and CentOS. The articles provide advice and guides to using Apache and Nginx, as well as helping you setup several different frameworks (RoR, Django), and much more. I highly highly recommend them!</p>
<p>Anyway that brings me to the end of this post, I hope you have found the links useful. I will probably post some more in the near future. Keep me updated if you find anything interesting or useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/05/links-for-designers-and-developers/feed/</wfw:commentRss>
<enclosure url="http://media.rubyonrails.org/video/rails_take2_with_sound.mov" length="54364199" type="video/quicktime" />
		</item>
		<item>
		<title>Hello World!</title>
		<link>http://www.jhlabs.co.uk/2008/05/hello-world/</link>
		<comments>http://www.jhlabs.co.uk/2008/05/hello-world/#comments</comments>
		<pubDate>Sun, 25 May 2008 16:30:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Services]]></category>

		<category><![CDATA[projects]]></category>

		<category><![CDATA[cms]]></category>

		<category><![CDATA[content management]]></category>

		<category><![CDATA[drupal]]></category>

		<category><![CDATA[joomla]]></category>

		<category><![CDATA[mambo]]></category>

		<category><![CDATA[swansea]]></category>

		<category><![CDATA[uk]]></category>

		<category><![CDATA[wales]]></category>

		<category><![CDATA[web design]]></category>

		<category><![CDATA[web designer]]></category>

		<category><![CDATA[web developer]]></category>

		<category><![CDATA[web development]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.jhlabs.co.uk/?p=8</guid>
		<description><![CDATA[Hello and welcome to my new site. This site has been in the works for last few days. The site is supposed to provide information for the services I provide, and provide inspiration and help to people who want to learn about web design &#38; development. 
A Little about me
I am a freelance web developer [...]]]></description>
			<content:encoded><![CDATA[<p>Hello and welcome to my new site. This site has been in the works for last few days. The site is supposed to provide information for the services I provide, and provide inspiration and help to people who want to learn about web design &amp; development. </p>
<h3>A Little about me</h3>
<p>I am a freelance web developer &amp; designer, living and working in Swansea. I am also a (final year) student at Swansea University, studying computer science. I specialize in CSS &amp; XHTML development, but also have excellent skills using PHP, MySQL, javascript and other technologies.<br />
<span id="more-8"></span><br />
I&#8217;ve worked on numerous bespoke content management systems, and have experience using several &#8216;pre-packaged&#8217; content management such as Joomla!, Mambo, Wordpress, Drupal &amp; EMC<sup>2</sup> Documentum. </p>
<p>As well as content management systems, i have experience with e-commerce, specifically with ZenCart. I have successfully launched several online stores for my clients. You can find out more about my clients and sites I have launched in my portfolio.</p>
<h3>About the Site &amp; It&#8217;s template</h3>
<p>I will be updating the site over the coming weeks, to get content up. If you find something on the site that isnt working please <a title="Twitter jonhurlock" href="http://www.twitter.com/jonhurlock" >twitter</a> me. The current template is almost complete, so some of the views may not look so great, e.g. categories view &amp; individual posts. Also its currently designed with the CSS3 specification in mind so certain browsers (IE / FF &lt; 3) will not support all of the elements. So basically its best viewed with Safari.</p>
<p>The template from this site, borrows elements from several other blogs &amp; sites which i like. These can be found via my blog roll on the right hand side of the front page. I would also say thanks to <a title="Basheera Khan" href="http://basheerakhan.com/" >Bash</a>, <a title="Andy Gimblett" href="http://gimbo.org.uk/" >Andy</a> &amp; <a title="Tom Bradley" href="http://www.tobeon.co.uk/" >Tom</a> for help with finding good wordpress widgets. The main template uses <a title="Elliot Jay Stocks" href="http://elliotjaystocks.com/" >Elliot Jay Stocks</a> <a title="Starkers Theme by Elliot Jay Stocks" href="http://elliotjaystocks.com/blog/archive/2008/free-starkers-wordpress-theme/" >Starkers Theme</a>, which serves as a base template, and on top of that is hand coded XHTML &amp; CSS by myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhlabs.co.uk/2008/05/hello-world/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
